@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,93 @@
|
|
|
1
|
+
# CdsCheckbox — 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 checkbox turns an independent option on and off: consent to terms, an entry in a filter list, a profile setting. Every checkbox in a group is selected on its own, which makes it right for multiple choice.
|
|
7
|
+
|
|
8
|
+
## CdsCheckbox
|
|
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
|
+
| `appendIcon` | `IconValue \| undefined` | — | no | Icon in the append slot, after the content |
|
|
16
|
+
| `baseColor` | `string \| undefined` | — | no | Color of the component in its inactive state |
|
|
17
|
+
| `bgColor` | `string \| undefined` | — | no | Background color of the component |
|
|
18
|
+
| `centerAffix` | `boolean \| undefined` | `true` | no | Vertically center the appendInner, prependInner, clearIcon and label elements. |
|
|
19
|
+
| `color` | `string \| undefined` | — | no | Component color |
|
|
20
|
+
| `defaultsTarget` | `string \| undefined` | — | no | Name of the child component the group prop values are passed to as defaults |
|
|
21
|
+
| `description` | `string \| undefined` | — | no | Description of the component, shown under the label |
|
|
22
|
+
| `direction` | `"horizontal" \| "vertical" \| undefined` | `'horizontal'` | no | Switches the component between horizontal and vertical layout. |
|
|
23
|
+
| `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
|
|
24
|
+
| `error` | `boolean \| undefined` | — | no | Puts the component into the visual error state |
|
|
25
|
+
| `errorMessages` | `string \| readonly string[] \| null \| undefined` | `[]` | no | Puts the component into the error state and passes custom error messages. They are merged with any checks defined in the `rules` prop. This field does not trigger validation. |
|
|
26
|
+
| `falseIcon` | `IconValue \| undefined` | `'checkbox-off'` | no | Icon of the unselected state |
|
|
27
|
+
| `falseValue` | `any` | — | no | Value for the false state. |
|
|
28
|
+
| `focused` | `boolean \| undefined` | — | no | Controls the focus state of the component. When `true`, the component is considered focused and may apply the corresponding styles or behavior. |
|
|
29
|
+
| `hideDetails` | `boolean \| "auto" \| undefined` | — | no | Hides the details block (messages and hints). With the 'auto' value the block is hidden when there are no messages |
|
|
30
|
+
| `hideMessages` | `boolean \| undefined` | — | no | Hide the messages under the input |
|
|
31
|
+
| `hint` | `string \| undefined` | — | no | Hint text shown under the input |
|
|
32
|
+
| `iconColor` | `string \| boolean \| undefined` | — | no | Icon color. Accepts a boolean or a color string |
|
|
33
|
+
| `id` | `string \| undefined` | — | no | Unique identifier of the component |
|
|
34
|
+
| `indeterminate` | `boolean \| undefined` | — | no | Indeterminate state of the checkbox. |
|
|
35
|
+
| `indeterminateIcon` | `IconValue \| undefined` | `'checkbox-indeterminate'` | no | Icon shown in the indeterminate state. |
|
|
36
|
+
| `label` | `string \| undefined` | — | no | Label text of the component |
|
|
37
|
+
| `maxErrors` | `string \| number \| undefined` | `1` | no | Maximum number of validation errors shown |
|
|
38
|
+
| `maxWidth` | `string \| number \| undefined` | — | no | Maximum component width |
|
|
39
|
+
| `messages` | `string \| readonly string[] \| undefined` | `[]` | no | Messages shown under the input |
|
|
40
|
+
| `minWidth` | `string \| number \| undefined` | — | no | Minimum component width |
|
|
41
|
+
| `modelValue` | `any` | — | no | Value of the component (v-model). In a group it is the value of the selected control, with `multiple` — an array of the selected values |
|
|
42
|
+
| `multiple` | `boolean \| null \| undefined` | `null` | no | Allows selecting several values — the model becomes an array. Turns on automatically when an array is passed to `modelValue` |
|
|
43
|
+
| `name` | `string \| undefined` | — | no | The `name` attribute of the native input element. In a group one name joins all the nested controls |
|
|
44
|
+
| `persistentHint` | `boolean \| undefined` | — | no | Always show the hint, not only on focus |
|
|
45
|
+
| `prependIcon` | `IconValue \| undefined` | — | no | Icon in the prepend slot, before the content |
|
|
46
|
+
| `readonly` | `boolean \| null \| undefined` | `null` | no | Read-only state |
|
|
47
|
+
| `rules` | `readonly ValidationRule[] \| undefined` | `[]` | no | Accepts an array of items of different types: functions, booleans and strings. Functions take the input value as an argument and must return either true / false, or a string with an error message. The input goes into the error state if a function returns false (or any value in the array is false) or is a string. |
|
|
48
|
+
| `size` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | `'md'` | no | Size of the component |
|
|
49
|
+
| `textColor` | `string \| undefined` | — | no | Text color of the component |
|
|
50
|
+
| `theme` | `string \| undefined` | — | no | Component theme |
|
|
51
|
+
| `trueIcon` | `IconValue \| undefined` | `'checkbox-on'` | no | Icon of the selected state |
|
|
52
|
+
| `trueValue` | `any` | — | no | Value for the true state. |
|
|
53
|
+
| `type` | `string \| undefined` | — | no | Type of the native input element — `radio` or `checkbox`, for example |
|
|
54
|
+
| `validateOn` | `ValidateOn \| undefined` | — | no | Changes the type of the event that triggers validation |
|
|
55
|
+
| `validationValue` | `any` | — | no | Value used when applying the validation rules |
|
|
56
|
+
| `value` | `any` | — | no | Value used when the component is selected inside a group. When it is not set, a unique identifier is used. |
|
|
57
|
+
| `valueComparator` | `ValueComparator \| undefined` | `true` | no | Function comparing the model value with the `value` of the control. Deep comparison by default |
|
|
58
|
+
| `width` | `string \| number \| undefined` | — | no | Component width |
|
|
59
|
+
|
|
60
|
+
**Events**
|
|
61
|
+
|
|
62
|
+
| Name | Type | Description |
|
|
63
|
+
| --- | --- | --- |
|
|
64
|
+
| `update:focused` | `[focused: boolean]` | Fires when the focus state of the component changes. |
|
|
65
|
+
| `update:modelValue` | `[value: any]` | Fires when the model of the component changes. |
|
|
66
|
+
|
|
67
|
+
**Slots**
|
|
68
|
+
|
|
69
|
+
| Name | Type | Description |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| `append` | `CdsInputSlot` | Adds an element after the input |
|
|
72
|
+
| `default` | `{ backgroundColorClasses: Ref<string[], string[]>; backgroundColorStyles: Ref<CSSProperties, CSSProperties>; }` | Default slot |
|
|
73
|
+
| `description` | `{ description: string \| undefined; props: Record<string, any>; }` | Default slot of the CdsDescription component |
|
|
74
|
+
| `details` | `CdsInputSlot` | Slot for custom content that lets you customize how the messages are displayed |
|
|
75
|
+
| `input` | `SelectionControlSlot` | Slot for the default input element. |
|
|
76
|
+
| `label` | `{ label: string \| undefined; props: Record<string, any>; }` | Default slot of the CdsLabel component |
|
|
77
|
+
| `message` | `CdsMessagesSlots` | Slot for customizing the content of a message |
|
|
78
|
+
| `messages` | `CdsInputSlot` | Slot for custom content that lets you customize how the messages are displayed |
|
|
79
|
+
| `prepend` | `CdsInputSlot` | Adds an element before the input |
|
|
80
|
+
|
|
81
|
+
**Exposed**
|
|
82
|
+
|
|
83
|
+
| Name | Type | Description |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `isDirty` | `boolean` | Whether the input is dirty |
|
|
86
|
+
| `isDisabled` | `boolean` | Whether the input is disabled |
|
|
87
|
+
| `isPure` | `boolean` | Whether the input is pure |
|
|
88
|
+
| `isReadonly` | `boolean` | Whether the input is read-only |
|
|
89
|
+
| `isValid` | `boolean \| null` | Whether the input is valid |
|
|
90
|
+
| `isValidating` | `boolean` | Whether the input is being validated |
|
|
91
|
+
| `reset` | `() => Promise<void>` | Resets the input to its initial state |
|
|
92
|
+
| `resetValidation` | `() => Promise<void>` | Resets the validation of the input |
|
|
93
|
+
| `validate` | `(silent?: boolean) => Promise<string[]>` | Validates the input |
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# CdsCheckbox — 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 checkbox turns an independent option on and off: consent to terms, an entry in a filter list, a profile setting. Every checkbox in a group is selected on its own, which makes it right for multiple choice.
|
|
7
|
+
|
|
8
|
+
## Label and description
|
|
9
|
+
|
|
10
|
+
The `label` prop names the option, `description` adds an explanation under the label. The slots of the same name accept arbitrary markup — a link to the terms, for example (see the "Consent in a form" scenario).
|
|
11
|
+
|
|
12
|
+
**Example (SFC):**
|
|
13
|
+
|
|
14
|
+
```vue
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
17
|
+
import { ref } from 'vue';
|
|
18
|
+
|
|
19
|
+
const completed = ref(true);
|
|
20
|
+
const autoRenew = ref(false);
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<template>
|
|
24
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
25
|
+
<CdsCheckbox v-model="completed" label="Показывать завершённые задачи" hide-details />
|
|
26
|
+
<CdsCheckbox
|
|
27
|
+
v-model="autoRenew"
|
|
28
|
+
label="Автоматическое продление"
|
|
29
|
+
description="Подписка продлится в день окончания текущего периода"
|
|
30
|
+
hide-details
|
|
31
|
+
/>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## States
|
|
37
|
+
|
|
38
|
+
`disabled` blocks the checkbox and lowers the contrast, `readonly` forbids changes but does not change the appearance.
|
|
39
|
+
|
|
40
|
+
**Example (SFC):**
|
|
41
|
+
|
|
42
|
+
```vue
|
|
43
|
+
<script setup lang="ts">
|
|
44
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
45
|
+
</script>
|
|
46
|
+
|
|
47
|
+
<template>
|
|
48
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
49
|
+
<CdsCheckbox label="Disabled" disabled hide-details />
|
|
50
|
+
<CdsCheckbox :model-value="true" label="Disabled, выбран" disabled hide-details />
|
|
51
|
+
<CdsCheckbox :model-value="true" label="Readonly" readonly hide-details />
|
|
52
|
+
</div>
|
|
53
|
+
</template>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Indeterminate state
|
|
57
|
+
|
|
58
|
+
The `indeterminate` prop shows an intermediate state — usually on a parent checkbox when only some of the nested entries are selected. This is a visual flag: it does not change the model value, and the icon is set by `indeterminate-icon`. A live example is in the "Select all" scenario.
|
|
59
|
+
|
|
60
|
+
**Example (SFC):**
|
|
61
|
+
|
|
62
|
+
```vue
|
|
63
|
+
<script setup lang="ts">
|
|
64
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<template>
|
|
68
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
69
|
+
<CdsCheckbox indeterminate label="Выбрана часть вложенных пунктов" hide-details />
|
|
70
|
+
<CdsCheckbox :model-value="true" label="Выбран" hide-details />
|
|
71
|
+
<CdsCheckbox label="Не выбран" hide-details />
|
|
72
|
+
</div>
|
|
73
|
+
</template>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Sizes
|
|
77
|
+
|
|
78
|
+
The `size` prop accepts values from `xs` to `xl`, `md` by default. The label and the description scale together with the control.
|
|
79
|
+
|
|
80
|
+
**Example (SFC):**
|
|
81
|
+
|
|
82
|
+
```vue
|
|
83
|
+
<script setup lang="ts">
|
|
84
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<template>
|
|
88
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
89
|
+
<CdsCheckbox :model-value="true" size="xs" label="Размер xs" hide-details />
|
|
90
|
+
<CdsCheckbox :model-value="true" size="sm" label="Размер sm" hide-details />
|
|
91
|
+
<CdsCheckbox :model-value="true" size="md" label="Размер md" hide-details />
|
|
92
|
+
<CdsCheckbox :model-value="true" size="lg" label="Размер lg" hide-details />
|
|
93
|
+
<CdsCheckbox :model-value="true" size="xl" label="Размер xl" hide-details />
|
|
94
|
+
</div>
|
|
95
|
+
</template>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Colors
|
|
99
|
+
|
|
100
|
+
The `color` prop sets the color of a selected checkbox, `base-color` — the color of an unselected one.
|
|
101
|
+
|
|
102
|
+
**Example (SFC):**
|
|
103
|
+
|
|
104
|
+
```vue
|
|
105
|
+
<script setup lang="ts">
|
|
106
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
107
|
+
</script>
|
|
108
|
+
|
|
109
|
+
<template>
|
|
110
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
111
|
+
<CdsCheckbox :model-value="true" color="green" label="Зелёный при выборе (color)" hide-details />
|
|
112
|
+
<CdsCheckbox :model-value="true" color="purple" label="Фиолетовый при выборе (color)" hide-details />
|
|
113
|
+
<CdsCheckbox base-color="purple" label="Фиолетовый до выбора (base-color)" hide-details />
|
|
114
|
+
</div>
|
|
115
|
+
</template>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Messages and errors
|
|
119
|
+
|
|
120
|
+
`messages` shows a supporting text under the checkbox, `error-messages` — a ready error message (the one coming from the server, for example) together with the error state. Validation rules through `rules` are in the "Consent in a form" scenario.
|
|
121
|
+
|
|
122
|
+
**Example (SFC):**
|
|
123
|
+
|
|
124
|
+
```vue
|
|
125
|
+
<script setup lang="ts">
|
|
126
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
127
|
+
import { ref } from 'vue';
|
|
128
|
+
|
|
129
|
+
const notifications = ref(true);
|
|
130
|
+
</script>
|
|
131
|
+
|
|
132
|
+
<template>
|
|
133
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
134
|
+
<CdsCheckbox v-model="notifications" label="Уведомления о торгах" messages="Можно отключить в любой момент" />
|
|
135
|
+
<CdsCheckbox label="Передача данных партнёрам" error-messages="Для участия в торгах разрешите передачу данных" />
|
|
136
|
+
</div>
|
|
137
|
+
</template>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Your own values
|
|
141
|
+
|
|
142
|
+
By default the model keeps `true` or `false`. The `true-value` and `false-value` props replace them with your own values — handy when the API expects strings or codes.
|
|
143
|
+
|
|
144
|
+
**Example (SFC):**
|
|
145
|
+
|
|
146
|
+
```vue
|
|
147
|
+
<script setup lang="ts">
|
|
148
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
149
|
+
import { ref } from 'vue';
|
|
150
|
+
|
|
151
|
+
const subscription = ref('subscribed');
|
|
152
|
+
</script>
|
|
153
|
+
|
|
154
|
+
<template>
|
|
155
|
+
<div class="flex flex-col items-center gap-2">
|
|
156
|
+
<CdsCheckbox
|
|
157
|
+
v-model="subscription"
|
|
158
|
+
true-value="subscribed"
|
|
159
|
+
false-value="unsubscribed"
|
|
160
|
+
label="Получать рассылку"
|
|
161
|
+
hide-details
|
|
162
|
+
/>
|
|
163
|
+
|
|
164
|
+
<p>Значение модели: {{ subscription }}</p>
|
|
165
|
+
</div>
|
|
166
|
+
</template>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## A group of checkboxes
|
|
170
|
+
|
|
171
|
+
To build a group, pass the same array in `v-model` to all the checkboxes and give them unique `value`s — the selected values are collected into the array. `hide-details` removes the bottom block and the rows sit right next to each other; the common heading and description of the group are set by [CdsLabel](../cds-label/api.md) and [CdsDescription](../cds-description/api.md).
|
|
172
|
+
|
|
173
|
+
**Example (SFC):**
|
|
174
|
+
|
|
175
|
+
```vue
|
|
176
|
+
<script setup lang="ts">
|
|
177
|
+
import { CdsCheckbox, CdsDescription, CdsLabel } from '@central-design-system/components';
|
|
178
|
+
import { ref } from 'vue';
|
|
179
|
+
|
|
180
|
+
const selected = ref(['email']);
|
|
181
|
+
</script>
|
|
182
|
+
|
|
183
|
+
<template>
|
|
184
|
+
<div class="w-[350px] m-auto">
|
|
185
|
+
<CdsLabel class="text-sm mb-1">Способы связи</CdsLabel>
|
|
186
|
+
<CdsDescription class="text-xs mb-2">Как связаться с вами по заявке</CdsDescription>
|
|
187
|
+
<div class="flex flex-col gap-2">
|
|
188
|
+
<CdsCheckbox v-model="selected" label="Электронная почта" hide-details value="email" />
|
|
189
|
+
<CdsCheckbox v-model="selected" label="Телефон" hide-details value="phone" />
|
|
190
|
+
<CdsCheckbox v-model="selected" label="Telegram" hide-details value="telegram" />
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
<p>Выбрано: {{ selected }}</p>
|
|
194
|
+
</div>
|
|
195
|
+
</template>
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Select all
|
|
199
|
+
|
|
200
|
+
The parent checkbox controls the group: a computed model checks and unchecks all the entries at once, and `indeterminate` turns on while only some of them are selected.
|
|
201
|
+
|
|
202
|
+
**Example (SFC):**
|
|
203
|
+
|
|
204
|
+
```vue
|
|
205
|
+
<script setup lang="ts">
|
|
206
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
207
|
+
import { computed, ref } from 'vue';
|
|
208
|
+
|
|
209
|
+
const options = ['Договоры', 'Счета', 'Акты сверки'];
|
|
210
|
+
const selected = ref(['Договоры']);
|
|
211
|
+
|
|
212
|
+
const allSelected = computed({
|
|
213
|
+
get: () => selected.value.length === options.length,
|
|
214
|
+
set: (value) => {
|
|
215
|
+
selected.value = value ? [...options] : [];
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
const partiallySelected = computed(() => selected.value.length > 0 && selected.value.length < options.length);
|
|
220
|
+
</script>
|
|
221
|
+
|
|
222
|
+
<template>
|
|
223
|
+
<div class="w-[350px] m-auto">
|
|
224
|
+
<CdsCheckbox v-model="allSelected" :indeterminate="partiallySelected" label="Выбрать всё" hide-details />
|
|
225
|
+
<div class="flex flex-col gap-1 mt-1 pl-4">
|
|
226
|
+
<CdsCheckbox
|
|
227
|
+
v-for="option in options"
|
|
228
|
+
:key="option"
|
|
229
|
+
v-model="selected"
|
|
230
|
+
:value="option"
|
|
231
|
+
:label="option"
|
|
232
|
+
hide-details
|
|
233
|
+
/>
|
|
234
|
+
</div>
|
|
235
|
+
</div>
|
|
236
|
+
</template>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Consent in a form
|
|
240
|
+
|
|
241
|
+
A required consent is a rule in `rules` that returns the error text while the checkbox is unchecked. The `label` slot adds a link to the terms into the label, and the button starts the check through the `validate()` of the [CdsForm](../cds-form/api.md).
|
|
242
|
+
|
|
243
|
+
**Example (SFC):**
|
|
244
|
+
|
|
245
|
+
```vue
|
|
246
|
+
<script setup lang="ts">
|
|
247
|
+
import { CdsButton, CdsCheckbox, CdsForm, CdsLink } from '@central-design-system/components';
|
|
248
|
+
import { ref, unref } from 'vue';
|
|
249
|
+
|
|
250
|
+
const consent = ref(false);
|
|
251
|
+
const sending = ref(false);
|
|
252
|
+
const formRef = ref<InstanceType<typeof CdsForm>>();
|
|
253
|
+
|
|
254
|
+
const rules = [(value: boolean) => !!value || 'Для регистрации примите условия сервиса'];
|
|
255
|
+
|
|
256
|
+
async function submit() {
|
|
257
|
+
const form = unref(formRef);
|
|
258
|
+
if (!form) return;
|
|
259
|
+
|
|
260
|
+
const { valid } = await form.validate();
|
|
261
|
+
if (!valid) return;
|
|
262
|
+
|
|
263
|
+
sending.value = true;
|
|
264
|
+
setTimeout(() => {
|
|
265
|
+
sending.value = false;
|
|
266
|
+
}, 1500);
|
|
267
|
+
}
|
|
268
|
+
</script>
|
|
269
|
+
|
|
270
|
+
<template>
|
|
271
|
+
<CdsForm ref="formRef" class="flex flex-col gap-2 w-[350px] m-auto">
|
|
272
|
+
<CdsCheckbox v-model="consent" :rules="rules">
|
|
273
|
+
<template #label> Принимаю <CdsLink href="#">условия сервиса</CdsLink> </template>
|
|
274
|
+
</CdsCheckbox>
|
|
275
|
+
|
|
276
|
+
<CdsButton text="Зарегистрироваться" :loading="sending" @click="submit" />
|
|
277
|
+
</CdsForm>
|
|
278
|
+
</template>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Filtering a list
|
|
282
|
+
|
|
283
|
+
A group of checkboxes with an array in `v-model` filters the list on the fly: a computed keeps the documents of the selected types, and an empty selection means "show everything".
|
|
284
|
+
|
|
285
|
+
**Example (SFC):**
|
|
286
|
+
|
|
287
|
+
```vue
|
|
288
|
+
<script setup lang="ts">
|
|
289
|
+
import { CdsCheckbox } from '@central-design-system/components';
|
|
290
|
+
import { computed, ref } from 'vue';
|
|
291
|
+
|
|
292
|
+
const documents = [
|
|
293
|
+
{ name: 'Договор поставки № 14', type: 'Договор' },
|
|
294
|
+
{ name: 'Счёт № 209', type: 'Счёт' },
|
|
295
|
+
{ name: 'Акт сверки за июнь', type: 'Акт' },
|
|
296
|
+
{ name: 'Договор аренды № 7', type: 'Договор' },
|
|
297
|
+
{ name: 'Счёт № 218', type: 'Счёт' }
|
|
298
|
+
];
|
|
299
|
+
|
|
300
|
+
const types = ['Договор', 'Счёт', 'Акт'];
|
|
301
|
+
const selectedTypes = ref<string[]>([]);
|
|
302
|
+
|
|
303
|
+
const filtered = computed(() =>
|
|
304
|
+
selectedTypes.value.length ? documents.filter((document) => selectedTypes.value.includes(document.type)) : documents
|
|
305
|
+
);
|
|
306
|
+
</script>
|
|
307
|
+
|
|
308
|
+
<template>
|
|
309
|
+
<div class="flex w-[350px] flex-col gap-2 m-auto">
|
|
310
|
+
<div class="flex flex-wrap gap-3">
|
|
311
|
+
<CdsCheckbox v-for="type in types" :key="type" v-model="selectedTypes" :value="type" :label="type" hide-details />
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<ul class="m-0 flex list-none flex-col gap-1 p-0">
|
|
315
|
+
<li v-for="document in filtered" :key="document.name">{{ document.name }}</li>
|
|
316
|
+
</ul>
|
|
317
|
+
</div>
|
|
318
|
+
</template>
|
|
319
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# CdsCheckbox — 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
|
+
| Checkboxes are for independent options: each one can be turned on and off separately. | Checkboxes do not fit mutually exclusive options — use radio buttons. |
|
|
9
|
+
| The label is phrased positively: a checked checkbox means the option is on. | A negation in the label makes the user guess what an unchecked box means. |
|
|
10
|
+
| A short label names the option, the details go into the description. | In a long label the point of the option drowns in details. |
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# CdsCheckbox — 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
|
+
## _CdsCheckbox.variables.scss
|
|
8
|
+
|
|
9
|
+
```scss
|
|
10
|
+
// ======================= Sizes =======================
|
|
11
|
+
$checkbox-label-margins: (
|
|
12
|
+
xs: 0,
|
|
13
|
+
sm: var(--cds-spacing-50),
|
|
14
|
+
md: var(--cds-spacing-50),
|
|
15
|
+
lg: var(--cds-spacing-50),
|
|
16
|
+
xl: var(--cds-spacing-100)
|
|
17
|
+
) !default;
|
|
18
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# CdsCheckboxButton — API
|
|
2
|
+
|
|
3
|
+
> Generated from meta.json by `bun run generate:skill`. Do not edit manually.
|
|
4
|
+
> Examples: [examples.md](examples.md) · Tokens: [tokens.md](tokens.md)
|
|
5
|
+
|
|
6
|
+
The checkbox control without a label and a messages block — the atom [CdsCheckbox](../cds-checkbox/api.md) is built on. Use it where the caption is not needed or lives outside: in a table cell, a list row, a card.
|
|
7
|
+
|
|
8
|
+
## CdsCheckboxButton
|
|
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
|
+
| `baseColor` | `string \| undefined` | — | no | Color of the component in its inactive state |
|
|
16
|
+
| `bgColor` | `string \| undefined` | — | no | Background color of the component |
|
|
17
|
+
| `color` | `string \| undefined` | — | no | Component color |
|
|
18
|
+
| `defaultsTarget` | `string \| undefined` | — | no | Name of the child component the group prop values are passed to as defaults |
|
|
19
|
+
| `description` | `string \| undefined` | — | no | Description of the component, shown under the label |
|
|
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
|
+
| `error` | `boolean \| undefined` | — | no | Puts the component into the visual error state |
|
|
23
|
+
| `falseIcon` | `IconValue \| undefined` | `'checkbox-off'` | no | Icon of the unselected state |
|
|
24
|
+
| `falseValue` | `any` | — | no | Value for the false state. |
|
|
25
|
+
| `id` | `string \| undefined` | — | no | Unique identifier of the component |
|
|
26
|
+
| `indeterminate` | `boolean \| undefined` | — | no | Indeterminate state of the checkbox. |
|
|
27
|
+
| `indeterminateIcon` | `IconValue \| undefined` | `'checkbox-indeterminate'` | no | Icon shown in the indeterminate state. |
|
|
28
|
+
| `inline` | `boolean \| undefined` | — | no | Renders the control as an inline element — the container does not stretch to the full width |
|
|
29
|
+
| `label` | `string \| undefined` | — | no | Label text of the component |
|
|
30
|
+
| `modelValue` | `any` | — | no | Value of the component (v-model). In a group it is the value of the selected control, with `multiple` — an array of the selected values |
|
|
31
|
+
| `multiple` | `boolean \| null \| undefined` | `null` | no | Allows selecting several values — the model becomes an array. Turns on automatically when an array is passed to `modelValue` |
|
|
32
|
+
| `name` | `string \| undefined` | — | no | The `name` attribute of the native input element. In a group one name joins all the nested controls |
|
|
33
|
+
| `readonly` | `boolean \| null \| undefined` | `null` | no | Read-only state |
|
|
34
|
+
| `textColor` | `string \| undefined` | — | no | Text color of the component |
|
|
35
|
+
| `theme` | `string \| undefined` | — | no | Component theme |
|
|
36
|
+
| `trueIcon` | `IconValue \| undefined` | `'checkbox-on'` | no | Icon of the selected state |
|
|
37
|
+
| `trueValue` | `any` | — | no | Value for the true state. |
|
|
38
|
+
| `type` | `string \| undefined` | — | no | Type of the native input element — `radio` or `checkbox`, for example |
|
|
39
|
+
| `value` | `any` | — | no | Value used when the component is selected inside a group. When it is not set, a unique identifier is used. |
|
|
40
|
+
| `valueComparator` | `ValueComparator \| undefined` | `true` | no | Function comparing the model value with the `value` of the control. Deep comparison by default |
|
|
41
|
+
|
|
42
|
+
**Events**
|
|
43
|
+
|
|
44
|
+
| Name | Type | Description |
|
|
45
|
+
| --- | --- | --- |
|
|
46
|
+
| `update:indeterminate` | `[value: boolean]` | Fired when the indeterminate state of the checkbox changed |
|
|
47
|
+
| `update:modelValue` | `[value: boolean]` | Fired when the checkbox was toggled. Passes the new state |
|
|
48
|
+
|
|
49
|
+
**Slots**
|
|
50
|
+
|
|
51
|
+
| Name | Type | Description |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| `default` | `{ backgroundColorClasses: Ref<string[], string[]>; backgroundColorStyles: Ref<CSSProperties, CSSProperties>; }` | Default slot |
|
|
54
|
+
| `description` | `{ description: string \| undefined; props: Record<string, any>; }` | Default slot of the CdsDescription component |
|
|
55
|
+
| `input` | `SelectionControlSlot` | Slot for the default input element. |
|
|
56
|
+
| `label` | `{ label: string \| undefined; props: Record<string, any>; }` | Default slot of the CdsLabel component |
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# CdsCheckboxButton — 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
|
+
The checkbox control without a label and a messages block — the atom [CdsCheckbox](../cds-checkbox/api.md) is built on. Use it where the caption is not needed or lives outside: in a table cell, a list row, a card.
|
|
7
|
+
|
|
8
|
+
## Basic example
|
|
9
|
+
|
|
10
|
+
The control is driven through `v-model`, `indeterminate` shows the intermediate state, `disabled` blocks the choice. There is no visible label, so add an `aria-label` — that way the control stays clear for screen readers.
|
|
11
|
+
|
|
12
|
+
**Example (SFC):**
|
|
13
|
+
|
|
14
|
+
```vue
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { CdsCheckboxButton } from '@central-design-system/components';
|
|
17
|
+
import { ref } from 'vue';
|
|
18
|
+
|
|
19
|
+
const checked = ref(true);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<div class="flex justify-center items-center gap-2">
|
|
24
|
+
<CdsCheckboxButton v-model="checked" aria-label="Выбрать элемент" />
|
|
25
|
+
<CdsCheckboxButton indeterminate aria-label="Выбрана часть элементов" />
|
|
26
|
+
<CdsCheckboxButton :model-value="true" disabled aria-label="Выбор недоступен" />
|
|
27
|
+
</div>
|
|
28
|
+
</template>
|
|
29
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# CdsCheckboxButton — 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
|
+
## _CdsCheckboxButton.variables.scss
|
|
8
|
+
|
|
9
|
+
```scss
|
|
10
|
+
@use "../../../styles/tools";
|
|
11
|
+
|
|
12
|
+
// Checkbox
|
|
13
|
+
$checkbox-button-size: tools.to-rem(20px) !default;
|
|
14
|
+
$checkbox-control-spacing: var(--cds-spacing-200) !default;
|
|
15
|
+
$checkbox-button-outline: var(--cds-border-200) solid !default;
|
|
16
|
+
$checkbox-button-border-radius: var(--cds-border-radius-200) !default;
|
|
17
|
+
$checkbox-transition-base: (tools.$cds-duration-fast + ms) tools.get-motion('ease-in-out', 'basic') !default;
|
|
18
|
+
$checkbox-transition-accent: (tools.$cds-duration-fast + ms) tools.get-motion('ease-in-out', 'accent') !default;
|
|
19
|
+
|
|
20
|
+
// ======================= Sizes =======================
|
|
21
|
+
$checkbox-button-sizes: (
|
|
22
|
+
xs: tools.to-rem(16px),
|
|
23
|
+
sm: tools.to-rem(18px),
|
|
24
|
+
md: tools.to-rem(20px),
|
|
25
|
+
lg: tools.to-rem(24px),
|
|
26
|
+
xl: tools.to-rem(28px)
|
|
27
|
+
) !default;
|
|
28
|
+
$checkbox-control-spacings: (
|
|
29
|
+
xs: var(--cds-spacing-100),
|
|
30
|
+
sm: var(--cds-spacing-100),
|
|
31
|
+
md: var(--cds-spacing-200),
|
|
32
|
+
lg: var(--cds-spacing-200),
|
|
33
|
+
xl: var(--cds-spacing-300)
|
|
34
|
+
) !default;
|
|
35
|
+
|
|
36
|
+
// Selection Field
|
|
37
|
+
$checkbox-selection-control-size: calc(var(--cds-checkbox-button-size) + var(--cds-checkbox-control-spacing)) !default;
|
|
38
|
+
|
|
39
|
+
// Colors
|
|
40
|
+
$checkbox-button-colors: (
|
|
41
|
+
'unselected': (
|
|
42
|
+
default: rgb(var(--cds-color-line-primary)),
|
|
43
|
+
error: rgb(var(--cds-color-status-danger-line))
|
|
44
|
+
),
|
|
45
|
+
'selected': (
|
|
46
|
+
default: rgb(var(--cds-color-line-selected)),
|
|
47
|
+
error: rgb(var(--cds-color-status-danger-line))
|
|
48
|
+
),
|
|
49
|
+
'disabled': (
|
|
50
|
+
default: rgb(var(--cds-color-line-disable))
|
|
51
|
+
),
|
|
52
|
+
'focus': (
|
|
53
|
+
default: rgb(var(--cds-color-line-focus-outline))
|
|
54
|
+
)
|
|
55
|
+
) !default;
|
|
56
|
+
```
|