@vuetify/v0 0.1.7 → 0.1.9

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 (118) hide show
  1. package/SKILL.md +95 -0
  2. package/dist/adapter-CWp5eQ6R.d.mts +17 -0
  3. package/dist/{adapter-DIx4Rntl.d.mts → adapter-hDuQ9aNN.d.mts} +4 -4
  4. package/dist/browser/index.js +3168 -929
  5. package/dist/components/index.d.mts +2 -2
  6. package/dist/components/index.mjs +23 -23
  7. package/dist/{components-CACff-Lt.mjs → components-mSy9az8x.mjs} +1358 -242
  8. package/dist/composables/index.d.mts +16 -15
  9. package/dist/composables/index.mjs +22 -22
  10. package/dist/{consola-BVzYzeLH.d.mts → consola-C1OjyZVf.d.mts} +1 -1
  11. package/dist/constants/index.d.mts +1 -1
  12. package/dist/constants/index.mjs +1 -1
  13. package/dist/{createDataTable-CLI4TALE.mjs → createDataTable-DIl09siC.mjs} +5 -5
  14. package/dist/{createGroup-Cf6lK9BR.mjs → createGroup-PvzsLu9E.mjs} +1 -1
  15. package/dist/{createPagination-Bu8vE0JW.mjs → createPagination-DZSJ8aO5.mjs} +5 -5
  16. package/dist/{createSelection-DvOR2tKk.mjs → createSelection-DbWP6c7H.mjs} +1 -1
  17. package/dist/{createSingle-Bbcwcq4R.mjs → createSingle-CeAJpbXs.mjs} +6 -6
  18. package/dist/{createTokens-CMRBDlzN.mjs → createTokens-C1gIuKCK.mjs} +27 -5
  19. package/dist/data-table/adapters/client/index.d.mts +1 -1
  20. package/dist/data-table/adapters/client/index.mjs +3 -3
  21. package/dist/data-table/adapters/index.d.mts +4 -4
  22. package/dist/data-table/adapters/index.mjs +5 -5
  23. package/dist/data-table/adapters/server/index.d.mts +1 -1
  24. package/dist/data-table/adapters/server/index.mjs +3 -3
  25. package/dist/data-table/adapters/virtual/index.d.mts +1 -1
  26. package/dist/data-table/adapters/virtual/index.mjs +3 -3
  27. package/dist/data-table/index.d.mts +5 -5
  28. package/dist/data-table/index.mjs +14 -14
  29. package/dist/date/index.mjs +1 -1
  30. package/dist/features/adapters/posthog/index.mjs +2 -2
  31. package/dist/features/index.d.mts +1 -1
  32. package/dist/features/index.mjs +8 -8
  33. package/dist/{globals-BqRH_jdr.mjs → globals-3i9umzyz.mjs} +1 -1
  34. package/dist/{index-8sflFIN8.d.mts → index-BoK8Ln2f.d.mts} +3 -1
  35. package/dist/{index-CKbxWC4t.d.mts → index-C5XZRWlO.d.mts} +2691 -1303
  36. package/dist/{index-CmCMrlt3.d.mts → index-CLDBngUs.d.mts} +1 -1
  37. package/dist/{index-BE848tZ2.d.mts → index-D0qnkRbl.d.mts} +505 -197
  38. package/dist/index.d.mts +19 -18
  39. package/dist/index.mjs +23 -23
  40. package/dist/json/attributes.json +312 -0
  41. package/dist/json/importMap.json +84 -0
  42. package/dist/json/tags.json +168 -0
  43. package/dist/json/web-types.json +1147 -132
  44. package/dist/locale/adapters/index.d.mts +3 -2
  45. package/dist/locale/adapters/index.mjs +2 -2
  46. package/dist/locale/adapters/v0/index.d.mts +1 -1
  47. package/dist/locale/adapters/v0/index.mjs +2 -2
  48. package/dist/locale/adapters/vue-i18n/index.d.mts +22 -0
  49. package/dist/locale/adapters/vue-i18n/index.mjs +26 -0
  50. package/dist/locale/index.d.mts +4 -3
  51. package/dist/locale/index.mjs +8 -9
  52. package/dist/logger/adapters/consola/index.d.mts +1 -1
  53. package/dist/logger/adapters/index.d.mts +4 -4
  54. package/dist/logger/adapters/index.mjs +2 -2
  55. package/dist/logger/adapters/pino/index.d.mts +1 -1
  56. package/dist/logger/adapters/pino/index.mjs +1 -1
  57. package/dist/logger/adapters/v0/index.d.mts +1 -1
  58. package/dist/logger/adapters/v0/index.mjs +2 -2
  59. package/dist/logger/index.d.mts +5 -5
  60. package/dist/logger/index.mjs +3 -3
  61. package/dist/notifications/index.d.mts +78 -0
  62. package/dist/notifications/index.mjs +215 -0
  63. package/dist/palettes/ant/index.d.mts +1 -1
  64. package/dist/palettes/index.d.mts +2 -2
  65. package/dist/palettes/material/index.d.mts +1 -1
  66. package/dist/palettes/md1/index.d.mts +1 -1
  67. package/dist/palettes/md2/index.d.mts +1 -1
  68. package/dist/palettes/radix/index.d.mts +1 -1
  69. package/dist/palettes/tailwind/index.d.mts +1 -1
  70. package/dist/permissions/adapters/index.d.mts +2 -2
  71. package/dist/permissions/adapters/index.mjs +1 -1
  72. package/dist/permissions/adapters/v0/index.d.mts +1 -1
  73. package/dist/permissions/adapters/v0/index.mjs +1 -1
  74. package/dist/permissions/index.d.mts +1 -1
  75. package/dist/permissions/index.mjs +5 -5
  76. package/dist/{pino-Bzighnkd.d.mts → pino-CM1iLXmi.d.mts} +1 -1
  77. package/dist/{posthog-DbPqmaAp.mjs → posthog-CCQFQ5XD.mjs} +1 -1
  78. package/dist/rules/index.d.mts +1 -1
  79. package/dist/rules/index.mjs +9 -10
  80. package/dist/{server-Ch9J86tb.d.mts → server-Ct-h4-OA.d.mts} +1 -1
  81. package/dist/{server-CZ6ahbEH.mjs → server-DHET3KNW.mjs} +1 -1
  82. package/dist/storage/adapters/index.d.mts +2 -2
  83. package/dist/storage/adapters/memory/index.d.mts +1 -1
  84. package/dist/storage/index.d.mts +3 -3
  85. package/dist/storage/index.mjs +21 -21
  86. package/dist/theme/adapters/index.d.mts +1 -1
  87. package/dist/theme/adapters/index.mjs +2 -2
  88. package/dist/theme/adapters/v0/index.d.mts +1 -1
  89. package/dist/theme/adapters/v0/index.mjs +2 -2
  90. package/dist/theme/index.d.mts +1 -1
  91. package/dist/theme/index.mjs +8 -8
  92. package/dist/{useClickOutside-YOGwKo7v.mjs → useClickOutside-hOhNk4eS.mjs} +1251 -165
  93. package/dist/{useFeatures-BGDgUrdr.mjs → useFeatures-CXRQvucQ.mjs} +3 -3
  94. package/dist/{useLocale-C8I_fNAS.mjs → useLocale-BaufqE5Z.mjs} +16 -30
  95. package/dist/{useLogger-B70T4SgK.mjs → useLogger-cGK00Ywd.mjs} +2 -2
  96. package/dist/{usePermissions-afVt2qR7.mjs → usePermissions-CR0HkjsF.mjs} +2 -2
  97. package/dist/{useRules-7C92Xzyt.mjs → useRules-LD-_-Hxt.mjs} +3 -3
  98. package/dist/{useTheme-jp2wL2FJ.mjs → useTheme-Cs79AFNR.mjs} +5 -5
  99. package/dist/utilities/index.d.mts +1 -1
  100. package/dist/utilities/index.mjs +2 -1
  101. package/dist/{v0-V-cQsuZD.mjs → v0-BJYwZgtp.mjs} +1 -1
  102. package/dist/v0-BdD1F6JK.d.mts +19 -0
  103. package/dist/{v0-YAqbXudL.mjs → v0-BoWQ8RK0.mjs} +1 -1
  104. package/dist/{v0-CdUL2eOn.d.mts → v0-CMeh39LQ.d.mts} +1 -1
  105. package/dist/v0-CehUknHv.mjs +62 -0
  106. package/dist/{v0-1bfmyZ5_.d.mts → v0-DFAgNbvC.d.mts} +1 -1
  107. package/dist/{v0-1xxC39wf.d.mts → v0-JPf99NKg.d.mts} +1 -1
  108. package/dist/{v0-CGlkn5u7.mjs → v0-Zu7neOYg.mjs} +1 -1
  109. package/dist/{virtual-DwBiFA25.d.mts → virtual-B1lRbO7Q.d.mts} +1 -1
  110. package/dist/{virtual-eDNVH1fz.mjs → virtual-D0_D5gkh.mjs} +1 -1
  111. package/package.json +12 -4
  112. package/dist/v0-CAKa6tzG.d.mts +0 -22
  113. package/dist/v0-CHvU3jQE.mjs +0 -35
  114. /package/dist/{adapter-JTFG3Jn8.d.mts → adapter-CJQav2JB.d.mts} +0 -0
  115. /package/dist/{index-MHkcqY_y.d.mts → index-BL4uTXWQ.d.mts} +0 -0
  116. /package/dist/{index-B5ZDDkXv.d.mts → index-BvTD7kU8.d.mts} +0 -0
  117. /package/dist/{index-NsE5nARK.d.mts → index-DSao7i57.d.mts} +0 -0
  118. /package/dist/{memory-BTtRdnNn.d.mts → memory-DyBabFV1.d.mts} +0 -0
@@ -1,14 +1,15 @@
1
1
  import { r as isSelfClosingTag } from "./htmlElements-DcYtv0hg.mjs";
