@sewadah/selaras 0.1.1
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 +131 -0
- package/dist/module.d.mts +22 -0
- package/dist/module.json +9 -0
- package/dist/module.mjs +127 -0
- package/dist/runtime/components/Accordion.d.vue.ts +59 -0
- package/dist/runtime/components/Accordion.vue +65 -0
- package/dist/runtime/components/Accordion.vue.d.ts +59 -0
- package/dist/runtime/components/Alert.d.vue.ts +39 -0
- package/dist/runtime/components/Alert.vue +64 -0
- package/dist/runtime/components/Alert.vue.d.ts +39 -0
- package/dist/runtime/components/AlertDialog.d.vue.ts +66 -0
- package/dist/runtime/components/AlertDialog.vue +116 -0
- package/dist/runtime/components/AlertDialog.vue.d.ts +66 -0
- package/dist/runtime/components/App.d.vue.ts +32 -0
- package/dist/runtime/components/App.vue +26 -0
- package/dist/runtime/components/App.vue.d.ts +32 -0
- package/dist/runtime/components/Autocomplete.d.vue.ts +61 -0
- package/dist/runtime/components/Autocomplete.vue +41 -0
- package/dist/runtime/components/Autocomplete.vue.d.ts +61 -0
- package/dist/runtime/components/Avatar.d.vue.ts +46 -0
- package/dist/runtime/components/Avatar.vue +64 -0
- package/dist/runtime/components/Avatar.vue.d.ts +46 -0
- package/dist/runtime/components/AvatarGroup.d.vue.ts +14 -0
- package/dist/runtime/components/AvatarGroup.vue +41 -0
- package/dist/runtime/components/AvatarGroup.vue.d.ts +14 -0
- package/dist/runtime/components/Badge.d.vue.ts +37 -0
- package/dist/runtime/components/Badge.vue +47 -0
- package/dist/runtime/components/Badge.vue.d.ts +37 -0
- package/dist/runtime/components/Breadcrumb.d.vue.ts +37 -0
- package/dist/runtime/components/Breadcrumb.vue +109 -0
- package/dist/runtime/components/Breadcrumb.vue.d.ts +37 -0
- package/dist/runtime/components/Button.d.vue.ts +45 -0
- package/dist/runtime/components/Button.vue +67 -0
- package/dist/runtime/components/Button.vue.d.ts +45 -0
- package/dist/runtime/components/ButtonGroup.d.vue.ts +22 -0
- package/dist/runtime/components/ButtonGroup.vue +21 -0
- package/dist/runtime/components/ButtonGroup.vue.d.ts +22 -0
- package/dist/runtime/components/Callout.d.vue.ts +27 -0
- package/dist/runtime/components/Callout.vue +47 -0
- package/dist/runtime/components/Callout.vue.d.ts +27 -0
- package/dist/runtime/components/Card.d.vue.ts +25 -0
- package/dist/runtime/components/Card.vue +30 -0
- package/dist/runtime/components/Card.vue.d.ts +25 -0
- package/dist/runtime/components/CardGroup.d.vue.ts +23 -0
- package/dist/runtime/components/CardGroup.vue +19 -0
- package/dist/runtime/components/CardGroup.vue.d.ts +23 -0
- package/dist/runtime/components/Checkbox.d.vue.ts +45 -0
- package/dist/runtime/components/Checkbox.vue +76 -0
- package/dist/runtime/components/Checkbox.vue.d.ts +45 -0
- package/dist/runtime/components/Chip.d.vue.ts +50 -0
- package/dist/runtime/components/Chip.vue +75 -0
- package/dist/runtime/components/Chip.vue.d.ts +50 -0
- package/dist/runtime/components/CodeButton.d.vue.ts +21 -0
- package/dist/runtime/components/CodeButton.vue +33 -0
- package/dist/runtime/components/CodeButton.vue.d.ts +21 -0
- package/dist/runtime/components/CodeGroup.d.vue.ts +3 -0
- package/dist/runtime/components/CodeGroup.vue +46 -0
- package/dist/runtime/components/CodeGroup.vue.d.ts +3 -0
- package/dist/runtime/components/CodeTree.d.vue.ts +17 -0
- package/dist/runtime/components/CodeTree.vue +56 -0
- package/dist/runtime/components/CodeTree.vue.d.ts +17 -0
- package/dist/runtime/components/Collapsible.d.vue.ts +44 -0
- package/dist/runtime/components/Collapsible.vue +52 -0
- package/dist/runtime/components/Collapsible.vue.d.ts +44 -0
- package/dist/runtime/components/ColorModeToggle.d.vue.ts +3 -0
- package/dist/runtime/components/ColorModeToggle.vue +24 -0
- package/dist/runtime/components/ColorModeToggle.vue.d.ts +3 -0
- package/dist/runtime/components/ColorPicker.d.vue.ts +30 -0
- package/dist/runtime/components/ColorPicker.vue +112 -0
- package/dist/runtime/components/ColorPicker.vue.d.ts +30 -0
- package/dist/runtime/components/Column.d.ts +72 -0
- package/dist/runtime/components/Column.js +34 -0
- package/dist/runtime/components/ColumnGroup.d.ts +33 -0
- package/dist/runtime/components/ColumnGroup.js +17 -0
- package/dist/runtime/components/CommandPalette.d.vue.ts +41 -0
- package/dist/runtime/components/CommandPalette.vue +208 -0
- package/dist/runtime/components/CommandPalette.vue.d.ts +41 -0
- package/dist/runtime/components/Container.d.vue.ts +22 -0
- package/dist/runtime/components/Container.vue +21 -0
- package/dist/runtime/components/Container.vue.d.ts +22 -0
- package/dist/runtime/components/ContentNavigation.d.vue.ts +31 -0
- package/dist/runtime/components/ContentNavigation.vue +64 -0
- package/dist/runtime/components/ContentNavigation.vue.d.ts +31 -0
- package/dist/runtime/components/ContentSurround.d.vue.ts +16 -0
- package/dist/runtime/components/ContentSurround.vue +46 -0
- package/dist/runtime/components/ContentSurround.vue.d.ts +16 -0
- package/dist/runtime/components/ContentToc.d.vue.ts +35 -0
- package/dist/runtime/components/ContentToc.vue +265 -0
- package/dist/runtime/components/ContentToc.vue.d.ts +35 -0
- package/dist/runtime/components/ContextMenu.d.vue.ts +33 -0
- package/dist/runtime/components/ContextMenu.vue +49 -0
- package/dist/runtime/components/ContextMenu.vue.d.ts +33 -0
- package/dist/runtime/components/DashboardGroup.d.vue.ts +24 -0
- package/dist/runtime/components/DashboardGroup.vue +52 -0
- package/dist/runtime/components/DashboardGroup.vue.d.ts +24 -0
- package/dist/runtime/components/DashboardNavbar.d.vue.ts +23 -0
- package/dist/runtime/components/DashboardNavbar.vue +33 -0
- package/dist/runtime/components/DashboardNavbar.vue.d.ts +23 -0
- package/dist/runtime/components/DashboardPanel.d.vue.ts +22 -0
- package/dist/runtime/components/DashboardPanel.vue +26 -0
- package/dist/runtime/components/DashboardPanel.vue.d.ts +22 -0
- package/dist/runtime/components/DashboardResizeHandle.d.vue.ts +8 -0
- package/dist/runtime/components/DashboardResizeHandle.vue +19 -0
- package/dist/runtime/components/DashboardResizeHandle.vue.d.ts +8 -0
- package/dist/runtime/components/DashboardSidebar.d.vue.ts +40 -0
- package/dist/runtime/components/DashboardSidebar.vue +117 -0
- package/dist/runtime/components/DashboardSidebar.vue.d.ts +40 -0
- package/dist/runtime/components/DashboardSidebarToggle.d.vue.ts +21 -0
- package/dist/runtime/components/DashboardSidebarToggle.vue +42 -0
- package/dist/runtime/components/DashboardSidebarToggle.vue.d.ts +21 -0
- package/dist/runtime/components/DatePicker.d.vue.ts +165 -0
- package/dist/runtime/components/DatePicker.vue +796 -0
- package/dist/runtime/components/DatePicker.vue.d.ts +165 -0
- package/dist/runtime/components/Drawer.d.vue.ts +74 -0
- package/dist/runtime/components/Drawer.vue +157 -0
- package/dist/runtime/components/Drawer.vue.d.ts +74 -0
- package/dist/runtime/components/DrawerRenderer.d.vue.ts +3 -0
- package/dist/runtime/components/DrawerRenderer.vue +30 -0
- package/dist/runtime/components/DrawerRenderer.vue.d.ts +3 -0
- package/dist/runtime/components/Dropdown.d.vue.ts +35 -0
- package/dist/runtime/components/Dropdown.vue +51 -0
- package/dist/runtime/components/Dropdown.vue.d.ts +35 -0
- package/dist/runtime/components/FileTree.d.vue.ts +28 -0
- package/dist/runtime/components/FileTree.vue +68 -0
- package/dist/runtime/components/FileTree.vue.d.ts +28 -0
- package/dist/runtime/components/FileUpload.d.vue.ts +68 -0
- package/dist/runtime/components/FileUpload.vue +226 -0
- package/dist/runtime/components/FileUpload.vue.d.ts +68 -0
- package/dist/runtime/components/FormField.d.vue.ts +37 -0
- package/dist/runtime/components/FormField.vue +72 -0
- package/dist/runtime/components/FormField.vue.d.ts +37 -0
- package/dist/runtime/components/Header.d.vue.ts +20 -0
- package/dist/runtime/components/Header.vue +23 -0
- package/dist/runtime/components/Header.vue.d.ts +20 -0
- package/dist/runtime/components/Icon.d.vue.ts +14 -0
- package/dist/runtime/components/Icon.vue +18 -0
- package/dist/runtime/components/Icon.vue.d.ts +14 -0
- package/dist/runtime/components/Input.d.vue.ts +41 -0
- package/dist/runtime/components/Input.vue +86 -0
- package/dist/runtime/components/Input.vue.d.ts +41 -0
- package/dist/runtime/components/InputGroup.d.vue.ts +22 -0
- package/dist/runtime/components/InputGroup.vue +21 -0
- package/dist/runtime/components/InputGroup.vue.d.ts +22 -0
- package/dist/runtime/components/InputNumber.d.vue.ts +37 -0
- package/dist/runtime/components/InputNumber.vue +173 -0
- package/dist/runtime/components/InputNumber.vue.d.ts +37 -0
- package/dist/runtime/components/Kbd.d.vue.ts +24 -0
- package/dist/runtime/components/Kbd.vue +42 -0
- package/dist/runtime/components/Kbd.vue.d.ts +24 -0
- package/dist/runtime/components/Modal.d.vue.ts +72 -0
- package/dist/runtime/components/Modal.vue +178 -0
- package/dist/runtime/components/Modal.vue.d.ts +72 -0
- package/dist/runtime/components/ModalRenderer.d.vue.ts +3 -0
- package/dist/runtime/components/ModalRenderer.vue +25 -0
- package/dist/runtime/components/ModalRenderer.vue.d.ts +3 -0
- package/dist/runtime/components/NavigationMenu.d.vue.ts +108 -0
- package/dist/runtime/components/NavigationMenu.vue +166 -0
- package/dist/runtime/components/NavigationMenu.vue.d.ts +108 -0
- package/dist/runtime/components/NavigationMenuAccordionItem.d.vue.ts +23 -0
- package/dist/runtime/components/NavigationMenuAccordionItem.vue +106 -0
- package/dist/runtime/components/NavigationMenuAccordionItem.vue.d.ts +23 -0
- package/dist/runtime/components/NavigationMenuFlyoutList.d.vue.ts +19 -0
- package/dist/runtime/components/NavigationMenuFlyoutList.vue +44 -0
- package/dist/runtime/components/NavigationMenuFlyoutList.vue.d.ts +19 -0
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.d.vue.ts +49 -0
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue +116 -0
- package/dist/runtime/components/NavigationMenuFlyoutTrigger.vue.d.ts +49 -0
- package/dist/runtime/components/PageAside.d.vue.ts +20 -0
- package/dist/runtime/components/PageAside.vue +26 -0
- package/dist/runtime/components/PageAside.vue.d.ts +20 -0
- package/dist/runtime/components/PageHeader.d.vue.ts +24 -0
- package/dist/runtime/components/PageHeader.vue +30 -0
- package/dist/runtime/components/PageHeader.vue.d.ts +24 -0
- package/dist/runtime/components/Pagination.d.vue.ts +42 -0
- package/dist/runtime/components/Pagination.vue +113 -0
- package/dist/runtime/components/Pagination.vue.d.ts +42 -0
- package/dist/runtime/components/PinInput.d.vue.ts +40 -0
- package/dist/runtime/components/PinInput.vue +66 -0
- package/dist/runtime/components/PinInput.vue.d.ts +40 -0
- package/dist/runtime/components/Popover.d.vue.ts +52 -0
- package/dist/runtime/components/Popover.vue +77 -0
- package/dist/runtime/components/Popover.vue.d.ts +52 -0
- package/dist/runtime/components/Progress.d.vue.ts +32 -0
- package/dist/runtime/components/Progress.vue +76 -0
- package/dist/runtime/components/Progress.vue.d.ts +32 -0
- package/dist/runtime/components/ProseH1.d.vue.ts +18 -0
- package/dist/runtime/components/ProseH1.vue +21 -0
- package/dist/runtime/components/ProseH1.vue.d.ts +18 -0
- package/dist/runtime/components/ProseH2.d.vue.ts +18 -0
- package/dist/runtime/components/ProseH2.vue +21 -0
- package/dist/runtime/components/ProseH2.vue.d.ts +18 -0
- package/dist/runtime/components/ProseH3.d.vue.ts +18 -0
- package/dist/runtime/components/ProseH3.vue +21 -0
- package/dist/runtime/components/ProseH3.vue.d.ts +18 -0
- package/dist/runtime/components/ProseH4.d.vue.ts +18 -0
- package/dist/runtime/components/ProseH4.vue +21 -0
- package/dist/runtime/components/ProseH4.vue.d.ts +18 -0
- package/dist/runtime/components/ProseH5.d.vue.ts +18 -0
- package/dist/runtime/components/ProseH5.vue +21 -0
- package/dist/runtime/components/ProseH5.vue.d.ts +18 -0
- package/dist/runtime/components/ProseH6.d.vue.ts +18 -0
- package/dist/runtime/components/ProseH6.vue +21 -0
- package/dist/runtime/components/ProseH6.vue.d.ts +18 -0
- package/dist/runtime/components/ProsePre.d.vue.ts +20 -0
- package/dist/runtime/components/ProsePre.vue +50 -0
- package/dist/runtime/components/ProsePre.vue.d.ts +20 -0
- package/dist/runtime/components/RadioGroup.d.vue.ts +50 -0
- package/dist/runtime/components/RadioGroup.vue +82 -0
- package/dist/runtime/components/RadioGroup.vue.d.ts +50 -0
- package/dist/runtime/components/Rating.d.vue.ts +36 -0
- package/dist/runtime/components/Rating.vue +83 -0
- package/dist/runtime/components/Rating.vue.d.ts +36 -0
- package/dist/runtime/components/ReadMore.d.vue.ts +20 -0
- package/dist/runtime/components/ReadMore.vue +59 -0
- package/dist/runtime/components/ReadMore.vue.d.ts +20 -0
- package/dist/runtime/components/ScrollArea.d.vue.ts +19 -0
- package/dist/runtime/components/ScrollArea.vue +37 -0
- package/dist/runtime/components/ScrollArea.vue.d.ts +19 -0
- package/dist/runtime/components/Select.d.vue.ts +60 -0
- package/dist/runtime/components/Select.vue +40 -0
- package/dist/runtime/components/Select.vue.d.ts +60 -0
- package/dist/runtime/components/Separator.d.vue.ts +27 -0
- package/dist/runtime/components/Separator.vue +36 -0
- package/dist/runtime/components/Separator.vue.d.ts +27 -0
- package/dist/runtime/components/Skeleton.d.vue.ts +13 -0
- package/dist/runtime/components/Skeleton.vue +17 -0
- package/dist/runtime/components/Skeleton.vue.d.ts +13 -0
- package/dist/runtime/components/Slideover.d.vue.ts +65 -0
- package/dist/runtime/components/Slideover.vue +140 -0
- package/dist/runtime/components/Slideover.vue.d.ts +65 -0
- package/dist/runtime/components/SlideoverRenderer.d.vue.ts +3 -0
- package/dist/runtime/components/SlideoverRenderer.vue +27 -0
- package/dist/runtime/components/SlideoverRenderer.vue.d.ts +3 -0
- package/dist/runtime/components/Slider.d.vue.ts +60 -0
- package/dist/runtime/components/Slider.vue +186 -0
- package/dist/runtime/components/Slider.vue.d.ts +60 -0
- package/dist/runtime/components/Splitter.d.vue.ts +41 -0
- package/dist/runtime/components/Splitter.vue +31 -0
- package/dist/runtime/components/Splitter.vue.d.ts +41 -0
- package/dist/runtime/components/SplitterPanel.d.vue.ts +55 -0
- package/dist/runtime/components/SplitterPanel.vue +52 -0
- package/dist/runtime/components/SplitterPanel.vue.d.ts +55 -0
- package/dist/runtime/components/SplitterResizeHandle.d.vue.ts +14 -0
- package/dist/runtime/components/SplitterResizeHandle.vue +22 -0
- package/dist/runtime/components/SplitterResizeHandle.vue.d.ts +14 -0
- package/dist/runtime/components/Stepper.d.vue.ts +57 -0
- package/dist/runtime/components/Stepper.vue +101 -0
- package/dist/runtime/components/Stepper.vue.d.ts +57 -0
- package/dist/runtime/components/Switch.d.vue.ts +49 -0
- package/dist/runtime/components/Switch.vue +73 -0
- package/dist/runtime/components/Switch.vue.d.ts +49 -0
- package/dist/runtime/components/Table.d.vue.ts +83 -0
- package/dist/runtime/components/Table.vue +339 -0
- package/dist/runtime/components/Table.vue.d.ts +83 -0
- package/dist/runtime/components/Tabs.d.vue.ts +43 -0
- package/dist/runtime/components/Tabs.vue +60 -0
- package/dist/runtime/components/Tabs.vue.d.ts +43 -0
- package/dist/runtime/components/Textarea.d.vue.ts +45 -0
- package/dist/runtime/components/Textarea.vue +110 -0
- package/dist/runtime/components/Textarea.vue.d.ts +45 -0
- package/dist/runtime/components/Theme.d.vue.ts +19 -0
- package/dist/runtime/components/Theme.vue +18 -0
- package/dist/runtime/components/Theme.vue.d.ts +19 -0
- package/dist/runtime/components/Toast.d.vue.ts +8 -0
- package/dist/runtime/components/Toast.vue +58 -0
- package/dist/runtime/components/Toast.vue.d.ts +8 -0
- package/dist/runtime/components/Toggle.d.vue.ts +38 -0
- package/dist/runtime/components/Toggle.vue +44 -0
- package/dist/runtime/components/Toggle.vue.d.ts +38 -0
- package/dist/runtime/components/ToggleGroup.d.vue.ts +48 -0
- package/dist/runtime/components/ToggleGroup.vue +61 -0
- package/dist/runtime/components/ToggleGroup.vue.d.ts +48 -0
- package/dist/runtime/components/Tooltip.d.vue.ts +28 -0
- package/dist/runtime/components/Tooltip.vue +40 -0
- package/dist/runtime/components/Tooltip.vue.d.ts +28 -0
- package/dist/runtime/components/Tree.d.vue.ts +64 -0
- package/dist/runtime/components/Tree.vue +139 -0
- package/dist/runtime/components/Tree.vue.d.ts +64 -0
- package/dist/runtime/composables/use-combobox-select.d.ts +45 -0
- package/dist/runtime/composables/use-combobox-select.js +80 -0
- package/dist/runtime/composables/use-command-palette.d.ts +8 -0
- package/dist/runtime/composables/use-command-palette.js +14 -0
- package/dist/runtime/composables/use-drawer.d.ts +42 -0
- package/dist/runtime/composables/use-drawer.js +44 -0
- package/dist/runtime/composables/use-form-field.d.ts +10 -0
- package/dist/runtime/composables/use-form-field.js +8 -0
- package/dist/runtime/composables/use-icons.d.ts +10 -0
- package/dist/runtime/composables/use-icons.js +7 -0
- package/dist/runtime/composables/use-locale.d.ts +12 -0
- package/dist/runtime/composables/use-locale.js +6 -0
- package/dist/runtime/composables/use-media-query.d.ts +11 -0
- package/dist/runtime/composables/use-media-query.js +15 -0
- package/dist/runtime/composables/use-messages.d.ts +12 -0
- package/dist/runtime/composables/use-messages.js +7 -0
- package/dist/runtime/composables/use-modal.d.ts +32 -0
- package/dist/runtime/composables/use-modal.js +39 -0
- package/dist/runtime/composables/use-ripple.d.ts +15 -0
- package/dist/runtime/composables/use-ripple.js +6 -0
- package/dist/runtime/composables/use-slideover.d.ts +36 -0
- package/dist/runtime/composables/use-slideover.js +41 -0
- package/dist/runtime/composables/use-table.d.ts +63 -0
- package/dist/runtime/composables/use-table.js +142 -0
- package/dist/runtime/composables/use-toast.d.ts +15 -0
- package/dist/runtime/composables/use-toast.js +16 -0
- package/dist/runtime/directives/index.d.ts +1 -0
- package/dist/runtime/directives/index.js +1 -0
- package/dist/runtime/directives/ripple.d.ts +16 -0
- package/dist/runtime/directives/ripple.js +80 -0
- package/dist/runtime/internal/ColorPickerBody.d.vue.ts +26 -0
- package/dist/runtime/internal/ColorPickerBody.vue +111 -0
- package/dist/runtime/internal/ColorPickerBody.vue.d.ts +26 -0
- package/dist/runtime/internal/ComboboxSelectBase.d.vue.ts +122 -0
- package/dist/runtime/internal/ComboboxSelectBase.vue +590 -0
- package/dist/runtime/internal/ComboboxSelectBase.vue.d.ts +122 -0
- package/dist/runtime/internal/ComboboxSelectBody.d.vue.ts +71 -0
- package/dist/runtime/internal/ComboboxSelectBody.vue +146 -0
- package/dist/runtime/internal/ComboboxSelectBody.vue.d.ts +71 -0
- package/dist/runtime/internal/DatePickerCalendarBody.d.vue.ts +71 -0
- package/dist/runtime/internal/DatePickerCalendarBody.vue +215 -0
- package/dist/runtime/internal/DatePickerCalendarBody.vue.d.ts +71 -0
- package/dist/runtime/internal/DatePickerRangeCalendarBody.d.vue.ts +37 -0
- package/dist/runtime/internal/DatePickerRangeCalendarBody.vue +96 -0
- package/dist/runtime/internal/DatePickerRangeCalendarBody.vue.d.ts +37 -0
- package/dist/runtime/internal/DatePickerTimeBody.d.vue.ts +33 -0
- package/dist/runtime/internal/DatePickerTimeBody.vue +53 -0
- package/dist/runtime/internal/DatePickerTimeBody.vue.d.ts +33 -0
- package/dist/runtime/internal/TimeStepper.d.vue.ts +28 -0
- package/dist/runtime/internal/TimeStepper.vue +99 -0
- package/dist/runtime/internal/TimeStepper.vue.d.ts +28 -0
- package/dist/runtime/prose.css +1 -0
- package/dist/runtime/server/tsconfig.json +3 -0
- package/dist/runtime/theme/accordion.d.ts +131 -0
- package/dist/runtime/theme/accordion.js +60 -0
- package/dist/runtime/theme/alert-dialog.d.ts +50 -0
- package/dist/runtime/theme/alert-dialog.js +30 -0
- package/dist/runtime/theme/alert.d.ts +62 -0
- package/dist/runtime/theme/alert.js +52 -0
- package/dist/runtime/theme/avatar-group.d.ts +59 -0
- package/dist/runtime/theme/avatar-group.js +18 -0
- package/dist/runtime/theme/avatar.d.ts +206 -0
- package/dist/runtime/theme/avatar.js +67 -0
- package/dist/runtime/theme/badge.d.ts +140 -0
- package/dist/runtime/theme/badge.js +90 -0
- package/dist/runtime/theme/breadcrumb.d.ts +86 -0
- package/dist/runtime/theme/breadcrumb.js +22 -0
- package/dist/runtime/theme/button-group.d.ts +53 -0
- package/dist/runtime/theme/button-group.js +21 -0
- package/dist/runtime/theme/button.d.ts +155 -0
- package/dist/runtime/theme/button.js +99 -0
- package/dist/runtime/theme/callout.d.ts +74 -0
- package/dist/runtime/theme/callout.js +23 -0
- package/dist/runtime/theme/card-group.d.ts +44 -0
- package/dist/runtime/theme/card-group.js +19 -0
- package/dist/runtime/theme/card.d.ts +62 -0
- package/dist/runtime/theme/card.js +23 -0
- package/dist/runtime/theme/checkbox.d.ts +218 -0
- package/dist/runtime/theme/checkbox.js +113 -0
- package/dist/runtime/theme/chip.d.ts +155 -0
- package/dist/runtime/theme/chip.js +86 -0
- package/dist/runtime/theme/code-button.d.ts +32 -0
- package/dist/runtime/theme/code-button.js +7 -0
- package/dist/runtime/theme/code-tree.d.ts +50 -0
- package/dist/runtime/theme/code-tree.js +13 -0
- package/dist/runtime/theme/collapsible.d.ts +95 -0
- package/dist/runtime/theme/collapsible.js +46 -0
- package/dist/runtime/theme/color-picker.d.ts +152 -0
- package/dist/runtime/theme/color-picker.js +83 -0
- package/dist/runtime/theme/command-palette.d.ts +110 -0
- package/dist/runtime/theme/command-palette.js +23 -0
- package/dist/runtime/theme/container.d.ts +62 -0
- package/dist/runtime/theme/container.js +18 -0
- package/dist/runtime/theme/content-navigation.d.ts +47 -0
- package/dist/runtime/theme/content-navigation.js +38 -0
- package/dist/runtime/theme/content-surround.d.ts +53 -0
- package/dist/runtime/theme/content-surround.js +22 -0
- package/dist/runtime/theme/content-toc.d.ts +56 -0
- package/dist/runtime/theme/content-toc.js +41 -0
- package/dist/runtime/theme/context-menu.d.ts +38 -0
- package/dist/runtime/theme/context-menu.js +21 -0
- package/dist/runtime/theme/dashboard-group.d.ts +26 -0
- package/dist/runtime/theme/dashboard-group.js +9 -0
- package/dist/runtime/theme/dashboard-navbar.d.ts +44 -0
- package/dist/runtime/theme/dashboard-navbar.js +9 -0
- package/dist/runtime/theme/dashboard-panel.d.ts +26 -0
- package/dist/runtime/theme/dashboard-panel.js +6 -0
- package/dist/runtime/theme/dashboard-resize-handle.d.ts +26 -0
- package/dist/runtime/theme/dashboard-resize-handle.js +17 -0
- package/dist/runtime/theme/dashboard-sidebar.d.ts +50 -0
- package/dist/runtime/theme/dashboard-sidebar.js +40 -0
- package/dist/runtime/theme/date-picker.d.ts +119 -0
- package/dist/runtime/theme/date-picker.js +75 -0
- package/dist/runtime/theme/drawer.d.ts +95 -0
- package/dist/runtime/theme/drawer.js +57 -0
- package/dist/runtime/theme/dropdown.d.ts +41 -0
- package/dist/runtime/theme/dropdown.js +21 -0
- package/dist/runtime/theme/file-tree.d.ts +56 -0
- package/dist/runtime/theme/file-tree.js +33 -0
- package/dist/runtime/theme/file-upload.d.ts +233 -0
- package/dist/runtime/theme/file-upload.js +63 -0
- package/dist/runtime/theme/form-field.d.ts +95 -0
- package/dist/runtime/theme/form-field.js +37 -0
- package/dist/runtime/theme/header.d.ts +38 -0
- package/dist/runtime/theme/header.js +8 -0
- package/dist/runtime/theme/icon.d.ts +80 -0
- package/dist/runtime/theme/icon.js +26 -0
- package/dist/runtime/theme/input-group.d.ts +95 -0
- package/dist/runtime/theme/input-group.js +39 -0
- package/dist/runtime/theme/input-number.d.ts +164 -0
- package/dist/runtime/theme/input-number.js +76 -0
- package/dist/runtime/theme/input.d.ts +185 -0
- package/dist/runtime/theme/input.js +72 -0
- package/dist/runtime/theme/kbd.d.ts +44 -0
- package/dist/runtime/theme/kbd.js +16 -0
- package/dist/runtime/theme/modal.d.ts +74 -0
- package/dist/runtime/theme/modal.js +58 -0
- package/dist/runtime/theme/navigation-menu.d.ts +224 -0
- package/dist/runtime/theme/navigation-menu.js +232 -0
- package/dist/runtime/theme/page-aside.d.ts +44 -0
- package/dist/runtime/theme/page-aside.js +17 -0
- package/dist/runtime/theme/page-header.d.ts +38 -0
- package/dist/runtime/theme/page-header.js +8 -0
- package/dist/runtime/theme/pagination.d.ts +68 -0
- package/dist/runtime/theme/pagination.js +21 -0
- package/dist/runtime/theme/pin-input.d.ts +131 -0
- package/dist/runtime/theme/pin-input.js +40 -0
- package/dist/runtime/theme/popover.d.ts +32 -0
- package/dist/runtime/theme/popover.js +7 -0
- package/dist/runtime/theme/progress.d.ts +185 -0
- package/dist/runtime/theme/progress.js +54 -0
- package/dist/runtime/theme/prose.d.ts +92 -0
- package/dist/runtime/theme/prose.js +17 -0
- package/dist/runtime/theme/radio-group.d.ts +239 -0
- package/dist/runtime/theme/radio-group.js +134 -0
- package/dist/runtime/theme/rating.d.ts +167 -0
- package/dist/runtime/theme/rating.js +77 -0
- package/dist/runtime/theme/read-more.d.ts +38 -0
- package/dist/runtime/theme/read-more.js +21 -0
- package/dist/runtime/theme/scroll-area.d.ts +50 -0
- package/dist/runtime/theme/scroll-area.js +10 -0
- package/dist/runtime/theme/select.d.ts +176 -0
- package/dist/runtime/theme/select.js +74 -0
- package/dist/runtime/theme/separator.d.ts +158 -0
- package/dist/runtime/theme/separator.js +63 -0
- package/dist/runtime/theme/skeleton.d.ts +35 -0
- package/dist/runtime/theme/skeleton.js +27 -0
- package/dist/runtime/theme/slideover.d.ts +107 -0
- package/dist/runtime/theme/slideover.js +62 -0
- package/dist/runtime/theme/slider.d.ts +227 -0
- package/dist/runtime/theme/slider.js +73 -0
- package/dist/runtime/theme/splitter-panel.d.ts +26 -0
- package/dist/runtime/theme/splitter-panel.js +9 -0
- package/dist/runtime/theme/splitter-resize-handle.d.ts +44 -0
- package/dist/runtime/theme/splitter-resize-handle.js +18 -0
- package/dist/runtime/theme/splitter.d.ts +35 -0
- package/dist/runtime/theme/splitter.js +15 -0
- package/dist/runtime/theme/stepper.d.ts +221 -0
- package/dist/runtime/theme/stepper.js +106 -0
- package/dist/runtime/theme/switch.d.ts +206 -0
- package/dist/runtime/theme/switch.js +84 -0
- package/dist/runtime/theme/table.d.ts +176 -0
- package/dist/runtime/theme/table.js +59 -0
- package/dist/runtime/theme/tabs.d.ts +59 -0
- package/dist/runtime/theme/tabs.js +44 -0
- package/dist/runtime/theme/textarea.d.ts +212 -0
- package/dist/runtime/theme/textarea.js +56 -0
- package/dist/runtime/theme/toast.d.ts +80 -0
- package/dist/runtime/theme/toast.js +31 -0
- package/dist/runtime/theme/toggle-group.d.ts +110 -0
- package/dist/runtime/theme/toggle-group.js +48 -0
- package/dist/runtime/theme/toggle.d.ts +92 -0
- package/dist/runtime/theme/toggle.js +48 -0
- package/dist/runtime/theme/tooltip.d.ts +44 -0
- package/dist/runtime/theme/tooltip.js +14 -0
- package/dist/runtime/theme/tree.d.ts +80 -0
- package/dist/runtime/theme/tree.js +32 -0
- package/dist/runtime/theme.css +1 -0
- package/dist/runtime/types/app-config.d.ts +15 -0
- package/dist/runtime/types/index.d.ts +82 -0
- package/dist/runtime/types/index.js +2 -0
- package/dist/runtime/utils/format-bytes.d.ts +2 -0
- package/dist/runtime/utils/format-bytes.js +9 -0
- package/dist/runtime/utils/fuzzy-match.d.ts +12 -0
- package/dist/runtime/utils/fuzzy-match.js +21 -0
- package/dist/runtime/utils/icons.d.ts +38 -0
- package/dist/runtime/utils/icons.js +51 -0
- package/dist/runtime/utils/injection-keys.d.ts +69 -0
- package/dist/runtime/utils/injection-keys.js +3 -0
- package/dist/runtime/utils/messages.d.ts +70 -0
- package/dist/runtime/utils/messages.js +68 -0
- package/dist/runtime/utils/navigation-menu.d.ts +32 -0
- package/dist/runtime/utils/navigation-menu.js +5 -0
- package/dist/runtime/utils/table-columns.d.ts +30 -0
- package/dist/runtime/utils/table-columns.js +89 -0
- package/dist/runtime/utils/table-export.d.ts +12 -0
- package/dist/runtime/utils/table-export.js +29 -0
- package/dist/runtime/utils/ui.d.ts +124 -0
- package/dist/runtime/utils/ui.js +74 -0
- package/dist/types.d.mts +3 -0
- package/package.json +99 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ContentTocThemeSlots } from '../theme/content-toc.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface TocLink {
|
|
4
|
+
id: string;
|
|
5
|
+
text: string;
|
|
6
|
+
depth: number;
|
|
7
|
+
children?: TocLink[];
|
|
8
|
+
}
|
|
9
|
+
type __VLS_Slots = ContentTocSlots;
|
|
10
|
+
export interface ContentTocProps {
|
|
11
|
+
links: TocLink[];
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Internal: set by recursive self-calls, omit when using this component directly. */
|
|
14
|
+
isNested?: boolean;
|
|
15
|
+
/** Internal: set by recursive self-calls, omit when using this component directly. */
|
|
16
|
+
activeIds?: Set<string>;
|
|
17
|
+
ui?: UiProp<ContentTocThemeSlots>;
|
|
18
|
+
}
|
|
19
|
+
export interface ContentTocSlots {
|
|
20
|
+
title?: (props: object) => any;
|
|
21
|
+
/** Replaces a link's content - scoped with `active`, matching linkProps' own computation. */
|
|
22
|
+
link?: (props: {
|
|
23
|
+
link: TocLink;
|
|
24
|
+
active: boolean;
|
|
25
|
+
}) => any;
|
|
26
|
+
}
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<ContentTocProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ContentTocProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
29
|
+
declare const _default: typeof __VLS_export;
|
|
30
|
+
export default _default;
|
|
31
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
32
|
+
new (): {
|
|
33
|
+
$slots: S;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, nextTick, onMounted, onUnmounted, ref, watch } from "vue";
|
|
3
|
+
import { useMessages } from "../composables/use-messages";
|
|
4
|
+
import { contentTocTheme } from "../theme/content-toc";
|
|
5
|
+
import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
|
|
6
|
+
defineOptions({ inheritAttrs: false });
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
links: { type: Array, required: true },
|
|
9
|
+
title: { type: String, required: false },
|
|
10
|
+
isNested: { type: Boolean, required: false, default: false },
|
|
11
|
+
activeIds: { type: Set, required: false },
|
|
12
|
+
ui: { type: Object, required: false }
|
|
13
|
+
});
|
|
14
|
+
defineSlots();
|
|
15
|
+
const isRoot = !props.isNested;
|
|
16
|
+
const localActiveIds = ref(/* @__PURE__ */ new Set());
|
|
17
|
+
const activeIds = computed(() => props.isNested ? props.activeIds ?? /* @__PURE__ */ new Set() : localActiveIds.value);
|
|
18
|
+
function flattenIds(links) {
|
|
19
|
+
return links.flatMap((link) => [link.id, ...link.children ? flattenIds(link.children) : []]);
|
|
20
|
+
}
|
|
21
|
+
const TRIGGER_BAND_RATIO = 0.25;
|
|
22
|
+
let tocIds = [];
|
|
23
|
+
let tocElements = [];
|
|
24
|
+
let ticking = false;
|
|
25
|
+
function updateActiveIds() {
|
|
26
|
+
if (!tocElements.length)
|
|
27
|
+
return;
|
|
28
|
+
const viewTop = window.scrollY;
|
|
29
|
+
const docBottom = document.documentElement.scrollHeight;
|
|
30
|
+
const atMaxScroll = viewTop + window.innerHeight >= docBottom - 1;
|
|
31
|
+
const viewBottom = atMaxScroll ? docBottom : viewTop + window.innerHeight * TRIGGER_BAND_RATIO;
|
|
32
|
+
const active = /* @__PURE__ */ new Set();
|
|
33
|
+
for (let i = 0; i < tocElements.length; i++) {
|
|
34
|
+
const top = tocElements[i].getBoundingClientRect().top + window.scrollY;
|
|
35
|
+
const bottom = i + 1 < tocElements.length ? tocElements[i + 1].getBoundingClientRect().top + window.scrollY : docBottom;
|
|
36
|
+
if (bottom > viewTop && top < viewBottom)
|
|
37
|
+
active.add(tocIds[i]);
|
|
38
|
+
}
|
|
39
|
+
localActiveIds.value = active;
|
|
40
|
+
}
|
|
41
|
+
function onScrollOrResize() {
|
|
42
|
+
if (ticking)
|
|
43
|
+
return;
|
|
44
|
+
ticking = true;
|
|
45
|
+
requestAnimationFrame(() => {
|
|
46
|
+
updateActiveIds();
|
|
47
|
+
ticking = false;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
onMounted(() => {
|
|
51
|
+
if (!isRoot)
|
|
52
|
+
return;
|
|
53
|
+
tocIds = flattenIds(props.links);
|
|
54
|
+
tocElements = tocIds.map((id) => document.getElementById(id)).filter((el) => el !== null);
|
|
55
|
+
if (!tocElements.length)
|
|
56
|
+
return;
|
|
57
|
+
updateActiveIds();
|
|
58
|
+
window.addEventListener("scroll", onScrollOrResize, { passive: true });
|
|
59
|
+
window.addEventListener("resize", onScrollOrResize);
|
|
60
|
+
});
|
|
61
|
+
onUnmounted(() => {
|
|
62
|
+
window.removeEventListener("scroll", onScrollOrResize);
|
|
63
|
+
window.removeEventListener("resize", onScrollOrResize);
|
|
64
|
+
});
|
|
65
|
+
const messages = useMessages();
|
|
66
|
+
const theme = useComponentTheme("contentToc", contentTocTheme);
|
|
67
|
+
const ui = computed(() => theme.value());
|
|
68
|
+
const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
|
|
69
|
+
const RAIL_WIDTH = 20;
|
|
70
|
+
const RAIL_X_OUTER = 1;
|
|
71
|
+
const RAIL_X_INNER_MAX = RAIL_WIDTH - 1;
|
|
72
|
+
const RAIL_CURVE_SPAN = 8;
|
|
73
|
+
function clamp(n, min, max) {
|
|
74
|
+
return Math.min(max, Math.max(min, n));
|
|
75
|
+
}
|
|
76
|
+
function buildRailSegments(links) {
|
|
77
|
+
const segments = [];
|
|
78
|
+
let rangeStart = -1;
|
|
79
|
+
let rangeEnd = -1;
|
|
80
|
+
const pushRange = () => {
|
|
81
|
+
if (rangeStart === -1 || rangeEnd === -1)
|
|
82
|
+
return;
|
|
83
|
+
const startEl = links[rangeStart];
|
|
84
|
+
const endEl = links[rangeEnd];
|
|
85
|
+
const top = Math.max(0, startEl.offsetTop);
|
|
86
|
+
const bottom = endEl.offsetTop + endEl.offsetHeight;
|
|
87
|
+
segments.push({ top, height: Math.max(0, bottom - top) });
|
|
88
|
+
rangeStart = -1;
|
|
89
|
+
rangeEnd = -1;
|
|
90
|
+
};
|
|
91
|
+
links.forEach((link, index) => {
|
|
92
|
+
if (link.getAttribute("data-active") !== "true") {
|
|
93
|
+
pushRange();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (rangeStart === -1)
|
|
97
|
+
rangeStart = index;
|
|
98
|
+
rangeEnd = index;
|
|
99
|
+
});
|
|
100
|
+
pushRange();
|
|
101
|
+
return segments;
|
|
102
|
+
}
|
|
103
|
+
function buildRailPath(links, height) {
|
|
104
|
+
const items = links.map((node) => {
|
|
105
|
+
const top = Math.round(node.offsetTop);
|
|
106
|
+
const h = Math.round(node.offsetHeight || 0);
|
|
107
|
+
return { y: top + Math.round(h / 2), depth: Number(node.dataset.depth ?? "0") };
|
|
108
|
+
});
|
|
109
|
+
const depths = items.map((item) => item.depth);
|
|
110
|
+
const baseDepth = Math.min(...depths);
|
|
111
|
+
const maxDepth = Math.max(...depths);
|
|
112
|
+
const levels = Math.max(1, maxDepth - baseDepth);
|
|
113
|
+
const indentStep = (RAIL_X_INNER_MAX - RAIL_X_OUTER) / levels;
|
|
114
|
+
const xForDepth = (depth) => {
|
|
115
|
+
const index = Math.max(0, depth - baseDepth);
|
|
116
|
+
const x2 = RAIL_X_OUTER + index * indentStep;
|
|
117
|
+
return Math.round(clamp(x2, RAIL_X_OUTER, RAIL_X_INNER_MAX));
|
|
118
|
+
};
|
|
119
|
+
let x = xForDepth(items[0]?.depth ?? baseDepth);
|
|
120
|
+
let yPrev = 0;
|
|
121
|
+
let d = `M ${x} 0`;
|
|
122
|
+
for (const item of items) {
|
|
123
|
+
const y = clamp(item.y, 0, height);
|
|
124
|
+
const xNext = xForDepth(item.depth);
|
|
125
|
+
if (xNext === x) {
|
|
126
|
+
if (y > yPrev)
|
|
127
|
+
d += ` L ${x} ${y}`;
|
|
128
|
+
yPrev = Math.max(yPrev, y);
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const y0 = clamp(y - RAIL_CURVE_SPAN, yPrev, height);
|
|
132
|
+
const midY = (y0 + y) / 2;
|
|
133
|
+
if (y0 > yPrev)
|
|
134
|
+
d += ` L ${x} ${y0}`;
|
|
135
|
+
d += ` C ${x} ${midY} ${xNext} ${midY} ${xNext} ${y}`;
|
|
136
|
+
x = xNext;
|
|
137
|
+
yPrev = y;
|
|
138
|
+
}
|
|
139
|
+
if (height > yPrev)
|
|
140
|
+
d += ` L ${x} ${height}`;
|
|
141
|
+
return d;
|
|
142
|
+
}
|
|
143
|
+
function buildRailMaskUrl(pathD, height) {
|
|
144
|
+
const h = Math.max(1, Math.round(height));
|
|
145
|
+
const svg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${RAIL_WIDTH} ${h}"><path d="${pathD}" stroke="black" stroke-width="1" fill="none"/></svg>`;
|
|
146
|
+
return `url("data:image/svg+xml,${encodeURIComponent(svg)}")`;
|
|
147
|
+
}
|
|
148
|
+
const railWrapEl = ref();
|
|
149
|
+
const railHeight = ref(0);
|
|
150
|
+
const railPathD = ref("");
|
|
151
|
+
const railSegments = ref([]);
|
|
152
|
+
let railResizeObserver;
|
|
153
|
+
function measureRail() {
|
|
154
|
+
if (!isRoot || !railWrapEl.value)
|
|
155
|
+
return;
|
|
156
|
+
const links = Array.from(railWrapEl.value.querySelectorAll('[data-toc-link="true"]'));
|
|
157
|
+
if (!links.length) {
|
|
158
|
+
railHeight.value = 0;
|
|
159
|
+
railPathD.value = "";
|
|
160
|
+
railSegments.value = [];
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const last = links[links.length - 1];
|
|
164
|
+
railHeight.value = Math.ceil(last.offsetTop + last.offsetHeight);
|
|
165
|
+
railPathD.value = buildRailPath(links, railHeight.value);
|
|
166
|
+
railSegments.value = buildRailSegments(links);
|
|
167
|
+
}
|
|
168
|
+
const railMaskStyle = computed(() => {
|
|
169
|
+
const url = railPathD.value ? buildRailMaskUrl(railPathD.value, railHeight.value) : "none";
|
|
170
|
+
return {
|
|
171
|
+
WebkitMaskImage: url,
|
|
172
|
+
maskImage: url,
|
|
173
|
+
WebkitMaskRepeat: "no-repeat",
|
|
174
|
+
maskRepeat: "no-repeat",
|
|
175
|
+
WebkitMaskSize: "100% 100%",
|
|
176
|
+
maskSize: "100% 100%"
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
if (isRoot) {
|
|
180
|
+
watch(activeIds, () => nextTick(measureRail));
|
|
181
|
+
onMounted(() => {
|
|
182
|
+
nextTick(measureRail);
|
|
183
|
+
railResizeObserver = new ResizeObserver(() => measureRail());
|
|
184
|
+
if (railWrapEl.value)
|
|
185
|
+
railResizeObserver.observe(railWrapEl.value);
|
|
186
|
+
});
|
|
187
|
+
onUnmounted(() => railResizeObserver?.disconnect());
|
|
188
|
+
}
|
|
189
|
+
function linkProps(link) {
|
|
190
|
+
const active = activeIds.value.has(link.id);
|
|
191
|
+
return {
|
|
192
|
+
...resolveSlot(theme.value({ active }).link, props.ui?.link),
|
|
193
|
+
"data-toc-link": "true",
|
|
194
|
+
"data-depth": link.depth,
|
|
195
|
+
"data-active": active || void 0,
|
|
196
|
+
// 'location' (not 'page') is the WAI-ARIA token for "the current
|
|
197
|
+
// location within an environment" - a TOC/breadcrumb use case
|
|
198
|
+
// specifically, not pagination. The rail itself only echoes this
|
|
199
|
+
// visually (see railContainer's own aria-hidden below), so this is
|
|
200
|
+
// the only place a screen reader learns which section is active.
|
|
201
|
+
"aria-current": active ? "location" : void 0
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
</script>
|
|
205
|
+
|
|
206
|
+
<template>
|
|
207
|
+
<component :is="isRoot ? 'nav' : 'div'" v-bind="isRoot ? rootProps : void 0">
|
|
208
|
+
<p v-if="isRoot" v-bind="resolveSlot(ui.title, props.ui?.title)">
|
|
209
|
+
<slot name="title">
|
|
210
|
+
{{ title ?? messages.onThisPage }}
|
|
211
|
+
</slot>
|
|
212
|
+
</p>
|
|
213
|
+
|
|
214
|
+
<div v-if="isRoot" ref="railWrapEl" v-bind="resolveSlot(ui.railWrap, props.ui?.railWrap)">
|
|
215
|
+
<div
|
|
216
|
+
v-if="railHeight > 0"
|
|
217
|
+
v-bind="resolveSlot(ui.railContainer, props.ui?.railContainer)"
|
|
218
|
+
aria-hidden="true"
|
|
219
|
+
:style="{ width: `${RAIL_WIDTH}px`, height: `${railHeight}px` }"
|
|
220
|
+
>
|
|
221
|
+
<div v-bind="resolveSlot(ui.railTrack, props.ui?.railTrack)" :style="railMaskStyle" />
|
|
222
|
+
<div v-bind="resolveSlot(ui.railSegments, props.ui?.railSegments)" :style="railMaskStyle">
|
|
223
|
+
<div
|
|
224
|
+
v-for="(segment, index) in railSegments"
|
|
225
|
+
:key="index"
|
|
226
|
+
v-bind="resolveSlot(ui.railSegment, props.ui?.railSegment)"
|
|
227
|
+
:style="{ top: `${segment.top}px`, height: `${segment.height}px` }"
|
|
228
|
+
/>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<ul v-bind="resolveSlot(ui.list, props.ui?.list)">
|
|
233
|
+
<li v-for="link in links" :key="link.id" v-bind="resolveSlot(ui.item, props.ui?.item)">
|
|
234
|
+
<a :href="`#${link.id}`" v-bind="linkProps(link)">
|
|
235
|
+
<slot name="link" :link="link" :active="activeIds.has(link.id)">{{ link.text }}</slot>
|
|
236
|
+
</a>
|
|
237
|
+
<div v-if="link.children?.length" v-bind="resolveSlot(ui.content, props.ui?.content)">
|
|
238
|
+
<!-- Vue's SFC self-recursion resolves by this file's own bare name -
|
|
239
|
+
keep it unprefixed even though the public component is SContentToc. -->
|
|
240
|
+
<ContentToc :links="link.children" is-nested :active-ids="activeIds" :ui="props.ui">
|
|
241
|
+
<template #link="scope">
|
|
242
|
+
<slot name="link" v-bind="scope" />
|
|
243
|
+
</template>
|
|
244
|
+
</ContentToc>
|
|
245
|
+
</div>
|
|
246
|
+
</li>
|
|
247
|
+
</ul>
|
|
248
|
+
</div>
|
|
249
|
+
|
|
250
|
+
<ul v-else v-bind="resolveSlot(ui.list, props.ui?.list)">
|
|
251
|
+
<li v-for="link in links" :key="link.id" v-bind="resolveSlot(ui.item, props.ui?.item)">
|
|
252
|
+
<a :href="`#${link.id}`" v-bind="linkProps(link)">
|
|
253
|
+
<slot name="link" :link="link" :active="activeIds.has(link.id)">{{ link.text }}</slot>
|
|
254
|
+
</a>
|
|
255
|
+
<div v-if="link.children?.length" v-bind="resolveSlot(ui.content, props.ui?.content)">
|
|
256
|
+
<ContentToc :links="link.children" is-nested :active-ids="activeIds" :ui="props.ui">
|
|
257
|
+
<template #link="scope">
|
|
258
|
+
<slot name="link" v-bind="scope" />
|
|
259
|
+
</template>
|
|
260
|
+
</ContentToc>
|
|
261
|
+
</div>
|
|
262
|
+
</li>
|
|
263
|
+
</ul>
|
|
264
|
+
</component>
|
|
265
|
+
</template>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ContentTocThemeSlots } from '../theme/content-toc.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface TocLink {
|
|
4
|
+
id: string;
|
|
5
|
+
text: string;
|
|
6
|
+
depth: number;
|
|
7
|
+
children?: TocLink[];
|
|
8
|
+
}
|
|
9
|
+
type __VLS_Slots = ContentTocSlots;
|
|
10
|
+
export interface ContentTocProps {
|
|
11
|
+
links: TocLink[];
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Internal: set by recursive self-calls, omit when using this component directly. */
|
|
14
|
+
isNested?: boolean;
|
|
15
|
+
/** Internal: set by recursive self-calls, omit when using this component directly. */
|
|
16
|
+
activeIds?: Set<string>;
|
|
17
|
+
ui?: UiProp<ContentTocThemeSlots>;
|
|
18
|
+
}
|
|
19
|
+
export interface ContentTocSlots {
|
|
20
|
+
title?: (props: object) => any;
|
|
21
|
+
/** Replaces a link's content - scoped with `active`, matching linkProps' own computation. */
|
|
22
|
+
link?: (props: {
|
|
23
|
+
link: TocLink;
|
|
24
|
+
active: boolean;
|
|
25
|
+
}) => any;
|
|
26
|
+
}
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<ContentTocProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ContentTocProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
29
|
+
declare const _default: typeof __VLS_export;
|
|
30
|
+
export default _default;
|
|
31
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
32
|
+
new (): {
|
|
33
|
+
$slots: S;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ContextMenuThemeSlots } from '../theme/context-menu.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface ContextMenuItemDef {
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Styles this item for a delete/remove-style action (danger text, danger-tinted hover) - matches Dropdown's own `destructive` flag. */
|
|
8
|
+
destructive?: boolean;
|
|
9
|
+
onSelect?: () => void;
|
|
10
|
+
/** Not read by ContextMenu's own default item rendering - carried purely so a custom #item slot override can display one. */
|
|
11
|
+
shortcut?: string;
|
|
12
|
+
}
|
|
13
|
+
type __VLS_Slots = ContextMenuSlots;
|
|
14
|
+
export interface ContextMenuProps {
|
|
15
|
+
items: ContextMenuItemDef[][];
|
|
16
|
+
ui?: UiProp<ContextMenuThemeSlots>;
|
|
17
|
+
}
|
|
18
|
+
export interface ContextMenuSlots {
|
|
19
|
+
/** The right-click target area. */
|
|
20
|
+
default?: () => any;
|
|
21
|
+
item?: (props: {
|
|
22
|
+
item: ContextMenuItemDef;
|
|
23
|
+
}) => any;
|
|
24
|
+
}
|
|
25
|
+
declare const __VLS_base: import("vue").DefineComponent<ContextMenuProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ContextMenuProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
27
|
+
declare const _default: typeof __VLS_export;
|
|
28
|
+
export default _default;
|
|
29
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
30
|
+
new (): {
|
|
31
|
+
$slots: S;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { ContextMenuContent, ContextMenuItem, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuTrigger } from "reka-ui";
|
|
3
|
+
import { computed } from "vue";
|
|
4
|
+
import { contextMenuTheme } from "../theme/context-menu";
|
|
5
|
+
import { resolveSlot, useComponentTheme } from "../utils/ui";
|
|
6
|
+
import Icon from "./Icon.vue";
|
|
7
|
+
const props = defineProps({
|
|
8
|
+
items: { type: Array, required: true },
|
|
9
|
+
ui: { type: Object, required: false }
|
|
10
|
+
});
|
|
11
|
+
defineSlots();
|
|
12
|
+
const theme = useComponentTheme("contextMenu", contextMenuTheme);
|
|
13
|
+
const ui = computed(() => theme.value());
|
|
14
|
+
const contentProps = computed(() => resolveSlot(ui.value.content, props.ui?.content));
|
|
15
|
+
function itemPropsFor(item) {
|
|
16
|
+
return resolveSlot(theme.value({ destructive: item.destructive }).item, props.ui?.item);
|
|
17
|
+
}
|
|
18
|
+
function iconPropsFor(item) {
|
|
19
|
+
return resolveSlot(theme.value({ destructive: item.destructive }).icon, props.ui?.icon);
|
|
20
|
+
}
|
|
21
|
+
const separatorProps = computed(() => resolveSlot(ui.value.separator, props.ui?.separator));
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<template>
|
|
25
|
+
<ContextMenuRoot>
|
|
26
|
+
<ContextMenuTrigger as-child>
|
|
27
|
+
<slot />
|
|
28
|
+
</ContextMenuTrigger>
|
|
29
|
+
<ContextMenuPortal>
|
|
30
|
+
<ContextMenuContent v-bind="contentProps">
|
|
31
|
+
<template v-for="(group, groupIndex) in items" :key="groupIndex">
|
|
32
|
+
<ContextMenuSeparator v-if="groupIndex > 0" v-bind="separatorProps" />
|
|
33
|
+
<ContextMenuItem
|
|
34
|
+
v-for="(item, itemIndex) in group"
|
|
35
|
+
:key="itemIndex"
|
|
36
|
+
:disabled="item.disabled"
|
|
37
|
+
v-bind="itemPropsFor(item)"
|
|
38
|
+
@select="item.onSelect?.()"
|
|
39
|
+
>
|
|
40
|
+
<Icon v-if="item.icon" :name="item.icon" v-bind="iconPropsFor(item)" />
|
|
41
|
+
<slot name="item" :item="item">
|
|
42
|
+
{{ item.label }}
|
|
43
|
+
</slot>
|
|
44
|
+
</ContextMenuItem>
|
|
45
|
+
</template>
|
|
46
|
+
</ContextMenuContent>
|
|
47
|
+
</ContextMenuPortal>
|
|
48
|
+
</ContextMenuRoot>
|
|
49
|
+
</template>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ContextMenuThemeSlots } from '../theme/context-menu.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface ContextMenuItemDef {
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/** Styles this item for a delete/remove-style action (danger text, danger-tinted hover) - matches Dropdown's own `destructive` flag. */
|
|
8
|
+
destructive?: boolean;
|
|
9
|
+
onSelect?: () => void;
|
|
10
|
+
/** Not read by ContextMenu's own default item rendering - carried purely so a custom #item slot override can display one. */
|
|
11
|
+
shortcut?: string;
|
|
12
|
+
}
|
|
13
|
+
type __VLS_Slots = ContextMenuSlots;
|
|
14
|
+
export interface ContextMenuProps {
|
|
15
|
+
items: ContextMenuItemDef[][];
|
|
16
|
+
ui?: UiProp<ContextMenuThemeSlots>;
|
|
17
|
+
}
|
|
18
|
+
export interface ContextMenuSlots {
|
|
19
|
+
/** The right-click target area. */
|
|
20
|
+
default?: () => any;
|
|
21
|
+
item?: (props: {
|
|
22
|
+
item: ContextMenuItemDef;
|
|
23
|
+
}) => any;
|
|
24
|
+
}
|
|
25
|
+
declare const __VLS_base: import("vue").DefineComponent<ContextMenuProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ContextMenuProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
27
|
+
declare const _default: typeof __VLS_export;
|
|
28
|
+
export default _default;
|
|
29
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
30
|
+
new (): {
|
|
31
|
+
$slots: S;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DashboardGroupThemeSlots } from '../theme/dashboard-group.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface DashboardGroupProps {
|
|
4
|
+
/** Persistence key for the sidebar's own width/collapse state - reuse the same id across pages that should share one remembered layout, or set a distinct one for pages that shouldn't. @default 'selaras-dashboard' */
|
|
5
|
+
autoSaveId?: string;
|
|
6
|
+
/** Below this viewport width (px), DashboardSidebar switches from a resizable split-pane panel to a Drawer overlay. @default 768 */
|
|
7
|
+
mobileBreakpoint?: number;
|
|
8
|
+
ui?: UiProp<DashboardGroupThemeSlots>;
|
|
9
|
+
}
|
|
10
|
+
declare var __VLS_8: {}, __VLS_10: {};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
default?: (props: typeof __VLS_8) => any;
|
|
13
|
+
} & {
|
|
14
|
+
default?: (props: typeof __VLS_10) => any;
|
|
15
|
+
};
|
|
16
|
+
declare const __VLS_base: import("vue").DefineComponent<DashboardGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DashboardGroupProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
21
|
+
new (): {
|
|
22
|
+
$slots: S;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, onMounted, onUnmounted, provide, ref } from "vue";
|
|
3
|
+
import { useCookie } from "#imports";
|
|
4
|
+
import { dashboardGroupTheme } from "../theme/dashboard-group";
|
|
5
|
+
import { DASHBOARD_INJECTION_KEY } from "../utils/injection-keys";
|
|
6
|
+
import { useComponentTheme, useRootProps } from "../utils/ui";
|
|
7
|
+
import Splitter from "./Splitter.vue";
|
|
8
|
+
defineOptions({ inheritAttrs: false });
|
|
9
|
+
const props = defineProps({
|
|
10
|
+
autoSaveId: { type: String, required: false, default: "selaras-dashboard" },
|
|
11
|
+
mobileBreakpoint: { type: Number, required: false, default: 768 },
|
|
12
|
+
ui: { type: Object, required: false }
|
|
13
|
+
});
|
|
14
|
+
const isMobile = ref(false);
|
|
15
|
+
let mediaQuery;
|
|
16
|
+
function updateIsMobile() {
|
|
17
|
+
isMobile.value = mediaQuery?.matches ?? false;
|
|
18
|
+
}
|
|
19
|
+
onMounted(() => {
|
|
20
|
+
mediaQuery = window.matchMedia(`(max-width: ${props.mobileBreakpoint - 1}px)`);
|
|
21
|
+
updateIsMobile();
|
|
22
|
+
mediaQuery.addEventListener("change", updateIsMobile);
|
|
23
|
+
});
|
|
24
|
+
onUnmounted(() => mediaQuery?.removeEventListener("change", updateIsMobile));
|
|
25
|
+
const toggleSidebar = ref(void 0);
|
|
26
|
+
const isSidebarCollapsed = ref(false);
|
|
27
|
+
const lastDesktopWidthPx = ref(void 0);
|
|
28
|
+
provide(DASHBOARD_INJECTION_KEY, { isMobile, toggleSidebar, isSidebarCollapsed, lastDesktopWidthPx });
|
|
29
|
+
const layoutCookie = useCookie(props.autoSaveId, {
|
|
30
|
+
default: () => void 0,
|
|
31
|
+
encode: (value) => encodeURIComponent(value ?? ""),
|
|
32
|
+
decode: (value) => value ? decodeURIComponent(value) : void 0
|
|
33
|
+
});
|
|
34
|
+
const storage = {
|
|
35
|
+
getItem: () => layoutCookie.value ?? null,
|
|
36
|
+
setItem: (_name, value) => {
|
|
37
|
+
layoutCookie.value = value;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const theme = useComponentTheme("dashboardGroup", dashboardGroupTheme);
|
|
41
|
+
const ui = computed(() => theme.value());
|
|
42
|
+
const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<template>
|
|
46
|
+
<Splitter v-if="!isMobile" direction="horizontal" :auto-save-id="autoSaveId" :storage="storage" v-bind="rootProps">
|
|
47
|
+
<slot />
|
|
48
|
+
</Splitter>
|
|
49
|
+
<div v-else v-bind="rootProps">
|
|
50
|
+
<slot />
|
|
51
|
+
</div>
|
|
52
|
+
</template>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DashboardGroupThemeSlots } from '../theme/dashboard-group.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface DashboardGroupProps {
|
|
4
|
+
/** Persistence key for the sidebar's own width/collapse state - reuse the same id across pages that should share one remembered layout, or set a distinct one for pages that shouldn't. @default 'selaras-dashboard' */
|
|
5
|
+
autoSaveId?: string;
|
|
6
|
+
/** Below this viewport width (px), DashboardSidebar switches from a resizable split-pane panel to a Drawer overlay. @default 768 */
|
|
7
|
+
mobileBreakpoint?: number;
|
|
8
|
+
ui?: UiProp<DashboardGroupThemeSlots>;
|
|
9
|
+
}
|
|
10
|
+
declare var __VLS_8: {}, __VLS_10: {};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
default?: (props: typeof __VLS_8) => any;
|
|
13
|
+
} & {
|
|
14
|
+
default?: (props: typeof __VLS_10) => any;
|
|
15
|
+
};
|
|
16
|
+
declare const __VLS_base: import("vue").DefineComponent<DashboardGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DashboardGroupProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
18
|
+
declare const _default: typeof __VLS_export;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
21
|
+
new (): {
|
|
22
|
+
$slots: S;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DashboardNavbarThemeSlots } from '../theme/dashboard-navbar.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
type __VLS_Slots = DashboardNavbarSlots;
|
|
4
|
+
export interface DashboardNavbarProps {
|
|
5
|
+
title?: string;
|
|
6
|
+
ui?: UiProp<DashboardNavbarThemeSlots>;
|
|
7
|
+
}
|
|
8
|
+
export interface DashboardNavbarSlots {
|
|
9
|
+
/** Empty by default - nothing else in the Dashboard family auto-inserts content the consumer didn't ask for (DashboardResizeHandle, a DashboardPanel's own body, ...), so a sidebar-toggle button belongs here explicitly (`SDashboardSidebarToggle`) rather than being baked in, the same way it'd be composed anywhere else. */
|
|
10
|
+
leading?: () => any;
|
|
11
|
+
title?: () => any;
|
|
12
|
+
/** Trailing content - actions, a search trigger, whatever the page needs. */
|
|
13
|
+
default?: () => any;
|
|
14
|
+
}
|
|
15
|
+
declare const __VLS_base: import("vue").DefineComponent<DashboardNavbarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DashboardNavbarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
19
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
20
|
+
new (): {
|
|
21
|
+
$slots: S;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { dashboardNavbarTheme } from "../theme/dashboard-navbar";
|
|
4
|
+
import { resolveSlot, useComponentTheme, useRootProps } from "../utils/ui";
|
|
5
|
+
defineOptions({ inheritAttrs: false });
|
|
6
|
+
const props = defineProps({
|
|
7
|
+
title: { type: String, required: false },
|
|
8
|
+
ui: { type: Object, required: false }
|
|
9
|
+
});
|
|
10
|
+
defineSlots();
|
|
11
|
+
const theme = useComponentTheme("dashboardNavbar", dashboardNavbarTheme);
|
|
12
|
+
const ui = computed(() => theme.value());
|
|
13
|
+
const rootProps = useRootProps(() => ui.value.root, () => props.ui?.root);
|
|
14
|
+
const leftProps = computed(() => resolveSlot(ui.value.left, props.ui?.left));
|
|
15
|
+
const titleProps = computed(() => resolveSlot(ui.value.title, props.ui?.title));
|
|
16
|
+
const rightProps = computed(() => resolveSlot(ui.value.right, props.ui?.right));
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<div v-bind="rootProps">
|
|
21
|
+
<div v-bind="leftProps">
|
|
22
|
+
<slot name="leading" />
|
|
23
|
+
<slot name="title">
|
|
24
|
+
<p v-if="title" v-bind="titleProps">
|
|
25
|
+
{{ title }}
|
|
26
|
+
</p>
|
|
27
|
+
</slot>
|
|
28
|
+
</div>
|
|
29
|
+
<div v-if="$slots.default" v-bind="rightProps">
|
|
30
|
+
<slot />
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DashboardNavbarThemeSlots } from '../theme/dashboard-navbar.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
type __VLS_Slots = DashboardNavbarSlots;
|
|
4
|
+
export interface DashboardNavbarProps {
|
|
5
|
+
title?: string;
|
|
6
|
+
ui?: UiProp<DashboardNavbarThemeSlots>;
|
|
7
|
+
}
|
|
8
|
+
export interface DashboardNavbarSlots {
|
|
9
|
+
/** Empty by default - nothing else in the Dashboard family auto-inserts content the consumer didn't ask for (DashboardResizeHandle, a DashboardPanel's own body, ...), so a sidebar-toggle button belongs here explicitly (`SDashboardSidebarToggle`) rather than being baked in, the same way it'd be composed anywhere else. */
|
|
10
|
+
leading?: () => any;
|
|
11
|
+
title?: () => any;
|
|
12
|
+
/** Trailing content - actions, a search trigger, whatever the page needs. */
|
|
13
|
+
default?: () => any;
|
|
14
|
+
}
|
|
15
|
+
declare const __VLS_base: import("vue").DefineComponent<DashboardNavbarProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DashboardNavbarProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
19
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
20
|
+
new (): {
|
|
21
|
+
$slots: S;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { DashboardPanelThemeSlots } from '../theme/dashboard-panel.js';
|
|
2
|
+
import type { UiProp } from '../utils/ui.js';
|
|
3
|
+
export interface DashboardPanelProps {
|
|
4
|
+
/** Minimum width as a percentage of the group - non-collapsible, just guards against the sidebar squeezing this panel down to nothing. @default 30 */
|
|
5
|
+
minSize?: number;
|
|
6
|
+
ui?: UiProp<DashboardPanelThemeSlots>;
|
|
7
|
+
}
|
|
8
|
+
declare var __VLS_8: {}, __VLS_10: {};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
default?: (props: typeof __VLS_8) => any;
|
|
11
|
+
} & {
|
|
12
|
+
default?: (props: typeof __VLS_10) => any;
|
|
13
|
+
};
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<DashboardPanelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DashboardPanelProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
19
|
+
new (): {
|
|
20
|
+
$slots: S;
|
|
21
|
+
};
|
|
22
|
+
};
|