@vuetify/v0 1.0.0-alpha.1 → 1.0.0-alpha.2

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 (155) hide show
  1. package/dist/{adapter-T7AedXkz.d.mts → adapter-58IvIfAZ.d.mts} +1 -1
  2. package/dist/{adapter-DtgIrQsG.mjs → adapter-Be9zUc-n.mjs} +1 -1
  3. package/dist/{adapter-DoziXEzS.d.mts → adapter-BvWEd9w-.d.mts} +2 -2
  4. package/dist/{adapter-J7ude3gO.d.mts → adapter-DlX3FA3A.d.mts} +1 -1
  5. package/dist/{adapter-CDpOQ8sn.mjs → adapter-gQ2SNKZq.mjs} +3 -3
  6. package/dist/{adapters-Da2twiUn.mjs → adapters-BJ5n7rgh.mjs} +1 -1
  7. package/dist/adapters-BnKW0BF_.mjs +2 -0
  8. package/dist/adapters-CBrvizWb.mjs +4 -0
  9. package/dist/adapters-CMJGA1k7.mjs +2 -0
  10. package/dist/adapters-Dse4bPxk.mjs +5 -0
  11. package/dist/browser/index.js +166 -159
  12. package/dist/components/index.d.mts +2 -2
  13. package/dist/components/index.mjs +1 -1
  14. package/dist/{components-CaPQCjo5.mjs → components-CqDewYTU.mjs} +63 -37
  15. package/dist/composables/index.d.mts +18 -18
  16. package/dist/composables/index.mjs +26 -24
  17. package/dist/{consola-Byg0ybzh.d.mts → consola-BdgyPEfx.d.mts} +1 -1
  18. package/dist/constants/index.d.mts +2 -2
  19. package/dist/constants/index.mjs +3 -3
  20. package/dist/{createDataTable-B4UflKnT.mjs → createDataTable-rXBqGglI.mjs} +15 -12
  21. package/dist/{createGroup-BC2nfttd.mjs → createGroup-BU4olYtB.mjs} +7 -7
  22. package/dist/{createTokens-oJAeh262.mjs → createRegistry-Dl-bSSTr.mjs} +6 -299
  23. package/dist/{createSelection-BA9guLah.mjs → createSelection-Csaa-C8p.mjs} +1 -1
  24. package/dist/{createSingle-BHxHLZeg.mjs → createSingle-8xbHAIpY.mjs} +1 -1
  25. package/dist/createTokens-lNg2M_P_.mjs +302 -0
  26. package/dist/data-table/adapters/client/index.d.mts +1 -1
  27. package/dist/data-table/adapters/client/index.mjs +1 -1
  28. package/dist/data-table/adapters/index.d.mts +4 -4
  29. package/dist/data-table/adapters/index.mjs +5 -5
  30. package/dist/data-table/adapters/server/index.d.mts +1 -1
  31. package/dist/data-table/adapters/server/index.mjs +1 -1
  32. package/dist/data-table/adapters/virtual/index.d.mts +1 -1
  33. package/dist/data-table/adapters/virtual/index.mjs +1 -1
  34. package/dist/data-table/index.d.mts +5 -5
  35. package/dist/data-table/index.mjs +5 -5
  36. package/dist/date/index.d.mts +2 -2
  37. package/dist/date/index.mjs +4 -4
  38. package/dist/features/adapters/flagsmith/index.d.mts +1 -1
  39. package/dist/features/adapters/flagsmith/index.mjs +1 -1
  40. package/dist/features/adapters/launchdarkly/index.d.mts +1 -1
  41. package/dist/features/adapters/launchdarkly/index.mjs +1 -1
  42. package/dist/features/adapters/posthog/index.d.mts +1 -1
  43. package/dist/features/adapters/posthog/index.mjs +1 -1
  44. package/dist/features/index.d.mts +2 -2
  45. package/dist/features/index.mjs +1 -1
  46. package/dist/{globals-Berkg6mP.mjs → globals-CKdzjeLe.mjs} +1 -1
  47. package/dist/htmlElements-D4oMQZPJ.mjs +28 -0
  48. package/dist/{index-M8EpGjjA.d.mts → index-1XdASTjp.d.mts} +1 -1
  49. package/dist/{index-Gk3x_7zD.d.mts → index-B7cqgTBL.d.mts} +115 -117
  50. package/dist/{index-DVPq3_Fz.d.mts → index-BJGcVy7e.d.mts} +4 -4
  51. package/dist/index-BgCkepP_.d.mts +31 -0
  52. package/dist/{index-DFvLSoto.d.mts → index-BxKMMWnQ.d.mts} +9 -9
  53. package/dist/{index-tyzwWFHS.d.mts → index-BzFHTW59.d.mts} +1 -1
  54. package/dist/{index-CDcl4wPo.d.mts → index-CT5SCLzW.d.mts} +1 -1
  55. package/dist/{index-TtSSvHY6.d.mts → index-DE3bWw11.d.mts} +2 -2
  56. package/dist/{index-F2Fmxnzi.d.mts → index-Dp1HjBxJ.d.mts} +1 -1
  57. package/dist/{index-B_AlCD7t.d.mts → index-DuddF-NR.d.mts} +2 -9
  58. package/dist/{index-Dxx0eMLi.d.mts → index-GOpjKzaJ.d.mts} +1 -1
  59. package/dist/index.d.mts +23 -23
  60. package/dist/index.mjs +30 -28
  61. package/dist/json/attributes.json +4 -4
  62. package/dist/json/web-types.json +5 -5
  63. package/dist/locale/adapters/index.d.mts +2 -2
  64. package/dist/locale/adapters/index.mjs +2 -2
  65. package/dist/locale/adapters/v0/index.d.mts +1 -1
  66. package/dist/locale/adapters/v0/index.mjs +1 -1
  67. package/dist/locale/adapters/vue-i18n/index.d.mts +1 -1
  68. package/dist/locale/index.d.mts +3 -3
  69. package/dist/locale/index.mjs +2 -2
  70. package/dist/logger/adapters/consola/index.d.mts +1 -1
  71. package/dist/logger/adapters/index.d.mts +4 -4
  72. package/dist/logger/adapters/index.mjs +2 -2
  73. package/dist/logger/adapters/pino/index.d.mts +1 -1
  74. package/dist/logger/adapters/v0/index.d.mts +1 -1
  75. package/dist/logger/adapters/v0/index.mjs +1 -1
  76. package/dist/logger/index.d.mts +5 -5
  77. package/dist/logger/index.mjs +2 -2
  78. package/dist/notifications/index.d.mts +2 -2
  79. package/dist/notifications/index.mjs +3 -54
  80. package/dist/palettes/ant/generate/index.mjs +1 -0
  81. package/dist/palettes/ant/index.d.mts +1 -1
  82. package/dist/palettes/index.d.mts +3 -3
  83. package/dist/palettes/leonardo/generate/index.mjs +1 -0
  84. package/dist/palettes/material/generate/index.mjs +1 -0
  85. package/dist/palettes/material/index.d.mts +1 -1
  86. package/dist/palettes/md1/index.d.mts +1 -1
  87. package/dist/palettes/md2/index.d.mts +1 -1
  88. package/dist/palettes/radix/index.d.mts +1 -1
  89. package/dist/palettes/tailwind/index.d.mts +1 -1
  90. package/dist/permissions/adapters/index.d.mts +1 -1
  91. package/dist/permissions/adapters/index.mjs +2 -2
  92. package/dist/permissions/adapters/v0/index.d.mts +1 -1
  93. package/dist/permissions/adapters/v0/index.mjs +1 -1
  94. package/dist/permissions/index.d.mts +1 -1
  95. package/dist/permissions/index.mjs +2 -2
  96. package/dist/{pino-BxddSW2l.d.mts → pino-DNfCEb0p.d.mts} +1 -1
  97. package/dist/{posthog-CPvNHMUb.mjs → posthog-DZNnPXxS.mjs} +1 -1
  98. package/dist/rules/index.d.mts +1 -1
  99. package/dist/rules/index.mjs +1 -1
  100. package/dist/{server-ZiHJ4tfq.d.mts → server-3ilWFwqe.d.mts} +1 -1
  101. package/dist/{server-B6OtHgBT.mjs → server-y7zLSCSx.mjs} +1 -1
  102. package/dist/storage/adapters/index.d.mts +2 -2
  103. package/dist/storage/adapters/index.mjs +1 -1
  104. package/dist/storage/adapters/memory/index.d.mts +1 -1
  105. package/dist/storage/adapters/memory/index.mjs +1 -1
  106. package/dist/storage/index.d.mts +3 -3
  107. package/dist/storage/index.mjs +2 -2
  108. package/dist/theme/adapters/index.d.mts +1 -1
  109. package/dist/theme/adapters/index.mjs +4 -4
  110. package/dist/theme/adapters/unhead/index.d.mts +1 -1
  111. package/dist/theme/adapters/unhead/index.mjs +1 -1
  112. package/dist/theme/adapters/v0/index.d.mts +1 -1
  113. package/dist/theme/adapters/v0/index.mjs +1 -1
  114. package/dist/theme/index.d.mts +1 -1
  115. package/dist/theme/index.mjs +3 -3
  116. package/dist/{toArray-BA_JxFPv.mjs → toArray-as9BWxBK.mjs} +1 -0
  117. package/dist/types/index.d.mts +2 -2
  118. package/dist/{unhead-D2YqAcmF.mjs → unhead-DZiD-4Tx.mjs} +2 -2
  119. package/dist/{useClickOutside-B9a6Jext.mjs → useClickOutside-CmCUD_Pf.mjs} +46 -905
  120. package/dist/{useFeatures-wgMwaQ5W.mjs → useFeatures-ZIvzzuEV.mjs} +8 -7
  121. package/dist/{useLocale-qMmVnAwS.mjs → useLocale-DTJx3aKR.mjs} +10 -7
  122. package/dist/{useLogger-DFIRqm-N.mjs → useLogger-BBTcMN61.mjs} +3 -3
  123. package/dist/useNotifications-H4knpvNw.mjs +869 -0
  124. package/dist/{usePermissions-tZhkBJmq.mjs → usePermissions-B_G12Dwd.mjs} +6 -6
  125. package/dist/{useRules-D3UXEtu7.mjs → useRules--7Qoo60I.mjs} +7 -5
  126. package/dist/{useTheme-BeD__R8t.mjs → useTheme-Co05TEeD.mjs} +11 -8
  127. package/dist/utilities/index.d.mts +1 -1
  128. package/dist/utilities/index.mjs +10 -5
  129. package/dist/{v0-6XptGYVx.mjs → v0-BrTEO5sv.mjs} +2 -2
  130. package/dist/{v0-Dzw5OwNo.d.mts → v0-CdusXjY_.d.mts} +1 -1
  131. package/dist/{v0-I2mHxD9T.mjs → v0-D0Mh3EVG.mjs} +1 -1
  132. package/dist/{v0-CWXUkMY0.d.mts → v0-D7Fm2C3Y.d.mts} +1 -1
  133. package/dist/{v0-CNitYI9N.mjs → v0-DeiZuexg.mjs} +1 -1
  134. package/dist/{v0-BG7RhKBv.mjs → v0-Dq3zhexO.mjs} +2 -2
  135. package/dist/{v0-C2UMaHUa.d.mts → v0-DrOub-e1.d.mts} +1 -1
  136. package/dist/{virtual-To-dSw2_.mjs → virtual-C0yHf1DC.mjs} +2 -2
  137. package/dist/{virtual-BCOfxnRS.d.mts → virtual-D4fckewC.d.mts} +1 -1
  138. package/package.json +1 -1
  139. package/dist/adapters-BhNTUuxE.mjs +0 -2
  140. package/dist/adapters-CFjrKxA2.mjs +0 -5
  141. package/dist/adapters-CiCexgsk.mjs +0 -4
  142. package/dist/adapters-DegUcfkd.mjs +0 -2
  143. package/dist/htmlElements-CIePKaTX.mjs +0 -75
  144. package/dist/index-D6mQAEs2.d.mts +0 -79
  145. /package/dist/{adapter-DNKjooxI.d.mts → adapter-Dhq68tz0.d.mts} +0 -0
  146. /package/dist/{createPagination-qvJkcTUY.mjs → createPagination-CHF7SmmK.mjs} +0 -0
  147. /package/dist/{flagsmith-DQnnahG5.mjs → flagsmith-Dbh1h8WF.mjs} +0 -0
  148. /package/dist/{index-DxruGeVY.d.mts → index-C6rdXZ7j.d.mts} +0 -0
  149. /package/dist/{index-DvuJXuAN.d.mts → index-CFhUdAHM.d.mts} +0 -0
  150. /package/dist/{index-PWQavSPf.d.mts → index-CROz1VSV.d.mts} +0 -0
  151. /package/dist/{index-D4odwkZg.d.mts → index-DTvqw22G.d.mts} +0 -0
  152. /package/dist/{launchdarkly-2_48EJ1_.mjs → launchdarkly-BKtW-idu.mjs} +0 -0
  153. /package/dist/{memory-DUyWthic.d.mts → memory-CeSQE-QV.d.mts} +0 -0
  154. /package/dist/{memory-XCMtkld1.mjs → memory-oYBvtkgx.mjs} +0 -0
  155. /package/dist/{v0-4OQBCeda.mjs → v0-Bmow1q_x.mjs} +0 -0
