### Install Shidoka Applications Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Installs the Shidoka Applications package using npm. ```bash npm install @kyndryl-design-system/shidoka-applications -S ``` -------------------------------- ### Example: Single HeaderLink Component Usage Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Demonstrates the HTML structure for using the Kyn-Header-Link component. ```html Link ``` -------------------------------- ### Example: Header Component Usage Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Demonstrates the HTML structure for using the Kyn-Header component and its sub-components. ```html Link ``` -------------------------------- ### Storybook Meta Configuration Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Configuration for Storybook's Meta component, setting the title for the documentation page. ```HTML ``` -------------------------------- ### Local Nav Prop Migration Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Explains the migration of `unpinText` and `pinText` props in the Local Nav component. These props have been moved to `textStrings.pin` and `textStrings.unpin`. ```JavaScript // `unpinText` and `pinText` props moved to `textStrings.pin` & `textStrings.unpin` ``` -------------------------------- ### Removed Deprecated Components Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Lists components that have been removed due to deprecation, including kyn-data-table, kyn-footer-nav, kyn-footer-link, kyn-breadcrumb-item, kyn-header-panel, and kyn-header-avatar. ```JavaScript // Removed Previously Deprecated Components // kyn-data-table // kyn-footer-nav // kyn-footer-link // kyn-breadcrumb-item // kyn-header-panel // kyn-header-avatar ``` -------------------------------- ### Define Widget Layout and Constraints Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/widget/Gridstack.mdx Provides an example of defining widget sizes and constraints for different breakpoints using imported JSON objects. It highlights the necessity of defining layouts for 'max', 'md', and 'sm' breakpoints. ```javascript import { WidgetSizes, WidgetConstraints, } from '@kyndryl-design-system/shidoka-applications/common/helpers/gridstack'; const Layout = { max: [ { id: 'widget1', ...WidgetSizes.standard.max, ...WidgetConstraints.default.max, }, { id: 'widget2', ...WidgetSizes.wide.max, ...WidgetConstraints.chart.max, }, ], // provide widget sizes for every breakpoint }; ``` -------------------------------- ### Radio Button Example Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Displays a Storybook canvas showcasing the Radio Button component with its story. ```jsx ``` -------------------------------- ### Tag Component Shade Prop Removal Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Notes the removal of the `shade` prop from the Tag and Tag skeleton components. ```JavaScript // `shade` prop is removed. ``` -------------------------------- ### Extend Shidoka Swiper Configuration Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/carousel/Docs.mdx Demonstrates how to extend Shidoka's default Swiper configuration, using `deepmerge-ts` as an example to change the pagination type. ```javascript SwiperConfig.pagination.type = 'bullets'; ``` -------------------------------- ### Radio Button Group Example Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Displays a Storybook canvas showcasing the Radio Button Group component with its story. ```jsx ``` -------------------------------- ### Data Table Ellipsis Prop Removal Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Informs about the removal of the `ellipsis` prop from the Data Table component. ```JavaScript // `ellipsis` prop is removed ``` -------------------------------- ### Form Input Component Slot and Prop Changes Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Highlights changes in Form Input components (Radio Button Group, Number Input, Text Input, Text Area, Checkbox Group, Dropdown, Toggle Button). A dedicated slot for tooltips is added, and the `label` slot is replaced by a `label` string prop. ```JavaScript // Added a dedicated slot for tooltip. // `label` slot has been replaced with a `label` string prop ``` -------------------------------- ### Button Component Kind Renaming Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Details the renaming of 'primary-app' kind to 'primary' and 'primary-web' to 'content' in the Button component. The 'destructive' prop has been removed and is now handled as a kind. ```JavaScript // 'primary-app' kind renamed to 'primary', remains default // 'primary-web' kind renamed to 'content' // 'destructive' prop removed, implemented as a kind ``` -------------------------------- ### Error Block Properties and Slots Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/errorBlock/errorBlock.mdx References the properties and slots available for the Error Block component using Storybook controls and provides a primary example. ```APIDOC Error Block Component Documentation: Primary Example: Properties Reference: Slots: The kyn-error-block component supports the following slots: - unnamed: For the error description. - image: For the error image. - actions: For action buttons. ``` -------------------------------- ### Date/Time Picker Rework with Flatpickr Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Details the significant rework of Date & Time Picker components using the Flatpickr library. This includes library integration, property changes (e.g., `datePickerType` to `mode`, `value` type changes), new properties (`locale`, `twentyFourHourFormat`), event handling updates, template modifications, styling considerations, validation adjustments, and accessibility improvements. ```JavaScript // Utilizes Flatpickr third-party date picker library to standardize date, time, and date range pickers across all browsers // Localization support provided by Flatpickr (see `locale` prop note below) // run `npm install` to ensure required packages are installed // Replace `datePickerType` with `mode` property (for DatePicker and DateRangePicker) // Update `value` property: // DatePicker: Change from string to `Date | null` // Input: Accept `Date` object or ISO string // Output: `Date` object // DateRangePicker: Change from `string` to `[Date | null, Date | null]` // Input: Accept array of two `Date` objects or ISO strings // Output: Array of two `Date` objects // TimePicker: Change from string to `Date | null` // Input: Accept `Date` object or ISO string // Output: `Date` object // Use Flatpickr's `mode` and `dateFormat` instead of `DATE_PICKER_TYPES` // Rename `disabled` property to `datePickerDisabled` (for DatePicker), `dateRangePickerDisabled` (for DateRangePicker), and `timePickerDisabled` (for TimePicker) // Remove usage of `step` property // Use Flatpickr's `enable` and `disable` Array properties where functionality is needed to enable/disable specific dates // Add use `locale` property (must use for Flatpickr localization) // Add `twentyFourHourFormat` property for time format (if needed) // Add `defaultDate` property for DatePicker, DateRangePicker, and TimePicker // Add `defaultHour` and `defaultMinute` properties for Timepicker // Update event listeners from `@on-input` to `@on-change` // Update event detail structure in event handler // Old structure: `{ value: string, origEvent: Event }` // New structure: `{ dates: string | string[], dateString: string }` // Replace unnamed slot for label with `label` property // Add tooltip slot if tooltip functionality is needed // Flatpickr theming has been customized to coordinate with broader Shidoka Design System // Update any custom CSS that targets internal elements of the components // Be aware of new Flatpickr-related classes for styling overrides // Update any custom validation logic to work with the new Flatpickr integration // Use `defaultErrorMessage` property instead of setting custom validation messages directly // Add `errorAriaLabel`, `errorTitle`, `warningAriaLabel`, and `warningTitle` properties if custom accessibility labels are needed // Update any code that relies on specific date string formats to work with the new `Date` object values // For TimePicker, update any code that assumes a specific time string format to work with the new `Date` object values // Use `dateFormat` property to specify the desired input/output format for date strings ``` -------------------------------- ### Dropdown Component Behavior Changes Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/migration.mdx Details changes in the Dropdown component: `updateByValue` prop removed (now default behavior), `resetSelection` method removed (use `value` prop), and `selected` prop removed from options (control via Dropdown's `value` prop). ```JavaScript // `updateByValue` prop has been removed and is now the default behavior. // The dropdown value previously derived from selected child options must now be controlled through the `value` prop. // `resetSelection` method has been removed. Use the `value` prop to reset the selection. // `selected` prop has been removed. Use the `value` prop from Dropdown to control the selection. ``` -------------------------------- ### Storybook Meta Configuration Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/welcome.mdx Configures the Storybook metadata for the documentation page, setting the title to 'Welcome'. ```javascript import { Meta } from '@storybook/addon-docs/blocks'; ``` -------------------------------- ### Project Deployment Badge Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/welcome.mdx An HTML snippet displaying a badge indicating that the project is deployed by Netlify. ```html Deploys by Netlify ``` -------------------------------- ### Handling 'Failed to execute 'define' on 'CustomElementRegistry'' Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Explains the 'Failed to execute 'define' on 'CustomElementRegistry'' error, often caused by bundling issues, and suggests solutions like declaring dependencies as external or peer dependencies. ```markdown **Handling `Failed to execute 'define' on 'CustomElementRegistry'`** #### The Problem This is a common bundling issue that can appear when you incorporate a component that has already bundled Shidoka components. Typically this would be caused by having a middle layer, for example a Common UI layer that has a cross-platform Header component built using Shidoka components. #### Avoiding This You can get around this in by not declaring Shidoka components as dependencies, and instead declaring them as external or peer dependencies in the middle/common layer. For example, from the shidoka-applications rollup.js config using [the external option](https://rollupjs.org/configuration-options/#external): `external: [/shidoka-foundation/components/]`. Since shidoka-foundation components are used within shidoka-applications components, this prevents the foundation components from being bundled, meaning it leaves the import statements unaltered (ex: `import '@kyndryl-design-system/...'`). This way, the application bundler can handle it instead. This works with bundling from node_modules, but not with CDN hosted files since the deployed application won't know how to resolve aliased node_modules imports ex: `import '@kyndryl-design-system/...'`. In this case, you probably need a workaround. #### Workaround If for some reason the above suggestion does not help, there is a library containing a script/polyfill that can be used which allows custom elements to be redefined: https://github.com/caridy/redefine-custom-elements. We've found that this script works best when served from the app's `` tag. ``` -------------------------------- ### Import Root Stylesheets Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Demonstrates how to import the root stylesheets for Shidoka components using SCSS, CSS, or JavaScript. ```css @use '@kyndryl-design-system/shidoka-foundation/scss/root.scss'; ``` ```css @import '@kyndryl-design-system/shidoka-foundation/css/root.css'; ``` ```javascript import '@kyndryl-design-system/shidoka-foundation/css/root.css'; ``` -------------------------------- ### Component Creation and Documentation Guidelines Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/CONTRIBUTING.md Standards for creating new components, including file structure, generic design principles, and documentation requirements using JSDoc and Storybook. ```markdown Components should be contained within their own folder containing `ts`, `scss`, and `stories` files. Sub-components can share the same folder. Add new components to the root `index.ts` file. Everything in the design system should be 100% generic. Remember that these components could be used to build any application. Application concerns must be separated. Use Lit [directives](https://lit.dev/docs/templates/directives/) and [decorators](https://lit.dev/docs/components/decorators/) whenever possible. Build responsive, build clean, focus on style and performance, enhance with quick and smooth animations. Document everything in your components with [JSDoc](https://custom-elements-manifest.open-wc.org/analyzer/getting-started/#supported-jsdoc). Update the `custom-elements.json` file with the `npm run analyze` script any time you add or change documentation. This is where the Storybook args tables are derived from. Write your storybook stories with controls enabled for every property where possible. When building modular components with sub-components, write multiple stories to show different variations. Include any sub-components in the main story so it renders a new tab with an args table. ``` -------------------------------- ### Import Storybook Addon Docs Blocks Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Imports necessary components from Storybook's addon-docs/blocks for documentation rendering. ```javascript import { Meta, Story, Canvas, Controls, Stories, Description, Title, } from '@storybook/addon-docs/blocks'; ``` -------------------------------- ### Testing Strategy with Storybook Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/CONTRIBUTING.md Overview of testing methodologies using Storybook, including Accessibility, Interaction, and Visual Testing with Chromatic. ```markdown We use [@storybook/test](https://storybook.js.org/docs/writing-tests) to execute a variety of automated tests. The [Test Runner](https://storybook.js.org/docs/writing-tests/test-runner) is used to execute Accessibility and Interaction tests both locally and in CI. [Accessibility Tests](https://storybook.js.org/docs/writing-tests/accessibility-testing) [Interaction Tests](https://storybook.js.org/docs/writing-tests/interaction-testing) 1. Interaction Test writing strategy TBD [Visual Testing via Chromatic](https://www.chromatic.com/) 1. Provides visual screenshot comparison testing and a review process which integrates with our CI. ``` -------------------------------- ### Empty State Pattern - Small Variant Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/emptyState/Docs.mdx Provides the HTML structure for the small variant of the Empty State pattern. It includes placeholders for an icon, description, and an optional primary action button. ```html

