@sewadah/selaras 0.1.1 → 0.3.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/README.md +67 -20
- package/dist/module.d.mts +10 -0
- package/dist/module.json +1 -1
- package/dist/module.mjs +123 -36
- package/dist/runtime/components/Accordion.d.vue.ts +3 -0
- package/dist/runtime/components/Accordion.vue +5 -1
- package/dist/runtime/components/Accordion.vue.d.ts +3 -0
- package/dist/runtime/components/Alert.d.vue.ts +2 -1
- package/dist/runtime/components/Alert.vue +6 -3
- package/dist/runtime/components/Alert.vue.d.ts +2 -1
- package/dist/runtime/components/AlertDialog.d.vue.ts +2 -0
- package/dist/runtime/components/AlertDialog.vue +21 -8
- package/dist/runtime/components/AlertDialog.vue.d.ts +2 -0
- package/dist/runtime/components/App.vue +9 -2
- package/dist/runtime/components/Autocomplete.d.vue.ts +22 -58
- package/dist/runtime/components/Autocomplete.vue +50 -11
- package/dist/runtime/components/Autocomplete.vue.d.ts +22 -58
- package/dist/runtime/components/Avatar.d.vue.ts +2 -1
- package/dist/runtime/components/Avatar.vue +4 -2
- package/dist/runtime/components/Avatar.vue.d.ts +2 -1
- package/dist/runtime/components/Badge.d.vue.ts +3 -2
- package/dist/runtime/components/Badge.vue +8 -5
- package/dist/runtime/components/Badge.vue.d.ts +3 -2
- package/dist/runtime/components/Breadcrumb.d.vue.ts +3 -0
- package/dist/runtime/components/Breadcrumb.vue +5 -2
- package/dist/runtime/components/Breadcrumb.vue.d.ts +3 -0
- package/dist/runtime/components/Button.d.vue.ts +5 -2
- package/dist/runtime/components/Button.vue +5 -2
- package/dist/runtime/components/Button.vue.d.ts +5 -2
- package/dist/runtime/components/Checkbox.d.vue.ts +2 -1
- package/dist/runtime/components/Checkbox.vue +4 -2
- package/dist/runtime/components/Checkbox.vue.d.ts +2 -1
- package/dist/runtime/components/Chip.d.vue.ts +2 -1
- package/dist/runtime/components/Chip.vue +4 -2
- package/dist/runtime/components/Chip.vue.d.ts +2 -1
- package/dist/runtime/components/Collapsible.d.vue.ts +3 -0
- package/dist/runtime/components/Collapsible.vue +11 -6
- package/dist/runtime/components/Collapsible.vue.d.ts +3 -0
- package/dist/runtime/components/ColorPicker.d.vue.ts +13 -3
- package/dist/runtime/components/ColorPicker.vue +60 -14
- package/dist/runtime/components/ColorPicker.vue.d.ts +13 -3
- package/dist/runtime/components/Column.d.ts +1 -1
- package/dist/runtime/components/CommandPalette.vue +18 -16
- package/dist/runtime/components/ContentNavigation.d.vue.ts +3 -0
- package/dist/runtime/components/ContentNavigation.vue +6 -3
- package/dist/runtime/components/ContentNavigation.vue.d.ts +3 -0
- package/dist/runtime/components/ContentSurround.d.vue.ts +3 -0
- package/dist/runtime/components/ContentSurround.vue +7 -4
- package/dist/runtime/components/ContentSurround.vue.d.ts +3 -0
- package/dist/runtime/components/ContentToc.d.vue.ts +3 -0
- package/dist/runtime/components/ContentToc.vue +22 -12
- package/dist/runtime/components/ContentToc.vue.d.ts +3 -0
- package/dist/runtime/components/ContextMenu.vue +3 -2
- package/dist/runtime/components/DashboardSidebar.vue +1 -1
- package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +1 -0
- package/dist/runtime/components/DashboardSidebarToggle.vue +3 -1
- package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +1 -0
- package/dist/runtime/components/DatePicker.d.vue.ts +32 -23
- package/dist/runtime/components/DatePicker.vue +130 -60
- package/dist/runtime/components/DatePicker.vue.d.ts +32 -23
- package/dist/runtime/components/Drawer.d.vue.ts +2 -0
- package/dist/runtime/components/Drawer.vue +21 -8
- package/dist/runtime/components/Drawer.vue.d.ts +2 -0
- package/dist/runtime/components/DrawerRenderer.vue +28 -21
- package/dist/runtime/components/Dropdown.d.vue.ts +14 -4
- package/dist/runtime/components/Dropdown.vue +19 -4
- package/dist/runtime/components/Dropdown.vue.d.ts +14 -4
- package/dist/runtime/components/FileTree.d.vue.ts +3 -0
- package/dist/runtime/components/FileTree.vue +7 -3
- package/dist/runtime/components/FileTree.vue.d.ts +3 -0
- package/dist/runtime/components/FileUpload.d.vue.ts +2 -1
- package/dist/runtime/components/FileUpload.vue +75 -32
- package/dist/runtime/components/FileUpload.vue.d.ts +2 -1
- package/dist/runtime/components/FormField.d.vue.ts +2 -0
- package/dist/runtime/components/FormField.vue +12 -9
- package/dist/runtime/components/FormField.vue.d.ts +2 -0
- package/dist/runtime/components/Icon.d.vue.ts +2 -4
- package/dist/runtime/components/Icon.vue +7 -2
- package/dist/runtime/components/Icon.vue.d.ts +2 -4
- package/dist/runtime/components/Input.d.vue.ts +2 -1
- package/dist/runtime/components/Input.vue +12 -6
- package/dist/runtime/components/Input.vue.d.ts +2 -1
- package/dist/runtime/components/InputNumber.d.vue.ts +4 -1
- package/dist/runtime/components/InputNumber.vue +21 -8
- package/dist/runtime/components/InputNumber.vue.d.ts +4 -1
- package/dist/runtime/components/Modal.d.vue.ts +2 -0
- package/dist/runtime/components/Modal.vue +21 -8
- package/dist/runtime/components/Modal.vue.d.ts +2 -0
- package/dist/runtime/components/ModalRenderer.vue +23 -16
- package/dist/runtime/components/NavigationMenu.d.vue.ts +2 -4
- package/dist/runtime/components/NavigationMenu.vue +8 -4
- package/dist/runtime/components/NavigationMenu.vue.d.ts +2 -4
- package/dist/runtime/components/NavigationMenuAccordionItem.d.vue.ts +2 -4
- package/dist/runtime/components/NavigationMenuAccordionItem.vue +5 -3
- package/dist/runtime/components/NavigationMenuAccordionItem.vue.d.ts +2 -4
- package/dist/runtime/components/NavigationMenuFlyoutList.d.vue.ts +2 -4
- package/dist/runtime/components/NavigationMenuFlyoutList.vue +7 -4
- package/dist/runtime/components/NavigationMenuFlyoutList.vue.d.ts +2 -4
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.d.vue.ts +2 -4
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue +9 -2
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue.d.ts +2 -4
- package/dist/runtime/components/Pagination.d.vue.ts +3 -2
- package/dist/runtime/components/Pagination.vue.d.ts +3 -2
- package/dist/runtime/components/PinInput.d.vue.ts +2 -1
- package/dist/runtime/components/PinInput.vue +17 -6
- package/dist/runtime/components/PinInput.vue.d.ts +2 -1
- package/dist/runtime/components/Popover.d.vue.ts +2 -0
- package/dist/runtime/components/Popover.vue +14 -7
- package/dist/runtime/components/Popover.vue.d.ts +2 -0
- package/dist/runtime/components/Progress.d.vue.ts +2 -1
- package/dist/runtime/components/Progress.vue +6 -4
- package/dist/runtime/components/Progress.vue.d.ts +2 -1
- package/dist/runtime/components/ProseH1.d.vue.ts +2 -0
- package/dist/runtime/components/ProseH1.vue +7 -4
- package/dist/runtime/components/ProseH1.vue.d.ts +2 -0
- package/dist/runtime/components/ProseH2.d.vue.ts +2 -0
- package/dist/runtime/components/ProseH2.vue +7 -4
- package/dist/runtime/components/ProseH2.vue.d.ts +2 -0
- package/dist/runtime/components/ProseH3.d.vue.ts +2 -0
- package/dist/runtime/components/ProseH3.vue +7 -4
- package/dist/runtime/components/ProseH3.vue.d.ts +2 -0
- package/dist/runtime/components/ProseH4.d.vue.ts +2 -0
- package/dist/runtime/components/ProseH4.vue +7 -4
- package/dist/runtime/components/ProseH4.vue.d.ts +2 -0
- package/dist/runtime/components/ProseH5.d.vue.ts +2 -0
- package/dist/runtime/components/ProseH5.vue +7 -4
- package/dist/runtime/components/ProseH5.vue.d.ts +2 -0
- package/dist/runtime/components/ProseH6.d.vue.ts +2 -0
- package/dist/runtime/components/ProseH6.vue +7 -4
- package/dist/runtime/components/ProseH6.vue.d.ts +2 -0
- package/dist/runtime/components/ProsePre.d.vue.ts +4 -2
- package/dist/runtime/components/ProsePre.vue +9 -3
- package/dist/runtime/components/ProsePre.vue.d.ts +4 -2
- package/dist/runtime/components/RadioGroup.d.vue.ts +2 -1
- package/dist/runtime/components/RadioGroup.vue +9 -5
- package/dist/runtime/components/RadioGroup.vue.d.ts +2 -1
- package/dist/runtime/components/Rating.d.vue.ts +2 -1
- package/dist/runtime/components/Rating.vue +4 -1
- package/dist/runtime/components/Rating.vue.d.ts +2 -1
- package/dist/runtime/components/ReadMore.d.vue.ts +3 -0
- package/dist/runtime/components/ReadMore.vue +24 -6
- package/dist/runtime/components/ReadMore.vue.d.ts +3 -0
- package/dist/runtime/components/Select.d.vue.ts +21 -57
- package/dist/runtime/components/Select.vue +58 -9
- package/dist/runtime/components/Select.vue.d.ts +21 -57
- package/dist/runtime/components/Separator.d.vue.ts +2 -1
- package/dist/runtime/components/Separator.vue +4 -2
- package/dist/runtime/components/Separator.vue.d.ts +2 -1
- package/dist/runtime/components/Slideover.d.vue.ts +2 -0
- package/dist/runtime/components/Slideover.vue +21 -8
- package/dist/runtime/components/Slideover.vue.d.ts +2 -0
- package/dist/runtime/components/SlideoverRenderer.vue +25 -18
- package/dist/runtime/components/Slider.d.vue.ts +2 -1
- package/dist/runtime/components/Slider.vue +4 -1
- package/dist/runtime/components/Slider.vue.d.ts +2 -1
- package/dist/runtime/components/SplitterResizeHandle.d.vue.ts +3 -0
- package/dist/runtime/components/SplitterResizeHandle.vue +5 -2
- package/dist/runtime/components/SplitterResizeHandle.vue.d.ts +3 -0
- package/dist/runtime/components/Stepper.d.vue.ts +2 -1
- package/dist/runtime/components/Stepper.vue +4 -1
- package/dist/runtime/components/Stepper.vue.d.ts +2 -1
- package/dist/runtime/components/Switch.d.vue.ts +2 -1
- package/dist/runtime/components/Switch.vue +4 -2
- package/dist/runtime/components/Switch.vue.d.ts +2 -1
- package/dist/runtime/components/Table.d.vue.ts +28 -80
- package/dist/runtime/components/Table.vue +25 -13
- package/dist/runtime/components/Table.vue.d.ts +28 -80
- package/dist/runtime/components/Tabs.d.vue.ts +3 -0
- package/dist/runtime/components/Tabs.vue +5 -1
- package/dist/runtime/components/Tabs.vue.d.ts +3 -0
- package/dist/runtime/components/Textarea.d.vue.ts +2 -1
- package/dist/runtime/components/Textarea.vue +11 -6
- package/dist/runtime/components/Textarea.vue.d.ts +2 -1
- package/dist/runtime/components/Theme.d.vue.ts +16 -5
- package/dist/runtime/components/Theme.vue +30 -5
- package/dist/runtime/components/Theme.vue.d.ts +16 -5
- package/dist/runtime/components/Toast.vue +11 -39
- package/dist/runtime/components/Toggle.d.vue.ts +2 -1
- package/dist/runtime/components/Toggle.vue +4 -1
- package/dist/runtime/components/Toggle.vue.d.ts +2 -1
- package/dist/runtime/components/ToggleGroup.d.vue.ts +2 -1
- package/dist/runtime/components/ToggleGroup.vue +4 -1
- package/dist/runtime/components/ToggleGroup.vue.d.ts +2 -1
- package/dist/runtime/components/Tooltip.vue +3 -2
- package/dist/runtime/components/Tree.d.vue.ts +5 -2
- package/dist/runtime/components/Tree.vue +5 -1
- package/dist/runtime/components/Tree.vue.d.ts +5 -2
- package/dist/runtime/composables/use-drawer.d.ts +1 -22
- package/dist/runtime/composables/use-drawer.js +12 -18
- package/dist/runtime/composables/use-form-field.d.ts +1 -0
- package/dist/runtime/composables/use-icons.d.ts +2 -2
- package/dist/runtime/composables/use-icons.js +1 -1
- package/dist/runtime/composables/use-locale.d.ts +2 -2
- package/dist/runtime/composables/use-locale.js +1 -1
- package/dist/runtime/composables/use-media-query.d.ts +6 -8
- package/dist/runtime/composables/use-media-query.js +7 -2
- package/dist/runtime/composables/use-messages.d.ts +2 -2
- package/dist/runtime/composables/use-messages.js +1 -1
- package/dist/runtime/composables/use-modal.d.ts +1 -17
- package/dist/runtime/composables/use-modal.js +12 -18
- package/dist/runtime/composables/use-ripple.d.ts +2 -2
- package/dist/runtime/composables/use-ripple.js +1 -1
- package/dist/runtime/composables/use-slideover.d.ts +1 -19
- package/dist/runtime/composables/use-slideover.js +12 -18
- package/dist/runtime/composables/use-table.d.ts +74 -17
- package/dist/runtime/composables/use-table.js +4 -1
- package/dist/runtime/composables/use-toast.d.ts +8 -8
- package/dist/runtime/composables/use-toast.js +9 -11
- package/dist/runtime/default-color-metadata.d.ts +4 -0
- package/dist/runtime/default-color-metadata.js +4 -0
- package/dist/runtime/default-colors.css +1 -0
- package/dist/runtime/internal/ColorPickerBody.d.vue.ts +1 -0
- package/dist/runtime/internal/ColorPickerBody.vue +24 -1
- package/dist/runtime/internal/ColorPickerBody.vue.d.ts +1 -0
- package/dist/runtime/internal/ComboboxSelectBase.d.vue.ts +50 -46
- package/dist/runtime/internal/ComboboxSelectBase.vue +340 -93
- package/dist/runtime/internal/ComboboxSelectBase.vue.d.ts +50 -46
- package/dist/runtime/internal/ComboboxSelectBody.d.vue.ts +29 -23
- package/dist/runtime/internal/ComboboxSelectBody.vue +74 -40
- package/dist/runtime/internal/ComboboxSelectBody.vue.d.ts +29 -23
- package/dist/runtime/internal/DatePickerCalendarBody.d.vue.ts +3 -5
- package/dist/runtime/internal/DatePickerCalendarBody.vue +2 -2
- package/dist/runtime/internal/DatePickerCalendarBody.vue.d.ts +3 -5
- package/dist/runtime/internal/DatePickerRangeCalendarBody.d.vue.ts +3 -5
- package/dist/runtime/internal/DatePickerRangeCalendarBody.vue +1 -1
- package/dist/runtime/internal/DatePickerRangeCalendarBody.vue.d.ts +3 -5
- package/dist/runtime/internal/DatePickerTimeBody.d.vue.ts +2 -4
- package/dist/runtime/internal/DatePickerTimeBody.vue.d.ts +2 -4
- package/dist/runtime/internal/ProgrammaticTheme.d.vue.ts +17 -0
- package/dist/runtime/internal/ProgrammaticTheme.vue +41 -0
- package/dist/runtime/internal/ProgrammaticTheme.vue.d.ts +17 -0
- package/dist/runtime/internal/TimeStepper.vue +1 -1
- package/dist/runtime/internal/ToastItemRenderer.d.vue.ts +14 -0
- package/dist/runtime/internal/ToastItemRenderer.vue +54 -0
- package/dist/runtime/internal/ToastItemRenderer.vue.d.ts +14 -0
- package/dist/runtime/internal/combobox-select.d.ts +52 -0
- package/dist/runtime/{composables/use-combobox-select.js → internal/combobox-select.js} +26 -11
- package/dist/runtime/internal/programmatic-services.d.ts +71 -0
- package/dist/runtime/internal/programmatic-services.js +61 -0
- package/dist/runtime/prose.css +1 -1
- package/dist/runtime/structural.css +1 -0
- package/dist/runtime/table.d.ts +3 -0
- package/dist/runtime/table.js +1 -0
- package/dist/runtime/theme/accordion.d.ts +27 -0
- package/dist/runtime/theme/accordion.js +15 -6
- package/dist/runtime/theme/alert-dialog.js +5 -5
- package/dist/runtime/theme/alert.js +6 -15
- package/dist/runtime/theme/avatar-group.js +2 -2
- package/dist/runtime/theme/avatar.js +12 -18
- package/dist/runtime/theme/badge.d.ts +39 -9
- package/dist/runtime/theme/badge.js +11 -40
- package/dist/runtime/theme/breadcrumb.d.ts +29 -47
- package/dist/runtime/theme/breadcrumb.js +16 -5
- package/dist/runtime/theme/button.d.ts +45 -15
- package/dist/runtime/theme/button.js +10 -57
- package/dist/runtime/theme/callout.js +7 -7
- package/dist/runtime/theme/card.js +7 -7
- package/dist/runtime/theme/checkbox.d.ts +21 -84
- package/dist/runtime/theme/checkbox.js +15 -36
- package/dist/runtime/theme/chip.js +4 -22
- package/dist/runtime/theme/code-button.js +2 -2
- package/dist/runtime/theme/code-tree.d.ts +3 -3
- package/dist/runtime/theme/code-tree.js +4 -4
- package/dist/runtime/theme/collapsible.d.ts +27 -0
- package/dist/runtime/theme/collapsible.js +12 -3
- package/dist/runtime/theme/color-picker.d.ts +18 -54
- package/dist/runtime/theme/color-picker.js +19 -18
- package/dist/runtime/theme/command-palette.d.ts +6 -6
- package/dist/runtime/theme/command-palette.js +12 -10
- package/dist/runtime/theme/content-navigation.d.ts +27 -0
- package/dist/runtime/theme/content-navigation.js +14 -5
- package/dist/runtime/theme/content-surround.d.ts +27 -0
- package/dist/runtime/theme/content-surround.js +13 -4
- package/dist/runtime/theme/content-toc.d.ts +27 -0
- package/dist/runtime/theme/content-toc.js +14 -5
- package/dist/runtime/theme/context-menu.js +7 -7
- package/dist/runtime/theme/dashboard-navbar.d.ts +6 -6
- package/dist/runtime/theme/dashboard-navbar.js +2 -2
- package/dist/runtime/theme/dashboard-resize-handle.js +3 -3
- package/dist/runtime/theme/dashboard-sidebar.js +3 -3
- package/dist/runtime/theme/date-picker.js +10 -10
- package/dist/runtime/theme/drawer.js +9 -9
- package/dist/runtime/theme/dropdown.js +7 -7
- package/dist/runtime/theme/file-tree.d.ts +27 -0
- package/dist/runtime/theme/file-tree.js +12 -3
- package/dist/runtime/theme/file-upload.d.ts +18 -72
- package/dist/runtime/theme/file-upload.js +20 -19
- package/dist/runtime/theme/form-field.js +5 -5
- package/dist/runtime/theme/header.d.ts +3 -3
- package/dist/runtime/theme/header.js +1 -1
- package/dist/runtime/theme/icon.d.ts +30 -57
- package/dist/runtime/theme/icon.js +19 -9
- package/dist/runtime/theme/input-number.d.ts +21 -63
- package/dist/runtime/theme/input-number.js +12 -12
- package/dist/runtime/theme/input.d.ts +21 -63
- package/dist/runtime/theme/input.js +12 -12
- package/dist/runtime/theme/kbd.js +1 -1
- package/dist/runtime/theme/modal.js +4 -4
- package/dist/runtime/theme/navigation-menu.d.ts +2 -0
- package/dist/runtime/theme/navigation-menu.js +17 -28
- package/dist/runtime/theme/page-header.js +3 -3
- package/dist/runtime/theme/pagination.js +1 -1
- package/dist/runtime/theme/pin-input.d.ts +21 -63
- package/dist/runtime/theme/pin-input.js +13 -11
- package/dist/runtime/theme/popover.js +2 -2
- package/dist/runtime/theme/progress.d.ts +21 -84
- package/dist/runtime/theme/progress.js +12 -12
- package/dist/runtime/theme/prose.d.ts +35 -50
- package/dist/runtime/theme/prose.js +24 -11
- package/dist/runtime/theme/radio-group.d.ts +21 -84
- package/dist/runtime/theme/radio-group.js +16 -22
- package/dist/runtime/theme/rating.d.ts +21 -63
- package/dist/runtime/theme/rating.js +10 -10
- package/dist/runtime/theme/read-more.d.ts +27 -0
- package/dist/runtime/theme/read-more.js +13 -4
- package/dist/runtime/theme/scroll-area.d.ts +3 -3
- package/dist/runtime/theme/scroll-area.js +2 -2
- package/dist/runtime/theme/select.d.ts +21 -54
- package/dist/runtime/theme/select.js +32 -24
- package/dist/runtime/theme/separator.d.ts +18 -54
- package/dist/runtime/theme/separator.js +16 -12
- package/dist/runtime/theme/skeleton.js +4 -4
- package/dist/runtime/theme/slideover.js +5 -5
- package/dist/runtime/theme/slider.d.ts +21 -84
- package/dist/runtime/theme/slider.js +14 -14
- package/dist/runtime/theme/splitter-resize-handle.d.ts +27 -0
- package/dist/runtime/theme/splitter-resize-handle.js +11 -1
- package/dist/runtime/theme/stepper.d.ts +21 -84
- package/dist/runtime/theme/stepper.js +12 -33
- package/dist/runtime/theme/switch.d.ts +21 -84
- package/dist/runtime/theme/switch.js +13 -13
- package/dist/runtime/theme/table.d.ts +27 -0
- package/dist/runtime/theme/table.js +31 -21
- package/dist/runtime/theme/tabs.d.ts +27 -0
- package/dist/runtime/theme/tabs.js +17 -7
- package/dist/runtime/theme/textarea.d.ts +21 -63
- package/dist/runtime/theme/textarea.js +12 -12
- package/dist/runtime/theme/toast.d.ts +12 -48
- package/dist/runtime/theme/toast.js +9 -9
- package/dist/runtime/theme/toggle-group.js +5 -11
- package/dist/runtime/theme/toggle.js +2 -12
- package/dist/runtime/theme/tooltip.d.ts +3 -3
- package/dist/runtime/theme/tooltip.js +3 -3
- package/dist/runtime/theme/tree.d.ts +27 -0
- package/dist/runtime/theme/tree.js +13 -3
- package/dist/runtime/theme-api.d.ts +15 -0
- package/dist/runtime/theme-api.js +12 -0
- package/dist/runtime/theme-config.d.ts +470 -0
- package/dist/runtime/theme-config.js +0 -0
- package/dist/runtime/theme.css +1 -1
- package/dist/runtime/types/app-config.d.ts +11 -8
- package/dist/runtime/types/index.d.ts +19 -1
- package/dist/runtime/utils/app-scoped-state.d.ts +2 -0
- package/dist/runtime/utils/app-scoped-state.js +13 -0
- package/dist/runtime/utils/autocomplete-contracts.d.ts +24 -0
- package/dist/runtime/utils/autocomplete-contracts.js +0 -0
- package/dist/runtime/utils/color-registry.d.ts +62 -0
- package/dist/runtime/utils/color-registry.js +191 -0
- package/dist/runtime/utils/dtcg-colors.d.ts +25 -0
- package/dist/runtime/utils/dtcg-colors.js +40 -0
- package/dist/runtime/utils/file-icons.d.ts +8 -0
- package/dist/runtime/utils/file-icons.js +131 -0
- package/dist/runtime/utils/functional-tokens.d.ts +26 -0
- package/dist/runtime/utils/functional-tokens.js +54 -0
- package/dist/runtime/utils/icons.d.ts +3 -0
- package/dist/runtime/utils/icons.js +4 -0
- package/dist/runtime/utils/injection-keys.d.ts +12 -3
- package/dist/runtime/utils/native-input.d.ts +5 -0
- package/dist/runtime/utils/native-input.js +32 -0
- package/dist/runtime/utils/navigation-menu.d.ts +3 -0
- package/dist/runtime/utils/programmatic-theme.d.ts +17 -0
- package/dist/runtime/utils/programmatic-theme.js +59 -0
- package/dist/runtime/utils/registered-colors.d.ts +3 -0
- package/dist/runtime/utils/registered-colors.js +14 -0
- package/dist/runtime/utils/seed-colors.d.ts +19 -0
- package/dist/runtime/utils/seed-colors.js +207 -0
- package/dist/runtime/utils/select-contracts.d.ts +101 -0
- package/dist/runtime/utils/select-contracts.js +0 -0
- package/dist/runtime/utils/table-contracts.d.ts +60 -0
- package/dist/runtime/utils/table-contracts.js +0 -0
- package/dist/runtime/utils/ui.d.ts +26 -4
- package/dist/runtime/utils/ui.js +38 -5
- package/dist/tokens/default-colors.tokens.json +879 -0
- package/package.json +83 -16
- package/dist/runtime/composables/use-combobox-select.d.ts +0 -45
|
@@ -2,8 +2,8 @@ import { tv } from "tailwind-variants";
|
|
|
2
2
|
export const avatarGroupTheme = tv({
|
|
3
3
|
slots: {
|
|
4
4
|
root: "inline-flex flex-row-reverse justify-end",
|
|
5
|
-
item: "relative rounded-full ring-[var(--
|
|
6
|
-
count: "relative rounded-full bg-[var(--
|
|
5
|
+
item: "relative rounded-full ring-[var(--selaras-resolved-surface-default)]",
|
|
6
|
+
count: "relative rounded-full bg-[var(--selaras-resolved-surface-elevated)] text-[var(--selaras-resolved-text-muted)] font-medium flex items-center justify-center"
|
|
7
7
|
},
|
|
8
8
|
variants: {
|
|
9
9
|
size: {
|
|
@@ -2,7 +2,7 @@ import { tv } from "tailwind-variants";
|
|
|
2
2
|
export const avatarTheme = tv({
|
|
3
3
|
slots: {
|
|
4
4
|
// `relative` anchors the absolutely-positioned status dot to the corner.
|
|
5
|
-
base: "relative inline-flex shrink-0 select-none items-center justify-center align-middle",
|
|
5
|
+
base: "relative inline-flex shrink-0 select-none items-center justify-center bg-[var(--_selaras-color-subtle)] align-middle",
|
|
6
6
|
// `content` wraps image + fallback with overflow-hidden so text/images
|
|
7
7
|
// can't escape the avatar bounds, while the status dot (a sibling, not
|
|
8
8
|
// a child) stays unclipped outside this wrapper. items-center/
|
|
@@ -11,11 +11,11 @@ export const avatarTheme = tv({
|
|
|
11
11
|
// fallback icon/text sits flush at the start corner instead of centered.
|
|
12
12
|
content: "flex size-full items-center justify-center overflow-hidden",
|
|
13
13
|
image: "h-full w-full object-cover",
|
|
14
|
-
fallback: "flex h-full w-full items-center justify-center",
|
|
14
|
+
fallback: "flex h-full w-full items-center justify-center text-[var(--_selaras-color-text)]",
|
|
15
15
|
icon: "shrink-0",
|
|
16
16
|
// The ring separates the dot from the avatar itself, using the page
|
|
17
17
|
// background so it reads as a clean offset indicator at any size.
|
|
18
|
-
status: "absolute bottom-0 end-0 rounded-full ring-2 ring-[var(--
|
|
18
|
+
status: "absolute bottom-0 end-0 rounded-full ring-2 ring-[var(--selaras-resolved-surface-default)]"
|
|
19
19
|
},
|
|
20
20
|
variants: {
|
|
21
21
|
color: {
|
|
@@ -31,13 +31,13 @@ export const avatarTheme = tv({
|
|
|
31
31
|
// (online, offline, ...) rarely match the avatar's own identity color, so
|
|
32
32
|
// it gets its own variant rather than tracking the avatar's.
|
|
33
33
|
statusColor: {
|
|
34
|
-
primary: { status: "bg-[var(--
|
|
35
|
-
neutral: { status: "bg-[var(--
|
|
36
|
-
secondary: { status: "bg-[var(--
|
|
37
|
-
success: { status: "bg-[var(--
|
|
38
|
-
danger: { status: "bg-[var(--
|
|
39
|
-
info: { status: "bg-[var(--
|
|
40
|
-
warning: { status: "bg-[var(--
|
|
34
|
+
primary: { status: "bg-[var(--selaras-resolved-color-primary-indicator)]" },
|
|
35
|
+
neutral: { status: "bg-[var(--selaras-resolved-color-neutral-indicator)]" },
|
|
36
|
+
secondary: { status: "bg-[var(--selaras-resolved-color-secondary-indicator)]" },
|
|
37
|
+
success: { status: "bg-[var(--selaras-resolved-color-success-indicator)]" },
|
|
38
|
+
danger: { status: "bg-[var(--selaras-resolved-color-danger-indicator)]" },
|
|
39
|
+
info: { status: "bg-[var(--selaras-resolved-color-info-indicator)]" },
|
|
40
|
+
warning: { status: "bg-[var(--selaras-resolved-color-warning-indicator)]" }
|
|
41
41
|
},
|
|
42
42
|
size: {
|
|
43
43
|
sm: { base: "size-6", fallback: "text-[10px]", icon: "size-3", status: "size-1.5" },
|
|
@@ -46,17 +46,11 @@ export const avatarTheme = tv({
|
|
|
46
46
|
},
|
|
47
47
|
shape: {
|
|
48
48
|
circle: { base: "rounded-full" },
|
|
49
|
-
rounded: { base: "rounded-[var(--
|
|
49
|
+
rounded: { base: "rounded-[var(--selaras-resolved-radius-md)]" }
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
compoundVariants: [
|
|
53
|
-
{ color: "
|
|
54
|
-
{ color: "neutral", class: { base: "bg-[var(--ui-neutral-soft)]", fallback: "text-[var(--ui-text-muted)]" } },
|
|
55
|
-
{ color: "secondary", class: { base: "bg-[var(--ui-secondary-soft)]", fallback: "text-[var(--ui-secondary)]" } },
|
|
56
|
-
{ color: "success", class: { base: "bg-[var(--ui-success-soft)]", fallback: "text-[var(--ui-success)]" } },
|
|
57
|
-
{ color: "danger", class: { base: "bg-[var(--ui-danger-soft)]", fallback: "text-[var(--ui-danger)]" } },
|
|
58
|
-
{ color: "info", class: { base: "bg-[var(--ui-info-soft)]", fallback: "text-[var(--ui-info)]" } },
|
|
59
|
-
{ color: "warning", class: { base: "bg-[var(--ui-warning-soft)]", fallback: "text-[var(--ui-warning)]" } }
|
|
53
|
+
{ color: "neutral", class: { fallback: "text-[var(--selaras-resolved-text-muted)]" } }
|
|
60
54
|
],
|
|
61
55
|
defaultVariants: {
|
|
62
56
|
color: "neutral",
|
|
@@ -9,9 +9,15 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
9
9
|
warning: "";
|
|
10
10
|
};
|
|
11
11
|
variant: {
|
|
12
|
-
solid:
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
solid: {
|
|
13
|
+
base: string;
|
|
14
|
+
};
|
|
15
|
+
soft: {
|
|
16
|
+
base: string;
|
|
17
|
+
};
|
|
18
|
+
outline: {
|
|
19
|
+
base: string;
|
|
20
|
+
};
|
|
15
21
|
};
|
|
16
22
|
size: {
|
|
17
23
|
sm: {
|
|
@@ -33,6 +39,10 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
33
39
|
dot: string;
|
|
34
40
|
};
|
|
35
41
|
};
|
|
42
|
+
dotOnly: {
|
|
43
|
+
true: "";
|
|
44
|
+
false: "";
|
|
45
|
+
};
|
|
36
46
|
iconOnly: {
|
|
37
47
|
true: {
|
|
38
48
|
base: string;
|
|
@@ -55,9 +65,15 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
55
65
|
warning: "";
|
|
56
66
|
};
|
|
57
67
|
variant: {
|
|
58
|
-
solid:
|
|
59
|
-
|
|
60
|
-
|
|
68
|
+
solid: {
|
|
69
|
+
base: string;
|
|
70
|
+
};
|
|
71
|
+
soft: {
|
|
72
|
+
base: string;
|
|
73
|
+
};
|
|
74
|
+
outline: {
|
|
75
|
+
base: string;
|
|
76
|
+
};
|
|
61
77
|
};
|
|
62
78
|
size: {
|
|
63
79
|
sm: {
|
|
@@ -79,6 +95,10 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
79
95
|
dot: string;
|
|
80
96
|
};
|
|
81
97
|
};
|
|
98
|
+
dotOnly: {
|
|
99
|
+
true: "";
|
|
100
|
+
false: "";
|
|
101
|
+
};
|
|
82
102
|
iconOnly: {
|
|
83
103
|
true: {
|
|
84
104
|
base: string;
|
|
@@ -101,9 +121,15 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
101
121
|
warning: "";
|
|
102
122
|
};
|
|
103
123
|
variant: {
|
|
104
|
-
solid:
|
|
105
|
-
|
|
106
|
-
|
|
124
|
+
solid: {
|
|
125
|
+
base: string;
|
|
126
|
+
};
|
|
127
|
+
soft: {
|
|
128
|
+
base: string;
|
|
129
|
+
};
|
|
130
|
+
outline: {
|
|
131
|
+
base: string;
|
|
132
|
+
};
|
|
107
133
|
};
|
|
108
134
|
size: {
|
|
109
135
|
sm: {
|
|
@@ -125,6 +151,10 @@ export declare const badgeTheme: import("tailwind-variants").TVReturnType<{
|
|
|
125
151
|
dot: string;
|
|
126
152
|
};
|
|
127
153
|
};
|
|
154
|
+
dotOnly: {
|
|
155
|
+
true: "";
|
|
156
|
+
false: "";
|
|
157
|
+
};
|
|
128
158
|
iconOnly: {
|
|
129
159
|
true: {
|
|
130
160
|
base: string;
|
|
@@ -5,15 +5,12 @@ export const badgeTheme = tv({
|
|
|
5
5
|
// already defines the width, no slack to distribute) but is required
|
|
6
6
|
// once iconOnly gives the root a fixed width wider than its one child -
|
|
7
7
|
// without it the icon sits flush left, all the slack pushed right.
|
|
8
|
-
base: "inline-flex items-center justify-center gap-1 font-medium rounded-[var(--
|
|
8
|
+
base: "inline-flex items-center justify-center gap-1 font-medium rounded-[var(--selaras-resolved-radius-sm)] whitespace-nowrap",
|
|
9
9
|
leadingIcon: "shrink-0",
|
|
10
10
|
label: "truncate",
|
|
11
11
|
trailingIcon: "shrink-0",
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
// Used both inline (next to a label) and standalone (dot-only, no
|
|
15
|
-
// padded base around it at all - see Badge.vue's dotOnly branch).
|
|
16
|
-
dot: "shrink-0 rounded-full"
|
|
12
|
+
// Standalone dots are unpaired graphics; inline dots use the pill foreground.
|
|
13
|
+
dot: "shrink-0 rounded-full bg-[var(--_selaras-color-indicator)]"
|
|
17
14
|
},
|
|
18
15
|
variants: {
|
|
19
16
|
color: {
|
|
@@ -26,15 +23,16 @@ export const badgeTheme = tv({
|
|
|
26
23
|
warning: ""
|
|
27
24
|
},
|
|
28
25
|
variant: {
|
|
29
|
-
solid: "",
|
|
30
|
-
soft: "",
|
|
31
|
-
outline: ""
|
|
26
|
+
solid: { base: "bg-[var(--_selaras-color-fill)] text-[var(--_selaras-color-on-fill)]" },
|
|
27
|
+
soft: { base: "bg-[var(--_selaras-color-subtle)] text-[var(--_selaras-color-on-subtle)]" },
|
|
28
|
+
outline: { base: "ring-1 ring-inset ring-[var(--_selaras-color-border)] text-[var(--_selaras-color-text)]" }
|
|
32
29
|
},
|
|
33
30
|
size: {
|
|
34
31
|
sm: { base: "h-4 px-1 text-xs", leadingIcon: "size-2.5", trailingIcon: "size-2.5", dot: "size-1.5" },
|
|
35
32
|
md: { base: "h-5 px-1.5 text-xs", leadingIcon: "size-3", trailingIcon: "size-3", dot: "size-2" },
|
|
36
33
|
lg: { base: "h-6 px-2 text-sm", leadingIcon: "size-3.5", trailingIcon: "size-3.5", dot: "size-2.5" }
|
|
37
34
|
},
|
|
35
|
+
dotOnly: { true: "", false: "" },
|
|
38
36
|
// No label - just an icon (or nothing but a dot, handled separately in
|
|
39
37
|
// Badge.vue) - reads better as a circle than a flat pill, doubling as
|
|
40
38
|
// an avatar-adjacent status/count indicator. Chip stays a pill even
|
|
@@ -45,36 +43,8 @@ export const badgeTheme = tv({
|
|
|
45
43
|
}
|
|
46
44
|
},
|
|
47
45
|
compoundVariants: [
|
|
48
|
-
|
|
49
|
-
{
|
|
50
|
-
{ color: "primary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-primary)] text-[var(--ui-primary)]" } },
|
|
51
|
-
{ color: "neutral", variant: "solid", class: { base: "bg-[var(--ui-neutral)] text-[var(--ui-neutral-foreground)]" } },
|
|
52
|
-
{ color: "neutral", variant: "soft", class: { base: "bg-[var(--ui-neutral-soft)] text-[var(--ui-text)]" } },
|
|
53
|
-
{ color: "neutral", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-border)] text-[var(--ui-text)]" } },
|
|
54
|
-
{ color: "secondary", variant: "solid", class: { base: "bg-[var(--ui-secondary)] text-[var(--ui-secondary-foreground)]" } },
|
|
55
|
-
{ color: "secondary", variant: "soft", class: { base: "bg-[var(--ui-secondary-soft)] text-[var(--ui-secondary)]" } },
|
|
56
|
-
{ color: "secondary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-secondary)] text-[var(--ui-secondary)]" } },
|
|
57
|
-
{ color: "success", variant: "solid", class: { base: "bg-[var(--ui-success)] text-[var(--ui-success-foreground)]" } },
|
|
58
|
-
{ color: "success", variant: "soft", class: { base: "bg-[var(--ui-success-soft)] text-[var(--ui-success)]" } },
|
|
59
|
-
{ color: "success", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-success)] text-[var(--ui-success)]" } },
|
|
60
|
-
{ color: "danger", variant: "solid", class: { base: "bg-[var(--ui-danger)] text-[var(--ui-danger-foreground)]" } },
|
|
61
|
-
{ color: "danger", variant: "soft", class: { base: "bg-[var(--ui-danger-soft)] text-[var(--ui-danger)]" } },
|
|
62
|
-
{ color: "danger", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-danger)] text-[var(--ui-danger)]" } },
|
|
63
|
-
{ color: "info", variant: "solid", class: { base: "bg-[var(--ui-info)] text-[var(--ui-info-foreground)]" } },
|
|
64
|
-
{ color: "info", variant: "soft", class: { base: "bg-[var(--ui-info-soft)] text-[var(--ui-info)]" } },
|
|
65
|
-
{ color: "info", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-info)] text-[var(--ui-info)]" } },
|
|
66
|
-
{ color: "warning", variant: "solid", class: { base: "bg-[var(--ui-warning)] text-[var(--ui-warning-foreground)]" } },
|
|
67
|
-
{ color: "warning", variant: "soft", class: { base: "bg-[var(--ui-warning-soft)] text-[var(--ui-warning)]" } },
|
|
68
|
-
{ color: "warning", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-warning)] text-[var(--ui-warning)]" } },
|
|
69
|
-
// The dot's own background always tracks the color's solid token,
|
|
70
|
-
// independent of `variant` - see the `dot` slot comment above.
|
|
71
|
-
{ color: "primary", class: { dot: "bg-[var(--ui-primary)]" } },
|
|
72
|
-
{ color: "neutral", class: { dot: "bg-[var(--ui-text-muted)]" } },
|
|
73
|
-
{ color: "secondary", class: { dot: "bg-[var(--ui-secondary)]" } },
|
|
74
|
-
{ color: "success", class: { dot: "bg-[var(--ui-success)]" } },
|
|
75
|
-
{ color: "danger", class: { dot: "bg-[var(--ui-danger)]" } },
|
|
76
|
-
{ color: "info", class: { dot: "bg-[var(--ui-info)]" } },
|
|
77
|
-
{ color: "warning", class: { dot: "bg-[var(--ui-warning)]" } },
|
|
46
|
+
// Inline dots follow the foreground, remaining visible on filled pills.
|
|
47
|
+
{ dotOnly: false, class: { dot: "bg-current" } },
|
|
78
48
|
// iconOnly needs an equal width/height square-that-reads-as-a-circle -
|
|
79
49
|
// same trick Button's own square variant uses: swap the size's
|
|
80
50
|
// horizontal padding for a matching width instead.
|
|
@@ -85,6 +55,7 @@ export const badgeTheme = tv({
|
|
|
85
55
|
defaultVariants: {
|
|
86
56
|
color: "neutral",
|
|
87
57
|
variant: "soft",
|
|
88
|
-
size: "md"
|
|
58
|
+
size: "md",
|
|
59
|
+
dotOnly: false
|
|
89
60
|
}
|
|
90
61
|
});
|
|
@@ -1,36 +1,14 @@
|
|
|
1
1
|
export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
icon?: import("tailwind-variants").ClassValue;
|
|
11
|
-
current?: import("tailwind-variants").ClassValue;
|
|
12
|
-
separator?: import("tailwind-variants").ClassValue;
|
|
13
|
-
separatorIcon?: import("tailwind-variants").ClassValue;
|
|
14
|
-
ellipsis?: import("tailwind-variants").ClassValue;
|
|
15
|
-
};
|
|
2
|
+
color: {
|
|
3
|
+
primary: "";
|
|
4
|
+
neutral: "";
|
|
5
|
+
secondary: "";
|
|
6
|
+
success: "";
|
|
7
|
+
danger: "";
|
|
8
|
+
info: "";
|
|
9
|
+
warning: "";
|
|
16
10
|
};
|
|
17
|
-
}
|
|
18
|
-
[x: string]: {
|
|
19
|
-
[x: string]: import("tailwind-variants").ClassValue | {
|
|
20
|
-
root?: import("tailwind-variants").ClassValue;
|
|
21
|
-
item?: import("tailwind-variants").ClassValue;
|
|
22
|
-
label?: import("tailwind-variants").ClassValue;
|
|
23
|
-
list?: import("tailwind-variants").ClassValue;
|
|
24
|
-
disabled?: import("tailwind-variants").ClassValue;
|
|
25
|
-
link?: import("tailwind-variants").ClassValue;
|
|
26
|
-
icon?: import("tailwind-variants").ClassValue;
|
|
27
|
-
current?: import("tailwind-variants").ClassValue;
|
|
28
|
-
separator?: import("tailwind-variants").ClassValue;
|
|
29
|
-
separatorIcon?: import("tailwind-variants").ClassValue;
|
|
30
|
-
ellipsis?: import("tailwind-variants").ClassValue;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
} | {}, {
|
|
11
|
+
}, {
|
|
34
12
|
root: string;
|
|
35
13
|
list: string;
|
|
36
14
|
item: string;
|
|
@@ -43,22 +21,16 @@ export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
|
|
|
43
21
|
separatorIcon: string;
|
|
44
22
|
ellipsis: string;
|
|
45
23
|
}, undefined, {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
icon?: import("tailwind-variants").ClassValue;
|
|
55
|
-
current?: import("tailwind-variants").ClassValue;
|
|
56
|
-
separator?: import("tailwind-variants").ClassValue;
|
|
57
|
-
separatorIcon?: import("tailwind-variants").ClassValue;
|
|
58
|
-
ellipsis?: import("tailwind-variants").ClassValue;
|
|
59
|
-
};
|
|
24
|
+
color: {
|
|
25
|
+
primary: "";
|
|
26
|
+
neutral: "";
|
|
27
|
+
secondary: "";
|
|
28
|
+
success: "";
|
|
29
|
+
danger: "";
|
|
30
|
+
info: "";
|
|
31
|
+
warning: "";
|
|
60
32
|
};
|
|
61
|
-
}
|
|
33
|
+
}, {
|
|
62
34
|
root: string;
|
|
63
35
|
list: string;
|
|
64
36
|
item: string;
|
|
@@ -70,7 +42,17 @@ export declare const breadcrumbTheme: import("tailwind-variants").TVReturnType<{
|
|
|
70
42
|
separator: string;
|
|
71
43
|
separatorIcon: string;
|
|
72
44
|
ellipsis: string;
|
|
73
|
-
}, import("tailwind-variants").TVReturnTypeLike<
|
|
45
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
46
|
+
color: {
|
|
47
|
+
primary: "";
|
|
48
|
+
neutral: "";
|
|
49
|
+
secondary: "";
|
|
50
|
+
success: "";
|
|
51
|
+
danger: "";
|
|
52
|
+
info: "";
|
|
53
|
+
warning: "";
|
|
54
|
+
};
|
|
55
|
+
}, {
|
|
74
56
|
root: string;
|
|
75
57
|
list: string;
|
|
76
58
|
item: string;
|
|
@@ -4,19 +4,30 @@ export const breadcrumbTheme = tv({
|
|
|
4
4
|
root: "",
|
|
5
5
|
list: "flex items-center gap-1.5 text-sm",
|
|
6
6
|
item: "flex items-center",
|
|
7
|
-
link: "flex items-center gap-1 text-[var(--
|
|
7
|
+
link: "flex items-center gap-1 text-[var(--selaras-resolved-text-muted)] transition-colors hover:text-[var(--selaras-resolved-text-default)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--_selaras-color-focus)]",
|
|
8
8
|
// The trail's last item - "you are here", visually emphasized
|
|
9
9
|
// rather than muted like the earlier, clickable steps.
|
|
10
|
-
current: "flex items-center gap-1 font-medium text-[var(--
|
|
10
|
+
current: "flex items-center gap-1 font-medium text-[var(--selaras-resolved-text-default)]",
|
|
11
11
|
// An earlier item with neither `to` nor `disabled` unset - nothing
|
|
12
12
|
// to link to, so it renders like `link` but inert.
|
|
13
|
-
disabled: "flex items-center gap-1 text-[var(--
|
|
13
|
+
disabled: "flex items-center gap-1 text-[var(--selaras-resolved-text-muted)] opacity-50",
|
|
14
14
|
icon: "size-4 shrink-0",
|
|
15
15
|
// `block` (not `inline`) so an inline-max-width set by the
|
|
16
16
|
// `truncate` prop actually applies.
|
|
17
17
|
label: "block truncate",
|
|
18
|
-
separator: "flex items-center text-[var(--
|
|
18
|
+
separator: "flex items-center text-[var(--selaras-resolved-text-muted)]",
|
|
19
19
|
separatorIcon: "size-4 shrink-0 rtl:rotate-180",
|
|
20
|
-
ellipsis: "flex items-center text-[var(--
|
|
20
|
+
ellipsis: "flex items-center text-[var(--selaras-resolved-text-muted)] transition-colors hover:text-[var(--selaras-resolved-text-default)]"
|
|
21
|
+
},
|
|
22
|
+
variants: {
|
|
23
|
+
color: {
|
|
24
|
+
primary: "",
|
|
25
|
+
neutral: "",
|
|
26
|
+
secondary: "",
|
|
27
|
+
success: "",
|
|
28
|
+
danger: "",
|
|
29
|
+
info: "",
|
|
30
|
+
warning: ""
|
|
31
|
+
}
|
|
21
32
|
}
|
|
22
33
|
});
|
|
@@ -9,11 +9,21 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
|
|
|
9
9
|
warning: "";
|
|
10
10
|
};
|
|
11
11
|
variant: {
|
|
12
|
-
solid:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
solid: {
|
|
13
|
+
base: string;
|
|
14
|
+
};
|
|
15
|
+
soft: {
|
|
16
|
+
base: string;
|
|
17
|
+
};
|
|
18
|
+
outline: {
|
|
19
|
+
base: string;
|
|
20
|
+
};
|
|
21
|
+
ghost: {
|
|
22
|
+
base: string;
|
|
23
|
+
};
|
|
24
|
+
text: {
|
|
25
|
+
base: string;
|
|
26
|
+
};
|
|
17
27
|
};
|
|
18
28
|
size: {
|
|
19
29
|
sm: {
|
|
@@ -60,11 +70,21 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
|
|
|
60
70
|
warning: "";
|
|
61
71
|
};
|
|
62
72
|
variant: {
|
|
63
|
-
solid:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
73
|
+
solid: {
|
|
74
|
+
base: string;
|
|
75
|
+
};
|
|
76
|
+
soft: {
|
|
77
|
+
base: string;
|
|
78
|
+
};
|
|
79
|
+
outline: {
|
|
80
|
+
base: string;
|
|
81
|
+
};
|
|
82
|
+
ghost: {
|
|
83
|
+
base: string;
|
|
84
|
+
};
|
|
85
|
+
text: {
|
|
86
|
+
base: string;
|
|
87
|
+
};
|
|
68
88
|
};
|
|
69
89
|
size: {
|
|
70
90
|
sm: {
|
|
@@ -111,11 +131,21 @@ export declare const buttonTheme: import("tailwind-variants").TVReturnType<{
|
|
|
111
131
|
warning: "";
|
|
112
132
|
};
|
|
113
133
|
variant: {
|
|
114
|
-
solid:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
134
|
+
solid: {
|
|
135
|
+
base: string;
|
|
136
|
+
};
|
|
137
|
+
soft: {
|
|
138
|
+
base: string;
|
|
139
|
+
};
|
|
140
|
+
outline: {
|
|
141
|
+
base: string;
|
|
142
|
+
};
|
|
143
|
+
ghost: {
|
|
144
|
+
base: string;
|
|
145
|
+
};
|
|
146
|
+
text: {
|
|
147
|
+
base: string;
|
|
148
|
+
};
|
|
119
149
|
};
|
|
120
150
|
size: {
|
|
121
151
|
sm: {
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { tv } from "tailwind-variants";
|
|
2
2
|
export const buttonTheme = tv({
|
|
3
3
|
slots: {
|
|
4
|
-
base: "inline-flex items-center justify-center gap-1.5 font-medium rounded-[var(--
|
|
4
|
+
base: "inline-flex items-center justify-center gap-1.5 font-medium rounded-[var(--selaras-resolved-radius-md)] transition-colors disabled:opacity-50 disabled:pointer-events-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--_selaras-color-focus)]",
|
|
5
5
|
leadingIcon: "shrink-0",
|
|
6
6
|
trailingIcon: "shrink-0"
|
|
7
7
|
},
|
|
8
8
|
variants: {
|
|
9
|
+
// Keep color conditions available to recipe extensions; bindings own color CSS.
|
|
9
10
|
color: {
|
|
10
11
|
primary: "",
|
|
11
12
|
neutral: "",
|
|
@@ -16,11 +17,12 @@ export const buttonTheme = tv({
|
|
|
16
17
|
warning: ""
|
|
17
18
|
},
|
|
18
19
|
variant: {
|
|
19
|
-
solid: "",
|
|
20
|
-
soft: "",
|
|
21
|
-
outline: "",
|
|
22
|
-
ghost: "",
|
|
23
|
-
|
|
20
|
+
solid: { base: "bg-[var(--_selaras-color-fill)] text-[var(--_selaras-color-on-fill)] hover:bg-[var(--_selaras-color-fill-hover)] active:bg-[var(--_selaras-color-fill-pressed)]" },
|
|
21
|
+
soft: { base: "bg-[var(--_selaras-color-subtle)] text-[var(--_selaras-color-on-subtle)] hover:bg-[var(--_selaras-color-subtle-hover)] active:bg-[var(--_selaras-color-subtle-pressed)]" },
|
|
22
|
+
outline: { base: "ring-1 ring-inset ring-[var(--_selaras-color-border)] text-[var(--_selaras-color-text)] hover:bg-[var(--_selaras-color-subtle-hover)] active:bg-[var(--_selaras-color-subtle-pressed)]" },
|
|
23
|
+
ghost: { base: "text-[var(--_selaras-color-text)] hover:bg-[var(--_selaras-color-subtle-hover)] active:bg-[var(--_selaras-color-subtle-pressed)]" },
|
|
24
|
+
// Text actions never paint a background, including their interaction states.
|
|
25
|
+
text: { base: "text-[var(--_selaras-color-text)] hover:text-[var(--_selaras-color-text-hover)] active:text-[var(--_selaras-color-text-pressed)]" }
|
|
24
26
|
},
|
|
25
27
|
size: {
|
|
26
28
|
sm: { base: "h-8 px-3 text-sm", leadingIcon: "size-4", trailingIcon: "size-4" },
|
|
@@ -31,65 +33,16 @@ export const buttonTheme = tv({
|
|
|
31
33
|
true: { base: "w-full" }
|
|
32
34
|
},
|
|
33
35
|
raised: {
|
|
34
|
-
true: { base: "shadow-[var(--
|
|
36
|
+
true: { base: "shadow-[var(--selaras-resolved-shadow-md)]" }
|
|
35
37
|
},
|
|
36
38
|
square: {
|
|
37
39
|
true: {}
|
|
38
40
|
}
|
|
39
41
|
},
|
|
40
42
|
compoundVariants: [
|
|
41
|
-
// Icon-only: swap the size's text-oriented horizontal padding for an
|
|
42
|
-
// equal-width square matching its own height.
|
|
43
43
|
{ size: "sm", square: true, class: { base: "w-8 px-0" } },
|
|
44
44
|
{ size: "md", square: true, class: { base: "w-10 px-0" } },
|
|
45
|
-
{ size: "lg", square: true, class: { base: "w-11 px-0" } }
|
|
46
|
-
// :active (mouse-down) always goes one step further than :hover in the
|
|
47
|
-
// same direction - solid presses to the -active (700) token, soft/
|
|
48
|
-
// outline/ghost (which have no visible bg by default, or a pale -soft
|
|
49
|
-
// one on hover) press to a stronger tint of the role's own main color
|
|
50
|
-
// rather than a new token. Tailwind's default variant order puts
|
|
51
|
-
// active after hover, so :active wins when both apply (mouse down
|
|
52
|
-
// while hovering) - no extra specificity needed.
|
|
53
|
-
{ color: "primary", variant: "solid", class: { base: "bg-[var(--ui-primary)] text-[var(--ui-primary-foreground)] hover:bg-[var(--ui-primary-hover)] active:bg-[var(--ui-primary-active)]" } },
|
|
54
|
-
{ color: "primary", variant: "soft", class: { base: "bg-[var(--ui-primary-soft)] text-[var(--ui-primary)] hover:bg-[var(--ui-primary-soft)]/70 active:bg-[var(--ui-primary)]/20" } },
|
|
55
|
-
{ color: "primary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-primary)] text-[var(--ui-primary)] hover:bg-[var(--ui-primary-soft)] active:bg-[var(--ui-primary)]/10" } },
|
|
56
|
-
{ color: "primary", variant: "ghost", class: { base: "text-[var(--ui-primary)] hover:bg-[var(--ui-primary-soft)] active:bg-[var(--ui-primary)]/10" } },
|
|
57
|
-
{ color: "neutral", variant: "solid", class: { base: "bg-[var(--ui-neutral)] text-[var(--ui-neutral-foreground)] hover:bg-[var(--ui-neutral-hover)] active:bg-[var(--ui-neutral-active)]" } },
|
|
58
|
-
{ color: "neutral", variant: "soft", class: { base: "bg-[var(--ui-neutral-soft)] text-[var(--ui-text)] hover:bg-[var(--ui-neutral-soft)]/70 active:bg-[var(--ui-neutral)]/20" } },
|
|
59
|
-
{ color: "neutral", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-border)] text-[var(--ui-text)] hover:bg-[var(--ui-neutral-soft)] active:bg-[var(--ui-neutral)]/10" } },
|
|
60
|
-
{ color: "neutral", variant: "ghost", class: { base: "text-[var(--ui-text)] hover:bg-[var(--ui-neutral-soft)] active:bg-[var(--ui-neutral)]/10" } },
|
|
61
|
-
{ color: "secondary", variant: "solid", class: { base: "bg-[var(--ui-secondary)] text-[var(--ui-secondary-foreground)] hover:bg-[var(--ui-secondary-hover)] active:bg-[var(--ui-secondary-active)]" } },
|
|
62
|
-
{ color: "secondary", variant: "soft", class: { base: "bg-[var(--ui-secondary-soft)] text-[var(--ui-secondary)] hover:bg-[var(--ui-secondary-soft)]/70 active:bg-[var(--ui-secondary)]/20" } },
|
|
63
|
-
{ color: "secondary", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-secondary)] text-[var(--ui-secondary)] hover:bg-[var(--ui-secondary-soft)] active:bg-[var(--ui-secondary)]/10" } },
|
|
64
|
-
{ color: "secondary", variant: "ghost", class: { base: "text-[var(--ui-secondary)] hover:bg-[var(--ui-secondary-soft)] active:bg-[var(--ui-secondary)]/10" } },
|
|
65
|
-
{ color: "success", variant: "solid", class: { base: "bg-[var(--ui-success)] text-[var(--ui-success-foreground)] hover:bg-[var(--ui-success-hover)] active:bg-[var(--ui-success-active)]" } },
|
|
66
|
-
{ color: "success", variant: "soft", class: { base: "bg-[var(--ui-success-soft)] text-[var(--ui-success)] hover:bg-[var(--ui-success-soft)]/70 active:bg-[var(--ui-success)]/20" } },
|
|
67
|
-
{ color: "success", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-success)] text-[var(--ui-success)] hover:bg-[var(--ui-success-soft)] active:bg-[var(--ui-success)]/10" } },
|
|
68
|
-
{ color: "success", variant: "ghost", class: { base: "text-[var(--ui-success)] hover:bg-[var(--ui-success-soft)] active:bg-[var(--ui-success)]/10" } },
|
|
69
|
-
{ color: "danger", variant: "solid", class: { base: "bg-[var(--ui-danger)] text-[var(--ui-danger-foreground)] hover:bg-[var(--ui-danger-hover)] active:bg-[var(--ui-danger-active)]" } },
|
|
70
|
-
{ color: "danger", variant: "soft", class: { base: "bg-[var(--ui-danger-soft)] text-[var(--ui-danger)] hover:bg-[var(--ui-danger-soft)]/70 active:bg-[var(--ui-danger)]/20" } },
|
|
71
|
-
{ color: "danger", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-danger)] text-[var(--ui-danger)] hover:bg-[var(--ui-danger-soft)] active:bg-[var(--ui-danger)]/10" } },
|
|
72
|
-
{ color: "danger", variant: "ghost", class: { base: "text-[var(--ui-danger)] hover:bg-[var(--ui-danger-soft)] active:bg-[var(--ui-danger)]/10" } },
|
|
73
|
-
{ color: "info", variant: "solid", class: { base: "bg-[var(--ui-info)] text-[var(--ui-info-foreground)] hover:bg-[var(--ui-info-hover)] active:bg-[var(--ui-info-active)]" } },
|
|
74
|
-
{ color: "info", variant: "soft", class: { base: "bg-[var(--ui-info-soft)] text-[var(--ui-info)] hover:bg-[var(--ui-info-soft)]/70 active:bg-[var(--ui-info)]/20" } },
|
|
75
|
-
{ color: "info", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-info)] text-[var(--ui-info)] hover:bg-[var(--ui-info-soft)] active:bg-[var(--ui-info)]/10" } },
|
|
76
|
-
{ color: "info", variant: "ghost", class: { base: "text-[var(--ui-info)] hover:bg-[var(--ui-info-soft)] active:bg-[var(--ui-info)]/10" } },
|
|
77
|
-
{ color: "warning", variant: "solid", class: { base: "bg-[var(--ui-warning)] text-[var(--ui-warning-foreground)] hover:bg-[var(--ui-warning-hover)] active:bg-[var(--ui-warning-active)]" } },
|
|
78
|
-
{ color: "warning", variant: "soft", class: { base: "bg-[var(--ui-warning-soft)] text-[var(--ui-warning)] hover:bg-[var(--ui-warning-soft)]/70 active:bg-[var(--ui-warning)]/20" } },
|
|
79
|
-
{ color: "warning", variant: "outline", class: { base: "ring-1 ring-inset ring-[var(--ui-warning)] text-[var(--ui-warning)] hover:bg-[var(--ui-warning-soft)] active:bg-[var(--ui-warning)]/10" } },
|
|
80
|
-
{ color: "warning", variant: "ghost", class: { base: "text-[var(--ui-warning)] hover:bg-[var(--ui-warning-soft)] active:bg-[var(--ui-warning)]/10" } },
|
|
81
|
-
// `text`: for an icon button sitting tight against another control's own
|
|
82
|
-
// border (a field's clear button, a stepper) - `ghost`'s hover background
|
|
83
|
-
// fill would visually compete with that adjacent border, so this variant
|
|
84
|
-
// never paints a background at any state and only shifts the text/icon
|
|
85
|
-
// color on hover.
|
|
86
|
-
{ color: "primary", variant: "text", class: { base: "text-[var(--ui-primary)] hover:text-[var(--ui-primary-hover)]" } },
|
|
87
|
-
{ color: "neutral", variant: "text", class: { base: "text-[var(--ui-text-muted)] hover:text-[var(--ui-text)]" } },
|
|
88
|
-
{ color: "secondary", variant: "text", class: { base: "text-[var(--ui-secondary)] hover:text-[var(--ui-secondary-hover)]" } },
|
|
89
|
-
{ color: "success", variant: "text", class: { base: "text-[var(--ui-success)] hover:text-[var(--ui-success-hover)]" } },
|
|
90
|
-
{ color: "danger", variant: "text", class: { base: "text-[var(--ui-danger)] hover:text-[var(--ui-danger-hover)]" } },
|
|
91
|
-
{ color: "info", variant: "text", class: { base: "text-[var(--ui-info)] hover:text-[var(--ui-info-hover)]" } },
|
|
92
|
-
{ color: "warning", variant: "text", class: { base: "text-[var(--ui-warning)] hover:text-[var(--ui-warning-hover)]" } }
|
|
45
|
+
{ size: "lg", square: true, class: { base: "w-11 px-0" } }
|
|
93
46
|
],
|
|
94
47
|
defaultVariants: {
|
|
95
48
|
color: "primary",
|
|
@@ -4,17 +4,17 @@ export const calloutTheme = tv({
|
|
|
4
4
|
// Border-only accent (not a filled background like Alert) - a callout
|
|
5
5
|
// sits inline in a long stretch of prose, so it stays closer to a
|
|
6
6
|
// styled blockquote than a standalone UI element.
|
|
7
|
-
root: "flex gap-3 rounded-[var(--
|
|
7
|
+
root: "flex gap-3 rounded-[var(--selaras-resolved-radius-md)] border-s-4 bg-[var(--selaras-resolved-surface-elevated)] p-4",
|
|
8
8
|
icon: "mt-0.5 size-5 shrink-0",
|
|
9
|
-
content: "min-w-0 flex-1 text-sm text-[var(--
|
|
10
|
-
title: "font-medium text-[var(--
|
|
9
|
+
content: "min-w-0 flex-1 text-sm text-[var(--selaras-resolved-text-muted)] [&>:first-child]:mt-0 [&>:last-child]:mb-0",
|
|
10
|
+
title: "font-medium text-[var(--selaras-resolved-text-default)]"
|
|
11
11
|
},
|
|
12
12
|
variants: {
|
|
13
13
|
type: {
|
|
14
|
-
note: { root: "border-s-[var(--
|
|
15
|
-
tip: { root: "border-s-[var(--
|
|
16
|
-
warning: { root: "border-s-[var(--
|
|
17
|
-
danger: { root: "border-s-[var(--
|
|
14
|
+
note: { root: "border-s-[var(--selaras-resolved-color-info-border)]", icon: "text-[var(--selaras-resolved-color-info-text)]" },
|
|
15
|
+
tip: { root: "border-s-[var(--selaras-resolved-color-success-border)]", icon: "text-[var(--selaras-resolved-color-success-text)]" },
|
|
16
|
+
warning: { root: "border-s-[var(--selaras-resolved-color-warning-border)]", icon: "text-[var(--selaras-resolved-color-warning-text)]" },
|
|
17
|
+
danger: { root: "border-s-[var(--selaras-resolved-color-danger-border)]", icon: "text-[var(--selaras-resolved-color-danger-text)]" }
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
defaultVariants: {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { tv } from "tailwind-variants";
|
|
2
2
|
export const cardTheme = tv({
|
|
3
3
|
slots: {
|
|
4
|
-
root: "rounded-[var(--
|
|
5
|
-
header: "p-4 border-b border-[var(--
|
|
4
|
+
root: "rounded-[var(--selaras-resolved-radius-md)] overflow-hidden",
|
|
5
|
+
header: "p-4 border-b border-[var(--selaras-resolved-border-default)]",
|
|
6
6
|
body: "p-4",
|
|
7
|
-
footer: "p-4 border-t border-[var(--
|
|
7
|
+
footer: "p-4 border-t border-[var(--selaras-resolved-border-default)]"
|
|
8
8
|
},
|
|
9
9
|
variants: {
|
|
10
10
|
variant: {
|
|
11
|
-
outline: { root: "bg-[var(--
|
|
12
|
-
solid: { root: "bg-[var(--
|
|
13
|
-
soft: { root: "bg-[var(--
|
|
11
|
+
outline: { root: "bg-[var(--selaras-resolved-surface-default)] ring-1 ring-[var(--selaras-resolved-border-default)]" },
|
|
12
|
+
solid: { root: "bg-[var(--selaras-resolved-surface-elevated)] shadow-[var(--selaras-resolved-shadow-md)]" },
|
|
13
|
+
soft: { root: "bg-[var(--selaras-resolved-surface-elevated)]" },
|
|
14
14
|
// Same elevated background as soft, plus outline's own border - a
|
|
15
15
|
// middle ground between the two rather than a combination of their
|
|
16
16
|
// literal classes, so it stays its own single, ordinary variant.
|
|
17
|
-
subtle: { root: "bg-[var(--
|
|
17
|
+
subtle: { root: "bg-[var(--selaras-resolved-surface-elevated)] ring-1 ring-[var(--selaras-resolved-border-default)]" }
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
20
|
defaultVariants: {
|