@@ -1,21 +1,23 @@
1
- import { a as SUPPORTS_OBSERVER, i as SUPPORTS_MUTATION_OBSERVER, n as SUPPORTS_INTERSECTION_OBSERVER, r as SUPPORTS_MATCH_MEDIA, t as IN_BROWSER } from "./globals-Berkg6mP.mjs";
1
+ import { a as SUPPORTS_OBSERVER, i as SUPPORTS_MUTATION_OBSERVER, n as SUPPORTS_INTERSECTION_OBSERVER, r as SUPPORTS_MATCH_MEDIA, t as IN_BROWSER } from "./globals-CKdzjeLe.mjs";
2
2
  import { clamp, instanceExists, isArray, isElement, isFunction, isNull, isNullOrUndefined, isNumber, isObject, isString, isUndefined, mergeDeep, range, resolveIds, resolveIndexes, useId as useId$1 } from "./utilities/index.mjs";
3
3
  import { i as useContext, t as createTrinity } from "./createTrinity-BTCs1pYx.mjs";
4
- import { a as createPlugin, i as useLogger, o as createPluginContext } from "./useLogger-DFIRqm-N.mjs";
5
- import { a as createRegistry } from "./createTokens-oJAeh262.mjs";
6
- import { i as createModel, t as createSelection } from "./createSelection-BA9guLah.mjs";
7
- import { t as createSingle } from "./createSingle-BHxHLZeg.mjs";
8
- import { a as useLocale } from "./useLocale-qMmVnAwS.mjs";
9
- import { t as toArray } from "./toArray-BA_JxFPv.mjs";
10
- import { n as createFilter } from "./adapter-CDpOQ8sn.mjs";
11
- import { t as createGroup } from "./createGroup-BC2nfttd.mjs";
12
- import "./createPagination-qvJkcTUY.mjs";
13
- import "./createDataTable-B4UflKnT.mjs";
14
- import { a as useRules, o as isStandardSchema } from "./useRules-D3UXEtu7.mjs";
15
- import "./useFeatures-wgMwaQ5W.mjs";
16
- import "./usePermissions-tZhkBJmq.mjs";
17
- import { t as MemoryAdapter } from "./memory-XCMtkld1.mjs";
18
- import "./useTheme-BeD__R8t.mjs";
4
+ import { a as createPlugin, i as useLogger, o as createPluginContext } from "./useLogger-BBTcMN61.mjs";
5
+ import { t as createRegistry } from "./createRegistry-Dl-bSSTr.mjs";
6
+ import { i as createModel, t as createSelection } from "./createSelection-Csaa-C8p.mjs";
7
+ import { t as createSingle } from "./createSingle-8xbHAIpY.mjs";
8
+ import "./createTokens-lNg2M_P_.mjs";
9
+ import { a as useLocale } from "./useLocale-DTJx3aKR.mjs";
10
+ import { c as useTimer } from "./useNotifications-H4knpvNw.mjs";
11
+ import { t as toArray } from "./toArray-as9BWxBK.mjs";
12
+ import { n as createFilter } from "./adapter-gQ2SNKZq.mjs";
13
+ import { t as createGroup } from "./createGroup-BU4olYtB.mjs";
14
+ import "./createPagination-CHF7SmmK.mjs";
15
+ import "./createDataTable-rXBqGglI.mjs";
16
+ import { a as useRules, o as isStandardSchema } from "./useRules--7Qoo60I.mjs";
17
+ import "./useFeatures-ZIvzzuEV.mjs";
18
+ import "./usePermissions-B_G12Dwd.mjs";
19
+ import { t as MemoryAdapter } from "./memory-oYBvtkgx.mjs";
20
+ import "./useTheme-Co05TEeD.mjs";
19
21
  import { computed, effectScope, hasInjectionContext, isRef, nextTick, onMounted, onScopeDispose, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRef, toValue, unref, watch, watchEffect } from "vue";