2
- import { t as IN_BROWSER } from "./globals-BqRH_jdr.mjs";
3
- import { clamp, isArray, isNull, isNullOrUndefined, isObject, isString, isUndefined, useId as useId$1 } from "./utilities/index.mjs";
4
- import { n as createContext } from "./createTrinity-C_c8eedz.mjs";
5
- import { i as createRegistry } from "./createTokens-CMRBDlzN.mjs";
6
- import { t as createSelection } from "./createSelection-DvOR2tKk.mjs";
7
- import { t as createSingle } from "./createSingle-Bbcwcq4R.mjs";
8
- import { C as useStack, _ as createStep, c as useToggleScope, n as useDocumentEventListener, ot as useProxyModel, st as createOverflow, t as useClickOutside, vt as createBreadcrumbs, w as createSlider } from "./useClickOutside-YOGwKo7v.mjs";
9
- import { t as createGroup } from "./createGroup-Cf6lK9BR.mjs";
10
- import { a as useLocale } from "./useLocale-C8I_fNAS.mjs";
11
- import { t as createPagination } from "./createPagination-Bu8vE0JW.mjs";
2
+ import { t as IN_BROWSER } from "./globals-3i9umzyz.mjs";
3
+ import { clamp, isArray, isElement, isNull, isNullOrUndefined, isObject, isString, isUndefined, useId as useId$1 } from "./utilities/index.mjs";
4
+ import { n as createContext, r as provideContext } from "./createTrinity-C_c8eedz.mjs";
5
+ import { i as createRegistry } from "./createTokens-C1gIuKCK.mjs";
6
+ import { t as createSelection } from "./createSelection-DbWP6c7H.mjs";
7
+ import { t as createSingle } from "./createSingle-CeAJpbXs.mjs";
8
+ import { Dt as createBreadcrumbs, N as useRaf, P as usePopover, Q as useLazy, R as useNotifications, T as createSlider, a as useVirtualFocus, gt as createOverflow, ht as useProxyModel, l as useToggleScope, n as useDocumentEventListener, rt as createForm, t as useClickOutside, u as createValidation, v as createStep, w as useStack } from "./useClickOutside-hOhNk4eS.mjs";
9
+ import { t as createGroup } from "./createGroup-PvzsLu9E.mjs";
10
+ import { t as toArray } from "./toArray-VdROPpy-.mjs";
11
+ import { a as useLocale } from "./useLocale-BaufqE5Z.mjs";
12
+ import { t as createPagination } from "./createPagination-DZSJ8aO5.mjs";
12
13
  import { Fragment, Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createPropsRestProxy, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeProps, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, renderList, renderSlot, resolveDynamicComponent, shallowRef, toDisplayString, toRef, toValue, unref, useAttrs, useId, useModel, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
13
14
  //#region src/components/Atom/Atom.vue
14
15
  /**
@@ -32,7 +33,7 @@ import { Fragment, Teleport, TransitionGroup, computed, createBlock, createComme
32
33
  * serving as the foundation for all other components that need polymorphic
33
34
  * rendering capabilities.
34
35
  */
35
- const _sfc_main$68 = /* @__PURE__ */ defineComponent({
36
+ const _sfc_main$86 = /* @__PURE__ */ defineComponent({
36
37
  name: "Atom",
37
38
  __name: "Atom",
38
39
  props: {
@@ -66,7 +67,7 @@ const _sfc_main$68 = /* @__PURE__ */ defineComponent({
66
67
  //#endregion
67
68
  //#region src/components/Avatar/AvatarRoot.vue
68
69
  const [useAvatarRoot, provideAvatarRoot] = createContext();
69
- const _sfc_main$67 = /* @__PURE__ */ defineComponent({
70
+ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
70
71
  name: "AvatarRoot",
71
72
  __name: "AvatarRoot",
72
73
  props: {
@@ -81,7 +82,7 @@ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
81
82
  });
82
83
  provideAvatarRoot(__props.namespace, selection);
83
84
  return (_ctx, _cache) => {
84
- return openBlock(), createBlock(unref(_sfc_main$68), {
85
+ return openBlock(), createBlock(unref(_sfc_main$86), {
85
86
  as: __props.as,
86
87
  renderless: __props.renderless
87
88
  }, {
@@ -93,7 +94,7 @@ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
93
94
  });
94
95
  //#endregion
95
96
  //#region src/components/Avatar/AvatarFallback.vue
96
- const _sfc_main$66 = /* @__PURE__ */ defineComponent({
97
+ const _sfc_main$84 = /* @__PURE__ */ defineComponent({
97
98
  name: "AvatarFallback",
98
99
  __name: "AvatarFallback",
99
100
  props: {
@@ -107,7 +108,7 @@ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
107
108
  const slotProps = toRef(() => ({ isSelected: ticket.isSelected.value }));
108
109
  onUnmounted(() => context.unregister(ticket.id));
109
110
  return (_ctx, _cache) => {
110
- return unref(ticket).isSelected.value ? (openBlock(), createBlock(unref(_sfc_main$68), {
111
+ return unref(ticket).isSelected.value ? (openBlock(), createBlock(unref(_sfc_main$86), {
111
112
  key: 0,
112
113
  as: __props.as,
113
114
  renderless: __props.renderless
@@ -120,7 +121,7 @@ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
120
121
  });
121
122
  //#endregion
122
123
  //#region src/components/Avatar/AvatarImage.vue
123
- const _sfc_main$65 = /* @__PURE__ */ defineComponent({
124
+ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
124
125
  name: "AvatarImage",
125
126
  inheritAttrs: false,
126
127
  __name: "AvatarImage",
@@ -170,7 +171,7 @@ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
170
171
  }
171
172
  }));
172
173
  return (_ctx, _cache) => {
173
- return withDirectives((openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
174
+ return withDirectives((openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
174
175
  as: __props.as,
175
176
  renderless: __props.renderless
176
177
  }), {
@@ -188,14 +189,14 @@ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
188
189
  * @see https://0.vuetifyjs.com/components/avatar
189
190
  */
190
191
  const Avatar = {
191
- Root: _sfc_main$67,
192
- Image: _sfc_main$65,
193
- Fallback: _sfc_main$66
192
+ Root: _sfc_main$85,
193
+ Image: _sfc_main$83,
194
+ Fallback: _sfc_main$84
194
195
  };
195
196
  //#endregion
196
197
  //#region src/components/Breadcrumbs/BreadcrumbsRoot.vue
197
198
  const [useBreadcrumbsRoot, provideBreadcrumbsRoot] = createContext();
198
- const _sfc_main$64 = /* @__PURE__ */ defineComponent({
199
+ const _sfc_main$82 = /* @__PURE__ */ defineComponent({
199
200
  name: "BreadcrumbsRoot",
200
201
  __name: "BreadcrumbsRoot",
201
202
  props: {
@@ -318,12 +319,12 @@ const _sfc_main$64 = /* @__PURE__ */ defineComponent({
318
319
  prev: breadcrumbs.prev,
319
320
  select: breadcrumbs.select,
320
321
  attrs: {
321
- "aria-label": __props.label ?? locale.t("Breadcrumbs.label", void 0, "Breadcrumb"),
322
+ "aria-label": __props.label ?? locale.t("Breadcrumbs.label"),
322
323
  "role": __props.as === "nav" ? void 0 : "navigation"
323
324
  }
324
325
  }));
325
326
  return (_ctx, _cache) => {
326
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
327
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
327
328
  ref: "container",
328
329
  as: __props.as,
329
330
  renderless: __props.renderless
@@ -336,7 +337,7 @@ const _sfc_main$64 = /* @__PURE__ */ defineComponent({
336
337
  });
337
338
  //#endregion
338
339
  //#region src/components/Breadcrumbs/BreadcrumbsDivider.vue
339
- const _sfc_main$63 = /* @__PURE__ */ defineComponent({
340
+ const _sfc_main$81 = /* @__PURE__ */ defineComponent({
340
341
  name: "BreadcrumbsDivider",
341
342
  __name: "BreadcrumbsDivider",
342
343
  props: {
@@ -372,7 +373,7 @@ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
372
373
  }
373
374
  }));
374
375
  return (_ctx, _cache) => {
375
- return withDirectives((openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
376
+ return withDirectives((openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
376
377
  ref: "el",
377
378
  as: __props.as,
378
379
  renderless: __props.renderless
@@ -385,7 +386,7 @@ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
385
386
  });
386
387
  //#endregion
387
388
  //#region src/components/Breadcrumbs/BreadcrumbsEllipsis.vue
388
- const _sfc_main$62 = /* @__PURE__ */ defineComponent({
389
+ const _sfc_main$80 = /* @__PURE__ */ defineComponent({
389
390
  name: "BreadcrumbsEllipsis",
390
391
  __name: "BreadcrumbsEllipsis",
391
392
  props: {
@@ -428,7 +429,7 @@ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
428
429
  }
429
430
  }));
430
431
  return (_ctx, _cache) => {
431
- return withDirectives((openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
432
+ return withDirectives((openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
432
433
  ref: "el",
433
434
  as: __props.as,
434
435
  renderless: __props.renderless
@@ -441,7 +442,7 @@ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
441
442
  });
442
443
  //#endregion
443
444
  //#region src/components/Breadcrumbs/BreadcrumbsItem.vue
444
- const _sfc_main$61 = /* @__PURE__ */ defineComponent({
445
+ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
445
446
  name: "BreadcrumbsItem",
446
447
  __name: "BreadcrumbsItem",
447
448
  props: {
@@ -480,7 +481,7 @@ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
480
481
  attrs: { "data-selected": isSelected.value || void 0 }
481
482
  }));
482
483
  return (_ctx, _cache) => {
483
- return withDirectives((openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
484
+ return withDirectives((openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
484
485
  ref: "el",
485
486
  as: __props.as,
486
487
  renderless: __props.renderless
@@ -493,7 +494,7 @@ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
493
494
  });
494
495
  //#endregion
495
496
  //#region src/components/Breadcrumbs/BreadcrumbsLink.vue
496
- const _sfc_main$60 = /* @__PURE__ */ defineComponent({
497
+ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
497
498
  name: "BreadcrumbsLink",
498
499
  __name: "BreadcrumbsLink",
499
500
  props: {
@@ -502,7 +503,7 @@ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
502
503
  },
503
504
  setup(__props) {
504
505
  return (_ctx, _cache) => {
505
- return openBlock(), createBlock(unref(_sfc_main$68), {
506
+ return openBlock(), createBlock(unref(_sfc_main$86), {
506
507
  as: __props.as,
507
508
  renderless: __props.renderless
508
509
  }, {
@@ -514,7 +515,7 @@ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
514
515
  });
515
516
  //#endregion
516
517
  //#region src/components/Breadcrumbs/BreadcrumbsList.vue
517
- const _sfc_main$59 = /* @__PURE__ */ defineComponent({
518
+ const _sfc_main$77 = /* @__PURE__ */ defineComponent({
518
519
  name: "BreadcrumbsList",
519
520
  __name: "BreadcrumbsList",
520
521
  props: {
@@ -524,7 +525,7 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
524
525
  setup(__props) {
525
526
  const slotProps = toRef(() => ({ attrs: { role: "list" } }));
526
527
  return (_ctx, _cache) => {
527
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
528
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
528
529
  as: __props.as,
529
530
  renderless: __props.renderless
530
531
  }, slotProps.value.attrs), {
@@ -536,7 +537,7 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
536
537
  });
537
538
  //#endregion
538
539
  //#region src/components/Breadcrumbs/BreadcrumbsPage.vue
539
- const _sfc_main$58 = /* @__PURE__ */ defineComponent({
540
+ const _sfc_main$76 = /* @__PURE__ */ defineComponent({
540
541
  name: "BreadcrumbsPage",
541
542
  __name: "BreadcrumbsPage",
542
543
  props: {
@@ -546,7 +547,7 @@ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
546
547
  setup(__props) {
547
548
  const slotProps = toRef(() => ({ attrs: { "aria-current": "page" } }));
548
549
  return (_ctx, _cache) => {
549
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
550
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
550
551
  as: __props.as,
551
552
  renderless: __props.renderless
552
553
  }, slotProps.value.attrs), {
@@ -564,18 +565,18 @@ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
564
565
  * @see https://0.vuetifyjs.com/components/breadcrumbs
565
566
  */
566
567
  const Breadcrumbs = {
567
- Root: _sfc_main$64,
568
- List: _sfc_main$59,
569
- Item: _sfc_main$61,
570
- Link: _sfc_main$60,
571
- Page: _sfc_main$58,
572
- Divider: _sfc_main$63,
573
- Ellipsis: _sfc_main$62
568
+ Root: _sfc_main$82,
569
+ List: _sfc_main$77,
570
+ Item: _sfc_main$79,
571
+ Link: _sfc_main$78,
572
+ Page: _sfc_main$76,
573
+ Divider: _sfc_main$81,
574
+ Ellipsis: _sfc_main$80
574
575
  };
575
576
  //#endregion
576
577
  //#region src/components/Checkbox/CheckboxGroup.vue
577
578
  const [useCheckboxGroup, provideCheckboxGroup] = createContext();
578
- const _sfc_main$57 = /* @__PURE__ */ defineComponent({
579
+ const _sfc_main$75 = /* @__PURE__ */ defineComponent({
579
580
  name: "CheckboxGroup",
580
581
  __name: "CheckboxGroup",
581
582
  props: /* @__PURE__ */ mergeModels({
@@ -631,7 +632,7 @@ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
631
632
  }
632
633
  }));
633
634
  return (_ctx, _cache) => {
634
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
635
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
635
636
  as: __props.as,
636
637
  renderless: __props.renderless
637
638
  }), {
@@ -644,7 +645,7 @@ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
644
645
  //#endregion
645
646
  //#region src/components/Checkbox/CheckboxRoot.vue
646
647
  const [useCheckboxRoot, provideCheckboxRoot] = createContext();
647
- const _sfc_main$56 = /* @__PURE__ */ defineComponent({
648
+ const _sfc_main$74 = /* @__PURE__ */ defineComponent({
648
649
  name: "CheckboxRoot",
649
650
  inheritAttrs: false,
650
651
  __name: "CheckboxRoot",
@@ -763,7 +764,7 @@ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
763
764
  }
764
765
  }));
765
766
  return (_ctx, _cache) => {
766
- return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$68), mergeProps({
767
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$86), mergeProps({
767
768
  ...unref(attrs),
768
769
  ...slotProps.value.attrs
769
770
  }, {
@@ -774,20 +775,20 @@ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
774
775
  }), {
775
776
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
776
777
  _: 3
777
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$55, { key: 0 })) : createCommentVNode("v-if", true)], 64);
778
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$73, { key: 0 })) : createCommentVNode("v-if", true)], 64);
778
779
  };
779
780
  }
780
781
  });
781
782
  //#endregion
782
783
  //#region src/components/Checkbox/CheckboxHiddenInput.vue
783
- const _hoisted_1$3 = [
784
+ const _hoisted_1$4 = [
784
785
  "checked",
785
786
  "disabled",
786
787
  "form",
787
788
  "name",
788
789
  "value"
789
790
  ];
790
- const visuallyHiddenStyle$2 = {
791
+ const visuallyHiddenStyle$3 = {
791
792
  position: "absolute",
792
793
  width: "1px",
793
794
  height: "1px",
@@ -798,7 +799,7 @@ const visuallyHiddenStyle$2 = {
798
799
  whiteSpace: "nowrap",
799
800
  border: "0"
800
801
  };
801
- const _sfc_main$55 = /* @__PURE__ */ defineComponent({
802
+ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
802
803
  name: "CheckboxHiddenInput",
803
804
  __name: "CheckboxHiddenInput",
804
805
  props: {
@@ -826,17 +827,17 @@ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
826
827
  form: form.value,
827
828
  inert: "",
828
829
  name: name.value,
829
- style: visuallyHiddenStyle$2,
830
+ style: visuallyHiddenStyle$3,
830
831
  tabindex: "-1",
831
832
  type: "checkbox",
832
833
  value: value.value
833
- }, null, 8, _hoisted_1$3);
834
+ }, null, 8, _hoisted_1$4);
834
835
  };
835
836
  }
836
837
  });
837
838
  //#endregion
838
839
  //#region src/components/Checkbox/CheckboxIndicator.vue
839
- const _sfc_main$54 = /* @__PURE__ */ defineComponent({
840
+ const _sfc_main$72 = /* @__PURE__ */ defineComponent({
840
841
  name: "CheckboxIndicator",
841
842
  __name: "CheckboxIndicator",
842
843
  props: {
@@ -859,7 +860,7 @@ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
859
860
  }
860
861
  }));
861
862
  return (_ctx, _cache) => {
862
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
863
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
863
864
  as: __props.as,
864
865
  renderless: __props.renderless
865
866
  }), {
@@ -871,7 +872,7 @@ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
871
872
  });
872
873
  //#endregion
873
874
  //#region src/components/Checkbox/CheckboxSelectAll.vue
874
- const _sfc_main$53 = /* @__PURE__ */ defineComponent({
875
+ const _sfc_main$71 = /* @__PURE__ */ defineComponent({
875
876
  name: "CheckboxSelectAll",
876
877
  inheritAttrs: false,
877
878
  __name: "CheckboxSelectAll",
@@ -942,7 +943,7 @@ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
942
943
  }
943
944
  }));
944
945
  return (_ctx, _cache) => {
945
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
946
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
946
947
  ...unref(attrs),
947
948
  ...slotProps.value.attrs
948
949
  }, {
@@ -981,16 +982,16 @@ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
981
982
  * ```
982
983
  */
983
984
  const Checkbox = {
984
- Group: _sfc_main$57,
985
- HiddenInput: _sfc_main$55,
986
- Indicator: _sfc_main$54,
987
- Root: _sfc_main$56,
988
- SelectAll: _sfc_main$53
985
+ Group: _sfc_main$75,
986
+ HiddenInput: _sfc_main$73,
987
+ Indicator: _sfc_main$72,
988
+ Root: _sfc_main$74,
989
+ SelectAll: _sfc_main$71
989
990
  };
990
991
  //#endregion
991
992
  //#region src/components/Dialog/DialogRoot.vue
992
993
  const [useDialogContext, provideDialogContext] = createContext();
993
- const _sfc_main$52 = /* @__PURE__ */ defineComponent({
994
+ const _sfc_main$70 = /* @__PURE__ */ defineComponent({
994
995
  name: "DialogRoot",
995
996
  __name: "DialogRoot",
996
997
  props: /* @__PURE__ */ mergeModels({
@@ -1032,7 +1033,7 @@ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
1032
1033
  close
1033
1034
  }));
1034
1035
  return (_ctx, _cache) => {
1035
- return openBlock(), createBlock(unref(_sfc_main$68), {
1036
+ return openBlock(), createBlock(unref(_sfc_main$86), {
1036
1037
  as: __props.as,
1037
1038
  renderless: ""
1038
1039
  }, {
@@ -1044,7 +1045,7 @@ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
1044
1045
  });
1045
1046
  //#endregion
1046
1047
  //#region src/components/Dialog/DialogClose.vue
1047
- const _sfc_main$51 = /* @__PURE__ */ defineComponent({
1048
+ const _sfc_main$69 = /* @__PURE__ */ defineComponent({
1048
1049
  name: "DialogClose",
1049
1050
  __name: "DialogClose",
1050
1051
  props: {
@@ -1065,7 +1066,7 @@ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
1065
1066
  }
1066
1067
  }));
1067
1068
  return (_ctx, _cache) => {
1068
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ as: __props.as }, slotProps.value.attrs, { onClick }), {
1069
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, slotProps.value.attrs, { onClick }), {
1069
1070
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1070
1071
  _: 3
1071
1072
  }, 16, ["as"]);
@@ -1074,7 +1075,7 @@ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
1074
1075
  });
1075
1076
  //#endregion
1076
1077
  //#region src/components/Dialog/DialogContent.vue
1077
- const _sfc_main$50 = /* @__PURE__ */ defineComponent({
1078
+ const _sfc_main$68 = /* @__PURE__ */ defineComponent({
1078
1079
  name: "DialogContent",
1079
1080
  __name: "DialogContent",
1080
1081
  props: {
@@ -1142,7 +1143,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
1142
1143
  }
1143
1144
  }));
1144
1145
  return (_ctx, _cache) => {
1145
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
1146
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1146
1147
  ref: "content",
1147
1148
  as: __props.as,
1148
1149
  style: styles.value
@@ -1158,7 +1159,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
1158
1159
  });
1159
1160
  //#endregion
1160
1161
  //#region src/components/Dialog/DialogDescription.vue
1161
- const _sfc_main$49 = /* @__PURE__ */ defineComponent({
1162
+ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
1162
1163
  name: "DialogDescription",
1163
1164
  __name: "DialogDescription",
1164
1165
  props: {
@@ -1170,7 +1171,7 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
1170
1171
  const context = useDialogContext(__props.namespace);
1171
1172
  const slotProps = toRef(() => ({ attrs: { id: context.descriptionId } }));
1172
1173
  return (_ctx, _cache) => {
1173
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ as: __props.as }, slotProps.value.attrs), {
1174
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, slotProps.value.attrs), {
1174
1175
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1175
1176
  _: 3
1176
1177
  }, 16, ["as"]);
@@ -1179,7 +1180,7 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
1179
1180
  });
1180
1181
  //#endregion
1181
1182
  //#region src/components/Dialog/DialogTitle.vue
1182
- const _sfc_main$48 = /* @__PURE__ */ defineComponent({
1183
+ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
1183
1184
  name: "DialogTitle",
1184
1185
  __name: "DialogTitle",
1185
1186
  props: {
@@ -1191,7 +1192,7 @@ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
1191
1192
  const context = useDialogContext(__props.namespace);
1192
1193
  const slotProps = toRef(() => ({ attrs: { id: context.titleId } }));
1193
1194
  return (_ctx, _cache) => {
1194
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ as: __props.as }, slotProps.value.attrs), {
1195
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, slotProps.value.attrs), {
1195
1196
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1196
1197
  _: 3
1197
1198
  }, 16, ["as"]);
@@ -1200,7 +1201,7 @@ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
1200
1201
  });
1201
1202
  //#endregion
1202
1203
  //#region src/components/Dialog/DialogActivator.vue
1203
- const _sfc_main$47 = /* @__PURE__ */ defineComponent({
1204
+ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
1204
1205
  name: "DialogActivator",
1205
1206
  __name: "DialogActivator",
1206
1207
  props: {
@@ -1223,7 +1224,7 @@ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
1223
1224
  }
1224
1225
  }));
1225
1226
  return (_ctx, _cache) => {
1226
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ as: __props.as }, slotProps.value.attrs, { onClick }), {
1227
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, slotProps.value.attrs, { onClick }), {
1227
1228
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1228
1229
  _: 3
1229
1230
  }, 16, ["as"]);
@@ -1262,17 +1263,17 @@ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
1262
1263
  * ```
1263
1264
  */
1264
1265
  const Dialog = {
1265
- Root: _sfc_main$52,
1266
- Activator: _sfc_main$47,
1267
- Content: _sfc_main$50,
1268
- Title: _sfc_main$48,
1269
- Description: _sfc_main$49,
1270
- Close: _sfc_main$51
1266
+ Root: _sfc_main$70,
1267
+ Activator: _sfc_main$65,
1268
+ Content: _sfc_main$68,
1269
+ Title: _sfc_main$66,
1270
+ Description: _sfc_main$67,
1271
+ Close: _sfc_main$69
1271
1272
  };
1272
1273
  //#endregion
1273
1274
  //#region src/components/ExpansionPanel/ExpansionPanelRoot.vue
1274
1275
  const [useExpansionPanelRoot, provideExpansionPanelRoot] = createContext();
1275
- const _sfc_main$46 = /* @__PURE__ */ defineComponent({
1276
+ const _sfc_main$64 = /* @__PURE__ */ defineComponent({
1276
1277
  name: "ExpansionPanelRoot",
1277
1278
  __name: "ExpansionPanelRoot",
1278
1279
  props: /* @__PURE__ */ mergeModels({
@@ -1319,7 +1320,7 @@ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
1319
1320
  }));
1320
1321
  provideExpansionPanelRoot(__props.namespace, selection);
1321
1322
  return (_ctx, _cache) => {
1322
- return openBlock(), createBlock(unref(_sfc_main$68), {
1323
+ return openBlock(), createBlock(unref(_sfc_main$86), {
1323
1324
  as: __props.as,
1324
1325
  renderless: __props.renderless
1325
1326
  }, {
@@ -1332,7 +1333,7 @@ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
1332
1333
  //#endregion
1333
1334
  //#region src/components/ExpansionPanel/ExpansionPanelItem.vue
1334
1335
  const [useExpansionPanelItem, provideExpansionPanelItem] = createContext({ suffix: "item" });
1335
- const _sfc_main$45 = /* @__PURE__ */ defineComponent({
1336
+ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
1336
1337
  name: "ExpansionPanelItem",
1337
1338
  __name: "ExpansionPanelItem",
1338
1339
  props: {
@@ -1366,7 +1367,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
1366
1367
  isDisabled
1367
1368
  });
1368
1369
  return (_ctx, _cache) => {
1369
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
1370
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
1370
1371
  as: __props.as,
1371
1372
  renderless: __props.renderless
1372
1373
  }), {
@@ -1378,7 +1379,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
1378
1379
  });
1379
1380
  //#endregion
1380
1381
  //#region src/components/ExpansionPanel/ExpansionPanelActivator.vue
1381
- const _sfc_main$44 = /* @__PURE__ */ defineComponent({
1382
+ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
1382
1383
  name: "ExpansionPanelActivator",
1383
1384
  __name: "ExpansionPanelActivator",
1384
1385
  props: {
@@ -1414,7 +1415,7 @@ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
1414
1415
  }
1415
1416
  }));
1416
1417
  return (_ctx, _cache) => {
1417
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
1418
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
1418
1419
  as: __props.as,
1419
1420
  renderless: __props.renderless
1420
1421
  }), {
@@ -1426,7 +1427,7 @@ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
1426
1427
  });
1427
1428
  //#endregion
1428
1429
  //#region src/components/ExpansionPanel/ExpansionPanelContent.vue
1429
- const _sfc_main$43 = /* @__PURE__ */ defineComponent({
1430
+ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
1430
1431
  name: "ExpansionPanelContent",
1431
1432
  __name: "ExpansionPanelContent",
1432
1433
  props: {
@@ -1447,7 +1448,7 @@ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
1447
1448
  }
1448
1449
  }));
1449
1450
  return (_ctx, _cache) => {
1450
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
1451
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
1451
1452
  as: __props.as,
1452
1453
  renderless: __props.renderless
1453
1454
  }), {
@@ -1459,7 +1460,7 @@ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
1459
1460
  });
1460
1461
  //#endregion
1461
1462
  //#region src/components/ExpansionPanel/ExpansionPanelHeader.vue
1462
- const _sfc_main$42 = /* @__PURE__ */ defineComponent({
1463
+ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
1463
1464
  name: "ExpansionPanelHeader",
1464
1465
  __name: "ExpansionPanelHeader",
1465
1466
  props: {
@@ -1474,7 +1475,7 @@ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
1474
1475
  attrs: { "data-selected": item.ticket.isSelected.value || void 0 }
1475
1476
  }));
1476
1477
  return (_ctx, _cache) => {
1477
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
1478
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
1478
1479
  as: __props.as,
1479
1480
  renderless: __props.renderless
1480
1481
  }), {
@@ -1492,16 +1493,86 @@ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
1492
1493
  * @see https://0.vuetifyjs.com/components/expansion-panels
1493
1494
  */
1494
1495
  const ExpansionPanel = {
1495
- Root: _sfc_main$46,
1496
- Item: _sfc_main$45,
1497
- Header: _sfc_main$42,
1498
- Activator: _sfc_main$44,
1499
- Content: _sfc_main$43
1496
+ Root: _sfc_main$64,
1497
+ Item: _sfc_main$63,
1498
+ Header: _sfc_main$60,
1499
+ Activator: _sfc_main$62,
1500
+ Content: _sfc_main$61
1500
1501
  };
1501
1502
  //#endregion
1503
+ //#region src/components/Form/Form.vue
1504
+ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
1505
+ name: "Form",
1506
+ inheritAttrs: false,
1507
+ __name: "Form",
1508
+ props: /* @__PURE__ */ mergeModels({
1509
+ namespace: { default: "v0:form" },
1510
+ disabled: {
1511
+ type: Boolean,
1512
+ default: false
1513
+ },
1514
+ readonly: {
1515
+ type: Boolean,
1516
+ default: false
1517
+ },
1518
+ as: { default: "form" },
1519
+ renderless: { type: Boolean }
1520
+ }, {
1521
+ "modelValue": {
1522
+ type: [Boolean, null],
1523
+ default: null
1524
+ },
1525
+ "modelModifiers": {}
1526
+ }),
1527
+ emits: /* @__PURE__ */ mergeModels([
1528
+ "update:model-value",
1529
+ "submit",
1530
+ "reset"
1531
+ ], ["update:modelValue"]),
1532
+ setup(__props, { emit: __emit }) {
1533
+ const emit = __emit;
1534
+ const model = useModel(__props, "modelValue");
1535
+ const form = createForm({
1536
+ disabled: toRef(() => __props.disabled),
1537
+ readonly: toRef(() => __props.readonly)
1538
+ });
1539
+ watchEffect(() => {
1540
+ model.value = form.isValid.value;
1541
+ });
1542
+ const attrs = useAttrs();
1543
+ provideContext(__props.namespace, form);
1544
+ async function onSubmit(event) {
1545
+ event.preventDefault();
1546
+ emit("submit", { valid: await form.submit() });
1547
+ }
1548
+ function onReset(event) {
1549
+ event.preventDefault();
1550
+ form.reset();
1551
+ emit("reset");
1552
+ }
1553
+ const slotProps = toRef(() => ({
1554
+ isValid: form.isValid.value,
1555
+ isValidating: form.isValidating.value,
1556
+ isDisabled: toValue(form.disabled),
1557
+ isReadonly: toValue(form.readonly),
1558
+ submit: form.submit,
1559
+ reset: form.reset
1560
+ }));
1561
+ return (_ctx, _cache) => {
1562
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, unref(attrs), {
1563
+ onReset,
1564
+ onSubmit
1565
+ }), {
1566
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1567
+ _: 3
1568
+ }, 16, ["as"]);
1569
+ };
1570
+ }
1571
+ });
1572
+ //#endregion
1502
1573
  //#region src/components/Group/GroupRoot.vue
1503
1574
  const [useGroupRoot, provideGroupRoot] = createContext();
1504
- const _sfc_main$41 = /* @__PURE__ */ defineComponent({
1575
+ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
1505
1576
  name: "GroupRoot",
1506
1577
  __name: "GroupRoot",
1507
1578
  props: /* @__PURE__ */ mergeModels({
@@ -1553,7 +1624,7 @@ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
1553
1624
  });
1554
1625
  //#endregion
1555
1626
  //#region src/components/Group/GroupItem.vue
1556
- const _sfc_main$40 = /* @__PURE__ */ defineComponent({
1627
+ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
1557
1628
  name: "GroupItem",
1558
1629
  __name: "GroupItem",
1559
1630
  props: {
@@ -1610,15 +1681,367 @@ const _sfc_main$40 = /* @__PURE__ */ defineComponent({
1610
1681
  * @see https://0.vuetifyjs.com/components/group
1611
1682
  */
1612
1683
  const Group = {
1613
- Root: _sfc_main$41,
1614
- Item: _sfc_main$40
1684
+ Root: _sfc_main$58,
1685
+ Item: _sfc_main$57
1686
+ };
1687
+ //#endregion
1688
+ //#region src/components/Input/InputRoot.vue
1689
+ const [useInputRoot, provideInputRoot] = createContext();
1690
+ function parseValidateOn(value) {
1691
+ const parts = String(value).split(" ");
1692
+ let event = "blur";
1693
+ let modifier;
1694
+ for (const part of parts) if (part === "lazy" || part === "eager") modifier = part;
1695
+ else if (part === "blur" || part === "input" || part === "submit") event = part;
1696
+ return {
1697
+ event,
1698
+ modifier
1699
+ };
1700
+ }
1701
+ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
1702
+ name: "InputRoot",
1703
+ inheritAttrs: false,
1704
+ __name: "InputRoot",
1705
+ props: /* @__PURE__ */ mergeModels({
1706
+ id: { default: () => useId() },
1707
+ label: {},
1708
+ name: {},
1709
+ type: { default: "text" },
1710
+ form: {},
1711
+ disabled: { default: false },
1712
+ readonly: { default: false },
1713
+ required: { type: Boolean },
1714
+ rules: { default: () => [] },
1715
+ validateOn: { default: "blur" },
1716
+ error: {
1717
+ type: Boolean,
1718
+ default: false
1719
+ },
1720
+ errorMessages: {},
1721
+ namespace: { default: "v0:input:root" },
1722
+ as: { default: "div" },
1723
+ renderless: { type: Boolean }
1724
+ }, {
1725
+ "modelValue": { default: "" },
1726
+ "modelModifiers": {}
1727
+ }),
1728
+ emits: /* @__PURE__ */ mergeModels(["update:model-value", "update:isFocused"], ["update:modelValue"]),
1729
+ setup(__props) {
1730
+ const attrs = useAttrs();
1731
+ const model = useModel(__props, "modelValue");
1732
+ const parsed = toRef(() => parseValidateOn(__props.validateOn));
1733
+ const validation = createValidation({
1734
+ rules: __props.rules,
1735
+ value: model
1736
+ });
1737
+ const initialValue = model.value;
1738
+ const isPristine = shallowRef(true);
1739
+ const isFocused = shallowRef(false);
1740
+ const touched = shallowRef(false);
1741
+ const hasDescription = shallowRef(false);
1742
+ const hasError = shallowRef(false);
1743
+ const isDirty = toRef(() => model.value.length > 0);
1744
+ const isDisabled = toRef(() => toValue(__props.disabled));
1745
+ const isReadonly = toRef(() => toValue(__props.readonly));
1746
+ const descriptionId = `${__props.id}-description`;
1747
+ const errorId = `${__props.id}-error`;
1748
+ const errors = computed(() => {
1749
+ return [...__props.errorMessages ? toArray(__props.errorMessages) : [], ...validation.errors.value];
1750
+ });
1751
+ const isValid = toRef(() => {
1752
+ if (__props.error) return false;
1753
+ if (errors.value.length > 0 && validation.errors.value.length === 0) return false;
1754
+ return validation.isValid.value;
1755
+ });
1756
+ function shouldValidate(trigger) {
1757
+ const { event, modifier } = parsed.value;
1758
+ if (event === "submit") return false;
1759
+ if (modifier === "lazy" && !touched.value) return false;
1760
+ if (modifier === "eager" && validation.isValid.value === false) return true;
1761
+ return trigger === event;
1762
+ }
1763
+ watch(isFocused, (val) => {
1764
+ if (val) return;
1765
+ touched.value = true;
1766
+ if (shouldValidate("blur")) validation.validate();
1767
+ });
1768
+ watch(model, (val) => {
1769
+ isPristine.value = val === initialValue;
1770
+ if (shouldValidate("input")) validation.validate();
1771
+ });
1772
+ function validate() {
1773
+ return validation.validate();
1774
+ }
1775
+ function reset() {
1776
+ model.value = initialValue;
1777
+ isPristine.value = true;
1778
+ touched.value = false;
1779
+ validation.reset();
1780
+ }
1781
+ const state = toRef(() => {
1782
+ if (isValid.value === false) return "invalid";
1783
+ if (isValid.value === true) return "valid";
1784
+ return "pristine";
1785
+ });
1786
+ const context = {
1787
+ id: __props.id,
1788
+ label: __props.label,
1789
+ name: __props.name,
1790
+ type: __props.type,
1791
+ form: __props.form,
1792
+ required: __props.required,
1793
+ descriptionId,
1794
+ errorId,
1795
+ hasDescription,
1796
+ hasError,
1797
+ value: model,
1798
+ isDirty,
1799
+ isFocused,
1800
+ isDisabled,
1801
+ isReadonly,
1802
+ errors,
1803
+ isValid,
1804
+ isPristine,
1805
+ isValidating: validation.isValidating,
1806
+ validate,
1807
+ reset
1808
+ };
1809
+ provideInputRoot(__props.namespace, context);
1810
+ const slotProps = toRef(() => ({
1811
+ id: __props.id,
1812
+ label: __props.label,
1813
+ value: model.value,
1814
+ isDirty: isDirty.value,
1815
+ isFocused: isFocused.value,
1816
+ errors: errors.value,
1817
+ isValid: isValid.value,
1818
+ isPristine: isPristine.value,
1819
+ isValidating: validation.isValidating.value,
1820
+ isDisabled: isDisabled.value,
1821
+ isReadonly: isReadonly.value,
1822
+ validate,
1823
+ reset,
1824
+ attrs: {
1825
+ "data-state": state.value,
1826
+ "data-dirty": isDirty.value ? true : void 0,
1827
+ "data-focused": isFocused.value ? true : void 0,
1828
+ "data-disabled": isDisabled.value ? true : void 0,
1829
+ "data-readonly": isReadonly.value ? true : void 0
1830
+ }
1831
+ }));
1832
+ return (_ctx, _cache) => {
1833
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1834
+ ...unref(attrs),
1835
+ ...slotProps.value.attrs
1836
+ }, {
1837
+ as: __props.as,
1838
+ renderless: __props.renderless
1839
+ }), {
1840
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1841
+ _: 3
1842
+ }, 16, ["as", "renderless"]);
1843
+ };
1844
+ }
1845
+ });
1846
+ //#endregion
1847
+ //#region src/components/Input/InputControl.vue
1848
+ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
1849
+ name: "InputControl",
1850
+ inheritAttrs: false,
1851
+ __name: "InputControl",
1852
+ props: {
1853
+ namespace: { default: "v0:input:root" },
1854
+ as: { default: "input" },
1855
+ renderless: { type: Boolean }
1856
+ },
1857
+ setup(__props) {
1858
+ const attrs = useAttrs();
1859
+ const root = useInputRoot(__props.namespace);
1860
+ function onInput(e) {
1861
+ const target = e.target;
1862
+ root.value.value = target.value;
1863
+ }
1864
+ function onFocus() {
1865
+ root.isFocused.value = true;
1866
+ }
1867
+ function onBlur() {
1868
+ root.isFocused.value = false;
1869
+ }
1870
+ const describedby = toRef(() => {
1871
+ return root.hasDescription.value ? root.descriptionId : void 0;
1872
+ });
1873
+ const controlAttrs = toRef(() => {
1874
+ const invalid = root.isValid.value === false;
1875
+ const disabled = root.isDisabled.value;
1876
+ const readonly = root.isReadonly.value;
1877
+ const isFocused = root.isFocused.value;
1878
+ return {
1879
+ "id": root.id,
1880
+ "type": root.type,
1881
+ "name": root.name,
1882
+ "value": root.value.value,
1883
+ "form": root.form,
1884
+ "disabled": disabled || void 0,
1885
+ "readonly": readonly || void 0,
1886
+ "required": root.required || void 0,
1887
+ "aria-invalid": invalid || void 0,
1888
+ "aria-label": root.label || void 0,
1889
+ "aria-describedby": describedby.value,
1890
+ "aria-errormessage": root.hasError.value && root.errors.value.length > 0 ? root.errorId : void 0,
1891
+ "aria-required": root.required || void 0,
1892
+ "data-state": invalid ? "invalid" : root.isValid.value === true ? "valid" : "pristine",
1893
+ "data-focused": isFocused ? true : void 0,
1894
+ "data-disabled": disabled ? true : void 0,
1895
+ "data-readonly": readonly ? true : void 0
1896
+ };
1897
+ });
1898
+ const slotProps = toRef(() => ({
1899
+ value: root.value.value,
1900
+ isFocused: root.isFocused.value,
1901
+ isDisabled: root.isDisabled.value,
1902
+ isReadonly: root.isReadonly.value,
1903
+ attrs: controlAttrs.value
1904
+ }));
1905
+ return (_ctx, _cache) => {
1906
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1907
+ ...unref(attrs),
1908
+ ...controlAttrs.value
1909
+ }, {
1910
+ as: __props.as,
1911
+ renderless: __props.renderless,
1912
+ onBlur,
1913
+ onFocus,
1914
+ onInput
1915
+ }), {
1916
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1917
+ _: 3
1918
+ }, 16, ["as", "renderless"]);
1919
+ };
1920
+ }
1921
+ });
1922
+ //#endregion
1923
+ //#region src/components/Input/InputDescription.vue
1924
+ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
1925
+ name: "InputDescription",
1926
+ inheritAttrs: false,
1927
+ __name: "InputDescription",
1928
+ props: {
1929
+ namespace: { default: "v0:input:root" },
1930
+ as: { default: "span" },
1931
+ renderless: { type: Boolean }
1932
+ },
1933
+ setup(__props) {
1934
+ const attrs = useAttrs();
1935
+ const root = useInputRoot(__props.namespace);
1936
+ onMounted(() => {
1937
+ root.hasDescription.value = true;
1938
+ });
1939
+ onBeforeUnmount(() => {
1940
+ root.hasDescription.value = false;
1941
+ });
1942
+ return (_ctx, _cache) => {
1943
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(unref(attrs), {
1944
+ id: unref(root).descriptionId,
1945
+ as: __props.as,
1946
+ renderless: __props.renderless
1947
+ }), {
1948
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", { id: unref(root).descriptionId })]),
1949
+ _: 3
1950
+ }, 16, [
1951
+ "id",
1952
+ "as",
1953
+ "renderless"
1954
+ ]);
1955
+ };
1956
+ }
1957
+ });
1958
+ //#endregion
1959
+ //#region src/components/Input/InputError.vue
1960
+ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
1961
+ name: "InputError",
1962
+ inheritAttrs: false,
1963
+ __name: "InputError",
1964
+ props: {
1965
+ namespace: { default: "v0:input:root" },
1966
+ as: { default: "span" },
1967
+ renderless: { type: Boolean }
1968
+ },
1969
+ setup(__props) {
1970
+ const attrs = useAttrs();
1971
+ const root = useInputRoot(__props.namespace);
1972
+ const errors = root.errors;
1973
+ onMounted(() => {
1974
+ root.hasError.value = true;
1975
+ });
1976
+ onBeforeUnmount(() => {
1977
+ root.hasError.value = false;
1978
+ });
1979
+ const slotProps = toRef(() => ({
1980
+ id: root.errorId,
1981
+ errors: errors.value,
1982
+ attrs: {
1983
+ "id": root.errorId,
1984
+ "aria-live": "polite",
1985
+ "data-state": errors.value.length > 0 ? "visible" : "hidden"
1986
+ }
1987
+ }));
1988
+ return (_ctx, _cache) => {
1989
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1990
+ ...unref(attrs),
1991
+ ...slotProps.value.attrs
1992
+ }, {
1993
+ as: __props.as,
1994
+ renderless: __props.renderless
1995
+ }), {
1996
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
1997
+ _: 3
1998
+ }, 16, ["as", "renderless"]);
1999
+ };
2000
+ }
2001
+ });
2002
+ //#endregion
2003
+ //#region src/components/Input/index.ts
2004
+ /**
2005
+ * Input component with sub-components for text input controls.
2006
+ *
2007
+ * @see https://0.vuetifyjs.com/components/forms/input
2008
+ *
2009
+ * @example
2010
+ * ```vue
2011
+ * <script setup lang="ts">
2012
+ * import { Input } from '@vuetify/v0'
2013
+ * import { ref } from 'vue'
2014
+ *
2015
+ * const email = ref('')
2016
+ * <\/script>
2017
+ *
2018
+ * <template>
2019
+ * <Input.Root
2020
+ * v-model="email"
2021
+ * label="Email"
2022
+ * :rules="[(v) => !!v || 'Required', (v) => /.+@.+/.test(v) || 'Invalid email']"
2023
+ * >
2024
+ * <Input.Control />
2025
+ * <Input.Description>We'll never share your email.</Input.Description>
2026
+ * <Input.Error v-slot="{ errors }">
2027
+ * <span v-for="error in errors" :key="error">{{ error }}</span>
2028
+ * </Input.Error>
2029
+ * </Input.Root>
2030
+ * </template>
2031
+ * ```
2032
+ */
2033
+ const Input = {
2034
+ Control: _sfc_main$55,
2035
+ Description: _sfc_main$54,
2036
+ Error: _sfc_main$53,
2037
+ Root: _sfc_main$56
1615
2038
  };
1616
2039
  //#endregion
1617
2040
  //#region src/components/Pagination/PaginationRoot.vue
1618
2041
  const [usePaginationRoot, providePaginationRoot] = createContext();
1619
2042
  const [usePaginationControls, providePaginationControls] = createContext({ suffix: "controls" });
1620
2043
  const [usePaginationItems, providePaginationItems] = createContext({ suffix: "items" });
1621
- const _sfc_main$39 = /* @__PURE__ */ defineComponent({
2044
+ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
1622
2045
  name: "PaginationRoot",
1623
2046
  __name: "PaginationRoot",
1624
2047
  props: /* @__PURE__ */ mergeModels({
@@ -1697,7 +2120,7 @@ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
1697
2120
  prev: pagination.prev,
1698
2121
  select: pagination.select,
1699
2122
  attrs: {
1700
- "aria-label": locale.t("Pagination.label", void 0, "Pagination"),
2123
+ "aria-label": locale.t("Pagination.label"),
1701
2124
  "role": __props.as === "nav" ? void 0 : "navigation"
1702
2125
  }
1703
2126
  }));
@@ -1705,7 +2128,7 @@ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
1705
2128
  providePaginationControls(__props.namespace, controls);
1706
2129
  providePaginationItems(__props.namespace, items);
1707
2130
  return (_ctx, _cache) => {
1708
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2131
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1709
2132
  ref_key: "atom",
1710
2133
  ref: atom
1711
2134
  }, slotProps.value.attrs, {
@@ -1720,7 +2143,7 @@ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
1720
2143
  });
1721
2144
  //#endregion
1722
2145
  //#region src/components/Pagination/PaginationEllipsis.vue
1723
- const _sfc_main$38 = /* @__PURE__ */ defineComponent({
2146
+ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
1724
2147
  name: "PaginationEllipsis",
1725
2148
  __name: "PaginationEllipsis",
1726
2149
  props: {
@@ -1748,7 +2171,7 @@ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
1748
2171
  }));
1749
2172
  onBeforeUnmount(() => items.unregister(__props.id));
1750
2173
  return (_ctx, _cache) => {
1751
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2174
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1752
2175
  ref_key: "atom",
1753
2176
  ref: atom
1754
2177
  }, slotProps.value.attrs, {
@@ -1763,7 +2186,7 @@ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
1763
2186
  });
1764
2187
  //#endregion
1765
2188
  //#region src/components/Pagination/PaginationFirst.vue
1766
- const _sfc_main$37 = /* @__PURE__ */ defineComponent({
2189
+ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
1767
2190
  name: "PaginationFirst",
1768
2191
  __name: "PaginationFirst",
1769
2192
  props: {
@@ -1794,7 +2217,7 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
1794
2217
  isDisabled: isDisabled.value,
1795
2218
  first,
1796
2219
  attrs: {
1797
- "aria-label": locale.t("Pagination.first", void 0, "Go to first page"),
2220
+ "aria-label": locale.t("Pagination.first"),
1798
2221
  "aria-disabled": isDisabled.value,
1799
2222
  "data-disabled": isDisabled.value || void 0,
1800
2223
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
@@ -1805,7 +2228,7 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
1805
2228
  }));
1806
2229
  onBeforeUnmount(() => controls.unregister(__props.id));
1807
2230
  return (_ctx, _cache) => {
1808
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2231
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1809
2232
  ref_key: "atom",
1810
2233
  ref: atom
1811
2234
  }, slotProps.value.attrs, {
@@ -1820,7 +2243,7 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
1820
2243
  });
1821
2244
  //#endregion
1822
2245
  //#region src/components/Pagination/PaginationItem.vue
1823
- const _sfc_main$36 = /* @__PURE__ */ defineComponent({
2246
+ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
1824
2247
  name: "PaginationItem",
1825
2248
  __name: "PaginationItem",
1826
2249
  props: {
@@ -1848,7 +2271,7 @@ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
1848
2271
  }, { immediate: true });
1849
2272
  const isSelected = toRef(() => pagination.page.value === __props.value);
1850
2273
  const ariaLabel = toRef(() => {
1851
- return isSelected.value ? locale.t("Pagination.currentPage", { page: __props.value }, `Page ${__props.value}, current page`) : locale.t("Pagination.goToPage", { page: __props.value }, `Go to page ${__props.value}`);
2274
+ return isSelected.value ? locale.t("Pagination.currentPage", { page: __props.value }) : locale.t("Pagination.goToPage", { page: __props.value });
1852
2275
  });
1853
2276
  function select() {
1854
2277
  if (__props.disabled) return;
@@ -1873,7 +2296,7 @@ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
1873
2296
  }));
1874
2297
  onBeforeUnmount(() => items.unregister(__props.id));
1875
2298
  return (_ctx, _cache) => {
1876
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2299
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1877
2300
  ref_key: "atom",
1878
2301
  ref: atom
1879
2302
  }, slotProps.value.attrs, {
@@ -1888,7 +2311,7 @@ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
1888
2311
  });
1889
2312
  //#endregion
1890
2313
  //#region src/components/Pagination/PaginationLast.vue
1891
- const _sfc_main$35 = /* @__PURE__ */ defineComponent({
2314
+ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
1892
2315
  name: "PaginationLast",
1893
2316
  __name: "PaginationLast",
1894
2317
  props: {
@@ -1919,7 +2342,7 @@ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
1919
2342
  isDisabled: isDisabled.value,
1920
2343
  last,
1921
2344
  attrs: {
1922
- "aria-label": locale.t("Pagination.last", void 0, "Go to last page"),
2345
+ "aria-label": locale.t("Pagination.last"),
1923
2346
  "aria-disabled": isDisabled.value,
1924
2347
  "data-disabled": isDisabled.value || void 0,
1925
2348
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
@@ -1930,7 +2353,7 @@ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
1930
2353
  }));
1931
2354
  onBeforeUnmount(() => controls.unregister(__props.id));
1932
2355
  return (_ctx, _cache) => {
1933
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2356
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1934
2357
  ref_key: "atom",
1935
2358
  ref: atom
1936
2359
  }, slotProps.value.attrs, {
@@ -1945,7 +2368,7 @@ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
1945
2368
  });
1946
2369
  //#endregion
1947
2370
  //#region src/components/Pagination/PaginationNext.vue
1948
- const _sfc_main$34 = /* @__PURE__ */ defineComponent({
2371
+ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
1949
2372
  name: "PaginationNext",
1950
2373
  __name: "PaginationNext",
1951
2374
  props: {
@@ -1976,7 +2399,7 @@ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
1976
2399
  isDisabled: isDisabled.value,
1977
2400
  next,
1978
2401
  attrs: {
1979
- "aria-label": locale.t("Pagination.next", void 0, "Go to next page"),
2402
+ "aria-label": locale.t("Pagination.next"),
1980
2403
  "aria-disabled": isDisabled.value,
1981
2404
  "data-disabled": isDisabled.value || void 0,
1982
2405
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
@@ -1987,7 +2410,7 @@ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
1987
2410
  }));
1988
2411
  onBeforeUnmount(() => controls.unregister(__props.id));
1989
2412
  return (_ctx, _cache) => {
1990
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2413
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
1991
2414
  ref_key: "atom",
1992
2415
  ref: atom
1993
2416
  }, slotProps.value.attrs, {
@@ -2002,7 +2425,7 @@ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
2002
2425
  });
2003
2426
  //#endregion
2004
2427
  //#region src/components/Pagination/PaginationPrev.vue
2005
- const _sfc_main$33 = /* @__PURE__ */ defineComponent({
2428
+ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
2006
2429
  name: "PaginationPrev",
2007
2430
  __name: "PaginationPrev",
2008
2431
  props: {
@@ -2033,7 +2456,7 @@ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
2033
2456
  isDisabled: isDisabled.value,
2034
2457
  prev,
2035
2458
  attrs: {
2036
- "aria-label": locale.t("Pagination.prev", void 0, "Go to previous page"),
2459
+ "aria-label": locale.t("Pagination.prev"),
2037
2460
  "aria-disabled": isDisabled.value,
2038
2461
  "data-disabled": isDisabled.value || void 0,
2039
2462
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
@@ -2044,7 +2467,7 @@ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
2044
2467
  }));
2045
2468
  onBeforeUnmount(() => controls.unregister(__props.id));
2046
2469
  return (_ctx, _cache) => {
2047
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2470
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
2048
2471
  ref_key: "atom",
2049
2472
  ref: atom
2050
2473
  }, slotProps.value.attrs, {
@@ -2059,7 +2482,7 @@ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
2059
2482
  });
2060
2483
  //#endregion
2061
2484
  //#region src/components/Pagination/PaginationStatus.vue
2062
- const _sfc_main$32 = /* @__PURE__ */ defineComponent({
2485
+ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
2063
2486
  name: "PaginationStatus",
2064
2487
  __name: "PaginationStatus",
2065
2488
  props: {
@@ -2078,7 +2501,7 @@ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
2078
2501
  text.value = locale.t("Pagination.status", {
2079
2502
  page,
2080
2503
  pages: pagination.pages
2081
- }, `Page ${page} of ${pagination.pages}`);
2504
+ });
2082
2505
  }, 100);
2083
2506
  });
2084
2507
  /* v8 ignore stop */
@@ -2093,7 +2516,7 @@ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
2093
2516
  }
2094
2517
  }));
2095
2518
  return (_ctx, _cache) => {
2096
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
2519
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
2097
2520
  as: __props.as,
2098
2521
  renderless: __props.renderless
2099
2522
  }), {
@@ -2111,19 +2534,19 @@ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
2111
2534
  * @see https://0.vuetifyjs.com/components/pagination
2112
2535
  */
2113
2536
  const Pagination = {
2114
- Root: _sfc_main$39,
2115
- Item: _sfc_main$36,
2116
- First: _sfc_main$37,
2117
- Prev: _sfc_main$33,
2118
- Ellipsis: _sfc_main$38,
2119
- Next: _sfc_main$34,
2120
- Last: _sfc_main$35,
2121
- Status: _sfc_main$32
2537
+ Root: _sfc_main$52,
2538
+ Item: _sfc_main$49,
2539
+ First: _sfc_main$50,
2540
+ Prev: _sfc_main$46,
2541
+ Ellipsis: _sfc_main$51,
2542
+ Next: _sfc_main$47,
2543
+ Last: _sfc_main$48,
2544
+ Status: _sfc_main$45
2122
2545
  };
2123
2546
  //#endregion
2124
2547
  //#region src/components/Popover/PopoverRoot.vue
2125
2548
  const [usePopoverContext, providePopoverContext] = createContext("Popover");
2126
- const _sfc_main$31 = /* @__PURE__ */ defineComponent({
2549
+ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
2127
2550
  name: "PopoverRoot",
2128
2551
  __name: "PopoverRoot",
2129
2552
  props: /* @__PURE__ */ mergeModels({
@@ -2140,22 +2563,21 @@ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
2140
2563
  emits: ["update:modelValue"],
2141
2564
  setup(__props) {
2142
2565
  const isSelected = useModel(__props, "modelValue");
2143
- const id = __props.id ?? useId();
2144
- function toggle() {
2145
- isSelected.value = !isSelected.value;
2146
- }
2566
+ const popover = usePopover({
2567
+ id: __props.id,
2568
+ isOpen: isSelected
2569
+ });
2147
2570
  providePopoverContext({
2148
- isSelected,
2149
- toggle,
2150
- id
2571
+ ...popover,
2572
+ isSelected
2151
2573
  });
2152
2574
  const slotProps = toRef(() => ({
2153
- id,
2575
+ id: popover.id,
2154
2576
  isSelected: isSelected.value,
2155
- toggle
2577
+ toggle: popover.toggle
2156
2578
  }));
2157
2579
  return (_ctx, _cache) => {
2158
- return openBlock(), createBlock(unref(_sfc_main$68), {
2580
+ return openBlock(), createBlock(unref(_sfc_main$86), {
2159
2581
  as: __props.as,
2160
2582
  renderless: ""
2161
2583
  }, {
@@ -2167,7 +2589,7 @@ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
2167
2589
  });
2168
2590
  //#endregion
2169
2591
  //#region src/components/Popover/PopoverActivator.vue
2170
- const _sfc_main$30 = /* @__PURE__ */ defineComponent({
2592
+ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
2171
2593
  name: "PopoverActivator",
2172
2594
  __name: "PopoverActivator",
2173
2595
  props: {
@@ -2179,17 +2601,20 @@ const _sfc_main$30 = /* @__PURE__ */ defineComponent({
2179
2601
  const props = createPropsRestProxy(__props, ["as"]);
2180
2602
  const context = usePopoverContext();
2181
2603
  const popovertarget = toRef(() => props.target ?? context.id);
2182
- const style = toRef(() => ({ anchorName: `--${toValue(popovertarget)}` }));
2604
+ const style = toRef(() => {
2605
+ if (props.target) return { anchorName: `--${props.target}` };
2606
+ return context.anchorStyles.value;
2607
+ });
2183
2608
  const slotProps = toRef(() => ({
2184
- isOpen: context.isSelected.value,
2609
+ isOpen: context.isOpen.value,
2185
2610
  attrs: {
2186
2611
  "popovertarget": toValue(popovertarget),
2187
2612
  "type": __props.as === "button" ? "button" : void 0,
2188
- "data-popover-open": context.isSelected.value ? "" : void 0
2613
+ "data-popover-open": context.isOpen.value ? "" : void 0
2189
2614
  }
2190
2615
  }));
2191
2616
  return (_ctx, _cache) => {
2192
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2617
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
2193
2618
  as: __props.as,
2194
2619
  style: style.value
2195
2620
  }, slotProps.value.attrs), {
@@ -2201,13 +2626,13 @@ const _sfc_main$30 = /* @__PURE__ */ defineComponent({
2201
2626
  });
2202
2627
  //#endregion
2203
2628
  //#region src/components/Popover/PopoverContent.vue
2204
- const _sfc_main$29 = /* @__PURE__ */ defineComponent({
2629
+ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
2205
2630
  name: "PopoverContent",
2206
2631
  __name: "PopoverContent",
2207
2632
  props: {
2208
2633
  id: {},
2209
- positionArea: { default: "bottom" },
2210
- positionTry: { default: "most-width bottom" },
2634
+ positionArea: {},
2635
+ positionTry: {},
2211
2636
  as: {},
2212
2637
  renderless: { type: Boolean }
2213
2638
  },
@@ -2218,50 +2643,35 @@ const _sfc_main$29 = /* @__PURE__ */ defineComponent({
2218
2643
  const context = usePopoverContext();
2219
2644
  const ref = useTemplateRef("ref");
2220
2645
  const id = toRef(() => props.id ?? context.id);
2221
- const style = toRef(() => ({
2222
- "position": "fixed",
2223
- "margin": "unset",
2224
- "inset-area": __props.positionArea,
2225
- "position-area": __props.positionArea,
2226
- "position-anchor": `--${toValue(id)}`,
2227
- "position-try-fallbacks": __props.positionTry
2228
- }));
2229
- /* v8 ignore start -- browser popover API */
2230
- onMounted(() => {
2231
- if (context.isSelected.value) ref.value?.element?.showPopover();
2232
- });
2233
- watch(context.isSelected, (isOpen) => {
2234
- const element = ref.value?.element;
2235
- if (!element?.isConnected) return;
2236
- if (isOpen === element.matches?.(":popover-open")) return;
2237
- if (isOpen) element.showPopover?.();
2238
- else element.hidePopover?.();
2646
+ const style = toRef(() => {
2647
+ if (props.id) return {
2648
+ "position": "fixed",
2649
+ "margin": "unset",
2650
+ "inset-area": __props.positionArea ?? "bottom",
2651
+ "position-area": __props.positionArea ?? "bottom",
2652
+ "position-anchor": `--${props.id}`,
2653
+ "position-try-fallbacks": __props.positionTry ?? "most-width bottom"
2654
+ };
2655
+ return context.contentStyles.value;
2239
2656
  });
2240
- function onToggle(e) {
2241
- if (!ref.value?.element?.isConnected) return;
2242
- context.isSelected.value = e.newState === "open";
2243
- }
2244
- /* v8 ignore stop */
2657
+ context.attach(() => ref.value?.element);
2245
2658
  function onBeforeToggle(e) {
2246
2659
  emit("beforetoggle", e);
2247
2660
  }
2248
2661
  const slotProps = toRef(() => ({
2249
- isOpen: context.isSelected.value,
2662
+ isOpen: context.isOpen.value,
2250
2663
  attrs: {
2251
- id: toValue(id),
2664
+ id: id.value,
2252
2665
  popover: ""
2253
2666
  }
2254
2667
  }));
2255
2668
  return (_ctx, _cache) => {
2256
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
2669
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
2257
2670
  ref_key: "ref",
2258
2671
  ref,
2259
2672
  as: props.as,
2260
2673
  style: style.value
2261
- }, slotProps.value.attrs, {
2262
- onBeforetoggle: onBeforeToggle,
2263
- onToggle
2264
- }), {
2674
+ }, slotProps.value.attrs, { onBeforetoggle: onBeforeToggle }), {
2265
2675
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
2266
2676
  _: 3
2267
2677
  }, 16, ["as", "style"]);
@@ -2276,14 +2686,14 @@ const _sfc_main$29 = /* @__PURE__ */ defineComponent({
2276
2686
  * @see https://0.vuetifyjs.com/components/popover
2277
2687
  */
2278
2688
  const Popover = {
2279
- Root: _sfc_main$31,
2280
- Activator: _sfc_main$30,
2281
- Content: _sfc_main$29
2689
+ Root: _sfc_main$44,
2690
+ Activator: _sfc_main$43,
2691
+ Content: _sfc_main$42
2282
2692
  };
2283
2693
  //#endregion
2284
2694
  //#region src/components/Radio/RadioGroup.vue
2285
2695
  const [useRadioGroup, provideRadioGroup] = createContext();
2286
- const _sfc_main$28 = /* @__PURE__ */ defineComponent({
2696
+ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
2287
2697
  name: "RadioGroup",
2288
2698
  __name: "RadioGroup",
2289
2699
  props: /* @__PURE__ */ mergeModels({
@@ -2335,7 +2745,7 @@ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
2335
2745
  }
2336
2746
  }));
2337
2747
  return (_ctx, _cache) => {
2338
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
2748
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
2339
2749
  as: __props.as,
2340
2750
  renderless: __props.renderless
2341
2751
  }), {
@@ -2348,7 +2758,7 @@ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
2348
2758
  //#endregion
2349
2759
  //#region src/components/Radio/RadioRoot.vue
2350
2760
  const [useRadioRoot, provideRadioRoot] = createContext();
2351
- const _sfc_main$27 = /* @__PURE__ */ defineComponent({
2761
+ const _sfc_main$40 = /* @__PURE__ */ defineComponent({
2352
2762
  name: "RadioRoot",
2353
2763
  inheritAttrs: false,
2354
2764
  __name: "RadioRoot",
@@ -2458,7 +2868,7 @@ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
2458
2868
  }
2459
2869
  }));
2460
2870
  return (_ctx, _cache) => {
2461
- return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$68), mergeProps({ ref: "root" }, {
2871
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$86), mergeProps({ ref: "root" }, {
2462
2872
  ...unref(attrs),
2463
2873
  ...slotProps.value.attrs
2464
2874
  }, {
@@ -2469,20 +2879,20 @@ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
2469
2879
  }), {
2470
2880
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
2471
2881
  _: 3
2472
- }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$26, { key: 0 })) : createCommentVNode("v-if", true)], 64);
2882
+ }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$39, { key: 0 })) : createCommentVNode("v-if", true)], 64);
2473
2883
  };
2474
2884
  }
2475
2885
  });
2476
2886
  //#endregion
2477
2887
  //#region src/components/Radio/RadioHiddenInput.vue
2478
- const _hoisted_1$2 = [
2888
+ const _hoisted_1$3 = [
2479
2889
  "checked",
2480
2890
  "disabled",
2481
2891
  "form",
2482
2892
  "name",
2483
2893
  "value"
2484
2894
  ];
2485
- const visuallyHiddenStyle$1 = {
2895
+ const visuallyHiddenStyle$2 = {
2486
2896
  position: "absolute",
2487
2897
  width: "1px",
2488
2898
  height: "1px",
@@ -2493,7 +2903,7 @@ const visuallyHiddenStyle$1 = {
2493
2903
  whiteSpace: "nowrap",
2494
2904
  border: "0"
2495
2905
  };
2496
- const _sfc_main$26 = /* @__PURE__ */ defineComponent({
2906
+ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
2497
2907
  name: "RadioHiddenInput",
2498
2908
  __name: "RadioHiddenInput",
2499
2909
  props: {
@@ -2520,17 +2930,17 @@ const _sfc_main$26 = /* @__PURE__ */ defineComponent({
2520
2930
  form: form.value,
2521
2931
  inert: "",
2522
2932
  name: name.value,
2523
- style: visuallyHiddenStyle$1,
2933
+ style: visuallyHiddenStyle$2,
2524
2934
  tabindex: "-1",
2525
2935
  type: "radio",
2526
2936
  value: value.value
2527
- }, null, 8, _hoisted_1$2);
2937
+ }, null, 8, _hoisted_1$3);
2528
2938
  };
2529
2939
  }
2530
2940
  });
2531
2941
  //#endregion
2532
2942
  //#region src/components/Radio/RadioIndicator.vue
2533
- const _sfc_main$25 = /* @__PURE__ */ defineComponent({
2943
+ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
2534
2944
  name: "RadioIndicator",
2535
2945
  __name: "RadioIndicator",
2536
2946
  props: {
@@ -2550,7 +2960,7 @@ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
2550
2960
  }
2551
2961
  }));
2552
2962
  return (_ctx, _cache) => {
2553
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
2963
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
2554
2964
  as: __props.as,
2555
2965
  renderless: __props.renderless
2556
2966
  }), {
@@ -2595,14 +3005,14 @@ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
2595
3005
  * ```
2596
3006
  */
2597
3007
  const Radio = {
2598
- Group: _sfc_main$28,
2599
- HiddenInput: _sfc_main$26,
2600
- Indicator: _sfc_main$25,
2601
- Root: _sfc_main$27
3008
+ Group: _sfc_main$41,
3009
+ HiddenInput: _sfc_main$39,
3010
+ Indicator: _sfc_main$38,
3011
+ Root: _sfc_main$40
2602
3012
  };
2603
3013
  //#endregion
2604
3014
  //#region src/components/Scrim/Scrim.vue
2605
- const _sfc_main$24 = /* @__PURE__ */ defineComponent({
3015
+ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
2606
3016
  name: "Scrim",
2607
3017
  inheritAttrs: false,
2608
3018
  __name: "Scrim",
@@ -2640,7 +3050,7 @@ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
2640
3050
  to: __props.teleportTo
2641
3051
  }, [createVNode(TransitionGroup, { name: __props.transition }, {
2642
3052
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(tickets.value, (ticket) => {
2643
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
3053
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
2644
3054
  key: ticket.id,
2645
3055
  as: __props.as,
2646
3056
  style: getStyle(ticket)
@@ -2659,7 +3069,7 @@ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
2659
3069
  name: __props.transition
2660
3070
  }, {
2661
3071
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(tickets.value, (ticket) => {
2662
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
3072
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
2663
3073
  key: ticket.id,
2664
3074
  as: __props.as,
2665
3075
  style: getStyle(ticket)
@@ -2678,9 +3088,487 @@ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
2678
3088
  }
2679
3089
  });
2680
3090
  //#endregion
3091
+ //#region src/components/Select/SelectHiddenInput.vue
3092
+ const _hoisted_1$2 = [
3093
+ "disabled",
3094
+ "form",
3095
+ "name",
3096
+ "value"
3097
+ ];
3098
+ const visuallyHiddenStyle$1 = {
3099
+ position: "absolute",
3100
+ width: "1px",
3101
+ height: "1px",
3102
+ padding: "0",
3103
+ margin: "-1px",
3104
+ overflow: "hidden",
3105
+ clip: "rect(0, 0, 0, 0)",
3106
+ whiteSpace: "nowrap",
3107
+ border: "0"
3108
+ };
3109
+ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
3110
+ name: "SelectHiddenInput",
3111
+ __name: "SelectHiddenInput",
3112
+ props: { namespace: { default: "v0:select" } },
3113
+ setup(__props) {
3114
+ const context = useSelectContext(__props.namespace);
3115
+ const values = toRef(() => {
3116
+ return Array.from(context.selection.selectedValues.value).map((v) => {
3117
+ if (/* @__PURE__ */ isNullOrUndefined(v)) return "";
3118
+ if (/* @__PURE__ */ isObject(v)) return JSON.stringify(v);
3119
+ return String(v);
3120
+ });
3121
+ });
3122
+ const isDisabled = toRef(() => toValue(context.disabled));
3123
+ return (_ctx, _cache) => {
3124
+ return openBlock(true), createElementBlock(Fragment, null, renderList(values.value, (val, index) => {
3125
+ return openBlock(), createElementBlock("input", {
3126
+ key: index,
3127
+ disabled: isDisabled.value,
3128
+ form: unref(context).form,
3129
+ inert: "",
3130
+ name: unref(context).name,
3131
+ style: visuallyHiddenStyle$1,
3132
+ tabindex: "-1",
3133
+ type: "hidden",
3134
+ value: val
3135
+ }, null, 8, _hoisted_1$2);
3136
+ }), 128);
3137
+ };
3138
+ }
3139
+ });
3140
+ //#endregion
3141
+ //#region src/components/Select/SelectRoot.vue
3142
+ const [useSelectContext, provideSelectContext] = createContext();
3143
+ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
3144
+ name: "SelectRoot",
3145
+ __name: "SelectRoot",
3146
+ props: /* @__PURE__ */ mergeModels({
3147
+ namespace: { default: "v0:select" },
3148
+ id: {},
3149
+ name: {},
3150
+ form: {},
3151
+ disabled: {
3152
+ type: Boolean,
3153
+ default: false
3154
+ },
3155
+ multiple: {
3156
+ type: Boolean,
3157
+ default: false
3158
+ },
3159
+ mandatory: {
3160
+ type: [Boolean, String],
3161
+ default: false
3162
+ },
3163
+ as: { default: null },
3164
+ renderless: { type: Boolean }
3165
+ }, {
3166
+ "modelValue": {},
3167
+ "modelModifiers": {}
3168
+ }),
3169
+ emits: /* @__PURE__ */ mergeModels(["update:model-value"], ["update:modelValue"]),
3170
+ setup(__props) {
3171
+ const model = useModel(__props, "modelValue");
3172
+ const id = __props.id ?? useId();
3173
+ const listboxId = `${id}-listbox`;
3174
+ const activatorId = `${id}-activator`;
3175
+ const selection = createSelection({
3176
+ multiple: __props.multiple,
3177
+ mandatory: __props.mandatory,
3178
+ disabled: toRef(() => __props.disabled),
3179
+ events: true
3180
+ });
3181
+ useProxyModel(selection, model, { multiple: __props.multiple });
3182
+ const selectedId = toRef(() => selection.selectedIds.values().next().value);
3183
+ const popover = usePopover({ id });
3184
+ const isOpen = popover.isOpen;
3185
+ const activatorEl = shallowRef(null);
3186
+ const virtualFocus = useVirtualFocus(() => selection.values().map((ticket) => ({
3187
+ id: ticket.id,
3188
+ el: () => document.querySelector(`#${CSS.escape(`${id}-option-${ticket.id}`)}`),
3189
+ disabled: ticket.disabled
3190
+ })), {
3191
+ control: activatorEl,
3192
+ target: () => null,
3193
+ orientation: "vertical"
3194
+ });
3195
+ watch(isOpen, (open) => {
3196
+ if (!open) {
3197
+ virtualFocus.clear();
3198
+ return;
3199
+ }
3200
+ nextTick(() => {
3201
+ const selected = selectedId.value;
3202
+ if (!/* @__PURE__ */ isUndefined(selected)) virtualFocus.highlight(String(selected));
3203
+ });
3204
+ }, { flush: "post" });
3205
+ function open() {
3206
+ if (!isOpen.value && !toValue(__props.disabled)) isOpen.value = true;
3207
+ }
3208
+ function close() {
3209
+ isOpen.value = false;
3210
+ }
3211
+ function toggle() {
3212
+ if (isOpen.value) close();
3213
+ else open();
3214
+ }
3215
+ function select(itemId) {
3216
+ if (__props.multiple) selection.toggle(itemId);
3217
+ else {
3218
+ selection.select(itemId);
3219
+ close();
3220
+ }
3221
+ }
3222
+ provideSelectContext(__props.namespace, {
3223
+ isOpen,
3224
+ disabled: toRef(() => __props.disabled),
3225
+ multiple: __props.multiple,
3226
+ id,
3227
+ listboxId,
3228
+ activatorId,
3229
+ name: __props.name,
3230
+ form: __props.form,
3231
+ activatorEl,
3232
+ selection,
3233
+ virtualFocus,
3234
+ popover,
3235
+ open,
3236
+ close,
3237
+ toggle,
3238
+ select
3239
+ });
3240
+ const slotProps = toRef(() => ({
3241
+ id,
3242
+ isOpen: isOpen.value,
3243
+ isDisabled: toValue(__props.disabled),
3244
+ open,
3245
+ close,
3246
+ toggle
3247
+ }));
3248
+ return (_ctx, _cache) => {
3249
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$86), {
3250
+ as: __props.as,
3251
+ renderless: ""
3252
+ }, {
3253
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3254
+ _: 3
3255
+ }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$36, { key: 0 })) : createCommentVNode("v-if", true)], 64);
3256
+ };
3257
+ }
3258
+ });
3259
+ //#endregion
3260
+ //#region src/components/Select/SelectActivator.vue
3261
+ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
3262
+ name: "SelectActivator",
3263
+ __name: "SelectActivator",
3264
+ props: {
3265
+ namespace: { default: "v0:select" },
3266
+ as: { default: "button" },
3267
+ renderless: { type: Boolean }
3268
+ },
3269
+ setup(__props) {
3270
+ const context = useSelectContext(__props.namespace);
3271
+ const activatorEl = useTemplateRef("activator");
3272
+ watchEffect(() => {
3273
+ context.activatorEl.value = activatorEl.value?.element ?? null;
3274
+ });
3275
+ function onClick() {
3276
+ context.toggle();
3277
+ }
3278
+ function onKeydown(e) {
3279
+ if (context.isOpen.value) switch (e.key) {
3280
+ case " ":
3281
+ case "Enter":
3282
+ e.preventDefault();
3283
+ if (!/* @__PURE__ */ isUndefined(context.virtualFocus.highlightedId.value)) context.select(context.virtualFocus.highlightedId.value);
3284
+ break;
3285
+ case "Escape":
3286
+ e.preventDefault();
3287
+ context.close();
3288
+ break;
3289
+ case "Tab":
3290
+ context.close();
3291
+ break;
3292
+ case "ArrowDown":
3293
+ case "ArrowUp":
3294
+ case "Home":
3295
+ case "End":
3296
+ context.virtualFocus.onKeydown(e);
3297
+ break;
3298
+ }
3299
+ else switch (e.key) {
3300
+ case " ":
3301
+ case "Enter":
3302
+ case "ArrowDown":
3303
+ case "ArrowUp":
3304
+ e.preventDefault();
3305
+ context.open();
3306
+ break;
3307
+ }
3308
+ }
3309
+ const style = toRef(() => context.popover.anchorStyles.value);
3310
+ const slotProps = toRef(() => ({
3311
+ isOpen: context.isOpen.value,
3312
+ attrs: {
3313
+ "id": context.activatorId,
3314
+ "role": "combobox",
3315
+ "type": __props.as === "button" ? "button" : void 0,
3316
+ "aria-expanded": context.isOpen.value,
3317
+ "aria-haspopup": "listbox",
3318
+ "aria-controls": context.listboxId,
3319
+ "data-select-open": context.isOpen.value ? "" : void 0
3320
+ }
3321
+ }));
3322
+ return (_ctx, _cache) => {
3323
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3324
+ ref: "activator",
3325
+ as: __props.as,
3326
+ style: style.value
3327
+ }, slotProps.value.attrs, {
3328
+ onClick,
3329
+ onKeydown
3330
+ }), {
3331
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3332
+ _: 3
3333
+ }, 16, ["as", "style"]);
3334
+ };
3335
+ }
3336
+ });
3337
+ //#endregion
3338
+ //#region src/components/Select/SelectContent.vue
3339
+ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
3340
+ name: "SelectContent",
3341
+ __name: "SelectContent",
3342
+ props: {
3343
+ namespace: { default: "v0:select" },
3344
+ as: { default: "div" },
3345
+ renderless: { type: Boolean }
3346
+ },
3347
+ setup(__props) {
3348
+ const context = useSelectContext(__props.namespace);
3349
+ const content = useTemplateRef("content");
3350
+ context.popover.attach(() => content.value?.element);
3351
+ const { hasContent } = useLazy(context.isOpen);
3352
+ const slotProps = toRef(() => ({ isOpen: context.isOpen.value }));
3353
+ const attrs = toRef(() => ({
3354
+ ...context.popover.contentAttrs.value,
3355
+ "id": context.listboxId,
3356
+ "role": "listbox",
3357
+ "aria-multiselectable": context.multiple || void 0,
3358
+ "tabindex": -1
3359
+ }));
3360
+ const style = toRef(() => context.popover.contentStyles.value);
3361
+ return (_ctx, _cache) => {
3362
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3363
+ ref_key: "content",
3364
+ ref: content,
3365
+ as: __props.as,
3366
+ style: style.value
3367
+ }, attrs.value), {
3368
+ default: withCtx(() => [unref(hasContent) ? renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 0 }, slotProps.value))) : createCommentVNode("v-if", true)]),
3369
+ _: 3
3370
+ }, 16, ["as", "style"]);
3371
+ };
3372
+ }
3373
+ });
3374
+ //#endregion
3375
+ //#region src/components/Select/SelectCue.vue
3376
+ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
3377
+ name: "SelectCue",
3378
+ __name: "SelectCue",
3379
+ props: {
3380
+ namespace: { default: "v0:select" },
3381
+ as: { default: "span" },
3382
+ renderless: { type: Boolean }
3383
+ },
3384
+ setup(__props) {
3385
+ const context = useSelectContext(__props.namespace);
3386
+ const slotProps = toRef(() => ({
3387
+ isOpen: context.isOpen.value,
3388
+ attrs: {
3389
+ "aria-hidden": true,
3390
+ "data-state": context.isOpen.value ? "open" : "closed"
3391
+ }
3392
+ }));
3393
+ return (_ctx, _cache) => {
3394
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, slotProps.value.attrs), {
3395
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3396
+ _: 3
3397
+ }, 16, ["as"]);
3398
+ };
3399
+ }
3400
+ });
3401
+ //#endregion
3402
+ //#region src/components/Select/SelectItem.vue
3403
+ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
3404
+ name: "SelectItem",
3405
+ __name: "SelectItem",
3406
+ props: {
3407
+ namespace: { default: "v0:select" },
3408
+ id: {},
3409
+ value: {},
3410
+ disabled: {},
3411
+ as: { default: "div" },
3412
+ renderless: { type: Boolean }
3413
+ },
3414
+ setup(__props) {
3415
+ const context = useSelectContext(__props.namespace);
3416
+ const ticket = context.selection.register({
3417
+ id: __props.id,
3418
+ value: __props.value,
3419
+ disabled: __props.disabled
3420
+ });
3421
+ const elementId = `${context.id}-option-${ticket.id}`;
3422
+ const isSelected = toRef(() => toValue(ticket.isSelected));
3423
+ const isDisabled = toRef(() => toValue(ticket.disabled) || toValue(context.disabled));
3424
+ const isHighlighted = toRef(() => context.virtualFocus.highlightedId.value === ticket.id);
3425
+ function onClick() {
3426
+ if (!toValue(isDisabled)) context.select(ticket.id);
3427
+ }
3428
+ onUnmounted(() => {
3429
+ context.selection.unregister(ticket.id);
3430
+ });
3431
+ const slotProps = toRef(() => ({
3432
+ value: __props.value,
3433
+ isSelected: isSelected.value,
3434
+ isHighlighted: isHighlighted.value,
3435
+ isDisabled: isDisabled.value,
3436
+ select: () => context.select(ticket.id),
3437
+ attrs: {
3438
+ "id": elementId,
3439
+ "role": "option",
3440
+ "aria-selected": isSelected.value,
3441
+ "aria-disabled": isDisabled.value || void 0,
3442
+ "data-selected": isSelected.value || void 0,
3443
+ "data-highlighted": isHighlighted.value ? "" : void 0,
3444
+ "data-disabled": isDisabled.value || void 0,
3445
+ "data-id": String(ticket.id)
3446
+ }
3447
+ }));
3448
+ return (_ctx, _cache) => {
3449
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ as: __props.as }, slotProps.value.attrs, { onClick }), {
3450
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3451
+ _: 3
3452
+ }, 16, ["as"]);
3453
+ };
3454
+ }
3455
+ });
3456
+ //#endregion
3457
+ //#region src/components/Select/SelectPlaceholder.vue
3458
+ const _sfc_main$30 = /* @__PURE__ */ defineComponent({
3459
+ name: "SelectPlaceholder",
3460
+ __name: "SelectPlaceholder",
3461
+ props: {
3462
+ namespace: { default: "v0:select" },
3463
+ as: { default: "span" },
3464
+ renderless: { type: Boolean }
3465
+ },
3466
+ setup(__props) {
3467
+ const context = useSelectContext(__props.namespace);
3468
+ const hasValue = toRef(() => context.selection.selectedIds.size > 0);
3469
+ return (_ctx, _cache) => {
3470
+ return !hasValue.value ? (openBlock(), createBlock(unref(_sfc_main$86), {
3471
+ key: 0,
3472
+ as: __props.as
3473
+ }, {
3474
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", { hasValue: hasValue.value })]),
3475
+ _: 3
3476
+ }, 8, ["as"])) : createCommentVNode("v-if", true);
3477
+ };
3478
+ }
3479
+ });
3480
+ //#endregion
3481
+ //#region src/components/Select/SelectValue.vue
3482
+ const _sfc_main$29 = /* @__PURE__ */ defineComponent({
3483
+ name: "SelectValue",
3484
+ __name: "SelectValue",
3485
+ props: {
3486
+ namespace: { default: "v0:select" },
3487
+ as: { default: "span" },
3488
+ renderless: { type: Boolean }
3489
+ },
3490
+ setup(__props) {
3491
+ const context = useSelectContext(__props.namespace);
3492
+ const items = toRef(() => Array.from(context.selection.selectedItems.value));
3493
+ const values = toRef(() => Array.from(context.selection.selectedValues.value));
3494
+ const hasValue = toRef(() => context.selection.selectedIds.size > 0);
3495
+ const slotProps = toRef(() => ({
3496
+ selectedItem: items.value[0],
3497
+ selectedItems: items.value,
3498
+ selectedValue: values.value[0],
3499
+ selectedValues: values.value,
3500
+ hasValue: hasValue.value,
3501
+ attrs: {}
3502
+ }));
3503
+ return (_ctx, _cache) => {
3504
+ return hasValue.value ? (openBlock(), createBlock(unref(_sfc_main$86), {
3505
+ key: 0,
3506
+ as: __props.as
3507
+ }, {
3508
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)), () => [createTextVNode(toDisplayString(values.value[0]), 1)])]),
3509
+ _: 3
3510
+ }, 8, ["as"])) : createCommentVNode("v-if", true);
3511
+ };
3512
+ }
3513
+ });
3514
+ //#endregion
3515
+ //#region src/components/Select/index.ts
3516
+ /**
3517
+ * Select component with sub-components for building dropdown selects.
3518
+ *
3519
+ * @see https://0.vuetifyjs.com/components/select
3520
+ *
3521
+ * @example
3522
+ * ```vue
3523
+ * <script lang="ts" setup>
3524
+ * import { Select } from '@vuetify/v0'
3525
+ * import { ref } from 'vue'
3526
+ *
3527
+ * const selected = ref()
3528
+ * const items = [
3529
+ * { id: 'apple', label: 'Apple' },
3530
+ * { id: 'banana', label: 'Banana' },
3531
+ * { id: 'cherry', label: 'Cherry' },
3532
+ * ]
3533
+ * <\/script>
3534
+ *
3535
+ * <template>
3536
+ * <Select.Root v-model="selected">
3537
+ * <Select.Activator>
3538
+ * <Select.Value v-slot="{ selectedValue }">
3539
+ * {{ selectedValue }}
3540
+ * </Select.Value>
3541
+ * <Select.Placeholder>Pick a fruit</Select.Placeholder>
3542
+ * </Select.Activator>
3543
+ *
3544
+ * <Select.Content>
3545
+ * <Select.Item
3546
+ * v-for="item in items"
3547
+ * :key="item.id"
3548
+ * :id="item.id"
3549
+ * :value="item.label"
3550
+ * v-slot="{ isSelected, attrs }"
3551
+ * >
3552
+ * <div v-bind="attrs">{{ item.label }}</div>
3553
+ * </Select.Item>
3554
+ * </Select.Content>
3555
+ * </Select.Root>
3556
+ * </template>
3557
+ * ```
3558
+ */
3559
+ const Select = {
3560
+ Root: _sfc_main$35,
3561
+ Activator: _sfc_main$34,
3562
+ Value: _sfc_main$29,
3563
+ Content: _sfc_main$33,
3564
+ Cue: _sfc_main$32,
3565
+ Item: _sfc_main$31,
3566
+ Placeholder: _sfc_main$30
3567
+ };
3568
+ //#endregion
2681
3569
  //#region src/components/Selection/SelectionRoot.vue
