@zerodep-dev/vue-tsx-pro-ui 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/Badge.js +3 -3
- package/dist/base/Badge.js.map +1 -1
- package/dist/base/Can.d.ts +12 -0
- package/dist/base/Can.js +20 -0
- package/dist/base/Can.js.map +1 -0
- package/dist/base/ClientOnly.d.ts +10 -0
- package/dist/base/ClientOnly.js +18 -0
- package/dist/base/ClientOnly.js.map +1 -0
- package/dist/base/CloseButton.js +3 -3
- package/dist/base/CloseButton.js.map +1 -1
- package/dist/base/CodeBlock.js +5 -5
- package/dist/base/CodeBlock.js.map +1 -1
- package/dist/base/CopyButton.js +3 -3
- package/dist/base/CopyButton.js.map +1 -1
- package/dist/base/Icon.js +3 -3
- package/dist/base/Icon.js.map +1 -1
- package/dist/base/Indicator.js +3 -3
- package/dist/base/Indicator.js.map +1 -1
- package/dist/base/StatusDot.js +3 -3
- package/dist/base/StatusDot.js.map +1 -1
- package/dist/base/Tag.js +5 -5
- package/dist/base/Tag.js.map +1 -1
- package/dist/base/button-core.js +4 -4
- package/dist/base/button-core.js.map +1 -1
- package/dist/charts/AreaChart.js +3 -3
- package/dist/charts/AreaChart.js.map +1 -1
- package/dist/charts/BarChart.js +3 -3
- package/dist/charts/BarChart.js.map +1 -1
- package/dist/charts/ChordChart.js +3 -3
- package/dist/charts/ChordChart.js.map +1 -1
- package/dist/charts/ComboChart.js +3 -3
- package/dist/charts/ComboChart.js.map +1 -1
- package/dist/charts/DonutChart.js +3 -3
- package/dist/charts/DonutChart.js.map +1 -1
- package/dist/charts/FunnelChart.js +5 -5
- package/dist/charts/FunnelChart.js.map +1 -1
- package/dist/charts/GraphChart.js +3 -3
- package/dist/charts/GraphChart.js.map +1 -1
- package/dist/charts/LineChart.js +3 -3
- package/dist/charts/LineChart.js.map +1 -1
- package/dist/charts/MapChart.js +7 -7
- package/dist/charts/MapChart.js.map +1 -1
- package/dist/charts/RadarChart.js +16 -15
- package/dist/charts/RadarChart.js.map +1 -1
- package/dist/charts/SankeyChart.js +3 -3
- package/dist/charts/SankeyChart.js.map +1 -1
- package/dist/charts/ScatterChart.js +3 -3
- package/dist/charts/ScatterChart.js.map +1 -1
- package/dist/charts/TimelineChart.js +6 -5
- package/dist/charts/TimelineChart.js.map +1 -1
- package/dist/charts/TreemapChart.js +3 -3
- package/dist/charts/TreemapChart.js.map +1 -1
- package/dist/charts/WaterfallChart.js +3 -3
- package/dist/charts/WaterfallChart.js.map +1 -1
- package/dist/charts/XYChart.js +9 -7
- package/dist/charts/XYChart.js.map +1 -1
- package/dist/charts/frame.js +10 -8
- package/dist/charts/frame.js.map +1 -1
- package/dist/charts/single.js +4 -3
- package/dist/charts/single.js.map +1 -1
- package/dist/config/Provider.d.ts +3 -1
- package/dist/config/Provider.js +9 -4
- package/dist/config/Provider.js.map +1 -1
- package/dist/config/context.d.ts +18 -0
- package/dist/config/context.js +16 -1
- package/dist/config/context.js.map +1 -1
- package/dist/config/createUi.d.ts +20 -3
- package/dist/config/createUi.js +80 -49
- package/dist/config/createUi.js.map +1 -1
- package/dist/config/layout/preference.d.ts +43 -0
- package/dist/config/layout/preference.js +108 -0
- package/dist/config/layout/preference.js.map +1 -0
- package/dist/date/Calendar.js +3 -3
- package/dist/date/Calendar.js.map +1 -1
- package/dist/date/CalendarBoard.js +9 -9
- package/dist/date/CalendarBoard.js.map +1 -1
- package/dist/date/CalendarView.js +7 -7
- package/dist/date/CalendarView.js.map +1 -1
- package/dist/date/DateField.js +3 -3
- package/dist/date/DateField.js.map +1 -1
- package/dist/date/DatePicker.js +5 -5
- package/dist/date/DatePicker.js.map +1 -1
- package/dist/date/DateRangePicker.js +5 -5
- package/dist/date/DateRangePicker.js.map +1 -1
- package/dist/date/DateSegmentGroup.js +5 -5
- package/dist/date/DateSegmentGroup.js.map +1 -1
- package/dist/date/QuarterCalendar.js +6 -6
- package/dist/date/QuarterCalendar.js.map +1 -1
- package/dist/date/RangeCalendar.js +3 -3
- package/dist/date/RangeCalendar.js.map +1 -1
- package/dist/date/SegmentedField.js +3 -3
- package/dist/date/SegmentedField.js.map +1 -1
- package/dist/date/TimeField.js +3 -3
- package/dist/date/TimeField.js.map +1 -1
- package/dist/date/TimePicker.js +4 -4
- package/dist/date/TimePicker.js.map +1 -1
- package/dist/date/date-segments.js +1 -1
- package/dist/date/date-segments.js.map +1 -1
- package/dist/date/picker-popover.js +3 -2
- package/dist/date/picker-popover.js.map +1 -1
- package/dist/diagram/Diagram.js +12 -12
- package/dist/diagram/Diagram.js.map +1 -1
- package/dist/diagram/DiagramLanes.js +3 -3
- package/dist/diagram/DiagramLanes.js.map +1 -1
- package/dist/diagram/DiagramMinimap.js +4 -4
- package/dist/diagram/DiagramMinimap.js.map +1 -1
- package/dist/display/Accordion.js +6 -6
- package/dist/display/Accordion.js.map +1 -1
- package/dist/display/AnimatedNumber.js +4 -4
- package/dist/display/AnimatedNumber.js.map +1 -1
- package/dist/display/Avatar.js +4 -4
- package/dist/display/Avatar.js.map +1 -1
- package/dist/display/Checklist.js +7 -7
- package/dist/display/Checklist.js.map +1 -1
- package/dist/display/Collapse.js +8 -5
- package/dist/display/Collapse.js.map +1 -1
- package/dist/display/Collapsible.js +3 -3
- package/dist/display/Collapsible.js.map +1 -1
- package/dist/display/Descriptions.js +5 -5
- package/dist/display/Descriptions.js.map +1 -1
- package/dist/display/Ellipsis.js +3 -3
- package/dist/display/Ellipsis.js.map +1 -1
- package/dist/display/FieldCompare.js +4 -4
- package/dist/display/FieldCompare.js.map +1 -1
- package/dist/display/Gauge.js +11 -11
- package/dist/display/Gauge.js.map +1 -1
- package/dist/display/Image.js +4 -4
- package/dist/display/Image.js.map +1 -1
- package/dist/display/Marquee.js +3 -3
- package/dist/display/Marquee.js.map +1 -1
- package/dist/display/ProportionBar.js +4 -4
- package/dist/display/ProportionBar.js.map +1 -1
- package/dist/display/Sortable.js +4 -4
- package/dist/display/Sortable.js.map +1 -1
- package/dist/display/Sparkline.js +6 -6
- package/dist/display/Sparkline.js.map +1 -1
- package/dist/display/Stat.js +3 -3
- package/dist/display/Stat.js.map +1 -1
- package/dist/display/Timeline.js +7 -7
- package/dist/display/Timeline.js.map +1 -1
- package/dist/display/Tree.js +10 -10
- package/dist/display/Tree.js.map +1 -1
- package/dist/display/VirtualList.js +7 -7
- package/dist/display/VirtualList.js.map +1 -1
- package/dist/display/Watermark.js +3 -3
- package/dist/display/Watermark.js.map +1 -1
- package/dist/docs-kit/CodeGroup.js +5 -5
- package/dist/docs-kit/CodeGroup.js.map +1 -1
- package/dist/docs-kit/CodePreview.js +6 -6
- package/dist/docs-kit/CodePreview.js.map +1 -1
- package/dist/docs-kit/PropsTable.js +4 -4
- package/dist/docs-kit/PropsTable.js.map +1 -1
- package/dist/feedback/Alert.js +5 -5
- package/dist/feedback/Alert.js.map +1 -1
- package/dist/feedback/Banner.js +5 -5
- package/dist/feedback/Banner.js.map +1 -1
- package/dist/feedback/Empty.js +4 -4
- package/dist/feedback/Empty.js.map +1 -1
- package/dist/feedback/LoadingBar.js +20 -13
- package/dist/feedback/LoadingBar.js.map +1 -1
- package/dist/feedback/LoadingOverlay.js +3 -3
- package/dist/feedback/LoadingOverlay.js.map +1 -1
- package/dist/feedback/Progress.js +14 -14
- package/dist/feedback/Progress.js.map +1 -1
- package/dist/feedback/Result.js +4 -4
- package/dist/feedback/Result.js.map +1 -1
- package/dist/feedback/SkeletonText.js +3 -3
- package/dist/feedback/SkeletonText.js.map +1 -1
- package/dist/feedback/Toast.js +6 -6
- package/dist/feedback/Toast.js.map +1 -1
- package/dist/form/Field.js +7 -7
- package/dist/form/Field.js.map +1 -1
- package/dist/form/Form.js +3 -3
- package/dist/form/Form.js.map +1 -1
- package/dist/form/FormErrorSummary.js +3 -3
- package/dist/form/FormErrorSummary.js.map +1 -1
- package/dist/form/FormSection.js +6 -6
- package/dist/form/FormSection.js.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.js +10 -5
- package/dist/input/Autocomplete.js +3 -3
- package/dist/input/Autocomplete.js.map +1 -1
- package/dist/input/Cascader.js +7 -7
- package/dist/input/Cascader.js.map +1 -1
- package/dist/input/CharacterCount.js +3 -3
- package/dist/input/CharacterCount.js.map +1 -1
- package/dist/input/Checkbox.js +5 -5
- package/dist/input/Checkbox.js.map +1 -1
- package/dist/input/ColorField.js +4 -4
- package/dist/input/ColorField.js.map +1 -1
- package/dist/input/Combobox.js +4 -4
- package/dist/input/Combobox.js.map +1 -1
- package/dist/input/ConditionBuilder.js +15 -14
- package/dist/input/ConditionBuilder.js.map +1 -1
- package/dist/input/FileDrop.js +3 -3
- package/dist/input/FileDrop.js.map +1 -1
- package/dist/input/Listbox.js +9 -9
- package/dist/input/Listbox.js.map +1 -1
- package/dist/input/Mentions.js +3 -3
- package/dist/input/Mentions.js.map +1 -1
- package/dist/input/NumberField.js +3 -3
- package/dist/input/NumberField.js.map +1 -1
- package/dist/input/NumberRangeField.js +5 -5
- package/dist/input/NumberRangeField.js.map +1 -1
- package/dist/input/OtpField.js +5 -5
- package/dist/input/OtpField.js.map +1 -1
- package/dist/input/PeoplePicker.js +6 -6
- package/dist/input/PeoplePicker.js.map +1 -1
- package/dist/input/PeoplePickerPanel.js +4 -4
- package/dist/input/PeoplePickerPanel.js.map +1 -1
- package/dist/input/Radio.js +4 -4
- package/dist/input/Radio.js.map +1 -1
- package/dist/input/Rating.js +5 -5
- package/dist/input/Rating.js.map +1 -1
- package/dist/input/Select.js +4 -4
- package/dist/input/Select.js.map +1 -1
- package/dist/input/SelectedTags.js +4 -4
- package/dist/input/SelectedTags.js.map +1 -1
- package/dist/input/Slider.js +6 -6
- package/dist/input/Slider.js.map +1 -1
- package/dist/input/Switch.js +3 -3
- package/dist/input/Switch.js.map +1 -1
- package/dist/input/TagsInput.js +5 -5
- package/dist/input/TagsInput.js.map +1 -1
- package/dist/input/TextField.js +5 -5
- package/dist/input/TextField.js.map +1 -1
- package/dist/input/Textarea.js +4 -4
- package/dist/input/Textarea.js.map +1 -1
- package/dist/input/ToggleGroup.js +4 -4
- package/dist/input/ToggleGroup.js.map +1 -1
- package/dist/input/Transfer.js +8 -8
- package/dist/input/Transfer.js.map +1 -1
- package/dist/input/TreeSelect.js +6 -6
- package/dist/input/TreeSelect.js.map +1 -1
- package/dist/input/Upload.js +8 -8
- package/dist/input/Upload.js.map +1 -1
- package/dist/layout/Affix.js +4 -4
- package/dist/layout/Affix.js.map +1 -1
- package/dist/layout/ResizeHandle.d.ts +6 -2
- package/dist/layout/ResizeHandle.js +32 -9
- package/dist/layout/ResizeHandle.js.map +1 -1
- package/dist/layout/ScrollArea.js +3 -3
- package/dist/layout/ScrollArea.js.map +1 -1
- package/dist/layout/Separator.js +3 -3
- package/dist/layout/Separator.js.map +1 -1
- package/dist/layout/Splitter.js +3 -3
- package/dist/layout/Splitter.js.map +1 -1
- package/dist/layout/ViewportFill.d.ts +2 -2
- package/dist/layout/ViewportFill.js +4 -4
- package/dist/layout/ViewportFill.js.map +1 -1
- package/dist/navigation/Breadcrumbs.js +4 -4
- package/dist/navigation/Breadcrumbs.js.map +1 -1
- package/dist/navigation/NavBar.js +6 -6
- package/dist/navigation/NavBar.js.map +1 -1
- package/dist/navigation/NavList.d.ts +1 -0
- package/dist/navigation/NavList.js +20 -12
- package/dist/navigation/NavList.js.map +1 -1
- package/dist/navigation/NavMenu.d.ts +27 -0
- package/dist/navigation/NavMenu.js +54 -0
- package/dist/navigation/NavMenu.js.map +1 -0
- package/dist/navigation/PageJump.js +3 -3
- package/dist/navigation/PageJump.js.map +1 -1
- package/dist/navigation/PageSizeSelect.js +4 -4
- package/dist/navigation/PageSizeSelect.js.map +1 -1
- package/dist/navigation/Pagination.js +6 -6
- package/dist/navigation/Pagination.js.map +1 -1
- package/dist/navigation/PaginationBar.js +5 -5
- package/dist/navigation/PaginationBar.js.map +1 -1
- package/dist/navigation/Steps.js +4 -4
- package/dist/navigation/Steps.js.map +1 -1
- package/dist/navigation/TableOfContents.js +5 -5
- package/dist/navigation/TableOfContents.js.map +1 -1
- package/dist/navigation/Tabs.js +7 -7
- package/dist/navigation/Tabs.js.map +1 -1
- package/dist/navigation/Toolbar.js +3 -3
- package/dist/navigation/Toolbar.js.map +1 -1
- package/dist/overlay/AlertDialog.js +4 -4
- package/dist/overlay/AlertDialog.js.map +1 -1
- package/dist/overlay/CommandPalette.js +4 -4
- package/dist/overlay/CommandPalette.js.map +1 -1
- package/dist/overlay/ContextMenu.js +3 -3
- package/dist/overlay/ContextMenu.js.map +1 -1
- package/dist/overlay/Dialog.js +4 -4
- package/dist/overlay/Dialog.js.map +1 -1
- package/dist/overlay/Drawer.js +5 -5
- package/dist/overlay/Drawer.js.map +1 -1
- package/dist/overlay/HoverCard.js +5 -3
- package/dist/overlay/HoverCard.js.map +1 -1
- package/dist/overlay/Lightbox.js +5 -5
- package/dist/overlay/Lightbox.js.map +1 -1
- package/dist/overlay/Menu.js +7 -7
- package/dist/overlay/Menu.js.map +1 -1
- package/dist/overlay/ModalCore.js +9 -9
- package/dist/overlay/ModalCore.js.map +1 -1
- package/dist/overlay/Popconfirm.js +6 -6
- package/dist/overlay/Popconfirm.js.map +1 -1
- package/dist/overlay/Popover.js +5 -3
- package/dist/overlay/Popover.js.map +1 -1
- package/dist/overlay/Tooltip.js +5 -3
- package/dist/overlay/Tooltip.js.map +1 -1
- package/dist/overlay/Tour.js +8 -8
- package/dist/overlay/Tour.js.map +1 -1
- package/dist/overlay/detached.d.ts +2 -0
- package/dist/overlay/detached.js +73 -42
- package/dist/overlay/detached.js.map +1 -1
- package/dist/patterns/ActionBar.js +3 -3
- package/dist/patterns/ActionBar.js.map +1 -1
- package/dist/patterns/AppShell.d.ts +28 -1
- package/dist/patterns/AppShell.js +158 -52
- package/dist/patterns/AppShell.js.map +1 -1
- package/dist/patterns/AuthLayout.d.ts +28 -0
- package/dist/patterns/AuthLayout.js +77 -0
- package/dist/patterns/AuthLayout.js.map +1 -0
- package/dist/patterns/CommentThread.js +9 -9
- package/dist/patterns/CommentThread.js.map +1 -1
- package/dist/patterns/DataImport.js +4 -4
- package/dist/patterns/DataImport.js.map +1 -1
- package/dist/patterns/DeadlineBadge.js +3 -3
- package/dist/patterns/DeadlineBadge.js.map +1 -1
- package/dist/patterns/FilterBar.d.ts +11 -1
- package/dist/patterns/FilterBar.js +39 -10
- package/dist/patterns/FilterBar.js.map +1 -1
- package/dist/patterns/FormDialog.d.ts +18 -0
- package/dist/patterns/FormDialog.js +46 -0
- package/dist/patterns/FormDialog.js.map +1 -0
- package/dist/patterns/KanbanBoard.js +8 -8
- package/dist/patterns/KanbanBoard.js.map +1 -1
- package/dist/patterns/LayoutSwitcher.d.ts +12 -0
- package/dist/patterns/LayoutSwitcher.js +79 -0
- package/dist/patterns/LayoutSwitcher.js.map +1 -0
- package/dist/patterns/NotificationCenter.js +8 -8
- package/dist/patterns/NotificationCenter.js.map +1 -1
- package/dist/patterns/PageTabs.d.ts +12 -7
- package/dist/patterns/PageTabs.js +41 -29
- package/dist/patterns/PageTabs.js.map +1 -1
- package/dist/patterns/QueryTable.d.ts +7 -1
- package/dist/patterns/QueryTable.js +116 -81
- package/dist/patterns/QueryTable.js.map +1 -1
- package/dist/patterns/SlideCaptcha.d.ts +80 -0
- package/dist/patterns/SlideCaptcha.js +354 -0
- package/dist/patterns/SlideCaptcha.js.map +1 -0
- package/dist/patterns/StepsForm.js +7 -7
- package/dist/patterns/StepsForm.js.map +1 -1
- package/dist/patterns/ThemeSwitcher.js +3 -3
- package/dist/patterns/ThemeSwitcher.js.map +1 -1
- package/dist/patterns/index.d.ts +7 -3
- package/dist/patterns/index.js +5 -1
- package/dist/patterns/messages.d.ts +37 -1
- package/dist/patterns/messages.js +38 -2
- package/dist/patterns/messages.js.map +1 -1
- package/dist/table/ColumnHeaderActions.js +3 -3
- package/dist/table/ColumnHeaderActions.js.map +1 -1
- package/dist/table/ColumnResizer.js +3 -3
- package/dist/table/ColumnResizer.js.map +1 -1
- package/dist/table/ColumnSettings.js +5 -5
- package/dist/table/ColumnSettings.js.map +1 -1
- package/dist/table/ColumnTable.js +8 -8
- package/dist/table/ColumnTable.js.map +1 -1
- package/dist/table/DataTable.js +8 -8
- package/dist/table/DataTable.js.map +1 -1
- package/dist/table/DataTableView.js +21 -21
- package/dist/table/DataTableView.js.map +1 -1
- package/dist/table/PivotTable.js +3 -3
- package/dist/table/PivotTable.js.map +1 -1
- package/dist/table/SelectionBar.js +4 -4
- package/dist/table/SelectionBar.js.map +1 -1
- package/dist/table/TreeDataTable.js +5 -5
- package/dist/table/TreeDataTable.js.map +1 -1
- package/dist/theme-customize/ThemeCustomizer.js +7 -6
- package/dist/theme-customize/ThemeCustomizer.js.map +1 -1
- package/dist/theme-customize/ThemeThumbnail.js +3 -3
- package/dist/theme-customize/ThemeThumbnail.js.map +1 -1
- package/dist/three/background/AuroraBackground.js +3 -3
- package/dist/three/background/AuroraBackground.js.map +1 -1
- package/dist/three/background/MeshGradient.js +3 -3
- package/dist/three/background/MeshGradient.js.map +1 -1
- package/dist/three/background/ShaderBackground.js +3 -3
- package/dist/three/background/ShaderBackground.js.map +1 -1
- package/dist/three/core/EffectSurface.js +3 -3
- package/dist/three/core/EffectSurface.js.map +1 -1
- package/dist/three/core/ThreeCanvas.js +4 -4
- package/dist/three/core/ThreeCanvas.js.map +1 -1
- package/dist/three/effects/Confetti.js +3 -3
- package/dist/three/effects/Confetti.js.map +1 -1
- package/dist/three/effects/ParticleField.js +3 -3
- package/dist/three/effects/ParticleField.js.map +1 -1
- package/dist/three/effects/WaveGrid.js +3 -3
- package/dist/three/effects/WaveGrid.js.map +1 -1
- package/dist/three/globe/Globe.js +3 -3
- package/dist/three/globe/Globe.js.map +1 -1
- package/dist/three/model/ModelViewer.js +3 -3
- package/dist/three/model/ModelViewer.js.map +1 -1
- package/dist/utils/data/number.d.ts +5 -0
- package/dist/utils/data/number.js +8 -1
- package/dist/utils/data/number.js.map +1 -1
- package/dist/utils/dom/element.d.ts +3 -1
- package/dist/utils/dom/element.js +8 -4
- package/dist/utils/dom/element.js.map +1 -1
- package/dist/utils/dom/fullscreen.d.ts +1 -1
- package/dist/utils/dom/fullscreen.js +12 -8
- package/dist/utils/dom/fullscreen.js.map +1 -1
- package/dist/utils/dom/mounted.d.ts +7 -0
- package/dist/utils/dom/mounted.js +16 -0
- package/dist/utils/dom/mounted.js.map +1 -0
- package/dist/utils/dom/overflow.js +2 -1
- package/dist/utils/dom/overflow.js.map +1 -1
- package/dist/utils/dom/pan-zoom.js +2 -1
- package/dist/utils/dom/pan-zoom.js.map +1 -1
- package/dist/utils/props.js +3 -13
- package/dist/utils/props.js.map +1 -1
- package/dist/utils/request/http.d.ts +12 -0
- package/dist/utils/request/http.js +6 -2
- package/dist/utils/request/http.js.map +1 -1
- package/dist/utils/request/use-request.js +4 -2
- package/dist/utils/request/use-request.js.map +1 -1
- package/package.json +2 -2
|
@@ -7,6 +7,7 @@ import { type ResizeHandleProps } from '../layout/ResizeHandle';
|
|
|
7
7
|
import { type ScrollAreaProps } from '../layout/ScrollArea';
|
|
8
8
|
import { type DrawerProps } from '../overlay/Drawer';
|
|
9
9
|
import { type PartProps } from '../utils/props';
|
|
10
|
+
import type { LayoutPreference } from '../config/layout/preference';
|
|
10
11
|
/** 左侧栏的形式 */
|
|
11
12
|
export interface AppShellSidebarModes {
|
|
12
13
|
/** 宽屏时占一列、窄屏时收进抽屉(默认) */
|
|
@@ -14,6 +15,17 @@ export interface AppShellSidebarModes {
|
|
|
14
15
|
/** 各宽度都是盖在页面上面的抽屉,不占正文的位置,可以收起、拖动宽度 */
|
|
15
16
|
overlay: unknown;
|
|
16
17
|
}
|
|
18
|
+
/** 抽屉式侧栏从哪一边滑出(sidebarMode="overlay") */
|
|
19
|
+
export interface AppShellSidebarSides {
|
|
20
|
+
/** 起始边(左,从右到左排版时是右):默认 */
|
|
21
|
+
start: unknown;
|
|
22
|
+
/** 结束边(右,从右到左排版时是左):“菜单”在顶栏结束边 */
|
|
23
|
+
end: unknown;
|
|
24
|
+
/** 顶栏下面,盖满宽度,导航的小节排成多列 */
|
|
25
|
+
top: unknown;
|
|
26
|
+
/** 窗口底部,盖满宽度,导航的小节排成多列 */
|
|
27
|
+
bottom: unknown;
|
|
28
|
+
}
|
|
17
29
|
/** 未声明的属性落到外层 div 上 */
|
|
18
30
|
export interface AppShellProps extends PartProps<'div'> {
|
|
19
31
|
/** 顶栏起始边的品牌(标志与产品名):有侧栏时这一格与侧栏同宽,侧栏的竖线延伸到顶 */
|
|
@@ -36,6 +48,13 @@ export interface AppShellProps extends PartProps<'div'> {
|
|
|
36
48
|
_sidebarCollapsed?: boolean;
|
|
37
49
|
/** 左侧栏的形式,默认 docked */
|
|
38
50
|
sidebarMode?: keyof AppShellSidebarModes;
|
|
51
|
+
/** 抽屉式侧栏从哪一边滑出,默认 start;只在 overlay 时有效 */
|
|
52
|
+
sidebarSide?: keyof AppShellSidebarSides;
|
|
53
|
+
/**
|
|
54
|
+
* 用户选的布局(createLayoutPreference 的结果):侧栏的形式、方向、开关与尺寸从它读、写回它并存盘,
|
|
55
|
+
* 写了它,sidebarMode、sidebarSide、_sidebarOpen、_sidebarWidth、_sidebarHeight、_sidebarCollapsed 就不再起作用
|
|
56
|
+
*/
|
|
57
|
+
layout?: LayoutPreference;
|
|
39
58
|
/** 侧栏抽屉是否打开(docked 时只在窄屏有抽屉):父级可以写 _sidebarOpen={x} */
|
|
40
59
|
_sidebarOpen?: boolean;
|
|
41
60
|
/**
|
|
@@ -43,6 +62,8 @@ export interface AppShellProps extends PartProps<'div'> {
|
|
|
43
62
|
* 父级写 _sidebarWidth={x} 记住拖动后的宽度
|
|
44
63
|
*/
|
|
45
64
|
_sidebarWidth?: number;
|
|
65
|
+
/** 上下两侧抽屉的高度(px),默认 320,范围 96–640:父级写 _sidebarHeight={x} 记住拖动后的高度 */
|
|
66
|
+
_sidebarHeight?: number;
|
|
46
67
|
/** 页面最前面的“跳到正文”链接,默认 true */
|
|
47
68
|
skipLink?: boolean;
|
|
48
69
|
/** 整页用浮层滚动条(PageScrollbar:不占宽度,滚动时出现),默认 true */
|
|
@@ -117,8 +138,12 @@ export declare const appShellStyles: Readonly<{
|
|
|
117
138
|
menuButton: css.CompiledStyles;
|
|
118
139
|
nav: css.CompiledStyles;
|
|
119
140
|
overlay: css.CompiledStyles;
|
|
141
|
+
overlayBottom: css.CompiledStyles;
|
|
142
|
+
overlayEnd: css.CompiledStyles;
|
|
120
143
|
overlayOpen: css.CompiledStyles;
|
|
121
144
|
overlayScroll: css.CompiledStyles;
|
|
145
|
+
overlayStart: css.CompiledStyles;
|
|
146
|
+
overlayTop: css.CompiledStyles;
|
|
122
147
|
rail: css.CompiledStyles;
|
|
123
148
|
railScroll: css.CompiledStyles;
|
|
124
149
|
railViewport: css.CompiledStyles;
|
|
@@ -126,6 +151,7 @@ export declare const appShellStyles: Readonly<{
|
|
|
126
151
|
sidebar: css.CompiledStyles;
|
|
127
152
|
sidebarColumn: css.CompiledStyles;
|
|
128
153
|
sidebarContent: css.CompiledStyles;
|
|
154
|
+
sidebarContentColumns: css.CompiledStyles;
|
|
129
155
|
sidebarContentCompact: css.CompiledStyles;
|
|
130
156
|
sidebarScroll: css.CompiledStyles;
|
|
131
157
|
tabs: css.CompiledStyles;
|
|
@@ -136,9 +162,10 @@ export declare const appShellStyles: Readonly<{
|
|
|
136
162
|
withSidebar: css.CompiledStyles;
|
|
137
163
|
withSidebarCollapsed: css.CompiledStyles;
|
|
138
164
|
}>;
|
|
139
|
-
/** AppShell
|
|
165
|
+
/** AppShell 的动态样式:抽屉的宽度与高度、宽屏时品牌格的宽度(px) */
|
|
140
166
|
export declare const appShellDynamicStyles: Readonly<{
|
|
141
167
|
readonly width: (px: number) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
|
|
168
|
+
readonly height: (px: number) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
|
|
142
169
|
readonly brandWidth: (px: number) => Readonly<[css.CompiledStyles, css.InlineStyles]>;
|
|
143
170
|
}>;
|
|
144
171
|
/** 应用外壳:粘性顶栏、左侧栏、正文、右侧栏;窄屏时左侧栏收进抽屉 */
|
|
@@ -17,10 +17,10 @@ import { NavCompactContext } from "../navigation/NavList.js";
|
|
|
17
17
|
import { SkipLink } from "../navigation/SkipLink.js";
|
|
18
18
|
import { useMessages } from "../config/lang/messages.js";
|
|
19
19
|
import { patternsMessages } from "./messages.js";
|
|
20
|
-
import { createVNode,
|
|
21
|
-
import { _component, bindable, childrenProp, createContext, readonlyProp, restProps, untrack } from "@zerodep-dev/vue-tsx-pro-tsx";
|
|
20
|
+
import { createVNode, shallowRef, unref, useId, watch } from "vue";
|
|
21
|
+
import { _component, bindable, childrenProp, createContext, mergeJsxProps, readonlyProp, restProps, untrack } from "@zerodep-dev/vue-tsx-pro-tsx";
|
|
22
22
|
import * as css from "@zerodep-dev/vue-tsx-pro-tsx/styles";
|
|
23
|
-
import { Menu, PanelLeftClose, PanelLeftOpen } from "@lucide/icons";
|
|
23
|
+
import { Menu, PanelBottomClose, PanelBottomOpen, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, PanelTopClose, PanelTopOpen } from "@lucide/icons";
|
|
24
24
|
//#region src/patterns/AppShell.tsx
|
|
25
25
|
/**
|
|
26
26
|
* 应用外壳:粘性顶栏、左侧栏(导航)、正文、右侧栏(本页目录),文档站与后台的整页骨架。
|
|
@@ -49,6 +49,11 @@ import { Menu, PanelLeftClose, PanelLeftOpen } from "@lucide/icons";
|
|
|
49
49
|
* 抽屉结束边可以拖动调整宽度(ResizeHandle,也能聚焦后用 ← / →,双击回到初始宽度),父级写 _sidebarWidth={x} 记住;
|
|
50
50
|
* 顶栏的品牌格按初始宽度,拖动时不变。焦点在抽屉里时按 Esc 收起、焦点回到“菜单”;窄屏时点了链接也收起。
|
|
51
51
|
* 拖到比 160px 窄时侧栏变紧凑:里面的 NavList 只显示图标(名称在提示里),小节标题只剩图标(NavCompactContext)。
|
|
52
|
+
* sidebarSide 选抽屉从哪一边滑出:start(默认)、end、top、bottom。start / end 是左右两侧抽屉(随排版方向,从右到左时互换),
|
|
53
|
+
* end 时“菜单”在顶栏结束边;top / bottom 是盖满宽度的上下抽屉,导航的小节排成多列,拖动贴着正文的那条边调整高度
|
|
54
|
+
* (_sidebarHeight 记住)。上下抽屉盖住的正文范围大,点了链接就收起(左右抽屉在宽屏时不收)。
|
|
55
|
+
* 想让用户自己选,用 layout:createLayoutPreference 的结果,侧栏的形式、方向、开关与尺寸都从它读、写回它并存盘,
|
|
56
|
+
* 配合顶栏里的 LayoutSwitcher;写了 layout 时 sidebarMode、sidebarSide、_sidebarOpen 等不再起作用。
|
|
52
57
|
*
|
|
53
58
|
* 品牌格里一般放 AppShellBrand:品牌色的标志与产品名,点了回首页;自己的标志图写在它的 logo 里。
|
|
54
59
|
*
|
|
@@ -70,9 +75,13 @@ var RAIL_WIDTH = "3.5rem";
|
|
|
70
75
|
var OVERLAY_WIDTH = 256;
|
|
71
76
|
var OVERLAY_MIN_WIDTH = 16;
|
|
72
77
|
var OVERLAY_MAX_WIDTH = 480;
|
|
78
|
+
var OVERLAY_HEIGHT = 320;
|
|
79
|
+
var OVERLAY_MIN_HEIGHT = 96;
|
|
80
|
+
var OVERLAY_MAX_HEIGHT = 640;
|
|
73
81
|
var OVERLAY_COMPACT_WIDTH = 160;
|
|
74
82
|
var WIDE_QUERY = breakpoints.lg.replace("@media ", "");
|
|
75
83
|
/** 左侧栏的形式 */
|
|
84
|
+
/** 抽屉式侧栏从哪一边滑出(sidebarMode="overlay") */
|
|
76
85
|
/** 未声明的属性落到外层 div 上 */
|
|
77
86
|
/** AppShell 交给里面的部件的状态:侧栏收起时品牌只剩标志 */
|
|
78
87
|
/** AppShell 的上下文:AppShellBrand 据此在侧栏收起时只显示标志;不在 AppShell 里时为 null */
|
|
@@ -220,26 +229,61 @@ var appShellStyles = css.create({
|
|
|
220
229
|
},
|
|
221
230
|
overlay: {
|
|
222
231
|
position: "fixed",
|
|
223
|
-
top: HEADER_HEIGHT,
|
|
224
|
-
bottom: 0,
|
|
225
|
-
insetInlineStart: 0,
|
|
226
232
|
zIndex: 9,
|
|
227
233
|
boxSizing: "border-box",
|
|
228
234
|
display: "flex",
|
|
229
235
|
flexDirection: "column",
|
|
230
|
-
maxWidth: "calc(100vw - 3rem)",
|
|
231
236
|
overflow: "hidden",
|
|
232
237
|
backgroundColor: "_surface",
|
|
238
|
+
boxShadow: "_lg",
|
|
239
|
+
visibility: "hidden",
|
|
240
|
+
transition: `translate ${t.durations.md} ${t.easings.exit}, visibility 0s linear ${t.durations.md}`
|
|
241
|
+
},
|
|
242
|
+
overlayStart: {
|
|
243
|
+
top: HEADER_HEIGHT,
|
|
244
|
+
bottom: 0,
|
|
245
|
+
insetInlineStart: 0,
|
|
246
|
+
maxWidth: "calc(100vw - 3rem)",
|
|
233
247
|
borderInlineEndWidth: "_xs",
|
|
234
248
|
borderInlineEndStyle: "solid",
|
|
235
249
|
borderInlineEndColor: "_border",
|
|
236
|
-
boxShadow: "_lg",
|
|
237
|
-
visibility: "hidden",
|
|
238
250
|
translate: {
|
|
239
251
|
default: "-100% 0",
|
|
240
252
|
":dir(rtl)": "100% 0"
|
|
241
|
-
}
|
|
242
|
-
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
overlayEnd: {
|
|
256
|
+
top: HEADER_HEIGHT,
|
|
257
|
+
bottom: 0,
|
|
258
|
+
insetInlineEnd: 0,
|
|
259
|
+
maxWidth: "calc(100vw - 3rem)",
|
|
260
|
+
borderInlineStartWidth: "_xs",
|
|
261
|
+
borderInlineStartStyle: "solid",
|
|
262
|
+
borderInlineStartColor: "_border",
|
|
263
|
+
translate: {
|
|
264
|
+
default: "100% 0",
|
|
265
|
+
":dir(rtl)": "-100% 0"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
overlayTop: {
|
|
269
|
+
top: HEADER_HEIGHT,
|
|
270
|
+
insetInlineStart: 0,
|
|
271
|
+
insetInlineEnd: 0,
|
|
272
|
+
maxHeight: `calc(100dvh - ${HEADER_HEIGHT} - 3rem)`,
|
|
273
|
+
borderBlockEndWidth: "_xs",
|
|
274
|
+
borderBlockEndStyle: "solid",
|
|
275
|
+
borderBlockEndColor: "_border",
|
|
276
|
+
translate: "0 -100%"
|
|
277
|
+
},
|
|
278
|
+
overlayBottom: {
|
|
279
|
+
bottom: 0,
|
|
280
|
+
insetInlineStart: 0,
|
|
281
|
+
insetInlineEnd: 0,
|
|
282
|
+
maxHeight: `calc(100dvh - ${HEADER_HEIGHT} - 3rem)`,
|
|
283
|
+
borderBlockStartWidth: "_xs",
|
|
284
|
+
borderBlockStartStyle: "solid",
|
|
285
|
+
borderBlockStartColor: "_border",
|
|
286
|
+
translate: "0 100%"
|
|
243
287
|
},
|
|
244
288
|
overlayOpen: {
|
|
245
289
|
visibility: "visible",
|
|
@@ -250,6 +294,10 @@ var appShellStyles = css.create({
|
|
|
250
294
|
flexGrow: 1,
|
|
251
295
|
minHeight: 0
|
|
252
296
|
},
|
|
297
|
+
sidebarContentColumns: {
|
|
298
|
+
columnWidth: "14rem",
|
|
299
|
+
columnGap: "_xl"
|
|
300
|
+
},
|
|
253
301
|
brandOverlay: {
|
|
254
302
|
alignSelf: {
|
|
255
303
|
default: null,
|
|
@@ -355,9 +403,10 @@ var appShellStyles = css.create({
|
|
|
355
403
|
fontSize: "_sm"
|
|
356
404
|
}
|
|
357
405
|
});
|
|
358
|
-
/** AppShell
|
|
406
|
+
/** AppShell 的动态样式:抽屉的宽度与高度、宽屏时品牌格的宽度(px) */
|
|
359
407
|
var appShellDynamicStyles = css.create({
|
|
360
408
|
width: (px) => ({ width: px }),
|
|
409
|
+
height: (px) => ({ height: px }),
|
|
361
410
|
brandWidth: (px) => ({ width: {
|
|
362
411
|
default: null,
|
|
363
412
|
[breakpoints.lg]: px
|
|
@@ -365,7 +414,6 @@ var appShellDynamicStyles = css.create({
|
|
|
365
414
|
});
|
|
366
415
|
/** 应用外壳:粘性顶栏、左侧栏、正文、右侧栏;窄屏时左侧栏收进抽屉 */
|
|
367
416
|
var AppShell = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
368
|
-
const _cache = [];
|
|
369
417
|
const brand = readonlyProp(_props, "brand");
|
|
370
418
|
const header = readonlyProp(_props, "header");
|
|
371
419
|
const sidebar = readonlyProp(_props, "sidebar");
|
|
@@ -374,8 +422,11 @@ var AppShell = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
|
374
422
|
const tabs = readonlyProp(_props, "tabs");
|
|
375
423
|
const footer = readonlyProp(_props, "footer");
|
|
376
424
|
const sidebarMode = readonlyProp(_props, "sidebarMode", "docked");
|
|
425
|
+
const sidebarSide = readonlyProp(_props, "sidebarSide", "start");
|
|
426
|
+
const layout = readonlyProp(_props, "layout");
|
|
377
427
|
const sidebarOpen = bindable(_props, "_sidebarOpen", () => false, _ctx.emit);
|
|
378
428
|
const sidebarWidth = bindable(_props, "_sidebarWidth", () => OVERLAY_WIDTH, _ctx.emit);
|
|
429
|
+
const sidebarHeight = bindable(_props, "_sidebarHeight", () => OVERLAY_HEIGHT, _ctx.emit);
|
|
379
430
|
const sidebarCollapsible = readonlyProp(_props, "sidebarCollapsible", false);
|
|
380
431
|
const sidebarCollapsed = bindable(_props, "_sidebarCollapsed", () => false, _ctx.emit);
|
|
381
432
|
const skipLink = readonlyProp(_props, "skipLink", true);
|
|
@@ -403,42 +454,75 @@ var AppShell = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
|
403
454
|
const id = useId();
|
|
404
455
|
const mainId = `${id}-main`;
|
|
405
456
|
const sidebarId = `${id}-sidebar`;
|
|
406
|
-
const
|
|
457
|
+
const mode = () => layout.value ? layout.value.mode : sidebarMode.value;
|
|
458
|
+
const side = () => layout.value ? layout.value.side : sidebarSide.value;
|
|
459
|
+
const isOpen = () => layout.value ? layout.value.open : sidebarOpen.value;
|
|
460
|
+
const setOpen = (value) => {
|
|
461
|
+
if (layout.value) layout.value.open = value;
|
|
462
|
+
else sidebarOpen.value = value;
|
|
463
|
+
};
|
|
464
|
+
const widthOf = () => layout.value ? layout.value.width : sidebarWidth.value;
|
|
465
|
+
const setWidth = (px) => {
|
|
466
|
+
if (layout.value) layout.value.width = px;
|
|
467
|
+
else sidebarWidth.value = px;
|
|
468
|
+
};
|
|
469
|
+
const heightOf = () => layout.value ? layout.value.height : sidebarHeight.value;
|
|
470
|
+
const setHeight = (px) => {
|
|
471
|
+
if (layout.value) layout.value.height = px;
|
|
472
|
+
else sidebarHeight.value = px;
|
|
473
|
+
};
|
|
474
|
+
const isCollapsed = () => layout.value ? layout.value.collapsed : sidebarCollapsed.value;
|
|
475
|
+
const setCollapsed = (value) => {
|
|
476
|
+
if (layout.value) layout.value.collapsed = value;
|
|
477
|
+
else sidebarCollapsed.value = value;
|
|
478
|
+
};
|
|
479
|
+
const overlay = () => mode() === "overlay";
|
|
407
480
|
const docked = () => hasContent(sidebar.value) && !overlay();
|
|
481
|
+
const lateral = () => side() === "start" || side() === "end";
|
|
408
482
|
const wide = useMediaQuery(WIDE_QUERY);
|
|
409
|
-
const collapsed = () => docked() && sidebarCollapsible.value &&
|
|
410
|
-
const compact = () => overlay() &&
|
|
483
|
+
const collapsed = () => docked() && sidebarCollapsible.value && isCollapsed() && wide.value;
|
|
484
|
+
const compact = () => overlay() && lateral() && widthOf() < OVERLAY_COMPACT_WIDTH || collapsed();
|
|
411
485
|
NavCompactContext.provide(compact);
|
|
412
486
|
AppShellContext.provide({ collapsed });
|
|
413
487
|
watch(wide, (isWide) => {
|
|
414
|
-
if (isWide && !overlay())
|
|
488
|
+
if (isWide && !overlay()) setOpen(false);
|
|
415
489
|
});
|
|
416
490
|
function closeOnNavigate(event) {
|
|
417
|
-
if (overlay() && wide.value) return;
|
|
418
|
-
if (event.target instanceof Element && event.target.closest("a[href]"))
|
|
491
|
+
if (overlay() && lateral() && wide.value) return;
|
|
492
|
+
if (event.target instanceof Element && event.target.closest("a[href]")) setOpen(false);
|
|
419
493
|
}
|
|
420
|
-
const remembered = untrack(() =>
|
|
494
|
+
const remembered = untrack(() => widthOf());
|
|
421
495
|
const initialWidth = remembered < OVERLAY_COMPACT_WIDTH ? OVERLAY_WIDTH : remembered;
|
|
422
496
|
let toggleButton = shallowRef(null);
|
|
423
497
|
function onOverlayKeydown(event) {
|
|
424
498
|
if (event.key !== "Escape" || event.defaultPrevented) return;
|
|
425
499
|
event.preventDefault();
|
|
426
|
-
|
|
500
|
+
setOpen(false);
|
|
427
501
|
toggleButton.value?.focus();
|
|
428
502
|
}
|
|
429
|
-
|
|
430
|
-
const
|
|
503
|
+
const toggleAtEnd = () => overlay() && side() === "end";
|
|
504
|
+
const toggleIcon = () => {
|
|
505
|
+
const open = isOpen();
|
|
506
|
+
switch (side()) {
|
|
507
|
+
case "end": return open ? PanelRightClose : PanelRightOpen;
|
|
508
|
+
case "top": return open ? PanelTopClose : PanelTopOpen;
|
|
509
|
+
case "bottom": return open ? PanelBottomClose : PanelBottomOpen;
|
|
510
|
+
default: return open ? PanelLeftClose : PanelLeftOpen;
|
|
511
|
+
}
|
|
512
|
+
};
|
|
513
|
+
/** overlay 的“菜单”:开关抽屉,图标随开关和方向切换 */
|
|
514
|
+
const sidebarToggle = () => createVNode(Button, mergeJsxProps(mergePartProps({
|
|
431
515
|
variant: "ghost",
|
|
432
516
|
tone: "neutral",
|
|
433
517
|
size: "sm",
|
|
434
|
-
icon:
|
|
518
|
+
icon: toggleIcon(),
|
|
435
519
|
sx: appShellStyles.toggle
|
|
436
520
|
}, propsSidebarToggle.value, {
|
|
437
521
|
ref: (element) => toggleButton.value = toElement(element),
|
|
438
|
-
"aria-expanded":
|
|
522
|
+
"aria-expanded": isOpen(),
|
|
439
523
|
"aria-controls": sidebarId,
|
|
440
|
-
onClick: () =>
|
|
441
|
-
}), {
|
|
524
|
+
onClick: () => setOpen(!isOpen())
|
|
525
|
+
}), { "key": "__site0" }), {
|
|
442
526
|
default: () => [messages.navigationMenu],
|
|
443
527
|
$stable: true
|
|
444
528
|
});
|
|
@@ -451,33 +535,34 @@ var AppShell = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
|
451
535
|
icon: Menu,
|
|
452
536
|
"aria-label": messages.navigationOpen
|
|
453
537
|
}, propsMenuButton.value, {
|
|
454
|
-
"aria-expanded":
|
|
455
|
-
onClick: () =>
|
|
538
|
+
"aria-expanded": isOpen(),
|
|
539
|
+
onClick: () => setOpen(true)
|
|
456
540
|
}), null),
|
|
457
|
-
hasContent(brand.value) && createVNode("div", mergeAttrs({ sx: [appShellStyles.brand, hasContent(sidebar.value) && (overlay() ? [appShellStyles.brandOverlay, css.bind(appShellDynamicStyles.brandWidth, () => [initialWidth], true)] : [appShellStyles.brandRail, collapsed() && appShellStyles.brandRailCollapsed])] }, propsBrand.value), [brand.value, hasContent(sidebar.value) && overlay() && sidebarToggle()]),
|
|
458
|
-
!hasContent(brand.value) && hasContent(sidebar.value) && overlay() && sidebarToggle(),
|
|
541
|
+
hasContent(brand.value) && createVNode("div", mergeAttrs({ sx: [appShellStyles.brand, hasContent(sidebar.value) && (overlay() ? side() === "start" && [appShellStyles.brandOverlay, css.bind(appShellDynamicStyles.brandWidth, () => [initialWidth], true)] : [appShellStyles.brandRail, collapsed() && appShellStyles.brandRailCollapsed])] }, propsBrand.value), [brand.value, hasContent(sidebar.value) && overlay() && !toggleAtEnd() && sidebarToggle()]),
|
|
542
|
+
!hasContent(brand.value) && hasContent(sidebar.value) && overlay() && !toggleAtEnd() && sidebarToggle(),
|
|
459
543
|
hasContent(nav.value) && createVNode("div", mergeAttrs({ sx: appShellStyles.nav }, propsNav.value), [nav.value]),
|
|
460
|
-
createVNode("div", mergeAttrs({ sx: [appShellStyles.headerContent, hasContent(nav.value) && appShellStyles.headerContentAfterNav] }, propsHeaderContent.value), [header.value])
|
|
544
|
+
createVNode("div", mergeAttrs({ sx: [appShellStyles.headerContent, hasContent(nav.value) && appShellStyles.headerContentAfterNav] }, propsHeaderContent.value), [header.value]),
|
|
545
|
+
hasContent(sidebar.value) && toggleAtEnd() && sidebarToggle()
|
|
461
546
|
]),
|
|
462
547
|
createVNode("div", mergeAttrs({ sx: [appShellStyles.body, docked() && hasContent(aside.value) ? collapsed() ? appShellStyles.withBothCollapsed : appShellStyles.withBoth : docked() ? collapsed() ? appShellStyles.withSidebarCollapsed : appShellStyles.withSidebar : hasContent(aside.value) && appShellStyles.withAside] }, propsBody.value), [
|
|
463
548
|
docked() && createVNode("div", mergeAttrs({ sx: [
|
|
464
549
|
appShellStyles.rail,
|
|
465
550
|
appShellStyles.sidebar,
|
|
466
551
|
sidebarCollapsible.value && appShellStyles.sidebarColumn
|
|
467
|
-
] }, propsSidebar.value), [createVNode(ScrollArea,
|
|
552
|
+
] }, propsSidebar.value), [createVNode(ScrollArea, mergeJsxProps(mergePartProps({
|
|
468
553
|
sx: [appShellStyles.railScroll, sidebarCollapsible.value && appShellStyles.sidebarScroll],
|
|
469
554
|
propsViewport: { sx: appShellStyles.railViewport },
|
|
470
555
|
propsContent: { sx: [appShellStyles.sidebarContent, css.select(() => collapsed() && appShellStyles.sidebarContentCompact, true)] }
|
|
471
|
-
}, propsSidebarScroll.value), { "key": "
|
|
556
|
+
}, propsSidebarScroll.value), { "key": "__site1" }), {
|
|
472
557
|
default: () => [unref(sidebar)],
|
|
473
558
|
$stable: true
|
|
474
559
|
}), sidebarCollapsible.value && createVNode("div", css.attrs(appShellStyles.collapseBar, css.select(() => collapsed() && appShellStyles.collapseBarCollapsed, true)), [createVNode(IconButton, mergePartProps({
|
|
475
|
-
icon:
|
|
560
|
+
icon: isCollapsed() ? PanelLeftOpen : PanelLeftClose,
|
|
476
561
|
size: "sm",
|
|
477
562
|
variant: "ghost",
|
|
478
563
|
propsIcon: { flipInRtl: true },
|
|
479
|
-
"aria-label":
|
|
480
|
-
}, propsCollapse.value, { onClick: () =>
|
|
564
|
+
"aria-label": isCollapsed() ? messages.sidebarExpand : messages.sidebarCollapse
|
|
565
|
+
}, propsCollapse.value, { onClick: () => setCollapsed(!isCollapsed()) }), null)])]),
|
|
481
566
|
createVNode("div", css.attrs(appShellStyles.column), [
|
|
482
567
|
hasContent(tabs.value) && createVNode("div", mergeAttrs({ sx: appShellStyles.tabs }, propsTabs.value), [tabs.value]),
|
|
483
568
|
createVNode("main", mergeAttrs({ sx: [appShellStyles.main, appShellStyles.mainGrow] }, propsMain.value, {
|
|
@@ -486,45 +571,62 @@ var AppShell = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
|
486
571
|
}), [children.value]),
|
|
487
572
|
hasContent(footer.value) && createVNode("footer", mergeAttrs({ sx: appShellStyles.footer }, propsFooter.value), [footer.value])
|
|
488
573
|
]),
|
|
489
|
-
hasContent(aside.value) && createVNode("aside", mergeAttrs({ sx: [appShellStyles.rail, appShellStyles.aside] }, propsAside.value), [createVNode(ScrollArea,
|
|
574
|
+
hasContent(aside.value) && createVNode("aside", mergeAttrs({ sx: [appShellStyles.rail, appShellStyles.aside] }, propsAside.value), [createVNode(ScrollArea, mergeJsxProps(mergePartProps({
|
|
490
575
|
sx: appShellStyles.railScroll,
|
|
491
576
|
propsViewport: { sx: appShellStyles.railViewport },
|
|
492
577
|
propsContent: { sx: appShellStyles.asideContent }
|
|
493
|
-
}, propsAsideScroll.value), { "key": "
|
|
578
|
+
}, propsAsideScroll.value), { "key": "__site2" }), {
|
|
494
579
|
default: () => [unref(aside)],
|
|
495
580
|
$stable: true
|
|
496
581
|
})])
|
|
497
582
|
]),
|
|
498
583
|
hasContent(sidebar.value) && overlay() && createVNode("div", mergeAttrs({ sx: [
|
|
499
584
|
appShellStyles.overlay,
|
|
500
|
-
|
|
501
|
-
|
|
585
|
+
side() === "start" && appShellStyles.overlayStart,
|
|
586
|
+
side() === "end" && appShellStyles.overlayEnd,
|
|
587
|
+
side() === "top" && appShellStyles.overlayTop,
|
|
588
|
+
side() === "bottom" && appShellStyles.overlayBottom,
|
|
589
|
+
isOpen() && appShellStyles.overlayOpen,
|
|
590
|
+
lateral() ? css.bind(appShellDynamicStyles.width, () => [widthOf()], true) : css.bind(appShellDynamicStyles.height, () => [heightOf()], true)
|
|
502
591
|
] }, propsSidebar.value, {
|
|
503
592
|
id: sidebarId,
|
|
504
|
-
inert: !
|
|
593
|
+
inert: !isOpen(),
|
|
505
594
|
onKeydown: onOverlayKeydown,
|
|
506
595
|
onClick: closeOnNavigate
|
|
507
|
-
}), [createVNode(ScrollArea,
|
|
596
|
+
}), [createVNode(ScrollArea, mergeJsxProps(mergePartProps({
|
|
508
597
|
sx: appShellStyles.overlayScroll,
|
|
509
598
|
propsViewport: { sx: appShellStyles.railViewport },
|
|
510
|
-
propsContent: { sx: [
|
|
511
|
-
|
|
599
|
+
propsContent: { sx: [
|
|
600
|
+
appShellStyles.sidebarContent,
|
|
601
|
+
css.select(() => compact() && appShellStyles.sidebarContentCompact, true),
|
|
602
|
+
!lateral() && appShellStyles.sidebarContentColumns
|
|
603
|
+
] }
|
|
604
|
+
}, propsSidebarScroll.value), { "key": "__site3" }), {
|
|
512
605
|
default: () => [unref(sidebar)],
|
|
513
606
|
$stable: true
|
|
514
|
-
}), createVNode(ResizeHandle,
|
|
515
|
-
"
|
|
607
|
+
}), lateral() ? createVNode(ResizeHandle, mergeJsxProps({ "aria-label": messages.navigationResize }, propsResizeHandle.value, {
|
|
608
|
+
"edge": side() === "end" ? "start" : "end",
|
|
609
|
+
"width": widthOf(),
|
|
516
610
|
"minWidth": OVERLAY_MIN_WIDTH,
|
|
517
611
|
"maxWidth": OVERLAY_MAX_WIDTH,
|
|
518
612
|
"defaultWidth": initialWidth,
|
|
519
|
-
"onWidthChange":
|
|
613
|
+
"onWidthChange": setWidth
|
|
614
|
+
}), null) : createVNode(ResizeHandle, mergeJsxProps({ "aria-label": messages.navigationResizeHeight }, propsResizeHandle.value, {
|
|
615
|
+
"orientation": "horizontal",
|
|
616
|
+
"edge": side() === "top" ? "end" : "start",
|
|
617
|
+
"width": heightOf(),
|
|
618
|
+
"minWidth": OVERLAY_MIN_HEIGHT,
|
|
619
|
+
"maxWidth": OVERLAY_MAX_HEIGHT,
|
|
620
|
+
"defaultWidth": OVERLAY_HEIGHT,
|
|
621
|
+
"onWidthChange": setHeight
|
|
520
622
|
}), null)]),
|
|
521
|
-
docked() && createVNode(Drawer,
|
|
623
|
+
docked() && createVNode(Drawer, mergeJsxProps(mergePartProps({
|
|
522
624
|
title: messages.navigation,
|
|
523
625
|
side: "start"
|
|
524
626
|
}, propsDrawer.value, { onClick: closeOnNavigate }), {
|
|
525
|
-
"_open":
|
|
526
|
-
"onUpdate:_open":
|
|
527
|
-
"key": "
|
|
627
|
+
"_open": isOpen(),
|
|
628
|
+
"onUpdate:_open": setOpen,
|
|
629
|
+
"key": "__site4"
|
|
528
630
|
}), {
|
|
529
631
|
default: () => [unref(sidebar)],
|
|
530
632
|
$stable: true
|
|
@@ -541,10 +643,14 @@ var AppShell = /*#__PURE__*/ _component((_props, _ctx) => {
|
|
|
541
643
|
"tabs",
|
|
542
644
|
"footer",
|
|
543
645
|
"sidebarMode",
|
|
646
|
+
"sidebarSide",
|
|
647
|
+
"layout",
|
|
544
648
|
"_sidebarOpen",
|
|
545
649
|
"onUpdate:_sidebarOpen",
|
|
546
650
|
"_sidebarWidth",
|
|
547
651
|
"onUpdate:_sidebarWidth",
|
|
652
|
+
"_sidebarHeight",
|
|
653
|
+
"onUpdate:_sidebarHeight",
|
|
548
654
|
"sidebarCollapsible",
|
|
549
655
|
"_sidebarCollapsed",
|
|
550
656
|
"onUpdate:_sidebarCollapsed",
|