@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
@@ -18,7 +18,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
18
18
  style?: import("vue").StyleValue;
19
19
  results?: (string | number) | undefined;
20
20
  placeholder?: string | undefined | undefined;
21
- ref?: import("vue").VNodeRef | undefined;
22
21
  class?: import("vue").ClassValue;
23
22
  role?: string | undefined | undefined;
24
23
  'aria-label'?: string | undefined | undefined;
@@ -131,7 +130,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
131
130
  'aria-colindex'?: (string | number) | undefined;
132
131
  'aria-colspan'?: (string | number) | undefined;
133
132
  'aria-controls'?: string | undefined | undefined;
134
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
133
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
135
134
  'aria-describedby'?: string | undefined | undefined;
136
135
  'aria-details'?: string | undefined | undefined;
137
136
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -168,6 +167,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
168
167
  'aria-valuemin'?: (string | number) | undefined;
169
168
  'aria-valuenow'?: (string | number) | undefined;
170
169
  'aria-valuetext'?: string | undefined | undefined;
170
+ ref?: import("vue").VNodeRef | undefined;
171
171
  ref_for?: boolean | undefined | undefined;
172
172
  ref_key?: string | undefined | undefined;
173
173
  accesskey?: string | undefined | undefined;
@@ -221,7 +221,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
221
221
  style?: import("vue").StyleValue;
222
222
  results?: (string | number) | undefined;
223
223
  placeholder?: string | undefined | undefined;
224
- ref?: import("vue").VNodeRef | undefined;
225
224
  class?: import("vue").ClassValue;
226
225
  role?: string | undefined | undefined;
227
226
  'aria-label'?: string | undefined | undefined;
@@ -334,7 +333,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
334
333
  'aria-colindex'?: (string | number) | undefined;
335
334
  'aria-colspan'?: (string | number) | undefined;
336
335
  'aria-controls'?: string | undefined | undefined;
337
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
336
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
338
337
  'aria-describedby'?: string | undefined | undefined;
339
338
  'aria-details'?: string | undefined | undefined;
340
339
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -371,6 +370,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
371
370
  'aria-valuemin'?: (string | number) | undefined;
372
371
  'aria-valuenow'?: (string | number) | undefined;
373
372
  'aria-valuetext'?: string | undefined | undefined;
373
+ ref?: import("vue").VNodeRef | undefined;
374
374
  ref_for?: boolean | undefined | undefined;
375
375
  ref_key?: string | undefined | undefined;
376
376
  accesskey?: string | undefined | undefined;
@@ -68,7 +68,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
68
68
  'aria-colindex'?: (string | number) | undefined;
69
69
  'aria-colspan'?: (string | number) | undefined;
70
70
  'aria-controls'?: string | undefined | undefined;
71
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
71
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
72
72
  'aria-describedby'?: string | undefined | undefined;
73
73
  'aria-details'?: string | undefined | undefined;
74
74
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -265,7 +265,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
265
265
  'aria-colindex'?: (string | number) | undefined;
266
266
  'aria-colspan'?: (string | number) | undefined;
267
267
  'aria-controls'?: string | undefined | undefined;
268
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
268
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
269
269
  'aria-describedby'?: string | undefined | undefined;
270
270
  'aria-details'?: string | undefined | undefined;
271
271
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -7,6 +7,7 @@
7
7
  hide-close
8
8
  :sheet="false"
9
9
  :aria-label="titleText"
10
+ :before-close="beforeClose"
10
11
  @open="emit('open')"
11
12
  @close="emit('close')"
12
13
  @after-leave="emit('afterLeave')"
@@ -114,7 +115,7 @@
114
115
  </div>
115
116
  <slot name="account-fields" :account="account" :close="close" />
116
117
  <SettingsGroup
117
- v-if="onSignOut"
118
+ v-if="onSignOut && !hideSession"
118
119
  :label="sessionLabelText"
119
120
  :description="sessionDescriptionText"
120
121
  row
@@ -177,7 +178,9 @@ const props = defineProps({
177
178
  themeText: { type: String, required: false, default: void 0 },
178
179
  presetLabel: { type: String, required: false, default: void 0 },
179
180
  presetText: { type: String, required: false, default: void 0 },
180
- onSignOut: { type: Function, required: false }
181
+ onSignOut: { type: Function, required: false },
182
+ hideSession: { type: Boolean, required: false },
183
+ beforeClose: { type: Function, required: false }
181
184
  });
182
185
  defineSlots();
