@vuetify/v0 1.0.0-alpha.2 → 1.0.0-alpha.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/README.md +3 -1
  2. package/dist/{adapters-BJ5n7rgh.mjs → adapters-BSiqsTZN.mjs} +1 -1
  3. package/dist/adapters-C3QXhf4I.mjs +2 -0
  4. package/dist/adapters-_ZqxCD8f.mjs +4 -0
  5. package/dist/browser/index.js +3660 -212
  6. package/dist/components/index.d.mts +3 -3
  7. package/dist/components/index.mjs +2 -2
  8. package/dist/{components-CqDewYTU.mjs → components-C4jI-78d.mjs} +3654 -339
  9. package/dist/composables/index.d.mts +2 -2
  10. package/dist/composables/index.mjs +19 -19
  11. package/dist/constants/index.mjs +1 -1
  12. package/dist/{createDataTable-rXBqGglI.mjs → createDataTable-iODP6aKB.mjs} +2 -2
  13. package/dist/{createGroup-BU4olYtB.mjs → createGroup-CGk6hY_Y.mjs} +1 -1
  14. package/dist/{createRegistry-Dl-bSSTr.mjs → createRegistry-BXzdXAjq.mjs} +1 -1
  15. package/dist/{createSelection-Csaa-C8p.mjs → createSelection-B3HJEPNg.mjs} +1 -1
  16. package/dist/{createSingle-8xbHAIpY.mjs → createSingle-Dql8mRi-.mjs} +1 -1
  17. package/dist/{createTokens-lNg2M_P_.mjs → createTokens-DgFYsOrv.mjs} +2 -2
  18. package/dist/data-table/index.mjs +1 -1
  19. package/dist/date/index.mjs +1 -1
  20. package/dist/features/adapters/posthog/index.mjs +1 -1
  21. package/dist/features/index.d.mts +1 -1
  22. package/dist/features/index.mjs +1 -1
  23. package/dist/{globals-CKdzjeLe.mjs → globals-zEjWBKCr.mjs} +1 -1
  24. package/dist/{index-BxKMMWnQ.d.mts → index-B76iGRE3.d.mts} +155 -6
  25. package/dist/{index-B7cqgTBL.d.mts → index-DNDuacmH.d.mts} +584 -359
  26. package/dist/index.d.mts +3 -3
  27. package/dist/index.mjs +21 -21
  28. package/dist/json/attributes.json +56 -0
  29. package/dist/json/importMap.json +16 -0
  30. package/dist/json/tags.json +29 -0
  31. package/dist/json/web-types.json +180 -2
  32. package/dist/locale/adapters/index.mjs +2 -2
  33. package/dist/locale/adapters/v0/index.mjs +1 -1
  34. package/dist/locale/index.d.mts +1 -1
  35. package/dist/locale/index.mjs +2 -2
  36. package/dist/logger/adapters/index.mjs +2 -2
  37. package/dist/logger/adapters/v0/index.mjs +1 -1
  38. package/dist/logger/index.d.mts +1 -1
  39. package/dist/logger/index.mjs +2 -2
  40. package/dist/notifications/index.d.mts +1 -1
  41. package/dist/notifications/index.mjs +2 -2
  42. package/dist/palettes/index.d.mts +1 -1
  43. package/dist/palettes/leonardo/generate/index.mjs +2 -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/{posthog-DZNnPXxS.mjs → posthog-DmuyycaR.mjs} +1 -1
  49. package/dist/rules/index.d.mts +1 -1
  50. package/dist/rules/index.mjs +1 -1
  51. package/dist/storage/index.d.mts +1 -1
  52. package/dist/storage/index.mjs +1 -1
  53. package/dist/theme/adapters/index.d.mts +1 -1
  54. package/dist/theme/adapters/index.mjs +3 -3
  55. package/dist/theme/adapters/unhead/index.d.mts +1 -1
  56. package/dist/theme/adapters/unhead/index.mjs +1 -1
  57. package/dist/theme/adapters/v0/index.d.mts +1 -1
  58. package/dist/theme/adapters/v0/index.mjs +1 -1
  59. package/dist/theme/index.d.mts +1 -1
  60. package/dist/theme/index.mjs +3 -3
  61. package/dist/{unhead-DZiD-4Tx.mjs → unhead-B-I2OS6i.mjs} +1 -1
  62. package/dist/{useClickOutside-CmCUD_Pf.mjs → useClickOutside-CY4U2J9W.mjs} +145 -24
  63. package/dist/{useFeatures-ZIvzzuEV.mjs → useFeatures-BPOke6iP.mjs} +4 -4
  64. package/dist/{useLocale-DTJx3aKR.mjs → useLocale-BV8e3imF.mjs} +5 -5
  65. package/dist/{useLogger-BBTcMN61.mjs → useLogger-DvdRTrqC.mjs} +3 -3
  66. package/dist/{useNotifications-H4knpvNw.mjs → useNotifications-vSJE6z6t.mjs} +21 -10
  67. package/dist/{usePermissions-B_G12Dwd.mjs → usePermissions-D3zPwKQc.mjs} +2 -2
  68. package/dist/{useRules--7Qoo60I.mjs → useRules-BT6cgoTj.mjs} +2 -2
  69. package/dist/{useTheme-Co05TEeD.mjs → useTheme-cUZb2A9O.mjs} +5 -5
  70. package/dist/utilities/index.mjs +2 -1
  71. package/dist/{v0-D0Mh3EVG.mjs → v0-C49OI_wc.mjs} +1 -1
  72. package/dist/{v0-DeiZuexg.mjs → v0-CHZpnMeP.mjs} +1 -1
  73. package/dist/{v0-BrTEO5sv.mjs → v0-gpExNexS.mjs} +1 -1
  74. package/package.json +10 -10
  75. package/dist/adapters-BnKW0BF_.mjs +0 -2
  76. package/dist/adapters-CBrvizWb.mjs +0 -4
@@ -108,7 +108,7 @@ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof wind
108
108
  const SUPPORTS_OBSERVER = IN_BROWSER && "ResizeObserver" in window;
109
109
  const SUPPORTS_INTERSECTION_OBSERVER = IN_BROWSER && "IntersectionObserver" in window;
110
110
  const SUPPORTS_MUTATION_OBSERVER = IN_BROWSER && "MutationObserver" in window;
111
- const version = "1.0.0-alpha.2";
111
+ const version = "1.0.0-alpha.3";
112
112
  /* v8 ignore next -- build-time constant, __DEV__ short-circuits in tests */
113
113
  const __LOGGER_ENABLED__ = false;
114
114
  //#endregion
