@selvajs/ui 6.6.0-beta.9 → 7.0.1-beta.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 +0 -3
- package/dist/components/ErrorScreen.svelte +1 -1
- package/dist/components/compute/AppLayout.svelte +230 -85
- package/dist/components/compute/AppLayout.svelte.d.ts +14 -2
- package/dist/components/compute/CollapsedPanelStrip.svelte +4 -2
- package/dist/components/compute/ComputeApp.svelte +6 -2
- package/dist/components/compute/ComputeApp.svelte.d.ts +1 -1
- package/dist/components/compute/ComputeMessagesDialog.svelte +3 -3
- package/dist/components/compute/ParameterPresetManager.svelte +1 -1
- package/dist/components/compute/SolveMessages.svelte +79 -88
- package/dist/components/compute/SolveMessages.svelte.d.ts +5 -0
- package/dist/components/layout/AppShell.svelte +2 -2
- package/dist/components/layout/FooterItemRenderer.svelte +2 -2
- package/dist/components/layout/FooterItemRenderer.svelte.d.ts +1 -1
- package/dist/components/layout/PageContent.svelte +3 -2
- package/dist/components/layout/PageFooter.svelte +9 -6
- package/dist/components/layout/PageHeader.svelte +3 -3
- package/dist/components/layout/SideNav.svelte +3 -3
- package/dist/components/layout/SubNav.svelte +2 -2
- package/dist/components/preview/ChartOutput.svelte +141 -50
- package/dist/components/preview/Group.svelte +9 -9
- package/dist/components/preview/HelpButton.svelte +1 -1
- package/dist/components/preview/ImageOutput.svelte +13 -10
- package/dist/components/preview/InputControl.svelte +13 -12
- package/dist/components/preview/OutputDisplay.svelte +26 -17
- package/dist/components/preview/TabBar.svelte +8 -6
- package/dist/components/preview/TabBar.svelte.d.ts +2 -0
- package/dist/components/preview/TabContent.svelte +8 -8
- package/dist/components/preview/TabLayout.svelte +6 -7
- package/dist/components/preview/inputs/CheckboxInput.svelte +1 -1
- package/dist/components/preview/inputs/ChecklistInput.svelte +5 -5
- package/dist/components/preview/inputs/ColorInput.svelte +356 -14
- package/dist/components/preview/inputs/ColorInput.svelte.d.ts +1 -0
- package/dist/components/preview/inputs/DropdownInput.svelte +3 -3
- package/dist/components/preview/inputs/FileInput.svelte +17 -12
- package/dist/components/preview/inputs/GeometryInput.svelte +4 -4
- package/dist/components/preview/inputs/GeometryInput.svelte.d.ts +1 -1
- package/dist/components/preview/inputs/NumberInput.svelte +8 -8
- package/dist/components/preview/inputs/OptionGlyph.svelte +1 -1
- package/dist/components/preview/inputs/OptionGlyph.svelte.d.ts +1 -1
- package/dist/components/preview/inputs/SegmentedInput.svelte +3 -2
- package/dist/components/preview/inputs/TextInput.svelte +5 -5
- package/dist/components/preview/inputs/TileInput.svelte +8 -5
- package/dist/components/primitives/CalculateButton.svelte +10 -4
- package/dist/components/primitives/Callout.svelte +8 -6
- package/dist/components/primitives/Callout.svelte.d.ts +4 -4
- package/dist/components/primitives/DataTable.svelte +1 -1
- package/dist/components/primitives/FilterableDropdown.svelte +13 -1
- package/dist/components/primitives/FilterableDropdown.svelte.d.ts +5 -0
- package/dist/components/primitives/ImageUploadField.svelte +1 -1
- package/dist/components/primitives/SolvingIndicator.svelte +242 -41
- package/dist/components/primitives/SolvingIndicator.svelte.d.ts +13 -5
- package/dist/components/primitives/alert-dialog/alert-dialog-content.svelte +1 -1
- package/dist/components/primitives/badge/badge.svelte +2 -2
- package/dist/components/primitives/badge/badge.svelte.d.ts +6 -6
- package/dist/components/primitives/button/button.svelte +7 -8
- package/dist/components/primitives/button/button.svelte.d.ts +19 -19
- package/dist/components/primitives/card/card.svelte +1 -1
- package/dist/components/primitives/card/card.svelte.d.ts +1 -1
- package/dist/components/primitives/checkbox/checkbox.svelte +1 -1
- package/dist/components/primitives/command/command-input.svelte +1 -1
- package/dist/components/primitives/command/command-item.svelte +1 -1
- package/dist/components/primitives/command/command-link-item.svelte +1 -1
- package/dist/components/primitives/command/command.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-checkbox-item.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-content.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-item.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-radio-item.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-sub-content.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-sub-trigger.svelte +1 -1
- package/dist/components/primitives/dialog/dialog-content.svelte +3 -3
- package/dist/components/primitives/drawer/Drawer.svelte +1 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte +31 -11
- package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +2 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-content.svelte +5 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-content.svelte.d.ts +2 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-item.svelte +4 -2
- package/dist/components/primitives/dropdown-menu/dropdown-menu-item.svelte.d.ts +2 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte +1 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte +1 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte +1 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte +1 -1
- package/dist/components/primitives/index.d.ts +1 -1
- package/dist/components/primitives/index.js +1 -1
- package/dist/components/primitives/input/input.svelte +2 -2
- package/dist/components/primitives/input-group/input-group-input.svelte.d.ts +1 -1
- package/dist/components/primitives/input-group/input-group.svelte +1 -1
- package/dist/components/primitives/mode-toggle/mode-toggle.svelte +2 -2
- package/dist/components/primitives/popover/popover-content.svelte +1 -1
- package/dist/components/primitives/resizable/resizable-handle.svelte +2 -2
- package/dist/components/primitives/search/search.svelte +1 -1
- package/dist/components/primitives/select/select-content.svelte +1 -1
- package/dist/components/primitives/select/select-item.svelte +1 -1
- package/dist/components/primitives/select/select-trigger.svelte +1 -1
- package/dist/components/primitives/slider/slider.svelte +1 -1
- package/dist/components/primitives/switch/switch.svelte +1 -1
- package/dist/components/primitives/tabs/tabs-list.svelte +2 -2
- package/dist/components/primitives/tabs/tabs-list.svelte.d.ts +6 -6
- package/dist/components/primitives/tabs/tabs-trigger.svelte +2 -2
- package/dist/components/primitives/tabs/tabs-trigger.svelte.d.ts +6 -6
- package/dist/components/primitives/textarea/textarea.svelte +1 -1
- package/dist/components/primitives/toggle/toggle.svelte +8 -2
- package/dist/components/primitives/toggle/toggle.svelte.d.ts +10 -4
- package/dist/components/primitives/toggle-group/toggle-group-item.svelte +1 -1
- package/dist/components/primitives/toggle-group/toggle-group.svelte +1 -1
- package/dist/components/primitives/tooltip/index.d.ts +6 -0
- package/dist/components/primitives/tooltip/index.js +8 -0
- package/dist/components/primitives/tooltip/tooltip-content.svelte +34 -0
- package/dist/components/primitives/tooltip/tooltip-content.svelte.d.ts +10 -0
- package/dist/components/primitives/tooltip/tooltip-portal.svelte +7 -0
- package/dist/components/primitives/tooltip/tooltip-portal.svelte.d.ts +4 -0
- package/dist/components/primitives/tooltip/tooltip-provider.svelte +7 -0
- package/dist/components/primitives/tooltip/tooltip-provider.svelte.d.ts +4 -0
- package/dist/components/primitives/tooltip/tooltip-trigger.svelte +7 -0
- package/dist/components/primitives/tooltip/tooltip-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/tooltip/tooltip.svelte +7 -0
- package/dist/components/primitives/tooltip/tooltip.svelte.d.ts +4 -0
- package/dist/components/viewer/MeshMetadataPanel.svelte +2 -2
- package/dist/components/viewer/SceneManager.svelte +32 -21
- package/dist/components/viewer/SceneManager.svelte.d.ts +3 -1
- package/dist/components/viewer/Viewer.svelte +128 -178
- package/dist/components/viewer/Viewer.svelte.d.ts +7 -2
- package/dist/components/viewer/ViewerDock.svelte +452 -0
- package/dist/components/viewer/ViewerDock.svelte.d.ts +42 -0
- package/dist/composables/useFooterItem.svelte.d.ts +1 -1
- package/dist/composables/useFooterItem.svelte.js +1 -1
- package/dist/compute/liveProgress.svelte.d.ts +16 -0
- package/dist/compute/liveProgress.svelte.js +90 -0
- package/dist/compute/solving.svelte.d.ts +7 -9
- package/dist/compute/solving.svelte.js +56 -48
- package/dist/constants.d.ts +6 -8
- package/dist/constants.js +8 -11
- package/dist/contexts/hostContext.svelte.d.ts +1 -1
- package/dist/features/chart/plotly-compat.d.ts +15 -0
- package/dist/features/chart/plotly-compat.js +124 -0
- package/dist/i18n/messages.d.ts +17 -0
- package/dist/i18n/messages.js +26 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/public.d.ts +1 -0
- package/dist/public.js +1 -0
- package/dist/schema/visibility-rules.d.ts +7 -1
- package/dist/schema/visibility-rules.js +17 -0
- package/dist/styles/base.css +100 -86
- package/dist/utils/color-space.d.ts +21 -0
- package/dist/utils/color-space.js +90 -0
- package/package.json +31 -23
- package/src/lib/components/ErrorScreen.svelte +1 -1
- package/src/lib/components/compute/AppLayout.svelte +231 -86
- package/src/lib/components/compute/CollapsedPanelStrip.svelte +4 -2
- package/src/lib/components/compute/ComputeApp.svelte +6 -2
- package/src/lib/components/compute/ComputeMessagesDialog.svelte +4 -4
- package/src/lib/components/compute/ParameterPresetManager.svelte +1 -1
- package/src/lib/components/compute/SolveMessages.svelte +81 -90
- package/src/lib/components/layout/AppShell.svelte +2 -2
- package/src/lib/components/layout/FooterItemRenderer.svelte +2 -2
- package/src/lib/components/layout/PageContent.svelte +3 -2
- package/src/lib/components/layout/PageFooter.svelte +9 -6
- package/src/lib/components/layout/PageHeader.svelte +3 -3
- package/src/lib/components/layout/SideNav.svelte +4 -4
- package/src/lib/components/layout/SubNav.svelte +2 -2
- package/src/lib/components/preview/ChartOutput.svelte +141 -50
- package/src/lib/components/preview/Group.svelte +9 -9
- package/src/lib/components/preview/HelpButton.svelte +1 -1
- package/src/lib/components/preview/ImageOutput.svelte +13 -10
- package/src/lib/components/preview/InputControl.svelte +13 -12
- package/src/lib/components/preview/OutputDisplay.svelte +26 -17
- package/src/lib/components/preview/TabBar.svelte +8 -6
- package/src/lib/components/preview/TabContent.svelte +8 -8
- package/src/lib/components/preview/TabLayout.svelte +6 -7
- package/src/lib/components/preview/inputs/CheckboxInput.svelte +1 -1
- package/src/lib/components/preview/inputs/ChecklistInput.svelte +5 -5
- package/src/lib/components/preview/inputs/ColorInput.svelte +356 -14
- package/src/lib/components/preview/inputs/DropdownInput.svelte +3 -3
- package/src/lib/components/preview/inputs/FileInput.svelte +17 -12
- package/src/lib/components/preview/inputs/GeometryInput.svelte +4 -4
- package/src/lib/components/preview/inputs/NumberInput.svelte +8 -8
- package/src/lib/components/preview/inputs/OptionGlyph.svelte +2 -2
- package/src/lib/components/preview/inputs/SegmentedInput.svelte +3 -2
- package/src/lib/components/preview/inputs/TextInput.svelte +5 -5
- package/src/lib/components/preview/inputs/TileInput.svelte +8 -5
- package/src/lib/components/primitives/CalculateButton.svelte +10 -4
- package/src/lib/components/primitives/Callout.svelte +9 -7
- package/src/lib/components/primitives/DataTable.svelte +1 -1
- package/src/lib/components/primitives/FilterableDropdown.svelte +14 -2
- package/src/lib/components/primitives/ImageUploadField.svelte +1 -1
- package/src/lib/components/primitives/IssueList.svelte +1 -1
- package/src/lib/components/primitives/SeverityIcon.svelte +1 -1
- package/src/lib/components/primitives/SolvingIndicator.svelte +242 -41
- package/src/lib/components/primitives/StateDisplay.svelte +1 -1
- package/src/lib/components/primitives/alert-dialog/alert-dialog-action.svelte +2 -2
- package/src/lib/components/primitives/alert-dialog/alert-dialog-cancel.svelte +2 -2
- package/src/lib/components/primitives/alert-dialog/alert-dialog-content.svelte +2 -2
- package/src/lib/components/primitives/alert-dialog/alert-dialog-description.svelte +1 -1
- package/src/lib/components/primitives/alert-dialog/alert-dialog-footer.svelte +1 -1
- package/src/lib/components/primitives/alert-dialog/alert-dialog-header.svelte +1 -1
- package/src/lib/components/primitives/alert-dialog/alert-dialog-overlay.svelte +1 -1
- package/src/lib/components/primitives/alert-dialog/alert-dialog-title.svelte +1 -1
- package/src/lib/components/primitives/badge/badge.svelte +3 -3
- package/src/lib/components/primitives/button/button.svelte +7 -8
- package/src/lib/components/primitives/button-group/button-group-separator.svelte +2 -2
- package/src/lib/components/primitives/button-group/button-group-text.svelte +1 -1
- package/src/lib/components/primitives/button-group/button-group.svelte +1 -1
- package/src/lib/components/primitives/card/card-content.svelte +1 -1
- package/src/lib/components/primitives/card/card-description.svelte +1 -1
- package/src/lib/components/primitives/card/card-footer.svelte +1 -1
- package/src/lib/components/primitives/card/card-header.svelte +1 -1
- package/src/lib/components/primitives/card/card-title.svelte +1 -1
- package/src/lib/components/primitives/card/card.svelte +2 -2
- package/src/lib/components/primitives/checkbox/checkbox.svelte +2 -2
- package/src/lib/components/primitives/command/command-dialog.svelte +2 -2
- package/src/lib/components/primitives/command/command-empty.svelte +1 -1
- package/src/lib/components/primitives/command/command-group.svelte +1 -1
- package/src/lib/components/primitives/command/command-input.svelte +3 -3
- package/src/lib/components/primitives/command/command-item.svelte +2 -2
- package/src/lib/components/primitives/command/command-link-item.svelte +2 -2
- package/src/lib/components/primitives/command/command-list.svelte +1 -1
- package/src/lib/components/primitives/command/command-separator.svelte +1 -1
- package/src/lib/components/primitives/command/command-shortcut.svelte +1 -1
- package/src/lib/components/primitives/command/command.svelte +2 -2
- package/src/lib/components/primitives/context-menu/context-menu-checkbox-item.svelte +2 -2
- package/src/lib/components/primitives/context-menu/context-menu-content.svelte +2 -2
- package/src/lib/components/primitives/context-menu/context-menu-group-heading.svelte +1 -1
- package/src/lib/components/primitives/context-menu/context-menu-item.svelte +2 -2
- package/src/lib/components/primitives/context-menu/context-menu-label.svelte +1 -1
- package/src/lib/components/primitives/context-menu/context-menu-radio-item.svelte +2 -2
- package/src/lib/components/primitives/context-menu/context-menu-separator.svelte +1 -1
- package/src/lib/components/primitives/context-menu/context-menu-shortcut.svelte +1 -1
- package/src/lib/components/primitives/context-menu/context-menu-sub-content.svelte +2 -2
- package/src/lib/components/primitives/context-menu/context-menu-sub-trigger.svelte +2 -2
- package/src/lib/components/primitives/dialog/dialog-content.svelte +4 -4
- package/src/lib/components/primitives/dialog/dialog-description.svelte +1 -1
- package/src/lib/components/primitives/dialog/dialog-footer.svelte +1 -1
- package/src/lib/components/primitives/dialog/dialog-header.svelte +1 -1
- package/src/lib/components/primitives/dialog/dialog-overlay.svelte +1 -1
- package/src/lib/components/primitives/dialog/dialog-title.svelte +1 -1
- package/src/lib/components/primitives/drawer/Drawer.svelte +1 -1
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte +32 -12
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-content.svelte +6 -2
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte +1 -1
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-item.svelte +5 -3
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-label.svelte +1 -1
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte +2 -2
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-separator.svelte +1 -1
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte +2 -2
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte +2 -2
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
- package/src/lib/components/primitives/empty/empty-content.svelte +1 -1
- package/src/lib/components/primitives/empty/empty-description.svelte +1 -1
- package/src/lib/components/primitives/empty/empty-header.svelte +1 -1
- package/src/lib/components/primitives/empty/empty-media.svelte +1 -1
- package/src/lib/components/primitives/empty/empty-title.svelte +1 -1
- package/src/lib/components/primitives/empty/empty.svelte +1 -1
- package/src/lib/components/primitives/field/field-content.svelte +1 -1
- package/src/lib/components/primitives/field/field-description.svelte +1 -1
- package/src/lib/components/primitives/field/field-error.svelte +1 -1
- package/src/lib/components/primitives/field/field-group.svelte +1 -1
- package/src/lib/components/primitives/field/field-label.svelte +2 -2
- package/src/lib/components/primitives/field/field-legend.svelte +1 -1
- package/src/lib/components/primitives/field/field-separator.svelte +2 -2
- package/src/lib/components/primitives/field/field-set.svelte +1 -1
- package/src/lib/components/primitives/field/field-title.svelte +1 -1
- package/src/lib/components/primitives/field/field.svelte +1 -1
- package/src/lib/components/primitives/index.ts +1 -1
- package/src/lib/components/primitives/input/input.svelte +3 -3
- package/src/lib/components/primitives/input-group/input-group-addon.svelte +1 -1
- package/src/lib/components/primitives/input-group/input-group-button.svelte +2 -2
- package/src/lib/components/primitives/input-group/input-group-input.svelte +2 -2
- package/src/lib/components/primitives/input-group/input-group-text.svelte +1 -1
- package/src/lib/components/primitives/input-group/input-group-textarea.svelte +2 -2
- package/src/lib/components/primitives/input-group/input-group.svelte +2 -2
- package/src/lib/components/primitives/label/label.svelte +1 -1
- package/src/lib/components/primitives/mode-toggle/mode-toggle.svelte +2 -2
- package/src/lib/components/primitives/popover/popover-content.svelte +2 -2
- package/src/lib/components/primitives/popover/popover-description.svelte +1 -1
- package/src/lib/components/primitives/popover/popover-header.svelte +1 -1
- package/src/lib/components/primitives/popover/popover-title.svelte +1 -1
- package/src/lib/components/primitives/popover/popover-trigger.svelte +1 -1
- package/src/lib/components/primitives/resizable/resizable-handle.svelte +3 -3
- package/src/lib/components/primitives/resizable/resizable-pane-group.svelte +1 -1
- package/src/lib/components/primitives/scroll-area/scroll-area-scrollbar.svelte +1 -1
- package/src/lib/components/primitives/scroll-area/scroll-area.svelte +1 -1
- package/src/lib/components/primitives/search/search.svelte +2 -2
- package/src/lib/components/primitives/select/select-content.svelte +2 -2
- package/src/lib/components/primitives/select/select-group-heading.svelte +1 -1
- package/src/lib/components/primitives/select/select-item.svelte +2 -2
- package/src/lib/components/primitives/select/select-label.svelte +1 -1
- package/src/lib/components/primitives/select/select-scroll-down-button.svelte +1 -1
- package/src/lib/components/primitives/select/select-scroll-up-button.svelte +1 -1
- package/src/lib/components/primitives/select/select-separator.svelte +2 -2
- package/src/lib/components/primitives/select/select-trigger.svelte +2 -2
- package/src/lib/components/primitives/separator/separator.svelte +1 -1
- package/src/lib/components/primitives/slider/slider.svelte +2 -2
- package/src/lib/components/primitives/spinner/spinner.svelte +1 -1
- package/src/lib/components/primitives/switch/switch.svelte +2 -2
- package/src/lib/components/primitives/tabs/tabs-content.svelte +1 -1
- package/src/lib/components/primitives/tabs/tabs-list.svelte +3 -3
- package/src/lib/components/primitives/tabs/tabs-trigger.svelte +3 -3
- package/src/lib/components/primitives/tabs/tabs.svelte +1 -1
- package/src/lib/components/primitives/textarea/textarea.svelte +2 -2
- package/src/lib/components/primitives/toggle/toggle.svelte +9 -3
- package/src/lib/components/primitives/toggle-group/toggle-group-item.svelte +3 -3
- package/src/lib/components/primitives/toggle-group/toggle-group.svelte +3 -3
- package/src/lib/components/primitives/tooltip/index.ts +19 -0
- package/src/lib/components/primitives/tooltip/tooltip-content.svelte +34 -0
- package/src/lib/components/primitives/tooltip/tooltip-portal.svelte +7 -0
- package/src/lib/components/primitives/tooltip/tooltip-provider.svelte +7 -0
- package/src/lib/components/primitives/tooltip/tooltip-trigger.svelte +7 -0
- package/src/lib/components/primitives/tooltip/tooltip.svelte +7 -0
- package/src/lib/components/viewer/MeshMetadataPanel.svelte +2 -2
- package/src/lib/components/viewer/SceneManager.svelte +32 -21
- package/src/lib/components/viewer/Viewer.svelte +129 -179
- package/src/lib/components/viewer/ViewerDock.svelte +452 -0
- package/src/lib/composables/useFooterItem.svelte.ts +1 -1
- package/src/lib/compute/liveProgress.svelte.ts +103 -0
- package/src/lib/compute/solving.svelte.ts +56 -55
- package/src/lib/constants.ts +8 -11
- package/src/lib/contexts/hostContext.svelte.ts +1 -1
- package/src/lib/features/chart/plotly-compat.ts +141 -0
- package/src/lib/i18n/messages.ts +43 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/public.ts +1 -0
- package/src/lib/schema/visibility-rules.ts +27 -1
- package/src/lib/styles/base.css +100 -86
- package/src/lib/utils/color-space.ts +107 -0
- package/dist/components/primitives/theme-switcher/ThemeSwitcher.svelte +0 -39
- package/dist/components/primitives/theme-switcher/ThemeSwitcher.svelte.d.ts +0 -3
- package/dist/components/primitives/theme-switcher/index.d.ts +0 -1
- package/dist/components/primitives/theme-switcher/index.js +0 -1
- package/dist/styles/themes/cyberpunk.css +0 -98
- package/dist/styles/themes/neutral.css +0 -72
- package/dist/styles/themes/ocean.css +0 -75
- package/dist/styles/themes/selva.css +0 -105
- package/dist/theme/themeStore.svelte.d.ts +0 -12
- package/dist/theme/themeStore.svelte.js +0 -40
- package/dist/theme/themes.d.ts +0 -5
- package/dist/theme/themes.js +0 -13
- package/src/lib/components/primitives/theme-switcher/ThemeSwitcher.svelte +0 -39
- package/src/lib/components/primitives/theme-switcher/index.ts +0 -1
- package/src/lib/styles/themes/cyberpunk.css +0 -98
- package/src/lib/styles/themes/neutral.css +0 -72
- package/src/lib/styles/themes/ocean.css +0 -75
- package/src/lib/styles/themes/selva.css +0 -105
- package/src/lib/theme/themeStore.svelte.ts +0 -50
- package/src/lib/theme/themes.ts +0 -18
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
data-slot="resizable-handle"
|
|
21
21
|
class={cn(
|
|
22
22
|
'group/handle after:inset-y-0 after:w-1 data-[direction=vertical]:after:left-0 data-[direction=vertical]:after:h-1 data-[direction=vertical]:after:translate-x-0 relative flex w-px items-center justify-center after:absolute after:left-1/2 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-hidden data-[direction=vertical]:h-px data-[direction=vertical]:w-full data-[direction=vertical]:after:w-full data-[direction=vertical]:after:-translate-y-1/2 [&[data-direction=vertical]>div]:rotate-90',
|
|
23
|
-
line ? 'bg-border' : 'bg-transparent',
|
|
23
|
+
line ? 'bg-border' : 'w-3 data-[direction=vertical]:h-3 bg-transparent',
|
|
24
24
|
className
|
|
25
25
|
)}
|
|
26
26
|
{...restProps}
|
|
27
27
|
>
|
|
28
28
|
{#if withHandle}
|
|
29
29
|
<div
|
|
30
|
-
class="h-
|
|
30
|
+
class="h-8 w-0.75 group-hover/handle:h-12 z-10 flex shrink-0 rounded-full bg-border-strong transition duration-150 group-hover/handle:bg-input group-active/handle:bg-muted-foreground"
|
|
31
31
|
></div>
|
|
32
32
|
{/if}
|
|
33
33
|
</ResizablePrimitive.PaneResizer>
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
{placeholder}
|
|
46
46
|
data-slot="input"
|
|
47
47
|
class={cn(
|
|
48
|
-
'h-9 min-w-0 px-3 py-1 text-base shadow-xs md:text-sm flex w-full rounded-md border border-input bg-
|
|
48
|
+
'h-9 min-w-0 px-3 py-1 text-base shadow-xs md:text-sm flex w-full rounded-md border border-input bg-field ring-offset-background transition outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50',
|
|
49
49
|
'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring',
|
|
50
50
|
'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
|
|
51
51
|
'pl-9 pr-12',
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
{sideOffset}
|
|
23
23
|
data-slot="select-content"
|
|
24
24
|
class={cn(
|
|
25
|
-
'
|
|
25
|
+
'data-[side=bottom]:translate-y-1 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:-translate-x-1 data-[side=left]:slide-in-from-right-2 data-[side=right]:translate-x-1 data-[side=right]:slide-in-from-left-2 data-[side=top]:-translate-y-1 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 min-w-32 max-h-96 relative z-50 origin-(--bits-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border border-border-strong bg-popover text-popover-foreground shadow-popover',
|
|
26
26
|
className
|
|
27
27
|
)}
|
|
28
28
|
{...restProps}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
{value}
|
|
19
19
|
data-slot="select-item"
|
|
20
20
|
class={cn(
|
|
21
|
-
"gap-2 py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 relative flex w-full cursor-default items-center rounded-
|
|
21
|
+
"gap-2 py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 *:[span]:last:gap-2 relative flex w-full cursor-default items-center rounded-inner outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-hover data-[highlighted]:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center",
|
|
22
22
|
className
|
|
23
23
|
)}
|
|
24
24
|
{...restProps}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
data-slot="select-trigger"
|
|
20
20
|
data-size={size}
|
|
21
21
|
class={cn(
|
|
22
|
-
"gap-2 px-3 py-2 text-sm shadow-xs data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between rounded-md border border-input bg-
|
|
22
|
+
"gap-2 px-3 py-2 text-sm shadow-xs data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:gap-2 [&_svg:not([class*='size-'])]:size-4 flex w-fit items-center justify-between rounded-md border border-input bg-field whitespace-nowrap transition outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
23
23
|
className
|
|
24
24
|
)}
|
|
25
25
|
{...restProps}
|
|
@@ -35,7 +35,7 @@ get along, so we shut typescript up by casting `value` to `never`.
|
|
|
35
35
|
data-orientation={orientation}
|
|
36
36
|
data-slot="slider-track"
|
|
37
37
|
class={cn(
|
|
38
|
-
'data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 relative grow overflow-hidden rounded-full bg-input data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full
|
|
38
|
+
'data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:w-1.5 relative grow overflow-hidden rounded-full bg-input data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full'
|
|
39
39
|
)}
|
|
40
40
|
>
|
|
41
41
|
<SliderPrimitive.Range
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
bind:checked
|
|
16
16
|
data-slot="switch"
|
|
17
17
|
class={cn(
|
|
18
|
-
'peer w-8 shadow-xs h-4.5 inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input
|
|
18
|
+
'peer w-8 shadow-xs h-4.5 inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
{...restProps}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
base: 'inline-flex items-center text-muted-foreground',
|
|
6
6
|
variants: {
|
|
7
7
|
variant: {
|
|
8
|
-
default: 'h-9 w-fit justify-center rounded-
|
|
9
|
-
line: 'gap-1 px-
|
|
8
|
+
default: 'h-9 w-fit justify-center rounded-md bg-muted p-0.5',
|
|
9
|
+
line: 'gap-1 px-1 w-full justify-start'
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
12
|
defaultVariants: {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { type VariantProps } from 'tailwind-variants';
|
|
2
2
|
export declare const tabsListVariants: import("tailwind-variants").TVReturnType<{
|
|
3
3
|
variant: {
|
|
4
|
-
default: "h-9 w-fit justify-center rounded-
|
|
5
|
-
line: "gap-1 px-
|
|
4
|
+
default: "h-9 w-fit justify-center rounded-md bg-muted p-0.5";
|
|
5
|
+
line: "gap-1 px-1 w-full justify-start";
|
|
6
6
|
};
|
|
7
7
|
}, undefined, "inline-flex items-center text-muted-foreground", {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "h-9 w-fit justify-center rounded-
|
|
10
|
-
line: "gap-1 px-
|
|
9
|
+
default: "h-9 w-fit justify-center rounded-md bg-muted p-0.5";
|
|
10
|
+
line: "gap-1 px-1 w-full justify-start";
|
|
11
11
|
};
|
|
12
12
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
13
13
|
variant: {
|
|
14
|
-
default: "h-9 w-fit justify-center rounded-
|
|
15
|
-
line: "gap-1 px-
|
|
14
|
+
default: "h-9 w-fit justify-center rounded-md bg-muted p-0.5";
|
|
15
|
+
line: "gap-1 px-1 w-full justify-start";
|
|
16
16
|
};
|
|
17
17
|
}, undefined>>;
|
|
18
18
|
export type TabsListVariant = VariantProps<typeof tabsListVariants>['variant'];
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
variants: {
|
|
7
7
|
variant: {
|
|
8
8
|
default:
|
|
9
|
-
'px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-
|
|
10
|
-
line: 'px-2.5 py-
|
|
9
|
+
'px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-inner border border-transparent text-foreground transition focus-visible:border-ring data-[state=active]:bg-raised dark:text-muted-foreground data-[state=active]:border-border-strong dark:data-[state=active]:text-foreground',
|
|
10
|
+
line: 'px-2.5 py-2.5 relative flex-none text-muted-foreground transition-colors after:absolute after:inset-x-2 after:bottom-0 after:h-0.5 after:rounded-full hover:text-foreground data-[state=active]:text-foreground data-[state=active]:after:bg-primary'
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
defaultVariants: {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { type VariantProps } from 'tailwind-variants';
|
|
2
2
|
export declare const tabsTriggerVariants: import("tailwind-variants").TVReturnType<{
|
|
3
3
|
variant: {
|
|
4
|
-
default: "px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-
|
|
5
|
-
line: "px-2.5 py-
|
|
4
|
+
default: "px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-inner border border-transparent text-foreground transition focus-visible:border-ring data-[state=active]:bg-raised dark:text-muted-foreground data-[state=active]:border-border-strong dark:data-[state=active]:text-foreground";
|
|
5
|
+
line: "px-2.5 py-2.5 relative flex-none text-muted-foreground transition-colors after:absolute after:inset-x-2 after:bottom-0 after:h-0.5 after:rounded-full hover:text-foreground data-[state=active]:text-foreground data-[state=active]:after:bg-primary";
|
|
6
6
|
};
|
|
7
7
|
}, undefined, "gap-1.5 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap focus-visible:ring-3 focus-visible:ring-ring focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
8
8
|
variant: {
|
|
9
|
-
default: "px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-
|
|
10
|
-
line: "px-2.5 py-
|
|
9
|
+
default: "px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-inner border border-transparent text-foreground transition focus-visible:border-ring data-[state=active]:bg-raised dark:text-muted-foreground data-[state=active]:border-border-strong dark:data-[state=active]:text-foreground";
|
|
10
|
+
line: "px-2.5 py-2.5 relative flex-none text-muted-foreground transition-colors after:absolute after:inset-x-2 after:bottom-0 after:h-0.5 after:rounded-full hover:text-foreground data-[state=active]:text-foreground data-[state=active]:after:bg-primary";
|
|
11
11
|
};
|
|
12
12
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
13
13
|
variant: {
|
|
14
|
-
default: "px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-
|
|
15
|
-
line: "px-2.5 py-
|
|
14
|
+
default: "px-2 py-1 data-[state=active]:shadow-sm h-full flex-1 rounded-inner border border-transparent text-foreground transition focus-visible:border-ring data-[state=active]:bg-raised dark:text-muted-foreground data-[state=active]:border-border-strong dark:data-[state=active]:text-foreground";
|
|
15
|
+
line: "px-2.5 py-2.5 relative flex-none text-muted-foreground transition-colors after:absolute after:inset-x-2 after:bottom-0 after:h-0.5 after:rounded-full hover:text-foreground data-[state=active]:text-foreground data-[state=active]:after:bg-primary";
|
|
16
16
|
};
|
|
17
17
|
}, undefined>>;
|
|
18
18
|
export type TabsTriggerVariant = VariantProps<typeof tabsTriggerVariants>['variant'];
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
bind:this={ref}
|
|
16
16
|
data-slot={dataSlot}
|
|
17
17
|
class={cn(
|
|
18
|
-
'min-h-16 px-3 py-2 text-base shadow-xs md:text-sm flex field-sizing-content w-full rounded-md border border-input bg-
|
|
18
|
+
'min-h-16 px-3 py-2 text-base shadow-xs md:text-sm flex field-sizing-content w-full rounded-md border border-input bg-field transition outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
bind:value
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
import { type VariantProps, tv } from 'tailwind-variants';
|
|
3
3
|
|
|
4
4
|
export const toggleVariants = tv({
|
|
5
|
-
base: "hover:text-foreground aria-pressed:bg-
|
|
5
|
+
base: "hover:text-foreground aria-pressed:bg-selected focus-visible:border-ring focus-visible:ring-ring aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[state=on]:bg-selected gap-1 rounded-md text-sm font-medium transition-all [&_svg:not([class*='size-'])]:size-4 group/toggle inline-flex items-center justify-center whitespace-nowrap outline-none hover:bg-hover focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
|
|
6
6
|
variants: {
|
|
7
7
|
variant: {
|
|
8
8
|
default: 'bg-transparent',
|
|
9
|
-
|
|
9
|
+
// Item inside a segmented track: the chosen value sits raised above the track.
|
|
10
|
+
segmented:
|
|
11
|
+
'rounded-inner bg-transparent text-muted-foreground data-[state=on]:bg-raised data-[state=on]:text-foreground data-[state=on]:shadow-raised data-[state=on]:ring-1 data-[state=on]:ring-border-strong',
|
|
12
|
+
outline: 'border-input hover:bg-hover border bg-field',
|
|
13
|
+
// Filled accent for the active item; a bare bg-muted is too faint on a form.
|
|
14
|
+
accent:
|
|
15
|
+
'border-input hover:bg-hover border bg-transparent data-[state=on]:bg-primary/15 data-[state=on]:ring-1 data-[state=on]:ring-primary data-[state=on]:ring-inset'
|
|
10
16
|
},
|
|
11
17
|
size: {
|
|
12
18
|
default:
|
|
@@ -2,7 +2,9 @@ import { type VariantProps } from 'tailwind-variants';
|
|
|
2
2
|
export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
|
|
3
3
|
variant: {
|
|
4
4
|
default: "bg-transparent";
|
|
5
|
-
|
|
5
|
+
segmented: "rounded-inner bg-transparent text-muted-foreground data-[state=on]:bg-raised data-[state=on]:text-foreground data-[state=on]:shadow-raised data-[state=on]:ring-1 data-[state=on]:ring-border-strong";
|
|
6
|
+
outline: "border-input hover:bg-hover border bg-field";
|
|
7
|
+
accent: "border-input hover:bg-hover border bg-transparent data-[state=on]:bg-primary/15 data-[state=on]:ring-1 data-[state=on]:ring-primary data-[state=on]:ring-inset";
|
|
6
8
|
};
|
|
7
9
|
size: {
|
|
8
10
|
default: "h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
|
|
@@ -10,10 +12,12 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
|
|
|
10
12
|
lg: "h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
|
|
11
13
|
stacked: "min-h-12 min-w-0 flex-col gap-1 px-1 py-1.5 text-xs";
|
|
12
14
|
};
|
|
13
|
-
}, undefined, "hover:text-foreground aria-pressed:bg-
|
|
15
|
+
}, undefined, "hover:text-foreground aria-pressed:bg-selected focus-visible:border-ring focus-visible:ring-ring aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[state=on]:bg-selected gap-1 rounded-md text-sm font-medium transition-all [&_svg:not([class*='size-'])]:size-4 group/toggle inline-flex items-center justify-center whitespace-nowrap outline-none hover:bg-hover focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
14
16
|
variant: {
|
|
15
17
|
default: "bg-transparent";
|
|
16
|
-
|
|
18
|
+
segmented: "rounded-inner bg-transparent text-muted-foreground data-[state=on]:bg-raised data-[state=on]:text-foreground data-[state=on]:shadow-raised data-[state=on]:ring-1 data-[state=on]:ring-border-strong";
|
|
19
|
+
outline: "border-input hover:bg-hover border bg-field";
|
|
20
|
+
accent: "border-input hover:bg-hover border bg-transparent data-[state=on]:bg-primary/15 data-[state=on]:ring-1 data-[state=on]:ring-primary data-[state=on]:ring-inset";
|
|
17
21
|
};
|
|
18
22
|
size: {
|
|
19
23
|
default: "h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
|
|
@@ -24,7 +28,9 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
|
|
|
24
28
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
25
29
|
variant: {
|
|
26
30
|
default: "bg-transparent";
|
|
27
|
-
|
|
31
|
+
segmented: "rounded-inner bg-transparent text-muted-foreground data-[state=on]:bg-raised data-[state=on]:text-foreground data-[state=on]:shadow-raised data-[state=on]:ring-1 data-[state=on]:ring-border-strong";
|
|
32
|
+
outline: "border-input hover:bg-hover border bg-field";
|
|
33
|
+
accent: "border-input hover:bg-hover border bg-transparent data-[state=on]:bg-primary/15 data-[state=on]:ring-1 data-[state=on]:ring-primary data-[state=on]:ring-inset";
|
|
28
34
|
};
|
|
29
35
|
size: {
|
|
30
36
|
default: "h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2";
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
data-size={ctx.size || size}
|
|
24
24
|
data-spacing={ctx.spacing}
|
|
25
25
|
class={cn(
|
|
26
|
-
'group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 shrink-0 group-data-[spacing=0]/toggle-group:rounded-none focus:z-10 focus-visible:z-10 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-
|
|
26
|
+
'group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 shrink-0 group-data-[spacing=0]/toggle-group:rounded-none focus:z-10 focus-visible:z-10 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-md group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=accent]:border-l-0 group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=accent]:border-t-0 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=accent]:first:border-l group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=accent]:first:border-t group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t',
|
|
27
27
|
toggleVariants({
|
|
28
28
|
variant: ctx.variant || variant,
|
|
29
29
|
size: ctx.size || size
|
|
@@ -68,7 +68,7 @@ get along, so we shut typescript up by casting `value` to `never`.
|
|
|
68
68
|
data-spacing={spacing}
|
|
69
69
|
style="--gap: calc(var(--spacing) * {spacing})"
|
|
70
70
|
class={cn(
|
|
71
|
-
'group/toggle-group flex w-fit flex-row items-center gap-(--gap) rounded-
|
|
71
|
+
'group/toggle-group data-[variant=segmented]:p-0.5 flex w-fit flex-row items-center gap-(--gap) rounded-md data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch data-[variant=segmented]:rounded-lg data-[variant=segmented]:border data-[variant=segmented]:border-input data-[variant=segmented]:bg-muted',
|
|
72
72
|
className
|
|
73
73
|
)}
|
|
74
74
|
{...restProps}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import Content from './tooltip-content.svelte';
|
|
2
|
+
import Portal from './tooltip-portal.svelte';
|
|
3
|
+
import Provider from './tooltip-provider.svelte';
|
|
4
|
+
import Trigger from './tooltip-trigger.svelte';
|
|
5
|
+
import Root from './tooltip.svelte';
|
|
6
|
+
export { Root, Content, Provider, Portal, Trigger, Root as Tooltip, Content as TooltipContent, Provider as TooltipProvider, Portal as TooltipPortal, Trigger as TooltipTrigger };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Content from './tooltip-content.svelte';
|
|
2
|
+
import Portal from './tooltip-portal.svelte';
|
|
3
|
+
import Provider from './tooltip-provider.svelte';
|
|
4
|
+
import Trigger from './tooltip-trigger.svelte';
|
|
5
|
+
import Root from './tooltip.svelte';
|
|
6
|
+
export { Root, Content, Provider, Portal, Trigger,
|
|
7
|
+
//
|
|
8
|
+
Root as Tooltip, Content as TooltipContent, Provider as TooltipProvider, Portal as TooltipPortal, Trigger as TooltipTrigger };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Tooltip as TooltipPrimitive } from 'bits-ui';
|
|
3
|
+
import { cn, type WithoutChildrenOrChild } from '../../../utils.js';
|
|
4
|
+
import TooltipPortal from './tooltip-portal.svelte';
|
|
5
|
+
import type { ComponentProps } from 'svelte';
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
ref = $bindable(null),
|
|
9
|
+
class: className,
|
|
10
|
+
sideOffset = 6,
|
|
11
|
+
side = 'top',
|
|
12
|
+
children,
|
|
13
|
+
portalProps,
|
|
14
|
+
...restProps
|
|
15
|
+
}: TooltipPrimitive.ContentProps & {
|
|
16
|
+
portalProps?: WithoutChildrenOrChild<ComponentProps<typeof TooltipPortal>>;
|
|
17
|
+
} = $props();
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<TooltipPortal {...portalProps}>
|
|
21
|
+
<TooltipPrimitive.Content
|
|
22
|
+
bind:ref
|
|
23
|
+
data-slot="tooltip-content"
|
|
24
|
+
{sideOffset}
|
|
25
|
+
{side}
|
|
26
|
+
class={cn(
|
|
27
|
+
'data-[state=delayed-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=delayed-open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 px-2.5 py-1.5 text-xs font-medium z-50 w-fit origin-(--bits-tooltip-content-transform-origin) rounded-md bg-foreground text-balance text-background',
|
|
28
|
+
className
|
|
29
|
+
)}
|
|
30
|
+
{...restProps}
|
|
31
|
+
>
|
|
32
|
+
{@render children?.()}
|
|
33
|
+
</TooltipPrimitive.Content>
|
|
34
|
+
</TooltipPortal>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Tooltip as TooltipPrimitive } from 'bits-ui';
|
|
2
|
+
import { type WithoutChildrenOrChild } from '../../../utils.js';
|
|
3
|
+
import TooltipPortal from './tooltip-portal.svelte';
|
|
4
|
+
import type { ComponentProps } from 'svelte';
|
|
5
|
+
type $$ComponentProps = TooltipPrimitive.ContentProps & {
|
|
6
|
+
portalProps?: WithoutChildrenOrChild<ComponentProps<typeof TooltipPortal>>;
|
|
7
|
+
};
|
|
8
|
+
declare const TooltipContent: import("svelte").Component<$$ComponentProps, {}, "ref">;
|
|
9
|
+
type TooltipContent = ReturnType<typeof TooltipContent>;
|
|
10
|
+
export default TooltipContent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { X } from '@lucide/svelte';
|
|
3
3
|
import { Button } from '../primitives/button/index.js';
|
|
4
|
-
import { getLocaleContext } from '../../i18n/localeContext.svelte';
|
|
4
|
+
import { getLocaleContext } from '../../i18n/localeContext.svelte.js';
|
|
5
5
|
|
|
6
6
|
const locale = getLocaleContext();
|
|
7
7
|
const t = $derived(locale.messages);
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
<table class="text-xs w-full border-collapse">
|
|
66
66
|
<tbody>
|
|
67
67
|
{#each Object.entries(filteredMetadata) as [key, value] (key)}
|
|
68
|
-
<tr class="border-b border-border
|
|
68
|
+
<tr class="border-b border-border last:border-b-0">
|
|
69
69
|
<th
|
|
70
70
|
scope="row"
|
|
71
71
|
class="px-4 py-2 font-normal text-left align-top whitespace-nowrap text-muted-foreground"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
type SceneEntry,
|
|
15
15
|
type SceneOutliner
|
|
16
16
|
} from '@selvajs/visualization/scene';
|
|
17
|
-
import { getLocaleContext } from '../../i18n/localeContext.svelte';
|
|
17
|
+
import { getLocaleContext } from '../../i18n/localeContext.svelte.js';
|
|
18
18
|
|
|
19
19
|
const locale = getLocaleContext();
|
|
20
20
|
const t = $derived(locale.messages);
|
|
@@ -33,9 +33,11 @@
|
|
|
33
33
|
* repaint, so the row updates instantly and the geometry lags behind.
|
|
34
34
|
*/
|
|
35
35
|
onVisibilityChange?: () => void;
|
|
36
|
+
/** The entry under the pointer, or null once it leaves. Drives the viewport preview tint. */
|
|
37
|
+
onHover?: (entry: SceneEntry | null) => void;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
let { outliner, sceneVersion = 0, onVisibilityChange }: Props = $props();
|
|
40
|
+
let { outliner, sceneVersion = 0, onVisibilityChange, onHover }: Props = $props();
|
|
39
41
|
|
|
40
42
|
// A partially hidden layer hides the rest; only a fully hidden one comes back — the same rule
|
|
41
43
|
// `visibility.toggleLayer` applies to objects, restated over entries because a layer's rows are
|
|
@@ -51,6 +53,13 @@
|
|
|
51
53
|
onVisibilityChange?.();
|
|
52
54
|
};
|
|
53
55
|
|
|
56
|
+
// A solve or closing the panel removes the row without a mouseleave, which would leave the
|
|
57
|
+
// preview tint stuck on the viewport.
|
|
58
|
+
$effect(() => {
|
|
59
|
+
void sceneVersion;
|
|
60
|
+
return () => onHover?.(null);
|
|
61
|
+
});
|
|
62
|
+
|
|
54
63
|
// Derived, not destructured: the prop is reassignable, and these must follow it.
|
|
55
64
|
const hidden = $derived(outliner.visibility.hidden);
|
|
56
65
|
const selected = $derived(outliner.selection.selected);
|
|
@@ -216,16 +225,16 @@
|
|
|
216
225
|
onmousedown={() => outliner.selection.clear()}
|
|
217
226
|
>
|
|
218
227
|
<div class="px-3 py-2 gap-2 flex items-center border-b border-border">
|
|
219
|
-
<Search class="h-3.5 w-3.5 shrink-0 text-
|
|
228
|
+
<Search class="h-3.5 w-3.5 shrink-0 text-faint-foreground" />
|
|
220
229
|
<input
|
|
221
|
-
class="min-w-0 text-xs flex-1 bg-transparent text-foreground outline-none placeholder:text-
|
|
230
|
+
class="min-w-0 text-xs flex-1 bg-transparent text-foreground outline-none placeholder:text-faint-foreground"
|
|
222
231
|
placeholder={t.searchObjects}
|
|
223
232
|
bind:value={searchQuery}
|
|
224
233
|
/>
|
|
225
234
|
{#if searchQuery}
|
|
226
235
|
<button onclick={() => (searchQuery = '')} aria-label={t.clearSearch}>
|
|
227
236
|
<X
|
|
228
|
-
class="h-3.5 w-3.5 text-
|
|
237
|
+
class="h-3.5 w-3.5 text-faint-foreground transition-colors hover:text-muted-foreground"
|
|
229
238
|
/>
|
|
230
239
|
</button>
|
|
231
240
|
{/if}
|
|
@@ -238,11 +247,11 @@
|
|
|
238
247
|
>
|
|
239
248
|
{#if allCollapsed}
|
|
240
249
|
<ChevronsUpDown
|
|
241
|
-
class="h-3.5 w-3.5 text-
|
|
250
|
+
class="h-3.5 w-3.5 text-faint-foreground transition-colors hover:text-muted-foreground"
|
|
242
251
|
/>
|
|
243
252
|
{:else}
|
|
244
253
|
<ChevronsDownUp
|
|
245
|
-
class="h-3.5 w-3.5 text-
|
|
254
|
+
class="h-3.5 w-3.5 text-faint-foreground transition-colors hover:text-muted-foreground"
|
|
246
255
|
/>
|
|
247
256
|
{/if}
|
|
248
257
|
</button>
|
|
@@ -276,10 +285,10 @@
|
|
|
276
285
|
{@const isCollapsed = collapsed.has(row.layerName)}
|
|
277
286
|
|
|
278
287
|
<div
|
|
279
|
-
class="gap-1 pl-1 pr-2 group flex h-full items-center transition-colors hover:bg-
|
|
288
|
+
class="gap-1 pl-1 pr-2 group flex h-full items-center transition-colors hover:bg-hover"
|
|
280
289
|
>
|
|
281
290
|
<button
|
|
282
|
-
class="
|
|
291
|
+
class="p-0.5 shrink-0 rounded-sm text-muted-foreground transition-colors hover:text-muted-foreground"
|
|
283
292
|
onclick={() => outliner.toggleCollapsed(row.layerName)}
|
|
284
293
|
aria-label={isCollapsed ? t.expandLayer : t.collapseLayer}
|
|
285
294
|
>
|
|
@@ -291,15 +300,15 @@
|
|
|
291
300
|
</button>
|
|
292
301
|
|
|
293
302
|
<button
|
|
294
|
-
class="
|
|
303
|
+
class="p-1 shrink-0 rounded-sm transition-colors hover:bg-hover"
|
|
295
304
|
onclick={() => toggleLayer(entries)}
|
|
296
305
|
title={layerHidden ? t.showLayer : t.hideLayer}
|
|
297
306
|
aria-label={layerHidden ? t.showLayer : t.hideLayer}
|
|
298
307
|
>
|
|
299
308
|
{#if layerHidden}
|
|
300
|
-
<EyeOff class="h-3.5 w-3.5 text-
|
|
309
|
+
<EyeOff class="h-3.5 w-3.5 text-faint-foreground" />
|
|
301
310
|
{:else if layerPartial}
|
|
302
|
-
<Eye class="h-3.5 w-3.5 text-
|
|
311
|
+
<Eye class="h-3.5 w-3.5 text-faint-foreground" />
|
|
303
312
|
{:else}
|
|
304
313
|
<Eye class="h-3.5 w-3.5 text-muted-foreground" />
|
|
305
314
|
{/if}
|
|
@@ -307,13 +316,13 @@
|
|
|
307
316
|
|
|
308
317
|
<span
|
|
309
318
|
class="min-w-0 text-xs font-medium flex-1 truncate {layerHidden
|
|
310
|
-
? 'text-
|
|
319
|
+
? 'text-faint-foreground line-through'
|
|
311
320
|
: 'text-foreground'}"
|
|
312
321
|
>
|
|
313
322
|
{row.layerName}
|
|
314
323
|
</span>
|
|
315
324
|
|
|
316
|
-
<span class="shrink-0 text-2xs text-
|
|
325
|
+
<span class="shrink-0 text-2xs text-faint-foreground tabular-nums">
|
|
317
326
|
{entries.length}
|
|
318
327
|
</span>
|
|
319
328
|
</div>
|
|
@@ -329,8 +338,10 @@
|
|
|
329
338
|
aria-selected={isSelected}
|
|
330
339
|
tabindex="-1"
|
|
331
340
|
class="gap-1.5 pl-5 pr-2 flex h-full cursor-pointer items-center transition-colors
|
|
332
|
-
{isSelected ? 'bg-primary/10 hover:bg-primary/15' : 'hover:bg-
|
|
341
|
+
{isSelected ? 'bg-primary/10 hover:bg-primary/15' : 'hover:bg-hover'}
|
|
333
342
|
{isHidden ? 'opacity-40' : ''}"
|
|
343
|
+
onmouseenter={() => onHover?.(entry)}
|
|
344
|
+
onmouseleave={() => onHover?.(null)}
|
|
334
345
|
onmousedown={(e) => {
|
|
335
346
|
e.stopPropagation();
|
|
336
347
|
if (e.shiftKey) e.preventDefault();
|
|
@@ -340,7 +351,7 @@
|
|
|
340
351
|
e.key === 'Enter' && selectObject(entry.key, e as unknown as MouseEvent)}
|
|
341
352
|
>
|
|
342
353
|
<button
|
|
343
|
-
class="
|
|
354
|
+
class="p-1 shrink-0 rounded-sm transition-colors hover:bg-hover"
|
|
344
355
|
onclick={(e) => {
|
|
345
356
|
e.stopPropagation();
|
|
346
357
|
toggleEntry(entry);
|
|
@@ -349,7 +360,7 @@
|
|
|
349
360
|
aria-label={isHidden ? t.showObject : t.hideObject}
|
|
350
361
|
>
|
|
351
362
|
{#if isHidden}
|
|
352
|
-
<EyeOff class="h-3 w-3 text-
|
|
363
|
+
<EyeOff class="h-3 w-3 text-faint-foreground" />
|
|
353
364
|
{:else}
|
|
354
365
|
<Eye class="h-3 w-3 text-muted-foreground" />
|
|
355
366
|
{/if}
|
|
@@ -358,13 +369,13 @@
|
|
|
358
369
|
<span
|
|
359
370
|
class="min-w-0 text-xs flex-1 truncate {isHidden
|
|
360
371
|
? 'text-muted-foreground line-through'
|
|
361
|
-
: 'text-foreground
|
|
372
|
+
: 'text-foreground'}"
|
|
362
373
|
>
|
|
363
374
|
{entry.label}
|
|
364
375
|
</span>
|
|
365
376
|
|
|
366
377
|
<span
|
|
367
|
-
class="
|
|
378
|
+
class="px-1 py-0.5 font-medium shrink-0 rounded-sm bg-muted text-2xs text-faint-foreground"
|
|
368
379
|
>
|
|
369
380
|
{getTypeLabel(entry.object)}
|
|
370
381
|
</span>
|
|
@@ -377,12 +388,12 @@
|
|
|
377
388
|
|
|
378
389
|
{#if sceneObjects.length === 0}
|
|
379
390
|
<div class="py-12 flex flex-col items-center justify-center text-center">
|
|
380
|
-
<EyeOff class="mb-2 h-5 w-5 text-
|
|
391
|
+
<EyeOff class="mb-2 h-5 w-5 text-faint-foreground" />
|
|
381
392
|
<p class="text-xs text-muted-foreground">{t.noObjects}</p>
|
|
382
393
|
</div>
|
|
383
394
|
{:else if layerGroups.size === 0}
|
|
384
395
|
<div class="py-12 flex flex-col items-center justify-center text-center">
|
|
385
|
-
<Search class="mb-2 h-5 w-5 text-
|
|
396
|
+
<Search class="mb-2 h-5 w-5 text-faint-foreground" />
|
|
386
397
|
<p class="text-xs text-muted-foreground">
|
|
387
398
|
{t.noResultsFor.replace('{query}', searchQuery)}
|
|
388
399
|
</p>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type SceneOutliner } from '@selvajs/visualization/scene';
|
|
1
|
+
import { type SceneEntry, type SceneOutliner } from '@selvajs/visualization/scene';
|
|
2
2
|
interface Props {
|
|
3
3
|
/**
|
|
4
4
|
* Owned by `Viewer.svelte`, never built here: this panel unmounts when it closes, and hidden
|
|
@@ -13,6 +13,8 @@ interface Props {
|
|
|
13
13
|
* repaint, so the row updates instantly and the geometry lags behind.
|
|
14
14
|
*/
|
|
15
15
|
onVisibilityChange?: () => void;
|
|
16
|
+
/** The entry under the pointer, or null once it leaves. Drives the viewport preview tint. */
|
|
17
|
+
onHover?: (entry: SceneEntry | null) => void;
|
|
16
18
|
}
|
|
17
19
|
declare const SceneManager: import("svelte").Component<Props, {}, "">;
|
|
18
20
|
type SceneManager = ReturnType<typeof SceneManager>;
|