20
22
  //#region src/composables/createBreadcrumbs/index.ts
21
23
  /**
@@ -169,142 +171,6 @@ function useBreadcrumbs(namespace = "v0:breadcrumbs") {
169
171
  return useContext(namespace);
170
172
  }
171
173
  //#endregion
172
- //#region src/composables/useTimer/index.ts
173
- /**
174
- * @module useTimer
175
- *
176
- * @see https://0.vuetifyjs.com/composables/system/use-timer
177
- *
178
- * @remarks
179
- * A reactive timer composable with pause/resume support.
180
- *
181
- * Key features:
182
- * - Start/stop/pause/resume controls
183
- * - Reactive remaining time tracking
184
- * - One-shot (default) or repeating mode
185
- * - Automatic cleanup on scope disposal
186
- * - SSR-safe
187
- *
188
- * @example
189
- * ```ts
190
- * import { useTimer } from '@vuetify/v0'
191
- *
192
- * const timer = useTimer(() => console.log('fired'), { duration: 5000 })
193
- * timer.start()
194
- * ```
195
- */
196
- /**
197
- * Creates a reactive timer with pause/resume support.
198
- *
199
- * @param handler Callback invoked when the timer fires.
200
- * @param options Timer configuration.
201
- * @returns Timer controls and reactive state.
202
- *
203
- * @see https://0.vuetifyjs.com/composables/system/use-timer
204
- *
205
- * @example
206
- * ```ts
207
- * const timer = useTimer(() => console.log('fired'), { duration: 5000 })
208
- *
209
- * timer.start()
210
- * timer.pause()
211
- * timer.resume()
212
- * timer.stop()
213
- * ```
214
- */
215
- function useTimer(handler, options = {}) {
216
- const { duration = 1e3, repeat = false } = options;
217
- const remaining = shallowRef(duration);
218
- const isActive = shallowRef(false);
219
- const isPaused = shallowRef(false);
220
- let timeoutId;
221
- let trackingId;
222
- let startedAt = 0;
223
- let budget = duration;
224
- function clearTimer() {
225
- if (!/* @__PURE__ */ isUndefined(timeoutId)) {
226
- globalThis.clearTimeout(timeoutId);
227
- timeoutId = void 0;
228
- }
229
- }
230
- function startTracking() {
231
- stopTracking();
232
- if (!IN_BROWSER) return;
233
- trackingId = globalThis.setInterval(() => {
234
- if (!isActive.value || isPaused.value) return;
235
- const elapsed = Date.now() - startedAt;
236
- remaining.value = Math.max(0, budget - elapsed);
237
- }, 100);
238
- }
239
- function stopTracking() {
240
- if (!/* @__PURE__ */ isUndefined(trackingId)) {
241
- globalThis.clearInterval(trackingId);
242
- trackingId = void 0;
243
- }
244
- }
245
- function fire() {
246
- clearTimer();
247
- stopTracking();
248
- handler();
249
- if (repeat) begin(duration);
250
- else {
251
- isActive.value = false;
252
- remaining.value = 0;
253
- }
254
- }
255
- function begin(ms) {
256
- clearTimer();
257
- stopTracking();
258
- budget = ms;
259
- startedAt = Date.now();
260
- remaining.value = ms;
261
- isActive.value = true;
262
- isPaused.value = false;
263
- timeoutId = globalThis.setTimeout(fire, ms);
264
- startTracking();
265
- }
266
- function start() {
267
- if (duration < 0) return;
268
- begin(duration);
269
- }
270
- function stop() {
271
- clearTimer();
272
- stopTracking();
273
- isActive.value = false;
274
- isPaused.value = false;
275
- remaining.value = duration;
276
- }
277
- function pause() {
278
- if (!isActive.value || isPaused.value) return;
279
- const elapsed = Date.now() - startedAt;
280
- budget = Math.max(0, budget - elapsed);
281
- remaining.value = budget;
282
- clearTimer();
283
- stopTracking();
284
- isPaused.value = true;
285
- }
286
- function resume() {
287
- if (!isPaused.value) return;
288
- isPaused.value = false;
289
- startedAt = Date.now();
290
- timeoutId = globalThis.setTimeout(fire, budget);
291
- startTracking();
292
- }
293
- onScopeDispose(() => {
294
- clearTimer();
295
- stopTracking();
296
- }, true);
297
- return {
298
- start,
299
- stop,
300
- pause,
301
- resume,
302
- remaining,
303
- isActive,
304
- isPaused
305
- };
306
- }
307
- //#endregion
308
174
  //#region src/composables/usePopover/index.ts
309
175
  /**
310
176
  * @module usePopover
@@ -797,7 +663,7 @@ function createCombobox(options = {}) {
797
663
  const hasError = shallowRef(false);
798
664
  const errors = computed(() => {
799
665
  const messages = toValue(errorMessages);
800
- return messages ? toArray(messages) : [];
666
+ return messages ? /* @__PURE__ */ toArray(messages) : [];
801
667
  });
