@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.
Files changed (205) hide show
  1. package/README.md +79 -19
  2. package/dist/chart/BarChart.vue.d.ts +2 -2
  3. package/dist/chart/ChartLegend.vue.d.ts +4 -4
  4. package/dist/chart/ChartPanel.vue.d.ts +2 -2
  5. package/dist/chart/ChartSummary.vue.d.ts +2 -2
  6. package/dist/chart/DoughnutChart.vue.d.ts +2 -2
  7. package/dist/chart/LineChart.vue.d.ts +2 -2
  8. package/dist/components/core/Button.vue.d.ts +2 -2
  9. package/dist/components/core/FieldMessage.vue +28 -0
  10. package/dist/components/core/FieldMessage.vue.d.ts +409 -0
  11. package/dist/components/core/Form.vue +22 -3
  12. package/dist/components/core/Form.vue.d.ts +18 -4
  13. package/dist/components/core/FormField.vue +37 -15
  14. package/dist/components/core/FormField.vue.d.ts +5 -4
  15. package/dist/components/core/Icon.vue.d.ts +2 -2
  16. package/dist/components/core/Input.vue.d.ts +4 -4
  17. package/dist/components/core/Kbd.vue.d.ts +2 -2
  18. package/dist/components/core/Root.vue.d.ts +6 -6
  19. package/dist/components/core/Spinner.vue +13 -1
  20. package/dist/components/core/Spinner.vue.d.ts +4 -2
  21. package/dist/components/core/Textarea.vue.d.ts +4 -4
  22. package/dist/components/core/VisuallyHidden.vue.d.ts +6 -6
  23. package/dist/components/core/index.d.ts +1 -0
  24. package/dist/components/core/index.mjs +1 -0
  25. package/dist/components/data/Avatar.vue.d.ts +2 -2
  26. package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
  27. package/dist/components/data/Badge.vue.d.ts +2 -2
  28. package/dist/components/data/DescriptionList.vue.d.ts +2 -2
  29. package/dist/components/data/FilterPill.vue +35 -0
  30. package/dist/components/data/FilterPill.vue.d.ts +445 -0
  31. package/dist/components/data/FilterPills.vue +49 -21
  32. package/dist/components/data/FilterPills.vue.d.ts +22 -5
  33. package/dist/components/data/Pagination.vue.d.ts +4 -4
  34. package/dist/components/data/SelectionBar.vue +78 -0
  35. package/dist/components/data/SelectionBar.vue.d.ts +427 -0
  36. package/dist/components/data/Stat.vue.d.ts +8 -8
  37. package/dist/components/data/Tag.vue.d.ts +4 -4
  38. package/dist/components/data/Timeline.vue.d.ts +2 -2
  39. package/dist/components/data/Tree.vue +237 -18
  40. package/dist/components/data/Tree.vue.d.ts +37 -10
  41. package/dist/components/data/index.d.ts +3 -0
  42. package/dist/components/data/index.mjs +3 -0
  43. package/dist/components/data/types.d.ts +19 -0
  44. package/dist/components/feedback/Alert.vue.d.ts +18 -18
  45. package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
  46. package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
  47. package/dist/components/feedback/Meter.vue.d.ts +2 -2
  48. package/dist/components/feedback/Progress.vue.d.ts +2 -2
  49. package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
  50. package/dist/components/feedback/Skeleton.vue.d.ts +3 -3
  51. package/dist/components/forms/Calendar.vue.d.ts +4 -4
  52. package/dist/components/forms/ColorInput.vue.d.ts +6 -6
  53. package/dist/components/forms/DateInput.vue.d.ts +14 -14
  54. package/dist/components/forms/DatePicker.vue.d.ts +6 -6
  55. package/dist/components/forms/FileInput.vue +80 -26
  56. package/dist/components/forms/FileInput.vue.d.ts +21 -11
  57. package/dist/components/forms/InputAddon.vue.d.ts +2 -2
  58. package/dist/components/forms/InputGroup.vue.d.ts +2 -2
  59. package/dist/components/forms/NumberInput.vue.d.ts +6 -6
  60. package/dist/components/forms/PasswordInput.vue.d.ts +16 -16
  61. package/dist/components/forms/PinInput.vue.d.ts +6 -6
  62. package/dist/components/forms/Radio.vue.d.ts +2 -2
  63. package/dist/components/forms/SegmentedControl.vue +32 -8
  64. package/dist/components/forms/SegmentedControl.vue.d.ts +15 -7
  65. package/dist/components/forms/Slider.vue.d.ts +6 -6
  66. package/dist/components/forms/Switch.vue.d.ts +6 -6
  67. package/dist/components/forms/TimeInput.vue.d.ts +16 -16
  68. package/dist/components/forms/types.d.ts +14 -0
  69. package/dist/components/layout/Accordion.vue +25 -5
  70. package/dist/components/layout/Accordion.vue.d.ts +8 -5
  71. package/dist/components/layout/AppShell.vue.d.ts +5 -5
  72. package/dist/components/layout/Breadcrumbs.vue +28 -20
  73. package/dist/components/layout/Breadcrumbs.vue.d.ts +18 -3
  74. package/dist/components/layout/Card.vue +22 -3
  75. package/dist/components/layout/Card.vue.d.ts +10 -4
  76. package/dist/components/layout/CopyButton.vue.d.ts +4 -4
  77. package/dist/components/layout/Grid.vue.d.ts +2 -2
  78. package/dist/components/layout/NavLink.vue.d.ts +8 -8
  79. package/dist/components/layout/PageHeader.vue +10 -1
  80. package/dist/components/layout/PageHeader.vue.d.ts +17 -9
  81. package/dist/components/layout/Separator.vue.d.ts +2 -2
  82. package/dist/components/layout/Sidebar.vue.d.ts +2 -2
  83. package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
  84. package/dist/components/layout/Stack.vue.d.ts +6 -6
  85. package/dist/components/layout/Tabs.vue +27 -6
  86. package/dist/components/layout/Tabs.vue.d.ts +7 -4
  87. package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
  88. package/dist/components/layout/Toolbar.vue.d.ts +2 -2
  89. package/dist/components/layout/types.d.ts +7 -1
  90. package/dist/components/overlays/CommandPalette.vue +25 -4
  91. package/dist/components/overlays/CommandPalette.vue.d.ts +23 -9
  92. package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -6
  93. package/dist/components/overlays/ConfirmHost.vue +5 -1
  94. package/dist/components/overlays/ConfirmHost.vue.d.ts +10 -8
  95. package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
  96. package/dist/components/overlays/Drawer.vue +4 -2
  97. package/dist/components/overlays/Drawer.vue.d.ts +8 -6
  98. package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
  99. package/dist/components/overlays/HoverCard.vue +2 -1
  100. package/dist/components/overlays/HoverCard.vue.d.ts +6 -6
  101. package/dist/components/overlays/Modal.vue +5 -3
  102. package/dist/components/overlays/Modal.vue.d.ts +8 -6
  103. package/dist/components/overlays/Popover.vue +2 -1
  104. package/dist/components/overlays/Popover.vue.d.ts +6 -6
  105. package/dist/components/overlays/Toaster.vue.d.ts +4 -4
  106. package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
  107. package/dist/components/overlays/types.d.ts +4 -1
  108. package/dist/components/templates/AccountMenu.vue.d.ts +6 -6
  109. package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
  110. package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
  111. package/dist/components/templates/Brand.vue +34 -5
  112. package/dist/components/templates/Brand.vue.d.ts +20 -15
  113. package/dist/components/templates/DashboardLayout.vue +40 -4
  114. package/dist/components/templates/DashboardLayout.vue.d.ts +34 -22
  115. package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
  116. package/dist/components/templates/DetailPage.vue.d.ts +4 -4
  117. package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
  118. package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
  119. package/dist/components/templates/ListPage.vue +16 -10
  120. package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
  121. package/dist/components/templates/SaveBar.vue.d.ts +4 -4
  122. package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
  123. package/dist/components/templates/SettingsModal.vue +5 -2
  124. package/dist/components/templates/SettingsModal.vue.d.ts +13 -8
  125. package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
  126. package/dist/components/templates/SettingsSection.vue.d.ts +12 -8
  127. package/dist/components/templates/types.d.ts +24 -1
  128. package/dist/composables/core.d.ts +1 -0
  129. package/dist/composables/core.mjs +1 -0
  130. package/dist/composables/useField.d.ts +2 -0
  131. package/dist/composables/useField.mjs +5 -2
  132. package/dist/composables/useFieldBoundary.d.ts +1 -0
  133. package/dist/composables/useFieldBoundary.mjs +5 -0
  134. package/dist/composables/useFileDrop.d.ts +7 -0
  135. package/dist/composables/useFileDrop.mjs +114 -7
  136. package/dist/composables/useForm.d.ts +32 -19
  137. package/dist/composables/useForm.mjs +212 -45
  138. package/dist/editor/RichTextEditor.vue +30 -3
  139. package/dist/editor/RichTextEditor.vue.d.ts +11 -6
  140. package/dist/editor/rich-text-editor.css +1 -1
  141. package/dist/editor/types.d.ts +3 -0
  142. package/dist/grid/GridToolbar.vue.d.ts +4 -4
  143. package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
  144. package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
  145. package/dist/grid/cells/DateCell.vue.d.ts +2 -2
  146. package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
  147. package/dist/grid/cells/LinkCell.vue.d.ts +2 -2
  148. package/dist/internal/data/tree.d.ts +8 -0
  149. package/dist/internal/data/tree.mjs +41 -0
  150. package/dist/internal/forms/FormAlerts.vue +25 -0
  151. package/dist/internal/forms/FormAlerts.vue.d.ts +393 -0
  152. package/dist/internal/forms/files.d.ts +2 -0
  153. package/dist/internal/forms/files.mjs +8 -1
  154. package/dist/internal/forms/standard-schema.d.ts +17 -0
  155. package/dist/internal/forms/standard-schema.mjs +40 -0
  156. package/dist/internal/overlays/DialogFrame.vue +17 -7
  157. package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
  158. package/dist/internal/overlays/FieldBoundary.d.ts +4 -0
  159. package/dist/internal/overlays/FieldBoundary.mjs +9 -0
  160. package/dist/internal/overlays/MenuList.vue +2 -0
  161. package/dist/internal/overlays/MenuList.vue.d.ts +5 -5
  162. package/dist/internal/overlays/OverlayView.vue +2 -0
  163. package/dist/internal/overlays/OverlayView.vue.d.ts +14 -12
  164. package/dist/internal/overlays/dialog.d.ts +4 -1
  165. package/dist/internal/overlays/dialog.mjs +39 -5
  166. package/dist/internal/overlays/stack.d.ts +2 -1
  167. package/dist/locale/en.mjs +17 -2
  168. package/dist/locale/it.mjs +17 -2
  169. package/dist/locale/types.d.ts +15 -0
  170. package/dist/nuxt/module.d.ts +5 -4
  171. package/dist/nuxt/module.mjs +9 -6
  172. package/dist/nuxt/runtime/layouts/auth.vue.d.ts +8 -8
  173. package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +8 -8
  174. package/dist/styles/base.css +7 -0
  175. package/dist/styles/core/field-message.css +34 -0
  176. package/dist/styles/core/form-field.css +0 -23
  177. package/dist/styles/core/form.css +11 -0
  178. package/dist/styles/core/kbd.css +2 -2
  179. package/dist/styles/core/spinner.css +19 -0
  180. package/dist/styles/core.css +1 -0
  181. package/dist/styles/data/badge.css +1 -1
  182. package/dist/styles/data/filter-pills.css +40 -3
  183. package/dist/styles/data/selection-bar.css +85 -0
  184. package/dist/styles/data/tree.css +156 -1
  185. package/dist/styles/data.css +1 -0
  186. package/dist/styles/forms/calendar.css +1 -1
  187. package/dist/styles/forms/file-input.css +8 -0
  188. package/dist/styles/forms/segmented.css +8 -0
  189. package/dist/styles/forms/select.css +1 -1
  190. package/dist/styles/forms/slider.css +2 -2
  191. package/dist/styles/layout/accordion.css +16 -0
  192. package/dist/styles/layout/app-shell.css +4 -0
  193. package/dist/styles/layout/breadcrumbs.css +16 -1
  194. package/dist/styles/layout/card.css +19 -1
  195. package/dist/styles/layout/nav-link.css +1 -1
  196. package/dist/styles/layout/sidebar.css +1 -1
  197. package/dist/styles/layout/tabs.css +43 -1
  198. package/dist/styles/overlays/command.css +20 -2
  199. package/dist/styles/overlays/menu.css +1 -1
  200. package/dist/styles/overlays/modal.css +38 -0
  201. package/dist/styles/templates/brand.css +15 -0
  202. package/dist/styles/templates/empty-page.css +1 -1
  203. package/dist/styles/templates/list-page.css +2 -6
  204. package/dist/styles/templates/settings-modal.css +2 -2
  205. 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
