@vuetify/v0 1.0.1 → 1.0.3

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 (76) hide show
  1. package/dist/browser/index.d.ts +633 -374
  2. package/dist/browser/index.js +960 -449
  3. package/dist/components/index.d.mts +2 -2
  4. package/dist/components/index.mjs +2 -2
  5. package/dist/{components-BGEPbuSG.mjs → components-CeyYdes9.mjs} +926 -516
  6. package/dist/composables/index.d.mts +1 -1
  7. package/dist/composables/index.mjs +21 -21
  8. package/dist/{composables-CfcQp7UD.mjs → composables-Br-ApSWN.mjs} +45 -38
  9. package/dist/constants/index.mjs +1 -1
  10. package/dist/{createDataTable-BQKvmkfj.mjs → createDataTable-B1uf_rZu.mjs} +3 -3
  11. package/dist/{createGroup-63cIJS__.mjs → createGroup-Czt0x8tf.mjs} +1 -1
  12. package/dist/{createRegistry-DMIsLVfQ.mjs → createRegistry-Cu1WQTyV.mjs} +1 -1
  13. package/dist/{createSelection-BHnOqlJY.mjs → createSelection-kydb14hZ.mjs} +1 -1
  14. package/dist/{createSingle-Rh6cR-G_.mjs → createSingle-JWAjGQLk.mjs} +1 -1
  15. package/dist/{createTokens-BD-AGGzk.mjs → createTokens-BD7p5_XB.mjs} +2 -2
  16. package/dist/data-table/index.mjs +1 -1
  17. package/dist/date/index.mjs +1 -1
  18. package/dist/features/adapters/posthog/index.mjs +1 -1
  19. package/dist/features/index.d.mts +1 -1
  20. package/dist/features/index.mjs +1 -1
  21. package/dist/{globals-CM2GpI-A.mjs → globals-XB8xcQFv.mjs} +1 -1
  22. package/dist/{index-Bhzo6qwv.d.mts → index-0Wnlny_C.d.mts} +44 -0
  23. package/dist/{index-C0GDmRHJ.d.mts → index-BS_OGRsE.d.mts} +619 -424
  24. package/dist/{index-u0Sy6Dif.d.mts → index-DF0tMI2_.d.mts} +22 -2
  25. package/dist/index.d.mts +4 -4
  26. package/dist/index.mjs +24 -24
  27. package/dist/json/attributes.json +41 -1
  28. package/dist/json/importMap.json +8 -0
  29. package/dist/json/tags.json +156 -47
  30. package/dist/json/web-types.json +316 -2
  31. package/dist/locale/adapters/index.mjs +1 -1
  32. package/dist/locale/adapters/v0/index.mjs +1 -1
  33. package/dist/locale/index.d.mts +1 -1
  34. package/dist/locale/index.mjs +2 -2
  35. package/dist/locale/messages/en/index.d.mts +6 -0
  36. package/dist/locale/messages/en/index.mjs +11 -3
  37. package/dist/logger/adapters/index.mjs +1 -1
  38. package/dist/logger/adapters/v0/index.mjs +1 -1
  39. package/dist/logger/index.d.mts +1 -1
  40. package/dist/logger/index.mjs +2 -2
  41. package/dist/notifications/index.d.mts +1 -1
  42. package/dist/notifications/index.mjs +2 -2
  43. package/dist/palettes/index.d.mts +1 -1
  44. package/dist/permissions/adapters/index.d.mts +1 -1
  45. package/dist/permissions/adapters/v0/index.d.mts +1 -1
  46. package/dist/permissions/index.d.mts +1 -1
  47. package/dist/permissions/index.mjs +1 -1
  48. package/dist/rules/index.d.mts +1 -1
  49. package/dist/rules/index.mjs +1 -1
  50. package/dist/storage/index.d.mts +1 -1
  51. package/dist/storage/index.mjs +1 -1
  52. package/dist/theme/adapters/index.d.mts +1 -1
  53. package/dist/theme/adapters/index.mjs +2 -2
  54. package/dist/theme/adapters/unhead/index.d.mts +1 -1
  55. package/dist/theme/adapters/unhead/index.mjs +1 -1
  56. package/dist/theme/adapters/v0/index.d.mts +1 -1
  57. package/dist/theme/adapters/v0/index.mjs +1 -1
  58. package/dist/theme/index.d.mts +1 -1
  59. package/dist/theme/index.mjs +3 -3
  60. package/dist/{unhead-DVB3cg3m.mjs → unhead-VVWCVv5Z.mjs} +1 -1
  61. package/dist/{useEventListener-DO9cWwJS.mjs → useEventListener-DasgNSNh.mjs} +1 -1
  62. package/dist/{useFeatures-DYsDqjFv.mjs → useFeatures-SX-DoCwv.mjs} +3 -3
  63. package/dist/{useLocale-CIMTKTN0.mjs → useLocale-C8E7B4Il.mjs} +4 -4
  64. package/dist/{useLogger-eTRi_LkE.mjs → useLogger-pEmKLFsd.mjs} +2 -2
  65. package/dist/{useNotifications-BWSWV7A6.mjs → useNotifications-C6xFiQsD.mjs} +3 -3
  66. package/dist/{usePermissions-QP0GIGdO.mjs → usePermissions-CCA_18Be.mjs} +2 -2
  67. package/dist/{useRovingFocus-CK50J09j.mjs → useRovingFocus-D2_aApXC.mjs} +99 -25
  68. package/dist/{useRules-DhQuZ66P.mjs → useRules-CWWsE2Xt.mjs} +2 -2
  69. package/dist/{useStorage-Cs-eTm7F.mjs → useStorage-Dd_snxwm.mjs} +3 -3
  70. package/dist/{useTheme-oWWN_lkE.mjs → useTheme-8qFLgTvi.mjs} +4 -4
  71. package/dist/utilities/index.d.mts +1 -1
  72. package/dist/utilities/index.mjs +21 -1
  73. package/dist/{v0-SlPjHjDu.mjs → v0-BLhsLm61.mjs} +1 -1
  74. package/dist/{v0-BQDezfA9.mjs → v0-Bdm1oHXK.mjs} +1 -1
  75. package/dist/{v0-DfAHWKPZ.mjs → v0-DYG-2UmI.mjs} +1 -1
  76. package/package.json +25 -3
@@ -1,5 +1,5 @@
1
1
  import * as Vue from "vue";
2
- import { Fragment, Teleport, TransitionGroup, computed, createBlock, createCommentVNode, createElementBlock, createTextVNode, createVNode, defineComponent, effectScope, guardReactiveProps, hasInjectionContext, inject, isReadonly, isRef, mergeModels, mergeProps, nextTick, normalizeProps, normalizeStyle, onActivated, onBeforeUnmount, onDeactivated, onMounted, onScopeDispose, onWatcherCleanup, 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, createElementVNode, createTextVNode, createVNode, defineComponent, effectScope, guardReactiveProps, hasInjectionContext, inject, isReadonly, isRef, mergeModels, mergeProps, nextTick, normalizeProps, normalizeStyle, onActivated, onBeforeUnmount, onDeactivated, onMounted, onScopeDispose, onUnmounted, onWatcherCleanup, 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
@@ -135,7 +135,7 @@ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof wind
135
135
  const SUPPORTS_OBSERVER = IN_BROWSER && "ResizeObserver" in window;
136
136
  const SUPPORTS_INTERSECTION_OBSERVER = IN_BROWSER && "IntersectionObserver" in window;
137
137
  const SUPPORTS_MUTATION_OBSERVER = IN_BROWSER && "MutationObserver" in window;
138
- const version = "1.0.1";
138
+ const version = "1.0.3";
139
139
  /* v8 ignore next -- build-time constant, __DEV__ short-circuits in tests */
140
140
  const __LOGGER_ENABLED__ = false;
141
141
  //#endregion
@@ -244,6 +244,11 @@ function isBoolean(item) {
244
244
  * Returns false for null and arrays, even though `typeof null === 'object'`
245
245
  * and `typeof [] === 'object'` in JavaScript.
246
246
  *
247
+ * `Record<string, any>` is load-bearing: TypeScript does not grant interfaces
248
+ * an implicit index signature, so `Record<string, unknown>` destroys known
249
+ * property types on interface-typed values and fails to subtract
250
+ * `Record<string, any>` members in the negative branch.
251
+ *
247
252
  * @example
248
253
  * ```ts
249
254
  * isObject({}) // true
@@ -295,6 +300,21 @@ function isThenable(item) {
295
300
  * isArray([1, 2, 3]) // true
296
301
  * isArray('string') // false
297
302
  * ```
303
+ *
304
+ * @remarks The guard keeps whichever array constituents the input already had —
305
+ * element types, tuple arity and `readonly` all survive, and the `else` branch
306
+ * drops exactly those constituents. Three branches, in order:
307
+ *
308
+ * 1. `0 extends (1 & T)` detects an `any` input and yields `T[]` (`any[]`),
309
+ * matching `Array.isArray` so callback parameters stay contextually typed.
310
+ * 2. Nothing array-shaped to extract (an `unknown` value, say) falls back to
311
+ * `unknown[]`, reproducing the previous narrowing so mutation and assignment
312
+ * to `unknown[]` keep compiling.
313
+ * 3. Otherwise the array constituents of `T` pass through untouched.
314
+ *
315
+ * `NoInfer<T[]>` widens the parameter just enough for TypeScript to accept the
316
+ * first branch (a predicate must be assignable to its parameter's type) without
317
+ * letting an array argument capture the inference site.
298
318
  */
299
319
  /* @__NO_SIDE_EFFECTS__ */
300
320
  function isArray(item) {
@@ -892,6 +912,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
892
912
  const id = __props.id ?? /* @__PURE__ */ useId();
893
913
  const isOpen = useModel(__props, "modelValue");
894
914
  const isPending = shallowRef(false);
915
+ const cancelEl = shallowRef(null);
895
916
  const titleId = `${id}-title`;
896
917
  const descriptionId = `${id}-description`;
897
918
  function open() {
@@ -907,6 +928,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
907
928
  titleId,
908
929
  descriptionId,
909
930
  isPending,
931
+ cancelEl,
910
932
  open,
911
933
  close
912
934
  });
@@ -961,14 +983,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
961
983
  });
962
984
  if (!waited) context.close();
963
985
  }
986
+ function onKeydown(e) {
987
+ if (e.key === "Enter" || e.key === " ") {
988
+ e.preventDefault();
989
+ onClick();
990
+ }
991
+ }
964
992
  const slotProps = toRef(() => ({
965
993
  isPending: context.isPending.value,
966
994
  attrs: {
967
995
  "type": __props.as === "button" ? "button" : void 0,
968
- "disabled": __props.disabled || void 0,
996
+ "role": __props.as === "button" ? void 0 : "button",
997
+ "tabindex": __props.disabled ? -1 : 0,
998
+ "disabled": __props.as === "button" ? __props.disabled || void 0 : void 0,
969
999
  "data-disabled": __props.disabled ? "" : void 0,
970
1000
  "data-pending": context.isPending.value ? "" : void 0,
971
- "onClick": onClick
1001
+ "onClick": onClick,
1002
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
972
1003
  }
973
1004
  }));
974
1005
  return (_ctx, _cache) => {
@@ -997,14 +1028,23 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
997
1028
  function onClick() {
998
1029
  context.open();
999
1030
  }
1031
+ function onKeydown(e) {
1032
+ if (e.key === "Enter" || e.key === " ") {
1033
+ e.preventDefault();
1034
+ onClick();
1035
+ }
1036
+ }
1000
1037
  const slotProps = toRef(() => ({
1001
1038
  isOpen: context.isOpen.value,
1002
1039
  attrs: {
1003
1040
  "type": __props.as === "button" ? "button" : void 0,
1041
+ "role": __props.as === "button" ? void 0 : "button",
1042
+ "tabindex": 0,
1004
1043
  "aria-haspopup": "dialog",
1005
1044
  "aria-expanded": context.isOpen.value,
1006
1045
  "data-open": context.isOpen.value || void 0,
1007
- "onClick": onClick
1046
+ "onClick": onClick,
1047
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
1008
1048
  }
1009
1049
  }));
1010
1050
  return (_ctx, _cache) => {
@@ -1034,21 +1074,38 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1034
1074
  },
1035
1075
  setup(__props) {
1036
1076
  const context = useAlertDialogContext(__props.namespace);
1077
+ const cancelRef = useTemplateRef("cancel");
1078
+ onMounted(() => {
1079
+ context.cancelEl.value = cancelRef.value?.element ?? null;
1080
+ });
1081
+ onUnmounted(() => {
1082
+ context.cancelEl.value = null;
1083
+ });
1037
1084
  function onClick() {
1038
1085
  if (__props.disabled) return;
1039
1086
  context.close();
1040
1087
  }
1088
+ function onKeydown(e) {
1089
+ if (e.key === "Enter" || e.key === " ") {
1090
+ e.preventDefault();
1091
+ onClick();
1092
+ }
1093
+ }
1041
1094
  const slotProps = toRef(() => ({
1042
1095
  isOpen: context.isOpen.value,
1043
1096
  attrs: {
1044
1097
  "type": __props.as === "button" ? "button" : void 0,
1045
- "disabled": __props.disabled || void 0,
1098
+ "role": __props.as === "button" ? void 0 : "button",
1099
+ "tabindex": __props.disabled ? -1 : 0,
1100
+ "disabled": __props.as === "button" ? __props.disabled || void 0 : void 0,
1046
1101
  "data-disabled": __props.disabled ? "" : void 0,
1047
- "onClick": onClick
1102
+ "onClick": onClick,
1103
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
1048
1104
  }
1049
1105
  }));
1050
1106
  return (_ctx, _cache) => {
1051
1107
  return openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
1108
+ ref: "cancel",
1052
1109
  as: __props.as,
1053
1110
  renderless: __props.renderless
1054
1111
  }, slotProps.value.attrs), {
@@ -3167,12 +3224,21 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3167
3224
  function onClick() {
3168
3225
  context.close();
3169
3226
  }
3227
+ function onKeydown(e) {
3228
+ if (e.key === "Enter" || e.key === " ") {
3229
+ e.preventDefault();
3230
+ onClick();
3231
+ }
3232
+ }
3170
3233
  const slotProps = toRef(() => ({
3171
3234
  isOpen: context.isOpen.value,
3172
3235
  attrs: {
3173
3236
  "type": __props.as === "button" ? "button" : void 0,
3237
+ "role": __props.as === "button" ? void 0 : "button",
3238
+ "tabindex": 0,
3174
3239
  "aria-label": locale.ti("AlertDialog.close") ?? "Close",
3175
- "onClick": onClick
3240
+ "onClick": onClick,
3241
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
3176
3242
  }
3177
3243
  }));
3178
3244
  return (_ctx, _cache) => {
@@ -4063,15 +4129,23 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
4063
4129
  if (isOpen) ticket.select();
4064
4130
  else ticket.unselect();
4065
4131
  }, { immediate: true });
4132
+ function focusCancel() {
4133
+ context.cancelEl.value?.focus();
4134
+ }
4066
4135
  watch(context.isOpen, (isOpen) => {
4067
4136
  const element = contentRef.value?.element;
4068
4137
  /* v8 ignore next -- defensive guard, element is always present after mount */
4069
4138
  if (!element) return;
4070
- if (isOpen) element.showModal?.();
4071
- else element.close?.();
4139
+ if (isOpen) {
4140
+ element.showModal?.();
4141
+ focusCancel();
4142
+ } else element.close?.();
4072
4143
  });
4073
4144
  onMounted(() => {
4074
- if (context.isOpen.value) (contentRef.value?.element)?.showModal();
4145
+ if (context.isOpen.value) {
4146
+ (contentRef.value?.element)?.showModal();
4147
+ focusCancel();
4148
+ }
4075
4149
  });
4076
4150
  useToggleScope(
4077
4151
  () => __props.closeOnClickOutside && context.isOpen.value,
@@ -4599,6 +4673,7 @@ function createObserver(target, userCallback, config) {
4599
4673
  * - SSR-safe (checks SUPPORTS_OBSERVER)
4600
4674
  * - Hydration-aware
4601
4675
  * - Box model options (content-box/border-box)
4676
+ * - Reports `borderBoxSize` and `contentBoxSize` alongside `contentRect`
4602
4677
  *
4603
4678
  * Perfect for responsive components and size-based rendering.
4604
4679
  *
@@ -4613,6 +4688,74 @@ function createObserver(target, userCallback, config) {
4613
4688
  * })
4614
4689
  * ```
4615
4690
  */
4691
+ /* @__NO_SIDE_EFFECTS__ */
4692
+ function pxToNumber(value, fallback = 0) {
4693
+ if (!/* @__PURE__ */ isString(value)) return fallback;
4694
+ const parsed = Number.parseFloat(value);
4695
+ return /* @__PURE__ */ isNaN(parsed) ? fallback : parsed;
4696
+ }
4697
+ /**
4698
+ * Synthesize the entry the observer would report for `el`, for the `immediate`
4699
+ * callback that fires before the observer's own first delivery.
4700
+ *
4701
+ * Every measurement comes from `getComputedStyle` rather than
4702
+ * `getBoundingClientRect` because resolved lengths are layout values — like the
4703
+ * observer, and unlike a client rect, they are not scaled by CSS transforms.
4704
+ * `contentRect` mirrors the native entry: width/height are the content box and
4705
+ * top/left are the padding offsets, so the immediate entry matches what the
4706
+ * observer reports next. The client rect only remains as the fallback when a
4707
+ * resolved length is not numeric (e.g. a detached element).
4708
+ *
4709
+ * Every read is written to tolerate a partial style declaration: an element
4710
+ * with no layout box resolves its lengths to `''`, and this runs on whatever
4711
+ * `getComputedStyle` returns.
4712
+ */
4713
+ /* @__NO_SIDE_EFFECTS__ */
4714
+ function measure(el) {
4715
+ const rect = el.getBoundingClientRect();
4716
+ const style = getComputedStyle(el);
4717
+ const padding = {
4718
+ top: /* @__PURE__ */ pxToNumber(style.paddingTop),
4719
+ left: /* @__PURE__ */ pxToNumber(style.paddingLeft),
4720
+ right: /* @__PURE__ */ pxToNumber(style.paddingRight),
4721
+ bottom: /* @__PURE__ */ pxToNumber(style.paddingBottom)
4722
+ };
4723
+ const paddingX = padding.left + padding.right;
4724
+ const paddingY = padding.top + padding.bottom;
4725
+ const borderX = /* @__PURE__ */ pxToNumber(style.borderLeftWidth) + /* @__PURE__ */ pxToNumber(style.borderRightWidth);
4726
+ const borderY = /* @__PURE__ */ pxToNumber(style.borderTopWidth) + /* @__PURE__ */ pxToNumber(style.borderBottomWidth);
4727
+ const outer = style.boxSizing === "border-box";
4728
+ const resolvedX = /* @__PURE__ */ pxToNumber(style.width, rect.width);
4729
+ const resolvedY = /* @__PURE__ */ pxToNumber(style.height, rect.height);
4730
+ const width = {
4731
+ border: outer ? resolvedX : resolvedX + paddingX + borderX,
4732
+ content: Math.max(0, outer ? resolvedX - paddingX - borderX : resolvedX)
4733
+ };
4734
+ const height = {
4735
+ border: outer ? resolvedY : resolvedY + paddingY + borderY,
4736
+ content: Math.max(0, outer ? resolvedY - paddingY - borderY : resolvedY)
4737
+ };
4738
+ const vertical = /* @__PURE__ */ isString(style.writingMode) && style.writingMode.startsWith("vertical");
4739
+ const inline = vertical ? height : width;
4740
+ const block = vertical ? width : height;
4741
+ return {
4742
+ contentRect: {
4743
+ width: width.content,
4744
+ height: height.content,
4745
+ top: padding.top,
4746
+ left: padding.left
4747
+ },
4748
+ borderBoxSize: [{
4749
+ inlineSize: inline.border,
4750
+ blockSize: block.border
4751
+ }],
4752
+ contentBoxSize: [{
4753
+ inlineSize: inline.content,
4754
+ blockSize: block.content
4755
+ }],
4756
+ target: el
4757
+ };
4758
+ }
4616
4759
  /**
4617
4760
  * A composable that uses the Resize Observer API to detect when an element's
4618
4761
  * size changes.
@@ -4653,6 +4796,15 @@ function createObserver(target, userCallback, config) {
4653
4796
  * // Resume observation
4654
4797
  * resume()
4655
4798
  * ```
4799
+ *
4800
+ * @example
4801
+ * Measuring the border box — padding and borders included:
4802
+ *
4803
+ * ```ts
4804
+ * useResizeObserver(el, ([entry]) => {
4805
+ * height.value = entry.borderBoxSize[0].blockSize
4806
+ * }, { box: 'border-box' })
4807
+ * ```
4656
4808
  */
4657
4809
  function useResizeObserver(target, callback, options = {}) {
4658
4810
  return createObserver(target, callback, {
@@ -4666,22 +4818,13 @@ function useResizeObserver(target, callback, options = {}) {
4666
4818
  top: e.contentRect.top,
4667
4819
  left: e.contentRect.left
4668
4820
  },
4821
+ borderBoxSize: e.borderBoxSize,
4822
+ contentBoxSize: e.contentBoxSize,
4669
4823
  target: e.target
4670
4824
  })));
4671
4825
  }),
4672
4826
  observe: (obs, el) => obs.observe(el, { box: options.box ?? "content-box" }),
4673
- immediate: options.immediate ? (el) => {
4674
- const rect = el.getBoundingClientRect();
4675
- return [{
4676
- contentRect: {
4677
- width: rect.width,
4678
- height: rect.height,
4679
- top: rect.top,
4680
- left: rect.left
4681
- },
4682
- target: el
4683
- }];
4684
- } : void 0
4827
+ immediate: options.immediate ? (el) => [/* @__PURE__ */ measure(el)] : void 0
4685
4828
  });
4686
4829
  }
4687
4830
  /**
@@ -6052,7 +6195,7 @@ function useGroup(namespace = "v0:group") {
6052
6195
  //#endregion
6053
6196
  //#region src/components/Breadcrumbs/BreadcrumbsRoot.vue
6054
6197
  const [useBreadcrumbsRoot, provideBreadcrumbsRoot] = createContext();
6055
- const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6198
+ const _sfc_main$22 = /* @__PURE__ */ defineComponent({
6056
6199
  name: "BreadcrumbsRoot",
6057
6200
  __name: "BreadcrumbsRoot",
6058
6201
  props: {
@@ -6070,7 +6213,8 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6070
6213
  const breadcrumbs = createBreadcrumbs({ enroll: true });
6071
6214
  const group = createGroup({
6072
6215
  enroll: true,
6073
- multiple: true
6216
+ multiple: true,
6217
+ reactive: true
6074
6218
  });
6075
6219
  const ellipsisWidth = shallowRef(0);
6076
6220
  const firstItemWidth = shallowRef(0);
@@ -6088,6 +6232,9 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6088
6232
  reverse: true
6089
6233
  });
6090
6234
  const isOverflowing = overflow.isOverflowing;
6235
+ const hasActivator = toRef(() => group.values().some((t) => t.type === "activator"));
6236
+ const expanded = shallowRef(false);
6237
+ const hiddenCount = shallowRef(0);
6091
6238
  let _firstItemIndex = null;
6092
6239
  let _firstDividerIndex = null;
6093
6240
  function measureToRef(el, target) {
@@ -6113,12 +6260,19 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6113
6260
  }
6114
6261
  overflow.measure(index, el);
6115
6262
  }
6116
- watch([() => overflow.capacity.value, () => group.size], ([capacity]) => {
6263
+ watch([
6264
+ () => overflow.capacity.value,
6265
+ () => group.size,
6266
+ expanded
6267
+ ], ([capacity]) => {
6117
6268
  const all = group.values();
6118
6269
  const contentTickets = [];
6119
6270
  const ellipsisTickets = [];
6120
- for (const ticket of all) if (ticket.type === "ellipsis") ellipsisTickets.push(ticket);
6121
- else contentTickets.push(ticket);
6271
+ for (const ticket of all) {
6272
+ if (ticket.type === "activator") continue;
6273
+ if (ticket.type === "ellipsis") ellipsisTickets.push(ticket);
6274
+ else contentTickets.push(ticket);
6275
+ }
6122
6276
  const contentSize = contentTickets.length;
6123
6277
  const measuredCount = Math.max(0, contentSize - 2);
6124
6278
  const fI = firstItemWidth.value;
@@ -6126,33 +6280,40 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6126
6280
  const eW = ellipsisWidth.value;
6127
6281
  const reserved = fI + __props.gap + fD + __props.gap + eW + __props.gap;
6128
6282
  if (capacity === Infinity || capacity >= measuredCount) {
6283
+ hiddenCount.value = 0;
6284
+ if (expanded.value) expanded.value = false;
6129
6285
  for (const t of ellipsisTickets) group.unselect(t.id);
6130
6286
  for (const t of contentTickets) if (!t.isSelected.value) group.select(t.id);
6131
6287
  return;
6132
6288
  }
6133
- for (const t of ellipsisTickets) group.select(t.id);
6134
- for (let i = 0; i < 2 && i < contentSize; i++) if (!contentTickets[i].isSelected.value) group.select(contentTickets[i].id);
6135
6289
  const lastIndex = contentSize - 1;
6136
6290
  const poolStart = 2;
6137
6291
  const poolSize = Math.max(0, lastIndex - poolStart + 1);
6138
6292
  const toShow = Math.min(poolSize, capacity);
6139
6293
  const showStart = lastIndex - toShow + 1;
6140
- for (let i = poolStart; i <= lastIndex; i++) {
6141
- const t = contentTickets[i];
6142
- if (i >= showStart) {
6143
- if (!t.isSelected.value) group.select(t.id);
6144
- } else group.unselect(t.id);
6145
- }
6294
+ const visible = Array.from({ length: contentSize }, (_, i) => i < 2 || i >= showStart);
6295
+ let showEllipsis = true;
6146
6296
  if (toShow > 0 && showStart > poolStart && contentTickets[showStart].type === "item") {
6147
6297
  const sep = showStart - 1;
6148
- if (sep >= poolStart && contentTickets[sep].type === "divider" && !contentTickets[sep].isSelected.value) group.select(contentTickets[sep].id);
6298
+ if (contentTickets[sep].type === "divider") visible[sep] = true;
6149
6299
  }
6150
6300
  if (capacity === 0) {
6151
- if (lastIndex >= poolStart && !contentTickets[lastIndex].isSelected.value) group.select(contentTickets[lastIndex].id);
6301
+ visible[lastIndex] = true;
6152
6302
  const w = overflow.width.value;
6153
- if (w < reserved + fD && contentSize > 1) group.unselect(contentTickets[1].id);
6154
- if (w < fI + __props.gap + eW + __props.gap) for (const t of ellipsisTickets) group.unselect(t.id);
6155
- if (w < fI + __props.gap) group.unselect(contentTickets[0].id);
6303
+ if (w < reserved + fD) visible[1] = false;
6304
+ if (w < fI + __props.gap + eW + __props.gap) showEllipsis = false;
6305
+ if (w < fI + __props.gap) visible[0] = false;
6306
+ }
6307
+ let hidden = 0;
6308
+ for (let i = 0; i < contentSize; i++) if (!visible[i] && contentTickets[i].type === "item") hidden++;
6309
+ hiddenCount.value = hidden;
6310
+ for (const t of ellipsisTickets) if (showEllipsis || expanded.value) group.select(t.id);
6311
+ else group.unselect(t.id);
6312
+ for (let i = 0; i < contentSize; i++) {
6313
+ const t = contentTickets[i];
6314
+ if (expanded.value || visible[i]) {
6315
+ if (!t.isSelected.value) group.select(t.id);
6316
+ } else group.unselect(t.id);
6156
6317
  }
6157
6318
  }, { immediate: true });
6158
6319
  provideBreadcrumbsRoot(__props.namespace, {
@@ -6162,6 +6323,9 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6162
6323
  divider: toRef(() => __props.divider),
6163
6324
  ellipsis: toRef(() => __props.ellipsis),
6164
6325
  isOverflowing,
6326
+ expanded,
6327
+ hasActivator,
6328
+ hiddenCount,
6165
6329
  ellipsisWidth,
6166
6330
  measureElement
6167
6331
  });
@@ -6192,8 +6356,62 @@ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6192
6356
  }
6193
6357
  });
6194
6358
  //#endregion
6195
- //#region src/components/Breadcrumbs/BreadcrumbsDivider.vue
6359
+ //#region src/components/Breadcrumbs/BreadcrumbsActivator.vue
6196
6360
  const _sfc_main$15 = /* @__PURE__ */ defineComponent({
6361
+ name: "BreadcrumbsActivator",
6362
+ __name: "BreadcrumbsActivator",
6363
+ props: {
6364
+ namespace: { default: "v0:breadcrumbs" },
6365
+ as: { default: "button" },
6366
+ renderless: { type: Boolean }
6367
+ },
6368
+ setup(__props) {
6369
+ const locale = useLocale();
6370
+ const context = useBreadcrumbsRoot(__props.namespace);
6371
+ const ticket = context.group.register({ type: "activator" });
6372
+ onBeforeUnmount(() => {
6373
+ context.group.unregister(ticket.id);
6374
+ });
6375
+ const isExpanded = toRef(() => context.expanded.value);
6376
+ const count = toRef(() => context.hiddenCount.value);
6377
+ const label = toRef(() => locale.ti("Breadcrumbs.expand", { count: count.value }) ?? `Show ${count.value} more breadcrumbs`);
6378
+ function toggle() {
6379
+ context.expanded.value = !context.expanded.value;
6380
+ }
6381
+ function onKeydown(e) {
6382
+ if (e.key !== "Enter" && e.key !== " ") return;
6383
+ e.preventDefault();
6384
+ toggle();
6385
+ }
6386
+ const slotProps = toRef(() => ({
6387
+ isExpanded: isExpanded.value,
6388
+ count: count.value,
6389
+ toggle,
6390
+ attrs: {
6391
+ "type": __props.as === "button" ? "button" : void 0,
6392
+ "role": __props.as === "button" ? void 0 : "button",
6393
+ "tabindex": __props.as === "button" ? void 0 : 0,
6394
+ "aria-expanded": isExpanded.value,
6395
+ "aria-label": label.value,
6396
+ "data-state": isExpanded.value ? "open" : "closed",
6397
+ "onClick": toggle,
6398
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
6399
+ }
6400
+ }));
6401
+ return (_ctx, _cache) => {
6402
+ return openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
6403
+ as: __props.as,
6404
+ renderless: __props.renderless
6405
+ }, slotProps.value.attrs), {
6406
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
6407
+ _: 3
6408
+ }, 16, ["as", "renderless"]);
6409
+ };
6410
+ }
6411
+ });
6412
+ //#endregion
6413
+ //#region src/components/Breadcrumbs/BreadcrumbsDivider.vue
6414
+ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
6197
6415
  name: "BreadcrumbsDivider",