802
668
  const isValid = toRef(() => {
803
669
  if (toValue(error)) return false;
@@ -1043,7 +909,7 @@ function createForm(options = {}) {
1043
909
  for (const ticket of registry.values()) ticket.value.reset();
1044
910
  }
1045
911
  async function submit(id) {
1046
- const ids = id ? toArray(id) : [...registry.keys()];
912
+ const ids = id ? /* @__PURE__ */ toArray(id) : [...registry.keys()];
1047
913
  return (await Promise.all(ids.map(async (key) => {
1048
914
  const ticket = registry.get(key);
1049
915
  if (!ticket) return true;
@@ -1182,7 +1048,7 @@ function createValidation(_options = {}) {
1182
1048
  const isValidating = shallowRef(false);
1183
1049
  let generation = 0;
1184
1050
  function register(input) {
1185
- if (/* @__PURE__ */ isFunction(input) || /* @__PURE__ */ isString(input) || isStandardSchema(input)) {
1051
+ if (/* @__PURE__ */ isFunction(input) || /* @__PURE__ */ isString(input) || /* @__PURE__ */ isStandardSchema(input)) {
1186
1052
  const resolved = rulesContext.resolve([input]);
1187
1053
  return group.register({ value: resolved[0] ?? (() => true) });
1188
1054
  }
@@ -1300,7 +1166,7 @@ function createInput(options) {
1300
1166
  }, { flush: "sync" });
1301
1167
  const errors = computed(() => {
1302
1168
  const manual = toValue(errorMessages);
1303
- return [...manual ? toArray(manual) : [], ...validation.errors.value];
1169
+ return [...manual ? /* @__PURE__ */ toArray(manual) : [], ...validation.errors.value];
1304
1170
  });
1305
1171
  const isValid = toRef(() => {
1306
1172
  if (toValue(error)) return false;
@@ -1443,7 +1309,7 @@ function createNested(_options = {}) {
1443
1309
  }
1444
1310
  function open(ids) {
1445
1311
  if (toValue(group.disabled)) return;
1446
- for (const id of toArray(ids)) {
1312
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1447
1313
  if (!group.has(id)) continue;
1448
1314
  const item = group.get(id);
1449
1315
  if (!item || toValue(item.disabled)) continue;
@@ -1462,7 +1328,7 @@ function createNested(_options = {}) {
1462
1328
  }
1463
1329
  function close(ids) {
1464
1330
  if (toValue(group.disabled)) return;
1465
- for (const id of toArray(ids)) {
1331
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1466
1332
  if (!group.has(id)) continue;
1467
1333
  const item = group.get(id);
1468
1334
  if (!item || toValue(item.disabled)) continue;
@@ -1471,7 +1337,7 @@ function createNested(_options = {}) {
1471
1337
  }
1472
1338
  function flip(ids) {
1473
1339
  if (toValue(group.disabled)) return;
1474
- for (const id of toArray(ids)) {
1340
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1475
1341
  if (!group.has(id)) continue;
1476
1342
  const item = group.get(id);
1477
1343
  if (!item || toValue(item.disabled)) continue;
@@ -1484,7 +1350,7 @@ function createNested(_options = {}) {
1484
1350
  * Useful for expanding a section with its immediate subcategories.
1485
1351
  */
1486
1352
  function unfold(ids) {
1487
- for (const id of toArray(ids)) {
1353
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1488
1354
  if (!group.has(id)) continue;
1489
1355
  open(id);
1490
1356
  const childIds = children.get(id) ?? [];
@@ -1496,7 +1362,7 @@ function createNested(_options = {}) {
1496
1362
  * Makes the node visible in a collapsed tree without opening the node itself.
1497
1363
  */
1498
1364
  function reveal(ids) {
1499
- for (const id of toArray(ids)) {
1365
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1500
1366
  if (!group.has(id)) continue;
1501
1367
  const ancestorIds = getAncestors(id);
1502
1368
  if (ancestorIds.length > 0) open(ancestorIds);
@@ -1507,7 +1373,7 @@ function createNested(_options = {}) {
1507
1373
  * Opens the entire subtree rooted at the given node.
1508
1374
  */
1509
1375
  function expand(ids) {
1510
- for (const id of toArray(ids)) {
1376
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1511
1377
  if (!group.has(id)) continue;
1512
1378
  if (!isLeaf(id)) open(id);
1513
1379
  for (const descendantId of getDescendants(id)) if (!isLeaf(descendantId)) open(descendantId);
@@ -1533,7 +1399,7 @@ function createNested(_options = {}) {
1533
1399
  return activeIds.has(id);
1534
1400
  }
1535
1401
  function activate(ids) {
1536
- for (const id of toArray(ids)) {
1402
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1537
1403
  if (!group.has(id)) continue;
1538
1404
  if (activeMode === "single") {
1539
1405
  for (const activeId of activeIds) if (activeId !== id) activeIds.delete(activeId);
@@ -1542,7 +1408,7 @@ function createNested(_options = {}) {
1542
1408
  }
1543
1409
  }
1544
1410
  function deactivate(ids) {
1545
- for (const id of toArray(ids)) activeIds.delete(id);
1411
+ for (const id of /* @__PURE__ */ toArray(ids)) activeIds.delete(id);
1546
1412
  }
1547
1413
  function deactivateAll() {
1548
1414
  activeIds.clear();
@@ -1674,7 +1540,7 @@ function createNested(_options = {}) {
1674
1540
  }
1675
1541
  function select(ids) {
1676
1542
  if (toValue(group.disabled)) return;
1677
- for (const id of toArray(ids)) {
1543
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1678
1544
  if (!group.has(id)) continue;
1679
1545
  const item = group.get(id);
1680
1546
  if (!item || toValue(item.disabled)) continue;
@@ -1701,7 +1567,7 @@ function createNested(_options = {}) {
1701
1567
  }
1702
1568
  function unselect(ids) {
1703
1569
  if (toValue(group.disabled)) return;
1704
- for (const id of toArray(ids)) {
1570
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1705
1571
  if (!group.has(id)) continue;
1706
1572
  const item = group.get(id);
1707
1573
  if (!item || toValue(item.disabled)) continue;
@@ -1728,7 +1594,7 @@ function createNested(_options = {}) {
1728
1594
  }
1729
1595
  function toggle(ids) {
1730
1596
  if (toValue(group.disabled)) return;
1731
- for (const id of toArray(ids)) {
1597
+ for (const id of /* @__PURE__ */ toArray(ids)) {
1732
1598
  const item = group.get(id);
1733
1599
  if (!item || toValue(item.disabled)) continue;
1734
1600
  if (selectionMode === "independent") group.toggle(id);
@@ -2947,205 +2813,6 @@ function useProgress(namespace = "v0:progress") {
2947
2813
  return useContext(namespace);
2948
2814
  }
2949
2815
  //#endregion
2950
- //#region src/composables/createQueue/index.ts
2951
- /**
2952
- * @module createQueue
2953
- *
2954
- * @see https://0.vuetifyjs.com/composables/registration/create-queue
2955
- *
2956
- * @remarks
2957
- * A queue composable for managing time-based collections with:
2958
- * - Automatic timeout-based removal
2959
- * - Pause/resume functionality
2960
- * - FIFO (First In, First Out) ordering
2961
- * - Manual dismissal support
2962
- * - Queue progression management
2963
- *
2964
- * Built on top of createRegistry, the queue automatically manages timeouts for tickets,
2965
- * ensuring only the first ticket in the queue is active at any time. When a ticket
2966
- * expires or is removed, the next ticket in the queue automatically becomes active.
2967
- *
2968
- * @example
2969
- * ```ts
2970
- * import { createQueue } from '@vuetify/v0'
2971
- *
2972
- * const queue = createQueue()
2973
- * queue.register({ value: 'Notification 1', timeout: 3000 })
2974
- * queue.register({ value: 'Notification 2', timeout: 3000 })
2975
- * ```
2976
- */
2977
- /**
2978
- * Creates a new queue instance
2979
- *
2980
- * @param options The options for the queue instance
2981
- * @returns A new queue instance
2982
- *
2983
- * @see https://0.vuetifyjs.com/composables/registration/create-queue
2984
- *
2985
- * @example
2986
- * ```ts
2987
- * import { useQueue } from '@vuetify/v0'
2988
- *
2989
- * const queue = useQueue()
2990
- *
2991
- * // Register an ticket with default timeout (3000ms)
2992
- * const ticket1 = queue.register({ value: 'Ticket 1' })
2993
- *
2994
- * // Register an ticket with custom timeout
2995
- * const ticket2 = queue.register({ value: 'Ticket 2', timeout: 5000 })
2996
- *
2997
- * // Register a persistent ticket that must be manually dismissed
2998
- * const ticket3 = queue.register({ value: 'Ticket 3', timeout: -1 })
2999
- *
3000
- * // Dismiss an ticket using the convenience method
3001
- * ticket3.dismiss()
3002
- *
3003
- * console.log(queue.size) // 2
3004
- * ```
3005
- */
3006
- function createQueue(_options = {}) {
3007
- const { timeout: _timeout = 3e3, ...options } = _options;
3008
- const registry = createRegistry({
3009
- ...options,
3010
- events: true
3011
- });
3012
- const timers = /* @__PURE__ */ new Map();
3013
- function createTicketTimer(ticket) {
3014
- if (/* @__PURE__ */ isUndefined(ticket.timeout) || ticket.timeout < 0 || ticket.isPaused) return;
3015
- const timer = useTimer(() => {
3016
- timers.delete(ticket.id);
3017
- registry.unregister(ticket.id);
3018
- resume();
3019
- }, { duration: ticket.timeout });
3020
- timers.set(ticket.id, timer);
3021
- timer.start();
3022
- }
3023
- function stopTimer(id) {
3024
- const timer = timers.get(id);
3025
- if (timer) {
3026
- timer.stop();
3027
- timers.delete(id);
3028
- }
3029
- }
3030
- function register(registration = {}) {
3031
- const id = registration.id ?? /* @__PURE__ */ useId$1();
3032
- const timeout = Object.prototype.hasOwnProperty.call(registration, "timeout") ? registration.timeout : _timeout;
3033
- const ticket = {
3034
- ...registration,
3035
- id,
3036
- timeout,
3037
- isPaused: registry.size > 0,
3038
- dismiss: () => unregister(id)
3039
- };
3040
- const registered = registry.register(ticket);
3041
- createTicketTimer(registered);
3042
- return registered;
3043
- }
3044
- function unregister(id) {
3045
- const ticket = /* @__PURE__ */ isUndefined(id) ? registry.seek("first") : registry.get(id);
3046
- if (!ticket) return void 0;
3047
- const wasFirst = ticket.index === 0;
3048
- stopTimer(ticket.id);
3049
- registry.unregister(ticket.id);
3050
- if (wasFirst) resume();
3051
- return ticket;
3052
- }
3053
- function offboard(ids) {
3054
- let hadFirst = false;
3055
- for (const id of ids) {
3056
- const ticket = registry.get(id);
3057
- if (!ticket) continue;
3058
- if (ticket.index === 0) hadFirst = true;
3059
- stopTimer(ticket.id);
3060
- }
3061
- registry.offboard(ids);
3062
- if (hadFirst) resume();
3063
- }
3064
- function pause() {
3065
- const ticket = registry.seek("first");
3066
- if (!ticket || ticket.isPaused) return void 0;
3067
- timers.get(ticket.id)?.pause();
3068
- return registry.upsert(ticket.id, { isPaused: true });
3069
- }
3070
- function resume() {
3071
- const ticket = registry.seek("first");
3072
- if (!ticket || ticket.index !== 0 || !ticket.isPaused) return void 0;
3073
- const updated = registry.upsert(ticket.id, { isPaused: false });
3074
- const timer = timers.get(updated.id);
3075
- if (timer) timer.start();
3076
- else createTicketTimer(updated);
3077
- return updated;
3078
- }
3079
- function clear() {
3080
- for (const timer of timers.values()) timer.stop();
3081
- timers.clear();
3082
- registry.clear();
3083
- }
3084
- function dispose() {
3085
- clear();
3086
- registry.dispose();
3087
- }
3088
- onScopeDispose(dispose, true);
3089
- function onboard(registrations) {
3090
- return registry.batch(() => registrations.map((registration) => register(registration)));
3091
- }
3092
- return {
3093
- ...registry,
3094
- register,
3095
- unregister,
3096
- onboard,
3097
- offboard,
3098
- pause,
3099
- resume,
3100
- clear,
3101
- dispose,
3102
- get size() {
3103
- return registry.size;
3104
- }
3105
- };
3106
- }
3107
- /**
3108
- * Creates a new queue context.
3109
- *
3110
- * @param options The options for the queue context.
3111
- * @returns A new queue context.
3112
- *
3113
- * @see https://0.vuetifyjs.com/composables/registration/create-queue
3114
- *
3115
- * @example
3116
- * ```ts
3117
- * import { createQueueContext } from '@vuetify/v0'
3118
- *
3119
- * export const [useQueue, provideQueue, context] = createQueueContext({
3120
- * timeout: 5000,
3121
- * })
3122
- * ```
3123
- */
3124
- function createQueueContext(_options = {}) {
3125
- const { namespace = "v0:queue", ...options } = _options;
3126
- return createTrinity(namespace, createQueue(options));
3127
- }
3128
- /**
3129
- * Returns the current queue instance.
3130
- *
3131
- * @param namespace The namespace for the queue context. Defaults to `'v0:queue'`.
3132
- * @returns The current queue instance.
3133
- *
3134
- * @see https://0.vuetifyjs.com/composables/registration/create-queue
3135
- *
3136
- * @example
3137
- * ```vue
3138
- * <script setup lang="ts">
3139
- * import { useQueue } from '@vuetify/v0'
3140
- *
3141
- * const queue = useQueue()
3142
- * <\/script>
3143
- * ```
3144
- */
3145
- function useQueue(namespace = "v0:queue") {
3146
- return useContext(namespace);
3147
- }
3148
- //#endregion
3149
2816
  //#region src/composables/createRating/index.ts
3150
2817
  /**
3151
2818
  * @module createRating
@@ -4697,7 +4364,7 @@ function createDate(options) {
4697
4364
  const { locales = defaultLocales, adapter, locale: initialLocale, firstDayOfWeek: explicitFirstDay } = options;
4698
4365
  let selectedId;
4699
4366
  try {
4700
- if (instanceExists()) selectedId = useLocale().selectedId;
4367
+ if (/* @__PURE__ */ instanceExists()) selectedId = useLocale().selectedId;
4701
4368
  } catch {}
4702
4369
  const locale = computed(() => {
4703
4370
  const selected = selectedId?.value;
@@ -4713,7 +4380,7 @@ function createDate(options) {
4713
4380
  const loc = locale.value;
4714
4381
  return loc ? deriveFirstDayOfWeek(loc) : 0;
4715
4382
  });
4716
- if (instanceExists()) onScopeDispose(watchEffect(() => {
4383
+ if (/* @__PURE__ */ instanceExists()) onScopeDispose(watchEffect(() => {
4717
4384
  const loc = locale.value;
4718
4385
  if (loc && adapter.locale !== loc) adapter.locale = loc;
4719
4386
  const fdow = firstDayOfWeek.value;
@@ -4825,7 +4492,7 @@ function createDatePlugin(options) {
4825
4492
  * ```
4826
4493
  */
4827
4494
  function useDate(namespace = "v0:date") {
4828
- if (!instanceExists()) throw new Error("[v0] useDate() must be called inside a Vue component with createDatePlugin installed.\n\nExample:\n import { Vuetify0DateAdapter } from '@vuetify/v0/date'\n import { createDatePlugin } from '@vuetify/v0'\n\n app.use(createDatePlugin({ adapter: new Vuetify0DateAdapter() }))");
4495
+ if (!/* @__PURE__ */ instanceExists()) throw new Error("[v0] useDate() must be called inside a Vue component with createDatePlugin installed.\n\nExample:\n import { Vuetify0DateAdapter } from '@vuetify/v0/date'\n import { createDatePlugin } from '@vuetify/v0'\n\n app.use(createDatePlugin({ adapter: new Vuetify0DateAdapter() }))");
4829
4496
  return useContext(namespace);
4830
4497
  }
4831
4498
  //#endregion
@@ -4855,6 +4522,7 @@ const keyAliasMap = {
4855
4522
  minus: "-",
4856
4523
  hyphen: "-"
4857
4524
  };
4525
+ /* @__NO_SIDE_EFFECTS__ */
4858
4526
  function normalizeKey(key) {
4859
4527
  const lowerKey = key.toLowerCase();
4860
4528
  return keyAliasMap[lowerKey] ?? lowerKey;
@@ -4906,7 +4574,7 @@ function splitKeyCombination(combination, isInternal = false) {
4906
4574
  function flushBuffer(separator) {
4907
4575
  if (buffer) {
4908
4576
  if (separator) separators.push(separator);
4909
- keys.push(normalizeKey(buffer));
4577
+ keys.push(/* @__PURE__ */ normalizeKey(buffer));
4910
4578
  buffer = "";
4911
4579
  }
4912
4580
  }
@@ -4939,7 +4607,7 @@ function splitKeyCombination(combination, isInternal = false) {
4939
4607
  return emptyResult;
4940
4608
  }
4941
4609
  if (keys.length === 0 && combination) return {
4942
- keys: [normalizeKey(combination)],
4610
+ keys: [/* @__PURE__ */ normalizeKey(combination)],
4943
4611
  separators
4944
4612
  };
4945
4613
  /* v8 ignore stop */
@@ -5849,533 +5517,6 @@ function useMutationObserver(target, callback, options = {}) {
5849
5517
  });
5850
5518
  }
5851
5519
  //#endregion
5852
- //#region src/composables/useNotifications/index.ts
5853
- /**
5854
- * @module useNotifications
5855
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
5856
- *
5857
- * @remarks
5858
- * Notification management composable built on createRegistry and createQueue.
5859
- * Registry stores the full notification lifecycle (permanent record).
5860
- * Queue manages the display surface (toasts) with FIFO ordering and auto-dismiss.
5861
- *
5862
- * Supports:
5863
- * - Push notifications with severity levels and configurable timeouts
5864
- * - State mutations: read, seen, archived, snoozed
5865
- * - Bulk operations: readAll, archiveAll, clear
5866
- * - Toast queue with pause/resume and auto-dismiss
5867
- * - Adapter integration via event system
5868
- * - Plugin installation via createNotificationsPlugin
5869
- *
5870
- * @example
5871
- * ```ts
5872
- * import { useNotifications } from '@vuetify/v0'
5873
- *
5874
- * const notifications = useNotifications()
5875
- * notifications.send({ subject: 'Saved', severity: 'success' })
5876
- * ```
5877
- */
5878
- function createNotifications(options = {}) {
5879
- const { timeout = 3e3, ...registryOptions } = options;
5880
- const registry = createRegistry({
5881
- ...registryOptions,
5882
- events: true,
5883
- reactive: true
5884
- });
5885
- const queue = createQueue({
5886
- timeout,
5887
- events: true,
5888
- reactive: true
5889
- });
5890
- registry.on("unregister:ticket", (ticket) => {
5891
- if (queue.has(ticket.id)) queue.unregister(ticket.id);
5892
- });
5893
- /**
5894
- * Build a full {@link NotificationTicket} from raw input
5895
- *
5896
- * @param input The notification input to hydrate.
5897
- * @returns A partial ticket with timestamps, lifecycle methods, and an ID.
5898
- * @internal Used by {@link send}, {@link register}, and {@link onboard}.
5899
- */
5900
- function hydrate(input) {
5901
- const id = input.id ?? /* @__PURE__ */ useId$1();
5902
- const now = /* @__PURE__ */ new Date();
5903
- return {
5904
- ...input,
5905
- id,
5906
- createdAt: now,
5907
- readAt: null,
5908
- seenAt: null,
5909
- archivedAt: null,
5910
- snoozedUntil: null,
5911
- read: () => read(id),
5912
- unread: () => unread(id),
5913
- seen: () => seen(id),
5914
- archive: () => archive(id),
5915
- unarchive: () => unarchive(id),
5916
- snooze: (until) => snooze(id, until),
5917
- wake: () => wake(id),
5918
- dismiss: () => queue.unregister(id)
5919
- };
5920
- }
5921
- /**
5922
- * Create a notification and enqueue it for toast display
5923
- *
5924
- * @param input The notification input to create.
5925
- * @returns The hydrated notification ticket.
5926
- * @remarks Hydrates the input with timestamps and lifecycle methods, registers
5927
- * it in the registry, adds it to the display queue, and emits
5928
- * `notification:received`. The ticket auto-dismisses after the configured
5929
- * timeout unless paused.
5930
- *
5931
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
5932
- *
5933
- * @example
5934
- * ```ts
5935
- * import { useNotifications } from '@vuetify/v0'
5936
- *
5937
- * const notifications = useNotifications()
5938
- *
5939
- * // Basic toast
5940
- * notifications.send({ subject: 'Changes saved', severity: 'success' })
5941
- *
5942
- * // With custom timeout
5943
- * const ticket = notifications.send({ subject: 'Connection lost', severity: 'error', timeout: 10000 })
5944
- *
5945
- * console.log(ticket.id) // 'generated-id'
5946
- * console.log(ticket.createdAt) // Date
5947
- * console.log(ticket.readAt) // null
5948
- *
5949
- * // Ticket convenience methods
5950
- * ticket.read() // marks as read
5951
- * ticket.dismiss() // removes from toast queue, keeps in registry
5952
- * ```
5953
- */
5954
- function send(input) {
5955
- const ticket = registry.register(hydrate(input));
5956
- queue.register(/* @__PURE__ */ isUndefined(input.timeout) ? { id: ticket.id } : {
5957
- id: ticket.id,
5958
- timeout: input.timeout
5959
- });
5960
- registry.emit("notification:received", ticket);
5961
- return ticket;
5962
- }
5963
- /**
5964
- * Register a notification in the registry without adding it to the toast queue
5965
- *
5966
- * @param input The notification input to register.
5967
- * @returns The hydrated notification ticket.
5968
- * @remarks Overrides the base registry `register` to hydrate the input with
5969
- * timestamps and lifecycle methods. Use for historical or pre-existing items
5970
- * that should appear in an inbox but not pop up as toasts.
5971
- *
5972
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
5973
- *
5974
- * @example
5975
- * ```ts
5976
- * import { useNotifications } from '@vuetify/v0'
5977
- *
5978
- * const notifications = useNotifications()
5979
- *
5980
- * // Register a historical item (appears in inbox, not as toast)
5981
- * const ticket = notifications.register({ id: 'old-1', subject: 'Deployed v2.1' })
5982
- *
5983
- * console.log(ticket.createdAt) // Date
5984
- * console.log(ticket.readAt) // null
5985
- *
5986
- * // Lifecycle methods work the same as send()
5987
- * ticket.read()
5988
- * ticket.archive()
5989
- * ```
5990
- */
5991
- function register(input) {
5992
- return registry.register(hydrate(input));
5993
- }
5994
- /**
5995
- * Bulk version of {@link register}
5996
- *
5997
- * @param inputs Array of notification inputs to register.
5998
- * @returns Array of hydrated notification tickets.
5999
- * @remarks Registers multiple notifications into the registry without toast
6000
- * display. Wraps all registrations in a single `registry.batch()` call so
6001
- * reactive updates are deferred until the entire batch completes.
6002
- *
6003
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6004
- *
6005
- * @example
6006
- * ```ts
6007
- * import { useNotifications } from '@vuetify/v0'
6008
- *
6009
- * const notifications = useNotifications()
6010
- *
6011
- * // Load historical items on mount
6012
- * const tickets = notifications.onboard([
6013
- * { id: 'n1', subject: 'Welcome to the team' },
6014
- * { id: 'n2', subject: 'Setup complete', severity: 'success' },
6015
- * ])
6016
- *
6017
- * console.log(tickets.length) // 2
6018
- * console.log(notifications.queue.values()) // [] (no toasts)
6019
- * console.log(notifications.values().length) // 2 (in registry)
6020
- * ```
6021
- */
6022
- function onboard(inputs) {
6023
- return registry.batch(() => inputs.map((input) => register(input)));
6024
- }
6025
- /**
6026
- * Mark a notification as read
6027
- *
6028
- * @param id The ID of the notification to mark as read.
6029
- * @remarks Sets `readAt` to the current time and emits `notification:read`.
6030
- * Adapters listen to this event for outbound sync.
6031
- *
6032
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6033
- *
6034
- * @example
6035
- * ```ts
6036
- * import { useNotifications } from '@vuetify/v0'
6037
- *
6038
- * const notifications = useNotifications()
6039
- *
6040
- * const ticket = notifications.send({ subject: 'New message' })
6041
- *
6042
- * notifications.read(ticket.id)
6043
- * console.log(ticket.readAt) // Date
6044
- *
6045
- * // Or via ticket convenience method
6046
- * ticket.read()
6047
- * ```
6048
- */
6049
- function read(id) {
6050
- registry.upsert(id, { readAt: /* @__PURE__ */ new Date() }, "notification:read");
6051
- }
6052
- /**
6053
- * Mark a notification as unread
6054
- *
6055
- * @param id The ID of the notification to mark as unread.
6056
- * @remarks Clears `readAt` and emits `notification:unread`.
6057
- *
6058
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6059
- *
6060
- * @example
6061
- * ```ts
6062
- * import { useNotifications } from '@vuetify/v0'
6063
- *
6064
- * const notifications = useNotifications()
6065
- *
6066
- * notifications.unread('notif-1')
6067
- * ```
6068
- */
6069
- function unread(id) {
6070
- registry.upsert(id, { readAt: null }, "notification:unread");
6071
- }
6072
- /**
6073
- * Mark a notification as seen
6074
- *
6075
- * @param id The ID of the notification to mark as seen.
6076
- * @remarks Sets `seenAt` to the current time and emits `notification:seen`.
6077
- * Distinct from read — seen tracks whether the notification appeared in the
6078
- * user's viewport, while read indicates the user actively engaged with it.
6079
- *
6080
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6081
- *
6082
- * @example
6083
- * ```ts
6084
- * import { useNotifications } from '@vuetify/v0'
6085
- *
6086
- * const notifications = useNotifications()
6087
- *
6088
- * // Mark as seen when visible in inbox viewport
6089
- * notifications.seen('notif-1')
6090
- * ```
6091
- */
6092
- function seen(id) {
6093
- registry.upsert(id, { seenAt: /* @__PURE__ */ new Date() }, "notification:seen");
6094
- }
6095
- /**
6096
- * Archive a notification
6097
- *
6098
- * @param id The ID of the notification to archive.
6099
- * @remarks Sets `archivedAt` to the current time and emits `notification:archived`.
6100
- *
6101
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6102
- *
6103
- * @example
6104
- * ```ts
6105
- * import { useNotifications } from '@vuetify/v0'
6106
- *
6107
- * const notifications = useNotifications()
6108
- *
6109
- * notifications.archive('notif-1')
6110
- * ```
6111
- */
6112
- function archive(id) {
6113
- registry.upsert(id, { archivedAt: /* @__PURE__ */ new Date() }, "notification:archived");
6114
- }
6115
- /**
6116
- * Restore an archived notification
6117
- *
6118
- * @param id The ID of the notification to unarchive.
6119
- * @remarks Clears `archivedAt` and emits `notification:unarchived`.
6120
- *
6121
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6122
- *
6123
- * @example
6124
- * ```ts
6125
- * import { useNotifications } from '@vuetify/v0'
6126
- *
6127
- * const notifications = useNotifications()
6128
- *
6129
- * notifications.unarchive('notif-1')
6130
- * ```
6131
- */
6132
- function unarchive(id) {
6133
- registry.upsert(id, { archivedAt: null }, "notification:unarchived");
6134
- }
6135
- /**
6136
- * Snooze a notification until a given time
6137
- *
6138
- * @param id The ID of the notification to snooze.
6139
- * @param until The time at which the snooze expires.
6140
- * @remarks Sets `snoozedUntil` and emits `notification:snoozed`. The composable
6141
- * does not auto-wake — consumers are responsible for calling {@link wake} when
6142
- * the snooze expires (e.g., via a timer or server push).
6143
- *
6144
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6145
- *
6146
- * @example
6147
- * ```ts
6148
- * import { useNotifications } from '@vuetify/v0'
6149
- *
6150
- * const notifications = useNotifications()
6151
- *
6152
- * const tomorrow = new Date(Date.now() + 86_400_000)
6153
- * notifications.snooze('notif-1', tomorrow)
6154
- * ```
6155
- */
6156
- function snooze(id, until) {
6157
- registry.upsert(id, { snoozedUntil: until }, "notification:snoozed");
6158
- }
6159
- /**
6160
- * Cancel a snooze
6161
- *
6162
- * @param id The ID of the notification to wake.
6163
- * @remarks Clears `snoozedUntil` and emits `notification:unsnoozed`.
6164
- *
6165
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6166
- *
6167
- * @example
6168
- * ```ts
6169
- * import { useNotifications } from '@vuetify/v0'
6170
- *
6171
- * const notifications = useNotifications()
6172
- *
6173
- * notifications.wake('notif-1')
6174
- * ```
6175
- */
6176
- function wake(id) {
6177
- registry.upsert(id, { snoozedUntil: null }, "notification:unsnoozed");
6178
- }
6179
- /**
6180
- * Mark all unread notifications as read
6181
- *
6182
- * @remarks Iterates all notifications and marks unread ones as read in a single
6183
- * batch. Skips already-read notifications to preserve their original `readAt`
6184
- * timestamp. Emits `notification:read` for each affected notification.
6185
- *
6186
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6187
- *
6188
- * @example
6189
- * ```ts
6190
- * import { useNotifications } from '@vuetify/v0'
6191
- *
6192
- * const notifications = useNotifications()
6193
- *
6194
- * notifications.send({ subject: 'Message 1' })
6195
- * notifications.send({ subject: 'Message 2' })
6196
- *
6197
- * notifications.readAll()
6198
- *
6199
- * console.log(notifications.values().every(t => t.readAt !== null)) // true
6200
- * ```
6201
- */
6202
- function readAll() {
6203
- const now = /* @__PURE__ */ new Date();
6204
- registry.batch(() => {
6205
- for (const ticket of registry.values()) if (/* @__PURE__ */ isNull(ticket.readAt)) registry.upsert(ticket.id, { readAt: now }, "notification:read");
6206
- });
6207
- }
6208
- /**
6209
- * Archive all unarchived notifications
6210
- *
6211
- * @remarks Iterates all notifications and archives unarchived ones in a single
6212
- * batch. Skips already-archived notifications to preserve their original
6213
- * `archivedAt` timestamp. Emits `notification:archived` for each affected notification.
6214
- *
6215
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6216
- *
6217
- * @example
6218
- * ```ts
6219
- * import { useNotifications } from '@vuetify/v0'
6220
- *
6221
- * const notifications = useNotifications()
6222
- *
6223
- * notifications.send({ subject: 'Alert 1' })
6224
- * notifications.send({ subject: 'Alert 2' })
6225
- *
6226
- * notifications.archiveAll()
6227
- *
6228
- * console.log(notifications.values().every(t => t.archivedAt !== null)) // true
6229
- * ```
6230
- */
6231
- function archiveAll() {
6232
- const now = /* @__PURE__ */ new Date();
6233
- registry.batch(() => {
6234
- for (const ticket of registry.values()) if (/* @__PURE__ */ isNull(ticket.archivedAt)) registry.upsert(ticket.id, { archivedAt: now }, "notification:archived");
6235
- });
6236
- }
6237
- return {
6238
- ...registry,
6239
- send,
6240
- register,
6241
- onboard,
6242
- queue,
6243
- read,
6244
- unread,
6245
- seen,
6246
- archive,
6247
- unarchive,
6248
- snooze,
6249
- wake,
6250
- readAll,
6251
- archiveAll,
6252
- get size() {
6253
- return registry.size;
6254
- }
6255
- };
6256
- }
6257
- function noop() {}
6258
- const EMPTY = [];
6259
- function createNotificationsFallback() {
6260
- const stub = {
6261
- id: "",
6262
- index: 0,
6263
- value: 0,
6264
- valueIsIndex: true,
6265
- createdAt: /* @__PURE__ */ new Date(0),
6266
- readAt: null,
6267
- seenAt: null,
6268
- archivedAt: null,
6269
- snoozedUntil: null,
6270
- read: noop,
6271
- unread: noop,
6272
- seen: noop,
6273
- archive: noop,
6274
- unarchive: noop,
6275
- snooze: noop,
6276
- wake: noop,
6277
- dismiss: noop,
6278
- unregister: noop
6279
- };
6280
- return {
6281
- collection: /* @__PURE__ */ new Map(),
6282
- size: 0,
6283
- send: () => stub,
6284
- queue: {
6285
- collection: /* @__PURE__ */ new Map(),
6286
- size: 0,
6287
- register: () => ({}),
6288
- unregister: () => void 0,
6289
- has: () => false,
6290
- get: () => void 0,
6291
- keys: () => EMPTY,
6292
- values: () => EMPTY,
6293
- entries: () => EMPTY,
6294
- browse: () => void 0,
6295
- lookup: () => void 0,
6296
- upsert: () => ({}),
6297
- seek: () => void 0,
6298
- move: () => void 0,
6299
- on: noop,
6300
- off: noop,
6301
- emit: noop,
6302
- dispose: noop,
6303
- clear: noop,
6304
- reindex: noop,
6305
- batch: (fn) => fn(),
6306
- onboard: () => EMPTY,
6307
- offboard: noop,
6308
- pause: () => void 0,
6309
- resume: () => void 0
6310
- },
6311
- read: noop,
6312
- unread: noop,
6313
- seen: noop,
6314
- archive: noop,
6315
- unarchive: noop,
6316
- snooze: noop,
6317
- wake: noop,
6318
- readAll: noop,
6319
- archiveAll: noop,
6320
- clear: noop,
6321
- has: () => false,
6322
- get: () => void 0,
6323
- keys: () => EMPTY,
6324
- values: () => EMPTY,
6325
- entries: () => EMPTY,
6326
- browse: () => void 0,
6327
- lookup: () => void 0,
6328
- upsert: () => stub,
6329
- register: () => stub,
6330
- unregister: noop,
6331
- reindex: noop,
6332
- move: () => void 0,
6333
- seek: () => void 0,
6334
- on: noop,
6335
- off: noop,
6336
- emit: noop,
6337
- dispose: noop,
6338
- batch: (fn) => fn(),
6339
- onboard: () => EMPTY,
6340
- offboard: noop
6341
- };
6342
- }
6343
- /**
6344
- * Notification management with registry, event system, and optional adapters.
6345
- *
6346
- * @see https://0.vuetifyjs.com/composables/plugins/use-notifications
6347
- *
6348
- * @example
6349
- * ```ts
6350
- * import { createNotificationsPlugin, useNotifications } from '@vuetify/v0'
6351
- *
6352
- * // Install as plugin
6353
- * app.use(createNotificationsPlugin())
6354
- *
6355
- * // Use in components
6356
- * const notifications = useNotifications()
6357
- * notifications.send({ subject: 'Saved', severity: 'success' })
6358
- * ```
6359
- */
6360
- const [createNotificationsContext, createNotificationsPlugin, useNotifications] = createPluginContext("v0:notifications", (options) => createNotifications(options), {
6361
- fallback: () => createNotificationsFallback(),
6362
- setup: (context, app, options) => {
6363
- app.onUnmount(() => {
6364
- context.dispose();
6365
- context.queue.dispose();
6366
- });
6367
- const { adapter } = options;
6368
- if (!adapter) return;
6369
- adapter.setup({
6370
- send: context.send,
6371
- register: context.register,
6372
- on: context.on,
6373
- off: context.off
6374
- });
6375
- if (/* @__PURE__ */ isFunction(adapter.dispose)) app.onUnmount(() => adapter.dispose());
6376
- }
6377
- });
6378
- //#endregion
6379
5520
  //#region src/composables/usePresence/index.ts
6380
5521
  /**
6381
5522
  * @module usePresence
@@ -6556,7 +5697,7 @@ function useProxyModel(context, model, options) {
6556
5697
  const _transformOut = options?.transformOut;
6557
5698
  function transformIn(val) {
6558
5699
  const value = toValue(val);
6559
- return toArray(/* @__PURE__ */ isFunction(_transformIn) ? _transformIn(value) : value);
5700
+ return /* @__PURE__ */ toArray(/* @__PURE__ */ isFunction(_transformIn) ? _transformIn(value) : value);
6560
5701
  }
6561
5702
  function transformOut(val) {
6562
5703
  if (/* @__PURE__ */ isFunction(_transformOut)) return _transformOut(val);
@@ -6935,7 +6076,7 @@ function createStack(_options = {}) {
6935
6076
  ...input,
6936
6077
  id
6937
6078
  });
6938
- if (instanceExists()) onScopeDispose(() => {
6079
+ if (/* @__PURE__ */ instanceExists()) onScopeDispose(() => {
6939
6080
  selection.unregister(id);
6940
6081
  }, true);
6941
6082
  return ticket;
@@ -7059,7 +6200,7 @@ function getStackFallback() {
7059
6200
  */
7060
6201
  function useStack(namespace = "v0:stack") {
7061
6202
  const fallback = getStackFallback();
7062
- if (!instanceExists()) return fallback;
6203
+ if (!/* @__PURE__ */ instanceExists()) return fallback;
7063
6204
  try {
7064
6205
  return useContext(namespace);
7065
6206
  } catch {
@@ -7386,8 +6527,8 @@ function useEventListener(target, event, listener, options) {
7386
6527
  ], ([el, events, listeners, opts]) => {
7387
6528
  cleanup();
7388
6529
  if (!el) return;
7389
- const eventList = toArray(events);
7390
- const listenerList = toArray(listeners);
6530
+ const eventList = /* @__PURE__ */ toArray(events);
6531
+ const listenerList = /* @__PURE__ */ toArray(listeners);
7391
6532
  for (const event of eventList) for (const listenerFn of listenerList) cleanups.push(register(el, event, listenerFn, opts));
7392
6533
  }, {
7393
6534
  immediate: true,
@@ -7541,7 +6682,7 @@ function useClickOutside(target, handler, options = {}) {
7541
6682
  * Resolve target(s) to an array of HTMLElements.
7542
6683
  */
7543
6684
  function getTargets() {
7544
- return toArray(target).map((source) => toValue(source)).filter((el) => !!el && /* @__PURE__ */ isFunction(el.contains));
6685
+ return (/* @__PURE__ */ toArray(target)).map((source) => toValue(source)).filter((el) => !!el && /* @__PURE__ */ isFunction(el.contains));
7545
6686
  }
7546
6687
  /**
7547
6688
  * Resolve ignore targets to a tuple of [selectors, elements].
@@ -7699,4 +6840,4 @@ function useClickOutside(target, handler, options = {}) {
7699
6840
  };
7700
6841
  }
7701
6842
  //#endregion
7702
- export { createStep as $, usePrefersContrast as A, createForm as At, createDatePlugin as B, useTimer as Bt, usePresence as C, createNumberField as Ct, useNotifications as D, useNested as Dt, createNotificationsPlugin as E, createNestedContext as Et, useIntersectionObserver as F, useCombobox as Ft, useBreakpoints as G, createBreakpoints as H, createBreadcrumbsContext as Ht, useImage as I, ServerAdapter as It, createVirtualContext as J, toReactive as K, useHotkey as L, ClientAdapter as Lt, usePrefersReducedMotion as M, useForm as Mt, useLazy as N, createCombobox as Nt, useMutationObserver as O, createInput as Ot, useElementIntersection as P, createComboboxContext as Pt, useTimeline as Q, createDate as R, useVirtualFocus as Rt, useProxyModel as S, useHydration as St, createNotificationsContext as T, createNested as Tt, createBreakpointsContext as U, useBreadcrumbs as Ut, useDate as V, createBreadcrumbs as Vt, createBreakpointsPlugin as W, createTimeline as X, useVirtual as Y, createTimelineContext as Z, createRtlPlugin as _, toElement as _t, useToggleScope as a, useRating as at, useRovingFocus as b, createHydrationContext as bt, createStoragePlugin as c, useQueue as ct, createStackContext as d, useProgress as dt, createStepContext as et, createStackPlugin as f, createOverflow as ft, createRtlFallback as g, useResizeObserver as gt, createRtlContext as h, useElementSize as ht, useWindowEventListener as i, createRatingContext as it, usePrefersDark as j, createFormContext as jt, useMediaQuery as k, createValidation as kt, useStorage as l, createProgress as lt, createRtl as m, useOverflow as mt, useDocumentEventListener as n, createSlider as nt, createStorage as o, createQueue as ot, useStack as p, createOverflowContext as pt, createVirtual as q, useEventListener as r, createRating as rt, createStorageContext as s, createQueueContext as st, useClickOutside as t, useStep as tt, createStack as u, createProgressContext as ut, useRtl as v, createFallbackHydration as vt, createNotifications as w, createNumeric as wt, useRaf as x, createHydrationPlugin as xt, Vuetify0RtlAdapter as y, createHydration as yt, createDateContext as z, usePopover as zt };
6843
+ export { createRating as $, useElementIntersection as A, ClientAdapter as At, createBreakpointsPlugin as B, usePresence as C, createForm as Ct, usePrefersDark as D, createComboboxContext as Dt, usePrefersContrast as E, createCombobox as Et, createDateContext as F, useBreadcrumbs as Ft, useVirtual as G, toReactive as H, createDatePlugin as I, useTimeline as J, createTimeline as K, useDate as L, useImage as M, usePopover as Mt, useHotkey as N, createBreadcrumbs as Nt, usePrefersReducedMotion as O, useCombobox as Ot, createDate as P, createBreadcrumbsContext as Pt, createSlider as Q, createBreakpoints as R, useProxyModel as S, createValidation as St, useMediaQuery as T, useForm as Tt, createVirtual as U, useBreakpoints as V, createVirtualContext as W, createStepContext as X, createStep as Y, useStep as Z, createRtlPlugin as _, createNumeric as _t, useToggleScope as a, createOverflow as at, useRovingFocus as b, useNested as bt, createStoragePlugin as c, useElementSize as ct, createStackContext as d, createFallbackHydration as dt, createRatingContext as et, createStackPlugin as f, createHydration as ft, createRtlFallback as g, createNumberField as gt, createRtlContext as h, useHydration as ht, useWindowEventListener as i, useProgress as it, useIntersectionObserver as j, useVirtualFocus as jt, useLazy as k, ServerAdapter as kt, useStorage as l, useResizeObserver as lt, createRtl as m, createHydrationPlugin as mt, useDocumentEventListener as n, createProgress as nt, createStorage as o, createOverflowContext as ot, useStack as p, createHydrationContext as pt, createTimelineContext as q, useEventListener as r, createProgressContext as rt, createStorageContext as s, useOverflow as st, useClickOutside as t, useRating as tt, createStack as u, toElement as ut, useRtl as v, createNested as vt, useMutationObserver as w, createFormContext as wt, useRaf as x, createInput as xt, Vuetify0RtlAdapter as y, createNestedContext as yt, createBreakpointsContext as z };