@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,205 @@
|
|
|
1
|
+
# CdsInput — 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 wrapper of an input: the label, the description, the outer icons, the block of messages and the validation by rules. You put the control itself into the `default` slot — usually a [CdsField](../cds-field/api.md) with your `input` inside.
|
|
7
|
+
|
|
8
|
+
## Label and description
|
|
9
|
+
|
|
10
|
+
The `label` prop names the field, `description` adds an explanation under the label. The slots of the same names accept arbitrary markup.
|
|
11
|
+
|
|
12
|
+
**Example (SFC):**
|
|
13
|
+
|
|
14
|
+
```vue
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { CdsField, CdsInput } from '@central-design-system/components';
|
|
17
|
+
import { ref } from 'vue';
|
|
18
|
+
|
|
19
|
+
const value = ref('');
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<template>
|
|
23
|
+
<CdsInput
|
|
24
|
+
v-slot="{ id }"
|
|
25
|
+
label="ИНН организации"
|
|
26
|
+
description="10 цифр для юрлица, 12 — для ИП"
|
|
27
|
+
class="w-[350px] m-auto"
|
|
28
|
+
>
|
|
29
|
+
<CdsField v-slot="{ props: fieldProps, focus, blur }" :id="id.value">
|
|
30
|
+
<input v-bind="fieldProps" v-model="value" placeholder="0000000000" @focus="focus" @blur="blur" />
|
|
31
|
+
</CdsField>
|
|
32
|
+
</CdsInput>
|
|
33
|
+
</template>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Messages and hints
|
|
37
|
+
|
|
38
|
+
There is a single line of text under the field, and the props split it by states: `messages` is visible at rest, `hint` while `focused`, and `error-messages` on top of the rest. `CdsInput` does not track the focus state itself: pass it with the `focused` prop.
|
|
39
|
+
|
|
40
|
+
**Example (SFC):**
|
|
41
|
+
|
|
42
|
+
```vue
|
|
43
|
+
<script setup lang="ts">
|
|
44
|
+
import { CdsField, CdsInput } from '@central-design-system/components';
|
|
45
|
+
import { ref } from 'vue';
|
|
46
|
+
|
|
47
|
+
const focused = ref(false);
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
52
|
+
<CdsInput v-slot="{ id }" label="Сообщение" messages="Видно всегда">
|
|
53
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
54
|
+
<input v-bind="fieldProps" readonly />
|
|
55
|
+
</CdsField>
|
|
56
|
+
</CdsInput>
|
|
57
|
+
|
|
58
|
+
<CdsInput v-slot="{ id }" label="Подсказка" hint="Видна, пока поле в фокусе" :focused="focused">
|
|
59
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value" :focused="focused">
|
|
60
|
+
<input v-bind="fieldProps" @focus="focused = true" @blur="focused = false" />
|
|
61
|
+
</CdsField>
|
|
62
|
+
</CdsInput>
|
|
63
|
+
|
|
64
|
+
<CdsInput v-slot="{ id }" label="Ошибка" :error-messages="['Заполните поле']">
|
|
65
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value" error>
|
|
66
|
+
<input v-bind="fieldProps" readonly />
|
|
67
|
+
</CdsField>
|
|
68
|
+
</CdsInput>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Hiding the details
|
|
74
|
+
|
|
75
|
+
The `hide-details` prop removes the bottom block entirely — the fields can be placed tight against each other. The `auto` value hides the block only while there is nothing to show.
|
|
76
|
+
|
|
77
|
+
**Example (SFC):**
|
|
78
|
+
|
|
79
|
+
```vue
|
|
80
|
+
<script setup lang="ts">
|
|
81
|
+
import { CdsField, CdsInput } from '@central-design-system/components';
|
|
82
|
+
</script>
|
|
83
|
+
|
|
84
|
+
<template>
|
|
85
|
+
<div class="flex flex-col gap-2 w-[350px] m-auto">
|
|
86
|
+
<CdsInput v-slot="{ id }" label="Блок деталей на месте">
|
|
87
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
88
|
+
<input v-bind="fieldProps" readonly />
|
|
89
|
+
</CdsField>
|
|
90
|
+
</CdsInput>
|
|
91
|
+
|
|
92
|
+
<CdsInput v-slot="{ id }" label="Блок деталей скрыт" hide-details>
|
|
93
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
94
|
+
<input v-bind="fieldProps" readonly />
|
|
95
|
+
</CdsField>
|
|
96
|
+
</CdsInput>
|
|
97
|
+
|
|
98
|
+
<CdsInput v-slot="{ id }" label="Скрыт, пока нечего показать" hide-details="auto" messages="А теперь есть">
|
|
99
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
100
|
+
<input v-bind="fieldProps" readonly />
|
|
101
|
+
</CdsField>
|
|
102
|
+
</CdsInput>
|
|
103
|
+
</div>
|
|
104
|
+
</template>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Icons
|
|
108
|
+
|
|
109
|
+
The `prepend-icon` and `append-icon` props put an icon outside the control. Clicks on them are caught by `@click:prepend` and `@click:append`.
|
|
110
|
+
|
|
111
|
+
**Example (SFC):**
|
|
112
|
+
|
|
113
|
+
```vue
|
|
114
|
+
<script setup lang="ts">
|
|
115
|
+
import { CdsField, CdsInput } from '@central-design-system/components';
|
|
116
|
+
</script>
|
|
117
|
+
|
|
118
|
+
<template>
|
|
119
|
+
<CdsInput v-slot="{ id }" label="Дата поставки" prepend-icon="calendar" append-icon="info" class="w-[350px] m-auto">
|
|
120
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
121
|
+
<input v-bind="fieldProps" readonly />
|
|
122
|
+
</CdsField>
|
|
123
|
+
</CdsInput>
|
|
124
|
+
</template>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Direction
|
|
128
|
+
|
|
129
|
+
The `direction` prop changes the grid: `horizontal` puts the icons on the sides of the control, `vertical` puts them above and below it.
|
|
130
|
+
|
|
131
|
+
**Example (SFC):**
|
|
132
|
+
|
|
133
|
+
```vue
|
|
134
|
+
<script setup lang="ts">
|
|
135
|
+
import { CdsField, CdsInput } from '@central-design-system/components';
|
|
136
|
+
</script>
|
|
137
|
+
|
|
138
|
+
<template>
|
|
139
|
+
<div class="flex flex-col gap-3 w-[350px] m-auto">
|
|
140
|
+
<CdsInput v-slot="{ id }" label="Горизонтально" prepend-icon="doc" append-icon="info">
|
|
141
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
142
|
+
<input v-bind="fieldProps" readonly />
|
|
143
|
+
</CdsField>
|
|
144
|
+
</CdsInput>
|
|
145
|
+
|
|
146
|
+
<CdsInput v-slot="{ id }" label="Вертикально" direction="vertical" prepend-icon="doc" append-icon="info">
|
|
147
|
+
<CdsField v-slot="{ props: fieldProps }" :id="id.value">
|
|
148
|
+
<input v-bind="fieldProps" readonly />
|
|
149
|
+
</CdsField>
|
|
150
|
+
</CdsInput>
|
|
151
|
+
</div>
|
|
152
|
+
</template>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Validating your own field
|
|
156
|
+
|
|
157
|
+
The `rules` prop accepts validation functions, `validation-value` accepts the value to pass to them. The result arrives in the slot through `isValid`: bind it to the `error` prop of `CdsField` and the frame turns red together with the message.
|
|
158
|
+
|
|
159
|
+
**Example (SFC):**
|
|
160
|
+
|
|
161
|
+
```vue
|
|
162
|
+
<script setup lang="ts">
|
|
163
|
+
import { CdsField, CdsInput } from '@central-design-system/components';
|
|
164
|
+
import { ref } from 'vue';
|
|
165
|
+
|
|
166
|
+
const inn = ref('770');
|
|
167
|
+
const focused = ref(false);
|
|
168
|
+
|
|
169
|
+
const rules = [
|
|
170
|
+
(value: string) => !!value || 'Заполните ИНН',
|
|
171
|
+
(value: string) => /^\d{10}$|^\d{12}$/.test(value) || 'ИНН состоит из 10 или 12 цифр'
|
|
172
|
+
];
|
|
173
|
+
</script>
|
|
174
|
+
|
|
175
|
+
<template>
|
|
176
|
+
<CdsInput
|
|
177
|
+
v-slot="{ id, isValid }"
|
|
178
|
+
label="ИНН организации"
|
|
179
|
+
description="10 цифр для юрлица, 12 — для ИП"
|
|
180
|
+
:validation-value="inn"
|
|
181
|
+
:rules="rules"
|
|
182
|
+
:focused="focused"
|
|
183
|
+
class="w-[350px] m-auto"
|
|
184
|
+
>
|
|
185
|
+
<CdsField
|
|
186
|
+
v-slot="{ props: fieldProps }"
|
|
187
|
+
:id="id.value"
|
|
188
|
+
:error="isValid.value === false"
|
|
189
|
+
:focused="focused"
|
|
190
|
+
:dirty="!!inn"
|
|
191
|
+
prepend-inner-icon="company"
|
|
192
|
+
clearable
|
|
193
|
+
@click:clear="inn = ''"
|
|
194
|
+
>
|
|
195
|
+
<input
|
|
196
|
+
v-bind="fieldProps"
|
|
197
|
+
v-model="inn"
|
|
198
|
+
placeholder="0000000000"
|
|
199
|
+
@focus="focused = true"
|
|
200
|
+
@blur="focused = false"
|
|
201
|
+
/>
|
|
202
|
+
</CdsField>
|
|
203
|
+
</CdsInput>
|
|
204
|
+
</template>
|
|
205
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# CdsInput — 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
|
+
## _CdsInput.variables.scss
|
|
8
|
+
|
|
9
|
+
```scss
|
|
10
|
+
// ======================= Variables =======================
|
|
11
|
+
$input-affix-margin-inside: var(--cds-spacing-200) !default;
|
|
12
|
+
$input-disabled-color: rgb(var(--cds-color-content-disable)) !default;
|
|
13
|
+
$input-error-color: rgb(var(--cds-color-status-danger-content)) !default;
|
|
14
|
+
|
|
15
|
+
// ======================= Sizes =======================
|
|
16
|
+
$input-sizes: (
|
|
17
|
+
xs: (
|
|
18
|
+
label: (
|
|
19
|
+
'font-size': '100',
|
|
20
|
+
'margin-block': 0,
|
|
21
|
+
),
|
|
22
|
+
description: (
|
|
23
|
+
'font-size': '50',
|
|
24
|
+
'margin-block': var(--cds-spacing-50),
|
|
25
|
+
),
|
|
26
|
+
input: (
|
|
27
|
+
'font-size': '100',
|
|
28
|
+
'affix-margin-inside': var(--cds-spacing-100),
|
|
29
|
+
),
|
|
30
|
+
messages: (
|
|
31
|
+
'font-size': '50',
|
|
32
|
+
'margin-block': var(--cds-spacing-50),
|
|
33
|
+
),
|
|
34
|
+
),
|
|
35
|
+
sm: (
|
|
36
|
+
label: (
|
|
37
|
+
'font-size': '100',
|
|
38
|
+
'margin-block': var(--cds-spacing-50),
|
|
39
|
+
),
|
|
40
|
+
description: (
|
|
41
|
+
'font-size': '50',
|
|
42
|
+
'margin-block': var(--cds-spacing-50),
|
|
43
|
+
),
|
|
44
|
+
input: (
|
|
45
|
+
'font-size': '100',
|
|
46
|
+
'affix-margin-inside': var(--cds-spacing-100),
|
|
47
|
+
),
|
|
48
|
+
messages: (
|
|
49
|
+
'font-size': '50',
|
|
50
|
+
'margin-block': var(--cds-spacing-50)
|
|
51
|
+
),
|
|
52
|
+
),
|
|
53
|
+
md: (
|
|
54
|
+
label: (
|
|
55
|
+
'font-size': '200',
|
|
56
|
+
'margin-block': var(--cds-spacing-100),
|
|
57
|
+
),
|
|
58
|
+
description: (
|
|
59
|
+
'font-size': '100',
|
|
60
|
+
'margin-block': var(--cds-spacing-100),
|
|
61
|
+
),
|
|
62
|
+
input: (
|
|
63
|
+
'font-size': '200',
|
|
64
|
+
'affix-margin-inside': var(--cds-spacing-200),
|
|
65
|
+
),
|
|
66
|
+
messages: (
|
|
67
|
+
'font-size': '100',
|
|
68
|
+
'margin-block': var(--cds-spacing-50),
|
|
69
|
+
),
|
|
70
|
+
),
|
|
71
|
+
lg: (
|
|
72
|
+
label: (
|
|
73
|
+
'font-size': '300',
|
|
74
|
+
'margin-block': var(--cds-spacing-100),
|
|
75
|
+
),
|
|
76
|
+
description: (
|
|
77
|
+
'font-size': '200',
|
|
78
|
+
'margin-block': var(--cds-spacing-200),
|
|
79
|
+
),
|
|
80
|
+
input: (
|
|
81
|
+
'font-size': '300',
|
|
82
|
+
'affix-margin-inside': var(--cds-spacing-300),
|
|
83
|
+
),
|
|
84
|
+
messages: (
|
|
85
|
+
'font-size': '200',
|
|
86
|
+
'margin-block': var(--cds-spacing-100),
|
|
87
|
+
),
|
|
88
|
+
),
|
|
89
|
+
xl: (
|
|
90
|
+
label: (
|
|
91
|
+
'font-size': '400',
|
|
92
|
+
'margin-block': var(--cds-spacing-200),
|
|
93
|
+
),
|
|
94
|
+
description: (
|
|
95
|
+
'font-size': '300',
|
|
96
|
+
'margin-block': var(--cds-spacing-200),
|
|
97
|
+
),
|
|
98
|
+
input: (
|
|
99
|
+
'font-size': '400',
|
|
100
|
+
'affix-margin-inside': var(--cds-spacing-300),
|
|
101
|
+
),
|
|
102
|
+
messages: (
|
|
103
|
+
'font-size': '300',
|
|
104
|
+
'margin-block': var(--cds-spacing-100),
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
) !default;
|
|
108
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# CdsLabel — 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
|
+
A label names a field — it says what is expected from the user. It renders as a `label` tag and binds to the control through `for`, so a click on the label moves the focus into the field.
|
|
7
|
+
|
|
8
|
+
## CdsLabel
|
|
9
|
+
|
|
10
|
+
**Props**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Default | Required | Description |
|
|
13
|
+
| --- | --- | --- | --- | --- |
|
|
14
|
+
| `content` | `string \| number \| undefined` | — | no | Content displayed in the component. |
|
|
15
|
+
| `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
|
|
16
|
+
| `for` | `string \| undefined` | — | no | Identifier of the field the label belongs to — the value of the `for` HTML attribute |
|
|
17
|
+
| `readonly` | `boolean \| null \| undefined` | `null` | no | Read-only state |
|
|
18
|
+
| `size` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | `'md'` | no | Size of the component |
|
|
19
|
+
| `text` | `string \| number \| undefined` | — | no | Text displayed in the component. |
|
|
20
|
+
|
|
21
|
+
**Slots**
|
|
22
|
+
|
|
23
|
+
| Name | Type | Description |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| `default` | `any` | Text of the label for the field |
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# CdsLabel — 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 label names a field — it says what is expected from the user. It renders as a `label` tag and binds to the control through `for`, so a click on the label moves the focus into the field.
|
|
7
|
+
|
|
8
|
+
## Text
|
|
9
|
+
|
|
10
|
+
The `text` prop sets the caption. The `default` slot accepts arbitrary markup — an icon with an explanation next to the text, for example.
|
|
11
|
+
|
|
12
|
+
**Example (SFC):**
|
|
13
|
+
|
|
14
|
+
```vue
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { CdsIcon, CdsLabel } from '@central-design-system/components';
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<div class="flex flex-col items-center gap-2">
|
|
21
|
+
<CdsLabel text="Название организации" />
|
|
22
|
+
|
|
23
|
+
<CdsLabel>
|
|
24
|
+
Название организации
|
|
25
|
+
<CdsIcon icon="info" size="sm" end />
|
|
26
|
+
</CdsLabel>
|
|
27
|
+
</div>
|
|
28
|
+
</template>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## States
|
|
32
|
+
|
|
33
|
+
The `disabled` and `readonly` props mute the label together with the field: both stop reacting to a click, and `disabled` also changes the color.
|
|
34
|
+
|
|
35
|
+
**Example (SFC):**
|
|
36
|
+
|
|
37
|
+
```vue
|
|
38
|
+
<script setup lang="ts">
|
|
39
|
+
import { CdsLabel } from '@central-design-system/components';
|
|
40
|
+
</script>
|
|
41
|
+
|
|
42
|
+
<template>
|
|
43
|
+
<div class="flex flex-col items-center gap-2">
|
|
44
|
+
<CdsLabel text="Обычная метка" />
|
|
45
|
+
<CdsLabel text="Метка заблокированного поля" disabled />
|
|
46
|
+
<CdsLabel text="Метка поля только для чтения" readonly />
|
|
47
|
+
</div>
|
|
48
|
+
</template>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## A label for your own control
|
|
52
|
+
|
|
53
|
+
The `for` prop takes the `id` of the control — the browser binds them itself: a click on the label sets the focus, and the screen reader reads the caption together with the field.
|
|
54
|
+
|
|
55
|
+
**Example (SFC):**
|
|
56
|
+
|
|
57
|
+
```vue
|
|
58
|
+
<script setup lang="ts">
|
|
59
|
+
import { CdsLabel } from '@central-design-system/components';
|
|
60
|
+
import { ref } from 'vue';
|
|
61
|
+
|
|
62
|
+
const agreed = ref(false);
|
|
63
|
+
</script>
|
|
64
|
+
|
|
65
|
+
<template>
|
|
66
|
+
<div class="flex items-center gap-1">
|
|
67
|
+
<input id="agreement" v-model="agreed" type="checkbox" />
|
|
68
|
+
|
|
69
|
+
<CdsLabel for="agreement" text="Согласен с условиями обработки данных" />
|
|
70
|
+
</div>
|
|
71
|
+
</template>
|
|
72
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# CdsLabel — 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
|
+
## _CdsLabel.variables.scss
|
|
8
|
+
|
|
9
|
+
```scss
|
|
10
|
+
$label-color: inherit !default;
|
|
11
|
+
$label-disabled-color: rgb(var(--cds-color-content-disable)) !default;
|
|
12
|
+
```
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# CdsLayout — 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
|
+
The frame of the application: `CdsLayout` places the header, the side drawers, the content and the footer, measures their sizes and takes the scrolling over. The parts of the layout know about each other — the content never slides under the header and never hides behind a drawer.
|
|
7
|
+
|
|
8
|
+
## CdsLayout
|
|
9
|
+
|
|
10
|
+
**Props**
|
|
11
|
+
|
|
12
|
+
| Prop | Type | Default | Required | Description |
|
|
13
|
+
| --- | --- | --- | --- | --- |
|
|
14
|
+
| `container` | `boolean \| undefined` | `false` | no | Container mode: the layout scrolls inside itself instead of scrolling the page. |
|
|
15
|
+
| `theme` | `string \| undefined` | — | no | Component theme |
|
|
16
|
+
| `view` | `string \| undefined` | `'hhh lpr fff'` | no | Layout scheme of three strings: top (header), middle (left-page-right), bottom (footer). For example `'hhh lpr fff'`. |
|
|
17
|
+
|
|
18
|
+
**Events**
|
|
19
|
+
|
|
20
|
+
| Name | Type | Description |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| `resize` | `[contentRect: Pick<DOMRectReadOnly, "width" \| "height">]` | The size of the layout area has changed. |
|
|
23
|
+
| `scroll` | `[info: ScrollObserver]` | The layout area has been scrolled. |
|
|
24
|
+
| `scrollHeight` | `[height: number]` | The height of the scrollable content has changed. |
|
|
25
|
+
|
|
26
|
+
**Slots**
|
|
27
|
+
|
|
28
|
+
| Name | Type | Description |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `default` | `any` | Content of the layout: `CdsHeader`, `CdsDrawer`, `CdsMain`, `CdsFooter`. |
|
|
31
|
+
|
|
32
|
+
**Exposed**
|
|
33
|
+
|
|
34
|
+
| Name | Type | Description |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `animate` | `() => void` | Turns on the rebuild animation of the layout for the duration of the next size update. |
|
|
37
|
+
| `containerHeight` | `number` | Height of the content area without the header and the footer, in pixels. |
|
|
38
|
+
| `footer` | `LayoutPart` | Size and offset of the layout footer. |
|
|
39
|
+
| `header` | `LayoutPart` | Size and offset of the layout header. |
|
|
40
|
+
| `height` | `number` | Full height of the layout in pixels. |
|
|
41
|
+
| `instances` | `Record<string, unknown>` | Components registered in the layout by their identifiers — the header, the footer, the drawers, the content. |
|
|
42
|
+
| `isContainer` | `boolean` | Whether the layout is limited in width by a container (`container`) instead of stretching across the whole screen. |
|
|
43
|
+
| `left` | `LayoutPart` | Size and offset of the left drawer of the layout. |
|
|
44
|
+
| `right` | `LayoutPart` | Size and offset of the right drawer of the layout. |
|
|
45
|
+
| `rootRef` | `HTMLElement \| undefined` | Ref to the root DOM element of the layout. |
|
|
46
|
+
| `rows` | `{ top: string[]; middle: string[]; bottom: string[]; }` | Identifiers of the components distributed across the rows of the layout: top, middle and bottom. |
|
|
47
|
+
| `scroll` | `ScrollObserver` | Scroll state of the layout: position, direction and delta. |
|
|
48
|
+
| `scrollbarWidth` | `number` | Width of the system scrollbar in pixels — taken into account when the scroll is locked. |
|
|
49
|
+
| `totalWidth` | `number` | Full width of the layout in pixels. |
|
|
50
|
+
| `update` | `(part: "left" \| "right" \| "footer" \| "header", prop: keyof LayoutPart, value: number \| boolean) => void` | Updates the size, the offset or the space reservation for a part of the layout. |
|