6198
6416
  __name: "BreadcrumbsDivider",
6199
6417
  props: {
@@ -6242,7 +6460,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
6242
6460
  });
6243
6461
  //#endregion
6244
6462
  //#region src/components/Breadcrumbs/BreadcrumbsEllipsis.vue
6245
- const _sfc_main$16 = /* @__PURE__ */ defineComponent({
6463
+ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
6246
6464
  name: "BreadcrumbsEllipsis",
6247
6465
  __name: "BreadcrumbsEllipsis",
6248
6466
  props: {
@@ -6275,12 +6493,14 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
6275
6493
  });
6276
6494
  const resolvedEllipsis = toRef(() => __props.ellipsis ?? context.ellipsis.value);
6277
6495
  const isSelected = toRef(() => ticket.isSelected.value);
6496
+ const count = toRef(() => context.hiddenCount.value);
6278
6497
  const slotProps = toRef(() => ({
6279
6498
  id: ticket.id,
6280
6499
  ellipsis: resolvedEllipsis.value,
6281
6500
  isSelected: isSelected.value,
6501
+ count: count.value,
6282
6502
  attrs: {
6283
- "aria-hidden": "true",
6503
+ "aria-hidden": context.hasActivator.value ? void 0 : "true",
6284
6504
  "data-selected": isSelected.value || void 0
6285
6505
  }
6286
6506
  }));
@@ -6298,7 +6518,7 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
6298
6518
  });
6299
6519
  //#endregion
6300
6520
  //#region src/components/Breadcrumbs/BreadcrumbsItem.vue
