@selvajs/ui 6.5.1-beta.1 → 6.6.0-beta.3
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/dist/components/ConfirmDialog.svelte +2 -10
- package/dist/components/ErrorScreen.svelte +16 -26
- package/dist/components/compute/AppLayout.svelte +7 -13
- package/dist/components/compute/ComputeApp.svelte +3 -3
- package/dist/components/compute/ComputeMessagesDialog.svelte +23 -49
- package/dist/components/compute/ParameterPresetManager.svelte +24 -68
- package/dist/components/compute/SolveMessages.svelte +23 -31
- package/dist/components/layout/Pagination.svelte +2 -4
- package/dist/components/layout/SideNav.svelte +1 -1
- package/dist/components/preview/ChartOutput.svelte +1 -5
- package/dist/components/preview/Group.svelte +71 -102
- package/dist/components/preview/Group.svelte.d.ts +1 -1
- package/dist/components/preview/HelpButton.svelte +34 -0
- package/dist/components/preview/HelpButton.svelte.d.ts +8 -0
- package/dist/components/preview/ImageOutput.svelte +2 -4
- package/dist/components/preview/InputControl.svelte +45 -45
- package/dist/components/preview/OutputDisplay.svelte +12 -22
- package/dist/components/preview/TabBar.svelte +106 -22
- package/dist/components/preview/TabBar.svelte.d.ts +1 -0
- package/dist/components/preview/TabContent.svelte +27 -56
- package/dist/components/preview/TabLayout.svelte +3 -3
- package/dist/components/preview/inputs/CheckboxInput.svelte +7 -7
- package/dist/components/preview/inputs/CheckboxInput.svelte.d.ts +3 -0
- package/dist/components/preview/inputs/ColorInput.svelte +1 -1
- package/dist/components/preview/inputs/FileInput.svelte +10 -13
- package/dist/components/preview/inputs/NumberInput.svelte +37 -57
- package/dist/components/preview/inputs/TextInput.svelte +0 -1
- package/dist/components/primitives/CalculateButton.svelte +1 -1
- package/dist/components/primitives/Callout.svelte +11 -18
- package/dist/components/primitives/DataTable.svelte +3 -4
- package/dist/components/primitives/FilterableDropdown.svelte +42 -129
- package/dist/components/primitives/FilterableDropdown.svelte.d.ts +1 -1
- package/dist/components/primitives/IssueList.svelte +56 -0
- package/dist/components/primitives/IssueList.svelte.d.ts +20 -0
- package/dist/components/primitives/SeverityIcon.svelte +15 -0
- package/dist/components/primitives/SeverityIcon.svelte.d.ts +8 -0
- package/dist/components/primitives/SolvingIndicator.svelte +1 -29
- package/dist/components/primitives/StateDisplay.svelte +19 -79
- package/dist/components/primitives/ViewToggle.svelte +18 -33
- package/dist/components/primitives/alert-dialog/alert-dialog-action.svelte +9 -3
- package/dist/components/primitives/alert-dialog/alert-dialog-action.svelte.d.ts +6 -1
- package/dist/components/primitives/alert-dialog/alert-dialog-content.svelte +1 -1
- package/dist/components/primitives/alert-dialog/alert-dialog-overlay.svelte +1 -1
- package/dist/components/primitives/badge/badge.svelte +2 -2
- package/dist/components/primitives/badge/badge.svelte.d.ts +4 -4
- package/dist/components/primitives/button/button.svelte +3 -2
- package/dist/components/primitives/button/button.svelte.d.ts +7 -4
- package/dist/components/primitives/card/card-header.svelte +1 -1
- package/dist/components/primitives/card/card.svelte +21 -5
- package/dist/components/primitives/card/card.svelte.d.ts +25 -1
- package/dist/components/primitives/card/index.d.ts +1 -2
- package/dist/components/primitives/card/index.js +2 -3
- package/dist/components/primitives/checkbox/checkbox.svelte +1 -1
- package/dist/components/primitives/command/command-dialog.svelte +42 -0
- package/dist/components/primitives/command/command-dialog.svelte.d.ts +14 -0
- package/dist/components/primitives/command/command-empty.svelte +17 -0
- package/dist/components/primitives/command/command-empty.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-group.svelte +33 -0
- package/dist/components/primitives/command/command-group.svelte.d.ts +7 -0
- package/dist/components/primitives/command/command-input.svelte +36 -0
- package/dist/components/primitives/command/command-input.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-item.svelte +28 -0
- package/dist/components/primitives/command/command-item.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-link-item.svelte +21 -0
- package/dist/components/primitives/command/command-link-item.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-list.svelte +20 -0
- package/dist/components/primitives/command/command-list.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-loading.svelte +7 -0
- package/dist/components/primitives/command/command-loading.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-separator.svelte +17 -0
- package/dist/components/primitives/command/command-separator.svelte.d.ts +4 -0
- package/dist/components/primitives/command/command-shortcut.svelte +23 -0
- package/dist/components/primitives/command/command-shortcut.svelte.d.ts +5 -0
- package/dist/components/primitives/command/command.svelte +28 -0
- package/dist/components/primitives/command/command.svelte.d.ts +8 -0
- package/dist/components/primitives/command/index.d.ts +12 -0
- package/dist/components/primitives/command/index.js +14 -0
- package/dist/components/primitives/context-menu/context-menu-content.svelte +1 -1
- package/dist/components/primitives/context-menu/context-menu-sub-content.svelte +1 -1
- package/dist/components/primitives/dialog/dialog-content.svelte +5 -1
- package/dist/components/primitives/dialog/dialog-content.svelte.d.ts +2 -0
- package/dist/components/primitives/dialog/dialog-overlay.svelte +1 -1
- package/dist/components/primitives/dialog/dialog-title.svelte +6 -2
- package/dist/components/primitives/dialog/dialog-title.svelte.d.ts +5 -1
- package/dist/components/primitives/drawer/Drawer.svelte +1 -1
- package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +4 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte +46 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-content.svelte +31 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-group.svelte +7 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-item.svelte +27 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-label.svelte +24 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-portal.svelte +7 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-portal.svelte.d.ts +3 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte +36 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-separator.svelte +17 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte +23 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte +31 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +10 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub.svelte +7 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-sub.svelte.d.ts +3 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu.svelte +7 -0
- package/dist/components/primitives/dropdown-menu/dropdown-menu.svelte.d.ts +3 -0
- package/dist/components/primitives/dropdown-menu/index.d.ts +18 -0
- package/dist/components/primitives/dropdown-menu/index.js +18 -0
- package/dist/components/primitives/{alert/alert-description.svelte → empty/empty-content.svelte} +3 -3
- package/dist/components/primitives/empty/empty-content.svelte.d.ts +5 -0
- package/dist/components/primitives/empty/empty-description.svelte +23 -0
- package/dist/components/primitives/{alert/alert-description.svelte.d.ts → empty/empty-description.svelte.d.ts} +4 -4
- package/dist/components/primitives/{alert/alert-title.svelte → empty/empty-header.svelte} +3 -3
- package/dist/components/primitives/empty/empty-header.svelte.d.ts +5 -0
- package/dist/components/primitives/empty/empty-media.svelte +41 -0
- package/dist/components/primitives/empty/empty-media.svelte.d.ts +26 -0
- package/dist/components/primitives/{card/card-action.svelte → empty/empty-title.svelte} +2 -2
- package/dist/components/primitives/{card/card-action.svelte.d.ts → empty/empty-title.svelte.d.ts} +3 -3
- package/dist/components/primitives/empty/empty.svelte +23 -0
- package/dist/components/primitives/empty/empty.svelte.d.ts +5 -0
- package/dist/components/primitives/empty/index.d.ts +7 -0
- package/dist/components/primitives/empty/index.js +9 -0
- package/dist/components/primitives/index.d.ts +10 -1
- package/dist/components/primitives/index.js +10 -1
- package/dist/components/primitives/input/input.svelte +4 -4
- package/dist/components/primitives/input-group/index.d.ts +7 -0
- package/dist/components/primitives/input-group/index.js +9 -0
- package/dist/components/primitives/input-group/input-group-addon.svelte +53 -0
- package/dist/components/primitives/input-group/input-group-addon.svelte.d.ts +32 -0
- package/dist/components/primitives/input-group/input-group-button.svelte +49 -0
- package/dist/components/primitives/input-group/input-group-button.svelte.d.ts +32 -0
- package/dist/components/primitives/input-group/input-group-input.svelte +25 -0
- package/dist/components/primitives/input-group/input-group-input.svelte.d.ts +11 -0
- package/dist/components/primitives/input-group/input-group-text.svelte +22 -0
- package/dist/components/primitives/input-group/input-group-text.svelte.d.ts +5 -0
- package/dist/components/primitives/input-group/input-group-textarea.svelte +23 -0
- package/dist/components/primitives/input-group/input-group-textarea.svelte.d.ts +3 -0
- package/dist/components/primitives/input-group/input-group.svelte +24 -0
- package/dist/components/primitives/{alert/alert-title.svelte.d.ts → input-group/input-group.svelte.d.ts} +4 -4
- package/dist/components/primitives/mode-toggle/mode-toggle.svelte +2 -6
- package/dist/components/primitives/popover/index.d.ts +9 -0
- package/dist/components/primitives/popover/index.js +11 -0
- package/dist/components/primitives/popover/popover-close.svelte +7 -0
- package/dist/components/primitives/popover/popover-close.svelte.d.ts +4 -0
- package/dist/components/primitives/popover/popover-content.svelte +31 -0
- package/dist/components/primitives/popover/popover-content.svelte.d.ts +10 -0
- package/dist/components/primitives/popover/popover-description.svelte +20 -0
- package/dist/components/primitives/popover/popover-description.svelte.d.ts +5 -0
- package/dist/components/primitives/popover/popover-header.svelte +20 -0
- package/dist/components/primitives/popover/popover-header.svelte.d.ts +5 -0
- package/dist/components/primitives/popover/popover-portal.svelte +7 -0
- package/dist/components/primitives/popover/popover-portal.svelte.d.ts +3 -0
- package/dist/components/primitives/popover/popover-title.svelte +15 -0
- package/dist/components/primitives/popover/popover-title.svelte.d.ts +5 -0
- package/dist/components/primitives/popover/popover-trigger.svelte +17 -0
- package/dist/components/primitives/popover/popover-trigger.svelte.d.ts +4 -0
- package/dist/components/primitives/popover/popover.svelte +7 -0
- package/dist/components/primitives/popover/popover.svelte.d.ts +3 -0
- package/dist/components/primitives/resizable/resizable-handle.svelte +6 -2
- package/dist/components/primitives/resizable/resizable-handle.svelte.d.ts +2 -0
- package/dist/components/primitives/resizable/resizable-pane-group.svelte +1 -4
- package/dist/components/primitives/scroll-area/scroll-area.svelte +1 -1
- package/dist/components/primitives/search/search.svelte +3 -3
- package/dist/components/primitives/select/select-content.svelte +1 -1
- package/dist/components/primitives/select/select-trigger.svelte +1 -1
- package/dist/components/primitives/severity.d.ts +7 -0
- package/dist/components/primitives/severity.js +19 -0
- package/dist/components/primitives/slider/slider.svelte +2 -2
- package/dist/components/primitives/sonner/sonner.svelte +1 -1
- package/dist/components/primitives/spinner/index.d.ts +1 -0
- package/dist/components/primitives/spinner/index.js +1 -0
- package/dist/components/primitives/spinner/spinner.svelte +29 -0
- package/dist/components/primitives/spinner/spinner.svelte.d.ts +4 -0
- package/dist/components/primitives/switch/switch.svelte +2 -2
- package/dist/components/primitives/tabs/tabs-list.svelte +27 -5
- package/dist/components/primitives/tabs/tabs-list.svelte.d.ts +22 -1
- package/dist/components/primitives/tabs/tabs-trigger.svelte +23 -5
- package/dist/components/primitives/tabs/tabs-trigger.svelte.d.ts +22 -1
- package/dist/components/primitives/tabs/tabs.svelte +6 -2
- package/dist/components/primitives/tabs/tabs.svelte.d.ts +5 -1
- package/dist/components/primitives/textarea/textarea.svelte +1 -1
- package/dist/components/primitives/theme-switcher/ThemeSwitcher.svelte +1 -1
- package/dist/components/primitives/toggle/index.d.ts +3 -0
- package/dist/components/primitives/toggle/index.js +5 -0
- package/dist/components/primitives/toggle/toggle.svelte +52 -0
- package/dist/components/primitives/toggle/toggle.svelte.d.ts +43 -0
- package/dist/components/primitives/toggle-group/index.d.ts +3 -0
- package/dist/components/primitives/toggle-group/index.js +5 -0
- package/dist/components/primitives/toggle-group/toggle-group-item.svelte +35 -0
- package/dist/components/primitives/toggle-group/toggle-group-item.svelte.d.ts +6 -0
- package/dist/components/primitives/toggle-group/toggle-group.svelte +75 -0
- package/dist/components/primitives/toggle-group/toggle-group.svelte.d.ts +17 -0
- package/dist/components/viewer/MeshMetadataDialog.svelte +3 -3
- package/dist/components/viewer/SceneManager.svelte +14 -5
- package/dist/components/viewer/Viewer.svelte +120 -171
- package/dist/i18n/messages.d.ts +2 -0
- package/dist/i18n/messages.js +4 -0
- package/dist/styles/base.css +43 -0
- package/package.json +9 -9
- package/src/lib/components/ConfirmDialog.svelte +2 -10
- package/src/lib/components/ErrorScreen.svelte +16 -26
- package/src/lib/components/compute/AppLayout.svelte +7 -13
- package/src/lib/components/compute/ComputeApp.svelte +3 -3
- package/src/lib/components/compute/ComputeMessagesDialog.svelte +23 -49
- package/src/lib/components/compute/ParameterPresetManager.svelte +24 -68
- package/src/lib/components/compute/SolveMessages.svelte +23 -31
- package/src/lib/components/layout/Pagination.svelte +2 -4
- package/src/lib/components/layout/SideNav.svelte +1 -1
- package/src/lib/components/preview/ChartOutput.svelte +1 -5
- package/src/lib/components/preview/Group.svelte +71 -102
- package/src/lib/components/preview/HelpButton.svelte +34 -0
- package/src/lib/components/preview/ImageOutput.svelte +2 -4
- package/src/lib/components/preview/InputControl.svelte +45 -45
- package/src/lib/components/preview/OutputDisplay.svelte +12 -22
- package/src/lib/components/preview/TabBar.svelte +106 -22
- package/src/lib/components/preview/TabContent.svelte +27 -56
- package/src/lib/components/preview/TabLayout.svelte +3 -3
- package/src/lib/components/preview/inputs/CheckboxInput.svelte +7 -7
- package/src/lib/components/preview/inputs/ColorInput.svelte +1 -1
- package/src/lib/components/preview/inputs/FileInput.svelte +10 -13
- package/src/lib/components/preview/inputs/NumberInput.svelte +37 -57
- package/src/lib/components/preview/inputs/TextInput.svelte +0 -1
- package/src/lib/components/primitives/CalculateButton.svelte +1 -1
- package/src/lib/components/primitives/Callout.svelte +11 -18
- package/src/lib/components/primitives/DataTable.svelte +3 -4
- package/src/lib/components/primitives/FilterableDropdown.svelte +42 -129
- package/src/lib/components/primitives/IssueList.svelte +56 -0
- package/src/lib/components/primitives/SeverityIcon.svelte +15 -0
- package/src/lib/components/primitives/SolvingIndicator.svelte +1 -29
- package/src/lib/components/primitives/StateDisplay.svelte +19 -79
- package/src/lib/components/primitives/ViewToggle.svelte +18 -33
- package/src/lib/components/primitives/alert-dialog/alert-dialog-action.svelte +9 -3
- package/src/lib/components/primitives/alert-dialog/alert-dialog-content.svelte +1 -1
- package/src/lib/components/primitives/alert-dialog/alert-dialog-overlay.svelte +1 -1
- package/src/lib/components/primitives/badge/badge.svelte +2 -2
- package/src/lib/components/primitives/button/button.svelte +3 -2
- package/src/lib/components/primitives/card/card-header.svelte +1 -1
- package/src/lib/components/primitives/card/card.svelte +21 -5
- package/src/lib/components/primitives/card/index.ts +1 -4
- package/src/lib/components/primitives/checkbox/checkbox.svelte +1 -1
- package/src/lib/components/primitives/command/command-dialog.svelte +42 -0
- package/src/lib/components/primitives/command/command-empty.svelte +17 -0
- package/src/lib/components/primitives/command/command-group.svelte +33 -0
- package/src/lib/components/primitives/command/command-input.svelte +36 -0
- package/src/lib/components/primitives/command/command-item.svelte +28 -0
- package/src/lib/components/primitives/command/command-link-item.svelte +21 -0
- package/src/lib/components/primitives/command/command-list.svelte +20 -0
- package/src/lib/components/primitives/command/command-loading.svelte +7 -0
- package/src/lib/components/primitives/command/command-separator.svelte +17 -0
- package/src/lib/components/primitives/command/command-shortcut.svelte +23 -0
- package/src/lib/components/primitives/command/command.svelte +28 -0
- package/src/lib/components/primitives/command/index.ts +37 -0
- package/src/lib/components/primitives/context-menu/context-menu-content.svelte +1 -1
- package/src/lib/components/primitives/context-menu/context-menu-sub-content.svelte +1 -1
- package/src/lib/components/primitives/dialog/dialog-content.svelte +5 -1
- package/src/lib/components/primitives/dialog/dialog-overlay.svelte +1 -1
- package/src/lib/components/primitives/dialog/dialog-title.svelte +6 -2
- package/src/lib/components/primitives/drawer/Drawer.svelte +1 -1
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-checkbox-item.svelte +46 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-content.svelte +31 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-group.svelte +7 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-item.svelte +27 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-label.svelte +24 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-portal.svelte +7 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-radio-item.svelte +36 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-separator.svelte +17 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-shortcut.svelte +23 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub-content.svelte +31 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-sub.svelte +7 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
- package/src/lib/components/primitives/dropdown-menu/dropdown-menu.svelte +7 -0
- package/src/lib/components/primitives/dropdown-menu/index.ts +54 -0
- package/src/lib/components/primitives/{alert/alert-description.svelte → empty/empty-content.svelte} +3 -3
- package/src/lib/components/primitives/empty/empty-description.svelte +23 -0
- package/src/lib/components/primitives/{alert/alert-title.svelte → empty/empty-header.svelte} +3 -3
- package/src/lib/components/primitives/empty/empty-media.svelte +41 -0
- package/src/lib/components/primitives/{card/card-action.svelte → empty/empty-title.svelte} +2 -2
- package/src/lib/components/primitives/empty/empty.svelte +23 -0
- package/src/lib/components/primitives/empty/index.ts +22 -0
- package/src/lib/components/primitives/index.ts +10 -1
- package/src/lib/components/primitives/input/input.svelte +4 -4
- package/src/lib/components/primitives/input-group/index.ts +22 -0
- package/src/lib/components/primitives/input-group/input-group-addon.svelte +53 -0
- package/src/lib/components/primitives/input-group/input-group-button.svelte +49 -0
- package/src/lib/components/primitives/input-group/input-group-input.svelte +25 -0
- package/src/lib/components/primitives/input-group/input-group-text.svelte +22 -0
- package/src/lib/components/primitives/input-group/input-group-textarea.svelte +23 -0
- package/src/lib/components/primitives/input-group/input-group.svelte +24 -0
- package/src/lib/components/primitives/mode-toggle/mode-toggle.svelte +2 -6
- package/src/lib/components/primitives/popover/index.ts +28 -0
- package/src/lib/components/primitives/popover/popover-close.svelte +7 -0
- package/src/lib/components/primitives/popover/popover-content.svelte +31 -0
- package/src/lib/components/primitives/popover/popover-description.svelte +20 -0
- package/src/lib/components/primitives/popover/popover-header.svelte +20 -0
- package/src/lib/components/primitives/popover/popover-portal.svelte +7 -0
- package/src/lib/components/primitives/popover/popover-title.svelte +15 -0
- package/src/lib/components/primitives/popover/popover-trigger.svelte +17 -0
- package/src/lib/components/primitives/popover/popover.svelte +7 -0
- package/src/lib/components/primitives/resizable/resizable-handle.svelte +6 -2
- package/src/lib/components/primitives/resizable/resizable-pane-group.svelte +1 -4
- package/src/lib/components/primitives/scroll-area/scroll-area.svelte +1 -1
- package/src/lib/components/primitives/search/search.svelte +3 -3
- package/src/lib/components/primitives/select/select-content.svelte +1 -1
- package/src/lib/components/primitives/select/select-trigger.svelte +1 -1
- package/src/lib/components/primitives/severity.ts +26 -0
- package/src/lib/components/primitives/slider/slider.svelte +2 -2
- package/src/lib/components/primitives/sonner/sonner.svelte +1 -1
- package/src/lib/components/primitives/spinner/index.ts +1 -0
- package/src/lib/components/primitives/spinner/spinner.svelte +29 -0
- package/src/lib/components/primitives/switch/switch.svelte +2 -2
- package/src/lib/components/primitives/tabs/tabs-list.svelte +27 -5
- package/src/lib/components/primitives/tabs/tabs-trigger.svelte +23 -5
- package/src/lib/components/primitives/tabs/tabs.svelte +6 -2
- package/src/lib/components/primitives/textarea/textarea.svelte +1 -1
- package/src/lib/components/primitives/theme-switcher/ThemeSwitcher.svelte +1 -1
- package/src/lib/components/primitives/toggle/index.ts +13 -0
- package/src/lib/components/primitives/toggle/toggle.svelte +52 -0
- package/src/lib/components/primitives/toggle-group/index.ts +10 -0
- package/src/lib/components/primitives/toggle-group/toggle-group-item.svelte +35 -0
- package/src/lib/components/primitives/toggle-group/toggle-group.svelte +75 -0
- package/src/lib/components/viewer/MeshMetadataDialog.svelte +3 -3
- package/src/lib/components/viewer/SceneManager.svelte +14 -5
- package/src/lib/components/viewer/Viewer.svelte +120 -171
- package/src/lib/i18n/messages.ts +6 -0
- package/src/lib/styles/base.css +43 -0
- package/dist/components/primitives/alert/alert.svelte +0 -44
- package/dist/components/primitives/alert/alert.svelte.d.ts +0 -26
- package/dist/components/primitives/alert/index.d.ts +0 -5
- package/dist/components/primitives/alert/index.js +0 -7
- package/src/lib/components/primitives/alert/alert.svelte +0 -44
- package/src/lib/components/primitives/alert/index.ts +0 -14
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ToggleGroup as ToggleGroupPrimitive } from 'bits-ui';
|
|
2
|
+
import { type ToggleVariants } from '../toggle/index.js';
|
|
3
|
+
type $$ComponentProps = ToggleGroupPrimitive.ItemProps & ToggleVariants;
|
|
4
|
+
declare const ToggleGroupItem: import("svelte").Component<$$ComponentProps, {}, "ref" | "value">;
|
|
5
|
+
type ToggleGroupItem = ReturnType<typeof ToggleGroupItem>;
|
|
6
|
+
export default ToggleGroupItem;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import { getContext, setContext } from 'svelte';
|
|
3
|
+
import { toggleVariants } from '../toggle/index.js';
|
|
4
|
+
import type { VariantProps } from 'tailwind-variants';
|
|
5
|
+
|
|
6
|
+
type ToggleVariants = VariantProps<typeof toggleVariants>;
|
|
7
|
+
|
|
8
|
+
interface ToggleGroupContext extends ToggleVariants {
|
|
9
|
+
spacing?: number;
|
|
10
|
+
orientation?: 'horizontal' | 'vertical';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function setToggleGroupCtx(props: ToggleGroupContext) {
|
|
14
|
+
setContext('toggleGroup', props);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function getToggleGroupCtx() {
|
|
18
|
+
return getContext<Required<ToggleGroupContext>>('toggleGroup');
|
|
19
|
+
}
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<script lang="ts">
|
|
23
|
+
import { ToggleGroup as ToggleGroupPrimitive } from 'bits-ui';
|
|
24
|
+
import { cn } from '../../../utils.js';
|
|
25
|
+
|
|
26
|
+
let {
|
|
27
|
+
ref = $bindable(null),
|
|
28
|
+
value = $bindable(),
|
|
29
|
+
class: className,
|
|
30
|
+
size = 'default',
|
|
31
|
+
spacing = 0,
|
|
32
|
+
orientation = 'horizontal',
|
|
33
|
+
variant = 'default',
|
|
34
|
+
...restProps
|
|
35
|
+
}: ToggleGroupPrimitive.RootProps &
|
|
36
|
+
ToggleVariants & {
|
|
37
|
+
spacing?: number;
|
|
38
|
+
orientation?: 'horizontal' | 'vertical';
|
|
39
|
+
} = $props();
|
|
40
|
+
|
|
41
|
+
setToggleGroupCtx({
|
|
42
|
+
get variant() {
|
|
43
|
+
return variant;
|
|
44
|
+
},
|
|
45
|
+
get size() {
|
|
46
|
+
return size;
|
|
47
|
+
},
|
|
48
|
+
get spacing() {
|
|
49
|
+
return spacing;
|
|
50
|
+
},
|
|
51
|
+
get orientation() {
|
|
52
|
+
return orientation;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
<!--
|
|
58
|
+
Discriminated Unions + Destructing (required for bindable) do not
|
|
59
|
+
get along, so we shut typescript up by casting `value` to `never`.
|
|
60
|
+
-->
|
|
61
|
+
<ToggleGroupPrimitive.Root
|
|
62
|
+
bind:value={value as never}
|
|
63
|
+
bind:ref
|
|
64
|
+
{orientation}
|
|
65
|
+
data-slot="toggle-group"
|
|
66
|
+
data-variant={variant}
|
|
67
|
+
data-size={size}
|
|
68
|
+
data-spacing={spacing}
|
|
69
|
+
style="--gap: calc(var(--spacing) * {spacing})"
|
|
70
|
+
class={cn(
|
|
71
|
+
'group/toggle-group flex w-fit flex-row items-center gap-(--gap) rounded-lg data-vertical:flex-col data-vertical:items-stretch data-[size=sm]:rounded-md',
|
|
72
|
+
className
|
|
73
|
+
)}
|
|
74
|
+
{...restProps}
|
|
75
|
+
/>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { toggleVariants } from '../toggle/index.js';
|
|
2
|
+
import type { VariantProps } from 'tailwind-variants';
|
|
3
|
+
type ToggleVariants = VariantProps<typeof toggleVariants>;
|
|
4
|
+
interface ToggleGroupContext extends ToggleVariants {
|
|
5
|
+
spacing?: number;
|
|
6
|
+
orientation?: 'horizontal' | 'vertical';
|
|
7
|
+
}
|
|
8
|
+
export declare function setToggleGroupCtx(props: ToggleGroupContext): void;
|
|
9
|
+
export declare function getToggleGroupCtx(): Required<ToggleGroupContext>;
|
|
10
|
+
import { ToggleGroup as ToggleGroupPrimitive } from 'bits-ui';
|
|
11
|
+
type $$ComponentProps = ToggleGroupPrimitive.RootProps & ToggleVariants & {
|
|
12
|
+
spacing?: number;
|
|
13
|
+
orientation?: 'horizontal' | 'vertical';
|
|
14
|
+
};
|
|
15
|
+
declare const ToggleGroup: import("svelte").Component<$$ComponentProps, {}, "ref" | "value">;
|
|
16
|
+
type ToggleGroup = ReturnType<typeof ToggleGroup>;
|
|
17
|
+
export default ToggleGroup;
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
</script>
|
|
49
49
|
|
|
50
50
|
<Dialog.Root bind:open {onOpenChange}>
|
|
51
|
-
<Dialog.Content class="min-w-60 max-w-xs
|
|
51
|
+
<Dialog.Content variant="flush" class="min-w-60 max-w-xs w-auto">
|
|
52
52
|
{#if meshName}
|
|
53
53
|
<div class="px-4 pt-3 pb-2 border-b">
|
|
54
|
-
<Dialog.Title
|
|
54
|
+
<Dialog.Title size="sm">{meshName}</Dialog.Title>
|
|
55
55
|
</div>
|
|
56
56
|
{:else}
|
|
57
57
|
<Dialog.Title class="sr-only">{t.objectFallbackName}</Dialog.Title>
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
{:else if typeof value === 'number'}
|
|
103
103
|
<span class="font-mono">{value}</span>
|
|
104
104
|
{:else if typeof value === 'boolean'}
|
|
105
|
-
<span class={value ? 'text-
|
|
105
|
+
<span class={value ? 'text-success' : 'text-muted-foreground'}
|
|
106
106
|
>{value ? 'true' : 'false'}</span
|
|
107
107
|
>
|
|
108
108
|
{:else}
|
|
@@ -256,9 +256,18 @@
|
|
|
256
256
|
<!-- Spacer sized to the full list; windowed rows are placed into it by offset. The listbox
|
|
257
257
|
sits here rather than per layer: windowing renders one flat row list, so every option
|
|
258
258
|
shares a single owner. -->
|
|
259
|
-
<div
|
|
259
|
+
<div
|
|
260
|
+
role="listbox"
|
|
261
|
+
aria-multiselectable="true"
|
|
262
|
+
class="relative h-(--list-h)"
|
|
263
|
+
style:--list-h="{totalHeight}px"
|
|
264
|
+
>
|
|
260
265
|
{#each visibleRows as row (row.key)}
|
|
261
|
-
<div
|
|
266
|
+
<div
|
|
267
|
+
class="inset-x-0 absolute top-(--row-top) h-(--row-h)"
|
|
268
|
+
style:--row-top="{row.top}px"
|
|
269
|
+
style:--row-h="{row.height}px"
|
|
270
|
+
>
|
|
262
271
|
{#if row.kind === 'layer'}
|
|
263
272
|
{@const entries = row.entries}
|
|
264
273
|
{@const numHidden = hiddenCount(entries)}
|
|
@@ -304,7 +313,7 @@
|
|
|
304
313
|
{row.layerName}
|
|
305
314
|
</span>
|
|
306
315
|
|
|
307
|
-
<span class="shrink-0 text-
|
|
316
|
+
<span class="shrink-0 text-2xs text-muted-foreground/50 tabular-nums">
|
|
308
317
|
{entries.length}
|
|
309
318
|
</span>
|
|
310
319
|
</div>
|
|
@@ -355,7 +364,7 @@
|
|
|
355
364
|
</span>
|
|
356
365
|
|
|
357
366
|
<span
|
|
358
|
-
class="rounded px-1 py-0.5 font-medium shrink-0 bg-muted text-
|
|
367
|
+
class="rounded px-1 py-0.5 font-medium shrink-0 bg-muted text-2xs text-muted-foreground/70"
|
|
359
368
|
>
|
|
360
369
|
{getTypeLabel(entry.object)}
|
|
361
370
|
</span>
|
|
@@ -390,7 +399,7 @@
|
|
|
390
399
|
background: transparent;
|
|
391
400
|
}
|
|
392
401
|
div::-webkit-scrollbar-thumb {
|
|
393
|
-
background:
|
|
402
|
+
background: color-mix(in oklch, var(--muted-foreground) 15%, transparent);
|
|
394
403
|
border-radius: 2px;
|
|
395
404
|
}
|
|
396
405
|
</style>
|
|
@@ -26,12 +26,9 @@
|
|
|
26
26
|
Frame,
|
|
27
27
|
Ruler,
|
|
28
28
|
Grid3x3,
|
|
29
|
-
Check,
|
|
30
|
-
ChevronRight,
|
|
31
29
|
Palette,
|
|
32
30
|
Spline
|
|
33
31
|
} from '@lucide/svelte';
|
|
34
|
-
import { DropdownMenu } from 'bits-ui';
|
|
35
32
|
import { SvelteSet } from 'svelte/reactivity';
|
|
36
33
|
import type * as THREE from 'three';
|
|
37
34
|
import type { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
@@ -39,6 +36,8 @@
|
|
|
39
36
|
import SceneManager from './SceneManager.svelte';
|
|
40
37
|
import MeshMetadataDialog from './MeshMetadataDialog.svelte';
|
|
41
38
|
import * as Resizable from '../primitives/resizable/index.js';
|
|
39
|
+
import * as DropdownMenu from '../primitives/dropdown-menu/index.js';
|
|
40
|
+
import { Button } from '../primitives/button/index.js';
|
|
42
41
|
import type { Locale } from '../../i18n/messages';
|
|
43
42
|
import { setLocaleContext, getLocaleContext } from '../../i18n/localeContext.svelte';
|
|
44
43
|
|
|
@@ -417,7 +416,7 @@
|
|
|
417
416
|
<div
|
|
418
417
|
class="min-h-64 sm:min-h-96 lg:min-h-125 relative h-full flex-1 border {isFullscreen
|
|
419
418
|
? 'fullscreen-viewer'
|
|
420
|
-
: 'overflow-hidden rounded-
|
|
419
|
+
: 'overflow-hidden rounded-lg'}"
|
|
421
420
|
>
|
|
422
421
|
<Resizable.PaneGroup direction="horizontal" class="h-full w-full">
|
|
423
422
|
<!-- `defaultSize` must sum to 100 across the live panes. Panes register a frame before the
|
|
@@ -426,7 +425,7 @@
|
|
|
426
425
|
scene pane keeps a sliver of its intended width. Hence 85 + 15, and the explicit id/order
|
|
427
426
|
so a conditionally-rendered pane keeps its slot. -->
|
|
428
427
|
<Resizable.Pane id="viewport" order={1} defaultSize={sceneManagerOpen ? 85 : 100} minSize={40}>
|
|
429
|
-
<div class="relative h-full w-full
|
|
428
|
+
<div class="relative h-full w-full touch-none">
|
|
430
429
|
<!-- Mesh count of the geometry currently in the scene. The canvas itself is opaque to
|
|
431
430
|
the DOM, so this is the only observable proof a solve's geometry decoded and
|
|
432
431
|
rendered; e2e asserts on it. -->
|
|
@@ -444,19 +443,18 @@
|
|
|
444
443
|
></div>
|
|
445
444
|
|
|
446
445
|
{#if isSolving}
|
|
447
|
-
<div
|
|
448
|
-
class="inset-0 absolute z-10 animate-[selva-viewer-fade-in_0.2s_ease-out] backdrop-blur-[2px] transition-all duration-300"
|
|
449
|
-
></div>
|
|
446
|
+
<div class="inset-0 animate-in fade-in backdrop-blur-xs absolute z-10 duration-200"></div>
|
|
450
447
|
{/if}
|
|
451
448
|
|
|
452
449
|
{#if logoUrl}
|
|
453
450
|
<!-- Bottom offset matches the tools menu so it clears the mobile drawer handle.
|
|
454
451
|
Always pointer-events:none so it never intercepts canvas drags. -->
|
|
455
452
|
<div
|
|
456
|
-
class="right-4 {isFullscreen
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
453
|
+
class="right-4 {isFullscreen
|
|
454
|
+
? 'bottom-4'
|
|
455
|
+
: 'bottom-16 sm:bottom-4'} pointer-events-none absolute z-20 {hideButton
|
|
456
|
+
? 'opacity-0'
|
|
457
|
+
: ''}"
|
|
460
458
|
>
|
|
461
459
|
<img
|
|
462
460
|
src={logoUrl}
|
|
@@ -467,171 +465,131 @@
|
|
|
467
465
|
{/if}
|
|
468
466
|
|
|
469
467
|
{#if config.showToolsMenu}
|
|
470
|
-
{@const itemClass =
|
|
471
|
-
'gap-2 px-2 py-1.5 text-sm flex cursor-pointer select-none items-center rounded-sm outline-none transition-colors hover:bg-muted focus:bg-muted'}
|
|
472
468
|
<div
|
|
473
469
|
class="left-4 {isFullscreen
|
|
474
470
|
? 'bottom-4'
|
|
475
|
-
: 'bottom-16 sm:bottom-4'} absolute z-50 flex items-center
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
: 'opacity: 1; pointer-events: auto;'}
|
|
471
|
+
: 'bottom-16 sm:bottom-4'} shadow-lg absolute z-50 flex items-center rounded-lg {hideButton
|
|
472
|
+
? 'pointer-events-none opacity-0'
|
|
473
|
+
: ''}"
|
|
479
474
|
>
|
|
480
475
|
<DropdownMenu.Root>
|
|
481
|
-
<DropdownMenu.Trigger
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
476
|
+
<DropdownMenu.Trigger>
|
|
477
|
+
{#snippet child({ props })}
|
|
478
|
+
<Button
|
|
479
|
+
{...props}
|
|
480
|
+
variant="outline"
|
|
481
|
+
size="icon-lg"
|
|
482
|
+
title={t.toolsMenu}
|
|
483
|
+
aria-label={t.toolsMenu}
|
|
484
|
+
>
|
|
485
|
+
<Settings2 />
|
|
486
|
+
</Button>
|
|
487
|
+
{/snippet}
|
|
487
488
|
</DropdownMenu.Trigger>
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
489
|
+
<!-- Above the fullscreen viewer, which sits at z-index 10000. -->
|
|
490
|
+
<DropdownMenu.Content sideOffset={6} class="min-w-44 z-10001 w-auto">
|
|
491
|
+
<DropdownMenu.Item onSelect={toggleProjection}>
|
|
492
|
+
{#if projection === 'perspective'}
|
|
493
|
+
<Square />
|
|
494
|
+
{t.switchToOrthographic}
|
|
495
|
+
{:else}
|
|
496
|
+
<Box />
|
|
497
|
+
{t.switchToPerspective}
|
|
498
|
+
{/if}
|
|
499
|
+
</DropdownMenu.Item>
|
|
500
|
+
<DropdownMenu.Item onSelect={() => fitToView?.()}>
|
|
501
|
+
<Frame />
|
|
502
|
+
{t.fitToView}
|
|
503
|
+
</DropdownMenu.Item>
|
|
504
|
+
|
|
505
|
+
<DropdownMenu.Sub>
|
|
506
|
+
<DropdownMenu.SubTrigger>
|
|
507
|
+
<Box />
|
|
508
|
+
{t.views}
|
|
509
|
+
</DropdownMenu.SubTrigger>
|
|
510
|
+
<DropdownMenu.SubContent class="z-10001">
|
|
511
|
+
{#each VIEW_PRESETS as { preset, label } (preset)}
|
|
512
|
+
<DropdownMenu.Item onSelect={() => setView(preset)}
|
|
513
|
+
>{label()}</DropdownMenu.Item
|
|
514
|
+
>
|
|
515
|
+
{/each}
|
|
516
|
+
</DropdownMenu.SubContent>
|
|
517
|
+
</DropdownMenu.Sub>
|
|
508
518
|
|
|
519
|
+
{#if config.showDisplayMenu}
|
|
509
520
|
<DropdownMenu.Sub>
|
|
510
|
-
<DropdownMenu.SubTrigger
|
|
511
|
-
<
|
|
512
|
-
|
|
513
|
-
<ChevronRight class="h-4 w-4 text-muted-foreground" />
|
|
521
|
+
<DropdownMenu.SubTrigger>
|
|
522
|
+
<Palette />
|
|
523
|
+
{t.display}
|
|
514
524
|
</DropdownMenu.SubTrigger>
|
|
515
|
-
<DropdownMenu.SubContent
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
{#each VIEW_PRESETS as { preset, label } (preset)}
|
|
520
|
-
<DropdownMenu.Item
|
|
521
|
-
class="px-2 py-1.5 text-sm flex cursor-pointer items-center rounded-sm transition-colors outline-none select-none hover:bg-muted focus:bg-muted"
|
|
522
|
-
onSelect={() => setView(preset)}
|
|
523
|
-
>
|
|
524
|
-
{label()}
|
|
525
|
-
</DropdownMenu.Item>
|
|
526
|
-
{/each}
|
|
527
|
-
</DropdownMenu.SubContent>
|
|
528
|
-
</DropdownMenu.Sub>
|
|
529
|
-
|
|
530
|
-
{#if config.showDisplayMenu}
|
|
531
|
-
<DropdownMenu.Sub>
|
|
532
|
-
<DropdownMenu.SubTrigger class="{itemClass} data-[state=open]:bg-muted">
|
|
533
|
-
<Palette class="h-4 w-4" />
|
|
534
|
-
<span class="flex-1">{t.display}</span>
|
|
535
|
-
<ChevronRight class="h-4 w-4 text-muted-foreground" />
|
|
536
|
-
</DropdownMenu.SubTrigger>
|
|
537
|
-
<DropdownMenu.SubContent
|
|
538
|
-
sideOffset={4}
|
|
539
|
-
class="min-w-40 p-1 shadow-md z-10001 rounded-md border bg-popover text-popover-foreground"
|
|
525
|
+
<DropdownMenu.SubContent class="min-w-40 z-10001">
|
|
526
|
+
<DropdownMenu.RadioGroup
|
|
527
|
+
value={renderStyle}
|
|
528
|
+
onValueChange={(look) => setRenderStyle(look as typeof renderStyle)}
|
|
540
529
|
>
|
|
541
530
|
{#each STYLE_OPTIONS as { look, label } (look)}
|
|
542
|
-
<DropdownMenu.
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
onSelect={() => setRenderStyle(look)}
|
|
546
|
-
>
|
|
547
|
-
<span class="flex-1">{label}</span>
|
|
548
|
-
{#if renderStyle === look}
|
|
549
|
-
<Check class="h-4 w-4" />
|
|
550
|
-
{/if}
|
|
551
|
-
</DropdownMenu.Item>
|
|
531
|
+
<DropdownMenu.RadioItem value={look} closeOnSelect={false}>
|
|
532
|
+
{label}
|
|
533
|
+
</DropdownMenu.RadioItem>
|
|
552
534
|
{/each}
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
535
|
+
</DropdownMenu.RadioGroup>
|
|
536
|
+
<DropdownMenu.Separator />
|
|
537
|
+
<DropdownMenu.CheckboxItem
|
|
538
|
+
checked={edgesVisible}
|
|
539
|
+
onCheckedChange={toggleEdges}
|
|
540
|
+
>
|
|
541
|
+
<Spline />
|
|
542
|
+
{t.edges}
|
|
543
|
+
</DropdownMenu.CheckboxItem>
|
|
544
|
+
</DropdownMenu.SubContent>
|
|
545
|
+
</DropdownMenu.Sub>
|
|
546
|
+
{/if}
|
|
547
|
+
|
|
548
|
+
<DropdownMenu.CheckboxItem checked={measureActive} onCheckedChange={toggleMeasure}>
|
|
549
|
+
<Ruler />
|
|
550
|
+
{t.measure}
|
|
551
|
+
</DropdownMenu.CheckboxItem>
|
|
552
|
+
|
|
553
|
+
{#if config.showGridToggle}
|
|
554
|
+
<DropdownMenu.CheckboxItem checked={gridVisible} onCheckedChange={toggleGrid}>
|
|
555
|
+
<Grid3x3 />
|
|
556
|
+
{t.grid}
|
|
557
|
+
</DropdownMenu.CheckboxItem>
|
|
558
|
+
{/if}
|
|
559
|
+
|
|
560
|
+
{#if config.showSceneManager || config.showScreenshotButton || config.showFullscreenButton}
|
|
561
|
+
<DropdownMenu.Separator />
|
|
562
|
+
{/if}
|
|
563
|
+
|
|
564
|
+
{#if config.showSceneManager}
|
|
565
|
+
<DropdownMenu.CheckboxItem
|
|
566
|
+
checked={sceneManagerOpen}
|
|
567
|
+
onCheckedChange={() => (sceneManagerOpen = !sceneManagerOpen)}
|
|
575
568
|
>
|
|
576
|
-
<
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
569
|
+
<Layers />
|
|
570
|
+
{t.sceneManager}
|
|
571
|
+
</DropdownMenu.CheckboxItem>
|
|
572
|
+
{/if}
|
|
573
|
+
|
|
574
|
+
{#if config.showScreenshotButton}
|
|
575
|
+
<DropdownMenu.Item onSelect={downloadScreenshot}>
|
|
576
|
+
<Camera />
|
|
577
|
+
{t.screenshot}
|
|
581
578
|
</DropdownMenu.Item>
|
|
579
|
+
{/if}
|
|
582
580
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
<
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
{/if}
|
|
596
|
-
|
|
597
|
-
{#if config.showSceneManager || config.showScreenshotButton || config.showFullscreenButton}
|
|
598
|
-
<DropdownMenu.Separator class="my-1 h-px bg-border" />
|
|
599
|
-
{/if}
|
|
600
|
-
|
|
601
|
-
{#if config.showSceneManager}
|
|
602
|
-
<DropdownMenu.Item
|
|
603
|
-
closeOnSelect={false}
|
|
604
|
-
class="{itemClass} {sceneManagerOpen ? 'text-primary' : ''}"
|
|
605
|
-
onSelect={() => (sceneManagerOpen = !sceneManagerOpen)}
|
|
606
|
-
>
|
|
607
|
-
<Layers class="h-4 w-4" />
|
|
608
|
-
<span class="flex-1">{t.sceneManager}</span>
|
|
609
|
-
{#if sceneManagerOpen}
|
|
610
|
-
<Check class="h-4 w-4" />
|
|
611
|
-
{/if}
|
|
612
|
-
</DropdownMenu.Item>
|
|
613
|
-
{/if}
|
|
614
|
-
|
|
615
|
-
{#if config.showScreenshotButton}
|
|
616
|
-
<DropdownMenu.Item class={itemClass} onSelect={downloadScreenshot}>
|
|
617
|
-
<Camera class="h-4 w-4" />
|
|
618
|
-
{t.screenshot}
|
|
619
|
-
</DropdownMenu.Item>
|
|
620
|
-
{/if}
|
|
621
|
-
|
|
622
|
-
{#if config.showFullscreenButton}
|
|
623
|
-
<DropdownMenu.Item class={itemClass} onSelect={toggleFullscreen}>
|
|
624
|
-
{#if isFullscreen}
|
|
625
|
-
<Minimize class="h-4 w-4" />
|
|
626
|
-
{t.exitFullscreen}
|
|
627
|
-
{:else}
|
|
628
|
-
<Maximize class="h-4 w-4" />
|
|
629
|
-
{t.fullscreen}
|
|
630
|
-
{/if}
|
|
631
|
-
</DropdownMenu.Item>
|
|
632
|
-
{/if}
|
|
633
|
-
</DropdownMenu.Content>
|
|
634
|
-
</DropdownMenu.Portal>
|
|
581
|
+
{#if config.showFullscreenButton}
|
|
582
|
+
<DropdownMenu.Item onSelect={toggleFullscreen}>
|
|
583
|
+
{#if isFullscreen}
|
|
584
|
+
<Minimize />
|
|
585
|
+
{t.exitFullscreen}
|
|
586
|
+
{:else}
|
|
587
|
+
<Maximize />
|
|
588
|
+
{t.fullscreen}
|
|
589
|
+
{/if}
|
|
590
|
+
</DropdownMenu.Item>
|
|
591
|
+
{/if}
|
|
592
|
+
</DropdownMenu.Content>
|
|
635
593
|
</DropdownMenu.Root>
|
|
636
594
|
</div>
|
|
637
595
|
{/if}
|
|
@@ -699,13 +657,4 @@
|
|
|
699
657
|
backdrop-filter: blur(0px);
|
|
700
658
|
}
|
|
701
659
|
}
|
|
702
|
-
|
|
703
|
-
@keyframes selva-viewer-fade-in {
|
|
704
|
-
from {
|
|
705
|
-
opacity: 0;
|
|
706
|
-
}
|
|
707
|
-
to {
|
|
708
|
-
opacity: 1;
|
|
709
|
-
}
|
|
710
|
-
}
|
|
711
660
|
</style>
|
package/dist/i18n/messages.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export interface ViewerMessages {
|
|
|
47
47
|
solveSolving: string;
|
|
48
48
|
parametersTab: string;
|
|
49
49
|
moreTab: string;
|
|
50
|
+
scrollTabsBack: string;
|
|
51
|
+
scrollTabsForward: string;
|
|
50
52
|
expandPanel: string;
|
|
51
53
|
collapsePanel: string;
|
|
52
54
|
/** `{side}` is replaced with `panelSideLeft` / `panelSideRight`. */
|
package/dist/i18n/messages.js
CHANGED
|
@@ -52,6 +52,8 @@ const en = {
|
|
|
52
52
|
solveSolving: 'Solving…',
|
|
53
53
|
parametersTab: 'Parameters',
|
|
54
54
|
moreTab: 'More',
|
|
55
|
+
scrollTabsBack: 'Previous tabs',
|
|
56
|
+
scrollTabsForward: 'More tabs',
|
|
55
57
|
expandPanel: 'Expand panel',
|
|
56
58
|
collapsePanel: 'Collapse panel',
|
|
57
59
|
expandSidePanel: 'Expand {side} panel',
|
|
@@ -112,6 +114,8 @@ const de = {
|
|
|
112
114
|
solveSolving: 'Berechnung läuft…',
|
|
113
115
|
parametersTab: 'Parameter',
|
|
114
116
|
moreTab: 'Mehr',
|
|
117
|
+
scrollTabsBack: 'Vorherige Tabs',
|
|
118
|
+
scrollTabsForward: 'Weitere Tabs',
|
|
115
119
|
expandPanel: 'Bereich aufklappen',
|
|
116
120
|
collapsePanel: 'Bereich zuklappen',
|
|
117
121
|
expandSidePanel: '{side} Bereich aufklappen',
|
package/dist/styles/base.css
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
--accent: oklch(0.93 0 0);
|
|
21
21
|
--accent-foreground: oklch(0.3 0 0);
|
|
22
22
|
--destructive: oklch(0.6 0.18 27);
|
|
23
|
+
--destructive-foreground: oklch(0.985 0 0);
|
|
23
24
|
--border: oklch(0.86 0 0);
|
|
24
25
|
--input: oklch(0.91 0 0);
|
|
25
26
|
--ring: oklch(0.67 0 0);
|
|
@@ -44,6 +45,8 @@
|
|
|
44
45
|
--sidebar-ring: oklch(0.67 0 0);
|
|
45
46
|
--inputparam: oklch(1 0 0);
|
|
46
47
|
--outputparam: oklch(1 0 0);
|
|
48
|
+
/* Scrim behind modal dialogs and drawers. */
|
|
49
|
+
--overlay: oklch(0 0 0 / 50%);
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
.dark {
|
|
@@ -62,6 +65,7 @@
|
|
|
62
65
|
--accent: oklch(0.36 0 0);
|
|
63
66
|
--accent-foreground: oklch(0.92 0 0);
|
|
64
67
|
--destructive: oklch(0.7 0.17 22);
|
|
68
|
+
--destructive-foreground: oklch(0.985 0 0);
|
|
65
69
|
--border: oklch(1 0 0 / 14%);
|
|
66
70
|
--input: oklch(1 0 0 / 12%);
|
|
67
71
|
--ring: oklch(0.74 0 0);
|
|
@@ -108,6 +112,8 @@
|
|
|
108
112
|
--color-accent: var(--accent);
|
|
109
113
|
--color-accent-foreground: var(--accent-foreground);
|
|
110
114
|
--color-destructive: var(--destructive);
|
|
115
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
116
|
+
--color-overlay: var(--overlay);
|
|
111
117
|
--color-border: var(--border);
|
|
112
118
|
--color-input: var(--input);
|
|
113
119
|
--color-ring: var(--ring);
|
|
@@ -134,6 +140,43 @@
|
|
|
134
140
|
--color-outputparam: var(--outputparam);
|
|
135
141
|
}
|
|
136
142
|
|
|
143
|
+
/* Design tokens beyond Tailwind's defaults. Reach for these before an arbitrary value: the
|
|
144
|
+
design-system lint rejects `text-[10px]`, `max-h-[85dvh]` and the like. */
|
|
145
|
+
@theme {
|
|
146
|
+
/* Type tags, counters and other dense labels. */
|
|
147
|
+
--text-2xs: 0.625rem;
|
|
148
|
+
--text-2xs--line-height: calc(0.875 / 0.625);
|
|
149
|
+
/* Bottom sheets cast their shadow upward. */
|
|
150
|
+
--shadow-sheet: 0 -4px 24px oklch(0 0 0 / 12%);
|
|
151
|
+
/* Width of anything that must keep a 1rem gutter on each side of the viewport. */
|
|
152
|
+
--container-screen-inset: calc(100% - 2rem);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@utility max-h-dialog {
|
|
156
|
+
max-height: 85dvh;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@utility no-scrollbar {
|
|
160
|
+
scrollbar-width: none;
|
|
161
|
+
&::-webkit-scrollbar {
|
|
162
|
+
display: none;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* Number fields whose value is set elsewhere (a slider, a stepper) drop the browser's spinner. */
|
|
167
|
+
@utility no-spinner {
|
|
168
|
+
appearance: textfield;
|
|
169
|
+
&::-webkit-inner-spin-button,
|
|
170
|
+
&::-webkit-outer-spin-button {
|
|
171
|
+
appearance: none;
|
|
172
|
+
margin: 0;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
@utility rounded-inherit {
|
|
177
|
+
border-radius: inherit;
|
|
178
|
+
}
|
|
179
|
+
|
|
137
180
|
@layer base {
|
|
138
181
|
* {
|
|
139
182
|
@apply border-border outline-ring/50;
|