- <img v-if="logo" class="k-brand-logo" :src="logo" :alt="name ?? ''" />
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: String, required: false },
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 || props.logo ? void 0 : props.name;
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.logo && Boolean(props.name || slots.default)
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: {}, __VLS_16: {};
5
+ declare var __VLS_7: {}, __VLS_14: {}, __VLS_21: {}, __VLS_23: {};
5
6
  type __VLS_Slots = {} & {
6
- mark?: (props: typeof __VLS_7) => any;
7
+ logo?: (props: typeof __VLS_7) => any;
7
8
  } & {
8
- default?: (props: typeof __VLS_14) => any;
9
+ mark?: (props: typeof __VLS_14) => any;
9
10
  } & {
10
- subtitle?: (props: typeof __VLS_16) => any;
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?: string;
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?: string;
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: String, required: false },
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
- }, __VLS_35: {
11
+ }, __VLS_39: string, __VLS_40: {
12
+ item: import("../overlays/types").CommandItem;
13
+ active: boolean;
14
+ }, __VLS_42: {
12
15
  collapsed: boolean;
13
- }, __VLS_43: {
16
+ }, __VLS_50: {
14
17
  collapsed: boolean;
15
- }, __VLS_45: {
18
+ }, __VLS_52: {
16
19
  collapsed: boolean;
17
- }, __VLS_67: {}, __VLS_74: {
20
+ }, __VLS_74: {}, __VLS_81: {
18
21
  mobile: boolean;
19
- }, __VLS_81: {
22
+ }, __VLS_88: {
20
23
  mobile: boolean;
21
- }, __VLS_88: {}, __VLS_103: string, __VLS_104: {
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 __VLS_103>]?: (props: typeof __VLS_104) => any;
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 __VLS_35) => any;
37
+ sidebar?: (props: typeof __VLS_42) => any;
33
38
  } & {
34
- 'sidebar-footer'?: (props: typeof __VLS_43) => any;
39
+ 'sidebar-footer'?: (props: typeof __VLS_50) => any;
35
40
  } & {
36
- account?: (props: typeof __VLS_45) => any;
41
+ account?: (props: typeof __VLS_52) => any;
37
42
  } & {
38
- 'topbar-brand'?: (props: typeof __VLS_67) => any;
43
+ 'topbar-brand'?: (props: typeof __VLS_74) => any;
39
44
  } & {
40
- topbar?: (props: typeof __VLS_74) => any;
45
+ topbar?: (props: typeof __VLS_81) => any;
41
46
  } & {
42
- actions?: (props: typeof __VLS_81) => any;
47
+ actions?: (props: typeof __VLS_88) => any;
43
48
  } & {
44
- default?: (props: typeof __VLS_88) => any;
49
+ default?: (props: typeof __VLS_95) => any;
45
50
  };
46
51
  declare const __VLS_base: import("vue").DefineComponent<{
47
- variant?: "sidebar" | "inset" | "floating" | undefined;
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?: string;
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" | "inset" | "floating" | undefined;
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?: string;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
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
- v-if="selectable && selected.length || $slots['toolbar-end']"
80
- class="k-list-toolbar-end"
81
- >
82
- <template v-if="selectable && selected.length">
83
- <span class="k-list-selection" aria-live="polite">{{
84
- selectedLabel(selected.length)
85
- }}</span>
86
- <slot name="bulk" :selected="selected" :clear="() => selected = []" />
87
- </template>
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;