6301
- const _sfc_main$17 = /* @__PURE__ */ defineComponent({
6521
+ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
6302
6522
  name: "BreadcrumbsItem",
6303
6523
  __name: "BreadcrumbsItem",
6304
6524
  props: {
@@ -6334,7 +6554,10 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
6334
6554
  const slotProps = toRef(() => ({
6335
6555
  id: ticket.id,
6336
6556
  isSelected: isSelected.value,
6337
- attrs: { "data-selected": isSelected.value || void 0 }
6557
+ attrs: {
6558
+ "inert": isSelected.value ? void 0 : true,
6559
+ "data-selected": isSelected.value || void 0
6560
+ }
6338
6561
  }));
6339
6562
  return (_ctx, _cache) => {
6340
6563
  return withDirectives((openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
@@ -6350,7 +6573,7 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
6350
6573
  });
6351
6574
  //#endregion
6352
6575
  //#region src/components/Breadcrumbs/BreadcrumbsLink.vue
6353
- const _sfc_main$18 = /* @__PURE__ */ defineComponent({
6576
+ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
6354
6577
  name: "BreadcrumbsLink",
6355
6578
  __name: "BreadcrumbsLink",
6356
6579
  props: {
@@ -6371,7 +6594,7 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
6371
6594
  });
6372
6595
  //#endregion
6373
6596
  //#region src/components/Breadcrumbs/BreadcrumbsList.vue
6374
- const _sfc_main$19 = /* @__PURE__ */ defineComponent({
6597
+ const _sfc_main$20 = /* @__PURE__ */ defineComponent({
6375
6598
  name: "BreadcrumbsList",
6376
6599
  __name: "BreadcrumbsList",
6377
6600
  props: {
@@ -6393,7 +6616,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
6393
6616
  });
6394
6617
  //#endregion
6395
6618
  //#region src/components/Breadcrumbs/BreadcrumbsPage.vue
6396
- const _sfc_main$20 = /* @__PURE__ */ defineComponent({
6619
+ const _sfc_main$21 = /* @__PURE__ */ defineComponent({
6397
6620
  name: "BreadcrumbsPage",
6398
6621
  __name: "BreadcrumbsPage",
6399
6622
  props: {
@@ -6458,7 +6681,7 @@ const Breadcrumbs = {
6458
6681
  * </template>
6459
6682
  * ```
6460
6683
  */
6461
- Root: _sfc_main$21,
6684
+ Root: _sfc_main$22,
6462
6685
  /**
6463
6686
  * Semantic list wrapper for breadcrumb items.
6464
6687
  * Renders as an ordered list with role="list".
@@ -6474,7 +6697,7 @@ const Breadcrumbs = {
6474
6697
  * </template>
6475
6698
  * ```
6476
6699
  */
6477
- List: _sfc_main$19,
6700
+ List: _sfc_main$20,
6478
6701
  /**
6479
6702
  * Individual breadcrumb item. Registers with root and
6480
6703
  * self-measures for overflow visibility.
@@ -6501,7 +6724,7 @@ const Breadcrumbs = {
6501
6724
  * </template>
6502
6725
  * ```
6503
6726
  */
6504
- Item: _sfc_main$17,
6727
+ Item: _sfc_main$18,
6505
6728
  /**
6506
6729
  * Navigable breadcrumb link. Renders as an anchor by default.
6507
6730
  * All attributes (href, to, etc.) fall through to the underlying element.
@@ -6528,7 +6751,7 @@ const Breadcrumbs = {
6528
6751
  * </template>
6529
6752
  * ```
6530
6753
  */
6531
- Link: _sfc_main$18,
6754
+ Link: _sfc_main$19,
6532
6755
  /**
6533
6756
  * Current page indicator. Renders as a span with
6534
6757
  * aria-current="page".
@@ -6545,7 +6768,7 @@ const Breadcrumbs = {
6545
6768
  * </template>
6546
6769
  * ```
6547
6770
  */
6548
- Page: _sfc_main$20,
6771
+ Page: _sfc_main$21,
6549
6772
  /**
6550
6773
  * Visual separator between breadcrumb items. Renders as a list
6551
6774
  * item with aria-hidden="true". Uses divider character from Root
@@ -6571,7 +6794,7 @@ const Breadcrumbs = {
6571
6794
  * </template>
6572
6795
  * ```
6573
6796
  */
6574
- Divider: _sfc_main$15,
6797
+ Divider: _sfc_main$16,
6575
6798
  /**
6576
6799
  * Ellipsis indicator shown when items are truncated by overflow.
6577
6800
  * Auto-hidden until overflow is detected. Renders with
@@ -6590,7 +6813,23 @@ const Breadcrumbs = {
6590
6813
  * </template>
6591
6814
  * ```
6592
6815
  */
6593
- Ellipsis: _sfc_main$16
6816
+ Ellipsis: _sfc_main$17,
6817
+ /**
6818
+ * Disclosure control that reveals the crumbs hidden by truncation.
6819
+ * Place inside an Ellipsis, which stays the list item.
6820
+ *
6821
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
6822
+ *
6823
+ * @example
6824
+ * ```vue
6825
+ * <template>
6826
+ * <Breadcrumbs.Ellipsis>
6827
+ * <Breadcrumbs.Activator />
6828
+ * </Breadcrumbs.Ellipsis>
6829
+ * </template>
6830
+ * ```
6831
+ */
6832
+ Activator: _sfc_main$15
6594
6833
  };
6595
6834
  //#endregion
6596
6835
  //#region src/composables/useProxyModel/index.ts
@@ -6659,11 +6898,14 @@ function useProxyModel(context, model, options) {
6659
6898
  }
6660
6899
  const applyOptions = toValue(multiple) === toValue(context.multiple ?? false) ? void 0 : { multiple: toValue(multiple) };
6661
6900
  const pending = /* @__PURE__ */ new Set();
6901
+ function deferred(value) {
6902
+ return !context.browse?.(value)?.length;
6903
+ }
6662
6904
  function reconcile(values) {
6663
6905
  context.apply(values, applyOptions);
6664
6906
  const selected = new Set(context.selectedValues.value);
6665
6907
  pending.clear();
6666
- for (const value of values) if (!selected.has(value)) pending.add(value);
6908
+ for (const value of values) if (!selected.has(value) && deferred(value)) pending.add(value);
6667
6909
  }
6668
6910
  reconcile(transformIn(model));
6669
6911
  let syncing = false;
@@ -6685,8 +6927,10 @@ function useProxyModel(context, model, options) {
6685
6927
  syncing = true;
6686
6928
  contextWatch.pause();
6687
6929
  reconcile(transformIn(val));
6688
- const actual = transformOut(Array.from(context.selectedValues.value));
6689
- if (!shallowEqual(val, actual)) model.value = actual;
6930
+ if (pending.size === 0) {
6931
+ const actual = transformOut(Array.from(context.selectedValues.value));
6932
+ if (!shallowEqual(val, actual)) model.value = actual;
6933
+ }
6690
6934
  contextWatch.resume();
6691
6935
  syncing = false;
6692
6936
  }, {
@@ -6715,7 +6959,7 @@ function useProxyModel(context, model, options) {
6715
6959
  //#endregion
6716
6960
  //#region src/components/Button/ButtonGroup.vue
6717
6961
  const [useButtonGroup, provideButtonGroup] = createContext();
6718
- const _sfc_main$23 = /* @__PURE__ */ defineComponent({
6962
+ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
6719
6963
  name: "ButtonGroup",
6720
6964
  __name: "ButtonGroup",
6721
6965
  props: /* @__PURE__ */ mergeModels({
@@ -6781,7 +7025,7 @@ const _hoisted_1$8 = [
6781
7025
  "name",
6782
7026
  "value"
6783
7027
  ];
6784
- const visuallyHiddenStyle$5 = {
7028
+ const visuallyHiddenStyle$6 = {
6785
7029
  position: "absolute",
6786
7030
  width: "1px",
6787
7031
  height: "1px",
@@ -6792,7 +7036,7 @@ const visuallyHiddenStyle$5 = {
6792
7036
  whiteSpace: "nowrap",
6793
7037
  border: "0"
6794
7038
  };
6795
- const _sfc_main$24 = /* @__PURE__ */ defineComponent({
7039
+ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
6796
7040
  name: "ButtonHiddenInput",
6797
7041
  __name: "ButtonHiddenInput",
6798
7042
  props: {
@@ -6819,7 +7063,7 @@ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
6819
7063
  form: form.value,
6820
7064
  inert: "",
6821
7065
  name: name.value,
6822
- style: visuallyHiddenStyle$5,
7066
+ style: visuallyHiddenStyle$6,
6823
7067
  tabindex: "-1",
6824
7068
  type: "checkbox",
6825
7069
  value: value.value
@@ -6977,7 +7221,7 @@ function useTimer(handler, options = {}) {
6977
7221
  //#endregion
6978
7222
  //#region src/components/Button/ButtonRoot.vue
6979
7223
  const [useButtonRoot, provideButtonRoot] = createContext();
6980
- const _sfc_main$27 = /* @__PURE__ */ defineComponent({
7224
+ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
6981
7225
  name: "ButtonRoot",
6982
7226
  inheritAttrs: false,
6983
7227
  __name: "ButtonRoot",
@@ -7040,6 +7284,12 @@ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
7040
7284
  if (isDisabled.value || isReadonly.value || isPassive.value || __props.loading || !ticket) return;
7041
7285
  ticket.toggle();
7042
7286
  }
7287
+ function onKeydown(e) {
7288
+ if (e.key === "Enter" || e.key === " ") {
7289
+ e.preventDefault();
7290
+ onClick();
7291
+ }
7292
+ }
7043
7293
  onBeforeUnmount(() => {
7044
7294
  timer.stop();
7045
7295
  ticket?.unregister();
@@ -7072,7 +7322,8 @@ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
7072
7322
  "data-disabled": isDisabled.value ? true : void 0,
7073
7323
  "data-selected": group && isSelected.value ? true : void 0,
7074
7324
  "data-solo": isSolo.value ? true : void 0,
7075
- "onClick": ticket ? onClick : void 0
7325
+ "onClick": ticket ? onClick : void 0,
7326
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
7076
7327
  }));
7077
7328
  const slotProps = toRef(() => ({
7078
7329
  isLoading: isLoading.value,
@@ -7089,13 +7340,13 @@ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
7089
7340
  }), {
7090
7341
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
7091
7342
  _: 3
7092
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$24, { key: 0 })) : createCommentVNode("v-if", true)], 64);
7343
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$25, { key: 0 })) : createCommentVNode("v-if", true)], 64);
7093
7344
  };
7094
7345
  }
7095
7346
  });
7096
7347
  //#endregion
7097
7348
  //#region src/components/Button/ButtonContent.vue
7098
- const _sfc_main$22 = /* @__PURE__ */ defineComponent({
7349
+ const _sfc_main$23 = /* @__PURE__ */ defineComponent({
7099
7350
  name: "ButtonContent",
7100
7351
  __name: "ButtonContent",
7101
7352
  props: {
@@ -7113,7 +7364,7 @@ const _sfc_main$22 = /* @__PURE__ */ defineComponent({
7113
7364
  });
7114
7365
  //#endregion
7115
7366
  //#region src/components/Button/ButtonIcon.vue
7116
- const _sfc_main$25 = /* @__PURE__ */ defineComponent({
7367
+ const _sfc_main$26 = /* @__PURE__ */ defineComponent({
7117
7368
  name: "ButtonIcon",
7118
7369
  __name: "ButtonIcon",
7119
7370
  props: {
@@ -7144,7 +7395,7 @@ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
7144
7395
  });
7145
7396
  //#endregion
7146
7397
  //#region src/components/Button/ButtonLoading.vue
7147
- const _sfc_main$26 = /* @__PURE__ */ defineComponent({
7398
+ const _sfc_main$27 = /* @__PURE__ */ defineComponent({
7148
7399
  name: "ButtonLoading",
7149
7400
  __name: "ButtonLoading",
7150
7401
  props: {
@@ -7216,7 +7467,7 @@ const Button = {
7216
7467
  * </template>
7217
7468
  * ```
7218
7469
  */
7219
- Content: _sfc_main$22,
7470
+ Content: _sfc_main$23,
7220
7471
  /**
7221
7472
  * Selection container for toggle button groups.
7222
7473
  *
@@ -7239,7 +7490,7 @@ const Button = {
7239
7490
  * </template>
7240
7491
  * ```
7241
7492
  */
7242
- Group: _sfc_main$23,
7493
+ Group: _sfc_main$24,
7243
7494
  /**
7244
7495
  * Hidden input component for form submission.
7245
7496
  *
@@ -7261,7 +7512,7 @@ const Button = {
7261
7512
  * </template>
7262
7513
  * ```
7263
7514
  */
7264
- HiddenInput: _sfc_main$24,
7515
+ HiddenInput: _sfc_main$25,
7265
7516
  /**
7266
7517
  * Icon wrapper with accessibility enforcement.
7267
7518
  *
@@ -7283,7 +7534,7 @@ const Button = {
7283
7534
  * </template>
7284
7535
  * ```
7285
7536
  */
7286
- Icon: _sfc_main$25,
7537
+ Icon: _sfc_main$26,
7287
7538
  /**
7288
7539
  * Loading indicator that becomes visible after the grace period.
7289
7540
  *
@@ -7309,7 +7560,7 @@ const Button = {
7309
7560
  * </template>
7310
7561
  * ```
7311
7562
  */
7312
- Loading: _sfc_main$26,
7563
+ Loading: _sfc_main$27,
7313
7564
  /**
7314
7565
  * Root component for buttons.
7315
7566
  *
@@ -7332,7 +7583,7 @@ const Button = {
7332
7583
  * </template>
7333
7584
  * ```
7334
7585
  */
7335
- Root: _sfc_main$27
7586
+ Root: _sfc_main$28
7336
7587
  };
7337
7588
  //#endregion
7338
7589
  //#region src/composables/createStep/index.ts
@@ -7544,7 +7795,7 @@ function useStep(namespace = "v0:step") {
7544
7795
  //#endregion
7545
7796
  //#region src/components/Carousel/CarouselRoot.vue
7546
7797
  const [useCarouselRoot, provideCarouselRoot] = createContext();
7547
- const _sfc_main$34 = /* @__PURE__ */ defineComponent({
7798
+ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
7548
7799
  name: "CarouselRoot",
7549
7800
  __name: "CarouselRoot",
7550
7801
  props: /* @__PURE__ */ mergeModels({
@@ -7675,7 +7926,7 @@ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
7675
7926
  });
7676
7927
  //#endregion
7677
7928
  //#region src/components/Carousel/CarouselViewport.vue
7678
- const _sfc_main$35 = /* @__PURE__ */ defineComponent({
7929
+ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
7679
7930
  name: "CarouselViewport",
7680
7931
  inheritAttrs: false,
7681
7932
  __name: "CarouselViewport",
@@ -7870,7 +8121,7 @@ const _sfc_main$35 = /* @__PURE__ */ defineComponent({
7870
8121
  });
7871
8122
  //#endregion
7872
8123
  //#region src/components/Carousel/CarouselItem.vue
7873
- const _sfc_main$29 = /* @__PURE__ */ defineComponent({
8124
+ const _sfc_main$30 = /* @__PURE__ */ defineComponent({
7874
8125
  name: "CarouselItem",
7875
8126
  inheritAttrs: false,
7876
8127
  __name: "CarouselItem",
@@ -7948,7 +8199,7 @@ const _sfc_main$29 = /* @__PURE__ */ defineComponent({
7948
8199
  });
7949
8200
  //#endregion
7950
8201
  //#region src/components/Carousel/CarouselPrevious.vue
7951
- const _sfc_main$32 = /* @__PURE__ */ defineComponent({
8202
+ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
7952
8203
  name: "CarouselPrevious",
7953
8204
  inheritAttrs: false,
7954
8205
  __name: "CarouselPrevious",
@@ -7974,18 +8225,27 @@ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
7974
8225
  function onClick() {
7975
8226
  if (!isDisabled.value) carousel.prev();
7976
8227
  }
8228
+ function onKeydown(e) {
8229
+ if (e.key === "Enter" || e.key === " ") {
8230
+ e.preventDefault();
8231
+ onClick();
8232
+ }
8233
+ }
7977
8234
  const slotProps = toRef(() => ({
7978
8235
  isDisabled: isDisabled.value,
7979
8236
  isAtEdge: isAtEdge.value,
7980
8237
  attrs: {
7981
8238
  "type": __props.as === "button" ? "button" : void 0,
8239
+ "role": __props.as === "button" ? void 0 : "button",
8240
+ "tabindex": isDisabled.value ? -1 : 0,
7982
8241
  "aria-label": locale.ti("Carousel.prev") ?? "Previous slide",
7983
8242
  "aria-controls": viewportId,
7984
8243
  "aria-disabled": isDisabled.value,
7985
8244
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
7986
8245
  "data-disabled": isDisabled.value || void 0,
7987
8246
  "data-edge": isAtEdge.value || void 0,
7988
- "onClick": onClick
8247
+ "onClick": onClick,
8248
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
7989
8249
  }
7990
8250
  }));
7991
8251
  return (_ctx, _cache) => {
@@ -8001,7 +8261,7 @@ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
8001
8261
  });
8002
8262
  //#endregion
8003
8263
  //#region src/components/Carousel/CarouselNext.vue
8004
- const _sfc_main$31 = /* @__PURE__ */ defineComponent({
8264
+ const _sfc_main$32 = /* @__PURE__ */ defineComponent({
8005
8265
  name: "CarouselNext",
8006
8266
  inheritAttrs: false,
8007
8267
  __name: "CarouselNext",
@@ -8030,18 +8290,27 @@ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
8030
8290
  function onClick() {
8031
8291
  if (!isDisabled.value) carousel.next();
8032
8292
  }
8293
+ function onKeydown(e) {
8294
+ if (e.key === "Enter" || e.key === " ") {
8295
+ e.preventDefault();
8296
+ onClick();
8297
+ }
8298
+ }
8033
8299
  const slotProps = toRef(() => ({
8034
8300
  isDisabled: isDisabled.value,
8035
8301
  isAtEdge: isAtEdge.value,
8036
8302
  attrs: {
8037
8303
  "type": __props.as === "button" ? "button" : void 0,
8304
+ "role": __props.as === "button" ? void 0 : "button",
8305
+ "tabindex": isDisabled.value ? -1 : 0,
8038
8306
  "aria-label": locale.ti("Carousel.next") ?? "Next slide",
8039
8307
  "aria-controls": viewportId,
8040
8308
  "aria-disabled": isDisabled.value,
8041
8309
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
8042
8310
  "data-disabled": isDisabled.value || void 0,
8043
8311
  "data-edge": isAtEdge.value || void 0,
8044
- "onClick": onClick
8312
+ "onClick": onClick,
8313
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
8045
8314
  }
8046
8315
  }));
8047
8316
  return (_ctx, _cache) => {
@@ -8057,7 +8326,7 @@ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
8057
8326
  });
8058
8327
  //#endregion
8059
8328
  //#region src/components/Carousel/CarouselIndicator.vue
8060
- const _sfc_main$28 = /* @__PURE__ */ defineComponent({
8329
+ const _sfc_main$29 = /* @__PURE__ */ defineComponent({
8061
8330
  name: "CarouselIndicator",
8062
8331
  inheritAttrs: false,
8063
8332
  __name: "CarouselIndicator",
@@ -8171,7 +8440,7 @@ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
8171
8440
  });
8172
8441
  //#endregion
8173
8442
  //#region src/components/Carousel/CarouselProgress.vue
8174
- const _sfc_main$33 = /* @__PURE__ */ defineComponent({
8443
+ const _sfc_main$34 = /* @__PURE__ */ defineComponent({
8175
8444
  name: "CarouselProgress",
8176
8445
  inheritAttrs: false,
8177
8446
  __name: "CarouselProgress",
@@ -8237,7 +8506,7 @@ const _sfc_main$33 = /* @__PURE__ */ defineComponent({
8237
8506
  });
8238
8507
  //#endregion
8239
8508
  //#region src/components/Carousel/CarouselLiveRegion.vue
8240
- const _sfc_main$30 = /* @__PURE__ */ defineComponent({
8509
+ const _sfc_main$31 = /* @__PURE__ */ defineComponent({
8241
8510
  name: "CarouselLiveRegion",
8242
8511
  inheritAttrs: false,
8243
8512
  __name: "CarouselLiveRegion",
@@ -8347,7 +8616,7 @@ const Carousel = {
8347
8616
  * </template>
8348
8617
  * ```
8349
8618
  */
8350
- Root: _sfc_main$34,
8619
+ Root: _sfc_main$35,
8351
8620
  /**
8352
8621
  * Scroll-snap container for carousel items. Handles native drag/swipe
8353
8622
  * via CSS scroll-snap and synchronizes scroll position with selection.
@@ -8370,7 +8639,7 @@ const Carousel = {
8370
8639
  * </template>
8371
8640
  * ```
8372
8641
  */
8373
- Viewport: _sfc_main$35,
8642
+ Viewport: _sfc_main$36,
8374
8643
  /**
8375
8644
  * Individual carousel slide that registers with the step context.
8376
8645
  * Exposes selection state, visibility, and ARIA attributes.
@@ -8396,7 +8665,7 @@ const Carousel = {
8396
8665
  * </template>
8397
8666
  * ```
8398
8667
  */
8399
- Item: _sfc_main$29,
8668
+ Item: _sfc_main$30,
8400
8669
  /**
8401
8670
  * Navigation button that moves to the previous slide. Automatically
8402
8671
  * disables at the first slide in non-circular mode.
@@ -8420,7 +8689,7 @@ const Carousel = {
8420
8689
  * </template>
8421
8690
  * ```
8422
8691
  */
8423
- Previous: _sfc_main$32,
8692
+ Previous: _sfc_main$33,
8424
8693
  /**
8425
8694
  * Navigation button that moves to the next slide. Automatically
8426
8695
  * disables at the last visible boundary in non-circular mode.
@@ -8444,7 +8713,7 @@ const Carousel = {
8444
8713
  * </template>
8445
8714
  * ```
8446
8715
  */
8447
- Next: _sfc_main$31,
8716
+ Next: _sfc_main$32,
8448
8717
  /**
8449
8718
  * Dot indicator navigation showing the active slide. Exposes an
8450
8719
  * `items` array via slot props — one entry per slide with selection
@@ -8466,7 +8735,7 @@ const Carousel = {
8466
8735
  * </template>
8467
8736
  * ```
8468
8737
  */
8469
- Indicator: _sfc_main$28,
8738
+ Indicator: _sfc_main$29,
8470
8739
  /**
8471
8740
  * Autoplay progress bar that fills based on remaining timer duration.
8472
8741
  * Exposes progress (0–1), autoplay state, and width styling via
@@ -8490,7 +8759,7 @@ const Carousel = {
8490
8759
  * </template>
8491
8760
  * ```
8492
8761
  */
8493
- Progress: _sfc_main$33,
8762
+ Progress: _sfc_main$34,
8494
8763
  /**
8495
8764
  * Visually-hidden live region that announces slide changes to screen
8496
8765
  * readers. Should be styled with sr-only/visually-hidden CSS.
@@ -8507,12 +8776,12 @@ const Carousel = {
8507
8776
  * </template>
8508
8777
  * ```
8509
8778
  */
8510
- LiveRegion: _sfc_main$30
8779
+ LiveRegion: _sfc_main$31
8511
8780
  };
8512
8781
  //#endregion
8513
8782
  //#region src/components/Checkbox/CheckboxGroup.vue
8514
8783
  const [useCheckboxGroup, provideCheckboxGroup] = createContext();
8515
- const _sfc_main$36 = /* @__PURE__ */ defineComponent({
8784
+ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
8516
8785
  name: "CheckboxGroup",
8517
8786
  __name: "CheckboxGroup",
8518
8787
  props: /* @__PURE__ */ mergeModels({
@@ -8581,7 +8850,7 @@ const _sfc_main$36 = /* @__PURE__ */ defineComponent({
8581
8850
  //#endregion
8582
8851
  //#region src/components/Checkbox/CheckboxRoot.vue
8583
8852
  const [useCheckboxRoot, provideCheckboxRoot] = createContext();
8584
- const _sfc_main$39 = /* @__PURE__ */ defineComponent({
8853
+ const _sfc_main$40 = /* @__PURE__ */ defineComponent({
8585
8854
  name: "CheckboxRoot",
8586
8855
  inheritAttrs: false,
8587
8856
  __name: "CheckboxRoot",
@@ -8708,7 +8977,7 @@ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
8708
8977
  }), {
8709
8978
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
8710
8979
  _: 3
8711
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$37, { key: 0 })) : createCommentVNode("v-if", true)], 64);
8980
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$38, { key: 0 })) : createCommentVNode("v-if", true)], 64);
8712
8981
  };
8713
8982
  }
8714
8983
  });
@@ -8721,7 +8990,7 @@ const _hoisted_1$7 = [
8721
8990
  "name",
8722
8991
  "value"
8723
8992
  ];
8724
- const visuallyHiddenStyle$4 = {
8993
+ const visuallyHiddenStyle$5 = {
8725
8994
  position: "absolute",
8726
8995
  width: "1px",
8727
8996
  height: "1px",
@@ -8732,7 +9001,7 @@ const visuallyHiddenStyle$4 = {
8732
9001
  whiteSpace: "nowrap",
8733
9002
  border: "0"
8734
9003
  };
8735
- const _sfc_main$37 = /* @__PURE__ */ defineComponent({
9004
+ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
8736
9005
  name: "CheckboxHiddenInput",
8737
9006
  __name: "CheckboxHiddenInput",
8738
9007
  props: {
@@ -8760,7 +9029,7 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
8760
9029
  form: form.value,
8761
9030
  inert: "",
8762
9031
  name: name.value,
8763
- style: visuallyHiddenStyle$4,
9032
+ style: visuallyHiddenStyle$5,
8764
9033
  tabindex: "-1",
8765
9034
  type: "checkbox",
8766
9035
  value: value.value
@@ -8770,7 +9039,7 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
8770
9039
  });
8771
9040
  //#endregion
8772
9041
  //#region src/components/Checkbox/CheckboxIndicator.vue
8773
- const _sfc_main$38 = /* @__PURE__ */ defineComponent({
9042
+ const _sfc_main$39 = /* @__PURE__ */ defineComponent({
8774
9043
  name: "CheckboxIndicator",
8775
9044
  __name: "CheckboxIndicator",
8776
9045
  props: {
@@ -8805,7 +9074,7 @@ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
8805
9074
  });
8806
9075
  //#endregion
8807
9076
  //#region src/components/Checkbox/CheckboxSelectAll.vue
8808
- const _sfc_main$40 = /* @__PURE__ */ defineComponent({
9077
+ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
8809
9078
  name: "CheckboxSelectAll",
8810
9079
  inheritAttrs: false,
8811
9080
  __name: "CheckboxSelectAll",
@@ -8939,7 +9208,7 @@ const Checkbox = {
8939
9208
  * </template>
8940
9209
  * ```
8941
9210
  */
8942
- Group: _sfc_main$36,
9211
+ Group: _sfc_main$37,
8943
9212
  /**
8944
9213
  * Hidden input component for form submission.
8945
9214
  *
@@ -8962,7 +9231,7 @@ const Checkbox = {
8962
9231
  * </template>
8963
9232
  * ```
8964
9233
  */
8965
- HiddenInput: _sfc_main$37,
9234
+ HiddenInput: _sfc_main$38,
8966
9235
  /**
8967
9236
  * Visual indicator component for checkboxes.
8968
9237
  *
@@ -8988,7 +9257,7 @@ const Checkbox = {
8988
9257
  * </template>
8989
9258
  * ```
8990
9259
  */
8991
- Indicator: _sfc_main$38,
9260
+ Indicator: _sfc_main$39,
8992
9261
  /**
8993
9262
  * Root component for individual checkboxes.
8994
9263
  *
@@ -9018,7 +9287,7 @@ const Checkbox = {
9018
9287
  * </template>
9019
9288
  * ```
9020
9289
  */
9021
- Root: _sfc_main$39,
9290
+ Root: _sfc_main$40,
9022
9291
  /**
9023
9292
  * Select all checkbox for group multi-selection.
9024
9293
  *
@@ -9053,12 +9322,12 @@ const Checkbox = {
9053
9322
  * </template>
9054
9323
  * ```
9055
9324
  */
9056
- SelectAll: _sfc_main$40
9325
+ SelectAll: _sfc_main$41
9057
9326
  };
9058
9327
  //#endregion
9059
9328
  //#region src/components/Collapsible/CollapsibleRoot.vue
9060
9329
  const [useCollapsible, provideCollapsible] = createContext();
9061
- const _sfc_main$44 = /* @__PURE__ */ defineComponent({
9330
+ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
9062
9331
  name: "CollapsibleRoot",
9063
9332
  __name: "CollapsibleRoot",
9064
9333
  props: /* @__PURE__ */ mergeModels({
@@ -9138,7 +9407,7 @@ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
9138
9407
  });
9139
9408
  //#endregion
9140
9409
  //#region src/components/Collapsible/CollapsibleActivator.vue
9141
- const _sfc_main$41 = /* @__PURE__ */ defineComponent({
9410
+ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
9142
9411
  name: "CollapsibleActivator",
9143
9412
  __name: "CollapsibleActivator",
9144
9413
  props: {
@@ -9170,7 +9439,7 @@ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
9170
9439
  "disabled": __props.as === "button" ? context.disabled.value : void 0,
9171
9440
  "type": __props.as === "button" ? "button" : void 0,
9172
9441
  "onClick": context.toggle,
9173
- onKeydown
9442
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
9174
9443
  }
9175
9444
  }));
9176
9445
  return (_ctx, _cache) => {
@@ -9186,7 +9455,7 @@ const _sfc_main$41 = /* @__PURE__ */ defineComponent({
9186
9455
  });
9187
9456
  //#endregion
9188
9457
  //#region src/components/Collapsible/CollapsibleContent.vue
9189
- const _sfc_main$42 = /* @__PURE__ */ defineComponent({
9458
+ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
9190
9459
  name: "CollapsibleContent",
9191
9460
  __name: "CollapsibleContent",
9192
9461
  props: {
@@ -9220,7 +9489,7 @@ const _sfc_main$42 = /* @__PURE__ */ defineComponent({
9220
9489
  });
9221
9490
  //#endregion
9222
9491
  //#region src/components/Collapsible/CollapsibleCue.vue
9223
- const _sfc_main$43 = /* @__PURE__ */ defineComponent({
9492
+ const _sfc_main$44 = /* @__PURE__ */ defineComponent({
9224
9493
  name: "CollapsibleCue",
9225
9494
  __name: "CollapsibleCue",
9226
9495
  props: {
@@ -9276,10 +9545,10 @@ const _sfc_main$43 = /* @__PURE__ */ defineComponent({
9276
9545
  * ```
9277
9546
  */
9278
9547
  const Collapsible = {
9279
- Root: _sfc_main$44,
9280
- Activator: _sfc_main$41,
9281
- Cue: _sfc_main$43,
9282
- Content: _sfc_main$42
9548
+ Root: _sfc_main$45,
9549
+ Activator: _sfc_main$42,
9550
+ Cue: _sfc_main$44,
9551
+ Content: _sfc_main$43
9283
9552
  };
9284
9553
  //#endregion
9285
9554
  //#region src/components/Combobox/ComboboxHiddenInput.vue
@@ -9289,7 +9558,7 @@ const _hoisted_1$6 = [
9289
9558
  "name",
9290
9559
  "value"
9291
9560
  ];
9292
- const visuallyHiddenStyle$3 = {
9561
+ const visuallyHiddenStyle$4 = {
9293
9562
  position: "absolute",
9294
9563
  width: "1px",
9295
9564
  height: "1px",
@@ -9300,7 +9569,7 @@ const visuallyHiddenStyle$3 = {
9300
9569
  whiteSpace: "nowrap",
9301
9570
  border: "0"
9302
9571
  };
9303
- const _sfc_main$170 = /* @__PURE__ */ defineComponent({
9572
+ const _sfc_main$172 = /* @__PURE__ */ defineComponent({
9304
9573
  name: "ComboboxHiddenInput",
9305
9574
  __name: "ComboboxHiddenInput",
9306
9575
  props: { namespace: { default: "v0:combobox" } },
@@ -9322,7 +9591,7 @@ const _sfc_main$170 = /* @__PURE__ */ defineComponent({
9322
9591
  form: unref(context).form,
9323
9592
  inert: "",
9324
9593
  name: unref(context).name,
9325
- style: visuallyHiddenStyle$3,
9594
+ style: visuallyHiddenStyle$4,
9326
9595
  tabindex: "-1",
9327
9596
  type: "hidden",
9328
9597
  value: val
@@ -10250,7 +10519,7 @@ function useCombobox(namespace = "v0:combobox") {
10250
10519
  //#endregion
10251
10520
  //#region src/components/Combobox/ComboboxRoot.vue
10252
10521
  const [useComboboxContext, provideComboboxContext] = createContext();
10253
- const _sfc_main$53 = /* @__PURE__ */ defineComponent({
10522
+ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
10254
10523
  name: "ComboboxRoot",
10255
10524
  __name: "ComboboxRoot",
10256
10525
  props: /* @__PURE__ */ mergeModels({
@@ -10326,13 +10595,13 @@ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
10326
10595
  }, {
10327
10596
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
10328
10597
  _: 3
10329
- }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$170, { key: 0 })) : createCommentVNode("v-if", true)], 64);
10598
+ }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$172, { key: 0 })) : createCommentVNode("v-if", true)], 64);
10330
10599
  };
10331
10600
  }
10332
10601
  });
10333
10602
  //#endregion
10334
10603
  //#region src/components/Combobox/ComboboxActivator.vue
10335
- const _sfc_main$45 = /* @__PURE__ */ defineComponent({
10604
+ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
10336
10605
  name: "ComboboxActivator",
10337
10606
  __name: "ComboboxActivator",
10338
10607
  props: {
@@ -10460,7 +10729,7 @@ function useLazy(active, options = {}) {
10460
10729
  }
10461
10730
  //#endregion
10462
10731
  //#region src/components/Combobox/ComboboxContent.vue
10463
- const _sfc_main$46 = /* @__PURE__ */ defineComponent({
10732
+ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
10464
10733
  name: "ComboboxContent",
10465
10734
  __name: "ComboboxContent",
10466
10735
  props: {
@@ -10509,7 +10778,7 @@ const _sfc_main$46 = /* @__PURE__ */ defineComponent({
10509
10778
  });
10510
10779
  //#endregion
10511
10780
  //#region src/components/Combobox/ComboboxControl.vue
10512
- const _sfc_main$47 = /* @__PURE__ */ defineComponent({
10781
+ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
10513
10782
  name: "ComboboxControl",
10514
10783
  __name: "ComboboxControl",
10515
10784
  props: {
@@ -10611,7 +10880,7 @@ const _sfc_main$47 = /* @__PURE__ */ defineComponent({
10611
10880
  });
10612
10881
  //#endregion
10613
10882
  //#region src/components/Combobox/ComboboxCue.vue
10614
- const _sfc_main$48 = /* @__PURE__ */ defineComponent({
10883
+ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
10615
10884
  name: "ComboboxCue",
10616
10885
  __name: "ComboboxCue",
10617
10886
  props: {
@@ -10645,7 +10914,7 @@ const _sfc_main$48 = /* @__PURE__ */ defineComponent({
10645
10914
  });
10646
10915
  //#endregion
10647
10916
  //#region src/components/Combobox/ComboboxDescription.vue
10648
- const _sfc_main$49 = /* @__PURE__ */ defineComponent({
10917
+ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
10649
10918
  name: "ComboboxDescription",
10650
10919
  inheritAttrs: false,
10651
10920
  __name: "ComboboxDescription",
@@ -10681,7 +10950,7 @@ const _sfc_main$49 = /* @__PURE__ */ defineComponent({
10681
10950
  });
10682
10951
  //#endregion
10683
10952
  //#region src/components/Combobox/ComboboxEmpty.vue
10684
- const _sfc_main$50 = /* @__PURE__ */ defineComponent({
10953
+ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
10685
10954
  name: "ComboboxEmpty",
10686
10955
  __name: "ComboboxEmpty",
10687
10956
  props: {
@@ -10707,7 +10976,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
10707
10976
  });
10708
10977
  //#endregion
10709
10978
  //#region src/components/Combobox/ComboboxError.vue
10710
- const _sfc_main$51 = /* @__PURE__ */ defineComponent({
10979
+ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
10711
10980
  name: "ComboboxError",
10712
10981
  inheritAttrs: false,
10713
10982
  __name: "ComboboxError",
@@ -10748,7 +11017,7 @@ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
10748
11017
  });
10749
11018
  //#endregion
10750
11019
  //#region src/components/Combobox/ComboboxItem.vue
10751
- const _sfc_main$52 = /* @__PURE__ */ defineComponent({
11020
+ const _sfc_main$53 = /* @__PURE__ */ defineComponent({
10752
11021
  name: "ComboboxItem",
10753
11022
  __name: "ComboboxItem",
10754
11023
  props: {
@@ -10841,9 +11110,8 @@ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
10841
11110
  * :key="item.id"
10842
11111
  * :id="item.id"
10843
11112
  * :value="item.label"
10844
- * v-slot="{ isSelected, attrs }"
10845
11113
  * >
10846
- * <div v-bind="attrs">{{ item.label }}</div>
11114
+ * {{ item.label }}
10847
11115
  * </Combobox.Item>
10848
11116
  * <Combobox.Empty>No results found</Combobox.Empty>
10849
11117
  * </Combobox.Content>
@@ -10880,7 +11148,7 @@ const Combobox = {
10880
11148
  * </template>
10881
11149
  * ```
10882
11150
  */
10883
- Root: _sfc_main$53,
11151
+ Root: _sfc_main$54,
10884
11152
  /**
10885
11153
  * Wrapper for the control and cue. Sets CSS anchor-name so the dropdown
10886
11154
  * positions relative to this element.
@@ -10895,7 +11163,7 @@ const Combobox = {
10895
11163
  * </Combobox.Activator>
10896
11164
  * ```
10897
11165
  */
10898
- Activator: _sfc_main$45,
11166
+ Activator: _sfc_main$46,
10899
11167
  /**
10900
11168
  * Text input that drives the query string and keyboard navigation.
10901
11169
  * Binds `role="combobox"` and manages `aria-activedescendant` via virtual focus.
@@ -10911,7 +11179,7 @@ const Combobox = {
10911
11179
  * <Combobox.Control open-on="input" placeholder="Start typing..." />
10912
11180
  * ```
10913
11181
  */
10914
- Control: _sfc_main$47,
11182
+ Control: _sfc_main$48,
10915
11183
  /**
10916
11184
  * Visual cue for open/close state. Exposes `data-state="open|closed"` for
10917
11185
  * CSS-driven styling. Clicking toggles the dropdown.
@@ -10925,7 +11193,7 @@ const Combobox = {
10925
11193
  * </Combobox.Cue>
10926
11194
  * ```
10927
11195
  */
10928
- Cue: _sfc_main$48,
11196
+ Cue: _sfc_main$49,
10929
11197
  /**
10930
11198
  * Dropdown content container using native popover API with CSS anchor
10931
11199
  * positioning. Renders `role="listbox"` with lazy mounting.
@@ -10941,7 +11209,7 @@ const Combobox = {
10941
11209
  * </Combobox.Content>
10942
11210
  * ```
10943
11211
  */
10944
- Content: _sfc_main$46,
11212
+ Content: _sfc_main$47,
10945
11213
  /**
10946
11214
  * Option item within the combobox dropdown. Registers with selection and
10947
11215
  * virtual focus. Hidden via `v-show` when filtered out so selection state
@@ -10951,14 +11219,17 @@ const Combobox = {
10951
11219
  *
10952
11220
  * @example
10953
11221
  * ```vue
10954
- * <Combobox.Item id="apple" value="Apple" v-slot="{ isSelected, isHighlighted, attrs }">
10955
- * <div v-bind="attrs" :class="{ highlighted: isHighlighted }">
10956
- * Apple {{ isSelected ? '✓' : '' }}
10957
- * </div>
11222
+ * <Combobox.Item
11223
+ * id="apple"
11224
+ * value="Apple"
11225
+ * class="data-[highlighted]:bg-primary"
11226
+ * v-slot="{ isSelected }"
11227
+ * >
11228
+ * Apple {{ isSelected ? '✓' : '' }}
10958
11229
  * </Combobox.Item>
10959
11230
  * ```
10960
11231
  */
10961
- Item: _sfc_main$52,
11232
+ Item: _sfc_main$53,
10962
11233
  /**
10963
11234
  * Empty state shown when no items match the current query. Exposes the
10964
11235
  * query string via slot props for contextual messaging.
@@ -10972,7 +11243,7 @@ const Combobox = {
10972
11243
  * </Combobox.Empty>
10973
11244
  * ```
10974
11245
  */
10975
- Empty: _sfc_main$50,
11246
+ Empty: _sfc_main$51,
10976
11247
  /**
10977
11248
  * Help text component connected via aria-describedby.
10978
11249
  * Auto-generates an ID that Combobox.Control references in its
@@ -10990,7 +11261,7 @@ const Combobox = {
10990
11261
  * </Combobox.Root>
10991
11262
  * ```
10992
11263
  */
10993
- Description: _sfc_main$49,
11264
+ Description: _sfc_main$50,
10994
11265
  /**
10995
11266
  * Error message component with aria-live announcements.
10996
11267
  * Renders error messages from Root's errorMessages prop.
@@ -11011,12 +11282,12 @@ const Combobox = {
11011
11282
  * </Combobox.Root>
11012
11283
  * ```
11013
11284
  */
11014
- Error: _sfc_main$51
11285
+ Error: _sfc_main$52
11015
11286
  };
11016
11287
  //#endregion
11017
11288
  //#region src/components/Dialog/DialogRoot.vue
11018
11289
  const [useDialogContext, provideDialogContext] = createContext();
11019
- const _sfc_main$58 = /* @__PURE__ */ defineComponent({
11290
+ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
11020
11291
  name: "DialogRoot",
11021
11292
  __name: "DialogRoot",
11022
11293
  props: /* @__PURE__ */ mergeModels({
@@ -11070,7 +11341,7 @@ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
11070
11341
  });
11071
11342
  //#endregion
11072
11343
  //#region src/components/Dialog/DialogClose.vue
11073
- const _sfc_main$55 = /* @__PURE__ */ defineComponent({
11344
+ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
11074
11345
  name: "DialogClose",
11075
11346
  __name: "DialogClose",
11076
11347
  props: {
@@ -11084,12 +11355,21 @@ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
11084
11355
  function onClick() {
11085
11356
  context.close();
11086
11357
  }
11358
+ function onKeydown(e) {
11359
+ if (e.key === "Enter" || e.key === " ") {
11360
+ e.preventDefault();
11361
+ onClick();
11362
+ }
11363
+ }
11087
11364
  const slotProps = toRef(() => ({
11088
11365
  isOpen: context.isOpen.value,
11089
11366
  attrs: {
11090
11367
  "type": __props.as === "button" ? "button" : void 0,
11368
+ "role": __props.as === "button" ? void 0 : "button",
11369
+ "tabindex": 0,
11091
11370
  "aria-label": locale.ti("Dialog.close") ?? "Close",
11092
- "onClick": onClick
11371
+ "onClick": onClick,
11372
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
11093
11373
  }
11094
11374
  }));
11095
11375
  return (_ctx, _cache) => {
@@ -11105,7 +11385,7 @@ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
11105
11385
  });
11106
11386
  //#endregion
11107
11387
  //#region src/components/Dialog/DialogContent.vue
11108
- const _sfc_main$56 = /* @__PURE__ */ defineComponent({
11388
+ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
11109
11389
  name: "DialogContent",
11110
11390
  __name: "DialogContent",
11111
11391
  props: {
@@ -11190,7 +11470,7 @@ const _sfc_main$56 = /* @__PURE__ */ defineComponent({
11190
11470
  });
11191
11471
  //#endregion
11192
11472
  //#region src/components/Dialog/DialogDescription.vue
11193
- const _sfc_main$57 = /* @__PURE__ */ defineComponent({
11473
+ const _sfc_main$58 = /* @__PURE__ */ defineComponent({
11194
11474
  name: "DialogDescription",
11195
11475
  __name: "DialogDescription",
11196
11476
  props: {
@@ -11214,7 +11494,7 @@ const _sfc_main$57 = /* @__PURE__ */ defineComponent({
11214
11494
  });
11215
11495
  //#endregion
11216
11496
  //#region src/components/Dialog/DialogTitle.vue
11217
- const _sfc_main$59 = /* @__PURE__ */ defineComponent({
11497
+ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
11218
11498
  name: "DialogTitle",
11219
11499
  __name: "DialogTitle",
11220
11500
  props: {
@@ -11238,7 +11518,7 @@ const _sfc_main$59 = /* @__PURE__ */ defineComponent({
11238
11518
  });
11239
11519
  //#endregion
11240
11520
  //#region src/components/Dialog/DialogActivator.vue
11241
- const _sfc_main$54 = /* @__PURE__ */ defineComponent({
11521
+ const _sfc_main$55 = /* @__PURE__ */ defineComponent({
11242
11522
  name: "DialogActivator",
11243
11523
  __name: "DialogActivator",
11244
11524
  props: {
@@ -11251,14 +11531,23 @@ const _sfc_main$54 = /* @__PURE__ */ defineComponent({
11251
11531
  function onClick() {
11252
11532
  context.open();
11253
11533
  }
11534
+ function onKeydown(e) {
11535
+ if (e.key === "Enter" || e.key === " ") {
11536
+ e.preventDefault();
11537
+ onClick();
11538
+ }
11539
+ }
11254
11540
  const slotProps = toRef(() => ({
11255
11541
  isOpen: context.isOpen.value,
11256
11542
  attrs: {
11257
11543
  "type": __props.as === "button" ? "button" : void 0,
11544
+ "role": __props.as === "button" ? void 0 : "button",
11545
+ "tabindex": 0,
11258
11546
  "aria-haspopup": "dialog",
11259
11547
  "aria-expanded": context.isOpen.value,
11260
11548
  "data-open": context.isOpen.value || void 0,
11261
- "onClick": onClick
11549
+ "onClick": onClick,
11550
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
11262
11551
  }
11263
11552
  }));
11264
11553
  return (_ctx, _cache) => {
@@ -11326,7 +11615,7 @@ const Dialog = {
11326
11615
  * </template>
11327
11616
  * ```
11328
11617
  */
11329
- Root: _sfc_main$58,
11618
+ Root: _sfc_main$59,
11330
11619
  /**
11331
11620
  * Activator component that opens the dialog.
11332
11621
  *
@@ -11345,7 +11634,7 @@ const Dialog = {
11345
11634
  * </template>
11346
11635
  * ```
11347
11636
  */
11348
- Activator: _sfc_main$54,
11637
+ Activator: _sfc_main$55,
11349
11638
  /**
11350
11639
  * Content container for the dialog using native `<dialog>` element.
11351
11640
  *
@@ -11366,7 +11655,7 @@ const Dialog = {
11366
11655
  * </template>
11367
11656
  * ```
11368
11657
  */
11369
- Content: _sfc_main$56,
11658
+ Content: _sfc_main$57,
11370
11659
  /**
11371
11660
  * Title component for accessible dialog labeling.
11372
11661
  *
@@ -11383,7 +11672,7 @@ const Dialog = {
11383
11672
  * </template>
11384
11673
  * ```
11385
11674
  */
11386
- Title: _sfc_main$59,
11675
+ Title: _sfc_main$60,
11387
11676
  /**
11388
11677
  * Description component for accessible dialog description.
11389
11678
  *
@@ -11402,7 +11691,7 @@ const Dialog = {
11402
11691
  * </template>
11403
11692
  * ```
11404
11693
  */
11405
- Description: _sfc_main$57,
11694
+ Description: _sfc_main$58,
11406
11695
  /**
11407
11696
  * Close button component for closing the dialog.
11408
11697
  *
@@ -11419,12 +11708,12 @@ const Dialog = {
11419
11708
  * </template>
11420
11709
  * ```
11421
11710
  */
11422
- Close: _sfc_main$55
11711
+ Close: _sfc_main$56
11423
11712
  };
11424
11713
  //#endregion
11425
11714
  //#region src/components/ExpansionPanel/ExpansionPanelGroup.vue
11426
11715
  const [useExpansionPanelGroup, provideExpansionPanelGroup] = createContext();
11427
- const _sfc_main$63 = /* @__PURE__ */ defineComponent({
11716
+ const _sfc_main$64 = /* @__PURE__ */ defineComponent({
11428
11717
  name: "ExpansionPanelGroup",
11429
11718
  __name: "ExpansionPanelGroup",
11430
11719
  props: /* @__PURE__ */ mergeModels({
@@ -11484,7 +11773,7 @@ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
11484
11773
  //#endregion
11485
11774
  //#region src/components/ExpansionPanel/ExpansionPanelRoot.vue
11486
11775
  const [useExpansionPanelRoot, provideExpansionPanelRoot] = createContext({ suffix: "item" });
11487
- const _sfc_main$65 = /* @__PURE__ */ defineComponent({
11776
+ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
11488
11777
  name: "ExpansionPanelRoot",
11489
11778
  __name: "ExpansionPanelRoot",
11490
11779
  props: {
@@ -11530,7 +11819,7 @@ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
11530
11819
  });
11531
11820
  //#endregion
11532
11821
  //#region src/components/ExpansionPanel/ExpansionPanelActivator.vue
11533
- const _sfc_main$60 = /* @__PURE__ */ defineComponent({
11822
+ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
11534
11823
  name: "ExpansionPanelActivator",
11535
11824
  __name: "ExpansionPanelActivator",
11536
11825
  props: {
@@ -11567,7 +11856,7 @@ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
11567
11856
  "disabled": __props.as === "button" ? item.isDisabled.value : void 0,
11568
11857
  "type": __props.as === "button" ? "button" : void 0,
11569
11858
  "onClick": onClick,
11570
- onKeydown
11859
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
11571
11860
  }
11572
11861
  }));
11573
11862
  return (_ctx, _cache) => {
@@ -11583,7 +11872,7 @@ const _sfc_main$60 = /* @__PURE__ */ defineComponent({
11583
11872
  });
11584
11873
  //#endregion
11585
11874
  //#region src/components/ExpansionPanel/ExpansionPanelContent.vue
11586
- const _sfc_main$61 = /* @__PURE__ */ defineComponent({
11875
+ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
11587
11876
  name: "ExpansionPanelContent",
11588
11877
  __name: "ExpansionPanelContent",
11589
11878
  props: {
@@ -11616,7 +11905,7 @@ const _sfc_main$61 = /* @__PURE__ */ defineComponent({
11616
11905
  });
11617
11906
  //#endregion
11618
11907
  //#region src/components/ExpansionPanel/ExpansionPanelCue.vue
11619
- const _sfc_main$62 = /* @__PURE__ */ defineComponent({
11908
+ const _sfc_main$63 = /* @__PURE__ */ defineComponent({
11620
11909
  name: "ExpansionPanelCue",
11621
11910
  __name: "ExpansionPanelCue",
11622
11911
  props: {
@@ -11646,7 +11935,7 @@ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
11646
11935
  });
11647
11936
  //#endregion
11648
11937
  //#region src/components/ExpansionPanel/ExpansionPanelHeader.vue
11649
- const _sfc_main$64 = /* @__PURE__ */ defineComponent({
11938
+ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
11650
11939
  name: "ExpansionPanelHeader",
11651
11940
  __name: "ExpansionPanelHeader",
11652
11941
  props: {
@@ -11707,7 +11996,7 @@ const ExpansionPanel = {
11707
11996
  *
11708
11997
  * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
11709
11998
  */
11710
- Group: _sfc_main$63,
11999
+ Group: _sfc_main$64,
11711
12000
  /**
11712
12001
  * Root component representing a single expansion panel.
11713
12002
  *
@@ -11734,7 +12023,7 @@ const ExpansionPanel = {
11734
12023
  * </template>
11735
12024
  * ```
11736
12025
  */
11737
- Root: _sfc_main$65,
12026
+ Root: _sfc_main$66,
11738
12027
  /**
11739
12028
  * (optional) Component for the header section of an expansion panel item.
11740
12029
  *
@@ -11755,7 +12044,7 @@ const ExpansionPanel = {
11755
12044
  * </template>
11756
12045
  * ```
11757
12046
  */
11758
- Header: _sfc_main$64,
12047
+ Header: _sfc_main$65,
11759
12048
  /**
11760
12049
  * Component for the activator section of an expansion panel header.
11761
12050
  *
@@ -11774,7 +12063,7 @@ const ExpansionPanel = {
11774
12063
  * </template>
11775
12064
  * ```
11776
12065
  */
11777
- Activator: _sfc_main$60,
12066
+ Activator: _sfc_main$61,
11778
12067
  /**
11779
12068
  * Visual cue for expansion state (e.g., chevron icon).
11780
12069
  *
@@ -11794,7 +12083,7 @@ const ExpansionPanel = {
11794
12083
  * </template>
11795
12084
  * ```
11796
12085
  */
11797
- Cue: _sfc_main$62,
12086
+ Cue: _sfc_main$63,
11798
12087
  /**
11799
12088
  * Component for the content section of an expansion panel item.
11800
12089
  *
@@ -11813,7 +12102,7 @@ const ExpansionPanel = {
11813
12102
  * </template>
11814
12103
  * ```
11815
12104
  */
11816
- Content: _sfc_main$61
12105
+ Content: _sfc_main$62
11817
12106
  };
11818
12107
  //#endregion
11819
12108
  //#region src/composables/createForm/index.ts
@@ -11971,7 +12260,7 @@ function useForm(namespace = "v0:form") {
11971
12260
  }
11972
12261
  //#endregion
11973
12262
  //#region src/components/Form/Form.vue
11974
- const _sfc_main$66 = /* @__PURE__ */ defineComponent({
12263
+ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
11975
12264
  name: "Form",
11976
12265
  inheritAttrs: false,
11977
12266
  __name: "Form",
@@ -12051,7 +12340,7 @@ const _sfc_main$66 = /* @__PURE__ */ defineComponent({
12051
12340
  //#endregion
12052
12341
  //#region src/components/Group/GroupRoot.vue
12053
12342
  const [useGroupRoot, provideGroupRoot] = createContext();
12054
- const _sfc_main$68 = /* @__PURE__ */ defineComponent({
12343
+ const _sfc_main$69 = /* @__PURE__ */ defineComponent({
12055
12344
  name: "GroupRoot",
12056
12345
  __name: "GroupRoot",
12057
12346
  props: /* @__PURE__ */ mergeModels({
@@ -12103,7 +12392,7 @@ const _sfc_main$68 = /* @__PURE__ */ defineComponent({
12103
12392
  });
12104
12393
  //#endregion
12105
12394
  //#region src/components/Group/GroupItem.vue
12106
- const _sfc_main$67 = /* @__PURE__ */ defineComponent({
12395
+ const _sfc_main$68 = /* @__PURE__ */ defineComponent({
12107
12396
  name: "GroupItem",
12108
12397
  __name: "GroupItem",
12109
12398
  props: {
@@ -12127,6 +12416,11 @@ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
12127
12416
  if (toValue(isDisabled)) return;
12128
12417
  ticket.toggle();
12129
12418
  }
12419
+ function onKeydown(e) {
12420
+ if (e.key !== " ") return;
12421
+ e.preventDefault();
12422
+ onClick();
12423
+ }
12130
12424
  onBeforeUnmount(() => {
12131
12425
  group.unregister(ticket.id);
12132
12426
  });
@@ -12144,12 +12438,14 @@ const _sfc_main$67 = /* @__PURE__ */ defineComponent({
12144
12438
  unmix: ticket.unmix,
12145
12439
  attrs: {
12146
12440
  "role": "checkbox",
12441
+ "tabindex": toValue(isDisabled) ? -1 : 0,
12147
12442
  "aria-checked": toValue(ticket.isMixed) ? "mixed" : toValue(ticket.isSelected),
12148
12443
  "aria-disabled": toValue(isDisabled),
12149
12444
  "data-selected": toValue(ticket.isSelected) || void 0,
12150
12445
  "data-disabled": toValue(isDisabled) || void 0,
12151
12446
  "data-mixed": toValue(ticket.isMixed) || void 0,
12152
- "onClick": onClick
12447
+ "onClick": onClick,
12448
+ "onKeydown": onKeydown
12153
12449
  }
12154
12450
  }));
12155
12451
  return (_ctx, _cache) => {
@@ -12185,7 +12481,7 @@ const Group = {
12185
12481
  * </template>
12186
12482
  * ```
12187
12483
  */
12188
- Root: _sfc_main$68,
12484
+ Root: _sfc_main$69,
12189
12485
  /**
12190
12486
  * Item component for multi-selection groups.
12191
12487
  *
@@ -12204,7 +12500,7 @@ const Group = {
12204
12500
  * </template>
12205
12501
  * ```
12206
12502
  */
12207
- Item: _sfc_main$67
12503
+ Item: _sfc_main$68
12208
12504
  };
12209
12505
  //#endregion
12210
12506
  //#region src/composables/useIntersectionObserver/index.ts
@@ -12385,7 +12681,7 @@ function useElementIntersection(target, options = {}) {
12385
12681
  //#endregion
12386
12682
  //#region src/components/Image/ImageRoot.vue
12387
12683
  const [useImageRoot, provideImageRoot] = createContext();
12388
- const _sfc_main$72 = /* @__PURE__ */ defineComponent({
12684
+ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
12389
12685
  name: "ImageRoot",
12390
12686
  __name: "ImageRoot",
12391
12687
  props: {
@@ -12438,7 +12734,7 @@ const _sfc_main$72 = /* @__PURE__ */ defineComponent({
12438
12734
  });
12439
12735
  //#endregion
12440
12736
  //#region src/components/Image/ImageFallback.vue
12441
- const _sfc_main$69 = /* @__PURE__ */ defineComponent({
12737
+ const _sfc_main$70 = /* @__PURE__ */ defineComponent({
12442
12738
  name: "ImageFallback",
12443
12739
  __name: "ImageFallback",
12444
12740
  props: {
@@ -12468,7 +12764,7 @@ const _sfc_main$69 = /* @__PURE__ */ defineComponent({
12468
12764
  });
12469
12765
  //#endregion
12470
12766
  //#region src/components/Image/ImageImg.vue
12471
- const _sfc_main$70 = /* @__PURE__ */ defineComponent({
12767
+ const _sfc_main$71 = /* @__PURE__ */ defineComponent({
12472
12768
  name: "ImageImg",
12473
12769
  __name: "ImageImg",
12474
12770
  props: {
@@ -12539,7 +12835,7 @@ const _sfc_main$70 = /* @__PURE__ */ defineComponent({
12539
12835
  });
12540
12836
  //#endregion
12541
12837
  //#region src/components/Image/ImagePlaceholder.vue
12542
- const _sfc_main$71 = /* @__PURE__ */ defineComponent({
12838
+ const _sfc_main$72 = /* @__PURE__ */ defineComponent({
12543
12839
  name: "ImagePlaceholder",
12544
12840
  __name: "ImagePlaceholder",
12545
12841
  props: {
@@ -12597,7 +12893,7 @@ const Image = {
12597
12893
  * </template>
12598
12894
  * ```
12599
12895
  */
12600
- Root: _sfc_main$72,
12896
+ Root: _sfc_main$73,
12601
12897
  /**
12602
12898
  * The `<img>` element. Reads the gated source from context and reports
12603
12899
  * load/error events.
@@ -12609,7 +12905,7 @@ const Image = {
12609
12905
  * <Image.Img alt="Description" width="800" height="600" />
12610
12906
  * ```
12611
12907
  */
12612
- Img: _sfc_main$70,
12908
+ Img: _sfc_main$71,
12613
12909
  /**
12614
12910
  * Placeholder content shown while the image is idle or loading.
12615
12911
  *
@@ -12622,7 +12918,7 @@ const Image = {
12622
12918
  * </Image.Placeholder>
12623
12919
  * ```
12624
12920
  */
12625
- Placeholder: _sfc_main$71,
12921
+ Placeholder: _sfc_main$72,
12626
12922
  /**
12627
12923
  * Fallback content shown when the image fails to load. Exposes `retry()`
12628
12924
  * via slot props.
@@ -12636,7 +12932,7 @@ const Image = {
12636
12932
  * </Image.Fallback>
12637
12933
  * ```
12638
12934
  */
12639
- Fallback: _sfc_main$69
12935
+ Fallback: _sfc_main$70
12640
12936
  };
12641
12937
  //#endregion
12642
12938
  //#region src/composables/useRules/adapters/standard.ts
@@ -13069,7 +13365,7 @@ function parseValidateOn$1(value) {
13069
13365
  modifier
13070
13366
  };
13071
13367
  }
13072
- const _sfc_main$76 = /* @__PURE__ */ defineComponent({
13368
+ const _sfc_main$77 = /* @__PURE__ */ defineComponent({
13073
13369
  name: "InputRoot",
13074
13370
  inheritAttrs: false,
13075
13371
  __name: "InputRoot",
@@ -13152,7 +13448,7 @@ const _sfc_main$76 = /* @__PURE__ */ defineComponent({
13152
13448
  id: input.id,
13153
13449
  label: __props.label,
13154
13450
  name: __props.name,
13155
- type: __props.type,
13451
+ type: toRef(() => __props.type),
13156
13452
  form: __props.form,
13157
13453
  required: __props.required,
13158
13454
  descriptionId: input.descriptionId,
@@ -13209,7 +13505,7 @@ const _sfc_main$76 = /* @__PURE__ */ defineComponent({
13209
13505
  });
13210
13506
  //#endregion
13211
13507
  //#region src/components/Input/InputControl.vue
13212
- const _sfc_main$73 = /* @__PURE__ */ defineComponent({
13508
+ const _sfc_main$74 = /* @__PURE__ */ defineComponent({
13213
13509
  name: "InputControl",
13214
13510
  inheritAttrs: false,
13215
13511
  __name: "InputControl",
@@ -13241,7 +13537,7 @@ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
13241
13537
  const isFocused = root.isFocused.value;
13242
13538
  return {
13243
13539
  "id": root.id,
13244
- "type": root.type,
13540
+ "type": root.type.value,
13245
13541
  "name": root.name,
13246
13542
  "value": root.value.value,
13247
13543
  "form": root.form,
@@ -13282,7 +13578,7 @@ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
13282
13578
  });
13283
13579
  //#endregion
13284
13580
  //#region src/components/Input/InputDescription.vue
13285
- const _sfc_main$74 = /* @__PURE__ */ defineComponent({
13581
+ const _sfc_main$75 = /* @__PURE__ */ defineComponent({
13286
13582
  name: "InputDescription",
13287
13583
  inheritAttrs: false,
13288
13584
  __name: "InputDescription",
@@ -13312,7 +13608,7 @@ const _sfc_main$74 = /* @__PURE__ */ defineComponent({
13312
13608
  });
13313
13609
  //#endregion
13314
13610
  //#region src/components/Input/InputError.vue
13315
- const _sfc_main$75 = /* @__PURE__ */ defineComponent({
13611
+ const _sfc_main$76 = /* @__PURE__ */ defineComponent({
13316
13612
  name: "InputError",
13317
13613
  inheritAttrs: false,
13318
13614
  __name: "InputError",
@@ -13394,7 +13690,7 @@ const Input = {
13394
13690
  * </Input.Root>
13395
13691
  * ```
13396
13692
  */
13397
- Control: _sfc_main$73,
13693
+ Control: _sfc_main$74,
13398
13694
  /**
13399
13695
  * Help text component connected via aria-describedby.
13400
13696
  *
@@ -13411,7 +13707,7 @@ const Input = {
13411
13707
  * </Input.Root>
13412
13708
  * ```
13413
13709
  */
13414
- Description: _sfc_main$74,
13710
+ Description: _sfc_main$75,
13415
13711
  /**
13416
13712
  * Error message component with aria-live announcements.
13417
13713
  *
@@ -13431,7 +13727,7 @@ const Input = {
13431
13727
  * </Input.Root>
13432
13728
  * ```
13433
13729
  */
13434
- Error: _sfc_main$75,
13730
+ Error: _sfc_main$76,
13435
13731
  /**
13436
13732
  * Root component for text inputs with validation.
13437
13733
  *
@@ -13460,11 +13756,11 @@ const Input = {
13460
13756
  * </template>
13461
13757
  * ```
13462
13758
  */
13463
- Root: _sfc_main$76
13759
+ Root: _sfc_main$77
13464
13760
  };
13465
13761
  //#endregion
13466
13762
  //#region src/components/Locale/Locale.vue
13467
- const _sfc_main$77 = /* @__PURE__ */ defineComponent({
13763
+ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
13468
13764
  name: "Locale",
13469
13765
  inheritAttrs: false,
13470
13766
  __name: "Locale",
@@ -13756,13 +14052,14 @@ function parseValidateOn(value) {
13756
14052
  modifier
13757
14053
  };
13758
14054
  }
13759
- const _sfc_main$83 = /* @__PURE__ */ defineComponent({
14055
+ const _sfc_main$84 = /* @__PURE__ */ defineComponent({
13760
14056
  name: "NumberFieldRoot",
13761
14057
  inheritAttrs: false,
13762
14058
  __name: "NumberFieldRoot",
13763
14059
  props: /* @__PURE__ */ mergeModels({
13764
14060
  id: { default: () => /* @__PURE__ */ useId() },
13765
14061
  label: {},
14062
+ ariaLabelledby: {},
13766
14063
  name: {},
13767
14064
  form: {},
13768
14065
  required: { type: Boolean },
@@ -13852,6 +14149,7 @@ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
13852
14149
  input,
13853
14150
  id: input.id,
13854
14151
  label: __props.label,
14152
+ ariaLabelledby: __props.ariaLabelledby,
13855
14153
  name: __props.name,
13856
14154
  form: __props.form,
13857
14155
  required: __props.required,
@@ -13911,7 +14209,7 @@ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
13911
14209
  });
13912
14210
  //#endregion
13913
14211
  //#region src/components/NumberField/NumberFieldControl.vue
13914
- const _sfc_main$78 = /* @__PURE__ */ defineComponent({
14212
+ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
13915
14213
  name: "NumberFieldControl",
13916
14214
  inheritAttrs: false,
13917
14215
  __name: "NumberFieldControl",
@@ -13923,6 +14221,7 @@ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
13923
14221
  setup(__props) {
13924
14222
  const attrs = useAttrs();
13925
14223
  const root = useNumberFieldRoot(__props.namespace);
14224
+ const locale = useLocale();
13926
14225
  const leap = Math.max(1, Math.round(root.numeric.leap / root.numeric.step));
13927
14226
  const text = shallowRef("");
13928
14227
  function syncText() {
@@ -14018,7 +14317,8 @@ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
14018
14317
  "aria-valuemin": Number.isFinite(root.numeric.min) ? root.numeric.min : void 0,
14019
14318
  "aria-valuemax": Number.isFinite(root.numeric.max) ? root.numeric.max : void 0,
14020
14319
  "aria-invalid": invalid || void 0,
14021
- "aria-label": root.label || void 0,
14320
+ "aria-label": root.ariaLabelledby ? void 0 : root.label || (locale.ti("NumberField.label") ?? "Number"),
14321
+ "aria-labelledby": root.ariaLabelledby || void 0,
14022
14322
  "aria-describedby": describedby.value,
14023
14323
  "aria-errormessage": root.hasError.value && root.errors.value.length > 0 ? root.errorId : void 0,
14024
14324
  "aria-required": root.required || void 0,
@@ -14054,7 +14354,7 @@ const _sfc_main$78 = /* @__PURE__ */ defineComponent({
14054
14354
  });
14055
14355
  //#endregion
14056
14356
  //#region src/components/NumberField/NumberFieldDecrement.vue
14057
- const _sfc_main$79 = /* @__PURE__ */ defineComponent({
14357
+ const _sfc_main$80 = /* @__PURE__ */ defineComponent({
14058
14358
  name: "NumberFieldDecrement",
14059
14359
  inheritAttrs: false,
14060
14360
  __name: "NumberFieldDecrement",
@@ -14128,7 +14428,7 @@ const _sfc_main$79 = /* @__PURE__ */ defineComponent({
14128
14428
  });
14129
14429
  //#endregion
14130
14430
  //#region src/components/NumberField/NumberFieldDescription.vue
14131
- const _sfc_main$80 = /* @__PURE__ */ defineComponent({
14431
+ const _sfc_main$81 = /* @__PURE__ */ defineComponent({
14132
14432
  name: "NumberFieldDescription",
14133
14433
  inheritAttrs: false,
14134
14434
  __name: "NumberFieldDescription",
@@ -14158,7 +14458,7 @@ const _sfc_main$80 = /* @__PURE__ */ defineComponent({
14158
14458
  });
14159
14459
  //#endregion
14160
14460
  //#region src/components/NumberField/NumberFieldError.vue
14161
- const _sfc_main$81 = /* @__PURE__ */ defineComponent({
14461
+ const _sfc_main$82 = /* @__PURE__ */ defineComponent({
14162
14462
  name: "NumberFieldError",
14163
14463
  inheritAttrs: false,
14164
14464
  __name: "NumberFieldError",
@@ -14195,7 +14495,7 @@ const _sfc_main$81 = /* @__PURE__ */ defineComponent({
14195
14495
  });
14196
14496
  //#endregion
14197
14497
  //#region src/components/NumberField/NumberFieldIncrement.vue
14198
- const _sfc_main$82 = /* @__PURE__ */ defineComponent({
14498
+ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
14199
14499
  name: "NumberFieldIncrement",
14200
14500
  inheritAttrs: false,
14201
14501
  __name: "NumberFieldIncrement",
@@ -14345,7 +14645,7 @@ function useRaf(callback) {
14345
14645
  }
14346
14646
  //#endregion
14347
14647
  //#region src/components/NumberField/NumberFieldScrub.vue
14348
- const _sfc_main$84 = /* @__PURE__ */ defineComponent({
14648
+ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
14349
14649
  name: "NumberFieldScrub",
14350
14650
  inheritAttrs: false,
14351
14651
  __name: "NumberFieldScrub",
@@ -14456,7 +14756,7 @@ const NumberField = {
14456
14756
  * </template>
14457
14757
  * ```
14458
14758
  */
14459
- Root: _sfc_main$83,
14759
+ Root: _sfc_main$84,
14460
14760
  /**
14461
14761
  * Native input element with spinbutton semantics.
14462
14762
  *
@@ -14471,7 +14771,7 @@ const NumberField = {
14471
14771
  * <NumberField.Control />
14472
14772
  * ```
14473
14773
  */
14474
- Control: _sfc_main$78,
14774
+ Control: _sfc_main$79,
14475
14775
  /**
14476
14776
  * Increment button with spin-on-hold behavior.
14477
14777
  *
@@ -14486,7 +14786,7 @@ const NumberField = {
14486
14786
  * <NumberField.Increment>+</NumberField.Increment>
14487
14787
  * ```
14488
14788
  */
14489
- Increment: _sfc_main$82,
14789
+ Increment: _sfc_main$83,
14490
14790
  /**
14491
14791
  * Decrement button with spin-on-hold behavior.
14492
14792
  *
@@ -14501,7 +14801,7 @@ const NumberField = {
14501
14801
  * <NumberField.Decrement>-</NumberField.Decrement>
14502
14802
  * ```
14503
14803
  */
14504
- Decrement: _sfc_main$79,
14804
+ Decrement: _sfc_main$80,
14505
14805
  /**
14506
14806
  * Click-and-drag scrub control using Pointer Lock API.
14507
14807
  *
@@ -14516,7 +14816,7 @@ const NumberField = {
14516
14816
  * <NumberField.Scrub>Amount</NumberField.Scrub>
14517
14817
  * ```
14518
14818
  */
14519
- Scrub: _sfc_main$84,
14819
+ Scrub: _sfc_main$85,
14520
14820
  /**
14521
14821
  * Help text component connected via aria-describedby.
14522
14822
  *
@@ -14530,7 +14830,7 @@ const NumberField = {
14530
14830
  * <NumberField.Description>Enter a value between 0 and 100</NumberField.Description>
14531
14831
  * ```
14532
14832
  */
14533
- Description: _sfc_main$80,
14833
+ Description: _sfc_main$81,
14534
14834
  /**
14535
14835
  * Error message component connected via aria-errormessage.
14536
14836
  *
@@ -14546,7 +14846,7 @@ const NumberField = {
14546
14846
  * </NumberField.Error>
14547
14847
  * ```
14548
14848
  */
14549
- Error: _sfc_main$81
14849
+ Error: _sfc_main$82
14550
14850
  };
14551
14851
  //#endregion
14552
14852
  //#region src/components/Overflow/OverflowRoot.vue
@@ -14567,7 +14867,7 @@ const NumberField = {
14567
14867
  * `createOverflow` as a getter so capacity recomputes when the prop changes.
14568
14868
  */
14569
14869
  const [useOverflowRoot, provideOverflowRoot] = createContext();
14570
- const _sfc_main$87 = /* @__PURE__ */ defineComponent({
14870
+ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
14571
14871
  name: "OverflowRoot",
14572
14872
  __name: "OverflowRoot",
14573
14873
  props: {
@@ -14656,7 +14956,7 @@ const _sfc_main$87 = /* @__PURE__ */ defineComponent({
14656
14956
  * slot consumer must spread `slotProps.attrs` onto their own element to
14657
14957
  * preserve the data hook and live-region semantics.
14658
14958
  */
14659
- const _sfc_main$85 = /* @__PURE__ */ defineComponent({
14959
+ const _sfc_main$86 = /* @__PURE__ */ defineComponent({
14660
14960
  name: "OverflowIndicator",
14661
14961
  __name: "OverflowIndicator",
14662
14962
  props: {
@@ -14725,7 +15025,7 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
14725
15025
  * so the slot consumer is responsible for honoring `isHidden` themselves —
14726
15026
  * read it from `slotProps.isHidden` and conditionally render or apply CSS.
14727
15027
  */
14728
- const _sfc_main$86 = /* @__PURE__ */ defineComponent({
15028
+ const _sfc_main$87 = /* @__PURE__ */ defineComponent({
14729
15029
  name: "OverflowItem",
14730
15030
  __name: "OverflowItem",
14731
15031
  props: {
@@ -14821,7 +15121,7 @@ const Overflow = {
14821
15121
  * </template>
14822
15122
  * ```
14823
15123
  */
14824
- Root: _sfc_main$87,
15124
+ Root: _sfc_main$88,
14825
15125
  /**
14826
15126
  * Individual overflow item. Registers with Root and self-measures.
14827
15127
  * Hidden when its index falls outside capacity.
@@ -14837,7 +15137,7 @@ const Overflow = {
14837
15137
  * </template>
14838
15138
  * ```
14839
15139
  */
14840
- Item: _sfc_main$86,
15140
+ Item: _sfc_main$87,
14841
15141
  /**
14842
15142
  * Indicator that renders only when items are hidden. Exposes the
14843
15143
  * hidden count and the array of hidden tickets via slot props.
@@ -14853,7 +15153,7 @@ const Overflow = {
14853
15153
  * </template>
14854
15154
  * ```
14855
15155
  */
14856
- Indicator: _sfc_main$85
15156
+ Indicator: _sfc_main$86
14857
15157
  };
14858
15158
  //#endregion
14859
15159
  //#region src/composables/createPagination/index.ts
@@ -15103,7 +15403,7 @@ function usePagination(namespace = "v0:pagination") {
15103
15403
  const [usePaginationRoot, providePaginationRoot] = createContext();
15104
15404
  const [usePaginationControls, providePaginationControls] = createContext({ suffix: "controls" });
15105
15405
  const [usePaginationItems, providePaginationItems] = createContext({ suffix: "items" });
15106
- const _sfc_main$94 = /* @__PURE__ */ defineComponent({
15406
+ const _sfc_main$95 = /* @__PURE__ */ defineComponent({
15107
15407
  name: "PaginationRoot",
15108
15408
  __name: "PaginationRoot",
15109
15409
  props: /* @__PURE__ */ mergeModels({
@@ -15205,7 +15505,7 @@ const _sfc_main$94 = /* @__PURE__ */ defineComponent({
15205
15505
  });
15206
15506
  //#endregion
15207
15507
  //#region src/components/Pagination/PaginationEllipsis.vue
15208
- const _sfc_main$88 = /* @__PURE__ */ defineComponent({
15508
+ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
15209
15509
  name: "PaginationEllipsis",
15210
15510
  __name: "PaginationEllipsis",
15211
15511
  props: {
@@ -15248,7 +15548,7 @@ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
15248
15548
  });
15249
15549
  //#endregion
15250
15550
  //#region src/components/Pagination/PaginationFirst.vue
15251
- const _sfc_main$89 = /* @__PURE__ */ defineComponent({
15551
+ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
15252
15552
  name: "PaginationFirst",
15253
15553
  __name: "PaginationFirst",
15254
15554
  props: {
@@ -15275,6 +15575,12 @@ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
15275
15575
  if (isDisabled.value) return;
15276
15576
  pagination.first();
15277
15577
  }
15578
+ function onKeydown(e) {
15579
+ if (e.key === "Enter" || e.key === " ") {
15580
+ e.preventDefault();
15581
+ first();
15582
+ }
15583
+ }
15278
15584
  const slotProps = toRef(() => ({
15279
15585
  isDisabled: isDisabled.value,
15280
15586
  first,
@@ -15285,7 +15591,9 @@ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
15285
15591
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
15286
15592
  "tabindex": isDisabled.value ? -1 : 0,
15287
15593
  "type": __props.as === "button" ? "button" : void 0,
15288
- "onClick": first
15594
+ "role": __props.as === "button" ? void 0 : "button",
15595
+ "onClick": first,
15596
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
15289
15597
  }
15290
15598
  }));
15291
15599
  onBeforeUnmount(() => controls.unregister(__props.id));
@@ -15305,7 +15613,7 @@ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
15305
15613
  });
15306
15614
  //#endregion
15307
15615
  //#region src/components/Pagination/PaginationItem.vue
15308
- const _sfc_main$90 = /* @__PURE__ */ defineComponent({
15616
+ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
15309
15617
  name: "PaginationItem",
15310
15618
  __name: "PaginationItem",
15311
15619
  props: {
@@ -15339,6 +15647,12 @@ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
15339
15647
  if (__props.disabled) return;
15340
15648
  pagination.select(__props.value);
15341
15649
  }
15650
+ function onKeydown(e) {
15651
+ if (e.key === "Enter" || e.key === " ") {
15652
+ e.preventDefault();
15653
+ select();
15654
+ }
15655
+ }
15342
15656
  const slotProps = toRef(() => ({
15343
15657
  page: __props.value,
15344
15658
  isSelected: isSelected.value,
@@ -15353,7 +15667,9 @@ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
15353
15667
  "disabled": __props.as === "button" ? __props.disabled : void 0,
15354
15668
  "tabindex": __props.disabled ? -1 : 0,
15355
15669
  "type": __props.as === "button" ? "button" : void 0,
15356
- "onClick": select
15670
+ "role": __props.as === "button" ? void 0 : "button",
15671
+ "onClick": select,
15672
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
15357
15673
  }
15358
15674
  }));
15359
15675
  onBeforeUnmount(() => items.unregister(__props.id));
@@ -15373,7 +15689,7 @@ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
15373
15689
  });
15374
15690
  //#endregion
15375
15691
  //#region src/components/Pagination/PaginationLast.vue
15376
- const _sfc_main$91 = /* @__PURE__ */ defineComponent({
15692
+ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
15377
15693
  name: "PaginationLast",
15378
15694
  __name: "PaginationLast",
15379
15695
  props: {
@@ -15400,6 +15716,12 @@ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
15400
15716
  if (isDisabled.value) return;
15401
15717
  pagination.last();
15402
15718
  }
15719
+ function onKeydown(e) {
15720
+ if (e.key === "Enter" || e.key === " ") {
15721
+ e.preventDefault();
15722
+ last();
15723
+ }
15724
+ }
15403
15725
  const slotProps = toRef(() => ({
15404
15726
  isDisabled: isDisabled.value,
15405
15727
  last,
@@ -15410,7 +15732,9 @@ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
15410
15732
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
15411
15733
  "tabindex": isDisabled.value ? -1 : 0,
15412
15734
  "type": __props.as === "button" ? "button" : void 0,
15413
- "onClick": last
15735
+ "role": __props.as === "button" ? void 0 : "button",
15736
+ "onClick": last,
15737
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
15414
15738
  }
15415
15739
  }));
15416
15740
  onBeforeUnmount(() => controls.unregister(__props.id));
@@ -15430,7 +15754,7 @@ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
15430
15754
  });
15431
15755
  //#endregion
15432
15756
  //#region src/components/Pagination/PaginationNext.vue
15433
- const _sfc_main$92 = /* @__PURE__ */ defineComponent({
15757
+ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
15434
15758
  name: "PaginationNext",
15435
15759
  __name: "PaginationNext",
15436
15760
  props: {
@@ -15457,6 +15781,12 @@ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
15457
15781
  if (isDisabled.value) return;
15458
15782
  pagination.next();
15459
15783
  }
15784
+ function onKeydown(e) {
15785
+ if (e.key === "Enter" || e.key === " ") {
15786
+ e.preventDefault();
15787
+ next();
15788
+ }
15789
+ }
15460
15790
  const slotProps = toRef(() => ({
15461
15791
  isDisabled: isDisabled.value,
15462
15792
  next,
@@ -15467,7 +15797,9 @@ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
15467
15797
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
15468
15798
  "tabindex": isDisabled.value ? -1 : 0,
15469
15799
  "type": __props.as === "button" ? "button" : void 0,
15470
- "onClick": next
15800
+ "role": __props.as === "button" ? void 0 : "button",
15801
+ "onClick": next,
15802
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
15471
15803
  }
15472
15804
  }));
15473
15805
  onBeforeUnmount(() => controls.unregister(__props.id));
@@ -15487,7 +15819,7 @@ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
15487
15819
  });
15488
15820
  //#endregion
15489
15821
  //#region src/components/Pagination/PaginationPrev.vue
15490
- const _sfc_main$93 = /* @__PURE__ */ defineComponent({
15822
+ const _sfc_main$94 = /* @__PURE__ */ defineComponent({
15491
15823
  name: "PaginationPrev",
15492
15824
  __name: "PaginationPrev",
15493
15825
  props: {
@@ -15514,6 +15846,12 @@ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
15514
15846
  if (isDisabled.value) return;
15515
15847
  pagination.prev();
15516
15848
  }
15849
+ function onKeydown(e) {
15850
+ if (e.key === "Enter" || e.key === " ") {
15851
+ e.preventDefault();
15852
+ prev();
15853
+ }
15854
+ }
15517
15855
  const slotProps = toRef(() => ({
15518
15856
  isDisabled: isDisabled.value,
15519
15857
  prev,
@@ -15524,7 +15862,9 @@ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
15524
15862
  "disabled": __props.as === "button" ? isDisabled.value : void 0,
15525
15863
  "tabindex": isDisabled.value ? -1 : 0,
15526
15864
  "type": __props.as === "button" ? "button" : void 0,
15527
- "onClick": prev
15865
+ "role": __props.as === "button" ? void 0 : "button",
15866
+ "onClick": prev,
15867
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
15528
15868
  }
15529
15869
  }));
15530
15870
  onBeforeUnmount(() => controls.unregister(__props.id));
@@ -15544,7 +15884,7 @@ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
15544
15884
  });
15545
15885
  //#endregion
15546
15886
  //#region src/components/Pagination/PaginationStatus.vue
15547
- const _sfc_main$95 = /* @__PURE__ */ defineComponent({
15887
+ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
15548
15888
  name: "PaginationStatus",
15549
15889
  __name: "PaginationStatus",
15550
15890
  props: {
@@ -15629,7 +15969,7 @@ const Pagination = {
15629
15969
  * </template>
15630
15970
  * ```
15631
15971
  */
15632
- Root: _sfc_main$94,
15972
+ Root: _sfc_main$95,
15633
15973
  /**
15634
15974
  * Individual page button that navigates to a specific page number.
15635
15975
  *
@@ -15651,7 +15991,7 @@ const Pagination = {
15651
15991
  * </template>
15652
15992
  * ```
15653
15993
  */
15654
- Item: _sfc_main$90,
15994
+ Item: _sfc_main$91,
15655
15995
  /**
15656
15996
  * Navigation button that jumps to the first page. Automatically
15657
15997
  * disables when already on the first page.
@@ -15679,7 +16019,7 @@ const Pagination = {
15679
16019
  * </template>
15680
16020
  * ```
15681
16021
  */
15682
- First: _sfc_main$89,
16022
+ First: _sfc_main$90,
15683
16023
  /**
15684
16024
  * Navigation button that moves to the previous page. Automatically
15685
16025
  * disables when already on the first page.
@@ -15707,7 +16047,7 @@ const Pagination = {
15707
16047
  * </template>
15708
16048
  * ```
15709
16049
  */
15710
- Prev: _sfc_main$93,
16050
+ Prev: _sfc_main$94,
15711
16051
  /**
15712
16052
  * Visual indicator for omitted page numbers. Hidden from screen
15713
16053
  * readers via aria-hidden. Inherits ellipsis character from Root
@@ -15730,7 +16070,7 @@ const Pagination = {
15730
16070
  * </template>
15731
16071
  * ```
15732
16072
  */
15733
- Ellipsis: _sfc_main$88,
16073
+ Ellipsis: _sfc_main$89,
15734
16074
  /**
15735
16075
  * Navigation button that moves to the next page. Automatically
15736
16076
  * disables when already on the last page.
@@ -15758,7 +16098,7 @@ const Pagination = {
15758
16098
  * </template>
15759
16099
  * ```
15760
16100
  */
15761
- Next: _sfc_main$92,
16101
+ Next: _sfc_main$93,
15762
16102
  /**
15763
16103
  * Navigation button that jumps to the last page. Automatically
15764
16104
  * disables when already on the last page.
@@ -15786,7 +16126,7 @@ const Pagination = {
15786
16126
  * </template>
15787
16127
  * ```
15788
16128
  */
15789
- Last: _sfc_main$91,
16129
+ Last: _sfc_main$92,
15790
16130
  /**
15791
16131
  * Visually-hidden live region that announces page changes to screen
15792
16132
  * readers. Should be styled with sr-only/visually-hidden CSS.
@@ -15807,12 +16147,12 @@ const Pagination = {
15807
16147
  * </template>
15808
16148
  * ```
15809
16149
  */
15810
- Status: _sfc_main$95
16150
+ Status: _sfc_main$96
15811
16151
  };
15812
16152
  //#endregion
15813
16153
  //#region src/components/Popover/PopoverRoot.vue
15814
16154
  const [usePopoverContext, providePopoverContext] = createContext("v0:popover");
15815
- const _sfc_main$98 = /* @__PURE__ */ defineComponent({
16155
+ const _sfc_main$99 = /* @__PURE__ */ defineComponent({
15816
16156
  name: "PopoverRoot",
15817
16157
  __name: "PopoverRoot",
15818
16158
  props: /* @__PURE__ */ mergeModels({
@@ -15852,7 +16192,7 @@ const _sfc_main$98 = /* @__PURE__ */ defineComponent({
15852
16192
  });
15853
16193
  //#endregion
15854
16194
  //#region src/components/Popover/PopoverActivator.vue
15855
- const _sfc_main$96 = /* @__PURE__ */ defineComponent({
16195
+ const _sfc_main$97 = /* @__PURE__ */ defineComponent({
15856
16196
  name: "PopoverActivator",
15857
16197
  __name: "PopoverActivator",
15858
16198
  props: {
@@ -15867,15 +16207,24 @@ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
15867
16207
  if (__props.target) return { anchorName: `--${String(__props.target).replace(/[^a-zA-Z0-9_-]/g, "")}` };
15868
16208
  return context.anchorStyles.value;
15869
16209
  });
16210
+ function onKeydown(e) {
16211
+ if (e.key === "Enter" || e.key === " ") {
16212
+ e.preventDefault();
16213
+ context.toggle();
16214
+ }
16215
+ }
15870
16216
  const slotProps = toRef(() => ({
15871
16217
  isOpen: context.isOpen.value,
15872
16218
  attrs: {
15873
16219
  "popovertarget": toValue(popovertarget),
15874
16220
  "type": __props.as === "button" ? "button" : void 0,
16221
+ "role": __props.as === "button" ? void 0 : "button",
16222
+ "tabindex": 0,
15875
16223
  "aria-expanded": context.isOpen.value,
15876
16224
  "aria-controls": toValue(popovertarget),
15877
16225
  "data-open": context.isOpen.value || void 0,
15878
- "style": style.value
16226
+ "style": style.value,
16227
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
15879
16228
  }
15880
16229
  }));
15881
16230
  return (_ctx, _cache) => {
@@ -15891,7 +16240,7 @@ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
15891
16240
  });
15892
16241
  //#endregion
15893
16242
  //#region src/components/Popover/PopoverContent.vue
15894
- const _sfc_main$97 = /* @__PURE__ */ defineComponent({
16243
+ const _sfc_main$98 = /* @__PURE__ */ defineComponent({
15895
16244
  name: "PopoverContent",
15896
16245
  __name: "PopoverContent",
15897
16246
  props: {
@@ -15976,7 +16325,7 @@ const Popover = {
15976
16325
  * </template>
15977
16326
  * ```
15978
16327
  */
15979
- Root: _sfc_main$98,
16328
+ Root: _sfc_main$99,
15980
16329
  /**
15981
16330
  * Activator component that opens the popover.
15982
16331
  *
@@ -15995,7 +16344,7 @@ const Popover = {
15995
16344
  * </template>
15996
16345
  * ```
15997
16346
  */
15998
- Activator: _sfc_main$96,
16347
+ Activator: _sfc_main$97,
15999
16348
  /**
16000
16349
  * Component for the content section of a popover.
16001
16350
  *
@@ -16014,7 +16363,7 @@ const Popover = {
16014
16363
  * </template>
16015
16364
  * ```
16016
16365
  */
16017
- Content: _sfc_main$97
16366
+ Content: _sfc_main$98
16018
16367
  };
16019
16368
  //#endregion
16020
16369
  //#region src/components/Portal/Portal.vue
@@ -16030,7 +16379,7 @@ const Popover = {
16030
16379
  * Standardizes the teleport + stack registration pattern used by
16031
16380
  * overlay components (Snackbar, Toast, Dialog, etc.).
16032
16381
  */
16033
- const _sfc_main$99 = /* @__PURE__ */ defineComponent({
16382
+ const _sfc_main$100 = /* @__PURE__ */ defineComponent({
16034
16383
  name: "Portal",
16035
16384
  __name: "Portal",
16036
16385
  props: {
@@ -16215,7 +16564,7 @@ function usePresence(options) {
16215
16564
  * - Lifecycle events: `enter`, `leave`, `after-leave`
16216
16565
  * - Animation-agnostic: works with CSS, WAAPI, GSAP, or nothing
16217
16566
  */
16218
- const _sfc_main$100 = /* @__PURE__ */ defineComponent({
16567
+ const _sfc_main$101 = /* @__PURE__ */ defineComponent({
16219
16568
  name: "Presence",
16220
16569
  __name: "Presence",
16221
16570
  props: /* @__PURE__ */ mergeModels({
@@ -16275,7 +16624,7 @@ const _sfc_main$100 = /* @__PURE__ */ defineComponent({
16275
16624
  //#endregion
16276
16625
  //#region src/components/Progress/ProgressHiddenInput.vue
16277
16626
  const _hoisted_1$5 = ["name", "value"];
16278
- const _sfc_main$103 = /* @__PURE__ */ defineComponent({
16627
+ const _sfc_main$104 = /* @__PURE__ */ defineComponent({
16279
16628
  name: "ProgressHiddenInput",
16280
16629
  __name: "ProgressHiddenInput",
16281
16630
  props: { namespace: { default: "v0:progress:root" } },
@@ -16425,12 +16774,13 @@ function useProgress(namespace = "v0:progress") {
16425
16774
  //#endregion
16426
16775
  //#region src/components/Progress/ProgressRoot.vue
16427
16776
  const [useProgressRoot, provideProgressRoot] = createContext();
16428
- const _sfc_main$105 = /* @__PURE__ */ defineComponent({
16777
+ const _sfc_main$106 = /* @__PURE__ */ defineComponent({
16429
16778
  name: "ProgressRoot",
16430
16779
  inheritAttrs: false,
16431
16780
  __name: "ProgressRoot",
16432
16781
  props: /* @__PURE__ */ mergeModels({
16433
16782
  id: { default: () => /* @__PURE__ */ useId() },
16783
+ ariaLabel: {},
16434
16784
  modelValue: {},
16435
16785
  min: { default: 0 },
16436
16786
  max: { default: 100 },
@@ -16465,11 +16815,13 @@ const _sfc_main$105 = /* @__PURE__ */ defineComponent({
16465
16815
  });
16466
16816
  useProxyModel(progress, internal, { multiple: true });
16467
16817
  const labelId = `${__props.id}-label`;
16818
+ const hasLabel = shallowRef(false);
16468
16819
  const context = {
16469
16820
  ...progress,
16470
16821
  id: __props.id,
16471
16822
  name: __props.name,
16472
- labelId
16823
+ labelId,
16824
+ hasLabel
16473
16825
  };
16474
16826
  provideProgressRoot(__props.namespace, context);
16475
16827
  const slotProps = toRef(() => {
@@ -16488,7 +16840,8 @@ const _sfc_main$105 = /* @__PURE__ */ defineComponent({
16488
16840
  "aria-valuemin": __props.min,
16489
16841
  "aria-valuemax": __props.max,
16490
16842
  "aria-valuetext": indeterminate ? void 0 : `${Math.round(pct)}%`,
16491
- "aria-labelledby": labelId,
16843
+ "aria-label": hasLabel.value ? void 0 : __props.ariaLabel,
16844
+ "aria-labelledby": hasLabel.value ? labelId : void 0,
16492
16845
  "aria-busy": indeterminate ? true : void 0,
16493
16846
  "data-state": indeterminate ? "indeterminate" : "determinate",
16494
16847
  "data-complete": total >= __props.max ? true : void 0
@@ -16502,13 +16855,13 @@ const _sfc_main$105 = /* @__PURE__ */ defineComponent({
16502
16855
  }), {
16503
16856
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
16504
16857
  _: 3
16505
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$103, { key: 0 })) : createCommentVNode("v-if", true)], 64);
16858
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$104, { key: 0 })) : createCommentVNode("v-if", true)], 64);
16506
16859
  };
16507
16860
  }
16508
16861
  });
16509
16862
  //#endregion
16510
16863
  //#region src/components/Progress/ProgressBuffer.vue
16511
- const _sfc_main$101 = /* @__PURE__ */ defineComponent({
16864
+ const _sfc_main$102 = /* @__PURE__ */ defineComponent({
16512
16865
  name: "ProgressBuffer",
16513
16866
  inheritAttrs: false,
16514
16867
  __name: "ProgressBuffer",
@@ -16554,7 +16907,7 @@ const _sfc_main$101 = /* @__PURE__ */ defineComponent({
16554
16907
  });
16555
16908
  //#endregion
16556
16909
  //#region src/components/Progress/ProgressFill.vue
16557
- const _sfc_main$102 = /* @__PURE__ */ defineComponent({
16910
+ const _sfc_main$103 = /* @__PURE__ */ defineComponent({
16558
16911
  name: "ProgressFill",
16559
16912
  inheritAttrs: false,
16560
16913
  __name: "ProgressFill",
@@ -16602,7 +16955,7 @@ const _sfc_main$102 = /* @__PURE__ */ defineComponent({
16602
16955
  });
16603
16956
  //#endregion
16604
16957
  //#region src/components/Progress/ProgressLabel.vue
16605
- const _sfc_main$104 = /* @__PURE__ */ defineComponent({
16958
+ const _sfc_main$105 = /* @__PURE__ */ defineComponent({
16606
16959
  name: "ProgressLabel",
16607
16960
  inheritAttrs: false,
16608
16961
  __name: "ProgressLabel",
@@ -16614,6 +16967,12 @@ const _sfc_main$104 = /* @__PURE__ */ defineComponent({
16614
16967
  setup(__props) {
16615
16968
  const attrs = useAttrs();
16616
16969
  const root = useProgressRoot(__props.namespace);
16970
+ onMounted(() => {
16971
+ root.hasLabel.value = true;
16972
+ });
16973
+ onBeforeUnmount(() => {
16974
+ root.hasLabel.value = false;
16975
+ });
16617
16976
  const slotProps = toRef(() => ({
16618
16977
  total: root.total.value,
16619
16978
  percent: root.percent.value,
@@ -16633,7 +16992,7 @@ const _sfc_main$104 = /* @__PURE__ */ defineComponent({
16633
16992
  });
16634
16993
  //#endregion
16635
16994
  //#region src/components/Progress/ProgressTrack.vue
16636
- const _sfc_main$106 = /* @__PURE__ */ defineComponent({
16995
+ const _sfc_main$107 = /* @__PURE__ */ defineComponent({
16637
16996
  name: "ProgressTrack",
16638
16997
  inheritAttrs: false,
16639
16998
  __name: "ProgressTrack",
@@ -16659,7 +17018,7 @@ const _sfc_main$106 = /* @__PURE__ */ defineComponent({
16659
17018
  });
16660
17019
  //#endregion
16661
17020
  //#region src/components/Progress/ProgressValue.vue
16662
- const _sfc_main$107 = /* @__PURE__ */ defineComponent({
17021
+ const _sfc_main$108 = /* @__PURE__ */ defineComponent({
16663
17022
  name: "ProgressValue",
16664
17023
  inheritAttrs: false,
16665
17024
  __name: "ProgressValue",
@@ -16751,7 +17110,7 @@ const Progress = {
16751
17110
  * </template>
16752
17111
  * ```
16753
17112
  */
16754
- Root: _sfc_main$105,
17113
+ Root: _sfc_main$106,
16755
17114
  /**
16756
17115
  * Track container for the progress bar.
16757
17116
  *
@@ -16774,7 +17133,7 @@ const Progress = {
16774
17133
  * </template>
16775
17134
  * ```
16776
17135
  */
16777
- Track: _sfc_main$106,
17136
+ Track: _sfc_main$107,
16778
17137
  /**
16779
17138
  * Fill element representing the current progress value.
16780
17139
  *
@@ -16795,7 +17154,7 @@ const Progress = {
16795
17154
  * </template>
16796
17155
  * ```
16797
17156
  */
16798
- Fill: _sfc_main$102,
17157
+ Fill: _sfc_main$103,
16799
17158
  /**
16800
17159
  * Buffer indicator for streaming or loading progress.
16801
17160
  *
@@ -16819,7 +17178,7 @@ const Progress = {
16819
17178
  * </template>
16820
17179
  * ```
16821
17180
  */
16822
- Buffer: _sfc_main$101,
17181
+ Buffer: _sfc_main$102,
16823
17182
  /**
16824
17183
  * Text display for the current progress value.
16825
17184
  *
@@ -16842,7 +17201,7 @@ const Progress = {
16842
17201
  * </template>
16843
17202
  * ```
16844
17203
  */
16845
- Value: _sfc_main$107,
17204
+ Value: _sfc_main$108,
16846
17205
  /**
16847
17206
  * Accessible label for the progress indicator.
16848
17207
  *
@@ -16863,7 +17222,7 @@ const Progress = {
16863
17222
  * </template>
16864
17223
  * ```
16865
17224
  */
16866
- Label: _sfc_main$104,
17225
+ Label: _sfc_main$105,
16867
17226
  /**
16868
17227
  * Hidden native input for form submission.
16869
17228
  *
@@ -16893,12 +17252,12 @@ const Progress = {
16893
17252
  * </template>
16894
17253
  * ```
16895
17254
  */
16896
- HiddenInput: _sfc_main$103
17255
+ HiddenInput: _sfc_main$104
16897
17256
  };
16898
17257
  //#endregion
16899
17258
  //#region src/components/Radio/RadioGroup.vue
16900
17259
  const [useRadioGroup, provideRadioGroup] = createContext();
16901
- const _sfc_main$108 = /* @__PURE__ */ defineComponent({
17260
+ const _sfc_main$109 = /* @__PURE__ */ defineComponent({
16902
17261
  name: "RadioGroup",
16903
17262
  __name: "RadioGroup",
16904
17263
  props: /* @__PURE__ */ mergeModels({
@@ -16963,7 +17322,7 @@ const _sfc_main$108 = /* @__PURE__ */ defineComponent({
16963
17322
  //#endregion
16964
17323
  //#region src/components/Radio/RadioRoot.vue
16965
17324
  const [useRadioRoot, provideRadioRoot] = createContext();
16966
- const _sfc_main$111 = /* @__PURE__ */ defineComponent({
17325
+ const _sfc_main$112 = /* @__PURE__ */ defineComponent({
16967
17326
  name: "RadioRoot",
16968
17327
  inheritAttrs: false,
16969
17328
  __name: "RadioRoot",
@@ -17081,7 +17440,7 @@ const _sfc_main$111 = /* @__PURE__ */ defineComponent({
17081
17440
  }), {
17082
17441
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17083
17442
  _: 3
17084
- }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$109, { key: 0 })) : createCommentVNode("v-if", true)], 64);
17443
+ }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$110, { key: 0 })) : createCommentVNode("v-if", true)], 64);
17085
17444
  };
17086
17445
  }
17087
17446
  });
@@ -17094,7 +17453,7 @@ const _hoisted_1$4 = [
17094
17453
  "name",
17095
17454
  "value"
17096
17455
  ];
17097
- const visuallyHiddenStyle$2 = {
17456
+ const visuallyHiddenStyle$3 = {
17098
17457
  position: "absolute",
17099
17458
  width: "1px",
17100
17459
  height: "1px",
@@ -17105,7 +17464,7 @@ const visuallyHiddenStyle$2 = {
17105
17464
  whiteSpace: "nowrap",
17106
17465
  border: "0"
17107
17466
  };
17108
- const _sfc_main$109 = /* @__PURE__ */ defineComponent({
17467
+ const _sfc_main$110 = /* @__PURE__ */ defineComponent({
17109
17468
  name: "RadioHiddenInput",
17110
17469
  __name: "RadioHiddenInput",
17111
17470
  props: {
@@ -17132,7 +17491,7 @@ const _sfc_main$109 = /* @__PURE__ */ defineComponent({
17132
17491
  form: form.value,
17133
17492
  inert: "",
17134
17493
  name: name.value,
17135
- style: visuallyHiddenStyle$2,
17494
+ style: visuallyHiddenStyle$3,
17136
17495
  tabindex: "-1",
17137
17496
  type: "radio",
17138
17497
  value: value.value
@@ -17142,7 +17501,7 @@ const _sfc_main$109 = /* @__PURE__ */ defineComponent({
17142
17501
  });
17143
17502
  //#endregion
17144
17503
  //#region src/components/Radio/RadioIndicator.vue
17145
- const _sfc_main$110 = /* @__PURE__ */ defineComponent({
17504
+ const _sfc_main$111 = /* @__PURE__ */ defineComponent({
17146
17505
  name: "RadioIndicator",
17147
17506
  __name: "RadioIndicator",
17148
17507
  props: {
@@ -17235,7 +17594,7 @@ const Radio = {
17235
17594
  * </template>
17236
17595
  * ```
17237
17596
  */
17238
- Group: _sfc_main$108,
17597
+ Group: _sfc_main$109,
17239
17598
  /**
17240
17599
  * Hidden input component for form submission.
17241
17600
  *
@@ -17260,7 +17619,7 @@ const Radio = {
17260
17619
  * </template>
17261
17620
  * ```
17262
17621
  */
17263
- HiddenInput: _sfc_main$109,
17622
+ HiddenInput: _sfc_main$110,
17264
17623
  /**
17265
17624
  * Visual indicator component for radio buttons.
17266
17625
  *
@@ -17288,7 +17647,7 @@ const Radio = {
17288
17647
  * </template>
17289
17648
  * ```
17290
17649
  */
17291
- Indicator: _sfc_main$110,
17650
+ Indicator: _sfc_main$111,
17292
17651
  /**
17293
17652
  * Root component for individual radio buttons.
17294
17653
  *
@@ -17315,7 +17674,7 @@ const Radio = {
17315
17674
  * </template>
17316
17675
  * ```
17317
17676
  */
17318
- Root: _sfc_main$111
17677
+ Root: _sfc_main$112
17319
17678
  };
17320
17679
  //#endregion
17321
17680
  //#region src/composables/createRating/index.ts
@@ -17474,7 +17833,7 @@ function useRating(namespace = "v0:rating") {
17474
17833
  //#endregion
17475
17834
  //#region src/components/Rating/RatingRoot.vue
17476
17835
  const [useRatingRoot, provideRatingRoot] = createContext();
17477
- const _sfc_main$114 = /* @__PURE__ */ defineComponent({
17836
+ const _sfc_main$115 = /* @__PURE__ */ defineComponent({
17478
17837
  name: "RatingRoot",
17479
17838
  inheritAttrs: false,
17480
17839
  __name: "RatingRoot",
@@ -17487,6 +17846,8 @@ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
17487
17846
  },
17488
17847
  disabled: { default: false },
17489
17848
  readonly: { default: false },
17849
+ ariaLabel: {},
17850
+ ariaLabelledby: {},
17490
17851
  name: {},
17491
17852
  namespace: { default: "v0:rating:root" },
17492
17853
  as: { default: "div" },
@@ -17551,6 +17912,8 @@ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
17551
17912
  value: rating.value.value,
17552
17913
  size: rating.size
17553
17914
  }) ?? `${rating.value.value} of ${rating.size} stars`,
17915
+ "aria-label": __props.ariaLabelledby ? void 0 : __props.ariaLabel || (locale.ti("Rating.label") ?? "Rating"),
17916
+ "aria-labelledby": __props.ariaLabelledby || void 0,
17554
17917
  "aria-disabled": isDisabled.value,
17555
17918
  "aria-readonly": isReadonly.value ? true : void 0,
17556
17919
  "data-disabled": isDisabled.value ? true : void 0,
@@ -17567,7 +17930,7 @@ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
17567
17930
  }), {
17568
17931
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
17569
17932
  _: 3
17570
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$112, { key: 0 })) : createCommentVNode("v-if", true)], 64);
17933
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$113, { key: 0 })) : createCommentVNode("v-if", true)], 64);
17571
17934
  };
17572
17935
  }
17573
17936
  });
@@ -17578,7 +17941,7 @@ const _hoisted_1$3 = [
17578
17941
  "name",
17579
17942
  "value"
17580
17943
  ];
17581
- const _sfc_main$112 = /* @__PURE__ */ defineComponent({
17944
+ const _sfc_main$113 = /* @__PURE__ */ defineComponent({
17582
17945
  name: "RatingHiddenInput",
17583
17946
  __name: "RatingHiddenInput",
17584
17947
  props: { namespace: { default: "v0:rating:root" } },
@@ -17599,7 +17962,7 @@ const _sfc_main$112 = /* @__PURE__ */ defineComponent({
17599
17962
  });
17600
17963
  //#endregion
17601
17964
  //#region src/components/Rating/RatingItem.vue
17602
- const _sfc_main$113 = /* @__PURE__ */ defineComponent({
17965
+ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
17603
17966
  name: "RatingItem",
17604
17967
  inheritAttrs: false,
17605
17968
  __name: "RatingItem",
@@ -17689,7 +18052,6 @@ const _sfc_main$113 = /* @__PURE__ */ defineComponent({
17689
18052
  * v-for="i in 5"
17690
18053
  * :key="i"
17691
18054
  * :index="i"
17692
- * as="button"
17693
18055
  * v-slot="{ state }"
17694
18056
  * >
17695
18057
  * {{ state === 'full' ? '★' : '☆' }}
@@ -17725,7 +18087,6 @@ const Rating = {
17725
18087
  * v-for="i in 5"
17726
18088
  * :key="i"
17727
18089
  * :index="i"
17728
- * as="button"
17729
18090
  * v-slot="{ state }"
17730
18091
  * >
17731
18092
  * {{ state === 'full' ? '★' : '☆' }}
@@ -17734,7 +18095,7 @@ const Rating = {
17734
18095
  * </template>
17735
18096
  * ```
17736
18097
  */
17737
- Root: _sfc_main$114,
18098
+ Root: _sfc_main$115,
17738
18099
  /**
17739
18100
  * Individual rating item (star/icon).
17740
18101
  *
@@ -17756,7 +18117,6 @@ const Rating = {
17756
18117
  * <template>
17757
18118
  * <Rating.Item
17758
18119
  * :index="1"
17759
- * as="button"
17760
18120
  * class="[&[data-state=full]]:text-amber-500 [&[data-state=empty]]:text-gray-300"
17761
18121
  * v-slot="{ state }"
17762
18122
  * >
@@ -17765,7 +18125,7 @@ const Rating = {
17765
18125
  * </template>
17766
18126
  * ```
17767
18127
  */
17768
- Item: _sfc_main$113,
18128
+ Item: _sfc_main$114,
17769
18129
  /**
17770
18130
  * Hidden native input for form submission.
17771
18131
  *
@@ -17792,7 +18152,6 @@ const Rating = {
17792
18152
  * v-for="i in 5"
17793
18153
  * :key="i"
17794
18154
  * :index="i"
17795
- * as="button"
17796
18155
  * v-slot="{ state }"
17797
18156
  * >
17798
18157
  * {{ state === 'full' ? '★' : '☆' }}
@@ -17801,11 +18160,11 @@ const Rating = {
17801
18160
  * </template>
17802
18161
  * ```
17803
18162
  */
17804
- HiddenInput: _sfc_main$112
18163
+ HiddenInput: _sfc_main$113
17805
18164
  };
17806
18165
  //#endregion
17807
18166
  //#region src/components/Scrim/Scrim.vue
17808
- const _sfc_main$115 = /* @__PURE__ */ defineComponent({
18167
+ const _sfc_main$116 = /* @__PURE__ */ defineComponent({
17809
18168
  name: "Scrim",
17810
18169
  inheritAttrs: false,
17811
18170
  __name: "Scrim",
@@ -17883,7 +18242,7 @@ const _hoisted_1$2 = [
17883
18242
  "name",
17884
18243
  "value"
17885
18244
  ];
17886
- const visuallyHiddenStyle$1 = {
18245
+ const visuallyHiddenStyle$2 = {
17887
18246
  position: "absolute",
17888
18247
  width: "1px",
17889
18248
  height: "1px",
@@ -17894,7 +18253,7 @@ const visuallyHiddenStyle$1 = {
17894
18253
  whiteSpace: "nowrap",
17895
18254
  border: "0"
17896
18255
  };
17897
- const _sfc_main$169 = /* @__PURE__ */ defineComponent({
18256
+ const _sfc_main$171 = /* @__PURE__ */ defineComponent({
17898
18257
  name: "SelectHiddenInput",
17899
18258
  __name: "SelectHiddenInput",
17900
18259
  props: { namespace: { default: "v0:select" } },
@@ -17916,7 +18275,7 @@ const _sfc_main$169 = /* @__PURE__ */ defineComponent({
17916
18275
  form: unref(context).form,
17917
18276
  inert: "",
17918
18277
  name: unref(context).name,
17919
- style: visuallyHiddenStyle$1,
18278
+ style: visuallyHiddenStyle$2,
17920
18279
  tabindex: "-1",
17921
18280
  type: "hidden",
17922
18281
  value: val
@@ -17928,7 +18287,7 @@ const _sfc_main$169 = /* @__PURE__ */ defineComponent({
17928
18287
  //#endregion
17929
18288
  //#region src/components/Select/SelectRoot.vue
17930
18289
  const [useSelectContext, provideSelectContext] = createContext();
17931
- const _sfc_main$121 = /* @__PURE__ */ defineComponent({
18290
+ const _sfc_main$122 = /* @__PURE__ */ defineComponent({
17932
18291
  name: "SelectRoot",
17933
18292
  __name: "SelectRoot",
17934
18293
  props: /* @__PURE__ */ mergeModels({
@@ -18041,13 +18400,13 @@ const _sfc_main$121 = /* @__PURE__ */ defineComponent({
18041
18400
  }, {
18042
18401
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
18043
18402
  _: 3
18044
- }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$169, { key: 0 })) : createCommentVNode("v-if", true)], 64);
18403
+ }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$171, { key: 0 })) : createCommentVNode("v-if", true)], 64);
18045
18404
  };
18046
18405
  }
18047
18406
  });
18048
18407
  //#endregion
18049
18408
  //#region src/components/Select/SelectActivator.vue
18050
- const _sfc_main$116 = /* @__PURE__ */ defineComponent({
18409
+ const _sfc_main$117 = /* @__PURE__ */ defineComponent({
18051
18410
  name: "SelectActivator",
18052
18411
  __name: "SelectActivator",
18053
18412
  props: {
@@ -18127,7 +18486,7 @@ const _sfc_main$116 = /* @__PURE__ */ defineComponent({
18127
18486
  });
18128
18487
  //#endregion
18129
18488
  //#region src/components/Select/SelectContent.vue
18130
- const _sfc_main$117 = /* @__PURE__ */ defineComponent({
18489
+ const _sfc_main$118 = /* @__PURE__ */ defineComponent({
18131
18490
  name: "SelectContent",
18132
18491
  __name: "SelectContent",
18133
18492
  props: {
@@ -18171,7 +18530,7 @@ const _sfc_main$117 = /* @__PURE__ */ defineComponent({
18171
18530
  });
18172
18531
  //#endregion
18173
18532
  //#region src/components/Select/SelectCue.vue
18174
- const _sfc_main$118 = /* @__PURE__ */ defineComponent({
18533
+ const _sfc_main$119 = /* @__PURE__ */ defineComponent({
18175
18534
  name: "SelectCue",
18176
18535
  __name: "SelectCue",
18177
18536
  props: {
@@ -18201,7 +18560,7 @@ const _sfc_main$118 = /* @__PURE__ */ defineComponent({
18201
18560
  });
18202
18561
  //#endregion
18203
18562
  //#region src/components/Select/SelectItem.vue
18204
- const _sfc_main$119 = /* @__PURE__ */ defineComponent({
18563
+ const _sfc_main$120 = /* @__PURE__ */ defineComponent({
18205
18564
  name: "SelectItem",
18206
18565
  __name: "SelectItem",
18207
18566
  props: {
@@ -18260,7 +18619,7 @@ const _sfc_main$119 = /* @__PURE__ */ defineComponent({
18260
18619
  });
18261
18620
  //#endregion
18262
18621
  //#region src/components/Select/SelectPlaceholder.vue
18263
- const _sfc_main$120 = /* @__PURE__ */ defineComponent({
18622
+ const _sfc_main$121 = /* @__PURE__ */ defineComponent({
18264
18623
  name: "SelectPlaceholder",
18265
18624
  __name: "SelectPlaceholder",
18266
18625
  props: {
@@ -18285,7 +18644,7 @@ const _sfc_main$120 = /* @__PURE__ */ defineComponent({
18285
18644
  });
18286
18645
  //#endregion
18287
18646
  //#region src/components/Select/SelectValue.vue
18288
- const _sfc_main$122 = /* @__PURE__ */ defineComponent({
18647
+ const _sfc_main$123 = /* @__PURE__ */ defineComponent({
18289
18648
  name: "SelectValue",
18290
18649
  __name: "SelectValue",
18291
18650
  props: {
@@ -18363,9 +18722,8 @@ const _sfc_main$122 = /* @__PURE__ */ defineComponent({
18363
18722
  * :key="item.id"
18364
18723
  * :id="item.id"
18365
18724
  * :value="item.label"
18366
- * v-slot="{ isSelected, attrs }"
18367
18725
  * >
18368
- * <div v-bind="attrs">{{ item.label }}</div>
18726
+ * {{ item.label }}
18369
18727
  * </Select.Item>
18370
18728
  * </Select.Content>
18371
18729
  * </Select.Root>
@@ -18400,7 +18758,7 @@ const Select = {
18400
18758
  * </template>
18401
18759
  * ```
18402
18760
  */
18403
- Root: _sfc_main$121,
18761
+ Root: _sfc_main$122,
18404
18762
  /**
18405
18763
  * Activator button that opens the select dropdown.
18406
18764
  *
@@ -18419,7 +18777,7 @@ const Select = {
18419
18777
  * </template>
18420
18778
  * ```
18421
18779
  */
18422
- Activator: _sfc_main$116,
18780
+ Activator: _sfc_main$117,
18423
18781
  /**
18424
18782
  * Display component for the selected value. Slot-based — consumers provide rendering.
18425
18783
  *
@@ -18439,7 +18797,7 @@ const Select = {
18439
18797
  * </template>
18440
18798
  * ```
18441
18799
  */
18442
- Value: _sfc_main$122,
18800
+ Value: _sfc_main$123,
18443
18801
  /**
18444
18802
  * Dropdown content container using native popover API with CSS anchor positioning.
18445
18803
  *
@@ -18459,7 +18817,7 @@ const Select = {
18459
18817
  * </template>
18460
18818
  * ```
18461
18819
  */
18462
- Content: _sfc_main$117,
18820
+ Content: _sfc_main$118,
18463
18821
  /**
18464
18822
  * Visual cue for open/close state. Exposes `data-state="open|closed"` for CSS-driven styling.
18465
18823
  *
@@ -18476,7 +18834,7 @@ const Select = {
18476
18834
  * </Select.Activator>
18477
18835
  * ```
18478
18836
  */
18479
- Cue: _sfc_main$118,
18837
+ Cue: _sfc_main$119,
18480
18838
  /**
18481
18839
  * Option item within the select dropdown. Registers with selection and virtual focus.
18482
18840
  *
@@ -18489,13 +18847,13 @@ const Select = {
18489
18847
  * <\/script>
18490
18848
  *
18491
18849
  * <template>
18492
- * <Select.Item id="apple" value="Apple" v-slot="{ isSelected, attrs }">
18493
- * <div v-bind="attrs">Apple {{ isSelected ? '✓' : '' }}</div>
18850
+ * <Select.Item id="apple" value="Apple" v-slot="{ isSelected }">
18851
+ * Apple {{ isSelected ? '✓' : '' }}
18494
18852
  * </Select.Item>
18495
18853
  * </template>
18496
18854
  * ```
18497
18855
  */
18498
- Item: _sfc_main$119,
18856
+ Item: _sfc_main$120,
18499
18857
  /**
18500
18858
  * Placeholder text shown when no value is selected. Automatically hidden when a selection exists.
18501
18859
  *
@@ -18510,12 +18868,12 @@ const Select = {
18510
18868
  * </Select.Activator>
18511
18869
  * ```
18512
18870
  */
18513
- Placeholder: _sfc_main$120
18871
+ Placeholder: _sfc_main$121
18514
18872
  };
18515
18873
  //#endregion
18516
18874
  //#region src/components/Selection/SelectionRoot.vue
18517
18875
  const [useSelectionRoot, provideSelectionRoot] = createContext();
18518
- const _sfc_main$124 = /* @__PURE__ */ defineComponent({
18876
+ const _sfc_main$125 = /* @__PURE__ */ defineComponent({
18519
18877
  name: "SelectionRoot",
18520
18878
  __name: "SelectionRoot",
18521
18879
  props: /* @__PURE__ */ mergeModels({
@@ -18567,7 +18925,7 @@ const _sfc_main$124 = /* @__PURE__ */ defineComponent({
18567
18925
  });
18568
18926
  //#endregion
18569
18927
  //#region src/components/Selection/SelectionItem.vue
18570
- const _sfc_main$123 = /* @__PURE__ */ defineComponent({
18928
+ const _sfc_main$124 = /* @__PURE__ */ defineComponent({
18571
18929
  name: "SelectionItem",
18572
18930
  __name: "SelectionItem",
18573
18931
  props: {
@@ -18589,6 +18947,11 @@ const _sfc_main$123 = /* @__PURE__ */ defineComponent({
18589
18947
  if (toValue(isDisabled)) return;
18590
18948
  ticket.toggle();
18591
18949
  }
18950
+ function onKeydown(e) {
18951
+ if (e.key !== "Enter" && e.key !== " ") return;
18952
+ e.preventDefault();
18953
+ onClick();
18954
+ }
18592
18955
  onBeforeUnmount(() => {
18593
18956
  selection.unregister(ticket.id);
18594
18957
  });
@@ -18602,11 +18965,14 @@ const _sfc_main$123 = /* @__PURE__ */ defineComponent({
18602
18965
  unselect: ticket.unselect,
18603
18966
  toggle: ticket.toggle,
18604
18967
  attrs: {
18968
+ "role": "option",
18969
+ "tabindex": toValue(isDisabled) ? -1 : 0,
18605
18970
  "aria-selected": toValue(ticket.isSelected),
18606
18971
  "aria-disabled": toValue(isDisabled),
18607
18972
  "data-selected": toValue(ticket.isSelected) || void 0,
18608
18973
  "data-disabled": toValue(isDisabled) || void 0,
18609
- "onClick": onClick
18974
+ "onClick": onClick,
18975
+ "onKeydown": onKeydown
18610
18976
  }
18611
18977
  }));
18612
18978
  return (_ctx, _cache) => {
@@ -18646,7 +19012,7 @@ const Selection = {
18646
19012
  * </template>
18647
19013
  * ```
18648
19014
  */
18649
- Root: _sfc_main$124,
19015
+ Root: _sfc_main$125,
18650
19016
  /**
18651
19017
  * Item component for selection contexts.
18652
19018
  *
@@ -18665,12 +19031,12 @@ const Selection = {
18665
19031
  * </template>
18666
19032
  * ```
18667
19033
  */
18668
- Item: _sfc_main$123
19034
+ Item: _sfc_main$124
18669
19035
  };
18670
19036
  //#endregion
18671
19037
  //#region src/components/Single/SingleRoot.vue
18672
19038
  const [useSingleRoot, provideSingleRoot] = createContext();
18673
- const _sfc_main$126 = /* @__PURE__ */ defineComponent({
19039
+ const _sfc_main$127 = /* @__PURE__ */ defineComponent({
18674
19040
  name: "SingleRoot",
18675
19041
  __name: "SingleRoot",
18676
19042
  props: /* @__PURE__ */ mergeModels({
@@ -18716,7 +19082,7 @@ const _sfc_main$126 = /* @__PURE__ */ defineComponent({
18716
19082
  });
18717
19083
  //#endregion
18718
19084
  //#region src/components/Single/SingleItem.vue
18719
- const _sfc_main$125 = /* @__PURE__ */ defineComponent({
19085
+ const _sfc_main$126 = /* @__PURE__ */ defineComponent({
18720
19086
  name: "SingleItem",
18721
19087
  __name: "SingleItem",
18722
19088
  props: {
@@ -18738,6 +19104,11 @@ const _sfc_main$125 = /* @__PURE__ */ defineComponent({
18738
19104
  if (toValue(isDisabled)) return;
18739
19105
  ticket.toggle();
18740
19106
  }
19107
+ function onKeydown(e) {
19108
+ if (e.key !== "Enter" && e.key !== " ") return;
19109
+ e.preventDefault();
19110
+ onClick();
19111
+ }
18741
19112
  onBeforeUnmount(() => {
18742
19113
  single.unregister(ticket.id);
18743
19114
  });
@@ -18751,11 +19122,14 @@ const _sfc_main$125 = /* @__PURE__ */ defineComponent({
18751
19122
  unselect: ticket.unselect,
18752
19123
  toggle: ticket.toggle,
18753
19124
  attrs: {
19125
+ "role": "option",
19126
+ "tabindex": toValue(isDisabled) ? -1 : 0,
18754
19127
  "aria-selected": toValue(ticket.isSelected),
18755
19128
  "aria-disabled": toValue(isDisabled),
18756
19129
  "data-selected": toValue(ticket.isSelected) || void 0,
18757
19130
  "data-disabled": toValue(isDisabled) || void 0,
18758
- "onClick": onClick
19131
+ "onClick": onClick,
19132
+ "onKeydown": onKeydown
18759
19133
  }
18760
19134
  }));
18761
19135
  return (_ctx, _cache) => {
@@ -18795,7 +19169,7 @@ const Single = {
18795
19169
  * </template>
18796
19170
  * ```
18797
19171
  */
18798
- Root: _sfc_main$126,
19172
+ Root: _sfc_main$127,
18799
19173
  /**
18800
19174
  * Component representing a selectable item within Single.Root.
18801
19175
  *
@@ -18816,7 +19190,7 @@ const Single = {
18816
19190
  * </template>
18817
19191
  * ```
18818
19192
  */
18819
- Item: _sfc_main$125
19193
+ Item: _sfc_main$126
18820
19194
  };
18821
19195
  //#endregion
18822
19196
  //#region src/composables/createSlider/index.ts
@@ -19018,7 +19392,7 @@ function createSlider(options = {}) {
19018
19392
  //#endregion
19019
19393
  //#region src/components/Slider/SliderRoot.vue
19020
19394
  const [useSliderRoot, provideSliderRoot] = createContext();
19021
- const _sfc_main$129 = /* @__PURE__ */ defineComponent({
19395
+ const _sfc_main$130 = /* @__PURE__ */ defineComponent({
19022
19396
  name: "SliderRoot",
19023
19397
  inheritAttrs: false,
19024
19398
  __name: "SliderRoot",
@@ -19167,7 +19541,7 @@ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
19167
19541
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19168
19542
  _: 3
19169
19543
  }, 16, ["as", "renderless"]), __props.name ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(slider).values.value, (_, index) => {
19170
- return openBlock(), createBlock(_sfc_main$127, {
19544
+ return openBlock(), createBlock(_sfc_main$128, {
19171
19545
  key: index,
19172
19546
  index
19173
19547
  }, null, 8, ["index"]);
@@ -19183,7 +19557,7 @@ const _hoisted_1$1 = [
19183
19557
  "name",
19184
19558
  "value"
19185
19559
  ];
19186
- const _sfc_main$127 = /* @__PURE__ */ defineComponent({
19560
+ const _sfc_main$128 = /* @__PURE__ */ defineComponent({
19187
19561
  name: "SliderHiddenInput",
19188
19562
  __name: "SliderHiddenInput",
19189
19563
  props: {
@@ -19208,7 +19582,7 @@ const _sfc_main$127 = /* @__PURE__ */ defineComponent({
19208
19582
  });
19209
19583
  //#endregion
19210
19584
  //#region src/components/Slider/SliderRange.vue
19211
- const _sfc_main$128 = /* @__PURE__ */ defineComponent({
19585
+ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
19212
19586
  name: "SliderRange",
19213
19587
  inheritAttrs: false,
19214
19588
  __name: "SliderRange",
@@ -19266,7 +19640,7 @@ const _sfc_main$128 = /* @__PURE__ */ defineComponent({
19266
19640
  });
19267
19641
  //#endregion
19268
19642
  //#region src/components/Slider/SliderThumb.vue
19269
- const _sfc_main$130 = /* @__PURE__ */ defineComponent({
19643
+ const _sfc_main$131 = /* @__PURE__ */ defineComponent({
19270
19644
  name: "SliderThumb",
19271
19645
  inheritAttrs: false,
19272
19646
  __name: "SliderThumb",
@@ -19281,6 +19655,7 @@ const _sfc_main$130 = /* @__PURE__ */ defineComponent({
19281
19655
  setup(__props) {
19282
19656
  const attrs = useAttrs();
19283
19657
  const root = useSliderRoot(__props.namespace);
19658
+ const locale = useLocale();
19284
19659
  const thumbRef = useTemplateRef("thumb");
19285
19660
  const ticket = root.register();
19286
19661
  onBeforeUnmount(() => {
@@ -19346,7 +19721,7 @@ const _sfc_main$130 = /* @__PURE__ */ defineComponent({
19346
19721
  "aria-orientation": toValue(root.orientation),
19347
19722
  "aria-disabled": isDisabled.value,
19348
19723
  "aria-readonly": isReadonly.value ? true : void 0,
19349
- "aria-label": __props.ariaLabel || void 0,
19724
+ "aria-label": __props.ariaLabelledby ? void 0 : __props.ariaLabel || (locale.ti("Slider.label") ?? "Slider"),
19350
19725
  "aria-labelledby": __props.ariaLabelledby || void 0,
19351
19726
  "data-state": dataState.value,
19352
19727
  "data-disabled": isDisabled.value ? true : void 0,
@@ -19377,7 +19752,7 @@ const _sfc_main$130 = /* @__PURE__ */ defineComponent({
19377
19752
  });
19378
19753
  //#endregion
19379
19754
  //#region src/components/Slider/SliderTrack.vue
19380
- const _sfc_main$131 = /* @__PURE__ */ defineComponent({
19755
+ const _sfc_main$132 = /* @__PURE__ */ defineComponent({
19381
19756
  name: "SliderTrack",
19382
19757
  inheritAttrs: false,
19383
19758
  __name: "SliderTrack",
@@ -19498,7 +19873,7 @@ const Slider = {
19498
19873
  * </template>
19499
19874
  * ```
19500
19875
  */
19501
- Root: _sfc_main$129,
19876
+ Root: _sfc_main$130,
19502
19877
  /**
19503
19878
  * Track element that contains the Range and handles click-to-position.
19504
19879
  *
@@ -19515,7 +19890,7 @@ const Slider = {
19515
19890
  * </Slider.Track>
19516
19891
  * ```
19517
19892
  */
19518
- Track: _sfc_main$131,
19893
+ Track: _sfc_main$132,
19519
19894
  /**
19520
19895
  * Filled region between thumb positions.
19521
19896
  *
@@ -19532,7 +19907,7 @@ const Slider = {
19532
19907
  * </Slider.Track>
19533
19908
  * ```
19534
19909
  */
19535
- Range: _sfc_main$128,
19910
+ Range: _sfc_main$129,
19536
19911
  /**
19537
19912
  * Draggable thumb control with keyboard navigation.
19538
19913
  *
@@ -19549,7 +19924,7 @@ const Slider = {
19549
19924
  * <Slider.Thumb />
19550
19925
  * ```
19551
19926
  */
19552
- Thumb: _sfc_main$130,
19927
+ Thumb: _sfc_main$131,
19553
19928
  /**
19554
19929
  * Hidden native input for form submission.
19555
19930
  *
@@ -19583,15 +19958,57 @@ const Slider = {
19583
19958
  * </template>
19584
19959
  * ```
19585
19960
  */
19586
- HiddenInput: _sfc_main$127
19961
+ HiddenInput: _sfc_main$128
19962
+ };
19963
+ //#endregion
19964
+ //#region src/components/Snackbar/SnackbarAnnouncer.vue
19965
+ const visuallyHiddenStyle$1 = {
19966
+ position: "absolute",
19967
+ width: "1px",
19968
+ height: "1px",
19969
+ padding: "0",
19970
+ margin: "-1px",
19971
+ overflow: "hidden",
19972
+ clip: "rect(0, 0, 0, 0)",
19973
+ whiteSpace: "nowrap",
19974
+ border: "0"
19587
19975
  };
19976
+ const _sfc_main$133 = /* @__PURE__ */ defineComponent({
19977
+ name: "SnackbarAnnouncer",
19978
+ __name: "SnackbarAnnouncer",
19979
+ props: { namespace: { default: "v0:notifications" } },
19980
+ setup(__props) {
19981
+ const portal = usePortal(__props.namespace);
19982
+ const polite = toRef(() => portal?.polite.value ?? "");
19983
+ const assertive = toRef(() => portal?.assertive.value ?? "");
19984
+ return (_ctx, _cache) => {
19985
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("div", {
19986
+ "aria-atomic": "true",
19987
+ "aria-live": "polite",
19988
+ role: "status",
19989
+ style: visuallyHiddenStyle$1
19990
+ }, toDisplayString(polite.value), 1), createElementVNode("div", {
19991
+ "aria-atomic": "true",
19992
+ "aria-live": "assertive",
19993
+ role: "alert",
19994
+ style: visuallyHiddenStyle$1
19995
+ }, toDisplayString(assertive.value), 1)], 64);
19996
+ };
19997
+ }
19998
+ });
19588
19999
  //#endregion
19589
20000
  //#region src/components/Snackbar/SnackbarPortal.vue
19590
- const _sfc_main$134 = /* @__PURE__ */ defineComponent({
20001
+ const [usePortal, providePortal] = createContext({ suffix: "portal" });
20002
+ const _sfc_main$136 = /* @__PURE__ */ defineComponent({
19591
20003
  name: "SnackbarPortal",
19592
20004
  inheritAttrs: false,
19593
20005
  __name: "SnackbarPortal",
19594
20006
  props: {
20007
+ announcer: {
20008
+ type: Boolean,
20009
+ default: true
20010
+ },
20011
+ namespace: { default: "v0:notifications" },
19595
20012
  teleport: {
19596
20013
  type: [
19597
20014
  String,
@@ -19604,28 +20021,61 @@ const _sfc_main$134 = /* @__PURE__ */ defineComponent({
19604
20021
  renderless: { type: Boolean }
19605
20022
  },
19606
20023
  setup(__props) {
20024
+ const polite = shallowRef("");
20025
+ const assertive = shallowRef("");
20026
+ let politeNext = "";
20027
+ let assertiveNext = "";
20028
+ const politeFrame = useRaf(() => {
20029
+ polite.value = politeNext;
20030
+ });
20031
+ const assertiveFrame = useRaf(() => {
20032
+ assertive.value = assertiveNext;
20033
+ });
20034
+ function announce(message, urgent = false) {
20035
+ const region = urgent ? assertive : polite;
20036
+ region.value = "";
20037
+ if (urgent) {
20038
+ assertiveNext = message;
20039
+ assertiveFrame();
20040
+ } else {
20041
+ politeNext = message;
20042
+ politeFrame();
20043
+ }
20044
+ }
20045
+ providePortal(__props.namespace, {
20046
+ announce,
20047
+ polite: shallowReadonly(polite),
20048
+ assertive: shallowReadonly(assertive)
20049
+ });
19607
20050
  function getSlotProps(zIndex) {
19608
20051
  return {
19609
20052
  zIndex,
19610
- attrs: { style: {
19611
- position: "relative",
19612
- zIndex
19613
- } }
20053
+ attrs: { style: { zIndex } }
19614
20054
  };
19615
20055
  }
20056
+ const atomRef = useTemplateRef("atom");
20057
+ watch(toRef(() => /* @__PURE__ */ toElement(atomRef.value?.element) ?? null), (value) => {
20058
+ if (!IN_BROWSER || /* @__PURE__ */ isNull(value)) return;
20059
+ const element = value;
20060
+ if (getComputedStyle(element).position === "static") element.style.position = "relative";
20061
+ });
19616
20062
  return (_ctx, _cache) => {
19617
- return openBlock(), createBlock(unref(_sfc_main$99), {
20063
+ return openBlock(), createBlock(unref(_sfc_main$100), {
19618
20064
  disabled: __props.teleport === false,
19619
20065
  scrim: false,
19620
20066
  to: __props.teleport || "body"
19621
20067
  }, {
19622
20068
  default: withCtx(({ zIndex }) => [createVNode(unref(_sfc_main$9), mergeProps({
20069
+ ref: "atom",
19623
20070
  as: __props.as,
19624
20071
  renderless: __props.renderless
19625
20072
  }, mergeProps(_ctx.$attrs, getSlotProps(zIndex).attrs)), {
19626
20073
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(getSlotProps(zIndex))))]),
19627
20074
  _: 2
19628
- }, 1040, ["as", "renderless"])]),
20075
+ }, 1040, ["as", "renderless"]), __props.announcer ? (openBlock(), createBlock(_sfc_main$133, {
20076
+ key: 0,
20077
+ namespace: __props.namespace
20078
+ }, null, 8, ["namespace"])) : createCommentVNode("v-if", true)]),
19629
20079
  _: 3
19630
20080
  }, 8, ["disabled", "to"]);
19631
20081
  };
@@ -20367,7 +20817,7 @@ const [createNotificationsContext, createNotificationsPlugin, useNotifications]
20367
20817
  //#endregion
20368
20818
  //#region src/components/Snackbar/SnackbarQueue.vue
20369
20819
  const [useSnackbarQueueContext, provideSnackbarQueueContext] = createContext({ suffix: "queue" });
20370
- const _sfc_main$135 = /* @__PURE__ */ defineComponent({
20820
+ const _sfc_main$137 = /* @__PURE__ */ defineComponent({
20371
20821
  name: "SnackbarQueue",
20372
20822
  __name: "SnackbarQueue",
20373
20823
  props: {
@@ -20438,7 +20888,7 @@ const _sfc_main$135 = /* @__PURE__ */ defineComponent({
20438
20888
  //#endregion
20439
20889
  //#region src/components/Snackbar/SnackbarRoot.vue
20440
20890
  const [useSnackbarRootContext, provideSnackbarRootContext] = createContext({ suffix: "root" });
20441
- const _sfc_main$136 = /* @__PURE__ */ defineComponent({
20891
+ const _sfc_main$138 = /* @__PURE__ */ defineComponent({
20442
20892
  name: "SnackbarRoot",
20443
20893
  __name: "SnackbarRoot",
20444
20894
  props: {
@@ -20451,6 +20901,7 @@ const _sfc_main$136 = /* @__PURE__ */ defineComponent({
20451
20901
  emits: ["dismiss"],
20452
20902
  setup(__props, { emit: __emit }) {
20453
20903
  const emit = __emit;
20904
+ const portal = usePortal(__props.namespace, null);
20454
20905
  const queue = useSnackbarQueueContext(__props.namespace, null);
20455
20906
  function onDismiss() {
20456
20907
  if (queue) queue.dismiss(__props.id);
@@ -20460,12 +20911,21 @@ const _sfc_main$136 = /* @__PURE__ */ defineComponent({
20460
20911
  id: __props.id,
20461
20912
  onDismiss
20462
20913
  });
20914
+ const atomRef = useTemplateRef("atom");
20915
+ const el = toRef(() => /* @__PURE__ */ toElement(atomRef.value?.element) ?? null);
20916
+ onMounted(async () => {
20917
+ if (!portal) return;
20918
+ await nextTick();
20919
+ const text = el.value?.textContent;
20920
+ if (text) portal.announce(text, __props.urgent);
20921
+ });
20463
20922
  const slotProps = toRef(() => ({
20464
20923
  id: __props.id,
20465
20924
  attrs: { role: __props.urgent ? "alert" : "status" }
20466
20925
  }));
20467
20926
  return (_ctx, _cache) => {
20468
20927
  return openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
20928
+ ref: "atom",
20469
20929
  as: __props.as,
20470
20930
  renderless: __props.renderless
20471
20931
  }, slotProps.value.attrs), {
@@ -20477,7 +20937,7 @@ const _sfc_main$136 = /* @__PURE__ */ defineComponent({
20477
20937
  });
20478
20938
  //#endregion
20479
20939
  //#region src/components/Snackbar/SnackbarContent.vue
20480
- const _sfc_main$133 = /* @__PURE__ */ defineComponent({
20940
+ const _sfc_main$135 = /* @__PURE__ */ defineComponent({
20481
20941
  name: "SnackbarContent",
20482
20942
  __name: "SnackbarContent",
20483
20943
  props: {
@@ -20498,7 +20958,7 @@ const _sfc_main$133 = /* @__PURE__ */ defineComponent({
20498
20958
  });
20499
20959
  //#endregion
20500
20960
  //#region src/components/Snackbar/SnackbarClose.vue
20501
- const _sfc_main$132 = /* @__PURE__ */ defineComponent({
20961
+ const _sfc_main$134 = /* @__PURE__ */ defineComponent({
20502
20962
  name: "SnackbarClose",
20503
20963
  __name: "SnackbarClose",
20504
20964
  props: {
@@ -20512,10 +20972,19 @@ const _sfc_main$132 = /* @__PURE__ */ defineComponent({
20512
20972
  function onClick() {
20513
20973
  context.onDismiss();
20514
20974
  }
20975
+ function onKeydown(e) {
20976
+ if (e.key === "Enter" || e.key === " ") {
20977
+ e.preventDefault();
20978
+ onClick();
20979
+ }
20980
+ }
20515
20981
  const slotProps = toRef(() => ({ attrs: {
20516
20982
  "type": __props.as === "button" ? "button" : void 0,
20983
+ "role": __props.as === "button" ? void 0 : "button",
20984
+ "tabindex": 0,
20517
20985
  "aria-label": locale.ti("Snackbar.close") ?? "Dismiss",
20518
- "onClick": onClick
20986
+ "onClick": onClick,
20987
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
20519
20988
  } }));
20520
20989
  return (_ctx, _cache) => {
20521
20990
  return openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
@@ -20579,7 +21048,7 @@ const Snackbar = {
20579
21048
  * </template>
20580
21049
  * ```
20581
21050
  */
20582
- Portal: _sfc_main$134,
21051
+ Portal: _sfc_main$136,
20583
21052
  /**
20584
21053
  * Connects to useNotifications by namespace and exposes queue items
20585
21054
  * via scoped slot. Pauses auto-dismiss on hover and focus (WCAG 2.2.1).
@@ -20603,7 +21072,7 @@ const Snackbar = {
20603
21072
  * </template>
20604
21073
  * ```
20605
21074
  */
20606
- Queue: _sfc_main$135,
21075
+ Queue: _sfc_main$137,
20607
21076
  /**
20608
21077
  * A single snackbar instance. Provides dismiss context to child
20609
21078
  * Snackbar.Close components. Defaults to `role="status"` (polite
@@ -20625,7 +21094,7 @@ const Snackbar = {
20625
21094
  * </template>
20626
21095
  * ```
20627
21096
  */
20628
- Root: _sfc_main$136,
21097
+ Root: _sfc_main$138,
20629
21098
  /**
20630
21099
  * Semantic wrapper for the notification message text.
20631
21100
  * Renders as a `<div>` by default. Polymorphic via the `as` prop.
@@ -20643,7 +21112,7 @@ const Snackbar = {
20643
21112
  * </template>
20644
21113
  * ```
20645
21114
  */
20646
- Content: _sfc_main$133,
21115
+ Content: _sfc_main$135,
20647
21116
  /**
20648
21117
  * Dismiss button that auto-wires to the nearest Snackbar.Root context.
20649
21118
  * Renders with `aria-label="Close"` and `type="button"`. In renderless
@@ -20662,12 +21131,38 @@ const Snackbar = {
20662
21131
  * </template>
20663
21132
  * ```
20664
21133
  */
20665
- Close: _sfc_main$132
21134
+ Close: _sfc_main$134,
21135
+ /**
21136
+ * Visually-hidden polite + assertive live-region pair that announces
21137
+ * snackbar messages. Auto-rendered by Snackbar.Portal — place explicitly
21138
+ * with `:announcer="false"` on the Portal to control position or markup
21139
+ * order.
21140
+ *
21141
+ * @see https://0.vuetifyjs.com/components/semantic/snackbar
21142
+ *
21143
+ * @example
21144
+ * ```vue
21145
+ * <script setup lang="ts">
21146
+ * import { Snackbar } from '@vuetify/v0'
21147
+ * <\/script>
21148
+ *
21149
+ * <template>
21150
+ * <Snackbar.Portal :announcer="false">
21151
+ * <Snackbar.Announcer />
21152
+ * <Snackbar.Root>
21153
+ * <Snackbar.Content>Saved</Snackbar.Content>
21154
+ * <Snackbar.Close />
21155
+ * </Snackbar.Root>
21156
+ * </Snackbar.Portal>
21157
+ * </template>
21158
+ * ```
21159
+ */
21160
+ Announcer: _sfc_main$133
20666
21161
  };
20667
21162
  //#endregion
20668
21163
  //#region src/components/Splitter/SplitterRoot.vue
20669
21164
  const [useSplitterRoot, provideSplitterRoot] = createContext("v0:splitter");
20670
- const _sfc_main$139 = /* @__PURE__ */ defineComponent({
21165
+ const _sfc_main$141 = /* @__PURE__ */ defineComponent({
20671
21166
  name: "SplitterRoot",
20672
21167
  inheritAttrs: false,
20673
21168
  __name: "SplitterRoot",
@@ -20891,7 +21386,7 @@ const _sfc_main$139 = /* @__PURE__ */ defineComponent({
20891
21386
  });
20892
21387
  //#endregion
20893
21388
  //#region src/components/Splitter/SplitterPanel.vue
20894
- const _sfc_main$138 = /* @__PURE__ */ defineComponent({
21389
+ const _sfc_main$140 = /* @__PURE__ */ defineComponent({
20895
21390
  name: "SplitterPanel",
20896
21391
  inheritAttrs: false,
20897
21392
  __name: "SplitterPanel",
@@ -21025,7 +21520,7 @@ const _sfc_main$138 = /* @__PURE__ */ defineComponent({
21025
21520
  });
21026
21521
  //#endregion
21027
21522
  //#region src/components/Splitter/SplitterHandle.vue
21028
- const _sfc_main$137 = /* @__PURE__ */ defineComponent({
21523
+ const _sfc_main$139 = /* @__PURE__ */ defineComponent({
21029
21524
  name: "SplitterHandle",
21030
21525
  inheritAttrs: false,
21031
21526
  __name: "SplitterHandle",
@@ -21278,7 +21773,7 @@ const Splitter = {
21278
21773
  * </template>
21279
21774
  * ```
21280
21775
  */
21281
- Root: _sfc_main$139,
21776
+ Root: _sfc_main$141,
21282
21777
  /**
21283
21778
  * Resizable panel within a splitter layout, sized via flex-basis percentage.
21284
21779
  *
@@ -21291,7 +21786,7 @@ const Splitter = {
21291
21786
  * </Splitter.Panel>
21292
21787
  * ```
21293
21788
  */
21294
- Panel: _sfc_main$138,
21789
+ Panel: _sfc_main$140,
21295
21790
  /**
21296
21791
  * Draggable resize handle between two adjacent panels.
21297
21792
  *
@@ -21302,12 +21797,12 @@ const Splitter = {
21302
21797
  * <Splitter.Handle label="Resize panels" />
21303
21798
  * ```
21304
21799
  */
21305
- Handle: _sfc_main$137
21800
+ Handle: _sfc_main$139
21306
21801
  };
21307
21802
  //#endregion
21308
21803
  //#region src/components/Step/StepRoot.vue
21309
21804
  const [useStepRoot, provideStepRoot] = createContext();
21310
- const _sfc_main$141 = /* @__PURE__ */ defineComponent({
21805
+ const _sfc_main$143 = /* @__PURE__ */ defineComponent({
21311
21806
  name: "StepRoot",
21312
21807
  __name: "StepRoot",
21313
21808
  props: /* @__PURE__ */ mergeModels({
@@ -21358,7 +21853,7 @@ const _sfc_main$141 = /* @__PURE__ */ defineComponent({
21358
21853
  });
21359
21854
  //#endregion
21360
21855
  //#region src/components/Step/StepItem.vue
21361
- const _sfc_main$140 = /* @__PURE__ */ defineComponent({
21856
+ const _sfc_main$142 = /* @__PURE__ */ defineComponent({
21362
21857
  name: "StepItem",
21363
21858
  __name: "StepItem",
21364
21859
  props: {
@@ -21380,6 +21875,11 @@ const _sfc_main$140 = /* @__PURE__ */ defineComponent({
21380
21875
  if (toValue(isDisabled)) return;
21381
21876
  ticket.toggle();
21382
21877
  }
21878
+ function onKeydown(e) {
21879
+ if (e.key !== "Enter" && e.key !== " ") return;
21880
+ e.preventDefault();
21881
+ onClick();
21882
+ }
21383
21883
  onBeforeUnmount(() => {
21384
21884
  step.unregister(ticket.id);
21385
21885
  });
@@ -21393,11 +21893,14 @@ const _sfc_main$140 = /* @__PURE__ */ defineComponent({
21393
21893
  unselect: ticket.unselect,
21394
21894
  toggle: ticket.toggle,
21395
21895
  attrs: {
21896
+ "role": "tab",
21897
+ "tabindex": toValue(isDisabled) ? -1 : 0,
21396
21898
  "aria-selected": toValue(ticket.isSelected),
21397
21899
  "aria-disabled": toValue(isDisabled),
21398
21900
  "data-selected": toValue(ticket.isSelected) || void 0,
21399
21901
  "data-disabled": toValue(isDisabled) || void 0,
21400
- "onClick": onClick
21902
+ "onClick": onClick,
21903
+ "onKeydown": onKeydown
21401
21904
  }
21402
21905
  }));
21403
21906
  return (_ctx, _cache) => {
@@ -21435,7 +21938,7 @@ const Step = {
21435
21938
  * </template>
21436
21939
  * ```
21437
21940
  */
21438
- Root: _sfc_main$141,
21941
+ Root: _sfc_main$143,
21439
21942
  /**
21440
21943
  * Component representing a single step item.
21441
21944
  *
@@ -21454,12 +21957,12 @@ const Step = {
21454
21957
  * </template>
21455
21958
  * ```
21456
21959
  */
21457
- Item: _sfc_main$140
21960
+ Item: _sfc_main$142
21458
21961
  };
21459
21962
  //#endregion
21460
21963
  //#region src/components/Switch/SwitchGroup.vue
21461
21964
  const [useSwitchGroup, provideSwitchGroup] = createContext();
21462
- const _sfc_main$142 = /* @__PURE__ */ defineComponent({
21965
+ const _sfc_main$144 = /* @__PURE__ */ defineComponent({
21463
21966
  name: "SwitchGroup",
21464
21967
  __name: "SwitchGroup",
21465
21968
  props: /* @__PURE__ */ mergeModels({
@@ -21528,7 +22031,7 @@ const _sfc_main$142 = /* @__PURE__ */ defineComponent({
21528
22031
  //#endregion
21529
22032
  //#region src/components/Switch/SwitchRoot.vue
21530
22033
  const [useSwitchRoot, provideSwitchRoot] = createContext();
21531
- const _sfc_main$144 = /* @__PURE__ */ defineComponent({
22034
+ const _sfc_main$146 = /* @__PURE__ */ defineComponent({
21532
22035
  name: "SwitchRoot",
21533
22036
  inheritAttrs: false,
21534
22037
  __name: "SwitchRoot",
@@ -21655,7 +22158,7 @@ const _sfc_main$144 = /* @__PURE__ */ defineComponent({
21655
22158
  }), {
21656
22159
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
21657
22160
  _: 3
21658
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$143, { key: 0 })) : createCommentVNode("v-if", true)], 64);
22161
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$145, { key: 0 })) : createCommentVNode("v-if", true)], 64);
21659
22162
  };
21660
22163
  }
21661
22164
  });
@@ -21679,7 +22182,7 @@ const visuallyHiddenStyle = {
21679
22182
  whiteSpace: "nowrap",
21680
22183
  border: "0"
21681
22184
  };
21682
- const _sfc_main$143 = /* @__PURE__ */ defineComponent({
22185
+ const _sfc_main$145 = /* @__PURE__ */ defineComponent({
21683
22186
  name: "SwitchHiddenInput",
21684
22187
  __name: "SwitchHiddenInput",
21685
22188
  props: {
@@ -21717,7 +22220,7 @@ const _sfc_main$143 = /* @__PURE__ */ defineComponent({
21717
22220
  });
21718
22221
  //#endregion
21719
22222
  //#region src/components/Switch/SwitchSelectAll.vue
21720
- const _sfc_main$145 = /* @__PURE__ */ defineComponent({
22223
+ const _sfc_main$147 = /* @__PURE__ */ defineComponent({
21721
22224
  name: "SwitchSelectAll",
21722
22225
  inheritAttrs: false,
21723
22226
  __name: "SwitchSelectAll",
@@ -21801,7 +22304,7 @@ const _sfc_main$145 = /* @__PURE__ */ defineComponent({
21801
22304
  });
21802
22305
  //#endregion
21803
22306
  //#region src/components/Switch/SwitchThumb.vue
21804
- const _sfc_main$146 = /* @__PURE__ */ defineComponent({
22307
+ const _sfc_main$148 = /* @__PURE__ */ defineComponent({
21805
22308
  name: "SwitchThumb",
21806
22309
  __name: "SwitchThumb",
21807
22310
  props: {
@@ -21835,7 +22338,7 @@ const _sfc_main$146 = /* @__PURE__ */ defineComponent({
21835
22338
  });
21836
22339
  //#endregion
21837
22340
  //#region src/components/Switch/SwitchTrack.vue
21838
- const _sfc_main$147 = /* @__PURE__ */ defineComponent({
22341
+ const _sfc_main$149 = /* @__PURE__ */ defineComponent({
21839
22342
  name: "SwitchTrack",
21840
22343
  __name: "SwitchTrack",
21841
22344
  props: {
@@ -21929,7 +22432,7 @@ const Switch = {
21929
22432
  * </template>
21930
22433
  * ```
21931
22434
  */
21932
- Group: _sfc_main$142,
22435
+ Group: _sfc_main$144,
21933
22436
  /**
21934
22437
  * Hidden input component for form submission.
21935
22438
  *
@@ -21952,7 +22455,7 @@ const Switch = {
21952
22455
  * </template>
21953
22456
  * ```
21954
22457
  */
21955
- HiddenInput: _sfc_main$143,
22458
+ HiddenInput: _sfc_main$145,
21956
22459
  /**
21957
22460
  * Root component for individual switches.
21958
22461
  *
@@ -21984,7 +22487,7 @@ const Switch = {
21984
22487
  * </template>
21985
22488
  * ```
21986
22489
  */
21987
- Root: _sfc_main$144,
22490
+ Root: _sfc_main$146,
21988
22491
  /**
21989
22492
  * Select-all toggle for group multi-selection.
21990
22493
  *
@@ -22022,7 +22525,7 @@ const Switch = {
22022
22525
  * </template>
22023
22526
  * ```
22024
22527
  */
22025
- SelectAll: _sfc_main$145,
22528
+ SelectAll: _sfc_main$147,
22026
22529
  /**
22027
22530
  * Sliding knob for switches.
22028
22531
  *
@@ -22041,7 +22544,7 @@ const Switch = {
22041
22544
  * </Switch.Root>
22042
22545
  * ```
22043
22546
  */
22044
- Thumb: _sfc_main$146,
22547
+ Thumb: _sfc_main$148,
22045
22548
  /**
22046
22549
  * Track/rail component for switches.
22047
22550
  *
@@ -22059,12 +22562,12 @@ const Switch = {
22059
22562
  * </Switch.Root>
22060
22563
  * ```
22061
22564
  */
22062
- Track: _sfc_main$147
22565
+ Track: _sfc_main$149
22063
22566
  };
22064
22567
  //#endregion
22065
22568
  //#region src/components/Tabs/TabsRoot.vue
22066
22569
  const [useTabsRoot, provideTabsRoot] = createContext();
22067
- const _sfc_main$151 = /* @__PURE__ */ defineComponent({
22570
+ const _sfc_main$153 = /* @__PURE__ */ defineComponent({
22068
22571
  name: "TabsRoot",
22069
22572
  __name: "TabsRoot",
22070
22573
  props: /* @__PURE__ */ mergeModels({
@@ -22132,7 +22635,7 @@ const _sfc_main$151 = /* @__PURE__ */ defineComponent({
22132
22635
  });
22133
22636
  //#endregion
22134
22637
  //#region src/components/Tabs/TabsList.vue
22135
- const _sfc_main$149 = /* @__PURE__ */ defineComponent({
22638
+ const _sfc_main$151 = /* @__PURE__ */ defineComponent({
22136
22639
  name: "TabsList",
22137
22640
  inheritAttrs: false,
22138
22641
  __name: "TabsList",
@@ -22170,7 +22673,7 @@ const _sfc_main$149 = /* @__PURE__ */ defineComponent({
22170
22673
  });
22171
22674
  //#endregion
22172
22675
  //#region src/components/Tabs/TabsItem.vue
22173
- const _sfc_main$148 = /* @__PURE__ */ defineComponent({
22676
+ const _sfc_main$150 = /* @__PURE__ */ defineComponent({
22174
22677
  name: "TabsItem",
22175
22678
  inheritAttrs: false,
22176
22679
  __name: "TabsItem",
@@ -22318,7 +22821,7 @@ const _sfc_main$148 = /* @__PURE__ */ defineComponent({
22318
22821
  });
22319
22822
  //#endregion
22320
22823
  //#region src/components/Tabs/TabsPanel.vue
22321
- const _sfc_main$150 = /* @__PURE__ */ defineComponent({
22824
+ const _sfc_main$152 = /* @__PURE__ */ defineComponent({
22322
22825
  name: "TabsPanel",
22323
22826
  inheritAttrs: false,
22324
22827
  __name: "TabsPanel",
@@ -22401,25 +22904,25 @@ const Tabs = {
22401
22904
  *
22402
22905
  * @see https://0.vuetifyjs.com/components/disclosure/tabs
22403
22906
  */
22404
- Root: _sfc_main$151,
22907
+ Root: _sfc_main$153,
22405
22908
  /**
22406
22909
  * Container for tab triggers with tablist role.
22407
22910
  *
22408
22911
  * @see https://0.vuetifyjs.com/components/disclosure/tabs
22409
22912
  */
22410
- List: _sfc_main$149,
22913
+ List: _sfc_main$151,
22411
22914
  /**
22412
22915
  * Individual tab trigger.
22413
22916
  *
22414
22917
  * @see https://0.vuetifyjs.com/components/disclosure/tabs
22415
22918
  */
22416
- Item: _sfc_main$148,
22919
+ Item: _sfc_main$150,
22417
22920
  /**
22418
22921
  * Content panel associated with a tab.
22419
22922
  *
22420
22923
  * @see https://0.vuetifyjs.com/components/disclosure/tabs
22421
22924
  */
22422
- Panel: _sfc_main$150
22925
+ Panel: _sfc_main$152
22423
22926
  };
22424
22927
  //#endregion
22425
22928
  //#region src/composables/useTheme/adapters/adapter.ts
@@ -22797,7 +23300,7 @@ const [createThemeContext, createThemePlugin, useTheme] = createPluginContext("v
22797
23300
  });
22798
23301
  //#endregion
22799
23302
  //#region src/components/Theme/Theme.vue
22800
- const _sfc_main$152 = /* @__PURE__ */ defineComponent({
23303
+ const _sfc_main$154 = /* @__PURE__ */ defineComponent({
22801
23304
  name: "Theme",
22802
23305
  inheritAttrs: false,
22803
23306
  __name: "Theme",
@@ -22857,7 +23360,7 @@ const _sfc_main$152 = /* @__PURE__ */ defineComponent({
22857
23360
  //#endregion
22858
23361
  //#region src/components/Toggle/ToggleGroup.vue
22859
23362
  const [useToggleGroup, provideToggleGroup] = createContext();
22860
- const _sfc_main$153 = /* @__PURE__ */ defineComponent({
23363
+ const _sfc_main$155 = /* @__PURE__ */ defineComponent({
22861
23364
  name: "ToggleGroup",
22862
23365
  __name: "ToggleGroup",
22863
23366
  props: /* @__PURE__ */ mergeModels({
@@ -22929,7 +23432,7 @@ const _sfc_main$153 = /* @__PURE__ */ defineComponent({
22929
23432
  //#endregion
22930
23433
  //#region src/components/Toggle/ToggleRoot.vue
22931
23434
  const [useToggleRoot, provideToggleRoot] = createContext();
22932
- const _sfc_main$155 = /* @__PURE__ */ defineComponent({
23435
+ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
22933
23436
  name: "ToggleRoot",
22934
23437
  inheritAttrs: false,
22935
23438
  __name: "ToggleRoot",
@@ -22979,7 +23482,7 @@ const _sfc_main$155 = /* @__PURE__ */ defineComponent({
22979
23482
  toggle();
22980
23483
  }
22981
23484
  function onKeydown(e) {
22982
- if (e.key !== " ") return;
23485
+ if (e.key !== " " && e.key !== "Enter") return;
22983
23486
  e.preventDefault();
22984
23487
  toggle();
22985
23488
  }
@@ -22998,13 +23501,14 @@ const _sfc_main$155 = /* @__PURE__ */ defineComponent({
22998
23501
  toggle,
22999
23502
  attrs: {
23000
23503
  "type": __props.as === "button" ? "button" : void 0,
23504
+ "role": __props.as === "button" ? void 0 : "button",
23001
23505
  "aria-pressed": isPressed.value,
23002
23506
  "aria-disabled": isDisabled.value,
23003
- "tabindex": isDisabled.value ? void 0 : 0,
23507
+ "tabindex": isDisabled.value ? -1 : 0,
23004
23508
  "data-state": isPressed.value ? "on" : "off",
23005
23509
  "data-disabled": isDisabled.value ? true : void 0,
23006
23510
  "onClick": onClick,
23007
- "onKeydown": onKeydown
23511
+ "onKeydown": __props.as === "button" ? void 0 : onKeydown
23008
23512
  }
23009
23513
  }));
23010
23514
  return (_ctx, _cache) => {
@@ -23020,7 +23524,7 @@ const _sfc_main$155 = /* @__PURE__ */ defineComponent({
23020
23524
  });
23021
23525
  //#endregion
23022
23526
  //#region src/components/Toggle/ToggleIndicator.vue
23023
- const _sfc_main$154 = /* @__PURE__ */ defineComponent({
23527
+ const _sfc_main$156 = /* @__PURE__ */ defineComponent({
23024
23528
  name: "ToggleIndicator",
23025
23529
  __name: "ToggleIndicator",
23026
23530
  props: {
@@ -23094,7 +23598,7 @@ const Toggle = {
23094
23598
  * </template>
23095
23599
  * ```
23096
23600
  */
23097
- Group: _sfc_main$153,
23601
+ Group: _sfc_main$155,
23098
23602
  /**
23099
23603
  * Visual indicator for the pressed state.
23100
23604
  *
@@ -23116,7 +23620,7 @@ const Toggle = {
23116
23620
  * </template>
23117
23621
  * ```
23118
23622
  */
23119
- Indicator: _sfc_main$154,
23623
+ Indicator: _sfc_main$156,
23120
23624
  /**
23121
23625
  * Pressable toggle button with on/off state.
23122
23626
  *
@@ -23139,7 +23643,7 @@ const Toggle = {
23139
23643
  * </template>
23140
23644
  * ```
23141
23645
  */
23142
- Root: _sfc_main$155
23646
+ Root: _sfc_main$157
23143
23647
  };
23144
23648
  //#endregion
23145
23649
  //#region src/composables/useTooltip/index.ts
@@ -23216,7 +23720,7 @@ const [createTooltipContext, createTooltipPlugin, useTooltip] = createPluginCont
23216
23720
  //#endregion
23217
23721
  //#region src/components/Tooltip/TooltipRoot.vue
23218
23722
  const [useTooltipRoot, provideTooltipRoot] = createContext({ suffix: "root" });
23219
- const _sfc_main$158 = /* @__PURE__ */ defineComponent({
23723
+ const _sfc_main$160 = /* @__PURE__ */ defineComponent({
23220
23724
  name: "TooltipRoot",
23221
23725
  __name: "TooltipRoot",
23222
23726
  props: /* @__PURE__ */ mergeModels({
@@ -23320,7 +23824,7 @@ const _sfc_main$158 = /* @__PURE__ */ defineComponent({
23320
23824
  });
23321
23825
  //#endregion
23322
23826
  //#region src/components/Tooltip/TooltipActivator.vue
23323
- const _sfc_main$156 = /* @__PURE__ */ defineComponent({
23827
+ const _sfc_main$158 = /* @__PURE__ */ defineComponent({
23324
23828
  name: "TooltipActivator",
23325
23829
  inheritAttrs: false,
23326
23830
  __name: "TooltipActivator",
@@ -23392,7 +23896,7 @@ const _sfc_main$156 = /* @__PURE__ */ defineComponent({
23392
23896
  });
23393
23897
  //#endregion
23394
23898
  //#region src/components/Tooltip/TooltipContent.vue
23395
- const _sfc_main$157 = /* @__PURE__ */ defineComponent({
23899
+ const _sfc_main$159 = /* @__PURE__ */ defineComponent({
23396
23900
  name: "TooltipContent",
23397
23901
  inheritAttrs: false,
23398
23902
  __name: "TooltipContent",
@@ -23487,7 +23991,7 @@ const Tooltip = {
23487
23991
  * </template>
23488
23992
  * ```
23489
23993
  */
23490
- Root: _sfc_main$158,
23994
+ Root: _sfc_main$160,
23491
23995
  /**
23492
23996
  * Trigger element that opens the tooltip on hover/focus.
23493
23997
  *
@@ -23502,7 +24006,7 @@ const Tooltip = {
23502
24006
  * </template>
23503
24007
  * ```
23504
24008
  */
23505
- Activator: _sfc_main$156,
24009
+ Activator: _sfc_main$158,
23506
24010
  /**
23507
24011
  * Floating content shown while the tooltip is open.
23508
24012
  *
@@ -23517,7 +24021,7 @@ const Tooltip = {
23517
24021
  * </template>
23518
24022
  * ```
23519
24023
  */
23520
- Content: _sfc_main$157
24024
+ Content: _sfc_main$159
23521
24025
  };
23522
24026
  //#endregion
23523
24027
  //#region src/composables/createNested/index.ts
@@ -24212,7 +24716,7 @@ function useNested(namespace = "v0:nested") {
24212
24716
  //#endregion
24213
24717
  //#region src/components/Treeview/TreeviewRoot.vue
24214
24718
  const [useTreeviewRoot, provideTreeviewRoot] = createContext();
24215
- const _sfc_main$167 = /* @__PURE__ */ defineComponent({
24719
+ const _sfc_main$169 = /* @__PURE__ */ defineComponent({
24216
24720
  name: "TreeviewRoot",
24217
24721
  __name: "TreeviewRoot",
24218
24722
  props: /* @__PURE__ */ mergeModels({
@@ -24357,7 +24861,7 @@ function useRovingFocus(items, options = {}) {
24357
24861
  //#region src/components/Treeview/TreeviewList.vue
24358
24862
  const FOCUSABLE = "a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]";
24359
24863
  const [useTreeviewList, provideTreeviewList] = createContext({ suffix: "list" });
24360
- const _sfc_main$166 = /* @__PURE__ */ defineComponent({
24864
+ const _sfc_main$168 = /* @__PURE__ */ defineComponent({
24361
24865
  name: "TreeviewList",
24362
24866
  __name: "TreeviewList",
24363
24867
  props: {
@@ -24515,7 +25019,7 @@ const _sfc_main$166 = /* @__PURE__ */ defineComponent({
24515
25019
  //#endregion
24516
25020
  //#region src/components/Treeview/TreeviewItem.vue
24517
25021
  const [useTreeviewItem, provideTreeviewItem] = createContext({ suffix: "item" });
24518
- const _sfc_main$165 = /* @__PURE__ */ defineComponent({
25022
+ const _sfc_main$167 = /* @__PURE__ */ defineComponent({
24519
25023
  name: "TreeviewItem",
24520
25024
  __name: "TreeviewItem",
24521
25025
  props: {
@@ -24595,7 +25099,7 @@ const _sfc_main$165 = /* @__PURE__ */ defineComponent({
24595
25099
  });
24596
25100
  //#endregion
24597
25101
  //#region src/components/Treeview/TreeviewActivator.vue
24598
- const _sfc_main$159 = /* @__PURE__ */ defineComponent({
25102
+ const _sfc_main$161 = /* @__PURE__ */ defineComponent({
24599
25103
  name: "TreeviewActivator",
24600
25104
  __name: "TreeviewActivator",
24601
25105
  props: {
@@ -24634,7 +25138,7 @@ const _sfc_main$159 = /* @__PURE__ */ defineComponent({
24634
25138
  });
24635
25139
  //#endregion
24636
25140
  //#region src/components/Treeview/TreeviewCheckbox.vue
24637
- const _sfc_main$160 = /* @__PURE__ */ defineComponent({
25141
+ const _sfc_main$162 = /* @__PURE__ */ defineComponent({
24638
25142
  name: "TreeviewCheckbox",
24639
25143
  __name: "TreeviewCheckbox",
24640
25144
  props: {
@@ -24675,7 +25179,7 @@ const _sfc_main$160 = /* @__PURE__ */ defineComponent({
24675
25179
  });
24676
25180
  //#endregion
24677
25181
  //#region src/components/Treeview/TreeviewContent.vue
24678
- const _sfc_main$161 = /* @__PURE__ */ defineComponent({
25182
+ const _sfc_main$163 = /* @__PURE__ */ defineComponent({
24679
25183
  name: "TreeviewContent",
24680
25184
  __name: "TreeviewContent",
24681
25185
  props: { namespace: { default: "v0:treeview" } },
@@ -24701,7 +25205,7 @@ const _sfc_main$161 = /* @__PURE__ */ defineComponent({
24701
25205
  });
24702
25206
  //#endregion
24703
25207
  //#region src/components/Treeview/TreeviewCue.vue
24704
- const _sfc_main$162 = /* @__PURE__ */ defineComponent({
25208
+ const _sfc_main$164 = /* @__PURE__ */ defineComponent({
24705
25209
  name: "TreeviewCue",
24706
25210
  __name: "TreeviewCue",
24707
25211
  props: {
@@ -24735,7 +25239,7 @@ const _sfc_main$162 = /* @__PURE__ */ defineComponent({
24735
25239
  });
24736
25240
  //#endregion
24737
25241
  //#region src/components/Treeview/TreeviewGroup.vue
24738
- const _sfc_main$163 = /* @__PURE__ */ defineComponent({
25242
+ const _sfc_main$165 = /* @__PURE__ */ defineComponent({
24739
25243
  name: "TreeviewGroup",
24740
25244
  __name: "TreeviewGroup",
24741
25245
  props: {
@@ -24757,7 +25261,7 @@ const _sfc_main$163 = /* @__PURE__ */ defineComponent({
24757
25261
  });
24758
25262
  //#endregion
24759
25263
  //#region src/components/Treeview/TreeviewIndicator.vue
24760
- const _sfc_main$164 = /* @__PURE__ */ defineComponent({
25264
+ const _sfc_main$166 = /* @__PURE__ */ defineComponent({
24761
25265
  name: "TreeviewIndicator",
24762
25266
  __name: "TreeviewIndicator",
24763
25267
  props: {
@@ -24793,7 +25297,7 @@ const _sfc_main$164 = /* @__PURE__ */ defineComponent({
24793
25297
  });
24794
25298
  //#endregion
24795
25299
  //#region src/components/Treeview/TreeviewSelectAll.vue
24796
- const _sfc_main$168 = /* @__PURE__ */ defineComponent({
25300
+ const _sfc_main$170 = /* @__PURE__ */ defineComponent({
24797
25301
  name: "TreeviewSelectAll",
24798
25302
  __name: "TreeviewSelectAll",
24799
25303
  props: {
@@ -24945,7 +25449,7 @@ const Treeview = {
24945
25449
  * </template>
24946
25450
  * ```
24947
25451
  */
24948
- Root: _sfc_main$167,
25452
+ Root: _sfc_main$169,
24949
25453
  /**
24950
25454
  * Top-level list container with `role="tree"` and `aria-multiselectable`.
24951
25455
  *
@@ -24958,7 +25462,7 @@ const Treeview = {
24958
25462
  * </Treeview.List>
24959
25463
  * ```
24960
25464
  */
24961
- List: _sfc_main$166,
25465
+ List: _sfc_main$168,
24962
25466
  /**
24963
25467
  * Tree node with `role="treeitem"`. Registers with the nearest Root context
24964
25468
  * and auto-nests under the closest ancestor Item.
@@ -24979,7 +25483,7 @@ const Treeview = {
24979
25483
  * </Treeview.Item>
24980
25484
  * ```
24981
25485
  */
24982
- Item: _sfc_main$165,
25486
+ Item: _sfc_main$167,
24983
25487
  /**
24984
25488
  * Click-to-toggle trigger for expand/collapse. Renders a button by default.
24985
25489
  *
@@ -24992,7 +25496,7 @@ const Treeview = {
24992
25496
  * </Treeview.Activator>
24993
25497
  * ```
24994
25498
  */
24995
- Activator: _sfc_main$159,
25499
+ Activator: _sfc_main$161,
24996
25500
  /**
24997
25501
  * Collapse gate for child nodes. Conditionally renders when the parent Item is open.
24998
25502
  *
@@ -25007,7 +25511,7 @@ const Treeview = {
25007
25511
  * </Treeview.Content>
25008
25512
  * ```
25009
25513
  */
25010
- Content: _sfc_main$161,
25514
+ Content: _sfc_main$163,
25011
25515
  /**
25012
25516
  * Visual cue for expand/collapse state. Hides itself on leaf nodes.
25013
25517
  * Exposes `data-state="open|closed"` for CSS-driven styling.
@@ -25016,12 +25520,12 @@ const Treeview = {
25016
25520
  *
25017
25521
  * @example
25018
25522
  * ```vue
25019
- * <Treeview.Cue v-slot="{ attrs }">
25523
+ * <Treeview.Cue v-slot="{ attrs }" renderless>
25020
25524
  * <span v-bind="attrs">▶</span>
25021
25525
  * </Treeview.Cue>
25022
25526
  * ```
25023
25527
  */
25024
- Cue: _sfc_main$162,
25528
+ Cue: _sfc_main$164,
25025
25529
  /**
25026
25530
  * Wrapper with `role="group"` for nested child items inside Content.
25027
25531
  *
@@ -25037,7 +25541,7 @@ const Treeview = {
25037
25541
  * </Treeview.Content>
25038
25542
  * ```
25039
25543
  */
25040
- Group: _sfc_main$163,
25544
+ Group: _sfc_main$165,
25041
25545
  /**
25042
25546
  * Tri-state checkbox for selection. Toggles selection on click
25043
25547
  * and shows mixed state for partially-selected parents.
@@ -25046,12 +25550,12 @@ const Treeview = {
25046
25550
  *
25047
25551
  * @example
25048
25552
  * ```vue
25049
- * <Treeview.Checkbox v-slot="{ attrs, isSelected, isMixed }">
25553
+ * <Treeview.Checkbox v-slot="{ attrs, isSelected, isMixed }" renderless>
25050
25554
  * <span v-bind="attrs">{{ isMixed ? '−' : isSelected ? '✓' : '○' }}</span>
25051
25555
  * </Treeview.Checkbox>
25052
25556
  * ```
25053
25557
  */
25054
- Checkbox: _sfc_main$160,
25558
+ Checkbox: _sfc_main$162,
25055
25559
  /**
25056
25560
  * Visual indicator for selection state. Shows checked, unchecked,
25057
25561
  * or indeterminate via `data-state`.
@@ -25060,12 +25564,12 @@ const Treeview = {
25060
25564
  *
25061
25565
  * @example
25062
25566
  * ```vue
25063
- * <Treeview.Indicator v-slot="{ attrs }">
25567
+ * <Treeview.Indicator v-slot="{ attrs }" renderless>
25064
25568
  * <span v-bind="attrs">●</span>
25065
25569
  * </Treeview.Indicator>
25066
25570
  * ```
25067
25571
  */
25068
- Indicator: _sfc_main$164,
25572
+ Indicator: _sfc_main$166,
25069
25573
  /**
25070
25574
  * Select all checkbox for tree-wide multi-selection.
25071
25575
  *
@@ -25077,14 +25581,14 @@ const Treeview = {
25077
25581
  *
25078
25582
  * @example
25079
25583
  * ```vue
25080
- * <Treeview.SelectAll v-slot="{ attrs, isAllSelected, isMixed }">
25584
+ * <Treeview.SelectAll v-slot="{ attrs, isAllSelected, isMixed }" renderless>
25081
25585
  * <button v-bind="attrs">
25082
25586
  * {{ isMixed ? '−' : isAllSelected ? '✓' : '○' }} Select All
25083
25587
  * </button>
25084
25588
  * </Treeview.SelectAll>
25085
25589
  * ```
25086
25590
  */
25087
- SelectAll: _sfc_main$168
25591
+ SelectAll: _sfc_main$170
25088
25592
  };
25089
25593
  //#endregion
25090
25594
  //#region src/composables/createDataTable/adapters/adapter.ts
@@ -27992,45 +28496,45 @@ function createBreakpoints(_options = {}) {
27992
28496
  const mb = /* @__PURE__ */ isNumber(mobileBreakpoint) ? mobileBreakpoint : breakpoints[mobileBreakpoint] ?? breakpoints.md;
27993
28497
  const initialWidth = ssr ? ssr.clientWidth : IN_BROWSER ? window.innerWidth : 0;
27994
28498
  const initialHeight = ssr ? ssr.clientHeight ?? 0 : IN_BROWSER ? window.innerHeight : 0;
27995
- let initialName = "xs";
27996
- for (let i = sorted.length - 1; i >= 0; i--) if (initialWidth >= sorted[i][1]) {
27997
- initialName = sorted[i][0];
27998
- break;
27999
- }
28000
- const initialIndex = names.indexOf(initialName);
28001
- const name = shallowRef(initialName);
28499
+ const name = shallowRef("xs");
28002
28500
  const width = shallowRef(initialWidth);
28003
28501
  const height = shallowRef(initialHeight);
28004
- const isMobile = shallowRef(initialWidth < mb);
28005
- const xs = shallowRef(initialIndex === 0);
28006
- const sm = shallowRef(initialIndex === 1);
28007
- const md = shallowRef(initialIndex === 2);
28008
- const lg = shallowRef(initialIndex === 3);
28009
- const xl = shallowRef(initialIndex === 4);
28010
- const xxl = shallowRef(initialIndex === 5);
28011
- const smAndUp = shallowRef(initialIndex >= 1);
28012
- const mdAndUp = shallowRef(initialIndex >= 2);
28013
- const lgAndUp = shallowRef(initialIndex >= 3);
28014
- const xlAndUp = shallowRef(initialIndex >= 4);
28015
- const smAndDown = shallowRef(initialIndex <= 1);
28016
- const mdAndDown = shallowRef(initialIndex <= 2);
28017
- const lgAndDown = shallowRef(initialIndex <= 3);
28018
- const xlAndDown = shallowRef(initialIndex <= 4);
28019
- function update() {
28020
- if (!IN_BROWSER) return;
28021
- width.value = window.innerWidth;
28022
- height.value = window.innerHeight;
28502
+ const isMobile = shallowRef(false);
28503
+ const xs = shallowRef(false);
28504
+ const sm = shallowRef(false);
28505
+ const md = shallowRef(false);
28506
+ const lg = shallowRef(false);
28507
+ const xl = shallowRef(false);
28508
+ const xxl = shallowRef(false);
28509
+ const smAndUp = shallowRef(false);
28510
+ const mdAndUp = shallowRef(false);
28511
+ const lgAndUp = shallowRef(false);
28512
+ const xlAndUp = shallowRef(false);
28513
+ const smAndDown = shallowRef(false);
28514
+ const mdAndDown = shallowRef(false);
28515
+ const lgAndDown = shallowRef(false);
28516
+ const xlAndDown = shallowRef(false);
28517
+ function resolve(value, media) {
28023
28518
  let current = "xs";
28024
28519
  for (let i = sorted.length - 1; i >= 0; i--) {
28025
28520
  const px = sorted[i][1];
28026
- if (SUPPORTS_MATCH_MEDIA ? window.matchMedia(`(min-width: ${px}px)`).matches : width.value >= px) {
28521
+ if (media ? window.matchMedia(`(min-width: ${px}px)`).matches : value >= px) {
28027
28522
  current = sorted[i][0];
28028
28523
  break;
28029
28524
  }
28030
28525
  }
28031
- name.value = current;
28032
28526
  const index = names.indexOf(current);
28033
- isMobile.value = /* @__PURE__ */ isNumber(mb) ? SUPPORTS_MATCH_MEDIA ? !window.matchMedia(`(min-width: ${mb}px)`).matches : width.value < mb : index < names.indexOf(mobileBreakpoint);
28527
+ /* v8 ignore next 3 -- alternate arm is defensive: mb always resolves to a number via `?? breakpoints.md` */
28528
+ const mobile = /* @__PURE__ */ isNumber(mb) ? media ? !window.matchMedia(`(min-width: ${mb}px)`).matches : value < mb : index < names.indexOf(mobileBreakpoint);
28529
+ return {
28530
+ current,
28531
+ index,
28532
+ mobile
28533
+ };
28534
+ }
28535
+ function apply({ current, index, mobile }) {
28536
+ name.value = current;
28537
+ isMobile.value = mobile;
28034
28538
  xs.value = index === 0;
28035
28539
  sm.value = index === 1;
28036
28540
  md.value = index === 2;
@@ -28046,6 +28550,13 @@ function createBreakpoints(_options = {}) {
28046
28550
  lgAndDown.value = index <= 3;
28047
28551
  xlAndDown.value = index <= 4;
28048
28552
  }
28553
+ apply(resolve(initialWidth, !ssr && IN_BROWSER && SUPPORTS_MATCH_MEDIA));
28554
+ function update() {
28555
+ if (!IN_BROWSER) return;
28556
+ width.value = window.innerWidth;
28557
+ height.value = window.innerHeight;
28558
+ apply(resolve(width.value, SUPPORTS_MATCH_MEDIA));
28559
+ }
28049
28560
  return {
28050
28561
  breakpoints,
28051
28562
  mobileBreakpoint,
@@ -30350,4 +30861,4 @@ function createStorageFallback() {
30350
30861
  }
30351
30862
  const [createStorageContext, createStoragePlugin, useStorage] = createPluginContext("v0:storage", (options) => createStorage(options), { fallback: () => createStorageFallback() });
30352
30863
  //#endregion
30353
- export { AlertDialog, _sfc_main as AlertDialogAction, _sfc_main$1 as AlertDialogActivator, _sfc_main$2 as AlertDialogCancel, _sfc_main$3 as AlertDialogClose, _sfc_main$4 as AlertDialogContent, _sfc_main$5 as AlertDialogDescription, _sfc_main$6 as AlertDialogRoot, _sfc_main$7 as AlertDialogTitle, _sfc_main$8 as AspectRatio, _sfc_main$9 as Atom, Avatar, _sfc_main$10 as AvatarFallback, _sfc_main$11 as AvatarGroup, _sfc_main$12 as AvatarImage, _sfc_main$13 as AvatarIndicator, _sfc_main$14 as AvatarRoot, Breadcrumbs, _sfc_main$15 as BreadcrumbsDivider, _sfc_main$16 as BreadcrumbsEllipsis, _sfc_main$17 as BreadcrumbsItem, _sfc_main$18 as BreadcrumbsLink, _sfc_main$19 as BreadcrumbsList, _sfc_main$20 as BreadcrumbsPage, _sfc_main$21 as BreadcrumbsRoot, Button, _sfc_main$22 as ButtonContent, _sfc_main$23 as ButtonGroup, _sfc_main$24 as ButtonHiddenInput, _sfc_main$25 as ButtonIcon, _sfc_main$26 as ButtonLoading, _sfc_main$27 as ButtonRoot, Carousel, _sfc_main$28 as CarouselIndicator, _sfc_main$29 as CarouselItem, _sfc_main$30 as CarouselLiveRegion, _sfc_main$31 as CarouselNext, _sfc_main$32 as CarouselPrevious, _sfc_main$33 as CarouselProgress, _sfc_main$34 as CarouselRoot, _sfc_main$35 as CarouselViewport, Checkbox, _sfc_main$36 as CheckboxGroup, _sfc_main$37 as CheckboxHiddenInput, _sfc_main$38 as CheckboxIndicator, _sfc_main$39 as CheckboxRoot, _sfc_main$40 as CheckboxSelectAll, ClientComboboxAdapter, ClientDataTableAdapter, Collapsible, _sfc_main$41 as CollapsibleActivator, _sfc_main$42 as CollapsibleContent, _sfc_main$43 as CollapsibleCue, _sfc_main$44 as CollapsibleRoot, Combobox, _sfc_main$45 as ComboboxActivator, ComboboxAdapter, _sfc_main$46 as ComboboxContent, _sfc_main$47 as ComboboxControl, _sfc_main$48 as ComboboxCue, _sfc_main$49 as ComboboxDescription, _sfc_main$50 as ComboboxEmpty, _sfc_main$51 as ComboboxError, _sfc_main$52 as ComboboxItem, _sfc_main$53 as ComboboxRoot, ConsolaLoggerAdapter, DataTableAdapter, DateAdapter, Dialog, _sfc_main$54 as DialogActivator, _sfc_main$55 as DialogClose, _sfc_main$56 as DialogContent, _sfc_main$57 as DialogDescription, _sfc_main$58 as DialogRoot, _sfc_main$59 as DialogTitle, DragDropAdapter, ExpansionPanel, _sfc_main$60 as ExpansionPanelActivator, _sfc_main$61 as ExpansionPanelContent, _sfc_main$62 as ExpansionPanelCue, _sfc_main$63 as ExpansionPanelGroup, _sfc_main$64 as ExpansionPanelHeader, _sfc_main$65 as ExpansionPanelRoot, FeaturesAdapter, _sfc_main$66 as Form, Group, _sfc_main$67 as GroupItem, _sfc_main$68 as GroupRoot, IN_BROWSER, Image, _sfc_main$69 as ImageFallback, _sfc_main$70 as ImageImg, _sfc_main$71 as ImagePlaceholder, _sfc_main$72 as ImageRoot, Input, _sfc_main$73 as InputControl, _sfc_main$74 as InputDescription, _sfc_main$75 as InputError, _sfc_main$76 as InputRoot, KeyboardAdapter, _sfc_main$77 as Locale, LocaleAdapter, LoggerAdapter, MemoryStorageAdapter, NumberField, _sfc_main$78 as NumberFieldControl, _sfc_main$79 as NumberFieldDecrement, _sfc_main$80 as NumberFieldDescription, _sfc_main$81 as NumberFieldError, _sfc_main$82 as NumberFieldIncrement, _sfc_main$83 as NumberFieldRoot, _sfc_main$84 as NumberFieldScrub, Overflow, _sfc_main$85 as OverflowIndicator, _sfc_main$86 as OverflowItem, _sfc_main$87 as OverflowRoot, Pagination, _sfc_main$88 as PaginationEllipsis, _sfc_main$89 as PaginationFirst, _sfc_main$90 as PaginationItem, _sfc_main$91 as PaginationLast, _sfc_main$92 as PaginationNext, _sfc_main$93 as PaginationPrev, _sfc_main$94 as PaginationRoot, _sfc_main$95 as PaginationStatus, PermissionsAdapter, PinoLoggerAdapter, PointerAdapter, Popover, _sfc_main$96 as PopoverActivator, _sfc_main$97 as PopoverContent, _sfc_main$98 as PopoverRoot, _sfc_main$99 as Portal, _sfc_main$100 as Presence, Progress, _sfc_main$101 as ProgressBuffer, _sfc_main$102 as ProgressFill, _sfc_main$103 as ProgressHiddenInput, _sfc_main$104 as ProgressLabel, _sfc_main$105 as ProgressRoot, _sfc_main$106 as ProgressTrack, _sfc_main$107 as ProgressValue, Radio, _sfc_main$108 as RadioGroup, _sfc_main$109 as RadioHiddenInput, _sfc_main$110 as RadioIndicator, _sfc_main$111 as RadioRoot, Rating, _sfc_main$112 as RatingHiddenInput, _sfc_main$113 as RatingItem, _sfc_main$114 as RatingRoot, ReducedMotionAdapter, RtlAdapter, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, _sfc_main$115 as Scrim, Select, _sfc_main$116 as SelectActivator, _sfc_main$117 as SelectContent, _sfc_main$118 as SelectCue, _sfc_main$119 as SelectItem, _sfc_main$120 as SelectPlaceholder, _sfc_main$121 as SelectRoot, _sfc_main$122 as SelectValue, Selection, _sfc_main$123 as SelectionItem, _sfc_main$124 as SelectionRoot, ServerComboboxAdapter, ServerDataTableAdapter, ServerDataTableAdapter as ServerGridAdapter, Single, _sfc_main$125 as SingleItem, _sfc_main$126 as SingleRoot, Slider, _sfc_main$127 as SliderHiddenInput, _sfc_main$128 as SliderRange, _sfc_main$129 as SliderRoot, _sfc_main$130 as SliderThumb, _sfc_main$131 as SliderTrack, Snackbar, _sfc_main$132 as SnackbarClose, _sfc_main$133 as SnackbarContent, _sfc_main$134 as SnackbarPortal, _sfc_main$135 as SnackbarQueue, _sfc_main$136 as SnackbarRoot, Splitter, _sfc_main$137 as SplitterHandle, _sfc_main$138 as SplitterPanel, _sfc_main$139 as SplitterRoot, Step, _sfc_main$140 as StepItem, _sfc_main$141 as StepRoot, StorageAdapter, Switch, _sfc_main$142 as SwitchGroup, _sfc_main$143 as SwitchHiddenInput, _sfc_main$144 as SwitchRoot, _sfc_main$145 as SwitchSelectAll, _sfc_main$146 as SwitchThumb, _sfc_main$147 as SwitchTrack, Tabs, _sfc_main$148 as TabsItem, _sfc_main$149 as TabsList, _sfc_main$150 as TabsPanel, _sfc_main$151 as TabsRoot, _sfc_main$152 as Theme, ThemeAdapter, Toggle, _sfc_main$153 as ToggleGroup, _sfc_main$154 as ToggleIndicator, _sfc_main$155 as ToggleRoot, Tooltip, _sfc_main$156 as TooltipActivator, _sfc_main$157 as TooltipContent, _sfc_main$158 as TooltipRoot, Treeview, _sfc_main$159 as TreeviewActivator, _sfc_main$160 as TreeviewCheckbox, _sfc_main$161 as TreeviewContent, _sfc_main$162 as TreeviewCue, _sfc_main$163 as TreeviewGroup, _sfc_main$164 as TreeviewIndicator, _sfc_main$165 as TreeviewItem, _sfc_main$166 as TreeviewList, _sfc_main$167 as TreeviewRoot, _sfc_main$168 as TreeviewSelectAll, UNSAFE_KEYS, V0Error, V0LocaleAdapter, V0LoggerAdapter, V0ReducedMotionAdapter, V0RtlAdapter, V0StyleSheetThemeAdapter, V0UnheadThemeAdapter, VirtualDataTableAdapter, __LOGGER_ENABLED__, apca, clamp, computeDepth, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createCombobox, createComboboxContext, createContext, createDataGrid, createDataGridContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createInput, createKanban, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createNotifications, createNotificationsContext, createNotificationsPlugin, createNumberField, createNumeric, createOtp, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createProgress, createProgressContext, createQueue, createQueueContext, createRating, createRatingContext, createReducedMotion, createReducedMotionContext, createReducedMotionPlugin, createRegistry, createRegistryContext, createRtl, createRtlContext, createRtlFallback, createRtlPlugin, createRules, createRulesContext, createRulesFallback, createRulesPlugin, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createSortable, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTooltipContext, createTooltipFallback, createTooltipPlugin, createTrinity, createValidation, createVirtual, createVirtualContext, extractLeaves, flatten, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isStandardSchema, isString, isSymbol, isThenable, isUndefined, isV0Error, mergeDeep, provideAlertDialogContext, provideAvatarGroup, provideAvatarRoot, provideBreadcrumbsRoot, provideButtonGroup, provideButtonRoot, provideCarouselRoot, provideCheckboxGroup, provideCheckboxRoot, provideCollapsible, provideComboboxContext, provideContext, provideDialogContext, provideExpansionPanelGroup, provideExpansionPanelRoot, provideGroupRoot, provideImageRoot, provideInputRoot, provideNumberFieldRoot, provideOverflowRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideProgressRoot, provideRadioGroup, provideRadioRoot, provideRatingRoot, provideSelectContext, provideSelectionRoot, provideSingleRoot, provideSliderRoot, provideSnackbarQueueContext, provideSnackbarRootContext, provideSplitterRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, provideToggleGroup, provideToggleRoot, provideTooltipRoot, provideTreeviewItem, provideTreeviewList, provideTreeviewRoot, range, resolveHeaders, resolveIds, resolveIndexes, rgbToHex, toArray, toElement, toHighlight, toReactive, useAlertDialogContext, useAvatarGroup, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useButtonGroup, useButtonRoot, useCarouselRoot, useCheckboxGroup, useCheckboxRoot, useClickOutside, useCollapsible, useCombobox, useComboboxContext, useContext, useDataGrid, useDataTable, useDate, useDelay, useDialogContext, useDocumentEventListener, useDragDrop, useElementIntersection, useElementSize, useEventListener, useExpansionPanelGroup, useExpansionPanelRoot, useFeatures, useFilter, useForm, useGroup, useGroupRoot, useHotkey, useHydration, useId, useImage, useImageRoot, useInputRoot, useIntersectionObserver, useLazy, useLocale, useLogger, useMediaQuery, useMutationObserver, useNested, useNotifications, useNumberFieldRoot, useOverflow, useOverflowRoot, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopover, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, usePresence, useProgress, useProgressRoot, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRaf, useRating, useRatingRoot, useReducedMotion, useRegistry, useResizeObserver, useRovingFocus, useRtl, useRules, useSelectContext, useSelection, useSelectionRoot, useSingle, useSingleRoot, useSliderRoot, useSnackbarQueueContext, useSnackbarRootContext, useSplitterRoot, useStack, useStep, useStepRoot, useStorage, useSwitchGroup, useSwitchRoot, useTabsRoot, useTheme, useTimeline, useTimer, useToggleGroup, useToggleRoot, useToggleScope, useTokens, useTooltip, useTooltipRoot, useTreeviewItem, useTreeviewList, useTreeviewRoot, useVirtual, useVirtualFocus, useWindowEventListener, version };
30864
+ export { AlertDialog, _sfc_main as AlertDialogAction, _sfc_main$1 as AlertDialogActivator, _sfc_main$2 as AlertDialogCancel, _sfc_main$3 as AlertDialogClose, _sfc_main$4 as AlertDialogContent, _sfc_main$5 as AlertDialogDescription, _sfc_main$6 as AlertDialogRoot, _sfc_main$7 as AlertDialogTitle, _sfc_main$8 as AspectRatio, _sfc_main$9 as Atom, Avatar, _sfc_main$10 as AvatarFallback, _sfc_main$11 as AvatarGroup, _sfc_main$12 as AvatarImage, _sfc_main$13 as AvatarIndicator, _sfc_main$14 as AvatarRoot, Breadcrumbs, _sfc_main$15 as BreadcrumbsActivator, _sfc_main$16 as BreadcrumbsDivider, _sfc_main$17 as BreadcrumbsEllipsis, _sfc_main$18 as BreadcrumbsItem, _sfc_main$19 as BreadcrumbsLink, _sfc_main$20 as BreadcrumbsList, _sfc_main$21 as BreadcrumbsPage, _sfc_main$22 as BreadcrumbsRoot, Button, _sfc_main$23 as ButtonContent, _sfc_main$24 as ButtonGroup, _sfc_main$25 as ButtonHiddenInput, _sfc_main$26 as ButtonIcon, _sfc_main$27 as ButtonLoading, _sfc_main$28 as ButtonRoot, Carousel, _sfc_main$29 as CarouselIndicator, _sfc_main$30 as CarouselItem, _sfc_main$31 as CarouselLiveRegion, _sfc_main$32 as CarouselNext, _sfc_main$33 as CarouselPrevious, _sfc_main$34 as CarouselProgress, _sfc_main$35 as CarouselRoot, _sfc_main$36 as CarouselViewport, Checkbox, _sfc_main$37 as CheckboxGroup, _sfc_main$38 as CheckboxHiddenInput, _sfc_main$39 as CheckboxIndicator, _sfc_main$40 as CheckboxRoot, _sfc_main$41 as CheckboxSelectAll, ClientComboboxAdapter, ClientDataTableAdapter, Collapsible, _sfc_main$42 as CollapsibleActivator, _sfc_main$43 as CollapsibleContent, _sfc_main$44 as CollapsibleCue, _sfc_main$45 as CollapsibleRoot, Combobox, _sfc_main$46 as ComboboxActivator, ComboboxAdapter, _sfc_main$47 as ComboboxContent, _sfc_main$48 as ComboboxControl, _sfc_main$49 as ComboboxCue, _sfc_main$50 as ComboboxDescription, _sfc_main$51 as ComboboxEmpty, _sfc_main$52 as ComboboxError, _sfc_main$53 as ComboboxItem, _sfc_main$54 as ComboboxRoot, ConsolaLoggerAdapter, DataTableAdapter, DateAdapter, Dialog, _sfc_main$55 as DialogActivator, _sfc_main$56 as DialogClose, _sfc_main$57 as DialogContent, _sfc_main$58 as DialogDescription, _sfc_main$59 as DialogRoot, _sfc_main$60 as DialogTitle, DragDropAdapter, ExpansionPanel, _sfc_main$61 as ExpansionPanelActivator, _sfc_main$62 as ExpansionPanelContent, _sfc_main$63 as ExpansionPanelCue, _sfc_main$64 as ExpansionPanelGroup, _sfc_main$65 as ExpansionPanelHeader, _sfc_main$66 as ExpansionPanelRoot, FeaturesAdapter, _sfc_main$67 as Form, Group, _sfc_main$68 as GroupItem, _sfc_main$69 as GroupRoot, IN_BROWSER, Image, _sfc_main$70 as ImageFallback, _sfc_main$71 as ImageImg, _sfc_main$72 as ImagePlaceholder, _sfc_main$73 as ImageRoot, Input, _sfc_main$74 as InputControl, _sfc_main$75 as InputDescription, _sfc_main$76 as InputError, _sfc_main$77 as InputRoot, KeyboardAdapter, _sfc_main$78 as Locale, LocaleAdapter, LoggerAdapter, MemoryStorageAdapter, NumberField, _sfc_main$79 as NumberFieldControl, _sfc_main$80 as NumberFieldDecrement, _sfc_main$81 as NumberFieldDescription, _sfc_main$82 as NumberFieldError, _sfc_main$83 as NumberFieldIncrement, _sfc_main$84 as NumberFieldRoot, _sfc_main$85 as NumberFieldScrub, Overflow, _sfc_main$86 as OverflowIndicator, _sfc_main$87 as OverflowItem, _sfc_main$88 as OverflowRoot, Pagination, _sfc_main$89 as PaginationEllipsis, _sfc_main$90 as PaginationFirst, _sfc_main$91 as PaginationItem, _sfc_main$92 as PaginationLast, _sfc_main$93 as PaginationNext, _sfc_main$94 as PaginationPrev, _sfc_main$95 as PaginationRoot, _sfc_main$96 as PaginationStatus, PermissionsAdapter, PinoLoggerAdapter, PointerAdapter, Popover, _sfc_main$97 as PopoverActivator, _sfc_main$98 as PopoverContent, _sfc_main$99 as PopoverRoot, _sfc_main$100 as Portal, _sfc_main$101 as Presence, Progress, _sfc_main$102 as ProgressBuffer, _sfc_main$103 as ProgressFill, _sfc_main$104 as ProgressHiddenInput, _sfc_main$105 as ProgressLabel, _sfc_main$106 as ProgressRoot, _sfc_main$107 as ProgressTrack, _sfc_main$108 as ProgressValue, Radio, _sfc_main$109 as RadioGroup, _sfc_main$110 as RadioHiddenInput, _sfc_main$111 as RadioIndicator, _sfc_main$112 as RadioRoot, Rating, _sfc_main$113 as RatingHiddenInput, _sfc_main$114 as RatingItem, _sfc_main$115 as RatingRoot, ReducedMotionAdapter, RtlAdapter, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, _sfc_main$116 as Scrim, Select, _sfc_main$117 as SelectActivator, _sfc_main$118 as SelectContent, _sfc_main$119 as SelectCue, _sfc_main$120 as SelectItem, _sfc_main$121 as SelectPlaceholder, _sfc_main$122 as SelectRoot, _sfc_main$123 as SelectValue, Selection, _sfc_main$124 as SelectionItem, _sfc_main$125 as SelectionRoot, ServerComboboxAdapter, ServerDataTableAdapter, ServerDataTableAdapter as ServerGridAdapter, Single, _sfc_main$126 as SingleItem, _sfc_main$127 as SingleRoot, Slider, _sfc_main$128 as SliderHiddenInput, _sfc_main$129 as SliderRange, _sfc_main$130 as SliderRoot, _sfc_main$131 as SliderThumb, _sfc_main$132 as SliderTrack, Snackbar, _sfc_main$133 as SnackbarAnnouncer, _sfc_main$134 as SnackbarClose, _sfc_main$135 as SnackbarContent, _sfc_main$136 as SnackbarPortal, _sfc_main$137 as SnackbarQueue, _sfc_main$138 as SnackbarRoot, Splitter, _sfc_main$139 as SplitterHandle, _sfc_main$140 as SplitterPanel, _sfc_main$141 as SplitterRoot, Step, _sfc_main$142 as StepItem, _sfc_main$143 as StepRoot, StorageAdapter, Switch, _sfc_main$144 as SwitchGroup, _sfc_main$145 as SwitchHiddenInput, _sfc_main$146 as SwitchRoot, _sfc_main$147 as SwitchSelectAll, _sfc_main$148 as SwitchThumb, _sfc_main$149 as SwitchTrack, Tabs, _sfc_main$150 as TabsItem, _sfc_main$151 as TabsList, _sfc_main$152 as TabsPanel, _sfc_main$153 as TabsRoot, _sfc_main$154 as Theme, ThemeAdapter, Toggle, _sfc_main$155 as ToggleGroup, _sfc_main$156 as ToggleIndicator, _sfc_main$157 as ToggleRoot, Tooltip, _sfc_main$158 as TooltipActivator, _sfc_main$159 as TooltipContent, _sfc_main$160 as TooltipRoot, Treeview, _sfc_main$161 as TreeviewActivator, _sfc_main$162 as TreeviewCheckbox, _sfc_main$163 as TreeviewContent, _sfc_main$164 as TreeviewCue, _sfc_main$165 as TreeviewGroup, _sfc_main$166 as TreeviewIndicator, _sfc_main$167 as TreeviewItem, _sfc_main$168 as TreeviewList, _sfc_main$169 as TreeviewRoot, _sfc_main$170 as TreeviewSelectAll, UNSAFE_KEYS, V0Error, V0LocaleAdapter, V0LoggerAdapter, V0ReducedMotionAdapter, V0RtlAdapter, V0StyleSheetThemeAdapter, V0UnheadThemeAdapter, VirtualDataTableAdapter, __LOGGER_ENABLED__, apca, clamp, computeDepth, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createCombobox, createComboboxContext, createContext, createDataGrid, createDataGridContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createInput, createKanban, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createNotifications, createNotificationsContext, createNotificationsPlugin, createNumberField, createNumeric, createOtp, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createProgress, createProgressContext, createQueue, createQueueContext, createRating, createRatingContext, createReducedMotion, createReducedMotionContext, createReducedMotionPlugin, createRegistry, createRegistryContext, createRtl, createRtlContext, createRtlFallback, createRtlPlugin, createRules, createRulesContext, createRulesFallback, createRulesPlugin, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createSortable, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTooltipContext, createTooltipFallback, createTooltipPlugin, createTrinity, createValidation, createVirtual, createVirtualContext, extractLeaves, flatten, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isStandardSchema, isString, isSymbol, isThenable, isUndefined, isV0Error, mergeDeep, provideAlertDialogContext, provideAvatarGroup, provideAvatarRoot, provideBreadcrumbsRoot, provideButtonGroup, provideButtonRoot, provideCarouselRoot, provideCheckboxGroup, provideCheckboxRoot, provideCollapsible, provideComboboxContext, provideContext, provideDialogContext, provideExpansionPanelGroup, provideExpansionPanelRoot, provideGroupRoot, provideImageRoot, provideInputRoot, provideNumberFieldRoot, provideOverflowRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideProgressRoot, provideRadioGroup, provideRadioRoot, provideRatingRoot, provideSelectContext, provideSelectionRoot, provideSingleRoot, provideSliderRoot, provideSnackbarQueueContext, provideSnackbarRootContext, provideSplitterRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, provideToggleGroup, provideToggleRoot, provideTooltipRoot, provideTreeviewItem, provideTreeviewList, provideTreeviewRoot, range, resolveHeaders, resolveIds, resolveIndexes, rgbToHex, toArray, toElement, toHighlight, toReactive, useAlertDialogContext, useAvatarGroup, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useButtonGroup, useButtonRoot, useCarouselRoot, useCheckboxGroup, useCheckboxRoot, useClickOutside, useCollapsible, useCombobox, useComboboxContext, useContext, useDataGrid, useDataTable, useDate, useDelay, useDialogContext, useDocumentEventListener, useDragDrop, useElementIntersection, useElementSize, useEventListener, useExpansionPanelGroup, useExpansionPanelRoot, useFeatures, useFilter, useForm, useGroup, useGroupRoot, useHotkey, useHydration, useId, useImage, useImageRoot, useInputRoot, useIntersectionObserver, useLazy, useLocale, useLogger, useMediaQuery, useMutationObserver, useNested, useNotifications, useNumberFieldRoot, useOverflow, useOverflowRoot, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopover, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, usePresence, useProgress, useProgressRoot, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRaf, useRating, useRatingRoot, useReducedMotion, useRegistry, useResizeObserver, useRovingFocus, useRtl, useRules, useSelectContext, useSelection, useSelectionRoot, useSingle, useSingleRoot, useSliderRoot, useSnackbarQueueContext, useSnackbarRootContext, useSplitterRoot, useStack, useStep, useStepRoot, useStorage, useSwitchGroup, useSwitchRoot, useTabsRoot, useTheme, useTimeline, useTimer, useToggleGroup, useToggleRoot, useToggleScope, useTokens, useTooltip, useTooltipRoot, useTreeviewItem, useTreeviewList, useTreeviewRoot, useVirtual, useVirtualFocus, useWindowEventListener, version };