2682
3570
  const [useSelectionRoot, provideSelectionRoot] = createContext();
2683
- const _sfc_main$23 = /* @__PURE__ */ defineComponent({
3571
+ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
2684
3572
  name: "SelectionRoot",
2685
3573
  __name: "SelectionRoot",
2686
3574
  props: /* @__PURE__ */ mergeModels({
@@ -2732,7 +3620,7 @@ const _sfc_main$23 = /* @__PURE__ */ defineComponent({
2732
3620
  });
2733
3621
  //#endregion
2734
3622
  //#region src/components/Selection/SelectionItem.vue
2735
- const _sfc_main$22 = /* @__PURE__ */ defineComponent({
3623
+ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
2736
3624
  name: "SelectionItem",
2737
3625
  __name: "SelectionItem",
2738
3626
  props: {
@@ -2782,8 +3670,233 @@ const _sfc_main$22 = /* @__PURE__ */ defineComponent({
2782
3670
  * @see https://0.vuetifyjs.com/components/selection
2783
3671
  */
2784
3672
  const Selection = {
2785
- Root: _sfc_main$23,
2786
- Item: _sfc_main$22
3673
+ Root: _sfc_main$28,
3674
+ Item: _sfc_main$27
3675
+ };
3676
+ //#endregion
3677
+ //#region src/components/Snackbar/SnackbarPortal.vue
3678
+ const _sfc_main$26 = /* @__PURE__ */ defineComponent({
3679
+ name: "SnackbarPortal",
3680
+ inheritAttrs: false,
3681
+ __name: "SnackbarPortal",
3682
+ props: {
3683
+ teleport: {
3684
+ type: [String, Boolean],
3685
+ default: "body"
3686
+ },
3687
+ as: { default: "div" },
3688
+ renderless: { type: Boolean }
3689
+ },
3690
+ setup(__props) {
3691
+ const ticket = useStack().register();
3692
+ onUnmounted(() => ticket.unregister());
3693
+ const styles = toRef(() => ({ zIndex: ticket.zIndex.value }));
3694
+ const slotProps = toRef(() => ({ zIndex: ticket.zIndex.value }));
3695
+ return (_ctx, _cache) => {
3696
+ return __props.teleport ? (openBlock(), createBlock(Teleport, {
3697
+ key: 0,
3698
+ to: __props.teleport
3699
+ }, [createVNode(unref(_sfc_main$86), mergeProps({
3700
+ as: __props.as,
3701
+ style: styles.value
3702
+ }, _ctx.$attrs), {
3703
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3704
+ _: 3
3705
+ }, 16, ["as", "style"])], 8, ["to"])) : (openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3706
+ key: 1,
3707
+ as: __props.as,
3708
+ style: styles.value
3709
+ }, _ctx.$attrs), {
3710
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3711
+ _: 3
3712
+ }, 16, ["as", "style"]));
3713
+ };
3714
+ }
3715
+ });
3716
+ //#endregion
3717
+ //#region src/components/Snackbar/SnackbarQueue.vue
3718
+ const [useSnackbarQueueContext, provideSnackbarQueueContext] = createContext({ suffix: "queue" });
3719
+ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
3720
+ name: "SnackbarQueue",
3721
+ __name: "SnackbarQueue",
3722
+ props: {
3723
+ namespace: { default: "v0:notifications" },
3724
+ as: { default: "div" },
3725
+ renderless: { type: Boolean }
3726
+ },
3727
+ setup(__props) {
3728
+ const notifications = useNotifications(__props.namespace);
3729
+ function dismiss(id) {
3730
+ notifications.unregister(id);
3731
+ if (reasons.size > 0) notifications.queue.pause();
3732
+ }
3733
+ provideSnackbarQueueContext(__props.namespace, { dismiss });
3734
+ const items = computed(() => notifications.queue.values().map((q) => notifications.get(q.id)).filter((n) => !/* @__PURE__ */ isUndefined(n)).toReversed());
3735
+ const container = useTemplateRef("container");
3736
+ const reasons = /* @__PURE__ */ new Set();
3737
+ function pause(reason) {
3738
+ reasons.add(reason);
3739
+ notifications.queue.pause();
3740
+ }
3741
+ function resume(reason) {
3742
+ reasons.delete(reason);
3743
+ if (reasons.size === 0) notifications.queue.resume();
3744
+ }
3745
+ function onEnter() {
3746
+ pause("hover");
3747
+ }
3748
+ function onLeave() {
3749
+ resume("hover");
3750
+ }
3751
+ function onFocusin() {
3752
+ pause("focus");
3753
+ }
3754
+ function onFocusout(e) {
3755
+ const el = container.value?.element ?? null;
3756
+ if (/* @__PURE__ */ isElement(el) && /* @__PURE__ */ isElement(e.relatedTarget) && el.contains(e.relatedTarget)) return;
3757
+ resume("focus");
3758
+ }
3759
+ onUnmounted(() => {
3760
+ if (reasons.size > 0) {
3761
+ reasons.clear();
3762
+ notifications.queue.resume();
3763
+ }
3764
+ });
3765
+ const slotProps = toRef(() => ({
3766
+ items: items.value,
3767
+ attrs: {
3768
+ onMouseenter: onEnter,
3769
+ onMouseleave: onLeave,
3770
+ onFocusin,
3771
+ onFocusout
3772
+ }
3773
+ }));
3774
+ return (_ctx, _cache) => {
3775
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3776
+ ref_key: "container",
3777
+ ref: container
3778
+ }, slotProps.value.attrs, { as: __props.as }), {
3779
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3780
+ _: 3
3781
+ }, 16, ["as"]);
3782
+ };
3783
+ }
3784
+ });
3785
+ //#endregion
3786
+ //#region src/components/Snackbar/SnackbarRoot.vue
3787
+ const [useSnackbarRootContext, provideSnackbarRootContext] = createContext({ suffix: "root" });
3788
+ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
3789
+ name: "SnackbarRoot",
3790
+ __name: "SnackbarRoot",
3791
+ props: {
3792
+ namespace: { default: "v0:notifications" },
3793
+ id: { default: () => /* @__PURE__ */ useId$1() },
3794
+ as: { default: "div" },
3795
+ renderless: { type: Boolean }
3796
+ },
3797
+ emits: ["dismiss"],
3798
+ setup(__props, { emit: __emit }) {
3799
+ const emit = __emit;
3800
+ const queue = useSnackbarQueueContext(__props.namespace, null);
3801
+ function onDismiss() {
3802
+ if (queue) queue.dismiss(__props.id);
3803
+ else emit("dismiss", __props.id);
3804
+ }
3805
+ provideSnackbarRootContext(__props.namespace, {
3806
+ id: __props.id,
3807
+ onDismiss
3808
+ });
3809
+ const slotProps = toRef(() => ({
3810
+ id: __props.id,
3811
+ attrs: { role: "status" }
3812
+ }));
3813
+ return (_ctx, _cache) => {
3814
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, { as: __props.as }), {
3815
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3816
+ _: 3
3817
+ }, 16, ["as"]);
3818
+ };
3819
+ }
3820
+ });
3821
+ //#endregion
3822
+ //#region src/components/Snackbar/SnackbarContent.vue
3823
+ const _sfc_main$23 = /* @__PURE__ */ defineComponent({
3824
+ name: "SnackbarContent",
3825
+ __name: "SnackbarContent",
3826
+ props: {
3827
+ as: { default: "div" },
3828
+ renderless: { type: Boolean }
3829
+ },
3830
+ setup(__props) {
3831
+ return (_ctx, _cache) => {
3832
+ return openBlock(), createBlock(unref(_sfc_main$86), { as: __props.as }, {
3833
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
3834
+ _: 3
3835
+ }, 8, ["as"]);
3836
+ };
3837
+ }
3838
+ });
3839
+ //#endregion
3840
+ //#region src/components/Snackbar/SnackbarClose.vue
3841
+ const _sfc_main$22 = /* @__PURE__ */ defineComponent({
3842
+ name: "SnackbarClose",
3843
+ __name: "SnackbarClose",
3844
+ props: {
3845
+ namespace: { default: "v0:notifications" },
3846
+ as: { default: "button" },
3847
+ renderless: { type: Boolean }
3848
+ },
3849
+ setup(__props) {
3850
+ const context = useSnackbarRootContext(__props.namespace);
3851
+ function onClick() {
3852
+ context.onDismiss();
3853
+ }
3854
+ const slotProps = toRef(() => ({ attrs: {
3855
+ "type": __props.as === "button" ? "button" : void 0,
3856
+ "aria-label": "Close",
3857
+ "onClick": onClick
3858
+ } }));
3859
+ return (_ctx, _cache) => {
3860
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, { as: __props.as }), {
3861
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3862
+ _: 3
3863
+ }, 16, ["as"]);
3864
+ };
3865
+ }
3866
+ });
3867
+ //#endregion
3868
+ //#region src/components/Snackbar/index.ts
3869
+ /**
3870
+ * Snackbar component with sub-components for building toast notifications.
3871
+ *
3872
+ * @see https://0.vuetifyjs.com/components/snackbar
3873
+ *
3874
+ * @example
3875
+ * ```vue
3876
+ * <script setup lang="ts">
3877
+ * import { Snackbar } from '@vuetify/v0'
3878
+ * <\/script>
3879
+ *
3880
+ * <template>
3881
+ * <Snackbar.Portal>
3882
+ * <Snackbar.Queue v-slot="{ items }">
3883
+ * <template v-for="item in items" :key="item.id">
3884
+ * <Snackbar.Root :id="item.id">
3885
+ * <Snackbar.Content>{{ item.subject }}</Snackbar.Content>
3886
+ * <Snackbar.Close />
3887
+ * </Snackbar.Root>
3888
+ * </template>
3889
+ * </Snackbar.Queue>
3890
+ * </Snackbar.Portal>
3891
+ * </template>
3892
+ * ```
3893
+ */
3894
+ const Snackbar = {
3895
+ Portal: _sfc_main$26,
3896
+ Queue: _sfc_main$25,
3897
+ Root: _sfc_main$24,
3898
+ Content: _sfc_main$23,
3899
+ Close: _sfc_main$22
2787
3900
  };