e.preventDefault()} >
``` -------------------------------- ### Development Scripts Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/CONTRIBUTING.md Common npm scripts for managing the development environment, building, linting, testing, analyzing, and formatting the project. ```bash # install npm i --legacy-peer-deps # run development env npm run dev # build npm run build # lint npm run lint # test (storybook must be running) npm run test # generate new custom-elements.json (updates storybook docs/args) npm run analyze # format all files with prettier npm run format ``` -------------------------------- ### Conventional Commits and Branching Strategy Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/CONTRIBUTING.md Guidelines for commit messages using Conventional Commits format for automated releases and branching strategy based on GitHub Flow. ```markdown Commit messages MUST use [Conventional Commit format](https://semantic-release.gitbook.io/semantic-release#commit-message-format). [Certain commit prefixes](https://semantic-release.gitbook.io/semantic-release/#commit-message-format) like `fix:` (patch) or `feat:` (minor) will automatically trigger a release to publish a new package and update the semantic version. 1. `BREAKING CHANGE:` in the commit message footer will trigger a major version update. [Conventional Commits Cheat Sheet](https://gist.github.com/Zekfad/f51cb06ac76e2457f11c80ed705c95a3) Git hooks are installed to enforce commit message formatting with commitlint, and code formatting with Prettier. Branching: 1. `main` branch is for stable/current version changes. 1. `beta` branch is for future version/prerelease/breaking changes. 1. Prefix your branch names based on the type of change, ex `feature/`, `bugfix/`, or `hotfix/`. 1. Use the [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow). ``` -------------------------------- ### Import Gridstack Styles Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/widget/Gridstack.mdx Demonstrates how to import the necessary CSS for the Gridstack component globally, either via JavaScript or CSS import statements. ```javascript import '@kyndryl-design-system/shidoka-applications/common/css/gridstack-shidoka.css'; ``` ```css @import '@kyndryl-design-system/shidoka-applications/common/css/gridstack-shidoka.css'; ``` -------------------------------- ### Server-Side Rendering (SSR) Workarounds Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Provides guidance and links to resources for handling Shidoka components with SSR frameworks like Next.js, addressing client-side code execution issues. ```markdown **Server-Side Rendering (SSR)** When using with an SSR framework like Next.js, you will encounter errors with code that only runs client-side, like `window` references for example. This is because web components cannot render on the server. Here is an article that provides some methods to work around this: [Using Non-SSR Friendly Components with Next.js](https://blog.bitsrc.io/using-non-ssr-friendly-components-with-next-js-916f38e8992c) and [How to entirely disable server-side rendering in next.js v13?](https://stackoverflow.com/questions/75406728/how-to-entirely-disable-server-side-rendering-in-next-js-v13). Basically, web components need their rendering deferred to only happen on the client-side. Here is some additional information about why SSR does not work for web components, and some potential polyfills/solutions to enable server rendering: https://lit.dev/docs/ssr/overview/ ``` -------------------------------- ### Empty State Pattern - Default Large Variant Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/emptyState/Docs.mdx Provides the HTML structure for the default large variant of the Empty State pattern. It includes placeholders for an icon, title, description, and optional action buttons or links. ```html

