@xleddyl/443-components-vue 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -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/FieldMessage.vue +28 -0
- package/dist/components/core/FieldMessage.vue.d.ts +409 -0
- package/dist/components/core/Form.vue +22 -3
- package/dist/components/core/Form.vue.d.ts +18 -4
- package/dist/components/core/FormField.vue +37 -15
- 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 +1 -0
- package/dist/components/core/index.mjs +1 -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 +49 -21
- package/dist/components/data/FilterPills.vue.d.ts +22 -5
- package/dist/components/data/Pagination.vue.d.ts +4 -4
- package/dist/components/data/SelectionBar.vue +78 -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 +237 -18
- package/dist/components/data/Tree.vue.d.ts +37 -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 +19 -0
- 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/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 +80 -26
- package/dist/components/forms/FileInput.vue.d.ts +21 -11
- 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/SegmentedControl.vue +32 -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 +14 -0
- package/dist/components/layout/Accordion.vue +25 -5
- package/dist/components/layout/Accordion.vue.d.ts +8 -5
- package/dist/components/layout/AppShell.vue.d.ts +5 -5
- 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 +27 -6
- package/dist/components/layout/Tabs.vue.d.ts +7 -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 +7 -1
- package/dist/components/overlays/CommandPalette.vue +25 -4
- package/dist/components/overlays/CommandPalette.vue.d.ts +23 -9
- 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 +6 -6
- 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 +6 -6
- 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 +4 -1
- 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 +40 -4
- package/dist/components/templates/DashboardLayout.vue.d.ts +34 -22
- 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 +16 -10
- 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 +24 -1
- package/dist/composables/core.d.ts +1 -0
- package/dist/composables/core.mjs +1 -0
- package/dist/composables/useField.d.ts +2 -0
- package/dist/composables/useField.mjs +5 -2
- package/dist/composables/useFieldBoundary.d.ts +1 -0
- package/dist/composables/useFieldBoundary.mjs +5 -0
- package/dist/composables/useFileDrop.d.ts +7 -0
- package/dist/composables/useFileDrop.mjs +114 -7
- package/dist/composables/useForm.d.ts +32 -19
- package/dist/composables/useForm.mjs +212 -45
- package/dist/editor/RichTextEditor.vue +30 -3
- 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/data/tree.d.ts +8 -0
- package/dist/internal/data/tree.mjs +41 -0
- package/dist/internal/forms/FormAlerts.vue +25 -0
- package/dist/internal/forms/FormAlerts.vue.d.ts +393 -0
- package/dist/internal/forms/files.d.ts +2 -0
- package/dist/internal/forms/files.mjs +8 -1
- package/dist/internal/forms/standard-schema.d.ts +17 -0
- package/dist/internal/forms/standard-schema.mjs +40 -0
- package/dist/internal/overlays/DialogFrame.vue +17 -7
- package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
- package/dist/internal/overlays/FieldBoundary.d.ts +4 -0
- package/dist/internal/overlays/FieldBoundary.mjs +9 -0
- 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 +17 -2
- package/dist/locale/it.mjs +17 -2
- package/dist/locale/types.d.ts +15 -0
- package/dist/nuxt/module.d.ts +5 -4
- package/dist/nuxt/module.mjs +9 -6
- 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 +7 -0
- 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/badge.css +1 -1
- package/dist/styles/data/filter-pills.css +40 -3
- package/dist/styles/data/selection-bar.css +85 -0
- package/dist/styles/data/tree.css +156 -1
- package/dist/styles/data.css +1 -0
- package/dist/styles/forms/calendar.css +1 -1
- package/dist/styles/forms/file-input.css +8 -0
- 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/layout/accordion.css +16 -0
- package/dist/styles/layout/app-shell.css +4 -0
- package/dist/styles/layout/breadcrumbs.css +16 -1
- package/dist/styles/layout/card.css +19 -1
- package/dist/styles/layout/nav-link.css +1 -1
- package/dist/styles/layout/sidebar.css +1 -1
- package/dist/styles/layout/tabs.css +43 -1
- package/dist/styles/overlays/command.css +20 -2
- package/dist/styles/overlays/menu.css +1 -1
- package/dist/styles/overlays/modal.css +38 -0
- package/dist/styles/templates/brand.css +15 -0
- package/dist/styles/templates/empty-page.css +1 -1
- package/dist/styles/templates/list-page.css +2 -6
- package/dist/styles/templates/settings-modal.css +2 -2
- package/package.json +1 -1
|
@@ -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,20 @@
|
|
|
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
|
|
49
|
+
v-for="entry in searchSlots"
|
|
50
|
+
:key="entry.source"
|
|
51
|
+
#[entry.target]="scope"
|
|
52
|
+
>
|
|
53
|
+
<slot :name="entry.source" v-bind="scope" />
|
|
54
|
+
</template>
|
|
55
|
+
</CommandPalette>
|
|
45
56
|
</slot>
|
|
46
57
|
</template>
|
|
47
58
|
<slot name="sidebar" :collapsed="isCollapsed">
|
|
@@ -90,6 +101,7 @@
|
|
|
90
101
|
:name="brandName"
|
|
91
102
|
:icon="brandIcon"
|
|
92
103
|
:logo="brandLogo"
|
|
104
|
+
:show-name="brandShowName"
|
|
93
105
|
:to="brandTo"
|
|
94
106
|
size="sm"
|
|
95
107
|
/>
|
|
@@ -138,6 +150,7 @@
|
|
|
138
150
|
import { computed, ref, useSlots, useTemplateRef } from "vue";
|
|
139
151
|
import { useLocale } from "../../composables/useLocale";
|
|
140
152
|
import { navCommands, toNavSections } from "../../internal/layout/navigation";
|
|
153
|
+
import { matchesSearch } from "../../internal/core/text";
|
|
141
154
|
import AppShell from "../layout/AppShell.vue";
|
|
142
155
|
import Breadcrumbs from "../layout/Breadcrumbs.vue";
|
|
143
156
|
import Sidebar from "../layout/Sidebar.vue";
|
|
@@ -154,7 +167,8 @@ const props = defineProps({
|
|
|
154
167
|
brandName: { type: String, required: false },
|
|
155
168
|
brandSubtitle: { type: String, required: false },
|
|
156
169
|
brandIcon: { type: null, required: false },
|
|
157
|
-
brandLogo: { type:
|
|
170
|
+
brandLogo: { type: null, required: false },
|
|
171
|
+
brandShowName: { type: Boolean, required: false },
|
|
158
172
|
brandTo: { type: [String, Object], required: false, default: "/" },
|
|
159
173
|
account: { type: Object, required: false },
|
|
160
174
|
accountAction: { type: String, required: false, default: "settings" },
|
|
@@ -163,7 +177,9 @@ const props = defineProps({
|
|
|
163
177
|
settingsTitle: { type: String, required: false },
|
|
164
178
|
onSignOut: { type: Function, required: false },
|
|
165
179
|
breadcrumbs: { type: Array, required: false },
|
|
166
|
-
search: { type: [Boolean, Array], required: false },
|
|
180
|
+
search: { type: [Boolean, Array, Function], required: false },
|
|
181
|
+
searchProps: { type: Object, required: false },
|
|
182
|
+
searchNavigation: { type: Boolean, required: false, default: true },
|
|
167
183
|
searchLabel: { type: String, required: false },
|
|
168
184
|
searchPlaceholder: { type: String, required: false },
|
|
169
185
|
searchShortcut: { type: [String, Boolean], required: false, default: "mod+k" },
|
|
@@ -219,7 +235,27 @@ const settingsSlots = computed(
|
|
|
219
235
|
target: name.slice(SETTINGS_SLOT_PREFIX.length)
|
|
220
236
|
}))
|
|
221
237
|
);
|
|
238
|
+
const SEARCH_SLOT_PREFIX = "search-";
|
|
239
|
+
const searchSlots = computed(
|
|
240
|
+
() => Object.keys(slots).filter((name) => name.startsWith(SEARCH_SLOT_PREFIX)).map((name) => ({
|
|
241
|
+
source: name,
|
|
242
|
+
target: name.slice(SEARCH_SLOT_PREFIX.length)
|
|
243
|
+
}))
|
|
244
|
+
);
|
|
222
245
|
const navigationCommands = computed(() => navCommands(toNavSections(props.navigation)));
|
|
246
|
+
const searchFunction = computed(() => {
|
|
247
|
+
const search = props.search;
|
|
248
|
+
if (typeof search !== "function") return void 0;
|
|
249
|
+
if (!props.searchNavigation) return search;
|
|
250
|
+
return async (query, signal) => {
|
|
251
|
+
const groups = await search(query, signal);
|
|
252
|
+
const items = navigationCommands.value.filter(
|
|
253
|
+
(item) => matchesSearch([item.label, item.description, ...item.keywords ?? []], query)
|
|
254
|
+
);
|
|
255
|
+
if (!items.length) return groups;
|
|
256
|
+
return [{ id: "navigation", label: navigationGroupLabel.value, items }, ...groups];
|
|
257
|
+
};
|
|
258
|
+
});
|
|
223
259
|
const commandGroups = computed(() => {
|
|
224
260
|
const groups = [];
|
|
225
261
|
if (navigationCommands.value.length)
|
|
@@ -3,54 +3,60 @@ import type { BreadcrumbItem } from '../layout/types';
|
|
|
3
3
|
import type { MenuItem } from '../overlays/types';
|
|
4
4
|
import type { ThemePreset } from '../../composables/usePreset';
|
|
5
5
|
import type { LinkTarget } from '../core/types';
|
|
6
|
-
import type { AccountAction, DashboardAccount, DashboardNavigation, DashboardSearch, DashboardVariant, SettingsModalSection, ThemeSwitchPlacement } from './types';
|
|
6
|
+
import type { AccountAction, BrandLogo, DashboardAccount, DashboardNavigation, DashboardSearch, DashboardSearchProps, DashboardVariant, SettingsModalSection, ThemeSwitchPlacement } from './types';
|
|
7
7
|
declare var __VLS_18: {
|
|
8
8
|
collapsed: boolean;
|
|
9
9
|
}, __VLS_26: {
|
|
10
10
|
collapsed: boolean;
|
|
11
|
-
},
|
|
11
|
+
}, __VLS_39: string, __VLS_40: {
|
|
12
|
+
item: import("../overlays/types").CommandItem;
|
|
13
|
+
active: boolean;
|
|
14
|
+
}, __VLS_42: {
|
|
12
15
|
collapsed: boolean;
|
|
13
|
-
},
|
|
16
|
+
}, __VLS_50: {
|
|
14
17
|
collapsed: boolean;
|
|
15
|
-
},
|
|
18
|
+
}, __VLS_52: {
|
|
16
19
|
collapsed: boolean;
|
|
17
|
-
},
|
|
20
|
+
}, __VLS_74: {}, __VLS_81: {
|
|
18
21
|
mobile: boolean;
|
|
19
|
-
},
|
|
22
|
+
}, __VLS_88: {
|
|
20
23
|
mobile: boolean;
|
|
21
|
-
},
|
|
24
|
+
}, __VLS_95: {}, __VLS_110: string, __VLS_111: {
|
|
22
25
|
section: SettingsModalSection;
|
|
23
26
|
close: () => void;
|
|
24
27
|
};
|
|
25
28
|
type __VLS_Slots = {} & {
|
|
26
|
-
[K in NonNullable<typeof
|
|
29
|
+
[K in NonNullable<typeof __VLS_39>]?: (props: typeof __VLS_40) => any;
|
|
30
|
+
} & {
|
|
31
|
+
[K in NonNullable<typeof __VLS_110>]?: (props: typeof __VLS_111) => any;
|
|
27
32
|
} & {
|
|
28
33
|
brand?: (props: typeof __VLS_18) => any;
|
|
29
34
|
} & {
|
|
30
35
|
search?: (props: typeof __VLS_26) => any;
|
|
31
36
|
} & {
|
|
32
|
-
sidebar?: (props: typeof
|
|
37
|
+
sidebar?: (props: typeof __VLS_42) => any;
|
|
33
38
|
} & {
|
|
34
|
-
'sidebar-footer'?: (props: typeof
|
|
39
|
+
'sidebar-footer'?: (props: typeof __VLS_50) => any;
|
|
35
40
|
} & {
|
|
36
|
-
account?: (props: typeof
|
|
41
|
+
account?: (props: typeof __VLS_52) => any;
|
|
37
42
|
} & {
|
|
38
|
-
'topbar-brand'?: (props: typeof
|
|
43
|
+
'topbar-brand'?: (props: typeof __VLS_74) => any;
|
|
39
44
|
} & {
|
|
40
|
-
topbar?: (props: typeof
|
|
45
|
+
topbar?: (props: typeof __VLS_81) => any;
|
|
41
46
|
} & {
|
|
42
|
-
actions?: (props: typeof
|
|
47
|
+
actions?: (props: typeof __VLS_88) => any;
|
|
43
48
|
} & {
|
|
44
|
-
default?: (props: typeof
|
|
49
|
+
default?: (props: typeof __VLS_95) => any;
|
|
45
50
|
};
|
|
46
51
|
declare const __VLS_base: import("vue").DefineComponent<{
|
|
47
|
-
variant?: "sidebar" | "
|
|
52
|
+
variant?: "sidebar" | "floating" | "inset" | undefined;
|
|
48
53
|
navigation?: DashboardNavigation;
|
|
49
54
|
currentPath?: string;
|
|
50
55
|
brandName?: string;
|
|
51
56
|
brandSubtitle?: string;
|
|
52
57
|
brandIcon?: IconName;
|
|
53
|
-
brandLogo?:
|
|
58
|
+
brandLogo?: BrandLogo;
|
|
59
|
+
brandShowName?: boolean;
|
|
54
60
|
brandTo?: LinkTarget;
|
|
55
61
|
account?: DashboardAccount;
|
|
56
62
|
accountAction?: AccountAction;
|
|
@@ -60,6 +66,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
60
66
|
onSignOut?: () => void;
|
|
61
67
|
breadcrumbs?: BreadcrumbItem[];
|
|
62
68
|
search?: DashboardSearch;
|
|
69
|
+
searchProps?: DashboardSearchProps;
|
|
70
|
+
searchNavigation?: boolean;
|
|
63
71
|
searchLabel?: string;
|
|
64
72
|
searchPlaceholder?: string;
|
|
65
73
|
searchShortcut?: string | false;
|
|
@@ -88,7 +96,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
88
96
|
style?: import("vue").StyleValue;
|
|
89
97
|
results?: (string | number) | undefined;
|
|
90
98
|
placeholder?: string | undefined;
|
|
91
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
92
99
|
class?: import("vue").ClassValue;
|
|
93
100
|
role?: string | undefined;
|
|
94
101
|
'aria-label'?: string | undefined;
|
|
@@ -238,6 +245,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
238
245
|
'aria-valuemin'?: (string | number) | undefined;
|
|
239
246
|
'aria-valuenow'?: (string | number) | undefined;
|
|
240
247
|
'aria-valuetext'?: string | undefined;
|
|
248
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
241
249
|
ref_for?: boolean | undefined | undefined;
|
|
242
250
|
ref_key?: string | undefined | undefined;
|
|
243
251
|
accesskey?: string | undefined;
|
|
@@ -294,13 +302,14 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
294
302
|
"update:settingsOpen": (value: boolean) => any;
|
|
295
303
|
"update:settingsSection": (value: string | undefined) => any;
|
|
296
304
|
}, string, import("vue").PublicProps, Readonly<{
|
|
297
|
-
variant?: "sidebar" | "
|
|
305
|
+
variant?: "sidebar" | "floating" | "inset" | undefined;
|
|
298
306
|
navigation?: DashboardNavigation;
|
|
299
307
|
currentPath?: string;
|
|
300
308
|
brandName?: string;
|
|
301
309
|
brandSubtitle?: string;
|
|
302
310
|
brandIcon?: IconName;
|
|
303
|
-
brandLogo?:
|
|
311
|
+
brandLogo?: BrandLogo;
|
|
312
|
+
brandShowName?: boolean;
|
|
304
313
|
brandTo?: LinkTarget;
|
|
305
314
|
account?: DashboardAccount;
|
|
306
315
|
accountAction?: AccountAction;
|
|
@@ -310,6 +319,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
310
319
|
onSignOut?: () => void;
|
|
311
320
|
breadcrumbs?: BreadcrumbItem[];
|
|
312
321
|
search?: DashboardSearch;
|
|
322
|
+
searchProps?: DashboardSearchProps;
|
|
323
|
+
searchNavigation?: boolean;
|
|
313
324
|
searchLabel?: string;
|
|
314
325
|
searchPlaceholder?: string;
|
|
315
326
|
searchShortcut?: string | false;
|
|
@@ -338,7 +349,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
338
349
|
style?: import("vue").StyleValue;
|
|
339
350
|
results?: (string | number) | undefined;
|
|
340
351
|
placeholder?: string | undefined;
|
|
341
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
342
352
|
class?: import("vue").ClassValue;
|
|
343
353
|
role?: string | undefined;
|
|
344
354
|
'aria-label'?: string | undefined;
|
|
@@ -488,6 +498,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
488
498
|
'aria-valuemin'?: (string | number) | undefined;
|
|
489
499
|
'aria-valuenow'?: (string | number) | undefined;
|
|
490
500
|
'aria-valuetext'?: string | undefined;
|
|
501
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
491
502
|
ref_for?: boolean | undefined | undefined;
|
|
492
503
|
ref_key?: string | undefined | undefined;
|
|
493
504
|
accesskey?: string | undefined;
|
|
@@ -539,15 +550,16 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
539
550
|
"onUpdate:settingsSection"?: ((value: string | undefined) => any) | undefined;
|
|
540
551
|
}>, {
|
|
541
552
|
variant: DashboardVariant;
|
|
553
|
+
shortcut: string | false;
|
|
542
554
|
collapsible: boolean;
|
|
543
555
|
storageKey: string | false;
|
|
544
|
-
shortcut: string | false;
|
|
545
556
|
viewTransition: boolean;
|
|
546
557
|
brandTo: LinkTarget;
|
|
547
558
|
themeSwitch: ThemeSwitchPlacement;
|
|
548
559
|
accountAction: AccountAction;
|
|
549
560
|
settingsSections: SettingsModalSection[];
|
|
550
561
|
settingsPresets: false | readonly ThemePreset[];
|
|
562
|
+
searchNavigation: boolean;
|
|
551
563
|
searchShortcut: string | false;
|
|
552
564
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
553
565
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -82,7 +82,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
82
82
|
'aria-colindex'?: (string | number) | undefined;
|
|
83
83
|
'aria-colspan'?: (string | number) | undefined;
|
|
84
84
|
'aria-controls'?: string | undefined | undefined;
|
|
85
|
-
'aria-current'?: "page" | "
|
|
85
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
86
86
|
'aria-describedby'?: string | undefined | undefined;
|
|
87
87
|
'aria-details'?: string | undefined | undefined;
|
|
88
88
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -285,7 +285,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
285
285
|
'aria-colindex'?: (string | number) | undefined;
|
|
286
286
|
'aria-colspan'?: (string | number) | undefined;
|
|
287
287
|
'aria-controls'?: string | undefined | undefined;
|
|
288
|
-
'aria-current'?: "page" | "
|
|
288
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
289
289
|
'aria-describedby'?: string | undefined | undefined;
|
|
290
290
|
'aria-details'?: string | undefined | undefined;
|
|
291
291
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -39,7 +39,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
39
39
|
style?: import("vue").StyleValue;
|
|
40
40
|
results?: (string | number) | undefined;
|
|
41
41
|
placeholder?: string | undefined | undefined;
|
|
42
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
43
42
|
class?: import("vue").ClassValue;
|
|
44
43
|
role?: string | undefined | undefined;
|
|
45
44
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -152,7 +151,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
152
151
|
'aria-colindex'?: (string | number) | undefined;
|
|
153
152
|
'aria-colspan'?: (string | number) | undefined;
|
|
154
153
|
'aria-controls'?: string | undefined | undefined;
|
|
155
|
-
'aria-current'?: "page" | "
|
|
154
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
156
155
|
'aria-describedby'?: string | undefined | undefined;
|
|
157
156
|
'aria-details'?: string | undefined | undefined;
|
|
158
157
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -189,6 +188,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
189
188
|
'aria-valuemin'?: (string | number) | undefined;
|
|
190
189
|
'aria-valuenow'?: (string | number) | undefined;
|
|
191
190
|
'aria-valuetext'?: string | undefined | undefined;
|
|
191
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
192
192
|
ref_for?: boolean | undefined | undefined;
|
|
193
193
|
ref_key?: string | undefined | undefined;
|
|
194
194
|
accesskey?: string | undefined | undefined;
|
|
@@ -250,7 +250,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
250
250
|
style?: import("vue").StyleValue;
|
|
251
251
|
results?: (string | number) | undefined;
|
|
252
252
|
placeholder?: string | undefined | undefined;
|
|
253
|
-
ref?: import("vue").VNodeRef | undefined;
|
|
254
253
|
class?: import("vue").ClassValue;
|
|
255
254
|
role?: string | undefined | undefined;
|
|
256
255
|
'aria-label'?: string | undefined | undefined;
|
|
@@ -363,7 +362,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
363
362
|
'aria-colindex'?: (string | number) | undefined;
|
|
364
363
|
'aria-colspan'?: (string | number) | undefined;
|
|
365
364
|
'aria-controls'?: string | undefined | undefined;
|
|
366
|
-
'aria-current'?: "page" | "
|
|
365
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
367
366
|
'aria-describedby'?: string | undefined | undefined;
|
|
368
367
|
'aria-details'?: string | undefined | undefined;
|
|
369
368
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -400,6 +399,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
400
399
|
'aria-valuemin'?: (string | number) | undefined;
|
|
401
400
|
'aria-valuenow'?: (string | number) | undefined;
|
|
402
401
|
'aria-valuetext'?: string | undefined | undefined;
|
|
402
|
+
ref?: import("vue").VNodeRef | undefined;
|
|
403
403
|
ref_for?: boolean | undefined | undefined;
|
|
404
404
|
ref_key?: string | undefined | undefined;
|
|
405
405
|
accesskey?: string | undefined | undefined;
|
|
@@ -86,7 +86,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
86
86
|
'aria-colindex'?: (string | number) | undefined;
|
|
87
87
|
'aria-colspan'?: (string | number) | undefined;
|
|
88
88
|
'aria-controls'?: string | undefined | undefined;
|
|
89
|
-
'aria-current'?: "page" | "
|
|
89
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
90
90
|
'aria-describedby'?: string | undefined | undefined;
|
|
91
91
|
'aria-details'?: string | undefined | undefined;
|
|
92
92
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -295,7 +295,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
295
295
|
'aria-colindex'?: (string | number) | undefined;
|
|
296
296
|
'aria-colspan'?: (string | number) | undefined;
|
|
297
297
|
'aria-controls'?: string | undefined | undefined;
|
|
298
|
-
'aria-current'?: "page" | "
|
|
298
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
299
299
|
'aria-describedby'?: string | undefined | undefined;
|
|
300
300
|
'aria-details'?: string | undefined | undefined;
|
|
301
301
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -82,7 +82,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
82
82
|
'aria-colindex'?: (string | number) | undefined;
|
|
83
83
|
'aria-colspan'?: (string | number) | undefined;
|
|
84
84
|
'aria-controls'?: string | undefined | undefined;
|
|
85
|
-
'aria-current'?: "page" | "
|
|
85
|
+
'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
|
|
86
86
|
'aria-describedby'?: string | undefined | undefined;
|
|
87
87
|
'aria-details'?: string | undefined | undefined;
|
|
88
88
|
'aria-disabled'?: (boolean | "true" | "false") | undefined;
|
|
@@ -288,7 +288,7 @@ declare const __VLS_base: 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;
|
|
@@ -75,16 +75,18 @@
|
|
|
75
75
|
/>
|
|
76
76
|
<slot name="toolbar" />
|
|
77
77
|
</div>
|
|
78
|
-
<div
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
<
|
|
87
|
-
|
|
78
|
+
<div v-if="selectable || $slots['toolbar-end']" class="k-list-toolbar-end">
|
|
79
|
+
<SelectionBar
|
|
80
|
+
v-if="selectable"
|
|
81
|
+
class="k-list-selection"
|
|
82
|
+
:count="selected.length"
|
|
83
|
+
:selected-text="selectedLabel"
|
|
84
|
+
:on-clear="clearSelection"
|
|
85
|
+
>
|
|
86
|
+
<template v-if="$slots.bulk" #actions>
|
|
87
|
+
<slot name="bulk" :selected="selected" :clear="clearSelection" />
|
|
88
|
+
</template>
|
|
89
|
+
</SelectionBar>
|
|
88
90
|
<slot name="toolbar-end" />
|
|
89
91
|
</div>
|
|
90
92
|
</div>
|
|
@@ -164,6 +166,7 @@ import { normalizeSearch } from "../../internal/core/text";
|
|
|
164
166
|
import Input from "../core/Input.vue";
|
|
165
167
|
import FilterPills from "../data/FilterPills.vue";
|
|
166
168
|
import Pagination from "../data/Pagination.vue";
|
|
169
|
+
import SelectionBar from "../data/SelectionBar.vue";
|
|
167
170
|
import Table from "../data/Table.vue";
|
|
168
171
|
import EmptyState from "../feedback/EmptyState.vue";
|
|
169
172
|
import Card from "../layout/Card.vue";
|
|
@@ -244,6 +247,9 @@ const filterValues = computed(() => {
|
|
|
244
247
|
return Array.isArray(value) ? value : [value];
|
|
245
248
|
});
|
|
246
249
|
const isFiltered = computed(() => search.value.trim() !== "" || filterValues.value.length > 0);
|
|
250
|
+
function clearSelection() {
|
|
251
|
+
selected.value = [];
|
|
252
|
+
}
|
|
247
253
|
const hasToolbar = computed(
|
|
248
254
|
() => Boolean(
|
|
249
255
|
props.searchable || props.filters?.length || slots.toolbar || slots["toolbar-end"] || props.selectable
|
|
@@ -434,8 +434,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
|
|
|
434
434
|
onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
|
|
435
435
|
}> & Readonly<{}>, {
|
|
436
436
|
fill: boolean;
|
|
437
|
-
title: string;
|
|
438
437
|
message: string;
|
|
438
|
+
title: string;
|
|
439
439
|
backLabel: string | false;
|
|
440
440
|
homeTo: LinkTarget;
|
|
441
441
|
homeLabel: string | false;
|