183
186
  const emit = defineEmits(["open", "close", "afterLeave"]);
@@ -1,4 +1,5 @@
1
1
  import type { ThemePreset } from '../../composables/usePreset';
2
+ import type { DialogBeforeClose } from '../overlays/types';
2
3
  import type { SettingsModalAccount, SettingsModalSection } from './types';
3
4
  type SectionScope = {
4
5
  section: SettingsModalSection;
@@ -32,6 +33,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
32
33
  presetLabel?: string;
33
34
  presetText?: string;
34
35
  onSignOut?: () => void;
36
+ hideSession?: boolean;
37
+ beforeClose?: DialogBeforeClose;
35
38
  open?: boolean | undefined;
36
39
  section?: string;
37
40
  key?: PropertyKey | undefined;
@@ -41,8 +44,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
41
44
  results?: (string | number) | undefined;
42
45
  placeholder?: string | undefined;
43
46
  description?: string;
44
- size?: import("../overlays/types.ts").ModalSize;
45
- ref?: import("vue").VNodeRef | undefined;
47
+ size?: import("../overlays/types").ModalSize;
46
48
  class?: import("vue").ClassValue;
47
49
  role?: string | undefined;
48
50
  'aria-label'?: string | undefined;
@@ -192,6 +194,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
192
194
  'aria-valuemin'?: (string | number) | undefined;
193
195
  'aria-valuenow'?: (string | number) | undefined;
194
196
  'aria-valuetext'?: string | undefined;
197
+ ref?: import("vue").VNodeRef | undefined;
195
198
  ref_for?: boolean | undefined | undefined;
196
199
  ref_key?: string | undefined | undefined;
197
200
  accesskey?: string | undefined;
@@ -228,15 +231,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
228
231
  exportparts?: string;
229
232
  part?: string;
230
233
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
231
- onCancel?: ((payload: Event) => void) | undefined;
234
+ dismissible?: boolean | undefined;
232
235
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
233
236
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
234
237
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
235
238
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
236
239
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
237
240
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
241
+ onCancel?: ((payload: Event) => void) | undefined;
238
242
  flush?: boolean;
239
- dismissible?: boolean | undefined;
240
243
  sheet?: boolean;
241
244
  rootClass?: unknown;
242
245
  hideClose?: boolean;
@@ -266,6 +269,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
266
269
  presetLabel?: string;
267
270
  presetText?: string;
268
271
  onSignOut?: () => void;
272
+ hideSession?: boolean;
273
+ beforeClose?: DialogBeforeClose;
269
274
  open?: boolean | undefined;
270
275
  section?: string;
271
276
  key?: PropertyKey | undefined;
@@ -275,8 +280,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
275
280
  results?: (string | number) | undefined;
276
281
  placeholder?: string | undefined;
277
282
  description?: string;
278
- size?: import("../overlays/types.ts").ModalSize;
279
- ref?: import("vue").VNodeRef | undefined;
283
+ size?: import("../overlays/types").ModalSize;
280
284
  class?: import("vue").ClassValue;
281
285
  role?: string | undefined;
282
286
  'aria-label'?: string | undefined;
@@ -426,6 +430,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
426
430
  'aria-valuemin'?: (string | number) | undefined;
427
431
  'aria-valuenow'?: (string | number) | undefined;
428
432
  'aria-valuetext'?: string | undefined;
433
+ ref?: import("vue").VNodeRef | undefined;
429
434
  ref_for?: boolean | undefined | undefined;
430
435
  ref_key?: string | undefined | undefined;
431
436
  accesskey?: string | undefined;
@@ -462,15 +467,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
462
467
  exportparts?: string;
463
468
  part?: string;
464
469
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
465
- onCancel?: ((payload: Event) => void) | undefined;
470
+ dismissible?: boolean | undefined;
466
471
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
467
472
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
468
473
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
469
474
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
470
475
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
471
476
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
477
+ onCancel?: ((payload: Event) => void) | undefined;
472
478
  flush?: boolean;
473
- dismissible?: boolean | undefined;
474
479
  sheet?: boolean;
475
480
  rootClass?: unknown;
476
481
  hideClose?: boolean;
@@ -34,7 +34,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
34
34
  style?: import("vue").StyleValue;
35
35
  results?: (string | number) | undefined;
36
36
  placeholder?: string | undefined | undefined;
37
- ref?: import("vue").VNodeRef | undefined;
38
37
  class?: import("vue").ClassValue;
39
38
  role?: string | undefined | undefined;
40
39
  'aria-label'?: string | undefined | undefined;
@@ -147,7 +146,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
147
146
  'aria-colindex'?: (string | number) | undefined;
148
147
  'aria-colspan'?: (string | number) | undefined;
149
148
  'aria-controls'?: string | undefined | undefined;
150
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
149
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
151
150
  'aria-describedby'?: string | undefined | undefined;
152
151
  'aria-details'?: string | undefined | undefined;
153
152
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -184,6 +183,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
184
183
  'aria-valuemin'?: (string | number) | undefined;
185
184
  'aria-valuenow'?: (string | number) | undefined;
186
185
  'aria-valuetext'?: string | undefined | undefined;
186
+ ref?: import("vue").VNodeRef | undefined;
187
187
  ref_for?: boolean | undefined | undefined;
188
188
  ref_key?: string | undefined | undefined;
189
189
  accesskey?: string | undefined | undefined;
@@ -246,7 +246,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
246
246
  style?: import("vue").StyleValue;
247
247
  results?: (string | number) | undefined;
248
248
  placeholder?: string | undefined | undefined;
249
- ref?: import("vue").VNodeRef | undefined;
250
249
  class?: import("vue").ClassValue;
251
250
  role?: string | undefined | undefined;
252
251
  'aria-label'?: string | undefined | undefined;
@@ -359,7 +358,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
359
358
  'aria-colindex'?: (string | number) | undefined;
360
359
  'aria-colspan'?: (string | number) | undefined;
361
360
  'aria-controls'?: string | undefined | undefined;
362
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
361
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
363
362
  'aria-describedby'?: string | undefined | undefined;
364
363
  'aria-details'?: string | undefined | undefined;
365
364
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -396,6 +395,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
396
395
  'aria-valuemin'?: (string | number) | undefined;
397
396
  'aria-valuenow'?: (string | number) | undefined;
398
397
  'aria-valuetext'?: string | undefined | undefined;
398
+ ref?: import("vue").VNodeRef | undefined;
399
399
  ref_for?: boolean | undefined | undefined;
400
400
  ref_key?: string | undefined | undefined;
401
401
  accesskey?: string | undefined | undefined;
@@ -23,13 +23,11 @@ declare const __VLS_base: import("vue").DefineComponent<{
23
23
  level?: HeadingLevel;
24
24
  key?: PropertyKey | undefined;
25
25
  prefix?: string | undefined;
26
+ selected?: boolean;
26
27
  style?: import("vue").StyleValue;
27
28
  results?: (string | number) | undefined;
28
29
  placeholder?: string | undefined;
29
30
  bind?: Record<string, unknown>;
30
- type?: string | undefined;
31
- ref?: import("vue").VNodeRef | undefined;
32
- target?: string | undefined;
33
31
  class?: import("vue").ClassValue;
34
32
  role?: string | undefined;
35
33
  'aria-label'?: string | undefined;
@@ -133,6 +131,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
133
131
  id?: string | undefined;
134
132
  lang?: string | undefined;
135
133
  media?: string | undefined;
134
+ target?: string | undefined;
135
+ type?: string | undefined;
136
136
  tabindex?: (string | number) | undefined;
137
137
  href?: string | undefined;
138
138
  to?: import("../core/types.ts").LinkTarget;
@@ -182,6 +182,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
182
182
  'aria-valuemin'?: (string | number) | undefined;
183
183
  'aria-valuenow'?: (string | number) | undefined;
184
184
  'aria-valuetext'?: string | undefined;
185
+ ref?: import("vue").VNodeRef | undefined;
185
186
  ref_for?: boolean | undefined;
186
187
  ref_key?: string | undefined;
187
188
  accesskey?: string | undefined;
@@ -225,14 +226,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
225
226
  hreflang?: string | undefined;
226
227
  ping?: string | undefined;
227
228
  referrerpolicy?: ("" | "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") | undefined;
228
- as?: string | import("vue").Component;
229
229
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
230
230
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
231
231
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
232
232
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
233
233
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
234
234
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
235
+ as?: string | import("vue").Component;
235
236
  padding?: import("../layout/types").CardPadding;
237
+ animated?: boolean;
236
238
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
237
239
  save: () => any;
238
240
  }, string, import("vue").PublicProps, Readonly<{
@@ -248,13 +250,11 @@ declare const __VLS_base: import("vue").DefineComponent<{
248
250
  level?: HeadingLevel;
249
251
  key?: PropertyKey | undefined;
250
252
  prefix?: string | undefined;
253
+ selected?: boolean;
251
254
  style?: import("vue").StyleValue;
252
255
  results?: (string | number) | undefined;
253
256
  placeholder?: string | undefined;
254
257
  bind?: Record<string, unknown>;
255
- type?: string | undefined;
256
- ref?: import("vue").VNodeRef | undefined;
257
- target?: string | undefined;
258
258
  class?: import("vue").ClassValue;
259
259
  role?: string | undefined;
260
260
  'aria-label'?: string | undefined;
@@ -358,6 +358,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
358
358
  id?: string | undefined;
359
359
  lang?: string | undefined;
360
360
  media?: string | undefined;
361
+ target?: string | undefined;
362
+ type?: string | undefined;
361
363
  tabindex?: (string | number) | undefined;
362
364
  href?: string | undefined;
363
365
  to?: import("../core/types.ts").LinkTarget;
@@ -407,6 +409,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
407
409
  'aria-valuemin'?: (string | number) | undefined;
408
410
  'aria-valuenow'?: (string | number) | undefined;
409
411
  'aria-valuetext'?: string | undefined;
412
+ ref?: import("vue").VNodeRef | undefined;
410
413
  ref_for?: boolean | undefined;
411
414
  ref_key?: string | undefined;
412
415
  accesskey?: string | undefined;
@@ -450,14 +453,15 @@ declare const __VLS_base: import("vue").DefineComponent<{
450
453
  hreflang?: string | undefined;
451
454
  ping?: string | undefined;
452
455
  referrerpolicy?: ("" | "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") | undefined;
453
- as?: string | import("vue").Component;
454
456
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
455
457
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
456
458
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
457
459
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
458
460
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
459
461
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
462
+ as?: string | import("vue").Component;
460
463
  padding?: import("../layout/types").CardPadding;
464
+ animated?: boolean;
461
465
  }> & Readonly<{
462
466
  onSave?: (() => any) | undefined;
463
467
  }>, {
@@ -1,3 +1,4 @@
1
+ import type { Component } from 'vue';
1
2
  import type { LinkTarget, Tone } from '../core/types';
2
3
  import type { DescriptionItem, StatTrend } from '../data/types';
3
4
  import type { BreadcrumbItem, NavItem, NavSection } from '../layout/types';
@@ -7,6 +8,7 @@ export type DashboardVariant = 'inset' | 'sidebar' | 'floating';
7
8
  export type ThemeSwitchPlacement = 'topbar' | 'sidebar' | false;
8
9
  export type AuthLayoutVariant = 'centered' | 'split';
9
10
  export type BrandSize = 'sm' | 'md' | 'lg';
11
+ export type BrandLogo = string | Component;
10
12
  export type DashboardNavigation = NavItem[] | NavSection[];
11
13
  export interface DashboardAccount {
12
14
  name: string;
@@ -41,7 +43,28 @@ export interface DashboardBrand {
41
43
  logo?: string;
42
44
  to?: LinkTarget;
43
45
  }
44
- export type DashboardSearch = boolean | CommandGroup[];
46
+ export type DashboardSearchFunction = (query: string, signal: AbortSignal) => CommandGroup[] | Promise<CommandGroup[]>;
47
+ export type DashboardSearch = boolean | CommandGroup[] | DashboardSearchFunction;
48
+ export interface DashboardSearchProps {
49
+ label?: string;
50
+ placeholder?: string;
51
+ debounce?: number;
52
+ minQueryLength?: number;
53
+ filter?: boolean;
54
+ loading?: boolean;
55
+ recentKey?: string;
56
+ recentLimit?: number;
57
+ recentLabel?: string;
58
+ emptyText?: string;
59
+ minQueryText?: string;
60
+ errorText?: string;
61
+ loadingText?: string;
62
+ resultsText?: (count: number) => string;
63
+ notice?: string;
64
+ footerMove?: string;
65
+ footerSelect?: string;
66
+ footerClose?: string;
67
+ }
45
68
  export interface PageStatus {
46
69
  label: string;
47
70
  tone?: Tone;
@@ -6,3 +6,4 @@ export * from './useLink';
6
6
  export * from './useTheme';
7
7
  export * from './usePreset';
8
8
  export * from './useLocale';
9
+ export * from './useFieldBoundary';
@@ -6,3 +6,4 @@ export * from "./useLink.mjs";
6
6
  export * from "./useTheme.mjs";
7
7
  export * from "./usePreset.mjs";
8
8
  export * from "./useLocale.mjs";
9
+ export * from "./useFieldBoundary.mjs";
@@ -7,6 +7,7 @@ export interface FieldContext {
7
7
  invalid: ComputedRef<boolean>;
8
8
  required: ComputedRef<boolean>;
9
9
  disabled: ComputedRef<boolean>;
10
+ setControlError: (message: string | undefined, source?: object) => void;
10
11
  }
11
12
  export declare function useField(): FieldContext | null;
12
13
  export interface FieldControlOptions {
@@ -31,4 +32,5 @@ export declare function useFieldControl(options?: FieldControlOptions): {
31
32
  'aria-required': "true" | undefined;
32
33
  disabled: true | undefined;
33
34
  }>;
35
+ setControlError: (message: string | undefined) => void | undefined;
34
36
  };
@@ -1,4 +1,4 @@
1
- import { computed, inject, toValue } from "vue";
1
+ import { computed, getCurrentScope, inject, onScopeDispose, toValue } from "vue";
2
2
  import { FIELD_KEY } from "../internal/keys.mjs";
3
3
  export function useField() {
4
4
  return inject(FIELD_KEY, null);
@@ -21,5 +21,8 @@ export function useFieldControl(options = {}) {
21
21
  "aria-required": required.value ? "true" : void 0,
22
22
  disabled: disabled.value || void 0
23
23
  }));
24
- return { field, id, invalid, required, disabled, describedBy, attrs };
24
+ const source = {};
25
+ const setControlError = (message) => field?.setControlError(message || void 0, source);
26
+ if (field && getCurrentScope()) onScopeDispose(() => field.setControlError(void 0, source));
27
+ return { field, id, invalid, required, disabled, describedBy, attrs, setControlError };
25
28
  }
@@ -0,0 +1 @@
1
+ export declare function provideFieldBoundary(): void;
@@ -0,0 +1,5 @@
1
+ import { provide } from "vue";
2
+ import { FIELD_KEY } from "../internal/keys.mjs";
3
+ export function provideFieldBoundary() {
4
+ provide(FIELD_KEY, null);
5
+ }
@@ -1,8 +1,15 @@
1
1
  import type { MaybeRefOrGetter } from 'vue';
2
2
  export interface UseFileDropOptions {
3
3
  disabled?: MaybeRefOrGetter<boolean | undefined>;
4
+ ignore?: (event: DragEvent) => boolean;
4
5
  onDrop: (files: File[], event: DragEvent) => void;
5
6
  }
7
+ export interface DroppedFile {
8
+ file: File;
9
+ path: string;
10
+ }
11
+ export declare function readDroppedFiles(transfer: DataTransfer | null | undefined): Promise<DroppedFile[]>;
6
12
  export declare function useFileDrop(target: MaybeRefOrGetter<HTMLElement | null | undefined>, options: UseFileDropOptions): {
7
13
  over: import("vue").Ref<boolean, boolean>;
14
+ reset: () => void;
8
15
  };
@@ -1,35 +1,141 @@
1
1
  import { onScopeDispose, ref, toValue, watch } from "vue";
2
+ const claimedEvents = /* @__PURE__ */ new WeakSet();
2
3
  function carriesFiles(event) {
3
4
  return Array.from(event.dataTransfer?.types ?? []).includes("Files");
4
5
  }
6
+ function readFileEntry(entry) {
7
+ return new Promise((resolve, reject) => entry.file(resolve, reject));
8
+ }
9
+ function readDirectoryBatch(reader) {
10
+ return new Promise((resolve, reject) => reader.readEntries(resolve, reject));
11
+ }
12
+ async function walkEntry(entry, prefix, result) {
13
+ if (entry.isFile) {
14
+ try {
15
+ const file = await readFileEntry(entry);
16
+ result.push({ file, path: `${prefix}${entry.name}` });
17
+ } catch {
18
+ return;
19
+ }
20
+ return;
21
+ }
22
+ if (!entry.isDirectory) return;
23
+ const reader = entry.createReader();
24
+ const children = [];
25
+ for (; ; ) {
26
+ let batch;
27
+ try {
28
+ batch = await readDirectoryBatch(reader);
29
+ } catch {
30
+ break;
31
+ }
32
+ if (!batch.length) break;
33
+ children.push(...batch);
34
+ }
35
+ for (const child of children) await walkEntry(child, `${prefix}${entry.name}/`, result);
36
+ }
37
+ export function readDroppedFiles(transfer) {
38
+ if (!transfer) return Promise.resolve([]);
39
+ const pending = [];
40
+ for (const item of Array.from(transfer.items ?? [])) {
41
+ if (item.kind !== "file") continue;
42
+ const entry = typeof item.webkitGetAsEntry === "function" ? item.webkitGetAsEntry() : null;
43
+ const fallback = entry ? null : item.getAsFile();
44
+ if (entry) pending.push(entry);
45
+ else if (fallback) pending.push(fallback);
46
+ }
47
+ if (!pending.length)
48
+ return Promise.resolve(
49
+ Array.from(transfer.files ?? []).map((file) => ({
50
+ file,
51
+ path: file.webkitRelativePath || file.name
52
+ }))
53
+ );
54
+ return (async () => {
55
+ const result = [];
56
+ for (const entry of pending) {
57
+ if (entry instanceof File) result.push({ file: entry, path: entry.name });
58
+ else await walkEntry(entry, "", result);
59
+ }
60
+ return result;
61
+ })();
62
+ }
5
63
  export function useFileDrop(target, options) {
6
64
  const over = ref(false);
7
65
  let depth = 0;
66
+ let covered = false;
67
+ let watching = false;
8
68
  function isDisabled() {
9
69
  return Boolean(toValue(options.disabled));
10
70
  }
71
+ function isIgnored(event) {
72
+ return claimedEvents.has(event) || Boolean(options.ignore?.(event));
73
+ }
74
+ function sync() {
75
+ over.value = depth > 0 && !covered;
76
+ }
77
+ function watchWindow(enable) {
78
+ if (typeof window === "undefined" || watching === enable) return;
79
+ watching = enable;
80
+ const method = enable ? "addEventListener" : "removeEventListener";
81
+ window[method]("drop", reset, true);
82
+ window[method]("dragend", reset, true);
83
+ }
84
+ function reset() {
85
+ depth = 0;
86
+ covered = false;
87
+ over.value = false;
88
+ watchWindow(false);
89
+ }
90
+ function track(event) {
91
+ covered = isIgnored(event);
92
+ if (!covered) claimedEvents.add(event);
93
+ sync();
94
+ }
11
95
  function onDragEnter(event) {
12
96
  if (!carriesFiles(event) || isDisabled()) return;
13
- event.preventDefault();
14
97
  depth++;
15
- over.value = true;
98
+ watchWindow(true);
99
+ if (isIgnored(event)) {
100
+ covered = true;
101
+ sync();
102
+ return;
103
+ }
104
+ event.preventDefault();
105
+ track(event);
16
106
  }
17
107
  function onDragOver(event) {
18
108
  if (!carriesFiles(event)) return;
109
+ if (isDisabled()) {
110
+ if (!isIgnored(event)) {
111
+ event.preventDefault();
112
+ if (event.dataTransfer) event.dataTransfer.dropEffect = "none";
113
+ }
114
+ return;
115
+ }
116
+ if (isIgnored(event)) {
117
+ covered = true;
118
+ sync();
119
+ return;
120
+ }
19
121
  event.preventDefault();
20
- if (event.dataTransfer) event.dataTransfer.dropEffect = isDisabled() ? "none" : "copy";
122
+ if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
123
+ track(event);
21
124
  }
22
125
  function onDragLeave(event) {
23
126
  if (!carriesFiles(event)) return;
24
127
  depth = Math.max(0, depth - 1);
25
- if (depth === 0) over.value = false;
128
+ if (depth === 0) reset();
129
+ else sync();
26
130
  }
27
131
  function onDropEvent(event) {
28
132
  if (!carriesFiles(event)) return;
133
+ const ignored = isIgnored(event);
134
+ reset();
135
+ if (ignored) return;
29
136
  event.preventDefault();
30
- depth = 0;
31
- over.value = false;
32
137
  if (isDisabled()) return;
138
+ claimedEvents.add(event);
33
139
  options.onDrop(Array.from(event.dataTransfer?.files ?? []), event);
34
140
  }
35
141
  const handlers = {
@@ -57,6 +163,7 @@ export function useFileDrop(target, options) {
57
163
  onScopeDispose(() => {
58
164
  stop();
59
165
  bind(toValue(target), false);
166
+ watchWindow(false);
60
167
  }, true);
61
- return { over };
168
+ return { over, reset };
62
169
  }