@xleddyl/443-components-vue 0.2.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/README.md +106 -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/FieldBoundary.vue +14 -0
  10. package/dist/components/core/FieldBoundary.vue.d.ts +15 -0
  11. package/dist/components/core/FieldMessage.vue +28 -0
  12. package/dist/components/core/FieldMessage.vue.d.ts +409 -0
  13. package/dist/components/core/Form.vue +109 -11
  14. package/dist/components/core/Form.vue.d.ts +45 -6
  15. package/dist/components/core/FormAlerts.vue +30 -0
  16. package/dist/components/core/FormAlerts.vue.d.ts +393 -0
  17. package/dist/components/core/FormField.vue +54 -17
  18. package/dist/components/core/FormField.vue.d.ts +5 -4
  19. package/dist/components/core/Icon.vue.d.ts +2 -2
  20. package/dist/components/core/Input.vue.d.ts +4 -4
  21. package/dist/components/core/Kbd.vue.d.ts +2 -2
  22. package/dist/components/core/Root.vue.d.ts +6 -6
  23. package/dist/components/core/Spinner.vue +13 -1
  24. package/dist/components/core/Spinner.vue.d.ts +4 -2
  25. package/dist/components/core/Textarea.vue.d.ts +4 -4
  26. package/dist/components/core/VisuallyHidden.vue.d.ts +6 -6
  27. package/dist/components/core/index.d.ts +3 -0
  28. package/dist/components/core/index.mjs +3 -0
  29. package/dist/components/data/Avatar.vue.d.ts +2 -2
  30. package/dist/components/data/AvatarGroup.vue.d.ts +2 -2
  31. package/dist/components/data/Badge.vue.d.ts +2 -2
  32. package/dist/components/data/DescriptionList.vue.d.ts +2 -2
  33. package/dist/components/data/FilterPill.vue +35 -0
  34. package/dist/components/data/FilterPill.vue.d.ts +445 -0
  35. package/dist/components/data/FilterPills.vue +100 -27
  36. package/dist/components/data/FilterPills.vue.d.ts +47 -411
  37. package/dist/components/data/Pagination.vue.d.ts +4 -4
  38. package/dist/components/data/SelectionBar.vue +81 -0
  39. package/dist/components/data/SelectionBar.vue.d.ts +427 -0
  40. package/dist/components/data/Stat.vue.d.ts +8 -8
  41. package/dist/components/data/Tag.vue.d.ts +4 -4
  42. package/dist/components/data/Timeline.vue.d.ts +2 -2
  43. package/dist/components/data/Tree.vue +245 -21
  44. package/dist/components/data/Tree.vue.d.ts +40 -10
  45. package/dist/components/data/index.d.ts +3 -0
  46. package/dist/components/data/index.mjs +3 -0
  47. package/dist/components/data/types.d.ts +26 -2
  48. package/dist/components/feedback/Alert.vue.d.ts +18 -18
  49. package/dist/components/feedback/EmptyState.vue.d.ts +2 -2
  50. package/dist/components/feedback/LoadingOverlay.vue.d.ts +2 -2
  51. package/dist/components/feedback/Meter.vue.d.ts +2 -2
  52. package/dist/components/feedback/Progress.vue.d.ts +2 -2
  53. package/dist/components/feedback/ProgressRing.vue.d.ts +2 -2
  54. package/dist/components/feedback/Skeleton.vue.d.ts +3 -3
  55. package/dist/components/forms/Calendar.vue.d.ts +4 -4
  56. package/dist/components/forms/CheckboxGroup.vue +2 -1
  57. package/dist/components/forms/ColorInput.vue.d.ts +6 -6
  58. package/dist/components/forms/DateInput.vue.d.ts +14 -14
  59. package/dist/components/forms/DatePicker.vue.d.ts +6 -6
  60. package/dist/components/forms/FileInput.vue +160 -34
  61. package/dist/components/forms/FileInput.vue.d.ts +43 -15
  62. package/dist/components/forms/InputAddon.vue.d.ts +2 -2
  63. package/dist/components/forms/InputGroup.vue.d.ts +2 -2
  64. package/dist/components/forms/NumberInput.vue.d.ts +6 -6
  65. package/dist/components/forms/PasswordInput.vue.d.ts +16 -16
  66. package/dist/components/forms/PinInput.vue.d.ts +6 -6
  67. package/dist/components/forms/Radio.vue.d.ts +2 -2
  68. package/dist/components/forms/RadioGroup.vue +2 -1
  69. package/dist/components/forms/SegmentedControl.vue +33 -8
  70. package/dist/components/forms/SegmentedControl.vue.d.ts +15 -7
  71. package/dist/components/forms/Slider.vue.d.ts +6 -6
  72. package/dist/components/forms/Switch.vue.d.ts +6 -6
  73. package/dist/components/forms/TimeInput.vue.d.ts +16 -16
  74. package/dist/components/forms/types.d.ts +17 -0
  75. package/dist/components/layout/Accordion.vue +25 -5
  76. package/dist/components/layout/Accordion.vue.d.ts +11 -8
  77. package/dist/components/layout/AppShell.vue +1 -1
  78. package/dist/components/layout/AppShell.vue.d.ts +7 -7
  79. package/dist/components/layout/Breadcrumbs.vue +28 -20
  80. package/dist/components/layout/Breadcrumbs.vue.d.ts +18 -3
  81. package/dist/components/layout/Card.vue +22 -3
  82. package/dist/components/layout/Card.vue.d.ts +10 -4
  83. package/dist/components/layout/CopyButton.vue.d.ts +4 -4
  84. package/dist/components/layout/Grid.vue.d.ts +2 -2
  85. package/dist/components/layout/NavLink.vue.d.ts +8 -8
  86. package/dist/components/layout/PageHeader.vue +10 -1
  87. package/dist/components/layout/PageHeader.vue.d.ts +17 -9
  88. package/dist/components/layout/Separator.vue.d.ts +2 -2
  89. package/dist/components/layout/Sidebar.vue.d.ts +2 -2
  90. package/dist/components/layout/SidebarSection.vue.d.ts +2 -2
  91. package/dist/components/layout/Stack.vue.d.ts +6 -6
  92. package/dist/components/layout/Tabs.vue +37 -7
  93. package/dist/components/layout/Tabs.vue.d.ts +11 -4
  94. package/dist/components/layout/ThemeSwitch.vue.d.ts +2 -2
  95. package/dist/components/layout/Toolbar.vue.d.ts +2 -2
  96. package/dist/components/layout/types.d.ts +8 -1
  97. package/dist/components/overlays/CommandPalette.vue +35 -8
  98. package/dist/components/overlays/CommandPalette.vue.d.ts +273 -497
  99. package/dist/components/overlays/ConfirmDialog.vue.d.ts +8 -6
  100. package/dist/components/overlays/ConfirmHost.vue +5 -1
  101. package/dist/components/overlays/ConfirmHost.vue.d.ts +10 -8
  102. package/dist/components/overlays/ContextMenu.vue.d.ts +4 -4
  103. package/dist/components/overlays/Drawer.vue +4 -2
  104. package/dist/components/overlays/Drawer.vue.d.ts +8 -6
  105. package/dist/components/overlays/DropdownMenu.vue.d.ts +2 -2
  106. package/dist/components/overlays/HoverCard.vue +2 -1
  107. package/dist/components/overlays/HoverCard.vue.d.ts +8 -8
  108. package/dist/components/overlays/Modal.vue +5 -3
  109. package/dist/components/overlays/Modal.vue.d.ts +8 -6
  110. package/dist/components/overlays/Popover.vue +2 -1
  111. package/dist/components/overlays/Popover.vue.d.ts +8 -8
  112. package/dist/components/overlays/Toaster.vue.d.ts +4 -4
  113. package/dist/components/overlays/Tooltip.vue.d.ts +2 -2
  114. package/dist/components/overlays/types.d.ts +11 -5
  115. package/dist/components/templates/AccountMenu.vue.d.ts +6 -6
  116. package/dist/components/templates/AppearanceSettings.vue.d.ts +2 -2
  117. package/dist/components/templates/AuthLayout.vue.d.ts +2 -2
  118. package/dist/components/templates/Brand.vue +34 -5
  119. package/dist/components/templates/Brand.vue.d.ts +20 -15
  120. package/dist/components/templates/DashboardLayout.vue +49 -10
  121. package/dist/components/templates/DashboardLayout.vue.d.ts +332 -553
  122. package/dist/components/templates/DashboardPage.vue.d.ts +2 -2
  123. package/dist/components/templates/DetailPage.vue.d.ts +4 -4
  124. package/dist/components/templates/EmptyPage.vue.d.ts +2 -2
  125. package/dist/components/templates/ErrorPage.vue.d.ts +2 -2
  126. package/dist/components/templates/ListPage.vue +17 -11
  127. package/dist/components/templates/ListPage.vue.d.ts +3 -3
  128. package/dist/components/templates/NotFoundPage.vue.d.ts +1 -1
  129. package/dist/components/templates/SaveBar.vue.d.ts +4 -4
  130. package/dist/components/templates/SettingsGroup.vue.d.ts +2 -2
  131. package/dist/components/templates/SettingsModal.vue +5 -2
  132. package/dist/components/templates/SettingsModal.vue.d.ts +13 -8
  133. package/dist/components/templates/SettingsPage.vue.d.ts +4 -4
  134. package/dist/components/templates/SettingsSection.vue.d.ts +12 -8
  135. package/dist/components/templates/types.d.ts +25 -2
  136. package/dist/composables/core.d.ts +1 -0
  137. package/dist/composables/core.mjs +1 -0
  138. package/dist/composables/useField.d.ts +8 -1
  139. package/dist/composables/useField.mjs +41 -10
  140. package/dist/composables/useFieldBoundary.d.ts +2 -0
  141. package/dist/composables/useFieldBoundary.mjs +9 -0
  142. package/dist/composables/useFileDrop.d.ts +20 -0
  143. package/dist/composables/useFileDrop.mjs +115 -7
  144. package/dist/composables/useForm.d.ts +36 -19
  145. package/dist/composables/useForm.mjs +258 -51
  146. package/dist/editor/RichTextEditor.vue +32 -4
  147. package/dist/editor/RichTextEditor.vue.d.ts +11 -6
  148. package/dist/editor/rich-text-editor.css +1 -1
  149. package/dist/editor/types.d.ts +3 -0
  150. package/dist/grid/GridToolbar.vue.d.ts +4 -4
  151. package/dist/grid/cells/BadgeCell.vue.d.ts +2 -2
  152. package/dist/grid/cells/BooleanCell.vue.d.ts +2 -2
  153. package/dist/grid/cells/DateCell.vue.d.ts +2 -2
  154. package/dist/grid/cells/ImageCell.vue.d.ts +2 -2
  155. package/dist/grid/cells/LinkCell.vue.d.ts +2 -2
  156. package/dist/internal/core/ButtonElement.d.ts +2 -0
  157. package/dist/internal/core/ButtonElement.mjs +8 -0
  158. package/dist/internal/data/tree.d.ts +8 -0
  159. package/dist/internal/data/tree.mjs +41 -0
  160. package/dist/internal/forms/files.d.ts +9 -0
  161. package/dist/internal/forms/files.mjs +32 -1
  162. package/dist/internal/forms/standard-schema.d.ts +17 -0
  163. package/dist/internal/forms/standard-schema.mjs +40 -0
  164. package/dist/internal/keys.d.ts +2 -1
  165. package/dist/internal/keys.mjs +1 -0
  166. package/dist/internal/overlays/DialogFrame.vue +17 -7
  167. package/dist/internal/overlays/DialogFrame.vue.d.ts +9 -5
  168. package/dist/internal/overlays/MenuList.vue +2 -0
  169. package/dist/internal/overlays/MenuList.vue.d.ts +5 -5
  170. package/dist/internal/overlays/OverlayView.vue +2 -0
  171. package/dist/internal/overlays/OverlayView.vue.d.ts +14 -12
  172. package/dist/internal/overlays/dialog.d.ts +4 -1
  173. package/dist/internal/overlays/dialog.mjs +39 -5
  174. package/dist/internal/overlays/stack.d.ts +2 -1
  175. package/dist/locale/en.mjs +19 -2
  176. package/dist/locale/it.mjs +19 -2
  177. package/dist/locale/types.d.ts +17 -0
  178. package/dist/nuxt/module.d.ts +1 -0
  179. package/dist/nuxt/module.mjs +6 -3
  180. package/dist/nuxt/runtime/layouts/auth.vue.d.ts +8 -8
  181. package/dist/nuxt/runtime/layouts/dashboard.vue.d.ts +8 -8
  182. package/dist/styles/base.css +2 -0
  183. package/dist/styles/core/button.css +1 -13
  184. package/dist/styles/core/field-message.css +34 -0
  185. package/dist/styles/core/form-field.css +0 -23
  186. package/dist/styles/core/form.css +11 -0
  187. package/dist/styles/core/kbd.css +2 -2
  188. package/dist/styles/core/spinner.css +19 -0
  189. package/dist/styles/core.css +1 -0
  190. package/dist/styles/data/avatar.css +1 -1
  191. package/dist/styles/data/badge.css +1 -1
  192. package/dist/styles/data/filter-pills.css +40 -4
  193. package/dist/styles/data/pagination.css +0 -1
  194. package/dist/styles/data/selection-bar.css +89 -0
  195. package/dist/styles/data/stat.css +1 -6
  196. package/dist/styles/data/table.css +1 -3
  197. package/dist/styles/data/tag.css +1 -4
  198. package/dist/styles/data/tree.css +163 -2
  199. package/dist/styles/data.css +1 -0
  200. package/dist/styles/feedback/alert.css +0 -1
  201. package/dist/styles/feedback/empty-state.css +0 -1
  202. package/dist/styles/forms/calendar.css +1 -1
  203. package/dist/styles/forms/color-input.css +1 -1
  204. package/dist/styles/forms/combobox.css +0 -1
  205. package/dist/styles/forms/date-picker.css +1 -1
  206. package/dist/styles/forms/file-input.css +17 -1
  207. package/dist/styles/forms/number-input.css +1 -1
  208. package/dist/styles/forms/password-input.css +1 -5
  209. package/dist/styles/forms/segmented.css +8 -0
  210. package/dist/styles/forms/select.css +1 -1
  211. package/dist/styles/forms/slider.css +2 -2
  212. package/dist/styles/forms/switch.css +0 -1
  213. package/dist/styles/layout/accordion.css +22 -1
  214. package/dist/styles/layout/app-shell.css +4 -0
  215. package/dist/styles/layout/breadcrumbs.css +16 -1
  216. package/dist/styles/layout/card.css +20 -6
  217. package/dist/styles/layout/copy-button.css +2 -2
  218. package/dist/styles/layout/nav-link.css +2 -3
  219. package/dist/styles/layout/sidebar-nav.css +1 -1
  220. package/dist/styles/layout/sidebar.css +2 -2
  221. package/dist/styles/layout/tabs.css +65 -3
  222. package/dist/styles/layout/theme-switch.css +1 -3
  223. package/dist/styles/overlays/command.css +21 -3
  224. package/dist/styles/overlays/confirm.css +0 -1
  225. package/dist/styles/overlays/menu.css +3 -5
  226. package/dist/styles/overlays/modal.css +38 -0
  227. package/dist/styles/overlays/toast.css +0 -1
  228. package/dist/styles/templates/auth-layout.css +0 -1
  229. package/dist/styles/templates/brand.css +15 -0
  230. package/dist/styles/templates/empty-page.css +4 -4
  231. package/dist/styles/templates/form-page.css +1 -1
  232. package/dist/styles/templates/list-page.css +2 -6
  233. package/dist/styles/templates/page.css +1 -1
  234. package/dist/styles/templates/settings-modal.css +2 -3
  235. package/dist/styles/tokens.css +1 -1
  236. package/package.json +1 -1