2788
3901
  //#endregion
2789
3902
  //#region src/components/Slider/SliderRoot.vue
@@ -2910,7 +4023,7 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
2910
4023
  }
2911
4024
  }));
2912
4025
  return (_ctx, _cache) => {
2913
- return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$68), mergeProps({
4026
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$86), mergeProps({
2914
4027
  ...unref(attrs),
2915
4028
  ...slotProps.value.attrs
2916
4029
  }, {
@@ -3002,7 +4115,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
3002
4115
  }
3003
4116
  }));
3004
4117
  return (_ctx, _cache) => {
3005
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
4118
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3006
4119
  ...unref(attrs),
3007
4120
  ...slotProps.value.attrs
3008
4121
  }, {
@@ -3116,7 +4229,7 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
3116
4229
  }
3117
4230
  }));
3118
4231
  return (_ctx, _cache) => {
3119
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ ref: "thumb" }, {
4232
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ ref: "thumb" }, {
3120
4233
  ...unref(attrs),
3121
4234
  ...slotProps.value.attrs
3122
4235
  }, {
@@ -3185,7 +4298,7 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
3185
4298
  "onPointerdown": onPointerdown
3186
4299
  } }));
3187
4300
  return (_ctx, _cache) => {
3188
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ ref: "track" }, {
4301
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ ref: "track" }, {
3189
4302
  ...unref(attrs),
3190
4303
  ...slotProps.value.attrs
3191
4304
  }, {
@@ -3398,16 +4511,16 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
3398
4511
  }
