@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,115 @@
|
|
|
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
|
+
/** Form — layout rhythm for a set of Fields, plus the error summary (WCAG 3.3.1: focus moves here on failed submit). */
|
|
11
|
+
@layer skdx-components {
|
|
12
|
+
:where(.skdx-form) {
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
gap: var(--skdx-space-4);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Density — same hook as Field and Table. Skin-layer only:
|
|
19
|
+
no behaviour/state/ARIA change. */
|
|
20
|
+
:where(.skdx-form)[data-density='compact'] {
|
|
21
|
+
gap: var(--skdx-space-2);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where(.skdx-form)[data-density='compact'] :where(.skdx-form__field) {
|
|
25
|
+
gap: var(--skdx-space-1);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
:where(.skdx-form__error-summary) {
|
|
29
|
+
/* Painted first regardless of DOM position: Angular renders it after the
|
|
30
|
+
fields so change detection updates their messages before it scans for them. */
|
|
31
|
+
order: -1;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
gap: var(--skdx-space-2);
|
|
35
|
+
|
|
36
|
+
padding: var(--skdx-space-3);
|
|
37
|
+
|
|
38
|
+
color: var(--skdx-color-status-danger-text);
|
|
39
|
+
background-color: var(--skdx-color-status-danger-bg);
|
|
40
|
+
border: var(--skdx-border-width-thin) solid var(--skdx-color-status-danger-border);
|
|
41
|
+
border-inline-start-width: var(--skdx-border-width-thicker);
|
|
42
|
+
border-radius: var(--skdx-radius-md);
|
|
43
|
+
|
|
44
|
+
font-size: var(--skdx-font-size-sm);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Author `display: flex` above beats the UA's `[hidden]` rule on origin
|
|
48
|
+
alone; without this the empty alert paints on every unsubmitted form. */
|
|
49
|
+
:where(.skdx-form__error-summary)[hidden] {
|
|
50
|
+
display: none;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@media (forced-colors: active) {
|
|
54
|
+
:where(.skdx-form__error-summary) {
|
|
55
|
+
border-color: CanvasText;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:where(.skdx-form__field) {
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
gap: var(--skdx-field-gap);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
:where(.skdx-form__label) {
|
|
66
|
+
font-size: var(--skdx-font-size-sm);
|
|
67
|
+
font-weight: var(--skdx-font-weight-medium);
|
|
68
|
+
color: var(--skdx-color-text-default);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
:where(.skdx-form__control) {
|
|
72
|
+
color: var(--skdx-color-field-text);
|
|
73
|
+
font-size: var(--skdx-font-size-sm);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:where(.skdx-form__control):not([type='checkbox']):not([type='radio']):not([role='checkbox']):not(
|
|
77
|
+
[role='radio']
|
|
78
|
+
) {
|
|
79
|
+
inline-size: 100%;
|
|
80
|
+
block-size: var(--skdx-control-height-md);
|
|
81
|
+
padding-inline: var(--skdx-control-padding-md);
|
|
82
|
+
|
|
83
|
+
background-color: var(--skdx-color-field-bg);
|
|
84
|
+
border: var(--skdx-border-width-thin) solid var(--skdx-color-field-border);
|
|
85
|
+
border-radius: var(--skdx-radius-md);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Never colour alone — wired to the control with `aria-describedby` so it's announced too. */
|
|
89
|
+
:where(.skdx-form__message) {
|
|
90
|
+
font-size: var(--skdx-font-size-xs);
|
|
91
|
+
line-height: var(--skdx-font-line-height-normal);
|
|
92
|
+
color: var(--skdx-color-text-danger);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Underlined since it sits on a coloured wash where colour alone can't mark
|
|
96
|
+
a link. `inline-block`, not `inline`: transforms (the shared pressed cue)
|
|
97
|
+
don't apply to non-replaced inline boxes. */
|
|
98
|
+
:where(.skdx-form__error-summary-link) {
|
|
99
|
+
display: inline-block;
|
|
100
|
+
color: inherit;
|
|
101
|
+
text-decoration: underline;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
:where(.skdx-form__error-summary-list) {
|
|
105
|
+
display: flex;
|
|
106
|
+
flex-direction: column;
|
|
107
|
+
gap: var(--skdx-space-1);
|
|
108
|
+
margin: 0;
|
|
109
|
+
padding-inline-start: var(--skdx-space-4);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
:where(.skdx-form__error-summary-title) {
|
|
113
|
+
font-weight: var(--skdx-font-weight-semibold);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
/**
|
|
8
|
+
* Heading — the visual scale, decoupled from the outline level. `data-size` and
|
|
9
|
+
* the rendered `h1`–`h6` are independent so type scale never bends the outline.
|
|
10
|
+
*/
|
|
11
|
+
@layer skdx-components {
|
|
12
|
+
:where(.skdx-heading) {
|
|
13
|
+
color: var(--skdx-color-text-default);
|
|
14
|
+
font-family: var(--skdx-font-family);
|
|
15
|
+
font-size: var(--skdx-font-size-lg);
|
|
16
|
+
font-weight: var(--skdx-font-weight-semibold);
|
|
17
|
+
line-height: var(--skdx-font-line-height-tight);
|
|
18
|
+
letter-spacing: var(--skdx-font-letter-spacing-tight);
|
|
19
|
+
/* The browser's own h1–h6 margins would make the size attribute change the
|
|
20
|
+
spacing too, which is a second axis nobody asked for. */
|
|
21
|
+
margin: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* `md` restates the base rule, so a consumer writing it gets what they asked
|
|
25
|
+
for rather than the base by accident. */
|
|
26
|
+
:where(.skdx-heading)[data-size='md'] {
|
|
27
|
+
font-size: var(--skdx-font-size-lg);
|
|
28
|
+
}
|
|
29
|
+
:where(.skdx-heading)[data-size='sm'] {
|
|
30
|
+
font-size: var(--skdx-font-size-md);
|
|
31
|
+
}
|
|
32
|
+
:where(.skdx-heading)[data-size='lg'] {
|
|
33
|
+
font-size: var(--skdx-font-size-xl);
|
|
34
|
+
}
|
|
35
|
+
:where(.skdx-heading)[data-size='xl'] {
|
|
36
|
+
font-size: var(--skdx-font-size-2xl);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
* Image — a picture, or its fallback while one isn't showing. `fit`/`position`
|
|
11
|
+
* resolve to inline styles on the component, so this file sets neither; root and
|
|
12
|
+
* fallback share `--skdx-image-radius` because the fallback is a sibling of the `<img>`.
|
|
13
|
+
*/
|
|
14
|
+
@layer skdx-components {
|
|
15
|
+
:where(.skdx-image, .skdx-image__fallback) {
|
|
16
|
+
--skdx-image-radius: 0px;
|
|
17
|
+
|
|
18
|
+
border-radius: var(--skdx-image-radius);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:where(.skdx-image) {
|
|
22
|
+
display: block;
|
|
23
|
+
max-inline-size: 100%;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* A placeholder ground while there is no decoded pixel to show yet, so the
|
|
27
|
+
space doesn't flash blank between mount and load. */
|
|
28
|
+
:where(.skdx-image)[data-loading-status='idle'],
|
|
29
|
+
:where(.skdx-image)[data-loading-status='loading'] {
|
|
30
|
+
background-color: var(--skdx-color-surface-sunken);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
:where(.skdx-image__fallback) {
|
|
34
|
+
display: inline-flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
inline-size: 100%;
|
|
38
|
+
block-size: 100%;
|
|
39
|
+
|
|
40
|
+
background-color: var(--skdx-color-surface-sunken);
|
|
41
|
+
color: var(--skdx-color-text-muted);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
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
|
+
* Kbd — a rendered key cap. Uses the mono stack: key names are read character
|
|
11
|
+
* by character, and a proportional font makes `Il1` ambiguous.
|
|
12
|
+
*/
|
|
13
|
+
@layer skdx-components {
|
|
14
|
+
:where(.skdx-kbd) {
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
|
|
19
|
+
min-inline-size: 1.5em;
|
|
20
|
+
padding-inline: var(--skdx-space-1);
|
|
21
|
+
padding-block: 0;
|
|
22
|
+
|
|
23
|
+
font-family: var(--skdx-font-family-mono);
|
|
24
|
+
font-size: var(--skdx-font-size-xs);
|
|
25
|
+
line-height: var(--skdx-font-line-height-tight);
|
|
26
|
+
white-space: nowrap;
|
|
27
|
+
|
|
28
|
+
color: var(--skdx-color-text-default);
|
|
29
|
+
background-color: var(--skdx-color-surface-sunken);
|
|
30
|
+
border: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
31
|
+
/* Logical, so the "sitting on the page" edge stays on the correct side
|
|
32
|
+
when the document direction flips. */
|
|
33
|
+
border-block-end-width: var(--skdx-border-width-thick);
|
|
34
|
+
border-radius: var(--skdx-radius-sm);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Sizes here. Only `font-size` and `padding-inline` move: the cap's height
|
|
38
|
+
comes from the line box, so it sits on the baseline of the surrounding text. */
|
|
39
|
+
:where(.skdx-kbd)[data-size='sm'] {
|
|
40
|
+
padding-inline: calc(var(--skdx-space-1) / 2);
|
|
41
|
+
font-size: calc(var(--skdx-font-size-xs) * 0.85);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:where(.skdx-kbd)[data-size='md'] {
|
|
45
|
+
padding-inline: var(--skdx-space-1);
|
|
46
|
+
font-size: var(--skdx-font-size-xs);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:where(.skdx-kbd)[data-size='lg'] {
|
|
50
|
+
padding-inline: var(--skdx-space-2);
|
|
51
|
+
font-size: var(--skdx-font-size-sm);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* A key combination (nested `<kbd>`): the outer element is not a key, so everything
|
|
55
|
+
that draws a cap is unset. Descendant, not `>`: Angular's `display: contents` host
|
|
56
|
+
makes the inner cap a grandchild there. */
|
|
57
|
+
:where(.skdx-kbd):has(.skdx-kbd) {
|
|
58
|
+
gap: var(--skdx-space-1);
|
|
59
|
+
min-inline-size: 0;
|
|
60
|
+
padding-inline: 0;
|
|
61
|
+
background-color: transparent;
|
|
62
|
+
border: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@media (forced-colors: active) {
|
|
66
|
+
:where(.skdx-kbd) {
|
|
67
|
+
border-color: CanvasText;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* The outer element of a combination has no border to repaint — restoring
|
|
71
|
+
one here is exactly the double cap the rule above removes. */
|
|
72
|
+
:where(.skdx-kbd):has(.skdx-kbd) {
|
|
73
|
+
border-color: transparent;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
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
|
+
/** Label — the accessible name for a control, rendered. */
|
|
10
|
+
@layer skdx-components {
|
|
11
|
+
:where(.skdx-label) {
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: var(--skdx-field-label-gap);
|
|
15
|
+
|
|
16
|
+
font-size: var(--skdx-font-size-sm);
|
|
17
|
+
font-weight: var(--skdx-font-weight-medium);
|
|
18
|
+
line-height: var(--skdx-font-line-height-tight);
|
|
19
|
+
color: var(--skdx-color-text-default);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Clicking a label focuses its control, so it gets the pointer that implies
|
|
23
|
+
that — but only when it is actually bound to one. */
|
|
24
|
+
:where(.skdx-label)[for] {
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Needed here regardless of the prop: a standalone `<skdx-label>` names a control
|
|
29
|
+
it may not even contain, so it cannot see whether that control is disabled.
|
|
30
|
+
A label inside a Field needs nothing here — the Field root emits
|
|
31
|
+
`data-disabled` and `field.css` colours `.skdx-field__label` from it, which
|
|
32
|
+
is the same result reached from the one element that does know. Declared in
|
|
33
|
+
`labelContract.styling.dataAttributes` so this rule stops being a selector
|
|
34
|
+
with nothing behind it and no documentation in front of it. */
|
|
35
|
+
:where(.skdx-label)[data-disabled] {
|
|
36
|
+
color: var(--skdx-color-text-disabled);
|
|
37
|
+
cursor: not-allowed;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Author-composed, not emitted by any package: the control carries
|
|
41
|
+
`required`/`aria-required`, and the author marks this `aria-hidden`. */
|
|
42
|
+
:where(.skdx-label__indicator) {
|
|
43
|
+
color: var(--skdx-color-text-danger);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
* Link — inline text that navigates. `auto` underlines only inside running text,
|
|
11
|
+
* where the underline tells it apart from prose; standing alone, colour does that.
|
|
12
|
+
* `--skdx-link-color-hover`/`-visited` default to the resting colour.
|
|
13
|
+
*/
|
|
14
|
+
@layer skdx-components {
|
|
15
|
+
:where(.skdx-link) {
|
|
16
|
+
--skdx-link-color: var(--skdx-color-text-accent);
|
|
17
|
+
--skdx-link-color-hover: var(--skdx-link-color);
|
|
18
|
+
--skdx-link-color-visited: var(--skdx-link-color);
|
|
19
|
+
--skdx-link-underline-offset: var(--skdx-space-1);
|
|
20
|
+
|
|
21
|
+
color: var(--skdx-link-color);
|
|
22
|
+
text-underline-offset: var(--skdx-link-underline-offset);
|
|
23
|
+
border-radius: var(--skdx-radius-sm);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:where(.skdx-link):visited {
|
|
27
|
+
color: var(--skdx-link-color-visited);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:where(.skdx-link):hover {
|
|
31
|
+
color: var(--skdx-link-color-hover);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:where(.skdx-link):focus-visible {
|
|
35
|
+
outline: var(--skdx-focus-ring-width) solid var(--skdx-color-focus-ring);
|
|
36
|
+
outline-offset: var(--skdx-focus-ring-offset);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:where(.skdx-link)[data-underline='always'] {
|
|
40
|
+
text-decoration-line: underline;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Bare by default — the UA underlines a[href], so `auto` must opt out before
|
|
44
|
+
the running-text rule below opts back in. */
|
|
45
|
+
:where(.skdx-link)[data-underline='auto'] {
|
|
46
|
+
text-decoration-line: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:where(p, li, dd, td, th, blockquote, figcaption) :where(.skdx-link)[data-underline='auto'] {
|
|
50
|
+
text-decoration-line: underline;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:where(.skdx-link)[data-underline='none'] {
|
|
54
|
+
text-decoration-line: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:where(.skdx-link)[data-underline='hover'] {
|
|
58
|
+
text-decoration-line: none;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:where(.skdx-link)[data-underline='hover']:hover,
|
|
62
|
+
:where(.skdx-link)[data-underline='hover']:focus-visible {
|
|
63
|
+
text-decoration-line: underline;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Keeps whatever underline the `data-underline` mode gave it: inside running text the
|
|
67
|
+
disabled colour clears only 2.35:1 against the prose, so colour alone cannot mark it. */
|
|
68
|
+
:where(.skdx-link)[data-disabled] {
|
|
69
|
+
color: var(--skdx-color-text-disabled);
|
|
70
|
+
cursor: not-allowed;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
* List / ListItem — a marked or plain run of items, or the label/value pairs of a
|
|
11
|
+
* description list. `markers={false}` only removes the marker here; the component
|
|
12
|
+
* adds `role="list"` back (WebKit 170179). An item's marker is replaced via
|
|
13
|
+
* `:has()` on its `indicator` part.
|
|
14
|
+
*/
|
|
15
|
+
@layer skdx-components {
|
|
16
|
+
:where(.skdx-list) {
|
|
17
|
+
--skdx-list-gap: 0px;
|
|
18
|
+
--skdx-list-marker-color: var(--skdx-color-text-muted);
|
|
19
|
+
--skdx-list-indent: var(--skdx-space-6);
|
|
20
|
+
|
|
21
|
+
display: flex;
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
gap: var(--skdx-list-gap);
|
|
24
|
+
|
|
25
|
+
margin: 0;
|
|
26
|
+
padding-inline-start: var(--skdx-list-indent);
|
|
27
|
+
list-style-type: revert;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
:where(.skdx-list)[data-markers='false'] {
|
|
31
|
+
list-style: none;
|
|
32
|
+
padding-inline-start: 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:where(.skdx-list__item)::marker {
|
|
36
|
+
color: var(--skdx-list-marker-color);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Sized like an inline icon everywhere else in the skin, and pulled in
|
|
40
|
+
from the text it stands in for the marker of. */
|
|
41
|
+
:where(.skdx-list__indicator) {
|
|
42
|
+
display: inline-flex;
|
|
43
|
+
flex: none;
|
|
44
|
+
align-items: center;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
inline-size: var(--skdx-icon-size-sm);
|
|
47
|
+
block-size: var(--skdx-icon-size-sm);
|
|
48
|
+
margin-inline-end: var(--skdx-space-2);
|
|
49
|
+
color: var(--skdx-list-marker-color);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* The glyph replaces the marker rather than doubling it. */
|
|
53
|
+
:where(.skdx-list__item):has(> .skdx-list__indicator) {
|
|
54
|
+
list-style: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Description list — `data-orientation` is written only under as="dl", so its
|
|
58
|
+
presence is what swaps the run of items for a grid of pairs. Labels size to
|
|
59
|
+
content and values take the rest, so every value starts on the same axis
|
|
60
|
+
without a fixed label width. */
|
|
61
|
+
:where(.skdx-list)[data-orientation] {
|
|
62
|
+
display: grid;
|
|
63
|
+
grid-template-columns: auto 1fr;
|
|
64
|
+
gap: var(--skdx-space-2) var(--skdx-space-4);
|
|
65
|
+
padding-inline-start: 0;
|
|
66
|
+
font-size: var(--skdx-font-size-sm);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
:where(.skdx-list)[data-orientation='vertical'] {
|
|
70
|
+
grid-template-columns: 1fr;
|
|
71
|
+
gap: var(--skdx-space-1);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Density — `comfortable` is the rhythm above and the default; `compact` is for
|
|
75
|
+
an inspector panel or a sidebar, where the same pairs have to read denser than
|
|
76
|
+
they do in a page header. `gap` and `font-size` only: anything else here would
|
|
77
|
+
start deciding the layout rather than its rhythm. */
|
|
78
|
+
:where(.skdx-list)[data-density='compact'] {
|
|
79
|
+
gap: var(--skdx-space-1) var(--skdx-space-2);
|
|
80
|
+
font-size: var(--skdx-font-size-xs);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
:where(.skdx-list)[data-density='compact'][data-orientation='vertical'] {
|
|
84
|
+
gap: 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* The pair wrapper participates in the parent grid rather than forming a new
|
|
88
|
+
one, so pairs stay aligned whether or not it is used. */
|
|
89
|
+
:where(.skdx-list)[data-orientation] > :where(.skdx-list__item) {
|
|
90
|
+
display: grid;
|
|
91
|
+
grid-column: 1 / -1;
|
|
92
|
+
grid-template-columns: subgrid;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
:where(.skdx-list__term) {
|
|
96
|
+
color: var(--skdx-color-text-muted);
|
|
97
|
+
font-weight: var(--skdx-font-weight-medium);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
:where(.skdx-list__description) {
|
|
101
|
+
margin: 0;
|
|
102
|
+
color: var(--skdx-color-text-default);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
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 '_collection.css';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Listbox — an always-visible list of selectable options. Not a popup: it sits
|
|
11
|
+
* in the page, so it takes a field's border rather than an overlay's shadow.
|
|
12
|
+
*/
|
|
13
|
+
@layer skdx-components {
|
|
14
|
+
:where(.skdx-listbox) {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
gap: var(--skdx-item-gap);
|
|
18
|
+
|
|
19
|
+
padding: var(--skdx-overlay-padding);
|
|
20
|
+
overflow: auto;
|
|
21
|
+
--skdx-focus-ring-offset: var(--skdx-focus-ring-offset-inset);
|
|
22
|
+
|
|
23
|
+
background-color: var(--skdx-color-field-bg);
|
|
24
|
+
border: var(--skdx-border-width-thin) solid var(--skdx-color-border-default);
|
|
25
|
+
border-radius: var(--skdx-radius-md);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* `orientation` is a component prop, not a skin attribute — it
|
|
29
|
+
changes which arrow-key pair roves — so the skin only ever reads it back,
|
|
30
|
+
never sets it. `column` above is the `vertical` default, restated here so
|
|
31
|
+
an author can key off `[data-orientation]` without special-casing the
|
|
32
|
+
unset case. */
|
|
33
|
+
:where(.skdx-listbox)[data-orientation='vertical'] {
|
|
34
|
+
flex-direction: column;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:where(.skdx-listbox)[data-orientation='horizontal'] {
|
|
38
|
+
flex-direction: row;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:where(.skdx-listbox)[data-disabled] {
|
|
42
|
+
background-color: var(--skdx-color-field-bg-disabled);
|
|
43
|
+
cursor: not-allowed;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* `data-size`, `data-density` and `data-shape` resolve on the root.
|
|
47
|
+
The defaults are the base rules above. */
|
|
48
|
+
:where(.skdx-listbox)[data-size='sm'] {
|
|
49
|
+
padding: var(--skdx-space-1);
|
|
50
|
+
font-size: var(--skdx-font-size-xs);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
:where(.skdx-listbox)[data-size='lg'] {
|
|
54
|
+
padding: var(--skdx-space-3);
|
|
55
|
+
font-size: var(--skdx-font-size-md);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:where(.skdx-listbox)[data-size='sm'] :where(.skdx-listbox__item) {
|
|
59
|
+
min-block-size: var(--skdx-item-height-sm);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
:where(.skdx-listbox)[data-size='lg'] :where(.skdx-listbox__item) {
|
|
63
|
+
min-block-size: var(--skdx-item-height-lg);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Density is the *between-rows* axis, size the row axis: a compact list packs
|
|
67
|
+
the same rows closer rather than shrinking them, which is what a long
|
|
68
|
+
settings list wants and what shrinking the text would not give it. */
|
|
69
|
+
:where(.skdx-listbox)[data-density='compact'] {
|
|
70
|
+
gap: 0;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:where(.skdx-listbox)[data-density='compact'] :where(.skdx-listbox__item) {
|
|
74
|
+
padding-block: var(--skdx-space-1);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:where(.skdx-listbox)[data-shape='square'] {
|
|
78
|
+
border-radius: 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:where(.skdx-listbox)[data-shape='rounded'] {
|
|
82
|
+
border-radius: var(--skdx-radius-md);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@media (forced-colors: active) {
|
|
86
|
+
:where(.skdx-listbox) {
|
|
87
|
+
border-color: CanvasText;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -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
|
+
/* The root is only the containing block the scrim covers. `data-state` here is
|
|
10
|
+
visible/hidden, not the open/closed every other family uses. */
|
|
11
|
+
@layer skdx-components {
|
|
12
|
+
:where(.skdx-loading-overlay) {
|
|
13
|
+
position: relative;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* Deliberately not in _overlay.css with the modal scrims: those are all position: fixed, which would make a panel-scoped loading state cover the whole page. */
|
|
17
|
+
:where(.skdx-loading-overlay__backdrop),
|
|
18
|
+
:where(.skdx-loading-overlay__content) {
|
|
19
|
+
position: absolute;
|
|
20
|
+
inset: 0;
|
|
21
|
+
z-index: var(--skdx-z-index-overlay);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:where(.skdx-loading-overlay__backdrop)[data-full-screen],
|
|
25
|
+
:where(.skdx-loading-overlay__content)[data-full-screen] {
|
|
26
|
+
position: fixed;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
:where(.skdx-loading-overlay__backdrop) {
|
|
30
|
+
background-color: var(--skdx-color-surface-overlay);
|
|
31
|
+
opacity: var(--skdx-loading-overlay-scrim-opacity, 1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* A hint of dimming — enough to say "not yet" over a card the user can still read. */
|
|
35
|
+
:where(.skdx-loading-overlay__backdrop)[data-emphasis='low'] {
|
|
36
|
+
--skdx-loading-overlay-scrim-opacity: 0.55;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* The default weight, and what a Backdrop with no attribute already paints. */
|
|
40
|
+
:where(.skdx-loading-overlay__backdrop)[data-emphasis='medium'] {
|
|
41
|
+
--skdx-loading-overlay-scrim-opacity: 1;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* backdrop-filter degrades to nothing where unsupported, leaving the medium weight behind it. */
|
|
45
|
+
:where(.skdx-loading-overlay__backdrop)[data-emphasis='high'] {
|
|
46
|
+
--skdx-loading-overlay-scrim-opacity: 1;
|
|
47
|
+
backdrop-filter: blur(2px);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:where(.skdx-loading-overlay__content) {
|
|
51
|
+
display: flex;
|
|
52
|
+
flex-direction: column;
|
|
53
|
+
align-items: center;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
gap: var(--skdx-space-3);
|
|
56
|
+
|
|
57
|
+
color: var(--skdx-color-text-default);
|
|
58
|
+
font-size: var(--skdx-font-size-sm);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Angular/Web Components keep the content mounted and [hidden]; author display: flex above beats it on origin, so it must be restated here. */
|
|
62
|
+
:where(.skdx-loading-overlay__content)[hidden] {
|
|
63
|
+
display: none;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
:where(.skdx-loading-overlay__backdrop)[data-state='visible'],
|
|
67
|
+
:where(.skdx-loading-overlay__content)[data-state='visible'] {
|
|
68
|
+
animation: skdx-fade-in var(--skdx-motion-duration-fast) var(--skdx-motion-easing);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
:where(.skdx-loading-overlay__backdrop)[data-state='hidden'],
|
|
72
|
+
:where(.skdx-loading-overlay__content)[data-state='hidden'] {
|
|
73
|
+
animation: skdx-fade-out var(--skdx-motion-duration-fast) var(--skdx-motion-easing-exit);
|
|
74
|
+
/* skdx-fade-out has only a to frame, so forwards holds the end state until Presence unmounts it. */
|
|
75
|
+
animation-fill-mode: forwards;
|
|
76
|
+
pointer-events: none;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@media (forced-colors: active) {
|
|
80
|
+
:where(.skdx-loading-overlay__backdrop) {
|
|
81
|
+
background-color: Highlight;
|
|
82
|
+
opacity: 1;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:where(.skdx-loading-overlay__content) {
|
|
86
|
+
color: HighlightText;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|