@selvajs/ui 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +45 -0
- package/dist/components/ErrorScreen.svelte +53 -0
- package/dist/components/ErrorScreen.svelte.d.ts +9 -0
- package/dist/components/compute/AppLayout.svelte +470 -0
- package/dist/components/compute/AppLayout.svelte.d.ts +23 -0
- package/dist/components/compute/CollapsedPanelStrip.svelte +64 -0
- package/dist/components/compute/CollapsedPanelStrip.svelte.d.ts +11 -0
- package/dist/components/compute/ComputeApp.svelte +243 -0
- package/dist/components/compute/ComputeApp.svelte.d.ts +29 -0
- package/dist/components/compute/ComputeMessages.svelte +169 -0
- package/dist/components/compute/ComputeMessages.svelte.d.ts +7 -0
- package/dist/components/compute/ParameterPresetManager.svelte +326 -0
- package/dist/components/compute/ParameterPresetManager.svelte.d.ts +13 -0
- package/dist/components/compute/index.d.ts +5 -0
- package/dist/components/compute/index.js +5 -0
- package/dist/components/layout/AppShell.svelte +110 -0
- package/dist/components/layout/AppShell.svelte.d.ts +24 -0
- package/dist/components/layout/EmptyState.svelte +48 -0
- package/dist/components/layout/EmptyState.svelte.d.ts +15 -0
- package/dist/components/layout/FooterItemRenderer.svelte +20 -0
- package/dist/components/layout/FooterItemRenderer.svelte.d.ts +7 -0
- package/dist/components/layout/PageContent.svelte +12 -0
- package/dist/components/layout/PageContent.svelte.d.ts +7 -0
- package/dist/components/layout/PageFooter.svelte +222 -0
- package/dist/components/layout/PageFooter.svelte.d.ts +9 -0
- package/dist/components/layout/PageHeader.svelte +67 -0
- package/dist/components/layout/PageHeader.svelte.d.ts +14 -0
- package/dist/components/layout/SectionHeader.svelte +38 -0
- package/dist/components/layout/SectionHeader.svelte.d.ts +11 -0
- package/dist/components/layout/SideNav.svelte +82 -0
- package/dist/components/layout/SideNav.svelte.d.ts +19 -0
- package/dist/components/layout/SubNav.svelte +45 -0
- package/dist/components/layout/SubNav.svelte.d.ts +14 -0
- package/dist/components/layout/index.d.ts +10 -0
- package/dist/components/layout/index.js +9 -0
- package/dist/components/preview/ChartOutput.svelte +222 -0
- package/dist/components/preview/ChartOutput.svelte.d.ts +8 -0
- package/dist/components/preview/Group.svelte +134 -0
- package/dist/components/preview/Group.svelte.d.ts +25 -0
- package/dist/components/preview/ImageOutput.svelte +156 -0
- package/dist/components/preview/ImageOutput.svelte.d.ts +8 -0
- package/dist/components/preview/InputControl.svelte +130 -0
- package/dist/components/preview/InputControl.svelte.d.ts +11 -0
- package/dist/components/preview/OutputDisplay.svelte +297 -0
- package/dist/components/preview/OutputDisplay.svelte.d.ts +9 -0
- package/dist/components/preview/TabBar.svelte +36 -0
- package/dist/components/preview/TabBar.svelte.d.ts +8 -0
- package/dist/components/preview/TabContent.svelte +125 -0
- package/dist/components/preview/TabContent.svelte.d.ts +13 -0
- package/dist/components/preview/TabLayout.svelte +109 -0
- package/dist/components/preview/TabLayout.svelte.d.ts +13 -0
- package/dist/components/preview/index.d.ts +3 -0
- package/dist/components/preview/index.js +4 -0
- package/dist/components/preview/inputs/CheckboxInput.svelte +29 -0
- package/dist/components/preview/inputs/CheckboxInput.svelte.d.ts +10 -0
- package/dist/components/preview/inputs/ChecklistInput.svelte +50 -0
- package/dist/components/preview/inputs/ChecklistInput.svelte.d.ts +11 -0
- package/dist/components/preview/inputs/ColorInput.svelte +21 -0
- package/dist/components/preview/inputs/ColorInput.svelte.d.ts +7 -0
- package/dist/components/preview/inputs/DropdownInput.svelte +40 -0
- package/dist/components/preview/inputs/DropdownInput.svelte.d.ts +10 -0
- package/dist/components/preview/inputs/FileInput.svelte +368 -0
- package/dist/components/preview/inputs/FileInput.svelte.d.ts +10 -0
- package/dist/components/preview/inputs/NumberInput.svelte +152 -0
- package/dist/components/preview/inputs/NumberInput.svelte.d.ts +11 -0
- package/dist/components/preview/inputs/TextInput.svelte +74 -0
- package/dist/components/preview/inputs/TextInput.svelte.d.ts +11 -0
- package/dist/components/preview/inputs/index.d.ts +7 -0
- package/dist/components/preview/inputs/index.js +7 -0
- package/dist/components/primitives/CalculateButton.svelte +40 -0
- package/dist/components/primitives/CalculateButton.svelte.d.ts +9 -0
- package/dist/components/primitives/DataTable.svelte +39 -0
- package/dist/components/primitives/DataTable.svelte.d.ts +36 -0
- package/dist/components/primitives/ImageUploadField.svelte +84 -0
- package/dist/components/primitives/ImageUploadField.svelte.d.ts +15 -0
- package/dist/components/primitives/SolvingIndicator.svelte +54 -0
- package/dist/components/primitives/SolvingIndicator.svelte.d.ts +6 -0
- package/dist/components/primitives/StateDisplay.svelte +106 -0
- package/dist/components/primitives/StateDisplay.svelte.d.ts +10 -0
- package/dist/components/primitives/ViewToggle.svelte +47 -0
- package/dist/components/primitives/ViewToggle.svelte.d.ts +9 -0
- package/dist/components/primitives/alert/alert-description.svelte +23 -0
- package/dist/components/primitives/alert/alert-description.svelte.d.ts +5 -0
- package/dist/components/primitives/alert/alert-title.svelte +20 -0
- package/dist/components/primitives/alert/alert-title.svelte.d.ts +5 -0
- package/dist/components/primitives/alert/alert.svelte +44 -0
- package/dist/components/primitives/alert/alert.svelte.d.ts +26 -0
- package/dist/components/primitives/alert/index.d.ts +5 -0
- package/dist/components/primitives/alert/index.js +7 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-action.svelte +18 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-action.svelte.d.ts +4 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-cancel.svelte +18 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-cancel.svelte.d.ts +4 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-content.svelte +27 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-content.svelte.d.ts +8 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-description.svelte +17 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-description.svelte.d.ts +4 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-footer.svelte +20 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-footer.svelte.d.ts +5 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-header.svelte +20 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-header.svelte.d.ts +5 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-overlay.svelte +20 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-title.svelte +17 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-title.svelte.d.ts +4 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-trigger.svelte +7 -0
- package/dist/components/primitives/alert-dialog/alert-dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/alert-dialog/index.d.ts +12 -0
- package/dist/components/primitives/alert-dialog/index.js +15 -0
- package/dist/components/primitives/badge/badge.svelte +49 -0
- package/dist/components/primitives/badge/badge.svelte.d.ts +32 -0
- package/dist/components/primitives/badge/index.d.ts +2 -0
- package/dist/components/primitives/badge/index.js +2 -0
- package/dist/components/primitives/button/button.svelte +83 -0
- package/dist/components/primitives/button/button.svelte.d.ts +67 -0
- package/dist/components/primitives/button/index.d.ts +2 -0
- package/dist/components/primitives/button/index.js +4 -0
- package/dist/components/primitives/button-group/button-group-separator.svelte +20 -0
- package/dist/components/primitives/button-group/button-group-separator.svelte.d.ts +13 -0
- package/dist/components/primitives/button-group/button-group-text.svelte +30 -0
- package/dist/components/primitives/button-group/button-group-text.svelte.d.ts +11 -0
- package/dist/components/primitives/button-group/button-group.svelte +46 -0
- package/dist/components/primitives/button-group/button-group.svelte.d.ts +26 -0
- package/dist/components/primitives/button-group/index.d.ts +4 -0
- package/dist/components/primitives/button-group/index.js +6 -0
- package/dist/components/primitives/card/card-action.svelte +20 -0
- package/dist/components/primitives/card/card-action.svelte.d.ts +5 -0
- package/dist/components/primitives/card/card-content.svelte +15 -0
- package/dist/components/primitives/card/card-content.svelte.d.ts +5 -0
- package/dist/components/primitives/card/card-description.svelte +20 -0
- package/dist/components/primitives/card/card-description.svelte.d.ts +5 -0
- package/dist/components/primitives/card/card-footer.svelte +20 -0
- package/dist/components/primitives/card/card-footer.svelte.d.ts +5 -0
- package/dist/components/primitives/card/card-header.svelte +23 -0
- package/dist/components/primitives/card/card-header.svelte.d.ts +5 -0
- package/dist/components/primitives/card/card-title.svelte +20 -0
- package/dist/components/primitives/card/card-title.svelte.d.ts +5 -0
- package/dist/components/primitives/card/card.svelte +23 -0
- package/dist/components/primitives/card/card.svelte.d.ts +5 -0
- package/dist/components/primitives/card/index.d.ts +8 -0
- package/dist/components/primitives/card/index.js +10 -0
- package/dist/components/primitives/checkbox/checkbox.svelte +36 -0
- package/dist/components/primitives/checkbox/checkbox.svelte.d.ts +4 -0
- package/dist/components/primitives/checkbox/index.d.ts +2 -0
- package/dist/components/primitives/checkbox/index.js +4 -0
- package/dist/components/primitives/collapsible/collapsible-content.svelte +7 -0
- package/dist/components/primitives/collapsible/collapsible-content.svelte.d.ts +4 -0
- package/dist/components/primitives/collapsible/collapsible-trigger.svelte +7 -0
- package/dist/components/primitives/collapsible/collapsible-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/collapsible/collapsible.svelte +11 -0
- package/dist/components/primitives/collapsible/collapsible.svelte.d.ts +4 -0
- package/dist/components/primitives/collapsible/index.d.ts +4 -0
- package/dist/components/primitives/collapsible/index.js +6 -0
- package/dist/components/primitives/context-menu/context-menu-checkbox-item.svelte +38 -0
- package/dist/components/primitives/context-menu/context-menu-checkbox-item.svelte.d.ts +9 -0
- package/dist/components/primitives/context-menu/context-menu-content.svelte +25 -0
- package/dist/components/primitives/context-menu/context-menu-content.svelte.d.ts +7 -0
- package/dist/components/primitives/context-menu/context-menu-group-heading.svelte +21 -0
- package/dist/components/primitives/context-menu/context-menu-group-heading.svelte.d.ts +7 -0
- package/dist/components/primitives/context-menu/context-menu-group.svelte +7 -0
- package/dist/components/primitives/context-menu/context-menu-group.svelte.d.ts +4 -0
- package/dist/components/primitives/context-menu/context-menu-item.svelte +27 -0
- package/dist/components/primitives/context-menu/context-menu-item.svelte.d.ts +8 -0
- package/dist/components/primitives/context-menu/context-menu-label.svelte +24 -0
- package/dist/components/primitives/context-menu/context-menu-label.svelte.d.ts +8 -0
- package/dist/components/primitives/context-menu/context-menu-radio-group.svelte +16 -0
- package/dist/components/primitives/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
- package/dist/components/primitives/context-menu/context-menu-radio-item.svelte +31 -0
- package/dist/components/primitives/context-menu/context-menu-radio-item.svelte.d.ts +4 -0
- package/dist/components/primitives/context-menu/context-menu-separator.svelte +17 -0
- package/dist/components/primitives/context-menu/context-menu-separator.svelte.d.ts +4 -0
- package/dist/components/primitives/context-menu/context-menu-shortcut.svelte +20 -0
- package/dist/components/primitives/context-menu/context-menu-shortcut.svelte.d.ts +5 -0
- package/dist/components/primitives/context-menu/context-menu-sub-content.svelte +20 -0
- package/dist/components/primitives/context-menu/context-menu-sub-content.svelte.d.ts +4 -0
- package/dist/components/primitives/context-menu/context-menu-sub-trigger.svelte +29 -0
- package/dist/components/primitives/context-menu/context-menu-sub-trigger.svelte.d.ts +8 -0
- package/dist/components/primitives/context-menu/context-menu-trigger.svelte +7 -0
- package/dist/components/primitives/context-menu/context-menu-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/context-menu/index.d.ts +16 -0
- package/dist/components/primitives/context-menu/index.js +19 -0
- package/dist/components/primitives/dialog/dialog-close.svelte +7 -0
- package/dist/components/primitives/dialog/dialog-close.svelte.d.ts +4 -0
- package/dist/components/primitives/dialog/dialog-content.svelte +43 -0
- package/dist/components/primitives/dialog/dialog-content.svelte.d.ts +11 -0
- package/dist/components/primitives/dialog/dialog-description.svelte +17 -0
- package/dist/components/primitives/dialog/dialog-description.svelte.d.ts +4 -0
- package/dist/components/primitives/dialog/dialog-footer.svelte +20 -0
- package/dist/components/primitives/dialog/dialog-footer.svelte.d.ts +5 -0
- package/dist/components/primitives/dialog/dialog-header.svelte +20 -0
- package/dist/components/primitives/dialog/dialog-header.svelte.d.ts +5 -0
- package/dist/components/primitives/dialog/dialog-overlay.svelte +20 -0
- package/dist/components/primitives/dialog/dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/primitives/dialog/dialog-title.svelte +17 -0
- package/dist/components/primitives/dialog/dialog-title.svelte.d.ts +4 -0
- package/dist/components/primitives/dialog/dialog-trigger.svelte +7 -0
- package/dist/components/primitives/dialog/dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/dialog/index.d.ts +11 -0
- package/dist/components/primitives/dialog/index.js +14 -0
- package/dist/components/primitives/drawer/Drawer.svelte +32 -0
- package/dist/components/primitives/drawer/Drawer.svelte.d.ts +10 -0
- package/dist/components/primitives/drawer/index.d.ts +1 -0
- package/dist/components/primitives/drawer/index.js +1 -0
- package/dist/components/primitives/field/field-content.svelte +20 -0
- package/dist/components/primitives/field/field-content.svelte.d.ts +5 -0
- package/dist/components/primitives/field/field-description.svelte +25 -0
- package/dist/components/primitives/field/field-description.svelte.d.ts +5 -0
- package/dist/components/primitives/field/field-error.svelte +58 -0
- package/dist/components/primitives/field/field-error.svelte.d.ts +12 -0
- package/dist/components/primitives/field/field-group.svelte +23 -0
- package/dist/components/primitives/field/field-group.svelte.d.ts +5 -0
- package/dist/components/primitives/field/field-label.svelte +26 -0
- package/dist/components/primitives/field/field-label.svelte.d.ts +10 -0
- package/dist/components/primitives/field/field-legend.svelte +29 -0
- package/dist/components/primitives/field/field-legend.svelte.d.ts +8 -0
- package/dist/components/primitives/field/field-separator.svelte +35 -0
- package/dist/components/primitives/field/field-separator.svelte.d.ts +9 -0
- package/dist/components/primitives/field/field-set.svelte +24 -0
- package/dist/components/primitives/field/field-set.svelte.d.ts +5 -0
- package/dist/components/primitives/field/field-title.svelte +23 -0
- package/dist/components/primitives/field/field-title.svelte.d.ts +5 -0
- package/dist/components/primitives/field/field.svelte +53 -0
- package/dist/components/primitives/field/field.svelte.d.ts +29 -0
- package/dist/components/primitives/field/index.d.ts +11 -0
- package/dist/components/primitives/field/index.js +13 -0
- package/dist/components/primitives/index.d.ts +29 -0
- package/dist/components/primitives/index.js +32 -0
- package/dist/components/primitives/input/index.d.ts +2 -0
- package/dist/components/primitives/input/index.js +4 -0
- package/dist/components/primitives/input/input.svelte +52 -0
- package/dist/components/primitives/input/input.svelte.d.ts +13 -0
- package/dist/components/primitives/label/index.d.ts +2 -0
- package/dist/components/primitives/label/index.js +4 -0
- package/dist/components/primitives/label/label.svelte +20 -0
- package/dist/components/primitives/label/label.svelte.d.ts +4 -0
- package/dist/components/primitives/mode-toggle/index.d.ts +1 -0
- package/dist/components/primitives/mode-toggle/index.js +1 -0
- package/dist/components/primitives/mode-toggle/mode-toggle.svelte +16 -0
- package/dist/components/primitives/mode-toggle/mode-toggle.svelte.d.ts +18 -0
- package/dist/components/primitives/resizable/index.d.ts +4 -0
- package/dist/components/primitives/resizable/index.js +6 -0
- package/dist/components/primitives/resizable/resizable-handle.svelte +27 -0
- package/dist/components/primitives/resizable/resizable-handle.svelte.d.ts +8 -0
- package/dist/components/primitives/resizable/resizable-pane-group.svelte +24 -0
- package/dist/components/primitives/resizable/resizable-pane-group.svelte.d.ts +7 -0
- package/dist/components/primitives/scroll-area/index.d.ts +3 -0
- package/dist/components/primitives/scroll-area/index.js +5 -0
- package/dist/components/primitives/scroll-area/scroll-area-scrollbar.svelte +31 -0
- package/dist/components/primitives/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
- package/dist/components/primitives/scroll-area/scroll-area.svelte +43 -0
- package/dist/components/primitives/scroll-area/scroll-area.svelte.d.ts +11 -0
- package/dist/components/primitives/search/index.d.ts +2 -0
- package/dist/components/primitives/search/index.js +4 -0
- package/dist/components/primitives/search/search.svelte +79 -0
- package/dist/components/primitives/search/search.svelte.d.ts +13 -0
- package/dist/components/primitives/select/index.d.ts +11 -0
- package/dist/components/primitives/select/index.js +14 -0
- package/dist/components/primitives/select/select-content.svelte +40 -0
- package/dist/components/primitives/select/select-content.svelte.d.ts +8 -0
- package/dist/components/primitives/select/select-group-heading.svelte +21 -0
- package/dist/components/primitives/select/select-group-heading.svelte.d.ts +10 -0
- package/dist/components/primitives/select/select-group.svelte +7 -0
- package/dist/components/primitives/select/select-group.svelte.d.ts +4 -0
- package/dist/components/primitives/select/select-item.svelte +38 -0
- package/dist/components/primitives/select/select-item.svelte.d.ts +4 -0
- package/dist/components/primitives/select/select-label.svelte +20 -0
- package/dist/components/primitives/select/select-label.svelte.d.ts +6 -0
- package/dist/components/primitives/select/select-scroll-down-button.svelte +20 -0
- package/dist/components/primitives/select/select-scroll-down-button.svelte.d.ts +4 -0
- package/dist/components/primitives/select/select-scroll-up-button.svelte +20 -0
- package/dist/components/primitives/select/select-scroll-up-button.svelte.d.ts +4 -0
- package/dist/components/primitives/select/select-separator.svelte +18 -0
- package/dist/components/primitives/select/select-separator.svelte.d.ts +4 -0
- package/dist/components/primitives/select/select-trigger.svelte +29 -0
- package/dist/components/primitives/select/select-trigger.svelte.d.ts +8 -0
- package/dist/components/primitives/separator/index.d.ts +2 -0
- package/dist/components/primitives/separator/index.js +4 -0
- package/dist/components/primitives/separator/separator.svelte +21 -0
- package/dist/components/primitives/separator/separator.svelte.d.ts +4 -0
- package/dist/components/primitives/slider/index.d.ts +2 -0
- package/dist/components/primitives/slider/index.js +4 -0
- package/dist/components/primitives/slider/slider.svelte +52 -0
- package/dist/components/primitives/slider/slider.svelte.d.ts +5 -0
- package/dist/components/primitives/sonner/index.d.ts +2 -0
- package/dist/components/primitives/sonner/index.js +2 -0
- package/dist/components/primitives/sonner/sonner.svelte +13 -0
- package/dist/components/primitives/sonner/sonner.svelte.d.ts +4 -0
- package/dist/components/primitives/switch/index.d.ts +2 -0
- package/dist/components/primitives/switch/index.js +4 -0
- package/dist/components/primitives/switch/switch.svelte +29 -0
- package/dist/components/primitives/switch/switch.svelte.d.ts +4 -0
- package/dist/components/primitives/tabs/index.d.ts +5 -0
- package/dist/components/primitives/tabs/index.js +7 -0
- package/dist/components/primitives/tabs/tabs-content.svelte +17 -0
- package/dist/components/primitives/tabs/tabs-content.svelte.d.ts +4 -0
- package/dist/components/primitives/tabs/tabs-list.svelte +16 -0
- package/dist/components/primitives/tabs/tabs-list.svelte.d.ts +4 -0
- package/dist/components/primitives/tabs/tabs-trigger.svelte +20 -0
- package/dist/components/primitives/tabs/tabs-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/tabs/tabs.svelte +19 -0
- package/dist/components/primitives/tabs/tabs.svelte.d.ts +4 -0
- package/dist/components/primitives/textarea/index.d.ts +2 -0
- package/dist/components/primitives/textarea/index.js +4 -0
- package/dist/components/primitives/textarea/textarea.svelte +23 -0
- package/dist/components/primitives/textarea/textarea.svelte.d.ts +5 -0
- package/dist/components/primitives/theme-switcher/ThemeSwitcher.svelte +39 -0
- package/dist/components/primitives/theme-switcher/ThemeSwitcher.svelte.d.ts +3 -0
- package/dist/components/primitives/theme-switcher/index.d.ts +1 -0
- package/dist/components/primitives/theme-switcher/index.js +1 -0
- package/dist/components/viewer/MeshMetadataDialog.svelte +122 -0
- package/dist/components/viewer/MeshMetadataDialog.svelte.d.ts +10 -0
- package/dist/components/viewer/SceneManager.svelte +297 -0
- package/dist/components/viewer/SceneManager.svelte.d.ts +8 -0
- package/dist/components/viewer/Viewer.svelte +311 -0
- package/dist/components/viewer/Viewer.svelte.d.ts +18 -0
- package/dist/components/viewer/index.d.ts +3 -0
- package/dist/components/viewer/index.js +3 -0
- package/dist/composables/useFooterItem.svelte.d.ts +15 -0
- package/dist/composables/useFooterItem.svelte.js +33 -0
- package/dist/compute/computeThrottle.svelte.d.ts +24 -0
- package/dist/compute/computeThrottle.svelte.js +70 -0
- package/dist/compute/solving.svelte.d.ts +12 -0
- package/dist/compute/solving.svelte.js +68 -0
- package/dist/constants.d.ts +28 -0
- package/dist/constants.js +32 -0
- package/dist/contexts/footerContext.svelte.d.ts +18 -0
- package/dist/contexts/footerContext.svelte.js +24 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +20 -0
- package/dist/schema/defaults.d.ts +1 -0
- package/dist/schema/defaults.js +13 -0
- package/dist/schema/param-exporter.d.ts +15 -0
- package/dist/schema/param-exporter.js +120 -0
- package/dist/schema/visibility-rules.d.ts +12 -0
- package/dist/schema/visibility-rules.js +63 -0
- package/dist/styles/base.css +145 -0
- package/dist/styles/themes/cyberpunk.css +98 -0
- package/dist/styles/themes/neutral.css +72 -0
- package/dist/styles/themes/ocean.css +75 -0
- package/dist/styles/themes/selva.css +105 -0
- package/dist/theme/themeStore.svelte.d.ts +12 -0
- package/dist/theme/themeStore.svelte.js +40 -0
- package/dist/theme/themes.d.ts +5 -0
- package/dist/theme/themes.js +13 -0
- package/dist/types/actionButton.d.ts +33 -0
- package/dist/types/actionButton.js +1 -0
- package/dist/types/solveFn.d.ts +26 -0
- package/dist/types/solveFn.js +1 -0
- package/dist/utils/color.d.ts +1 -0
- package/dist/utils/color.js +38 -0
- package/dist/utils/debounce.d.ts +14 -0
- package/dist/utils/debounce.js +30 -0
- package/dist/utils/file-download.d.ts +22 -0
- package/dist/utils/file-download.js +93 -0
- package/dist/utils/loadScript.d.ts +14 -0
- package/dist/utils/loadScript.js +38 -0
- package/dist/utils.d.ts +12 -0
- package/dist/utils.js +5 -0
- package/package.json +100 -0
- package/src/lib/components/ErrorScreen.svelte +53 -0
- package/src/lib/components/compute/AppLayout.svelte +470 -0
- package/src/lib/components/compute/CollapsedPanelStrip.svelte +64 -0
- package/src/lib/components/compute/ComputeApp.svelte +243 -0
- package/src/lib/components/compute/ComputeMessages.svelte +169 -0
- package/src/lib/components/compute/ParameterPresetManager.svelte +326 -0
- package/src/lib/components/compute/index.ts +5 -0
- package/src/lib/components/layout/AppShell.svelte +110 -0
- package/src/lib/components/layout/EmptyState.svelte +48 -0
- package/src/lib/components/layout/FooterItemRenderer.svelte +20 -0
- package/src/lib/components/layout/PageContent.svelte +12 -0
- package/src/lib/components/layout/PageFooter.svelte +222 -0
- package/src/lib/components/layout/PageHeader.svelte +67 -0
- package/src/lib/components/layout/SectionHeader.svelte +38 -0
- package/src/lib/components/layout/SideNav.svelte +82 -0
- package/src/lib/components/layout/SubNav.svelte +45 -0
- package/src/lib/components/layout/index.ts +11 -0
- package/src/lib/components/preview/ChartOutput.svelte +222 -0
- package/src/lib/components/preview/Group.svelte +134 -0
- package/src/lib/components/preview/ImageOutput.svelte +156 -0
- package/src/lib/components/preview/InputControl.svelte +130 -0
- package/src/lib/components/preview/OutputDisplay.svelte +297 -0
- package/src/lib/components/preview/TabBar.svelte +36 -0
- package/src/lib/components/preview/TabContent.svelte +125 -0
- package/src/lib/components/preview/TabLayout.svelte +109 -0
- package/src/lib/components/preview/index.ts +4 -0
- package/src/lib/components/preview/inputs/CheckboxInput.svelte +29 -0
- package/src/lib/components/preview/inputs/ChecklistInput.svelte +50 -0
- package/src/lib/components/preview/inputs/ColorInput.svelte +21 -0
- package/src/lib/components/preview/inputs/DropdownInput.svelte +40 -0
- package/src/lib/components/preview/inputs/FileInput.svelte +368 -0
- package/src/lib/components/preview/inputs/NumberInput.svelte +152 -0
- package/src/lib/components/preview/inputs/TextInput.svelte +74 -0
- package/src/lib/components/preview/inputs/index.ts +7 -0
- package/src/lib/components/primitives/CalculateButton.svelte +40 -0
- package/src/lib/components/primitives/DataTable.svelte +39 -0
- package/src/lib/components/primitives/ImageUploadField.svelte +84 -0
- package/src/lib/components/primitives/SolvingIndicator.svelte +54 -0
- package/src/lib/components/primitives/StateDisplay.svelte +106 -0
- package/src/lib/components/primitives/ViewToggle.svelte +47 -0
- package/src/lib/components/primitives/alert/alert-description.svelte +23 -0
- package/src/lib/components/primitives/alert/alert-title.svelte +20 -0
- package/src/lib/components/primitives/alert/alert.svelte +44 -0
- package/src/lib/components/primitives/alert/index.ts +14 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-action.svelte +18 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-cancel.svelte +18 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-content.svelte +27 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-description.svelte +17 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-footer.svelte +20 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-header.svelte +20 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-overlay.svelte +20 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-title.svelte +17 -0
- package/src/lib/components/primitives/alert-dialog/alert-dialog-trigger.svelte +7 -0
- package/src/lib/components/primitives/alert-dialog/index.ts +39 -0
- package/src/lib/components/primitives/badge/badge.svelte +49 -0
- package/src/lib/components/primitives/badge/index.ts +2 -0
- package/src/lib/components/primitives/button/button.svelte +83 -0
- package/src/lib/components/primitives/button/index.ts +17 -0
- package/src/lib/components/primitives/button-group/button-group-separator.svelte +20 -0
- package/src/lib/components/primitives/button-group/button-group-text.svelte +30 -0
- package/src/lib/components/primitives/button-group/button-group.svelte +46 -0
- package/src/lib/components/primitives/button-group/index.ts +13 -0
- package/src/lib/components/primitives/card/card-action.svelte +20 -0
- package/src/lib/components/primitives/card/card-content.svelte +15 -0
- package/src/lib/components/primitives/card/card-description.svelte +20 -0
- package/src/lib/components/primitives/card/card-footer.svelte +20 -0
- package/src/lib/components/primitives/card/card-header.svelte +23 -0
- package/src/lib/components/primitives/card/card-title.svelte +20 -0
- package/src/lib/components/primitives/card/card.svelte +23 -0
- package/src/lib/components/primitives/card/index.ts +25 -0
- package/src/lib/components/primitives/checkbox/checkbox.svelte +36 -0
- package/src/lib/components/primitives/checkbox/index.ts +6 -0
- package/src/lib/components/primitives/collapsible/collapsible-content.svelte +7 -0
- package/src/lib/components/primitives/collapsible/collapsible-trigger.svelte +7 -0
- package/src/lib/components/primitives/collapsible/collapsible.svelte +11 -0
- package/src/lib/components/primitives/collapsible/index.ts +13 -0
- package/src/lib/components/primitives/context-menu/context-menu-checkbox-item.svelte +38 -0
- package/src/lib/components/primitives/context-menu/context-menu-content.svelte +25 -0
- package/src/lib/components/primitives/context-menu/context-menu-group-heading.svelte +21 -0
- package/src/lib/components/primitives/context-menu/context-menu-group.svelte +7 -0
- package/src/lib/components/primitives/context-menu/context-menu-item.svelte +27 -0
- package/src/lib/components/primitives/context-menu/context-menu-label.svelte +24 -0
- package/src/lib/components/primitives/context-menu/context-menu-radio-group.svelte +16 -0
- package/src/lib/components/primitives/context-menu/context-menu-radio-item.svelte +31 -0
- package/src/lib/components/primitives/context-menu/context-menu-separator.svelte +17 -0
- package/src/lib/components/primitives/context-menu/context-menu-shortcut.svelte +20 -0
- package/src/lib/components/primitives/context-menu/context-menu-sub-content.svelte +20 -0
- package/src/lib/components/primitives/context-menu/context-menu-sub-trigger.svelte +29 -0
- package/src/lib/components/primitives/context-menu/context-menu-trigger.svelte +7 -0
- package/src/lib/components/primitives/context-menu/index.ts +51 -0
- package/src/lib/components/primitives/dialog/dialog-close.svelte +7 -0
- package/src/lib/components/primitives/dialog/dialog-content.svelte +43 -0
- package/src/lib/components/primitives/dialog/dialog-description.svelte +17 -0
- package/src/lib/components/primitives/dialog/dialog-footer.svelte +20 -0
- package/src/lib/components/primitives/dialog/dialog-header.svelte +20 -0
- package/src/lib/components/primitives/dialog/dialog-overlay.svelte +20 -0
- package/src/lib/components/primitives/dialog/dialog-title.svelte +17 -0
- package/src/lib/components/primitives/dialog/dialog-trigger.svelte +7 -0
- package/src/lib/components/primitives/dialog/index.ts +37 -0
- package/src/lib/components/primitives/drawer/Drawer.svelte +32 -0
- package/src/lib/components/primitives/drawer/index.ts +1 -0
- package/src/lib/components/primitives/field/field-content.svelte +20 -0
- package/src/lib/components/primitives/field/field-description.svelte +25 -0
- package/src/lib/components/primitives/field/field-error.svelte +58 -0
- package/src/lib/components/primitives/field/field-group.svelte +23 -0
- package/src/lib/components/primitives/field/field-label.svelte +26 -0
- package/src/lib/components/primitives/field/field-legend.svelte +29 -0
- package/src/lib/components/primitives/field/field-separator.svelte +35 -0
- package/src/lib/components/primitives/field/field-set.svelte +24 -0
- package/src/lib/components/primitives/field/field-title.svelte +23 -0
- package/src/lib/components/primitives/field/field.svelte +53 -0
- package/src/lib/components/primitives/field/index.ts +33 -0
- package/src/lib/components/primitives/index.ts +41 -0
- package/src/lib/components/primitives/input/index.ts +7 -0
- package/src/lib/components/primitives/input/input.svelte +52 -0
- package/src/lib/components/primitives/label/index.ts +7 -0
- package/src/lib/components/primitives/label/label.svelte +20 -0
- package/src/lib/components/primitives/mode-toggle/index.ts +1 -0
- package/src/lib/components/primitives/mode-toggle/mode-toggle.svelte +16 -0
- package/src/lib/components/primitives/resizable/index.ts +13 -0
- package/src/lib/components/primitives/resizable/resizable-handle.svelte +27 -0
- package/src/lib/components/primitives/resizable/resizable-pane-group.svelte +24 -0
- package/src/lib/components/primitives/scroll-area/index.ts +10 -0
- package/src/lib/components/primitives/scroll-area/scroll-area-scrollbar.svelte +31 -0
- package/src/lib/components/primitives/scroll-area/scroll-area.svelte +43 -0
- package/src/lib/components/primitives/search/index.ts +7 -0
- package/src/lib/components/primitives/search/search.svelte +79 -0
- package/src/lib/components/primitives/select/index.ts +37 -0
- package/src/lib/components/primitives/select/select-content.svelte +40 -0
- package/src/lib/components/primitives/select/select-group-heading.svelte +21 -0
- package/src/lib/components/primitives/select/select-group.svelte +7 -0
- package/src/lib/components/primitives/select/select-item.svelte +38 -0
- package/src/lib/components/primitives/select/select-label.svelte +20 -0
- package/src/lib/components/primitives/select/select-scroll-down-button.svelte +20 -0
- package/src/lib/components/primitives/select/select-scroll-up-button.svelte +20 -0
- package/src/lib/components/primitives/select/select-separator.svelte +18 -0
- package/src/lib/components/primitives/select/select-trigger.svelte +29 -0
- package/src/lib/components/primitives/separator/index.ts +7 -0
- package/src/lib/components/primitives/separator/separator.svelte +21 -0
- package/src/lib/components/primitives/slider/index.ts +7 -0
- package/src/lib/components/primitives/slider/slider.svelte +52 -0
- package/src/lib/components/primitives/sonner/index.ts +2 -0
- package/src/lib/components/primitives/sonner/sonner.svelte +13 -0
- package/src/lib/components/primitives/switch/index.ts +7 -0
- package/src/lib/components/primitives/switch/switch.svelte +29 -0
- package/src/lib/components/primitives/tabs/index.ts +16 -0
- package/src/lib/components/primitives/tabs/tabs-content.svelte +17 -0
- package/src/lib/components/primitives/tabs/tabs-list.svelte +16 -0
- package/src/lib/components/primitives/tabs/tabs-trigger.svelte +20 -0
- package/src/lib/components/primitives/tabs/tabs.svelte +19 -0
- package/src/lib/components/primitives/textarea/index.ts +7 -0
- package/src/lib/components/primitives/textarea/textarea.svelte +23 -0
- package/src/lib/components/primitives/theme-switcher/ThemeSwitcher.svelte +39 -0
- package/src/lib/components/primitives/theme-switcher/index.ts +1 -0
- package/src/lib/components/viewer/MeshMetadataDialog.svelte +122 -0
- package/src/lib/components/viewer/SceneManager.svelte +297 -0
- package/src/lib/components/viewer/Viewer.svelte +311 -0
- package/src/lib/components/viewer/index.ts +3 -0
- package/src/lib/composables/useFooterItem.svelte.ts +40 -0
- package/src/lib/compute/computeThrottle.svelte.ts +97 -0
- package/src/lib/compute/solving.svelte.ts +77 -0
- package/src/lib/constants.ts +35 -0
- package/src/lib/contexts/footerContext.svelte.ts +54 -0
- package/src/lib/index.ts +31 -0
- package/src/lib/schema/defaults.ts +13 -0
- package/src/lib/schema/param-exporter.ts +160 -0
- package/src/lib/schema/visibility-rules.ts +94 -0
- package/src/lib/styles/base.css +145 -0
- package/src/lib/styles/themes/cyberpunk.css +98 -0
- package/src/lib/styles/themes/neutral.css +72 -0
- package/src/lib/styles/themes/ocean.css +75 -0
- package/src/lib/styles/themes/selva.css +105 -0
- package/src/lib/theme/themeStore.svelte.ts +50 -0
- package/src/lib/theme/themes.ts +18 -0
- package/src/lib/types/actionButton.ts +33 -0
- package/src/lib/types/solveFn.ts +29 -0
- package/src/lib/utils/color.ts +45 -0
- package/src/lib/utils/debounce.ts +36 -0
- package/src/lib/utils/file-download.ts +108 -0
- package/src/lib/utils/loadScript.ts +48 -0
- package/src/lib/utils.ts +13 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Separator } from '$lib/components/primitives/separator/index.js';
|
|
3
|
+
import { cn, type WithElementRef } from '$lib/utils.js';
|
|
4
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
|
+
import type { Snippet } from 'svelte';
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
ref = $bindable(null),
|
|
9
|
+
class: className,
|
|
10
|
+
children,
|
|
11
|
+
...restProps
|
|
12
|
+
}: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
|
|
13
|
+
children?: Snippet;
|
|
14
|
+
} = $props();
|
|
15
|
+
|
|
16
|
+
const hasContent = $derived(!!children);
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<div
|
|
20
|
+
bind:this={ref}
|
|
21
|
+
data-slot="field-separator"
|
|
22
|
+
data-content={hasContent}
|
|
23
|
+
class={cn('-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative', className)}
|
|
24
|
+
{...restProps}
|
|
25
|
+
>
|
|
26
|
+
<Separator class="inset-0 absolute top-1/2" />
|
|
27
|
+
{#if children}
|
|
28
|
+
<span
|
|
29
|
+
class="px-2 relative mx-auto block w-fit bg-background text-muted-foreground"
|
|
30
|
+
data-slot="field-separator-content"
|
|
31
|
+
>
|
|
32
|
+
{@render children()}
|
|
33
|
+
</span>
|
|
34
|
+
{/if}
|
|
35
|
+
</div>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn, type WithElementRef } from '$lib/utils.js';
|
|
3
|
+
import type { HTMLFieldsetAttributes } from 'svelte/elements';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
ref = $bindable(null),
|
|
7
|
+
class: className,
|
|
8
|
+
children,
|
|
9
|
+
...restProps
|
|
10
|
+
}: WithElementRef<HTMLFieldsetAttributes> = $props();
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<fieldset
|
|
14
|
+
bind:this={ref}
|
|
15
|
+
data-slot="field-set"
|
|
16
|
+
class={cn(
|
|
17
|
+
'gap-6 flex flex-col',
|
|
18
|
+
'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',
|
|
19
|
+
className
|
|
20
|
+
)}
|
|
21
|
+
{...restProps}
|
|
22
|
+
>
|
|
23
|
+
{@render children?.()}
|
|
24
|
+
</fieldset>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { cn, type WithElementRef } from '$lib/utils.js';
|
|
3
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
ref = $bindable(null),
|
|
7
|
+
class: className,
|
|
8
|
+
children,
|
|
9
|
+
...restProps
|
|
10
|
+
}: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<div
|
|
14
|
+
bind:this={ref}
|
|
15
|
+
data-slot="field-title"
|
|
16
|
+
class={cn(
|
|
17
|
+
'gap-2 text-sm leading-snug font-medium flex w-fit items-center group-data-[disabled=true]/field:opacity-50',
|
|
18
|
+
className
|
|
19
|
+
)}
|
|
20
|
+
{...restProps}
|
|
21
|
+
>
|
|
22
|
+
{@render children?.()}
|
|
23
|
+
</div>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import { tv, type VariantProps } from 'tailwind-variants';
|
|
3
|
+
|
|
4
|
+
export const fieldVariants = tv({
|
|
5
|
+
base: 'group/field data-[invalid=true]:text-destructive flex w-full gap-3',
|
|
6
|
+
variants: {
|
|
7
|
+
orientation: {
|
|
8
|
+
vertical: 'flex-col [&>*]:w-full [&>.sr-only]:w-auto',
|
|
9
|
+
horizontal: [
|
|
10
|
+
'flex-row items-center',
|
|
11
|
+
'[&>[data-slot=field-label]]:flex-auto',
|
|
12
|
+
'has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px'
|
|
13
|
+
],
|
|
14
|
+
responsive: [
|
|
15
|
+
'flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto',
|
|
16
|
+
'@md/field-group:[&>[data-slot=field-label]]:flex-auto',
|
|
17
|
+
'@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px'
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
orientation: 'vertical'
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export type FieldOrientation = VariantProps<typeof fieldVariants>['orientation'];
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<script lang="ts">
|
|
30
|
+
import { cn, type WithElementRef } from '$lib/utils.js';
|
|
31
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
32
|
+
|
|
33
|
+
let {
|
|
34
|
+
ref = $bindable(null),
|
|
35
|
+
class: className,
|
|
36
|
+
orientation = 'vertical',
|
|
37
|
+
children,
|
|
38
|
+
...restProps
|
|
39
|
+
}: WithElementRef<HTMLAttributes<HTMLDivElement>> & {
|
|
40
|
+
orientation?: FieldOrientation;
|
|
41
|
+
} = $props();
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<div
|
|
45
|
+
bind:this={ref}
|
|
46
|
+
role="group"
|
|
47
|
+
data-slot="field"
|
|
48
|
+
data-orientation={orientation}
|
|
49
|
+
class={cn(fieldVariants({ orientation }), className)}
|
|
50
|
+
{...restProps}
|
|
51
|
+
>
|
|
52
|
+
{@render children?.()}
|
|
53
|
+
</div>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import Field from './field.svelte';
|
|
2
|
+
import Set from './field-set.svelte';
|
|
3
|
+
import Legend from './field-legend.svelte';
|
|
4
|
+
import Group from './field-group.svelte';
|
|
5
|
+
import Content from './field-content.svelte';
|
|
6
|
+
import Label from './field-label.svelte';
|
|
7
|
+
import Title from './field-title.svelte';
|
|
8
|
+
import Description from './field-description.svelte';
|
|
9
|
+
import Separator from './field-separator.svelte';
|
|
10
|
+
import Error from './field-error.svelte';
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
Field,
|
|
14
|
+
Set,
|
|
15
|
+
Legend,
|
|
16
|
+
Group,
|
|
17
|
+
Content,
|
|
18
|
+
Label,
|
|
19
|
+
Title,
|
|
20
|
+
Description,
|
|
21
|
+
Separator,
|
|
22
|
+
Error,
|
|
23
|
+
//
|
|
24
|
+
Set as FieldSet,
|
|
25
|
+
Legend as FieldLegend,
|
|
26
|
+
Group as FieldGroup,
|
|
27
|
+
Content as FieldContent,
|
|
28
|
+
Label as FieldLabel,
|
|
29
|
+
Title as FieldTitle,
|
|
30
|
+
Description as FieldDescription,
|
|
31
|
+
Separator as FieldSeparator,
|
|
32
|
+
Error as FieldError
|
|
33
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// UI Primitives - Reusable design system components
|
|
2
|
+
|
|
3
|
+
// shadcn-svelte components
|
|
4
|
+
export {
|
|
5
|
+
Button,
|
|
6
|
+
buttonVariants,
|
|
7
|
+
type ButtonProps,
|
|
8
|
+
type ButtonVariant,
|
|
9
|
+
type ButtonSize
|
|
10
|
+
} from './button';
|
|
11
|
+
export { Badge, badgeVariants, type BadgeVariant } from './badge';
|
|
12
|
+
export { Input } from './input';
|
|
13
|
+
export { Search } from './search';
|
|
14
|
+
export { Textarea } from './textarea';
|
|
15
|
+
export { Label } from './label';
|
|
16
|
+
export { Checkbox } from './checkbox';
|
|
17
|
+
export { Slider } from './slider';
|
|
18
|
+
export * as Select from './select';
|
|
19
|
+
export * as Card from './card';
|
|
20
|
+
export * as Tabs from './tabs';
|
|
21
|
+
export * as Dialog from './dialog';
|
|
22
|
+
export { Drawer } from './drawer';
|
|
23
|
+
export * as Alert from './alert';
|
|
24
|
+
export * as AlertDialog from './alert-dialog';
|
|
25
|
+
export * as ContextMenu from './context-menu';
|
|
26
|
+
export * as Collapsible from './collapsible';
|
|
27
|
+
export { ScrollArea } from './scroll-area';
|
|
28
|
+
export * as Resizable from './resizable';
|
|
29
|
+
|
|
30
|
+
export { Separator } from './separator';
|
|
31
|
+
export { Switch } from './switch';
|
|
32
|
+
export { Toaster, toast } from './sonner';
|
|
33
|
+
export { ThemeSwitcher } from './theme-switcher';
|
|
34
|
+
|
|
35
|
+
// Custom components (not replaced by shadcn)
|
|
36
|
+
export { default as StateDisplay } from './StateDisplay.svelte';
|
|
37
|
+
export { default as CalculateButton } from './CalculateButton.svelte';
|
|
38
|
+
export { ModeToggle } from './mode-toggle';
|
|
39
|
+
export { default as ViewToggle } from './ViewToggle.svelte';
|
|
40
|
+
export { default as ImageUploadField } from './ImageUploadField.svelte';
|
|
41
|
+
export { default as DataTable, type DataTableColumn } from './DataTable.svelte';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { HTMLInputAttributes, HTMLInputTypeAttribute } from 'svelte/elements';
|
|
3
|
+
import { cn, type WithElementRef } from '$lib/utils.js';
|
|
4
|
+
|
|
5
|
+
type InputType = Exclude<HTMLInputTypeAttribute, 'file'>;
|
|
6
|
+
|
|
7
|
+
type Props = WithElementRef<
|
|
8
|
+
Omit<HTMLInputAttributes, 'type'> &
|
|
9
|
+
({ type: 'file'; files?: FileList } | { type?: InputType; files?: undefined })
|
|
10
|
+
>;
|
|
11
|
+
|
|
12
|
+
let {
|
|
13
|
+
ref = $bindable(null),
|
|
14
|
+
value = $bindable(''),
|
|
15
|
+
type,
|
|
16
|
+
files = $bindable(),
|
|
17
|
+
class: className,
|
|
18
|
+
'data-slot': dataSlot = 'input',
|
|
19
|
+
...restProps
|
|
20
|
+
}: Props = $props();
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
{#if type === 'file'}
|
|
24
|
+
<input
|
|
25
|
+
bind:this={ref}
|
|
26
|
+
data-slot={dataSlot}
|
|
27
|
+
class={cn(
|
|
28
|
+
'h-9 min-w-0 px-3 pt-1.5 text-sm font-medium shadow-xs flex w-full rounded-md border border-input bg-transparent ring-offset-background transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30',
|
|
29
|
+
'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
30
|
+
'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
|
|
31
|
+
className
|
|
32
|
+
)}
|
|
33
|
+
type="file"
|
|
34
|
+
bind:files
|
|
35
|
+
bind:value
|
|
36
|
+
{...restProps}
|
|
37
|
+
/>
|
|
38
|
+
{:else}
|
|
39
|
+
<input
|
|
40
|
+
bind:this={ref}
|
|
41
|
+
data-slot={dataSlot}
|
|
42
|
+
class={cn(
|
|
43
|
+
'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-background ring-offset-background transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30',
|
|
44
|
+
'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
45
|
+
'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
|
|
46
|
+
className
|
|
47
|
+
)}
|
|
48
|
+
{type}
|
|
49
|
+
bind:value
|
|
50
|
+
{...restProps}
|
|
51
|
+
/>
|
|
52
|
+
{/if}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Label as LabelPrimitive } from 'bits-ui';
|
|
3
|
+
import { cn } from '$lib/utils.js';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
ref = $bindable(null),
|
|
7
|
+
class: className,
|
|
8
|
+
...restProps
|
|
9
|
+
}: LabelPrimitive.RootProps = $props();
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<LabelPrimitive.Root
|
|
13
|
+
bind:ref
|
|
14
|
+
data-slot="label"
|
|
15
|
+
class={cn(
|
|
16
|
+
'gap-2 text-sm font-medium flex items-center leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
|
|
17
|
+
className
|
|
18
|
+
)}
|
|
19
|
+
{...restProps}
|
|
20
|
+
/>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as ModeToggle } from './mode-toggle.svelte';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Sun from '@lucide/svelte/icons/sun';
|
|
3
|
+
import Moon from '@lucide/svelte/icons/moon';
|
|
4
|
+
import { toggleMode } from 'mode-watcher';
|
|
5
|
+
import { Button } from '$lib/components/primitives/button';
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<Button onclick={toggleMode} variant="outline" size="icon">
|
|
9
|
+
<Sun
|
|
10
|
+
class="h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90"
|
|
11
|
+
/>
|
|
12
|
+
<Moon
|
|
13
|
+
class="absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0"
|
|
14
|
+
/>
|
|
15
|
+
<span class="sr-only">Toggle theme</span>
|
|
16
|
+
</Button>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Pane } from 'paneforge';
|
|
2
|
+
import Handle from './resizable-handle.svelte';
|
|
3
|
+
import PaneGroup from './resizable-pane-group.svelte';
|
|
4
|
+
|
|
5
|
+
export {
|
|
6
|
+
PaneGroup,
|
|
7
|
+
Pane,
|
|
8
|
+
Handle,
|
|
9
|
+
//
|
|
10
|
+
PaneGroup as ResizablePaneGroup,
|
|
11
|
+
Pane as ResizablePane,
|
|
12
|
+
Handle as ResizableHandle
|
|
13
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as ResizablePrimitive from 'paneforge';
|
|
3
|
+
import { cn, type WithoutChildrenOrChild } from '$lib/utils.js';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
ref = $bindable(null),
|
|
7
|
+
class: className,
|
|
8
|
+
withHandle = false,
|
|
9
|
+
...restProps
|
|
10
|
+
}: WithoutChildrenOrChild<ResizablePrimitive.PaneResizerProps> & {
|
|
11
|
+
withHandle?: boolean;
|
|
12
|
+
} = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<ResizablePrimitive.PaneResizer
|
|
16
|
+
bind:ref
|
|
17
|
+
data-slot="resizable-handle"
|
|
18
|
+
class={cn(
|
|
19
|
+
'cn-resizable-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 bg-border 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',
|
|
20
|
+
className
|
|
21
|
+
)}
|
|
22
|
+
{...restProps}
|
|
23
|
+
>
|
|
24
|
+
{#if withHandle}
|
|
25
|
+
<div class="h-6 w-1 z-10 flex shrink-0 rounded-lg bg-border"></div>
|
|
26
|
+
{/if}
|
|
27
|
+
</ResizablePrimitive.PaneResizer>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import * as ResizablePrimitive from 'paneforge';
|
|
3
|
+
import { cn } from '$lib/utils.js';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
ref = $bindable(null),
|
|
7
|
+
this: paneGroup = $bindable(),
|
|
8
|
+
class: className,
|
|
9
|
+
...restProps
|
|
10
|
+
}: ResizablePrimitive.PaneGroupProps & {
|
|
11
|
+
this?: ResizablePrimitive.PaneGroup;
|
|
12
|
+
} = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<ResizablePrimitive.PaneGroup
|
|
16
|
+
bind:ref
|
|
17
|
+
bind:this={paneGroup}
|
|
18
|
+
data-slot="resizable-pane-group"
|
|
19
|
+
class={cn(
|
|
20
|
+
'cn-resizable-panel-group flex h-full w-full data-[direction=vertical]:flex-col',
|
|
21
|
+
className
|
|
22
|
+
)}
|
|
23
|
+
{...restProps}
|
|
24
|
+
/>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { ScrollArea as ScrollAreaPrimitive } from 'bits-ui';
|
|
3
|
+
import { cn, type WithoutChild } from '$lib/utils.js';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
ref = $bindable(null),
|
|
7
|
+
class: className,
|
|
8
|
+
orientation = 'vertical',
|
|
9
|
+
children,
|
|
10
|
+
...restProps
|
|
11
|
+
}: WithoutChild<ScrollAreaPrimitive.ScrollbarProps> = $props();
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<ScrollAreaPrimitive.Scrollbar
|
|
15
|
+
bind:ref
|
|
16
|
+
data-slot="scroll-area-scrollbar"
|
|
17
|
+
{orientation}
|
|
18
|
+
class={cn(
|
|
19
|
+
'flex touch-none p-px transition-colors select-none',
|
|
20
|
+
orientation === 'vertical' && 'w-2.5 h-full border-s border-s-transparent',
|
|
21
|
+
orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent',
|
|
22
|
+
className
|
|
23
|
+
)}
|
|
24
|
+
{...restProps}
|
|
25
|
+
>
|
|
26
|
+
{@render children?.()}
|
|
27
|
+
<ScrollAreaPrimitive.Thumb
|
|
28
|
+
data-slot="scroll-area-thumb"
|
|
29
|
+
class="relative flex-1 rounded-full bg-border"
|
|
30
|
+
/>
|
|
31
|
+
</ScrollAreaPrimitive.Scrollbar>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { ScrollArea as ScrollAreaPrimitive } from 'bits-ui';
|
|
3
|
+
import { Scrollbar } from './index.js';
|
|
4
|
+
import { cn, type WithoutChild } from '$lib/utils.js';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
ref = $bindable(null),
|
|
8
|
+
viewportRef = $bindable(null),
|
|
9
|
+
class: className,
|
|
10
|
+
orientation = 'vertical',
|
|
11
|
+
scrollbarXClasses = '',
|
|
12
|
+
scrollbarYClasses = '',
|
|
13
|
+
children,
|
|
14
|
+
...restProps
|
|
15
|
+
}: WithoutChild<ScrollAreaPrimitive.RootProps> & {
|
|
16
|
+
orientation?: 'vertical' | 'horizontal' | 'both' | undefined;
|
|
17
|
+
scrollbarXClasses?: string | undefined;
|
|
18
|
+
scrollbarYClasses?: string | undefined;
|
|
19
|
+
viewportRef?: HTMLElement | null;
|
|
20
|
+
} = $props();
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<ScrollAreaPrimitive.Root
|
|
24
|
+
bind:ref
|
|
25
|
+
data-slot="scroll-area"
|
|
26
|
+
class={cn('relative', className)}
|
|
27
|
+
{...restProps}
|
|
28
|
+
>
|
|
29
|
+
<ScrollAreaPrimitive.Viewport
|
|
30
|
+
bind:ref={viewportRef}
|
|
31
|
+
data-slot="scroll-area-viewport"
|
|
32
|
+
class="size-full rounded-[inherit] ring-ring/10 outline-ring/50 transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 dark:ring-ring/20 dark:outline-ring/40"
|
|
33
|
+
>
|
|
34
|
+
{@render children?.()}
|
|
35
|
+
</ScrollAreaPrimitive.Viewport>
|
|
36
|
+
{#if orientation === 'vertical' || orientation === 'both'}
|
|
37
|
+
<Scrollbar orientation="vertical" class={scrollbarYClasses} />
|
|
38
|
+
{/if}
|
|
39
|
+
{#if orientation === 'horizontal' || orientation === 'both'}
|
|
40
|
+
<Scrollbar orientation="horizontal" class={scrollbarXClasses} />
|
|
41
|
+
{/if}
|
|
42
|
+
<ScrollAreaPrimitive.Corner />
|
|
43
|
+
</ScrollAreaPrimitive.Root>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
4
|
+
import { Search as SearchIcon, X as XIcon } from '@lucide/svelte';
|
|
5
|
+
import { cn, type WithElementRef } from '$lib/utils.js';
|
|
6
|
+
|
|
7
|
+
type Props = WithElementRef<
|
|
8
|
+
Omit<HTMLInputAttributes, 'type'> & {
|
|
9
|
+
clearable?: boolean;
|
|
10
|
+
badge?: string | number;
|
|
11
|
+
badgeClass?: string;
|
|
12
|
+
containerClass?: string;
|
|
13
|
+
children?: Snippet;
|
|
14
|
+
},
|
|
15
|
+
HTMLInputElement
|
|
16
|
+
>;
|
|
17
|
+
|
|
18
|
+
let {
|
|
19
|
+
ref = $bindable(null),
|
|
20
|
+
value = $bindable(''),
|
|
21
|
+
clearable = false,
|
|
22
|
+
badge,
|
|
23
|
+
badgeClass,
|
|
24
|
+
containerClass,
|
|
25
|
+
placeholder = 'Search...',
|
|
26
|
+
class: className,
|
|
27
|
+
children,
|
|
28
|
+
...restProps
|
|
29
|
+
}: Props = $props();
|
|
30
|
+
|
|
31
|
+
const handleClear = () => {
|
|
32
|
+
value = '';
|
|
33
|
+
ref?.focus();
|
|
34
|
+
};
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<div class={cn('relative w-full', containerClass)}>
|
|
38
|
+
<SearchIcon
|
|
39
|
+
class="left-3 h-3.5 w-3.5 pointer-events-none absolute top-1/2 -translate-y-1/2 text-muted-foreground"
|
|
40
|
+
/>
|
|
41
|
+
<input
|
|
42
|
+
bind:this={ref}
|
|
43
|
+
bind:value
|
|
44
|
+
type="search"
|
|
45
|
+
{placeholder}
|
|
46
|
+
data-slot="input"
|
|
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-background ring-offset-background transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30',
|
|
49
|
+
'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
50
|
+
'aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40',
|
|
51
|
+
'pl-9 pr-12',
|
|
52
|
+
className
|
|
53
|
+
)}
|
|
54
|
+
{...restProps}
|
|
55
|
+
/>
|
|
56
|
+
{#if clearable && value}
|
|
57
|
+
<button
|
|
58
|
+
type="button"
|
|
59
|
+
onclick={handleClear}
|
|
60
|
+
class="right-3 absolute top-1/2 -translate-y-1/2 text-muted-foreground transition-colors hover:text-foreground"
|
|
61
|
+
aria-label="Clear search"
|
|
62
|
+
>
|
|
63
|
+
<XIcon class="h-4 w-4" />
|
|
64
|
+
</button>
|
|
65
|
+
{:else if badge !== undefined}
|
|
66
|
+
<span
|
|
67
|
+
class={cn(
|
|
68
|
+
'right-3 font-mono absolute top-1/2 -translate-y-1/2 text-[12px] text-muted-foreground',
|
|
69
|
+
badgeClass
|
|
70
|
+
)}
|
|
71
|
+
>
|
|
72
|
+
{badge}
|
|
73
|
+
</span>
|
|
74
|
+
{:else if children}
|
|
75
|
+
<div class="right-3 pointer-events-none absolute top-1/2 -translate-y-1/2">
|
|
76
|
+
{@render children()}
|
|
77
|
+
</div>
|
|
78
|
+
{/if}
|
|
79
|
+
</div>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
2
|
+
|
|
3
|
+
import Group from './select-group.svelte';
|
|
4
|
+
import Label from './select-label.svelte';
|
|
5
|
+
import Item from './select-item.svelte';
|
|
6
|
+
import Content from './select-content.svelte';
|
|
7
|
+
import Trigger from './select-trigger.svelte';
|
|
8
|
+
import Separator from './select-separator.svelte';
|
|
9
|
+
import ScrollDownButton from './select-scroll-down-button.svelte';
|
|
10
|
+
import ScrollUpButton from './select-scroll-up-button.svelte';
|
|
11
|
+
import GroupHeading from './select-group-heading.svelte';
|
|
12
|
+
|
|
13
|
+
const Root = SelectPrimitive.Root;
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
Root,
|
|
17
|
+
Group,
|
|
18
|
+
Label,
|
|
19
|
+
Item,
|
|
20
|
+
Content,
|
|
21
|
+
Trigger,
|
|
22
|
+
Separator,
|
|
23
|
+
ScrollDownButton,
|
|
24
|
+
ScrollUpButton,
|
|
25
|
+
GroupHeading,
|
|
26
|
+
//
|
|
27
|
+
Root as Select,
|
|
28
|
+
Group as SelectGroup,
|
|
29
|
+
Label as SelectLabel,
|
|
30
|
+
Item as SelectItem,
|
|
31
|
+
Content as SelectContent,
|
|
32
|
+
Trigger as SelectTrigger,
|
|
33
|
+
Separator as SelectSeparator,
|
|
34
|
+
ScrollDownButton as SelectScrollDownButton,
|
|
35
|
+
ScrollUpButton as SelectScrollUpButton,
|
|
36
|
+
GroupHeading as SelectGroupHeading
|
|
37
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
3
|
+
import SelectScrollUpButton from './select-scroll-up-button.svelte';
|
|
4
|
+
import SelectScrollDownButton from './select-scroll-down-button.svelte';
|
|
5
|
+
import { cn, type WithoutChild } from '$lib/utils.js';
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
ref = $bindable(null),
|
|
9
|
+
class: className,
|
|
10
|
+
sideOffset = 4,
|
|
11
|
+
portalProps,
|
|
12
|
+
children,
|
|
13
|
+
...restProps
|
|
14
|
+
}: WithoutChild<SelectPrimitive.ContentProps> & {
|
|
15
|
+
portalProps?: SelectPrimitive.PortalProps;
|
|
16
|
+
} = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<SelectPrimitive.Portal {...portalProps}>
|
|
20
|
+
<SelectPrimitive.Content
|
|
21
|
+
bind:ref
|
|
22
|
+
{sideOffset}
|
|
23
|
+
data-slot="select-content"
|
|
24
|
+
class={cn(
|
|
25
|
+
'shadow-md 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 relative z-50 max-h-(--bits-select-content-available-height) min-w-[8rem] origin-(--bits-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground',
|
|
26
|
+
className
|
|
27
|
+
)}
|
|
28
|
+
{...restProps}
|
|
29
|
+
>
|
|
30
|
+
<SelectScrollUpButton />
|
|
31
|
+
<SelectPrimitive.Viewport
|
|
32
|
+
class={cn(
|
|
33
|
+
'scroll-my-1 p-1 h-(--bits-select-anchor-height) w-full min-w-(--bits-select-anchor-width)'
|
|
34
|
+
)}
|
|
35
|
+
>
|
|
36
|
+
{@render children?.()}
|
|
37
|
+
</SelectPrimitive.Viewport>
|
|
38
|
+
<SelectScrollDownButton />
|
|
39
|
+
</SelectPrimitive.Content>
|
|
40
|
+
</SelectPrimitive.Portal>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
3
|
+
import { cn } from '$lib/utils.js';
|
|
4
|
+
import type { ComponentProps } from 'svelte';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
ref = $bindable(null),
|
|
8
|
+
class: className,
|
|
9
|
+
children,
|
|
10
|
+
...restProps
|
|
11
|
+
}: ComponentProps<typeof SelectPrimitive.GroupHeading> = $props();
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<SelectPrimitive.GroupHeading
|
|
15
|
+
bind:ref
|
|
16
|
+
data-slot="select-group-heading"
|
|
17
|
+
class={cn('px-2 py-1.5 text-xs text-muted-foreground', className)}
|
|
18
|
+
{...restProps}
|
|
19
|
+
>
|
|
20
|
+
{@render children?.()}
|
|
21
|
+
</SelectPrimitive.GroupHeading>
|