@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,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debounce utility - delays function execution until after a specified wait time
|
|
3
|
+
* has elapsed since the last time it was invoked.
|
|
4
|
+
*
|
|
5
|
+
* Use for text inputs, search boxes, etc. where you want to wait for the user
|
|
6
|
+
* to finish typing before executing. For sliders, use throttle() instead.
|
|
7
|
+
*
|
|
8
|
+
* @param func The function to debounce
|
|
9
|
+
* @param wait The delay in milliseconds
|
|
10
|
+
* @returns A debounced version of the function with a cancel method
|
|
11
|
+
*/
|
|
12
|
+
export declare function debounce<T extends (...args: any[]) => any>(func: T, wait: number): ((...args: Parameters<T>) => void) & {
|
|
13
|
+
cancel: () => void;
|
|
14
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debounce utility - delays function execution until after a specified wait time
|
|
3
|
+
* has elapsed since the last time it was invoked.
|
|
4
|
+
*
|
|
5
|
+
* Use for text inputs, search boxes, etc. where you want to wait for the user
|
|
6
|
+
* to finish typing before executing. For sliders, use throttle() instead.
|
|
7
|
+
*
|
|
8
|
+
* @param func The function to debounce
|
|
9
|
+
* @param wait The delay in milliseconds
|
|
10
|
+
* @returns A debounced version of the function with a cancel method
|
|
11
|
+
*/
|
|
12
|
+
export function debounce(func, wait) {
|
|
13
|
+
let timeout = null;
|
|
14
|
+
function debounced(...args) {
|
|
15
|
+
if (timeout !== null) {
|
|
16
|
+
clearTimeout(timeout);
|
|
17
|
+
}
|
|
18
|
+
timeout = setTimeout(() => {
|
|
19
|
+
func(...args);
|
|
20
|
+
timeout = null;
|
|
21
|
+
}, wait);
|
|
22
|
+
}
|
|
23
|
+
debounced.cancel = () => {
|
|
24
|
+
if (timeout !== null) {
|
|
25
|
+
clearTimeout(timeout);
|
|
26
|
+
timeout = null;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
return debounced;
|
|
30
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrapper utilities for file downloads from Grasshopper outputs
|
|
3
|
+
* Uses the core package implementation for file handling
|
|
4
|
+
*/
|
|
5
|
+
import { type FileData } from '@selvajs/compute';
|
|
6
|
+
/**
|
|
7
|
+
* Download file(s) from Grasshopper outputs
|
|
8
|
+
* Single files are downloaded directly, multiple files are packaged as ZIP
|
|
9
|
+
*/
|
|
10
|
+
export declare function downloadFiles(fileData: FileData | FileData[], fileName?: string): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Check if data is FileData
|
|
13
|
+
*/
|
|
14
|
+
export declare function isFileData(data: unknown): data is FileData;
|
|
15
|
+
/**
|
|
16
|
+
* Format file size for display
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatFileSize(bytes: number): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get approximate file size from base64 string
|
|
21
|
+
*/
|
|
22
|
+
export declare function getBase64FileSize(base64: string): number;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wrapper utilities for file downloads from Grasshopper outputs
|
|
3
|
+
* Uses the core package implementation for file handling
|
|
4
|
+
*/
|
|
5
|
+
import { downloadFileData } from '@selvajs/compute';
|
|
6
|
+
import { APP_DEFAULTS } from '../constants';
|
|
7
|
+
const MIME_BY_EXT = {
|
|
8
|
+
'.png': 'image/png',
|
|
9
|
+
'.jpg': 'image/jpeg',
|
|
10
|
+
'.jpeg': 'image/jpeg',
|
|
11
|
+
'.webp': 'image/webp',
|
|
12
|
+
'.gif': 'image/gif',
|
|
13
|
+
'.svg': 'image/svg+xml',
|
|
14
|
+
'.json': 'application/json',
|
|
15
|
+
'.txt': 'text/plain',
|
|
16
|
+
'.csv': 'text/csv',
|
|
17
|
+
'.xml': 'application/xml',
|
|
18
|
+
'.pdf': 'application/pdf',
|
|
19
|
+
'.3dm': 'model/vnd.3dm',
|
|
20
|
+
'.obj': 'model/obj',
|
|
21
|
+
'.stl': 'model/stl'
|
|
22
|
+
};
|
|
23
|
+
function saveSingleFile(file) {
|
|
24
|
+
const ext = (file.fileType ?? '').toLowerCase();
|
|
25
|
+
const mime = MIME_BY_EXT[ext] ?? 'application/octet-stream';
|
|
26
|
+
let blob;
|
|
27
|
+
if (file.isBase64Encoded) {
|
|
28
|
+
const binary = atob(file.data);
|
|
29
|
+
const bytes = new Uint8Array(binary.length);
|
|
30
|
+
for (let i = 0; i < binary.length; i++)
|
|
31
|
+
bytes[i] = binary.charCodeAt(i);
|
|
32
|
+
blob = new Blob([bytes], { type: mime });
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
blob = new Blob([file.data], { type: mime });
|
|
36
|
+
}
|
|
37
|
+
const fullName = `${file.fileName}${file.fileType ?? ''}`;
|
|
38
|
+
const a = document.createElement('a');
|
|
39
|
+
a.href = URL.createObjectURL(blob);
|
|
40
|
+
a.download = fullName;
|
|
41
|
+
a.click();
|
|
42
|
+
URL.revokeObjectURL(a.href);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Download file(s) from Grasshopper outputs
|
|
46
|
+
* Single files are downloaded directly, multiple files are packaged as ZIP
|
|
47
|
+
*/
|
|
48
|
+
export async function downloadFiles(fileData, fileName = 'grasshopper-output') {
|
|
49
|
+
try {
|
|
50
|
+
const filesArray = Array.isArray(fileData) ? fileData : [fileData];
|
|
51
|
+
if (filesArray.length === 0) {
|
|
52
|
+
console.warn('[FileDownload] No files to download');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (filesArray.length === 1) {
|
|
56
|
+
saveSingleFile(filesArray[0]);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
await downloadFileData(filesArray, fileName);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
console.error('[FileDownload] Error downloading files:', error);
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Check if data is FileData
|
|
68
|
+
*/
|
|
69
|
+
export function isFileData(data) {
|
|
70
|
+
return (typeof data === 'object' &&
|
|
71
|
+
data !== null &&
|
|
72
|
+
'fileName' in data &&
|
|
73
|
+
'data' in data &&
|
|
74
|
+
'isBase64Encoded' in data);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Format file size for display
|
|
78
|
+
*/
|
|
79
|
+
export function formatFileSize(bytes) {
|
|
80
|
+
if (bytes === 0)
|
|
81
|
+
return '0 Bytes';
|
|
82
|
+
const k = APP_DEFAULTS.FILE_SIZE.BYTES_PER_KB;
|
|
83
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
84
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
85
|
+
return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get approximate file size from base64 string
|
|
89
|
+
*/
|
|
90
|
+
export function getBase64FileSize(base64) {
|
|
91
|
+
// Base64 encoded string is approximately 33% larger than original
|
|
92
|
+
return Math.ceil((base64.length * 3) / 4);
|
|
93
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load an external script from a CDN with automatic deduplication.
|
|
3
|
+
* All calls to load the same script will share a single promise,
|
|
4
|
+
* preventing duplicate script tags and race conditions.
|
|
5
|
+
*
|
|
6
|
+
* @param src The script URL
|
|
7
|
+
* @param options Script attributes (crossOrigin, async, etc.)
|
|
8
|
+
* @returns Promise that resolves when script is loaded
|
|
9
|
+
*/
|
|
10
|
+
export declare function loadScript(src: string, options?: {
|
|
11
|
+
crossOrigin?: string;
|
|
12
|
+
async?: boolean;
|
|
13
|
+
defer?: boolean;
|
|
14
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const scriptLoaders = new Map();
|
|
2
|
+
/**
|
|
3
|
+
* Load an external script from a CDN with automatic deduplication.
|
|
4
|
+
* All calls to load the same script will share a single promise,
|
|
5
|
+
* preventing duplicate script tags and race conditions.
|
|
6
|
+
*
|
|
7
|
+
* @param src The script URL
|
|
8
|
+
* @param options Script attributes (crossOrigin, async, etc.)
|
|
9
|
+
* @returns Promise that resolves when script is loaded
|
|
10
|
+
*/
|
|
11
|
+
export function loadScript(src, options) {
|
|
12
|
+
if (scriptLoaders.has(src)) {
|
|
13
|
+
return scriptLoaders.get(src);
|
|
14
|
+
}
|
|
15
|
+
if (document.querySelector(`script[src="${src}"]`)) {
|
|
16
|
+
const resolved = Promise.resolve();
|
|
17
|
+
scriptLoaders.set(src, resolved);
|
|
18
|
+
return resolved;
|
|
19
|
+
}
|
|
20
|
+
const promise = new Promise((resolve, reject) => {
|
|
21
|
+
const script = document.createElement('script');
|
|
22
|
+
script.src = src;
|
|
23
|
+
if (options?.crossOrigin)
|
|
24
|
+
script.crossOrigin = options.crossOrigin;
|
|
25
|
+
if (options?.async !== undefined)
|
|
26
|
+
script.async = options.async;
|
|
27
|
+
if (options?.defer !== undefined)
|
|
28
|
+
script.defer = options.defer;
|
|
29
|
+
script.onload = () => resolve();
|
|
30
|
+
script.onerror = () => {
|
|
31
|
+
scriptLoaders.delete(src);
|
|
32
|
+
reject(new Error(`Failed to load script: ${src}`));
|
|
33
|
+
};
|
|
34
|
+
document.head.appendChild(script);
|
|
35
|
+
});
|
|
36
|
+
scriptLoaders.set(src, promise);
|
|
37
|
+
return promise;
|
|
38
|
+
}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ClassValue } from 'clsx';
|
|
2
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
3
|
+
export type WithoutChild<T> = T extends {
|
|
4
|
+
child?: any;
|
|
5
|
+
} ? Omit<T, 'child'> : T;
|
|
6
|
+
export type WithoutChildren<T> = T extends {
|
|
7
|
+
children?: any;
|
|
8
|
+
} ? Omit<T, 'children'> : T;
|
|
9
|
+
export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;
|
|
10
|
+
export type WithElementRef<T, U extends HTMLElement = HTMLElement> = T & {
|
|
11
|
+
ref?: U | null;
|
|
12
|
+
};
|
package/dist/utils.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@selvajs/ui",
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Shared UI components and utilities for Selva applications",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"svelte": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"svelte": "./dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./primitives": {
|
|
18
|
+
"types": "./dist/components/primitives/index.d.ts",
|
|
19
|
+
"svelte": "./dist/components/primitives/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./layout": {
|
|
22
|
+
"types": "./dist/components/layout/index.d.ts",
|
|
23
|
+
"svelte": "./dist/components/layout/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./compute": {
|
|
26
|
+
"types": "./dist/components/compute/index.d.ts",
|
|
27
|
+
"svelte": "./dist/components/compute/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./viewer": {
|
|
30
|
+
"types": "./dist/components/viewer/index.d.ts",
|
|
31
|
+
"svelte": "./dist/components/viewer/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./footer": {
|
|
34
|
+
"types": "./dist/contexts/footerContext.svelte.d.ts",
|
|
35
|
+
"svelte": "./dist/contexts/footerContext.svelte.js"
|
|
36
|
+
},
|
|
37
|
+
"./utils": {
|
|
38
|
+
"types": "./dist/utils.d.ts",
|
|
39
|
+
"import": "./dist/utils.js"
|
|
40
|
+
},
|
|
41
|
+
"./styles/base.css": "./src/lib/styles/base.css",
|
|
42
|
+
"./styles/themes/*": "./src/lib/styles/themes/*"
|
|
43
|
+
},
|
|
44
|
+
"files": [
|
|
45
|
+
"dist",
|
|
46
|
+
"src/lib",
|
|
47
|
+
"!dist/**/*.test.*",
|
|
48
|
+
"!dist/**/*.spec.*",
|
|
49
|
+
"!src/lib/**/*.test.*",
|
|
50
|
+
"!src/lib/**/*.spec.*"
|
|
51
|
+
],
|
|
52
|
+
"sideEffects": [
|
|
53
|
+
"**/*.css"
|
|
54
|
+
],
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@selvajs/compute": "1.5.2-beta.7",
|
|
57
|
+
"@sveltejs/kit": "^2",
|
|
58
|
+
"bits-ui": "^2.15.4",
|
|
59
|
+
"svelte": "^5",
|
|
60
|
+
"tailwind-variants": "^3.2.2",
|
|
61
|
+
"three": "^0.184.0"
|
|
62
|
+
},
|
|
63
|
+
"peerDependenciesMeta": {
|
|
64
|
+
"three": {
|
|
65
|
+
"optional": true
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"dependencies": {
|
|
69
|
+
"@floating-ui/dom": "^1.7.6",
|
|
70
|
+
"@iconify/svelte": "^5.2.1",
|
|
71
|
+
"@lucide/svelte": "^1.11.0",
|
|
72
|
+
"clsx": "^2.1.1",
|
|
73
|
+
"mode-watcher": "^1.1.0",
|
|
74
|
+
"paneforge": "^1.0.2",
|
|
75
|
+
"svelte-sonner": "^1.1.1",
|
|
76
|
+
"tailwind-merge": "^3.5.0",
|
|
77
|
+
"tw-animate-css": "^1.4.0",
|
|
78
|
+
"@selvajs/schemas": "1.1.1"
|
|
79
|
+
},
|
|
80
|
+
"devDependencies": {
|
|
81
|
+
"@internationalized/date": "^3.12.1",
|
|
82
|
+
"@sveltejs/kit": "2.58.0",
|
|
83
|
+
"@types/three": "^0.184.0",
|
|
84
|
+
"bits-ui": "^2.18.0",
|
|
85
|
+
"svelte": "5.55.5",
|
|
86
|
+
"tailwind-variants": "^3.2.2",
|
|
87
|
+
"@selvajs/config": "0.0.0"
|
|
88
|
+
},
|
|
89
|
+
"scripts": {
|
|
90
|
+
"dev": "vite dev",
|
|
91
|
+
"build": "rm -rf dist && vite build && pnpm prepack",
|
|
92
|
+
"build:fast": "svelte-kit sync && svelte-package",
|
|
93
|
+
"build:watch": "svelte-kit sync && svelte-package --watch",
|
|
94
|
+
"preview": "vite preview",
|
|
95
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
96
|
+
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
97
|
+
"format": "prettier --write .",
|
|
98
|
+
"lint": "prettier --check . && eslint ."
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { AlertCircle } from '@lucide/svelte';
|
|
3
|
+
import * as Card from './primitives/card/index.js';
|
|
4
|
+
import { Button } from './primitives/button/index.js';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
status?: number;
|
|
8
|
+
message?: string;
|
|
9
|
+
details?: string;
|
|
10
|
+
homeLink?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let { status = 500, message, details, homeLink = '/' }: Props = $props();
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<div class="p-4 flex min-h-screen items-center justify-center bg-background">
|
|
17
|
+
<Card.Root class="max-w-md w-full">
|
|
18
|
+
<Card.Header class="text-center">
|
|
19
|
+
<div class="mb-4 flex justify-center">
|
|
20
|
+
<div class="p-3 rounded-full bg-destructive/10">
|
|
21
|
+
<AlertCircle class="h-8 w-8 text-destructive" />
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
<Card.Title class="text-3xl">{status}</Card.Title>
|
|
25
|
+
</Card.Header>
|
|
26
|
+
<Card.Content class="space-y-4">
|
|
27
|
+
<div class="p-4 rounded-lg border border-destructive/50 bg-destructive/10">
|
|
28
|
+
<div class="gap-3 flex">
|
|
29
|
+
<AlertCircle class="mt-0.5 h-4 w-4 shrink-0 text-destructive" />
|
|
30
|
+
<div class="flex-1">
|
|
31
|
+
<p class="text-sm font-semibold text-destructive">Error</p>
|
|
32
|
+
{#if message}
|
|
33
|
+
<p class="text-sm text-destructive/80">{message}</p>
|
|
34
|
+
{/if}
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
{#if details}
|
|
40
|
+
<div class="p-4 rounded-lg bg-muted">
|
|
41
|
+
<p class="font-mono text-sm break-all text-muted-foreground">
|
|
42
|
+
{details}
|
|
43
|
+
</p>
|
|
44
|
+
</div>
|
|
45
|
+
{/if}
|
|
46
|
+
</Card.Content>
|
|
47
|
+
<Card.Footer class="gap-2 flex">
|
|
48
|
+
<Button variant="outline" class="flex-1">
|
|
49
|
+
<a href={homeLink} class="w-full" rel="external">Go Home</a>
|
|
50
|
+
</Button>
|
|
51
|
+
</Card.Footer>
|
|
52
|
+
</Card.Root>
|
|
53
|
+
</div>
|