@@ -490,6 +490,7 @@ function useId() {
490
490
  */
491
491
  /* @__NO_SIDE_EFFECTS__ */
492
492
  function clamp(value, min = 0, max = 1) {
493
+ if (!Number.isFinite(value)) return min;
493
494
  return Math.max(min, Math.min(max, value));
494
495
  }
495
496
  /**
@@ -3037,6 +3038,7 @@ function useBreadcrumbs(namespace = "v0:breadcrumbs") {
3037
3038
  * Key features:
3038
3039
  * - Start/stop/pause/resume controls
3039
3040
  * - Reactive remaining time tracking
3041
+ * - Reactive `duration` via `MaybeRefOrGetter` — read fresh on each `start()`
3040
3042
  * - One-shot (default) or repeating mode
3041
3043
  * - Automatic cleanup on scope disposal
3042
3044
  * - SSR-safe
@@ -3066,17 +3068,26 @@ function useBreadcrumbs(namespace = "v0:breadcrumbs") {
3066
3068
  * timer.pause()
3067
3069
  * timer.resume()
3068
3070
  * timer.stop()
3071
+ *
3072
+ * // Reactive duration — re-read on each start()
3073
+ * const duration = shallowRef(1000)
3074
+ * const reactive = useTimer(handler, { duration })
3075
+ * duration.value = 2000
3076
+ * reactive.start() // fires after 2000ms
3069
3077
  * ```
3070
3078
  */
3071
3079
  function useTimer(handler, options = {}) {
3072
3080
  const { duration = 1e3, repeat = false } = options;
3073
- const remaining = shallowRef(duration);
3081
+ function resolveDuration() {
3082
+ return toValue(duration);
3083
+ }
3084
+ const remaining = shallowRef(resolveDuration());
3074
3085
  const isActive = shallowRef(false);
3075
3086
  const isPaused = shallowRef(false);
3076
3087
  let timeoutId;
3077
3088
  let trackingId;
3078
3089
  let startedAt = 0;
3079
- let budget = duration;
3090
+ let budget = remaining.value;
3080
3091
  function clearTimer() {
3081
3092
  if (!/* @__PURE__ */ isUndefined(timeoutId)) {
3082
3093
  globalThis.clearTimeout(timeoutId);
@@ -3102,7 +3113,7 @@ function useTimer(handler, options = {}) {
3102
3113
  clearTimer();
3103
3114
  stopTracking();
3104
3115
  handler();
3105
- if (repeat) begin(duration);
3116
+ if (repeat) begin(resolveDuration());
3106
3117
  else {
3107
3118
  isActive.value = false;
3108
3119
  remaining.value = 0;
@@ -3120,15 +3131,16 @@ function useTimer(handler, options = {}) {
3120
3131
  startTracking();
3121
3132
  }
3122
3133
  function start() {
3123
- if (duration < 0) return;
3124
- begin(duration);
3134
+ const ms = resolveDuration();
3135
+ if (ms < 0) return;
3136
+ begin(ms);
3125
3137
  }
3126
3138
  function stop() {
3127
3139
  clearTimer();
3128
3140
  stopTracking();
3129
3141
  isActive.value = false;
3130
3142
  isPaused.value = false;
3131
- remaining.value = duration;
3143
+ remaining.value = resolveDuration();
3132
3144
  }
3133
3145
  function pause() {
3134
3146
  if (!isActive.value || isPaused.value) return;
@@ -5671,7 +5683,7 @@ function createValidation(_options = {}) {
5671
5683
  if (!silent) isValidating.value = true;
5672
5684
  try {
5673
5685
  const results = await Promise.all(activeRules.map((rule) => rule(val)));
5674
- if (gen !== generation) return isValid.value ?? false;
5686
+ if (gen !== generation) return false;
5675
5687
  const errorMessages = results.filter((result) => /* @__PURE__ */ isString(result) || result === false).map((result) => result === false ? "Validation failed" : result);
5676
5688
  if (!silent) {
5677
5689
  errors.value = errorMessages;
@@ -5679,7 +5691,7 @@ function createValidation(_options = {}) {
5679
5691
  }
5680
5692
  return errorMessages.length === 0;
5681
5693
  } catch (error) {
5682
- if (gen !== generation) return isValid.value ?? false;
5694
+ if (gen !== generation) return false;
5683
5695
  if (!silent) {
5684
5696
  errors.value = [error instanceof Error ? error.message : "Validation error"];
5685
5697
  isValid.value = false;
@@ -6618,7 +6630,7 @@ function createNumberField(options = {}) {
6618
6630
  }
6619
6631
  function increment(multiplier) {
6620
6632
  if (isLocked()) return;
6621
- if (/* @__PURE__ */ isNull(value.value)) {
6633
+ if (/* @__PURE__ */ isNull(value.value) || !Number.isFinite(value.value)) {
6622
6634
  value.value = initialize();
6623
6635
  return;
6624
6636
  }
@@ -6626,7 +6638,7 @@ function createNumberField(options = {}) {
6626
6638
  }
6627
6639
  function decrement(multiplier) {
6628
6640
  if (isLocked()) return;
6629
- if (/* @__PURE__ */ isNull(value.value)) {
6641
+ if (/* @__PURE__ */ isNull(value.value) || !Number.isFinite(value.value)) {
6630
6642
  value.value = initialize();
6631
6643
  return;
6632
6644
  }
@@ -6833,10 +6845,12 @@ const [createHydrationContext, createHydrationPlugin, useHydration] = createPlug
6833
6845
  */
6834
6846
  /* @__NO_SIDE_EFFECTS__ */
6835
6847
  function toElement(target) {
6836
- const raw = /* @__PURE__ */ isFunction(target) ? target() : target && /* @__PURE__ */ isObject(target) && "value" in target ? target.value : target;
6848
+ if (!target) return void 0;
6849
+ if (/* @__PURE__ */ isElement(target)) return target;
6850
+ const raw = /* @__PURE__ */ isFunction(target) ? target() : /* @__PURE__ */ isObject(target) && "value" in target ? target.value : target;
6837
6851
  if (!raw) return void 0;
6838
6852
  if (/* @__PURE__ */ isElement(raw)) return raw;
6839
- if ("$el" in raw) return raw.$el;
6853
+ if (/* @__PURE__ */ isObject(raw) && "$el" in raw) return raw.$el;
6840
6854
  }
6841
6855
  //#endregion
6842
6856
  //#region src/composables/createObserver/index.ts
@@ -7872,8 +7886,8 @@ function createSlider(options = {}) {
7872
7886
  return inverted.value ? 100 - p : p;
7873
7887
  }
7874
7888
  function fromPercent(p) {
7875
- const adjusted = inverted.value ? 100 - p : p;
7876
- return numeric.fromPercent(adjusted);
7889
+ const value = numeric.fromPercent(p);
7890
+ return inverted.value ? numeric.max - (value - numeric.min) : value;
7877
7891
  }
7878
7892
  function register(input) {
7879
7893
  const initialValue = /* @__PURE__ */ isObject(input) ? input.value : input;
@@ -9297,6 +9311,123 @@ function useDate(namespace = "v0:date") {
9297
9311
  return useContext(namespace);
9298
9312
  }
9299
9313
  //#endregion
9314
+ //#region src/composables/useDelay/index.ts
9315
+ /**
9316
+ * @module useDelay
9317
+ *
9318
+ * @see https://0.vuetifyjs.com/composables/system/use-delay
9319
+ *
9320
+ * @remarks
9321
+ * Schedule open and close transitions with configurable delays.
9322
+ *
9323
+ * Composes `useTimer` for the underlying lifecycle (start / stop / pause / resume,
9324
+ * plus reactive `isActive`, `isPaused`, `remaining`) and adds direction tracking
9325
+ * (`isOpening`) and promise-based resolution.
9326
+ *
9327
+ * Key features:
9328
+ * - Reactive `openDelay` and `closeDelay` via `MaybeRefOrGetter`
9329
+ * - `start(isOpening)` returns a `Promise<boolean>` that resolves once the delay elapses
9330
+ * - Per-call `minDelay` floor enforces a minimum delay
9331
+ * - Automatic cleanup on scope disposal (timer cleared, pending promise settled with current direction)
9332
+ * - SSR-safe
9333
+ *
9334
+ * @example
9335
+ * ```ts
9336
+ * import { useDelay } from '@vuetify/v0'
9337
+ *
9338
+ * const delay = useDelay(isOpening => isVisible.value = isOpening, {
9339
+ * openDelay: 300,
9340
+ * closeDelay: 200,
9341
+ * })
9342
+ *
9343
+ * delay.start(true)
9344
+ * delay.start(false, { minDelay: 500 })
9345
+ * ```
9346
+ */
9347
+ /**
9348
+ * Schedule open and close transitions with configurable delays.
9349
+ *
9350
+ * Composes `useTimer` for the lifecycle (`start` / `stop` / `pause` / `resume` plus
9351
+ * reactive `isActive`, `isPaused`, `remaining`) and adds direction tracking
9352
+ * (`isOpening`) and promise-based resolution.
9353
+ *
9354
+ * @param callback Optional callback invoked once a started delay elapses; receives the resolved direction.
9355
+ * @param options Reactive delay settings.
9356
+ * @returns Lifecycle controls and reactive state.
9357
+ *
9358
+ * @see https://0.vuetifyjs.com/composables/system/use-delay
9359
+ *
9360
+ * @example
9361
+ * ```ts
9362
+ * const delay = useDelay(isOpening => isVisible.value = isOpening, {
9363
+ * openDelay: 300,
9364
+ * closeDelay: 200,
9365
+ * })
9366
+ *
9367
+ * delay.start(true)
9368
+ * delay.start(false, { minDelay: 500 })
9369
+ * delay.pause()
9370
+ * delay.resume()
9371
+ * delay.stop()
9372
+ * ```
9373
+ */
9374
+ function useDelay(callback, options = {}) {
9375
+ const { openDelay, closeDelay } = options;
9376
+ const isOpening = shallowRef(false);
9377
+ let minDelay = 0;
9378
+ let resolver;
9379
+ function fire() {
9380
+ const direction = isOpening.value;
9381
+ const resolve = resolver;
9382
+ resolver = void 0;
9383
+ resolve?.(direction);
9384
+ callback?.(direction);
9385
+ }
9386
+ function duration() {
9387
+ const raw = isOpening.value ? toValue(openDelay) : toValue(closeDelay);
9388
+ return Math.max(minDelay, raw ?? 0);
9389
+ }
9390
+ const timer = useTimer(fire, { duration });
9391
+ function start(direction, options = {}) {
9392
+ const previous = resolver;
9393
+ resolver = void 0;
9394
+ isOpening.value = direction;
9395
+ minDelay = options.minDelay ?? 0;
9396
+ previous?.(direction);
9397
+ const ms = duration();
9398
+ return new Promise((resolve) => {
9399
+ resolver = resolve;
9400
+ if (ms <= 0) {
9401
+ timer.stop();
9402
+ fire();
9403
+ return;
9404
+ }
9405
+ timer.start();
9406
+ });
9407
+ }
9408
+ function stop() {
9409
+ const resolve = resolver;
9410
+ resolver = void 0;
9411
+ timer.stop();
9412
+ resolve?.(isOpening.value);
9413
+ }
9414
+ onScopeDispose(() => {
9415
+ const resolve = resolver;
9416
+ resolver = void 0;
9417
+ resolve?.(isOpening.value);
9418
+ }, true);
9419
+ return {
9420
+ start,
9421
+ stop,
9422
+ pause: timer.pause,
9423
+ resume: timer.resume,
9424
+ isActive: shallowReadonly(timer.isActive),
9425
+ isPaused: shallowReadonly(timer.isPaused),
9426
+ remaining: shallowReadonly(timer.remaining),
9427
+ isOpening: shallowReadonly(isOpening)
9428
+ };
9429
+ }
9430
+ //#endregion
9300
9431
  //#region src/composables/useFeatures/adapters/generic/index.ts
9301
9432
  var FeaturesAdapter = class {};
9302
9433
  //#endregion
@@ -12589,6 +12720,7 @@ function useClickOutside(target, handler, options = {}) {
12589
12720
  x: 0,
12590
12721
  y: 0
12591
12722
  };
12723
+ let startedOutsideBounds = false;
12592
12724
  let cleanupPointerDown;
12593
12725
  let cleanupPointerUp;
12594
12726
  let cleanupBlur;
@@ -12679,6 +12811,7 @@ function useClickOutside(target, handler, options = {}) {
12679
12811
  x: event.clientX,
12680
12812
  y: event.clientY
12681
12813
  };
12814
+ startedOutsideBounds = bounds ? isOutsideBounds(event.clientX, event.clientY) : false;
12682
12815
  }
12683
12816
  /**
12684
12817
  * Handle pointerup - check if it's an outside click.
@@ -12697,7 +12830,7 @@ function useClickOutside(target, handler, options = {}) {
12697
12830
  const dy = Math.abs(event.clientY - startPosition.y);
12698
12831
  if (dx >= touchScrollThreshold || dy >= touchScrollThreshold) return;
12699
12832
  }
12700
- if ((bounds ? isOutsideBounds(startPosition.x, startPosition.y) && isOutsideBounds(event.clientX, event.clientY) : isOutside(pointerdownTarget) && isOutside(pointerupTarget)) && !shouldIgnore(path)) handler(event);
12833
+ if ((bounds ? startedOutsideBounds && isOutsideBounds(event.clientX, event.clientY) : isOutside(pointerdownTarget) && isOutside(pointerupTarget)) && !shouldIgnore(path)) handler(event);
12701
12834
  }
12702
12835
  /**
12703
12836
  * Handle window blur - detect focus moving to iframe.
@@ -12918,13 +13051,157 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
12918
13051
  * ```
12919
13052
  */
12920
13053
  const AlertDialog = {
13054
+ /**
13055
+ * Root component for alert dialogs.
13056
+ *
13057
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13058
+ *
13059
+ * @example
13060
+ * ```vue
13061
+ * <script lang="ts" setup>
13062
+ * import { AlertDialog } from '@vuetify/v0'
13063
+ * <\/script>
13064
+ *
13065
+ * <template>
13066
+ * <AlertDialog.Root>
13067
+ * <AlertDialog.Activator>Delete</AlertDialog.Activator>
13068
+ * <AlertDialog.Content>
13069
+ * <AlertDialog.Title>Are you sure?</AlertDialog.Title>
13070
+ * <AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
13071
+ * <AlertDialog.Action>Confirm</AlertDialog.Action>
13072
+ * </AlertDialog.Content>
13073
+ * </AlertDialog.Root>
13074
+ * </template>
13075
+ * ```
13076
+ */
12921
13077
  Root: _sfc_main$6,
13078
+ /**
13079
+ * Activator component that opens the alert dialog.
13080
+ *
13081
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13082
+ *
13083
+ * @example
13084
+ * ```vue
13085
+ * <script lang="ts" setup>
13086
+ * import { AlertDialog } from '@vuetify/v0'
13087
+ * <\/script>
13088
+ *
13089
+ * <template>
13090
+ * <AlertDialog.Activator>
13091
+ * Delete Item
13092
+ * </AlertDialog.Activator>
13093
+ * </template>
13094
+ * ```
13095
+ */
12922
13096
  Activator: _sfc_main$1,
13097
+ /**
13098
+ * Content container for the alert dialog using native `<dialog>` element.
13099
+ *
13100
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13101
+ *
13102
+ * @example
13103
+ * ```vue
13104
+ * <script lang="ts" setup>
13105
+ * import { AlertDialog } from '@vuetify/v0'
13106
+ * <\/script>
13107
+ *
13108
+ * <template>
13109
+ * <AlertDialog.Content>
13110
+ * <AlertDialog.Title>Are you sure?</AlertDialog.Title>
13111
+ * <AlertDialog.Description>This cannot be undone.</AlertDialog.Description>
13112
+ * <AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
13113
+ * <AlertDialog.Action>Confirm</AlertDialog.Action>
13114
+ * </AlertDialog.Content>
13115
+ * </template>
13116
+ * ```
13117
+ */
12923
13118
  Content: _sfc_main$4,
13119
+ /**
13120
+ * Title component for accessible alert dialog labeling.
13121
+ *
13122
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13123
+ *
13124
+ * @example
13125
+ * ```vue
13126
+ * <script lang="ts" setup>
13127
+ * import { AlertDialog } from '@vuetify/v0'
13128
+ * <\/script>
13129
+ *
13130
+ * <template>
13131
+ * <AlertDialog.Title>Are you sure?</AlertDialog.Title>
13132
+ * </template>
13133
+ * ```
13134
+ */
12924
13135
  Title: _sfc_main$7,
13136
+ /**
13137
+ * Description component for accessible alert dialog description.
13138
+ *
13139
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13140
+ *
13141
+ * @example
13142
+ * ```vue
13143
+ * <script lang="ts" setup>
13144
+ * import { AlertDialog } from '@vuetify/v0'
13145
+ * <\/script>
13146
+ *
13147
+ * <template>
13148
+ * <AlertDialog.Description>
13149
+ * This action cannot be undone.
13150
+ * </AlertDialog.Description>
13151
+ * </template>
13152
+ * ```
13153
+ */
12925
13154
  Description: _sfc_main$5,
13155
+ /**
13156
+ * Cancel button component for dismissing the alert dialog.
13157
+ *
13158
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13159
+ *
13160
+ * @example
13161
+ * ```vue
13162
+ * <script lang="ts" setup>
13163
+ * import { AlertDialog } from '@vuetify/v0'
13164
+ * <\/script>
13165
+ *
13166
+ * <template>
13167
+ * <AlertDialog.Cancel>Cancel</AlertDialog.Cancel>
13168
+ * </template>
13169
+ * ```
13170
+ */
12926
13171
  Cancel: _sfc_main$2,
13172
+ /**
13173
+ * Close button component for closing the alert dialog.
13174
+ *
13175
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13176
+ *
13177
+ * @example
13178
+ * ```vue
13179
+ * <script lang="ts" setup>
13180
+ * import { AlertDialog } from '@vuetify/v0'
13181
+ * <\/script>
13182
+ *
13183
+ * <template>
13184
+ * <AlertDialog.Close>Close</AlertDialog.Close>
13185
+ * </template>
13186
+ * ```
13187
+ */
12927
13188
  Close: _sfc_main$3,
13189
+ /**
13190
+ * Action button component for confirming the alert dialog.
13191
+ *
13192
+ * @see https://0.vuetifyjs.com/components/disclosure/alert-dialog
13193
+ *
13194
+ * @example
13195
+ * ```vue
13196
+ * <script lang="ts" setup>
13197
+ * import { AlertDialog } from '@vuetify/v0'
13198
+ * <\/script>
13199
+ *
13200
+ * <template>
13201
+ * <AlertDialog.Action>Confirm</AlertDialog.Action>
13202
+ * </template>
13203
+ * ```
13204
+ */
12928
13205
  Action: _sfc_main
12929
13206
  };
12930
13207
  //#endregion
@@ -13088,8 +13365,62 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
13088
13365
  * @see https://0.vuetifyjs.com/components/semantic/avatar
13089
13366
  */
13090
13367
  const Avatar = {
13368
+ /**
13369
+ * Root component for avatars.
13370
+ *
13371
+ * @see https://0.vuetifyjs.com/components/semantic/avatar
13372
+ *
13373
+ * @example
13374
+ * ```vue
13375
+ * <script lang="ts" setup>
13376
+ * import { Avatar } from '@vuetify/v0'
13377
+ * <\/script>
13378
+ *
13379
+ * <template>
13380
+ * <Avatar.Root>
13381
+ * <Avatar.Image src="/avatar.jpg" />
13382
+ *
13383
+ * <Avatar.Fallback>JD</Avatar.Fallback>
13384
+ * </Avatar.Root>
13385
+ * </template>
13386
+ * ```
13387
+ */
13091
13388
  Root: _sfc_main$12,
13389
+ /**
13390
+ * Component for displaying the avatar image.
13391
+ *
13392
+ * @see https://0.vuetifyjs.com/components/semantic/avatar
13393
+ *
13394
+ * @example
13395
+ * ```vue
13396
+ * <script lang="ts" setup>
13397
+ * import { Avatar } from '@vuetify/v0'
13398
+ * <\/script>
13399
+ *
13400
+ * <template>
13401
+ * <Avatar.Image src="/avatar.jpg" alt="User avatar" />
13402
+ * </template>
13403
+ * ```
13404
+ */
13092
13405
  Image: _sfc_main$11,
13406
+ /**
13407
+ * Component for displaying fallback content when image fails to load.
13408
+ *
13409
+ * @see https://0.vuetifyjs.com/components/semantic/avatar
13410
+ *
13411
+ * @example
13412
+ * ```vue
13413
+ * <script lang="ts" setup>
13414
+ * import { Avatar } from '@vuetify/v0'
13415
+ * <\/script>
13416
+ *
13417
+ * <template>
13418
+ * <Avatar.Fallback>
13419
+ * JD
13420
+ * </Avatar.Fallback>
13421
+ * </template>
13422
+ * ```
13423
+ */
13093
13424
  Fallback: _sfc_main$10
13094
13425
  };
13095
13426
  //#endregion
@@ -13464,12 +13795,175 @@ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
13464
13795
  * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13465
13796
  */
13466
13797
  const Breadcrumbs = {
13798
+ /**
13799
+ * Root component for breadcrumb navigation.
13800
+ * Creates breadcrumbs composable + Group + Overflow context.
13801
+ *
13802
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13803
+ *
13804
+ * @example
13805
+ * ```vue
13806
+ * <script setup lang="ts">
13807
+ * import { Breadcrumbs } from '@vuetify/v0'
13808
+ * <\/script>
13809
+ *
13810
+ * <template>
13811
+ * <Breadcrumbs.Root>
13812
+ * <Breadcrumbs.List>
13813
+ * <Breadcrumbs.Item text="Home">
13814
+ * <Breadcrumbs.Link href="/">Home</Breadcrumbs.Link>
13815
+ * </Breadcrumbs.Item>
13816
+ *
13817
+ * <Breadcrumbs.Divider />
13818
+ *
13819
+ * <Breadcrumbs.Ellipsis />
13820
+ *
13821
+ * <Breadcrumbs.Item text="Products">
13822
+ * <Breadcrumbs.Link href="/products">Products</Breadcrumbs.Link>
13823
+ * </Breadcrumbs.Item>
13824
+ *
13825
+ * <Breadcrumbs.Divider />
13826
+ *
13827
+ * <Breadcrumbs.Item text="Shoes">
13828
+ * <Breadcrumbs.Page>Shoes</Breadcrumbs.Page>
13829
+ * </Breadcrumbs.Item>
13830
+ * </Breadcrumbs.List>
13831
+ * </Breadcrumbs.Root>
13832
+ * </template>
13833
+ * ```
13834
+ */
13467
13835
  Root: _sfc_main$19,
13836
+ /**
13837
+ * Semantic list wrapper for breadcrumb items.
13838
+ * Renders as an ordered list with role="list".
13839
+ *
13840
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13841
+ *
13842
+ * @example
13843
+ * ```vue
13844
+ * <template>
13845
+ * <Breadcrumbs.List>
13846
+ * <!-- Items, dividers, ellipsis go here -->
13847
+ * </Breadcrumbs.List>
13848
+ * </template>
13849
+ * ```
13850
+ */
13468
13851
  List: _sfc_main$17,
13852
+ /**
13853
+ * Individual breadcrumb item. Registers with root and
13854
+ * self-measures for overflow visibility.
13855
+ *
13856
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13857
+ *
13858
+ * @example
13859
+ * ```vue
13860
+ * <template>
13861
+ * <!-- With a link -->
13862
+ * <Breadcrumbs.Item text="Products">
13863
+ * <Breadcrumbs.Link href="/products">Products</Breadcrumbs.Link>
13864
+ * </Breadcrumbs.Item>
13865
+ *
13866
+ * <!-- Current page (no link) -->
13867
+ * <Breadcrumbs.Item text="Shoes">
13868
+ * <Breadcrumbs.Page>Shoes</Breadcrumbs.Page>
13869
+ * </Breadcrumbs.Item>
13870
+ *
13871
+ * <!-- With slot props -->
13872
+ * <Breadcrumbs.Item text="Home" v-slot="{ isSelected }">
13873
+ * <span v-show="isSelected">Home</span>
13874
+ * </Breadcrumbs.Item>
13875
+ * </template>
13876
+ * ```
13877
+ */
13469
13878
  Item: _sfc_main$15,
13879
+ /**
13880
+ * Navigable breadcrumb link. Renders as an anchor by default.
13881
+ * All attributes (href, to, etc.) fall through to the underlying element.
13882
+ *
13883
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13884
+ *
13885
+ * @example
13886
+ * ```vue
13887
+ * <template>
13888
+ * <!-- Standard anchor -->
13889
+ * <Breadcrumbs.Link href="/products">
13890
+ * Products
13891
+ * </Breadcrumbs.Link>
13892
+ *
13893
+ * <!-- With RouterLink via :as -->
13894
+ * <Breadcrumbs.Link :as="RouterLink" to="/products">
13895
+ * Products
13896
+ * </Breadcrumbs.Link>
13897
+ *
13898
+ * <!-- Custom element -->
13899
+ * <Breadcrumbs.Link as="button" @click="navigate">
13900
+ * Products
13901
+ * </Breadcrumbs.Link>
13902
+ * </template>
13903
+ * ```
13904
+ */
13470
13905
  Link: _sfc_main$16,
13906
+ /**
13907
+ * Current page indicator. Renders as a span with
13908
+ * aria-current="page".
13909
+ *
13910
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13911
+ *
13912
+ * @example
13913
+ * ```vue
13914
+ * <template>
13915
+ * <Breadcrumbs.Page>Current Page</Breadcrumbs.Page>
13916
+ *
13917
+ * <!-- With custom element -->
13918
+ * <Breadcrumbs.Page as="strong">Current Page</Breadcrumbs.Page>
13919
+ * </template>
13920
+ * ```
13921
+ */
13471
13922
  Page: _sfc_main$18,
13923
+ /**
13924
+ * Visual separator between breadcrumb items. Renders as a list
13925
+ * item with aria-hidden="true". Uses divider character from Root
13926
+ * by default, or override via prop or slot content.
13927
+ *
13928
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13929
+ *
13930
+ * @example
13931
+ * ```vue
13932
+ * <template>
13933
+ * <!-- Uses default divider from Root -->
13934
+ * <Breadcrumbs.Divider />
13935
+ *
13936
+ * <!-- Override divider character -->
13937
+ * <Breadcrumbs.Divider divider=">" />
13938
+ *
13939
+ * <!-- Custom slot content (e.g., SVG chevron) -->
13940
+ * <Breadcrumbs.Divider>
13941
+ * <svg class="size-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
13942
+ * <path d="M9 5l7 7-7 7" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" />
13943
+ * </svg>
13944
+ * </Breadcrumbs.Divider>
13945
+ * </template>
13946
+ * ```
13947
+ */
13472
13948
  Divider: _sfc_main$13,
13949
+ /**
13950
+ * Ellipsis indicator shown when items are truncated by overflow.
13951
+ * Auto-hidden until overflow is detected. Renders with
13952
+ * aria-hidden="true".
13953
+ *
13954
+ * @see https://0.vuetifyjs.com/components/semantic/breadcrumbs
13955
+ *
13956
+ * @example
13957
+ * ```vue
13958
+ * <template>
13959
+ * <!-- Uses default "..." from Root -->
13960
+ * <Breadcrumbs.Ellipsis />
13961
+ *
13962
+ * <!-- Override ellipsis character -->
13963
+ * <Breadcrumbs.Ellipsis ellipsis="…" />
13964
+ * </template>
13965
+ * ```
13966
+ */
13473
13967
  Ellipsis: _sfc_main$14
13474
13968
  };
13475
13969
  //#endregion
@@ -13674,7 +14168,7 @@ const _sfc_main$25 = /* @__PURE__ */ defineComponent({
13674
14168
  "type": __props.as === "button" ? "button" : void 0,
13675
14169
  "role": "button",
13676
14170
  "disabled": isDisabled.value ? true : void 0,
13677
- "aria-disabled": isPassive.value ? true : void 0,
14171
+ "aria-disabled": isDisabled.value || isPassive.value,
13678
14172
  "aria-busy": isLoading.value ? true : void 0,
13679
14173
  "aria-pressed": group ? isSelected.value : void 0,
13680
14174
  "aria-label": __props.ariaLabel || (isSolo.value ? locale.t("Button.label") : void 0),
@@ -13808,11 +14302,143 @@ const _sfc_main$24 = /* @__PURE__ */ defineComponent({
13808
14302
  * ```
13809
14303
  */
13810
14304
  const Button = {
14305
+ /**
14306
+ * Default content area for buttons.
14307
+ *
14308
+ * Registers with Root's internal selection as the fallback.
14309
+ * Always rendered, selected when Loading is not active.
14310
+ *
14311
+ * @see https://0.vuetifyjs.com/components/actions/button
14312
+ *
14313
+ * @example
14314
+ * ```vue
14315
+ * <script setup lang="ts">
14316
+ * import { Button } from '@vuetify/v0'
14317
+ * <\/script>
14318
+ *
14319
+ * <template>
14320
+ * <Button.Root>
14321
+ * <Button.Content>Submit</Button.Content>
14322
+ * </Button.Root>
14323
+ * </template>
14324
+ * ```
14325
+ */
13811
14326
  Content: _sfc_main$20,
14327
+ /**
14328
+ * Selection container for toggle button groups.
14329
+ *
14330
+ * @see https://0.vuetifyjs.com/components/actions/button
14331
+ *
14332
+ * @example
14333
+ * ```vue
14334
+ * <script setup lang="ts">
14335
+ * import { Button } from '@vuetify/v0'
14336
+ * import { ref } from 'vue'
14337
+ *
14338
+ * const selected = ref<string>()
14339
+ * <\/script>
14340
+ *
14341
+ * <template>
14342
+ * <Button.Group v-model="selected">
14343
+ * <Button.Root value="bold">B</Button.Root>
14344
+ * <Button.Root value="italic">I</Button.Root>
14345
+ * </Button.Group>
14346
+ * </template>
14347
+ * ```
14348
+ */
13812
14349
  Group: _sfc_main$21,
14350
+ /**
14351
+ * Hidden input component for form submission.
14352
+ *
14353
+ * @see https://0.vuetifyjs.com/components/actions/button
14354
+ *
14355
+ * @example
14356
+ * ```vue
14357
+ * <script setup lang="ts">
14358
+ * import { Button } from '@vuetify/v0'
14359
+ * <\/script>
14360
+ *
14361
+ * <template>
14362
+ * <Button.Group>
14363
+ * <Button.Root value="yes">
14364
+ * Yes
14365
+ * <Button.HiddenInput name="answer" />
14366
+ * </Button.Root>
14367
+ * </Button.Group>
14368
+ * </template>
14369
+ * ```
14370
+ */
13813
14371
  HiddenInput: _sfc_main$22,
14372
+ /**
14373
+ * Icon wrapper with accessibility enforcement.
14374
+ *
14375
+ * Sets `aria-hidden="true"` on itself. Detects solo buttons
14376
+ * and warns when `aria-label` is missing on Root.
14377
+ *
14378
+ * @see https://0.vuetifyjs.com/components/actions/button
14379
+ *
14380
+ * @example
14381
+ * ```vue
14382
+ * <script setup lang="ts">
14383
+ * import { Button } from '@vuetify/v0'
14384
+ * <\/script>
14385
+ *
14386
+ * <template>
14387
+ * <Button.Root aria-label="Close">
14388
+ * <Button.Icon>✕</Button.Icon>
14389
+ * </Button.Root>
14390
+ * </template>
14391
+ * ```
14392
+ */
13814
14393
  Icon: _sfc_main$23,
14394
+ /**
14395
+ * Loading indicator that becomes visible after the grace period.
14396
+ *
14397
+ * Registers with Root's internal selection. Enabled and selected
14398
+ * when Root's isLoading becomes true (after grace period).
14399
+ *
14400
+ * @see https://0.vuetifyjs.com/components/actions/button
14401
+ *
14402
+ * @example
14403
+ * ```vue
14404
+ * <script setup lang="ts">
14405
+ * import { Button } from '@vuetify/v0'
14406
+ * import { shallowRef } from 'vue'
14407
+ *
14408
+ * const loading = shallowRef(false)
14409
+ * <\/script>
14410
+ *
14411
+ * <template>
14412
+ * <Button.Root :loading @click="loading = true">
14413
+ * <Button.Loading>Saving...</Button.Loading>
14414
+ * <Button.Content>Save</Button.Content>
14415
+ * </Button.Root>
14416
+ * </template>
14417
+ * ```
14418
+ */
13815
14419
  Loading: _sfc_main$24,
14420
+ /**
14421
+ * Root component for buttons.
14422
+ *
14423
+ * Renders as a button with proper ARIA attributes. Supports
14424
+ * disabled, readonly, passive, and loading states. When inside
14425
+ * a Button.Group, registers as a toggle button.
14426
+ *
14427
+ * @see https://0.vuetifyjs.com/components/actions/button
14428
+ *
14429
+ * @example
14430
+ * ```vue
14431
+ * <script setup lang="ts">
14432
+ * import { Button } from '@vuetify/v0'
14433
+ * <\/script>
14434
+ *
14435
+ * <template>
14436
+ * <Button.Root>
14437
+ * <Button.Content>Click me</Button.Content>
14438
+ * </Button.Root>
14439
+ * </template>
14440
+ * ```
14441
+ */
13816
14442
  Root: _sfc_main$25
13817
14443
  };
13818
14444
  //#endregion
@@ -14581,15 +15207,194 @@ const _sfc_main$28 = /* @__PURE__ */ defineComponent({
14581
15207
  * ```
14582
15208
  */
14583
15209
  const Carousel = {
15210
+ /**
15211
+ * Root component that provides carousel context.
15212
+ *
15213
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15214
+ *
15215
+ * @example
15216
+ * ```vue
15217
+ * <script setup lang="ts">
15218
+ * import { Carousel } from '@vuetify/v0'
15219
+ * <\/script>
15220
+ *
15221
+ * <template>
15222
+ * <Carousel.Root circular :autoplay="5000">
15223
+ * <Carousel.Viewport>
15224
+ * <Carousel.Item v-for="i in 5" :key="i" :value="i">
15225
+ * Slide {{ i }}
15226
+ * </Carousel.Item>
15227
+ * </Carousel.Viewport>
15228
+ *
15229
+ * <Carousel.Previous>Previous</Carousel.Previous>
15230
+ * <Carousel.Next>Next</Carousel.Next>
15231
+ * <Carousel.LiveRegion class="sr-only" />
15232
+ * </Carousel.Root>
15233
+ * </template>
15234
+ * ```
15235
+ */
14584
15236
  Root: _sfc_main$32,
15237
+ /**
15238
+ * Scroll-snap container for carousel items. Handles native drag/swipe
15239
+ * via CSS scroll-snap and synchronizes scroll position with selection.
15240
+ *
15241
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15242
+ *
15243
+ * @example
15244
+ * ```vue
15245
+ * <template>
15246
+ * <Carousel.Viewport class="cursor-grab data-[dragging]:cursor-grabbing">
15247
+ * <Carousel.Item v-for="i in 5" :key="i" :value="i">
15248
+ * Slide {{ i }}
15249
+ * </Carousel.Item>
15250
+ * </Carousel.Viewport>
15251
+ *
15252
+ * <!-- With slot props -->
15253
+ * <Carousel.Viewport v-slot="{ isDragging }">
15254
+ * <span v-if="isDragging">Dragging...</span>
15255
+ * </Carousel.Viewport>
15256
+ * </template>
15257
+ * ```
15258
+ */
14585
15259
  Viewport: _sfc_main$33,
15260
+ /**
15261
+ * Individual carousel slide that registers with the step context.
15262
+ * Exposes selection state, visibility, and ARIA attributes.
15263
+ *
15264
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15265
+ *
15266
+ * @example
15267
+ * ```vue
15268
+ * <template>
15269
+ * <Carousel.Item :value="1">Slide 1</Carousel.Item>
15270
+ *
15271
+ * <!-- With slot props -->
15272
+ * <Carousel.Item :value="2" v-slot="{ isActive, isSelected }">
15273
+ * <div :class="{ 'opacity-100': isActive, 'opacity-40': !isActive }">
15274
+ * Slide 2
15275
+ * </div>
15276
+ * </Carousel.Item>
15277
+ *
15278
+ * <!-- With data attributes -->
15279
+ * <Carousel.Item :value="3" class="data-[active]:opacity-100 opacity-40">
15280
+ * Slide 3
15281
+ * </Carousel.Item>
15282
+ * </template>
15283
+ * ```
15284
+ */
14586
15285
  Item: _sfc_main$27,
14587
- Previous: _sfc_main$30,
14588
- Next: _sfc_main$29,
14589
- Indicator: _sfc_main$26,
14590
- Progress: _sfc_main$31,
14591
- LiveRegion: _sfc_main$28
14592
- };
15286
+ /**
15287
+ * Navigation button that moves to the previous slide. Automatically
15288
+ * disables at the first slide in non-circular mode.
15289
+ *
15290
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15291
+ *
15292
+ * @example
15293
+ * ```vue
15294
+ * <template>
15295
+ * <Carousel.Previous>Previous</Carousel.Previous>
15296
+ *
15297
+ * <!-- With slot props -->
15298
+ * <Carousel.Previous v-slot="{ isDisabled, isAtEdge }">
15299
+ * <span :class="{ 'opacity-50': isDisabled }">‹</span>
15300
+ * </Carousel.Previous>
15301
+ *
15302
+ * <!-- With data attributes -->
15303
+ * <Carousel.Previous class="data-[disabled]:opacity-40">
15304
+ * Previous
15305
+ * </Carousel.Previous>
15306
+ * </template>
15307
+ * ```
15308
+ */
15309
+ Previous: _sfc_main$30,
15310
+ /**
15311
+ * Navigation button that moves to the next slide. Automatically
15312
+ * disables at the last visible boundary in non-circular mode.
15313
+ *
15314
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15315
+ *
15316
+ * @example
15317
+ * ```vue
15318
+ * <template>
15319
+ * <Carousel.Next>Next</Carousel.Next>
15320
+ *
15321
+ * <!-- With slot props -->
15322
+ * <Carousel.Next v-slot="{ isDisabled, isAtEdge }">
15323
+ * <span :class="{ 'opacity-50': isDisabled }">›</span>
15324
+ * </Carousel.Next>
15325
+ *
15326
+ * <!-- With data attributes -->
15327
+ * <Carousel.Next class="data-[disabled]:opacity-40">
15328
+ * Next
15329
+ * </Carousel.Next>
15330
+ * </template>
15331
+ * ```
15332
+ */
15333
+ Next: _sfc_main$29,
15334
+ /**
15335
+ * Dot indicator navigation showing the active slide. Exposes an
15336
+ * `items` array via slot props — one entry per slide with selection
15337
+ * state and ARIA attributes. Uses roving tabindex for keyboard nav.
15338
+ *
15339
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15340
+ *
15341
+ * @example
15342
+ * ```vue
15343
+ * <template>
15344
+ * <Carousel.Indicator v-slot="{ items }">
15345
+ * <button
15346
+ * v-for="item in items"
15347
+ * :key="item.index"
15348
+ * v-bind="item.attrs"
15349
+ * class="size-2 rounded-full bg-surface-variant data-[selected]:bg-primary"
15350
+ * />
15351
+ * </Carousel.Indicator>
15352
+ * </template>
15353
+ * ```
15354
+ */
15355
+ Indicator: _sfc_main$26,
15356
+ /**
15357
+ * Autoplay progress bar that fills based on remaining timer duration.
15358
+ * Exposes progress (0–1), autoplay state, and width styling via
15359
+ * slot props. Use `data-state` to style active/paused/idle states.
15360
+ *
15361
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15362
+ *
15363
+ * @example
15364
+ * ```vue
15365
+ * <template>
15366
+ * <Carousel.Progress
15367
+ * class="h-1 bg-surface-variant data-[state=idle]:hidden"
15368
+ * >
15369
+ * <template #default="{ attrs }">
15370
+ * <div
15371
+ * class="h-full bg-primary transition-[width]"
15372
+ * :style="attrs.style"
15373
+ * />
15374
+ * </template>
15375
+ * </Carousel.Progress>
15376
+ * </template>
15377
+ * ```
15378
+ */
15379
+ Progress: _sfc_main$31,
15380
+ /**
15381
+ * Visually-hidden live region that announces slide changes to screen
15382
+ * readers. Should be styled with sr-only/visually-hidden CSS.
15383
+ *
15384
+ * @see https://0.vuetifyjs.com/components/semantic/carousel
15385
+ *
15386
+ * @example
15387
+ * ```vue
15388
+ * <template>
15389
+ * <Carousel.Root>
15390
+ * <Carousel.LiveRegion class="sr-only" />
15391
+ * <!-- other carousel items -->
15392
+ * </Carousel.Root>
15393
+ * </template>
15394
+ * ```
15395
+ */
15396
+ LiveRegion: _sfc_main$28
15397
+ };
14593
15398
  //#endregion
14594
15399
  //#region src/components/Checkbox/CheckboxGroup.vue
14595
15400
  const [useCheckboxGroup, provideCheckboxGroup] = createContext();
@@ -14770,7 +15575,7 @@ const _sfc_main$37 = /* @__PURE__ */ defineComponent({
14770
15575
  "type": __props.as === "button" ? "button" : void 0,
14771
15576
  "role": "checkbox",
14772
15577
  "aria-checked": isMixed.value ? "mixed" : isChecked.value,
14773
- "aria-disabled": isDisabled.value || void 0,
15578
+ "aria-disabled": isDisabled.value,
14774
15579
  "aria-label": __props.label || void 0,
14775
15580
  "aria-labelledby": __props.ariaLabelledby || void 0,
14776
15581
  "aria-describedby": __props.ariaDescribedby || void 0,
@@ -14946,7 +15751,7 @@ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
14946
15751
  "type": __props.as === "button" ? "button" : void 0,
14947
15752
  "role": "checkbox",
14948
15753
  "aria-checked": isMixed.value ? "mixed" : isAllSelected.value,
14949
- "aria-disabled": isDisabled.value || void 0,
15754
+ "aria-disabled": isDisabled.value,
14950
15755
  "aria-label": __props.label || void 0,
14951
15756
  "aria-labelledby": __props.ariaLabelledby || void 0,
14952
15757
  "aria-describedby": __props.ariaDescribedby || void 0,
@@ -14992,10 +15797,148 @@ const _sfc_main$38 = /* @__PURE__ */ defineComponent({
14992
15797
  * ```
14993
15798
  */
14994
15799
  const Checkbox = {
15800
+ /**
15801
+ * Group component for managing multiple checkboxes.
15802
+ *
15803
+ * @see https://0.vuetifyjs.com/components/forms/checkbox
15804
+ *
15805
+ * @example
15806
+ * ```vue
15807
+ * <script setup lang="ts">
15808
+ * import { Checkbox } from '@vuetify/v0'
15809
+ * import { ref } from 'vue'
15810
+ *
15811
+ * const selected = ref<string[]>([])
15812
+ * <\/script>
15813
+ *
15814
+ * <template>
15815
+ * <Checkbox.Group v-model="selected">
15816
+ * <Checkbox.Root value="a">
15817
+ * <Checkbox.Indicator>✓</Checkbox.Indicator>
15818
+ * Option A
15819
+ * </Checkbox.Root>
15820
+ * <Checkbox.Root value="b">
15821
+ * <Checkbox.Indicator>✓</Checkbox.Indicator>
15822
+ * Option B
15823
+ * </Checkbox.Root>
15824
+ * </Checkbox.Group>
15825
+ * </template>
15826
+ * ```
15827
+ */
14995
15828
  Group: _sfc_main$34,
15829
+ /**
15830
+ * Hidden input component for form submission.
15831
+ *
15832
+ * Auto-rendered by Root when `name` prop is provided.
15833
+ * Can also be used explicitly for custom form integration.
15834
+ *
15835
+ * @see https://0.vuetifyjs.com/components/forms/checkbox
15836
+ *
15837
+ * @example
15838
+ * ```vue
15839
+ * <script setup lang="ts">
15840
+ * import { Checkbox } from '@vuetify/v0'
15841
+ * <\/script>
15842
+ *
15843
+ * <template>
15844
+ * <Checkbox.Root>
15845
+ * <Checkbox.Indicator>✓</Checkbox.Indicator>
15846
+ * <Checkbox.HiddenInput name="agree" value="yes" />
15847
+ * </Checkbox.Root>
15848
+ * </template>
15849
+ * ```
15850
+ */
14996
15851
  HiddenInput: _sfc_main$35,
15852
+ /**
15853
+ * Visual indicator component for checkboxes.
15854
+ *
15855
+ * Renders as a span and only displays when checked or indeterminate.
15856
+ * Must be used within a Checkbox.Root component.
15857
+ *
15858
+ * @see https://0.vuetifyjs.com/components/forms/checkbox
15859
+ *
15860
+ * @example
15861
+ * ```vue
15862
+ * <script setup lang="ts">
15863
+ * import { Checkbox } from '@vuetify/v0'
15864
+ * <\/script>
15865
+ *
15866
+ * <template>
15867
+ * <Checkbox.Root>
15868
+ * <Checkbox.Indicator>
15869
+ * <svg viewBox="0 0 24 24">
15870
+ * <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z" />
15871
+ * </svg>
15872
+ * </Checkbox.Indicator>
15873
+ * </Checkbox.Root>
15874
+ * </template>
15875
+ * ```
15876
+ */
14997
15877
  Indicator: _sfc_main$36,
15878
+ /**
15879
+ * Root component for individual checkboxes.
15880
+ *
15881
+ * Renders as a button with proper ARIA attributes and handles
15882
+ * click/keyboard interactions. Supports standalone mode with
15883
+ * v-model or group mode within Checkbox.Group. When `name` prop
15884
+ * is provided, automatically renders a hidden input for form submission.
15885
+ *
15886
+ * @see https://0.vuetifyjs.com/components/forms/checkbox
15887
+ *
15888
+ * @example
15889
+ * ```vue
15890
+ * <script setup lang="ts">
15891
+ * import { Checkbox } from '@vuetify/v0'
15892
+ * import { ref } from 'vue'
15893
+ *
15894
+ * const agreed = ref(false)
15895
+ * <\/script>
15896
+ *
15897
+ * <template>
15898
+ * <label>
15899
+ * <Checkbox.Root v-model="agreed">
15900
+ * <Checkbox.Indicator>✓</Checkbox.Indicator>
15901
+ * </Checkbox.Root>
15902
+ * I agree to the terms
15903
+ * </label>
15904
+ * </template>
15905
+ * ```
15906
+ */
14998
15907
  Root: _sfc_main$37,
15908
+ /**
15909
+ * Select all checkbox for group multi-selection.
15910
+ *
15911
+ * Binds to parent Checkbox.Group's aggregate state. Reflects
15912
+ * isAllSelected/isMixed and calls toggleAll on click. Does NOT
15913
+ * register as a group item. Must be used within a Checkbox.Group.
15914
+ *
15915
+ * @see https://0.vuetifyjs.com/components/forms/checkbox
15916
+ *
15917
+ * @example
15918
+ * ```vue
15919
+ * <script setup lang="ts">
15920
+ * import { Checkbox } from '@vuetify/v0'
15921
+ * import { ref } from 'vue'
15922
+ *
15923
+ * const selected = ref<string[]>([])
15924
+ * <\/script>
15925
+ *
15926
+ * <template>
15927
+ * <Checkbox.Group v-model="selected">
15928
+ * <Checkbox.SelectAll>
15929
+ * <Checkbox.Indicator v-slot="{ isMixed }">
15930
+ * <span v-if="isMixed">−</span>
15931
+ * <span v-else>✓</span>
15932
+ * </Checkbox.Indicator>
15933
+ * </Checkbox.SelectAll>
15934
+ *
15935
+ * <Checkbox.Root value="a">
15936
+ * <Checkbox.Indicator>✓</Checkbox.Indicator>
15937
+ * </Checkbox.Root>
15938
+ * </Checkbox.Group>
15939
+ * </template>
15940
+ * ```
15941
+ */
14999
15942
  SelectAll: _sfc_main$38
15000
15943
  };
15001
15944
  //#endregion
@@ -15240,7 +16183,7 @@ const visuallyHiddenStyle$3 = {
15240
16183
  whiteSpace: "nowrap",
15241
16184
  border: "0"
15242
16185
  };
15243
- const _sfc_main$162 = /* @__PURE__ */ defineComponent({
16186
+ const _sfc_main$165 = /* @__PURE__ */ defineComponent({
15244
16187
  name: "ComboboxHiddenInput",
15245
16188
  __name: "ComboboxHiddenInput",
15246
16189
  props: { namespace: { default: "v0:combobox" } },
@@ -15350,7 +16293,7 @@ const _sfc_main$51 = /* @__PURE__ */ defineComponent({
15350
16293
  }, {
15351
16294
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
15352
16295
  _: 3
15353
- }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$162, { key: 0 })) : createCommentVNode("v-if", true)], 64);
16296
+ }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$165, { key: 0 })) : createCommentVNode("v-if", true)], 64);
15354
16297
  };
15355
16298
  }
15356
16299
  });
@@ -15510,7 +16453,7 @@ const _sfc_main$45 = /* @__PURE__ */ defineComponent({
15510
16453
  "aria-describedby": context.hasDescription.value ? context.descriptionId : void 0,
15511
16454
  "aria-errormessage": context.hasError.value && context.errors.value.length > 0 ? context.errorId : void 0,
15512
16455
  "aria-invalid": invalid.value || void 0,
15513
- "aria-disabled": toValue(context.disabled) || void 0,
16456
+ "aria-disabled": toValue(context.disabled),
15514
16457
  "disabled": toValue(context.disabled) || void 0,
15515
16458
  "onInput": onInput,
15516
16459
  "onFocus": onFocus,
@@ -15710,7 +16653,7 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
15710
16653
  "id": elementId,
15711
16654
  "role": "option",
15712
16655
  "aria-selected": isSelected.value,
15713
- "aria-disabled": isDisabled.value || void 0,
16656
+ "aria-disabled": isDisabled.value,
15714
16657
  "data-selected": isSelected.value || void 0,
15715
16658
  "data-highlighted": isHighlighted.value ? "" : void 0,
15716
16659
  "data-disabled": isDisabled.value || void 0,
@@ -15773,14 +16716,165 @@ const _sfc_main$50 = /* @__PURE__ */ defineComponent({
15773
16716
  * ```
15774
16717
  */
15775
16718
  const Combobox = {
16719
+ /**
16720
+ * Root component for comboboxes. Creates selection, virtual focus, popover,
16721
+ * and adapter contexts. Bridges v-model to the internal selection state.
16722
+ *
16723
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16724
+ *
16725
+ * @example
16726
+ * ```vue
16727
+ * <script lang="ts" setup>
16728
+ * import { Combobox } from '@vuetify/v0'
16729
+ * import { ref } from 'vue'
16730
+ *
16731
+ * const selected = ref()
16732
+ * <\/script>
16733
+ *
16734
+ * <template>
16735
+ * <Combobox.Root v-model="selected" strict>
16736
+ * <Combobox.Activator>
16737
+ * <Combobox.Control placeholder="Search..." />
16738
+ * <Combobox.Cue />
16739
+ * </Combobox.Activator>
16740
+ * <Combobox.Content>
16741
+ * <Combobox.Item id="a" value="A">Option A</Combobox.Item>
16742
+ * </Combobox.Content>
16743
+ * </Combobox.Root>
16744
+ * </template>
16745
+ * ```
16746
+ */
15776
16747
  Root: _sfc_main$51,
16748
+ /**
16749
+ * Wrapper for the control and cue. Sets CSS anchor-name so the dropdown
16750
+ * positions relative to this element.
16751
+ *
16752
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16753
+ *
16754
+ * @example
16755
+ * ```vue
16756
+ * <Combobox.Activator>
16757
+ * <Combobox.Control placeholder="Type to search..." />
16758
+ * <Combobox.Cue />
16759
+ * </Combobox.Activator>
16760
+ * ```
16761
+ */
15777
16762
  Activator: _sfc_main$43,
16763
+ /**
16764
+ * Text input that drives the query string and keyboard navigation.
16765
+ * Binds `role="combobox"` and manages `aria-activedescendant` via virtual focus.
16766
+ *
16767
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16768
+ *
16769
+ * @example
16770
+ * ```vue
16771
+ * <!-- Opens on focus (default) -->
16772
+ * <Combobox.Control placeholder="Search fruits..." />
16773
+ *
16774
+ * <!-- Opens only when the user starts typing -->
16775
+ * <Combobox.Control open-on="input" placeholder="Start typing..." />
16776
+ * ```
16777
+ */
15778
16778
  Control: _sfc_main$45,
16779
+ /**
16780
+ * Visual cue for open/close state. Exposes `data-state="open|closed"` for
16781
+ * CSS-driven styling. Clicking toggles the dropdown.
16782
+ *
16783
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16784
+ *
16785
+ * @example
16786
+ * ```vue
16787
+ * <Combobox.Cue v-slot="{ isOpen }">
16788
+ * {{ isOpen ? '▲' : '▼' }}
16789
+ * </Combobox.Cue>
16790
+ * ```
16791
+ */
15779
16792
  Cue: _sfc_main$46,
16793
+ /**
16794
+ * Dropdown content container using native popover API with CSS anchor
16795
+ * positioning. Renders `role="listbox"` with lazy mounting.
16796
+ *
16797
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16798
+ *
16799
+ * @example
16800
+ * ```vue
16801
+ * <Combobox.Content>
16802
+ * <Combobox.Item id="a" value="A">Option A</Combobox.Item>
16803
+ * <Combobox.Item id="b" value="B">Option B</Combobox.Item>
16804
+ * <Combobox.Empty>No results found</Combobox.Empty>
16805
+ * </Combobox.Content>
16806
+ * ```
16807
+ */
15780
16808
  Content: _sfc_main$44,
16809
+ /**
16810
+ * Option item within the combobox dropdown. Registers with selection and
16811
+ * virtual focus. Hidden via `v-show` when filtered out so selection state
16812
+ * is preserved.
16813
+ *
16814
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16815
+ *
16816
+ * @example
16817
+ * ```vue
16818
+ * <Combobox.Item id="apple" value="Apple" v-slot="{ isSelected, isHighlighted, attrs }">
16819
+ * <div v-bind="attrs" :class="{ highlighted: isHighlighted }">
16820
+ * Apple {{ isSelected ? '✓' : '' }}
16821
+ * </div>
16822
+ * </Combobox.Item>
16823
+ * ```
16824
+ */
15781
16825
  Item: _sfc_main$50,
16826
+ /**
16827
+ * Empty state shown when no items match the current query. Exposes the
16828
+ * query string via slot props for contextual messaging.
16829
+ *
16830
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16831
+ *
16832
+ * @example
16833
+ * ```vue
16834
+ * <Combobox.Empty v-slot="{ query }">
16835
+ * No results for "{{ query }}"
16836
+ * </Combobox.Empty>
16837
+ * ```
16838
+ */
15782
16839
  Empty: _sfc_main$48,
16840
+ /**
16841
+ * Help text component connected via aria-describedby.
16842
+ * Auto-generates an ID that Combobox.Control references in its
16843
+ * aria-describedby attribute for accessibility.
16844
+ *
16845
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16846
+ *
16847
+ * @example
16848
+ * ```vue
16849
+ * <Combobox.Root v-model="selected">
16850
+ * <Combobox.Activator>
16851
+ * <Combobox.Control placeholder="Search..." />
16852
+ * </Combobox.Activator>
16853
+ * <Combobox.Description>Select a fruit from the list.</Combobox.Description>
16854
+ * </Combobox.Root>
16855
+ * ```
16856
+ */
15783
16857
  Description: _sfc_main$47,
16858
+ /**
16859
+ * Error message component with aria-live announcements.
16860
+ * Renders error messages from Root's errorMessages prop.
16861
+ * Connected to Control via aria-errormessage. Uses aria-live="polite"
16862
+ * for screen reader announcements when errors appear.
16863
+ *
16864
+ * @see https://0.vuetifyjs.com/components/forms/combobox
16865
+ *
16866
+ * @example
16867
+ * ```vue
16868
+ * <Combobox.Root v-model="selected" :error-messages="['Selection required']">
16869
+ * <Combobox.Activator>
16870
+ * <Combobox.Control placeholder="Search..." />
16871
+ * </Combobox.Activator>
16872
+ * <Combobox.Error v-slot="{ errors }">
16873
+ * <span v-for="error in errors" :key="error">{{ error }}</span>
16874
+ * </Combobox.Error>
16875
+ * </Combobox.Root>
16876
+ * ```
16877
+ */
15784
16878
  Error: _sfc_main$49
15785
16879
  };
15786
16880
  //#endregion
@@ -16059,11 +17153,121 @@ const _sfc_main$52 = /* @__PURE__ */ defineComponent({
16059
17153
  * ```
16060
17154
  */
16061
17155
  const Dialog = {
17156
+ /**
17157
+ * Root component for dialogs.
17158
+ *
17159
+ * @see https://0.vuetifyjs.com/components/disclosure/dialog
17160
+ *
17161
+ * @example
17162
+ * ```vue
17163
+ * <script lang="ts" setup>
17164
+ * import { Dialog } from '@vuetify/v0'
17165
+ * <\/script>
17166
+ *
17167
+ * <template>
17168
+ * <Dialog.Root>
17169
+ * <Dialog.Activator>Open</Dialog.Activator>
17170
+ * <Dialog.Content>
17171
+ * <Dialog.Title>Title</Dialog.Title>
17172
+ * <Dialog.Close>Close</Dialog.Close>
17173
+ * </Dialog.Content>
17174
+ * </Dialog.Root>
17175
+ * </template>
17176
+ * ```
17177
+ */
16062
17178
  Root: _sfc_main$56,
17179
+ /**
17180
+ * Activator component that opens the dialog.
17181
+ *
17182
+ * @see https://0.vuetifyjs.com/components/disclosure/dialog
17183
+ *
17184
+ * @example
17185
+ * ```vue
17186
+ * <script lang="ts" setup>
17187
+ * import { Dialog } from '@vuetify/v0'
17188
+ * <\/script>
17189
+ *
17190
+ * <template>
17191
+ * <Dialog.Activator>
17192
+ * Open Dialog
17193
+ * </Dialog.Activator>
17194
+ * </template>
17195
+ * ```
17196
+ */
16063
17197
  Activator: _sfc_main$52,
17198
+ /**
17199
+ * Content container for the dialog using native `<dialog>` element.
17200
+ *
17201
+ * @see https://0.vuetifyjs.com/components/disclosure/dialog
17202
+ *
17203
+ * @example
17204
+ * ```vue
17205
+ * <script lang="ts" setup>
17206
+ * import { Dialog } from '@vuetify/v0'
17207
+ * <\/script>
17208
+ *
17209
+ * <template>
17210
+ * <Dialog.Content>
17211
+ * <Dialog.Title>Title</Dialog.Title>
17212
+ * <p>Content goes here.</p>
17213
+ * <Dialog.Close>Close</Dialog.Close>
17214
+ * </Dialog.Content>
17215
+ * </template>
17216
+ * ```
17217
+ */
16064
17218
  Content: _sfc_main$54,
17219
+ /**
17220
+ * Title component for accessible dialog labeling.
17221
+ *
17222
+ * @see https://0.vuetifyjs.com/components/disclosure/dialog
17223
+ *
17224
+ * @example
17225
+ * ```vue
17226
+ * <script lang="ts" setup>
17227
+ * import { Dialog } from '@vuetify/v0'
17228
+ * <\/script>
17229
+ *
17230
+ * <template>
17231
+ * <Dialog.Title>Dialog Title</Dialog.Title>
17232
+ * </template>
17233
+ * ```
17234
+ */
16065
17235
  Title: _sfc_main$57,
17236
+ /**
17237
+ * Description component for accessible dialog description.
17238
+ *
17239
+ * @see https://0.vuetifyjs.com/components/disclosure/dialog
17240
+ *
17241
+ * @example
17242
+ * ```vue
17243
+ * <script lang="ts" setup>
17244
+ * import { Dialog } from '@vuetify/v0'
17245
+ * <\/script>
17246
+ *
17247
+ * <template>
17248
+ * <Dialog.Description>
17249
+ * This dialog allows you to configure settings.
17250
+ * </Dialog.Description>
17251
+ * </template>
17252
+ * ```
17253
+ */
16066
17254
  Description: _sfc_main$55,
17255
+ /**
17256
+ * Close button component for closing the dialog.
17257
+ *
17258
+ * @see https://0.vuetifyjs.com/components/disclosure/dialog
17259
+ *
17260
+ * @example
17261
+ * ```vue
17262
+ * <script lang="ts" setup>
17263
+ * import { Dialog } from '@vuetify/v0'
17264
+ * <\/script>
17265
+ *
17266
+ * <template>
17267
+ * <Dialog.Close>Close</Dialog.Close>
17268
+ * </template>
17269
+ * ```
17270
+ */
16067
17271
  Close: _sfc_main$53
16068
17272
  };
16069
17273
  //#endregion
@@ -16339,11 +17543,117 @@ const _sfc_main$62 = /* @__PURE__ */ defineComponent({
16339
17543
  * ```
16340
17544
  */
16341
17545
  const ExpansionPanel = {
17546
+ /**
17547
+ * Group component for coordinating expansion panels.
17548
+ *
17549
+ * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
17550
+ */
16342
17551
  Group: _sfc_main$61,
17552
+ /**
17553
+ * Root component representing a single expansion panel.
17554
+ *
17555
+ * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
17556
+ *
17557
+ * @example
17558
+ * ```vue
17559
+ * <script lang="ts" setup>
17560
+ * import { ExpansionPanel } from '@vuetify/v0'
17561
+ * <\/script>
17562
+ *
17563
+ * <template>
17564
+ * <ExpansionPanel.Root>
17565
+ * <ExpansionPanel.Header>
17566
+ * <ExpansionPanel.Activator>
17567
+ * Click to expand
17568
+ * </ExpansionPanel.Activator>
17569
+ * </ExpansionPanel.Header>
17570
+ *
17571
+ * <ExpansionPanel.Content>
17572
+ * Content goes here.
17573
+ * </ExpansionPanel.Content>
17574
+ * </ExpansionPanel.Root>
17575
+ * </template>
17576
+ * ```
17577
+ */
16343
17578
  Root: _sfc_main$63,
17579
+ /**
17580
+ * (optional) Component for the header section of an expansion panel item.
17581
+ *
17582
+ * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
17583
+ *
17584
+ * @example
17585
+ * ```vue
17586
+ * <script lang="ts" setup>
17587
+ * import { ExpansionPanel } from '@vuetify/v0'
17588
+ * <\/script>
17589
+ *
17590
+ * <template>
17591
+ * <ExpansionPanel.Header>
17592
+ * <ExpansionPanel.Activator>
17593
+ * Click to expand
17594
+ * </ExpansionPanel.Activator>
17595
+ * </ExpansionPanel.Header>
17596
+ * </template>
17597
+ * ```
17598
+ */
16344
17599
  Header: _sfc_main$62,
17600
+ /**
17601
+ * Component for the activator section of an expansion panel header.
17602
+ *
17603
+ * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
17604
+ *
17605
+ * @example
17606
+ * ```vue
17607
+ * <script lang="ts" setup>
17608
+ * import { ExpansionPanel } from '@vuetify/v0'
17609
+ * <\/script>
17610
+ *
17611
+ * <template>
17612
+ * <ExpansionPanel.Activator>
17613
+ * Click to expand
17614
+ * </ExpansionPanel.Activator>
17615
+ * </template>
17616
+ * ```
17617
+ */
16345
17618
  Activator: _sfc_main$58,
17619
+ /**
17620
+ * Visual cue for expansion state (e.g., chevron icon).
17621
+ *
17622
+ * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
17623
+ *
17624
+ * @example
17625
+ * ```vue
17626
+ * <script lang="ts" setup>
17627
+ * import { ExpansionPanel } from '@vuetify/v0'
17628
+ * <\/script>
17629
+ *
17630
+ * <template>
17631
+ * <ExpansionPanel.Activator>
17632
+ * Click to expand
17633
+ * <ExpansionPanel.Cue />
17634
+ * </ExpansionPanel.Activator>
17635
+ * </template>
17636
+ * ```
17637
+ */
16346
17638
  Cue: _sfc_main$60,
17639
+ /**
17640
+ * Component for the content section of an expansion panel item.
17641
+ *
17642
+ * @see https://0.vuetifyjs.com/components/disclosure/expansion-panel
17643
+ *
17644
+ * @example
17645
+ * ```vue
17646
+ * <script lang="ts" setup>
17647
+ * import { ExpansionPanel } from '@vuetify/v0'
17648
+ * <\/script>
17649
+ *
17650
+ * <template>
17651
+ * <ExpansionPanel.Content>
17652
+ * Content goes here.
17653
+ * </ExpansionPanel.Content>
17654
+ * </template>
17655
+ * ```
17656
+ */
16347
17657
  Content: _sfc_main$59
16348
17658
  };
16349
17659
  //#endregion
@@ -16529,7 +17839,45 @@ const _sfc_main$65 = /* @__PURE__ */ defineComponent({
16529
17839
  * @see https://0.vuetifyjs.com/components/providers/group
16530
17840
  */
16531
17841
  const Group = {
17842
+ /**
17843
+ * Root component for multi-selection groups.
17844
+ *
17845
+ * @see https://0.vuetifyjs.com/components/providers/group
17846
+ *
17847
+ * @example
17848
+ * ```vue
17849
+ * <script lang="ts" setup>
17850
+ * import { Group } from '@vuetify/v0'
17851
+ * <\/script>
17852
+ *
17853
+ * <template>
17854
+ * <Group.Root v-model="selected">
17855
+ * <Group.Item value="a">Option A</Group.Item>
17856
+ *
17857
+ * <Group.Item value="b">Option B</Group.Item>
17858
+ * </Group.Root>
17859
+ * </template>
17860
+ * ```
17861
+ */
16532
17862
  Root: _sfc_main$66,
17863
+ /**
17864
+ * Item component for multi-selection groups.
17865
+ *
17866
+ * @see https://0.vuetifyjs.com/components/providers/group
17867
+ *
17868
+ * @example
17869
+ * ```vue
17870
+ * <script lang="ts" setup>
17871
+ * import { Group } from '@vuetify/v0'
17872
+ * <\/script>
17873
+ *
17874
+ * <template>
17875
+ * <Group.Item value="a">
17876
+ * Option A
17877
+ * </Group.Item>
17878
+ * </template>
17879
+ * ```
17880
+ */
16533
17881
  Item: _sfc_main$65
16534
17882
  };
16535
17883
  //#endregion
@@ -16726,11 +18074,68 @@ const _sfc_main$69 = /* @__PURE__ */ defineComponent({
16726
18074
  * @see https://0.vuetifyjs.com/components/semantic/image
16727
18075
  */
16728
18076
  const Image = {
18077
+ /**
18078
+ * Root component for images. Owns the loading state machine and optionally
18079
+ * manages lazy loading via IntersectionObserver.
18080
+ *
18081
+ * @see https://0.vuetifyjs.com/components/semantic/image
18082
+ *
18083
+ * @example
18084
+ * ```vue
18085
+ * <script lang="ts" setup>
18086
+ * import { Image } from '@vuetify/v0'
18087
+ * <\/script>
18088
+ *
18089
+ * <template>
18090
+ * <Image.Root src="/photo.jpg">
18091
+ * <Image.Img alt="A photo" width="800" height="600" />
18092
+ * <Image.Placeholder>Loading...</Image.Placeholder>
18093
+ * <Image.Fallback>Failed to load</Image.Fallback>
18094
+ * </Image.Root>
18095
+ * </template>
18096
+ * ```
18097
+ */
16729
18098
  Root: _sfc_main$70,
18099
+ /**
18100
+ * The `<img>` element. Reads the gated source from context and reports
18101
+ * load/error events.
18102
+ *
18103
+ * @see https://0.vuetifyjs.com/components/semantic/image
18104
+ *
18105
+ * @example
18106
+ * ```vue
18107
+ * <Image.Img alt="Description" width="800" height="600" />
18108
+ * ```
18109
+ */
16730
18110
  Img: _sfc_main$68,
16731
- Placeholder: _sfc_main$69,
16732
- Fallback: _sfc_main$67
16733
- };
18111
+ /**
18112
+ * Placeholder content shown while the image is idle or loading.
18113
+ *
18114
+ * @see https://0.vuetifyjs.com/components/semantic/image
18115
+ *
18116
+ * @example
18117
+ * ```vue
18118
+ * <Image.Placeholder>
18119
+ * <div class="bg-gray-200 animate-pulse" />
18120
+ * </Image.Placeholder>
18121
+ * ```
18122
+ */
18123
+ Placeholder: _sfc_main$69,
18124
+ /**
18125
+ * Fallback content shown when the image fails to load. Exposes `retry()`
18126
+ * via slot props.
18127
+ *
18128
+ * @see https://0.vuetifyjs.com/components/semantic/image
18129
+ *
18130
+ * @example
18131
+ * ```vue
18132
+ * <Image.Fallback v-slot="{ retry }">
18133
+ * <button @click="retry">Retry</button>
18134
+ * </Image.Fallback>
18135
+ * ```
18136
+ */
18137
+ Fallback: _sfc_main$67
18138
+ };
16734
18139
  //#endregion
16735
18140
  //#region src/components/Input/InputRoot.vue
16736
18141
  const [useInputRoot, provideInputRoot] = createContext();
@@ -17051,9 +18456,87 @@ const _sfc_main$73 = /* @__PURE__ */ defineComponent({
17051
18456
  * ```
17052
18457
  */
17053
18458
  const Input = {
18459
+ /**
18460
+ * Native input element with ARIA bindings and validation triggers.
18461
+ *
18462
+ * Renders as `<input>` by default. Binds ARIA attributes from Root context
18463
+ * and triggers validation on blur or input based on Root's validateOn prop.
18464
+ *
18465
+ * @see https://0.vuetifyjs.com/components/forms/input
18466
+ *
18467
+ * @example
18468
+ * ```vue
18469
+ * <Input.Root v-model="value" label="Name">
18470
+ * <Input.Control />
18471
+ * </Input.Root>
18472
+ * ```
18473
+ */
17054
18474
  Control: _sfc_main$71,
18475
+ /**
18476
+ * Help text component connected via aria-describedby.
18477
+ *
18478
+ * Auto-generates an ID that Input.Control references in its
18479
+ * aria-describedby attribute for accessibility.
18480
+ *
18481
+ * @see https://0.vuetifyjs.com/components/forms/input
18482
+ *
18483
+ * @example
18484
+ * ```vue
18485
+ * <Input.Root v-model="value" label="Username">
18486
+ * <Input.Control />
18487
+ * <Input.Description>Must be 3-20 characters.</Input.Description>
18488
+ * </Input.Root>
18489
+ * ```
18490
+ */
17055
18491
  Description: _sfc_main$72,
18492
+ /**
18493
+ * Error message component with aria-live announcements.
18494
+ *
18495
+ * Renders validation errors from Root's validation context.
18496
+ * Connected to Control via aria-errormessage. Uses aria-live="polite"
18497
+ * for screen reader announcements when errors appear.
18498
+ *
18499
+ * @see https://0.vuetifyjs.com/components/forms/input
18500
+ *
18501
+ * @example
18502
+ * ```vue
18503
+ * <Input.Root v-model="value" :rules="[(v) => !!v || 'Required']">
18504
+ * <Input.Control />
18505
+ * <Input.Error v-slot="{ errors }">
18506
+ * <span v-for="error in errors" :key="error">{{ error }}</span>
18507
+ * </Input.Error>
18508
+ * </Input.Root>
18509
+ * ```
18510
+ */
17056
18511
  Error: _sfc_main$73,
18512
+ /**
18513
+ * Root component for text inputs with validation.
18514
+ *
18515
+ * Creates a validation context, registers a single field, and provides
18516
+ * context to child components. Supports v-model for value binding and
18517
+ * auto-registers with parent form when used inside createForm.
18518
+ *
18519
+ * @see https://0.vuetifyjs.com/components/forms/input
18520
+ *
18521
+ * @example
18522
+ * ```vue
18523
+ * <script setup lang="ts">
18524
+ * import { Input } from '@vuetify/v0'
18525
+ * import { ref } from 'vue'
18526
+ *
18527
+ * const name = ref('')
18528
+ * <\/script>
18529
+ *
18530
+ * <template>
18531
+ * <Input.Root v-model="name" label="Full name" :rules="[(v) => !!v || 'Required']">
18532
+ * <Input.Control />
18533
+ * <Input.Error v-slot="{ errors }">
18534
+ * <span v-for="error in errors" :key="error">{{ error }}</span>
18535
+ * </Input.Error>
18536
+ * </Input.Root>
18537
+ * </template>
18538
+ * ```
18539
+ */
17057
18540
  Root: _sfc_main$74
17058
18541
  };
17059
18542
  //#endregion
@@ -17733,20 +19216,439 @@ const _sfc_main$82 = /* @__PURE__ */ defineComponent({
17733
19216
  * ```
17734
19217
  */
17735
19218
  const NumberField = {
19219
+ /**
19220
+ * Root component for number fields.
19221
+ *
19222
+ * Creates number field context, provides it to child components, and
19223
+ * bridges v-model. Manages validation timing via validateOn prop.
19224
+ * Configure min, max, step, locale, and format via props.
19225
+ *
19226
+ * @see https://0.vuetifyjs.com/components/number-field
19227
+ *
19228
+ * @example
19229
+ * ```vue
19230
+ * <script setup lang="ts">
19231
+ * import { NumberField } from '@vuetify/v0'
19232
+ * import { ref } from 'vue'
19233
+ *
19234
+ * const value = ref<number | null>(0)
19235
+ * <\/script>
19236
+ *
19237
+ * <template>
19238
+ * <NumberField.Root v-model="value" :min="0" :max="100">
19239
+ * <NumberField.Control />
19240
+ * </NumberField.Root>
19241
+ * </template>
19242
+ * ```
19243
+ */
17736
19244
  Root: _sfc_main$81,
19245
+ /**
19246
+ * Native input element with spinbutton semantics.
19247
+ *
19248
+ * Provides keyboard navigation (Arrow, Page, Home/End, Shift+Arrow, Enter),
19249
+ * text parsing, and focus-dependent display (raw while focused, formatted
19250
+ * while blurred). Emits full ARIA spinbutton attributes.
19251
+ *
19252
+ * @see https://0.vuetifyjs.com/components/number-field#anatomy
19253
+ *
19254
+ * @example
19255
+ * ```vue
19256
+ * <NumberField.Control />
19257
+ * ```
19258
+ */
17737
19259
  Control: _sfc_main$76,
19260
+ /**
19261
+ * Increment button with spin-on-hold behavior.
19262
+ *
19263
+ * On pointerdown, increments immediately then starts repeating
19264
+ * after spinDelay at spinRate interval. Disabled when value is
19265
+ * at maximum or field is disabled/readonly.
19266
+ *
19267
+ * @see https://0.vuetifyjs.com/components/number-field#anatomy
19268
+ *
19269
+ * @example
19270
+ * ```vue
19271
+ * <NumberField.Increment>+</NumberField.Increment>
19272
+ * ```
19273
+ */
17738
19274
  Increment: _sfc_main$80,
19275
+ /**
19276
+ * Decrement button with spin-on-hold behavior.
19277
+ *
19278
+ * On pointerdown, decrements immediately then starts repeating
19279
+ * after spinDelay at spinRate interval. Disabled when value is
19280
+ * at minimum or field is disabled/readonly.
19281
+ *
19282
+ * @see https://0.vuetifyjs.com/components/number-field#anatomy
19283
+ *
19284
+ * @example
19285
+ * ```vue
19286
+ * <NumberField.Decrement>-</NumberField.Decrement>
19287
+ * ```
19288
+ */
17739
19289
  Decrement: _sfc_main$77,
19290
+ /**
19291
+ * Click-and-drag scrub control using Pointer Lock API.
19292
+ *
19293
+ * Allows unbounded horizontal dragging to adjust the value.
19294
+ * Configure sensitivity (pixels per step) via prop. Shows
19295
+ * ew-resize cursor on hover. Renders as label by default.
19296
+ *
19297
+ * @see https://0.vuetifyjs.com/components/number-field#scrub
19298
+ *
19299
+ * @example
19300
+ * ```vue
19301
+ * <NumberField.Scrub>Amount</NumberField.Scrub>
19302
+ * ```
19303
+ */
17740
19304
  Scrub: _sfc_main$82,
19305
+ /**
19306
+ * Help text component connected via aria-describedby.
19307
+ *
19308
+ * Auto-registers with parent Root to wire up the ARIA relationship
19309
+ * to the Control element.
19310
+ *
19311
+ * @see https://0.vuetifyjs.com/components/number-field#description
19312
+ *
19313
+ * @example
19314
+ * ```vue
19315
+ * <NumberField.Description>Enter a value between 0 and 100</NumberField.Description>
19316
+ * ```
19317
+ */
17741
19318
  Description: _sfc_main$78,
19319
+ /**
19320
+ * Error message component connected via aria-errormessage.
19321
+ *
19322
+ * Renders validation error messages from the parent Root's validation
19323
+ * context. Uses aria-live="polite" for screen reader announcements.
19324
+ *
19325
+ * @see https://0.vuetifyjs.com/components/number-field#validation
19326
+ *
19327
+ * @example
19328
+ * ```vue
19329
+ * <NumberField.Error v-slot="{ errors }">
19330
+ * <span v-for="error in errors">{{ error }}</span>
19331
+ * </NumberField.Error>
19332
+ * ```
19333
+ */
17742
19334
  Error: _sfc_main$79
17743
19335
  };
17744
19336
  //#endregion
19337
+ //#region src/components/Overflow/OverflowRoot.vue
19338
+ /**
19339
+ * @module OverflowRoot
19340
+ *
19341
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19342
+ *
19343
+ * Root component for the Overflow primitive. Owns the createOverflow context,
19344
+ * the child Item registry, and the capacity computation that drives item
19345
+ * visibility and the indicator's appearance.
19346
+ *
19347
+ * @remarks
19348
+ * Visibility is computed against the *non-disabled* sibling order: a disabled
19349
+ * Item is exempt from capacity math and never counts against the cap, so the
19350
+ * Items around it occupy the same number of visible slots regardless of where
19351
+ * the disabled Item sits. The reactive `gap` prop is forwarded to
19352
+ * `createOverflow` as a getter so capacity recomputes when the prop changes.
19353
+ */
19354
+ const [useOverflowRoot, provideOverflowRoot] = createContext();
19355
+ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
19356
+ name: "OverflowRoot",
19357
+ __name: "OverflowRoot",
19358
+ props: {
19359
+ namespace: { default: "v0:overflow" },
19360
+ gap: { default: 0 },
19361
+ priority: { default: "start" },
19362
+ disabled: {
19363
+ type: Boolean,
19364
+ default: false
19365
+ },
19366
+ as: { default: "div" },
19367
+ renderless: {
19368
+ type: Boolean,
19369
+ default: false
19370
+ }
19371
+ },
19372
+ setup(__props) {
19373
+ const containerRef = useTemplateRef("container");
19374
+ const indicatorWidth = shallowRef(0);
19375
+ const registry = createRegistry({ reactive: true });
19376
+ const overflow = createOverflow({
19377
+ container: () => /* @__PURE__ */ toElement(containerRef.value?.element),
19378
+ gap: () => __props.gap,
19379
+ reserved: indicatorWidth,
19380
+ reverse: () => __props.priority === "end"
19381
+ });
19382
+ function isVisible(index) {
19383
+ if (__props.disabled) return true;
19384
+ const tickets = registry.values();
19385
+ const ticket = tickets[index];
19386
+ if (!ticket) return true;
19387
+ if (toValue(ticket.disabled)) return true;
19388
+ const cap = overflow.capacity.value;
19389
+ if (cap === Infinity) return true;
19390
+ let rank = 0;
19391
+ let total = 0;
19392
+ for (const [i, ticket_] of tickets.entries()) {
19393
+ if (toValue(ticket_.disabled)) continue;
19394
+ if (i === index) rank = total;
19395
+ total++;
19396
+ }
19397
+ if (__props.priority === "end") return rank >= total - cap;
19398
+ return rank < cap;
19399
+ }
19400
+ provideOverflowRoot(__props.namespace, {
19401
+ overflow,
19402
+ registry,
19403
+ priority: toRef(() => __props.priority),
19404
+ disabled: toRef(() => __props.disabled),
19405
+ indicatorWidth,
19406
+ isOverflowing: overflow.isOverflowing,
19407
+ isVisible
19408
+ });
19409
+ const slotProps = toRef(() => ({
19410
+ capacity: overflow.capacity.value,
19411
+ size: registry.size,
19412
+ isOverflowing: overflow.isOverflowing.value,
19413
+ attrs: {
19414
+ "data-overflow": overflow.isOverflowing.value || void 0,
19415
+ "data-priority": __props.priority
19416
+ }
19417
+ }));
19418
+ return (_ctx, _cache) => {
19419
+ return openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
19420
+ ref: "container",
19421
+ as: __props.as,
19422
+ renderless: __props.renderless
19423
+ }, slotProps.value.attrs), {
19424
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19425
+ _: 3
19426
+ }, 16, ["as", "renderless"]);
19427
+ };
19428
+ }
19429
+ });
19430
+ //#endregion
19431
+ //#region src/components/Overflow/OverflowIndicator.vue
19432
+ /**
19433
+ * @module OverflowIndicator
19434
+ *
19435
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19436
+ *
19437
+ * Indicator that renders only when items overflow. Self-measures its own
19438
+ * width and writes it back to OverflowRoot so capacity computation can
19439
+ * reserve space for the indicator's footprint.
19440
+ *
19441
+ * @remarks
19442
+ * In non-renderless mode, the wrapper carries `data-overflow-indicator`
19443
+ * and `aria-live="polite"`. **Renderless mode** drops the wrapper, so the
19444
+ * slot consumer must spread `slotProps.attrs` onto their own element to
19445
+ * preserve the data hook and live-region semantics.
19446
+ */
19447
+ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
19448
+ name: "OverflowIndicator",
19449
+ __name: "OverflowIndicator",
19450
+ props: {
19451
+ namespace: { default: "v0:overflow" },
19452
+ as: { default: "div" },
19453
+ renderless: {
19454
+ type: Boolean,
19455
+ default: false
19456
+ }
19457
+ },
19458
+ setup(__props) {
19459
+ const root = useOverflowRoot(__props.namespace);
19460
+ const atomRef = useTemplateRef("atom");
19461
+ const el = toRef(() => /* @__PURE__ */ toElement(atomRef.value?.element) ?? null);
19462
+ function measure() {
19463
+ if (!IN_BROWSER || !el.value) {
19464
+ root.indicatorWidth.value = 0;
19465
+ return;
19466
+ }
19467
+ const style = getComputedStyle(el.value);
19468
+ const marginX = Number.parseFloat(style.marginLeft) + Number.parseFloat(style.marginRight);
19469
+ root.indicatorWidth.value = el.value.offsetWidth + marginX;
19470
+ }
19471
+ watch(el, () => measure(), { immediate: true });
19472
+ useResizeObserver(el, () => measure());
19473
+ onBeforeUnmount(() => {
19474
+ root.indicatorWidth.value = 0;
19475
+ });
19476
+ const hidden = computed(() => {
19477
+ return root.registry.values().filter((_, index) => !root.isVisible(index));
19478
+ });
19479
+ const slotProps = toRef(() => ({
19480
+ count: hidden.value.length,
19481
+ hidden: hidden.value,
19482
+ attrs: {
19483
+ "data-overflow-indicator": "true",
19484
+ "aria-live": "polite"
19485
+ }
19486
+ }));
19487
+ return (_ctx, _cache) => {
19488
+ return unref(root).isOverflowing.value ? (openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
19489
+ key: 0,
19490
+ ref: "atom",
19491
+ as: __props.as,
19492
+ renderless: __props.renderless
19493
+ }, slotProps.value.attrs), {
19494
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19495
+ _: 3
19496
+ }, 16, ["as", "renderless"])) : createCommentVNode("v-if", true);
19497
+ };
19498
+ }
19499
+ });
19500
+ //#endregion
19501
+ //#region src/components/Overflow/OverflowItem.vue
19502
+ /**
19503
+ * @module OverflowItem
19504
+ *
19505
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19506
+ *
19507
+ * Individual overflow item. Registers with OverflowRoot, self-measures,
19508
+ * and renders/hides based on capacity.
19509
+ *
19510
+ * @remarks
19511
+ * In non-renderless mode, the wrapper applies a structural `display: none`
19512
+ * inline style when the item is hidden. **Renderless mode** drops the wrapper,
19513
+ * so the slot consumer is responsible for honoring `isHidden` themselves —
19514
+ * read it from `slotProps.isHidden` and conditionally render or apply CSS.
19515
+ */
19516
+ const _sfc_main$84 = /* @__PURE__ */ defineComponent({
19517
+ name: "OverflowItem",
19518
+ __name: "OverflowItem",
19519
+ props: {
19520
+ namespace: { default: "v0:overflow" },
19521
+ value: {},
19522
+ disabled: {
19523
+ type: Boolean,
19524
+ default: false
19525
+ },
19526
+ as: { default: "div" },
19527
+ renderless: {
19528
+ type: Boolean,
19529
+ default: false
19530
+ }
19531
+ },
19532
+ setup(__props) {
19533
+ const root = useOverflowRoot(__props.namespace);
19534
+ const atomRef = useTemplateRef("atom");
19535
+ const el = toRef(() => /* @__PURE__ */ toElement(atomRef.value?.element) ?? null);
19536
+ const _disabled = toRef(() => __props.disabled);
19537
+ const ticket = root.registry.register({
19538
+ value: __props.value,
19539
+ disabled: _disabled
19540
+ });
19541
+ let lastMeasuredIndex = null;
19542
+ watch(() => [
19543
+ _disabled.value,
19544
+ el.value,
19545
+ ticket.index
19546
+ ], ([isDisabled, element, index]) => {
19547
+ if (!/* @__PURE__ */ isNull(lastMeasuredIndex) && lastMeasuredIndex !== index) root.overflow.measure(lastMeasuredIndex, void 0);
19548
+ lastMeasuredIndex = index;
19549
+ root.overflow.measure(index, isDisabled ? void 0 : element ?? void 0);
19550
+ }, { immediate: true });
19551
+ onBeforeUnmount(() => {
19552
+ if (!/* @__PURE__ */ isNull(lastMeasuredIndex)) root.overflow.measure(lastMeasuredIndex, void 0);
19553
+ root.registry.unregister(ticket.id);
19554
+ });
19555
+ const isVisible = toRef(() => __props.disabled || root.isVisible(ticket.index));
19556
+ const isHidden = toRef(() => !isVisible.value);
19557
+ const slotProps = toRef(() => ({
19558
+ isVisible: isVisible.value,
19559
+ isHidden: isHidden.value,
19560
+ attrs: {
19561
+ "data-hidden": isHidden.value || void 0,
19562
+ "aria-hidden": isHidden.value ? "true" : void 0
19563
+ }
19564
+ }));
19565
+ return (_ctx, _cache) => {
19566
+ return withDirectives((openBlock(), createBlock(unref(_sfc_main$9), mergeProps({
19567
+ ref: "atom",
19568
+ as: __props.as,
19569
+ renderless: __props.renderless
19570
+ }, slotProps.value.attrs), {
19571
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19572
+ _: 3
19573
+ }, 16, ["as", "renderless"])), [[vShow, isVisible.value]]);
19574
+ };
19575
+ }
19576
+ });
19577
+ //#endregion
19578
+ //#region src/components/Overflow/index.ts
19579
+ /**
19580
+ * Headless responsive truncation primitive. Children render until the
19581
+ * container runs out of width, then overflowing children are hidden
19582
+ * and an indicator surfaces the hidden count.
19583
+ *
19584
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19585
+ */
19586
+ const Overflow = {
19587
+ /**
19588
+ * Root component. Owns the createOverflow context, child registry,
19589
+ * and capacity computation.
19590
+ *
19591
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19592
+ *
19593
+ * @example
19594
+ * ```vue
19595
+ * <script setup lang="ts">
19596
+ * import { Overflow } from '@vuetify/v0'
19597
+ * <\/script>
19598
+ *
19599
+ * <template>
19600
+ * <Overflow.Root class="flex gap-2 overflow-hidden">
19601
+ * <Overflow.Item v-for="tag in tags" :key="tag">
19602
+ * {{ tag }}
19603
+ * </Overflow.Item>
19604
+ *
19605
+ * <Overflow.Indicator v-slot="{ count }">
19606
+ * +{{ count }} more
19607
+ * </Overflow.Indicator>
19608
+ * </Overflow.Root>
19609
+ * </template>
19610
+ * ```
19611
+ */
19612
+ Root: _sfc_main$85,
19613
+ /**
19614
+ * Individual overflow item. Registers with Root and self-measures.
19615
+ * Hidden when its index falls outside capacity.
19616
+ *
19617
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19618
+ *
19619
+ * @example
19620
+ * ```vue
19621
+ * <template>
19622
+ * <Overflow.Item v-slot="{ isHidden }">
19623
+ * <span :class="{ 'opacity-50': isHidden }">Tag</span>
19624
+ * </Overflow.Item>
19625
+ * </template>
19626
+ * ```
19627
+ */
19628
+ Item: _sfc_main$84,
19629
+ /**
19630
+ * Indicator that renders only when items are hidden. Exposes the
19631
+ * hidden count and the array of hidden tickets via slot props.
19632
+ *
19633
+ * @see https://0.vuetifyjs.com/components/semantic/overflow
19634
+ *
19635
+ * @example
19636
+ * ```vue
19637
+ * <template>
19638
+ * <Overflow.Indicator v-slot="{ count, hidden }">
19639
+ * +{{ count }} more
19640
+ * </Overflow.Indicator>
19641
+ * </template>
19642
+ * ```
19643
+ */
19644
+ Indicator: _sfc_main$83
19645
+ };
19646
+ //#endregion
17745
19647
  //#region src/components/Pagination/PaginationRoot.vue
17746
19648
  const [usePaginationRoot, providePaginationRoot] = createContext();
17747
19649
  const [usePaginationControls, providePaginationControls] = createContext({ suffix: "controls" });
17748
19650
  const [usePaginationItems, providePaginationItems] = createContext({ suffix: "items" });
17749
- const _sfc_main$89 = /* @__PURE__ */ defineComponent({
19651
+ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
17750
19652
  name: "PaginationRoot",
17751
19653
  __name: "PaginationRoot",
17752
19654
  props: /* @__PURE__ */ mergeModels({
@@ -17848,7 +19750,7 @@ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
17848
19750
  });
17849
19751
  //#endregion
17850
19752
  //#region src/components/Pagination/PaginationEllipsis.vue
17851
- const _sfc_main$83 = /* @__PURE__ */ defineComponent({
19753
+ const _sfc_main$86 = /* @__PURE__ */ defineComponent({
17852
19754
  name: "PaginationEllipsis",
17853
19755
  __name: "PaginationEllipsis",
17854
19756
  props: {
@@ -17891,7 +19793,7 @@ const _sfc_main$83 = /* @__PURE__ */ defineComponent({
17891
19793
  });
17892
19794
  //#endregion
17893
19795
  //#region src/components/Pagination/PaginationFirst.vue
17894
- const _sfc_main$84 = /* @__PURE__ */ defineComponent({
19796
+ const _sfc_main$87 = /* @__PURE__ */ defineComponent({
17895
19797
  name: "PaginationFirst",
17896
19798
  __name: "PaginationFirst",
17897
19799
  props: {
@@ -17948,7 +19850,7 @@ const _sfc_main$84 = /* @__PURE__ */ defineComponent({
17948
19850
  });
17949
19851
  //#endregion
17950
19852
  //#region src/components/Pagination/PaginationItem.vue
17951
- const _sfc_main$85 = /* @__PURE__ */ defineComponent({
19853
+ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
17952
19854
  name: "PaginationItem",
17953
19855
  __name: "PaginationItem",
17954
19856
  props: {
@@ -18016,7 +19918,7 @@ const _sfc_main$85 = /* @__PURE__ */ defineComponent({
18016
19918
  });
18017
19919
  //#endregion
18018
19920
  //#region src/components/Pagination/PaginationLast.vue
18019
- const _sfc_main$86 = /* @__PURE__ */ defineComponent({
19921
+ const _sfc_main$89 = /* @__PURE__ */ defineComponent({
18020
19922
  name: "PaginationLast",
18021
19923
  __name: "PaginationLast",
18022
19924
  props: {
@@ -18073,7 +19975,7 @@ const _sfc_main$86 = /* @__PURE__ */ defineComponent({
18073
19975
  });
18074
19976
  //#endregion
18075
19977
  //#region src/components/Pagination/PaginationNext.vue
18076
- const _sfc_main$87 = /* @__PURE__ */ defineComponent({
19978
+ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
18077
19979
  name: "PaginationNext",
18078
19980
  __name: "PaginationNext",
18079
19981
  props: {
@@ -18130,7 +20032,7 @@ const _sfc_main$87 = /* @__PURE__ */ defineComponent({
18130
20032
  });
18131
20033
  //#endregion
18132
20034
  //#region src/components/Pagination/PaginationPrev.vue
18133
- const _sfc_main$88 = /* @__PURE__ */ defineComponent({
20035
+ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
18134
20036
  name: "PaginationPrev",
18135
20037
  __name: "PaginationPrev",
18136
20038
  props: {
@@ -18187,7 +20089,7 @@ const _sfc_main$88 = /* @__PURE__ */ defineComponent({
18187
20089
  });
18188
20090
  //#endregion
18189
20091
  //#region src/components/Pagination/PaginationStatus.vue
18190
- const _sfc_main$90 = /* @__PURE__ */ defineComponent({
20092
+ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
18191
20093
  name: "PaginationStatus",
18192
20094
  __name: "PaginationStatus",
18193
20095
  props: {
@@ -18200,15 +20102,18 @@ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
18200
20102
  const pagination = usePaginationRoot(__props.namespace);
18201
20103
  const text = shallowRef("");
18202
20104
  /* v8 ignore start -- watch fires after mount, setTimeout callback requires timer */
20105
+ let pending;
18203
20106
  watch(() => pagination.page.value, (page, prevPage) => {
18204
20107
  if (/* @__PURE__ */ isUndefined(prevPage)) return;
18205
- setTimeout(() => {
20108
+ clearTimeout(pending);
20109
+ pending = setTimeout(() => {
18206
20110
  text.value = locale.t("Pagination.status", {
18207
20111
  page,
18208
20112
  pages: pagination.pages
18209
20113
  });
18210
20114
  }, 100);
18211
20115
  });
20116
+ onBeforeUnmount(() => clearTimeout(pending));
18212
20117
  /* v8 ignore stop */
18213
20118
  const slotProps = toRef(() => ({
18214
20119
  page: pagination.page.value,
@@ -18239,19 +20144,220 @@ const _sfc_main$90 = /* @__PURE__ */ defineComponent({
18239
20144
  * @see https://0.vuetifyjs.com/components/semantic/pagination
18240
20145
  */
18241
20146
  const Pagination = {
18242
- Root: _sfc_main$89,
18243
- Item: _sfc_main$85,
18244
- First: _sfc_main$84,
18245
- Prev: _sfc_main$88,
18246
- Ellipsis: _sfc_main$83,
18247
- Next: _sfc_main$87,
18248
- Last: _sfc_main$86,
18249
- Status: _sfc_main$90
20147
+ /**
20148
+ * Root component for pagination controls.
20149
+ *
20150
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20151
+ *
20152
+ * @example
20153
+ * ```vue
20154
+ * <script lang="ts" setup>
20155
+ * import { Pagination } from '@vuetify/v0'
20156
+ * <\/script>
20157
+ *
20158
+ * <template>
20159
+ * <Pagination.Root v-model="page" :size="100">
20160
+ * <Pagination.First />
20161
+ *
20162
+ * <Pagination.Prev />
20163
+ *
20164
+ * <template v-for="item in items" :key="item.value">
20165
+ * <Pagination.Item v-if="item.type === 'page'" :value="item.value" />
20166
+ *
20167
+ * <Pagination.Ellipsis v-else />
20168
+ * </template>
20169
+ *
20170
+ * <Pagination.Next />
20171
+ *
20172
+ * <Pagination.Last />
20173
+ * </Pagination.Root>
20174
+ * </template>
20175
+ * ```
20176
+ */
20177
+ Root: _sfc_main$92,
20178
+ /**
20179
+ * Individual page button that navigates to a specific page number.
20180
+ *
20181
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20182
+ *
20183
+ * @example
20184
+ * ```vue
20185
+ * <script lang="ts" setup>
20186
+ * import { Pagination } from '@vuetify/v0'
20187
+ * <\/script>
20188
+ *
20189
+ * <template>
20190
+ * <Pagination.Item :value="1">1</Pagination.Item>
20191
+ *
20192
+ * <!-- With slot props -->
20193
+ * <Pagination.Item :value="2" v-slot="{ isSelected }">
20194
+ * <span :class="{ 'font-bold': isSelected }">2</span>
20195
+ * </Pagination.Item>
20196
+ * </template>
20197
+ * ```
20198
+ */
20199
+ Item: _sfc_main$88,
20200
+ /**
20201
+ * Navigation button that jumps to the first page. Automatically
20202
+ * disables when already on the first page.
20203
+ *
20204
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20205
+ *
20206
+ * @example
20207
+ * ```vue
20208
+ * <script lang="ts" setup>
20209
+ * import { Pagination } from '@vuetify/v0'
20210
+ * <\/script>
20211
+ *
20212
+ * <template>
20213
+ * <Pagination.First>First</Pagination.First>
20214
+ *
20215
+ * <!-- With slot props -->
20216
+ * <Pagination.First v-slot="{ isDisabled }">
20217
+ * <span :class="{ 'opacity-50': isDisabled }">«</span>
20218
+ * </Pagination.First>
20219
+ *
20220
+ * <!-- With data attributes -->
20221
+ * <Pagination.First class="data-[disabled]:opacity-50">
20222
+ * First
20223
+ * </Pagination.First>
20224
+ * </template>
20225
+ * ```
20226
+ */
20227
+ First: _sfc_main$87,
20228
+ /**
20229
+ * Navigation button that moves to the previous page. Automatically
20230
+ * disables when already on the first page.
20231
+ *
20232
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20233
+ *
20234
+ * @example
20235
+ * ```vue
20236
+ * <script lang="ts" setup>
20237
+ * import { Pagination } from '@vuetify/v0'
20238
+ * <\/script>
20239
+ *
20240
+ * <template>
20241
+ * <Pagination.Prev>Prev</Pagination.Prev>
20242
+ *
20243
+ * <!-- With slot props -->
20244
+ * <Pagination.Prev v-slot="{ isDisabled }">
20245
+ * <span :class="{ 'opacity-50': isDisabled }">‹</span>
20246
+ * </Pagination.Prev>
20247
+ *
20248
+ * <!-- With data attributes -->
20249
+ * <Pagination.Prev class="data-[disabled]:opacity-50">
20250
+ * Prev
20251
+ * </Pagination.Prev>
20252
+ * </template>
20253
+ * ```
20254
+ */
20255
+ Prev: _sfc_main$91,
20256
+ /**
20257
+ * Visual indicator for omitted page numbers. Hidden from screen
20258
+ * readers via aria-hidden. Inherits ellipsis character from Root
20259
+ * or can be overridden via prop.
20260
+ *
20261
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20262
+ *
20263
+ * @example
20264
+ * ```vue
20265
+ * <script lang="ts" setup>
20266
+ * import { Pagination } from '@vuetify/v0'
20267
+ * <\/script>
20268
+ *
20269
+ * <template>
20270
+ * <!-- Uses default "..." from Root -->
20271
+ * <Pagination.Ellipsis />
20272
+ *
20273
+ * <!-- Override ellipsis character -->
20274
+ * <Pagination.Ellipsis ellipsis="…" />
20275
+ * </template>
20276
+ * ```
20277
+ */
20278
+ Ellipsis: _sfc_main$86,
20279
+ /**
20280
+ * Navigation button that moves to the next page. Automatically
20281
+ * disables when already on the last page.
20282
+ *
20283
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20284
+ *
20285
+ * @example
20286
+ * ```vue
20287
+ * <script lang="ts" setup>
20288
+ * import { Pagination } from '@vuetify/v0'
20289
+ * <\/script>
20290
+ *
20291
+ * <template>
20292
+ * <Pagination.Next>Next</Pagination.Next>
20293
+ *
20294
+ * <!-- With slot props -->
20295
+ * <Pagination.Next v-slot="{ isDisabled }">
20296
+ * <span :class="{ 'opacity-50': isDisabled }">›</span>
20297
+ * </Pagination.Next>
20298
+ *
20299
+ * <!-- With data attributes -->
20300
+ * <Pagination.Next class="data-[disabled]:opacity-50">
20301
+ * Next
20302
+ * </Pagination.Next>
20303
+ * </template>
20304
+ * ```
20305
+ */
20306
+ Next: _sfc_main$90,
20307
+ /**
20308
+ * Navigation button that jumps to the last page. Automatically
20309
+ * disables when already on the last page.
20310
+ *
20311
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20312
+ *
20313
+ * @example
20314
+ * ```vue
20315
+ * <script lang="ts" setup>
20316
+ * import { Pagination } from '@vuetify/v0'
20317
+ * <\/script>
20318
+ *
20319
+ * <template>
20320
+ * <Pagination.Last>Last</Pagination.Last>
20321
+ *
20322
+ * <!-- With slot props -->
20323
+ * <Pagination.Last v-slot="{ isDisabled }">
20324
+ * <span :class="{ 'opacity-50': isDisabled }">»</span>
20325
+ * </Pagination.Last>
20326
+ *
20327
+ * <!-- With data attributes -->
20328
+ * <Pagination.Last class="data-[disabled]:opacity-50">
20329
+ * Last
20330
+ * </Pagination.Last>
20331
+ * </template>
20332
+ * ```
20333
+ */
20334
+ Last: _sfc_main$89,
20335
+ /**
20336
+ * Visually-hidden live region that announces page changes to screen
20337
+ * readers. Should be styled with sr-only/visually-hidden CSS.
20338
+ *
20339
+ * @see https://0.vuetifyjs.com/components/semantic/pagination
20340
+ *
20341
+ * @example
20342
+ * ```vue
20343
+ * <script lang="ts" setup>
20344
+ * import { Pagination } from '@vuetify/v0'
20345
+ * <\/script>
20346
+ *
20347
+ * <template>
20348
+ * <Pagination.Root v-model="page" :size="100">
20349
+ * <Pagination.Status class="sr-only" />
20350
+ * <!-- other pagination items -->
20351
+ * </Pagination.Root>
20352
+ * </template>
20353
+ * ```
20354
+ */
20355
+ Status: _sfc_main$93
18250
20356
  };
18251
20357
  //#endregion
18252
20358
  //#region src/components/Popover/PopoverRoot.vue
18253
20359
  const [usePopoverContext, providePopoverContext] = createContext("v0:popover");
18254
- const _sfc_main$93 = /* @__PURE__ */ defineComponent({
20360
+ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
18255
20361
  name: "PopoverRoot",
18256
20362
  __name: "PopoverRoot",
18257
20363
  props: /* @__PURE__ */ mergeModels({
@@ -18291,7 +20397,7 @@ const _sfc_main$93 = /* @__PURE__ */ defineComponent({
18291
20397
  });
18292
20398
  //#endregion
18293
20399
  //#region src/components/Popover/PopoverActivator.vue
18294
- const _sfc_main$91 = /* @__PURE__ */ defineComponent({
20400
+ const _sfc_main$94 = /* @__PURE__ */ defineComponent({
18295
20401
  name: "PopoverActivator",
18296
20402
  __name: "PopoverActivator",
18297
20403
  props: {
@@ -18327,7 +20433,7 @@ const _sfc_main$91 = /* @__PURE__ */ defineComponent({
18327
20433
  });
18328
20434
  //#endregion
18329
20435
  //#region src/components/Popover/PopoverContent.vue
18330
- const _sfc_main$92 = /* @__PURE__ */ defineComponent({
20436
+ const _sfc_main$95 = /* @__PURE__ */ defineComponent({
18331
20437
  name: "PopoverContent",
18332
20438
  __name: "PopoverContent",
18333
20439
  props: {
@@ -18386,9 +20492,69 @@ const _sfc_main$92 = /* @__PURE__ */ defineComponent({
18386
20492
  * @see https://0.vuetifyjs.com/components/disclosure/popover
18387
20493
  */
18388
20494
  const Popover = {
18389
- Root: _sfc_main$93,
18390
- Activator: _sfc_main$91,
18391
- Content: _sfc_main$92
20495
+ /**
20496
+ * Root component for popovers.
20497
+ *
20498
+ * @see https://0.vuetifyjs.com/components/disclosure/popover
20499
+ *
20500
+ * @example
20501
+ * ```vue
20502
+ * <script lang="ts" setup>
20503
+ * import { Popover } from '@vuetify/v0'
20504
+ * <\/script>
20505
+ *
20506
+ * <template>
20507
+ * <Popover.Root>
20508
+ * <Popover.Activator>
20509
+ * Click to toggle
20510
+ * </Popover.Activator>
20511
+ *
20512
+ * <Popover.Content>
20513
+ * Popover content goes here.
20514
+ * </Popover.Content>
20515
+ * </Popover.Root>
20516
+ * </template>
20517
+ * ```
20518
+ */
20519
+ Root: _sfc_main$96,
20520
+ /**
20521
+ * Activator component that opens the popover.
20522
+ *
20523
+ * @see https://0.vuetifyjs.com/components/disclosure/popover
20524
+ *
20525
+ * @example
20526
+ * ```vue
20527
+ * <script lang="ts" setup>
20528
+ * import { Popover } from '@vuetify/v0'
20529
+ * <\/script>
20530
+ *
20531
+ * <template>
20532
+ * <Popover.Activator>
20533
+ * Click to toggle
20534
+ * </Popover.Activator>
20535
+ * </template>
20536
+ * ```
20537
+ */
20538
+ Activator: _sfc_main$94,
20539
+ /**
20540
+ * Component for the content section of a popover.
20541
+ *
20542
+ * @see https://0.vuetifyjs.com/components/disclosure/popover
20543
+ *
20544
+ * @example
20545
+ * ```vue
20546
+ * <script lang="ts" setup>
20547
+ * import { Popover } from '@vuetify/v0'
20548
+ * <\/script>
20549
+ *
20550
+ * <template>
20551
+ * <Popover.Content>
20552
+ * Popover content goes here.
20553
+ * </Popover.Content>
20554
+ * </template>
20555
+ * ```
20556
+ */
20557
+ Content: _sfc_main$95
18392
20558
  };
18393
20559
  //#endregion
18394
20560
  //#region src/components/Portal/Portal.vue
@@ -18404,7 +20570,7 @@ const Popover = {
18404
20570
  * Standardizes the teleport + stack registration pattern used by
18405
20571
  * overlay components (Snackbar, Toast, Dialog, etc.).
18406
20572
  */
18407
- const _sfc_main$94 = /* @__PURE__ */ defineComponent({
20573
+ const _sfc_main$97 = /* @__PURE__ */ defineComponent({
18408
20574
  name: "Portal",
18409
20575
  __name: "Portal",
18410
20576
  props: {
@@ -18461,7 +20627,7 @@ const _sfc_main$94 = /* @__PURE__ */ defineComponent({
18461
20627
  * - Lifecycle events: `enter`, `leave`, `after-leave`
18462
20628
  * - Animation-agnostic: works with CSS, WAAPI, GSAP, or nothing
18463
20629
  */
18464
- const _sfc_main$95 = /* @__PURE__ */ defineComponent({
20630
+ const _sfc_main$98 = /* @__PURE__ */ defineComponent({
18465
20631
  name: "Presence",
18466
20632
  __name: "Presence",
18467
20633
  props: /* @__PURE__ */ mergeModels({
@@ -18521,7 +20687,7 @@ const _sfc_main$95 = /* @__PURE__ */ defineComponent({
18521
20687
  //#endregion
18522
20688
  //#region src/components/Progress/ProgressHiddenInput.vue
18523
20689
  const _hoisted_1$5 = ["name", "value"];
18524
- const _sfc_main$98 = /* @__PURE__ */ defineComponent({
20690
+ const _sfc_main$101 = /* @__PURE__ */ defineComponent({
18525
20691
  name: "ProgressHiddenInput",
18526
20692
  __name: "ProgressHiddenInput",
18527
20693
  props: { namespace: { default: "v0:progress:root" } },
@@ -18541,7 +20707,7 @@ const _sfc_main$98 = /* @__PURE__ */ defineComponent({
18541
20707
  //#endregion
18542
20708
  //#region src/components/Progress/ProgressRoot.vue
18543
20709
  const [useProgressRoot, provideProgressRoot] = createContext();
18544
- const _sfc_main$100 = /* @__PURE__ */ defineComponent({
20710
+ const _sfc_main$103 = /* @__PURE__ */ defineComponent({
18545
20711
  name: "ProgressRoot",
18546
20712
  inheritAttrs: false,
18547
20713
  __name: "ProgressRoot",
@@ -18616,13 +20782,13 @@ const _sfc_main$100 = /* @__PURE__ */ defineComponent({
18616
20782
  }), {
18617
20783
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
18618
20784
  _: 3
18619
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$98, { key: 0 })) : createCommentVNode("v-if", true)], 64);
20785
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$101, { key: 0 })) : createCommentVNode("v-if", true)], 64);
18620
20786
  };
18621
20787
  }
18622
20788
  });
18623
20789
  //#endregion
18624
20790
  //#region src/components/Progress/ProgressBuffer.vue
18625
- const _sfc_main$96 = /* @__PURE__ */ defineComponent({
20791
+ const _sfc_main$99 = /* @__PURE__ */ defineComponent({
18626
20792
  name: "ProgressBuffer",
18627
20793
  inheritAttrs: false,
18628
20794
  __name: "ProgressBuffer",
@@ -18668,7 +20834,7 @@ const _sfc_main$96 = /* @__PURE__ */ defineComponent({
18668
20834
  });
18669
20835
  //#endregion
18670
20836
  //#region src/components/Progress/ProgressFill.vue
18671
- const _sfc_main$97 = /* @__PURE__ */ defineComponent({
20837
+ const _sfc_main$100 = /* @__PURE__ */ defineComponent({
18672
20838
  name: "ProgressFill",
18673
20839
  inheritAttrs: false,
18674
20840
  __name: "ProgressFill",
@@ -18715,7 +20881,7 @@ const _sfc_main$97 = /* @__PURE__ */ defineComponent({
18715
20881
  });
18716
20882
  //#endregion
18717
20883
  //#region src/components/Progress/ProgressLabel.vue
18718
- const _sfc_main$99 = /* @__PURE__ */ defineComponent({
20884
+ const _sfc_main$102 = /* @__PURE__ */ defineComponent({
18719
20885
  name: "ProgressLabel",
18720
20886
  inheritAttrs: false,
18721
20887
  __name: "ProgressLabel",
@@ -18746,7 +20912,7 @@ const _sfc_main$99 = /* @__PURE__ */ defineComponent({
18746
20912
  });
18747
20913
  //#endregion
18748
20914
  //#region src/components/Progress/ProgressTrack.vue
18749
- const _sfc_main$101 = /* @__PURE__ */ defineComponent({
20915
+ const _sfc_main$104 = /* @__PURE__ */ defineComponent({
18750
20916
  name: "ProgressTrack",
18751
20917
  inheritAttrs: false,
18752
20918
  __name: "ProgressTrack",
@@ -18772,7 +20938,7 @@ const _sfc_main$101 = /* @__PURE__ */ defineComponent({
18772
20938
  });
18773
20939
  //#endregion
18774
20940
  //#region src/components/Progress/ProgressValue.vue
18775
- const _sfc_main$102 = /* @__PURE__ */ defineComponent({
20941
+ const _sfc_main$105 = /* @__PURE__ */ defineComponent({
18776
20942
  name: "ProgressValue",
18777
20943
  inheritAttrs: false,
18778
20944
  __name: "ProgressValue",
@@ -18835,18 +21001,183 @@ const _sfc_main$102 = /* @__PURE__ */ defineComponent({
18835
21001
  * ```
18836
21002
  */
18837
21003
  const Progress = {
18838
- Root: _sfc_main$100,
18839
- Track: _sfc_main$101,
18840
- Fill: _sfc_main$97,
18841
- Buffer: _sfc_main$96,
18842
- Value: _sfc_main$102,
18843
- Label: _sfc_main$99,
18844
- HiddenInput: _sfc_main$98
21004
+ /**
21005
+ * Root component for progress indicators.
21006
+ *
21007
+ * Creates progress context, provides it to child components, and
21008
+ * bridges v-model. Manages value clamping, percentage calculation,
21009
+ * and ARIA attributes. Supports determinate, indeterminate, and
21010
+ * buffer modes. When `name` prop is provided, automatically renders
21011
+ * a hidden input for form submission.
21012
+ *
21013
+ * @see https://0.vuetifyjs.com/components/progress
21014
+ *
21015
+ * @example
21016
+ * ```vue
21017
+ * <script setup lang="ts">
21018
+ * import { Progress } from '@vuetify/v0'
21019
+ * import { shallowRef } from 'vue'
21020
+ *
21021
+ * const value = shallowRef(60)
21022
+ * <\/script>
21023
+ *
21024
+ * <template>
21025
+ * <Progress.Root :model-value="value" :max="100">
21026
+ * <Progress.Track>
21027
+ * <Progress.Fill />
21028
+ * </Progress.Track>
21029
+ * </Progress.Root>
21030
+ * </template>
21031
+ * ```
21032
+ */
21033
+ Root: _sfc_main$103,
21034
+ /**
21035
+ * Track container for the progress bar.
21036
+ *
21037
+ * Renders the background track that contains the fill and buffer
21038
+ * elements. Supports segmented mode via the `segments` prop on Root.
21039
+ * Exposes segment data through its slot for custom rendering.
21040
+ *
21041
+ * @see https://0.vuetifyjs.com/components/progress#anatomy
21042
+ *
21043
+ * @example
21044
+ * ```vue
21045
+ * <script setup lang="ts">
21046
+ * import { Progress } from '@vuetify/v0'
21047
+ * <\/script>
21048
+ *
21049
+ * <template>
21050
+ * <Progress.Track>
21051
+ * <Progress.Fill />
21052
+ * </Progress.Track>
21053
+ * </template>
21054
+ * ```
21055
+ */
21056
+ Track: _sfc_main$104,
21057
+ /**
21058
+ * Fill element representing the current progress value.
21059
+ *
21060
+ * Renders inside the Track and sizes itself to reflect the current
21061
+ * percentage. Applies `--v0-progress-fill` CSS variable for styling.
21062
+ * In indeterminate mode, omits inline sizing to allow CSS animations.
21063
+ *
21064
+ * @see https://0.vuetifyjs.com/components/progress#anatomy
21065
+ *
21066
+ * @example
21067
+ * ```vue
21068
+ * <script setup lang="ts">
21069
+ * import { Progress } from '@vuetify/v0'
21070
+ * <\/script>
21071
+ *
21072
+ * <template>
21073
+ * <Progress.Fill class="bg-blue-500 h-full transition-all" />
21074
+ * </template>
21075
+ * ```
21076
+ */
21077
+ Fill: _sfc_main$100,
21078
+ /**
21079
+ * Buffer indicator for streaming or loading progress.
21080
+ *
21081
+ * Renders a secondary fill representing buffered content ahead of
21082
+ * the primary progress. Applies `--v0-progress-buffer` CSS variable
21083
+ * for styling. Useful for media players and file uploads.
21084
+ *
21085
+ * @see https://0.vuetifyjs.com/components/progress#buffer
21086
+ *
21087
+ * @example
21088
+ * ```vue
21089
+ * <script setup lang="ts">
21090
+ * import { Progress } from '@vuetify/v0'
21091
+ * <\/script>
21092
+ *
21093
+ * <template>
21094
+ * <Progress.Track>
21095
+ * <Progress.Buffer class="bg-blue-200 h-full" />
21096
+ * <Progress.Fill class="bg-blue-500 h-full" />
21097
+ * </Progress.Track>
21098
+ * </template>
21099
+ * ```
21100
+ */
21101
+ Buffer: _sfc_main$99,
21102
+ /**
21103
+ * Text display for the current progress value.
21104
+ *
21105
+ * Renders the formatted progress value as text. Uses the `format`
21106
+ * function from Root context if provided, otherwise displays the
21107
+ * raw percentage. Supports custom formatting via the default slot.
21108
+ *
21109
+ * @see https://0.vuetifyjs.com/components/progress#value-display
21110
+ *
21111
+ * @example
21112
+ * ```vue
21113
+ * <script setup lang="ts">
21114
+ * import { Progress } from '@vuetify/v0'
21115
+ * <\/script>
21116
+ *
21117
+ * <template>
21118
+ * <Progress.Value v-slot="{ percent }">
21119
+ * {{ Math.round(percent) }}%
21120
+ * </Progress.Value>
21121
+ * </template>
21122
+ * ```
21123
+ */
21124
+ Value: _sfc_main$105,
21125
+ /**
21126
+ * Accessible label for the progress indicator.
21127
+ *
21128
+ * Associates a visible label with the progress Root via `aria-labelledby`.
21129
+ * Renders as a `<label>` element by default. Exposes progress state
21130
+ * through its slot for dynamic label content.
21131
+ *
21132
+ * @see https://0.vuetifyjs.com/components/progress#accessibility
21133
+ *
21134
+ * @example
21135
+ * ```vue
21136
+ * <script setup lang="ts">
21137
+ * import { Progress } from '@vuetify/v0'
21138
+ * <\/script>
21139
+ *
21140
+ * <template>
21141
+ * <Progress.Label>Loading...</Progress.Label>
21142
+ * </template>
21143
+ * ```
21144
+ */
21145
+ Label: _sfc_main$102,
21146
+ /**
21147
+ * Hidden native input for form submission.
21148
+ *
21149
+ * Auto-rendered by Root when the `name` prop is provided. Submits
21150
+ * the current numeric progress value as part of the form. Can also
21151
+ * be used explicitly for custom form integration scenarios where
21152
+ * you need manual control over the hidden input placement.
21153
+ *
21154
+ * @see https://0.vuetifyjs.com/components/progress#form-integration
21155
+ * @internal
21156
+ *
21157
+ * @example
21158
+ * ```vue
21159
+ * <script setup lang="ts">
21160
+ * import { Progress } from '@vuetify/v0'
21161
+ * import { shallowRef } from 'vue'
21162
+ *
21163
+ * const value = shallowRef(75)
21164
+ * <\/script>
21165
+ *
21166
+ * <template>
21167
+ * <Progress.Root :model-value="value" name="upload-progress">
21168
+ * <Progress.Track>
21169
+ * <Progress.Fill />
21170
+ * </Progress.Track>
21171
+ * </Progress.Root>
21172
+ * </template>
21173
+ * ```
21174
+ */
21175
+ HiddenInput: _sfc_main$101
18845
21176
  };
18846
21177
  //#endregion
18847
21178
  //#region src/components/Radio/RadioGroup.vue
18848
21179
  const [useRadioGroup, provideRadioGroup] = createContext();
18849
- const _sfc_main$103 = /* @__PURE__ */ defineComponent({
21180
+ const _sfc_main$106 = /* @__PURE__ */ defineComponent({
18850
21181
  name: "RadioGroup",
18851
21182
  __name: "RadioGroup",
18852
21183
  props: /* @__PURE__ */ mergeModels({
@@ -18911,7 +21242,7 @@ const _sfc_main$103 = /* @__PURE__ */ defineComponent({
18911
21242
  //#endregion
18912
21243
  //#region src/components/Radio/RadioRoot.vue
18913
21244
  const [useRadioRoot, provideRadioRoot] = createContext();
18914
- const _sfc_main$106 = /* @__PURE__ */ defineComponent({
21245
+ const _sfc_main$109 = /* @__PURE__ */ defineComponent({
18915
21246
  name: "RadioRoot",
18916
21247
  inheritAttrs: false,
18917
21248
  __name: "RadioRoot",
@@ -18935,7 +21266,7 @@ const _sfc_main$106 = /* @__PURE__ */ defineComponent({
18935
21266
  const rootRef = useTemplateRef("root");
18936
21267
  const group = useRadioGroup(__props.groupNamespace);
18937
21268
  const name = __props.name ?? group.name;
18938
- const el = toRef(() => rootRef.value?.element ?? void 0);
21269
+ const el = toRef(() => /* @__PURE__ */ toElement(rootRef.value?.element) ?? void 0);
18939
21270
  const ticket = group.register({
18940
21271
  id: __props.id,
18941
21272
  value: __props.value,
@@ -19009,7 +21340,7 @@ const _sfc_main$106 = /* @__PURE__ */ defineComponent({
19009
21340
  "type": __props.as === "button" ? "button" : void 0,
19010
21341
  "role": "radio",
19011
21342
  "aria-checked": isChecked.value,
19012
- "aria-disabled": isDisabled.value || void 0,
21343
+ "aria-disabled": isDisabled.value,
19013
21344
  "aria-label": __props.label || void 0,
19014
21345
  "aria-labelledby": __props.ariaLabelledby || void 0,
19015
21346
  "aria-describedby": __props.ariaDescribedby || void 0,
@@ -19029,7 +21360,7 @@ const _sfc_main$106 = /* @__PURE__ */ defineComponent({
19029
21360
  }), {
19030
21361
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19031
21362
  _: 3
19032
- }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$104, { key: 0 })) : createCommentVNode("v-if", true)], 64);
21363
+ }, 16, ["as", "renderless"]), unref(name) ? (openBlock(), createBlock(_sfc_main$107, { key: 0 })) : createCommentVNode("v-if", true)], 64);
19033
21364
  };
19034
21365
  }
19035
21366
  });
@@ -19053,7 +21384,7 @@ const visuallyHiddenStyle$2 = {
19053
21384
  whiteSpace: "nowrap",
19054
21385
  border: "0"
19055
21386
  };
19056
- const _sfc_main$104 = /* @__PURE__ */ defineComponent({
21387
+ const _sfc_main$107 = /* @__PURE__ */ defineComponent({
19057
21388
  name: "RadioHiddenInput",
19058
21389
  __name: "RadioHiddenInput",
19059
21390
  props: {
@@ -19090,7 +21421,7 @@ const _sfc_main$104 = /* @__PURE__ */ defineComponent({
19090
21421
  });
19091
21422
  //#endregion
19092
21423
  //#region src/components/Radio/RadioIndicator.vue
19093
- const _sfc_main$105 = /* @__PURE__ */ defineComponent({
21424
+ const _sfc_main$108 = /* @__PURE__ */ defineComponent({
19094
21425
  name: "RadioIndicator",
19095
21426
  __name: "RadioIndicator",
19096
21427
  props: {
@@ -19155,15 +21486,120 @@ const _sfc_main$105 = /* @__PURE__ */ defineComponent({
19155
21486
  * ```
19156
21487
  */
19157
21488
  const Radio = {
19158
- Group: _sfc_main$103,
19159
- HiddenInput: _sfc_main$104,
19160
- Indicator: _sfc_main$105,
19161
- Root: _sfc_main$106
21489
+ /**
21490
+ * Group component for managing radio buttons with single-selection.
21491
+ *
21492
+ * @see https://0.vuetifyjs.com/components/forms/radio
21493
+ *
21494
+ * @example
21495
+ * ```vue
21496
+ * <script setup lang="ts">
21497
+ * import { Radio } from '@vuetify/v0'
21498
+ * import { ref } from 'vue'
21499
+ *
21500
+ * const selected = ref<string>()
21501
+ * <\/script>
21502
+ *
21503
+ * <template>
21504
+ * <Radio.Group v-model="selected" mandatory>
21505
+ * <Radio.Root value="a">
21506
+ * <Radio.Indicator>●</Radio.Indicator>
21507
+ * Option A
21508
+ * </Radio.Root>
21509
+ * <Radio.Root value="b">
21510
+ * <Radio.Indicator>●</Radio.Indicator>
21511
+ * Option B
21512
+ * </Radio.Root>
21513
+ * </Radio.Group>
21514
+ * </template>
21515
+ * ```
21516
+ */
21517
+ Group: _sfc_main$106,
21518
+ /**
21519
+ * Hidden input component for form submission.
21520
+ *
21521
+ * Auto-rendered by Root when Group has a `name` prop.
21522
+ * Can also be used explicitly for custom form integration.
21523
+ *
21524
+ * @see https://0.vuetifyjs.com/components/forms/radio
21525
+ *
21526
+ * @example
21527
+ * ```vue
21528
+ * <script setup lang="ts">
21529
+ * import { Radio } from '@vuetify/v0'
21530
+ * <\/script>
21531
+ *
21532
+ * <template>
21533
+ * <Radio.Group v-model="selected">
21534
+ * <Radio.Root value="yes">
21535
+ * <Radio.Indicator>●</Radio.Indicator>
21536
+ * <Radio.HiddenInput name="choice" />
21537
+ * </Radio.Root>
21538
+ * </Radio.Group>
21539
+ * </template>
21540
+ * ```
21541
+ */
21542
+ HiddenInput: _sfc_main$107,
21543
+ /**
21544
+ * Visual indicator component for radio buttons.
21545
+ *
21546
+ * Renders as a span and only displays when checked.
21547
+ * Must be used within a Radio.Root component.
21548
+ *
21549
+ * @see https://0.vuetifyjs.com/components/forms/radio
21550
+ *
21551
+ * @example
21552
+ * ```vue
21553
+ * <script setup lang="ts">
21554
+ * import { Radio } from '@vuetify/v0'
21555
+ * <\/script>
21556
+ *
21557
+ * <template>
21558
+ * <Radio.Group v-model="selected">
21559
+ * <Radio.Root value="a">
21560
+ * <Radio.Indicator>
21561
+ * <svg viewBox="0 0 24 24">
21562
+ * <circle cx="12" cy="12" r="6" />
21563
+ * </svg>
21564
+ * </Radio.Indicator>
21565
+ * </Radio.Root>
21566
+ * </Radio.Group>
21567
+ * </template>
21568
+ * ```
21569
+ */
21570
+ Indicator: _sfc_main$108,
21571
+ /**
21572
+ * Root component for individual radio buttons.
21573
+ *
21574
+ * Must be used within a Radio.Group. Renders as a button with proper
21575
+ * ARIA attributes and handles click/keyboard interactions. When the
21576
+ * group has a `name` prop, automatically renders a hidden input for
21577
+ * form submission.
21578
+ *
21579
+ * @see https://0.vuetifyjs.com/components/forms/radio
21580
+ *
21581
+ * @example
21582
+ * ```vue
21583
+ * <script setup lang="ts">
21584
+ * import { Radio } from '@vuetify/v0'
21585
+ * <\/script>
21586
+ *
21587
+ * <template>
21588
+ * <Radio.Group v-model="selected">
21589
+ * <Radio.Root value="option1">
21590
+ * <Radio.Indicator>●</Radio.Indicator>
21591
+ * Option 1
21592
+ * </Radio.Root>
21593
+ * </Radio.Group>
21594
+ * </template>
21595
+ * ```
21596
+ */
21597
+ Root: _sfc_main$109
19162
21598
  };
19163
21599
  //#endregion
19164
21600
  //#region src/components/Rating/RatingRoot.vue
19165
21601
  const [useRatingRoot, provideRatingRoot] = createContext();
19166
- const _sfc_main$109 = /* @__PURE__ */ defineComponent({
21602
+ const _sfc_main$112 = /* @__PURE__ */ defineComponent({
19167
21603
  name: "RatingRoot",
19168
21604
  inheritAttrs: false,
19169
21605
  __name: "RatingRoot",
@@ -19256,7 +21692,7 @@ const _sfc_main$109 = /* @__PURE__ */ defineComponent({
19256
21692
  }), {
19257
21693
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19258
21694
  _: 3
19259
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$107, { key: 0 })) : createCommentVNode("v-if", true)], 64);
21695
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$110, { key: 0 })) : createCommentVNode("v-if", true)], 64);
19260
21696
  };
19261
21697
  }
19262
21698
  });
@@ -19267,7 +21703,7 @@ const _hoisted_1$3 = [
19267
21703
  "name",
19268
21704
  "value"
19269
21705
  ];
19270
- const _sfc_main$107 = /* @__PURE__ */ defineComponent({
21706
+ const _sfc_main$110 = /* @__PURE__ */ defineComponent({
19271
21707
  name: "RatingHiddenInput",
19272
21708
  __name: "RatingHiddenInput",
19273
21709
  props: { namespace: { default: "v0:rating:root" } },
@@ -19288,7 +21724,7 @@ const _sfc_main$107 = /* @__PURE__ */ defineComponent({
19288
21724
  });
19289
21725
  //#endregion
19290
21726
  //#region src/components/Rating/RatingItem.vue
19291
- const _sfc_main$108 = /* @__PURE__ */ defineComponent({
21727
+ const _sfc_main$111 = /* @__PURE__ */ defineComponent({
19292
21728
  name: "RatingItem",
19293
21729
  inheritAttrs: false,
19294
21730
  __name: "RatingItem",
@@ -19388,13 +21824,113 @@ const _sfc_main$108 = /* @__PURE__ */ defineComponent({
19388
21824
  * ```
19389
21825
  */
19390
21826
  const Rating = {
19391
- Root: _sfc_main$109,
19392
- Item: _sfc_main$108,
19393
- HiddenInput: _sfc_main$107
21827
+ /**
21828
+ * Root component for ratings.
21829
+ *
21830
+ * Creates rating context, provides it to child components, and
21831
+ * bridges v-model. Handles hover tracking, keyboard navigation,
21832
+ * and ARIA attributes. When `name` prop is provided, automatically
21833
+ * renders a hidden input for form submission. Supports both whole
21834
+ * and half-star modes via the `half` prop.
21835
+ *
21836
+ * @see https://0.vuetifyjs.com/components/forms/rating
21837
+ *
21838
+ * @example
21839
+ * ```vue
21840
+ * <script setup lang="ts">
21841
+ * import { Rating } from '@vuetify/v0'
21842
+ * import { shallowRef } from 'vue'
21843
+ *
21844
+ * const rating = shallowRef(0)
21845
+ * <\/script>
21846
+ *
21847
+ * <template>
21848
+ * <Rating.Root v-model="rating" :size="5">
21849
+ * <Rating.Item
21850
+ * v-for="i in 5"
21851
+ * :key="i"
21852
+ * :index="i"
21853
+ * as="button"
21854
+ * v-slot="{ state }"
21855
+ * >
21856
+ * {{ state === 'full' ? '★' : '☆' }}
21857
+ * </Rating.Item>
21858
+ * </Rating.Root>
21859
+ * </template>
21860
+ * ```
21861
+ */
21862
+ Root: _sfc_main$112,
21863
+ /**
21864
+ * Individual rating item (star/icon).
21865
+ *
21866
+ * Consumes Rating context and computes its visual state from the
21867
+ * current or hovered value. Exposes state via data attributes
21868
+ * (`data-state`, `data-highlighted`) for CSS-only styling. Handles
21869
+ * pointer events for hover preview and click to commit. When half
21870
+ * mode is active, detects left/right half of the element for
21871
+ * half-star hover precision.
21872
+ *
21873
+ * @see https://0.vuetifyjs.com/components/forms/rating#anatomy
21874
+ *
21875
+ * @example
21876
+ * ```vue
21877
+ * <script setup lang="ts">
21878
+ * import { Rating } from '@vuetify/v0'
21879
+ * <\/script>
21880
+ *
21881
+ * <template>
21882
+ * <Rating.Item
21883
+ * :index="1"
21884
+ * as="button"
21885
+ * class="[&[data-state=full]]:text-amber-500 [&[data-state=empty]]:text-gray-300"
21886
+ * v-slot="{ state }"
21887
+ * >
21888
+ * {{ state === 'full' ? '★' : state === 'half' ? '⯨' : '☆' }}
21889
+ * </Rating.Item>
21890
+ * </template>
21891
+ * ```
21892
+ */
21893
+ Item: _sfc_main$111,
21894
+ /**
21895
+ * Hidden native input for form submission.
21896
+ *
21897
+ * Auto-rendered by Root when the `name` prop is provided. Submits
21898
+ * the current numeric rating value as part of the form. Can also
21899
+ * be used explicitly for custom form integration scenarios where
21900
+ * you need manual control over the hidden input placement.
21901
+ *
21902
+ * @see https://0.vuetifyjs.com/components/forms/rating
21903
+ * @internal
21904
+ *
21905
+ * @example
21906
+ * ```vue
21907
+ * <script setup lang="ts">
21908
+ * import { Rating } from '@vuetify/v0'
21909
+ * import { shallowRef } from 'vue'
21910
+ *
21911
+ * const rating = shallowRef(3)
21912
+ * <\/script>
21913
+ *
21914
+ * <template>
21915
+ * <Rating.Root v-model="rating" name="review-rating">
21916
+ * <Rating.Item
21917
+ * v-for="i in 5"
21918
+ * :key="i"
21919
+ * :index="i"
21920
+ * as="button"
21921
+ * v-slot="{ state }"
21922
+ * >
21923
+ * {{ state === 'full' ? '★' : '☆' }}
21924
+ * </Rating.Item>
21925
+ * </Rating.Root>
21926
+ * </template>
21927
+ * ```
21928
+ */
21929
+ HiddenInput: _sfc_main$110
19394
21930
  };
19395
21931
  //#endregion
19396
21932
  //#region src/components/Scrim/Scrim.vue
19397
- const _sfc_main$110 = /* @__PURE__ */ defineComponent({
21933
+ const _sfc_main$113 = /* @__PURE__ */ defineComponent({
19398
21934
  name: "Scrim",
19399
21935
  inheritAttrs: false,
19400
21936
  __name: "Scrim",
@@ -19488,7 +22024,7 @@ const visuallyHiddenStyle$1 = {
19488
22024
  whiteSpace: "nowrap",
19489
22025
  border: "0"
19490
22026
  };
19491
- const _sfc_main$161 = /* @__PURE__ */ defineComponent({
22027
+ const _sfc_main$164 = /* @__PURE__ */ defineComponent({
19492
22028
  name: "SelectHiddenInput",
19493
22029
  __name: "SelectHiddenInput",
19494
22030
  props: { namespace: { default: "v0:select" } },
@@ -19522,7 +22058,7 @@ const _sfc_main$161 = /* @__PURE__ */ defineComponent({
19522
22058
  //#endregion
19523
22059
  //#region src/components/Select/SelectRoot.vue
19524
22060
  const [useSelectContext, provideSelectContext] = createContext();
19525
- const _sfc_main$116 = /* @__PURE__ */ defineComponent({
22061
+ const _sfc_main$119 = /* @__PURE__ */ defineComponent({
19526
22062
  name: "SelectRoot",
19527
22063
  __name: "SelectRoot",
19528
22064
  props: /* @__PURE__ */ mergeModels({
@@ -19635,13 +22171,13 @@ const _sfc_main$116 = /* @__PURE__ */ defineComponent({
19635
22171
  }, {
19636
22172
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
19637
22173
  _: 3
19638
- }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$161, { key: 0 })) : createCommentVNode("v-if", true)], 64);
22174
+ }, 8, ["as"]), __props.name ? (openBlock(), createBlock(_sfc_main$164, { key: 0 })) : createCommentVNode("v-if", true)], 64);
19639
22175
  };
19640
22176
  }
19641
22177
  });
19642
22178
  //#endregion
19643
22179
  //#region src/components/Select/SelectActivator.vue
19644
- const _sfc_main$111 = /* @__PURE__ */ defineComponent({
22180
+ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
19645
22181
  name: "SelectActivator",
19646
22182
  __name: "SelectActivator",
19647
22183
  props: {
@@ -19719,7 +22255,7 @@ const _sfc_main$111 = /* @__PURE__ */ defineComponent({
19719
22255
  });
19720
22256
  //#endregion
19721
22257
  //#region src/components/Select/SelectContent.vue
19722
- const _sfc_main$112 = /* @__PURE__ */ defineComponent({
22258
+ const _sfc_main$115 = /* @__PURE__ */ defineComponent({
19723
22259
  name: "SelectContent",
19724
22260
  __name: "SelectContent",
19725
22261
  props: {
@@ -19763,7 +22299,7 @@ const _sfc_main$112 = /* @__PURE__ */ defineComponent({
19763
22299
  });
19764
22300
  //#endregion
19765
22301
  //#region src/components/Select/SelectCue.vue
19766
- const _sfc_main$113 = /* @__PURE__ */ defineComponent({
22302
+ const _sfc_main$116 = /* @__PURE__ */ defineComponent({
19767
22303
  name: "SelectCue",
19768
22304
  __name: "SelectCue",
19769
22305
  props: {
@@ -19790,7 +22326,7 @@ const _sfc_main$113 = /* @__PURE__ */ defineComponent({
19790
22326
  });
19791
22327
  //#endregion
19792
22328
  //#region src/components/Select/SelectItem.vue
19793
- const _sfc_main$114 = /* @__PURE__ */ defineComponent({
22329
+ const _sfc_main$117 = /* @__PURE__ */ defineComponent({
19794
22330
  name: "SelectItem",
19795
22331
  __name: "SelectItem",
19796
22332
  props: {
@@ -19828,7 +22364,7 @@ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
19828
22364
  "id": elementId,
19829
22365
  "role": "option",
19830
22366
  "aria-selected": isSelected.value,
19831
- "aria-disabled": isDisabled.value || void 0,
22367
+ "aria-disabled": isDisabled.value,
19832
22368
  "data-selected": isSelected.value || void 0,
19833
22369
  "data-highlighted": isHighlighted.value ? "" : void 0,
19834
22370
  "data-disabled": isDisabled.value || void 0,
@@ -19845,7 +22381,7 @@ const _sfc_main$114 = /* @__PURE__ */ defineComponent({
19845
22381
  });
19846
22382
  //#endregion
19847
22383
  //#region src/components/Select/SelectPlaceholder.vue
19848
- const _sfc_main$115 = /* @__PURE__ */ defineComponent({
22384
+ const _sfc_main$118 = /* @__PURE__ */ defineComponent({
19849
22385
  name: "SelectPlaceholder",
19850
22386
  __name: "SelectPlaceholder",
19851
22387
  props: {
@@ -19869,7 +22405,7 @@ const _sfc_main$115 = /* @__PURE__ */ defineComponent({
19869
22405
  });
19870
22406
  //#endregion
19871
22407
  //#region src/components/Select/SelectValue.vue
19872
- const _sfc_main$117 = /* @__PURE__ */ defineComponent({
22408
+ const _sfc_main$120 = /* @__PURE__ */ defineComponent({
19873
22409
  name: "SelectValue",
19874
22410
  __name: "SelectValue",
19875
22411
  props: {
@@ -19956,18 +22492,149 @@ const _sfc_main$117 = /* @__PURE__ */ defineComponent({
19956
22492
  * ```
19957
22493
  */
19958
22494
  const Select = {
19959
- Root: _sfc_main$116,
19960
- Activator: _sfc_main$111,
19961
- Value: _sfc_main$117,
19962
- Content: _sfc_main$112,
19963
- Cue: _sfc_main$113,
19964
- Item: _sfc_main$114,
19965
- Placeholder: _sfc_main$115
22495
+ /**
22496
+ * Root component for selects. Creates selection, virtual focus, and popover contexts.
22497
+ *
22498
+ * @see https://0.vuetifyjs.com/components/forms/select
22499
+ *
22500
+ * @example
22501
+ * ```vue
22502
+ * <script lang="ts" setup>
22503
+ * import { Select } from '@vuetify/v0'
22504
+ * import { ref } from 'vue'
22505
+ *
22506
+ * const selected = ref()
22507
+ * <\/script>
22508
+ *
22509
+ * <template>
22510
+ * <Select.Root v-model="selected">
22511
+ * <Select.Activator>
22512
+ * <Select.Value />
22513
+ * <Select.Placeholder>Choose...</Select.Placeholder>
22514
+ * </Select.Activator>
22515
+ * <Select.Content>
22516
+ * <Select.Item id="a" value="A">Option A</Select.Item>
22517
+ * </Select.Content>
22518
+ * </Select.Root>
22519
+ * </template>
22520
+ * ```
22521
+ */
22522
+ Root: _sfc_main$119,
22523
+ /**
22524
+ * Activator button that opens the select dropdown.
22525
+ *
22526
+ * @see https://0.vuetifyjs.com/components/forms/select
22527
+ *
22528
+ * @example
22529
+ * ```vue
22530
+ * <script lang="ts" setup>
22531
+ * import { Select } from '@vuetify/v0'
22532
+ * <\/script>
22533
+ *
22534
+ * <template>
22535
+ * <Select.Activator>
22536
+ * Click to open
22537
+ * </Select.Activator>
22538
+ * </template>
22539
+ * ```
22540
+ */
22541
+ Activator: _sfc_main$114,
22542
+ /**
22543
+ * Display component for the selected value. Slot-based — consumers provide rendering.
22544
+ *
22545
+ * @see https://0.vuetifyjs.com/components/forms/select
22546
+ *
22547
+ * @example
22548
+ * ```vue
22549
+ * <script lang="ts" setup>
22550
+ * import { Select } from '@vuetify/v0'
22551
+ * <\/script>
22552
+ *
22553
+ * <template>
22554
+ * <Select.Value v-slot="{ selectedValue }">
22555
+ * {{ selectedValue }}
22556
+ * </Select.Value>
22557
+ * <Select.Placeholder>Pick one</Select.Placeholder>
22558
+ * </template>
22559
+ * ```
22560
+ */
22561
+ Value: _sfc_main$120,
22562
+ /**
22563
+ * Dropdown content container using native popover API with CSS anchor positioning.
22564
+ *
22565
+ * @see https://0.vuetifyjs.com/components/forms/select
22566
+ *
22567
+ * @example
22568
+ * ```vue
22569
+ * <script lang="ts" setup>
22570
+ * import { Select } from '@vuetify/v0'
22571
+ * <\/script>
22572
+ *
22573
+ * <template>
22574
+ * <Select.Content>
22575
+ * <Select.Item id="a" value="A">Option A</Select.Item>
22576
+ * <Select.Item id="b" value="B">Option B</Select.Item>
22577
+ * </Select.Content>
22578
+ * </template>
22579
+ * ```
22580
+ */
22581
+ Content: _sfc_main$115,
22582
+ /**
22583
+ * Visual cue for open/close state. Exposes `data-state="open|closed"` for CSS-driven styling.
22584
+ *
22585
+ * @see https://0.vuetifyjs.com/components/forms/select
22586
+ *
22587
+ * @example
22588
+ * ```vue
22589
+ * <Select.Activator>
22590
+ * <Select.Value />
22591
+ * <Select.Placeholder>Choose...</Select.Placeholder>
22592
+ * <Select.Cue v-slot="{ isOpen }">
22593
+ * {{ isOpen ? '▲' : '▼' }}
22594
+ * </Select.Cue>
22595
+ * </Select.Activator>
22596
+ * ```
22597
+ */
22598
+ Cue: _sfc_main$116,
22599
+ /**
22600
+ * Option item within the select dropdown. Registers with selection and virtual focus.
22601
+ *
22602
+ * @see https://0.vuetifyjs.com/components/forms/select
22603
+ *
22604
+ * @example
22605
+ * ```vue
22606
+ * <script lang="ts" setup>
22607
+ * import { Select } from '@vuetify/v0'
22608
+ * <\/script>
22609
+ *
22610
+ * <template>
22611
+ * <Select.Item id="apple" value="Apple" v-slot="{ isSelected, attrs }">
22612
+ * <div v-bind="attrs">Apple {{ isSelected ? '✓' : '' }}</div>
22613
+ * </Select.Item>
22614
+ * </template>
22615
+ * ```
22616
+ */
22617
+ Item: _sfc_main$117,
22618
+ /**
22619
+ * Placeholder text shown when no value is selected. Automatically hidden when a selection exists.
22620
+ *
22621
+ * @see https://0.vuetifyjs.com/components/forms/select
22622
+ *
22623
+ * @example
22624
+ * ```vue
22625
+ * <Select.Activator>
22626
+ * <Select.Value />
22627
+ * <Select.Placeholder>Choose an option…</Select.Placeholder>
22628
+ * <Select.Cue />
22629
+ * </Select.Activator>
22630
+ * ```
22631
+ */
22632
+ Placeholder: _sfc_main$118
19966
22633
  };
19967
22634
  //#endregion
19968
22635
  //#region src/components/Selection/SelectionRoot.vue
19969
22636
  const [useSelectionRoot, provideSelectionRoot] = createContext();
19970
- const _sfc_main$119 = /* @__PURE__ */ defineComponent({
22637
+ const _sfc_main$122 = /* @__PURE__ */ defineComponent({
19971
22638
  name: "SelectionRoot",
19972
22639
  __name: "SelectionRoot",
19973
22640
  props: /* @__PURE__ */ mergeModels({
@@ -20019,7 +22686,7 @@ const _sfc_main$119 = /* @__PURE__ */ defineComponent({
20019
22686
  });
20020
22687
  //#endregion
20021
22688
  //#region src/components/Selection/SelectionItem.vue
20022
- const _sfc_main$118 = /* @__PURE__ */ defineComponent({
22689
+ const _sfc_main$121 = /* @__PURE__ */ defineComponent({
20023
22690
  name: "SelectionItem",
20024
22691
  __name: "SelectionItem",
20025
22692
  props: {
@@ -20070,13 +22737,55 @@ const _sfc_main$118 = /* @__PURE__ */ defineComponent({
20070
22737
  * @see https://0.vuetifyjs.com/components/providers/selection
20071
22738
  */
20072
22739
  const Selection = {
20073
- Root: _sfc_main$119,
20074
- Item: _sfc_main$118
22740
+ /**
22741
+ * Root component for selection contexts.
22742
+ *
22743
+ * @see https://0.vuetifyjs.com/components/providers/selection
22744
+ *
22745
+ * @example
22746
+ * ```vue
22747
+ * <script lang="ts" setup>
22748
+ * import { Selection } from '@vuetify/v0'
22749
+ * <\/script>
22750
+ *
22751
+ * <template>
22752
+ * <Selection.Root v-model="selected" multiple>
22753
+ * <Selection.Item value="a" v-slot="{ attrs }">
22754
+ * <button v-bind="attrs">Option A</button>
22755
+ * </Selection.Item>
22756
+ *
22757
+ * <Selection.Item value="b" v-slot="{ attrs }">
22758
+ * <button v-bind="attrs">Option B</button>
22759
+ * </Selection.Item>
22760
+ * </Selection.Root>
22761
+ * </template>
22762
+ * ```
22763
+ */
22764
+ Root: _sfc_main$122,
22765
+ /**
22766
+ * Item component for selection contexts.
22767
+ *
22768
+ * @see https://0.vuetifyjs.com/components/providers/selection
22769
+ *
22770
+ * @example
22771
+ * ```vue
22772
+ * <script lang="ts" setup>
22773
+ * import { Selection } from '@vuetify/v0'
22774
+ * <\/script>
22775
+ *
22776
+ * <template>
22777
+ * <Selection.Item value="a" v-slot="{ attrs }">
22778
+ * <button v-bind="attrs">Option A</button>
22779
+ * </Selection.Item>
22780
+ * </template>
22781
+ * ```
22782
+ */
22783
+ Item: _sfc_main$121
20075
22784
  };
20076
22785
  //#endregion
20077
22786
  //#region src/components/Single/SingleRoot.vue
20078
22787
  const [useSingleRoot, provideSingleRoot] = createContext();
20079
- const _sfc_main$121 = /* @__PURE__ */ defineComponent({
22788
+ const _sfc_main$124 = /* @__PURE__ */ defineComponent({
20080
22789
  name: "SingleRoot",
20081
22790
  __name: "SingleRoot",
20082
22791
  props: /* @__PURE__ */ mergeModels({
@@ -20122,7 +22831,7 @@ const _sfc_main$121 = /* @__PURE__ */ defineComponent({
20122
22831
  });
20123
22832
  //#endregion
20124
22833
  //#region src/components/Single/SingleItem.vue
20125
- const _sfc_main$120 = /* @__PURE__ */ defineComponent({
22834
+ const _sfc_main$123 = /* @__PURE__ */ defineComponent({
20126
22835
  name: "SingleItem",
20127
22836
  __name: "SingleItem",
20128
22837
  props: {
@@ -20173,13 +22882,57 @@ const _sfc_main$120 = /* @__PURE__ */ defineComponent({
20173
22882
  * @see https://0.vuetifyjs.com/components/providers/single
20174
22883
  */
20175
22884
  const Single = {
20176
- Root: _sfc_main$121,
20177
- Item: _sfc_main$120
22885
+ /**
22886
+ * Root component for single-selection. Only one item can be selected at a time.
22887
+ *
22888
+ * @see https://0.vuetifyjs.com/components/providers/single
22889
+ *
22890
+ * @example
22891
+ * ```vue
22892
+ * <script lang="ts" setup>
22893
+ * import { Single } from '@vuetify/v0'
22894
+ * <\/script>
22895
+ *
22896
+ * <template>
22897
+ * <Single.Root v-model="selected">
22898
+ * <Single.Item value="option1">
22899
+ * Option 1
22900
+ * </Single.Item>
22901
+ *
22902
+ * <Single.Item value="option2">
22903
+ * Option 2
22904
+ * </Single.Item>
22905
+ * </Single.Root>
22906
+ * </template>
22907
+ * ```
22908
+ */
22909
+ Root: _sfc_main$124,
22910
+ /**
22911
+ * Component representing a selectable item within Single.Root.
22912
+ *
22913
+ * @see https://0.vuetifyjs.com/components/providers/single
22914
+ *
22915
+ * @example
22916
+ * ```vue
22917
+ * <script lang="ts" setup>
22918
+ * import { Single } from '@vuetify/v0'
22919
+ * <\/script>
22920
+ *
22921
+ * <template>
22922
+ * <Single.Item value="option1" #default="{ isSelected }">
22923
+ * <div :class="{ selected: isSelected }">
22924
+ * Option 1
22925
+ * </div>
22926
+ * </Single.Item>
22927
+ * </template>
22928
+ * ```
22929
+ */
22930
+ Item: _sfc_main$123
20178
22931
  };
20179
22932
  //#endregion
20180
22933
  //#region src/components/Slider/SliderRoot.vue
20181
22934
  const [useSliderRoot, provideSliderRoot] = createContext();
20182
- const _sfc_main$124 = /* @__PURE__ */ defineComponent({
22935
+ const _sfc_main$127 = /* @__PURE__ */ defineComponent({
20183
22936
  name: "SliderRoot",
20184
22937
  inheritAttrs: false,
20185
22938
  __name: "SliderRoot",
@@ -20316,7 +23069,7 @@ const _sfc_main$124 = /* @__PURE__ */ defineComponent({
20316
23069
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
20317
23070
  _: 3
20318
23071
  }, 16, ["as", "renderless"]), __props.name ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(slider).values.value, (_, index) => {
20319
- return openBlock(), createBlock(_sfc_main$122, {
23072
+ return openBlock(), createBlock(_sfc_main$125, {
20320
23073
  key: index,
20321
23074
  index
20322
23075
  }, null, 8, ["index"]);
@@ -20332,7 +23085,7 @@ const _hoisted_1$1 = [
20332
23085
  "name",
20333
23086
  "value"
20334
23087
  ];
20335
- const _sfc_main$122 = /* @__PURE__ */ defineComponent({
23088
+ const _sfc_main$125 = /* @__PURE__ */ defineComponent({
20336
23089
  name: "SliderHiddenInput",
20337
23090
  __name: "SliderHiddenInput",
20338
23091
  props: {
@@ -20357,7 +23110,7 @@ const _sfc_main$122 = /* @__PURE__ */ defineComponent({
20357
23110
  });
20358
23111
  //#endregion
20359
23112
  //#region src/components/Slider/SliderRange.vue
20360
- const _sfc_main$123 = /* @__PURE__ */ defineComponent({
23113
+ const _sfc_main$126 = /* @__PURE__ */ defineComponent({
20361
23114
  name: "SliderRange",
20362
23115
  inheritAttrs: false,
20363
23116
  __name: "SliderRange",
@@ -20415,7 +23168,7 @@ const _sfc_main$123 = /* @__PURE__ */ defineComponent({
20415
23168
  });
20416
23169
  //#endregion
20417
23170
  //#region src/components/Slider/SliderThumb.vue
20418
- const _sfc_main$125 = /* @__PURE__ */ defineComponent({
23171
+ const _sfc_main$128 = /* @__PURE__ */ defineComponent({
20419
23172
  name: "SliderThumb",
20420
23173
  inheritAttrs: false,
20421
23174
  __name: "SliderThumb",
@@ -20526,7 +23279,7 @@ const _sfc_main$125 = /* @__PURE__ */ defineComponent({
20526
23279
  });
20527
23280
  //#endregion
20528
23281
  //#region src/components/Slider/SliderTrack.vue
20529
- const _sfc_main$126 = /* @__PURE__ */ defineComponent({
23282
+ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
20530
23283
  name: "SliderTrack",
20531
23284
  inheritAttrs: false,
20532
23285
  __name: "SliderTrack",
@@ -20617,15 +23370,126 @@ const _sfc_main$126 = /* @__PURE__ */ defineComponent({
20617
23370
  * ```
20618
23371
  */
20619
23372
  const Slider = {
20620
- Root: _sfc_main$124,
20621
- Track: _sfc_main$126,
20622
- Range: _sfc_main$123,
20623
- Thumb: _sfc_main$125,
20624
- HiddenInput: _sfc_main$122
23373
+ /**
23374
+ * Root component for sliders.
23375
+ *
23376
+ * Creates slider context, provides it to child components, and
23377
+ * bridges v-model. Value is always `number[]`: single thumb = `[50]`,
23378
+ * range = `[25, 75]`. Configure min, max, step, and orientation via
23379
+ * props. When `name` prop is provided, automatically renders hidden
23380
+ * inputs for form submission.
23381
+ *
23382
+ * @see https://0.vuetifyjs.com/components/forms/slider
23383
+ *
23384
+ * @example
23385
+ * ```vue
23386
+ * <script setup lang="ts">
23387
+ * import { Slider } from '@vuetify/v0'
23388
+ * import { ref } from 'vue'
23389
+ *
23390
+ * const value = ref([50])
23391
+ * <\/script>
23392
+ *
23393
+ * <template>
23394
+ * <Slider.Root v-model="value" :min="0" :max="100">
23395
+ * <Slider.Track>
23396
+ * <Slider.Range />
23397
+ * </Slider.Track>
23398
+ * <Slider.Thumb />
23399
+ * </Slider.Root>
23400
+ * </template>
23401
+ * ```
23402
+ */
23403
+ Root: _sfc_main$127,
23404
+ /**
23405
+ * Track element that contains the Range and handles click-to-position.
23406
+ *
23407
+ * On pointerdown, calculates the value from pointer position, snaps
23408
+ * the nearest thumb to that value, and initiates drag. Must contain
23409
+ * Slider.Range as a child.
23410
+ *
23411
+ * @see https://0.vuetifyjs.com/components/forms/slider#anatomy
23412
+ *
23413
+ * @example
23414
+ * ```vue
23415
+ * <Slider.Track>
23416
+ * <Slider.Range />
23417
+ * </Slider.Track>
23418
+ * ```
23419
+ */
23420
+ Track: _sfc_main$129,
23421
+ /**
23422
+ * Filled region between thumb positions.
23423
+ *
23424
+ * For single-thumb sliders, fills from min to the thumb value.
23425
+ * For range sliders, fills between the lowest and highest thumb
23426
+ * values. Must be used within a Slider.Track component.
23427
+ *
23428
+ * @see https://0.vuetifyjs.com/components/forms/slider#anatomy
23429
+ *
23430
+ * @example
23431
+ * ```vue
23432
+ * <Slider.Track>
23433
+ * <Slider.Range />
23434
+ * </Slider.Track>
23435
+ * ```
23436
+ */
23437
+ Range: _sfc_main$126,
23438
+ /**
23439
+ * Draggable thumb control with keyboard navigation.
23440
+ *
23441
+ * Auto-registers with parent Root to receive its index. Supports
23442
+ * pointer drag and full keyboard navigation (Arrow, Page, Home/End).
23443
+ * Provides ARIA slider attributes including per-thumb constrained
23444
+ * valuemin/valuemax for multi-thumb sliders. Render multiple Thumbs
23445
+ * for range sliders.
23446
+ *
23447
+ * @see https://0.vuetifyjs.com/components/forms/slider#anatomy
23448
+ *
23449
+ * @example
23450
+ * ```vue
23451
+ * <Slider.Thumb />
23452
+ * ```
23453
+ */
23454
+ Thumb: _sfc_main$128,
23455
+ /**
23456
+ * Hidden native input for form submission.
23457
+ *
23458
+ * Auto-rendered by Root when `name` prop is provided — one input
23459
+ * per thumb value. Can also be used explicitly for custom form
23460
+ * integration.
23461
+ *
23462
+ * @see https://0.vuetifyjs.com/components/forms/slider#form-integration
23463
+ * @internal
23464
+ *
23465
+ * @example
23466
+ * ```vue
23467
+ * <script setup lang="ts">
23468
+ * import { Slider } from '@vuetify/v0'
23469
+ * import { ref } from 'vue'
23470
+ *
23471
+ * const value = ref([50])
23472
+ * <\/script>
23473
+ *
23474
+ * <template>
23475
+ * <!-- You don't need to do this — Root auto-renders hidden
23476
+ * inputs when the `name` prop is set. This is only needed
23477
+ * for custom form integration. -->
23478
+ * <Slider.Root v-model="value">
23479
+ * <Slider.Track>
23480
+ * <Slider.Range />
23481
+ * </Slider.Track>
23482
+ * <Slider.Thumb />
23483
+ * <Slider.HiddenInput name="volume" :index="0" />
23484
+ * </Slider.Root>
23485
+ * </template>
23486
+ * ```
23487
+ */
23488
+ HiddenInput: _sfc_main$125
20625
23489
  };
20626
23490
  //#endregion
20627
23491
  //#region src/components/Snackbar/SnackbarPortal.vue
20628
- const _sfc_main$129 = /* @__PURE__ */ defineComponent({
23492
+ const _sfc_main$132 = /* @__PURE__ */ defineComponent({
20629
23493
  name: "SnackbarPortal",
20630
23494
  inheritAttrs: false,
20631
23495
  __name: "SnackbarPortal",
@@ -20639,7 +23503,7 @@ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
20639
23503
  },
20640
23504
  setup(__props) {
20641
23505
  return (_ctx, _cache) => {
20642
- return openBlock(), createBlock(unref(_sfc_main$94), {
23506
+ return openBlock(), createBlock(unref(_sfc_main$97), {
20643
23507
  disabled: __props.teleport === false,
20644
23508
  to: __props.teleport || "body"
20645
23509
  }, {
@@ -20658,7 +23522,7 @@ const _sfc_main$129 = /* @__PURE__ */ defineComponent({
20658
23522
  //#endregion
20659
23523
  //#region src/components/Snackbar/SnackbarQueue.vue
20660
23524
  const [useSnackbarQueueContext, provideSnackbarQueueContext] = createContext({ suffix: "queue" });
20661
- const _sfc_main$130 = /* @__PURE__ */ defineComponent({
23525
+ const _sfc_main$133 = /* @__PURE__ */ defineComponent({
20662
23526
  name: "SnackbarQueue",
20663
23527
  __name: "SnackbarQueue",
20664
23528
  props: {
@@ -20727,7 +23591,7 @@ const _sfc_main$130 = /* @__PURE__ */ defineComponent({
20727
23591
  //#endregion
20728
23592
  //#region src/components/Snackbar/SnackbarRoot.vue
20729
23593
  const [useSnackbarRootContext, provideSnackbarRootContext] = createContext({ suffix: "root" });
20730
- const _sfc_main$131 = /* @__PURE__ */ defineComponent({
23594
+ const _sfc_main$134 = /* @__PURE__ */ defineComponent({
20731
23595
  name: "SnackbarRoot",
20732
23596
  __name: "SnackbarRoot",
20733
23597
  props: {
@@ -20762,7 +23626,7 @@ const _sfc_main$131 = /* @__PURE__ */ defineComponent({
20762
23626
  });
20763
23627
  //#endregion
20764
23628
  //#region src/components/Snackbar/SnackbarContent.vue
20765
- const _sfc_main$128 = /* @__PURE__ */ defineComponent({
23629
+ const _sfc_main$131 = /* @__PURE__ */ defineComponent({
20766
23630
  name: "SnackbarContent",
20767
23631
  __name: "SnackbarContent",
20768
23632
  props: {
@@ -20780,7 +23644,7 @@ const _sfc_main$128 = /* @__PURE__ */ defineComponent({
20780
23644
  });
20781
23645
  //#endregion
20782
23646
  //#region src/components/Snackbar/SnackbarClose.vue
20783
- const _sfc_main$127 = /* @__PURE__ */ defineComponent({
23647
+ const _sfc_main$130 = /* @__PURE__ */ defineComponent({
20784
23648
  name: "SnackbarClose",
20785
23649
  __name: "SnackbarClose",
20786
23650
  props: {
@@ -20835,16 +23699,118 @@ const _sfc_main$127 = /* @__PURE__ */ defineComponent({
20835
23699
  * ```
20836
23700
  */
20837
23701
  const Snackbar = {
20838
- Portal: _sfc_main$129,
20839
- Queue: _sfc_main$130,
20840
- Root: _sfc_main$131,
20841
- Content: _sfc_main$128,
20842
- Close: _sfc_main$127
23702
+ /**
23703
+ * Container that teleports to `<body>` and manages z-index via useStack.
23704
+ * Coordinates layering with Dialog and Scrim. Pass `:teleport="false"`
23705
+ * for inline rendering (docs, Storybook, scoped containers).
23706
+ *
23707
+ * @see https://0.vuetifyjs.com/components/semantic/snackbar
23708
+ *
23709
+ * @example
23710
+ * ```vue
23711
+ * <script setup lang="ts">
23712
+ * import { Snackbar } from '@vuetify/v0'
23713
+ * <\/script>
23714
+ *
23715
+ * <template>
23716
+ * <Snackbar.Portal>
23717
+ * <Snackbar.Root>
23718
+ * <Snackbar.Content>Saved</Snackbar.Content>
23719
+ * <Snackbar.Close />
23720
+ * </Snackbar.Root>
23721
+ * </Snackbar.Portal>
23722
+ * </template>
23723
+ * ```
23724
+ */
23725
+ Portal: _sfc_main$132,
23726
+ /**
23727
+ * Connects to useNotifications by namespace and exposes queue items
23728
+ * via scoped slot. Pauses auto-dismiss on hover and focus (WCAG 2.2.1).
23729
+ * Re-pauses after dismiss when hover/focus is still active.
23730
+ *
23731
+ * @see https://0.vuetifyjs.com/components/semantic/snackbar
23732
+ *
23733
+ * @example
23734
+ * ```vue
23735
+ * <script setup lang="ts">
23736
+ * import { Snackbar } from '@vuetify/v0'
23737
+ * <\/script>
23738
+ *
23739
+ * <template>
23740
+ * <Snackbar.Queue v-slot="{ items }">
23741
+ * <Snackbar.Root v-for="item in items" :key="item.id" :id="item.id">
23742
+ * <Snackbar.Content>{{ item.subject }}</Snackbar.Content>
23743
+ * <Snackbar.Close />
23744
+ * </Snackbar.Root>
23745
+ * </Snackbar.Queue>
23746
+ * </template>
23747
+ * ```
23748
+ */
23749
+ Queue: _sfc_main$133,
23750
+ /**
23751
+ * A single snackbar instance. Provides dismiss context to child
23752
+ * Snackbar.Close components. Defaults to `role="status"` (polite
23753
+ * live region) — override with `role="alert"` for urgent notifications.
23754
+ *
23755
+ * @see https://0.vuetifyjs.com/components/semantic/snackbar
23756
+ *
23757
+ * @example
23758
+ * ```vue
23759
+ * <script setup lang="ts">
23760
+ * import { Snackbar } from '@vuetify/v0'
23761
+ * <\/script>
23762
+ *
23763
+ * <template>
23764
+ * <Snackbar.Root :id="item.id">
23765
+ * <Snackbar.Content>{{ item.subject }}</Snackbar.Content>
23766
+ * <Snackbar.Close />
23767
+ * </Snackbar.Root>
23768
+ * </template>
23769
+ * ```
23770
+ */
23771
+ Root: _sfc_main$134,
23772
+ /**
23773
+ * Semantic wrapper for the notification message text.
23774
+ * Renders as a `<div>` by default. Polymorphic via the `as` prop.
23775
+ *
23776
+ * @see https://0.vuetifyjs.com/components/semantic/snackbar
23777
+ *
23778
+ * @example
23779
+ * ```vue
23780
+ * <script setup lang="ts">
23781
+ * import { Snackbar } from '@vuetify/v0'
23782
+ * <\/script>
23783
+ *
23784
+ * <template>
23785
+ * <Snackbar.Content>Changes saved</Snackbar.Content>
23786
+ * </template>
23787
+ * ```
23788
+ */
23789
+ Content: _sfc_main$131,
23790
+ /**
23791
+ * Dismiss button that auto-wires to the nearest Snackbar.Root context.
23792
+ * Renders with `aria-label="Close"` and `type="button"`. In renderless
23793
+ * mode, all attributes including `onClick` are available via `slotProps.attrs`.
23794
+ *
23795
+ * @see https://0.vuetifyjs.com/components/semantic/snackbar
23796
+ *
23797
+ * @example
23798
+ * ```vue
23799
+ * <script setup lang="ts">
23800
+ * import { Snackbar } from '@vuetify/v0'
23801
+ * <\/script>
23802
+ *
23803
+ * <template>
23804
+ * <Snackbar.Close />
23805
+ * </template>
23806
+ * ```
23807
+ */
23808
+ Close: _sfc_main$130
20843
23809
  };
20844
23810
  //#endregion
20845
23811
  //#region src/components/Splitter/SplitterRoot.vue
20846
23812
  const [useSplitterRoot, provideSplitterRoot] = createContext("v0:splitter");
20847
- const _sfc_main$134 = /* @__PURE__ */ defineComponent({
23813
+ const _sfc_main$137 = /* @__PURE__ */ defineComponent({
20848
23814
  name: "SplitterRoot",
20849
23815
  inheritAttrs: false,
20850
23816
  __name: "SplitterRoot",
@@ -20862,7 +23828,7 @@ const _sfc_main$134 = /* @__PURE__ */ defineComponent({
20862
23828
  const attrs = useAttrs();
20863
23829
  const emit = __emit;
20864
23830
  const rootAtom = useTemplateRef("root");
20865
- const rootEl = toRef(() => rootAtom.value?.element ?? null);
23831
+ const rootEl = toRef(() => /* @__PURE__ */ toElement(rootAtom.value?.element) ?? null);
20866
23832
  const draggingHandle = shallowRef(null);
20867
23833
  const dragging = toRef(() => !/* @__PURE__ */ isNull(draggingHandle.value));
20868
23834
  const expandAccum = /* @__PURE__ */ new Map();
@@ -21059,7 +24025,7 @@ const _sfc_main$134 = /* @__PURE__ */ defineComponent({
21059
24025
  });
21060
24026
  //#endregion
21061
24027
  //#region src/components/Splitter/SplitterPanel.vue
21062
- const _sfc_main$133 = /* @__PURE__ */ defineComponent({
24028
+ const _sfc_main$136 = /* @__PURE__ */ defineComponent({
21063
24029
  name: "SplitterPanel",
21064
24030
  inheritAttrs: false,
21065
24031
  __name: "SplitterPanel",
@@ -21101,7 +24067,8 @@ const _sfc_main$133 = /* @__PURE__ */ defineComponent({
21101
24067
  const num = Number.parseFloat(value);
21102
24068
  if (Number.isNaN(num)) return fallback;
21103
24069
  if (value.endsWith("px")) {
21104
- const dimension = rootSize.value || (splitter.orientation.value === "horizontal" ? splitter.rootEl.value?.offsetWidth : splitter.rootEl.value?.offsetHeight) || 0;
24070
+ const root = splitter.rootEl.value;
24071
+ const dimension = rootSize.value || (splitter.orientation.value === "horizontal" ? root?.offsetWidth : root?.offsetHeight) || 0;
21105
24072
  return dimension > 0 ? num / dimension * 100 : fallback;
21106
24073
  }
21107
24074
  return num;
@@ -21191,7 +24158,7 @@ const _sfc_main$133 = /* @__PURE__ */ defineComponent({
21191
24158
  });
21192
24159
  //#endregion
21193
24160
  //#region src/components/Splitter/SplitterHandle.vue
21194
- const _sfc_main$132 = /* @__PURE__ */ defineComponent({
24161
+ const _sfc_main$135 = /* @__PURE__ */ defineComponent({
21195
24162
  name: "SplitterHandle",
21196
24163
  inheritAttrs: false,
21197
24164
  __name: "SplitterHandle",
@@ -21351,7 +24318,7 @@ const _sfc_main$132 = /* @__PURE__ */ defineComponent({
21351
24318
  "aria-orientation": ariaOrientation.value,
21352
24319
  "aria-controls": ariaControls.value,
21353
24320
  "aria-label": __props.label || void 0,
21354
- "aria-disabled": isDisabled.value || void 0,
24321
+ "aria-disabled": isDisabled.value,
21355
24322
  "data-state": state.value,
21356
24323
  "data-orientation": splitter.orientation.value,
21357
24324
  "data-disabled": isDisabled.value || void 0,
@@ -21411,14 +24378,62 @@ const _sfc_main$132 = /* @__PURE__ */ defineComponent({
21411
24378
  * ```
21412
24379
  */
21413
24380
  const Splitter = {
21414
- Root: _sfc_main$134,
21415
- Panel: _sfc_main$133,
21416
- Handle: _sfc_main$132
24381
+ /**
24382
+ * Root container that provides splitter context and manages panel sizes.
24383
+ *
24384
+ * @see https://0.vuetifyjs.com/components/semantic/splitter
24385
+ *
24386
+ * @example
24387
+ * ```vue
24388
+ * <script lang="ts" setup>
24389
+ * import { Splitter } from '@vuetify/v0'
24390
+ * <\/script>
24391
+ *
24392
+ * <template>
24393
+ * <Splitter.Root orientation="horizontal">
24394
+ * <Splitter.Panel :default-size="60" :min-size="20">
24395
+ * Left content
24396
+ * </Splitter.Panel>
24397
+ *
24398
+ * <Splitter.Handle label="Resize panels" />
24399
+ *
24400
+ * <Splitter.Panel :default-size="40" :min-size="20">
24401
+ * Right content
24402
+ * </Splitter.Panel>
24403
+ * </Splitter.Root>
24404
+ * </template>
24405
+ * ```
24406
+ */
24407
+ Root: _sfc_main$137,
24408
+ /**
24409
+ * Resizable panel within a splitter layout, sized via flex-basis percentage.
24410
+ *
24411
+ * @see https://0.vuetifyjs.com/components/semantic/splitter
24412
+ *
24413
+ * @example
24414
+ * ```vue
24415
+ * <Splitter.Panel :default-size="50" :min-size="20" :max-size="80">
24416
+ * Panel content
24417
+ * </Splitter.Panel>
24418
+ * ```
24419
+ */
24420
+ Panel: _sfc_main$136,
24421
+ /**
24422
+ * Draggable resize handle between two adjacent panels.
24423
+ *
24424
+ * @see https://0.vuetifyjs.com/components/semantic/splitter
24425
+ *
24426
+ * @example
24427
+ * ```vue
24428
+ * <Splitter.Handle label="Resize panels" />
24429
+ * ```
24430
+ */
24431
+ Handle: _sfc_main$135
21417
24432
  };
21418
24433
  //#endregion
21419
24434
  //#region src/components/Step/StepRoot.vue
21420
24435
  const [useStepRoot, provideStepRoot] = createContext();
21421
- const _sfc_main$136 = /* @__PURE__ */ defineComponent({
24436
+ const _sfc_main$139 = /* @__PURE__ */ defineComponent({
21422
24437
  name: "StepRoot",
21423
24438
  __name: "StepRoot",
21424
24439
  props: /* @__PURE__ */ mergeModels({
@@ -21469,7 +24484,7 @@ const _sfc_main$136 = /* @__PURE__ */ defineComponent({
21469
24484
  });
21470
24485
  //#endregion
21471
24486
  //#region src/components/Step/StepItem.vue
21472
- const _sfc_main$135 = /* @__PURE__ */ defineComponent({
24487
+ const _sfc_main$138 = /* @__PURE__ */ defineComponent({
21473
24488
  name: "StepItem",
21474
24489
  __name: "StepItem",
21475
24490
  props: {
@@ -21520,13 +24535,53 @@ const _sfc_main$135 = /* @__PURE__ */ defineComponent({
21520
24535
  * @see https://0.vuetifyjs.com/components/providers/step
21521
24536
  */
21522
24537
  const Step = {
21523
- Root: _sfc_main$136,
21524
- Item: _sfc_main$135
24538
+ /**
24539
+ * Root component for step navigation.
24540
+ *
24541
+ * @see https://0.vuetifyjs.com/components/providers/step
24542
+ *
24543
+ * @example
24544
+ * ```vue
24545
+ * <script lang="ts" setup>
24546
+ * import { Step } from '@vuetify/v0'
24547
+ * <\/script>
24548
+ *
24549
+ * <template>
24550
+ * <Step.Root>
24551
+ * <Step.Item value="account">Account</Step.Item>
24552
+ *
24553
+ * <Step.Item value="profile">Profile</Step.Item>
24554
+ *
24555
+ * <Step.Item value="review">Review</Step.Item>
24556
+ * </Step.Root>
24557
+ * </template>
24558
+ * ```
24559
+ */
24560
+ Root: _sfc_main$139,
24561
+ /**
24562
+ * Component representing a single step item.
24563
+ *
24564
+ * @see https://0.vuetifyjs.com/components/providers/step
24565
+ *
24566
+ * @example
24567
+ * ```vue
24568
+ * <script lang="ts" setup>
24569
+ * import { Step } from '@vuetify/v0'
24570
+ * <\/script>
24571
+ *
24572
+ * <template>
24573
+ * <Step.Item value="account">
24574
+ * Account Setup
24575
+ * </Step.Item>
24576
+ * </template>
24577
+ * ```
24578
+ */
24579
+ Item: _sfc_main$138
21525
24580
  };
21526
24581
  //#endregion
21527
24582
  //#region src/components/Switch/SwitchGroup.vue
21528
24583
  const [useSwitchGroup, provideSwitchGroup] = createContext();
21529
- const _sfc_main$137 = /* @__PURE__ */ defineComponent({
24584
+ const _sfc_main$140 = /* @__PURE__ */ defineComponent({
21530
24585
  name: "SwitchGroup",
21531
24586
  __name: "SwitchGroup",
21532
24587
  props: /* @__PURE__ */ mergeModels({
@@ -21595,7 +24650,7 @@ const _sfc_main$137 = /* @__PURE__ */ defineComponent({
21595
24650
  //#endregion
21596
24651
  //#region src/components/Switch/SwitchRoot.vue
21597
24652
  const [useSwitchRoot, provideSwitchRoot] = createContext();
21598
- const _sfc_main$139 = /* @__PURE__ */ defineComponent({
24653
+ const _sfc_main$142 = /* @__PURE__ */ defineComponent({
21599
24654
  name: "SwitchRoot",
21600
24655
  inheritAttrs: false,
21601
24656
  __name: "SwitchRoot",
@@ -21703,7 +24758,7 @@ const _sfc_main$139 = /* @__PURE__ */ defineComponent({
21703
24758
  "type": __props.as === "button" ? "button" : void 0,
21704
24759
  "role": "switch",
21705
24760
  "aria-checked": isMixed.value ? "mixed" : isChecked.value,
21706
- "aria-disabled": isDisabled.value || void 0,
24761
+ "aria-disabled": isDisabled.value,
21707
24762
  "aria-label": __props.label || void 0,
21708
24763
  "aria-labelledby": __props.ariaLabelledby || void 0,
21709
24764
  "aria-describedby": __props.ariaDescribedby || void 0,
@@ -21722,7 +24777,7 @@ const _sfc_main$139 = /* @__PURE__ */ defineComponent({
21722
24777
  }), {
21723
24778
  default: withCtx(() => [renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(slotProps.value)))]),
21724
24779
  _: 3
21725
- }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$138, { key: 0 })) : createCommentVNode("v-if", true)], 64);
24780
+ }, 16, ["as", "renderless"]), __props.name ? (openBlock(), createBlock(_sfc_main$141, { key: 0 })) : createCommentVNode("v-if", true)], 64);
21726
24781
  };
21727
24782
  }
21728
24783
  });
@@ -21746,7 +24801,7 @@ const visuallyHiddenStyle = {
21746
24801
  whiteSpace: "nowrap",
21747
24802
  border: "0"
21748
24803
  };
21749
- const _sfc_main$138 = /* @__PURE__ */ defineComponent({
24804
+ const _sfc_main$141 = /* @__PURE__ */ defineComponent({
21750
24805
  name: "SwitchHiddenInput",
21751
24806
  __name: "SwitchHiddenInput",
21752
24807
  props: {
@@ -21784,7 +24839,7 @@ const _sfc_main$138 = /* @__PURE__ */ defineComponent({
21784
24839
  });
21785
24840
  //#endregion
21786
24841
  //#region src/components/Switch/SwitchSelectAll.vue
21787
- const _sfc_main$140 = /* @__PURE__ */ defineComponent({
24842
+ const _sfc_main$143 = /* @__PURE__ */ defineComponent({
21788
24843
  name: "SwitchSelectAll",
21789
24844
  inheritAttrs: false,
21790
24845
  __name: "SwitchSelectAll",
@@ -21844,7 +24899,7 @@ const _sfc_main$140 = /* @__PURE__ */ defineComponent({
21844
24899
  "type": __props.as === "button" ? "button" : void 0,
21845
24900
  "role": "switch",
21846
24901
  "aria-checked": isMixed.value ? "mixed" : isAllSelected.value,
21847
- "aria-disabled": isDisabled.value || void 0,
24902
+ "aria-disabled": isDisabled.value,
21848
24903
  "aria-label": __props.label || void 0,
21849
24904
  "aria-labelledby": __props.ariaLabelledby || void 0,
21850
24905
  "aria-describedby": __props.ariaDescribedby || void 0,
@@ -21868,7 +24923,7 @@ const _sfc_main$140 = /* @__PURE__ */ defineComponent({
21868
24923
  });
21869
24924
  //#endregion
21870
24925
  //#region src/components/Switch/SwitchThumb.vue
21871
- const _sfc_main$141 = /* @__PURE__ */ defineComponent({
24926
+ const _sfc_main$144 = /* @__PURE__ */ defineComponent({
21872
24927
  name: "SwitchThumb",
21873
24928
  __name: "SwitchThumb",
21874
24929
  props: {
@@ -21903,7 +24958,7 @@ const _sfc_main$141 = /* @__PURE__ */ defineComponent({
21903
24958
  });
21904
24959
  //#endregion
21905
24960
  //#region src/components/Switch/SwitchTrack.vue
21906
- const _sfc_main$142 = /* @__PURE__ */ defineComponent({
24961
+ const _sfc_main$145 = /* @__PURE__ */ defineComponent({
21907
24962
  name: "SwitchTrack",
21908
24963
  __name: "SwitchTrack",
21909
24964
  props: {
@@ -21962,17 +25017,174 @@ const _sfc_main$142 = /* @__PURE__ */ defineComponent({
21962
25017
  * ```
21963
25018
  */
21964
25019
  const Switch = {
21965
- Group: _sfc_main$137,
21966
- HiddenInput: _sfc_main$138,
21967
- Root: _sfc_main$139,
21968
- SelectAll: _sfc_main$140,
21969
- Thumb: _sfc_main$141,
21970
- Track: _sfc_main$142
25020
+ /**
25021
+ * Group component for managing multiple switches with tri-state support.
25022
+ *
25023
+ * @see https://0.vuetifyjs.com/components/forms/switch
25024
+ *
25025
+ * @example
25026
+ * ```vue
25027
+ * <script setup lang="ts">
25028
+ * import { Switch } from '@vuetify/v0'
25029
+ * import { ref } from 'vue'
25030
+ *
25031
+ * const selected = ref<string[]>([])
25032
+ * <\/script>
25033
+ *
25034
+ * <template>
25035
+ * <Switch.Group v-model="selected">
25036
+ * <label>
25037
+ * <Switch.Root value="a">
25038
+ * <Switch.Track><Switch.Thumb /></Switch.Track>
25039
+ * </Switch.Root>
25040
+ * Option A
25041
+ * </label>
25042
+ * <label>
25043
+ * <Switch.Root value="b">
25044
+ * <Switch.Track><Switch.Thumb /></Switch.Track>
25045
+ * </Switch.Root>
25046
+ * Option B
25047
+ * </label>
25048
+ * </Switch.Group>
25049
+ * </template>
25050
+ * ```
25051
+ */
25052
+ Group: _sfc_main$140,
25053
+ /**
25054
+ * Hidden input component for form submission.
25055
+ *
25056
+ * Auto-rendered by Root when `name` prop is provided.
25057
+ * Can also be used explicitly for custom form integration.
25058
+ *
25059
+ * @see https://0.vuetifyjs.com/components/forms/switch
25060
+ *
25061
+ * @example
25062
+ * ```vue
25063
+ * <script setup lang="ts">
25064
+ * import { Switch } from '@vuetify/v0'
25065
+ * <\/script>
25066
+ *
25067
+ * <template>
25068
+ * <Switch.Root>
25069
+ * <Switch.Track><Switch.Thumb /></Switch.Track>
25070
+ * <Switch.HiddenInput name="notifications" value="on" />
25071
+ * </Switch.Root>
25072
+ * </template>
25073
+ * ```
25074
+ */
25075
+ HiddenInput: _sfc_main$141,
25076
+ /**
25077
+ * Root component for individual switches.
25078
+ *
25079
+ * Renders as a button with `role="switch"` and proper ARIA attributes.
25080
+ * Handles click/keyboard interactions. Supports standalone mode with
25081
+ * v-model or group mode within Switch.Group. When `name` prop is
25082
+ * provided, automatically renders a hidden input for form submission.
25083
+ *
25084
+ * @see https://0.vuetifyjs.com/components/forms/switch
25085
+ *
25086
+ * @example
25087
+ * ```vue
25088
+ * <script setup lang="ts">
25089
+ * import { Switch } from '@vuetify/v0'
25090
+ * import { ref } from 'vue'
25091
+ *
25092
+ * const enabled = ref(false)
25093
+ * <\/script>
25094
+ *
25095
+ * <template>
25096
+ * <label>
25097
+ * <Switch.Root v-model="enabled">
25098
+ * <Switch.Track>
25099
+ * <Switch.Thumb />
25100
+ * </Switch.Track>
25101
+ * </Switch.Root>
25102
+ * Enable notifications
25103
+ * </label>
25104
+ * </template>
25105
+ * ```
25106
+ */
25107
+ Root: _sfc_main$142,
25108
+ /**
25109
+ * Select-all toggle for group multi-selection.
25110
+ *
25111
+ * Binds to parent Switch.Group's aggregate state. Reflects
25112
+ * isAllSelected/isMixed and calls toggleAll on click. Does NOT
25113
+ * register as a group item. Must be used within a Switch.Group.
25114
+ *
25115
+ * @see https://0.vuetifyjs.com/components/forms/switch
25116
+ *
25117
+ * @example
25118
+ * ```vue
25119
+ * <script setup lang="ts">
25120
+ * import { Switch } from '@vuetify/v0'
25121
+ * import { ref } from 'vue'
25122
+ *
25123
+ * const selected = ref<string[]>([])
25124
+ * <\/script>
25125
+ *
25126
+ * <template>
25127
+ * <Switch.Group v-model="selected">
25128
+ * <label>
25129
+ * <Switch.SelectAll label="Toggle all">
25130
+ * <Switch.Track><Switch.Thumb /></Switch.Track>
25131
+ * </Switch.SelectAll>
25132
+ * Select all
25133
+ * </label>
25134
+ *
25135
+ * <label>
25136
+ * <Switch.Root value="a">
25137
+ * <Switch.Track><Switch.Thumb /></Switch.Track>
25138
+ * </Switch.Root>
25139
+ * Option A
25140
+ * </label>
25141
+ * </Switch.Group>
25142
+ * </template>
25143
+ * ```
25144
+ */
25145
+ SelectAll: _sfc_main$143,
25146
+ /**
25147
+ * Sliding knob indicator for switches.
25148
+ *
25149
+ * Renders as a span with `data-state` attribute for CSS styling.
25150
+ * Hidden via `visibility: hidden` when unchecked and not mixed.
25151
+ * Must be used within a Switch.Root or Switch.SelectAll.
25152
+ *
25153
+ * @see https://0.vuetifyjs.com/components/forms/switch
25154
+ *
25155
+ * @example
25156
+ * ```vue
25157
+ * <Switch.Root v-model="enabled">
25158
+ * <Switch.Track>
25159
+ * <Switch.Thumb />
25160
+ * </Switch.Track>
25161
+ * </Switch.Root>
25162
+ * ```
25163
+ */
25164
+ Thumb: _sfc_main$144,
25165
+ /**
25166
+ * Track/rail component for switches.
25167
+ *
25168
+ * Always visible, provides `data-state` attribute for CSS styling.
25169
+ * Must be used within a Switch.Root or Switch.SelectAll.
25170
+ *
25171
+ * @see https://0.vuetifyjs.com/components/forms/switch
25172
+ *
25173
+ * @example
25174
+ * ```vue
25175
+ * <Switch.Root v-model="enabled">
25176
+ * <Switch.Track>
25177
+ * <Switch.Thumb />
25178
+ * </Switch.Track>
25179
+ * </Switch.Root>
25180
+ * ```
25181
+ */
25182
+ Track: _sfc_main$145
21971
25183
  };
21972
25184
  //#endregion
21973
25185
  //#region src/components/Tabs/TabsRoot.vue
21974
25186
  const [useTabsRoot, provideTabsRoot] = createContext();
21975
- const _sfc_main$146 = /* @__PURE__ */ defineComponent({
25187
+ const _sfc_main$149 = /* @__PURE__ */ defineComponent({
21976
25188
  name: "TabsRoot",
21977
25189
  __name: "TabsRoot",
21978
25190
  props: /* @__PURE__ */ mergeModels({
@@ -22040,7 +25252,7 @@ const _sfc_main$146 = /* @__PURE__ */ defineComponent({
22040
25252
  });
22041
25253
  //#endregion
22042
25254
  //#region src/components/Tabs/TabsList.vue
22043
- const _sfc_main$144 = /* @__PURE__ */ defineComponent({
25255
+ const _sfc_main$147 = /* @__PURE__ */ defineComponent({
22044
25256
  name: "TabsList",
22045
25257
  inheritAttrs: false,
22046
25258
  __name: "TabsList",
@@ -22061,7 +25273,7 @@ const _sfc_main$144 = /* @__PURE__ */ defineComponent({
22061
25273
  "role": "tablist",
22062
25274
  "aria-orientation": tabs.orientation.value,
22063
25275
  "aria-label": __props.label,
22064
- "aria-disabled": isDisabled.value || void 0,
25276
+ "aria-disabled": isDisabled.value,
22065
25277
  "data-disabled": isDisabled.value || void 0
22066
25278
  }
22067
25279
  }));
@@ -22078,7 +25290,7 @@ const _sfc_main$144 = /* @__PURE__ */ defineComponent({
22078
25290
  });
22079
25291
  //#endregion
22080
25292
  //#region src/components/Tabs/TabsItem.vue
22081
- const _sfc_main$143 = /* @__PURE__ */ defineComponent({
25293
+ const _sfc_main$146 = /* @__PURE__ */ defineComponent({
22082
25294
  name: "TabsItem",
22083
25295
  inheritAttrs: false,
22084
25296
  __name: "TabsItem",
@@ -22097,7 +25309,7 @@ const _sfc_main$143 = /* @__PURE__ */ defineComponent({
22097
25309
  const attrs = useAttrs();
22098
25310
  const rootRef = useTemplateRef("root");
22099
25311
  const tabs = useTabsRoot(__props.namespace);
22100
- const el = toRef(() => rootRef.value?.element ?? void 0);
25312
+ const el = toRef(() => /* @__PURE__ */ toElement(rootRef.value?.element) ?? void 0);
22101
25313
  const ticket = tabs.register({
22102
25314
  id: __props.id,
22103
25315
  value: __props.value,
@@ -22200,7 +25412,7 @@ const _sfc_main$143 = /* @__PURE__ */ defineComponent({
22200
25412
  "tabindex": toValue(ticket.isSelected) ? 0 : -1,
22201
25413
  "aria-selected": toValue(ticket.isSelected),
22202
25414
  "aria-controls": panelId.value,
22203
- "aria-disabled": toValue(isDisabled) || void 0,
25415
+ "aria-disabled": toValue(isDisabled),
22204
25416
  "aria-label": __props.ariaLabel,
22205
25417
  "aria-labelledby": __props.ariaLabelledby,
22206
25418
  "aria-describedby": __props.ariaDescribedby,
@@ -22226,7 +25438,7 @@ const _sfc_main$143 = /* @__PURE__ */ defineComponent({
22226
25438
  });
22227
25439
  //#endregion
22228
25440
  //#region src/components/Tabs/TabsPanel.vue
22229
- const _sfc_main$145 = /* @__PURE__ */ defineComponent({
25441
+ const _sfc_main$148 = /* @__PURE__ */ defineComponent({
22230
25442
  name: "TabsPanel",
22231
25443
  inheritAttrs: false,
22232
25444
  __name: "TabsPanel",
@@ -22304,14 +25516,34 @@ const _sfc_main$145 = /* @__PURE__ */ defineComponent({
22304
25516
  * ```
22305
25517
  */
22306
25518
  const Tabs = {
22307
- Root: _sfc_main$146,
22308
- List: _sfc_main$144,
22309
- Item: _sfc_main$143,
22310
- Panel: _sfc_main$145
25519
+ /**
25520
+ * Root component that provides tabs context.
25521
+ *
25522
+ * @see https://0.vuetifyjs.com/components/disclosure/tabs
25523
+ */
25524
+ Root: _sfc_main$149,
25525
+ /**
25526
+ * Container for tab triggers with tablist role.
25527
+ *
25528
+ * @see https://0.vuetifyjs.com/components/disclosure/tabs
25529
+ */
25530
+ List: _sfc_main$147,
25531
+ /**
25532
+ * Individual tab trigger.
25533
+ *
25534
+ * @see https://0.vuetifyjs.com/components/disclosure/tabs
25535
+ */
25536
+ Item: _sfc_main$146,
25537
+ /**
25538
+ * Content panel associated with a tab.
25539
+ *
25540
+ * @see https://0.vuetifyjs.com/components/disclosure/tabs
25541
+ */
25542
+ Panel: _sfc_main$148
22311
25543
  };
22312
25544
  //#endregion
22313
25545
  //#region src/components/Theme/Theme.vue
22314
- const _sfc_main$147 = /* @__PURE__ */ defineComponent({
25546
+ const _sfc_main$150 = /* @__PURE__ */ defineComponent({
22315
25547
  name: "Theme",
22316
25548
  inheritAttrs: false,
22317
25549
  __name: "Theme",
@@ -22371,7 +25603,7 @@ const _sfc_main$147 = /* @__PURE__ */ defineComponent({
22371
25603
  //#endregion
22372
25604
  //#region src/components/Toggle/ToggleGroup.vue
22373
25605
  const [useToggleGroup, provideToggleGroup] = createContext();
22374
- const _sfc_main$148 = /* @__PURE__ */ defineComponent({
25606
+ const _sfc_main$151 = /* @__PURE__ */ defineComponent({
22375
25607
  name: "ToggleGroup",
22376
25608
  __name: "ToggleGroup",
22377
25609
  props: /* @__PURE__ */ mergeModels({
@@ -22418,7 +25650,7 @@ const _sfc_main$148 = /* @__PURE__ */ defineComponent({
22418
25650
  attrs: {
22419
25651
  "role": "group",
22420
25652
  "aria-orientation": __props.orientation,
22421
- "aria-disabled": __props.disabled || void 0,
25653
+ "aria-disabled": __props.disabled,
22422
25654
  "data-orientation": __props.orientation,
22423
25655
  "data-disabled": __props.disabled ? true : void 0
22424
25656
  }
@@ -22437,7 +25669,7 @@ const _sfc_main$148 = /* @__PURE__ */ defineComponent({
22437
25669
  //#endregion
22438
25670
  //#region src/components/Toggle/ToggleRoot.vue
22439
25671
  const [useToggleRoot, provideToggleRoot] = createContext();
22440
- const _sfc_main$150 = /* @__PURE__ */ defineComponent({
25672
+ const _sfc_main$153 = /* @__PURE__ */ defineComponent({
22441
25673
  name: "ToggleRoot",
22442
25674
  inheritAttrs: false,
22443
25675
  __name: "ToggleRoot",
@@ -22507,7 +25739,7 @@ const _sfc_main$150 = /* @__PURE__ */ defineComponent({
22507
25739
  attrs: {
22508
25740
  "type": __props.as === "button" ? "button" : void 0,
22509
25741
  "aria-pressed": isPressed.value,
22510
- "aria-disabled": isDisabled.value || void 0,
25742
+ "aria-disabled": isDisabled.value,
22511
25743
  "tabindex": isDisabled.value ? void 0 : 0,
22512
25744
  "data-state": isPressed.value ? "on" : "off",
22513
25745
  "data-disabled": isDisabled.value ? true : void 0
@@ -22528,7 +25760,7 @@ const _sfc_main$150 = /* @__PURE__ */ defineComponent({
22528
25760
  });
22529
25761
  //#endregion
22530
25762
  //#region src/components/Toggle/ToggleIndicator.vue
22531
- const _sfc_main$149 = /* @__PURE__ */ defineComponent({
25763
+ const _sfc_main$152 = /* @__PURE__ */ defineComponent({
22532
25764
  name: "ToggleIndicator",
22533
25765
  __name: "ToggleIndicator",
22534
25766
  props: {
@@ -22579,14 +25811,80 @@ const _sfc_main$149 = /* @__PURE__ */ defineComponent({
22579
25811
  * ```
22580
25812
  */
22581
25813
  const Toggle = {
22582
- Group: _sfc_main$148,
22583
- Indicator: _sfc_main$149,
22584
- Root: _sfc_main$150
25814
+ /**
25815
+ * Group container managing selection across child Toggle.Root components.
25816
+ *
25817
+ * @see https://0.vuetifyjs.com/components/actions/toggle
25818
+ *
25819
+ * @example
25820
+ * ```vue
25821
+ * <script setup lang="ts">
25822
+ * import { Toggle } from '@vuetify/v0'
25823
+ * import { ref } from 'vue'
25824
+ *
25825
+ * const alignment = ref('left')
25826
+ * <\/script>
25827
+ *
25828
+ * <template>
25829
+ * <Toggle.Group v-model="alignment">
25830
+ * <Toggle.Root value="left">Left</Toggle.Root>
25831
+ * <Toggle.Root value="center">Center</Toggle.Root>
25832
+ * <Toggle.Root value="right">Right</Toggle.Root>
25833
+ * </Toggle.Group>
25834
+ * </template>
25835
+ * ```
25836
+ */
25837
+ Group: _sfc_main$151,
25838
+ /**
25839
+ * Visual indicator for the pressed state.
25840
+ *
25841
+ * Renders as a span and only displays when pressed.
25842
+ * Must be used within a Toggle.Root component.
25843
+ *
25844
+ * @see https://0.vuetifyjs.com/components/actions/toggle
25845
+ *
25846
+ * @example
25847
+ * ```vue
25848
+ * <script setup lang="ts">
25849
+ * import { Toggle } from '@vuetify/v0'
25850
+ * <\/script>
25851
+ *
25852
+ * <template>
25853
+ * <Toggle.Root>
25854
+ * <Toggle.Indicator>✓</Toggle.Indicator>
25855
+ * </Toggle.Root>
25856
+ * </template>
25857
+ * ```
25858
+ */
25859
+ Indicator: _sfc_main$152,
25860
+ /**
25861
+ * Pressable toggle button with on/off state.
25862
+ *
25863
+ * Supports standalone mode with v-model (boolean) or group mode
25864
+ * within Toggle.Group where pressed state is derived from selection.
25865
+ *
25866
+ * @see https://0.vuetifyjs.com/components/actions/toggle
25867
+ *
25868
+ * @example
25869
+ * ```vue
25870
+ * <script setup lang="ts">
25871
+ * import { Toggle } from '@vuetify/v0'
25872
+ * import { ref } from 'vue'
25873
+ *
25874
+ * const bold = ref(false)
25875
+ * <\/script>
25876
+ *
25877
+ * <template>
25878
+ * <Toggle.Root v-model="bold">Bold</Toggle.Root>
25879
+ * </template>
25880
+ * ```
25881
+ */
25882
+ Root: _sfc_main$153
22585
25883
  };
22586
25884
  //#endregion
22587
25885
  //#region src/components/Treeview/TreeviewRoot.vue
22588
25886
  const [useTreeviewRoot, provideTreeviewRoot] = createContext();
22589
- const _sfc_main$159 = /* @__PURE__ */ defineComponent({
25887
+ const _sfc_main$162 = /* @__PURE__ */ defineComponent({
22590
25888
  name: "TreeviewRoot",
22591
25889
  __name: "TreeviewRoot",
22592
25890
  props: /* @__PURE__ */ mergeModels({
@@ -22660,7 +25958,7 @@ const _sfc_main$159 = /* @__PURE__ */ defineComponent({
22660
25958
  //#endregion
22661
25959
  //#region src/components/Treeview/TreeviewList.vue
22662
25960
  const [useTreeviewList, provideTreeviewList] = createContext({ suffix: "list" });
22663
- const _sfc_main$158 = /* @__PURE__ */ defineComponent({
25961
+ const _sfc_main$161 = /* @__PURE__ */ defineComponent({
22664
25962
  name: "TreeviewList",
22665
25963
  __name: "TreeviewList",
22666
25964
  props: {
@@ -22778,7 +26076,7 @@ const _sfc_main$158 = /* @__PURE__ */ defineComponent({
22778
26076
  //#endregion
22779
26077
  //#region src/components/Treeview/TreeviewItem.vue
22780
26078
  const [useTreeviewItem, provideTreeviewItem] = createContext({ suffix: "item" });
22781
- const _sfc_main$157 = /* @__PURE__ */ defineComponent({
26079
+ const _sfc_main$160 = /* @__PURE__ */ defineComponent({
22782
26080
  name: "TreeviewItem",
22783
26081
  __name: "TreeviewItem",
22784
26082
  props: {
@@ -22792,7 +26090,7 @@ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
22792
26090
  setup(__props) {
22793
26091
  const nested = useTreeviewRoot(__props.namespace);
22794
26092
  const rootRef = useTemplateRef("root");
22795
- const el = toRef(() => rootRef.value?.element ?? void 0);
26093
+ const el = toRef(() => /* @__PURE__ */ toElement(rootRef.value?.element) ?? void 0);
22796
26094
  const parentId = useTreeviewItem(__props.namespace, null)?.ticket.id;
22797
26095
  const ticket = nested.register({
22798
26096
  id: __props.id,
@@ -22832,7 +26130,7 @@ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
22832
26130
  return (_ctx, _cache) => {
22833
26131
  return openBlock(), createBlock(unref(_sfc_main$9), {
22834
26132
  ref: "root",
22835
- "aria-disabled": slotProps.value.isDisabled || void 0,
26133
+ "aria-disabled": slotProps.value.isDisabled,
22836
26134
  "aria-expanded": hasContent.value ? slotProps.value.isOpen : void 0,
22837
26135
  "aria-level": slotProps.value.depth + 1,
22838
26136
  "aria-posinset": unref(ticket).position(),
@@ -22871,7 +26169,7 @@ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
22871
26169
  });
22872
26170
  //#endregion
22873
26171
  //#region src/components/Treeview/TreeviewActivator.vue
22874
- const _sfc_main$151 = /* @__PURE__ */ defineComponent({
26172
+ const _sfc_main$154 = /* @__PURE__ */ defineComponent({
22875
26173
  name: "TreeviewActivator",
22876
26174
  __name: "TreeviewActivator",
22877
26175
  props: {
@@ -22889,7 +26187,7 @@ const _sfc_main$151 = /* @__PURE__ */ defineComponent({
22889
26187
  attrs: {
22890
26188
  "role": __props.as === "button" ? void 0 : "button",
22891
26189
  "tabindex": -1,
22892
- "aria-disabled": item.isDisabled.value || void 0,
26190
+ "aria-disabled": item.isDisabled.value,
22893
26191
  "data-disabled": item.isDisabled.value || void 0,
22894
26192
  "data-open": toValue(item.ticket.isOpen) || void 0,
22895
26193
  "disabled": __props.as === "button" ? item.isDisabled.value : void 0,
@@ -22910,7 +26208,7 @@ const _sfc_main$151 = /* @__PURE__ */ defineComponent({
22910
26208
  });
22911
26209
  //#endregion
22912
26210
  //#region src/components/Treeview/TreeviewCheckbox.vue
22913
- const _sfc_main$152 = /* @__PURE__ */ defineComponent({
26211
+ const _sfc_main$155 = /* @__PURE__ */ defineComponent({
22914
26212
  name: "TreeviewCheckbox",
22915
26213
  __name: "TreeviewCheckbox",
22916
26214
  props: {
@@ -22930,7 +26228,7 @@ const _sfc_main$152 = /* @__PURE__ */ defineComponent({
22930
26228
  attrs: {
22931
26229
  "role": "checkbox",
22932
26230
  "aria-checked": toValue(item.ticket.isMixed) ? "mixed" : toValue(item.ticket.isSelected),
22933
- "aria-disabled": item.isDisabled.value || void 0,
26231
+ "aria-disabled": item.isDisabled.value,
22934
26232
  "tabindex": -1,
22935
26233
  "data-selected": toValue(item.ticket.isSelected) || void 0,
22936
26234
  "data-disabled": item.isDisabled.value || void 0,
@@ -22951,7 +26249,7 @@ const _sfc_main$152 = /* @__PURE__ */ defineComponent({
22951
26249
  });
22952
26250
  //#endregion
22953
26251
  //#region src/components/Treeview/TreeviewContent.vue
22954
- const _sfc_main$153 = /* @__PURE__ */ defineComponent({
26252
+ const _sfc_main$156 = /* @__PURE__ */ defineComponent({
22955
26253
  name: "TreeviewContent",
22956
26254
  __name: "TreeviewContent",
22957
26255
  props: { namespace: { default: "v0:treeview" } },
@@ -22977,7 +26275,7 @@ const _sfc_main$153 = /* @__PURE__ */ defineComponent({
22977
26275
  });
22978
26276
  //#endregion
22979
26277
  //#region src/components/Treeview/TreeviewCue.vue
22980
- const _sfc_main$154 = /* @__PURE__ */ defineComponent({
26278
+ const _sfc_main$157 = /* @__PURE__ */ defineComponent({
22981
26279
  name: "TreeviewCue",
22982
26280
  __name: "TreeviewCue",
22983
26281
  props: {
@@ -23011,7 +26309,7 @@ const _sfc_main$154 = /* @__PURE__ */ defineComponent({
23011
26309
  });
23012
26310
  //#endregion
23013
26311
  //#region src/components/Treeview/TreeviewGroup.vue
23014
- const _sfc_main$155 = /* @__PURE__ */ defineComponent({
26312
+ const _sfc_main$158 = /* @__PURE__ */ defineComponent({
23015
26313
  name: "TreeviewGroup",
23016
26314
  __name: "TreeviewGroup",
23017
26315
  props: {
@@ -23033,7 +26331,7 @@ const _sfc_main$155 = /* @__PURE__ */ defineComponent({
23033
26331
  });
23034
26332
  //#endregion
23035
26333
  //#region src/components/Treeview/TreeviewIndicator.vue
23036
- const _sfc_main$156 = /* @__PURE__ */ defineComponent({
26334
+ const _sfc_main$159 = /* @__PURE__ */ defineComponent({
23037
26335
  name: "TreeviewIndicator",
23038
26336
  __name: "TreeviewIndicator",
23039
26337
  props: {
@@ -23069,7 +26367,7 @@ const _sfc_main$156 = /* @__PURE__ */ defineComponent({
23069
26367
  });
23070
26368
  //#endregion
23071
26369
  //#region src/components/Treeview/TreeviewSelectAll.vue
23072
- const _sfc_main$160 = /* @__PURE__ */ defineComponent({
26370
+ const _sfc_main$163 = /* @__PURE__ */ defineComponent({
23073
26371
  name: "TreeviewSelectAll",
23074
26372
  __name: "TreeviewSelectAll",
23075
26373
  props: {
@@ -23149,7 +26447,7 @@ const _sfc_main$160 = /* @__PURE__ */ defineComponent({
23149
26447
  attrs: {
23150
26448
  "role": "checkbox",
23151
26449
  "aria-checked": isMixed.value ? "mixed" : isAllSelected.value,
23152
- "aria-disabled": isDisabled.value || void 0,
26450
+ "aria-disabled": isDisabled.value,
23153
26451
  "aria-label": __props.label || void 0,
23154
26452
  "tabindex": isDisabled.value ? void 0 : 0,
23155
26453
  "data-state": state.value,
@@ -23201,16 +26499,166 @@ const _sfc_main$160 = /* @__PURE__ */ defineComponent({
23201
26499
  * ```
23202
26500
  */
23203
26501
  const Treeview = {
23204
- Root: _sfc_main$159,
23205
- List: _sfc_main$158,
23206
- Item: _sfc_main$157,
23207
- Activator: _sfc_main$151,
23208
- Content: _sfc_main$153,
23209
- Cue: _sfc_main$154,
23210
- Group: _sfc_main$155,
23211
- Checkbox: _sfc_main$152,
23212
- Indicator: _sfc_main$156,
23213
- SelectAll: _sfc_main$160
26502
+ /**
26503
+ * Root component that creates and provides the nested context.
26504
+ *
26505
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26506
+ *
26507
+ * @example
26508
+ * ```vue
26509
+ * <script setup lang="ts">
26510
+ * import { Treeview } from '@vuetify/v0'
26511
+ * <\/script>
26512
+ *
26513
+ * <template>
26514
+ * <Treeview.Root v-model="selected" :multiple="true">
26515
+ * <Treeview.List>
26516
+ * <Treeview.Item value="a">Node A</Treeview.Item>
26517
+ * </Treeview.List>
26518
+ * </Treeview.Root>
26519
+ * </template>
26520
+ * ```
26521
+ */
26522
+ Root: _sfc_main$162,
26523
+ /**
26524
+ * Top-level list container with `role="tree"` and `aria-multiselectable`.
26525
+ *
26526
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26527
+ *
26528
+ * @example
26529
+ * ```vue
26530
+ * <Treeview.List label="File browser">
26531
+ * <Treeview.Item>...</Treeview.Item>
26532
+ * </Treeview.List>
26533
+ * ```
26534
+ */
26535
+ List: _sfc_main$161,
26536
+ /**
26537
+ * Tree node with `role="treeitem"`. Registers with the nearest Root context
26538
+ * and auto-nests under the closest ancestor Item.
26539
+ *
26540
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26541
+ *
26542
+ * @example
26543
+ * ```vue
26544
+ * <Treeview.Item id="docs" value="documents">
26545
+ * <Treeview.Activator>Documents</Treeview.Activator>
26546
+ * <Treeview.Content>
26547
+ * <Treeview.Group>
26548
+ * <Treeview.Item id="resume" value="resume.pdf">
26549
+ * <Treeview.Activator>Resume.pdf</Treeview.Activator>
26550
+ * </Treeview.Item>
26551
+ * </Treeview.Group>
26552
+ * </Treeview.Content>
26553
+ * </Treeview.Item>
26554
+ * ```
26555
+ */
26556
+ Item: _sfc_main$160,
26557
+ /**
26558
+ * Click-to-toggle trigger for expand/collapse. Renders a button by default.
26559
+ *
26560
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26561
+ *
26562
+ * @example
26563
+ * ```vue
26564
+ * <Treeview.Activator v-slot="{ isOpen }">
26565
+ * {{ isOpen ? '▼' : '▶' }} Documents
26566
+ * </Treeview.Activator>
26567
+ * ```
26568
+ */
26569
+ Activator: _sfc_main$154,
26570
+ /**
26571
+ * Collapse gate for child nodes. Conditionally renders when the parent Item is open.
26572
+ *
26573
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26574
+ *
26575
+ * @example
26576
+ * ```vue
26577
+ * <Treeview.Content>
26578
+ * <Treeview.Group>
26579
+ * <Treeview.Item>...</Treeview.Item>
26580
+ * </Treeview.Group>
26581
+ * </Treeview.Content>
26582
+ * ```
26583
+ */
26584
+ Content: _sfc_main$156,
26585
+ /**
26586
+ * Visual cue for expand/collapse state. Hides itself on leaf nodes.
26587
+ * Exposes `data-state="open|closed"` for CSS-driven styling.
26588
+ *
26589
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26590
+ *
26591
+ * @example
26592
+ * ```vue
26593
+ * <Treeview.Cue v-slot="{ attrs }">
26594
+ * <span v-bind="attrs">▶</span>
26595
+ * </Treeview.Cue>
26596
+ * ```
26597
+ */
26598
+ Cue: _sfc_main$157,
26599
+ /**
26600
+ * Wrapper with `role="group"` for nested child items inside Content.
26601
+ *
26602
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26603
+ *
26604
+ * @example
26605
+ * ```vue
26606
+ * <Treeview.Content>
26607
+ * <Treeview.Group>
26608
+ * <Treeview.Item>Child A</Treeview.Item>
26609
+ * <Treeview.Item>Child B</Treeview.Item>
26610
+ * </Treeview.Group>
26611
+ * </Treeview.Content>
26612
+ * ```
26613
+ */
26614
+ Group: _sfc_main$158,
26615
+ /**
26616
+ * Tri-state checkbox for selection. Toggles selection on click
26617
+ * and shows mixed state for partially-selected parents.
26618
+ *
26619
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26620
+ *
26621
+ * @example
26622
+ * ```vue
26623
+ * <Treeview.Checkbox v-slot="{ attrs, isSelected, isMixed }">
26624
+ * <span v-bind="attrs">{{ isMixed ? '−' : isSelected ? '✓' : '○' }}</span>
26625
+ * </Treeview.Checkbox>
26626
+ * ```
26627
+ */
26628
+ Checkbox: _sfc_main$155,
26629
+ /**
26630
+ * Visual indicator for selection state. Shows checked, unchecked,
26631
+ * or indeterminate via `data-state`.
26632
+ *
26633
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26634
+ *
26635
+ * @example
26636
+ * ```vue
26637
+ * <Treeview.Indicator v-slot="{ attrs }">
26638
+ * <span v-bind="attrs">●</span>
26639
+ * </Treeview.Indicator>
26640
+ * ```
26641
+ */
26642
+ Indicator: _sfc_main$159,
26643
+ /**
26644
+ * Select all checkbox for tree-wide multi-selection.
26645
+ *
26646
+ * Binds to parent TreeviewRoot's aggregate state. Reflects
26647
+ * isAllSelected/isMixed and calls toggleAll on click. Does NOT
26648
+ * register as a tree item. Must be used within a Treeview.Root.
26649
+ *
26650
+ * @see https://0.vuetifyjs.com/components/disclosure/treeview
26651
+ *
26652
+ * @example
26653
+ * ```vue
26654
+ * <Treeview.SelectAll v-slot="{ attrs, isAllSelected, isMixed }">
26655
+ * <button v-bind="attrs">
26656
+ * {{ isMixed ? '−' : isAllSelected ? '✓' : '○' }} Select All
26657
+ * </button>
26658
+ * </Treeview.SelectAll>
26659
+ * ```
26660
+ */
26661
+ SelectAll: _sfc_main$163
23214
26662
  };
23215
26663
  //#endregion
23216
- 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 AvatarImage, _sfc_main$12 as AvatarRoot, Breadcrumbs, _sfc_main$13 as BreadcrumbsDivider, _sfc_main$14 as BreadcrumbsEllipsis, _sfc_main$15 as BreadcrumbsItem, _sfc_main$16 as BreadcrumbsLink, _sfc_main$17 as BreadcrumbsList, _sfc_main$18 as BreadcrumbsPage, _sfc_main$19 as BreadcrumbsRoot, Button, _sfc_main$20 as ButtonContent, _sfc_main$21 as ButtonGroup, _sfc_main$22 as ButtonHiddenInput, _sfc_main$23 as ButtonIcon, _sfc_main$24 as ButtonLoading, _sfc_main$25 as ButtonRoot, Carousel, _sfc_main$26 as CarouselIndicator, _sfc_main$27 as CarouselItem, _sfc_main$28 as CarouselLiveRegion, _sfc_main$29 as CarouselNext, _sfc_main$30 as CarouselPrevious, _sfc_main$31 as CarouselProgress, _sfc_main$32 as CarouselRoot, _sfc_main$33 as CarouselViewport, Checkbox, _sfc_main$34 as CheckboxGroup, _sfc_main$35 as CheckboxHiddenInput, _sfc_main$36 as CheckboxIndicator, _sfc_main$37 as CheckboxRoot, _sfc_main$38 as CheckboxSelectAll, ClientAdapter, Collapsible, _sfc_main$39 as CollapsibleActivator, _sfc_main$40 as CollapsibleContent, _sfc_main$41 as CollapsibleCue, _sfc_main$42 as CollapsibleRoot, Combobox, _sfc_main$43 as ComboboxActivator, ClientAdapter$1 as ComboboxClientAdapter, _sfc_main$44 as ComboboxContent, _sfc_main$45 as ComboboxControl, _sfc_main$46 as ComboboxCue, _sfc_main$47 as ComboboxDescription, _sfc_main$48 as ComboboxEmpty, _sfc_main$49 as ComboboxError, _sfc_main$50 as ComboboxItem, _sfc_main$51 as ComboboxRoot, ServerAdapter as ComboboxServerAdapter, ConsolaLoggerAdapter, DataTableAdapter, Dialog, _sfc_main$52 as DialogActivator, _sfc_main$53 as DialogClose, _sfc_main$54 as DialogContent, _sfc_main$55 as DialogDescription, _sfc_main$56 as DialogRoot, _sfc_main$57 as DialogTitle, ExpansionPanel, _sfc_main$58 as ExpansionPanelActivator, _sfc_main$59 as ExpansionPanelContent, _sfc_main$60 as ExpansionPanelCue, _sfc_main$61 as ExpansionPanelGroup, _sfc_main$62 as ExpansionPanelHeader, _sfc_main$63 as ExpansionPanelRoot, FeaturesAdapter, _sfc_main$64 as Form, Group, _sfc_main$65 as GroupItem, _sfc_main$66 as GroupRoot, IN_BROWSER, Image, _sfc_main$67 as ImageFallback, _sfc_main$68 as ImageImg, _sfc_main$69 as ImagePlaceholder, _sfc_main$70 as ImageRoot, Input, _sfc_main$71 as InputControl, _sfc_main$72 as InputDescription, _sfc_main$73 as InputError, _sfc_main$74 as InputRoot, _sfc_main$75 as Locale, MemoryAdapter, NumberField, _sfc_main$76 as NumberFieldControl, _sfc_main$77 as NumberFieldDecrement, _sfc_main$78 as NumberFieldDescription, _sfc_main$79 as NumberFieldError, _sfc_main$80 as NumberFieldIncrement, _sfc_main$81 as NumberFieldRoot, _sfc_main$82 as NumberFieldScrub, Pagination, _sfc_main$83 as PaginationEllipsis, _sfc_main$84 as PaginationFirst, _sfc_main$85 as PaginationItem, _sfc_main$86 as PaginationLast, _sfc_main$87 as PaginationNext, _sfc_main$88 as PaginationPrev, _sfc_main$89 as PaginationRoot, _sfc_main$90 as PaginationStatus, PermissionAdapter, PinoLoggerAdapter, Popover, _sfc_main$91 as PopoverActivator, _sfc_main$92 as PopoverContent, _sfc_main$93 as PopoverRoot, _sfc_main$94 as Portal, _sfc_main$95 as Presence, Progress, _sfc_main$96 as ProgressBuffer, _sfc_main$97 as ProgressFill, _sfc_main$98 as ProgressHiddenInput, _sfc_main$99 as ProgressLabel, _sfc_main$100 as ProgressRoot, _sfc_main$101 as ProgressTrack, _sfc_main$102 as ProgressValue, Radio, _sfc_main$103 as RadioGroup, _sfc_main$104 as RadioHiddenInput, _sfc_main$105 as RadioIndicator, _sfc_main$106 as RadioRoot, Rating, _sfc_main$107 as RatingHiddenInput, _sfc_main$108 as RatingItem, _sfc_main$109 as RatingRoot, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, _sfc_main$110 as Scrim, Select, _sfc_main$111 as SelectActivator, _sfc_main$112 as SelectContent, _sfc_main$113 as SelectCue, _sfc_main$114 as SelectItem, _sfc_main$115 as SelectPlaceholder, _sfc_main$116 as SelectRoot, _sfc_main$117 as SelectValue, Selection, _sfc_main$118 as SelectionItem, _sfc_main$119 as SelectionRoot, ServerAdapter$1 as ServerAdapter, Single, _sfc_main$120 as SingleItem, _sfc_main$121 as SingleRoot, Slider, _sfc_main$122 as SliderHiddenInput, _sfc_main$123 as SliderRange, _sfc_main$124 as SliderRoot, _sfc_main$125 as SliderThumb, _sfc_main$126 as SliderTrack, Snackbar, _sfc_main$127 as SnackbarClose, _sfc_main$128 as SnackbarContent, _sfc_main$129 as SnackbarPortal, _sfc_main$130 as SnackbarQueue, _sfc_main$131 as SnackbarRoot, Splitter, _sfc_main$132 as SplitterHandle, _sfc_main$133 as SplitterPanel, _sfc_main$134 as SplitterRoot, Step, _sfc_main$135 as StepItem, _sfc_main$136 as StepRoot, Switch, _sfc_main$137 as SwitchGroup, _sfc_main$138 as SwitchHiddenInput, _sfc_main$139 as SwitchRoot, _sfc_main$140 as SwitchSelectAll, _sfc_main$141 as SwitchThumb, _sfc_main$142 as SwitchTrack, Tabs, _sfc_main$143 as TabsItem, _sfc_main$144 as TabsList, _sfc_main$145 as TabsPanel, _sfc_main$146 as TabsRoot, _sfc_main$147 as Theme, Toggle, _sfc_main$148 as ToggleGroup, _sfc_main$149 as ToggleIndicator, _sfc_main$150 as ToggleRoot, Treeview, _sfc_main$151 as TreeviewActivator, _sfc_main$152 as TreeviewCheckbox, _sfc_main$153 as TreeviewContent, _sfc_main$154 as TreeviewCue, _sfc_main$155 as TreeviewGroup, _sfc_main$156 as TreeviewIndicator, _sfc_main$157 as TreeviewItem, _sfc_main$158 as TreeviewList, _sfc_main$159 as TreeviewRoot, _sfc_main$160 as TreeviewSelectAll, V0StyleSheetThemeAdapter, V0UnheadThemeAdapter, VirtualAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0RtlAdapter, __LOGGER_ENABLED__, apca, clamp, computeDepth, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createCombobox, createComboboxContext, createContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createInput, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createNotifications, createNotificationsContext, createNotificationsPlugin, createNumberField, createNumeric, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createProgress, createProgressContext, createQueue, createQueueContext, createRating, createRatingContext, createRegistry, createRegistryContext, createRtl, createRtlContext, createRtlFallback, createRtlPlugin, createRules, createRulesContext, createRulesFallback, createRulesPlugin, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, createValidation, createVirtual, createVirtualContext, extractLeaves, flatten, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isStandardSchema, isString, isSymbol, isUndefined, mergeDeep, provideAlertDialogContext, provideAvatarRoot, provideBreadcrumbsRoot, provideButtonGroup, provideButtonRoot, provideCarouselRoot, provideCheckboxGroup, provideCheckboxRoot, provideCollapsible, provideComboboxContext, provideContext, provideDialogContext, provideExpansionPanelGroup, provideExpansionPanelRoot, provideGroupRoot, provideImageRoot, provideInputRoot, provideNumberFieldRoot, providePaginationControls, providePaginationItems, providePaginationRoot, providePopoverContext, provideProgressRoot, provideRadioGroup, provideRadioRoot, provideRatingRoot, provideSelectContext, provideSelectionRoot, provideSingleRoot, provideSliderRoot, provideSnackbarQueueContext, provideSnackbarRootContext, provideSplitterRoot, provideStepRoot, provideSwitchGroup, provideSwitchRoot, provideTabsRoot, provideToggleGroup, provideToggleRoot, provideTreeviewItem, provideTreeviewList, provideTreeviewRoot, range, resolveHeaders, resolveIds, resolveIndexes, rgbToHex, toArray, toElement, toReactive, useAlertDialogContext, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useButtonGroup, useButtonRoot, useCarouselRoot, useCheckboxGroup, useCheckboxRoot, useClickOutside, useCollapsible, useCombobox, useComboboxContext, useContext, useDataTable, useDate, useDialogContext, useDocumentEventListener, 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, usePagination, usePaginationControls, usePaginationItems, usePaginationRoot, usePermissions, usePopover, usePopoverContext, usePrefersContrast, usePrefersDark, usePrefersReducedMotion, usePresence, useProgress, useProgressRoot, useProxyModel, useProxyRegistry, useQueue, useRadioGroup, useRadioRoot, useRaf, useRating, useRatingRoot, 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, useTreeviewItem, useTreeviewList, useTreeviewRoot, useVirtual, useVirtualFocus, useWindowEventListener, version };
26664
+ 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 AvatarImage, _sfc_main$12 as AvatarRoot, Breadcrumbs, _sfc_main$13 as BreadcrumbsDivider, _sfc_main$14 as BreadcrumbsEllipsis, _sfc_main$15 as BreadcrumbsItem, _sfc_main$16 as BreadcrumbsLink, _sfc_main$17 as BreadcrumbsList, _sfc_main$18 as BreadcrumbsPage, _sfc_main$19 as BreadcrumbsRoot, Button, _sfc_main$20 as ButtonContent, _sfc_main$21 as ButtonGroup, _sfc_main$22 as ButtonHiddenInput, _sfc_main$23 as ButtonIcon, _sfc_main$24 as ButtonLoading, _sfc_main$25 as ButtonRoot, Carousel, _sfc_main$26 as CarouselIndicator, _sfc_main$27 as CarouselItem, _sfc_main$28 as CarouselLiveRegion, _sfc_main$29 as CarouselNext, _sfc_main$30 as CarouselPrevious, _sfc_main$31 as CarouselProgress, _sfc_main$32 as CarouselRoot, _sfc_main$33 as CarouselViewport, Checkbox, _sfc_main$34 as CheckboxGroup, _sfc_main$35 as CheckboxHiddenInput, _sfc_main$36 as CheckboxIndicator, _sfc_main$37 as CheckboxRoot, _sfc_main$38 as CheckboxSelectAll, ClientAdapter, Collapsible, _sfc_main$39 as CollapsibleActivator, _sfc_main$40 as CollapsibleContent, _sfc_main$41 as CollapsibleCue, _sfc_main$42 as CollapsibleRoot, Combobox, _sfc_main$43 as ComboboxActivator, ClientAdapter$1 as ComboboxClientAdapter, _sfc_main$44 as ComboboxContent, _sfc_main$45 as ComboboxControl, _sfc_main$46 as ComboboxCue, _sfc_main$47 as ComboboxDescription, _sfc_main$48 as ComboboxEmpty, _sfc_main$49 as ComboboxError, _sfc_main$50 as ComboboxItem, _sfc_main$51 as ComboboxRoot, ServerAdapter as ComboboxServerAdapter, ConsolaLoggerAdapter, DataTableAdapter, Dialog, _sfc_main$52 as DialogActivator, _sfc_main$53 as DialogClose, _sfc_main$54 as DialogContent, _sfc_main$55 as DialogDescription, _sfc_main$56 as DialogRoot, _sfc_main$57 as DialogTitle, ExpansionPanel, _sfc_main$58 as ExpansionPanelActivator, _sfc_main$59 as ExpansionPanelContent, _sfc_main$60 as ExpansionPanelCue, _sfc_main$61 as ExpansionPanelGroup, _sfc_main$62 as ExpansionPanelHeader, _sfc_main$63 as ExpansionPanelRoot, FeaturesAdapter, _sfc_main$64 as Form, Group, _sfc_main$65 as GroupItem, _sfc_main$66 as GroupRoot, IN_BROWSER, Image, _sfc_main$67 as ImageFallback, _sfc_main$68 as ImageImg, _sfc_main$69 as ImagePlaceholder, _sfc_main$70 as ImageRoot, Input, _sfc_main$71 as InputControl, _sfc_main$72 as InputDescription, _sfc_main$73 as InputError, _sfc_main$74 as InputRoot, _sfc_main$75 as Locale, MemoryAdapter, NumberField, _sfc_main$76 as NumberFieldControl, _sfc_main$77 as NumberFieldDecrement, _sfc_main$78 as NumberFieldDescription, _sfc_main$79 as NumberFieldError, _sfc_main$80 as NumberFieldIncrement, _sfc_main$81 as NumberFieldRoot, _sfc_main$82 as NumberFieldScrub, Overflow, _sfc_main$83 as OverflowIndicator, _sfc_main$84 as OverflowItem, _sfc_main$85 as OverflowRoot, Pagination, _sfc_main$86 as PaginationEllipsis, _sfc_main$87 as PaginationFirst, _sfc_main$88 as PaginationItem, _sfc_main$89 as PaginationLast, _sfc_main$90 as PaginationNext, _sfc_main$91 as PaginationPrev, _sfc_main$92 as PaginationRoot, _sfc_main$93 as PaginationStatus, PermissionAdapter, PinoLoggerAdapter, Popover, _sfc_main$94 as PopoverActivator, _sfc_main$95 as PopoverContent, _sfc_main$96 as PopoverRoot, _sfc_main$97 as Portal, _sfc_main$98 as Presence, Progress, _sfc_main$99 as ProgressBuffer, _sfc_main$100 as ProgressFill, _sfc_main$101 as ProgressHiddenInput, _sfc_main$102 as ProgressLabel, _sfc_main$103 as ProgressRoot, _sfc_main$104 as ProgressTrack, _sfc_main$105 as ProgressValue, Radio, _sfc_main$106 as RadioGroup, _sfc_main$107 as RadioHiddenInput, _sfc_main$108 as RadioIndicator, _sfc_main$109 as RadioRoot, Rating, _sfc_main$110 as RatingHiddenInput, _sfc_main$111 as RatingItem, _sfc_main$112 as RatingRoot, SELF_CLOSING_TAGS, SUPPORTS_INTERSECTION_OBSERVER, SUPPORTS_MATCH_MEDIA, SUPPORTS_MUTATION_OBSERVER, SUPPORTS_OBSERVER, SUPPORTS_TOUCH, _sfc_main$113 as Scrim, Select, _sfc_main$114 as SelectActivator, _sfc_main$115 as SelectContent, _sfc_main$116 as SelectCue, _sfc_main$117 as SelectItem, _sfc_main$118 as SelectPlaceholder, _sfc_main$119 as SelectRoot, _sfc_main$120 as SelectValue, Selection, _sfc_main$121 as SelectionItem, _sfc_main$122 as SelectionRoot, ServerAdapter$1 as ServerAdapter, Single, _sfc_main$123 as SingleItem, _sfc_main$124 as SingleRoot, Slider, _sfc_main$125 as SliderHiddenInput, _sfc_main$126 as SliderRange, _sfc_main$127 as SliderRoot, _sfc_main$128 as SliderThumb, _sfc_main$129 as SliderTrack, Snackbar, _sfc_main$130 as SnackbarClose, _sfc_main$131 as SnackbarContent, _sfc_main$132 as SnackbarPortal, _sfc_main$133 as SnackbarQueue, _sfc_main$134 as SnackbarRoot, Splitter, _sfc_main$135 as SplitterHandle, _sfc_main$136 as SplitterPanel, _sfc_main$137 as SplitterRoot, Step, _sfc_main$138 as StepItem, _sfc_main$139 as StepRoot, Switch, _sfc_main$140 as SwitchGroup, _sfc_main$141 as SwitchHiddenInput, _sfc_main$142 as SwitchRoot, _sfc_main$143 as SwitchSelectAll, _sfc_main$144 as SwitchThumb, _sfc_main$145 as SwitchTrack, Tabs, _sfc_main$146 as TabsItem, _sfc_main$147 as TabsList, _sfc_main$148 as TabsPanel, _sfc_main$149 as TabsRoot, _sfc_main$150 as Theme, Toggle, _sfc_main$151 as ToggleGroup, _sfc_main$152 as ToggleIndicator, _sfc_main$153 as ToggleRoot, Treeview, _sfc_main$154 as TreeviewActivator, _sfc_main$155 as TreeviewCheckbox, _sfc_main$156 as TreeviewContent, _sfc_main$157 as TreeviewCue, _sfc_main$158 as TreeviewGroup, _sfc_main$159 as TreeviewIndicator, _sfc_main$160 as TreeviewItem, _sfc_main$161 as TreeviewList, _sfc_main$162 as TreeviewRoot, _sfc_main$163 as TreeviewSelectAll, V0StyleSheetThemeAdapter, V0UnheadThemeAdapter, VirtualAdapter, Vuetify0LocaleAdapter, Vuetify0LoggerAdapter, Vuetify0RtlAdapter, __LOGGER_ENABLED__, apca, clamp, computeDepth, createBreadcrumbs, createBreadcrumbsContext, createBreakpoints, createBreakpointsContext, createBreakpointsPlugin, createCombobox, createComboboxContext, createContext, createDataTable, createDataTableContext, createDate, createDateContext, createDatePlugin, createFallbackHydration, createFeatures, createFeaturesContext, createFeaturesPlugin, createFilter, createFilterContext, createForm, createFormContext, createGroup, createGroupContext, createHydration, createHydrationContext, createHydrationPlugin, createInput, createLocale, createLocaleContext, createLocaleFallback, createLocalePlugin, createLogger, createLoggerContext, createLoggerPlugin, createModel, createNested, createNestedContext, createNotifications, createNotificationsContext, createNotificationsPlugin, createNumberField, createNumeric, createOverflow, createOverflowContext, createPagination, createPaginationContext, createPermissions, createPermissionsContext, createPermissionsPlugin, createPlugin, createPluginContext, createProgress, createProgressContext, createQueue, createQueueContext, createRating, createRatingContext, createRegistry, createRegistryContext, createRtl, createRtlContext, createRtlFallback, createRtlPlugin, createRules, createRulesContext, createRulesFallback, createRulesPlugin, createSelection, createSelectionContext, createSingle, createSingleContext, createSlider, createStack, createStackContext, createStackPlugin, createStep, createStepContext, createStorage, createStorageContext, createStoragePlugin, createTheme, createThemeContext, createThemePlugin, createTimeline, createTimelineContext, createTokens, createTokensContext, createTrinity, createValidation, createVirtual, createVirtualContext, extractLeaves, flatten, foreground, hexToRgb, instanceExists, instanceName, isArray, isBoolean, isElement, isFunction, isNaN, isNull, isNullOrUndefined, isNumber, isObject, isPrimitive, isSelfClosingTag, isStandardSchema, isString, isSymbol, isUndefined, mergeDeep, provideAlertDialogContext, 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, provideTreeviewItem, provideTreeviewList, provideTreeviewRoot, range, resolveHeaders, resolveIds, resolveIndexes, rgbToHex, toArray, toElement, toReactive, useAlertDialogContext, useAvatarRoot, useBreadcrumbs, useBreadcrumbsRoot, useBreakpoints, useButtonGroup, useButtonRoot, useCarouselRoot, useCheckboxGroup, useCheckboxRoot, useClickOutside, useCollapsible, useCombobox, useComboboxContext, useContext, useDataTable, useDate, useDelay, useDialogContext, useDocumentEventListener, 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, 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, useTreeviewItem, useTreeviewList, useTreeviewRoot, useVirtual, useVirtualFocus, useWindowEventListener, version };