3399
4512
  }));
3400
4513
  return (_ctx, _cache) => {
3401
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ ref: "root" }, {
4514
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ ref: "root" }, {
3402
4515
  ...unref(attrs),
3403
4516
  ...slotProps.value.attrs
3404
4517
  }, {
3405
4518
  as: __props.as,
3406
4519
  renderless: __props.renderless,
3407
- style: {
4520
+ style: [unref(attrs).style, {
3408
4521
  display: "flex",
3409
4522
  flexDirection: __props.orientation === "horizontal" ? "row" : "column"
3410
- }
4523
+ }]
3411
4524
  }), {
3412
4525
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3413
4526
  _: 3
@@ -3509,18 +4622,18 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3509
4622
  }
3510
4623
  }));
3511
4624
  return (_ctx, _cache) => {
3512
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
4625
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3513
4626
  ...unref(attrs),
3514
4627
  ...slotProps.value.attrs
3515
4628
  }, {
3516
4629
  as: __props.as,
3517
4630
  renderless: __props.renderless,
3518
- style: {
4631
+ style: [unref(attrs).style, {
3519
4632
  flexGrow: 0,
3520
4633
  flexShrink: 0,
3521
4634
  flexBasis: `${size.value}%`,
3522
4635
  overflow: "hidden"
3523
- }
4636
+ }]
3524
4637
  }), {
3525
4638
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3526
4639
  _: 3
@@ -3558,7 +4671,6 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3558
4671
  });