@@ -23,7 +23,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
23
23
  results?: (string | number) | undefined;
24
24
  placeholder?: string | undefined;
25
25
  size?: import("./types.ts").ModalSize;
26
- ref?: import("vue").VNodeRef | undefined;
27
26
  class?: import("vue").ClassValue;
28
27
  role?: string | undefined;
29
28
  'aria-label'?: string | undefined;
@@ -173,6 +172,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
173
172
  'aria-valuemin'?: (string | number) | undefined;
174
173
  'aria-valuenow'?: (string | number) | undefined;
175
174
  'aria-valuetext'?: string | undefined;
175
+ ref?: import("vue").VNodeRef | undefined;
176
176
  ref_for?: boolean | undefined | undefined;
177
177
  ref_key?: string | undefined | undefined;
178
178
  accesskey?: string | undefined;
@@ -209,20 +209,21 @@ declare const __VLS_base: import("vue").DefineComponent<{
209
209
  exportparts?: string;
210
210
  part?: string;
211
211
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
212
- onClose?: (() => any) | undefined;
212
+ dismissible?: boolean | undefined;
213
213
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
214
214
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
215
215
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
216
216
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
217
217
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
218
218
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
219
+ onClose?: (() => any) | undefined;
219
220
  flush?: boolean;
220
- dismissible?: boolean | undefined;
221
221
  sheet?: boolean;
222
222
  onOpen?: (() => any) | undefined;
223
223
  rootClass?: unknown;
224
224
  hideClose?: boolean;
225
225
  closeLabel?: string;
226
+ beforeClose?: import("./types.ts").DialogBeforeClose;
226
227
  closedby?: import("../../index.ts").DialogClosedBy;
227
228
  }, {
228
229
  confirm: typeof confirm;
@@ -249,7 +250,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
249
250
  results?: (string | number) | undefined;
250
251
  placeholder?: string | undefined;
251
252
  size?: import("./types.ts").ModalSize;
252
- ref?: import("vue").VNodeRef | undefined;
253
253
  class?: import("vue").ClassValue;
254
254
  role?: string | undefined;
255
255
  'aria-label'?: string | undefined;
@@ -399,6 +399,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
399
399
  'aria-valuemin'?: (string | number) | undefined;
400
400
  'aria-valuenow'?: (string | number) | undefined;
401
401
  'aria-valuetext'?: string | undefined;
402
+ ref?: import("vue").VNodeRef | undefined;
402
403
  ref_for?: boolean | undefined | undefined;
403
404
  ref_key?: string | undefined | undefined;
404
405
  accesskey?: string | undefined;
@@ -435,20 +436,21 @@ declare const __VLS_base: import("vue").DefineComponent<{
435
436
  exportparts?: string;
436
437
  part?: string;
437
438
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
438
- onClose?: (() => any) | undefined;
439
+ dismissible?: boolean | undefined;
439
440
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
440
441
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
441
442
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
442
443
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
443
444
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
444
445
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
446
+ onClose?: (() => any) | undefined;
445
447
  flush?: boolean;
446
- dismissible?: boolean | undefined;
447
448
  sheet?: boolean;
448
449
  onOpen?: (() => any) | undefined;
449
450
  rootClass?: unknown;
450
451
  hideClose?: boolean;
451
452
  closeLabel?: string;
453
+ beforeClose?: import("./types.ts").DialogBeforeClose;
452
454
  closedby?: import("../../index.ts").DialogClosedBy;
453
455
  }> & Readonly<{
454
456
  onCancel?: (() => any) | undefined;
@@ -15,7 +15,11 @@
15
15
  @resolve="onResolve"
16
16
  @after-leave="onAfterLeave"
17
17
  >
18
- <component :is="current.body" v-if="current && current.kind !== 'prompt' && current.body" />
18
+ <component
19
+ :is="current.body"
20
+ v-if="current && current.kind !== 'prompt' && current.body"
21
+ @close="dialogRef?.cancel()"
22
+ />
19
23
  <FormField
20
24
  v-else-if="current?.kind === 'prompt'"
21
25
  :label="current.label"
@@ -15,7 +15,6 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
15
15
  readonly results?: (string | number) | undefined;
16
16
  readonly placeholder?: string | undefined | undefined;
17
17
  readonly size?: import("./types.ts").ModalSize | undefined;
18
- readonly ref?: import("vue").VNodeRef | undefined;
19
18
  readonly class?: import("vue").ClassValue;
20
19
  readonly role?: string | undefined | undefined;
21
20
  readonly 'aria-label'?: string | undefined | undefined;
@@ -128,7 +127,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
128
127
  readonly 'aria-colindex'?: (string | number) | undefined;
129
128
  readonly 'aria-colspan'?: (string | number) | undefined;
130
129
  readonly 'aria-controls'?: string | undefined | undefined;
131
- readonly 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
130
+ readonly 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
132
131
  readonly 'aria-describedby'?: string | undefined | undefined;
133
132
  readonly 'aria-details'?: string | undefined | undefined;
134
133
  readonly 'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -165,6 +164,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
165
164
  readonly 'aria-valuemin'?: (string | number) | undefined;
166
165
  readonly 'aria-valuenow'?: (string | number) | undefined;
167
166
  readonly 'aria-valuetext'?: string | undefined | undefined;
167
+ readonly ref?: import("vue").VNodeRef | undefined;
168
168
  readonly ref_for?: boolean | undefined | undefined;
169
169
  readonly ref_key?: string | undefined | undefined;
170
170
  readonly accesskey?: string | undefined | undefined;
@@ -201,20 +201,21 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
201
201
  readonly exportparts?: string | undefined;
202
202
  readonly part?: string | undefined;
203
203
  readonly popover?: (import("../../index.ts").PopoverMode | "" | boolean) | undefined;
204
- readonly onClose?: (() => any) | undefined;
204
+ readonly dismissible?: boolean | undefined;
205
205
  readonly onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
206
206
  readonly onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
207
207
  readonly onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
208
208
  readonly onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
209
209
  readonly onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
210
210
  readonly onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
211
+ readonly onClose?: (() => any) | undefined;
211
212
  readonly flush?: boolean | undefined;
212
- readonly dismissible?: boolean | undefined;
213
213
  readonly sheet?: boolean | undefined;
214
214
  readonly onOpen?: (() => any) | undefined;
215
215
  readonly rootClass?: unknown;
216
216
  readonly hideClose?: boolean | undefined;
217
217
  readonly closeLabel?: string | undefined;
218
+ readonly beforeClose?: import("./types.ts").DialogBeforeClose | undefined;
218
219
  readonly closedby?: import("../../index.ts").DialogClosedBy | undefined;
219
220
  readonly onCancel?: (() => any) | undefined;
220
221
  readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
@@ -237,7 +238,6 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
237
238
  readonly results?: (string | number) | undefined;
238
239
  readonly placeholder?: string | undefined | undefined;
239
240
  readonly size?: import("./types.ts").ModalSize | undefined;
240
- readonly ref?: import("vue").VNodeRef | undefined;
241
241
  readonly class?: import("vue").ClassValue;
242
242
  readonly role?: string | undefined | undefined;
243
243
  readonly 'aria-label'?: string | undefined | undefined;
@@ -350,7 +350,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
350
350
  readonly 'aria-colindex'?: (string | number) | undefined;
351
351
  readonly 'aria-colspan'?: (string | number) | undefined;
352
352
  readonly 'aria-controls'?: string | undefined | undefined;
353
- readonly 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
353
+ readonly 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
354
354
  readonly 'aria-describedby'?: string | undefined | undefined;
355
355
  readonly 'aria-details'?: string | undefined | undefined;
356
356
  readonly 'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -387,6 +387,7 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
387
387
  readonly 'aria-valuemin'?: (string | number) | undefined;
388
388
  readonly 'aria-valuenow'?: (string | number) | undefined;
389
389
  readonly 'aria-valuetext'?: string | undefined | undefined;
390
+ readonly ref?: import("vue").VNodeRef | undefined;
390
391
  readonly ref_for?: boolean | undefined | undefined;
391
392
  readonly ref_key?: string | undefined | undefined;
392
393
  readonly accesskey?: string | undefined | undefined;
@@ -423,20 +424,21 @@ declare const __VLS_export: import("vue").DefineComponent<Partial<NonNullable<{
423
424
  readonly exportparts?: string | undefined;
424
425
  readonly part?: string | undefined;
425
426
  readonly popover?: (import("../../index.ts").PopoverMode | "" | boolean) | undefined;
426
- readonly onClose?: (() => any) | undefined;
427
+ readonly dismissible?: boolean | undefined;
427
428
  readonly onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
428
429
  readonly onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
429
430
  readonly onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
430
431
  readonly onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
431
432
  readonly onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
432
433
  readonly onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
434
+ readonly onClose?: (() => any) | undefined;
433
435
  readonly flush?: boolean | undefined;
434
- readonly dismissible?: boolean | undefined;
435
436
  readonly sheet?: boolean | undefined;
436
437
  readonly onOpen?: (() => any) | undefined;
437
438
  readonly rootClass?: unknown;
438
439
  readonly hideClose?: boolean | undefined;
439
440
  readonly closeLabel?: string | undefined;
441
+ readonly beforeClose?: import("./types.ts").DialogBeforeClose | undefined;
440
442
  readonly closedby?: import("../../index.ts").DialogClosedBy | undefined;
441
443
  readonly onCancel?: (() => any) | undefined;
442
444
  readonly "onUpdate:open"?: ((value: boolean) => any) | undefined;
@@ -17,7 +17,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
17
17
  style?: import("vue").StyleValue;
18
18
  results?: (string | number) | undefined;
19
19
  placeholder?: string | undefined;
20
- ref?: import("vue").VNodeRef | undefined;
21
20
  class?: import("vue").ClassValue;
22
21
  role?: string | undefined;
23
22
  'aria-label'?: string | undefined;
@@ -167,6 +166,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
167
166
  'aria-valuemin'?: (string | number) | undefined;
168
167
  'aria-valuenow'?: (string | number) | undefined;
169
168
  'aria-valuetext'?: string | undefined;
169
+ ref?: import("vue").VNodeRef | undefined;
170
170
  ref_for?: boolean | undefined | undefined;
171
171
  ref_key?: string | undefined | undefined;
172
172
  accesskey?: string | undefined;
@@ -209,8 +209,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
209
209
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
210
210
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
211
211
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
212
- level?: number;
213
212
  placement?: import("./types").OverlayPlacement;
213
+ level?: number;
214
214
  labelledby?: string;
215
215
  manualPositioning?: boolean;
216
216
  onOpenChange?: ((open: boolean) => any) | undefined;
@@ -232,7 +232,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
232
232
  style?: import("vue").StyleValue;
233
233
  results?: (string | number) | undefined;
234
234
  placeholder?: string | undefined;
235
- ref?: import("vue").VNodeRef | undefined;
236
235
  class?: import("vue").ClassValue;
237
236
  role?: string | undefined;
238
237
  'aria-label'?: string | undefined;
@@ -382,6 +381,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
382
381
  'aria-valuemin'?: (string | number) | undefined;
383
382
  'aria-valuenow'?: (string | number) | undefined;
384
383
  'aria-valuetext'?: string | undefined;
384
+ ref?: import("vue").VNodeRef | undefined;
385
385
  ref_for?: boolean | undefined | undefined;
386
386
  ref_key?: string | undefined | undefined;
387
387
  accesskey?: string | undefined;
@@ -424,8 +424,8 @@ declare const __VLS_base: import("vue").DefineComponent<{
424
424
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
425
425
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
426
426
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
427
- level?: number;
428
427
  placement?: import("./types").OverlayPlacement;
428
+ level?: number;
429
429
  labelledby?: string;
430
430
  manualPositioning?: boolean;
431
431
  onOpenChange?: ((open: boolean) => any) | undefined;
@@ -11,6 +11,7 @@
11
11
  :close-label="closeLabel"
12
12
  :flush="flush"
13
13
  :loading="loading"
14
+ :before-close="beforeClose"
14
15
  @open="emit('open')"
15
16
  @close="emit('close')"
16
17
  @after-leave="emit('afterLeave')"
@@ -33,7 +34,8 @@ defineProps({
33
34
  hideClose: { type: Boolean, required: false },
34
35
  closeLabel: { type: String, required: false },
35
36
  flush: { type: Boolean, required: false },
36
- loading: { type: Boolean, required: false }
37
+ loading: { type: Boolean, required: false },
38
+ beforeClose: { type: Function, required: false }
37
39
  });
38
40
  const slots = defineSlots();
39
41
  const slotNames = computed(() => Object.keys(slots));
@@ -41,7 +43,7 @@ const emit = defineEmits(["open", "close", "afterLeave"]);
41
43
  const open = defineModel("open", { type: Boolean, ...{ default: false } });
42
44
  const frame = useTemplateRef("frame");
43
45
  defineExpose({
44
- close: () => frame.value?.close(),
46
+ close: () => frame.value?.close() ?? Promise.resolve(false),
45
47
  el: computed(() => frame.value?.el ?? null)
46
48
  });
47
49
  </script>
@@ -1,5 +1,5 @@
1
1
  import type { DialogFrameSlots } from '../../internal/overlays/DialogFrame.vue';
2
- import type { DrawerSide, DrawerSize } from './types';
2
+ import type { DialogBeforeClose, DrawerSide, DrawerSize } from './types';
3
3
  type __VLS_Slots = DialogFrameSlots;
4
4
  declare const __VLS_base: import("vue").DefineComponent<{
5
5
  title?: string | undefined;
@@ -11,13 +11,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
11
11
  closeLabel?: string;
12
12
  flush?: boolean;
13
13
  loading?: boolean;
14
+ beforeClose?: DialogBeforeClose;
14
15
  open?: boolean | undefined;
15
16
  key?: PropertyKey | undefined;
16
17
  prefix?: "k-modal" | "k-drawer" | undefined;
17
18
  style?: import("vue").StyleValue;
18
19
  results?: (string | number) | undefined;
19
20
  placeholder?: string | undefined;
20
- ref?: import("vue").VNodeRef | undefined;
21
21
  class?: import("vue").ClassValue;
22
22
  role?: string | undefined;
23
23
  'aria-label'?: string | undefined;
@@ -167,6 +167,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
167
167
  'aria-valuemin'?: (string | number) | undefined;
168
168
  'aria-valuenow'?: (string | number) | undefined;
169
169
  'aria-valuetext'?: string | undefined;
170
+ ref?: import("vue").VNodeRef | undefined;
170
171
  ref_for?: boolean | undefined | undefined;
171
172
  ref_key?: string | undefined | undefined;
172
173
  accesskey?: string | undefined;
@@ -203,17 +204,17 @@ declare const __VLS_base: import("vue").DefineComponent<{
203
204
  exportparts?: string;
204
205
  part?: string;
205
206
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
206
- onCancel?: ((payload: Event) => void) | undefined;
207
207
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
208
208
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
209
209
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
210
210
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
211
211
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
212
212
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
213
+ onCancel?: ((payload: Event) => void) | undefined;
213
214
  rootClass?: unknown;
214
215
  closedby?: import("../../index.ts").DialogClosedBy;
215
216
  }, {
216
- close: () => void | undefined;
217
+ close: () => Promise<boolean>;
217
218
  el: import("vue").ComputedRef<HTMLDialogElement | null>;
218
219
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
219
220
  close: () => any;
@@ -230,13 +231,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
230
231
  closeLabel?: string;
231
232
  flush?: boolean;
232
233
  loading?: boolean;
234
+ beforeClose?: DialogBeforeClose;
233
235
  open?: boolean | undefined;
234
236
  key?: PropertyKey | undefined;
235
237
  prefix?: "k-modal" | "k-drawer" | undefined;
236
238
  style?: import("vue").StyleValue;
237
239
  results?: (string | number) | undefined;
238
240
  placeholder?: string | undefined;
239
- ref?: import("vue").VNodeRef | undefined;
240
241
  class?: import("vue").ClassValue;
241
242
  role?: string | undefined;
242
243
  'aria-label'?: string | undefined;
@@ -386,6 +387,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
386
387
  'aria-valuemin'?: (string | number) | undefined;
387
388
  'aria-valuenow'?: (string | number) | undefined;
388
389
  'aria-valuetext'?: string | undefined;
390
+ ref?: import("vue").VNodeRef | undefined;
389
391
  ref_for?: boolean | undefined | undefined;
390
392
  ref_key?: string | undefined | undefined;
391
393
  accesskey?: string | undefined;
@@ -422,13 +424,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
422
424
  exportparts?: string;
423
425
  part?: string;
424
426
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
425
- onCancel?: ((payload: Event) => void) | undefined;
426
427
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
427
428
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
428
429
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
429
430
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
430
431
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
431
432
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
433
+ onCancel?: ((payload: Event) => void) | undefined;
432
434
  rootClass?: unknown;
433
435
  closedby?: import("../../index.ts").DialogClosedBy;
434
436
  }> & Readonly<{
@@ -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;
21
- ref?: import("vue").VNodeRef | undefined;
22
21
  class?: import("vue").ClassValue;
23
22
  role?: string | undefined;
24
23
  'aria-label'?: string | undefined;
@@ -167,6 +166,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
167
166
  'aria-valuemin'?: (string | number) | undefined;
168
167
  'aria-valuenow'?: (string | number) | undefined;
169
168
  'aria-valuetext'?: string | undefined;
169
+ ref?: import("vue").VNodeRef | undefined;
170
170
  ref_for?: boolean | undefined | undefined;
171
171
  ref_key?: string | undefined | undefined;
172
172
  accesskey?: string | undefined;
@@ -232,7 +232,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
232
232
  style?: import("vue").StyleValue;
233
233
  results?: (string | number) | undefined;
234
234
  placeholder?: string | undefined;
235
- ref?: import("vue").VNodeRef | undefined;
236
235
  class?: import("vue").ClassValue;
237
236
  role?: string | undefined;
238
237
  'aria-label'?: string | undefined;
@@ -381,6 +380,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
381
380
  'aria-valuemin'?: (string | number) | undefined;
382
381
  'aria-valuenow'?: (string | number) | undefined;
383
382
  'aria-valuetext'?: string | undefined;
383
+ ref?: import("vue").VNodeRef | undefined;
384
384
  ref_for?: boolean | undefined | undefined;
385
385
  ref_key?: string | undefined | undefined;
386
386
  accesskey?: string | undefined;
@@ -11,12 +11,13 @@
11
11
  :class="{ 'has-arrow': arrow }"
12
12
  >
13
13
  <span v-if="arrow" class="k-floating-arrow" aria-hidden="true" />
14
- <slot name="content" />
14
+ <FieldBoundary><slot name="content" /></FieldBoundary>
15
15
  </div>
16
16
  </template>
17
17
 
18
18
  <script setup>
19
19
  import { useTemplateRef } from "vue";
20
+ import FieldBoundary from "../core/FieldBoundary.vue";
20
21
  import { useHoverTrigger } from "../../internal/overlays/hover";
21
22
  import { ARROW_OFFSET, syncOpenModel, useFloatingLayer } from "../../internal/floating/layer";
22
23
  import { useSlotTrigger } from "../../internal/floating/trigger";
@@ -1,11 +1,11 @@
1
1
  import type { OverlayPlacement } from './types';
2
2
  declare var __VLS_1: {
3
3
  open: boolean;
4
- }, __VLS_3: {};
4
+ }, __VLS_9: {};
5
5
  type __VLS_Slots = {} & {
6
6
  default?: (props: typeof __VLS_1) => any;
7
7
  } & {
8
- content?: (props: typeof __VLS_3) => any;
8
+ content?: (props: typeof __VLS_9) => any;
9
9
  };
10
10
  declare const __VLS_base: import("vue").DefineComponent<{
11
11
  placement?: OverlayPlacement;
@@ -21,7 +21,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
21
21
  style?: import("vue").StyleValue;
22
22
  results?: (string | number) | undefined;
23
23
  placeholder?: string | undefined | undefined;
24
- ref?: import("vue").VNodeRef | undefined;
25
24
  class?: import("vue").ClassValue;
26
25
  role?: string | undefined | undefined;
27
26
  'aria-label'?: string | undefined | undefined;
@@ -134,7 +133,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
134
133
  'aria-colindex'?: (string | number) | undefined;
135
134
  'aria-colspan'?: (string | number) | undefined;
136
135
  'aria-controls'?: string | undefined | undefined;
137
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
136
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
138
137
  'aria-describedby'?: string | undefined | undefined;
139
138
  'aria-details'?: string | undefined | undefined;
140
139
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -171,6 +170,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
171
170
  'aria-valuemin'?: (string | number) | undefined;
172
171
  'aria-valuenow'?: (string | number) | undefined;
173
172
  'aria-valuetext'?: string | undefined | undefined;
173
+ ref?: import("vue").VNodeRef | undefined;
174
174
  ref_for?: boolean | undefined | undefined;
175
175
  ref_key?: string | undefined | undefined;
176
176
  accesskey?: string | undefined | undefined;
@@ -206,7 +206,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
206
206
  is?: string | undefined | undefined;
207
207
  exportparts?: string | undefined;
208
208
  part?: string | undefined;
209
- popover?: (import("../..").PopoverMode | "" | boolean) | undefined;
209
+ popover?: (import("../../index.ts").PopoverMode | "" | boolean) | undefined;
210
210
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
211
211
  "update:open": (value: boolean) => any;
212
212
  }, string, import("vue").PublicProps, Readonly<{
@@ -223,7 +223,6 @@ declare const __VLS_base: import("vue").DefineComponent<{
223
223
  style?: import("vue").StyleValue;
224
224
  results?: (string | number) | undefined;
225
225
  placeholder?: string | undefined | undefined;
226
- ref?: import("vue").VNodeRef | undefined;
227
226
  class?: import("vue").ClassValue;
228
227
  role?: string | undefined | undefined;
229
228
  'aria-label'?: string | undefined | undefined;
@@ -336,7 +335,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
336
335
  'aria-colindex'?: (string | number) | undefined;
337
336
  'aria-colspan'?: (string | number) | undefined;
338
337
  'aria-controls'?: string | undefined | undefined;
339
- 'aria-current'?: "page" | "location" | "time" | (boolean | "true" | "false") | "step" | "date" | undefined;
338
+ 'aria-current'?: "page" | "time" | (boolean | "true" | "false") | "step" | "location" | "date" | undefined;
340
339
  'aria-describedby'?: string | undefined | undefined;
341
340
  'aria-details'?: string | undefined | undefined;
342
341
  'aria-disabled'?: (boolean | "true" | "false") | undefined;
@@ -373,6 +372,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
373
372
  'aria-valuemin'?: (string | number) | undefined;
374
373
  'aria-valuenow'?: (string | number) | undefined;
375
374
  'aria-valuetext'?: string | undefined | undefined;
375
+ ref?: import("vue").VNodeRef | undefined;
376
376
  ref_for?: boolean | undefined | undefined;
377
377
  ref_key?: string | undefined | undefined;
378
378
  accesskey?: string | undefined | undefined;
@@ -408,7 +408,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
408
408
  is?: string | undefined | undefined;
409
409
  exportparts?: string | undefined;
410
410
  part?: string | undefined;
411
- popover?: (import("../..").PopoverMode | "" | boolean) | undefined;
411
+ popover?: (import("../../index.ts").PopoverMode | "" | boolean) | undefined;
412
412
  }> & Readonly<{
413
413
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
414
414
  }>, {
@@ -3,7 +3,7 @@
3
3
  ref="frame"
4
4
  v-model:open="open"
5
5
  prefix="k-modal"
6
- :root-class="[`k-modal-${size}`, { 'is-sheet': sheet }]"
6
+ :root-class="[`k-modal-${size}`, { 'is-sheet': sheet && size !== 'fullscreen' }]"
7
7
  :title="title"
8
8
  :description="description"
9
9
  :dismissible="dismissible"
@@ -11,6 +11,7 @@
11
11
  :close-label="closeLabel"
12
12
  :flush="flush"
13
13
  :loading="loading"
14
+ :before-close="beforeClose"
14
15
  @open="emit('open')"
15
16
  @close="emit('close')"
16
17
  @after-leave="emit('afterLeave')"
@@ -33,7 +34,8 @@ defineProps({
33
34
  closeLabel: { type: String, required: false },
34
35
  sheet: { type: Boolean, required: false, default: true },
35
36
  flush: { type: Boolean, required: false },
36
- loading: { type: Boolean, required: false }
37
+ loading: { type: Boolean, required: false },
38
+ beforeClose: { type: Function, required: false }
37
39
  });
38
40
  const slots = defineSlots();
39
41
  const slotNames = computed(() => Object.keys(slots));
@@ -41,7 +43,7 @@ const emit = defineEmits(["open", "close", "afterLeave"]);
41
43
  const open = defineModel("open", { type: Boolean, ...{ default: false } });
42
44
  const frame = useTemplateRef("frame");
43
45
  defineExpose({
44
- close: () => frame.value?.close(),
46
+ close: () => frame.value?.close() ?? Promise.resolve(false),
45
47
  el: computed(() => frame.value?.el ?? null)
46
48
  });
47
49
  </script>
@@ -1,5 +1,5 @@
1
1
  import type { DialogFrameSlots } from '../../internal/overlays/DialogFrame.vue';
2
- import type { ModalSize } from './types';
2
+ import type { DialogBeforeClose, ModalSize } from './types';
3
3
  type __VLS_Slots = DialogFrameSlots;
4
4
  declare const __VLS_base: import("vue").DefineComponent<{
5
5
  title?: string | undefined;
@@ -11,13 +11,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
11
11
  sheet?: boolean;
12
12
  flush?: boolean;
13
13
  loading?: boolean;
14
+ beforeClose?: DialogBeforeClose;
14
15
  open?: boolean | undefined;
15
16
  key?: PropertyKey | undefined;
16
17
  prefix?: "k-modal" | "k-drawer" | undefined;
17
18
  style?: import("vue").StyleValue;
18
19
  results?: (string | number) | undefined;
19
20
  placeholder?: string | undefined;
20
- ref?: import("vue").VNodeRef | undefined;
21
21
  class?: import("vue").ClassValue;
22
22
  role?: string | undefined;
23
23
  'aria-label'?: string | undefined;
@@ -167,6 +167,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
167
167
  'aria-valuemin'?: (string | number) | undefined;
168
168
  'aria-valuenow'?: (string | number) | undefined;
169
169
  'aria-valuetext'?: string | undefined;
170
+ ref?: import("vue").VNodeRef | undefined;
170
171
  ref_for?: boolean | undefined | undefined;
171
172
  ref_key?: string | undefined | undefined;
172
173
  accesskey?: string | undefined;
@@ -203,17 +204,17 @@ declare const __VLS_base: import("vue").DefineComponent<{
203
204
  exportparts?: string;
204
205
  part?: string;
205
206
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
206
- onCancel?: ((payload: Event) => void) | undefined;
207
207
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
208
208
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
209
209
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
210
210
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
211
211
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
212
212
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
213
+ onCancel?: ((payload: Event) => void) | undefined;
213
214
  rootClass?: unknown;
214
215
  closedby?: import("../../index.ts").DialogClosedBy;
215
216
  }, {
216
- close: () => void | undefined;
217
+ close: () => Promise<boolean>;
217
218
  el: import("vue").ComputedRef<HTMLDialogElement | null>;
218
219
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
219
220
  close: () => any;
@@ -230,13 +231,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
230
231
  sheet?: boolean;
231
232
  flush?: boolean;
232
233
  loading?: boolean;
234
+ beforeClose?: DialogBeforeClose;
233
235
  open?: boolean | undefined;
234
236
  key?: PropertyKey | undefined;
235
237
  prefix?: "k-modal" | "k-drawer" | undefined;
236
238
  style?: import("vue").StyleValue;
237
239
  results?: (string | number) | undefined;
238
240
  placeholder?: string | undefined;
239
- ref?: import("vue").VNodeRef | undefined;
240
241
  class?: import("vue").ClassValue;
241
242
  role?: string | undefined;
242
243
  'aria-label'?: string | undefined;
@@ -386,6 +387,7 @@ declare const __VLS_base: import("vue").DefineComponent<{
386
387
  'aria-valuemin'?: (string | number) | undefined;
387
388
  'aria-valuenow'?: (string | number) | undefined;
388
389
  'aria-valuetext'?: string | undefined;
390
+ ref?: import("vue").VNodeRef | undefined;
389
391
  ref_for?: boolean | undefined | undefined;
390
392
  ref_key?: string | undefined | undefined;
391
393
  accesskey?: string | undefined;
@@ -422,13 +424,13 @@ declare const __VLS_base: import("vue").DefineComponent<{
422
424
  exportparts?: string;
423
425
  part?: string;
424
426
  popover?: import("../../index.ts").PopoverMode | "" | boolean;
425
- onCancel?: ((payload: Event) => void) | undefined;
426
427
  onVnodeBeforeMount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
427
428
  onVnodeMounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
428
429
  onVnodeBeforeUpdate?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
429
430
  onVnodeUpdated?: (((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void) | ((vnode: import("vue").VNode, oldVNode: import("vue").VNode) => void)[]) | undefined;
430
431
  onVnodeBeforeUnmount?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
431
432
  onVnodeUnmounted?: (((vnode: import("vue").VNode) => void) | ((vnode: import("vue").VNode) => void)[]) | undefined;
433
+ onCancel?: ((payload: Event) => void) | undefined;
432
434
  rootClass?: unknown;
433
435
  closedby?: import("../../index.ts").DialogClosedBy;
434
436
  }> & Readonly<{
@@ -15,12 +15,13 @@
15
15
  tabindex="-1"
16
16
  >
17
17
  <span v-if="arrow" class="k-floating-arrow" aria-hidden="true" />
18
- <slot name="content" :close="layer.hide" />
18
+ <FieldBoundary><slot name="content" :close="layer.hide" /></FieldBoundary>
19
19
  </div>
20
20
  </template>
21
21
 
22
22
  <script setup>
23
23
  import { useId, useTemplateRef, watch } from "vue";
24
+ import FieldBoundary from "../core/FieldBoundary.vue";
24
25
  import { focusFirst } from "../../internal/overlays/focus";
25
26
  import { ARROW_OFFSET, syncOpenModel, useFloatingLayer } from "../../internal/floating/layer";
26
27
  import { setAttributes, useInvoker, useSlotTrigger } from "../../internal/floating/trigger";