@skdx/docs-kit 0.35.0
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/LICENSE +21 -0
- package/README.md +22 -0
- package/dist/component-aliases.json +12 -0
- package/dist/data/THIRD-PARTY-NOTICES.md +21 -0
- package/dist/data/angular-inputs.json +1 -0
- package/dist/data/api-manifest.json +1 -0
- package/dist/data/exports-by-framework.json +1 -0
- package/dist/data/honoured-slots.json +1 -0
- package/dist/data/styling-hooks-manifest.json +10331 -0
- package/dist/frameworks.mjs +64 -0
- package/dist/shared/contracts/accordion.d.ts +3 -0
- package/dist/shared/contracts/accordion.js +1 -0
- package/dist/shared/contracts/alert.d.ts +3 -0
- package/dist/shared/contracts/alert.js +1 -0
- package/dist/shared/contracts/angle-slider.d.ts +3 -0
- package/dist/shared/contracts/angle-slider.js +1 -0
- package/dist/shared/contracts/aspect-ratio.d.ts +3 -0
- package/dist/shared/contracts/aspect-ratio.js +1 -0
- package/dist/shared/contracts/autocomplete.d.ts +3 -0
- package/dist/shared/contracts/autocomplete.js +1 -0
- package/dist/shared/contracts/avatar.d.ts +3 -0
- package/dist/shared/contracts/avatar.js +1 -0
- package/dist/shared/contracts/badge.d.ts +3 -0
- package/dist/shared/contracts/badge.js +1 -0
- package/dist/shared/contracts/box.d.ts +3 -0
- package/dist/shared/contracts/box.js +1 -0
- package/dist/shared/contracts/breadcrumb.d.ts +3 -0
- package/dist/shared/contracts/breadcrumb.js +1 -0
- package/dist/shared/contracts/button.d.ts +3 -0
- package/dist/shared/contracts/button.js +1 -0
- package/dist/shared/contracts/calendar.d.ts +5 -0
- package/dist/shared/contracts/calendar.js +1 -0
- package/dist/shared/contracts/card.d.ts +3 -0
- package/dist/shared/contracts/card.js +1 -0
- package/dist/shared/contracts/carousel.d.ts +3 -0
- package/dist/shared/contracts/carousel.js +1 -0
- package/dist/shared/contracts/change-reason.d.ts +29 -0
- package/dist/shared/contracts/change-reason.js +1 -0
- package/dist/shared/contracts/chat-composer.d.ts +3 -0
- package/dist/shared/contracts/chat-composer.js +1 -0
- package/dist/shared/contracts/chat-message.d.ts +3 -0
- package/dist/shared/contracts/chat-message.js +1 -0
- package/dist/shared/contracts/checkbox-card.d.ts +3 -0
- package/dist/shared/contracts/checkbox-card.js +1 -0
- package/dist/shared/contracts/checkbox-group.d.ts +3 -0
- package/dist/shared/contracts/checkbox-group.js +1 -0
- package/dist/shared/contracts/checkbox.d.ts +3 -0
- package/dist/shared/contracts/checkbox.js +1 -0
- package/dist/shared/contracts/clipboard.d.ts +3 -0
- package/dist/shared/contracts/clipboard.js +1 -0
- package/dist/shared/contracts/collapsible.d.ts +3 -0
- package/dist/shared/contracts/collapsible.js +1 -0
- package/dist/shared/contracts/color-picker.d.ts +3 -0
- package/dist/shared/contracts/color-picker.js +1 -0
- package/dist/shared/contracts/combobox.d.ts +3 -0
- package/dist/shared/contracts/combobox.js +1 -0
- package/dist/shared/contracts/command.d.ts +3 -0
- package/dist/shared/contracts/command.js +1 -0
- package/dist/shared/contracts/comment-thread.d.ts +3 -0
- package/dist/shared/contracts/comment-thread.js +1 -0
- package/dist/shared/contracts/comment.d.ts +3 -0
- package/dist/shared/contracts/comment.js +1 -0
- package/dist/shared/contracts/confirm-dialog.d.ts +3 -0
- package/dist/shared/contracts/confirm-dialog.js +1 -0
- package/dist/shared/contracts/conversation-list.d.ts +3 -0
- package/dist/shared/contracts/conversation-list.js +1 -0
- package/dist/shared/contracts/dashboard-layout.d.ts +3 -0
- package/dist/shared/contracts/dashboard-layout.js +1 -0
- package/dist/shared/contracts/date-field.d.ts +3 -0
- package/dist/shared/contracts/date-field.js +1 -0
- package/dist/shared/contracts/date-picker.d.ts +3 -0
- package/dist/shared/contracts/date-picker.js +1 -0
- package/dist/shared/contracts/date-value.d.ts +11 -0
- package/dist/shared/contracts/date-value.js +1 -0
- package/dist/shared/contracts/dialog.d.ts +3 -0
- package/dist/shared/contracts/dialog.js +1 -0
- package/dist/shared/contracts/divider.d.ts +5 -0
- package/dist/shared/contracts/divider.js +1 -0
- package/dist/shared/contracts/drawer.d.ts +3 -0
- package/dist/shared/contracts/drawer.js +1 -0
- package/dist/shared/contracts/editable.d.ts +3 -0
- package/dist/shared/contracts/editable.js +1 -0
- package/dist/shared/contracts/empty-state.d.ts +3 -0
- package/dist/shared/contracts/empty-state.js +1 -0
- package/dist/shared/contracts/field.d.ts +3 -0
- package/dist/shared/contracts/field.js +1 -0
- package/dist/shared/contracts/file-upload.d.ts +3 -0
- package/dist/shared/contracts/file-upload.js +1 -0
- package/dist/shared/contracts/filter-bar.d.ts +3 -0
- package/dist/shared/contracts/filter-bar.js +1 -0
- package/dist/shared/contracts/floating-panel.d.ts +3 -0
- package/dist/shared/contracts/floating-panel.js +1 -0
- package/dist/shared/contracts/forgot-password-page.d.ts +3 -0
- package/dist/shared/contracts/forgot-password-page.js +1 -0
- package/dist/shared/contracts/form-property.d.ts +3 -0
- package/dist/shared/contracts/form-property.js +1 -0
- package/dist/shared/contracts/form-section.d.ts +3 -0
- package/dist/shared/contracts/form-section.js +1 -0
- package/dist/shared/contracts/form-validity.d.ts +7 -0
- package/dist/shared/contracts/form-validity.js +1 -0
- package/dist/shared/contracts/form.d.ts +3 -0
- package/dist/shared/contracts/form.js +1 -0
- package/dist/shared/contracts/heading.d.ts +3 -0
- package/dist/shared/contracts/heading.js +1 -0
- package/dist/shared/contracts/image.d.ts +3 -0
- package/dist/shared/contracts/image.js +1 -0
- package/dist/shared/contracts/index.d.ts +8 -0
- package/dist/shared/contracts/index.js +1 -0
- package/dist/shared/contracts/kbd.d.ts +3 -0
- package/dist/shared/contracts/kbd.js +1 -0
- package/dist/shared/contracts/label.d.ts +3 -0
- package/dist/shared/contracts/label.js +1 -0
- package/dist/shared/contracts/link.d.ts +3 -0
- package/dist/shared/contracts/link.js +1 -0
- package/dist/shared/contracts/list.d.ts +3 -0
- package/dist/shared/contracts/list.js +1 -0
- package/dist/shared/contracts/listbox.d.ts +3 -0
- package/dist/shared/contracts/listbox.js +1 -0
- package/dist/shared/contracts/loading-overlay.d.ts +3 -0
- package/dist/shared/contracts/loading-overlay.js +1 -0
- package/dist/shared/contracts/member-id.d.ts +18 -0
- package/dist/shared/contracts/member-id.js +1 -0
- package/dist/shared/contracts/mentions.d.ts +3 -0
- package/dist/shared/contracts/mentions.js +1 -0
- package/dist/shared/contracts/menu.d.ts +3 -0
- package/dist/shared/contracts/menu.js +1 -0
- package/dist/shared/contracts/menubar.d.ts +3 -0
- package/dist/shared/contracts/menubar.js +1 -0
- package/dist/shared/contracts/navigation-menu.d.ts +6 -0
- package/dist/shared/contracts/navigation-menu.js +1 -0
- package/dist/shared/contracts/notification-center.d.ts +3 -0
- package/dist/shared/contracts/notification-center.js +1 -0
- package/dist/shared/contracts/number-field.d.ts +5 -0
- package/dist/shared/contracts/number-field.js +1 -0
- package/dist/shared/contracts/onboarding-checklist.d.ts +3 -0
- package/dist/shared/contracts/onboarding-checklist.js +1 -0
- package/dist/shared/contracts/overlay-parts.d.ts +73 -0
- package/dist/shared/contracts/overlay-parts.js +1 -0
- package/dist/shared/contracts/page-container.d.ts +3 -0
- package/dist/shared/contracts/page-container.js +1 -0
- package/dist/shared/contracts/pagination.d.ts +5 -0
- package/dist/shared/contracts/pagination.js +1 -0
- package/dist/shared/contracts/password-input.d.ts +6 -0
- package/dist/shared/contracts/password-input.js +1 -0
- package/dist/shared/contracts/pin-input.d.ts +6 -0
- package/dist/shared/contracts/pin-input.js +1 -0
- package/dist/shared/contracts/polymorphic.d.ts +6 -0
- package/dist/shared/contracts/polymorphic.js +1 -0
- package/dist/shared/contracts/popover.d.ts +7 -0
- package/dist/shared/contracts/popover.js +1 -0
- package/dist/shared/contracts/progress.d.ts +6 -0
- package/dist/shared/contracts/progress.js +1 -0
- package/dist/shared/contracts/qr-code.d.ts +5 -0
- package/dist/shared/contracts/qr-code.js +1 -0
- package/dist/shared/contracts/radio-card.d.ts +6 -0
- package/dist/shared/contracts/radio-card.js +1 -0
- package/dist/shared/contracts/radio-group.d.ts +6 -0
- package/dist/shared/contracts/radio-group.js +1 -0
- package/dist/shared/contracts/rating.d.ts +6 -0
- package/dist/shared/contracts/rating.js +1 -0
- package/dist/shared/contracts/reset-password-page.d.ts +3 -0
- package/dist/shared/contracts/reset-password-page.js +1 -0
- package/dist/shared/contracts/resizable.d.ts +7 -0
- package/dist/shared/contracts/resizable.js +1 -0
- package/dist/shared/contracts/rules.d.ts +11 -0
- package/dist/shared/contracts/rules.js +1 -0
- package/dist/shared/contracts/scroll-area.d.ts +6 -0
- package/dist/shared/contracts/scroll-area.js +1 -0
- package/dist/shared/contracts/select.d.ts +5 -0
- package/dist/shared/contracts/select.js +1 -0
- package/dist/shared/contracts/selection-value.d.ts +20 -0
- package/dist/shared/contracts/selection-value.js +1 -0
- package/dist/shared/contracts/sign-in-page.d.ts +3 -0
- package/dist/shared/contracts/sign-in-page.js +1 -0
- package/dist/shared/contracts/sign-up-page.d.ts +3 -0
- package/dist/shared/contracts/sign-up-page.js +1 -0
- package/dist/shared/contracts/skeleton.d.ts +5 -0
- package/dist/shared/contracts/skeleton.js +1 -0
- package/dist/shared/contracts/slider.d.ts +7 -0
- package/dist/shared/contracts/slider.js +1 -0
- package/dist/shared/contracts/speed-dial.d.ts +6 -0
- package/dist/shared/contracts/speed-dial.js +1 -0
- package/dist/shared/contracts/spinner.d.ts +6 -0
- package/dist/shared/contracts/spinner.js +1 -0
- package/dist/shared/contracts/split-button.d.ts +6 -0
- package/dist/shared/contracts/split-button.js +1 -0
- package/dist/shared/contracts/stat-card.d.ts +3 -0
- package/dist/shared/contracts/stat-card.js +1 -0
- package/dist/shared/contracts/stepper.d.ts +6 -0
- package/dist/shared/contracts/stepper.js +1 -0
- package/dist/shared/contracts/styling-hooks.d.ts +8 -0
- package/dist/shared/contracts/styling-hooks.js +1 -0
- package/dist/shared/contracts/switch.d.ts +6 -0
- package/dist/shared/contracts/switch.js +1 -0
- package/dist/shared/contracts/table.d.ts +7 -0
- package/dist/shared/contracts/table.js +1 -0
- package/dist/shared/contracts/tabs.d.ts +5 -0
- package/dist/shared/contracts/tabs.js +1 -0
- package/dist/shared/contracts/tag-group.d.ts +7 -0
- package/dist/shared/contracts/tag-group.js +1 -0
- package/dist/shared/contracts/tags-input.d.ts +8 -0
- package/dist/shared/contracts/tags-input.js +1 -0
- package/dist/shared/contracts/text-field.d.ts +6 -0
- package/dist/shared/contracts/text-field.js +1 -0
- package/dist/shared/contracts/text.d.ts +6 -0
- package/dist/shared/contracts/text.js +1 -0
- package/dist/shared/contracts/textarea.d.ts +5 -0
- package/dist/shared/contracts/textarea.js +1 -0
- package/dist/shared/contracts/time-field.d.ts +5 -0
- package/dist/shared/contracts/time-field.js +1 -0
- package/dist/shared/contracts/time.d.ts +6 -0
- package/dist/shared/contracts/time.js +1 -0
- package/dist/shared/contracts/timeline.d.ts +5 -0
- package/dist/shared/contracts/timeline.js +1 -0
- package/dist/shared/contracts/toast.d.ts +6 -0
- package/dist/shared/contracts/toast.js +1 -0
- package/dist/shared/contracts/toggle-group.d.ts +6 -0
- package/dist/shared/contracts/toggle-group.js +1 -0
- package/dist/shared/contracts/toggle.d.ts +5 -0
- package/dist/shared/contracts/toggle.js +1 -0
- package/dist/shared/contracts/toolbar.d.ts +3 -0
- package/dist/shared/contracts/toolbar.js +1 -0
- package/dist/shared/contracts/tour.d.ts +5 -0
- package/dist/shared/contracts/tour.js +1 -0
- package/dist/shared/contracts/transfer.d.ts +6 -0
- package/dist/shared/contracts/transfer.js +1 -0
- package/dist/shared/contracts/tree-select.d.ts +6 -0
- package/dist/shared/contracts/tree-select.js +1 -0
- package/dist/shared/contracts/tree.d.ts +6 -0
- package/dist/shared/contracts/tree.js +1 -0
- package/dist/shared/contracts/types.d.ts +230 -0
- package/dist/shared/contracts/types.js +1 -0
- package/dist/shared/contracts/usage-card.d.ts +3 -0
- package/dist/shared/contracts/usage-card.js +1 -0
- package/dist/shared/contracts/user-menu.d.ts +3 -0
- package/dist/shared/contracts/user-menu.js +1 -0
- package/dist/shared/contracts/verification-page.d.ts +3 -0
- package/dist/shared/contracts/verification-page.js +1 -0
- package/dist/shared/contracts/workspace-switcher.d.ts +3 -0
- package/dist/shared/contracts/workspace-switcher.js +1 -0
- package/dist/shared/core/announcer.d.ts +17 -0
- package/dist/shared/core/announcer.js +1 -0
- package/dist/shared/core/appearance.d.ts +14 -0
- package/dist/shared/core/appearance.js +1 -0
- package/dist/shared/core/arrow-keys.d.ts +7 -0
- package/dist/shared/core/arrow-keys.js +1 -0
- package/dist/shared/core/calendar-locale.d.ts +35 -0
- package/dist/shared/core/calendar-locale.js +1 -0
- package/dist/shared/core/color.d.ts +80 -0
- package/dist/shared/core/color.js +1 -0
- package/dist/shared/core/controllable.d.ts +42 -0
- package/dist/shared/core/controllable.js +1 -0
- package/dist/shared/core/csv.d.ts +43 -0
- package/dist/shared/core/csv.js +2 -0
- package/dist/shared/core/date-segments.d.ts +223 -0
- package/dist/shared/core/date-segments.js +1 -0
- package/dist/shared/core/date-value.d.ts +57 -0
- package/dist/shared/core/date-value.js +1 -0
- package/dist/shared/core/dev-mode.d.ts +12 -0
- package/dist/shared/core/dev-mode.js +1 -0
- package/dist/shared/core/dialogs.d.ts +96 -0
- package/dist/shared/core/dialogs.js +1 -0
- package/dist/shared/core/dismissal.d.ts +56 -0
- package/dist/shared/core/dismissal.js +1 -0
- package/dist/shared/core/field-core.d.ts +250 -0
- package/dist/shared/core/field-core.js +1 -0
- package/dist/shared/core/focus-targets.d.ts +77 -0
- package/dist/shared/core/focus-targets.js +1 -0
- package/dist/shared/core/format-file-size.d.ts +9 -0
- package/dist/shared/core/format-file-size.js +1 -0
- package/dist/shared/core/glyph-data.d.ts +13 -0
- package/dist/shared/core/glyph-data.js +1 -0
- package/dist/shared/core/measure-auto-resize.d.ts +5 -0
- package/dist/shared/core/measure-auto-resize.js +1 -0
- package/dist/shared/core/media-query.d.ts +7 -0
- package/dist/shared/core/media-query.js +1 -0
- package/dist/shared/core/mentions.d.ts +116 -0
- package/dist/shared/core/mentions.js +2 -0
- package/dist/shared/core/pin-chars.d.ts +13 -0
- package/dist/shared/core/pin-chars.js +1 -0
- package/dist/shared/core/placement.d.ts +102 -0
- package/dist/shared/core/placement.js +1 -0
- package/dist/shared/core/qr-encoder.d.ts +33 -0
- package/dist/shared/core/qr-encoder.js +1 -0
- package/dist/shared/core/roving-tab-stop.d.ts +37 -0
- package/dist/shared/core/roving-tab-stop.js +1 -0
- package/dist/shared/core/select-keyboard.d.ts +80 -0
- package/dist/shared/core/select-keyboard.js +1 -0
- package/dist/shared/core/selection.d.ts +58 -0
- package/dist/shared/core/selection.js +1 -0
- package/dist/shared/core/tabbable.d.ts +8 -0
- package/dist/shared/core/tabbable.js +1 -0
- package/dist/shared/core/timer.d.ts +82 -0
- package/dist/shared/core/timer.js +1 -0
- package/dist/shared/core/tree-columns.d.ts +48 -0
- package/dist/shared/core/tree-columns.js +1 -0
- package/dist/shared/core/typeahead.d.ts +27 -0
- package/dist/shared/core/typeahead.js +1 -0
- package/dist/shared/index.d.ts +113 -0
- package/dist/shared/index.js +1 -0
- package/dist/skins-src/_foundation-fallback.css +124 -0
- package/dist/skins-src/base.css +328 -0
- package/dist/skins-src/components/_actuator.css +203 -0
- package/dist/skins-src/components/_arrow.css +20 -0
- package/dist/skins-src/components/_card-control.css +27 -0
- package/dist/skins-src/components/_collection.css +281 -0
- package/dist/skins-src/components/_hit-target.css +28 -0
- package/dist/skins-src/components/_overlay.css +214 -0
- package/dist/skins-src/components/_status.css +38 -0
- package/dist/skins-src/components/_trigger.css +85 -0
- package/dist/skins-src/components/accordion.css +85 -0
- package/dist/skins-src/components/alert.css +118 -0
- package/dist/skins-src/components/angle-slider.css +110 -0
- package/dist/skins-src/components/aspect-ratio.css +26 -0
- package/dist/skins-src/components/autocomplete.css +112 -0
- package/dist/skins-src/components/avatar.css +87 -0
- package/dist/skins-src/components/badge.css +164 -0
- package/dist/skins-src/components/box.css +9 -0
- package/dist/skins-src/components/breadcrumb.css +78 -0
- package/dist/skins-src/components/button.css +304 -0
- package/dist/skins-src/components/calendar.css +269 -0
- package/dist/skins-src/components/card.css +116 -0
- package/dist/skins-src/components/carousel.css +192 -0
- package/dist/skins-src/components/chat-composer.css +89 -0
- package/dist/skins-src/components/chat-message.css +98 -0
- package/dist/skins-src/components/checkbox-card.css +153 -0
- package/dist/skins-src/components/checkbox-group.css +72 -0
- package/dist/skins-src/components/checkbox.css +141 -0
- package/dist/skins-src/components/clipboard.css +126 -0
- package/dist/skins-src/components/collapsible.css +64 -0
- package/dist/skins-src/components/color-picker.css +304 -0
- package/dist/skins-src/components/combobox.css +111 -0
- package/dist/skins-src/components/command.css +73 -0
- package/dist/skins-src/components/comment-thread.css +56 -0
- package/dist/skins-src/components/comment.css +59 -0
- package/dist/skins-src/components/confirm-dialog.css +43 -0
- package/dist/skins-src/components/conversation-list.css +142 -0
- package/dist/skins-src/components/dashboard-layout.css +106 -0
- package/dist/skins-src/components/date-field.css +95 -0
- package/dist/skins-src/components/date-picker.css +79 -0
- package/dist/skins-src/components/dialog.css +161 -0
- package/dist/skins-src/components/divider.css +64 -0
- package/dist/skins-src/components/drawer.css +166 -0
- package/dist/skins-src/components/editable.css +121 -0
- package/dist/skins-src/components/empty-state.css +85 -0
- package/dist/skins-src/components/field.css +104 -0
- package/dist/skins-src/components/file-upload.css +164 -0
- package/dist/skins-src/components/filter-bar.css +48 -0
- package/dist/skins-src/components/floating-panel.css +168 -0
- package/dist/skins-src/components/forgot-password-page.css +45 -0
- package/dist/skins-src/components/form-section.css +75 -0
- package/dist/skins-src/components/form.css +115 -0
- package/dist/skins-src/components/heading.css +38 -0
- package/dist/skins-src/components/image.css +43 -0
- package/dist/skins-src/components/kbd.css +76 -0
- package/dist/skins-src/components/label.css +45 -0
- package/dist/skins-src/components/link.css +72 -0
- package/dist/skins-src/components/list.css +104 -0
- package/dist/skins-src/components/listbox.css +90 -0
- package/dist/skins-src/components/loading-overlay.css +89 -0
- package/dist/skins-src/components/mentions.css +79 -0
- package/dist/skins-src/components/menu.css +102 -0
- package/dist/skins-src/components/menubar.css +130 -0
- package/dist/skins-src/components/navigation-menu.css +145 -0
- package/dist/skins-src/components/notification-center.css +139 -0
- package/dist/skins-src/components/number-field.css +95 -0
- package/dist/skins-src/components/onboarding-checklist.css +156 -0
- package/dist/skins-src/components/page-container.css +29 -0
- package/dist/skins-src/components/pagination.css +147 -0
- package/dist/skins-src/components/password-input.css +116 -0
- package/dist/skins-src/components/pin-input.css +115 -0
- package/dist/skins-src/components/popover.css +108 -0
- package/dist/skins-src/components/progress.css +207 -0
- package/dist/skins-src/components/qr-code.css +62 -0
- package/dist/skins-src/components/radio-card.css +158 -0
- package/dist/skins-src/components/radio-group.css +148 -0
- package/dist/skins-src/components/rating.css +150 -0
- package/dist/skins-src/components/reset-password-page.css +51 -0
- package/dist/skins-src/components/resizable.css +131 -0
- package/dist/skins-src/components/scroll-area.css +101 -0
- package/dist/skins-src/components/select.css +239 -0
- package/dist/skins-src/components/sign-in-page.css +47 -0
- package/dist/skins-src/components/sign-up-page.css +55 -0
- package/dist/skins-src/components/skeleton.css +55 -0
- package/dist/skins-src/components/skip-link.css +51 -0
- package/dist/skins-src/components/slider.css +164 -0
- package/dist/skins-src/components/speed-dial.css +162 -0
- package/dist/skins-src/components/spinner.css +59 -0
- package/dist/skins-src/components/split-button.css +167 -0
- package/dist/skins-src/components/stat-card.css +117 -0
- package/dist/skins-src/components/stepper.css +153 -0
- package/dist/skins-src/components/switch.css +155 -0
- package/dist/skins-src/components/table.css +336 -0
- package/dist/skins-src/components/tabs.css +116 -0
- package/dist/skins-src/components/tag-group.css +72 -0
- package/dist/skins-src/components/tags-input.css +176 -0
- package/dist/skins-src/components/text-field.css +182 -0
- package/dist/skins-src/components/text.css +83 -0
- package/dist/skins-src/components/textarea.css +118 -0
- package/dist/skins-src/components/time-field.css +43 -0
- package/dist/skins-src/components/time.css +13 -0
- package/dist/skins-src/components/timeline.css +206 -0
- package/dist/skins-src/components/toast.css +133 -0
- package/dist/skins-src/components/toggle-group.css +185 -0
- package/dist/skins-src/components/toggle.css +89 -0
- package/dist/skins-src/components/toolbar.css +84 -0
- package/dist/skins-src/components/tour.css +67 -0
- package/dist/skins-src/components/transfer.css +112 -0
- package/dist/skins-src/components/tree-select.css +124 -0
- package/dist/skins-src/components/tree.css +110 -0
- package/dist/skins-src/components/usage-card.css +129 -0
- package/dist/skins-src/components/user-menu.css +83 -0
- package/dist/skins-src/components/verification-page.css +64 -0
- package/dist/skins-src/components/workspace-switcher.css +133 -0
- package/dist/skins-src/utilities.css +130 -0
- package/dist/skins-src/web-components.css +64 -0
- package/dist/strip-paint.d.mts +7 -0
- package/dist/strip-paint.mjs +131 -0
- package/dist/themes/AntDark.md +14 -0
- package/dist/themes/AntDark.ts +47 -0
- package/dist/themes/AntLight.md +21 -0
- package/dist/themes/AntLight.ts +95 -0
- package/dist/themes/CatppuccinLatte.md +20 -0
- package/dist/themes/CatppuccinLatte.ts +93 -0
- package/dist/themes/CatppuccinMocha.md +15 -0
- package/dist/themes/CatppuccinMocha.ts +93 -0
- package/dist/themes/ChakraDark.md +8 -0
- package/dist/themes/ChakraDark.ts +47 -0
- package/dist/themes/ChakraLight.md +14 -0
- package/dist/themes/ChakraLight.ts +93 -0
- package/dist/themes/Contrast.test.ts +80 -0
- package/dist/themes/CupcakeDark.md +8 -0
- package/dist/themes/CupcakeDark.ts +39 -0
- package/dist/themes/CupcakeLight.md +31 -0
- package/dist/themes/CupcakeLight.ts +93 -0
- package/dist/themes/DefaultTheme.md +8 -0
- package/dist/themes/DefaultTheme.test.ts +96 -0
- package/dist/themes/DefaultTheme.ts +137 -0
- package/dist/themes/DraculaDark.md +14 -0
- package/dist/themes/DraculaDark.ts +93 -0
- package/dist/themes/DraculaLight.md +8 -0
- package/dist/themes/DraculaLight.ts +55 -0
- package/dist/themes/EmeraldDark.md +8 -0
- package/dist/themes/EmeraldDark.ts +35 -0
- package/dist/themes/EmeraldLight.md +8 -0
- package/dist/themes/EmeraldLight.ts +93 -0
- package/dist/themes/EverforestDark.md +26 -0
- package/dist/themes/EverforestDark.ts +99 -0
- package/dist/themes/EverforestLight.md +31 -0
- package/dist/themes/EverforestLight.ts +51 -0
- package/dist/themes/FluentDark.md +8 -0
- package/dist/themes/FluentDark.ts +47 -0
- package/dist/themes/FluentLight.md +8 -0
- package/dist/themes/FluentLight.ts +100 -0
- package/dist/themes/GraphiteDark.md +8 -0
- package/dist/themes/GraphiteDark.ts +35 -0
- package/dist/themes/GraphiteLight.md +14 -0
- package/dist/themes/GraphiteLight.ts +93 -0
- package/dist/themes/GruvboxDark.md +14 -0
- package/dist/themes/GruvboxDark.ts +93 -0
- package/dist/themes/GruvboxLight.md +27 -0
- package/dist/themes/GruvboxLight.ts +49 -0
- package/dist/themes/MaterialDark.md +8 -0
- package/dist/themes/MaterialDark.ts +47 -0
- package/dist/themes/MaterialLight.md +8 -0
- package/dist/themes/MaterialLight.ts +104 -0
- package/dist/themes/MidnightDark.md +8 -0
- package/dist/themes/MidnightDark.ts +19 -0
- package/dist/themes/MidnightLight.md +8 -0
- package/dist/themes/MidnightLight.ts +23 -0
- package/dist/themes/NordDark.md +28 -0
- package/dist/themes/NordDark.ts +93 -0
- package/dist/themes/NordLight.md +20 -0
- package/dist/themes/NordLight.ts +50 -0
- package/dist/themes/OneDark.md +26 -0
- package/dist/themes/OneDark.ts +93 -0
- package/dist/themes/OneLight.md +20 -0
- package/dist/themes/OneLight.ts +51 -0
- package/dist/themes/PrimerDark.md +26 -0
- package/dist/themes/PrimerDark.ts +99 -0
- package/dist/themes/PrimerLight.md +14 -0
- package/dist/themes/PrimerLight.ts +93 -0
- package/dist/themes/RosePine.md +23 -0
- package/dist/themes/RosePine.ts +93 -0
- package/dist/themes/RosePineDawn.md +20 -0
- package/dist/themes/RosePineDawn.ts +51 -0
- package/dist/themes/SkandaDark.md +8 -0
- package/dist/themes/SkandaDark.ts +57 -0
- package/dist/themes/SkandaLight.md +8 -0
- package/dist/themes/SkandaLight.ts +96 -0
- package/dist/themes/SolarizedDark.md +8 -0
- package/dist/themes/SolarizedDark.ts +93 -0
- package/dist/themes/SolarizedLight.md +32 -0
- package/dist/themes/SolarizedLight.ts +93 -0
- package/dist/themes/SynthwaveDark.md +8 -0
- package/dist/themes/SynthwaveDark.ts +93 -0
- package/dist/themes/SynthwaveLight.md +20 -0
- package/dist/themes/SynthwaveLight.ts +48 -0
- package/dist/themes/Themes.test.ts +110 -0
- package/dist/themes/brands.test.ts +63 -0
- package/dist/themes/brands.ts +121 -0
- package/dist/themes/createBrandTheme.test.ts +223 -0
- package/dist/themes/createBrandTheme.ts +298 -0
- package/dist/themes/index.ts +54 -0
- package/package.json +73 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026 SkandaDX
|
|
3
|
+
* This file is part of the SkandaDX organization.
|
|
4
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import '_actuator.css';
|
|
8
|
+
@import '_status.css';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Toast — a transient notification stacked in a viewport corner. Enters from
|
|
12
|
+
* the edge it is docked to and exits on the same axis.
|
|
13
|
+
*/
|
|
14
|
+
@layer skdx-components {
|
|
15
|
+
:where(.skdx-toast__viewport) {
|
|
16
|
+
position: fixed;
|
|
17
|
+
/* Without an inset a fixed element keeps its static position — the portaled viewport's would be the top-left, under the site header. */
|
|
18
|
+
inset-block-end: 0;
|
|
19
|
+
inset-inline-end: 0;
|
|
20
|
+
z-index: var(--skdx-z-index-toast);
|
|
21
|
+
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: var(--skdx-space-2);
|
|
25
|
+
|
|
26
|
+
inline-size: min(24rem, calc(100vw - var(--skdx-space-8)));
|
|
27
|
+
max-block-size: 100dvh;
|
|
28
|
+
padding: var(--skdx-space-4);
|
|
29
|
+
|
|
30
|
+
/* Spans a corner but must not swallow clicks across it; only the toasts themselves are interactive. */
|
|
31
|
+
pointer-events: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Each rule writes both logical axes: setting only inset-block-start would leave the base rule's block-end anchor in place and stretch the region. */
|
|
35
|
+
:where(.skdx-toast__viewport)[data-placement='top-start'] {
|
|
36
|
+
inset-block: 0 auto;
|
|
37
|
+
inset-inline: 0 auto;
|
|
38
|
+
flex-direction: column-reverse;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:where(.skdx-toast__viewport)[data-placement='top'] {
|
|
42
|
+
inset-block: 0 auto;
|
|
43
|
+
/* Both inline edges plus auto margins, not translate: a transform here would establish a containing block for the fixed-position toasts inside. */
|
|
44
|
+
inset-inline: 0;
|
|
45
|
+
margin-inline: auto;
|
|
46
|
+
flex-direction: column-reverse;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:where(.skdx-toast__viewport)[data-placement='top-end'] {
|
|
50
|
+
inset-block: 0 auto;
|
|
51
|
+
inset-inline: auto 0;
|
|
52
|
+
flex-direction: column-reverse;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:where(.skdx-toast__viewport)[data-placement='bottom-start'] {
|
|
56
|
+
inset-block: auto 0;
|
|
57
|
+
inset-inline: 0 auto;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:where(.skdx-toast__viewport)[data-placement='bottom'] {
|
|
62
|
+
inset-block: auto 0;
|
|
63
|
+
inset-inline: 0;
|
|
64
|
+
margin-inline: auto;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Restated rather than left to the base rule, so a consumer's own-layer override of bottom-end doesn't silently win. */
|
|
69
|
+
:where(.skdx-toast__viewport)[data-placement='bottom-end'] {
|
|
70
|
+
inset-block: auto 0;
|
|
71
|
+
inset-inline: auto 0;
|
|
72
|
+
flex-direction: column;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Grid, not flex row: text parts share the first column and stack top to bottom, close spans both rows in the second. */
|
|
76
|
+
:where(.skdx-toast) {
|
|
77
|
+
pointer-events: auto;
|
|
78
|
+
|
|
79
|
+
display: grid;
|
|
80
|
+
grid-template-columns: 1fr auto;
|
|
81
|
+
align-items: start;
|
|
82
|
+
column-gap: var(--skdx-space-3);
|
|
83
|
+
row-gap: var(--skdx-space-1);
|
|
84
|
+
padding: var(--skdx-space-3);
|
|
85
|
+
|
|
86
|
+
/* Fallbacks stay: a Toast mounted directly, outside any Toaster, carries no data-status and must still render. */
|
|
87
|
+
color: var(--skdx-status-text, var(--skdx-color-text-default));
|
|
88
|
+
background-color: var(--skdx-status-bg, var(--skdx-color-surface-raised));
|
|
89
|
+
border: var(--skdx-border-width-thin) solid
|
|
90
|
+
var(--skdx-status-border, var(--skdx-color-border-default));
|
|
91
|
+
border-radius: var(--skdx-radius-lg);
|
|
92
|
+
box-shadow: var(--skdx-shadow-overlay);
|
|
93
|
+
|
|
94
|
+
font-size: var(--skdx-font-size-sm);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* Web Components keeps a closed toast mounted and hidden; author display: grid above beats its shadow-tree hidden styles on origin, so it must be restated here. */
|
|
98
|
+
:where(.skdx-toast)[hidden] {
|
|
99
|
+
display: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
:where(.skdx-toast)[data-state='open'] {
|
|
103
|
+
animation: skdx-slide-in-from-end var(--skdx-motion-duration-normal) var(--skdx-motion-easing);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
:where(.skdx-toast__title) {
|
|
107
|
+
grid-column: 1;
|
|
108
|
+
font-weight: var(--skdx-font-weight-semibold);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
:where(.skdx-toast__description) {
|
|
112
|
+
grid-column: 1;
|
|
113
|
+
color: currentColor;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
:where(.skdx-toast__action) {
|
|
117
|
+
grid-column: 1;
|
|
118
|
+
/* Own margin, not the tighter title/description row-gap — an action button needs more breathing room. */
|
|
119
|
+
margin-block-start: var(--skdx-space-1);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
:where(.skdx-toast__close) {
|
|
123
|
+
grid-column: 2;
|
|
124
|
+
grid-row: 1 / -1;
|
|
125
|
+
min-inline-size: var(--skdx-target-min);
|
|
126
|
+
min-block-size: var(--skdx-target-min);
|
|
127
|
+
color: currentColor;
|
|
128
|
+
background: transparent;
|
|
129
|
+
border: 0;
|
|
130
|
+
border-radius: var(--skdx-radius-sm);
|
|
131
|
+
cursor: pointer;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026 SkandaDX
|
|
3
|
+
* This file is part of the SkandaDX organization.
|
|
4
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import 'toggle.css';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* ToggleGroup — a run of Toggles acting as one control, joined into a single pill.
|
|
11
|
+
* Logical border radii keep the rounded ends on the visual ends under RTL.
|
|
12
|
+
*/
|
|
13
|
+
@layer skdx-components {
|
|
14
|
+
:where(.skdx-toggle-group) {
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
border: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
18
|
+
border-radius: var(--skdx-radius-md);
|
|
19
|
+
/* Clips the children's square corners to the group's radius. */
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
--skdx-focus-ring-offset: var(--skdx-focus-ring-offset-inset);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where(.skdx-toggle-group)[data-orientation='vertical'] {
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
align-items: stretch;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:where(.skdx-toggle-group__item) {
|
|
30
|
+
border: 0;
|
|
31
|
+
border-radius: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* The second selector of each pair is the flattened-tree form: a framework
|
|
35
|
+
wrapper (an Angular component host, `display: contents`) can sit between
|
|
36
|
+
sibling items in the DOM tree without existing in the box tree, and `+`
|
|
37
|
+
sees the wrapper rather than the item.
|
|
38
|
+
|
|
39
|
+
Matched on `[data-skdx-toggle-group-item-wrapper]`, which the
|
|
40
|
+
wrapper-emitting frameworks put on that host on purpose. A heuristic like
|
|
41
|
+
`:not([class*='skdx-']):has(> item)` — "an element of ours with no class
|
|
42
|
+
of ours" — would stop matching the moment the design system gives that
|
|
43
|
+
host a class, with no error and no visible cause: the divider would
|
|
44
|
+
simply vanish. */
|
|
45
|
+
:where(.skdx-toggle-group__item) + :where(.skdx-toggle-group__item),
|
|
46
|
+
:where([data-skdx-toggle-group-item-wrapper])
|
|
47
|
+
+ :where([data-skdx-toggle-group-item-wrapper])
|
|
48
|
+
> :where(.skdx-toggle-group__item) {
|
|
49
|
+
border-inline-start: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:where(.skdx-toggle-group)[data-orientation='vertical']
|
|
53
|
+
:where(.skdx-toggle-group__item)
|
|
54
|
+
+ :where(.skdx-toggle-group__item),
|
|
55
|
+
:where(.skdx-toggle-group)[data-orientation='vertical']
|
|
56
|
+
:where([data-skdx-toggle-group-item-wrapper])
|
|
57
|
+
+ :where([data-skdx-toggle-group-item-wrapper])
|
|
58
|
+
> :where(.skdx-toggle-group__item) {
|
|
59
|
+
border-inline-start: 0;
|
|
60
|
+
border-block-start: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Skin-only: no behaviour or ARIA change, the same group in a different box. */
|
|
64
|
+
:where(.skdx-toggle-group)[data-full-width] {
|
|
65
|
+
display: flex;
|
|
66
|
+
inline-size: 100%;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* min-inline-size: 0 with flex: 1 — items carry white-space: nowrap, so a long
|
|
70
|
+
label would otherwise set a floor the other items cannot match. */
|
|
71
|
+
:where(.skdx-toggle-group)[data-full-width] :where(.skdx-toggle-group__item) {
|
|
72
|
+
flex: 1;
|
|
73
|
+
min-inline-size: 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* The pill's corner follows the item height, so the group reads as one shape
|
|
77
|
+
at every rung; toggle.css carries the rest of the size ladder. */
|
|
78
|
+
:where(.skdx-toggle-group)[data-size='sm'] {
|
|
79
|
+
border-radius: var(--skdx-radius-sm);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
:where(.skdx-toggle-group)[data-size='lg'] {
|
|
83
|
+
border-radius: var(--skdx-radius-lg);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* data-variant="segmented" — pick one of a small set, shown all at once. Reads
|
|
88
|
+
* as one inset well with a raised selected segment rather than a row of
|
|
89
|
+
* buttons, so the outer border and the seams between items both go.
|
|
90
|
+
*/
|
|
91
|
+
:where(.skdx-toggle-group)[data-variant='segmented'] {
|
|
92
|
+
/* The indicator's x/y are offsets from this root's edges; without a
|
|
93
|
+
positioning context here they would resolve against whatever ancestor
|
|
94
|
+
has one. */
|
|
95
|
+
position: relative;
|
|
96
|
+
padding: var(--skdx-border-width-thick);
|
|
97
|
+
background-color: var(--skdx-color-surface-sunken);
|
|
98
|
+
border-color: transparent;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:where(.skdx-toggle-group)[data-variant='segmented'] :where(.skdx-toggle-group__item),
|
|
102
|
+
:where(.skdx-toggle-group)[data-variant='segmented']
|
|
103
|
+
:where([data-skdx-toggle-group-item-wrapper])
|
|
104
|
+
+ :where([data-skdx-toggle-group-item-wrapper])
|
|
105
|
+
> :where(.skdx-toggle-group__item) {
|
|
106
|
+
/* z-index: 1 is one level above the indicator's --skdx-z-index-base, so the
|
|
107
|
+
labels stay above the moving pill. */
|
|
108
|
+
position: relative;
|
|
109
|
+
z-index: 1;
|
|
110
|
+
border-inline-start: 0;
|
|
111
|
+
border-block-start: 0;
|
|
112
|
+
border-radius: var(--skdx-radius-inner);
|
|
113
|
+
color: var(--skdx-color-text-muted);
|
|
114
|
+
white-space: nowrap;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
:where(.skdx-toggle-group)[data-variant='segmented']
|
|
118
|
+
:where(.skdx-toggle-group__item)[data-state='on'] {
|
|
119
|
+
color: var(--skdx-color-text-default);
|
|
120
|
+
background-color: transparent;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
:where(.skdx-toggle-group)[data-variant='segmented']
|
|
124
|
+
:where(.skdx-toggle-group__item):hover:not([data-disabled]) {
|
|
125
|
+
color: var(--skdx-color-text-default);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Read-only keeps colour, contrast and the focus ring; only the pointer
|
|
129
|
+
cursor and the hover fill are withdrawn. */
|
|
130
|
+
:where(.skdx-toggle-group)[data-readonly] :where(.skdx-toggle-group__item) {
|
|
131
|
+
cursor: default;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
:where(.skdx-toggle-group)[data-readonly] :where(.skdx-toggle-group__item):hover {
|
|
135
|
+
background-color: transparent;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* Invalid is presentational — the Field owns validation — so this is a halo
|
|
139
|
+
outside the box rather than a border-width change the group does not have. */
|
|
140
|
+
:where(.skdx-toggle-group)[data-invalid] {
|
|
141
|
+
box-shadow: 0 0 0 var(--skdx-border-width-thin) var(--skdx-color-field-border-invalid);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
:where(.skdx-toggle-group__indicator) {
|
|
145
|
+
position: absolute;
|
|
146
|
+
z-index: var(--skdx-z-index-base);
|
|
147
|
+
inset-block: 0;
|
|
148
|
+
/* Physical left, not logical: the component publishes x as an offset from
|
|
149
|
+
the root's left edge, so inset-inline-start would desync under dir="rtl". */
|
|
150
|
+
left: 0;
|
|
151
|
+
inline-size: var(--skdx-toggle-group-width, 0);
|
|
152
|
+
translate: var(--skdx-toggle-group-x, 0) 0;
|
|
153
|
+
background-color: var(--skdx-color-surface-raised);
|
|
154
|
+
border-radius: var(--skdx-radius-inner);
|
|
155
|
+
box-shadow: var(--skdx-shadow-sm);
|
|
156
|
+
transition:
|
|
157
|
+
translate var(--skdx-motion-duration-normal) var(--skdx-motion-easing),
|
|
158
|
+
inline-size var(--skdx-motion-duration-normal) var(--skdx-motion-easing);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Nothing pressed means nothing to measure, so the indicator publishes no
|
|
162
|
+
geometry at all and this is what "not yet chosen" looks like. */
|
|
163
|
+
:where(.skdx-toggle-group__indicator)[data-state='hidden'] {
|
|
164
|
+
opacity: 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* Vertical strips stack, so the indicator tracks the cross axis. */
|
|
168
|
+
:where(.skdx-toggle-group)[data-orientation='vertical'] :where(.skdx-toggle-group__indicator) {
|
|
169
|
+
inset-block: auto;
|
|
170
|
+
inset-inline: 0;
|
|
171
|
+
inline-size: auto;
|
|
172
|
+
block-size: var(--skdx-toggle-group-height, 0);
|
|
173
|
+
translate: 0 var(--skdx-toggle-group-y, 0);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/* Forced colours drops the raised fill, so the pressed segment needs this to
|
|
177
|
+
stay distinguishable from its neighbours. */
|
|
178
|
+
@media (forced-colors: active) {
|
|
179
|
+
:where(.skdx-toggle-group)[data-variant='segmented']
|
|
180
|
+
:where(.skdx-toggle-group__item)[data-state='on'] {
|
|
181
|
+
background-color: Highlight;
|
|
182
|
+
color: HighlightText;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026 SkandaDX
|
|
3
|
+
* This file is part of the SkandaDX organization.
|
|
4
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import '../base.css';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Toggle — a button that stays pressed. `data-state="on"` is the only styling
|
|
11
|
+
* hook; `aria-pressed` is deliberately not matched. A `ToggleGroup` item wears
|
|
12
|
+
* `.skdx-toggle` alongside its own class in every package, so one selector styles
|
|
13
|
+
* both; the pressed border rule excludes group items with `:not()` so it cannot
|
|
14
|
+
* out-specify `toggle-group.css`'s seam rule.
|
|
15
|
+
*/
|
|
16
|
+
@layer skdx-components {
|
|
17
|
+
:where(.skdx-toggle) {
|
|
18
|
+
display: inline-flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
gap: var(--skdx-toggle-gap);
|
|
22
|
+
|
|
23
|
+
min-inline-size: var(--skdx-target-min);
|
|
24
|
+
block-size: var(--skdx-toggle-height);
|
|
25
|
+
padding-inline: var(--skdx-toggle-padding);
|
|
26
|
+
|
|
27
|
+
color: var(--skdx-color-text-default);
|
|
28
|
+
background: transparent;
|
|
29
|
+
border: var(--skdx-border-width-thin) solid transparent;
|
|
30
|
+
border-radius: var(--skdx-radius-md);
|
|
31
|
+
|
|
32
|
+
font-size: var(--skdx-toggle-font-size);
|
|
33
|
+
font-weight: var(--skdx-font-weight-medium);
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
|
|
36
|
+
transition: background-color var(--skdx-motion-duration-fast) var(--skdx-motion-easing);
|
|
37
|
+
|
|
38
|
+
/* The medium rung of the control ladder, as variables so `data-size` below only overrides these. */
|
|
39
|
+
--skdx-toggle-gap: var(--skdx-control-gap-md);
|
|
40
|
+
--skdx-toggle-height: var(--skdx-control-height-md);
|
|
41
|
+
--skdx-toggle-padding: var(--skdx-control-padding-md);
|
|
42
|
+
--skdx-toggle-font-size: var(--skdx-font-size-sm);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* Size read on either class and via the group descendant form,
|
|
46
|
+
so a run of items can't end up at mixed sizes. */
|
|
47
|
+
:where(.skdx-toggle)[data-size='sm'],
|
|
48
|
+
:where(.skdx-toggle-group)[data-size='sm'] :where(.skdx-toggle-group__item) {
|
|
49
|
+
--skdx-toggle-gap: var(--skdx-control-gap-sm);
|
|
50
|
+
--skdx-toggle-height: var(--skdx-control-height-sm);
|
|
51
|
+
--skdx-toggle-padding: var(--skdx-control-padding-sm);
|
|
52
|
+
--skdx-toggle-font-size: var(--skdx-font-size-xs);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
:where(.skdx-toggle)[data-size='lg'],
|
|
56
|
+
:where(.skdx-toggle-group)[data-size='lg'] :where(.skdx-toggle-group__item) {
|
|
57
|
+
--skdx-toggle-gap: var(--skdx-control-gap-lg);
|
|
58
|
+
--skdx-toggle-height: var(--skdx-control-height-lg);
|
|
59
|
+
--skdx-toggle-padding: var(--skdx-control-padding-lg);
|
|
60
|
+
--skdx-toggle-font-size: var(--skdx-font-size-md);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:where(.skdx-toggle):hover:not([data-disabled]):not([data-state='on']) {
|
|
64
|
+
background-color: var(--skdx-color-action-ghost-bg-hover);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* Pressed is a filled state: readable at a glance from across the toolbar. */
|
|
68
|
+
:where(.skdx-toggle)[data-state='on'] {
|
|
69
|
+
color: var(--skdx-color-text-accent);
|
|
70
|
+
background-color: var(--skdx-color-surface-selected);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:where(.skdx-toggle):not(.skdx-toggle-group__item)[data-state='on'] {
|
|
74
|
+
border-color: var(--skdx-color-border-accent);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:where(.skdx-toggle)[data-disabled] {
|
|
78
|
+
color: var(--skdx-color-text-disabled);
|
|
79
|
+
cursor: not-allowed;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Forced colours drops the background fill, so pressed needs this to stay distinguishable. */
|
|
83
|
+
@media (forced-colors: active) {
|
|
84
|
+
:where(.skdx-toggle)[data-state='on'] {
|
|
85
|
+
background-color: Highlight;
|
|
86
|
+
color: HighlightText;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026 SkandaDX
|
|
3
|
+
* This file is part of the SkandaDX organization.
|
|
4
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import '_actuator.css';
|
|
8
|
+
@import '../base.css';
|
|
9
|
+
|
|
10
|
+
/** Toolbar — a grouped row of controls with a single tab stop. */
|
|
11
|
+
@layer skdx-components {
|
|
12
|
+
:where(.skdx-toolbar) {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
gap: var(--skdx-space-1);
|
|
16
|
+
flex-wrap: wrap;
|
|
17
|
+
|
|
18
|
+
padding: var(--skdx-space-1);
|
|
19
|
+
background-color: var(--skdx-color-surface-default);
|
|
20
|
+
border: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
21
|
+
border-radius: var(--skdx-radius-md);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where(.skdx-toolbar)[data-orientation='vertical'] {
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
align-items: stretch;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:where(.skdx-toolbar__separator) {
|
|
30
|
+
align-self: stretch;
|
|
31
|
+
inline-size: var(--skdx-border-width-thin);
|
|
32
|
+
background-color: var(--skdx-color-separator);
|
|
33
|
+
margin-inline: var(--skdx-space-1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:where(.skdx-toolbar)[data-orientation='vertical'] :where(.skdx-toolbar__separator) {
|
|
37
|
+
inline-size: auto;
|
|
38
|
+
block-size: var(--skdx-border-width-thin);
|
|
39
|
+
margin-inline: 0;
|
|
40
|
+
margin-block: var(--skdx-space-1);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:where(.skdx-toolbar__toggle-group) {
|
|
44
|
+
display: inline-flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where(.skdx-toolbar__toggle-item) {
|
|
49
|
+
display: inline-flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
|
|
53
|
+
min-inline-size: var(--skdx-target-min);
|
|
54
|
+
min-block-size: var(--skdx-target-min);
|
|
55
|
+
block-size: var(--skdx-control-height-sm);
|
|
56
|
+
padding-inline: var(--skdx-space-2);
|
|
57
|
+
|
|
58
|
+
color: var(--skdx-color-text-default);
|
|
59
|
+
background: transparent;
|
|
60
|
+
border: 0;
|
|
61
|
+
border-radius: var(--skdx-radius-sm);
|
|
62
|
+
cursor: pointer;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* On/off is a fill *and* the button's own `aria-pressed`, so the state is
|
|
66
|
+
available to a screen reader as well as to the eye. */
|
|
67
|
+
:where(.skdx-toolbar__toggle-item)[data-state='on'] {
|
|
68
|
+
color: var(--skdx-color-text-accent);
|
|
69
|
+
background-color: var(--skdx-color-surface-selected);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* Actuator rules restated locally with the actuator's own tokens. The pressed
|
|
73
|
+
rule above is deliberately overridden: pressed-and-disabled must read as disabled. */
|
|
74
|
+
:where(.skdx-toolbar__toggle-item):hover:not(:disabled, [data-disabled], [aria-disabled='true']) {
|
|
75
|
+
background-color: var(--skdx-color-action-secondary-bg-hover);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:where(.skdx-toolbar__toggle-item):is(:disabled, [data-disabled], [aria-disabled='true']) {
|
|
79
|
+
color: var(--skdx-color-action-disabled-text);
|
|
80
|
+
background-color: var(--skdx-color-action-disabled-bg);
|
|
81
|
+
border-color: var(--skdx-color-action-disabled-border);
|
|
82
|
+
cursor: not-allowed;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026 SkandaDX
|
|
3
|
+
* This file is part of the SkandaDX organization.
|
|
4
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import '_actuator.css';
|
|
8
|
+
@import '_overlay.css';
|
|
9
|
+
@import '_arrow.css';
|
|
10
|
+
|
|
11
|
+
/** Tour — a guided sequence of spotlighted steps. */
|
|
12
|
+
@layer skdx-components {
|
|
13
|
+
:where(.skdx-tour__content) {
|
|
14
|
+
padding: var(--skdx-space-4);
|
|
15
|
+
max-inline-size: 20rem;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
gap: var(--skdx-space-3);
|
|
19
|
+
z-index: var(--skdx-z-index-max);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* The `display: flex` above beats the UA's `[hidden]` rule on origin alone,
|
|
23
|
+
and some frameworks keep a finished tour's step mounted and hidden. */
|
|
24
|
+
:where(.skdx-tour__content)[hidden] {
|
|
25
|
+
display: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* An untargeted step has no popper anchor; without this the panel is
|
|
29
|
+
`position: static`, laid out wherever the portal appended it in `document.body`. */
|
|
30
|
+
:where(.skdx-tour__content)[data-centered] {
|
|
31
|
+
position: fixed;
|
|
32
|
+
top: 50%;
|
|
33
|
+
left: 50%;
|
|
34
|
+
transform: translate(-50%, -50%);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:where(.skdx-tour__title) {
|
|
38
|
+
font-size: var(--skdx-font-size-md);
|
|
39
|
+
font-weight: var(--skdx-font-weight-semibold);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:where(.skdx-tour__description) {
|
|
43
|
+
font-size: var(--skdx-font-size-sm);
|
|
44
|
+
color: var(--skdx-color-text-muted);
|
|
45
|
+
line-height: var(--skdx-font-line-height-relaxed);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where(.skdx-tour__progress-text) {
|
|
49
|
+
font-size: var(--skdx-font-size-xs);
|
|
50
|
+
color: var(--skdx-color-text-muted);
|
|
51
|
+
font-variant-numeric: tabular-nums;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* The spotlight cut-out sits above the scrim but below the step card. */
|
|
55
|
+
:where(.skdx-tour__backdrop) {
|
|
56
|
+
z-index: var(--skdx-z-index-overlay);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:where(.skdx-tour__actions) {
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-wrap: wrap;
|
|
62
|
+
align-items: center;
|
|
63
|
+
gap: var(--skdx-space-2);
|
|
64
|
+
/* A flex item's automatic min-size otherwise keeps the row from wrapping inside the panel. */
|
|
65
|
+
min-inline-size: 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2026 SkandaDX
|
|
3
|
+
* This file is part of the SkandaDX organization.
|
|
4
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@import '_actuator.css';
|
|
8
|
+
@import '_collection.css';
|
|
9
|
+
/* Each side *is* a Listbox — see the `.skdx-listbox` rule below. */
|
|
10
|
+
@import 'listbox.css';
|
|
11
|
+
|
|
12
|
+
/** Transfer — move items between a source and a target list. */
|
|
13
|
+
@layer skdx-components {
|
|
14
|
+
/* Grid placement keys on `[data-part]`/`[data-side]`, so the DOM order of the two sides never matters. */
|
|
15
|
+
:where(.skdx-transfer) {
|
|
16
|
+
display: grid;
|
|
17
|
+
grid-template-columns: 1fr auto 1fr;
|
|
18
|
+
grid-template-rows: auto auto 1fr auto;
|
|
19
|
+
align-items: stretch;
|
|
20
|
+
gap: var(--skdx-space-3);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where(.skdx-transfer) > [data-side='source'] {
|
|
24
|
+
grid-column: 1;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:where(.skdx-transfer) > [data-side='target'] {
|
|
28
|
+
grid-column: 3;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:where(.skdx-transfer) > [data-part='list-header'] {
|
|
32
|
+
grid-row: 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:where(.skdx-transfer) > [data-part='list-search'] {
|
|
36
|
+
grid-row: 2;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:where(.skdx-transfer) > [data-part='empty'] {
|
|
40
|
+
grid-row: 4;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
:where(.skdx-transfer) > [data-part='controls'] {
|
|
44
|
+
grid-column: 2;
|
|
45
|
+
grid-row: 1 / -1;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where(.skdx-transfer__list-header) {
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
gap: var(--skdx-space-2);
|
|
52
|
+
|
|
53
|
+
padding: var(--skdx-space-2);
|
|
54
|
+
font-size: var(--skdx-font-size-sm);
|
|
55
|
+
font-weight: var(--skdx-font-weight-medium);
|
|
56
|
+
|
|
57
|
+
background-color: var(--skdx-color-surface-default);
|
|
58
|
+
border-block-end: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:where(.skdx-transfer__list-search) {
|
|
62
|
+
inline-size: 100%;
|
|
63
|
+
block-size: var(--skdx-control-height-sm);
|
|
64
|
+
padding-inline: var(--skdx-space-2);
|
|
65
|
+
|
|
66
|
+
background-color: var(--skdx-color-field-bg);
|
|
67
|
+
border: 0;
|
|
68
|
+
border-block-end: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
69
|
+
font-size: var(--skdx-font-size-sm);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:where(.skdx-transfer__controls) {
|
|
73
|
+
display: flex;
|
|
74
|
+
flex-direction: column;
|
|
75
|
+
justify-content: center;
|
|
76
|
+
gap: var(--skdx-space-2);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Dimmed at the column, not per trigger: the triggers are aria-disabled, so `:disabled` matches none of them. */
|
|
80
|
+
:where(.skdx-transfer__controls)[data-disabled] {
|
|
81
|
+
opacity: var(--skdx-opacity-disabled);
|
|
82
|
+
cursor: not-allowed;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* A trigger with nothing to move stays focusable (a natively disabled button
|
|
86
|
+
is skipped by Tab), so it is dimmed via `data-disabled` instead. */
|
|
87
|
+
:where(.skdx-transfer__move-trigger)[data-disabled],
|
|
88
|
+
:where(.skdx-transfer__move-all-trigger)[data-disabled] {
|
|
89
|
+
opacity: var(--skdx-opacity-disabled);
|
|
90
|
+
cursor: not-allowed;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* No `pointer-events: none` — hover and tooltips must keep working; a focused control restores full contrast. */
|
|
94
|
+
:where(.skdx-transfer__move-trigger)[data-disabled]:focus-visible,
|
|
95
|
+
:where(.skdx-transfer__move-all-trigger)[data-disabled]:focus-visible {
|
|
96
|
+
opacity: 1;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
:where(.skdx-transfer__empty) {
|
|
100
|
+
padding: var(--skdx-space-4);
|
|
101
|
+
text-align: center;
|
|
102
|
+
font-size: var(--skdx-font-size-sm);
|
|
103
|
+
color: var(--skdx-color-text-muted);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* `TransferList` renders a real `Listbox` wearing `.skdx-listbox`; `>` is safe in
|
|
107
|
+
all five frameworks — the listbox is a direct child or the class sits on the host. */
|
|
108
|
+
:where(.skdx-transfer) > :where(.skdx-listbox) {
|
|
109
|
+
grid-row: 3;
|
|
110
|
+
min-inline-size: 0;
|
|
111
|
+
}
|
|
112
|
+
}
|