@vuetify/v0 0.1.10 → 0.1.12

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 (95) hide show
  1. package/dist/{adapter-CqP9Z4JU.d.mts → adapter-BWMm0JAQ.d.mts} +7 -7
  2. package/dist/{adapter-B4zE-hA5.mjs → adapter-DXRKF27V.mjs} +7 -4
  3. package/dist/{adapter-hDuQ9aNN.d.mts → adapter-DvT8lTup.d.mts} +3 -3
  4. package/dist/browser/index.js +1277 -232
  5. package/dist/components/index.d.mts +2 -2
  6. package/dist/components/index.mjs +24 -24
  7. package/dist/{components-TiigKVsl.mjs → components-CrZmJSH3.mjs} +1148 -346
  8. package/dist/composables/index.d.mts +7 -7
  9. package/dist/composables/index.mjs +22 -22
  10. package/dist/constants/index.mjs +1 -1
  11. package/dist/{createDataTable-DoqbfLt0.mjs → createDataTable-DKCm5-7f.mjs} +3 -3
  12. package/dist/{createGroup-DpbGTwFy.mjs → createGroup-CFMocwej.mjs} +1 -1
  13. package/dist/{createPagination-DZSJ8aO5.mjs → createPagination-CeGMgKCx.mjs} +10 -1
  14. package/dist/{createSelection-B6bQNyuF.mjs → createSelection-Cl1nX0he.mjs} +1 -1
  15. package/dist/{createSingle-fWHREEJO.mjs → createSingle-BxOPkL3l.mjs} +1 -1
  16. package/dist/{createTokens-N8QIWw_D.mjs → createTokens-C67MMcZJ.mjs} +2 -3
  17. package/dist/data-table/adapters/client/index.d.mts +1 -1
  18. package/dist/data-table/adapters/client/index.mjs +4 -4
  19. package/dist/data-table/adapters/index.d.mts +4 -4
  20. package/dist/data-table/adapters/index.mjs +6 -6
  21. package/dist/data-table/adapters/server/index.d.mts +1 -1
  22. package/dist/data-table/adapters/server/index.mjs +3 -3
  23. package/dist/data-table/adapters/virtual/index.d.mts +1 -1
  24. package/dist/data-table/adapters/virtual/index.mjs +4 -4
  25. package/dist/data-table/index.d.mts +5 -5
  26. package/dist/data-table/index.mjs +15 -15
  27. package/dist/date/index.d.mts +9 -6
  28. package/dist/date/index.mjs +44 -21
  29. package/dist/features/adapters/launchdarkly/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-F7fiJVG1.mjs → globals-uLTsqsl2.mjs} +1 -1
  34. package/dist/{index-DXdQb5BV.d.mts → index-BN-lmMJM.d.mts} +1377 -358
  35. package/dist/{index-Cv1XUHyA.d.mts → index-B_pScNDG.d.mts} +20 -1
  36. package/dist/{index-Dfa5Wb4T.d.mts → index-CBER-Sxt.d.mts} +33 -6
  37. package/dist/{index-CLDBngUs.d.mts → index-CdUIc68E.d.mts} +1 -1
  38. package/dist/index.d.mts +10 -10
  39. package/dist/index.mjs +25 -25
  40. package/dist/json/attributes.json +193 -1
  41. package/dist/json/importMap.json +52 -0
  42. package/dist/json/tags.json +108 -0
  43. package/dist/json/web-types.json +627 -3
  44. package/dist/{launchdarkly-jF2KZGoH.mjs → launchdarkly-DEqUn7qm.mjs} +7 -5
  45. package/dist/locale/adapters/index.mjs +2 -2
  46. package/dist/locale/adapters/v0/index.mjs +2 -2
  47. package/dist/locale/adapters/vue-i18n/index.mjs +1 -1
  48. package/dist/locale/index.d.mts +1 -1
  49. package/dist/locale/index.mjs +8 -8
  50. package/dist/logger/adapters/index.mjs +2 -2
  51. package/dist/logger/adapters/pino/index.mjs +1 -1
  52. package/dist/logger/adapters/v0/index.mjs +2 -2
  53. package/dist/logger/index.d.mts +1 -1
  54. package/dist/logger/index.mjs +3 -3
  55. package/dist/notifications/index.d.mts +1 -1
  56. package/dist/notifications/index.mjs +1 -1
  57. package/dist/palettes/index.d.mts +1 -1
  58. package/dist/permissions/adapters/index.d.mts +2 -2
  59. package/dist/permissions/adapters/index.mjs +1 -1
  60. package/dist/permissions/adapters/v0/index.d.mts +1 -1
  61. package/dist/permissions/adapters/v0/index.mjs +1 -1
  62. package/dist/permissions/index.d.mts +1 -1
  63. package/dist/permissions/index.mjs +5 -5
  64. package/dist/posthog-DSkHSLCw.mjs +45 -0
  65. package/dist/rules/index.d.mts +1 -1
  66. package/dist/rules/index.mjs +9 -9
  67. package/dist/{server-Ct-h4-OA.d.mts → server-CSLVeyyI.d.mts} +1 -1
  68. package/dist/{server-DHET3KNW.mjs → server-CYYGvVps.mjs} +1 -1
  69. package/dist/storage/index.d.mts +1 -1
  70. package/dist/storage/index.mjs +22 -22
  71. package/dist/theme/adapters/index.d.mts +1 -1
  72. package/dist/theme/adapters/index.mjs +2 -2
  73. package/dist/theme/adapters/v0/index.d.mts +1 -1
  74. package/dist/theme/adapters/v0/index.mjs +2 -2
  75. package/dist/theme/index.d.mts +1 -1
  76. package/dist/theme/index.mjs +8 -8
  77. package/dist/{useClickOutside-DNuJQ9EG.mjs → useClickOutside-hbi0BOL-.mjs} +143 -25
  78. package/dist/{useFeatures-CWNXTIXk.mjs → useFeatures-DNQ8V1So.mjs} +3 -3
  79. package/dist/{useLocale-Dzl6lCCF.mjs → useLocale-BpjMU7hm.mjs} +4 -4
  80. package/dist/{useLogger-Bw836Jbg.mjs → useLogger-jmvgVE6N.mjs} +3 -3
  81. package/dist/{usePermissions-DrRVDeVy.mjs → usePermissions-TIV4dGj1.mjs} +2 -2
  82. package/dist/{useRules-TMGuA8al.mjs → useRules-sRYyyrvM.mjs} +2 -2
  83. package/dist/{useTheme-qMpg3Ti6.mjs → useTheme-vAXldHit.mjs} +14 -7
  84. package/dist/utilities/index.d.mts +2 -2
  85. package/dist/utilities/index.mjs +125 -21
  86. package/dist/{v0-BBRwZ3at.d.mts → v0-B6ILFiMN.d.mts} +1 -1
  87. package/dist/{v0-CMeh39LQ.d.mts → v0-CQ2qHo5-.d.mts} +1 -1
  88. package/dist/{v0-BoWQ8RK0.mjs → v0-D87sooe0.mjs} +2 -2
  89. package/dist/{v0-BsuBuBSa.mjs → v0-Dem6wjKF.mjs} +1 -1
  90. package/dist/{v0-DgaVf3xM.mjs → v0-JMByI2xs.mjs} +1 -1
  91. package/dist/{v0-CIEQpOK2.mjs → v0-vIA3663g.mjs} +8 -3
  92. package/dist/{virtual-D0_D5gkh.mjs → virtual-D75KhU6Q.mjs} +2 -2
  93. package/dist/{virtual-B1lRbO7Q.d.mts → virtual-Dg0Cm5Hn.d.mts} +1 -1
  94. package/package.json +1 -1
  95. package/dist/posthog-CdcdfMYS.mjs +0 -48
@@ -1,5 +1,5 @@
1
1
  import * as Vue from "vue";
2
- import { Fragment, Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createPropsRestProxy, createTextVNode, createVNode, defineComponent, effectScope, guardReactiveProps, hasInjectionContext, inject, isRef, mergeModels, mergeProps, nextTick, normalizeProps, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, renderList, renderSlot, resolveDynamicComponent, shallowReactive, shallowReadonly, shallowRef, toDisplayString, toRaw, toRef, toValue, unref, useAttrs, useId as useId$1, useModel, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
2
+ import { Fragment, Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, effectScope, guardReactiveProps, hasInjectionContext, inject, isRef, mergeModels, mergeProps, nextTick, normalizeProps, normalizeStyle, onActivated, onBeforeUnmount, onDeactivated, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, renderList, renderSlot, resolveDynamicComponent, shallowReactive, shallowReadonly, shallowRef, toDisplayString, toRaw, toRef, toValue, unref, useAttrs, useId as useId$1, useModel, useTemplateRef, vShow, watch, watchEffect, withCtx, withDirectives } from "vue";
3
3
  /**
4
4
  * Set of HTML elements that are self-closing (void elements)
5
5
  * These elements cannot have children and don't need closing tags
@@ -74,6 +74,104 @@ function isSelfClosingTag(tag) {
74
74
  return SELF_CLOSING_TAGS.has(tag.toLowerCase());
75
75
  }
76
76
  //#endregion
77
+ //#region src/utilities/color.ts
78
+ function hexToRgb(hex) {
79
+ const clean = hex.startsWith("#") ? hex.slice(1) : hex;
80
+ if (clean.length === 3 || clean.length === 4) {
81
+ const r = Number.parseInt(clean[0] + clean[0], 16);
82
+ const g = Number.parseInt(clean[1] + clean[1], 16);
83
+ const b = Number.parseInt(clean[2] + clean[2], 16);
84
+ const a = clean.length === 4 ? Number.parseInt(clean[3] + clean[3], 16) : void 0;
85
+ return a === void 0 ? {
86
+ r,
87
+ g,
88
+ b
89
+ } : {
90
+ r,
91
+ g,
92
+ b,
93
+ a
94
+ };
95
+ }
96
+ const r = Number.parseInt(clean.slice(0, 2), 16);
97
+ const g = Number.parseInt(clean.slice(2, 4), 16);
98
+ const b = Number.parseInt(clean.slice(4, 6), 16);
99
+ const a = clean.length === 8 ? Number.parseInt(clean.slice(6, 8), 16) : void 0;
100
+ return a === void 0 ? {
101
+ r,
102
+ g,
103
+ b
104
+ } : {
105
+ r,
106
+ g,
107
+ b,
108
+ a
109
+ };
110
+ }
111
+ function rgbToHex({ r, g, b, a }) {
112
+ const hex = "#" + [
113
+ r,
114
+ g,
115
+ b
116
+ ].map((c) => c.toString(16).padStart(2, "0")).join("");
117
+ if (a !== void 0) return hex + a.toString(16).padStart(2, "0");
118
+ return hex;
119
+ }
120
+ //#endregion
121
+ //#region src/utilities/apca.ts
122
+ const Rco = .2126729;
123
+ const Gco = .7151522;
124
+ const Bco = .072175;
125
+ const normBG = .56;
126
+ const normTXT = .57;
127
+ const revBG = .65;
128
+ const revTXT = .62;
129
+ const blkThrs = .022;
130
+ const blkClmp = 1.414;
131
+ const scaleBoW = 1.14;
132
+ const scaleWoB = 1.14;
133
+ const loBoWoffset = .027;
134
+ const loWoBoffset = .027;
135
+ const deltaYmin = 5e-4;
136
+ function linearize(channel) {
137
+ const val = channel / 255;
138
+ return val <= .04045 ? val / 12.92 : Math.pow((val + .055) / 1.055, 2.4);
139
+ }
140
+ function luminance(rgb) {
141
+ return Rco * linearize(rgb.r) + Gco * linearize(rgb.g) + Bco * linearize(rgb.b);
142
+ }
143
+ function clamp$1(y) {
144
+ return y > blkThrs ? y : y + Math.pow(blkThrs - y, blkClmp);
145
+ }
146
+ function apca(text, background) {
147
+ const txtY = clamp$1(luminance(text));
148
+ const bgY = clamp$1(luminance(background));
149
+ if (Math.abs(bgY - txtY) < deltaYmin) return 0;
150
+ let contrast;
151
+ if (bgY > txtY) {
152
+ contrast = (Math.pow(bgY, normBG) - Math.pow(txtY, normTXT)) * scaleBoW;
153
+ return contrast < loBoWoffset ? 0 : (contrast - loBoWoffset) * 100;
154
+ } else {
155
+ contrast = (Math.pow(bgY, revBG) - Math.pow(txtY, revTXT)) * scaleWoB;
156
+ return contrast > -loWoBoffset ? 0 : (contrast + loWoBoffset) * 100;
157
+ }
158
+ }
159
+ const BLACK = {
160
+ r: 0,
161
+ g: 0,
162
+ b: 0
163
+ };
164
+ const WHITE = {
165
+ r: 255,
166
+ g: 255,
167
+ b: 255
168
+ };
169
+ function foreground(hex) {
170
+ const rgb = hexToRgb(hex);
171
+ const onWhite = Math.abs(apca(WHITE, rgb));
172
+ return Math.abs(apca(BLACK, rgb)) > onWhite ? "#000000" : "#ffffff";
173
+ }
174
+ //#endregion
77
175
  //#region src/constants/globals.ts
78
176
  const IN_BROWSER = typeof window !== "undefined";
79
177
  const SUPPORTS_TOUCH = IN_BROWSER && ("ontouchstart" in window || window.navigator.maxTouchPoints > 0);
@@ -81,7 +179,7 @@ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof wind
81
179
  const SUPPORTS_OBSERVER = IN_BROWSER && "ResizeObserver" in window;
82
180
  const SUPPORTS_INTERSECTION_OBSERVER = IN_BROWSER && "IntersectionObserver" in window;
83
181
  const SUPPORTS_MUTATION_OBSERVER = IN_BROWSER && "MutationObserver" in window;
84
- const version = "0.1.10";
182
+ const version = "0.1.12";
85
183
  /* v8 ignore next -- build-time constant, __DEV__ short-circuits in tests */
86
184
  const __LOGGER_ENABLED__ = false;
87
185
  //#endregion
@@ -359,14 +457,14 @@ function isNaN(item) {
359
457
  return /* @__PURE__ */ isNumber(item) && Number.isNaN(item);
360
458
  }
361
459
  /**
362
- * Deeply merges source objects into a target object
460
+ * Deeply merges source objects into a target object, returning a new object
363
461
  *
364
- * @param target The target object to merge into (will be mutated)
462
+ * @param target The base object to merge into
365
463
  * @param sources One or more source objects to merge from
366
- * @returns The mutated target object
464
+ * @returns A new merged object (inputs are not mutated)
367
465
  *
368
466
  * @remarks
369
- * - Mutates the target object in place
467
+ * - Creates and returns a new object inputs are never mutated
370
468
  * - Nested objects are recursively merged
371
469
  * - Arrays are replaced, not merged
372
470
  * - Primitives from sources overwrite target values
@@ -374,8 +472,9 @@ function isNaN(item) {
374
472
  * @example
375
473
  * ```ts
376
474
  * const target = { a: 1, b: { c: 2 } }
377
- * mergeDeep(target, { b: { d: 3 } })
378
- * // target is now { a: 1, b: { c: 2, d: 3 } }
475
+ * const result = mergeDeep(target, { b: { d: 3 } })
476
+ * // result is { a: 1, b: { c: 2, d: 3 } }
477
+ * // target is unchanged
379
478
  *
380
479
  * // Multiple sources
381
480
  * mergeDeep({}, { a: 1 }, { b: 2 }) // { a: 1, b: 2 }
@@ -389,22 +488,27 @@ const UNSAFE_KEYS = new Set([
389
488
  "constructor",
390
489
  "prototype"
391
490
  ]);
491
+ function isPlainObject(value) {
492
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
493
+ const proto = Object.getPrototypeOf(value);
494
+ return proto === Object.prototype || proto === null;
495
+ }
392
496
  /* @__NO_SIDE_EFFECTS__ */
393
497
  function mergeDeep(target, ...sources) {
394
- if (sources.length === 0) return target;
395
- const source = sources.shift();
396
- if (/* @__PURE__ */ isObject(target) && /* @__PURE__ */ isObject(source)) for (const key in source) {
397
- if (UNSAFE_KEYS.has(key)) continue;
398
- if (!Object.prototype.hasOwnProperty.call(source, key)) continue;
399
- const sourceValue = source[key];
400
- if (/* @__PURE__ */ isUndefined(sourceValue)) continue;
401
- const targetValue = target[key];
402
- if (/* @__PURE__ */ isObject(sourceValue)) {
403
- if (!/* @__PURE__ */ isObject(targetValue)) Object.assign(target, { [key]: {} });
404
- target[key];
405
- } else Object.assign(target, { [key]: sourceValue });
406
- }
407
- return /* @__PURE__ */ mergeDeep(target, ...sources);
498
+ const out = {};
499
+ for (const key in target) if (Object.prototype.hasOwnProperty.call(target, key)) out[key] = target[key];
500
+ for (const source of sources) {
501
+ if (!/* @__PURE__ */ isObject(source)) continue;
502
+ for (const key in source) {
503
+ if (UNSAFE_KEYS.has(key)) continue;
504
+ if (!Object.prototype.hasOwnProperty.call(source, key)) continue;
505
+ const sourceValue = source[key];
506
+ if (/* @__PURE__ */ isUndefined(sourceValue)) continue;
507
+ const targetValue = out[key];
508
+ out[key] = isPlainObject(sourceValue) && isPlainObject(targetValue) ? /* @__PURE__ */ mergeDeep(targetValue, sourceValue) : sourceValue;
509
+ }
510
+ }
511
+ return out;
408
512
  }
409
513
  let idCounter = 0;
410
514
  /**
@@ -715,10 +819,10 @@ function getInstalled(app) {
715
819
  function createPlugin(options) {
716
820
  return { install(app) {
717
821
  app.runWithContext(() => {
718
- options.provide(app);
719
822
  const installed = getInstalled(app);
720
823
  if (installed.has(options.namespace)) return;
721
824
  installed.add(options.namespace);
825
+ options.provide(app);
722
826
  options.setup?.(app);
723
827
  });
724
828
  } };
@@ -1981,12 +2085,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1981
2085
  },
1982
2086
  emits: ["load", "error"],
1983
2087
  setup(__props, { emit: __emit }) {
1984
- const props = createPropsRestProxy(__props, [
1985
- "as",
1986
- "renderless",
1987
- "priority",
1988
- "namespace"
1989
- ]);
1990
2088
  const emit = __emit;
1991
2089
  const context = useAvatarRoot(__props.namespace);
1992
2090
  const ticket = context.register({
@@ -2012,9 +2110,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2012
2110
  isSelected: ticket.isSelected.value,
2013
2111
  attrs: {
2014
2112
  role: "img",
2113
+ src: __props.src,
2015
2114
  onLoad,
2016
- onError,
2017
- ...props
2115
+ onError
2018
2116
  }
2019
2117
  }));
2020
2118
  return (_ctx, _cache) => {
@@ -3342,8 +3440,7 @@ function createTokens(tokens = {}, options = {}) {
3342
3440
  }
3343
3441
  function resolve(token, visited = /* @__PURE__ */ new Set()) {
3344
3442
  const cacheKey = /* @__PURE__ */ isString(token) ? token : JSON.stringify(token);
3345
- const cached = cache.get(cacheKey);
3346
- if (!/* @__PURE__ */ isUndefined(cached)) return cached;
3443
+ if (cache.has(cacheKey)) return cache.get(cacheKey);
3347
3444
  const reference = isTokenAlias(token) ? token.$value : token;
3348
3445
  const isAliasReference = /* @__PURE__ */ isString(reference) && isAlias(reference);
3349
3446
  const clean = isAliasReference ? reference.slice(1, -1) : String(reference);
@@ -4513,7 +4610,7 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
4513
4610
  "data-disabled": isDisabled.value ? true : void 0,
4514
4611
  "data-selected": group && isSelected.value ? true : void 0,
4515
4612
  "data-solo": isSolo.value ? true : void 0,
4516
- "onClick": onClick
4613
+ "onClick": ticket ? onClick : void 0
4517
4614
  }));
