@xleddyl/443-components-vue 0.4.0 → 0.6.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/README.md +25 -6
- package/dist/chart/BarChart.vue +11 -4
- package/dist/chart/BarChart.vue.d.ts +2 -0
- package/dist/chart/ChartLegend.vue +43 -4
- package/dist/chart/ChartLegend.vue.d.ts +4 -2
- package/dist/chart/ChartPanel.vue +10 -10
- package/dist/chart/ChartPanel.vue.d.ts +11 -8
- package/dist/chart/ChartSummary.vue +8 -3
- package/dist/chart/ChartSummary.vue.d.ts +3 -1
- package/dist/chart/DoughnutChart.vue +11 -4
- package/dist/chart/LineChart.vue +8 -2
- package/dist/chart/LineChart.vue.d.ts +2 -0
- package/dist/chart/chart.css +19 -0
- package/dist/chart/patterns.d.ts +6 -0
- package/dist/chart/patterns.mjs +79 -0
- package/dist/chart/types.d.ts +5 -0
- package/dist/chart/useChartColors.mjs +1 -1
- package/dist/components/core/Button.vue +11 -1
- package/dist/components/core/Button.vue.d.ts +1 -1
- package/dist/components/core/FieldMessage.vue +6 -0
- package/dist/components/core/FieldMessage.vue.d.ts +1 -1
- package/dist/components/core/Form.vue +18 -1
- package/dist/components/core/FormAlerts.vue +41 -3
- package/dist/components/core/FormField.vue +43 -24
- package/dist/components/core/Input.vue.d.ts +6 -6
- package/dist/components/core/Root.vue +6 -1
- package/dist/components/core/Root.vue.d.ts +2 -2
- package/dist/components/core/Spinner.vue +6 -11
- package/dist/components/core/Spinner.vue.d.ts +2 -2
- package/dist/components/core/Textarea.vue.d.ts +2 -2
- package/dist/components/core/VisuallyHidden.vue.d.ts +2 -2
- package/dist/components/data/Avatar.vue +8 -5
- package/dist/components/data/AvatarGroup.vue +6 -3
- package/dist/components/data/Badge.vue.d.ts +1 -1
- package/dist/components/data/FilterPills.vue +18 -2
- package/dist/components/data/Pagination.vue +24 -18
- package/dist/components/data/Pagination.vue.d.ts +2 -2
- package/dist/components/data/SelectionBar.vue +32 -3
- package/dist/components/data/Stat.vue +7 -1
- package/dist/components/data/Stat.vue.d.ts +2 -2
- package/dist/components/data/Table.vue +62 -14
- package/dist/components/data/Tag.vue +24 -4
- package/dist/components/data/Tag.vue.d.ts +3 -3
- package/dist/components/data/Timeline.vue +12 -1
- package/dist/components/data/Tree.vue +137 -36
- package/dist/components/data/Tree.vue.d.ts +13 -14
- package/dist/components/data/types.d.ts +2 -1
- package/dist/components/feedback/Alert.vue +18 -9
- package/dist/components/feedback/Alert.vue.d.ts +2 -2
- package/dist/components/feedback/LoadingOverlay.vue +35 -3
- package/dist/components/feedback/Meter.vue +28 -3
- package/dist/components/feedback/Progress.vue +2 -7
- package/dist/components/feedback/Progress.vue.d.ts +1 -1
- package/dist/components/feedback/ProgressRing.vue +2 -6
- package/dist/components/feedback/ProgressRing.vue.d.ts +1 -1
- package/dist/components/forms/Calendar.vue +49 -26
- package/dist/components/forms/Calendar.vue.d.ts +9 -5
- package/dist/components/forms/CheckboxGroup.vue +14 -4
- package/dist/components/forms/CheckboxGroup.vue.d.ts +1 -0
- package/dist/components/forms/ColorInput.vue +68 -15
- package/dist/components/forms/ColorInput.vue.d.ts +16 -13
- package/dist/components/forms/Combobox.vue +18 -4
- package/dist/components/forms/DateInput.vue.d.ts +6 -6
- package/dist/components/forms/DatePicker.vue +23 -7
- package/dist/components/forms/DatePicker.vue.d.ts +4 -2
- package/dist/components/forms/FileInput.vue +31 -13
- package/dist/components/forms/FileInput.vue.d.ts +2 -2
- package/dist/components/forms/InputAddon.vue +18 -2
- package/dist/components/forms/InputGroup.vue +27 -0
- package/dist/components/forms/InputGroup.vue.d.ts +2 -0
- package/dist/components/forms/NumberInput.vue +6 -7
- package/dist/components/forms/NumberInput.vue.d.ts +6 -6
- package/dist/components/forms/PasswordInput.vue +12 -6
- package/dist/components/forms/PasswordInput.vue.d.ts +6 -7
- package/dist/components/forms/PinInput.vue +11 -1
- package/dist/components/forms/PinInput.vue.d.ts +8 -6
- package/dist/components/forms/RadioGroup.vue +15 -5
- package/dist/components/forms/RadioGroup.vue.d.ts +1 -0
- package/dist/components/forms/SegmentedControl.vue +15 -10
- package/dist/components/forms/SegmentedControl.vue.d.ts +1 -0
- package/dist/components/forms/Slider.vue +9 -0
- package/dist/components/forms/Slider.vue.d.ts +8 -6
- package/dist/components/forms/Switch.vue +7 -0
- package/dist/components/forms/Switch.vue.d.ts +2 -2
- package/dist/components/forms/TimeInput.vue.d.ts +6 -6
- package/dist/components/forms/types.d.ts +4 -0
- package/dist/components/layout/Accordion.vue.d.ts +2 -2
- package/dist/components/layout/AppShell.vue +40 -18
- package/dist/components/layout/AppShell.vue.d.ts +11 -9
- package/dist/components/layout/Card.vue +50 -16
- package/dist/components/layout/Card.vue.d.ts +13 -11
- package/dist/components/layout/CopyButton.vue +13 -5
- package/dist/components/layout/CopyButton.vue.d.ts +3 -3
- package/dist/components/layout/NavLink.vue +10 -1
- package/dist/components/layout/NavLink.vue.d.ts +2 -2
- package/dist/components/layout/PageHeader.vue +2 -2
- package/dist/components/layout/Separator.vue +6 -3
- package/dist/components/layout/Sidebar.vue +14 -7
- package/dist/components/layout/Sidebar.vue.d.ts +0 -2
- package/dist/components/layout/SidebarNav.vue +16 -44
- package/dist/components/layout/Stack.vue.d.ts +2 -2
- package/dist/components/layout/Tabs.vue +10 -18
- package/dist/components/layout/Tabs.vue.d.ts +2 -2
- package/dist/components/layout/Toolbar.vue +10 -4
- package/dist/components/layout/Toolbar.vue.d.ts +1 -0
- package/dist/components/layout/types.d.ts +1 -0
- package/dist/components/overlays/CommandPalette.vue +8 -4
- package/dist/components/overlays/CommandPalette.vue.d.ts +3 -8
- package/dist/components/overlays/ConfirmDialog.vue +7 -5
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +12 -8
- package/dist/components/overlays/ConfirmHost.vue +22 -19
- package/dist/components/overlays/ConfirmHost.vue.d.ts +8 -6
- package/dist/components/overlays/ContextMenu.vue +9 -11
- package/dist/components/overlays/ContextMenu.vue.d.ts +2 -2
- package/dist/components/overlays/Drawer.vue +2 -0
- package/dist/components/overlays/Drawer.vue.d.ts +4 -2
- package/dist/components/overlays/DropdownMenu.vue +13 -21
- package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/overlays/HoverCard.vue +8 -2
- package/dist/components/overlays/HoverCard.vue.d.ts +2 -2
- package/dist/components/overlays/Modal.vue +2 -0
- package/dist/components/overlays/Modal.vue.d.ts +4 -2
- package/dist/components/overlays/Popover.vue +19 -4
- package/dist/components/overlays/Popover.vue.d.ts +2 -2
- package/dist/components/overlays/Toaster.vue +71 -8
- package/dist/components/overlays/Toaster.vue.d.ts +3 -0
- package/dist/components/overlays/Tooltip.vue +39 -14
- package/dist/components/overlays/types.d.ts +7 -0
- package/dist/components/templates/AccountMenu.vue.d.ts +2 -2
- package/dist/components/templates/AppearanceSettings.vue +83 -77
- package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
- package/dist/components/templates/AuthLayout.vue +2 -2
- package/dist/components/templates/Brand.vue.d.ts +2 -2
- package/dist/components/templates/DashboardLayout.vue +3 -7
- package/dist/components/templates/DashboardLayout.vue.d.ts +8 -18
- package/dist/components/templates/DetailPage.vue +3 -1
- package/dist/components/templates/DetailPage.vue.d.ts +2 -2
- package/dist/components/templates/ErrorPage.vue +11 -5
- package/dist/components/templates/ErrorPage.vue.d.ts +10 -6
- package/dist/components/templates/FormPage.vue +16 -3
- package/dist/components/templates/ListPage.vue +19 -6
- package/dist/components/templates/ListPage.vue.d.ts +1 -0
- package/dist/components/templates/NotFoundPage.vue +2 -0
- package/dist/components/templates/NotFoundPage.vue.d.ts +4 -0
- package/dist/components/templates/SaveBar.vue +18 -3
- package/dist/components/templates/SaveBar.vue.d.ts +5 -5
- package/dist/components/templates/SettingsGroup.vue +1 -1
- package/dist/components/templates/SettingsGroup.vue.d.ts +3 -1
- package/dist/components/templates/SettingsModal.vue +73 -46
- package/dist/components/templates/SettingsModal.vue.d.ts +9 -11
- package/dist/components/templates/SettingsPage.vue.d.ts +2 -2
- package/dist/components/templates/SettingsSection.vue.d.ts +4 -2
- package/dist/components/templates/types.d.ts +4 -0
- package/dist/composables/useAlert.mjs +5 -10
- package/dist/composables/useConfirm.mjs +5 -5
- package/dist/composables/useField.d.ts +4 -0
- package/dist/composables/useField.mjs +16 -5
- package/dist/composables/useFileDrop.mjs +2 -1
- package/dist/composables/useOverlay.mjs +2 -1
- package/dist/composables/usePreset.mjs +4 -10
- package/dist/composables/usePrompt.mjs +6 -13
- package/dist/composables/useScrollLock.mjs +4 -3
- package/dist/composables/useTheme.mjs +3 -11
- package/dist/composables/useToast.mjs +2 -1
- package/dist/editor/RichTextEditor.vue +31 -6
- package/dist/editor/RichTextEditor.vue.d.ts +2 -2
- package/dist/editor/rich-text-editor.css +9 -4
- package/dist/grid/DataGrid.vue +72 -12
- package/dist/grid/GridToolbar.vue +1 -1
- package/dist/grid/GridToolbar.vue.d.ts +2 -2
- package/dist/grid/cells/BadgeCell.vue +3 -1
- package/dist/grid/cells/BadgeCell.vue.d.ts +17 -3
- package/dist/grid/cells/DateCell.vue +3 -1
- package/dist/grid/cells/DateCell.vue.d.ts +17 -3
- package/dist/grid/cells/EmptyCell.vue +15 -0
- package/dist/grid/cells/EmptyCell.vue.d.ts +392 -0
- package/dist/grid/cells/LinkCell.vue +9 -2
- package/dist/grid/cells/LinkCell.vue.d.ts +17 -3
- package/dist/grid/data-grid.css +5 -5
- package/dist/grid/types.d.ts +2 -0
- package/dist/internal/core/ButtonContent.vue +3 -0
- package/dist/internal/core/LiveRegion.vue +26 -0
- package/dist/internal/core/LiveRegion.vue.d.ts +393 -0
- package/dist/internal/core/copy.d.ts +6 -0
- package/dist/internal/core/copy.mjs +14 -0
- package/dist/internal/core/focus.d.ts +6 -0
- package/dist/internal/core/focus.mjs +46 -0
- package/dist/internal/core/intl.d.ts +4 -2
- package/dist/internal/core/intl.mjs +23 -22
- package/dist/internal/core/live.d.ts +6 -0
- package/dist/internal/core/live.mjs +22 -0
- package/dist/internal/core/preset.d.ts +0 -1
- package/dist/internal/core/preset.mjs +4 -14
- package/dist/internal/core/resize.d.ts +1 -0
- package/dist/internal/core/resize.mjs +11 -0
- package/dist/internal/core/roving.d.ts +7 -0
- package/dist/internal/core/roving.mjs +19 -1
- package/dist/internal/core/scroll-edges.d.ts +5 -0
- package/dist/internal/core/scroll-edges.mjs +63 -0
- package/dist/internal/core/storage.d.ts +2 -0
- package/dist/internal/core/storage.mjs +8 -0
- package/dist/internal/core/theme.d.ts +0 -1
- package/dist/internal/core/theme.mjs +4 -13
- package/dist/internal/core/tone.d.ts +1 -0
- package/dist/internal/core/tone.mjs +4 -0
- package/dist/internal/core/transition.d.ts +1 -0
- package/dist/internal/core/transition.mjs +20 -0
- package/dist/internal/data/rows.mjs +6 -5
- package/dist/internal/data/tree.d.ts +2 -3
- package/dist/internal/feedback/LoadingHost.vue +16 -6
- package/dist/internal/feedback/loading.mjs +2 -1
- package/dist/internal/feedback/progress.d.ts +12 -0
- package/dist/internal/feedback/progress.mjs +13 -0
- package/dist/internal/floating/layer.d.ts +1 -1
- package/dist/internal/floating/layer.mjs +17 -10
- package/dist/internal/forms/keys.d.ts +4 -0
- package/dist/internal/forms/keys.mjs +1 -0
- package/dist/internal/forms/name.d.ts +2 -0
- package/dist/internal/forms/name.mjs +12 -0
- package/dist/internal/forms/standard-schema.d.ts +0 -2
- package/dist/internal/forms/standard-schema.mjs +0 -18
- package/dist/internal/layout/NavGroup.vue +104 -0
- package/dist/internal/layout/NavGroup.vue.d.ts +412 -0
- package/dist/internal/layout/route.mjs +1 -1
- package/dist/internal/overlays/DialogFrame.vue +53 -6
- package/dist/internal/overlays/DialogFrame.vue.d.ts +5 -2
- package/dist/internal/overlays/MenuList.vue +4 -11
- package/dist/internal/overlays/MenuList.vue.d.ts +6 -6
- package/dist/internal/overlays/OverlayView.vue +2 -0
- package/dist/internal/overlays/OverlayView.vue.d.ts +8 -6
- package/dist/internal/overlays/confirm.d.ts +6 -1
- package/dist/internal/overlays/confirm.mjs +5 -2
- package/dist/internal/overlays/dialog.d.ts +1 -0
- package/dist/internal/overlays/dialog.mjs +9 -9
- package/dist/internal/overlays/hover.d.ts +1 -0
- package/dist/internal/overlays/hover.mjs +20 -3
- package/dist/internal/overlays/menu.d.ts +9 -0
- package/dist/internal/overlays/menu.mjs +15 -0
- package/dist/internal/overlays/stack.d.ts +1 -0
- package/dist/locale/en.mjs +72 -19
- package/dist/locale/index.d.ts +1 -1
- package/dist/locale/index.mjs +5 -11
- package/dist/locale/it.mjs +72 -19
- package/dist/locale/types.d.ts +55 -2
- package/dist/nuxt/module.mjs +1 -1
- package/dist/nuxt/runtime/RouteAnnouncer.vue +21 -0
- package/dist/nuxt/runtime/RouteAnnouncer.vue.d.ts +3 -0
- package/dist/nuxt/runtime/layout-head.d.ts +2 -0
- package/dist/nuxt/runtime/layout-head.mjs +13 -0
- package/dist/nuxt/runtime/layouts/auth.vue +4 -0
- package/dist/nuxt/runtime/layouts/auth.vue.d.ts +2 -2
- package/dist/nuxt/runtime/layouts/dashboard.vue +4 -0
- package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +2 -2
- package/dist/nuxt/runtime/locale.mjs +8 -1
- package/dist/nuxt/runtime/theme.mjs +17 -12
- package/dist/styles/base.css +0 -13
- package/dist/styles/core/button.css +8 -8
- package/dist/styles/core/field-message.css +2 -2
- package/dist/styles/core/form-field.css +13 -4
- package/dist/styles/core/input.css +4 -7
- package/dist/styles/core/kbd.css +0 -1
- package/dist/styles/data/badge.css +8 -4
- package/dist/styles/data/description-list.css +7 -5
- package/dist/styles/data/filter-pills.css +5 -8
- package/dist/styles/data/pagination.css +2 -2
- package/dist/styles/data/stat.css +3 -3
- package/dist/styles/data/table.css +3 -2
- package/dist/styles/data/tag.css +1 -2
- package/dist/styles/data/timeline.css +2 -1
- package/dist/styles/data/tree.css +31 -10
- package/dist/styles/feedback/alert.css +1 -3
- package/dist/styles/feedback/empty-state.css +6 -4
- package/dist/styles/feedback/loading-host.css +4 -0
- package/dist/styles/feedback/loading-overlay.css +4 -0
- package/dist/styles/forced-colors.css +215 -0
- package/dist/styles/forms/calendar.css +2 -2
- package/dist/styles/forms/choice.css +2 -2
- package/dist/styles/forms/color-input.css +1 -1
- package/dist/styles/forms/combobox.css +2 -24
- package/dist/styles/forms/date-input.css +2 -2
- package/dist/styles/forms/date-picker.css +3 -7
- package/dist/styles/forms/file-input.css +4 -3
- package/dist/styles/forms/input-group.css +6 -0
- package/dist/styles/forms/number-input.css +2 -2
- package/dist/styles/forms/password-input.css +5 -2
- package/dist/styles/forms/pin-input.css +4 -2
- package/dist/styles/forms/segmented.css +2 -2
- package/dist/styles/forms/select.css +6 -6
- package/dist/styles/forms/slider.css +5 -4
- package/dist/styles/forms/switch.css +5 -1
- package/dist/styles/index.css +1 -0
- package/dist/styles/layout/accordion.css +1 -1
- package/dist/styles/layout/app-shell.css +15 -3
- package/dist/styles/layout/card.css +12 -2
- package/dist/styles/layout/copy-button.css +1 -1
- package/dist/styles/layout/nav-link.css +1 -33
- package/dist/styles/layout/page-header.css +2 -1
- package/dist/styles/layout/separator.css +1 -1
- package/dist/styles/layout/sidebar-nav.css +15 -4
- package/dist/styles/layout/sidebar.css +20 -6
- package/dist/styles/layout/tabs.css +9 -4
- package/dist/styles/layout/theme-switch.css +0 -6
- package/dist/styles/overlays/command.css +9 -15
- package/dist/styles/overlays/confirm.css +1 -1
- package/dist/styles/overlays/drawer.css +23 -3
- package/dist/styles/overlays/menu.css +2 -17
- package/dist/styles/overlays/modal.css +33 -9
- package/dist/styles/overlays/toast.css +1 -2
- package/dist/styles/presets.css +4 -4
- package/dist/styles/shared.css +96 -3
- package/dist/styles/templates/account-menu.css +3 -3
- package/dist/styles/templates/auth-layout.css +5 -1
- package/dist/styles/templates/brand.css +3 -3
- package/dist/styles/templates/empty-page.css +5 -1
- package/dist/styles/templates/error-page.css +4 -0
- package/dist/styles/templates/form-page.css +10 -0
- package/dist/styles/templates/save-bar.css +10 -0
- package/dist/styles/templates/settings-modal.css +46 -45
- package/dist/styles/templates/settings-page.css +3 -3
- package/dist/styles/tokens.css +12 -2
- package/package.json +1 -1
- package/dist/internal/overlays/focus.d.ts +0 -1
- package/dist/internal/overlays/focus.mjs +0 -24
|
@@ -20,7 +20,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
20
20
|
label?: string;
|
|
21
21
|
collapsible?: boolean;
|
|
22
22
|
collapseLabel?: string;
|
|
23
|
-
expandLabel?: string;
|
|
24
23
|
innerHTML?: string | undefined | undefined;
|
|
25
24
|
class?: import("vue").ClassValue;
|
|
26
25
|
style?: import("vue").StyleValue;
|
|
@@ -217,7 +216,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
217
216
|
label?: string;
|
|
218
217
|
collapsible?: boolean;
|
|
219
218
|
collapseLabel?: string;
|
|
220
|
-
expandLabel?: string;
|
|
221
219
|
innerHTML?: string | undefined | undefined;
|
|
222
220
|
class?: import("vue").ClassValue;
|
|
223
221
|
style?: import("vue").StyleValue;
|
|
@@ -5,42 +5,21 @@
|
|
|
5
5
|
:label="section.label"
|
|
6
6
|
>
|
|
7
7
|
<template v-for="(item, index) in section.items" :key="itemKey(item, index)">
|
|
8
|
-
<
|
|
8
|
+
<NavGroup
|
|
9
9
|
v-if="item.children?.length"
|
|
10
|
-
|
|
11
|
-
:
|
|
10
|
+
:item="item"
|
|
11
|
+
:open="isOpen(item, sectionIndex, index)"
|
|
12
|
+
:rail="rail"
|
|
13
|
+
:child-active="hasActiveChild(item)"
|
|
14
|
+
:panel-id="groupId(sectionIndex, index)"
|
|
15
|
+
@toggle="toggleGroup(sectionIndex, index)"
|
|
12
16
|
>
|
|
13
|
-
<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
:aria-controls="groupId(sectionIndex, index)"
|
|
20
|
-
:title="shell?.collapsed.value ? item.label : void 0"
|
|
21
|
-
@click="toggleGroup(sectionIndex, index)"
|
|
22
|
-
>
|
|
23
|
-
<span v-if="item.icon" class="k-navlink-icon" aria-hidden="true">
|
|
24
|
-
<Icon :name="item.icon" />
|
|
25
|
-
</span>
|
|
26
|
-
<span class="k-navlink-label">{{ item.label }}</span>
|
|
27
|
-
<span v-if="hasBadge(item)" class="k-navlink-badge">{{ item.badge }}</span>
|
|
28
|
-
<Icon name="chevron-right" class="k-navgroup-chevron" />
|
|
29
|
-
</button>
|
|
30
|
-
<div
|
|
31
|
-
:id="groupId(sectionIndex, index)"
|
|
32
|
-
class="k-navgroup-panel"
|
|
33
|
-
:inert="isOpen(item, sectionIndex, index) ? void 0 : true"
|
|
34
|
-
>
|
|
35
|
-
<div class="k-navgroup-list">
|
|
36
|
-
<NavLink
|
|
37
|
-
v-for="(child, childIndex) in item.children"
|
|
38
|
-
:key="itemKey(child, childIndex)"
|
|
39
|
-
v-bind="linkProps(child)"
|
|
40
|
-
/>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
17
|
+
<NavLink
|
|
18
|
+
v-for="(child, childIndex) in item.children"
|
|
19
|
+
:key="itemKey(child, childIndex)"
|
|
20
|
+
v-bind="linkProps(child)"
|
|
21
|
+
/>
|
|
22
|
+
</NavGroup>
|
|
44
23
|
<NavLink v-else v-bind="linkProps(item)" />
|
|
45
24
|
</template>
|
|
46
25
|
</SidebarSection>
|
|
@@ -51,7 +30,7 @@ import { computed, ref, useId, watch } from "vue";
|
|
|
51
30
|
import { useAppShell } from "../../composables/useAppShell";
|
|
52
31
|
import { isNavItemActive, navTarget, toNavSections } from "../../internal/layout/navigation";
|
|
53
32
|
import { useCurrentPath } from "../../internal/layout/route";
|
|
54
|
-
import
|
|
33
|
+
import NavGroup from "../../internal/layout/NavGroup.vue";
|
|
55
34
|
import NavLink from "./NavLink.vue";
|
|
56
35
|
import SidebarSection from "./SidebarSection.vue";
|
|
57
36
|
const props = defineProps({
|
|
@@ -69,17 +48,15 @@ function itemKey(item, index) {
|
|
|
69
48
|
function groupId(sectionIndex, index) {
|
|
70
49
|
return `${baseId}-group-${sectionIndex}-${index}`;
|
|
71
50
|
}
|
|
72
|
-
function hasBadge(item) {
|
|
73
|
-
return item.badge !== void 0 && item.badge !== "";
|
|
74
|
-
}
|
|
75
51
|
function isActive(item) {
|
|
76
52
|
return isNavItemActive(item, path.value);
|
|
77
53
|
}
|
|
78
54
|
function hasActiveChild(item) {
|
|
79
55
|
return Boolean(item.children?.some((child) => isActive(child) === true || hasActiveChild(child)));
|
|
80
56
|
}
|
|
57
|
+
const rail = computed(() => Boolean(shell?.collapsed.value && !shell.mobile.value));
|
|
81
58
|
function isOpen(item, sectionIndex, index) {
|
|
82
|
-
if (
|
|
59
|
+
if (rail.value) return false;
|
|
83
60
|
const explicit = toggled.value.get(groupId(sectionIndex, index));
|
|
84
61
|
return explicit ?? hasActiveChild(item);
|
|
85
62
|
}
|
|
@@ -88,11 +65,6 @@ function toggleGroup(sectionIndex, index) {
|
|
|
88
65
|
const section = sections.value[sectionIndex];
|
|
89
66
|
const item = section?.items[index];
|
|
90
67
|
if (!item) return;
|
|
91
|
-
if (shell?.collapsed.value && !shell.mobile.value) {
|
|
92
|
-
shell.toggleCollapsed();
|
|
93
|
-
toggled.value.set(id, true);
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
68
|
toggled.value.set(id, !isOpen(item, sectionIndex, index));
|
|
97
69
|
}
|
|
98
70
|
function linkProps(item) {
|
|
@@ -20,6 +20,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
20
20
|
results?: (string | number) | undefined;
|
|
21
21
|
placeholder?: string | undefined;
|
|
22
22
|
bind?: Record<string, unknown>;
|
|
23
|
+
dir?: string | undefined;
|
|
23
24
|
class?: import("vue").ClassValue;
|
|
24
25
|
role?: string | undefined;
|
|
25
26
|
'aria-label'?: string | undefined;
|
|
@@ -179,7 +180,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
179
180
|
accesskey?: string | undefined;
|
|
180
181
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
181
182
|
contextmenu?: string | undefined;
|
|
182
|
-
dir?: string | undefined;
|
|
183
183
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
184
184
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
185
185
|
enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
|
|
@@ -236,6 +236,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
236
236
|
results?: (string | number) | undefined;
|
|
237
237
|
placeholder?: string | undefined;
|
|
238
238
|
bind?: Record<string, unknown>;
|
|
239
|
+
dir?: string | undefined;
|
|
239
240
|
class?: import("vue").ClassValue;
|
|
240
241
|
role?: string | undefined;
|
|
241
242
|
'aria-label'?: string | undefined;
|
|
@@ -395,7 +396,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
395
396
|
accesskey?: string | undefined;
|
|
396
397
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
397
398
|
contextmenu?: string | undefined;
|
|
398
|
-
dir?: string | undefined;
|
|
399
399
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
400
400
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
401
401
|
enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
|
|
@@ -23,9 +23,7 @@
|
|
|
23
23
|
role="tab"
|
|
24
24
|
class="k-tab"
|
|
25
25
|
:aria-selected="isSelected(item) ? 'true' : 'false'"
|
|
26
|
-
:aria-controls="
|
|
27
|
-
singlePanel ? isSelected(item) ? singlePanelId : void 0 : panelId(index)
|
|
28
|
-
"
|
|
26
|
+
:aria-controls="controlsId(item, index)"
|
|
29
27
|
:tabindex="index === focusIndex ? 0 : -1"
|
|
30
28
|
:disabled="item.disabled"
|
|
31
29
|
@click="select(item)"
|
|
@@ -75,16 +73,8 @@
|
|
|
75
73
|
</template>
|
|
76
74
|
|
|
77
75
|
<script setup>
|
|
78
|
-
import {
|
|
79
|
-
|
|
80
|
-
nextTick,
|
|
81
|
-
onBeforeUnmount,
|
|
82
|
-
onMounted,
|
|
83
|
-
ref,
|
|
84
|
-
useId,
|
|
85
|
-
useTemplateRef,
|
|
86
|
-
watch
|
|
87
|
-
} from "vue";
|
|
76
|
+
import { computed, nextTick, onMounted, ref, useId, useTemplateRef, warn, watch } from "vue";
|
|
77
|
+
import { useResizeObserver } from "../../internal/core/resize";
|
|
88
78
|
import Icon from "../core/Icon.vue";
|
|
89
79
|
import { rovingIndex } from "../../internal/core/roving";
|
|
90
80
|
const props = defineProps({
|
|
@@ -140,6 +130,10 @@ function tabId(index) {
|
|
|
140
130
|
function panelId(index) {
|
|
141
131
|
return `${baseId}-panel-${index}`;
|
|
142
132
|
}
|
|
133
|
+
function controlsId(item, index) {
|
|
134
|
+
if (singlePanel.value) return isSelected(item) ? singlePanelId : void 0;
|
|
135
|
+
return !props.lazy || visited.value.has(item.value) ? panelId(index) : void 0;
|
|
136
|
+
}
|
|
143
137
|
function tabElement(index) {
|
|
144
138
|
return list.value?.querySelector(`#${CSS.escape(tabId(index))}`) ?? null;
|
|
145
139
|
}
|
|
@@ -170,12 +164,10 @@ function measure() {
|
|
|
170
164
|
if (!tab || !list.value) return;
|
|
171
165
|
indicator.value = { x: tab.offsetLeft, width: tab.offsetWidth };
|
|
172
166
|
}
|
|
173
|
-
let observer;
|
|
174
167
|
onMounted(() => {
|
|
168
|
+
if (!props.label && !list.value?.hasAttribute("aria-labelledby"))
|
|
169
|
+
warn("[@xleddyl/443-components-vue] Tabs needs a label to name the tab list.");
|
|
175
170
|
measure();
|
|
176
|
-
if (typeof ResizeObserver === "undefined" || !list.value) return;
|
|
177
|
-
observer = new ResizeObserver(() => measure());
|
|
178
|
-
observer.observe(list.value);
|
|
179
171
|
});
|
|
180
|
-
|
|
172
|
+
useResizeObserver(() => [list.value], measure);
|
|
181
173
|
</script>
|
|
@@ -29,6 +29,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
29
29
|
style?: import("vue").StyleValue;
|
|
30
30
|
results?: (string | number) | undefined;
|
|
31
31
|
placeholder?: string | undefined | undefined;
|
|
32
|
+
dir?: string | undefined | undefined;
|
|
32
33
|
class?: import("vue").ClassValue;
|
|
33
34
|
role?: string | undefined | undefined;
|
|
34
35
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -184,7 +185,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
184
185
|
accesskey?: string | undefined | undefined;
|
|
185
186
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
186
187
|
contextmenu?: string | undefined | undefined;
|
|
187
|
-
dir?: string | undefined | undefined;
|
|
188
188
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
189
189
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
190
190
|
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -235,6 +235,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
235
235
|
style?: import("vue").StyleValue;
|
|
236
236
|
results?: (string | number) | undefined;
|
|
237
237
|
placeholder?: string | undefined | undefined;
|
|
238
|
+
dir?: string | undefined | undefined;
|
|
238
239
|
class?: import("vue").ClassValue;
|
|
239
240
|
role?: string | undefined | undefined;
|
|
240
241
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -390,7 +391,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
390
391
|
accesskey?: string | undefined | undefined;
|
|
391
392
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
392
393
|
contextmenu?: string | undefined | undefined;
|
|
393
|
-
dir?: string | undefined | undefined;
|
|
394
394
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
395
395
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
396
396
|
enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
ref="root"
|
|
4
4
|
class="k-toolbar"
|
|
5
5
|
:class="[`k-toolbar-${orientation}`, { 'is-bordered': bordered }]"
|
|
6
|
-
role="toolbar"
|
|
6
|
+
:role="roving ? 'toolbar' : 'group'"
|
|
7
7
|
:aria-label="label"
|
|
8
|
-
:aria-orientation="orientation"
|
|
8
|
+
:aria-orientation="roving ? orientation : void 0"
|
|
9
9
|
@keydown="onKeydown"
|
|
10
10
|
@focusin="onFocusIn"
|
|
11
11
|
>
|
|
@@ -14,14 +14,20 @@
|
|
|
14
14
|
</template>
|
|
15
15
|
|
|
16
16
|
<script setup>
|
|
17
|
-
import { useTemplateRef } from "vue";
|
|
17
|
+
import { onMounted, useAttrs, useTemplateRef, warn } from "vue";
|
|
18
18
|
import { useRovingTabStops } from "../../internal/core/roving";
|
|
19
|
+
import { hasNameAttrs } from "../../internal/forms/name";
|
|
19
20
|
const props = defineProps({
|
|
20
21
|
label: { type: String, required: false },
|
|
21
22
|
orientation: { type: String, required: false, default: "horizontal" },
|
|
22
|
-
roving: { type: Boolean, required: false },
|
|
23
|
+
roving: { type: Boolean, required: false, default: true },
|
|
23
24
|
bordered: { type: Boolean, required: false }
|
|
24
25
|
});
|
|
26
|
+
const attrs = useAttrs();
|
|
27
|
+
onMounted(() => {
|
|
28
|
+
if (!props.label && !hasNameAttrs(attrs))
|
|
29
|
+
warn("[@xleddyl/443-components-vue] Toolbar needs a label (or aria-labelledby).");
|
|
30
|
+
});
|
|
25
31
|
const { onKeydown, onFocusIn } = useRovingTabStops(useTemplateRef("root"), {
|
|
26
32
|
selector: "button:not(:disabled), a[href], input:not(:disabled), select:not(:disabled), [data-k-toolbar-item]",
|
|
27
33
|
orientation: () => props.orientation,
|
|
@@ -398,6 +398,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
398
398
|
ref_key?: string | undefined | undefined;
|
|
399
399
|
}> & Readonly<{}>, {
|
|
400
400
|
orientation: "horizontal" | "vertical";
|
|
401
|
+
roving: boolean;
|
|
401
402
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
402
403
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
403
404
|
declare const _default: typeof __VLS_export;
|
|
@@ -43,6 +43,7 @@ export type AccordionVariant = 'separated' | 'plain' | 'card' | 'outline';
|
|
|
43
43
|
export type AccordionContentVariant = 'text' | 'neutral';
|
|
44
44
|
export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
45
45
|
export interface AppShellContext {
|
|
46
|
+
sidebarId: string;
|
|
46
47
|
collapsed: Readonly<{
|
|
47
48
|
value: boolean;
|
|
48
49
|
}>;
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
<span><Kbd size="sm">↵</Kbd> {{ selectText }}</span>
|
|
138
138
|
<span><Kbd size="sm">Esc</Kbd> {{ closeText }}</span>
|
|
139
139
|
</div>
|
|
140
|
-
<
|
|
140
|
+
<LiveRegion :message="status" />
|
|
141
141
|
</div>
|
|
142
142
|
</dialog>
|
|
143
143
|
</template>
|
|
@@ -153,6 +153,7 @@ import { matchesSearch } from "../../internal/core/text";
|
|
|
153
153
|
import { readStorageJson, writeStorageJson } from "../../internal/core/storage";
|
|
154
154
|
import { useRouterLike } from "../../internal/layout/route";
|
|
155
155
|
import { ButtonElement } from "../../internal/core/ButtonElement";
|
|
156
|
+
import LiveRegion from "../../internal/core/LiveRegion.vue";
|
|
156
157
|
import Icon from "../core/Icon.vue";
|
|
157
158
|
import Kbd from "../core/Kbd.vue";
|
|
158
159
|
import Spinner from "../core/Spinner.vue";
|
|
@@ -287,8 +288,11 @@ const search = useAsyncSearch({
|
|
|
287
288
|
onResults: (groups) => remote.value = groups,
|
|
288
289
|
onError: () => remote.value = []
|
|
289
290
|
});
|
|
291
|
+
function firstEnabled() {
|
|
292
|
+
return Math.max(0, nextEnabledIndex(flat.value.length, 0, 1, isDisabled));
|
|
293
|
+
}
|
|
290
294
|
watch(term, (value) => {
|
|
291
|
-
active.value =
|
|
295
|
+
active.value = firstEnabled();
|
|
292
296
|
if (!props.search) return;
|
|
293
297
|
if (!value || value.length < props.minQueryLength) {
|
|
294
298
|
search.cancel();
|
|
@@ -298,7 +302,7 @@ watch(term, (value) => {
|
|
|
298
302
|
search.schedule(value, props.debounce);
|
|
299
303
|
});
|
|
300
304
|
watch(flat, (items) => {
|
|
301
|
-
if (active.value >= items.length) active.value =
|
|
305
|
+
if (active.value >= items.length || isDisabled(active.value)) active.value = firstEnabled();
|
|
302
306
|
});
|
|
303
307
|
watch(active, (index) => {
|
|
304
308
|
nextTick(() => {
|
|
@@ -370,7 +374,7 @@ const { present, onCancel, onClose, onPointerDown, onClick } = useModalDialog({
|
|
|
370
374
|
dismissible: () => true,
|
|
371
375
|
onOpen: () => {
|
|
372
376
|
readRecent();
|
|
373
|
-
active.value =
|
|
377
|
+
active.value = firstEnabled();
|
|
374
378
|
inputRef.value?.select();
|
|
375
379
|
emit("open");
|
|
376
380
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CommandEmptyText, CommandGroup, CommandItem, CommandSearch } from './types';
|
|
1
|
+
import type { CommandEmptyText, CommandGroup, CommandGroupLabelSlotProps, CommandItem, CommandSearch } from './types';
|
|
2
2
|
declare const __VLS_export: <T = unknown>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
3
|
props: import("vue").PublicProps & __VLS_PrettifyLocal<({
|
|
4
4
|
groups?: CommandGroup<T>[];
|
|
@@ -44,6 +44,7 @@ declare const __VLS_export: <T = unknown>(__VLS_props: NonNullable<Awaited<typeo
|
|
|
44
44
|
readonly results?: (string | number) | undefined;
|
|
45
45
|
readonly placeholder?: string | undefined | undefined;
|
|
46
46
|
readonly name?: string | undefined | undefined;
|
|
47
|
+
readonly dir?: string | undefined | undefined;
|
|
47
48
|
readonly class?: import("vue").ClassValue;
|
|
48
49
|
readonly role?: string | undefined | undefined;
|
|
49
50
|
readonly 'aria-label'?: string | undefined | undefined;
|
|
@@ -196,7 +197,6 @@ declare const __VLS_export: <T = unknown>(__VLS_props: NonNullable<Awaited<typeo
|
|
|
196
197
|
readonly accesskey?: string | undefined | undefined;
|
|
197
198
|
readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
198
199
|
readonly contextmenu?: string | undefined | undefined;
|
|
199
|
-
readonly dir?: string | undefined | undefined;
|
|
200
200
|
readonly draggable?: (boolean | "true" | "false") | undefined;
|
|
201
201
|
readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
202
202
|
readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -248,12 +248,7 @@ declare const __VLS_export: <T = unknown>(__VLS_props: NonNullable<Awaited<typeo
|
|
|
248
248
|
empty?: (props: {
|
|
249
249
|
query: string;
|
|
250
250
|
}) => unknown;
|
|
251
|
-
'group-label'?: (props:
|
|
252
|
-
group?: CommandGroup<T>;
|
|
253
|
-
label?: string;
|
|
254
|
-
description?: string;
|
|
255
|
-
recent: boolean;
|
|
256
|
-
}) => unknown;
|
|
251
|
+
'group-label'?: (props: CommandGroupLabelSlotProps<T>) => unknown;
|
|
257
252
|
item?: (props: {
|
|
258
253
|
item: CommandItem<T>;
|
|
259
254
|
active: boolean;
|
|
@@ -25,11 +25,13 @@
|
|
|
25
25
|
</div>
|
|
26
26
|
</div>
|
|
27
27
|
</template>
|
|
28
|
-
<
|
|
29
|
-
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
<template #default="{ titleId }">
|
|
29
|
+
<slot :title-id="titleId" />
|
|
30
|
+
<p v-if="error" class="k-confirm-error" role="alert">
|
|
31
|
+
<Icon name="exclamation-circle" />
|
|
32
|
+
<span>{{ error }}</span>
|
|
33
|
+
</p>
|
|
34
|
+
</template>
|
|
33
35
|
<template #footer>
|
|
34
36
|
<Button
|
|
35
37
|
v-if="!hideCancel"
|
|
@@ -2,9 +2,11 @@ import type { Tone } from '../core/types';
|
|
|
2
2
|
import type { IconName } from '../../composables/useIcons';
|
|
3
3
|
declare function confirm(): Promise<void>;
|
|
4
4
|
declare function cancel(): void;
|
|
5
|
-
declare var
|
|
5
|
+
declare var __VLS_18: {
|
|
6
|
+
titleId: string;
|
|
7
|
+
};
|
|
6
8
|
type __VLS_Slots = {} & {
|
|
7
|
-
default?: (props: typeof
|
|
9
|
+
default?: (props: typeof __VLS_18) => any;
|
|
8
10
|
};
|
|
9
11
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
10
12
|
title?: string | undefined;
|
|
@@ -19,10 +21,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
19
21
|
key?: PropertyKey | undefined;
|
|
20
22
|
loading?: boolean;
|
|
21
23
|
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
24
|
+
label?: string;
|
|
22
25
|
style?: import("vue").StyleValue;
|
|
23
26
|
results?: (string | number) | undefined;
|
|
24
27
|
placeholder?: string | undefined;
|
|
25
28
|
size?: import("./types.ts").ModalSize;
|
|
29
|
+
dir?: string | undefined;
|
|
26
30
|
class?: import("vue").ClassValue;
|
|
27
31
|
role?: string | undefined;
|
|
28
32
|
'aria-label'?: string | undefined;
|
|
@@ -178,7 +182,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
178
182
|
accesskey?: string | undefined;
|
|
179
183
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
180
184
|
contextmenu?: string | undefined;
|
|
181
|
-
dir?: string | undefined;
|
|
182
185
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
183
186
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
184
187
|
enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
|
|
@@ -216,13 +219,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
216
219
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
217
220
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
218
221
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
219
|
-
onClose?: (() => any) | undefined;
|
|
220
222
|
flush?: boolean;
|
|
223
|
+
onClose?: (() => any) | undefined;
|
|
221
224
|
sheet?: boolean;
|
|
222
225
|
onOpen?: (() => any) | undefined;
|
|
226
|
+
closeLabel?: string;
|
|
223
227
|
rootClass?: unknown;
|
|
224
228
|
hideClose?: boolean;
|
|
225
|
-
closeLabel?: string;
|
|
226
229
|
beforeClose?: import("./types.ts").DialogBeforeClose;
|
|
227
230
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
228
231
|
}, {
|
|
@@ -246,10 +249,12 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
246
249
|
key?: PropertyKey | undefined;
|
|
247
250
|
loading?: boolean;
|
|
248
251
|
prefix?: "k-modal" | "k-drawer" | undefined;
|
|
252
|
+
label?: string;
|
|
249
253
|
style?: import("vue").StyleValue;
|
|
250
254
|
results?: (string | number) | undefined;
|
|
251
255
|
placeholder?: string | undefined;
|
|
252
256
|
size?: import("./types.ts").ModalSize;
|
|
257
|
+
dir?: string | undefined;
|
|
253
258
|
class?: import("vue").ClassValue;
|
|
254
259
|
role?: string | undefined;
|
|
255
260
|
'aria-label'?: string | undefined;
|
|
@@ -405,7 +410,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
405
410
|
accesskey?: string | undefined;
|
|
406
411
|
contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
407
412
|
contextmenu?: string | undefined;
|
|
408
|
-
dir?: string | undefined;
|
|
409
413
|
draggable?: (boolean | "true" | "false") | undefined;
|
|
410
414
|
enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
411
415
|
enterKeyHint?: import("vue").HTMLAttributes["enterkeyhint"];
|
|
@@ -443,13 +447,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
443
447
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
444
448
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
445
449
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
446
|
-
onClose?: (() => any) | undefined;
|
|
447
450
|
flush?: boolean;
|
|
451
|
+
onClose?: (() => any) | undefined;
|
|
448
452
|
sheet?: boolean;
|
|
449
453
|
onOpen?: (() => any) | undefined;
|
|
454
|
+
closeLabel?: string;
|
|
450
455
|
rootClass?: unknown;
|
|
451
456
|
hideClose?: boolean;
|
|
452
|
-
closeLabel?: string;
|
|
453
457
|
beforeClose?: import("./types.ts").DialogBeforeClose;
|
|
454
458
|
closedby?: import("../../index.ts").DialogClosedBy;
|
|
455
459
|
}> & Readonly<{
|
|
@@ -15,26 +15,29 @@
|
|
|
15
15
|
@resolve="onResolve"
|
|
16
16
|
@after-leave="onAfterLeave"
|
|
17
17
|
>
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<FormField
|
|
24
|
-
v-else-if="current?.kind === 'prompt'"
|
|
25
|
-
:label="current.label"
|
|
26
|
-
:required="current.required"
|
|
27
|
-
:error="promptError || void 0"
|
|
28
|
-
>
|
|
29
|
-
<Input
|
|
30
|
-
v-model="promptValue"
|
|
31
|
-
:type="current.type ?? 'text'"
|
|
32
|
-
:placeholder="current.placeholder"
|
|
33
|
-
autofocus
|
|
34
|
-
@keydown.enter.prevent="dialogRef?.confirm()"
|
|
35
|
-
@update:model-value="promptError = ''"
|
|
18
|
+
<template #default="{ titleId }">
|
|
19
|
+
<component
|
|
20
|
+
:is="current.body"
|
|
21
|
+
v-if="current && current.kind !== 'prompt' && current.body"
|
|
22
|
+
@close="dialogRef?.cancel()"
|
|
36
23
|
/>
|
|
37
|
-
|
|
24
|
+
<FormField
|
|
25
|
+
v-else-if="current?.kind === 'prompt'"
|
|
26
|
+
:label="current.label"
|
|
27
|
+
:required="current.required"
|
|
28
|
+
:error="promptError || void 0"
|
|
29
|
+
>
|
|
30
|
+
<Input
|
|
31
|
+
v-model="promptValue"
|
|
32
|
+
:type="current.type ?? 'text'"
|
|
33
|
+
:placeholder="current.placeholder"
|
|
34
|
+
:aria-labelledby="current.label ? void 0 : titleId"
|
|
35
|
+
autofocus
|
|
36
|
+
@keydown.enter.prevent="dialogRef?.confirm()"
|
|
37
|
+
@update:model-value="promptError = ''"
|
|
38
|
+
/>
|
|
39
|
+
</FormField>
|
|
40
|
+
</template>
|
|
38
41
|
</ConfirmDialog>
|
|
39
42
|
</template>
|
|
40
43
|
|
|
@@ -11,10 +11,12 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
|
|
|
11
11
|
readonly key?: PropertyKey | undefined;
|
|
12
12
|
readonly loading?: boolean | undefined;
|
|
13
13
|
readonly prefix?: "k-modal" | "k-drawer" | undefined;
|
|
14
|
+
readonly label?: string | undefined;
|
|
14
15
|
readonly style?: import("vue").StyleValue;
|
|
15
16
|
readonly results?: (string | number) | undefined;
|
|
16
17
|
readonly placeholder?: string | undefined | undefined;
|
|
17
18
|
readonly size?: import("./types.ts").ModalSize | undefined;
|
|
19
|
+
readonly dir?: string | undefined | undefined;
|
|
18
20
|
readonly class?: import("vue").ClassValue;
|
|
19
21
|
readonly role?: string | undefined | undefined;
|
|
20
22
|
readonly 'aria-label'?: string | undefined | undefined;
|
|
@@ -170,7 +172,6 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
|
|
|
170
172
|
readonly accesskey?: string | undefined | undefined;
|
|
171
173
|
readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
172
174
|
readonly contextmenu?: string | undefined | undefined;
|
|
173
|
-
readonly dir?: string | undefined | undefined;
|
|
174
175
|
readonly draggable?: (boolean | "true" | "false") | undefined;
|
|
175
176
|
readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
176
177
|
readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -208,13 +209,13 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
|
|
|
208
209
|
readonly onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
209
210
|
readonly onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
210
211
|
readonly onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
211
|
-
readonly onClose?: (() => any) | undefined;
|
|
212
212
|
readonly flush?: boolean | undefined;
|
|
213
|
+
readonly onClose?: (() => any) | undefined;
|
|
213
214
|
readonly sheet?: boolean | undefined;
|
|
214
215
|
readonly onOpen?: (() => any) | undefined;
|
|
216
|
+
readonly closeLabel?: string | undefined;
|
|
215
217
|
readonly rootClass?: unknown;
|
|
216
218
|
readonly hideClose?: boolean | undefined;
|
|
217
|
-
readonly closeLabel?: string | undefined;
|
|
218
219
|
readonly beforeClose?: import("./types.ts").DialogBeforeClose | undefined;
|
|
219
220
|
readonly closedby?: import("../../index.ts").DialogClosedBy | undefined;
|
|
220
221
|
readonly onCancel?: (() => any) | undefined;
|
|
@@ -234,10 +235,12 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
|
|
|
234
235
|
readonly key?: PropertyKey | undefined;
|
|
235
236
|
readonly loading?: boolean | undefined;
|
|
236
237
|
readonly prefix?: "k-modal" | "k-drawer" | undefined;
|
|
238
|
+
readonly label?: string | undefined;
|
|
237
239
|
readonly style?: import("vue").StyleValue;
|
|
238
240
|
readonly results?: (string | number) | undefined;
|
|
239
241
|
readonly placeholder?: string | undefined | undefined;
|
|
240
242
|
readonly size?: import("./types.ts").ModalSize | undefined;
|
|
243
|
+
readonly dir?: string | undefined | undefined;
|
|
241
244
|
readonly class?: import("vue").ClassValue;
|
|
242
245
|
readonly role?: string | undefined | undefined;
|
|
243
246
|
readonly 'aria-label'?: string | undefined | undefined;
|
|
@@ -393,7 +396,6 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
|
|
|
393
396
|
readonly accesskey?: string | undefined | undefined;
|
|
394
397
|
readonly contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
395
398
|
readonly contextmenu?: string | undefined | undefined;
|
|
396
|
-
readonly dir?: string | undefined | undefined;
|
|
397
399
|
readonly draggable?: (boolean | "true" | "false") | undefined;
|
|
398
400
|
readonly enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
399
401
|
readonly enterKeyHint?: "search" | "done" | "previous" | "next" | "enter" | "go" | "send" | undefined;
|
|
@@ -431,13 +433,13 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
|
|
|
431
433
|
readonly onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
432
434
|
readonly onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
433
435
|
readonly onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
434
|
-
readonly onClose?: (() => any) | undefined;
|
|
435
436
|
readonly flush?: boolean | undefined;
|
|
437
|
+
readonly onClose?: (() => any) | undefined;
|
|
436
438
|
readonly sheet?: boolean | undefined;
|
|
437
439
|
readonly onOpen?: (() => any) | undefined;
|
|
440
|
+
readonly closeLabel?: string | undefined;
|
|
438
441
|
readonly rootClass?: unknown;
|
|
439
442
|
readonly hideClose?: boolean | undefined;
|
|
440
|
-
readonly closeLabel?: string | undefined;
|
|
441
443
|
readonly beforeClose?: import("./types.ts").DialogBeforeClose | undefined;
|
|
442
444
|
readonly closedby?: import("../../index.ts").DialogClosedBy | undefined;
|
|
443
445
|
readonly onCancel?: (() => any) | undefined;
|
|
@@ -18,14 +18,15 @@
|
|
|
18
18
|
:offset="2"
|
|
19
19
|
:label="menuText"
|
|
20
20
|
manual-positioning
|
|
21
|
-
@open-change="
|
|
21
|
+
@open-change="isOpen = $event"
|
|
22
22
|
@select="(item, event) => emit('select', item, event)"
|
|
23
23
|
/>
|
|
24
24
|
</template>
|
|
25
25
|
|
|
26
26
|
<script setup>
|
|
27
|
-
import { computed, ref, shallowRef, useTemplateRef
|
|
27
|
+
import { computed, ref, shallowRef, useTemplateRef } from "vue";
|
|
28
28
|
import { useLocale } from "../../composables/useLocale";
|
|
29
|
+
import { syncOpenModel } from "../../internal/floating/layer";
|
|
29
30
|
import MenuList from "../../internal/overlays/MenuList.vue";
|
|
30
31
|
defineOptions({ inheritAttrs: false });
|
|
31
32
|
const props = defineProps({
|
|
@@ -91,15 +92,12 @@ function onKeydown(event) {
|
|
|
91
92
|
openFromElement(document.activeElement);
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
if (value) openFromElement(targetRef.value);
|
|
101
|
-
else menuRef.value?.hide();
|
|
102
|
-
});
|
|
95
|
+
syncOpenModel(
|
|
96
|
+
open,
|
|
97
|
+
isOpen,
|
|
98
|
+
() => openFromElement(targetRef.value),
|
|
99
|
+
() => menuRef.value?.hide()
|
|
100
|
+
);
|
|
103
101
|
defineExpose({
|
|
104
102
|
openAt: (x, y) => openAt(pointAt(x, y), "first"),
|
|
105
103
|
hide: () => menuRef.value?.hide()
|