3559
4672
  const hovering = shallowRef(false);
3560
4673
  const startPosition = shallowRef(0);
3561
- let rafId = 0;
3562
4674
  let latestPos = 0;
3563
4675
  const isDisabled = toRef(() => __props.disabled || splitter.disabled.value);
3564
4676
  const isHorizontal = toRef(() => splitter.orientation.value === "horizontal");
@@ -3591,23 +4703,21 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3591
4703
  splitter.onStartDrag(ticket.index);
3592
4704
  }
3593
4705
  useToggleScope(() => splitter.draggingHandle.value === ticket.index, () => {
4706
+ const update = useRaf(() => {
4707
+ const root = splitter.rootEl.value;
4708
+ if (!root) return;
4709
+ const rootSize = isHorizontal.value ? root.offsetWidth : root.offsetHeight;
4710
+ if (!rootSize) return;
4711
+ const delta = (latestPos - startPosition.value) / rootSize * 100;
4712
+ startPosition.value = latestPos;
4713
+ splitter.resize(ticket.index, delta);
4714
+ });
3594
4715
  useDocumentEventListener("pointermove", (e) => {
3595
4716
  latestPos = isHorizontal.value ? e.clientX : e.clientY;
3596
- if (rafId) return;
3597
- rafId = requestAnimationFrame(() => {
3598
- const root = splitter.rootEl.value;
3599
- if (!root) return;
3600
- const rootSize = isHorizontal.value ? root.offsetWidth : root.offsetHeight;
3601
- if (!rootSize) return;
3602
- const delta = (latestPos - startPosition.value) / rootSize * 100;
3603
- startPosition.value = latestPos;
3604
- splitter.resize(ticket.index, delta);
3605
- rafId = 0;
3606
- });
4717
+ update();
3607
4718
  });
3608
4719
  useDocumentEventListener("pointerup", () => {
3609
- if (rafId) cancelAnimationFrame(rafId);
3610
- rafId = 0;
4720
+ update.cancel();
3611
4721
  if (IN_BROWSER) {
3612
4722
  document.documentElement.style.userSelect = "";
3613
4723
  document.documentElement.style.touchAction = "";
@@ -3615,8 +4725,6 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3615
4725
  splitter.onEndDrag();
3616
4726
  });
3617
4727
  onScopeDispose(() => {
3618
- if (rafId) cancelAnimationFrame(rafId);
3619
- rafId = 0;
3620
4728
  splitter.onEndDrag();
3621
4729
  if (IN_BROWSER) {
3622
4730
  document.documentElement.style.userSelect = "";
@@ -3711,17 +4819,25 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3711
4819
  }
3712
4820
  }));
3713
4821
  return (_ctx, _cache) => {
3714
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
4822
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
3715
4823
  ...unref(attrs),
3716
4824
  ...slotProps.value.attrs
3717
4825
  }, {
3718
4826
  as: __props.as,
3719
4827
  renderless: __props.renderless,
3720
- style: { flexShrink: 0 }
4828
+ style: [
4829
+ unref(attrs).style,
4830
+ slotProps.value.attrs.style,
4831
+ { flexShrink: 0 }
4832
+ ]
3721
4833
  }), {
3722
4834
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
3723
4835
  _: 3
3724
- }, 16, ["as", "renderless"]);
4836
+ }, 16, [
4837
+ "as",
4838
+ "renderless",
4839
+ "style"
4840
+ ]);
3725
4841
  };
