@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,64 @@
|
|
|
1
|
+
# CdsTag — API
|
|
2
|
+
|
|
3
|
+
> Generated from meta.json by `bun run generate:skill`. Do not edit manually.
|
|
4
|
+
> Examples: [examples.md](examples.md) · Guidelines: [guidelines.md](guidelines.md) · Tokens: [tokens.md](tokens.md)
|
|
5
|
+
|
|
6
|
+
A tag is a compact label next to an object: the status of a request, a product category, a selected filter. It takes a color from the palette, carries an icon or an avatar, can be closed with a cross and can work as a link.
|
|
7
|
+
|
|
8
|
+
## CdsTag
|
|
9
|
+
|
|
10
|
+
**Props**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Default | Required | Description |
|
|
13
|
+
| --- | --- | --- | --- | --- |
|
|
14
|
+
| `activeClass` | `string \| undefined` | — | no | CSS class applied to the active (selected) link tag. |
|
|
15
|
+
| `activeColor` | `string \| undefined` | — | no | Color of the component in its active state |
|
|
16
|
+
| `appendAvatar` | `string \| undefined` | — | no | Avatar displayed after (to the right of) the tag content. |
|
|
17
|
+
| `appendIcon` | `IconValue \| undefined` | — | no | Icon displayed after (to the right of) the tag content. |
|
|
18
|
+
| `closable` | `boolean \| undefined` | — | no | Adds a close button that hides the tag. |
|
|
19
|
+
| `closeIcon` | `IconValue \| undefined` | `'remove'` | no | Icon of the close button. |
|
|
20
|
+
| `closeLabel` | `string \| undefined` | `'$cds.close'` | no | Accessible label (aria-label) for the close button. |
|
|
21
|
+
| `color` | `string \| undefined` | — | no | Component color |
|
|
22
|
+
| `content` | `string \| number \| undefined` | — | no | Content displayed in the component. |
|
|
23
|
+
| `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
|
|
24
|
+
| `draggable` | `boolean \| undefined` | — | no | Makes the tag draggable (native drag-and-drop). |
|
|
25
|
+
| `exact` | `boolean \| undefined` | — | no | If true, the active state applies only on an exact route match |
|
|
26
|
+
| `filter` | `boolean \| undefined` | — | no | Shows the selection indicator icon when the tag is used inside a group (CdsTagGroup). |
|
|
27
|
+
| `filterIcon` | `IconValue \| undefined` | `'check-fill'` | no | Icon of the selection indicator (relevant together with `filter`). |
|
|
28
|
+
| `href` | `string \| undefined` | — | no | The `href` attribute of the link. When set, the component behaves as a regular link |
|
|
29
|
+
| `label` | `boolean \| undefined` | — | no | Applies the “label” style with a smaller corner radius. |
|
|
30
|
+
| `link` | `boolean \| undefined` | — | no | Gives the tag the styles and the behavior of a link. |
|
|
31
|
+
| `modelValue` | `boolean \| undefined` | `true` | no | Visibility of the tag (v-model). When `false` the tag is not rendered. |
|
|
32
|
+
| `pill` | `boolean \| undefined` | — | no | Makes the corners of the tag fully rounded. |
|
|
33
|
+
| `prependAvatar` | `string \| undefined` | — | no | Avatar displayed before (to the left of) the tag content. |
|
|
34
|
+
| `prependIcon` | `IconValue \| undefined` | — | no | Icon displayed before (to the left of) the tag content. |
|
|
35
|
+
| `removable` | `boolean \| undefined` | — | no | Adds a remove button (alias for `closable`). |
|
|
36
|
+
| `replace` | `boolean \| undefined` | — | no | If true, navigation replaces the current history entry instead of pushing a new one |
|
|
37
|
+
| `selectedClass` | `string \| undefined` | — | no | CSS class applied in the selected state |
|
|
38
|
+
| `size` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | `'md'` | no | Size of the component |
|
|
39
|
+
| `tag` | `string \| JSXComponent<any> \| undefined` | `'span'` | no | Custom HTML tag or component to render |
|
|
40
|
+
| `text` | `string \| number \| undefined` | — | no | Text displayed in the component. |
|
|
41
|
+
| `textColor` | `string \| undefined` | — | no | Text color of the component |
|
|
42
|
+
| `theme` | `string \| undefined` | — | no | Component theme |
|
|
43
|
+
| `to` | `LinkTo \| undefined` | — | no | Target route or route location object for RouterLink. When set, the component behaves as a RouterLink |
|
|
44
|
+
| `value` | `any` | — | no | Value of the component within the group |
|
|
45
|
+
|
|
46
|
+
**Events**
|
|
47
|
+
|
|
48
|
+
| Name | Type | Description |
|
|
49
|
+
| --- | --- | --- |
|
|
50
|
+
| `click` | `[e: MouseEvent \| KeyboardEvent]` | Click on the tag (with a mouse or from the keyboard). |
|
|
51
|
+
| `click:close` | `[e: MouseEvent]` | Click on the close button of the tag. |
|
|
52
|
+
| `group:selected` | `[value: { value: boolean; }]` | Change of the tag selection state inside a group. |
|
|
53
|
+
| `update:modelValue` | `[value: boolean]` | Change of the tag visibility (v-model). |
|
|
54
|
+
|
|
55
|
+
**Slots**
|
|
56
|
+
|
|
57
|
+
| Name | Type | Description |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| `append` | `any` | Content after the main content (in place of the append icon/avatar). |
|
|
60
|
+
| `close` | `any` | Custom content of the close button. |
|
|
61
|
+
| `default` | `{ isSelected: boolean \| undefined; selectedClass: boolean \| (string \| undefined)[] \| undefined; select: ((value: boolean) => void) \| undefined; toggle: (() => void) \| undefined; value: unknown; disabled: boolean; }` | Default content of the tag. The slot props expose the group state (selection, toggling). |
|
|
62
|
+
| `filter` | `any` | Custom content of the selection indicator (relevant together with `filter`). |
|
|
63
|
+
| `label` | `any` | Content of the tag label. |
|
|
64
|
+
| `prepend` | `any` | Content before the main content (in place of the prepend icon/avatar). |
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# CdsTag — usage examples
|
|
2
|
+
|
|
3
|
+
> Extracted from Storybook stories (`docs/*.stories.ts`) by `bun run generate:skill`. Do not edit manually.
|
|
4
|
+
> The full component contract is in [api.md](api.md). `v-bind="args"` in templates refers to the props from the **Args** block of the corresponding example.
|
|
5
|
+
|
|
6
|
+
A tag is a compact label next to an object: the status of a request, a product category, a selected filter. It takes a color from the palette, carries an icon or an avatar, can be closed with a cross and can work as a link.
|
|
7
|
+
|
|
8
|
+
## Colors
|
|
9
|
+
|
|
10
|
+
The `color` prop paints the tag in one of the 11 palette aliases; without it the tag stays neutral gray. The text color can be overridden with `text-color` when needed. The `disabled` prop swaps the tag colors for the service colors of the disabled state and removes the reaction to clicks.
|
|
11
|
+
|
|
12
|
+
**Example (SFC):**
|
|
13
|
+
|
|
14
|
+
```vue
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { CdsTagConstants } from '@cds/components/CdsTag/api/CdsTag.constants';
|
|
17
|
+
import { CdsTag } from '@central-design-system/components';
|
|
18
|
+
|
|
19
|
+
const colors = CdsTagConstants.colors;
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<div class="flex flex-wrap justify-center gap-2">
|
|
24
|
+
<CdsTag v-for="color in colors" :key="color" :text="color" :color="color" />
|
|
25
|
+
</div>
|
|
26
|
+
</template>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Sizes
|
|
30
|
+
|
|
31
|
+
The `size` prop offers five sizes from `xs` to `xl`. The default size is `md`.
|
|
32
|
+
|
|
33
|
+
**Example (SFC):**
|
|
34
|
+
|
|
35
|
+
```vue
|
|
36
|
+
<script setup lang="ts">
|
|
37
|
+
import { CdsTagConstants } from '@cds/components/CdsTag/api/CdsTag.constants';
|
|
38
|
+
import { CdsTag } from '@central-design-system/components';
|
|
39
|
+
|
|
40
|
+
const sizes = CdsTagConstants.sizes;
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<template>
|
|
44
|
+
<div class="flex flex-wrap items-center justify-center gap-2">
|
|
45
|
+
<CdsTag v-for="size in sizes" :key="size" :text="size" :size="size" />
|
|
46
|
+
</div>
|
|
47
|
+
</template>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Shape
|
|
51
|
+
|
|
52
|
+
The `pill` prop rounds the corners completely — this shape emphasizes that the label stands on its own and looks good in a tag cloud.
|
|
53
|
+
|
|
54
|
+
**Example (SFC):**
|
|
55
|
+
|
|
56
|
+
```vue
|
|
57
|
+
<script setup lang="ts">
|
|
58
|
+
import { CdsTag } from '@central-design-system/components';
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<template>
|
|
62
|
+
<div class="flex justify-center gap-2">
|
|
63
|
+
<CdsTag text="Обычный тег" />
|
|
64
|
+
<CdsTag pill text="Тег pill" />
|
|
65
|
+
</div>
|
|
66
|
+
</template>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Icons and avatars
|
|
70
|
+
|
|
71
|
+
The `prepend-icon` and `append-icon` props add an icon before and after the text, `prepend-avatar` and `append-avatar` add a round avatar. The size of the icon and the avatar follows the size of the tag.
|
|
72
|
+
|
|
73
|
+
**Example (SFC):**
|
|
74
|
+
|
|
75
|
+
```vue
|
|
76
|
+
<script setup lang="ts">
|
|
77
|
+
import { CdsTag } from '@central-design-system/components';
|
|
78
|
+
</script>
|
|
79
|
+
|
|
80
|
+
<template>
|
|
81
|
+
<div class="flex flex-wrap items-center justify-center gap-2">
|
|
82
|
+
<CdsTag prepend-icon="star" text="Избранное" />
|
|
83
|
+
<CdsTag append-icon="external" text="b2b-center.ru" />
|
|
84
|
+
<CdsTag prepend-avatar="https://i.pravatar.cc/80?img=12" text="Анна Ветрова" pill />
|
|
85
|
+
</div>
|
|
86
|
+
</template>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Slots
|
|
90
|
+
|
|
91
|
+
Slots replace the content coming from props when you need full control over the markup.
|
|
92
|
+
|
|
93
|
+
**Example (SFC):**
|
|
94
|
+
|
|
95
|
+
```vue
|
|
96
|
+
<script setup lang="ts">
|
|
97
|
+
import { CdsIcon, CdsTag } from '@central-design-system/components';
|
|
98
|
+
</script>
|
|
99
|
+
|
|
100
|
+
<template>
|
|
101
|
+
<div class="flex flex-wrap justify-center gap-2">
|
|
102
|
+
<CdsTag color="green">Скидка <b>−20%</b></CdsTag>
|
|
103
|
+
<CdsTag text="Избранное">
|
|
104
|
+
<template #prepend>
|
|
105
|
+
<CdsIcon icon="star-fill" start />
|
|
106
|
+
</template>
|
|
107
|
+
</CdsTag>
|
|
108
|
+
<CdsTag text="Черновик" closable>
|
|
109
|
+
<template #close>
|
|
110
|
+
<CdsIcon icon="delete" />
|
|
111
|
+
</template>
|
|
112
|
+
</CdsTag>
|
|
113
|
+
</div>
|
|
114
|
+
</template>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Link tag
|
|
118
|
+
|
|
119
|
+
Pass `href` (or `to` with a `RouteLocationRaw` object from vue-router) and the tag renders as an `a` tag: it gets a cursor, keyboard focus and navigation on Enter, keeping the look of a tag.
|
|
120
|
+
|
|
121
|
+
**Example (SFC):**
|
|
122
|
+
|
|
123
|
+
```vue
|
|
124
|
+
<script setup lang="ts">
|
|
125
|
+
import { CdsTag } from '@central-design-system/components';
|
|
126
|
+
</script>
|
|
127
|
+
|
|
128
|
+
<template>
|
|
129
|
+
<div class="flex flex-wrap justify-center gap-2">
|
|
130
|
+
<CdsTag href="https://www.b2b-center.ru" target="_blank" append-icon="external" text="b2b-center.ru" />
|
|
131
|
+
<CdsTag href="#" pill text="vue" />
|
|
132
|
+
<CdsTag href="#" pill text="design-system" />
|
|
133
|
+
</div>
|
|
134
|
+
</template>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Closing
|
|
138
|
+
|
|
139
|
+
The `closable` prop (or its alias `removable`) adds a close button. A click on it hides the tag and emits the `click:close` event, and the visibility can be controlled from the outside through `v-model`. The `close-icon` prop changes the icon of the button, `close-label` changes the accessible label.
|
|
140
|
+
|
|
141
|
+
**Example (SFC):**
|
|
142
|
+
|
|
143
|
+
```vue
|
|
144
|
+
<script setup lang="ts">
|
|
145
|
+
import { CdsButton, CdsTag } from '@central-design-system/components';
|
|
146
|
+
import { ref } from 'vue';
|
|
147
|
+
|
|
148
|
+
const visible = ref(true);
|
|
149
|
+
</script>
|
|
150
|
+
|
|
151
|
+
<template>
|
|
152
|
+
<div class="flex items-center justify-center gap-4">
|
|
153
|
+
<CdsTag v-model="visible" closable text="Закрываемый тег" />
|
|
154
|
+
<CdsButton v-if="!visible" appearance="secondary" size="sm" text="Вернуть тег" @click="visible = true" />
|
|
155
|
+
</div>
|
|
156
|
+
</template>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Selection in a group
|
|
160
|
+
|
|
161
|
+
The color of the selected tag comes from `active-color`: without it the group itself paints the selection with the brand color, and `color` stays the color of the unselected tag.
|
|
162
|
+
|
|
163
|
+
**Example (SFC):**
|
|
164
|
+
|
|
165
|
+
```vue
|
|
166
|
+
<script setup lang="ts">
|
|
167
|
+
import { CdsTag, CdsTagGroup } from '@central-design-system/components';
|
|
168
|
+
import { ref } from 'vue';
|
|
169
|
+
|
|
170
|
+
const statuses = ['Черновики', 'На проверке', 'Опубликованные'];
|
|
171
|
+
const selected = ref('На проверке');
|
|
172
|
+
</script>
|
|
173
|
+
|
|
174
|
+
<template>
|
|
175
|
+
<div class="flex flex-col items-center gap-2">
|
|
176
|
+
<CdsTagGroup v-model="selected" filter>
|
|
177
|
+
<CdsTag v-for="status in statuses" :key="status" :value="status" :text="status" />
|
|
178
|
+
</CdsTagGroup>
|
|
179
|
+
|
|
180
|
+
<span class="text-100 text-content-secondary">Выбрано: {{ selected ?? '—' }}</span>
|
|
181
|
+
</div>
|
|
182
|
+
</template>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Selected filters
|
|
186
|
+
|
|
187
|
+
Applied search filters read well as a row of closable tags: each tag removes its own filter on `click:close`, and the neighboring `tertiary` button resets everything at once.
|
|
188
|
+
|
|
189
|
+
**Example (SFC):**
|
|
190
|
+
|
|
191
|
+
```vue
|
|
192
|
+
<script setup lang="ts">
|
|
193
|
+
import { CdsButton, CdsTag } from '@central-design-system/components';
|
|
194
|
+
import { ref } from 'vue';
|
|
195
|
+
|
|
196
|
+
const initial = ['Электроника', 'До 10 000 ₽', 'В наличии', 'Доставка завтра', 'Рейтинг 4+'];
|
|
197
|
+
const filters = ref([...initial]);
|
|
198
|
+
|
|
199
|
+
const remove = (filter: string) => {
|
|
200
|
+
filters.value = filters.value.filter((item) => item !== filter);
|
|
201
|
+
};
|
|
202
|
+
</script>
|
|
203
|
+
|
|
204
|
+
<template>
|
|
205
|
+
<div class="flex flex-wrap items-center justify-center gap-2">
|
|
206
|
+
<CdsTag v-for="filter in filters" :key="filter" :text="filter" closable @click:close="remove(filter)" />
|
|
207
|
+
<CdsButton v-if="filters.length" appearance="tertiary" size="sm" text="Сбросить всё" @click="filters = []" />
|
|
208
|
+
<CdsButton v-else appearance="secondary" size="sm" text="Вернуть фильтры" @click="filters = [...initial]" />
|
|
209
|
+
</div>
|
|
210
|
+
</template>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Record statuses
|
|
214
|
+
|
|
215
|
+
In lists and tables a colored tag shows the state of a record instantly. Assign colors to statuses once: `green` — success, `lemon` — pending, `red` — rejection, `neutral` — draft. The compact `size="sm"` does not compete with the text of the row.
|
|
216
|
+
|
|
217
|
+
**Example (SFC):**
|
|
218
|
+
|
|
219
|
+
```vue
|
|
220
|
+
<script setup lang="ts">
|
|
221
|
+
import { CdsTag } from '@central-design-system/components';
|
|
222
|
+
|
|
223
|
+
const requests = [
|
|
224
|
+
{ id: 4821, title: 'Закупка ноутбуков', status: 'Согласована', color: 'green' },
|
|
225
|
+
{ id: 4820, title: 'Ремонт офиса', status: 'На рассмотрении', color: 'lemon' },
|
|
226
|
+
{ id: 4819, title: 'Аренда склада', status: 'Отклонена', color: 'red' },
|
|
227
|
+
{ id: 4818, title: 'Поставка канцелярии', status: 'Черновик', color: 'neutral' }
|
|
228
|
+
];
|
|
229
|
+
</script>
|
|
230
|
+
|
|
231
|
+
<template>
|
|
232
|
+
<div class="flex flex-col gap-2 w-[360px] m-auto">
|
|
233
|
+
<div v-for="request in requests" :key="request.id" class="flex items-center justify-between gap-4">
|
|
234
|
+
<span>{{ request.title }}</span>
|
|
235
|
+
<CdsTag :text="request.status" :color="request.color" size="sm" />
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
</template>
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Adding labels
|
|
242
|
+
|
|
243
|
+
An input field together with tags makes a label editor: Enter adds a new label, the cross (`closable` + `click:close`) removes an extra one. Duplicates are cut off before they get into the list.
|
|
244
|
+
|
|
245
|
+
**Example (SFC):**
|
|
246
|
+
|
|
247
|
+
```vue
|
|
248
|
+
<script setup lang="ts">
|
|
249
|
+
import { CdsTag, CdsTextInput } from '@central-design-system/components';
|
|
250
|
+
import { ref } from 'vue';
|
|
251
|
+
|
|
252
|
+
const input = ref('');
|
|
253
|
+
const tags = ref(['vue', 'design-system']);
|
|
254
|
+
|
|
255
|
+
const add = () => {
|
|
256
|
+
const value = input.value.trim();
|
|
257
|
+
|
|
258
|
+
if (value && !tags.value.includes(value)) {
|
|
259
|
+
tags.value.push(value);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
input.value = '';
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
const remove = (tag: string) => {
|
|
266
|
+
tags.value = tags.value.filter((item) => item !== tag);
|
|
267
|
+
};
|
|
268
|
+
</script>
|
|
269
|
+
|
|
270
|
+
<template>
|
|
271
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
272
|
+
<CdsTextInput v-model="input" label="Метки" placeholder="Введите метку и нажмите Enter" @keydown.enter="add" />
|
|
273
|
+
<div class="flex flex-wrap gap-2">
|
|
274
|
+
<CdsTag v-for="tag in tags" :key="tag" :text="tag" closable @click:close="remove(tag)" />
|
|
275
|
+
</div>
|
|
276
|
+
</div>
|
|
277
|
+
</template>
|
|
278
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# CdsTag — guidelines
|
|
2
|
+
|
|
3
|
+
> Extracted from `docs/demos/Guidelines.vue` by `bun run generate:skill`. Do not edit manually.
|
|
4
|
+
> The full component contract is in [api.md](api.md).
|
|
5
|
+
|
|
6
|
+
| ✅ Do | ❌ Don't |
|
|
7
|
+
| --- | --- |
|
|
8
|
+
| A label is one or two words: it reads at a glance and does not break the line. | A long phrase turns the label into a sentence and gets cut off on narrow screens. |
|
|
9
|
+
| Tie a color to a meaning: one status — one color across the whole interface. | Random colors make people guess whether the coloring means anything at all. |
|
|
10
|
+
| A tag labels an object, while the action stays with the button. | A tag named after an action looks clickable but does nothing. |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# CdsTag — tokens (level 3)
|
|
2
|
+
|
|
3
|
+
> Copy of the component's `styles/*.variables.scss`, taken by `bun run generate:skill`. Do not edit manually.
|
|
4
|
+
> `--cds-*` are global level-2 tokens whose values come from the active theme: see [themes.md](../../tokens/themes.md).
|
|
5
|
+
> Variables marked `!default` can be overridden at build time via SCSS.
|
|
6
|
+
|
|
7
|
+
## _CdsTag.variables.scss
|
|
8
|
+
|
|
9
|
+
```scss
|
|
10
|
+
@use '../../../styles/tools';
|
|
11
|
+
|
|
12
|
+
$tag-max-width: 100% !default;
|
|
13
|
+
$tag-white-space: nowrap !default;
|
|
14
|
+
$tag-background: rgb(var(--cds-color-fill-secondary)) !default;
|
|
15
|
+
$tag-color: rgb(var(--cds-color-content-primary)) !default;
|
|
16
|
+
$tag-disabled-background: rgb(var(--cds-color-fill-disable)) !default;
|
|
17
|
+
$tag-disabled-color: rgb(var(--cds-color-content-disable)) !default;
|
|
18
|
+
$tag-border-radius: var(--cds-border-radius-300) !default;
|
|
19
|
+
$tag-pill-border-radius: tools.to-rem(9999px) !default;
|
|
20
|
+
|
|
21
|
+
// ======================= Sizes =======================
|
|
22
|
+
// Каждый размер: высота, внутренние отступы по горизонтали, промежуток между элементами,
|
|
23
|
+
// размерный токен шрифта, размер кнопки закрытия и размер аватара
|
|
24
|
+
// (высота тега минус 6px; у модификатора pill аватар занимает полную высоту).
|
|
25
|
+
$tag-sizes: (
|
|
26
|
+
xs: (
|
|
27
|
+
'height': tools.to-rem(16px),
|
|
28
|
+
'padding-inline': var(--cds-spacing-100),
|
|
29
|
+
'gap': var(--cds-spacing-50),
|
|
30
|
+
'font-size': '50',
|
|
31
|
+
'close-size': tools.to-rem(12px),
|
|
32
|
+
'avatar-size': tools.to-rem(10px)
|
|
33
|
+
),
|
|
34
|
+
sm: (
|
|
35
|
+
'height': tools.to-rem(20px),
|
|
36
|
+
'padding-inline': var(--cds-spacing-100),
|
|
37
|
+
'gap': var(--cds-spacing-50),
|
|
38
|
+
'font-size': '100',
|
|
39
|
+
'close-size': tools.to-rem(14px),
|
|
40
|
+
'avatar-size': tools.to-rem(14px)
|
|
41
|
+
),
|
|
42
|
+
md: (
|
|
43
|
+
'height': tools.to-rem(24px),
|
|
44
|
+
'padding-inline': var(--cds-spacing-200),
|
|
45
|
+
'gap': var(--cds-spacing-100),
|
|
46
|
+
'font-size': '100',
|
|
47
|
+
'close-size': tools.to-rem(16px),
|
|
48
|
+
'avatar-size': tools.to-rem(18px)
|
|
49
|
+
),
|
|
50
|
+
lg: (
|
|
51
|
+
'height': tools.to-rem(28px),
|
|
52
|
+
'padding-inline': var(--cds-spacing-200),
|
|
53
|
+
'gap': var(--cds-spacing-100),
|
|
54
|
+
'font-size': '200',
|
|
55
|
+
'close-size': tools.to-rem(18px),
|
|
56
|
+
'avatar-size': tools.to-rem(22px)
|
|
57
|
+
),
|
|
58
|
+
xl: (
|
|
59
|
+
'height': tools.to-rem(32px),
|
|
60
|
+
'padding-inline': var(--cds-spacing-300),
|
|
61
|
+
'gap': var(--cds-spacing-100),
|
|
62
|
+
'font-size': '200',
|
|
63
|
+
'close-size': tools.to-rem(20px),
|
|
64
|
+
'avatar-size': tools.to-rem(26px)
|
|
65
|
+
)
|
|
66
|
+
) !default;
|
|
67
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# CdsTagGroup — API
|
|
2
|
+
|
|
3
|
+
> Generated from meta.json by `bun run generate:skill`. Do not edit manually.
|
|
4
|
+
> Examples: [examples.md](examples.md) · Guidelines: [guidelines.md](guidelines.md) · Tokens: [tokens.md](tokens.md)
|
|
5
|
+
|
|
6
|
+
A tag group turns a set of [CdsTag](../cds-tag/api.md) into a toggle: the selected tag is highlighted, the value is available through `v-model`, and the tags that do not fit move into a horizontal scroll. Fits catalog filters, category pickers and quick period switches.
|
|
7
|
+
|
|
8
|
+
## CdsTagGroup
|
|
9
|
+
|
|
10
|
+
**Props**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Default | Required | Description |
|
|
13
|
+
| --- | --- | --- | --- | --- |
|
|
14
|
+
| `activeColor` | `string \| undefined` | — | no | Color of the component in its active state |
|
|
15
|
+
| `centerActive` | `boolean \| undefined` | — | no | Forces the active component to be aligned to the center. |
|
|
16
|
+
| `color` | `string \| undefined` | — | no | Component color |
|
|
17
|
+
| `column` | `boolean \| undefined` | — | no | Lays the tags out in several rows with wrapping instead of a horizontal scroll. |
|
|
18
|
+
| `contentClass` | `any` | — | no | Adds classes to the slide group container |
|
|
19
|
+
| `contentStyle` | `any` | — | no | Adds inline styles to the slide group container |
|
|
20
|
+
| `direction` | `"horizontal" \| "vertical" \| undefined` | `'horizontal'` | no | Switches the component between horizontal and vertical layout. |
|
|
21
|
+
| `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
|
|
22
|
+
| `filter` | `boolean \| undefined` | — | no | Shows a check icon on the selected tags (passed down to `CdsTag`). |
|
|
23
|
+
| `mandatory` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
|
|
24
|
+
| `max` | `number \| undefined` | — | no | Maximum number of items that can be selected |
|
|
25
|
+
| `mobile` | `boolean \| null \| undefined` | `null` | no | Determines the display mode of the component: `true` renders it in mobile mode, `false` in desktop mode, `null` makes the mode depend on the current breakpoint. |
|
|
26
|
+
| `mobileBreakpoint` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | — | no | Sets the breakpoint at which the component switches to mobile mode. Accepts a number (for example, 600) or the name of a predefined breakpoint (`xs`, `sm`, `md`, `lg`, `xl`). |
|
|
27
|
+
| `modelValue` | `any` | — | no | Value of the selected items of the group |
|
|
28
|
+
| `multiple` | `boolean \| undefined` | — | no | Allows selecting several items at once |
|
|
29
|
+
| `nextIcon` | `IconValue \| undefined` | `'next'` | no | Icon for the “next” button. |
|
|
30
|
+
| `prevIcon` | `IconValue \| undefined` | `'prev'` | no | Icon for the “previous” button. |
|
|
31
|
+
| `required` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
|
|
32
|
+
| `scrollToActive` | `boolean \| undefined` | `false` | no | When `true`, the container scrolls the active component into view whenever it changes. |
|
|
33
|
+
| `selectedClass` | `string \| undefined` | `'cds-tag--selected'` | no | CSS class applied in the selected state |
|
|
34
|
+
| `showArrows` | `string \| boolean \| undefined` | — | no | Changes how the arrows are shown. By default the arrows appear on desktop devices when the container overflows and stay hidden on mobile devices. `true` also shows them on mobile on overflow, `desktop` always shows them on desktop, `mobile` always on mobile, `always` on both, and `never` disables the arrows. |
|
|
35
|
+
| `tag` | `string \| JSXComponent<any> \| undefined` | `'div'` | no | Custom HTML tag or component to render |
|
|
36
|
+
| `theme` | `string \| undefined` | — | no | Component theme |
|
|
37
|
+
|
|
38
|
+
**Events**
|
|
39
|
+
|
|
40
|
+
| Name | Type | Description |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| `update:modelValue` | `[value: unknown]` | Fires when the selected value changes. |
|
|
43
|
+
|
|
44
|
+
**Slots**
|
|
45
|
+
|
|
46
|
+
| Name | Type | Description |
|
|
47
|
+
| --- | --- | --- |
|
|
48
|
+
| `default` | `CdsTagGroupSlotProps` | Tags of the group. The slot props expose the group state (selection, navigation). |
|
|
49
|
+
|
|
50
|
+
**Exposed**
|
|
51
|
+
|
|
52
|
+
| Name | Type | Description |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| `isSelected` | `(id: string) => boolean` | Check whether a tag with the given id is selected |
|
|
55
|
+
| `next` | `() => void` | Select the next tag |
|
|
56
|
+
| `prev` | `() => void` | Select the previous tag |
|
|
57
|
+
| `select` | `(id: string, value: boolean) => void` | Select a tag by id |
|
|
58
|
+
| `selected` | `readonly string[]` | Ids of the selected tags |
|