4518
4615
  const slotProps = toRef(() => ({
4519
4616
  isLoading: isLoading.value,
@@ -4529,7 +4626,8 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
4529
4626
  ...slotProps.value.attrs
4530
4627
  }, {
4531
4628
  as: __props.as,
4532
- renderless: __props.renderless
4629
+ renderless: __props.renderless,
4630
+ onClick
4533
4631
  }), {
4534
4632
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
4535
4633
  _: 3
@@ -4952,22 +5050,20 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
4952
5050
  props: {
4953
5051
  label: {},
4954
5052
  disabled: { type: Boolean },
4955
- namespace: {},
4956
- groupNamespace: {},
5053
+ namespace: { default: "v0:checkbox:root" },
5054
+ groupNamespace: { default: "v0:checkbox:group" },
4957
5055
  ariaLabelledby: {},
4958
5056
  ariaDescribedby: {},
4959
- as: {},
5057
+ as: { default: "button" },
4960
5058
  renderless: { type: Boolean }
4961
5059
  },
4962
5060
  setup(__props) {
4963
5061
  const attrs = useAttrs();
4964
- const props = __props;
4965
- const { as = "button", renderless, label, namespace = "v0:checkbox:root", groupNamespace = "v0:checkbox:group" } = props;
4966
- const group = useCheckboxGroup(groupNamespace);
5062
+ const group = useCheckboxGroup(__props.groupNamespace);
4967
5063
  const id = useId$1();
4968
5064
  const isAllSelected = toRef(() => group.isAllSelected.value);
4969
5065
  const isMixed = toRef(() => group.isMixed.value);
4970
- const isDisabled = toRef(() => toValue(props.disabled) || toValue(group.disabled));
5066
+ const isDisabled = toRef(() => toValue(__props.disabled) || toValue(group.disabled));
4971
5067
  const dataState = toRef(() => isMixed.value ? "indeterminate" : isAllSelected.value ? "checked" : "unchecked");
4972
5068
  function onClick() {
4973
5069
  if (isDisabled.value) return;
@@ -4979,9 +5075,9 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
4979
5075
  if (isDisabled.value) return;
4980
5076
  group.toggleAll();
4981
5077
  }
4982
- provideCheckboxRoot(namespace, {
5078
+ const context = {
4983
5079
  id,
4984
- label,
5080
+ label: __props.label,
4985
5081
  value: void 0,
4986
5082
  name: void 0,
4987
5083
  form: void 0,
@@ -4993,9 +5089,10 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
4993
5089
  toggle: group.toggleAll,
4994
5090
  mix: () => {},
4995
5091
  unmix: () => {}
4996
- });
5092
+ };
5093
+ provideCheckboxRoot(__props.namespace, context);
4997
5094
  const slotProps = toRef(() => ({
4998
- label,
5095
+ label: __props.label,
4999
5096
  isAllSelected: isAllSelected.value,
5000
5097
  isMixed: isMixed.value,
5001
5098
  isDisabled: isDisabled.value,
@@ -5003,13 +5100,13 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
5003
5100
  unselectAll: group.unselectAll,
5004
5101
  toggleAll: group.toggleAll,
5005
5102
  attrs: {
5006
- "type": as === "button" ? "button" : void 0,
5103
+ "type": __props.as === "button" ? "button" : void 0,
5007
5104
  "role": "checkbox",
5008
5105
  "aria-checked": isMixed.value ? "mixed" : isAllSelected.value,
5009
5106
  "aria-disabled": isDisabled.value || void 0,
5010
- "aria-label": label || void 0,
5011
- "aria-labelledby": props.ariaLabelledby || void 0,
5012
- "aria-describedby": props.ariaDescribedby || void 0,
5107
+ "aria-label": __props.label || void 0,
5108
+ "aria-labelledby": __props.ariaLabelledby || void 0,
5109
+ "aria-describedby": __props.ariaDescribedby || void 0,
5013
5110
  "tabindex": isDisabled.value ? void 0 : 0,
5014
5111
  "data-state": dataState.value,
5015
5112
  "data-disabled": isDisabled.value ? true : void 0
@@ -5020,8 +5117,8 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
5020
5117
  ...unref(attrs),
5021
5118
  ...slotProps.value.attrs
5022
5119
  }, {
5023
- as: unref(as),
5024
- renderless: unref(renderless),
5120
+ as: __props.as,
5121
+ renderless: __props.renderless,
5025
5122
  onClick,
5026
5123
  onKeydown
5027
5124
  }), {
@@ -5187,13 +5284,22 @@ const _sfc_main$23 = /* @__PURE__ */ defineComponent({
5187
5284
  */
5188
5285
  function createPagination(_options = {}) {
5189
5286
  const { page: _page = 1, itemsPerPage: _itemsPerPage = 10, size: _size = 0, visible: _visible = 7, ellipsis = "..." } = _options;
5190
- const page = isRef(_page) ? _page : shallowRef(_page);
5287
+ const _raw = isRef(_page) ? _page : shallowRef(_page);
5191
5288
  const pages = computed(() => {
5192
5289
  const size = toValue(_size);
5193
5290
  const perPage = toValue(_itemsPerPage);
5194
5291
  if (size <= 0 || /* @__PURE__ */ isNaN(size)) return 0;
5195
5292
  return Math.ceil(size / perPage);
5196
5293
  });
5294
+ const page = computed({
5295
+ get: () => {
5296
+ const p = pages.value;
5297
+ return p > 0 && _raw.value > p ? p : _raw.value;
5298
+ },
5299
+ set: (v) => {
5300
+ _raw.value = v;
5301
+ }
5302
+ });
5197
5303
  function first() {
5198
5304
  page.value = 1;
5199
5305
  }
@@ -5395,8 +5501,8 @@ function usePagination(namespace = "v0:pagination") {
5395
5501
  function defaultFilter(query, item, keys, mode = "some") {
5396
5502
  const queries = toArray(query).map((q) => String(q).toLowerCase());
5397
5503
  const stringValues = (/* @__PURE__ */ isObject(item) ? keys?.length ? keys.map((k) => item[k]) : Object.values(item) : [item]).map((v) => String(v).toLowerCase());
5398
- if (mode === "some") return stringValues.some((val) => val.includes(queries[0]));
5399
- if (mode === "every") return stringValues.every((val) => val.includes(queries[0]));
5504
+ if (mode === "some") return queries.some((q) => stringValues.some((val) => val.includes(q)));
5505
+ if (mode === "every") return queries.every((q) => stringValues.every((val) => val.includes(q)));
5400
5506
  const joined = stringValues.join("\0");
5401
5507
  if (mode === "union") return queries.some((q) => joined.includes(q));
5402
5508
  if (mode === "intersection") return queries.every((q) => joined.includes(q));
@@ -5531,8 +5637,11 @@ function getNestedValue(obj, key) {
5531
5637
  }
5532
5638
  function compareValues(a, b, locale) {
5533
5639
  if (a === b) return 0;
5534
- if (/* @__PURE__ */ isNullOrUndefined(a)) return 1;
5535
- if (/* @__PURE__ */ isNullOrUndefined(b)) return -1;
5640
+ const aNil = /* @__PURE__ */ isNullOrUndefined(a);
5641
+ const bNil = /* @__PURE__ */ isNullOrUndefined(b);
5642
+ if (aNil && bNil) return 0;
5643
+ if (aNil) return 1;
5644
+ if (bNil) return -1;
5536
5645
  if (/* @__PURE__ */ isString(a) && /* @__PURE__ */ isString(b)) return a.localeCompare(b, locale);
5537
5646
  if (/* @__PURE__ */ isNumber(a) && /* @__PURE__ */ isNumber(b)) {
5538
5647
  if (/* @__PURE__ */ isNaN(a)) return 1;
@@ -6475,6 +6584,18 @@ const defaultLocales = {
6475
6584
  ar: "ar-SA"
6476
6585
  };
6477
6586
  /**
6587
+ * Derive firstDayOfWeek from an Intl locale string.
6588
+ * Returns 0-6 (0=Sun) or 0 as fallback.
6589
+ */
6590
+ function deriveFirstDayOfWeek(locale) {
6591
+ try {
6592
+ const info = new Intl.Locale(locale).getWeekInfo?.();
6593
+ return info ? info.firstDay % 7 : 0;
6594
+ } catch {
6595
+ return 0;
6596
+ }
6597
+ }
6598
+ /**
6478
6599
  * Creates a new date context.
6479
6600
  *
6480
6601
  * @param options Adapter and locale configuration.
@@ -6499,7 +6620,7 @@ const defaultLocales = {
6499
6620
  * ```
6500
6621
  */
6501
6622
  function createDate(options) {
6502
- const { locales = defaultLocales, adapter, locale: initialLocale } = options;
6623
+ const { locales = defaultLocales, adapter, locale: initialLocale, firstDayOfWeek: explicitFirstDay } = options;
6503
6624
  let selectedId;
6504
6625
  try {
6505
6626
  if (instanceExists()) selectedId = useLocale().selectedId;
@@ -6513,17 +6634,27 @@ function createDate(options) {
6513
6634
  const fallback = initialLocale ?? adapter.locale ?? "en-US";
6514
6635
  return fallback.includes("-") ? fallback : locales[fallback] ?? fallback;
6515
6636
  });
6637
+ const firstDayOfWeek = computed(() => {
6638
+ if (!/* @__PURE__ */ isUndefined(explicitFirstDay)) return explicitFirstDay;
6639
+ const loc = locale.value;
6640
+ return loc ? deriveFirstDayOfWeek(loc) : 0;
6641
+ });
6516
6642
  if (instanceExists()) onScopeDispose(watchEffect(() => {
6517
6643
  const loc = locale.value;
6518
6644
  if (loc && adapter.locale !== loc) adapter.locale = loc;
6645
+ const fdow = firstDayOfWeek.value;
6646
+ if (adapter.firstDayOfWeek !== fdow) adapter.firstDayOfWeek = fdow;
6519
6647
  }));
6520
6648
  else {
6521
6649
  const loc = locale.value;
6522
6650
  if (loc && adapter.locale !== loc) adapter.locale = loc;
6651
+ const fdow = firstDayOfWeek.value;
6652
+ if (adapter.firstDayOfWeek !== fdow) adapter.firstDayOfWeek = fdow;
6523
6653
  }
6524
6654
  return {
6525
6655
  adapter,
6526
- locale
6656
+ locale,
6657
+ firstDayOfWeek
6527
6658
  };
6528
6659
  }
6529
6660
  /**
@@ -7776,7 +7907,8 @@ const multipleOpenStrategy = {
7776
7907
  */
7777
7908
  const singleOpenStrategy = {
7778
7909
  onOpen: (id, context) => {
7779
- for (const openedId of context.openedIds) if (openedId !== id) context.openedIds.delete(openedId);
7910
+ const toClose = [...context.openedIds].filter((openedId) => openedId !== id);
7911
+ for (const openedId of toClose) context.openedIds.delete(openedId);
7780
7912
  },
7781
7913
  onClose: void 0
7782
7914
  };
@@ -7878,8 +8010,13 @@ function createNested(_options = {}) {
7878
8010
  return openedIds.has(id);
7879
8011
  }
7880
8012
  function open(ids) {
8013
+ if (toValue(group.disabled)) return;
7881
8014
  for (const id of toArray(ids)) {
7882
8015
  if (!group.has(id)) continue;
8016
+ const item = group.get(id);
8017
+ if (!item || toValue(item.disabled)) continue;
8018
+ openedIds.add(id);
8019
+ resolvedOpenStrategy.onOpen?.(id, context);
7883
8020
  if (revealOnOpen) {
7884
8021
  let parentId = parents.get(id);
7885
8022
  while (!/* @__PURE__ */ isUndefined(parentId)) {
@@ -7887,20 +8024,24 @@ function createNested(_options = {}) {
7887
8024
  parentId = parents.get(parentId);
7888
8025
  }
7889
8026
  }
7890
- openedIds.add(id);
7891
- resolvedOpenStrategy.onOpen?.(id, context);
7892
8027
  }
7893
8028
  }
7894
8029
  function close(ids) {
8030
+ if (toValue(group.disabled)) return;
7895
8031
  for (const id of toArray(ids)) {
7896
8032
  if (!group.has(id)) continue;
8033
+ const item = group.get(id);
8034
+ if (!item || toValue(item.disabled)) continue;
7897
8035
  openedIds.delete(id);
7898
8036
  resolvedOpenStrategy.onClose?.(id, context);
7899
8037
  }
7900
8038
  }
7901
8039
  function flip(ids) {
8040
+ if (toValue(group.disabled)) return;
7902
8041
  for (const id of toArray(ids)) {
7903
8042
  if (!group.has(id)) continue;
8043
+ const item = group.get(id);
8044
+ if (!item || toValue(item.disabled)) continue;
7904
8045
  if (opened(id)) close(id);
7905
8046
  else open(id);
7906
8047
  }
@@ -7940,10 +8081,20 @@ function createNested(_options = {}) {
7940
8081
  }
7941
8082
  }
7942
8083
  function expandAll() {
7943
- for (const [id, childList] of children) if (childList.length > 0) openedIds.add(id);
8084
+ if (toValue(group.disabled)) return;
8085
+ for (const [id, childList] of children) if (childList.length > 0) {
8086
+ const item = group.get(id);
8087
+ if (item && toValue(item.disabled)) continue;
8088
+ openedIds.add(id);
8089
+ }
7944
8090
  }
7945
8091
  function collapseAll() {
7946
- openedIds.clear();
8092
+ if (toValue(group.disabled)) return;
8093
+ const toClose = [...openedIds].filter((id) => {
8094
+ const item = group.get(id);
8095
+ return !item || !toValue(item.disabled);
8096
+ });
8097
+ for (const id of toClose) openedIds.delete(id);
7947
8098
  }
7948
8099
  function activated(id) {
7949
8100
  return activeIds.has(id);
@@ -8024,7 +8175,7 @@ function createNested(_options = {}) {
8024
8175
  function siblings(id) {
8025
8176
  if (!group.has(id)) return [];
8026
8177
  const parentId = parents.get(id);
8027
- if (/* @__PURE__ */ isUndefined(parentId)) return group.values().filter((item) => /* @__PURE__ */ isUndefined(parents.get(item.id))).map((item) => item.id);
8178
+ if (/* @__PURE__ */ isUndefined(parentId)) return Array.from(rootIds);
8028
8179
  return children.get(parentId) ?? [];
8029
8180
  }
8030
8181
  /**
@@ -8035,6 +8186,28 @@ function createNested(_options = {}) {
8035
8186
  const index = siblings(id).indexOf(id);
8036
8187
  return index === -1 ? 0 : index + 1;
8037
8188
  }
8189
+ /**
8190
+ * Returns depth-first traversal of visible (open) nodes.
8191
+ * A node is visible if all its ancestors are open.
8192
+ * Used by useRovingFocus to determine keyboard navigation order.
8193
+ */
8194
+ function visibleItems() {
8195
+ const result = [];
8196
+ const rootItems = Array.from(rootIds);
8197
+ function walk(ids) {
8198
+ for (const id of ids) {
8199
+ const item = group.get(id);
8200
+ if (!item) continue;
8201
+ result.push(item);
8202
+ if (opened(id)) {
8203
+ const childIds = children.get(id);
8204
+ if (childIds?.length) walk(childIds);
8205
+ }
8206
+ }
8207
+ }
8208
+ walk(rootItems);
8209
+ return result;
8210
+ }
8038
8211
  function updateAncestors(id) {
8039
8212
  const { selectedIds, mixedIds } = group;
8040
8213
  let parentId = parents.get(id);
@@ -8061,8 +8234,11 @@ function createNested(_options = {}) {
8061
8234
  return getDescendants(id).filter((did) => isLeaf(did));
8062
8235
  }
8063
8236
  function select(ids) {
8237
+ if (toValue(group.disabled)) return;
8064
8238
  for (const id of toArray(ids)) {
8065
8239
  if (!group.has(id)) continue;
8240
+ const item = group.get(id);
8241
+ if (!item || toValue(item.disabled)) continue;
8066
8242
  if (selectionMode === "independent") group.select(id);
8067
8243
  else if (selectionMode === "leaf") if (isLeaf(id)) group.select(id);
8068
8244
  else for (const lid of getLeafDescendants(id)) group.select(lid);
@@ -8075,6 +8251,8 @@ function createNested(_options = {}) {
8075
8251
  mixedIds.delete(id);
8076
8252
  selectedIds.add(id);
8077
8253
  for (const did of getDescendants(id)) {
8254
+ const desc = group.get(did);
8255
+ if (desc && toValue(desc.disabled)) continue;
8078
8256
  mixedIds.delete(did);
8079
8257
  selectedIds.add(did);
8080
8258
  }
@@ -8083,8 +8261,11 @@ function createNested(_options = {}) {
8083
8261
  }
8084
8262
  }
8085
8263
  function unselect(ids) {
8264
+ if (toValue(group.disabled)) return;
8086
8265
  for (const id of toArray(ids)) {
8087
8266
  if (!group.has(id)) continue;
8267
+ const item = group.get(id);
8268
+ if (!item || toValue(item.disabled)) continue;
8088
8269
  if (selectionMode === "independent") group.unselect(id);
8089
8270
  else if (selectionMode === "leaf") if (isLeaf(id)) group.unselect(id);
8090
8271
  else for (const lid of getLeafDescendants(id)) group.unselect(lid);
@@ -8097,6 +8278,8 @@ function createNested(_options = {}) {
8097
8278
  mixedIds.delete(id);
8098
8279
  selectedIds.delete(id);
8099
8280
  for (const did of getDescendants(id)) {
8281
+ const desc = group.get(did);
8282
+ if (desc && toValue(desc.disabled)) continue;
8100
8283
  mixedIds.delete(did);
8101
8284
  selectedIds.delete(did);
8102
8285
  }
@@ -8105,15 +8288,43 @@ function createNested(_options = {}) {
8105
8288
  }
8106
8289
  }
8107
8290
  function toggle(ids) {
8108
- for (const id of toArray(ids)) if (selectionMode === "independent") group.toggle(id);
8109
- else if (selectionMode === "leaf") if (isLeaf(id)) group.toggle(id);
8110
- else {
8111
- const leafIds = getLeafDescendants(id);
8112
- if (leafIds.every((lid) => group.selected(lid))) for (const lid of leafIds) group.unselect(lid);
8113
- else for (const lid of leafIds) group.select(lid);
8291
+ if (toValue(group.disabled)) return;
8292
+ for (const id of toArray(ids)) {
8293
+ const item = group.get(id);
8294
+ if (!item || toValue(item.disabled)) continue;
8295
+ if (selectionMode === "independent") group.toggle(id);
8296
+ else if (selectionMode === "leaf") if (isLeaf(id)) group.toggle(id);
8297
+ else {
8298
+ const leafIds = getLeafDescendants(id);
8299
+ if (leafIds.every((lid) => group.selected(lid))) for (const lid of leafIds) group.unselect(lid);
8300
+ else for (const lid of leafIds) group.select(lid);
8301
+ }
8302
+ else if (group.selected(id) || group.mixed(id)) unselect(id);
8303
+ else select(id);
8114
8304
  }
8115
- else if (group.selected(id) || group.mixed(id)) unselect(id);
8116
- else select(id);
8305
+ }
8306
+ function selectAll() {
8307
+ if (toValue(group.disabled)) return;
8308
+ const { selectedIds, mixedIds } = group;
8309
+ for (const item of group.values()) {
8310
+ if (toValue(item.disabled)) continue;
8311
+ selectedIds.add(item.id);
8312
+ }
8313
+ mixedIds.clear();
8314
+ }
8315
+ function unselectAll() {
8316
+ if (toValue(group.disabled)) return;
8317
+ const first = group.selectedIds.values().next().value;
8318
+ group.selectedIds.clear();
8319
+ group.mixedIds.clear();
8320
+ if (toValue(mandatoryOption) && first) {
8321
+ group.selectedIds.add(first);
8322
+ updateAncestors(first);
8323
+ }
8324
+ }
8325
+ function toggleAll() {
8326
+ if (group.isAllSelected.value) unselectAll();
8327
+ else selectAll();
8117
8328
  }
8118
8329
  /**
8119
8330
  * Converts the tree to a flat array with parentId references.
@@ -8158,6 +8369,7 @@ function createNested(_options = {}) {
8158
8369
  const item = {
8159
8370
  ...rest,
8160
8371
  id,
8372
+ el: registration.el,
8161
8373
  parentId: batching ? pendingParents.get(id) : parents.get(id),
8162
8374
  isOpen: toRef(() => opened(id)),
8163
8375
  isActive: toRef(() => activated(id)),
@@ -8178,6 +8390,9 @@ function createNested(_options = {}) {
8178
8390
  position: () => position(id)
8179
8391
  };
8180
8392
  const ticket = group.register(item);
8393
+ ticket.select = () => select(id);
8394
+ ticket.unselect = () => unselect(id);
8395
+ ticket.toggle = () => toggle(id);
8181
8396
  if (registration.active) activate(id);
8182
8397
  if (nested?.length) for (const child of nested) register({
8183
8398
  ...child,
@@ -8272,6 +8487,7 @@ function createNested(_options = {}) {
8272
8487
  activeIndexes,
8273
8488
  roots,
8274
8489
  leaves,
8490
+ visibleItems,
8275
8491
  getPath,
8276
8492
  getAncestors,
8277
8493
  getDescendants,
@@ -8295,10 +8511,14 @@ function createNested(_options = {}) {
8295
8511
  activated,
8296
8512
  deactivateAll,
8297
8513
  toFlat,
8514
+ multiple: toValue(multipleOption),
8298
8515
  openStrategy: resolvedOpenStrategy,
8299
8516
  select,
8300
8517
  unselect,
8301
8518
  toggle,
8519
+ selectAll,
8520
+ unselectAll,
8521
+ toggleAll,
8302
8522
  register,
8303
8523
  unregister,
8304
8524
  offboard,
@@ -9811,6 +10031,11 @@ const [createRtlContext, createRtlPlugin, useRtl] = createPluginContext("v0:rtl"
9811
10031
  * Also reusable for color picker tracks, media scrubbers,
9812
10032
  * gradient editors, and other 1D value-on-track controls.
9813
10033
  */
10034
+ function decimalPlaces(n) {
10035
+ const s = String(n);
10036
+ const dot = s.indexOf(".");
10037
+ return dot === -1 ? 0 : s.length - dot - 1;
10038
+ }
9814
10039
  /**
9815
10040
  * Creates slider state with value math, step snapping, and multi-thumb support.
9816
10041
  *
@@ -9874,10 +10099,12 @@ function createSlider(options = {}) {
9874
10099
  const thumbs = computed(() => Array.from(model.selectedItems.value).toSorted((a, b) => a.index - b.index));
9875
10100
  const values = computed(() => thumbs.value.map((t) => toValue(t.value)));
9876
10101
  const selectedValues = computed(() => values.value);
10102
+ const decimals = Math.max(decimalPlaces(step), decimalPlaces(min));
9877
10103
  function snap(value) {
9878
10104
  if (step <= 0) return /* @__PURE__ */ clamp(value, min, max);
9879
10105
  const clamped = /* @__PURE__ */ clamp(value, min, max);
9880
- return /* @__PURE__ */ clamp(min + Math.round((clamped - min) / step) * step, min, max);
10106
+ const result = min + Math.round((clamped - min) / step) * step;
10107
+ return /* @__PURE__ */ clamp(decimals > 0 ? +result.toFixed(decimals) : result, min, max);
9881
10108
  }
9882
10109
  function fromValue(value) {
9883
10110
  if (extent === 0) return 0;
@@ -10575,6 +10802,7 @@ const [createStorageContext, createStoragePlugin, useStorage] = createPluginCont
10575
10802
  var ThemeAdapter = class {
10576
10803
  stylesheetId = "v0-theme-stylesheet";
10577
10804
  prefix;
10805
+ rgb = false;
10578
10806
  constructor(prefix) {
10579
10807
  this.prefix = prefix;
10580
10808
  }
@@ -10583,12 +10811,16 @@ var ThemeAdapter = class {
10583
10811
  for (const theme in colors) {
10584
10812
  const themeColors = colors[theme];
10585
10813
  if (!themeColors) continue;
10586
- const vars = Object.entries(themeColors).map(([key, val]) => ` --${this.prefix}-${key}: ${val};`).join("\n");
10814
+ const vars = Object.entries(themeColors).map(([key, val]) => ` --${this.prefix}-${key}: ${this.rgb ? this.decompose(val) : val};`).join("\n");
10587
10815
  css += `[data-theme="${theme}"] {\n${vars}\n}\n`;
10588
10816
  }
10589
10817
  if (!/* @__PURE__ */ isUndefined(isDark)) css += `:root {\n color-scheme: ${isDark ? "dark" : "light"};\n}\n`;
10590
10818
  return css;
10591
10819
  }
10820
+ decompose(hex) {
10821
+ const { r, g, b, a } = hexToRgb(hex);
10822
+ return /* @__PURE__ */ isUndefined(a) ? `${r}, ${g}, ${b}` : `${r}, ${g}, ${b}, ${a}`;
10823
+ }
10592
10824
  };
10593
10825
  //#endregion
10594
10826
  //#region src/composables/useTheme/adapters/v0.ts
@@ -10701,7 +10933,7 @@ var Vuetify0ThemeAdapter = class extends ThemeAdapter {
10701
10933
  * ```
10702
10934
  */
10703
10935
  function createTheme(_options = {}) {
10704
- const { themes = {}, palette = {}, ...options } = _options;
10936
+ const { themes = {}, palette = {}, foreground: genForeground, ...options } = _options;
10705
10937
  const tokens = createTokens({
10706
10938
  palette,
10707
10939
  ...themes
@@ -10721,7 +10953,12 @@ function createTheme(_options = {}) {
10721
10953
  const resolved = {};
10722
10954
  for (const theme of registry.values()) {
10723
10955
  if (theme.lazy && theme.id !== registry.selectedId.value) continue;
10724
- resolved[theme.id] = resolve(theme.value);
10956
+ const themeColors = resolve(theme.value);
10957
+ if (genForeground) for (const [key, value] of Object.entries(themeColors)) {
10958
+ const onKey = `on-${key}`;
10959
+ if (!key.startsWith("on-") && !(onKey in themeColors)) themeColors[onKey] = foreground(value);
10960
+ }
10961
+ resolved[theme.id] = themeColors;
10725
10962
  }
10726
10963
  return resolved;
10727
10964
  });
@@ -10772,7 +11009,8 @@ function createThemeFallback() {
10772
11009
  }
10773
11010
  const [createThemeContext, createThemePlugin, useTheme] = createPluginContext("v0:theme", (options) => createTheme(options), {
10774
11011
  fallback: () => createThemeFallback(),
10775
- setup: (context, app, { adapter = new Vuetify0ThemeAdapter(), target }) => {
11012
+ setup: (context, app, { adapter = new Vuetify0ThemeAdapter(), target, rgb }) => {
11013
+ if (rgb) adapter.rgb = true;
10776
11014
  adapter.setup(app, context, target);
10777
11015
  }
10778
11016
  });
@@ -12605,18 +12843,23 @@ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
12605
12843
  touched.value = true;
12606
12844
  if (shouldValidate("blur")) validation.validate();
12607
12845
  });
12846
+ let resetting = false;
12608
12847
  watch(model, (val) => {
12609
12848
  isPristine.value = val === initialValue;
12610
- if (shouldValidate("input")) validation.validate();
12849
+ if (!resetting && shouldValidate("input")) validation.validate();
12611
12850
  });
12612
12851
  function validate() {
12613
12852
  return validation.validate();
12614
12853
  }
12615
12854
  function reset() {
12855
+ resetting = true;
12616
12856
  model.value = initialValue;
12617
12857
  isPristine.value = true;
12618
12858
  touched.value = false;
12619
12859
  validation.reset();
12860
+ nextTick(() => {
12861
+ resetting = false;
12862
+ });
12620
12863
  }
12621
12864
  const state = toRef(() => {
12622
12865
  if (isValid.value === false) return "invalid";
@@ -12877,11 +13120,77 @@ const Input = {
12877
13120
  Root: _sfc_main$39
12878
13121
  };
12879
13122
  //#endregion
13123
+ //#region src/components/Locale/Locale.vue
13124
+ const _sfc_main$40 = /* @__PURE__ */ defineComponent({
13125
+ name: "Locale",
13126
+ inheritAttrs: false,
13127
+ __name: "Locale",
13128
+ props: {
13129
+ locale: {},
13130
+ renderless: {
13131
+ type: Boolean,
13132
+ default: false
13133
+ },
13134
+ as: { default: "div" }
13135
+ },
13136
+ setup(__props) {
13137
+ const parent = useLocale();
13138
+ const selectedId = toRef(() => __props.locale);
13139
+ const selectedItem = toRef(() => parent.get(__props.locale));
13140
+ const rootT = parent._rootT ?? parent.t;
13141
+ const rootN = parent._rootN ?? parent.n;
13142
+ function t(key, ...params) {
13143
+ const prev = new Set(parent.selectedIds);
13144
+ parent.selectedIds.clear();
13145
+ parent.selectedIds.add(__props.locale);
13146
+ try {
13147
+ return rootT(key, ...params);
13148
+ } finally {
13149
+ parent.selectedIds.clear();
13150
+ for (const id of prev) parent.selectedIds.add(id);
13151
+ }
13152
+ }
13153
+ function n(value) {
13154
+ const prev = new Set(parent.selectedIds);
13155
+ parent.selectedIds.clear();
13156
+ parent.selectedIds.add(__props.locale);
13157
+ try {
13158
+ return rootN(value);
13159
+ } finally {
13160
+ parent.selectedIds.clear();
13161
+ for (const id of prev) parent.selectedIds.add(id);
13162
+ }
13163
+ }
13164
+ provideContext("v0:locale", {
13165
+ ...parent,
13166
+ selectedId,
13167
+ selectedItem,
13168
+ t,
13169
+ n,
13170
+ _rootT: rootT,
13171
+ _rootN: rootN
13172
+ });
13173
+ const attrs = toRef(() => ({
13174
+ "data-locale": __props.locale,
13175
+ "lang": __props.locale
13176
+ }));
13177
+ return (_ctx, _cache) => {
13178
+ return __props.renderless ? renderSlot(_ctx.$slots, "default", {
13179
+ key: 0,
13180
+ attrs: attrs.value
13181
+ }) : (openBlock(), createBlock(resolveDynamicComponent(__props.as), normalizeProps(mergeProps({ key: 1 }, attrs.value)), {
13182
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", { attrs: attrs.value })]),
13183
+ _: 3
13184
+ }, 16));
13185
+ };
13186
+ }
13187
+ });
13188
+ //#endregion
12880
13189
  //#region src/components/Pagination/PaginationRoot.vue
12881
13190
  const [usePaginationRoot, providePaginationRoot] = createContext();
12882
13191
  const [usePaginationControls, providePaginationControls] = createContext({ suffix: "controls" });
12883
13192
  const [usePaginationItems, providePaginationItems] = createContext({ suffix: "items" });
12884
- const _sfc_main$46 = /* @__PURE__ */ defineComponent({
13193
+ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
12885
13194
  name: "PaginationRoot",
12886
13195
  __name: "PaginationRoot",
12887
13196
  props: /* @__PURE__ */ mergeModels({
@@ -12983,7 +13292,7 @@ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
12983
13292
  });
12984
13293
  //#endregion
12985
13294
  //#region src/components/Pagination/PaginationEllipsis.vue
12986
- const _sfc_main$40 = /* @__PURE__ */ defineComponent({
13295
+ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
12987
13296
  name: "PaginationEllipsis",
12988
13297
  __name: "PaginationEllipsis",
12989
13298
  props: {
@@ -13026,7 +13335,7 @@ const _sfc_main$40 = /* @__PURE__ */ defineComponent({
13026
13335
  });
13027
13336
  //#endregion
13028
13337
  //#region src/components/Pagination/PaginationFirst.vue
13029
- const _sfc_main$41 = /* @__PURE__ */ defineComponent({
13338
+ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
13030
13339
  name: "PaginationFirst",
13031
13340
  __name: "PaginationFirst",
13032
13341
  props: {
@@ -13083,7 +13392,7 @@ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
13083
13392
  });
13084
13393
  //#endregion
13085
13394
  //#region src/components/Pagination/PaginationItem.vue
13086
- const _sfc_main$42 = /* @__PURE__ */ defineComponent({
13395
+ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
13087
13396
  name: "PaginationItem",
13088
13397
  __name: "PaginationItem",
13089
13398
  props: {
@@ -13151,7 +13460,7 @@ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
13151
13460
  });
13152
13461
  //#endregion
13153
13462
  //#region src/components/Pagination/PaginationLast.vue
13154
- const _sfc_main$43 = /* @__PURE__ */ defineComponent({
13463
+ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
13155
13464
  name: "PaginationLast",
13156
13465
  __name: "PaginationLast",
13157
13466
  props: {
@@ -13208,7 +13517,7 @@ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
13208
13517
  });
13209
13518
  //#endregion
13210
13519
  //#region src/components/Pagination/PaginationNext.vue
13211
- const _sfc_main$44 = /* @__PURE__ */ defineComponent({
13520
+ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
13212
13521
  name: "PaginationNext",
13213
13522
  __name: "PaginationNext",
13214
13523
  props: {
@@ -13265,7 +13574,7 @@ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
13265
13574
  });
13266
13575
  //#endregion
13267
13576
  //#region src/components/Pagination/PaginationPrev.vue
13268
- const _sfc_main$45 = /* @__PURE__ */ defineComponent({
13577
+ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
13269
13578
  name: "PaginationPrev",
13270
13579
  __name: "PaginationPrev",
13271
13580
  props: {
@@ -13322,7 +13631,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
13322
13631
  });
13323
13632
  //#endregion
13324
13633
  //#region src/components/Pagination/PaginationStatus.vue
13325
- const _sfc_main$47 = /* @__PURE__ */ defineComponent({
13634
+ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
13326
13635
  name: "PaginationStatus",
13327
13636
  __name: "PaginationStatus",
13328
13637
  props: {
@@ -13374,19 +13683,19 @@ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
13374
13683
  * @see https://0.vuetifyjs.com/components/pagination
13375
13684
  */
13376
13685
  const Pagination = {
13377
- Root: _sfc_main$46,
13378
- Item: _sfc_main$42,
13379
- First: _sfc_main$41,
13380
- Prev: _sfc_main$45,
13381
- Ellipsis: _sfc_main$40,
13382
- Next: _sfc_main$44,
13383
- Last: _sfc_main$43,
13384
- Status: _sfc_main$47
13686
+ Root: _sfc_main$47,
13687
+ Item: _sfc_main$43,
13688
+ First: _sfc_main$42,
13689
+ Prev: _sfc_main$46,
13690
+ Ellipsis: _sfc_main$41,
13691
+ Next: _sfc_main$45,
13692
+ Last: _sfc_main$44,
13693
+ Status: _sfc_main$48
13385
13694
  };
13386
13695
  //#endregion
13387
13696
  //#region src/components/Popover/PopoverRoot.vue
13388
13697
  const [usePopoverContext, providePopoverContext] = createContext("Popover");
13389
- const _sfc_main$50 = /* @__PURE__ */ defineComponent({
13698
+ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
13390
13699
  name: "PopoverRoot",
13391
13700
  __name: "PopoverRoot",
13392
13701
  props: /* @__PURE__ */ mergeModels({
@@ -13429,7 +13738,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
13429
13738
  });
13430
13739
  //#endregion
13431
13740
  //#region src/components/Popover/PopoverActivator.vue
13432
- const _sfc_main$48 = /* @__PURE__ */ defineComponent({
13741
+ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
13433
13742
  name: "PopoverActivator",
13434
13743
  __name: "PopoverActivator",
13435
13744
  props: {
@@ -13438,11 +13747,10 @@ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
13438
13747
  renderless: { type: Boolean }
13439
13748
  },
13440
13749
  setup(__props) {
13441
- const props = createPropsRestProxy(__props, ["as"]);
13442
13750
  const context = usePopoverContext();
13443
- const popovertarget = toRef(() => props.target ?? context.id);
13751
+ const popovertarget = toRef(() => __props.target ?? context.id);
13444
13752
  const style = toRef(() => {
13445
- if (props.target) return { anchorName: `--${props.target}` };
13753
+ if (__props.target) return { anchorName: `--${__props.target}` };
13446
13754
  return context.anchorStyles.value;
13447
13755
  });
13448
13756
  const slotProps = toRef(() => ({
@@ -13466,7 +13774,7 @@ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
13466
13774
  });
13467
13775
  //#endregion
13468
13776
  //#region src/components/Popover/PopoverContent.vue
13469
- const _sfc_main$49 = /* @__PURE__ */ defineComponent({
13777
+ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
13470
13778
  name: "PopoverContent",
13471
13779
  __name: "PopoverContent",
13472
13780
  props: {
@@ -13478,18 +13786,17 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
13478
13786
  },
13479
13787
  emits: ["beforetoggle"],
13480
13788
  setup(__props, { emit: __emit }) {
13481
- const props = createPropsRestProxy(__props, ["positionArea", "positionTry"]);
13482
13789
  const emit = __emit;
13483
13790
  const context = usePopoverContext();
13484
13791
  const ref = useTemplateRef("ref");
13485
- const id = toRef(() => props.id ?? context.id);
13792
+ const id = toRef(() => __props.id ?? context.id);
13486
13793
  const style = toRef(() => {
13487
- if (props.id) return {
13794
+ if (__props.id) return {
13488
13795
  "position": "fixed",
13489
13796
  "margin": "unset",
13490
13797
  "inset-area": __props.positionArea ?? "bottom",
13491
13798
  "position-area": __props.positionArea ?? "bottom",
13492
- "position-anchor": `--${props.id}`,
13799
+ "position-anchor": `--${__props.id}`,
13493
13800
  "position-try-fallbacks": __props.positionTry ?? "most-width bottom"
13494
13801
  };
13495
13802
  return context.contentStyles.value;
@@ -13509,7 +13816,7 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
13509
13816
  return openBlock(), createBlock(unref(_sfc_main), mergeProps({
13510
13817
  ref_key: "ref",
13511
13818
  ref,
13512
- as: props.as,
13819
+ as: __props.as,
13513
13820
  style: style.value
13514
13821
  }, slotProps.value.attrs, { onBeforetoggle: onBeforeToggle }), {
13515
13822
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
@@ -13526,14 +13833,14 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
13526
13833
  * @see https://0.vuetifyjs.com/components/popover
13527
13834
  */
13528
13835
  const Popover = {
13529
- Root: _sfc_main$50,
13530
- Activator: _sfc_main$48,
13531
- Content: _sfc_main$49
13836
+ Root: _sfc_main$51,
13837
+ Activator: _sfc_main$49,
13838
+ Content: _sfc_main$50
13532
13839
  };
13533
13840
  //#endregion
13534
13841
  //#region src/components/Radio/RadioGroup.vue
13535
13842
  const [useRadioGroup, provideRadioGroup] = createContext();
13536
- const _sfc_main$51 = /* @__PURE__ */ defineComponent({
13843
+ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
13537
13844
  name: "RadioGroup",
13538
13845
  __name: "RadioGroup",
13539
13846
  props: /* @__PURE__ */ mergeModels({
@@ -13598,7 +13905,7 @@ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
13598
13905
  //#endregion
13599
13906
  //#region src/components/Radio/RadioRoot.vue
13600
13907
  const [useRadioRoot, provideRadioRoot] = createContext();
13601
- const _sfc_main$54 = /* @__PURE__ */ defineComponent({
13908
+ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
13602
13909
  name: "RadioRoot",
13603
13910
  inheritAttrs: false,
13604
13911
  __name: "RadioRoot",
@@ -13719,7 +14026,7 @@ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
13719
14026
  }), {
13720
14027
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
13721
14028
  _: 3
13722
- }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$52, { key: 0 })) : createCommentVNode("v-if", true)], 64);
14029
+ }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$53, { key: 0 })) : createCommentVNode("v-if", true)], 64);
13723
14030
  };
13724
14031
  }
13725
14032
  });
@@ -13743,7 +14050,7 @@ const visuallyHiddenStyle$2 = {
13743
14050
  whiteSpace: "nowrap",
13744
14051
  border: "0"
13745
14052
  };
13746
- const _sfc_main$52 = /* @__PURE__ */ defineComponent({
14053
+ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
13747
14054
  name: "RadioHiddenInput",
13748
14055
  __name: "RadioHiddenInput",
13749
14056
  props: {
@@ -13780,7 +14087,7 @@ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
13780
14087
  });
13781
14088
  //#endregion
13782
14089
  //#region src/components/Radio/RadioIndicator.vue
13783
- const _sfc_main$53 = /* @__PURE__ */ defineComponent({
14090
+ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
13784
14091
  name: "RadioIndicator",
13785
14092
  __name: "RadioIndicator",
13786
14093
  props: {
@@ -13845,14 +14152,14 @@ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
13845
14152
  * ```
13846
14153
  */
13847
14154
  const Radio = {
13848
- Group: _sfc_main$51,
13849
- HiddenInput: _sfc_main$52,
13850
- Indicator: _sfc_main$53,
13851
- Root: _sfc_main$54
14155
+ Group: _sfc_main$52,
14156
+ HiddenInput: _sfc_main$53,
14157
+ Indicator: _sfc_main$54,
14158
+ Root: _sfc_main$55
13852
14159
  };
13853
14160
  //#endregion
13854
14161
  //#region src/components/Scrim/Scrim.vue
13855
- const _sfc_main$55 = /* @__PURE__ */ defineComponent({
14162
+ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
13856
14163
  name: "Scrim",
13857
14164
  inheritAttrs: false,
13858
14165
  __name: "Scrim",
@@ -13946,7 +14253,7 @@ const visuallyHiddenStyle$1 = {
13946
14253
  whiteSpace: "nowrap",
13947
14254
  border: "0"
13948
14255
  };
13949
- const _sfc_main$92 = /* @__PURE__ */ defineComponent({
14256
+ const _sfc_main$104 = /* @__PURE__ */ defineComponent({
13950
14257
  name: "SelectHiddenInput",
13951
14258
  __name: "SelectHiddenInput",
13952
14259
  props: { namespace: { default: "v0:select" } },
@@ -13980,7 +14287,7 @@ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
13980
14287
  //#endregion
13981
14288
  //#region src/components/Select/SelectRoot.vue
13982
14289
  const [useSelectContext, provideSelectContext] = createContext();
13983
- const _sfc_main$61 = /* @__PURE__ */ defineComponent({
14290
+ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
13984
14291
  name: "SelectRoot",
13985
14292
  __name: "SelectRoot",
13986
14293
  props: /* @__PURE__ */ mergeModels({
@@ -14092,13 +14399,13 @@ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
14092
14399
  }, {
14093
14400
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
14094
14401
  _: 3
14095
- }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$92, { key: 0 })) : createCommentVNode("v-if", true)], 64);
14402
+ }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$104, { key: 0 })) : createCommentVNode("v-if", true)], 64);
14096
14403
  };
14097
14404
  }
14098
14405
  });
14099
14406
  //#endregion
14100
14407
  //#region src/components/Select/SelectActivator.vue
14101
- const _sfc_main$56 = /* @__PURE__ */ defineComponent({
14408
+ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
14102
14409
  name: "SelectActivator",
14103
14410
  __name: "SelectActivator",
14104
14411
  props: {
@@ -14176,7 +14483,7 @@ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
14176
14483
  });
14177
14484
  //#endregion
14178
14485
  //#region src/components/Select/SelectContent.vue
14179
- const _sfc_main$57 = /* @__PURE__ */ defineComponent({
14486
+ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
14180
14487
  name: "SelectContent",
14181
14488
  __name: "SelectContent",
14182
14489
  props: {
@@ -14213,7 +14520,7 @@ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
14213
14520
  });
14214
14521
  //#endregion
14215
14522
  //#region src/components/Select/SelectCue.vue
14216
- const _sfc_main$58 = /* @__PURE__ */ defineComponent({
14523
+ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
14217
14524
  name: "SelectCue",
14218
14525
  __name: "SelectCue",
14219
14526
  props: {
@@ -14240,7 +14547,7 @@ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
14240
14547
  });
14241
14548
  //#endregion
14242
14549
  //#region src/components/Select/SelectItem.vue
14243
- const _sfc_main$59 = /* @__PURE__ */ defineComponent({
14550
+ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
14244
14551
  name: "SelectItem",
14245
14552
  __name: "SelectItem",
14246
14553
  props: {
@@ -14295,7 +14602,7 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
14295
14602
  });
14296
14603
  //#endregion
14297
14604
  //#region src/components/Select/SelectPlaceholder.vue
14298
- const _sfc_main$60 = /* @__PURE__ */ defineComponent({
14605
+ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
14299
14606
  name: "SelectPlaceholder",
14300
14607
  __name: "SelectPlaceholder",
14301
14608
  props: {
@@ -14319,7 +14626,7 @@ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
14319
14626
  });
14320
14627
  //#endregion
14321
14628
  //#region src/components/Select/SelectValue.vue
14322
- const _sfc_main$62 = /* @__PURE__ */ defineComponent({
14629
+ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
14323
14630
  name: "SelectValue",
14324
14631
  __name: "SelectValue",
14325
14632
  props: {
@@ -14397,18 +14704,18 @@ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
14397
14704
  * ```
14398
14705
  */
14399
14706
  const Select = {
14400
- Root: _sfc_main$61,
14401
- Activator: _sfc_main$56,
14402
- Value: _sfc_main$62,
14403
- Content: _sfc_main$57,
14404
- Cue: _sfc_main$58,
14405
- Item: _sfc_main$59,
14406
- Placeholder: _sfc_main$60
14707
+ Root: _sfc_main$62,
14708
+ Activator: _sfc_main$57,
14709
+ Value: _sfc_main$63,
14710
+ Content: _sfc_main$58,
14711
+ Cue: _sfc_main$59,
14712
+ Item: _sfc_main$60,
14713
+ Placeholder: _sfc_main$61
14407
14714
  };
14408
14715
  //#endregion
14409
14716
  //#region src/components/Selection/SelectionRoot.vue
14410
14717
  const [useSelectionRoot, provideSelectionRoot] = createContext();
14411
- const _sfc_main$64 = /* @__PURE__ */ defineComponent({
14718
+ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
14412
14719
  name: "SelectionRoot",
14413
14720
  __name: "SelectionRoot",
14414
14721
  props: /* @__PURE__ */ mergeModels({
@@ -14460,7 +14767,7 @@ const _sfc_main$64 = /* @__PURE__ */ defineComponent({
14460
14767
  });
14461
14768
  //#endregion
14462
14769
  //#region src/components/Selection/SelectionItem.vue
14463
- const _sfc_main$63 = /* @__PURE__ */ defineComponent({
14770
+ const _sfc_main$64 = /* @__PURE__ */ defineComponent({
14464
14771
  name: "SelectionItem",
14465
14772
  __name: "SelectionItem",
14466
14773
  props: {
@@ -14510,12 +14817,12 @@ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
14510
14817
  * @see https://0.vuetifyjs.com/components/selection
14511
14818
  */
14512
14819
  const Selection = {
14513
- Root: _sfc_main$64,
14514
- Item: _sfc_main$63
14820
+ Root: _sfc_main$65,
14821
+ Item: _sfc_main$64
14515
14822
  };
14516
14823
  //#endregion
14517
14824
  //#region src/components/Snackbar/SnackbarPortal.vue
14518
- const _sfc_main$74 = /* @__PURE__ */ defineComponent({
14825
+ const _sfc_main$75 = /* @__PURE__ */ defineComponent({
14519
14826
  name: "SnackbarPortal",
14520
14827
  inheritAttrs: false,
14521
14828
  __name: "SnackbarPortal",
@@ -14556,7 +14863,7 @@ const _sfc_main$74 = /* @__PURE__ */ defineComponent({
14556
14863
  //#endregion
14557
14864
  //#region src/components/Snackbar/SnackbarQueue.vue
14558
14865
  const [useSnackbarQueueContext, provideSnackbarQueueContext] = createContext({ suffix: "queue" });
14559
- const _sfc_main$75 = /* @__PURE__ */ defineComponent({
14866
+ const _sfc_main$76 = /* @__PURE__ */ defineComponent({
14560
14867
  name: "SnackbarQueue",
14561
14868
  __name: "SnackbarQueue",
14562
14869
  props: {
@@ -14625,7 +14932,7 @@ const _sfc_main$75 = /* @__PURE__ */ defineComponent({
14625
14932
  //#endregion
14626
14933
  //#region src/components/Snackbar/SnackbarRoot.vue
14627
14934
  const [useSnackbarRootContext, provideSnackbarRootContext] = createContext({ suffix: "root" });
14628
- const _sfc_main$76 = /* @__PURE__ */ defineComponent({
14935
+ const _sfc_main$77 = /* @__PURE__ */ defineComponent({
14629
14936
  name: "SnackbarRoot",
14630
14937
  __name: "SnackbarRoot",
14631
14938
  props: {
@@ -14660,7 +14967,7 @@ const _sfc_main$76 = /* @__PURE__ */ defineComponent({
14660
14967
  });
14661
14968
  //#endregion
14662
14969
  //#region src/components/Snackbar/SnackbarContent.vue
14663
- const _sfc_main$73 = /* @__PURE__ */ defineComponent({
14970
+ const _sfc_main$74 = /* @__PURE__ */ defineComponent({
14664
14971
  name: "SnackbarContent",
14665
14972
  __name: "SnackbarContent",
14666
14973
  props: {
@@ -14678,7 +14985,7 @@ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
14678
14985
  });
14679
14986
  //#endregion
14680
14987
  //#region src/components/Snackbar/SnackbarClose.vue
14681
- const _sfc_main$72 = /* @__PURE__ */ defineComponent({
14988
+ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
14682
14989
  name: "SnackbarClose",
14683
14990
  __name: "SnackbarClose",
14684
14991
  props: {
@@ -14732,16 +15039,16 @@ const _sfc_main$72 = /* @__PURE__ */ defineComponent({
14732
15039
  * ```
14733
15040
  */
14734
15041
  const Snackbar = {
14735
- Portal: _sfc_main$74,
14736
- Queue: _sfc_main$75,
14737
- Root: _sfc_main$76,
14738
- Content: _sfc_main$73,
14739
- Close: _sfc_main$72
15042
+ Portal: _sfc_main$75,
15043
+ Queue: _sfc_main$76,
15044
+ Root: _sfc_main$77,
15045
+ Content: _sfc_main$74,
15046
+ Close: _sfc_main$73
14740
15047
  };
14741
15048
  //#endregion
14742
15049
  //#region src/components/Slider/SliderRoot.vue
14743
15050
  const [useSliderRoot, provideSliderRoot] = createContext();
14744
- const _sfc_main$69 = /* @__PURE__ */ defineComponent({
15051
+ const _sfc_main$70 = /* @__PURE__ */ defineComponent({
14745
15052
  name: "SliderRoot",
14746
15053
  inheritAttrs: false,
14747
15054
  __name: "SliderRoot",
@@ -14873,7 +15180,7 @@ const _sfc_main$69 = /* @__PURE__ */ defineComponent({
14873
15180
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
14874
15181
  _: 3
14875
15182
  }, 16, ["as", "renderless"]), __props.name ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(slider).values.value, (_, index) => {
14876
- return openBlock(), createBlock(_sfc_main$67, {
15183
+ return openBlock(), createBlock(_sfc_main$68, {
14877
15184
  key: index,
14878
15185
  index
14879
15186
  }, null, 8, ["index"]);
@@ -14889,7 +15196,7 @@ const _hoisted_1$1 = [
14889
15196
  "name",
14890
15197
  "value"
14891
15198
  ];
14892
- const _sfc_main$67 = /* @__PURE__ */ defineComponent({
15199
+ const _sfc_main$68 = /* @__PURE__ */ defineComponent({
14893
15200
  name: "SliderHiddenInput",
14894
15201
  __name: "SliderHiddenInput",
14895
15202
  props: {
@@ -14914,7 +15221,7 @@ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
14914
15221
  });
14915
15222
  //#endregion
14916
15223
  //#region src/components/Slider/SliderRange.vue
14917
- const _sfc_main$68 = /* @__PURE__ */ defineComponent({
15224
+ const _sfc_main$69 = /* @__PURE__ */ defineComponent({
14918
15225
  name: "SliderRange",
14919
15226
  inheritAttrs: false,
14920
15227
  __name: "SliderRange",
@@ -14975,7 +15282,7 @@ const _sfc_main$68 = /* @__PURE__ */ defineComponent({
14975
15282
  });
14976
15283
  //#endregion
14977
15284
  //#region src/components/Slider/SliderThumb.vue
14978
- const _sfc_main$70 = /* @__PURE__ */ defineComponent({
15285
+ const _sfc_main$71 = /* @__PURE__ */ defineComponent({
14979
15286
  name: "SliderThumb",
14980
15287
  inheritAttrs: false,
14981
15288
  __name: "SliderThumb",
@@ -15089,7 +15396,7 @@ const _sfc_main$70 = /* @__PURE__ */ defineComponent({
15089
15396
  });
15090
15397
  //#endregion
15091
15398
  //#region src/components/Slider/SliderTrack.vue
15092
- const _sfc_main$71 = /* @__PURE__ */ defineComponent({
15399
+ const _sfc_main$72 = /* @__PURE__ */ defineComponent({
15093
15400
  name: "SliderTrack",
15094
15401
  inheritAttrs: false,
15095
15402
  __name: "SliderTrack",
@@ -15183,16 +15490,16 @@ const _sfc_main$71 = /* @__PURE__ */ defineComponent({
15183
15490
  * ```
15184
15491
  */
15185
15492
  const Slider = {
15186
- Root: _sfc_main$69,
15187
- Track: _sfc_main$71,
15188
- Range: _sfc_main$68,
15189
- Thumb: _sfc_main$70,
15190
- HiddenInput: _sfc_main$67
15493
+ Root: _sfc_main$70,
15494
+ Track: _sfc_main$72,
15495
+ Range: _sfc_main$69,
15496
+ Thumb: _sfc_main$71,
15497
+ HiddenInput: _sfc_main$68
15191
15498
  };
15192
15499
  //#endregion
15193
15500
  //#region src/components/Splitter/SplitterRoot.vue
15194
15501
  const [useSplitterRoot, provideSplitterRoot] = createContext("v0:splitter");
15195
- const _sfc_main$79 = /* @__PURE__ */ defineComponent({
15502
+ const _sfc_main$80 = /* @__PURE__ */ defineComponent({
15196
15503
  name: "SplitterRoot",
15197
15504
  inheritAttrs: false,
15198
15505
  __name: "SplitterRoot",
@@ -15213,6 +15520,8 @@ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
15213
15520
  const rootEl = toRef(() => rootAtom.value?.element ?? null);
15214
15521
  const draggingHandle = shallowRef(null);
15215
15522
  const dragging = toRef(() => !/* @__PURE__ */ isNull(draggingHandle.value));
15523
+ const expandAccum = /* @__PURE__ */ new Map();
15524
+ const EXPAND_THRESHOLD = 5;
15216
15525
  const panels = createSelection({
15217
15526
  multiple: true,
15218
15527
  enroll: true,
@@ -15242,15 +15551,38 @@ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
15242
15551
  const min2 = effectiveMin(after);
15243
15552
  const lower = Math.max(min1, total - after.maxSize);
15244
15553
  const upper = Math.min(before.maxSize, total - min2);
15245
- const size = /* @__PURE__ */ clamp(before.size + delta, lower, upper);
15554
+ let size = /* @__PURE__ */ clamp(before.size + delta, lower, upper);
15555
+ const beforeCollapsed = !toValue(before.isSelected);
15556
+ if (before.collapsible && !beforeCollapsed && size <= before.minSize && delta < 0) {
15557
+ size = before.collapsedSize;
15558
+ before.unselect();
15559
+ expandAccum.set(before.id, 0);
15560
+ } else if (before.collapsible && beforeCollapsed && delta > 0) {
15561
+ const accum = (expandAccum.get(before.id) ?? 0) + delta;
15562
+ expandAccum.set(before.id, accum);
15563
+ if (accum >= EXPAND_THRESHOLD) {
15564
+ size = /* @__PURE__ */ clamp(Math.max(accum, before.minSize), before.minSize, before.maxSize);
15565
+ before.select();
15566
+ expandAccum.delete(before.id);
15567
+ } else size = before.collapsedSize;
15568
+ }
15569
+ const afterSize = total - size;
15570
+ const afterCollapsed = !toValue(after.isSelected);
15571
+ if (after.collapsible && !afterCollapsed && afterSize <= after.minSize && delta > 0) {
15572
+ size = total - after.collapsedSize;
15573
+ after.unselect();
15574
+ expandAccum.set(after.id, 0);
15575
+ } else if (after.collapsible && afterCollapsed && delta < 0) {
15576
+ const accum = (expandAccum.get(after.id) ?? 0) + Math.abs(delta);
15577
+ expandAccum.set(after.id, accum);
15578
+ if (accum >= EXPAND_THRESHOLD) {
15579
+ size = total - /* @__PURE__ */ clamp(Math.max(accum, after.minSize), after.minSize, after.maxSize);
15580
+ after.select();
15581
+ expandAccum.delete(after.id);
15582
+ } else size = total - after.collapsedSize;
15583
+ }
15246
15584
  before.size = size;
15247
15585
  after.size = total - size;
15248
- for (const p of [before, after]) {
15249
- if (!p.collapsible) continue;
15250
- const collapsed = !toValue(p.isSelected);
15251
- if (!collapsed && p.size <= p.collapsedSize) p.unselect();
15252
- else if (collapsed && p.size > p.collapsedSize) p.select();
15253
- }
15254
15586
  if (options?.emit) emitLayout();
15255
15587
  }
15256
15588
  function collapse(index, neighborIndex) {
@@ -15317,6 +15649,7 @@ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
15317
15649
  }
15318
15650
  function onEndDrag() {
15319
15651
  draggingHandle.value = null;
15652
+ expandAccum.clear();
15320
15653
  emitLayout();
15321
15654
  }
15322
15655
  function emitLayout() {
@@ -15378,7 +15711,7 @@ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
15378
15711
  });
15379
15712
  //#endregion
15380
15713
  //#region src/components/Splitter/SplitterPanel.vue
15381
- const _sfc_main$78 = /* @__PURE__ */ defineComponent({
15714
+ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
15382
15715
  name: "SplitterPanel",
15383
15716
  inheritAttrs: false,
15384
15717
  __name: "SplitterPanel",
@@ -15407,18 +15740,29 @@ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
15407
15740
  const emit = __emit;
15408
15741
  const splitter = useSplitterRoot();
15409
15742
  const panelId = /* @__PURE__ */ useId();
15743
+ const rootSize = shallowRef(0);
15744
+ if (/* @__PURE__ */ isString(__props.maxSize)) useResizeObserver(splitter.rootEl, (entries) => {
15745
+ const rect = entries[0]?.contentRect;
15746
+ rootSize.value = splitter.orientation.value === "horizontal" ? rect?.width ?? 0 : rect?.height ?? 0;
15747
+ });
15748
+ function resolveMaxSize() {
15749
+ if (!/* @__PURE__ */ isString(__props.maxSize)) return __props.maxSize;
15750
+ const px = Number.parseFloat(__props.maxSize);
15751
+ const dimension = rootSize.value || (splitter.orientation.value === "horizontal" ? splitter.rootEl.value?.offsetWidth : splitter.rootEl.value?.offsetHeight) || 0;
15752
+ return dimension > 0 ? px / dimension * 100 : 100;
15753
+ }
15410
15754
  const ticket = splitter.panels.register({
15411
15755
  id: panelId,
15412
15756
  size: __props.defaultSize,
15413
15757
  minSize: __props.minSize,
15414
- maxSize: __props.maxSize,
15758
+ maxSize: resolveMaxSize(),
15415
15759
  collapsible: __props.collapsible,
15416
15760
  collapsedSize: __props.collapsedSize,
15417
15761
  defaultSize: __props.defaultSize
15418
15762
  });
15419
15763
  watchEffect(() => {
15420
15764
  ticket.minSize = __props.minSize;
15421
- ticket.maxSize = __props.maxSize;
15765
+ ticket.maxSize = resolveMaxSize();
15422
15766
  ticket.collapsible = __props.collapsible;
15423
15767
  ticket.collapsedSize = __props.collapsedSize;
15424
15768
  ticket.defaultSize = __props.defaultSize;
@@ -15495,7 +15839,7 @@ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
15495
15839
  });
15496
15840
  //#endregion
15497
15841
  //#region src/components/Splitter/SplitterHandle.vue
15498
- const _sfc_main$77 = /* @__PURE__ */ defineComponent({
15842
+ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
15499
15843
  name: "SplitterHandle",
15500
15844
  inheritAttrs: false,
15501
15845
  __name: "SplitterHandle",
@@ -15718,14 +16062,14 @@ const _sfc_main$77 = /* @__PURE__ */ defineComponent({
15718
16062
  * ```
15719
16063
  */
15720
16064
  const Splitter = {
15721
- Root: _sfc_main$79,
15722
- Panel: _sfc_main$78,
15723
- Handle: _sfc_main$77
16065
+ Root: _sfc_main$80,
16066
+ Panel: _sfc_main$79,
16067
+ Handle: _sfc_main$78
15724
16068
  };
15725
16069
  //#endregion
15726
16070
  //#region src/components/Switch/SwitchGroup.vue
15727
16071
  const [useSwitchGroup, provideSwitchGroup] = createContext();
15728
- const _sfc_main$82 = /* @__PURE__ */ defineComponent({
16072
+ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
15729
16073
  name: "SwitchGroup",
15730
16074
  __name: "SwitchGroup",
15731
16075
  props: /* @__PURE__ */ mergeModels({
@@ -15794,7 +16138,7 @@ const _sfc_main$82 = /* @__PURE__ */ defineComponent({
15794
16138
  //#endregion
15795
16139
  //#region src/components/Switch/SwitchRoot.vue
15796
16140
  const [useSwitchRoot, provideSwitchRoot] = createContext();
15797
- const _sfc_main$84 = /* @__PURE__ */ defineComponent({
16141
+ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
15798
16142
  name: "SwitchRoot",
15799
16143
  inheritAttrs: false,
15800
16144
  __name: "SwitchRoot",
@@ -15924,7 +16268,7 @@ const _sfc_main$84 = /* @__PURE__ */ defineComponent({
15924
16268
  }), {
15925
16269
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
15926
16270
  _: 3
15927
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$83, { key: 0 })) : createCommentVNode("v-if", true)], 64);
16271
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$84, { key: 0 })) : createCommentVNode("v-if", true)], 64);
15928
16272
  };
15929
16273
  }
15930
16274
  });
@@ -15948,7 +16292,7 @@ const visuallyHiddenStyle = {
15948
16292
  whiteSpace: "nowrap",
15949
16293
  border: "0"
15950
16294
  };
15951
- const _sfc_main$83 = /* @__PURE__ */ defineComponent({
16295
+ const _sfc_main$84 = /* @__PURE__ */ defineComponent({
15952
16296
  name: "SwitchHiddenInput",
15953
16297
  __name: "SwitchHiddenInput",
15954
16298
  props: {
@@ -15986,29 +16330,27 @@ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
15986
16330
  });
15987
16331
  //#endregion
15988
16332
  //#region src/components/Switch/SwitchSelectAll.vue
15989
- const _sfc_main$85 = /* @__PURE__ */ defineComponent({
16333
+ const _sfc_main$86 = /* @__PURE__ */ defineComponent({
15990
16334
  name: "SwitchSelectAll",
15991
16335
  inheritAttrs: false,
15992
16336
  __name: "SwitchSelectAll",
15993
16337
  props: {
15994
16338
  label: {},
15995
16339
  disabled: { type: Boolean },
15996
- namespace: {},
15997
- groupNamespace: {},
16340
+ namespace: { default: "v0:switch:root" },
16341
+ groupNamespace: { default: "v0:switch:group" },
15998
16342
  ariaLabelledby: {},
15999
16343
  ariaDescribedby: {},
16000
- as: {},
16344
+ as: { default: "button" },
16001
16345
  renderless: { type: Boolean }
16002
16346
  },
16003
16347
  setup(__props) {
16004
16348
  const attrs = useAttrs();
16005
- const props = __props;
16006
- const { as = "button", renderless, label, namespace = "v0:switch:root", groupNamespace = "v0:switch:group" } = props;
16007
- const group = useSwitchGroup(groupNamespace);
16349
+ const group = useSwitchGroup(__props.groupNamespace);
16008
16350
  const id = useId$1();
16009
16351
  const isAllSelected = toRef(() => group.isAllSelected.value);
16010
16352
  const isMixed = toRef(() => group.isMixed.value);
16011
- const isDisabled = toRef(() => toValue(props.disabled) || toValue(group.disabled));
16353
+ const isDisabled = toRef(() => toValue(__props.disabled) || toValue(group.disabled));
16012
16354
  const dataState = toRef(() => isMixed.value ? "indeterminate" : isAllSelected.value ? "checked" : "unchecked");
16013
16355
  function onClick() {
16014
16356
  if (isDisabled.value) return;
@@ -16020,9 +16362,9 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
16020
16362
  if (isDisabled.value) return;
16021
16363
  group.toggleAll();
16022
16364
  }
16023
- provideSwitchRoot(namespace, {
16365
+ const context = {
16024
16366
  id,
16025
- label,
16367
+ label: __props.label,
16026
16368
  value: void 0,
16027
16369
  name: void 0,
16028
16370
  form: void 0,
@@ -16034,9 +16376,10 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
16034
16376
  toggle: group.toggleAll,
16035
16377
  mix: () => {},
16036
16378
  unmix: () => {}
16037
- });
16379
+ };
16380
+ provideSwitchRoot(__props.namespace, context);
16038
16381
  const slotProps = toRef(() => ({
16039
- label,
16382
+ label: __props.label,
16040
16383
  isAllSelected: isAllSelected.value,
16041
16384
  isMixed: isMixed.value,
16042
16385
  isDisabled: isDisabled.value,
@@ -16044,13 +16387,13 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
16044
16387
  unselectAll: group.unselectAll,
16045
16388
  toggleAll: group.toggleAll,
16046
16389
  attrs: {
16047
- "type": as === "button" ? "button" : void 0,
16390
+ "type": __props.as === "button" ? "button" : void 0,
16048
16391
  "role": "switch",
16049
16392
  "aria-checked": isMixed.value ? "mixed" : isAllSelected.value,
16050
16393
  "aria-disabled": isDisabled.value || void 0,
16051
- "aria-label": label || void 0,
16052
- "aria-labelledby": props.ariaLabelledby || void 0,
16053
- "aria-describedby": props.ariaDescribedby || void 0,
16394
+ "aria-label": __props.label || void 0,
16395
+ "aria-labelledby": __props.ariaLabelledby || void 0,
16396
+ "aria-describedby": __props.ariaDescribedby || void 0,
16054
16397
  "tabindex": isDisabled.value ? void 0 : 0,
16055
16398
  "data-state": dataState.value,
16056
16399
  "data-disabled": isDisabled.value ? true : void 0
@@ -16061,8 +16404,8 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
16061
16404
  ...unref(attrs),
16062
16405
  ...slotProps.value.attrs
16063
16406
  }, {
16064
- as: unref(as),
16065
- renderless: unref(renderless),
16407
+ as: __props.as,
16408
+ renderless: __props.renderless,
16066
16409
  onClick,
16067
16410
  onKeydown
16068
16411
  }), {
@@ -16074,7 +16417,7 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
16074
16417
  });
16075
16418
  //#endregion
16076
16419
  //#region src/components/Switch/SwitchThumb.vue
16077
- const _sfc_main$86 = /* @__PURE__ */ defineComponent({
16420
+ const _sfc_main$87 = /* @__PURE__ */ defineComponent({
16078
16421
  name: "SwitchThumb",
16079
16422
  __name: "SwitchThumb",
16080
16423
  props: {
@@ -16109,7 +16452,7 @@ const _sfc_main$86 = /* @__PURE__ */ defineComponent({
16109
16452
  });
16110
16453
  //#endregion
16111
16454
  //#region src/components/Switch/SwitchTrack.vue
16112
- const _sfc_main$87 = /* @__PURE__ */ defineComponent({
16455
+ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
16113
16456
  name: "SwitchTrack",
16114
16457
  __name: "SwitchTrack",
16115
16458
  props: {
@@ -16168,17 +16511,17 @@ const _sfc_main$87 = /* @__PURE__ */ defineComponent({
16168
16511
  * ```
16169
16512
  */
16170
16513
  const Switch = {
16171
- Group: _sfc_main$82,
16172
- HiddenInput: _sfc_main$83,
16173
- Root: _sfc_main$84,
16174
- SelectAll: _sfc_main$85,
16175
- Thumb: _sfc_main$86,
16176
- Track: _sfc_main$87
16514
+ Group: _sfc_main$83,
16515
+ HiddenInput: _sfc_main$84,
16516
+ Root: _sfc_main$85,
16517
+ SelectAll: _sfc_main$86,
16518
+ Thumb: _sfc_main$87,
16519
+ Track: _sfc_main$88
16177
16520
  };
16178
16521
  //#endregion
16179
16522
  //#region src/components/Single/SingleRoot.vue
16180
16523
  const [useSingleRoot, provideSingleRoot] = createContext();
16181
- const _sfc_main$66 = /* @__PURE__ */ defineComponent({
16524
+ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
16182
16525
  name: "SingleRoot",
16183
16526
  __name: "SingleRoot",
16184
16527
  props: /* @__PURE__ */ mergeModels({
@@ -16224,7 +16567,7 @@ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
16224
16567
  });
16225
16568
  //#endregion
16226
16569
  //#region src/components/Single/SingleItem.vue
16227
- const _sfc_main$65 = /* @__PURE__ */ defineComponent({
16570
+ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
16228
16571
  name: "SingleItem",
16229
16572
  __name: "SingleItem",
16230
16573
  props: {
@@ -16274,13 +16617,13 @@ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
16274
16617
  * @see https://0.vuetifyjs.com/components/single
16275
16618
  */
16276
16619
  const Single = {
16277
- Root: _sfc_main$66,
16278
- Item: _sfc_main$65
16620
+ Root: _sfc_main$67,
16621
+ Item: _sfc_main$66
16279
16622
  };
16280
16623
  //#endregion
16281
16624
  //#region src/components/Step/StepRoot.vue
16282
16625
  const [useStepRoot, provideStepRoot] = createContext();
16283
- const _sfc_main$81 = /* @__PURE__ */ defineComponent({
16626
+ const _sfc_main$82 = /* @__PURE__ */ defineComponent({
16284
16627
  name: "StepRoot",
16285
16628
  __name: "StepRoot",
16286
16629
  props: /* @__PURE__ */ mergeModels({
@@ -16331,7 +16674,7 @@ const _sfc_main$81 = /* @__PURE__ */ defineComponent({
16331
16674
  });
16332
16675
  //#endregion
16333
16676
  //#region src/components/Step/StepItem.vue
16334
- const _sfc_main$80 = /* @__PURE__ */ defineComponent({
16677
+ const _sfc_main$81 = /* @__PURE__ */ defineComponent({
16335
16678
  name: "StepItem",
16336
16679
  __name: "StepItem",
16337
16680
  props: {
@@ -16381,13 +16724,13 @@ const _sfc_main$80 = /* @__PURE__ */ defineComponent({
16381
16724
  * @see https://0.vuetifyjs.com/components/step
16382
16725
  */
16383
16726
  const Step = {
16384
- Root: _sfc_main$81,
16385
- Item: _sfc_main$80
16727
+ Root: _sfc_main$82,
16728
+ Item: _sfc_main$81
16386
16729
  };
16387
16730
  //#endregion
16388
16731
  //#region src/components/Tabs/TabsRoot.vue
16389
16732
  const [useTabsRoot, provideTabsRoot] = createContext();
16390
- const _sfc_main$91 = /* @__PURE__ */ defineComponent({
16733
+ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
16391
16734
  name: "TabsRoot",
16392
16735
  __name: "TabsRoot",
16393
16736
  props: /* @__PURE__ */ mergeModels({
@@ -16455,7 +16798,7 @@ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
16455
16798
  });
16456
16799
  //#endregion
16457
16800
  //#region src/components/Tabs/TabsList.vue
16458
- const _sfc_main$89 = /* @__PURE__ */ defineComponent({
16801
+ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
16459
16802
  name: "TabsList",
16460
16803
  inheritAttrs: false,
16461
16804
  __name: "TabsList",
@@ -16496,7 +16839,7 @@ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
16496
16839
  });
16497
16840
  //#endregion
16498
16841
  //#region src/components/Tabs/TabsItem.vue
16499
- const _sfc_main$88 = /* @__PURE__ */ defineComponent({
16842
+ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
16500
16843
  name: "TabsItem",
16501
16844
  inheritAttrs: false,
16502
16845
  __name: "TabsItem",
@@ -16534,33 +16877,69 @@ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
16534
16877
  if (selected) toValue(selected.el)?.focus();
16535
16878
  });
16536
16879
  }
16880
+ function focusAdjacent(direction) {
16881
+ const all = tabs.values();
16882
+ const current = all.findIndex((t) => t.id === ticket.id);
16883
+ const length = all.length;
16884
+ const circular = tabs.circular.value;
16885
+ let index = current + direction;
16886
+ let hops = 0;
16887
+ while (hops < length) {
16888
+ if (circular) index = (index % length + length) % length;
16889
+ else if (index < 0 || index >= length) return;
16890
+ const item = all[index];
16891
+ if (item && !toValue(item.disabled)) {
16892
+ nextTick(() => toValue(item.el)?.focus());
16893
+ return;
16894
+ }
16895
+ index += direction;
16896
+ hops++;
16897
+ }
16898
+ }
16899
+ function focusEdge(edge) {
16900
+ const item = tabs.seek(edge);
16901
+ if (item) nextTick(() => toValue(item.el)?.focus());
16902
+ }
16537
16903
  function onKeydown(e) {
16538
16904
  const isHorizontal = tabs.orientation.value === "horizontal";
16905
+ const manual = tabs.activation.value === "manual";
16539
16906
  if (isHorizontal && e.key === "ArrowRight" || !isHorizontal && e.key === "ArrowDown") {
16540
16907
  e.preventDefault();
16541
- tabs.next();
16542
- focusSelectedTab();
16908
+ if (manual) focusAdjacent(1);
16909
+ else {
16910
+ tabs.next();
16911
+ focusSelectedTab();
16912
+ }
16543
16913
  return;
16544
16914
  }
16545
16915
  if (isHorizontal && e.key === "ArrowLeft" || !isHorizontal && e.key === "ArrowUp") {
16546
16916
  e.preventDefault();
16547
- tabs.prev();
16548
- focusSelectedTab();
16917
+ if (manual) focusAdjacent(-1);
16918
+ else {
16919
+ tabs.prev();
16920
+ focusSelectedTab();
16921
+ }
16549
16922
  return;
16550
16923
  }
16551
16924
  if (e.key === "Home") {
16552
16925
  e.preventDefault();
16553
- tabs.first();
16554
- focusSelectedTab();
16926
+ if (manual) focusEdge("first");
16927
+ else {
16928
+ tabs.first();
16929
+ focusSelectedTab();
16930
+ }
16555
16931
  return;
16556
16932
  }
16557
16933
  if (e.key === "End") {
16558
16934
  e.preventDefault();
16559
- tabs.last();
16560
- focusSelectedTab();
16561
- return;
16935
+ if (manual) focusEdge("last");
16936
+ else {
16937
+ tabs.last();
16938
+ focusSelectedTab();
16939
+ }
16940
+ return;
16562
16941
  }
16563
- if (tabs.activation.value === "manual" && (e.key === "Enter" || e.key === " ")) {
16942
+ if (manual && (e.key === "Enter" || e.key === " ")) {
16564
16943
  e.preventDefault();
16565
16944
  ticket.select();
16566
16945
  }
@@ -16611,7 +16990,7 @@ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
16611
16990
  });
16612
16991
  //#endregion
16613
16992
  //#region src/components/Tabs/TabsPanel.vue
16614
- const _sfc_main$90 = /* @__PURE__ */ defineComponent({
16993
+ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
16615
16994
  name: "TabsPanel",
16616
16995
  inheritAttrs: false,
16617
16996
  __name: "TabsPanel",
@@ -16692,10 +17071,676 @@ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
16692
17071
  * ```
16693
17072
  */
16694
17073
  const Tabs = {
16695
- Root: _sfc_main$91,
16696
- List: _sfc_main$89,
16697
- Item: _sfc_main$88,
16698
- Panel: _sfc_main$90
17074
+ Root: _sfc_main$92,
17075
+ List: _sfc_main$90,
17076
+ Item: _sfc_main$89,
17077
+ Panel: _sfc_main$91
17078
+ };
17079
+ //#endregion
17080
+ //#region src/components/Theme/Theme.vue
17081
+ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
17082
+ name: "Theme",
17083
+ inheritAttrs: false,
17084
+ __name: "Theme",
17085
+ props: {
17086
+ theme: {},
17087
+ renderless: {
17088
+ type: Boolean,
17089
+ default: false
17090
+ },
17091
+ as: { default: "div" }
17092
+ },
17093
+ setup(__props) {
17094
+ const parent = useTheme();
17095
+ const selectedId = toRef(() => __props.theme);
17096
+ const selectedItem = toRef(() => parent.get(__props.theme));
17097
+ const isDark = toRef(() => selectedItem.value?.dark ?? false);
17098
+ provideContext("v0:theme", {
17099
+ ...parent,
17100
+ selectedId,
17101
+ selectedItem,
17102
+ isDark
17103
+ });
17104
+ const attrs = toRef(() => ({ "data-theme": __props.theme }));
17105
+ return (_ctx, _cache) => {
17106
+ return __props.renderless ? renderSlot(_ctx.$slots, "default", {
17107
+ key: 0,
17108
+ attrs: attrs.value
17109
+ }) : (openBlock(), createBlock(resolveDynamicComponent(__props.as), normalizeProps(mergeProps({ key: 1 }, attrs.value)), {
17110
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", { attrs: attrs.value })]),
17111
+ _: 3
17112
+ }, 16));
17113
+ };
17114
+ }
17115
+ });
17116
+ //#endregion
17117
+ //#region src/components/Treeview/TreeviewRoot.vue
17118
+ const [useTreeviewRoot, provideTreeviewRoot] = createContext();
17119
+ const _sfc_main$102 = /* @__PURE__ */ defineComponent({
17120
+ name: "TreeviewRoot",
17121
+ __name: "TreeviewRoot",
17122
+ props: /* @__PURE__ */ mergeModels({
17123
+ namespace: { default: "v0:treeview" },
17124
+ disabled: {
17125
+ type: Boolean,
17126
+ default: false
17127
+ },
17128
+ enroll: {
17129
+ type: Boolean,
17130
+ default: false
17131
+ },
17132
+ mandatory: {
17133
+ type: [Boolean, String],
17134
+ default: false
17135
+ },
17136
+ multiple: {
17137
+ type: Boolean,
17138
+ default: true
17139
+ },
17140
+ open: { default: "multiple" },
17141
+ openAll: {
17142
+ type: Boolean,
17143
+ default: false
17144
+ },
17145
+ reveal: {
17146
+ type: Boolean,
17147
+ default: false
17148
+ },
17149
+ selection: { default: "cascade" },
17150
+ active: { default: "single" }
17151
+ }, {
17152
+ "modelValue": {},
17153
+ "modelModifiers": {}
17154
+ }),
17155
+ emits: /* @__PURE__ */ mergeModels(["update:model-value"], ["update:modelValue"]),
17156
+ setup(__props) {
17157
+ const model = useModel(__props, "modelValue");
17158
+ const nested = createNested({
17159
+ disabled: toRef(() => __props.disabled),
17160
+ enroll: __props.enroll,
17161
+ mandatory: __props.mandatory,
17162
+ multiple: __props.multiple,
17163
+ open: __props.open,
17164
+ openAll: __props.openAll,
17165
+ reveal: __props.reveal,
17166
+ selection: __props.selection,
17167
+ active: __props.active,
17168
+ events: true
17169
+ });
17170
+ useProxyModel(nested, model, { multiple: __props.multiple });
17171
+ provideTreeviewRoot(__props.namespace, nested);
17172
+ const slotProps = toRef(() => ({
17173
+ isDisabled: toValue(nested.disabled),
17174
+ isNoneSelected: nested.isNoneSelected.value,
17175
+ isAllSelected: nested.isAllSelected.value,
17176
+ isMixed: nested.isMixed.value,
17177
+ select: nested.select,
17178
+ unselect: nested.unselect,
17179
+ toggle: nested.toggle,
17180
+ selectAll: nested.selectAll,
17181
+ unselectAll: nested.unselectAll,
17182
+ expandAll: nested.expandAll,
17183
+ collapseAll: nested.collapseAll
17184
+ }));
17185
+ return (_ctx, _cache) => {
17186
+ return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)));
17187
+ };
17188
+ }
17189
+ });
17190
+ //#endregion
17191
+ //#region src/components/Treeview/TreeviewList.vue
17192
+ const [useTreeviewList, provideTreeviewList] = createContext({ suffix: "list" });
17193
+ const _sfc_main$101 = /* @__PURE__ */ defineComponent({
17194
+ name: "TreeviewList",
17195
+ __name: "TreeviewList",
17196
+ props: {
17197
+ namespace: { default: "v0:treeview" },
17198
+ multiselectable: { type: Boolean },
17199
+ label: {},
17200
+ as: { default: "ul" },
17201
+ renderless: { type: Boolean }
17202
+ },
17203
+ setup(__props) {
17204
+ const nested = useTreeviewRoot(__props.namespace);
17205
+ const roving = useRovingFocus(() => nested.visibleItems().map((item) => ({
17206
+ id: item.id,
17207
+ el: item.el,
17208
+ disabled: toRef(() => toValue(item.disabled))
17209
+ })), { orientation: "vertical" });
17210
+ provideTreeviewList(__props.namespace, roving);
17211
+ function onFocusin(e) {
17212
+ const target = e.target;
17213
+ if (target.getAttribute("role") !== "treeitem") return;
17214
+ const match = nested.visibleItems().find((item) => toValue(item.el) === target);
17215
+ if (match && roving.focusedId.value !== match.id) roving.focusedId.value = match.id;
17216
+ }
17217
+ function expandable(ticket) {
17218
+ if (!ticket) return false;
17219
+ return (toValue(ticket.el)?.hasAttribute("aria-expanded") ?? false) || !toValue(ticket.isLeaf);
17220
+ }
17221
+ function isRtl(e) {
17222
+ if (!IN_BROWSER) return false;
17223
+ const el = e.currentTarget;
17224
+ return el ? getComputedStyle(el).direction === "rtl" : false;
17225
+ }
17226
+ function openOrChild(ticket) {
17227
+ if (expandable(ticket) && !toValue(ticket.isOpen)) nested.open(ticket.id);
17228
+ else if (toValue(ticket.isOpen)) {
17229
+ const childIds = nested.children.get(ticket.id);
17230
+ if (childIds?.length) roving.focus(childIds[0]);
17231
+ }
17232
+ }
17233
+ function closeOrParent(ticket) {
17234
+ if (toValue(ticket.isOpen) && expandable(ticket)) nested.close(ticket.id);
17235
+ else if (!/* @__PURE__ */ isNullOrUndefined(ticket.parentId)) roving.focus(ticket.parentId);
17236
+ }
17237
+ function onKeydown(e) {
17238
+ const id = roving.focusedId.value;
17239
+ const ticket = /* @__PURE__ */ isNullOrUndefined(id) ? void 0 : nested.get(id);
17240
+ const rtl = isRtl(e);
17241
+ switch (e.key) {
17242
+ case "ArrowUp":
17243
+ e.preventDefault();
17244
+ roving.prev();
17245
+ break;
17246
+ case "ArrowDown":
17247
+ e.preventDefault();
17248
+ roving.next();
17249
+ break;
17250
+ case "ArrowRight":
17251
+ e.preventDefault();
17252
+ if (!ticket) break;
17253
+ if (rtl) closeOrParent(ticket);
17254
+ else openOrChild(ticket);
17255
+ break;
17256
+ case "ArrowLeft":
17257
+ e.preventDefault();
17258
+ if (!ticket) break;
17259
+ if (rtl) openOrChild(ticket);
17260
+ else closeOrParent(ticket);
17261
+ break;
17262
+ case "Home":
17263
+ e.preventDefault();
17264
+ roving.first();
17265
+ break;
17266
+ case "End":
17267
+ e.preventDefault();
17268
+ roving.last();
17269
+ break;
17270
+ case "Enter":
17271
+ e.preventDefault();
17272
+ if (ticket) {
17273
+ if (expandable(ticket)) nested.flip(ticket.id);
17274
+ nested.activate(ticket.id);
17275
+ }
17276
+ break;
17277
+ case " ":
17278
+ e.preventDefault();
17279
+ if (ticket) nested.toggle(ticket.id);
17280
+ break;
17281
+ case "*":
17282
+ e.preventDefault();
17283
+ if (ticket) {
17284
+ const sibs = nested.siblings(ticket.id);
17285
+ for (const sibId of sibs) if (expandable(nested.get(sibId))) nested.open(sibId);
17286
+ }
17287
+ break;
17288
+ }
17289
+ }
17290
+ const slotProps = toRef(() => ({ attrs: {
17291
+ "role": "tree",
17292
+ "aria-multiselectable": __props.multiselectable ?? nested.multiple,
17293
+ "aria-label": __props.label || void 0,
17294
+ onKeydown,
17295
+ onFocusin
17296
+ } }));
17297
+ return (_ctx, _cache) => {
17298
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17299
+ as: __props.as,
17300
+ renderless: __props.renderless
17301
+ }), {
17302
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17303
+ _: 3
17304
+ }, 16, ["as", "renderless"]);
17305
+ };
17306
+ }
17307
+ });
17308
+ //#endregion
17309
+ //#region src/components/Treeview/TreeviewItem.vue
17310
+ const [useTreeviewItem, provideTreeviewItem] = createContext({ suffix: "item" });
17311
+ const _sfc_main$100 = /* @__PURE__ */ defineComponent({
17312
+ name: "TreeviewItem",
17313
+ __name: "TreeviewItem",
17314
+ props: {
17315
+ id: {},
17316
+ value: {},
17317
+ disabled: {},
17318
+ namespace: { default: "v0:treeview" },
17319
+ as: { default: "li" },
17320
+ renderless: { type: Boolean }
17321
+ },
17322
+ setup(__props) {
17323
+ const nested = useTreeviewRoot(__props.namespace);
17324
+ const rootRef = useTemplateRef("root");
17325
+ const el = toRef(() => rootRef.value?.element ?? void 0);
17326
+ const parentId = useTreeviewItem(__props.namespace, null)?.ticket.id;
17327
+ const ticket = nested.register({
17328
+ id: __props.id,
17329
+ value: __props.value,
17330
+ disabled: __props.disabled,
17331
+ parentId,
17332
+ el
17333
+ });
17334
+ const isDisabled = toRef(() => toValue(ticket.disabled) || toValue(nested.disabled));
17335
+ const hasContent = shallowRef(false);
17336
+ const roving = useTreeviewList(__props.namespace, null);
17337
+ onBeforeUnmount(() => nested.unregister(ticket.id));
17338
+ provideTreeviewItem(__props.namespace, {
17339
+ ticket,
17340
+ isDisabled,
17341
+ hasContent
17342
+ });
17343
+ const slotProps = toRef(() => ({
17344
+ id: ticket.id,
17345
+ value: __props.value,
17346
+ isSelected: toValue(ticket.isSelected),
17347
+ isMixed: toValue(ticket.isMixed),
17348
+ isDisabled: toValue(isDisabled),
17349
+ isOpen: toValue(ticket.isOpen),
17350
+ isActive: toValue(ticket.isActive),
17351
+ isLeaf: toValue(ticket.isLeaf),
17352
+ depth: toValue(ticket.depth),
17353
+ select: ticket.select,
17354
+ unselect: ticket.unselect,
17355
+ toggle: ticket.toggle,
17356
+ flip: ticket.flip,
17357
+ open: ticket.open,
17358
+ close: ticket.close,
17359
+ activate: ticket.activate,
17360
+ deactivate: ticket.deactivate
17361
+ }));
17362
+ return (_ctx, _cache) => {
17363
+ return openBlock(), createBlock(unref(_sfc_main), {
17364
+ ref: "root",
17365
+ "aria-disabled": slotProps.value.isDisabled || void 0,
17366
+ "aria-expanded": hasContent.value ? slotProps.value.isOpen : void 0,
17367
+ "aria-level": slotProps.value.depth + 1,
17368
+ "aria-posinset": unref(ticket).position(),
17369
+ "aria-selected": slotProps.value.isSelected,
17370
+ "aria-setsize": unref(ticket).siblings().length,
17371
+ as: __props.as,
17372
+ "data-active": slotProps.value.isActive || void 0,
17373
+ "data-disabled": slotProps.value.isDisabled || void 0,
17374
+ "data-open": slotProps.value.isOpen || void 0,
17375
+ "data-selected": slotProps.value.isSelected || void 0,
17376
+ renderless: __props.renderless,
17377
+ role: "treeitem",
17378
+ style: normalizeStyle({ "--v0-treeview-depth": slotProps.value.depth }),
17379
+ tabindex: unref(roving) ? unref(roving).isTabbable(unref(ticket).id) ? 0 : -1 : void 0
17380
+ }, {
17381
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17382
+ _: 3
17383
+ }, 8, [
17384
+ "aria-disabled",
17385
+ "aria-expanded",
17386
+ "aria-level",
17387
+ "aria-posinset",
17388
+ "aria-selected",
17389
+ "aria-setsize",
17390
+ "as",
17391
+ "data-active",
17392
+ "data-disabled",
17393
+ "data-open",
17394
+ "data-selected",
17395
+ "renderless",
17396
+ "style",
17397
+ "tabindex"
17398
+ ]);
17399
+ };
17400
+ }
17401
+ });
17402
+ //#endregion
17403
+ //#region src/components/Treeview/TreeviewActivator.vue
17404
+ const _sfc_main$94 = /* @__PURE__ */ defineComponent({
17405
+ name: "TreeviewActivator",
17406
+ __name: "TreeviewActivator",
17407
+ props: {
17408
+ namespace: { default: "v0:treeview" },
17409
+ as: { default: "button" },
17410
+ renderless: { type: Boolean }
17411
+ },
17412
+ setup(__props) {
17413
+ const item = useTreeviewItem(__props.namespace);
17414
+ const slotProps = toRef(() => ({
17415
+ isOpen: toValue(item.ticket.isOpen),
17416
+ isLeaf: toValue(item.ticket.isLeaf),
17417
+ isDisabled: item.isDisabled.value,
17418
+ flip: item.ticket.flip,
17419
+ attrs: {
17420
+ "role": __props.as === "button" ? void 0 : "button",
17421
+ "tabindex": -1,
17422
+ "aria-disabled": item.isDisabled.value || void 0,
17423
+ "data-disabled": item.isDisabled.value || void 0,
17424
+ "data-open": toValue(item.ticket.isOpen) || void 0,
17425
+ "disabled": __props.as === "button" ? item.isDisabled.value : void 0,
17426
+ "type": __props.as === "button" ? "button" : void 0,
17427
+ "onClick": item.ticket.flip
17428
+ }
17429
+ }));
17430
+ return (_ctx, _cache) => {
17431
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17432
+ as: __props.as,
17433
+ renderless: __props.renderless
17434
+ }), {
17435
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17436
+ _: 3
17437
+ }, 16, ["as", "renderless"]);
17438
+ };
17439
+ }
17440
+ });
17441
+ //#endregion
17442
+ //#region src/components/Treeview/TreeviewCheckbox.vue
17443
+ const _sfc_main$95 = /* @__PURE__ */ defineComponent({
17444
+ name: "TreeviewCheckbox",
17445
+ __name: "TreeviewCheckbox",
17446
+ props: {
17447
+ namespace: { default: "v0:treeview" },
17448
+ as: { default: "div" },
17449
+ renderless: { type: Boolean }
17450
+ },
17451
+ setup(__props) {
17452
+ const item = useTreeviewItem(__props.namespace);
17453
+ const slotProps = toRef(() => ({
17454
+ isSelected: toValue(item.ticket.isSelected),
17455
+ isMixed: toValue(item.ticket.isMixed),
17456
+ isDisabled: item.isDisabled.value,
17457
+ toggle: item.ticket.toggle,
17458
+ select: item.ticket.select,
17459
+ unselect: item.ticket.unselect,
17460
+ attrs: {
17461
+ "role": "checkbox",
17462
+ "aria-checked": toValue(item.ticket.isMixed) ? "mixed" : toValue(item.ticket.isSelected),
17463
+ "aria-disabled": item.isDisabled.value || void 0,
17464
+ "tabindex": -1,
17465
+ "data-selected": toValue(item.ticket.isSelected) || void 0,
17466
+ "data-disabled": item.isDisabled.value || void 0,
17467
+ "data-mixed": toValue(item.ticket.isMixed) || void 0,
17468
+ "onClick": item.ticket.toggle
17469
+ }
17470
+ }));
17471
+ return (_ctx, _cache) => {
17472
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17473
+ as: __props.as,
17474
+ renderless: __props.renderless
17475
+ }), {
17476
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17477
+ _: 3
17478
+ }, 16, ["as", "renderless"]);
17479
+ };
17480
+ }
17481
+ });
17482
+ //#endregion
17483
+ //#region src/components/Treeview/TreeviewContent.vue
17484
+ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
17485
+ name: "TreeviewContent",
17486
+ __name: "TreeviewContent",
17487
+ props: { namespace: { default: "v0:treeview" } },
17488
+ setup(__props) {
17489
+ const item = useTreeviewItem(__props.namespace);
17490
+ item.hasContent.value = true;
17491
+ onDeactivated(() => {
17492
+ item.hasContent.value = false;
17493
+ });
17494
+ onActivated(() => {
17495
+ item.hasContent.value = true;
17496
+ });
17497
+ onBeforeUnmount(() => {
17498
+ item.hasContent.value = false;
17499
+ });
17500
+ return (_ctx, _cache) => {
17501
+ return toValue(unref(item).ticket.isOpen) ? renderSlot(_ctx.$slots, "default", {
17502
+ key: 0,
17503
+ isOpen: toValue(unref(item).ticket.isOpen)
17504
+ }) : createCommentVNode("v-if", true);
17505
+ };
17506
+ }
17507
+ });
17508
+ //#endregion
17509
+ //#region src/components/Treeview/TreeviewCue.vue
17510
+ const _sfc_main$97 = /* @__PURE__ */ defineComponent({
17511
+ name: "TreeviewCue",
17512
+ __name: "TreeviewCue",
17513
+ props: {
17514
+ namespace: { default: "v0:treeview" },
17515
+ as: { default: "span" },
17516
+ renderless: { type: Boolean }
17517
+ },
17518
+ setup(__props) {
17519
+ const item = useTreeviewItem(__props.namespace);
17520
+ const isOpen = toRef(() => toValue(item.ticket.isOpen));
17521
+ const state = toRef(() => isOpen.value ? "open" : "closed");
17522
+ const slotProps = toRef(() => ({
17523
+ isOpen: isOpen.value,
17524
+ isLeaf: !item.hasContent.value,
17525
+ attrs: {
17526
+ "aria-hidden": true,
17527
+ "data-state": state.value,
17528
+ "style": { visibility: item.hasContent.value ? "visible" : "hidden" }
17529
+ }
17530
+ }));
17531
+ return (_ctx, _cache) => {
17532
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17533
+ as: __props.as,
17534
+ renderless: __props.renderless
17535
+ }), {
17536
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17537
+ _: 3
17538
+ }, 16, ["as", "renderless"]);
17539
+ };
17540
+ }
17541
+ });
17542
+ //#endregion
17543
+ //#region src/components/Treeview/TreeviewGroup.vue
17544
+ const _sfc_main$98 = /* @__PURE__ */ defineComponent({
17545
+ name: "TreeviewGroup",
17546
+ __name: "TreeviewGroup",
17547
+ props: {
17548
+ as: { default: "ul" },
17549
+ renderless: { type: Boolean }
17550
+ },
17551
+ setup(__props) {
17552
+ const slotProps = toRef(() => ({ attrs: { role: "group" } }));
17553
+ return (_ctx, _cache) => {
17554
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17555
+ as: __props.as,
17556
+ renderless: __props.renderless
17557
+ }), {
17558
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17559
+ _: 3
17560
+ }, 16, ["as", "renderless"]);
17561
+ };
17562
+ }
17563
+ });
17564
+ //#endregion
17565
+ //#region src/components/Treeview/TreeviewIndicator.vue
17566
+ const _sfc_main$99 = /* @__PURE__ */ defineComponent({
17567
+ name: "TreeviewIndicator",
17568
+ __name: "TreeviewIndicator",
17569
+ props: {
17570
+ namespace: { default: "v0:treeview" },
17571
+ as: { default: "span" },
17572
+ renderless: { type: Boolean }
17573
+ },
17574
+ setup(__props) {
17575
+ const item = useTreeviewItem(__props.namespace);
17576
+ const isSelected = toRef(() => toValue(item.ticket.isSelected));
17577
+ const isMixed = toRef(() => toValue(item.ticket.isMixed));
17578
+ const isVisible = toRef(() => isSelected.value || isMixed.value);
17579
+ const state = toRef(() => isMixed.value ? "indeterminate" : isSelected.value ? "checked" : "unchecked");
17580
+ const slotProps = toRef(() => ({
17581
+ isSelected: isSelected.value,
17582
+ isMixed: isMixed.value,
17583
+ attrs: {
17584
+ "aria-hidden": true,
17585
+ "data-state": state.value,
17586
+ "style": { visibility: isVisible.value ? "visible" : "hidden" }
17587
+ }
17588
+ }));
17589
+ return (_ctx, _cache) => {
17590
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17591
+ as: __props.as,
17592
+ renderless: __props.renderless
17593
+ }), {
17594
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17595
+ _: 3
17596
+ }, 16, ["as", "renderless"]);
17597
+ };
17598
+ }
17599
+ });
17600
+ //#endregion
17601
+ //#region src/components/Treeview/TreeviewSelectAll.vue
17602
+ const _sfc_main$103 = /* @__PURE__ */ defineComponent({
17603
+ name: "TreeviewSelectAll",
17604
+ __name: "TreeviewSelectAll",
17605
+ props: {
17606
+ label: {},
17607
+ disabled: {
17608
+ type: Boolean,
17609
+ default: false
17610
+ },
17611
+ namespace: { default: "v0:treeview" },
17612
+ as: { default: "div" },
17613
+ renderless: { type: Boolean }
17614
+ },
17615
+ setup(__props) {
17616
+ const nested = useTreeviewRoot(__props.namespace);
17617
+ const isAllSelected = toRef(() => nested.isAllSelected.value);
17618
+ const isMixed = toRef(() => nested.isMixed.value);
17619
+ const isDisabled = toRef(() => __props.disabled || toValue(nested.disabled));
17620
+ const state = toRef(() => isMixed.value ? "indeterminate" : isAllSelected.value ? "checked" : "unchecked");
17621
+ function onClick() {
17622
+ if (isDisabled.value) return;
17623
+ nested.toggleAll();
17624
+ }
17625
+ function onKeydown(e) {
17626
+ if (e.key !== "Enter" && e.key !== " ") return;
17627
+ e.preventDefault();
17628
+ if (isDisabled.value) return;
17629
+ nested.toggleAll();
17630
+ }
17631
+ function noop() {}
17632
+ const empty = [];
17633
+ provideTreeviewItem(__props.namespace, {
17634
+ ticket: {
17635
+ id: "__select-all__",
17636
+ index: -1,
17637
+ value: void 0,
17638
+ valueIsIndex: false,
17639
+ unregister: noop,
17640
+ disabled: isDisabled,
17641
+ isSelected: isAllSelected,
17642
+ select: nested.selectAll,
17643
+ unselect: nested.unselectAll,
17644
+ toggle: nested.toggleAll,
17645
+ isMixed,
17646
+ mix: noop,
17647
+ unmix: noop,
17648
+ el: void 0,
17649
+ parentId: void 0,
17650
+ isOpen: shallowRef(false),
17651
+ isActive: shallowRef(false),
17652
+ isLeaf: shallowRef(true),
17653
+ depth: shallowRef(0),
17654
+ open: noop,
17655
+ close: noop,
17656
+ flip: noop,
17657
+ reveal: noop,
17658
+ activate: noop,
17659
+ deactivate: noop,
17660
+ getPath: () => [],
17661
+ getAncestors: () => [],
17662
+ getDescendants: () => [],
17663
+ isAncestorOf: () => false,
17664
+ hasAncestor: () => false,
17665
+ siblings: () => empty,
17666
+ position: () => 0
17667
+ },
17668
+ isDisabled,
17669
+ hasContent: shallowRef(false)
17670
+ });
17671
+ const slotProps = toRef(() => ({
17672
+ label: __props.label,
17673
+ isAllSelected: isAllSelected.value,
17674
+ isMixed: isMixed.value,
17675
+ isDisabled: isDisabled.value,
17676
+ selectAll: nested.selectAll,
17677
+ unselectAll: nested.unselectAll,
17678
+ toggleAll: nested.toggleAll,
17679
+ attrs: {
17680
+ "role": "checkbox",
17681
+ "aria-checked": isMixed.value ? "mixed" : isAllSelected.value,
17682
+ "aria-disabled": isDisabled.value || void 0,
17683
+ "aria-label": __props.label || void 0,
17684
+ "tabindex": isDisabled.value ? void 0 : 0,
17685
+ "data-state": state.value,
17686
+ "data-disabled": isDisabled.value ? true : void 0,
17687
+ "onClick": onClick,
17688
+ "onKeydown": onKeydown
17689
+ }
17690
+ }));
17691
+ return (_ctx, _cache) => {
17692
+ return openBlock(), createBlock(unref(_sfc_main), mergeProps(slotProps.value.attrs, {
17693
+ as: __props.as,
17694
+ renderless: __props.renderless
17695
+ }), {
17696
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17697
+ _: 3
17698
+ }, 16, ["as", "renderless"]);
17699
+ };
17700
+ }
17701
+ });
17702
+ //#endregion
17703
+ //#region src/components/Treeview/index.ts
17704
+ /**
17705
+ * Treeview component with sub-components for hierarchical data.
17706
+ *
17707
+ * @see https://0.vuetifyjs.com/components/treeview
17708
+ *
17709
+ * @example
17710
+ * ```vue
17711
+ * <script setup lang="ts">
17712
+ * import { Treeview } from '@vuetify/v0'
17713
+ * <\/script>
17714
+ *
17715
+ * <template>
17716
+ * <Treeview.Root>
17717
+ * <Treeview.List>
17718
+ * <Treeview.Item>
17719
+ * <Treeview.Activator>Documents</Treeview.Activator>
17720
+ * <Treeview.Content>
17721
+ * <Treeview.Group>
17722
+ * <Treeview.Item>
17723
+ * <Treeview.Activator>Resume.pdf</Treeview.Activator>
17724
+ * </Treeview.Item>
17725
+ * </Treeview.Group>
17726
+ * </Treeview.Content>
17727
+ * </Treeview.Item>
17728
+ * </Treeview.List>
17729
+ * </Treeview.Root>
17730
+ * </template>
17731
+ * ```
17732
+ */
17733
+ const Treeview = {
17734
+ Root: _sfc_main$102,
17735
+ List: _sfc_main$101,
17736
+ Item: _sfc_main$100,
17737
+ Activator: _sfc_main$94,
17738
+ Content: _sfc_main$96,
17739
+ Cue: _sfc_main$97,
17740
+ Group: _sfc_main$98,
17741
+ Checkbox: _sfc_main$95,
17742
+ Indicator: _sfc_main$99,
17743
+ SelectAll: _sfc_main$103
16699
17744
  };
16700
17745
  //#endregion
16701
- export { _sfc_main as Atom, Avatar, _sfc_main$1 as AvatarFallback, _sfc_main$2 as AvatarImage, _sfc_main$3 as AvatarRoot, Breadcrumbs, _sfc_main$4 as BreadcrumbsDivider, _sfc_main$5 as BreadcrumbsEllipsis, _sfc_main$6 as BreadcrumbsItem, _sfc_main$7 as BreadcrumbsLink, _sfc_main$8 as BreadcrumbsList, _sfc_main$9 as BreadcrumbsPage, _sfc_main$10 as BreadcrumbsRoot, Button, _sfc_main$11 as ButtonContent, _sfc_main$12 as ButtonGroup, _sfc_main$13 as ButtonHiddenInput, _sfc_main$14 as ButtonIcon, _sfc_main$15 as ButtonLoading, _sfc_main$16 as ButtonRoot, COMMON_ELEMENTS, Checkbox, _sfc_main$17 as CheckboxGroup, _sfc_main$18 as CheckboxHiddenInput, _sfc_main$19 as CheckboxIndicator, _sfc_main$20 as CheckboxRoot, _sfc_main$21 as CheckboxSelectAll, ClientAdapter, ConsolaLoggerAdapter, DataTableAdapter, Dialog, _sfc_main$22 as DialogActivator, _sfc_main$23 as DialogClose, _sfc_main$24 as DialogContent, _sfc_main$25 as DialogDescription, _sfc_main$26 as DialogRoot, _sfc_main$27 as DialogTitle, ExpansionPanel, _sfc_main$28 as ExpansionPanelActivator, _sfc_main$29 as ExpansionPanelContent, _sfc_main$30 as ExpansionPanelHeader, _sfc_main$31 as ExpansionPanelItem, _sfc_main$32 as ExpansionPanelRoot, FeaturesAdapter, _sfc_main$33 as Form, Group, _sfc_main$34 as GroupItem, _sfc_main$35 as GroupRoot, IN_BROWSER, Input, _sfc_main$36 as InputControl, _sfc_main$37 as InputDescription, _sfc_main$38 as InputError, _sfc_main$39 as InputRoot, MemoryAdapter, Pagination, _sfc_main$40 as PaginationEllipsis, _sfc_main$41 as PaginationFirst, _sfc_main$42 as PaginationItem, _sfc_main$43 as PaginationLast, _sfc_main$44 as PaginationNext, _sfc_main$45 as PaginationPrev, _sfc_main$46 as PaginationRoot, _sfc_main$47 as PaginationStatus, PermissionAdapter, PinoLoggerAdapter, Popover, _sfc_main$48 as PopoverActivator, _sfc_main$49 as PopoverContent, _sfc_main$50 as PopoverRoot, Radio, _sfc_main$51 as RadioGroup, _sfc_main$52 as RadioHiddenInput, _sfc_main$53 as RadioIndicator, _sfc_main$54 as RadioRoot, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, _sfc_main$55 as Scrim, Select, _sfc_main$56 as SelectActivator, _sfc_main$57 as SelectContent, _sfc_main$58 as SelectCue, _sfc_main$59 as SelectItem, _sfc_main$60 as SelectPlaceholder, _sfc_main$61 as SelectRoot, _sfc_main$62 as SelectValue, Selection, _sfc_main$63 as SelectionItem, _sfc_main$64 as SelectionRoot, ServerAdapter, Single, _sfc_main$65 as SingleItem, _sfc_main$66 as SingleRoot, Slider, _sfc_main$67 as SliderHiddenInput, _sfc_main$68 as SliderRange, _sfc_main$69 as SliderRoot, _sfc_main$70 as SliderThumb, _sfc_main$71 as SliderTrack, Snackbar, _sfc_main$72 as SnackbarClose, _sfc_main$73 as SnackbarContent, _sfc_main$74 as SnackbarPortal, _sfc_main$75 as SnackbarQueue, _sfc_main$76 as SnackbarRoot, Splitter, _sfc_main$77 as SplitterHandle, _sfc_main$78 as SplitterPanel, _sfc_main$79 as SplitterRoot, Step, _sfc_main$80 as StepItem, _sfc_main$81 as StepRoot, Switch, _sfc_main$82 as SwitchGroup, _sfc_main$83 as SwitchHiddenInput, _sfc_main$84 as SwitchRoot, _sfc_main$85 as SwitchSelectAll, _sfc_main$86 as SwitchThumb, _sfc_main$87 as SwitchTrack, Tabs, _sfc_main$88 as TabsItem, _sfc_main$89 as TabsList, _sfc_main$90 as TabsPanel, _sfc_main$91 as TabsRoot, VirtualAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0RtlAdapter, Vuetify0ThemeAdapter, __LOGGER_ENABLED__, clamp, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createNotifications, createNotificationsContext, createNotificationsPlugin, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createQueue, createQueueContext, createRegistry, createRegistryContext, createRtl, createRtlContext, createRtlFallback, createRtlPlugin, createRules, createRulesContext, createRulesFallback, createRulesPlugin, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, createValidation, createVirtual, createVirtualContext, flatten, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isStandardSchema, isString, isSymbol, isUndefined, mergeDeep, multipleOpenStrategy, provideAvatarRoot, provideBreadcrumbsRoot, provideButtonGroup, provideButtonRoot, provideCheckboxGroup, provideCheckboxRoot, provideContext, provideDialogContext, provideExpansionPanelItem, provideExpansionPanelRoot, provideGroupRoot, provideInputRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideRadioGroup, provideRadioRoot, provideSelectContext, provideSelectionRoot, provideSingleRoot, provideSliderRoot, provideSnackbarQueueContext, provideSnackbarRootContext, provideSplitterRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, range, singleOpenStrategy, toArray, toElement, toReactive, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useButtonGroup, useButtonRoot, useCheckboxGroup, useCheckboxRoot, useClickOutside, useContext, useDataTable, useDate, useDialogContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useExpansionPanelItem, useExpansionPanelRoot, useFeatures, useFilter, useForm, useGroup, useGroupRoot, useHotkey, useHydration, useId, useInputRoot, useIntersectionObserver, useLazy, useLocale, useLogger, useMediaQuery, useMutationObserver, useNested, useNotifications, useOverflow, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopover, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRaf, useRegistry, useResizeObserver, useRovingFocus, useRtl, useRules, useSelectContext, useSelection, useSelectionRoot, useSingle, useSingleRoot, useSliderRoot, useSnackbarQueueContext, useSnackbarRootContext, useSplitterRoot, useStack, useStep, useStepRoot, useStorage, useSwitchGroup, useSwitchRoot, useTabsRoot, useTheme, useTimeline, useTimer, useToggleScope, useTokens, useVirtual, useVirtualFocus, useWindowEventListener, version };
17746
+ export { _sfc_main as Atom, Avatar, _sfc_main$1 as AvatarFallback, _sfc_main$2 as AvatarImage, _sfc_main$3 as AvatarRoot, Breadcrumbs, _sfc_main$4 as BreadcrumbsDivider, _sfc_main$5 as BreadcrumbsEllipsis, _sfc_main$6 as BreadcrumbsItem, _sfc_main$7 as BreadcrumbsLink, _sfc_main$8 as BreadcrumbsList, _sfc_main$9 as BreadcrumbsPage, _sfc_main$10 as BreadcrumbsRoot, Button, _sfc_main$11 as ButtonContent, _sfc_main$12 as ButtonGroup, _sfc_main$13 as ButtonHiddenInput, _sfc_main$14 as ButtonIcon, _sfc_main$15 as ButtonLoading, _sfc_main$16 as ButtonRoot, COMMON_ELEMENTS, Checkbox, _sfc_main$17 as CheckboxGroup, _sfc_main$18 as CheckboxHiddenInput, _sfc_main$19 as CheckboxIndicator, _sfc_main$20 as CheckboxRoot, _sfc_main$21 as CheckboxSelectAll, ClientAdapter, ConsolaLoggerAdapter, DataTableAdapter, Dialog, _sfc_main$22 as DialogActivator, _sfc_main$23 as DialogClose, _sfc_main$24 as DialogContent, _sfc_main$25 as DialogDescription, _sfc_main$26 as DialogRoot, _sfc_main$27 as DialogTitle, ExpansionPanel, _sfc_main$28 as ExpansionPanelActivator, _sfc_main$29 as ExpansionPanelContent, _sfc_main$30 as ExpansionPanelHeader, _sfc_main$31 as ExpansionPanelItem, _sfc_main$32 as ExpansionPanelRoot, FeaturesAdapter, _sfc_main$33 as Form, Group, _sfc_main$34 as GroupItem, _sfc_main$35 as GroupRoot, IN_BROWSER, Input, _sfc_main$36 as InputControl, _sfc_main$37 as InputDescription, _sfc_main$38 as InputError, _sfc_main$39 as InputRoot, _sfc_main$40 as Locale, MemoryAdapter, Pagination, _sfc_main$41 as PaginationEllipsis, _sfc_main$42 as PaginationFirst, _sfc_main$43 as PaginationItem, _sfc_main$44 as PaginationLast, _sfc_main$45 as PaginationNext, _sfc_main$46 as PaginationPrev, _sfc_main$47 as PaginationRoot, _sfc_main$48 as PaginationStatus, PermissionAdapter, PinoLoggerAdapter, Popover, _sfc_main$49 as PopoverActivator, _sfc_main$50 as PopoverContent, _sfc_main$51 as PopoverRoot, Radio, _sfc_main$52 as RadioGroup, _sfc_main$53 as RadioHiddenInput, _sfc_main$54 as RadioIndicator, _sfc_main$55 as RadioRoot, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, _sfc_main$56 as Scrim, Select, _sfc_main$57 as SelectActivator, _sfc_main$58 as SelectContent, _sfc_main$59 as SelectCue, _sfc_main$60 as SelectItem, _sfc_main$61 as SelectPlaceholder, _sfc_main$62 as SelectRoot, _sfc_main$63 as SelectValue, Selection, _sfc_main$64 as SelectionItem, _sfc_main$65 as SelectionRoot, ServerAdapter, Single, _sfc_main$66 as SingleItem, _sfc_main$67 as SingleRoot, Slider, _sfc_main$68 as SliderHiddenInput, _sfc_main$69 as SliderRange, _sfc_main$70 as SliderRoot, _sfc_main$71 as SliderThumb, _sfc_main$72 as SliderTrack, Snackbar, _sfc_main$73 as SnackbarClose, _sfc_main$74 as SnackbarContent, _sfc_main$75 as SnackbarPortal, _sfc_main$76 as SnackbarQueue, _sfc_main$77 as SnackbarRoot, Splitter, _sfc_main$78 as SplitterHandle, _sfc_main$79 as SplitterPanel, _sfc_main$80 as SplitterRoot, Step, _sfc_main$81 as StepItem, _sfc_main$82 as StepRoot, Switch, _sfc_main$83 as SwitchGroup, _sfc_main$84 as SwitchHiddenInput, _sfc_main$85 as SwitchRoot, _sfc_main$86 as SwitchSelectAll, _sfc_main$87 as SwitchThumb, _sfc_main$88 as SwitchTrack, Tabs, _sfc_main$89 as TabsItem, _sfc_main$90 as TabsList, _sfc_main$91 as TabsPanel, _sfc_main$92 as TabsRoot, _sfc_main$93 as Theme, Treeview, _sfc_main$94 as TreeviewActivator, _sfc_main$95 as TreeviewCheckbox, _sfc_main$96 as TreeviewContent, _sfc_main$97 as TreeviewCue, _sfc_main$98 as TreeviewGroup, _sfc_main$99 as TreeviewIndicator, _sfc_main$100 as TreeviewItem, _sfc_main$101 as TreeviewList, _sfc_main$102 as TreeviewRoot, _sfc_main$103 as TreeviewSelectAll, VirtualAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0RtlAdapter, Vuetify0ThemeAdapter, __LOGGER_ENABLED__, apca, clamp, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createNotifications, createNotificationsContext, createNotificationsPlugin, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createQueue, createQueueContext, createRegistry, createRegistryContext, createRtl, createRtlContext, createRtlFallback, createRtlPlugin, createRules, createRulesContext, createRulesFallback, createRulesPlugin, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, createValidation, createVirtual, createVirtualContext, flatten, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isStandardSchema, isString, isSymbol, isUndefined, mergeDeep, multipleOpenStrategy, provideAvatarRoot, provideBreadcrumbsRoot, provideButtonGroup, provideButtonRoot, provideCheckboxGroup, provideCheckboxRoot, provideContext, provideDialogContext, provideExpansionPanelItem, provideExpansionPanelRoot, provideGroupRoot, provideInputRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideRadioGroup, provideRadioRoot, provideSelectContext, provideSelectionRoot, provideSingleRoot, provideSliderRoot, provideSnackbarQueueContext, provideSnackbarRootContext, provideSplitterRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, provideTreeviewItem, provideTreeviewList, provideTreeviewRoot, range, rgbToHex, singleOpenStrategy, toArray, toElement, toReactive, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useButtonGroup, useButtonRoot, useCheckboxGroup, useCheckboxRoot, useClickOutside, useContext, useDataTable, useDate, useDialogContext, useDocumentEventListener, useElementIntersection, useElementSize, useEventListener, useExpansionPanelItem, useExpansionPanelRoot, useFeatures, useFilter, useForm, useGroup, useGroupRoot, useHotkey, useHydration, useId, useInputRoot, useIntersectionObserver, useLazy, useLocale, useLogger, useMediaQuery, useMutationObserver, useNested, useNotifications, useOverflow, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopover, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRaf, useRegistry, useResizeObserver, useRovingFocus, useRtl, useRules, useSelectContext, useSelection, useSelectionRoot, useSingle, useSingleRoot, useSliderRoot, useSnackbarQueueContext, useSnackbarRootContext, useSplitterRoot, useStack, useStep, useStepRoot, useStorage, useSwitchGroup, useSwitchRoot, useTabsRoot, useTheme, useTimeline, useTimer, useToggleScope, useTokens, useTreeviewItem, useTreeviewList, useTreeviewRoot, useVirtual, useVirtualFocus, useWindowEventListener, version };