@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,407 @@
|
|
|
1
|
+
# CdsTimePicker — 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
|
+
Time selection: hours, minutes and — if you want — seconds. The value can be typed on the keyboard or stepped through with the arrows, and `v-model` receives a string in the given format (`HH:mm` by default), which is convenient to store and to send to the server.
|
|
7
|
+
|
|
8
|
+
## Value and format
|
|
9
|
+
|
|
10
|
+
The time arrives in `v-model` as a string in the `mask` format — `HH:mm` by default. As the second argument of the `update:model-value` event the component gives out the parsed date as an object: the year, the month, the day, the hours, the minutes, the seconds. While no value is chosen, the fields are empty and show the `00` hint.
|
|
11
|
+
|
|
12
|
+
**Example (SFC):**
|
|
13
|
+
|
|
14
|
+
```vue
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
17
|
+
import { ref } from 'vue';
|
|
18
|
+
|
|
19
|
+
const time = ref<string | null>(null);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<div class="flex flex-col items-center gap-2">
|
|
24
|
+
<CdsTimePicker v-model="time" />
|
|
25
|
+
|
|
26
|
+
<span class="text-200 text-content-secondary">v-model: {{ time ?? '—' }}</span>
|
|
27
|
+
</div>
|
|
28
|
+
</template>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Value and format
|
|
32
|
+
|
|
33
|
+
The mask may include the date as well: then the component changes the time only and carries the date over from the current value — that is how one string is shared between a calendar and a clock. The `with-time` prop of [CdsDateInput](../cds-date-input/api.md) is built on the same idea. If the model is empty, the date for the new string is taken from `default-date` (the `YYYY/MM/DD` format), otherwise it is today.
|
|
34
|
+
|
|
35
|
+
**Example (SFC):**
|
|
36
|
+
|
|
37
|
+
```vue
|
|
38
|
+
<script setup lang="ts">
|
|
39
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
40
|
+
import { ref } from 'vue';
|
|
41
|
+
|
|
42
|
+
const withDate = ref('01.09.2026 09:30');
|
|
43
|
+
const empty = ref<string | null>(null);
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<div class="flex flex-wrap items-start justify-center gap-4">
|
|
48
|
+
<div class="flex flex-col items-center gap-2">
|
|
49
|
+
<CdsTimePicker v-model="withDate" mask="DD.MM.YYYY HH:mm" />
|
|
50
|
+
|
|
51
|
+
<span class="text-200 text-content-secondary">v-model: {{ withDate }}</span>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="flex flex-col items-center gap-2">
|
|
55
|
+
<CdsTimePicker v-model="empty" mask="DD.MM.YYYY HH:mm" default-date="2026/09/01" />
|
|
56
|
+
|
|
57
|
+
<span class="text-200 text-content-secondary">v-model: {{ empty ?? '—' }}</span>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
</template>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Seconds
|
|
64
|
+
|
|
65
|
+
`with-seconds` adds a third block. The mask is extended automatically: the component appends `:ss` to `HH:mm` by itself.
|
|
66
|
+
|
|
67
|
+
**Example (SFC):**
|
|
68
|
+
|
|
69
|
+
```vue
|
|
70
|
+
<script setup lang="ts">
|
|
71
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
72
|
+
import { ref } from 'vue';
|
|
73
|
+
|
|
74
|
+
const time = ref('15:22:30');
|
|
75
|
+
</script>
|
|
76
|
+
|
|
77
|
+
<template>
|
|
78
|
+
<div class="flex flex-col items-center gap-2">
|
|
79
|
+
<CdsTimePicker v-model="time" with-seconds />
|
|
80
|
+
|
|
81
|
+
<span class="text-200 text-content-secondary">v-model: {{ time }}</span>
|
|
82
|
+
</div>
|
|
83
|
+
</template>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## The 12-hour format
|
|
87
|
+
|
|
88
|
+
`format12h` shows the hours from 1 to 12 and the AM/PM switch. This does not affect the value in the model — the format is set by the mask, so for a string with AM/PM use `hh:mm A`.
|
|
89
|
+
|
|
90
|
+
**Example (SFC):**
|
|
91
|
+
|
|
92
|
+
```vue
|
|
93
|
+
<script setup lang="ts">
|
|
94
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
95
|
+
import { ref } from 'vue';
|
|
96
|
+
|
|
97
|
+
const time = ref('14:00');
|
|
98
|
+
</script>
|
|
99
|
+
|
|
100
|
+
<template>
|
|
101
|
+
<div class="flex flex-col items-center gap-2">
|
|
102
|
+
<CdsTimePicker v-model="time" format12h />
|
|
103
|
+
|
|
104
|
+
<span class="text-200 text-content-secondary">v-model: {{ time }}</span>
|
|
105
|
+
</div>
|
|
106
|
+
</template>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## The "Now" button
|
|
110
|
+
|
|
111
|
+
`now-btn` adds a button under the clock that sets the current time — the user does not have to step through the values with the arrows.
|
|
112
|
+
|
|
113
|
+
**Example (SFC):**
|
|
114
|
+
|
|
115
|
+
```vue
|
|
116
|
+
<script setup lang="ts">
|
|
117
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
118
|
+
import { ref } from 'vue';
|
|
119
|
+
|
|
120
|
+
const time = ref('18:00');
|
|
121
|
+
</script>
|
|
122
|
+
|
|
123
|
+
<template>
|
|
124
|
+
<div class="flex flex-col items-center gap-2">
|
|
125
|
+
<CdsTimePicker v-model="time" now-btn />
|
|
126
|
+
|
|
127
|
+
<span class="text-200 text-content-secondary">v-model: {{ time }}</span>
|
|
128
|
+
</div>
|
|
129
|
+
</template>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Available time
|
|
133
|
+
|
|
134
|
+
`allowed-hours`, `allowed-minutes` and `allowed-seconds` accept arrays of the allowed values: the arrows step through those only, and a value outside the list is pulled by the component to the nearest allowed one.
|
|
135
|
+
|
|
136
|
+
**Example (SFC):**
|
|
137
|
+
|
|
138
|
+
```vue
|
|
139
|
+
<script setup lang="ts">
|
|
140
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
141
|
+
import { ref } from 'vue';
|
|
142
|
+
|
|
143
|
+
const time = ref('12:30');
|
|
144
|
+
|
|
145
|
+
const allowedHours = [9, 10, 11, 12, 13, 14];
|
|
146
|
+
const allowedMinutes = [0, 15, 30, 45];
|
|
147
|
+
</script>
|
|
148
|
+
|
|
149
|
+
<template>
|
|
150
|
+
<div class="flex flex-col items-center gap-2">
|
|
151
|
+
<CdsTimePicker v-model="time" :allowed-hours="allowedHours" :allowed-minutes="allowedMinutes" />
|
|
152
|
+
|
|
153
|
+
<span class="text-200 text-content-secondary">v-model: {{ time }}</span>
|
|
154
|
+
</div>
|
|
155
|
+
</template>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Available time
|
|
159
|
+
|
|
160
|
+
When the restriction depends on the already chosen time, pass the `allowed-time` function instead of the arrays. It is called separately for the hours, the minutes and the seconds: the parts that are not being checked arrive as `null`.
|
|
161
|
+
|
|
162
|
+
**Example (SFC):**
|
|
163
|
+
|
|
164
|
+
```vue
|
|
165
|
+
<script setup lang="ts">
|
|
166
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
167
|
+
import { ref } from 'vue';
|
|
168
|
+
|
|
169
|
+
const time = ref('10:30');
|
|
170
|
+
|
|
171
|
+
// Часы и минуты проверяются по отдельности: сначала приходит только час,
|
|
172
|
+
// затем час вместе с минутой. Обед с 13:00 до 14:00 недоступен.
|
|
173
|
+
const allowedTime = (hour: number | null, minute: number | null) => {
|
|
174
|
+
if (hour === null) return true;
|
|
175
|
+
if (hour < 9 || hour > 17) return false;
|
|
176
|
+
if (minute === null) return true;
|
|
177
|
+
|
|
178
|
+
return hour !== 13;
|
|
179
|
+
};
|
|
180
|
+
</script>
|
|
181
|
+
|
|
182
|
+
<template>
|
|
183
|
+
<div class="flex flex-col items-center gap-2">
|
|
184
|
+
<CdsTimePicker v-model="time" :allowed-time="allowedTime" />
|
|
185
|
+
|
|
186
|
+
<span class="text-200 text-content-secondary">v-model: {{ time }}</span>
|
|
187
|
+
</div>
|
|
188
|
+
</template>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Localization
|
|
192
|
+
|
|
193
|
+
`locale` accepts a locale name (`ru` | `en`) or your own object of translations; without the prop the locale of the application is taken. The caption of the "Now" button and the default format depend on the locale: in `en` the time is 12-hour, so the hours are shown from 1 to 12 even without `format12h` — only the AM/PM switch is added by it.
|
|
194
|
+
|
|
195
|
+
**Example (SFC):**
|
|
196
|
+
|
|
197
|
+
```vue
|
|
198
|
+
<script setup lang="ts">
|
|
199
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
200
|
+
import { ref } from 'vue';
|
|
201
|
+
|
|
202
|
+
const time = ref('09:35 AM');
|
|
203
|
+
</script>
|
|
204
|
+
|
|
205
|
+
<template>
|
|
206
|
+
<div class="flex flex-col items-center gap-2">
|
|
207
|
+
<CdsTimePicker v-model="time" locale="en" format12h now-btn mask="hh:mm A" />
|
|
208
|
+
|
|
209
|
+
<span class="text-200 text-content-secondary">v-model: {{ time }}</span>
|
|
210
|
+
</div>
|
|
211
|
+
</template>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## States
|
|
215
|
+
|
|
216
|
+
`disabled` turns the clock off and dims it, `readonly` keeps the usual look but forbids changing the value — both with the arrows and from the keyboard.
|
|
217
|
+
|
|
218
|
+
**Example (SFC):**
|
|
219
|
+
|
|
220
|
+
```vue
|
|
221
|
+
<script setup lang="ts">
|
|
222
|
+
import { CdsTimePicker } from '@central-design-system/components';
|
|
223
|
+
import { ref } from 'vue';
|
|
224
|
+
|
|
225
|
+
const time = ref('15:22');
|
|
226
|
+
</script>
|
|
227
|
+
|
|
228
|
+
<template>
|
|
229
|
+
<div class="flex flex-wrap justify-center gap-4">
|
|
230
|
+
<CdsTimePicker v-model="time" disabled now-btn />
|
|
231
|
+
<CdsTimePicker v-model="time" readonly now-btn />
|
|
232
|
+
</div>
|
|
233
|
+
</template>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Booking a meeting
|
|
237
|
+
|
|
238
|
+
Meetings are scheduled within working hours and by quarters of an hour — `allowed-hours` and `allowed-minutes` leave only such values. The user cannot pick a time that would have to be rejected later.
|
|
239
|
+
|
|
240
|
+
**Example (SFC):**
|
|
241
|
+
|
|
242
|
+
```vue
|
|
243
|
+
<script setup lang="ts">
|
|
244
|
+
import { CdsCard, CdsTimePicker } from '@central-design-system/components';
|
|
245
|
+
import { computed, ref } from 'vue';
|
|
246
|
+
|
|
247
|
+
const time = ref('10:30');
|
|
248
|
+
|
|
249
|
+
// Встречи назначают в рабочие часы и по четвертям часа.
|
|
250
|
+
const allowedHours = [9, 10, 11, 12, 13, 14, 15, 16, 17];
|
|
251
|
+
const allowedMinutes = [0, 15, 30, 45];
|
|
252
|
+
|
|
253
|
+
const pad = (value: number) => String(value).padStart(2, '0');
|
|
254
|
+
|
|
255
|
+
const finish = computed(() => {
|
|
256
|
+
const [hour, minute] = time.value.split(':').map(Number);
|
|
257
|
+
const end = hour * 60 + minute + 30;
|
|
258
|
+
|
|
259
|
+
return `${pad(Math.floor(end / 60))}:${pad(end % 60)}`;
|
|
260
|
+
});
|
|
261
|
+
</script>
|
|
262
|
+
|
|
263
|
+
<template>
|
|
264
|
+
<div class="flex flex-col items-center gap-2">
|
|
265
|
+
<CdsCard class="w-fit">
|
|
266
|
+
<CdsTimePicker v-model="time" :allowed-hours="allowedHours" :allowed-minutes="allowedMinutes" />
|
|
267
|
+
</CdsCard>
|
|
268
|
+
|
|
269
|
+
<span class="text-200 text-content-secondary">Встреча: {{ time }} — {{ finish }} (30 минут)</span>
|
|
270
|
+
</div>
|
|
271
|
+
</template>
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## A field with a time
|
|
275
|
+
|
|
276
|
+
Most often the clock lives not on the page but in a menu next to a text field. There is no ready field for the time alone in the system — assemble the control out of [CdsTextInput](../cds-text-input/api.md), a [CdsMenu](../cds-menu/api.md) with `activator="parent"` and the clock: all the props and slots of the field and the menu stay available to you. For the manual input add a mask: we recommend the lightweight (2.5 KB) [Maska](https://github.com/beholdr/maska) library. If you need the date together with the time, the field already exists — [CdsDateInput](../cds-date-input/api.md) with `with-time`.
|
|
277
|
+
|
|
278
|
+
**Example (SFC):**
|
|
279
|
+
|
|
280
|
+
```vue
|
|
281
|
+
<script setup lang="ts">
|
|
282
|
+
import { CdsMenu, CdsTextInput, CdsTimePicker } from '@central-design-system/components';
|
|
283
|
+
import { vMaska } from 'maska/vue';
|
|
284
|
+
import { ref } from 'vue';
|
|
285
|
+
|
|
286
|
+
const time = ref('12:00');
|
|
287
|
+
</script>
|
|
288
|
+
|
|
289
|
+
<template>
|
|
290
|
+
<div class="w-[250px] m-auto">
|
|
291
|
+
<CdsTextInput v-model="time" v-maska="'##:##'" label="Время" placeholder="Выберите время" append-inner-icon="clock">
|
|
292
|
+
<CdsMenu activator="parent" :close-on-content-click="false">
|
|
293
|
+
<CdsTimePicker v-model="time" now-btn />
|
|
294
|
+
</CdsMenu>
|
|
295
|
+
</CdsTextInput>
|
|
296
|
+
</div>
|
|
297
|
+
</template>
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
## A "from — to" interval
|
|
301
|
+
|
|
302
|
+
Two clocks can share one rule: the `allowed-time` of the end looks at the start and does not let an earlier time be picked. When the start is moved past the end, the demo moves the end too — the rule and the code work in pairs.
|
|
303
|
+
|
|
304
|
+
**Example (SFC):**
|
|
305
|
+
|
|
306
|
+
```vue
|
|
307
|
+
<script setup lang="ts">
|
|
308
|
+
import { CdsCard, CdsTimePicker } from '@central-design-system/components';
|
|
309
|
+
import { computed, ref, watch } from 'vue';
|
|
310
|
+
|
|
311
|
+
const start = ref('09:00');
|
|
312
|
+
const end = ref('18:00');
|
|
313
|
+
|
|
314
|
+
const pad = (value: number) => String(value).padStart(2, '0');
|
|
315
|
+
const toMinutes = (time: string) => {
|
|
316
|
+
const [hour, minute] = time.split(':').map(Number);
|
|
317
|
+
|
|
318
|
+
return hour * 60 + minute;
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
// Окончание не может быть раньше начала. Часы и минуты проверяются по отдельности:
|
|
322
|
+
// сначала приходит только час, затем час вместе с выбранной минутой.
|
|
323
|
+
const allowedEnd = (hour: number | null, minute: number | null) => {
|
|
324
|
+
if (hour === null) return true;
|
|
325
|
+
if (minute === null) return hour >= Math.floor(toMinutes(start.value) / 60);
|
|
326
|
+
|
|
327
|
+
return hour * 60 + minute > toMinutes(start.value);
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
// Начало сдвинули за окончание — переносим окончание на час вперёд.
|
|
331
|
+
watch(start, () => {
|
|
332
|
+
if (toMinutes(end.value) > toMinutes(start.value)) return;
|
|
333
|
+
|
|
334
|
+
const shifted = Math.min(toMinutes(start.value) + 60, 23 * 60 + 59);
|
|
335
|
+
end.value = `${pad(Math.floor(shifted / 60))}:${pad(shifted % 60)}`;
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
const duration = computed(() => {
|
|
339
|
+
const total = toMinutes(end.value) - toMinutes(start.value);
|
|
340
|
+
|
|
341
|
+
return `${Math.floor(total / 60)} ч ${pad(total % 60)} мин`;
|
|
342
|
+
});
|
|
343
|
+
</script>
|
|
344
|
+
|
|
345
|
+
<template>
|
|
346
|
+
<div class="flex flex-col items-center gap-2">
|
|
347
|
+
<div class="flex flex-wrap items-start justify-center gap-4">
|
|
348
|
+
<div class="flex flex-col items-center gap-1">
|
|
349
|
+
<span class="text-200 text-content-secondary">Начало</span>
|
|
350
|
+
|
|
351
|
+
<CdsCard class="w-fit">
|
|
352
|
+
<CdsTimePicker v-model="start" />
|
|
353
|
+
</CdsCard>
|
|
354
|
+
</div>
|
|
355
|
+
|
|
356
|
+
<div class="flex flex-col items-center gap-1">
|
|
357
|
+
<span class="text-200 text-content-secondary">Окончание</span>
|
|
358
|
+
|
|
359
|
+
<CdsCard class="w-fit">
|
|
360
|
+
<CdsTimePicker v-model="end" :allowed-time="allowedEnd" />
|
|
361
|
+
</CdsCard>
|
|
362
|
+
</div>
|
|
363
|
+
</div>
|
|
364
|
+
|
|
365
|
+
<span class="text-200 text-content-secondary">Рабочий день: {{ duration }}</span>
|
|
366
|
+
</div>
|
|
367
|
+
</template>
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## Date and time
|
|
371
|
+
|
|
372
|
+
The calendar does not pick the time and the clock does not pick the date — put them next to each other with a shared model and the same `DD.MM.YYYY HH:mm` mask: every component changes its own part of the string. In a field this pair is already assembled — turn on `with-time` on [CdsDateInput](../cds-date-input/api.md).
|
|
373
|
+
|
|
374
|
+
**Example (SFC):**
|
|
375
|
+
|
|
376
|
+
```vue
|
|
377
|
+
<script setup lang="ts">
|
|
378
|
+
import { CdsDatePicker, CdsDivider, CdsMenu, CdsTextInput, CdsTimePicker } from '@central-design-system/components';
|
|
379
|
+
import { vMaska } from 'maska/vue';
|
|
380
|
+
import { ref } from 'vue';
|
|
381
|
+
|
|
382
|
+
const mask = 'DD.MM.YYYY HH:mm';
|
|
383
|
+
const dateTime = ref('01.09.2026 09:30');
|
|
384
|
+
</script>
|
|
385
|
+
|
|
386
|
+
<template>
|
|
387
|
+
<div class="w-[250px] m-auto">
|
|
388
|
+
<CdsTextInput
|
|
389
|
+
v-model="dateTime"
|
|
390
|
+
v-maska="'##.##.#### ##:##'"
|
|
391
|
+
label="Дата и время"
|
|
392
|
+
placeholder="Выберите дату и время"
|
|
393
|
+
append-inner-icon="calendar"
|
|
394
|
+
>
|
|
395
|
+
<CdsMenu activator="parent" :close-on-content-click="false">
|
|
396
|
+
<div class="flex flex-col">
|
|
397
|
+
<CdsDatePicker v-model="dateTime" :mask="mask" />
|
|
398
|
+
|
|
399
|
+
<CdsDivider />
|
|
400
|
+
|
|
401
|
+
<CdsTimePicker v-model="dateTime" :mask="mask" now-btn />
|
|
402
|
+
</div>
|
|
403
|
+
</CdsMenu>
|
|
404
|
+
</CdsTextInput>
|
|
405
|
+
</div>
|
|
406
|
+
</template>
|
|
407
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# CdsTimePicker — 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
|
+
| The minute step is set through allowed-minutes — the needed value is reached in a couple of clicks. | Free minutes give 60 options where meetings are scheduled by quarters of an hour. |
|
|
9
|
+
| Show the seconds only where they matter: in logs, timings, trading rules. | An extra field in a meeting booking makes the user fill in what nobody needs. |
|
|
10
|
+
| In a Russian interface the 24-hour format is more familiar — it is the default one. | AM/PM asks the user to convert the time in their head and adds an extra switch. |
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# CdsTimePicker — 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
|
+
## _CdsTimePicker.variables.scss
|
|
8
|
+
|
|
9
|
+
```scss
|
|
10
|
+
@use '../../../styles/tools';
|
|
11
|
+
|
|
12
|
+
$time-picker-color: (
|
|
13
|
+
'color': rgb(var(--cds-color-content-primary)),
|
|
14
|
+
) !default;
|
|
15
|
+
$time-picker-paddings: var(--cds-spacing-200) var(--cds-spacing-300) !default;
|
|
16
|
+
$time-picker-container-gap: var(--cds-spacing-300) !default;
|
|
17
|
+
$time-picker-clock-gap: var(--cds-spacing-50) !default;
|
|
18
|
+
$time-picker-input-padding: calc(var(--cds-spacing-200) - 1px) !default;
|
|
19
|
+
$time-picker-input-width: tools.to-rem(32px) !default;
|
|
20
|
+
$time-picker-input-height: calc(#{tools.to-rem(28px)} - var(--cds-border-200)) !default;
|
|
21
|
+
$time-picker-ampm-offset: calc(var(--cds-spacing-300) - var(--cds-spacing-50)) !default;
|
|
22
|
+
$time-picker-function-btn-size: tools.to-rem(16px) !default;
|
|
23
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# CdsToast — 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 toast is a pop-up notification about the result of an action: the changes are saved, the file is uploaded, the request failed. It appears above the page, does not interrupt the work and closes itself once `timeout` runs out.
|
|
7
|
+
|
|
8
|
+
## CdsToast
|
|
9
|
+
|
|
10
|
+
**Props**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Default | Required | Description |
|
|
13
|
+
| --- | --- | --- | --- | --- |
|
|
14
|
+
| `absolute` | `boolean \| undefined` | — | no | Positions the element absolutely instead of fixed. This is useful for overlays that must stay inside a certain area, for example inside a container with `position: relative`. |
|
|
15
|
+
| `activator` | `(string & {}) \| Element \| "parent" \| ComponentPublicInstance \| undefined` | — | no | The element that activates the component |
|
|
16
|
+
| `activatorProps` | `Record<string, any> \| undefined` | `{}` | no | Props for the activator element |
|
|
17
|
+
| `attach` | `string \| boolean \| Element \| undefined` | — | no | Sets the DOM element the overlay content is moved to. It accepts a direct element reference, a querySelector string, or true to disable moving. By default the body element is used. Changing this prop is usually not recommended except for edge cases: the default positioning algorithm handles most scenarios better than it can without moving, and unexpected behavior may appear if the menu ends up being a child of its activator. |
|
|
18
|
+
| `bgColor` | `string \| undefined` | — | no | Background color of the component |
|
|
19
|
+
| `closeDelay` | `string \| number \| undefined` | — | no | Delay in milliseconds before the component closes. Works only together with open-on-hover. |
|
|
20
|
+
| `closeOnBack` | `boolean \| undefined` | `false` | no | Closes the overlay content when the browser Back button is pressed or $router.back() is called, cancelling the original navigation. `persistent` overlays cancel the navigation and animate as if they were clicked outside instead of closing. |
|
|
21
|
+
| `closeOnContentClick` | `boolean \| undefined` | — | no | Hide the component on a click on the content |
|
|
22
|
+
| `collapsed` | `{ width: number; height: number; } \| undefined` | — | no | Collapsed state of a toast in the queue: the size the toast collapses to. Managed by the CdsToastQueue component. |
|
|
23
|
+
| `contained` | `boolean \| undefined` | — | no | Limits the size of the component and of its grid to the offset parent. Implies the `absolute` and `attach` props. (Note: the parent element must have `position: relative`.) |
|
|
24
|
+
| `content` | `string \| number \| undefined` | — | no | Content displayed in the component. |
|
|
25
|
+
| `contentClass` | `any` | — | no | Applies a custom class to the content element. This is handy because the content is moved to the beginning of the cds-app component (unless `attach` is set) and cannot be selected with classes passed to the component directly. |
|
|
26
|
+
| `contentProps` | `any` | — | no | Applies custom props to the moved content |
|
|
27
|
+
| `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
|
|
28
|
+
| `eager` | `boolean \| undefined` | — | no | Renders the content of the component right away. Useful when you have content that is not in the DOM but has to be indexed for SEO. |
|
|
29
|
+
| `height` | `string \| number \| undefined` | — | no | Component height |
|
|
30
|
+
| `icon` | `false \| IconValue \| undefined` | `null` | no | Icon before the content. Taken from `status` by default; `false` hides the icon. |
|
|
31
|
+
| `loading` | `boolean \| undefined` | — | no | Shows a loading indicator instead of the icon. |
|
|
32
|
+
| `location` | `Anchor \| null \| undefined` | `'top center'` | no | Position of the element relative to its container, for example "top left", "center", "bottom right". |
|
|
33
|
+
| `locationStrategy` | `"static" \| "connected" \| LocationStrategyFunction \| undefined` | `'static'` | no | Sets the way the overlay content is positioned. By default static is used, which centers the content in its container. Use connected to attach the content to the activator element. |
|
|
34
|
+
| `maxHeight` | `string \| number \| undefined` | — | no | Maximum component height |
|
|
35
|
+
| `maxWidth` | `string \| number \| undefined` | — | no | Maximum component width |
|
|
36
|
+
| `minHeight` | `string \| number \| undefined` | — | no | Minimum component height |
|
|
37
|
+
| `minWidth` | `string \| number \| undefined` | — | no | Minimum component width |
|
|
38
|
+
| `modelValue` | `boolean \| undefined` | — | no | The v-model value of the component. If the component supports the **multiple** prop, an empty array is used by default. |
|
|
39
|
+
| `opacity` | `string \| number \| undefined` | — | no | Opacity of the scrim element. Applies only when `scrim=true`. |
|
|
40
|
+
| `openDelay` | `string \| number \| undefined` | — | no | Delay in milliseconds before the component opens. Works only together with open-on-hover. |
|
|
41
|
+
| `openOnClick` | `boolean \| undefined` | — | no | Show the component on a click on the activator |
|
|
42
|
+
| `openOnFocus` | `boolean \| undefined` | — | no | Show the component when the activator gets focus |
|
|
43
|
+
| `openOnHover` | `boolean \| undefined` | — | no | Show the component on hover over the activator |
|
|
44
|
+
| `origin` | `Anchor \| "auto" \| "overlap" \| undefined` | `'auto'` | no | Sets the anchor point of the overlay content that is aligned with the `location` anchor of the target. With "auto" the opposite side of the `location` point is used. With "overlap" the same anchor point is used, so the overlay overlaps the target. It also sets the CSS `transform-origin` property for the enter/leave transitions. |
|
|
45
|
+
| `position` | `"absolute" \| "static" \| "fixed" \| "relative" \| "sticky" \| undefined` | — | no | CSS positioning of the component — the value of the `position` property |
|
|
46
|
+
| `prependAvatar` | `string \| undefined` | — | no | Source of the avatar image before the content. Takes priority over the icon. |
|
|
47
|
+
| `queueGap` | `number \| undefined` | — | no | Gap between the toasts in the queue, in pixels. Managed by the CdsToastQueue component. |
|
|
48
|
+
| `queueIndex` | `number \| undefined` | — | no | Index of the toast in the queue. Managed by the CdsToastQueue component. |
|
|
49
|
+
| `reverseTimer` | `boolean \| undefined` | — | no | Reverses the timer bar: it fills up instead of draining. |
|
|
50
|
+
| `status` | `"progress" \| "success" \| "danger" \| "warning" \| "info" \| undefined` | `'info'` | no | Semantic status — drives the color and the default icon. |
|
|
51
|
+
| `target` | `(string & {}) \| Element \| "parent" \| ComponentPublicInstance \| "cursor" \| [x: number, y: number] \| undefined` | — | no | When `locationStrategy` is set to "connected", specify the element or the array of x, y coordinates the overlay is positioned against. By default the activator element is used. |
|
|
52
|
+
| `text` | `string \| number \| undefined` | — | no | Text displayed in the component. |
|
|
53
|
+
| `textColor` | `string \| undefined` | — | no | Text color of the component |
|
|
54
|
+
| `theme` | `string \| undefined` | — | no | Component theme |
|
|
55
|
+
| `timeout` | `string \| number \| undefined` | `5000` | no | Delay in milliseconds before the toast hides automatically. The value `-1` turns auto-closing off. |
|
|
56
|
+
| `timer` | `boolean \| "top" \| "bottom" \| undefined` | `false` | no | Shows the timer bar until auto-closing: `true`/`top` — on top, `bottom` — at the bottom. |
|
|
57
|
+
| `timerColor` | `string \| undefined` | — | no | Color of the timer bar. |
|
|
58
|
+
| `title` | `string \| undefined` | — | no | Heading of the toast. |
|
|
59
|
+
| `transition` | `string \| boolean \| (TransitionProps & { component?: Component \| undefined; }) \| null \| undefined` | `'cds-toast-transition'` | no | Transition animation |
|
|
60
|
+
| `vertical` | `boolean \| undefined` | — | no | Vertical layout: the actions move below the content. |
|
|
61
|
+
| `width` | `string \| number \| undefined` | — | no | Component width |
|
|
62
|
+
| `zIndex` | `string \| number \| undefined` | `2000` | no | The z-index value of the component. |
|
|
63
|
+
|
|
64
|
+
**Events**
|
|
65
|
+
|
|
66
|
+
| Name | Type | Description |
|
|
67
|
+
| --- | --- | --- |
|
|
68
|
+
| `afterEnter` | `[]` | The enter animation finished. |
|
|
69
|
+
| `afterLeave` | `[]` | The leave animation finished. |
|
|
70
|
+
| `update:modelValue` | `[value: boolean]` | The visibility of the toast changed. |
|
|
71
|
+
|
|
72
|
+
**Slots**
|
|
73
|
+
|
|
74
|
+
| Name | Type | Description |
|
|
75
|
+
| --- | --- | --- |
|
|
76
|
+
| `actions` | `{ isActive: Ref<boolean, boolean>; }` | Slot for the actions of the toast. |
|
|
77
|
+
| `activator` | `{ isActive: boolean; props: Record<string, any>; }` | Slot for the element that acts as the activator of the toast. |
|
|
78
|
+
| `default` | `any` | Main content of the toast. |
|
|
79
|
+
| `header` | `any` | Slot for the full-width header of the toast. |
|
|
80
|
+
| `prepend` | `any` | Slot before the content (icon, avatar or loading indicator). |
|
|
81
|
+
| `text` | `any` | Text slot. |
|
|
82
|
+
| `title` | `any` | Heading slot. |
|
|
83
|
+
|
|
84
|
+
**Exposed**
|
|
85
|
+
|
|
86
|
+
| Name | Type | Description |
|
|
87
|
+
| --- | --- | --- |
|
|
88
|
+
| `activatorEl` | `HTMLElement \| undefined` | The DOM element of the activator. |
|
|
89
|
+
| `activatorRef` | `TemplateRef` | Template ref for assigning the activator manually. |
|
|
90
|
+
| `animateClick` | `() => void` | Runs the bounce animation of the content — the same as on a click outside a `persistent` overlay. |
|
|
91
|
+
| `contentEl` | `HTMLElement \| undefined` | The DOM element of the overlay content. |
|
|
92
|
+
| `globalTop` | `boolean` | Whether the overlay is the top one in the global stack of open overlays. |
|
|
93
|
+
| `rootEl` | `HTMLElement \| undefined` | The root DOM element of the overlay. |
|
|
94
|
+
| `scrimEl` | `HTMLElement \| undefined` | The DOM element of the scrim that dims the page. |
|
|
95
|
+
| `targetEl` | `HTMLElement \| undefined` | The DOM element of the positioning target. |
|
|
96
|
+
| `targetRef` | `TemplateRef` | Template ref for assigning the positioning target manually. |
|
|
97
|
+
| `updateLocation` | `((e: Event) => void) \| undefined` | Recalculates the position of the content relative to the target. |
|