@central-design-system/skills 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +6 -0
- package/README.md +218 -0
- package/bin/cds-skills.mjs +124 -0
- package/package.json +33 -0
- package/skills/cds-builder/GENERATION.md +44 -0
- package/skills/cds-builder/SKILL.md +308 -0
- package/skills/cds-builder/references/component-decision-tree.md +310 -0
- package/skills/cds-builder/references/components/cds-app/api.md +19 -0
- package/skills/cds-builder/references/components/cds-app/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-autocomplete/api.md +155 -0
- package/skills/cds-builder/references/components/cds-autocomplete/examples.md +447 -0
- package/skills/cds-builder/references/components/cds-autocomplete/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-autocomplete/tokens.md +19 -0
- package/skills/cds-builder/references/components/cds-avatar/api.md +35 -0
- package/skills/cds-builder/references/components/cds-avatar/examples.md +240 -0
- package/skills/cds-builder/references/components/cds-avatar/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-avatar/tokens.md +32 -0
- package/skills/cds-builder/references/components/cds-badge/api.md +44 -0
- package/skills/cds-builder/references/components/cds-badge/examples.md +332 -0
- package/skills/cds-builder/references/components/cds-badge/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-badge/tokens.md +32 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/api.md +83 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/examples.md +219 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-breadcrumbs/tokens.md +24 -0
- package/skills/cds-builder/references/components/cds-button/api.md +66 -0
- package/skills/cds-builder/references/components/cds-button/examples.md +324 -0
- package/skills/cds-builder/references/components/cds-button/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-button/tokens.md +190 -0
- package/skills/cds-builder/references/components/cds-button-group/api.md +27 -0
- package/skills/cds-builder/references/components/cds-button-group/examples.md +33 -0
- package/skills/cds-builder/references/components/cds-button-group/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-button-toggle/api.md +51 -0
- package/skills/cds-builder/references/components/cds-button-toggle/examples.md +278 -0
- package/skills/cds-builder/references/components/cds-button-toggle/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-button-toggle/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-card/api.md +221 -0
- package/skills/cds-builder/references/components/cds-card/examples.md +652 -0
- package/skills/cds-builder/references/components/cds-card/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-card/tokens.md +46 -0
- package/skills/cds-builder/references/components/cds-carousel/api.md +107 -0
- package/skills/cds-builder/references/components/cds-carousel/examples.md +444 -0
- package/skills/cds-builder/references/components/cds-carousel/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-carousel/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-checkbox/api.md +93 -0
- package/skills/cds-builder/references/components/cds-checkbox/examples.md +319 -0
- package/skills/cds-builder/references/components/cds-checkbox/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-checkbox/tokens.md +18 -0
- package/skills/cds-builder/references/components/cds-checkbox-button/api.md +56 -0
- package/skills/cds-builder/references/components/cds-checkbox-button/examples.md +29 -0
- package/skills/cds-builder/references/components/cds-checkbox-button/tokens.md +56 -0
- package/skills/cds-builder/references/components/cds-combobox/api.md +158 -0
- package/skills/cds-builder/references/components/cds-combobox/examples.md +264 -0
- package/skills/cds-builder/references/components/cds-combobox/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-combobox/tokens.md +19 -0
- package/skills/cds-builder/references/components/cds-counter/api.md +24 -0
- package/skills/cds-builder/references/components/cds-counter/examples.md +93 -0
- package/skills/cds-builder/references/components/cds-counter/tokens.md +11 -0
- package/skills/cds-builder/references/components/cds-date-input/api.md +151 -0
- package/skills/cds-builder/references/components/cds-date-input/examples.md +479 -0
- package/skills/cds-builder/references/components/cds-date-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-date-input/tokens.md +16 -0
- package/skills/cds-builder/references/components/cds-date-picker/api.md +63 -0
- package/skills/cds-builder/references/components/cds-date-picker/examples.md +394 -0
- package/skills/cds-builder/references/components/cds-date-picker/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-date-picker/tokens.md +66 -0
- package/skills/cds-builder/references/components/cds-defaults-provider/api.md +21 -0
- package/skills/cds-builder/references/components/cds-description/api.md +22 -0
- package/skills/cds-builder/references/components/cds-description/examples.md +69 -0
- package/skills/cds-builder/references/components/cds-description/tokens.md +11 -0
- package/skills/cds-builder/references/components/cds-divider/api.md +29 -0
- package/skills/cds-builder/references/components/cds-divider/examples.md +374 -0
- package/skills/cds-builder/references/components/cds-divider/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-divider/tokens.md +38 -0
- package/skills/cds-builder/references/components/cds-drawer/api.md +53 -0
- package/skills/cds-builder/references/components/cds-drawer/examples.md +432 -0
- package/skills/cds-builder/references/components/cds-drawer/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-drawer/tokens.md +27 -0
- package/skills/cds-builder/references/components/cds-empty-state/api.md +55 -0
- package/skills/cds-builder/references/components/cds-empty-state/examples.md +330 -0
- package/skills/cds-builder/references/components/cds-empty-state/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-empty-state/tokens.md +25 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/api.md +157 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/examples.md +569 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-expandable-panel/tokens.md +34 -0
- package/skills/cds-builder/references/components/cds-field/api.md +62 -0
- package/skills/cds-builder/references/components/cds-field/examples.md +202 -0
- package/skills/cds-builder/references/components/cds-field/tokens.md +94 -0
- package/skills/cds-builder/references/components/cds-file-input/api.md +109 -0
- package/skills/cds-builder/references/components/cds-file-input/examples.md +368 -0
- package/skills/cds-builder/references/components/cds-file-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-file-input/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-file-upload/api.md +296 -0
- package/skills/cds-builder/references/components/cds-file-upload/examples.md +411 -0
- package/skills/cds-builder/references/components/cds-file-upload/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-file-upload/tokens.md +50 -0
- package/skills/cds-builder/references/components/cds-footer/api.md +35 -0
- package/skills/cds-builder/references/components/cds-footer/examples.md +219 -0
- package/skills/cds-builder/references/components/cds-footer/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-footer/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-form/api.md +48 -0
- package/skills/cds-builder/references/components/cds-form/examples.md +552 -0
- package/skills/cds-builder/references/components/cds-form/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-form/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-functional-button/api.md +34 -0
- package/skills/cds-builder/references/components/cds-functional-button/examples.md +254 -0
- package/skills/cds-builder/references/components/cds-functional-button/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-functional-button/tokens.md +35 -0
- package/skills/cds-builder/references/components/cds-grid/api.md +66 -0
- package/skills/cds-builder/references/components/cds-grid/examples.md +687 -0
- package/skills/cds-builder/references/components/cds-grid/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-header/api.md +35 -0
- package/skills/cds-builder/references/components/cds-header/examples.md +345 -0
- package/skills/cds-builder/references/components/cds-header/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-header/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-highlight/api.md +22 -0
- package/skills/cds-builder/references/components/cds-highlight/examples.md +313 -0
- package/skills/cds-builder/references/components/cds-highlight/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-highlight/tokens.md +18 -0
- package/skills/cds-builder/references/components/cds-icon/api.md +33 -0
- package/skills/cds-builder/references/components/cds-icon/examples.md +272 -0
- package/skills/cds-builder/references/components/cds-icon/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-icon/tokens.md +30 -0
- package/skills/cds-builder/references/components/cds-image/api.md +67 -0
- package/skills/cds-builder/references/components/cds-image/examples.md +437 -0
- package/skills/cds-builder/references/components/cds-image/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-image/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-input/api.md +80 -0
- package/skills/cds-builder/references/components/cds-input/examples.md +205 -0
- package/skills/cds-builder/references/components/cds-input/tokens.md +108 -0
- package/skills/cds-builder/references/components/cds-label/api.md +25 -0
- package/skills/cds-builder/references/components/cds-label/examples.md +72 -0
- package/skills/cds-builder/references/components/cds-label/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-layout/api.md +50 -0
- package/skills/cds-builder/references/components/cds-layout/examples.md +431 -0
- package/skills/cds-builder/references/components/cds-layout/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-layout/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-link/api.md +33 -0
- package/skills/cds-builder/references/components/cds-link/examples.md +195 -0
- package/skills/cds-builder/references/components/cds-link/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-link/tokens.md +16 -0
- package/skills/cds-builder/references/components/cds-list/api.md +329 -0
- package/skills/cds-builder/references/components/cds-list/examples.md +653 -0
- package/skills/cds-builder/references/components/cds-list/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-list/tokens.md +125 -0
- package/skills/cds-builder/references/components/cds-loader/api.md +18 -0
- package/skills/cds-builder/references/components/cds-loader/examples.md +59 -0
- package/skills/cds-builder/references/components/cds-loader/tokens.md +50 -0
- package/skills/cds-builder/references/components/cds-main/api.md +14 -0
- package/skills/cds-builder/references/components/cds-main/examples.md +60 -0
- package/skills/cds-builder/references/components/cds-menu/api.md +84 -0
- package/skills/cds-builder/references/components/cds-menu/examples.md +595 -0
- package/skills/cds-builder/references/components/cds-menu/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-menu/tokens.md +19 -0
- package/skills/cds-builder/references/components/cds-messages/api.md +29 -0
- package/skills/cds-builder/references/components/cds-messages/examples.md +119 -0
- package/skills/cds-builder/references/components/cds-messages/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-modal/api.md +86 -0
- package/skills/cds-builder/references/components/cds-modal/examples.md +516 -0
- package/skills/cds-builder/references/components/cds-modal/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-modal/tokens.md +22 -0
- package/skills/cds-builder/references/components/cds-notification/api.md +46 -0
- package/skills/cds-builder/references/components/cds-notification/examples.md +314 -0
- package/skills/cds-builder/references/components/cds-notification/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-notification/tokens.md +23 -0
- package/skills/cds-builder/references/components/cds-notification-alert/api.md +93 -0
- package/skills/cds-builder/references/components/cds-notification-alert/examples.md +202 -0
- package/skills/cds-builder/references/components/cds-notification-alert/tokens.md +15 -0
- package/skills/cds-builder/references/components/cds-otp-input/api.md +106 -0
- package/skills/cds-builder/references/components/cds-otp-input/examples.md +329 -0
- package/skills/cds-builder/references/components/cds-otp-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-otp-input/tokens.md +41 -0
- package/skills/cds-builder/references/components/cds-overlay/api.md +85 -0
- package/skills/cds-builder/references/components/cds-overlay/examples.md +409 -0
- package/skills/cds-builder/references/components/cds-overlay/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-overlay/tokens.md +12 -0
- package/skills/cds-builder/references/components/cds-page/api.md +21 -0
- package/skills/cds-builder/references/components/cds-page/examples.md +123 -0
- package/skills/cds-builder/references/components/cds-pagination/api.md +67 -0
- package/skills/cds-builder/references/components/cds-pagination/examples.md +320 -0
- package/skills/cds-builder/references/components/cds-pagination/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-pagination/tokens.md +20 -0
- package/skills/cds-builder/references/components/cds-progress-bar/api.md +53 -0
- package/skills/cds-builder/references/components/cds-progress-bar/examples.md +393 -0
- package/skills/cds-builder/references/components/cds-progress-bar/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-progress-bar/tokens.md +33 -0
- package/skills/cds-builder/references/components/cds-progress-circle/api.md +30 -0
- package/skills/cds-builder/references/components/cds-progress-circle/examples.md +326 -0
- package/skills/cds-builder/references/components/cds-progress-circle/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-progress-circle/tokens.md +31 -0
- package/skills/cds-builder/references/components/cds-radio/api.md +47 -0
- package/skills/cds-builder/references/components/cds-radio/tokens.md +36 -0
- package/skills/cds-builder/references/components/cds-radio-group/api.md +87 -0
- package/skills/cds-builder/references/components/cds-radio-group/examples.md +320 -0
- package/skills/cds-builder/references/components/cds-radio-group/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-radio-group/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-responsive/api.md +29 -0
- package/skills/cds-builder/references/components/cds-responsive/examples.md +271 -0
- package/skills/cds-builder/references/components/cds-responsive/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-responsive/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-select/api.md +155 -0
- package/skills/cds-builder/references/components/cds-select/examples.md +794 -0
- package/skills/cds-builder/references/components/cds-select/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-select/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-selection-control/api.md +60 -0
- package/skills/cds-builder/references/components/cds-selection-control/examples.md +468 -0
- package/skills/cds-builder/references/components/cds-selection-control-group/api.md +45 -0
- package/skills/cds-builder/references/components/cds-selection-control-group/examples.md +349 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/api.md +30 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/examples.md +297 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-skeleton-loader/tokens.md +62 -0
- package/skills/cds-builder/references/components/cds-slide-group/api.md +76 -0
- package/skills/cds-builder/references/components/cds-slide-group/examples.md +304 -0
- package/skills/cds-builder/references/components/cds-slide-group/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-slide-group/tokens.md +11 -0
- package/skills/cds-builder/references/components/cds-slide-view/api.md +88 -0
- package/skills/cds-builder/references/components/cds-slide-view/examples.md +311 -0
- package/skills/cds-builder/references/components/cds-slide-view/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-slide-view/tokens.md +14 -0
- package/skills/cds-builder/references/components/cds-stages/api.md +31 -0
- package/skills/cds-builder/references/components/cds-stages/examples.md +230 -0
- package/skills/cds-builder/references/components/cds-stages/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-stages/tokens.md +27 -0
- package/skills/cds-builder/references/components/cds-status/api.md +24 -0
- package/skills/cds-builder/references/components/cds-status/examples.md +170 -0
- package/skills/cds-builder/references/components/cds-status/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-status/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-steps/api.md +176 -0
- package/skills/cds-builder/references/components/cds-steps/examples.md +320 -0
- package/skills/cds-builder/references/components/cds-steps/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-steps/tokens.md +52 -0
- package/skills/cds-builder/references/components/cds-surface/api.md +30 -0
- package/skills/cds-builder/references/components/cds-surface/examples.md +106 -0
- package/skills/cds-builder/references/components/cds-table/api.md +120 -0
- package/skills/cds-builder/references/components/cds-table/examples.md +3049 -0
- package/skills/cds-builder/references/components/cds-table/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-table/tokens.md +92 -0
- package/skills/cds-builder/references/components/cds-tabs/api.md +179 -0
- package/skills/cds-builder/references/components/cds-tabs/examples.md +610 -0
- package/skills/cds-builder/references/components/cds-tabs/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tabs/tokens.md +40 -0
- package/skills/cds-builder/references/components/cds-tag/api.md +64 -0
- package/skills/cds-builder/references/components/cds-tag/examples.md +278 -0
- package/skills/cds-builder/references/components/cds-tag/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tag/tokens.md +67 -0
- package/skills/cds-builder/references/components/cds-tag-group/api.md +58 -0
- package/skills/cds-builder/references/components/cds-tag-group/examples.md +346 -0
- package/skills/cds-builder/references/components/cds-tag-group/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tag-group/tokens.md +18 -0
- package/skills/cds-builder/references/components/cds-text-area/api.md +113 -0
- package/skills/cds-builder/references/components/cds-text-area/examples.md +327 -0
- package/skills/cds-builder/references/components/cds-text-area/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-text-area/tokens.md +16 -0
- package/skills/cds-builder/references/components/cds-text-input/api.md +115 -0
- package/skills/cds-builder/references/components/cds-text-input/examples.md +546 -0
- package/skills/cds-builder/references/components/cds-text-input/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-text-input/tokens.md +17 -0
- package/skills/cds-builder/references/components/cds-time-picker/api.md +44 -0
- package/skills/cds-builder/references/components/cds-time-picker/examples.md +407 -0
- package/skills/cds-builder/references/components/cds-time-picker/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-time-picker/tokens.md +23 -0
- package/skills/cds-builder/references/components/cds-toast/api.md +97 -0
- package/skills/cds-builder/references/components/cds-toast/examples.md +296 -0
- package/skills/cds-builder/references/components/cds-toast/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-toast/tokens.md +26 -0
- package/skills/cds-builder/references/components/cds-toast-queue/api.md +86 -0
- package/skills/cds-builder/references/components/cds-toast-queue/examples.md +227 -0
- package/skills/cds-builder/references/components/cds-toggle/api.md +97 -0
- package/skills/cds-builder/references/components/cds-toggle/examples.md +335 -0
- package/skills/cds-builder/references/components/cds-toggle/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-toggle/tokens.md +91 -0
- package/skills/cds-builder/references/components/cds-toolbar/api.md +44 -0
- package/skills/cds-builder/references/components/cds-toolbar/examples.md +186 -0
- package/skills/cds-builder/references/components/cds-toolbar/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-toolbar/tokens.md +13 -0
- package/skills/cds-builder/references/components/cds-tooltip/api.md +83 -0
- package/skills/cds-builder/references/components/cds-tooltip/examples.md +321 -0
- package/skills/cds-builder/references/components/cds-tooltip/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tooltip/tokens.md +25 -0
- package/skills/cds-builder/references/components/cds-tree/api.md +169 -0
- package/skills/cds-builder/references/components/cds-tree/examples.md +785 -0
- package/skills/cds-builder/references/components/cds-tree/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-tree/tokens.md +39 -0
- package/skills/cds-builder/references/components/cds-uploader/api.md +105 -0
- package/skills/cds-builder/references/components/cds-uploader/examples.md +553 -0
- package/skills/cds-builder/references/components/cds-uploader/guidelines.md +10 -0
- package/skills/cds-builder/references/components/cds-uploader/tokens.md +26 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/api.md +60 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/examples.md +272 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/guidelines.md +9 -0
- package/skills/cds-builder/references/components/cds-virtual-scroll/tokens.md +13 -0
- package/skills/cds-builder/references/guides/conventions.md +48 -0
- package/skills/cds-builder/references/guides/date-utils.md +301 -0
- package/skills/cds-builder/references/guides/display-and-platform.md +263 -0
- package/skills/cds-builder/references/guides/forms.md +77 -0
- package/skills/cds-builder/references/guides/global-configuration.md +354 -0
- package/skills/cds-builder/references/guides/icons.md +172 -0
- package/skills/cds-builder/references/guides/internationalization.md +470 -0
- package/skills/cds-builder/references/guides/migration-cds3-to-cds4.md +49 -0
- package/skills/cds-builder/references/guides/sass-variables.md +238 -0
- package/skills/cds-builder/references/guides/setup.md +81 -0
- package/skills/cds-builder/references/guides/tailwindcss.md +93 -0
- package/skills/cds-builder/references/guides/theme.md +343 -0
- package/skills/cds-builder/references/guides/treeshaking.md +237 -0
- package/skills/cds-builder/references/patterns/dialogs.md +89 -0
- package/skills/cds-builder/references/patterns/forms.md +101 -0
- package/skills/cds-builder/references/patterns/page-layout.md +78 -0
- package/skills/cds-builder/references/patterns/tables.md +87 -0
- package/skills/cds-builder/references/tokens/colors.md +507 -0
- package/skills/cds-builder/references/tokens/themes.md +981 -0
- package/skills/cds-builder/scripts/check-contracts.mjs +264 -0
- package/skills/cds-migrate/GENERATION.md +44 -0
- package/skills/cds-migrate/SKILL.md +160 -0
- package/skills/cds-migrate/references/migration-full.md +2225 -0
- package/skills/cds-refactor/GENERATION.md +44 -0
- package/skills/cds-refactor/SKILL.md +187 -0
- package/skills/cds-refactor/references/html-to-cds.md +80 -0
- package/skills/cds-refactor/references/review-checklist.md +73 -0
- package/skills/cds-refactor/references/tailwind-to-cds.md +65 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* CDS contract linter — checks Cds* component usage in .vue files against
|
|
4
|
+
* the generated API reference of this skill (`references/components/*/api.md`).
|
|
5
|
+
*
|
|
6
|
+
* An invented prop or event does not throw at runtime — it is silently
|
|
7
|
+
* ignored, which is the most common cause of "why doesn't it work". This
|
|
8
|
+
* script catches that mechanically:
|
|
9
|
+
*
|
|
10
|
+
* node scripts/check-contracts.mjs src/components/MyForm.vue
|
|
11
|
+
* node scripts/check-contracts.mjs src/ # walks *.vue recursively
|
|
12
|
+
*
|
|
13
|
+
* Exit code 0 — everything matches the contracts; 1 — problems found;
|
|
14
|
+
* 2 — could not run (no reference, no input files).
|
|
15
|
+
*
|
|
16
|
+
* The reference is resolved relative to this script, so the linter works
|
|
17
|
+
* wherever the skill directory is installed. No dependencies, Node >= 18.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
21
|
+
import { dirname, join, resolve } from 'node:path';
|
|
22
|
+
import { fileURLToPath } from 'node:url';
|
|
23
|
+
|
|
24
|
+
const REFERENCES = resolve(dirname(fileURLToPath(import.meta.url)), '..', 'references', 'components');
|
|
25
|
+
|
|
26
|
+
/** Attributes legal on any component: passed through to the DOM or Vue built-ins. */
|
|
27
|
+
const PASS_THROUGH = new Set([
|
|
28
|
+
'class',
|
|
29
|
+
'style',
|
|
30
|
+
'id',
|
|
31
|
+
'ref',
|
|
32
|
+
'key',
|
|
33
|
+
'is',
|
|
34
|
+
'name',
|
|
35
|
+
'title',
|
|
36
|
+
'role',
|
|
37
|
+
'tabindex',
|
|
38
|
+
'type',
|
|
39
|
+
'autofocus',
|
|
40
|
+
'for',
|
|
41
|
+
'slot'
|
|
42
|
+
]);
|
|
43
|
+
const PASS_PREFIXES = ['aria-', 'data-', 'v-'];
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Native HTML attributes that legitimately fall through to the inner
|
|
47
|
+
* element (Vue fallthrough attrs): `maxlength` on a text field, `target`
|
|
48
|
+
* on a link, a static `value` in display-only examples. They are not part
|
|
49
|
+
* of the CDS contract, but they are not invented API either.
|
|
50
|
+
*/
|
|
51
|
+
const NATIVE_ATTRS = new Set([
|
|
52
|
+
'href',
|
|
53
|
+
'target',
|
|
54
|
+
'rel',
|
|
55
|
+
'download',
|
|
56
|
+
'value',
|
|
57
|
+
'placeholder',
|
|
58
|
+
'maxlength',
|
|
59
|
+
'minlength',
|
|
60
|
+
'min',
|
|
61
|
+
'max',
|
|
62
|
+
'step',
|
|
63
|
+
'pattern',
|
|
64
|
+
'rows',
|
|
65
|
+
'cols',
|
|
66
|
+
'wrap',
|
|
67
|
+
'accept',
|
|
68
|
+
'multiple',
|
|
69
|
+
'autocomplete',
|
|
70
|
+
'inputmode',
|
|
71
|
+
'enterkeyhint',
|
|
72
|
+
'spellcheck',
|
|
73
|
+
'autocapitalize',
|
|
74
|
+
'list',
|
|
75
|
+
'form',
|
|
76
|
+
'alt',
|
|
77
|
+
'src',
|
|
78
|
+
'width',
|
|
79
|
+
'height',
|
|
80
|
+
'loading',
|
|
81
|
+
'draggable',
|
|
82
|
+
'lang',
|
|
83
|
+
'dir',
|
|
84
|
+
'required',
|
|
85
|
+
'readonly',
|
|
86
|
+
'disabled'
|
|
87
|
+
]);
|
|
88
|
+
|
|
89
|
+
/** Native DOM events that components re-emit or that land on the root element. */
|
|
90
|
+
const NATIVE_EVENTS = new Set([
|
|
91
|
+
'click',
|
|
92
|
+
'dblclick',
|
|
93
|
+
'submit',
|
|
94
|
+
'input',
|
|
95
|
+
'change',
|
|
96
|
+
'focus',
|
|
97
|
+
'blur',
|
|
98
|
+
'keydown',
|
|
99
|
+
'keyup',
|
|
100
|
+
'keypress',
|
|
101
|
+
'mousedown',
|
|
102
|
+
'mouseup',
|
|
103
|
+
'mouseenter',
|
|
104
|
+
'mouseleave',
|
|
105
|
+
'mousemove',
|
|
106
|
+
'touchstart',
|
|
107
|
+
'touchend',
|
|
108
|
+
'scroll',
|
|
109
|
+
'wheel',
|
|
110
|
+
'dragstart',
|
|
111
|
+
'dragend',
|
|
112
|
+
'drop',
|
|
113
|
+
'contextmenu'
|
|
114
|
+
]);
|
|
115
|
+
|
|
116
|
+
const kebabToCamel = (s) => s.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
|
|
117
|
+
const kebabToPascal = (s) => s.replace(/(?:^|-)([a-z0-9])/g, (_, c) => c.toUpperCase());
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Contract index: component name (`CdsSelect`) → { props, events, slots, file }.
|
|
121
|
+
* One api.md often documents a whole family (`cds-tabs/api.md` → CdsTabs,
|
|
122
|
+
* CdsTab, CdsTabsView…), so every `## CdsX` section is indexed separately.
|
|
123
|
+
*/
|
|
124
|
+
function buildContractIndex() {
|
|
125
|
+
const index = new Map();
|
|
126
|
+
if (!existsSync(REFERENCES)) return index;
|
|
127
|
+
|
|
128
|
+
for (const dir of readdirSync(REFERENCES)) {
|
|
129
|
+
const apiFile = join(REFERENCES, dir, 'api.md');
|
|
130
|
+
if (!existsSync(apiFile)) continue;
|
|
131
|
+
const text = readFileSync(apiFile, 'utf-8');
|
|
132
|
+
|
|
133
|
+
for (const section of text.split(/^## (?=Cds)/m).slice(1)) {
|
|
134
|
+
const name = section.slice(0, section.indexOf('\n')).trim();
|
|
135
|
+
const contract = {
|
|
136
|
+
props: new Set(),
|
|
137
|
+
events: new Set(),
|
|
138
|
+
slots: new Set(),
|
|
139
|
+
file: `references/components/${dir}/api.md`
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
for (const [label, key] of [
|
|
143
|
+
['Props', 'props'],
|
|
144
|
+
['Events', 'events'],
|
|
145
|
+
['Slots', 'slots']
|
|
146
|
+
]) {
|
|
147
|
+
const match = section.match(new RegExp(`\\*\\*${label}\\*\\*\\n\\n((?:\\|.*\\n)+)`));
|
|
148
|
+
if (!match) continue;
|
|
149
|
+
for (const line of match[1].split('\n').slice(2)) {
|
|
150
|
+
const cell = line.split('|')[1]?.trim().replace(/`/g, '');
|
|
151
|
+
if (cell) contract[key].add(cell);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
index.set(name, contract);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return index;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const TAG_RE = /<(Cds[A-Za-z0-9]+|cds-[a-z0-9-]+)((?:[^>"']|"[^"]*"|'[^']*')*?)\/?>/gs;
|
|
163
|
+
const ATTR_RE = /(?:^|\s)([@:#]?[\w:.-]+)(?:=(?:"[^"]*"|'[^']*'))?/g;
|
|
164
|
+
|
|
165
|
+
function checkFile(path, index) {
|
|
166
|
+
const source = readFileSync(path, 'utf-8');
|
|
167
|
+
const problems = [];
|
|
168
|
+
|
|
169
|
+
for (const tag of source.matchAll(TAG_RE)) {
|
|
170
|
+
let [, component, attrs] = tag;
|
|
171
|
+
if (component.startsWith('cds-')) component = kebabToPascal(component);
|
|
172
|
+
const line = source.slice(0, tag.index).split('\n').length;
|
|
173
|
+
|
|
174
|
+
// Транзишены (CdsTransitionFade, …) — экспорт библиотеки, но не
|
|
175
|
+
// компоненты справочника: у них нет собственного api.md.
|
|
176
|
+
if (component.startsWith('CdsTransition')) continue;
|
|
177
|
+
|
|
178
|
+
const contract = index.get(component);
|
|
179
|
+
if (!contract) {
|
|
180
|
+
problems.push({ line, component, kind: 'component', name: component });
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
for (const attr of attrs.matchAll(ATTR_RE)) {
|
|
185
|
+
const raw = attr[1];
|
|
186
|
+
if (!raw || raw === '/') continue;
|
|
187
|
+
const isEvent = raw.startsWith('@');
|
|
188
|
+
let name = raw.replace(/^[@:#]/, '').split('.')[0];
|
|
189
|
+
if (!name || raw.startsWith('#')) continue; // slot shorthand lives on <template>
|
|
190
|
+
if (raw.startsWith('v-') || PASS_PREFIXES.some((p) => name.startsWith(p)) || PASS_THROUGH.has(name)) continue;
|
|
191
|
+
|
|
192
|
+
if (isEvent) {
|
|
193
|
+
const known =
|
|
194
|
+
contract.events.has(name) ||
|
|
195
|
+
contract.events.has(kebabToCamel(name)) ||
|
|
196
|
+
name.startsWith('update:') ||
|
|
197
|
+
NATIVE_EVENTS.has(name);
|
|
198
|
+
if (!known) problems.push({ line, component, kind: 'event', name, file: contract.file });
|
|
199
|
+
} else if (!contract.props.has(name) && !contract.props.has(kebabToCamel(name)) && !NATIVE_ATTRS.has(name)) {
|
|
200
|
+
problems.push({ line, component, kind: 'prop', name, file: contract.file });
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
return problems;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function collectVueFiles(paths) {
|
|
209
|
+
const files = [];
|
|
210
|
+
const walk = (p) => {
|
|
211
|
+
const stat = statSync(p);
|
|
212
|
+
if (stat.isDirectory()) {
|
|
213
|
+
for (const entry of readdirSync(p)) {
|
|
214
|
+
if (entry === 'node_modules' || entry.startsWith('.')) continue;
|
|
215
|
+
walk(join(p, entry));
|
|
216
|
+
}
|
|
217
|
+
} else if (p.endsWith('.vue')) {
|
|
218
|
+
files.push(p);
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
for (const p of paths) {
|
|
222
|
+
if (existsSync(p)) walk(p);
|
|
223
|
+
else console.error(`! not found: ${p}`);
|
|
224
|
+
}
|
|
225
|
+
return files;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const args = process.argv.slice(2);
|
|
229
|
+
if (args.length === 0) {
|
|
230
|
+
console.error('Usage: node check-contracts.mjs <file.vue | dir> [...]');
|
|
231
|
+
process.exit(2);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
const index = buildContractIndex();
|
|
235
|
+
if (index.size === 0) {
|
|
236
|
+
console.error(`! contract reference not found at ${REFERENCES} — is the cds-builder skill installed completely?`);
|
|
237
|
+
process.exit(2);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
const files = collectVueFiles(args);
|
|
241
|
+
if (files.length === 0) {
|
|
242
|
+
console.error('! no .vue files found in the given paths');
|
|
243
|
+
process.exit(2);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
let total = 0;
|
|
247
|
+
for (const file of files) {
|
|
248
|
+
const problems = checkFile(file, index);
|
|
249
|
+
total += problems.length;
|
|
250
|
+
for (const p of problems) {
|
|
251
|
+
if (p.kind === 'component') {
|
|
252
|
+
console.log(`${file}:${p.line} — component <${p.name}> does not exist in CDS`);
|
|
253
|
+
} else {
|
|
254
|
+
console.log(`${file}:${p.line} — <${p.component}> has no ${p.kind} \`${p.name}\` (see ${p.file})`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (total === 0) {
|
|
260
|
+
console.log(`✓ ${files.length} file(s) checked — every component, prop and event exists in the contracts`);
|
|
261
|
+
} else {
|
|
262
|
+
console.log(`✗ ${total} problem(s): an unknown prop/event is silently ignored at runtime — fix or remove it`);
|
|
263
|
+
process.exit(1);
|
|
264
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Генерация скиллов CDS
|
|
2
|
+
|
|
3
|
+
- Версия `@central-design-system/components`: 4.0.0-alpha.6
|
|
4
|
+
- Скиллы в пакете: cds-builder, cds-migrate, cds-refactor
|
|
5
|
+
|
|
6
|
+
## Статистика
|
|
7
|
+
|
|
8
|
+
- Семейств компонентов: 79
|
|
9
|
+
- Контрактов meta.json: 125
|
|
10
|
+
- Извлечено примеров: 710
|
|
11
|
+
- Пропущено историй (неожиданная форма):
|
|
12
|
+
- нет
|
|
13
|
+
|
|
14
|
+
## Полнота документации
|
|
15
|
+
|
|
16
|
+
Счётчики ниже — долг документации, а не ошибка генерации: справочники
|
|
17
|
+
собираются из того, что заполнено, и растут по мере переработки страниц
|
|
18
|
+
компонентов.
|
|
19
|
+
|
|
20
|
+
- Описание («что это и когда брать»): 77 из 79
|
|
21
|
+
- Подсказка «Смотрите также»: 77 из 79
|
|
22
|
+
- Рекомендации Do/Don't: 60 из 79 (пар правил: 169)
|
|
23
|
+
- Props/events/slots/exposed без описания: 0
|
|
24
|
+
- Без описания: CdsApp, CdsDefaultsProvider
|
|
25
|
+
- Без рекомендаций: CdsApp, CdsButtonGroup, CdsCheckboxButton, CdsCounter, CdsDefaultsProvider, CdsDescription, CdsField, CdsInput, CdsLabel, CdsLoader, CdsMain, CdsMessages, CdsNotificationAlert, CdsPage, CdsRadio, CdsSelectionControl, CdsSelectionControlGroup, CdsSurface, CdsToastQueue
|
|
26
|
+
- Без примеров: CdsApp, CdsDefaultsProvider, CdsRadio
|
|
27
|
+
|
|
28
|
+
## Перевод (en)
|
|
29
|
+
|
|
30
|
+
Генераторы читают английские страницы (`docs/en/`) и `@en` из JSDoc; там, где
|
|
31
|
+
перевода ещё нет, подставляется русский текст — это долг перевода.
|
|
32
|
+
|
|
33
|
+
- Страниц компонентов переведено: 77 из 79
|
|
34
|
+
- Страниц: 107 — ok 101, outdated 0, drift 0, missing 6
|
|
35
|
+
- Props/events/slots/exposed без `@en`: 0
|
|
36
|
+
- Подписи DoDont/AnatomyDemo без `-en`/`labelEn`: 9
|
|
37
|
+
|
|
38
|
+
## Регенерация
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
cd packages/components
|
|
42
|
+
bun run generate:meta # если менялись компоненты
|
|
43
|
+
bun run generate:skill
|
|
44
|
+
```
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cds-migrate
|
|
3
|
+
description: >-
|
|
4
|
+
Migrating a project from CDS 3 to CDS 4 (`@central-design-system/components`,
|
|
5
|
+
Central Design System, B2B-Center): package upgrade, style entry points,
|
|
6
|
+
component and prop renames, icons, CSS architecture, composables and hooks.
|
|
7
|
+
Use this skill when the user bumps the CDS version, hits breakage after an
|
|
8
|
+
upgrade, sees a `[CDS UPGRADE]` warning in the console, or uses CDS 3
|
|
9
|
+
patterns — `@central-design-system/components/dist/cds.css`,
|
|
10
|
+
`@central-design-system/icons`, `CdsDropdown`, `CdsRadioButton`,
|
|
11
|
+
`CdsProgress`, `CdsTabsV2`, `CdsCheckboxGroup`, `CdsContainer` — even if the
|
|
12
|
+
words "migration" or "upgrade" were never said. RU triggers: «мигрируй с
|
|
13
|
+
CDS 3», «обнови CDS до 4», «после обновления CDS сломались стили»,
|
|
14
|
+
«не находит dist/cds.css», «что изменилось в CDS 4», «CdsDropdown не
|
|
15
|
+
работает», «предупреждение CDS UPGRADE». EN triggers: «migrate to CDS 4»,
|
|
16
|
+
«upgrade central design system», «breaking changes CDS 4».
|
|
17
|
+
metadata:
|
|
18
|
+
author: cds-team
|
|
19
|
+
version: "4.0.0-alpha.6"
|
|
20
|
+
source: https://gitlab.b2b-center.ru/cds/central-design-system
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# CDS 3 → CDS 4 migration
|
|
24
|
+
|
|
25
|
+
You are migrating a project from CDS 3 to CDS 4 (version 4.0.0-alpha.6). Work
|
|
26
|
+
step by step and do not guess the project's state — look at the code first.
|
|
27
|
+
|
|
28
|
+
The full guide with every change and its Before / After pairs is
|
|
29
|
+
`references/migration-full.md` (currently in Russian). This file covers the
|
|
30
|
+
order of work and what comes up most often; when in doubt, open the full
|
|
31
|
+
guide.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Step 1 — Inspect the project
|
|
36
|
+
|
|
37
|
+
Look at `package.json`:
|
|
38
|
+
|
|
39
|
+
- the `@central-design-system/components` version (CDS 3 — `3.x`, CDS 4 —
|
|
40
|
+
`4.x`);
|
|
41
|
+
- whether `@central-design-system/icons` is present (the package is deprecated
|
|
42
|
+
in CDS 4);
|
|
43
|
+
- the bundler and framework, the package manager by the lock file.
|
|
44
|
+
|
|
45
|
+
Then find the spots in the code that are guaranteed to change:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
grep -rn "dist/cds.css\|@central-design-system/icons" src/
|
|
49
|
+
grep -rn "CdsDropdown\|CdsRadioButton\|CdsProgress\|CdsTabsV2\|CdsCheckboxGroup\|CdsContainer" src/
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Tell the user what you found before editing anything: the scope of the
|
|
53
|
+
migration must be clear up front.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 2 — Update the package and the style entry point
|
|
58
|
+
|
|
59
|
+
The CSS import changed — this is the breaking change everyone hits:
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
// Before (CDS 3)
|
|
63
|
+
import '@central-design-system/components/dist/cds.css';
|
|
64
|
+
|
|
65
|
+
// After (CDS 4)
|
|
66
|
+
import '@central-design-system/components/styles';
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`dist/cds.css` is no longer a public entry point; the old path simply will
|
|
70
|
+
not resolve.
|
|
71
|
+
|
|
72
|
+
The global reset from CDS 3 is now **off by default**. If the layout "broke"
|
|
73
|
+
after the upgrade, enable it explicitly:
|
|
74
|
+
|
|
75
|
+
```scss
|
|
76
|
+
@use '@central-design-system/components/styles' with ($legacy-reset: true);
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Step 3 — Icons
|
|
82
|
+
|
|
83
|
+
The `@central-design-system/icons` package is marked deprecated but keeps
|
|
84
|
+
working through a legacy mode — icon migration can be deferred and done as a
|
|
85
|
+
separate step. How to move to iconpacks via `createCds({ icons })` — section
|
|
86
|
+
2 (Icons) of the full guide.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Step 4 — Component renames
|
|
91
|
+
|
|
92
|
+
| CDS 3 | CDS 4 |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| `CdsDropdown` | `CdsSelect` (native `<select>` — via the `native-select` prop) |
|
|
95
|
+
| `CdsRadioButton` | `CdsRadioGroup` |
|
|
96
|
+
| `CdsProgress` | `CdsProgressBar` |
|
|
97
|
+
| `CdsTabsV2` | `CdsTabs` |
|
|
98
|
+
| `CdsCheckboxGroup` | removed — use `CdsCheckbox` on its own |
|
|
99
|
+
| `CdsContainer` | removed |
|
|
100
|
+
|
|
101
|
+
Renaming is only the first step: **the new component's prop contract may have
|
|
102
|
+
changed**. After replacing the name, check the component's `api.md` in the
|
|
103
|
+
`cds-builder` skill (`../cds-builder/references/components/<slug>/api.md`). If
|
|
104
|
+
`cds-builder` is not installed, the contracts are in the npm package:
|
|
105
|
+
`node_modules/@central-design-system/components/llms/llms-components.txt`.
|
|
106
|
+
|
|
107
|
+
Check `CdsBadge` separately: `count` → `content`, `limited` → `:max`, the
|
|
108
|
+
`invertColor` prop was removed.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Step 5 — Styles and tokens
|
|
113
|
+
|
|
114
|
+
The CSS architecture moved to ITCSS and native `@layer`. The practical
|
|
115
|
+
consequence: global overrides of CDS styles written without `!important` may
|
|
116
|
+
stop applying — the cascade is now determined by layers. Section 4 (Styles
|
|
117
|
+
and tokens) of the full guide describes how to override correctly.
|
|
118
|
+
|
|
119
|
+
While you are at it, replace the remaining hardcoded colors with `--cds-*`
|
|
120
|
+
tokens — theme switching in CDS 4 depends on them.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 6 — Composables, hooks and exports
|
|
125
|
+
|
|
126
|
+
Sections 5 (Composables), 6 (Hooks) and 7 (Build and exports) of the full
|
|
127
|
+
guide. This is where import changes and public utility changes live — check
|
|
128
|
+
them if the build complains about a missing export.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Step 7 — Verification
|
|
133
|
+
|
|
134
|
+
Go through the list and check off every item:
|
|
135
|
+
|
|
136
|
+
- [ ] No `dist/cds.css` left in the code, styles are imported via `/styles`.
|
|
137
|
+
- [ ] The application builds without import resolution errors.
|
|
138
|
+
- [ ] Not a single old component name:
|
|
139
|
+
`grep -rn "CdsDropdown\|CdsRadioButton\|CdsProgress\b\|CdsTabsV2\|CdsCheckboxGroup\|CdsContainer" src/`
|
|
140
|
+
- [ ] Dev mode was started, the console was reviewed: every `[CDS UPGRADE]`
|
|
141
|
+
warning is handled — it points at a deprecated prop.
|
|
142
|
+
- [ ] The layout was checked visually: if it broke — look at `legacy-reset`
|
|
143
|
+
(step 2) or CSS layers (step 5).
|
|
144
|
+
- [ ] Dark theme and theme switching work, if the project uses them.
|
|
145
|
+
|
|
146
|
+
Report what remains open — an unfinished migration is worse than one never
|
|
147
|
+
started if the user believes it is complete.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## When to ask
|
|
152
|
+
|
|
153
|
+
Act on your own for mechanical replacements (paths, component names). Ask if:
|
|
154
|
+
|
|
155
|
+
- the project overrides CDS styles and it is unclear which overrides are
|
|
156
|
+
intentional;
|
|
157
|
+
- the migration touches many files and the user has not said whether to do
|
|
158
|
+
everything at once or in parts;
|
|
159
|
+
- you hit a CDS 3 pattern the full guide does not cover — do not invent a
|
|
160
|
+
replacement, say so instead.
|