@xleddyl/443-components-vue 0.2.3 → 0.4.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 +106 -19
- package/dist/chart/BarChart.vue.d.ts +2 -2
- package/dist/chart/ChartLegend.vue.d.ts +4 -4
- package/dist/chart/ChartPanel.vue.d.ts +2 -2
- package/dist/chart/ChartSummary.vue.d.ts +2 -2
- package/dist/chart/DoughnutChart.vue.d.ts +2 -2
- package/dist/chart/LineChart.vue.d.ts +2 -2
- package/dist/components/core/Button.vue.d.ts +2 -2
- package/dist/components/core/FieldBoundary.vue +14 -0
- package/dist/components/core/FieldBoundary.vue.d.ts +15 -0
- package/dist/components/core/FieldMessage.vue +28 -0
- package/dist/components/core/FieldMessage.vue.d.ts +409 -0
- package/dist/components/core/Form.vue +109 -11
- package/dist/components/core/Form.vue.d.ts +45 -6
- package/dist/components/core/FormAlerts.vue +30 -0
- package/dist/components/core/FormAlerts.vue.d.ts +393 -0
- package/dist/components/core/FormField.vue +54 -17
- package/dist/components/core/FormField.vue.d.ts +5 -4
- package/dist/components/core/Icon.vue.d.ts +2 -2
- package/dist/components/core/Input.vue.d.ts +4 -4
- package/dist/components/core/Kbd.vue.d.ts +2 -2
- package/dist/components/core/Root.vue.d.ts +6 -6
- package/dist/components/core/Spinner.vue +13 -1
- package/dist/components/core/Spinner.vue.d.ts +4 -2
- package/dist/components/core/Textarea.vue.d.ts +4 -4
- package/dist/components/core/VisuallyHidden.vue.d.ts +6 -6
- package/dist/components/core/index.d.ts +3 -0
- package/dist/components/core/index.mjs +3 -0
- package/dist/components/data/Avatar.vue.d.ts +2 -2
- package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
- package/dist/components/data/Badge.vue.d.ts +2 -2
- package/dist/components/data/DescriptionList.vue.d.ts +2 -2
- package/dist/components/data/FilterPill.vue +35 -0
- package/dist/components/data/FilterPill.vue.d.ts +445 -0
- package/dist/components/data/FilterPills.vue +100 -27
- package/dist/components/data/FilterPills.vue.d.ts +47 -411
- package/dist/components/data/Pagination.vue.d.ts +4 -4
- package/dist/components/data/SelectionBar.vue +81 -0
- package/dist/components/data/SelectionBar.vue.d.ts +427 -0
- package/dist/components/data/Stat.vue.d.ts +8 -8
- package/dist/components/data/Tag.vue.d.ts +4 -4
- package/dist/components/data/Timeline.vue.d.ts +2 -2
- package/dist/components/data/Tree.vue +245 -21
- package/dist/components/data/Tree.vue.d.ts +40 -10
- package/dist/components/data/index.d.ts +3 -0
- package/dist/components/data/index.mjs +3 -0
- package/dist/components/data/types.d.ts +26 -2
- package/dist/components/feedback/Alert.vue.d.ts +18 -18
- package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
- package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
- package/dist/components/feedback/Meter.vue.d.ts +2 -2
- package/dist/components/feedback/Progress.vue.d.ts +2 -2
- package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
- package/dist/components/feedback/Skeleton.vue.d.ts +3 -3
- package/dist/components/forms/Calendar.vue.d.ts +4 -4
- package/dist/components/forms/CheckboxGroup.vue +2 -1
- package/dist/components/forms/ColorInput.vue.d.ts +6 -6
- package/dist/components/forms/DateInput.vue.d.ts +14 -14
- package/dist/components/forms/DatePicker.vue.d.ts +6 -6
- package/dist/components/forms/FileInput.vue +160 -34
- package/dist/components/forms/FileInput.vue.d.ts +43 -15
- package/dist/components/forms/InputAddon.vue.d.ts +2 -2
- package/dist/components/forms/InputGroup.vue.d.ts +2 -2
- package/dist/components/forms/NumberInput.vue.d.ts +6 -6
- package/dist/components/forms/PasswordInput.vue.d.ts +16 -16
- package/dist/components/forms/PinInput.vue.d.ts +6 -6
- package/dist/components/forms/Radio.vue.d.ts +2 -2
- package/dist/components/forms/RadioGroup.vue +2 -1
- package/dist/components/forms/SegmentedControl.vue +33 -8
- package/dist/components/forms/SegmentedControl.vue.d.ts +15 -7
- package/dist/components/forms/Slider.vue.d.ts +6 -6
- package/dist/components/forms/Switch.vue.d.ts +6 -6
- package/dist/components/forms/TimeInput.vue.d.ts +16 -16
- package/dist/components/forms/types.d.ts +17 -0
- package/dist/components/layout/Accordion.vue +25 -5
- package/dist/components/layout/Accordion.vue.d.ts +11 -8
- package/dist/components/layout/AppShell.vue +1 -1
- package/dist/components/layout/AppShell.vue.d.ts +7 -7
- package/dist/components/layout/Breadcrumbs.vue +28 -20
- package/dist/components/layout/Breadcrumbs.vue.d.ts +18 -3
- package/dist/components/layout/Card.vue +22 -3
- package/dist/components/layout/Card.vue.d.ts +10 -4
- package/dist/components/layout/CopyButton.vue.d.ts +4 -4
- package/dist/components/layout/Grid.vue.d.ts +2 -2
- package/dist/components/layout/NavLink.vue.d.ts +8 -8
- package/dist/components/layout/PageHeader.vue +10 -1
- package/dist/components/layout/PageHeader.vue.d.ts +17 -9
- package/dist/components/layout/Separator.vue.d.ts +2 -2
- package/dist/components/layout/Sidebar.vue.d.ts +2 -2
- package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
- package/dist/components/layout/Stack.vue.d.ts +6 -6
- package/dist/components/layout/Tabs.vue +37 -7
- package/dist/components/layout/Tabs.vue.d.ts +11 -4
- package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
- package/dist/components/layout/Toolbar.vue.d.ts +2 -2
- package/dist/components/layout/types.d.ts +8 -1
- package/dist/components/overlays/CommandPalette.vue +35 -8
- package/dist/components/overlays/CommandPalette.vue.d.ts +273 -497
- package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -6
- package/dist/components/overlays/ConfirmHost.vue +5 -1
- package/dist/components/overlays/ConfirmHost.vue.d.ts +10 -8
- package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
- package/dist/components/overlays/Drawer.vue +4 -2
- package/dist/components/overlays/Drawer.vue.d.ts +8 -6
- package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/overlays/HoverCard.vue +2 -1
- package/dist/components/overlays/HoverCard.vue.d.ts +8 -8
- package/dist/components/overlays/Modal.vue +5 -3
- package/dist/components/overlays/Modal.vue.d.ts +8 -6
- package/dist/components/overlays/Popover.vue +2 -1
- package/dist/components/overlays/Popover.vue.d.ts +8 -8
- package/dist/components/overlays/Toaster.vue.d.ts +4 -4
- package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
- package/dist/components/overlays/types.d.ts +11 -5
- package/dist/components/templates/AccountMenu.vue.d.ts +6 -6
- package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
- package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
- package/dist/components/templates/Brand.vue +34 -5
- package/dist/components/templates/Brand.vue.d.ts +20 -15
- package/dist/components/templates/DashboardLayout.vue +49 -10
- package/dist/components/templates/DashboardLayout.vue.d.ts +332 -553
- package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
- package/dist/components/templates/DetailPage.vue.d.ts +4 -4
- package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
- package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
- package/dist/components/templates/ListPage.vue +17 -11
- package/dist/components/templates/ListPage.vue.d.ts +3 -3
- package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
- package/dist/components/templates/SaveBar.vue.d.ts +4 -4
- package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
- package/dist/components/templates/SettingsModal.vue +5 -2
- package/dist/components/templates/SettingsModal.vue.d.ts +13 -8
- package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
- package/dist/components/templates/SettingsSection.vue.d.ts +12 -8
- package/dist/components/templates/types.d.ts +25 -2
- package/dist/composables/core.d.ts +1 -0
- package/dist/composables/core.mjs +1 -0
- package/dist/composables/useField.d.ts +8 -1
- package/dist/composables/useField.mjs +41 -10
- package/dist/composables/useFieldBoundary.d.ts +2 -0
- package/dist/composables/useFieldBoundary.mjs +9 -0
- package/dist/composables/useFileDrop.d.ts +20 -0
- package/dist/composables/useFileDrop.mjs +115 -7
- package/dist/composables/useForm.d.ts +36 -19
- package/dist/composables/useForm.mjs +258 -51
- package/dist/editor/RichTextEditor.vue +32 -4
- package/dist/editor/RichTextEditor.vue.d.ts +11 -6
- package/dist/editor/rich-text-editor.css +1 -1
- package/dist/editor/types.d.ts +3 -0
- package/dist/grid/GridToolbar.vue.d.ts +4 -4
- package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
- package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
- package/dist/grid/cells/DateCell.vue.d.ts +2 -2
- package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
- package/dist/grid/cells/LinkCell.vue.d.ts +2 -2
- package/dist/internal/core/ButtonElement.d.ts +2 -0
- package/dist/internal/core/ButtonElement.mjs +8 -0
- package/dist/internal/data/tree.d.ts +8 -0
- package/dist/internal/data/tree.mjs +41 -0
- package/dist/internal/forms/files.d.ts +9 -0
- package/dist/internal/forms/files.mjs +32 -1
- package/dist/internal/forms/standard-schema.d.ts +17 -0
- package/dist/internal/forms/standard-schema.mjs +40 -0
- package/dist/internal/keys.d.ts +2 -1
- package/dist/internal/keys.mjs +1 -0
- package/dist/internal/overlays/DialogFrame.vue +17 -7
- package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
- package/dist/internal/overlays/MenuList.vue +2 -0
- package/dist/internal/overlays/MenuList.vue.d.ts +5 -5
- package/dist/internal/overlays/OverlayView.vue +2 -0
- package/dist/internal/overlays/OverlayView.vue.d.ts +14 -12
- package/dist/internal/overlays/dialog.d.ts +4 -1
- package/dist/internal/overlays/dialog.mjs +39 -5
- package/dist/internal/overlays/stack.d.ts +2 -1
- package/dist/locale/en.mjs +19 -2
- package/dist/locale/it.mjs +19 -2
- package/dist/locale/types.d.ts +17 -0
- package/dist/nuxt/module.d.ts +1 -0
- package/dist/nuxt/module.mjs +6 -3
- package/dist/nuxt/runtime/layouts/auth.vue.d.ts +8 -8
- package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +8 -8
- package/dist/styles/base.css +2 -0
- package/dist/styles/core/button.css +1 -13
- package/dist/styles/core/field-message.css +34 -0
- package/dist/styles/core/form-field.css +0 -23
- package/dist/styles/core/form.css +11 -0
- package/dist/styles/core/kbd.css +2 -2
- package/dist/styles/core/spinner.css +19 -0
- package/dist/styles/core.css +1 -0
- package/dist/styles/data/avatar.css +1 -1
- package/dist/styles/data/badge.css +1 -1
- package/dist/styles/data/filter-pills.css +40 -4
- package/dist/styles/data/pagination.css +0 -1
- package/dist/styles/data/selection-bar.css +89 -0
- package/dist/styles/data/stat.css +1 -6
- package/dist/styles/data/table.css +1 -3
- package/dist/styles/data/tag.css +1 -4
- package/dist/styles/data/tree.css +163 -2
- package/dist/styles/data.css +1 -0
- package/dist/styles/feedback/alert.css +0 -1
- package/dist/styles/feedback/empty-state.css +0 -1
- package/dist/styles/forms/calendar.css +1 -1
- package/dist/styles/forms/color-input.css +1 -1
- package/dist/styles/forms/combobox.css +0 -1
- package/dist/styles/forms/date-picker.css +1 -1
- package/dist/styles/forms/file-input.css +17 -1
- package/dist/styles/forms/number-input.css +1 -1
- package/dist/styles/forms/password-input.css +1 -5
- package/dist/styles/forms/segmented.css +8 -0
- package/dist/styles/forms/select.css +1 -1
- package/dist/styles/forms/slider.css +2 -2
- package/dist/styles/forms/switch.css +0 -1
- package/dist/styles/layout/accordion.css +22 -1
- package/dist/styles/layout/app-shell.css +4 -0
- package/dist/styles/layout/breadcrumbs.css +16 -1
- package/dist/styles/layout/card.css +20 -6
- package/dist/styles/layout/copy-button.css +2 -2
- package/dist/styles/layout/nav-link.css +2 -3
- package/dist/styles/layout/sidebar-nav.css +1 -1
- package/dist/styles/layout/sidebar.css +2 -2
- package/dist/styles/layout/tabs.css +65 -3
- package/dist/styles/layout/theme-switch.css +1 -3
- package/dist/styles/overlays/command.css +21 -3
- package/dist/styles/overlays/confirm.css +0 -1
- package/dist/styles/overlays/menu.css +3 -5
- package/dist/styles/overlays/modal.css +38 -0
- package/dist/styles/overlays/toast.css +0 -1
- package/dist/styles/templates/auth-layout.css +0 -1
- package/dist/styles/templates/brand.css +15 -0
- package/dist/styles/templates/empty-page.css +4 -4
- package/dist/styles/templates/form-page.css +1 -1
- package/dist/styles/templates/list-page.css +2 -6
- package/dist/styles/templates/page.css +1 -1
- package/dist/styles/templates/settings-modal.css +2 -3
- package/dist/styles/tokens.css +1 -1
- package/package.json +1 -1
|
@@ -2,13 +2,13 @@ import type { OverlayPlacement } from './types';
|
|
|
2
2
|
declare var __VLS_1: {
|
|
3
3
|
open: boolean;
|
|
4
4
|
close: () => void;
|
|
5
|
-
},
|
|
5
|
+
}, __VLS_9: {
|
|
6
6
|
close: () => void;
|
|
7
7
|
};
|
|
8
8
|
type __VLS_Slots = {} & {
|
|
9
9
|
default?: (props: typeof __VLS_1) => any;
|
|
10
10
|
} & {
|
|
11
|
-
content?: (props: typeof
|
|
11
|
+
content?: (props: typeof __VLS_9) => any;
|
|
12
12
|
};
|
|
13
13
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
14
14
|
placement?: OverlayPlacement;
|
|
@@ -25,7 +25,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
25
25
|
style?: import("vue").StyleValue;
|
|
26
26
|
results?: (string | number) | undefined;
|
|
27
27
|
placeholder?: string | undefined | undefined;
|
|
28
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
29
28
|
class?: import("vue").ClassValue;
|
|
30
29
|
'aria-label'?: string | undefined | undefined;
|
|
31
30
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -137,7 +136,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
137
136
|
'aria-colindex'?: (string | number) | undefined;
|
|
138
137
|
'aria-colspan'?: (string | number) | undefined;
|
|
139
138
|
'aria-controls'?: string | undefined | undefined;
|
|
140
|
-
'aria-current'?: "page" | "
|
|
139
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
141
140
|
'aria-describedby'?: string | undefined | undefined;
|
|
142
141
|
'aria-details'?: string | undefined | undefined;
|
|
143
142
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -174,6 +173,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
174
173
|
'aria-valuemin'?: (string | number) | undefined;
|
|
175
174
|
'aria-valuenow'?: (string | number) | undefined;
|
|
176
175
|
'aria-valuetext'?: string | undefined | undefined;
|
|
176
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
177
177
|
ref_for?: boolean | undefined | undefined;
|
|
178
178
|
ref_key?: string | undefined | undefined;
|
|
179
179
|
accesskey?: string | undefined | undefined;
|
|
@@ -209,7 +209,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
209
209
|
is?: string | undefined | undefined;
|
|
210
210
|
exportparts?: string | undefined;
|
|
211
211
|
part?: string | undefined;
|
|
212
|
-
popover?: (import("
|
|
212
|
+
popover?: (import("../../index.ts").PopoverMode | "" | boolean) | undefined;
|
|
213
213
|
}, {
|
|
214
214
|
show: () => void;
|
|
215
215
|
hide: () => void;
|
|
@@ -231,7 +231,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
231
231
|
style?: import("vue").StyleValue;
|
|
232
232
|
results?: (string | number) | undefined;
|
|
233
233
|
placeholder?: string | undefined | undefined;
|
|
234
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
235
234
|
class?: import("vue").ClassValue;
|
|
236
235
|
'aria-label'?: string | undefined | undefined;
|
|
237
236
|
'aria-hidden'?: (boolean | "true" | "false") | undefined;
|
|
@@ -343,7 +342,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
343
342
|
'aria-colindex'?: (string | number) | undefined;
|
|
344
343
|
'aria-colspan'?: (string | number) | undefined;
|
|
345
344
|
'aria-controls'?: string | undefined | undefined;
|
|
346
|
-
'aria-current'?: "page" | "
|
|
345
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
347
346
|
'aria-describedby'?: string | undefined | undefined;
|
|
348
347
|
'aria-details'?: string | undefined | undefined;
|
|
349
348
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -380,6 +379,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
380
379
|
'aria-valuemin'?: (string | number) | undefined;
|
|
381
380
|
'aria-valuenow'?: (string | number) | undefined;
|
|
382
381
|
'aria-valuetext'?: string | undefined | undefined;
|
|
382
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
383
383
|
ref_for?: boolean | undefined | undefined;
|
|
384
384
|
ref_key?: string | undefined | undefined;
|
|
385
385
|
accesskey?: string | undefined | undefined;
|
|
@@ -415,7 +415,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
415
415
|
is?: string | undefined | undefined;
|
|
416
416
|
exportparts?: string | undefined;
|
|
417
417
|
part?: string | undefined;
|
|
418
|
-
popover?: (import("
|
|
418
|
+
popover?: (import("../../index.ts").PopoverMode | "" | boolean) | undefined;
|
|
419
419
|
}> & Readonly<{
|
|
420
420
|
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
421
421
|
}>, {
|
|
@@ -11,9 +11,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
11
11
|
hotkey?: string | false;
|
|
12
12
|
key?: PropertyKey | undefined;
|
|
13
13
|
style?: import("vue").StyleValue;
|
|
14
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
15
14
|
class?: import("vue").ClassValue;
|
|
16
15
|
to?: string | import("vue").RendererElement | null | undefined;
|
|
16
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
17
17
|
ref_for?: boolean | undefined;
|
|
18
18
|
ref_key?: string | undefined;
|
|
19
19
|
disabled?: boolean;
|
|
@@ -77,7 +77,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
77
77
|
'aria-colindex'?: (string | number) | undefined;
|
|
78
78
|
'aria-colspan'?: (string | number) | undefined;
|
|
79
79
|
'aria-controls'?: string | undefined | undefined;
|
|
80
|
-
'aria-current'?: "page" | "
|
|
80
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
81
81
|
'aria-describedby'?: string | undefined | undefined;
|
|
82
82
|
'aria-details'?: string | undefined | undefined;
|
|
83
83
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -222,9 +222,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
222
222
|
hotkey?: string | false;
|
|
223
223
|
key?: PropertyKey | undefined;
|
|
224
224
|
style?: import("vue").StyleValue;
|
|
225
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
226
225
|
class?: import("vue").ClassValue;
|
|
227
226
|
to?: string | import("vue").RendererElement | null | undefined;
|
|
227
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
228
228
|
ref_for?: boolean | undefined;
|
|
229
229
|
ref_key?: string | undefined;
|
|
230
230
|
disabled?: boolean;
|
|
@@ -288,7 +288,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
288
288
|
'aria-colindex'?: (string | number) | undefined;
|
|
289
289
|
'aria-colspan'?: (string | number) | undefined;
|
|
290
290
|
'aria-controls'?: string | undefined | undefined;
|
|
291
|
-
'aria-current'?: "page" | "
|
|
291
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
292
292
|
'aria-describedby'?: string | undefined | undefined;
|
|
293
293
|
'aria-details'?: string | undefined | undefined;
|
|
294
294
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -69,7 +69,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
69
69
|
'aria-colindex'?: (string | number) | undefined;
|
|
70
70
|
'aria-colspan'?: (string | number) | undefined;
|
|
71
71
|
'aria-controls'?: string | undefined | undefined;
|
|
72
|
-
'aria-current'?: "page" | "
|
|
72
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
73
73
|
'aria-describedby'?: string | undefined | undefined;
|
|
74
74
|
'aria-details'?: string | undefined | undefined;
|
|
75
75
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -270,7 +270,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
270
270
|
'aria-colindex'?: (string | number) | undefined;
|
|
271
271
|
'aria-colspan'?: (string | number) | undefined;
|
|
272
272
|
'aria-controls'?: string | undefined | undefined;
|
|
273
|
-
'aria-current'?: "page" | "
|
|
273
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
274
274
|
'aria-describedby'?: string | undefined | undefined;
|
|
275
275
|
'aria-details'?: string | undefined | undefined;
|
|
276
276
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -2,7 +2,9 @@ import type { LinkTarget } from '../core/types';
|
|
|
2
2
|
import type { IconName } from '../../composables/useIcons';
|
|
3
3
|
import type { Placement, Side } from '../../internal/floating/position';
|
|
4
4
|
export type { Placement as OverlayPlacement, Side as OverlaySide };
|
|
5
|
-
export type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'fit';
|
|
5
|
+
export type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'fit' | 'fullscreen';
|
|
6
|
+
export type DialogCloseReason = 'escape' | 'backdrop' | 'close-button' | 'action';
|
|
7
|
+
export type DialogBeforeClose = (reason: DialogCloseReason) => boolean | Promise<boolean>;
|
|
6
8
|
export type ToasterPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
7
9
|
export interface ToasterOptions {
|
|
8
10
|
position?: ToasterPosition;
|
|
@@ -58,7 +60,7 @@ export interface MenuSeparator {
|
|
|
58
60
|
export type MenuItem = MenuActionItem | MenuCheckboxItem | MenuRadioItem;
|
|
59
61
|
export type MenuEntry = MenuItem | MenuLabel | MenuSeparator;
|
|
60
62
|
export type MenuItems = MenuEntry[] | MenuEntry[][];
|
|
61
|
-
export interface CommandItem {
|
|
63
|
+
export interface CommandItem<T = unknown> {
|
|
62
64
|
id: string;
|
|
63
65
|
label: string;
|
|
64
66
|
description?: string;
|
|
@@ -68,10 +70,14 @@ export interface CommandItem {
|
|
|
68
70
|
to?: LinkTarget;
|
|
69
71
|
href?: string;
|
|
70
72
|
disabled?: boolean;
|
|
71
|
-
|
|
73
|
+
data?: T;
|
|
74
|
+
onSelect?: (item: CommandItem<T>) => void;
|
|
72
75
|
}
|
|
73
|
-
export interface CommandGroup {
|
|
76
|
+
export interface CommandGroup<T = unknown> {
|
|
74
77
|
id: string;
|
|
75
78
|
label?: string;
|
|
76
|
-
|
|
79
|
+
description?: string;
|
|
80
|
+
items: CommandItem<T>[];
|
|
77
81
|
}
|
|
82
|
+
export type CommandSearch<T = unknown> = (query: string, signal: AbortSignal) => CommandGroup<T>[] | Promise<CommandGroup<T>[]>;
|
|
83
|
+
export type CommandEmptyText = string | ((query: string) => string);
|
|
@@ -17,8 +17,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
17
17
|
style?: import("vue").StyleValue;
|
|
18
18
|
results?: (string | number) | undefined;
|
|
19
19
|
placeholder?: string | undefined | undefined;
|
|
20
|
-
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
21
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
22
20
|
class?: import("vue").ClassValue;
|
|
23
21
|
role?: string | undefined | undefined;
|
|
24
22
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -120,6 +118,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
120
118
|
color?: string | undefined | undefined;
|
|
121
119
|
id?: string | undefined | undefined;
|
|
122
120
|
lang?: string | undefined | undefined;
|
|
121
|
+
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
123
122
|
tabindex?: (string | number) | undefined;
|
|
124
123
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
125
124
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
@@ -130,7 +129,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
130
129
|
'aria-colindex'?: (string | number) | undefined;
|
|
131
130
|
'aria-colspan'?: (string | number) | undefined;
|
|
132
131
|
'aria-controls'?: string | undefined | undefined;
|
|
133
|
-
'aria-current'?: "page" | "
|
|
132
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
134
133
|
'aria-describedby'?: string | undefined | undefined;
|
|
135
134
|
'aria-details'?: string | undefined | undefined;
|
|
136
135
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -167,6 +166,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
167
166
|
'aria-valuemin'?: (string | number) | undefined;
|
|
168
167
|
'aria-valuenow'?: (string | number) | undefined;
|
|
169
168
|
'aria-valuetext'?: string | undefined | undefined;
|
|
169
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
170
170
|
ref_for?: boolean | undefined | undefined;
|
|
171
171
|
ref_key?: string | undefined | undefined;
|
|
172
172
|
accesskey?: string | undefined | undefined;
|
|
@@ -231,8 +231,6 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
231
231
|
style?: import("vue").StyleValue;
|
|
232
232
|
results?: (string | number) | undefined;
|
|
233
233
|
placeholder?: string | undefined | undefined;
|
|
234
|
-
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
235
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
236
234
|
class?: import("vue").ClassValue;
|
|
237
235
|
role?: string | undefined | undefined;
|
|
238
236
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -334,6 +332,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
334
332
|
color?: string | undefined | undefined;
|
|
335
333
|
id?: string | undefined | undefined;
|
|
336
334
|
lang?: string | undefined | undefined;
|
|
335
|
+
type?: "submit" | "reset" | "button" | undefined | undefined;
|
|
337
336
|
tabindex?: (string | number) | undefined;
|
|
338
337
|
'aria-activedescendant'?: string | undefined | undefined;
|
|
339
338
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
@@ -344,7 +343,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
344
343
|
'aria-colindex'?: (string | number) | undefined;
|
|
345
344
|
'aria-colspan'?: (string | number) | undefined;
|
|
346
345
|
'aria-controls'?: string | undefined | undefined;
|
|
347
|
-
'aria-current'?: "page" | "
|
|
346
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
348
347
|
'aria-describedby'?: string | undefined | undefined;
|
|
349
348
|
'aria-details'?: string | undefined | undefined;
|
|
350
349
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -381,6 +380,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
381
380
|
'aria-valuemin'?: (string | number) | undefined;
|
|
382
381
|
'aria-valuenow'?: (string | number) | undefined;
|
|
383
382
|
'aria-valuetext'?: string | undefined | undefined;
|
|
383
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
384
384
|
ref_for?: boolean | undefined | undefined;
|
|
385
385
|
ref_key?: string | undefined | undefined;
|
|
386
386
|
accesskey?: string | undefined | undefined;
|
|
@@ -66,7 +66,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
66
66
|
'aria-colindex'?: (string | number) | undefined;
|
|
67
67
|
'aria-colspan'?: (string | number) | undefined;
|
|
68
68
|
'aria-controls'?: string | undefined | undefined;
|
|
69
|
-
'aria-current'?: "page" | "
|
|
69
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
70
70
|
'aria-describedby'?: string | undefined | undefined;
|
|
71
71
|
'aria-details'?: string | undefined | undefined;
|
|
72
72
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -266,7 +266,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
266
266
|
'aria-colindex'?: (string | number) | undefined;
|
|
267
267
|
'aria-colspan'?: (string | number) | undefined;
|
|
268
268
|
'aria-controls'?: string | undefined | undefined;
|
|
269
|
-
'aria-current'?: "page" | "
|
|
269
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
270
270
|
'aria-describedby'?: string | undefined | undefined;
|
|
271
271
|
'aria-details'?: string | undefined | undefined;
|
|
272
272
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -89,7 +89,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
89
89
|
'aria-colindex'?: (string | number) | undefined;
|
|
90
90
|
'aria-colspan'?: (string | number) | undefined;
|
|
91
91
|
'aria-controls'?: string | undefined | undefined;
|
|
92
|
-
'aria-current'?: "page" | "
|
|
92
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
93
93
|
'aria-describedby'?: string | undefined | undefined;
|
|
94
94
|
'aria-details'?: string | undefined | undefined;
|
|
95
95
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -296,7 +296,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
296
296
|
'aria-colindex'?: (string | number) | undefined;
|
|
297
297
|
'aria-colspan'?: (string | number) | undefined;
|
|
298
298
|
'aria-controls'?: string | undefined | undefined;
|
|
299
|
-
'aria-current'?: "page" | "
|
|
299
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
300
300
|
'aria-describedby'?: string | undefined | undefined;
|
|
301
301
|
'aria-details'?: string | undefined | undefined;
|
|
302
302
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -6,7 +6,22 @@
|
|
|
6
6
|
class="k-brand"
|
|
7
7
|
:class="[`k-brand-${size}`, { 'is-link': isLink, 'is-accent': accent }]"
|
|
8
8
|
>
|
|
9
|
-
<
|
|
9
|
+
<span v-if="$slots.logo" class="k-brand-logo is-slot" v-bind="logoAttrs">
|
|
10
|
+
<slot name="logo" />
|
|
11
|
+
</span>
|
|
12
|
+
<span
|
|
13
|
+
v-else-if="logoSvg !== void 0"
|
|
14
|
+
class="k-brand-logo is-svg"
|
|
15
|
+
v-bind="logoAttrs"
|
|
16
|
+
v-html="logoSvg"
|
|
17
|
+
/>
|
|
18
|
+
<component :is="logo" v-else-if="logoComponent" class="k-brand-logo" v-bind="logoAttrs" />
|
|
19
|
+
<img
|
|
20
|
+
v-else-if="logo"
|
|
21
|
+
class="k-brand-logo"
|
|
22
|
+
:src="logoUrl"
|
|
23
|
+
:alt="showText ? '' : name ?? ''"
|
|
24
|
+
/>
|
|
10
25
|
<span v-else class="k-brand-mark" aria-hidden="true">
|
|
11
26
|
<slot name="mark">
|
|
12
27
|
<Icon v-if="icon" :name="icon" />
|
|
@@ -34,25 +49,39 @@ const props = defineProps({
|
|
|
34
49
|
name: { type: String, required: false },
|
|
35
50
|
subtitle: { type: String, required: false },
|
|
36
51
|
icon: { type: null, required: false },
|
|
37
|
-
logo: { type:
|
|
52
|
+
logo: { type: null, required: false },
|
|
38
53
|
to: { type: [String, Object], required: false },
|
|
39
54
|
href: { type: String, required: false },
|
|
40
55
|
size: { type: String, required: false, default: "md" },
|
|
41
56
|
accent: { type: Boolean, required: false },
|
|
42
|
-
hideText: { type: Boolean, required: false }
|
|
57
|
+
hideText: { type: Boolean, required: false },
|
|
58
|
+
showName: { type: Boolean, required: false }
|
|
43
59
|
});
|
|
44
60
|
const slots = useSlots();
|
|
45
61
|
const { resolveLink } = useLinkResolver();
|
|
46
62
|
const link = computed(() => resolveLink(props));
|
|
47
63
|
const isLink = computed(() => link.value !== null);
|
|
48
64
|
const tag = computed(() => link.value?.is ?? "span");
|
|
65
|
+
const hasLogo = computed(() => Boolean(props.logo || slots.logo));
|
|
66
|
+
const logoSvg = computed(
|
|
67
|
+
() => typeof props.logo === "string" && props.logo.trimStart().startsWith("<svg") ? props.logo : void 0
|
|
68
|
+
);
|
|
69
|
+
const logoUrl = computed(
|
|
70
|
+
() => typeof props.logo === "string" && logoSvg.value === void 0 ? props.logo : void 0
|
|
71
|
+
);
|
|
72
|
+
const logoComponent = computed(
|
|
73
|
+
() => props.logo && typeof props.logo !== "string" ? props.logo : void 0
|
|
74
|
+
);
|
|
75
|
+
const logoAttrs = computed(
|
|
76
|
+
() => showText.value || !props.name ? { "aria-hidden": "true" } : { role: "img", "aria-label": props.name }
|
|
77
|
+
);
|
|
49
78
|
const linkAttrs = computed(() => {
|
|
50
79
|
if (!link.value) return {};
|
|
51
|
-
const label = showText.value ||
|
|
80
|
+
const label = showText.value || hasLogo.value ? void 0 : props.name;
|
|
52
81
|
return { ...link.value.attrs, "aria-label": label };
|
|
53
82
|
});
|
|
54
83
|
const initial = computed(() => (props.name ?? "").trim().charAt(0).toUpperCase());
|
|
55
84
|
const showText = computed(
|
|
56
|
-
() => !props.hideText && !props.
|
|
85
|
+
() => !props.hideText && (!hasLogo.value || props.showName) && Boolean(props.name || slots.default)
|
|
57
86
|
);
|
|
58
87
|
</script>
|
|
@@ -1,24 +1,28 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
1
2
|
import type { IconName } from '../../composables/useIcons';
|
|
2
|
-
import type { BrandSize } from './types';
|
|
3
|
+
import type { BrandLogo, BrandSize } from './types';
|
|
3
4
|
import type { LinkTarget } from '../core/types';
|
|
4
|
-
declare var __VLS_7: {}, __VLS_14: {},
|
|
5
|
+
declare var __VLS_7: {}, __VLS_14: {}, __VLS_21: {}, __VLS_23: {};
|
|
5
6
|
type __VLS_Slots = {} & {
|
|
6
|
-
|
|
7
|
+
logo?: (props: typeof __VLS_7) => any;
|
|
7
8
|
} & {
|
|
8
|
-
|
|
9
|
+
mark?: (props: typeof __VLS_14) => any;
|
|
9
10
|
} & {
|
|
10
|
-
|
|
11
|
+
default?: (props: typeof __VLS_21) => any;
|
|
12
|
+
} & {
|
|
13
|
+
subtitle?: (props: typeof __VLS_23) => any;
|
|
11
14
|
};
|
|
12
15
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
13
16
|
name?: string;
|
|
14
17
|
subtitle?: string;
|
|
15
18
|
icon?: IconName;
|
|
16
|
-
logo?:
|
|
19
|
+
logo?: BrandLogo;
|
|
17
20
|
to?: LinkTarget;
|
|
18
21
|
href?: string | undefined;
|
|
19
22
|
size?: BrandSize;
|
|
20
23
|
accent?: boolean;
|
|
21
24
|
hideText?: boolean;
|
|
25
|
+
showName?: boolean;
|
|
22
26
|
inlist?: any;
|
|
23
27
|
download?: any;
|
|
24
28
|
key?: PropertyKey | undefined;
|
|
@@ -28,9 +32,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
28
32
|
results?: (string | number) | undefined;
|
|
29
33
|
placeholder?: string | undefined;
|
|
30
34
|
bind?: Record<string, unknown>;
|
|
31
|
-
type?: string | undefined;
|
|
32
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
33
|
-
target?: string | undefined;
|
|
34
35
|
class?: import("vue").ClassValue;
|
|
35
36
|
role?: string | undefined;
|
|
36
37
|
'aria-label'?: string | undefined;
|
|
@@ -134,6 +135,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
134
135
|
id?: string | undefined;
|
|
135
136
|
lang?: string | undefined;
|
|
136
137
|
media?: string | undefined;
|
|
138
|
+
target?: string | undefined;
|
|
139
|
+
type?: string | undefined;
|
|
137
140
|
tabindex?: (string | number) | undefined;
|
|
138
141
|
'aria-activedescendant'?: string | undefined;
|
|
139
142
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
@@ -181,6 +184,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
181
184
|
'aria-valuemin'?: (string | number) | undefined;
|
|
182
185
|
'aria-valuenow'?: (string | number) | undefined;
|
|
183
186
|
'aria-valuetext'?: string | undefined;
|
|
187
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
184
188
|
ref_for?: boolean | undefined;
|
|
185
189
|
ref_key?: string | undefined;
|
|
186
190
|
accesskey?: string | undefined;
|
|
@@ -220,23 +224,24 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
220
224
|
hreflang?: string | undefined;
|
|
221
225
|
ping?: string | undefined;
|
|
222
226
|
referrerpolicy?: ("" | "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") | undefined;
|
|
223
|
-
as?: string | import("vue").Component;
|
|
224
227
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
225
228
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
226
229
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
227
230
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
228
231
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
229
232
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
233
|
+
as?: string | Component;
|
|
230
234
|
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
231
235
|
name?: string;
|
|
232
236
|
subtitle?: string;
|
|
233
237
|
icon?: IconName;
|
|
234
|
-
logo?:
|
|
238
|
+
logo?: BrandLogo;
|
|
235
239
|
to?: LinkTarget;
|
|
236
240
|
href?: string | undefined;
|
|
237
241
|
size?: BrandSize;
|
|
238
242
|
accent?: boolean;
|
|
239
243
|
hideText?: boolean;
|
|
244
|
+
showName?: boolean;
|
|
240
245
|
inlist?: any;
|
|
241
246
|
download?: any;
|
|
242
247
|
key?: PropertyKey | undefined;
|
|
@@ -246,9 +251,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
246
251
|
results?: (string | number) | undefined;
|
|
247
252
|
placeholder?: string | undefined;
|
|
248
253
|
bind?: Record<string, unknown>;
|
|
249
|
-
type?: string | undefined;
|
|
250
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
251
|
-
target?: string | undefined;
|
|
252
254
|
class?: import("vue").ClassValue;
|
|
253
255
|
role?: string | undefined;
|
|
254
256
|
'aria-label'?: string | undefined;
|
|
@@ -352,6 +354,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
352
354
|
id?: string | undefined;
|
|
353
355
|
lang?: string | undefined;
|
|
354
356
|
media?: string | undefined;
|
|
357
|
+
target?: string | undefined;
|
|
358
|
+
type?: string | undefined;
|
|
355
359
|
tabindex?: (string | number) | undefined;
|
|
356
360
|
'aria-activedescendant'?: string | undefined;
|
|
357
361
|
'aria-atomic'?: (boolean | "true" | "false") | undefined;
|
|
@@ -399,6 +403,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
399
403
|
'aria-valuemin'?: (string | number) | undefined;
|
|
400
404
|
'aria-valuenow'?: (string | number) | undefined;
|
|
401
405
|
'aria-valuetext'?: string | undefined;
|
|
406
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
402
407
|
ref_for?: boolean | undefined;
|
|
403
408
|
ref_key?: string | undefined;
|
|
404
409
|
accesskey?: string | undefined;
|
|
@@ -438,13 +443,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
438
443
|
hreflang?: string | undefined;
|
|
439
444
|
ping?: string | undefined;
|
|
440
445
|
referrerpolicy?: ("" | "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") | undefined;
|
|
441
|
-
as?: string | import("vue").Component;
|
|
442
446
|
onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
443
447
|
onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
444
448
|
onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
445
449
|
onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
|
|
446
450
|
onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
447
451
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
452
|
+
as?: string | Component;
|
|
448
453
|
}> & Readonly<{}>, {
|
|
449
454
|
size: BrandSize;
|
|
450
455
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
:subtitle="brandSubtitle"
|
|
29
29
|
:icon="brandIcon"
|
|
30
30
|
:logo="brandLogo"
|
|
31
|
+
:show-name="brandShowName"
|
|
31
32
|
:to="brandTo"
|
|
32
33
|
/>
|
|
33
34
|
</slot>
|
|
@@ -38,10 +39,25 @@
|
|
|
38
39
|
v-model:open="searchOpen"
|
|
39
40
|
:groups="commandGroups"
|
|
40
41
|
:trigger-label="searchLabel"
|
|
41
|
-
:placeholder="searchPlaceholderText"
|
|
42
42
|
:shortcut="searchShortcut"
|
|
43
43
|
class="k-dashboard-search"
|
|
44
|
-
|
|
44
|
+
v-bind="searchProps"
|
|
45
|
+
:search="searchFunction"
|
|
46
|
+
:placeholder="searchProps?.placeholder ?? searchPlaceholderText"
|
|
47
|
+
>
|
|
48
|
+
<template v-if="$slots['search-item']" #item="scope">
|
|
49
|
+
<slot name="search-item" v-bind="scope" />
|
|
50
|
+
</template>
|
|
51
|
+
<template v-if="$slots['search-empty']" #empty="scope">
|
|
52
|
+
<slot name="search-empty" v-bind="scope" />
|
|
53
|
+
</template>
|
|
54
|
+
<template v-if="$slots['search-group-label']" #group-label="scope">
|
|
55
|
+
<slot name="search-group-label" v-bind="scope" />
|
|
56
|
+
</template>
|
|
57
|
+
<template v-if="$slots['search-after-results']" #after-results="scope">
|
|
58
|
+
<slot name="search-after-results" v-bind="scope" />
|
|
59
|
+
</template>
|
|
60
|
+
</CommandPalette>
|
|
45
61
|
</slot>
|
|
46
62
|
</template>
|
|
47
63
|
<slot name="sidebar" :collapsed="isCollapsed">
|
|
@@ -90,6 +106,7 @@
|
|
|
90
106
|
:name="brandName"
|
|
91
107
|
:icon="brandIcon"
|
|
92
108
|
:logo="brandLogo"
|
|
109
|
+
:show-name="brandShowName"
|
|
93
110
|
:to="brandTo"
|
|
94
111
|
size="sm"
|
|
95
112
|
/>
|
|
@@ -126,6 +143,9 @@
|
|
|
126
143
|
:title="settingsTitleText"
|
|
127
144
|
:on-sign-out="onSignOut"
|
|
128
145
|
>
|
|
146
|
+
<template v-if="$slots['settings-account-fields']" #account-fields="scope">
|
|
147
|
+
<slot name="settings-account-fields" v-bind="scope" />
|
|
148
|
+
</template>
|
|
129
149
|
<template v-for="entry in settingsSlots" :key="entry.source" #[entry.target]="scope">
|
|
130
150
|
<slot :name="entry.source" v-bind="scope" />
|
|
131
151
|
</template>
|
|
@@ -135,9 +155,10 @@
|
|
|
135
155
|
</template>
|
|
136
156
|
|
|
137
157
|
<script setup>
|
|
138
|
-
import { computed, ref,
|
|
158
|
+
import { computed, ref, useTemplateRef } from "vue";
|
|
139
159
|
import { useLocale } from "../../composables/useLocale";
|
|
140
160
|
import { navCommands, toNavSections } from "../../internal/layout/navigation";
|
|
161
|
+
import { matchesSearch } from "../../internal/core/text";
|
|
141
162
|
import AppShell from "../layout/AppShell.vue";
|
|
142
163
|
import Breadcrumbs from "../layout/Breadcrumbs.vue";
|
|
143
164
|
import Sidebar from "../layout/Sidebar.vue";
|
|
@@ -154,7 +175,8 @@ const props = defineProps({
|
|
|
154
175
|
brandName: { type: String, required: false },
|
|
155
176
|
brandSubtitle: { type: String, required: false },
|
|
156
177
|
brandIcon: { type: null, required: false },
|
|
157
|
-
brandLogo: { type:
|
|
178
|
+
brandLogo: { type: null, required: false },
|
|
179
|
+
brandShowName: { type: Boolean, required: false },
|
|
158
180
|
brandTo: { type: [String, Object], required: false, default: "/" },
|
|
159
181
|
account: { type: Object, required: false },
|
|
160
182
|
accountAction: { type: String, required: false, default: "settings" },
|
|
@@ -163,7 +185,9 @@ const props = defineProps({
|
|
|
163
185
|
settingsTitle: { type: String, required: false },
|
|
164
186
|
onSignOut: { type: Function, required: false },
|
|
165
187
|
breadcrumbs: { type: Array, required: false },
|
|
166
|
-
search: { type: [Boolean, Array], required: false },
|
|
188
|
+
search: { type: [Boolean, Array, Function], required: false },
|
|
189
|
+
searchProps: { type: Object, required: false },
|
|
190
|
+
searchNavigation: { type: Boolean, required: false, default: true },
|
|
167
191
|
searchLabel: { type: String, required: false },
|
|
168
192
|
searchPlaceholder: { type: String, required: false },
|
|
169
193
|
searchShortcut: { type: [String, Boolean], required: false, default: "mod+k" },
|
|
@@ -184,6 +208,7 @@ const props = defineProps({
|
|
|
184
208
|
themeLabel: { type: String, required: false }
|
|
185
209
|
});
|
|
186
210
|
const emit = defineEmits(["accountSelect"]);
|
|
211
|
+
const slots = defineSlots();
|
|
187
212
|
const collapsed = defineModel("collapsed", { type: Boolean, ...{ default: false } });
|
|
188
213
|
const open = defineModel("open", { type: Boolean, ...{ default: false } });
|
|
189
214
|
const settingsOpen = defineModel("settingsOpen", { type: Boolean, ...{ default: false } });
|
|
@@ -196,7 +221,6 @@ const searchPlaceholderText = computed(
|
|
|
196
221
|
const navigationGroupLabel = computed(
|
|
197
222
|
() => props.searchNavigationLabel ?? t("dashboardLayout.pages")
|
|
198
223
|
);
|
|
199
|
-
const slots = useSlots();
|
|
200
224
|
const shell = useTemplateRef("shell");
|
|
201
225
|
const searchOpen = ref(false);
|
|
202
226
|
const hasDesktopTopbar = computed(
|
|
@@ -212,14 +236,29 @@ const hasSidebarFooter = computed(
|
|
|
212
236
|
const hasSettings = computed(
|
|
213
237
|
() => props.accountAction === "settings" && Boolean(props.account || props.settingsSections)
|
|
214
238
|
);
|
|
215
|
-
const
|
|
239
|
+
const SETTINGS_SLOT_PATTERN = /^settings-(section|actions)-./;
|
|
216
240
|
const settingsSlots = computed(
|
|
217
|
-
() => Object.keys(slots).filter((name) =>
|
|
241
|
+
() => Object.keys(slots).filter((name) => SETTINGS_SLOT_PATTERN.test(name)).map((name) => ({
|
|
218
242
|
source: name,
|
|
219
|
-
target: name.slice(
|
|
243
|
+
target: name.slice("settings-".length)
|
|
220
244
|
}))
|
|
221
245
|
);
|
|
222
|
-
const navigationCommands = computed(
|
|
246
|
+
const navigationCommands = computed(
|
|
247
|
+
() => navCommands(toNavSections(props.navigation))
|
|
248
|
+
);
|
|
249
|
+
const searchFunction = computed(() => {
|
|
250
|
+
const search = props.search;
|
|
251
|
+
if (typeof search !== "function") return void 0;
|
|
252
|
+
if (!props.searchNavigation) return search;
|
|
253
|
+
return async (query, signal) => {
|
|
254
|
+
const groups = await search(query, signal);
|
|
255
|
+
const items = navigationCommands.value.filter(
|
|
256
|
+
(item) => matchesSearch([item.label, item.description, ...item.keywords ?? []], query)
|
|
257
|
+
);
|
|
258
|
+
if (!items.length) return groups;
|
|
259
|
+
return [{ id: "navigation", label: navigationGroupLabel.value, items }, ...groups];
|
|
260
|
+
};
|
|
261
|
+
});
|
|
223
262
|
const commandGroups = computed(() => {
|
|
224
263
|
const groups = [];
|
|
225
264
|
if (navigationCommands.value.length)
|