3726
4842
  }
3727
4843
  });
@@ -3817,7 +4933,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
3817
4933
  }
3818
4934
  }));
3819
4935
  return (_ctx, _cache) => {
3820
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
4936
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
3821
4937
  as: __props.as,
3822
4938
  renderless: __props.renderless
3823
4939
  }), {
@@ -3949,7 +5065,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
3949
5065
  }
3950
5066
  }));
3951
5067
  return (_ctx, _cache) => {
3952
- return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$68), mergeProps({
5068
+ return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(_sfc_main$86), mergeProps({
3953
5069
  ...unref(attrs),
3954
5070
  ...slotProps.value.attrs
3955
5071
  }, {
@@ -4093,7 +5209,7 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
4093
5209
  }
4094
5210
  }));
4095
5211
  return (_ctx, _cache) => {
4096
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
5212
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
4097
5213
  ...unref(attrs),
4098
5214
  ...slotProps.value.attrs
4099
5215
  }, {
@@ -4133,7 +5249,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
4133
5249
  }
4134
5250
  }));
4135
5251
  return (_ctx, _cache) => {
4136
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
5252
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
4137
5253
  as: __props.as,
4138
5254
  renderless: __props.renderless
4139
5255
  }), {
@@ -4164,7 +5280,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
4164
5280
  attrs: { "data-state": dataState.value }
4165
5281
  }));