e.preventDefault()} > e.preventDefault()} >
``` -------------------------------- ### Configure Gridstack with Shidoka Defaults Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/widget/Gridstack.mdx Shows how to import and modify the default Shidoka Gridstack configuration. The wrapper includes Shidoka's default config, but it can be customized by importing and adjusting the 'Config' object. ```javascript import { Config } from '@kyndryl-design-system/shidoka-applications/common/helpers/gridstack'; const NewConfig = { ...Config, // modify config here }; // or NewConfig.option = value; // Then pass to the component: // ``` -------------------------------- ### Import Header Component and Sub-components Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Imports the Header component along with all its sub-components by targeting the index file. ```javascript import '@kyndryl-design-system/shidoka-applications/components/global/header'; ``` -------------------------------- ### Initialize Swiper Instance Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/carousel/Docs.mdx Initializes a Swiper instance on a specified HTML element using the provided configuration, typically after the DOM is ready. ```javascript new Swiper('.swiper', SwiperConfig); ``` -------------------------------- ### Storybook Configuration for Tag Components Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/tag/Docs.mdx This snippet shows the Storybook configuration for the Tag and Tag Group components. It imports necessary Storybook blocks and stories, and renders different variations of the Tag and Tag Group components using Canvas and Controls. ```javascript import { Meta, Story, Canvas, Controls, Title, } from '@storybook/addon-docs/blocks'; import * as TagStories from './tag.stories.js'; import * as TagGroupStories from './tagGroup.stories.js'; ## Tag <Canvas of={TagStories.Tag}> <Story of={TagStories.Tag} /> </Canvas> ### Properties & Controls <Controls of={TagStories.Tag} /> ## Tag With Icon <Canvas of={TagStories.TagWithIcon}> <Story of={TagStories.TagWithIcon} /> </Canvas> ## Tag Group <Canvas of={TagGroupStories.TagGroup}> <Story of={TagGroupStories.TagGroup} /> </Canvas> ## Tag Skeleton Group <Canvas of={TagGroupStories.Skeleton}> <Story of={TagGroupStories.Skeleton} /> </Canvas> ### Properties & Controls <Controls of={TagGroupStories.TagGroup} /> ``` -------------------------------- ### React 19+ Custom Elements Support Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Highlights React 19's native support for Custom Elements, simplifying integration. ```markdown **[React 19 has introduced native support for Custom Elements**](https://react.dev/blog/2024/04/25/react-19#support-for-custom-elements). Older versions of React do not support automatic interop with Custom Elements. This means that React treats all props passed to Web Components as string attributes. Until you've upgraded to React 19+, you will need to use a library like [@lit/react](https://www.npmjs.com/package/@lit/react) or [reactify-wc](https://www.npmjs.com/package/reactify-wc) to wrap these components for use in React. ``` -------------------------------- ### Storybook Imports Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/checkbox/Docs.mdx Imports necessary components and stories from the Storybook library for rendering documentation. ```javascript import { Meta, Story, Canvas, Controls, Stories, Description, Title, } from '@storybook/addon-docs/blocks'; import * as CheckboxStories from './checkbox.stories.js'; import * as CheckboxGroupStories from './checkboxGroup.stories.js'; ``` -------------------------------- ### Integrate Gridstack with Widgets Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/widget/Gridstack.mdx Demonstrates the HTML structure for integrating the Gridstack component with custom widgets. It includes passing the layout, handling grid save events, and structuring individual widget items with content and drag handles. ```html <kyn-widget-gridstack .layout="${Layout}" @on-grid-save="${(e) => console.log(e.detail.layout)}" > <div class="grid-stack"> <div gs-id="widget1" class="grid-stack-item"> <div class="grid-stack-item-content"> <kyn-widget widgetTitle="Widget 1" subTitle="Widget Subtitle"> <kyn-widget-drag-handle></kyn-widget-drag-handle> <div>Widget Content</div> </kyn-widget> </div> </div> <div gs-id="widget2" class="grid-stack-item"> <div class="grid-stack-item-content"> <kyn-widget widgetTitle="Widget 2" subTitle="Widget Subtitle"> <kyn-widget-drag-handle></kyn-widget-drag-handle> <div>Widget Content</div> </kyn-widget> </div> </div> </div> </kyn-widget-gridstack> ``` -------------------------------- ### Import Single HeaderLink Component Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/README.md Imports the HeaderLink component specifically by targeting its file. ```javascript import '@kyndryl-design-system/shidoka-applications/components/global/header/headerLink'; ``` -------------------------------- ### Import Shidoka Swiper Styles Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/carousel/Docs.mdx Applies the Shidoka-specific styles for Swiper globally within your project. ```css @import '@kyndryl-design-system/shidoka-applications/common/css/swiper-shidoka.css'; ``` -------------------------------- ### Error Block Usage Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/errorBlock/errorBlock.mdx Demonstrates how to import and use the Error Block component in JavaScript and HTML. ```javascript import '@kyndryl-design-system/shidoka-applications/components/reusable/errorBlock'; ``` ```html <kyn-error-block></kyn-error-block> ``` -------------------------------- ### Storybook Meta Configuration Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/forms.mdx This code configures the Storybook meta information for the forms stories, linking it to the exported stories from the './forms.stories.js' file. ```javascript import { Meta, Story, Canvas, Controls, Stories, } from '@storybook/addon-docs/blocks'; import * as FormsStories from './forms.stories.js'; <Meta of={FormsStories} /> ``` -------------------------------- ### Import Swiper and Shidoka Config Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/carousel/Docs.mdx Imports the Swiper bundle and Shidoka's default Swiper configuration for use in your application. ```javascript import Swiper from 'swiper/bundle'; // import Shidoka's Swiper config import { SwiperConfig } from '@kyndryl-design-system/shidoka-applications/common/helpers/swiper'; ``` -------------------------------- ### Storybook Meta Configuration Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Configures Storybook metadata for the Radio Button Group component, linking it to its stories. ```jsx <Meta of={RadioButtonGroupStories} /> ``` -------------------------------- ### Import Radio Button Stories Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Imports story definitions for the Radio Button component. ```javascript import * as RadioButtonStories from './radioButton.stories.js'; ``` -------------------------------- ### Import Radio Button Group Stories Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Imports story definitions for the Radio Button Group component. ```javascript import * as RadioButtonGroupStories from './radioButtonGroup.stories.js'; ``` -------------------------------- ### Storybook Title Component Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Renders the title for the documentation page, typically derived from the component's name. ```jsx <Title /> ``` -------------------------------- ### Checkbox Documentation Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/checkbox/Docs.mdx Documentation for the Checkbox component, including its properties and interactive controls via Storybook. ```jsx <Canvas of={CheckboxStories.Checkbox}> <Story of={CheckboxStories.Checkbox} /> </Canvas> ### Properties & Controls <Controls of={CheckboxStories.Checkbox} /> ``` -------------------------------- ### Basic Swiper HTML Structure Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/carousel/Docs.mdx Provides the fundamental HTML structure required for a Swiper carousel, including the main container, wrapper, slides, and optional navigation/pagination elements. ```html <!-- Slider main container --> <div class="swiper"> <!-- Additional required wrapper --> <div class="swiper-wrapper"> <!-- Slides --> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> <div class="swiper-slide">Slide 4</div> <div class="swiper-slide">Slide 5</div> <div class="swiper-slide">Slide 6</div> </div> <!-- If we need scrollbar --> <div class="swiper-scrollbar"></div> <!-- If we need pagination --> <div class="swiper-pagination"></div> <!-- If we need navigation buttons --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> </div> ``` -------------------------------- ### Checkbox Group Documentation Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/checkbox/Docs.mdx Documentation for the Checkbox Group component, including its properties and interactive controls via Storybook. ```jsx <Meta of={CheckboxGroupStories} /> <Title /> ## Checkbox Group <Canvas> <Story of={CheckboxGroupStories.CheckboxGroup} /> </Canvas> ### Properties & Controls <Controls of={CheckboxGroupStories.CheckboxGroup} /> ``` -------------------------------- ### Kyndryl Design System Icons Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/carbon-shidoka-icon-map.txt This section lists various icons available in the Kyndryl Design System. Each entry maps a descriptive name (e.g., 'AIOps', 'access-management') to its technical identifier (e.g., 'ID', 'account'). This is useful for referencing icons in code or design tools. ```English :AIOps identification:ID :access-management account:account add--alt:add add--filled:add-filled add:add-simple analytics:analytics :anomaly aperture:aperture application:applications :applications-data-&-Ai :approval-policy arrow--down:arrow-down arrow--left:arrow-left arrow--right:arrow-right arrow--up:arrow-up arrow--up-left:arrow-up-left arrow--up-right:arrow-up-right arrows--vertical:arrows-vertical asset:assets attachment:attachment :billing book:book bookmark:bookmark branch:branch :bug calendar:calendar calendar--add:calendar-add :calendar-delete calendar--settings:calendar-settings camera:camera shopping--cart:cart :catalog-management certificate--check:certificate-check chart--pie:chart-pie chat:chat chat-bot:chat-bot checkbox:checkbox checkbox--checked--filled:checkbox-filled checkbox--checked:checkbox-selected checkmark:checkmark checkmark--filled:checkmark-filled checkmark--outline:checkmark chevron--down:chevron-down chevron--left:chevron-left chevron--right:chevron-right chevron--up:chevron-up circle--filled:circle-filled circle--outline:circle-stroke close--outline:close close--filled:close-filled close:close-simple cloud:cloud cloud--download:cloud-download :cloud-security cloud-services:cloud-services cloud--upload:cloud-upload code:code :collab-drive concept:concept connect:connect :console :consultation :control-tower copy:copy :core-enterprise-&-zCloud :core-services cost:cost :cost-&-asset-management cube:cube cursor--1:cursor :customer-engagement dashboard:dashboard data--check:data-check :database delete:delete delivery:delivery :devops-intelligence :digital-workplace :discount document:document document--add:document-add document--attachment:document-attachment document--blank:document-blank document--subtract:document-delete document--protected:document-protected document--tasks:document-task document--unprotected:document-unprotected document--view:document-view double-integer:double-integer download:download draggable:draggable edit:edit edit:edit-2 :enterprise-marketplace maximize:expand explore:explore filter:filter filter--edit:filter-edit finance:finance flag:flag flag--filled:flag-filled flow--data:flow-data folder:folder gateway--security:gateway-security globe:globe :go-to-market group:group crop-growth:growth-crop menu:hamburger-menu :health :history home:home hourglass:hourglass :ibm-cloud-pal id-management:id-management industry:industry information:information information--filled:information-filled :integrated-AIOps :key :key-add :key-delete :key-security launch:launch :lightbulb list:list location:location locked:lock logout:log-out email:mail map:map :marketplace money:money cloud--monitoring:monitoring navaid--military-civil:navaid-military-civil navaid--ndb:navaid-ndb network--1:network :network-&-edge :no-access notification:notification notification--new:notifications-new :open-developer :operation-policies operations--record:operations-record :ordered-services overflow-menu--vertical:overflow :overview :personalization-policies piggy-bank:piggy-bank pin:pin :placeholder platforms:platform police:police portfolio:portfolio :private-catalog :private-cloud :program-management-portal help:question :quotation recommend:recommend :redirect reference-architecture:reference-architecture report--data:report-data :robot :roles rule--test:rule-test save:save scale:scale :schedule search:search security-&-resiliency send:send cloud--service-management:service-management :services :services-catalog settings:settings settings--adjust:settings-adjust share:share :shared-services repo--source-code:source-code square-fill:square-filled :subscription subtract--alt:substract subtract--filled:substract-filled subtract:substract-simple :support tag:tags task:task task--tools:task-tools :team template:template thumbs-down:thumbs-down thumbs-up:thumbs-up ticket:ticket time:time tools:tool tool-kit:tool-kit touch--1:touch touch--1--filled:touch-filled :track unlocked:unlock update-now:update upload:upload user:user :user-manual user--settings:user-settings :video-tutorial virtual-machine:virtual-machine warning:warning warning--filled:warning-filled warning--alt--filled:warning-filled :workbench workflow-automation:workflow-automation side-panel--open:pin overflow-menu--horizontal:overflow error--filled:warning-filled currency--dollar:cost gender--male:user gender--female:user misuse:close-filled export:upload trash-can:delete renew:update user--avatar:user ``` -------------------------------- ### Tag Component Properties and Deprecations Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/tag/Docs.mdx This section details changes and deprecations for the Tag component. The 'clickable' prop is deprecated and tags are clickable by default. The 'filter' prop overrides 'clickable', and 'tagColor' 'spruce' has updated styling. ```html ### New changes ### Properties - `clickable` prop is **deprecated**. By default, new tags are `clickable`. - Setting `filter` to `true` **overrides** `clickable`. - **tagColor** - `spruce` now follows new tag colour and styling. ``` -------------------------------- ### Radio Button Controls Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Renders interactive controls for the Radio Button component, allowing users to modify its properties. ```jsx <Controls of={RadioButtonStories.RadioButton} /> ``` -------------------------------- ### Deprecated Tag Colors and Migration Notice Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/tag/Docs.mdx Lists deprecated tag colors for the Tag component. Users should avoid these colors and migrate status-related tags to the new Badge component for updated styling and functionality. ```html ### Depricated Tag colours The following tag colors are deprecated and should no longer be used: | tagColor | tagColor | tagColor | tagColor | tagColor | tagColor | | --------------- | ----------------- | ------------- | ----------- | ------------- | -------------- | | `success` | `grey` | `interactive` | `blue` | `warning` | `error` | | `cat01` | `cat02` | `cat03` | `cat04` | `cat05` | `cat06` | | `criticalLight` | `informationDark` | `warningDark` | `errorDark` | `successDark` | `criticalDark` | **Note:** Status-related tags (like `success`, `warning`, `error`, etc.) have been moved to a new component called **Badge**. [Learn more →](https://shidoka-applications.netlify.app/?path=/docs/components-badge--docs) ``` -------------------------------- ### Capture FormData on Form Submit Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/stories/forms.mdx This JavaScript snippet shows how to listen for the 'submit' event on an HTML form, prevent the default submission, and capture the form data using the FormData API. The captured data is then logged to the console. ```javascript document.querySelector('form').addEventListener('submit', (e) => { e.preventDefault(); const formData = new FormData(e.target); console.log(...formData); }); ``` -------------------------------- ### Radio Button Group Controls Source: https://github.com/kyndryl-design-system/shidoka-applications/blob/main/src/components/reusable/radioButton/Docs.mdx Renders interactive controls for the Radio Button Group component, allowing users to modify its properties. ```jsx <Controls of={RadioButtonGroupStories.RadioButtonGroup} /> ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.