@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,145 @@
|
|
|
1
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--radius: 0.625rem;
|
|
5
|
+
--header-h: 3.5rem;
|
|
6
|
+
--page-px: 1.5rem;
|
|
7
|
+
--page-py: 1.75rem;
|
|
8
|
+
--background: oklch(0.99 0 0);
|
|
9
|
+
--foreground: oklch(0.22 0 0);
|
|
10
|
+
--card: oklch(0.985 0 0);
|
|
11
|
+
--card-foreground: oklch(0.22 0 0);
|
|
12
|
+
--popover: oklch(0.99 0 0);
|
|
13
|
+
--popover-foreground: oklch(0.22 0 0);
|
|
14
|
+
--primary: oklch(0.57 0.07 135);
|
|
15
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
16
|
+
--secondary: oklch(0.94 0 0);
|
|
17
|
+
--secondary-foreground: oklch(0.28 0 0);
|
|
18
|
+
--muted: oklch(0.95 0 0);
|
|
19
|
+
--muted-foreground: oklch(0.5 0 0);
|
|
20
|
+
--accent: oklch(0.93 0 0);
|
|
21
|
+
--accent-foreground: oklch(0.3 0 0);
|
|
22
|
+
--destructive: oklch(0.6 0.18 27);
|
|
23
|
+
--border: oklch(0.86 0 0);
|
|
24
|
+
--input: oklch(0.91 0 0);
|
|
25
|
+
--ring: oklch(0.67 0 0);
|
|
26
|
+
--success: oklch(0.66 0.14 145);
|
|
27
|
+
--success-foreground: oklch(0.99 0 0);
|
|
28
|
+
--warning: oklch(0.78 0.12 75);
|
|
29
|
+
--warning-foreground: oklch(0.25 0.04 75);
|
|
30
|
+
--info: oklch(0.68 0.11 245);
|
|
31
|
+
--info-foreground: oklch(0.99 0 0);
|
|
32
|
+
--chart-1: oklch(0.65 0.14 135);
|
|
33
|
+
--chart-2: oklch(0.7 0.11 200);
|
|
34
|
+
--chart-3: oklch(0.6 0.13 260);
|
|
35
|
+
--chart-4: oklch(0.78 0.13 80);
|
|
36
|
+
--chart-5: oklch(0.68 0.15 30);
|
|
37
|
+
--sidebar: oklch(0.96 0 0);
|
|
38
|
+
--sidebar-foreground: oklch(0.25 0 0);
|
|
39
|
+
--sidebar-primary: oklch(0.57 0.07 135);
|
|
40
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
41
|
+
--sidebar-accent: oklch(0.93 0 0);
|
|
42
|
+
--sidebar-accent-foreground: oklch(0.3 0 0);
|
|
43
|
+
--sidebar-border: oklch(0.88 0 0);
|
|
44
|
+
--sidebar-ring: oklch(0.67 0 0);
|
|
45
|
+
--inputparam: oklch(1 0 0);
|
|
46
|
+
--outputparam: oklch(1 0 0);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.dark {
|
|
50
|
+
--background: oklch(0.17 0 0);
|
|
51
|
+
--foreground: oklch(0.96 0 0);
|
|
52
|
+
--card: oklch(0.23 0 0);
|
|
53
|
+
--card-foreground: oklch(0.96 0 0);
|
|
54
|
+
--popover: oklch(0.23 0 0);
|
|
55
|
+
--popover-foreground: oklch(0.96 0 0);
|
|
56
|
+
--primary: oklch(0.74 0.07 135);
|
|
57
|
+
--primary-foreground: oklch(0.18 0 0);
|
|
58
|
+
--secondary: oklch(0.3 0 0);
|
|
59
|
+
--secondary-foreground: oklch(0.96 0 0);
|
|
60
|
+
--muted: oklch(0.27 0 0);
|
|
61
|
+
--muted-foreground: oklch(0.72 0 0);
|
|
62
|
+
--accent: oklch(0.36 0 0);
|
|
63
|
+
--accent-foreground: oklch(0.92 0 0);
|
|
64
|
+
--destructive: oklch(0.7 0.17 22);
|
|
65
|
+
--border: oklch(1 0 0 / 14%);
|
|
66
|
+
--input: oklch(1 0 0 / 12%);
|
|
67
|
+
--ring: oklch(0.74 0 0);
|
|
68
|
+
--success: oklch(0.74 0.15 145);
|
|
69
|
+
--success-foreground: oklch(0.18 0.03 145);
|
|
70
|
+
--warning: oklch(0.8 0.14 75);
|
|
71
|
+
--warning-foreground: oklch(0.2 0.03 75);
|
|
72
|
+
--info: oklch(0.74 0.13 245);
|
|
73
|
+
--info-foreground: oklch(0.18 0.03 245);
|
|
74
|
+
--chart-1: oklch(0.7 0.13 135);
|
|
75
|
+
--chart-2: oklch(0.72 0.12 200);
|
|
76
|
+
--chart-3: oklch(0.68 0.14 260);
|
|
77
|
+
--chart-4: oklch(0.78 0.14 80);
|
|
78
|
+
--chart-5: oklch(0.7 0.16 30);
|
|
79
|
+
--sidebar: oklch(0.21 0 0);
|
|
80
|
+
--sidebar-foreground: oklch(0.96 0 0);
|
|
81
|
+
--sidebar-primary: oklch(0.74 0.07 135);
|
|
82
|
+
--sidebar-primary-foreground: oklch(0.18 0 0);
|
|
83
|
+
--sidebar-accent: oklch(0.32 0 0);
|
|
84
|
+
--sidebar-accent-foreground: oklch(0.92 0 0);
|
|
85
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
86
|
+
--sidebar-ring: oklch(0.74 0 0);
|
|
87
|
+
--inputparam: oklch(0.15 0 0);
|
|
88
|
+
--outputparam: oklch(0.25 0 0);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@theme inline {
|
|
92
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
93
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
94
|
+
--radius-lg: var(--radius);
|
|
95
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
96
|
+
--color-background: var(--background);
|
|
97
|
+
--color-foreground: var(--foreground);
|
|
98
|
+
--color-card: var(--card);
|
|
99
|
+
--color-card-foreground: var(--card-foreground);
|
|
100
|
+
--color-popover: var(--popover);
|
|
101
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
102
|
+
--color-primary: var(--primary);
|
|
103
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
104
|
+
--color-secondary: var(--secondary);
|
|
105
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
106
|
+
--color-muted: var(--muted);
|
|
107
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
108
|
+
--color-accent: var(--accent);
|
|
109
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
110
|
+
--color-destructive: var(--destructive);
|
|
111
|
+
--color-border: var(--border);
|
|
112
|
+
--color-input: var(--input);
|
|
113
|
+
--color-ring: var(--ring);
|
|
114
|
+
--color-success: var(--success);
|
|
115
|
+
--color-success-foreground: var(--success-foreground);
|
|
116
|
+
--color-warning: var(--warning);
|
|
117
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
118
|
+
--color-info: var(--info);
|
|
119
|
+
--color-info-foreground: var(--info-foreground);
|
|
120
|
+
--color-chart-1: var(--chart-1);
|
|
121
|
+
--color-chart-2: var(--chart-2);
|
|
122
|
+
--color-chart-3: var(--chart-3);
|
|
123
|
+
--color-chart-4: var(--chart-4);
|
|
124
|
+
--color-chart-5: var(--chart-5);
|
|
125
|
+
--color-sidebar: var(--sidebar);
|
|
126
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
127
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
128
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
129
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
130
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
131
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
132
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
133
|
+
--color-inputparam: var(--inputparam);
|
|
134
|
+
--color-outputparam: var(--outputparam);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@layer base {
|
|
138
|
+
* {
|
|
139
|
+
@apply border-border outline-ring/50;
|
|
140
|
+
}
|
|
141
|
+
html,
|
|
142
|
+
body {
|
|
143
|
+
@apply bg-background text-foreground;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--radius: 0.625rem;
|
|
3
|
+
|
|
4
|
+
--background: oklch(0.98 0.01 300);
|
|
5
|
+
--foreground: oklch(0.18 0.05 300);
|
|
6
|
+
|
|
7
|
+
--card: oklch(0.97 0.015 300);
|
|
8
|
+
--card-foreground: oklch(0.18 0.05 300);
|
|
9
|
+
|
|
10
|
+
--popover: oklch(0.97 0.015 300);
|
|
11
|
+
--popover-foreground: oklch(0.18 0.05 300);
|
|
12
|
+
|
|
13
|
+
--primary: oklch(0.7 0.28 295);
|
|
14
|
+
--primary-foreground: oklch(0.98 0 0);
|
|
15
|
+
|
|
16
|
+
--secondary: oklch(0.9 0.05 300);
|
|
17
|
+
--secondary-foreground: oklch(0.18 0.05 300);
|
|
18
|
+
|
|
19
|
+
--muted: oklch(0.92 0.015 300);
|
|
20
|
+
--muted-foreground: oklch(0.5 0.03 300);
|
|
21
|
+
|
|
22
|
+
--accent: oklch(0.78 0.2 305);
|
|
23
|
+
--accent-foreground: oklch(0.12 0.05 300);
|
|
24
|
+
|
|
25
|
+
--destructive: oklch(0.62 0.25 20);
|
|
26
|
+
--destructive-foreground: oklch(0.98 0 0);
|
|
27
|
+
|
|
28
|
+
--border: oklch(0.86 0.02 300);
|
|
29
|
+
--input: oklch(0.92 0.015 300);
|
|
30
|
+
--ring: oklch(0.75 0.18 295);
|
|
31
|
+
|
|
32
|
+
--chart-1: oklch(0.7 0.28 295);
|
|
33
|
+
--chart-2: oklch(0.8 0.24 305);
|
|
34
|
+
--chart-3: oklch(0.65 0.22 310);
|
|
35
|
+
--chart-4: oklch(0.55 0.18 290);
|
|
36
|
+
--chart-5: oklch(0.85 0.15 300);
|
|
37
|
+
|
|
38
|
+
--sidebar: oklch(0.97 0.015 300);
|
|
39
|
+
--sidebar-foreground: oklch(0.18 0.05 300);
|
|
40
|
+
--sidebar-primary: oklch(0.7 0.28 295);
|
|
41
|
+
--sidebar-primary-foreground: oklch(0.98 0 0);
|
|
42
|
+
--sidebar-accent: oklch(0.92 0.015 300);
|
|
43
|
+
--sidebar-accent-foreground: oklch(0.18 0.05 300);
|
|
44
|
+
--sidebar-border: oklch(0.86 0.02 300);
|
|
45
|
+
--sidebar-ring: oklch(0.75 0.18 295);
|
|
46
|
+
|
|
47
|
+
--inputparam: oklch(0.86 0.02 300);
|
|
48
|
+
--outputparam: oklch(0.86 0.04 305);
|
|
49
|
+
--downloadparam: oklch(0.86 0.05 295);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.dark {
|
|
53
|
+
--background: oklch(0.18 0.05 300);
|
|
54
|
+
--foreground: oklch(0.98 0 0);
|
|
55
|
+
|
|
56
|
+
--card: oklch(0.22 0.05 300);
|
|
57
|
+
--card-foreground: oklch(0.98 0 0);
|
|
58
|
+
|
|
59
|
+
--popover: oklch(0.22 0.05 300);
|
|
60
|
+
--popover-foreground: oklch(0.98 0 0);
|
|
61
|
+
|
|
62
|
+
--primary: oklch(0.7 0.28 295);
|
|
63
|
+
--primary-foreground: oklch(0.18 0.05 300);
|
|
64
|
+
|
|
65
|
+
--secondary: oklch(0.28 0.03 300);
|
|
66
|
+
--secondary-foreground: oklch(0.98 0 0);
|
|
67
|
+
|
|
68
|
+
--muted: oklch(0.28 0.03 300);
|
|
69
|
+
--muted-foreground: oklch(0.75 0.04 300);
|
|
70
|
+
|
|
71
|
+
--accent: oklch(0.22 0.05 305);
|
|
72
|
+
--accent-foreground: oklch(0.98 0 0);
|
|
73
|
+
|
|
74
|
+
--destructive: oklch(0.55 0.22 20);
|
|
75
|
+
--destructive-foreground: oklch(0.18 0.05 300);
|
|
76
|
+
|
|
77
|
+
--border: oklch(0.35 0.04 300);
|
|
78
|
+
--input: oklch(0.3 0.03 300);
|
|
79
|
+
--ring: oklch(0.75 0.18 295);
|
|
80
|
+
|
|
81
|
+
--chart-1: oklch(0.7 0.28 295);
|
|
82
|
+
--chart-2: oklch(0.8 0.24 305);
|
|
83
|
+
--chart-3: oklch(0.65 0.22 310);
|
|
84
|
+
--chart-4: oklch(0.32 0.03 300);
|
|
85
|
+
--chart-5: oklch(0.85 0.15 300);
|
|
86
|
+
|
|
87
|
+
--sidebar: oklch(0.18 0.05 300);
|
|
88
|
+
--sidebar-foreground: oklch(0.98 0 0);
|
|
89
|
+
--sidebar-primary: oklch(0.7 0.28 295);
|
|
90
|
+
--sidebar-primary-foreground: oklch(0.18 0.05 300);
|
|
91
|
+
--sidebar-accent: oklch(0.28 0.03 300);
|
|
92
|
+
--sidebar-accent-foreground: oklch(0.98 0 0);
|
|
93
|
+
--sidebar-border: oklch(0.35 0.04 300);
|
|
94
|
+
--sidebar-ring: oklch(0.75 0.18 295);
|
|
95
|
+
|
|
96
|
+
--inputparam: oklch(0.12 0.03 300);
|
|
97
|
+
--outputparam: oklch(0.32 0.04 305);
|
|
98
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--radius: 0.625rem;
|
|
3
|
+
--background: oklch(1 0 0);
|
|
4
|
+
--foreground: oklch(0.145 0 0);
|
|
5
|
+
--card: oklch(1 0 0);
|
|
6
|
+
--card-foreground: oklch(0.145 0 0);
|
|
7
|
+
--popover: oklch(1 0 0);
|
|
8
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
9
|
+
--primary: oklch(0.205 0 0);
|
|
10
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
11
|
+
--secondary: oklch(0.97 0 0);
|
|
12
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
13
|
+
--muted: oklch(0.97 0 0);
|
|
14
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
15
|
+
--accent: oklch(0.97 0 0);
|
|
16
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
17
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
18
|
+
--border: oklch(87.61% 0.0001 271.152);
|
|
19
|
+
--input: oklch(0.922 0 0);
|
|
20
|
+
--ring: oklch(0.708 0 0);
|
|
21
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
22
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
23
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
24
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
25
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
26
|
+
--sidebar: oklch(0.985 0 0);
|
|
27
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
28
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
29
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
30
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
31
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
32
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
33
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
34
|
+
--inputparam: oklch(100% 0.00011 271.152);
|
|
35
|
+
--outputparam: oklch(100% 0.00011 271.152);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.dark {
|
|
39
|
+
--background: oklch(0.145 0 0);
|
|
40
|
+
--foreground: oklch(0.985 0 0);
|
|
41
|
+
--card: oklch(0.205 0 0);
|
|
42
|
+
--card-foreground: oklch(0.985 0 0);
|
|
43
|
+
--popover: oklch(0.205 0 0);
|
|
44
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
45
|
+
--primary: oklch(0.922 0 0);
|
|
46
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
47
|
+
--secondary: oklch(0.269 0 0);
|
|
48
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
49
|
+
--muted: oklch(0.269 0 0);
|
|
50
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
51
|
+
--accent: oklch(0.269 0 0);
|
|
52
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
53
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
54
|
+
--border: oklch(1 0 0 / 10%);
|
|
55
|
+
--input: oklch(1 0 0 / 15%);
|
|
56
|
+
--ring: oklch(0.556 0 0);
|
|
57
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
58
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
59
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
60
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
61
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
62
|
+
--sidebar: oklch(0.205 0 0);
|
|
63
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
64
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
65
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
66
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
67
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
68
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
69
|
+
--sidebar-ring: oklch(0.556 0 0);
|
|
70
|
+
--inputparam: oklch(0% 0 271.152);
|
|
71
|
+
--outputparam: oklch(23.574% 0.00241 67.461);
|
|
72
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--radius: 0.625rem;
|
|
3
|
+
--background: oklch(0.98 0.003 260);
|
|
4
|
+
--foreground: oklch(0.22 0.01 260);
|
|
5
|
+
--card: oklch(0.97 0.002 260);
|
|
6
|
+
--card-foreground: oklch(0.22 0.01 260);
|
|
7
|
+
--popover: oklch(0.97 0.002 260);
|
|
8
|
+
--popover-foreground: oklch(0.22 0.01 260);
|
|
9
|
+
--primary: oklch(0.62 0.18 275);
|
|
10
|
+
--primary-foreground: oklch(0.98 0 0);
|
|
11
|
+
--secondary: oklch(0.85 0.05 260);
|
|
12
|
+
--secondary-foreground: oklch(0.22 0.01 260);
|
|
13
|
+
--muted: oklch(0.92 0.01 260);
|
|
14
|
+
--muted-foreground: oklch(0.45 0.02 260);
|
|
15
|
+
--accent: oklch(0.78 0.04 275);
|
|
16
|
+
--accent-foreground: oklch(0.15 0.01 260);
|
|
17
|
+
--destructive: oklch(0.6 0.23 20);
|
|
18
|
+
--destructive-foreground: oklch(0.98 0 0);
|
|
19
|
+
--border: oklch(0.85 0.01 260);
|
|
20
|
+
--input: oklch(0.92 0.01 260);
|
|
21
|
+
--ring: oklch(0.55 0.04 275);
|
|
22
|
+
--chart-1: oklch(0.62 0.18 275);
|
|
23
|
+
--chart-2: oklch(0.68 0.14 255);
|
|
24
|
+
--chart-3: oklch(0.74 0.12 290);
|
|
25
|
+
--chart-4: oklch(0.5 0.09 270);
|
|
26
|
+
--chart-5: oklch(0.82 0.06 250);
|
|
27
|
+
--sidebar: oklch(0.97 0.002 260);
|
|
28
|
+
--sidebar-foreground: oklch(0.22 0.01 260);
|
|
29
|
+
--sidebar-primary: oklch(0.62 0.18 275);
|
|
30
|
+
--sidebar-primary-foreground: oklch(0.98 0 0);
|
|
31
|
+
--sidebar-accent: oklch(0.92 0.01 260);
|
|
32
|
+
--sidebar-accent-foreground: oklch(0.22 0.01 260);
|
|
33
|
+
--sidebar-border: oklch(0.85 0.01 260);
|
|
34
|
+
--sidebar-ring: oklch(0.55 0.04 275);
|
|
35
|
+
--inputparam: oklch(0.86 0.01 260);
|
|
36
|
+
--outputparam: oklch(0.86 0.0156 280);
|
|
37
|
+
--downloadparam: oklch(0.86 0.021 265);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.dark {
|
|
41
|
+
--background: oklch(0.22 0.01 260);
|
|
42
|
+
--foreground: oklch(0.98 0 0);
|
|
43
|
+
--card: oklch(0.27 0.01 260);
|
|
44
|
+
--card-foreground: oklch(0.98 0 0);
|
|
45
|
+
--popover: oklch(0.27 0.01 260);
|
|
46
|
+
--popover-foreground: oklch(0.98 0 0);
|
|
47
|
+
--primary: oklch(0.62 0.18 275);
|
|
48
|
+
--primary-foreground: oklch(0.22 0.01 260);
|
|
49
|
+
--secondary: oklch(0.32 0.015 260);
|
|
50
|
+
--secondary-foreground: oklch(0.98 0 0);
|
|
51
|
+
--muted: oklch(0.32 0.01 260);
|
|
52
|
+
--muted-foreground: oklch(0.78 0.02 260);
|
|
53
|
+
--accent: oklch(0.27 0.01 275);
|
|
54
|
+
--accent-foreground: oklch(0.98 0 0);
|
|
55
|
+
--destructive: oklch(0.55 0.22 20);
|
|
56
|
+
--destructive-foreground: oklch(0.22 0.01 260);
|
|
57
|
+
--border: oklch(0.4 0.01 260);
|
|
58
|
+
--input: oklch(0.35 0.01 260);
|
|
59
|
+
--ring: oklch(0.78 0.02 260);
|
|
60
|
+
--chart-1: oklch(0.62 0.18 275);
|
|
61
|
+
--chart-2: oklch(0.68 0.14 255);
|
|
62
|
+
--chart-3: oklch(0.74 0.12 290);
|
|
63
|
+
--chart-4: oklch(0.32 0.015 260);
|
|
64
|
+
--chart-5: oklch(0.82 0.06 250);
|
|
65
|
+
--sidebar: oklch(0.22 0.01 260);
|
|
66
|
+
--sidebar-foreground: oklch(0.98 0 0);
|
|
67
|
+
--sidebar-primary: oklch(0.62 0.18 275);
|
|
68
|
+
--sidebar-primary-foreground: oklch(0.22 0.01 260);
|
|
69
|
+
--sidebar-accent: oklch(0.32 0.015 260);
|
|
70
|
+
--sidebar-accent-foreground: oklch(0.98 0 0);
|
|
71
|
+
--sidebar-border: oklch(0.4 0.01 260);
|
|
72
|
+
--sidebar-ring: oklch(0.78 0.02 260);
|
|
73
|
+
--inputparam: oklch(0.12 0.01 260);
|
|
74
|
+
--outputparam: oklch(0.36 0.0156 280);
|
|
75
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--radius: 0.625rem;
|
|
3
|
+
|
|
4
|
+
/* Light Mode - Forest Theme */
|
|
5
|
+
--background: oklch(0.98 0.005 110); /* Very light sage */
|
|
6
|
+
--foreground: oklch(0.22 0.02 110); /* Deep forest green, darker for better contrast */
|
|
7
|
+
|
|
8
|
+
--card: oklch(0.97 0.008 108); /* Slightly tinted white */
|
|
9
|
+
--card-foreground: oklch(0.25 0.018 105); /* Dark forest text */
|
|
10
|
+
|
|
11
|
+
--popover: oklch(0.98 0.005 110);
|
|
12
|
+
--popover-foreground: oklch(0.22 0.02 110);
|
|
13
|
+
|
|
14
|
+
--primary: oklch(0.55 0.16 140); /* Rich forest green, darker for contrast */
|
|
15
|
+
--primary-foreground: oklch(0.98 0.005 110); /* Light text on primary */
|
|
16
|
+
|
|
17
|
+
--secondary: oklch(0.38 0.08 165); /* Deep teal/evergreen */
|
|
18
|
+
--secondary-foreground: oklch(0.98 0.005 110);
|
|
19
|
+
|
|
20
|
+
--muted: oklch(0.92 0.01 120); /* Soft sage background */
|
|
21
|
+
--muted-foreground: oklch(0.35 0.015 110); /* Darker muted text for contrast */
|
|
22
|
+
|
|
23
|
+
--accent: oklch(0.62 0.12 85); /* Moss/olive accent */
|
|
24
|
+
--accent-foreground: oklch(0.98 0.005 110);
|
|
25
|
+
|
|
26
|
+
--destructive: oklch(0.54 0.22 27); /* Autumn red, darker for contrast */
|
|
27
|
+
--destructive-foreground: oklch(0.98 0.005 110);
|
|
28
|
+
|
|
29
|
+
--border: oklch(0.85 0.015 120); /* Soft green-grey border */
|
|
30
|
+
--input: oklch(0.94 0.008 115); /* Light sage input */
|
|
31
|
+
--ring: oklch(0.55 0.16 140); /* Focus ring matches primary */
|
|
32
|
+
|
|
33
|
+
/* Chart colors - forest palette */
|
|
34
|
+
--chart-1: oklch(0.55 0.16 140); /* Primary forest green */
|
|
35
|
+
--chart-2: oklch(0.45 0.12 165); /* Deep evergreen */
|
|
36
|
+
--chart-3: oklch(0.62 0.12 85); /* Moss green */
|
|
37
|
+
--chart-4: oklch(0.68 0.08 180); /* Fern green */
|
|
38
|
+
--chart-5: oklch(0.52 0.1 110); /* Pine green */
|
|
39
|
+
|
|
40
|
+
/* Sidebar */
|
|
41
|
+
--sidebar: oklch(0.96 0.01 115);
|
|
42
|
+
--sidebar-foreground: oklch(0.25 0.018 105);
|
|
43
|
+
--sidebar-primary: oklch(0.55 0.16 140);
|
|
44
|
+
--sidebar-primary-foreground: oklch(0.98 0.005 110);
|
|
45
|
+
--sidebar-accent: oklch(0.9 0.015 120);
|
|
46
|
+
--sidebar-accent-foreground: oklch(0.25 0.018 105);
|
|
47
|
+
--sidebar-border: oklch(0.85 0.015 120);
|
|
48
|
+
--sidebar-ring: oklch(0.55 0.16 140);
|
|
49
|
+
|
|
50
|
+
/* Special parameters */
|
|
51
|
+
--inputparam: oklch(86.877% 0.02027 155.1); /* Soft blue-lavender */
|
|
52
|
+
--outputparam: oklch(85.332% 0.0278 145.489); /* Soft yellow-green */
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.dark {
|
|
56
|
+
/* Dark Mode - Deep Forest Theme */
|
|
57
|
+
--background: oklch(0.18 0.02 140); /* Deep forest background */
|
|
58
|
+
--foreground: oklch(0.92 0.01 110); /* Soft cream text */
|
|
59
|
+
|
|
60
|
+
--card: oklch(0.22 0.025 135); /* Darker forest card */
|
|
61
|
+
--card-foreground: oklch(0.92 0.01 110);
|
|
62
|
+
|
|
63
|
+
--popover: oklch(0.22 0.025 135);
|
|
64
|
+
--popover-foreground: oklch(0.92 0.01 110);
|
|
65
|
+
|
|
66
|
+
--primary: oklch(0.68 0.14 130); /* Bright forest green */
|
|
67
|
+
--primary-foreground: oklch(0.15 0.02 140); /* Dark text on primary */
|
|
68
|
+
|
|
69
|
+
--secondary: oklch(0.35 0.08 165); /* Deep teal */
|
|
70
|
+
--secondary-foreground: oklch(0.92 0.01 110);
|
|
71
|
+
|
|
72
|
+
--muted: oklch(0.28 0.02 130); /* Muted forest */
|
|
73
|
+
--muted-foreground: oklch(0.72 0.01 115); /* Lighter muted text */
|
|
74
|
+
|
|
75
|
+
--accent: oklch(0.52 0.12 85); /* Moss accent */
|
|
76
|
+
--accent-foreground: oklch(0.92 0.01 110);
|
|
77
|
+
|
|
78
|
+
--destructive: oklch(0.65 0.18 25); /* Autumn red-orange */
|
|
79
|
+
--destructive-foreground: oklch(0.15 0.02 140);
|
|
80
|
+
|
|
81
|
+
--border: oklch(0.35 0.02 130 / 60%); /* Subtle forest border */
|
|
82
|
+
--input: oklch(0.26 0.025 135); /* Dark forest input */
|
|
83
|
+
--ring: oklch(0.68 0.14 130); /* Bright focus ring */
|
|
84
|
+
|
|
85
|
+
/* Chart colors - deep forest palette */
|
|
86
|
+
--chart-1: oklch(0.68 0.14 130); /* Bright forest green */
|
|
87
|
+
--chart-2: oklch(0.52 0.12 85); /* Moss green */
|
|
88
|
+
--chart-3: oklch(0.75 0.08 180); /* Light fern */
|
|
89
|
+
--chart-4: oklch(0.45 0.1 165); /* Deep evergreen */
|
|
90
|
+
--chart-5: oklch(0.6 0.1 110); /* Medium pine */
|
|
91
|
+
|
|
92
|
+
/* Sidebar */
|
|
93
|
+
--sidebar: oklch(0.2 0.022 138);
|
|
94
|
+
--sidebar-foreground: oklch(0.92 0.01 110);
|
|
95
|
+
--sidebar-primary: oklch(0.68 0.14 130);
|
|
96
|
+
--sidebar-primary-foreground: oklch(0.15 0.02 140);
|
|
97
|
+
--sidebar-accent: oklch(0.28 0.025 135);
|
|
98
|
+
--sidebar-accent-foreground: oklch(0.92 0.01 110);
|
|
99
|
+
--sidebar-border: oklch(0.92 0.01 110 / 10%);
|
|
100
|
+
--sidebar-ring: oklch(0.68 0.14 130);
|
|
101
|
+
|
|
102
|
+
/* Special parameters */
|
|
103
|
+
--inputparam: oklch(21.813% 0.00595 156.915); /* Deep forest blue */
|
|
104
|
+
--outputparam: oklch(16.216% 0.00263 145.779); /* Forest gold */
|
|
105
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Theme } from './themes';
|
|
2
|
+
declare class ThemeStore {
|
|
3
|
+
private _theme;
|
|
4
|
+
constructor();
|
|
5
|
+
get current(): Theme;
|
|
6
|
+
get availableThemes(): readonly Theme[];
|
|
7
|
+
set(theme: Theme): void;
|
|
8
|
+
private applyTheme;
|
|
9
|
+
toggle(): void;
|
|
10
|
+
}
|
|
11
|
+
export declare const themeStore: ThemeStore;
|
|
12
|
+
export type { Theme };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { themes, isTheme } from './themes';
|
|
2
|
+
const STORAGE_KEY = 'selva-theme';
|
|
3
|
+
const DEFAULT_THEME = 'neutral';
|
|
4
|
+
class ThemeStore {
|
|
5
|
+
_theme = $state(DEFAULT_THEME);
|
|
6
|
+
constructor() {
|
|
7
|
+
if (typeof window !== 'undefined') {
|
|
8
|
+
const stored = localStorage.getItem(STORAGE_KEY);
|
|
9
|
+
if (stored && isTheme(stored)) {
|
|
10
|
+
this._theme = stored;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
get current() {
|
|
15
|
+
return this._theme;
|
|
16
|
+
}
|
|
17
|
+
get availableThemes() {
|
|
18
|
+
return themes;
|
|
19
|
+
}
|
|
20
|
+
set(theme) {
|
|
21
|
+
if (!isTheme(theme)) {
|
|
22
|
+
console.warn(`Theme "${theme}" is not available. Falling back to default.`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this._theme = theme;
|
|
26
|
+
if (typeof window !== 'undefined') {
|
|
27
|
+
localStorage.setItem(STORAGE_KEY, theme);
|
|
28
|
+
this.applyTheme(theme);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
applyTheme(theme) {
|
|
32
|
+
document.documentElement.setAttribute('data-theme', theme);
|
|
33
|
+
}
|
|
34
|
+
toggle() {
|
|
35
|
+
const currentIndex = themes.indexOf(this._theme);
|
|
36
|
+
const nextIndex = (currentIndex + 1) % themes.length;
|
|
37
|
+
this.set(themes[nextIndex]);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export const themeStore = new ThemeStore();
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type Theme = 'neutral' | 'selva' | 'ocean' | 'cyberpunk';
|
|
2
|
+
export declare const themes: readonly Theme[];
|
|
3
|
+
export declare const themeDescriptions: Record<Theme, string>;
|
|
4
|
+
export declare function isTheme(value: string): value is Theme;
|
|
5
|
+
export declare function getThemePath(theme: Theme): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const themes = ['neutral', 'selva', 'ocean', 'cyberpunk'];
|
|
2
|
+
export const themeDescriptions = {
|
|
3
|
+
neutral: 'Classic grayscale theme',
|
|
4
|
+
selva: 'Forest green nature-inspired theme',
|
|
5
|
+
ocean: 'Cool blue ocean theme',
|
|
6
|
+
cyberpunk: 'Vibrant neon magenta theme'
|
|
7
|
+
};
|
|
8
|
+
export function isTheme(value) {
|
|
9
|
+
return themes.includes(value);
|
|
10
|
+
}
|
|
11
|
+
export function getThemePath(theme) {
|
|
12
|
+
return `/styles/themes/${theme}.css`;
|
|
13
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines an action button for use in the UI.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* const saveButton: ActionButton = {
|
|
7
|
+
* id: 'save-btn',
|
|
8
|
+
* label: 'Save Changes',
|
|
9
|
+
* icon: SaveIcon,
|
|
10
|
+
* variant: 'default',
|
|
11
|
+
* size: 'lg',
|
|
12
|
+
* onclick: async () => {
|
|
13
|
+
* await saveData();
|
|
14
|
+
* showNotification('Saved!');
|
|
15
|
+
* }
|
|
16
|
+
* };
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @property id - Unique identifier for this button
|
|
20
|
+
* @property label - Display text shown on the button
|
|
21
|
+
* @property icon - Optional icon component to display alongside the label
|
|
22
|
+
* @property variant - Button styling variant (controls color/appearance)
|
|
23
|
+
* @property size - Button size preset
|
|
24
|
+
* @property onclick - Callback function executed when clicked; can be async
|
|
25
|
+
*/
|
|
26
|
+
export interface ActionButton {
|
|
27
|
+
id: string;
|
|
28
|
+
label: string;
|
|
29
|
+
icon?: any;
|
|
30
|
+
variant?: 'default' | 'outline' | 'destructive' | 'secondary' | 'ghost';
|
|
31
|
+
size?: 'default' | 'sm' | 'lg';
|
|
32
|
+
onclick: () => void | Promise<void>;
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result returned from a solve operation.
|
|
3
|
+
*
|
|
4
|
+
* @property outputs - Key-value pairs of computed results
|
|
5
|
+
* @property meshes - Optional array of 3D mesh data generated during computation
|
|
6
|
+
* @property errors - Optional array of error messages that occurred
|
|
7
|
+
* @property warnings - Optional array of warning messages from the computation
|
|
8
|
+
*/
|
|
9
|
+
interface SolveResult {
|
|
10
|
+
outputs: Record<string, unknown>;
|
|
11
|
+
meshes?: any[];
|
|
12
|
+
errors?: string[];
|
|
13
|
+
warnings?: string[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Function type for running a computation with given input values.
|
|
17
|
+
*
|
|
18
|
+
* Implementations should listen to the abort signal and clean up resources
|
|
19
|
+
* when the signal is triggered (e.g., when the user cancels the operation).
|
|
20
|
+
*
|
|
21
|
+
* @param values - Input parameters for the computation
|
|
22
|
+
* @param signal - AbortSignal to cancel ongoing operations
|
|
23
|
+
* @returns Promise resolving to the computation result
|
|
24
|
+
*/
|
|
25
|
+
export type SolveFn = (values: Record<string, unknown>, signal: AbortSignal) => Promise<SolveResult>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const hexToOklch: (hex: string | null) => string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Helper to convert hex to OKLCH
|
|
2
|
+
export const hexToOklch = (hex) => {
|
|
3
|
+
if (!hex)
|
|
4
|
+
return '';
|
|
5
|
+
// Normalize hex (remove # if present)
|
|
6
|
+
const normalized = hex.replace(/^#/, '');
|
|
7
|
+
// If it's not a valid hex color, return as-is
|
|
8
|
+
if (!/^[0-9A-Fa-f]{6}$/.test(normalized)) {
|
|
9
|
+
return hex;
|
|
10
|
+
}
|
|
11
|
+
// Parse hex to RGB
|
|
12
|
+
const r = parseInt(normalized.slice(0, 2), 16) / 255;
|
|
13
|
+
const g = parseInt(normalized.slice(2, 4), 16) / 255;
|
|
14
|
+
const b = parseInt(normalized.slice(4, 6), 16) / 255;
|
|
15
|
+
// Convert RGB to linear RGB
|
|
16
|
+
const toLinear = (c) => (c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));
|
|
17
|
+
const lr = toLinear(r);
|
|
18
|
+
const lg = toLinear(g);
|
|
19
|
+
const lb = toLinear(b);
|
|
20
|
+
// Convert linear RGB to XYZ
|
|
21
|
+
const x = lr * 0.4124564 + lg * 0.3575761 + lb * 0.1804375;
|
|
22
|
+
const y = lr * 0.2126729 + lg * 0.7151522 + lb * 0.072175;
|
|
23
|
+
const z = lr * 0.0193339 + lg * 0.119192 + lb * 0.9503041;
|
|
24
|
+
// Convert XYZ to OKLab
|
|
25
|
+
const l_ = Math.cbrt(0.8189330101 * x + 0.3618667424 * y - 0.1288597137 * z);
|
|
26
|
+
const m_ = Math.cbrt(0.0329845436 * x + 0.9293118715 * y + 0.0361456387 * z);
|
|
27
|
+
const s_ = Math.cbrt(0.0482003018 * x + 0.2643662691 * y + 0.633851707 * z);
|
|
28
|
+
const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;
|
|
29
|
+
const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;
|
|
30
|
+
const b_lab = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;
|
|
31
|
+
// Convert to LCH
|
|
32
|
+
const C = Math.sqrt(a * a + b_lab * b_lab);
|
|
33
|
+
let H = (Math.atan2(b_lab, a) * 180) / Math.PI;
|
|
34
|
+
if (H < 0)
|
|
35
|
+
H += 360;
|
|
36
|
+
// Format as OKLCH (round to reasonable precision)
|
|
37
|
+
return `oklch(${L.toFixed(3)} ${C.toFixed(3)} ${H.toFixed(1)})`;
|
|
38
|
+
};
|