4166
5282
  return (_ctx, _cache) => {
4167
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps(slotProps.value.attrs, {
5283
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps(slotProps.value.attrs, {
4168
5284
  as: __props.as,
4169
5285
  dir: "ltr",
4170
5286
  renderless: __props.renderless
@@ -4517,7 +5633,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4517
5633
  }
4518
5634
  }));
4519
5635
  return (_ctx, _cache) => {
4520
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
5636
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
4521
5637
  ...unref(attrs),
4522
5638
  ...slotProps.value.attrs
4523
5639
  }, {
@@ -4632,7 +5748,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
4632
5748
  }
4633
5749
  }));
4634
5750
  return (_ctx, _cache) => {
4635
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({ ref: "root" }, {
5751
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({ ref: "root" }, {
4636
5752
  ...unref(attrs),
4637
5753
  ...slotProps.value.attrs
4638
5754
  }, {
@@ -4684,7 +5800,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4684
5800
  }
4685
5801
  }));
4686
5802
  return (_ctx, _cache) => {
4687
- return openBlock(), createBlock(unref(_sfc_main$68), mergeProps({
5803
+ return openBlock(), createBlock(unref(_sfc_main$86), mergeProps({
4688
5804
  ...unref(attrs),
4689
5805
  ...slotProps.value.attrs
4690
5806
  }, {
@@ -4734,4 +5850,4 @@ const Tabs = {
4734
5850
  Panel: _sfc_main
4735
5851
  };
4736
5852
  //#endregion
4737
- export { provideRadioRoot as $, _sfc_main$56 as $t, _sfc_main$14 as A, ExpansionPanel as At, _sfc_main$21 as B, Dialog as Bt, _sfc_main$12 as C, usePaginationItems as Ct, provideSwitchGroup as D, _sfc_main$41 as Dt, _sfc_main$13 as E, _sfc_main$40 as Et, Slider as F, provideExpansionPanelItem as Ft, _sfc_main$23 as G, _sfc_main$51 as Gt, useSliderRoot as H, _sfc_main$48 as Ht, _sfc_main$17 as I, useExpansionPanelItem as It, _sfc_main$24 as J, useDialogContext as Jt, provideSelectionRoot as K, _sfc_main$52 as Kt, _sfc_main$18 as L, _sfc_main$46 as Lt, _sfc_main$16 as M, _sfc_main$43 as Mt, provideSplitterRoot as N, _sfc_main$44 as Nt, useSwitchGroup as O, provideGroupRoot as Ot, useSplitterRoot as P, _sfc_main$45 as Pt, _sfc_main$27 as Q, _sfc_main$55 as Qt, _sfc_main$19 as R, provideExpansionPanelRoot as Rt, _sfc_main$11 as S, usePaginationControls as St, useSwitchRoot as T, Group as Tt, Selection as U, _sfc_main$49 as Ut, provideSliderRoot as V, _sfc_main$47 as Vt, _sfc_main$22 as W, _sfc_main$50 as Wt, _sfc_main$25 as X, _sfc_main$53 as Xt, Radio as Y, Checkbox as Yt, _sfc_main$26 as Z, _sfc_main$54 as Zt, useSingleRoot as _, _sfc_main$66 as _n, _sfc_main$38 as _t, _sfc_main$3 as a, Breadcrumbs as an, _sfc_main$29 as at, _sfc_main$9 as b, useAvatarRoot as bn, providePaginationItems as bt, Step as c, _sfc_main$60 as cn, providePopoverContext as ct, provideStepRoot as d, _sfc_main$63 as dn, _sfc_main$32 as dt, provideCheckboxRoot as en, useRadioRoot as et, useStepRoot as f, _sfc_main$64 as fn, _sfc_main$33 as ft, provideSingleRoot as g, _sfc_main$65 as gn, _sfc_main$37 as gt, _sfc_main$7 as h, Avatar as hn, _sfc_main$36 as ht, _sfc_main$2 as i, useCheckboxGroup as in, Popover as it, _sfc_main$15 as j, _sfc_main$42 as jt, Splitter as k, useGroupRoot as kt, _sfc_main$4 as l, _sfc_main$61 as ln, usePopoverContext as lt, _sfc_main$6 as m, useBreadcrumbsRoot as mn, _sfc_main$35 as mt, _sfc_main as n, _sfc_main$57 as nn, provideRadioGroup as nt, provideTabsRoot as o, _sfc_main$58 as on, _sfc_main$30 as ot, Single as p, provideBreadcrumbsRoot as pn, _sfc_main$34 as pt, useSelectionRoot as q, provideDialogContext as qt, _sfc_main$1 as r, provideCheckboxGroup as rn, useRadioGroup as rt, useTabsRoot as s, _sfc_main$59 as sn, _sfc_main$31 as st, Tabs as t, useCheckboxRoot as tn, _sfc_main$28 as tt, _sfc_main$5 as u, _sfc_main$62 as un, Pagination as ut, Switch as v, _sfc_main$67 as vn, _sfc_main$39 as vt, provideSwitchRoot as w, usePaginationRoot as wt, _sfc_main$10 as x, _sfc_main$68 as xn, providePaginationRoot as xt, _sfc_main$8 as y, provideAvatarRoot as yn, providePaginationControls as yt, _sfc_main$20 as z, useExpansionPanelRoot as zt };
5853
+ export { Selection as $, _sfc_main$57 as $t, _sfc_main$14 as A, _sfc_main$75 as An, Pagination as At, _sfc_main$21 as B, _sfc_main$82 as Bn, providePaginationItems as Bt, _sfc_main$12 as C, Checkbox as Cn, useRadioGroup as Ct, provideSwitchGroup as D, _sfc_main$74 as Dn, _sfc_main$44 as Dt, _sfc_main$13 as E, _sfc_main$73 as En, _sfc_main$43 as Et, Slider as F, _sfc_main$77 as Fn, _sfc_main$49 as Ft, _sfc_main$23 as G, _sfc_main$84 as Gn, Input as Gt, useSliderRoot as H, useBreadcrumbsRoot as Hn, usePaginationControls as Ht, _sfc_main$17 as I, _sfc_main$78 as In, _sfc_main$50 as It, useSnackbarRootContext as J, useAvatarRoot as Jn, _sfc_main$55 as Jt, _sfc_main$24 as K, _sfc_main$85 as Kn, _sfc_main$53 as Kt, _sfc_main$18 as L, _sfc_main$79 as Ln, _sfc_main$51 as Lt, _sfc_main$16 as M, useCheckboxGroup as Mn, _sfc_main$46 as Mt, provideSplitterRoot as N, Breadcrumbs as Nn, _sfc_main$47 as Nt, useSwitchGroup as O, provideCheckboxRoot as On, providePopoverContext as Ot, useSplitterRoot as P, _sfc_main$76 as Pn, _sfc_main$48 as Pt, _sfc_main$26 as Q, Group as Qt, _sfc_main$19 as R, _sfc_main$80 as Rn, _sfc_main$52 as Rt, _sfc_main$11 as S, useDialogContext as Sn, provideRadioGroup as St, useSwitchRoot as T, _sfc_main$72 as Tn, _sfc_main$42 as Tt, Snackbar as U, Avatar as Un, usePaginationItems as Ut, provideSliderRoot as V, provideBreadcrumbsRoot as Vn, providePaginationRoot as Vt, _sfc_main$22 as W, _sfc_main$83 as Wn, usePaginationRoot as Wt, provideSnackbarQueueContext as X, provideInputRoot as Xt, _sfc_main$25 as Y, _sfc_main$86 as Yn, _sfc_main$56 as Yt, useSnackbarQueueContext as Z, useInputRoot as Zt, useSingleRoot as _, _sfc_main$67 as _n, _sfc_main$39 as _t, _sfc_main$3 as a, _sfc_main$60 as an, _sfc_main$29 as at, _sfc_main$9 as b, _sfc_main$70 as bn, useRadioRoot as bt, Step as c, _sfc_main$63 as cn, _sfc_main$32 as ct, provideStepRoot as d, _sfc_main$64 as dn, _sfc_main$35 as dt, _sfc_main$58 as en, _sfc_main$27 as et, useStepRoot as f, provideExpansionPanelRoot as fn, provideSelectContext as ft, provideSingleRoot as g, _sfc_main$66 as gn, _sfc_main$38 as gt, _sfc_main$7 as h, _sfc_main$65 as hn, Radio as ht, _sfc_main$2 as i, ExpansionPanel as in, Select as it, _sfc_main$15 as j, provideCheckboxGroup as jn, _sfc_main$45 as jt, Splitter as k, useCheckboxRoot as kn, usePopoverContext as kt, _sfc_main$4 as l, provideExpansionPanelItem as ln, _sfc_main$33 as lt, _sfc_main$6 as m, Dialog as mn, _sfc_main$37 as mt, _sfc_main as n, useGroupRoot as nn, provideSelectionRoot as nt, provideTabsRoot as o, _sfc_main$61 as on, _sfc_main$30 as ot, Single as p, useExpansionPanelRoot as pn, useSelectContext as pt, provideSnackbarRootContext as q, provideAvatarRoot as qn, _sfc_main$54 as qt, _sfc_main$1 as r, _sfc_main$59 as rn, useSelectionRoot as rt, useTabsRoot as s, _sfc_main$62 as sn, _sfc_main$31 as st, Tabs as t, provideGroupRoot as tn, _sfc_main$28 as tt, _sfc_main$5 as u, useExpansionPanelItem as un, _sfc_main$34 as ut, Switch as v, _sfc_main$68 as vn, _sfc_main$40 as vt, provideSwitchRoot as w, _sfc_main$71 as wn, Popover as wt, _sfc_main$10 as x, provideDialogContext as xn, _sfc_main$41 as xt, _sfc_main$8 as y, _sfc_main$69 as yn, provideRadioRoot as yt, _sfc_main$20 as z, _sfc_main$81 as zn, providePaginationControls as zt };