@vuetify/v0 0.1.6 → 0.1.7

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 (159) hide show
  1. package/README.md +0 -1
  2. package/dist/{adapter-Bjs_Nx_J.mjs → adapter-B4zE-hA5.mjs} +5 -8
  3. package/dist/adapter-CqP9Z4JU.d.mts +1087 -0
  4. package/dist/{adapter-CLs-OrSN.d.mts → adapter-DIx4Rntl.d.mts} +5 -48
  5. package/dist/adapters-BjeDmKc6.mjs +1 -0
  6. package/dist/adapters-Bv5aRv3l.mjs +1 -0
  7. package/dist/adapters-C66XaKkw.mjs +1 -0
  8. package/dist/adapters-DkVblyML.mjs +1 -0
  9. package/dist/adapters-uJLWGQJl.mjs +1 -0
  10. package/dist/browser/index.js +712 -659
  11. package/dist/components/index.d.mts +1 -19
  12. package/dist/components/index.mjs +34 -39
  13. package/dist/{components-GiQh_RfQ.mjs → components-CACff-Lt.mjs} +145 -299
  14. package/dist/composables/index.d.mts +18 -17
  15. package/dist/composables/index.mjs +34 -37
  16. package/dist/{consola-DiUk9j3y.d.mts → consola-BVzYzeLH.d.mts} +1 -1
  17. package/dist/{consola-GBy8XRuL.mjs → consola-Ceox8BWi.mjs} +1 -2
  18. package/dist/constants/index.d.mts +1 -1
  19. package/dist/constants/index.mjs +3 -5
  20. package/dist/{createDataTable-lSofI5rU.mjs → createDataTable-CLI4TALE.mjs} +9 -11
  21. package/dist/{createGroup-CCb7Zfyw.mjs → createGroup-Cf6lK9BR.mjs} +5 -8
  22. package/dist/{createPagination-lagznd8i.mjs → createPagination-Bu8vE0JW.mjs} +3 -5
  23. package/dist/{createSelection-Zo4RQpYe.mjs → createSelection-DvOR2tKk.mjs} +9 -12
  24. package/dist/{createSingle-BH9wNDrS.mjs → createSingle-Bbcwcq4R.mjs} +3 -5
  25. package/dist/{createTokens-Cu1efg9Z.mjs → createTokens-CMRBDlzN.mjs} +23 -26
  26. package/dist/{createTrinity-Cii8-B2r.mjs → createTrinity-C_c8eedz.mjs} +10 -13
  27. package/dist/data-table/adapters/client/index.d.mts +1 -2
  28. package/dist/data-table/adapters/client/index.mjs +7 -9
  29. package/dist/data-table/adapters/index.d.mts +4 -4
  30. package/dist/data-table/adapters/index.mjs +10 -12
  31. package/dist/data-table/adapters/server/index.d.mts +1 -2
  32. package/dist/data-table/adapters/server/index.mjs +5 -7
  33. package/dist/data-table/adapters/virtual/index.d.mts +1 -2
  34. package/dist/data-table/adapters/virtual/index.mjs +7 -9
  35. package/dist/data-table/index.d.mts +5 -6
  36. package/dist/data-table/index.mjs +22 -25
  37. package/dist/date/index.d.mts +1 -3
  38. package/dist/date/index.mjs +3932 -3943
  39. package/dist/features/adapters/flagsmith/index.d.mts +2 -4
  40. package/dist/features/adapters/flagsmith/index.mjs +2 -3
  41. package/dist/features/adapters/launchdarkly/index.d.mts +1 -3
  42. package/dist/features/adapters/launchdarkly/index.mjs +2 -3
  43. package/dist/features/adapters/posthog/index.d.mts +1 -3
  44. package/dist/features/adapters/posthog/index.mjs +3 -4
  45. package/dist/features/index.d.mts +2 -16
  46. package/dist/features/index.mjs +13 -18
  47. package/dist/{flagsmith-CHmpPGR7.mjs → flagsmith-CrWUeIhT.mjs} +1 -2
  48. package/dist/{globals-D6FBsWDI.mjs → globals-BqRH_jdr.mjs} +2 -3
  49. package/dist/{htmlElements-d8iBCGpO.mjs → htmlElements-DcYtv0hg.mjs} +7 -10
  50. package/dist/index-8sflFIN8.d.mts +856 -0
  51. package/dist/{index-De0SQt1w.d.mts → index-BE848tZ2.d.mts} +277 -979
  52. package/dist/{index-DlUIZN-F.d.mts → index-CKbxWC4t.d.mts} +610 -546
  53. package/dist/index-CeNfBYuo.d.mts +46 -0
  54. package/dist/{index-DIK84tM4.d.mts → index-CmCMrlt3.d.mts} +3 -3
  55. package/dist/{index-BFBN5Zl3.d.mts → index-Dor6eAEc.d.mts} +0 -1
  56. package/dist/{index-UNwEBkQT.d.mts → index-MHkcqY_y.d.mts} +1 -2
  57. package/dist/{index-BuOz3Rgm.d.mts → index-dJKXAO5D.d.mts} +1 -2
  58. package/dist/index.d.mts +22 -20
  59. package/dist/index.mjs +38 -40
  60. package/dist/json/web-types.json +1 -1
  61. package/dist/{launchdarkly-W8t8ZANX.mjs → launchdarkly-jF2KZGoH.mjs} +1 -2
  62. package/dist/locale/adapters/index.d.mts +1 -2
  63. package/dist/locale/adapters/index.mjs +4 -6
  64. package/dist/locale/adapters/v0/index.d.mts +1 -2
  65. package/dist/locale/adapters/v0/index.mjs +3 -5
  66. package/dist/locale/index.d.mts +2 -16
  67. package/dist/locale/index.mjs +14 -17
  68. package/dist/logger/adapters/consola/index.d.mts +1 -2
  69. package/dist/logger/adapters/consola/index.mjs +2 -3
  70. package/dist/logger/adapters/index.d.mts +4 -4
  71. package/dist/logger/adapters/index.mjs +6 -8
  72. package/dist/logger/adapters/pino/index.d.mts +1 -2
  73. package/dist/logger/adapters/pino/index.mjs +3 -5
  74. package/dist/logger/adapters/v0/index.d.mts +1 -2
  75. package/dist/logger/adapters/v0/index.mjs +3 -5
  76. package/dist/logger/index.d.mts +5 -16
  77. package/dist/logger/index.mjs +8 -10
  78. package/dist/{memory-BsZGbGnG.mjs → memory-XCMtkld1.mjs} +1 -2
  79. package/dist/palettes/ant/generate/index.d.mts +9 -0
  80. package/dist/palettes/ant/generate/index.mjs +98 -0
  81. package/dist/palettes/ant/index.d.mts +6 -0
  82. package/dist/palettes/ant/index.mjs +149 -0
  83. package/dist/palettes/index.d.mts +12 -0
  84. package/dist/palettes/index.mjs +1 -0
  85. package/dist/palettes/leonardo/generate/index.d.mts +10 -0
  86. package/dist/palettes/leonardo/generate/index.mjs +120 -0
  87. package/dist/palettes/material/generate/index.d.mts +10 -0
  88. package/dist/palettes/material/generate/index.mjs +103 -0
  89. package/dist/palettes/material/index.d.mts +6 -0
  90. package/dist/palettes/material/index.mjs +173 -0
  91. package/dist/palettes/md1/index.d.mts +6 -0
  92. package/dist/palettes/md1/index.mjs +261 -0
  93. package/dist/palettes/md2/index.d.mts +6 -0
  94. package/dist/palettes/md2/index.mjs +297 -0
  95. package/dist/palettes/radix/index.d.mts +6 -0
  96. package/dist/palettes/radix/index.mjs +439 -0
  97. package/dist/palettes/tailwind/index.d.mts +6 -0
  98. package/dist/palettes/tailwind/index.mjs +291 -0
  99. package/dist/permissions/adapters/index.d.mts +2 -17
  100. package/dist/permissions/adapters/index.mjs +4 -6
  101. package/dist/permissions/adapters/v0/index.d.mts +1 -17
  102. package/dist/permissions/adapters/v0/index.mjs +3 -5
  103. package/dist/permissions/index.d.mts +1 -16
  104. package/dist/permissions/index.mjs +12 -15
  105. package/dist/{pino-BD5PCzAF.mjs → pino-B7tJ3m18.mjs} +2 -4
  106. package/dist/{pino-p-jDkNQd.d.mts → pino-Bzighnkd.d.mts} +1 -2
  107. package/dist/{posthog-BxaG8sYi.mjs → posthog-DbPqmaAp.mjs} +2 -4
  108. package/dist/rules/index.d.mts +2 -0
  109. package/dist/rules/index.mjs +15 -0
  110. package/dist/{server-DgOdFYMU.mjs → server-CZ6ahbEH.mjs} +2 -4
  111. package/dist/{server-CGAeOGPC.d.mts → server-Ch9J86tb.d.mts} +1 -2
  112. package/dist/storage/adapters/index.d.mts +2 -2
  113. package/dist/storage/adapters/index.mjs +2 -3
  114. package/dist/storage/adapters/memory/index.d.mts +1 -1
  115. package/dist/storage/adapters/memory/index.mjs +2 -3
  116. package/dist/storage/index.d.mts +3 -16
  117. package/dist/storage/index.mjs +33 -37
  118. package/dist/theme/adapters/index.d.mts +1 -16
  119. package/dist/theme/adapters/index.mjs +4 -6
  120. package/dist/theme/adapters/v0/index.d.mts +1 -16
  121. package/dist/theme/adapters/v0/index.mjs +3 -5
  122. package/dist/theme/index.d.mts +1 -16
  123. package/dist/theme/index.mjs +13 -16
  124. package/dist/{toArray-BBZH-G2X.mjs → toArray-VdROPpy-.mjs} +2 -4
  125. package/dist/types/index.d.mts +1 -1
  126. package/dist/types/index.mjs +1 -1
  127. package/dist/{useClickOutside-Bm_3mbcT.mjs → useClickOutside-YOGwKo7v.mjs} +314 -206
  128. package/dist/{useFeatures-BS4mit8z.mjs → useFeatures-BGDgUrdr.mjs} +5 -8
  129. package/dist/{useLocale-DJJmg-wv.mjs → useLocale-C8I_fNAS.mjs} +7 -9
  130. package/dist/{useLogger-C8G5jgNk.mjs → useLogger-B70T4SgK.mjs} +13 -16
  131. package/dist/{usePermissions-C5Mkotol.mjs → usePermissions-afVt2qR7.mjs} +5 -7
  132. package/dist/useRules-7C92Xzyt.mjs +144 -0
  133. package/dist/{useTheme-BBnASLr3.mjs → useTheme-jp2wL2FJ.mjs} +11 -13
  134. package/dist/utilities/index.d.mts +1 -2
  135. package/dist/utilities/index.mjs +426 -4
  136. package/dist/{v0-Bh8d1j_p.d.mts → v0-1bfmyZ5_.d.mts} +2 -2
  137. package/dist/{v0-BOxb3nD1.d.mts → v0-1xxC39wf.d.mts} +1 -2
  138. package/dist/{v0-DtO_ICXr.mjs → v0-B1QQGE4O.mjs} +2 -5
  139. package/dist/{v0-DHMoZ7dS.d.mts → v0-CAKa6tzG.d.mts} +1 -1
  140. package/dist/{v0-DzvhDU1W.mjs → v0-CGlkn5u7.mjs} +3 -6
  141. package/dist/{v0-BWBSVkew.mjs → v0-CHvU3jQE.mjs} +3 -5
  142. package/dist/{v0-CVr15VcY.d.mts → v0-CdUL2eOn.d.mts} +1 -2
  143. package/dist/{v0-lua6ffdk.mjs → v0-V-cQsuZD.mjs} +3 -5
  144. package/dist/{v0-CWUF_HqP.mjs → v0-YAqbXudL.mjs} +3 -5
  145. package/dist/{virtual-CVb9hRUU.d.mts → virtual-DwBiFA25.d.mts} +1 -2
  146. package/dist/{virtual-BEOqkQvm.mjs → virtual-eDNVH1fz.mjs} +3 -5
  147. package/package.json +39 -11
  148. package/dist/adapter-DcwxFryd.d.mts +0 -97
  149. package/dist/adapters-BGJKsBrw.mjs +0 -1
  150. package/dist/adapters-BQ-Lr3PW.mjs +0 -1
  151. package/dist/adapters-DEXpW9If.mjs +0 -1
  152. package/dist/adapters-Q9WaOsJp.mjs +0 -1
  153. package/dist/adapters-SSDVth5e.mjs +0 -1
  154. package/dist/constants-B8pMSkcW.mjs +0 -1
  155. package/dist/utilities-CcJtp9Gx.mjs +0 -429
  156. /package/dist/{adapter-CJIj5ySf.d.mts → adapter-JTFG3Jn8.d.mts} +0 -0
  157. /package/dist/{index-Bv1VN_j5.d.mts → index-B5ZDDkXv.d.mts} +0 -0
  158. /package/dist/{index-BDTbJClL.d.mts → index-NsE5nARK.d.mts} +0 -0
  159. /package/dist/{memory-DVjquu_v.d.mts → memory-BTtRdnNn.d.mts} +0 -0
@@ -1,707 +1,13 @@
1
- import { i as Extensible, o as ID, s as MaybeArray } from "./index-BFBN5Zl3.mjs";
2
- import { E as ContextTrinity } from "./adapter-CLs-OrSN.mjs";
3
- import { t as DateAdapter } from "./adapter-DcwxFryd.mjs";
4
- import { n as FeaturesAdapterFlags, r as FeaturesAdapterInterface } from "./index-BuOz3Rgm.mjs";
5
- import { n as LocaleAdapter } from "./v0-DHMoZ7dS.mjs";
6
- import { t as LoggerAdapter } from "./adapter-CJIj5ySf.mjs";
7
- import { t as StorageAdapter } from "./index-BDTbJClL.mjs";
1
+ import { o as ID, s as MaybeArray } from "./index-Dor6eAEc.mjs";
2
+ import { t as ContextTrinity } from "./index-CeNfBYuo.mjs";
3
+ import { b as RegistryTicketInput, c as TokenTicket, i as TokenContext, o as TokenOptions, p as RegistryContext, r as TokenCollection, v as RegistryOptions, y as RegistryTicket } from "./index-8sflFIN8.mjs";
4
+ import { t as DateAdapter } from "./adapter-CqP9Z4JU.mjs";
5
+ import { n as FeaturesAdapterFlags, r as FeaturesAdapterInterface } from "./index-dJKXAO5D.mjs";
6
+ import { n as LocaleAdapter } from "./v0-CAKa6tzG.mjs";
7
+ import { t as LoggerAdapter } from "./adapter-JTFG3Jn8.mjs";
8
+ import { t as StorageAdapter } from "./index-NsE5nARK.mjs";
8
9
  import { App, ComponentPublicInstance, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Reactive, Ref, ShallowRef, UnwrapNestedRefs, WatchSource } from "vue";
9
10
 
10
- //#region src/composables/createRegistry/index.d.ts
11
-
12
- /**
13
- * User-facing input shape for registry tickets.
14
- *
15
- * Extend this when defining custom ticket types passed to `register()` and `onboard()`.
16
- * The registry adds the computed fields (`index`, `valueIsIndex`) automatically — those
17
- * live on {@link RegistryTicket}, which is the output type returned by `get()` and `values()`.
18
- *
19
- * @template V The type of the ticket value.
20
- */
21
- interface RegistryTicketInput<V = unknown> {
22
- /** The unique identifier. Optional — auto-generated if not provided. */
23
- id?: ID;
24
- /** The value associated with the ticket. If not provided, it defaults to the index. */
25
- value?: V;
26
- }
27
- interface RegistryTicket<V = unknown> {
28
- /** The unique identifier. Is randomly generated if not provided. */
29
- id: ID;
30
- /**
31
- * The index of the ticket in the registry.
32
- *
33
- * @remarks Automatically managed by the registry. Updated during reindexing. It's not recommended to manually set this.
34
- */
35
- index: number;
36
- /** The value associated with the ticket. If not provided, it defaults to the index. */
37
- value: V;
38
- /**
39
- * Whether the value is derived from index.
40
- *
41
- * @remarks Set to true when no explicit value is provided during registration. It's not recommended to manually set this.
42
- */
43
- valueIsIndex: boolean;
44
- }
45
- /** Valid event names for registry operations */
46
- type RegistryEventName = 'register:ticket' | 'unregister:ticket' | 'update:ticket' | 'clear:registry' | 'reindex:registry';
47
- /** Maps event names to their payload types */
48
- type RegistryEventMap<Z extends RegistryTicket> = {
49
- 'register:ticket': Z;
50
- 'unregister:ticket': Z;
51
- 'update:ticket': Z;
52
- 'clear:registry': undefined;
53
- 'reindex:registry': undefined;
54
- };
55
- /** Callback signature for registry event listeners */
56
- type RegistryEventCallback<Z extends RegistryTicket = RegistryTicket, K extends RegistryEventName = RegistryEventName> = (data: RegistryEventMap<Z>[K]) => void;
57
- /** Resolves callback type: typed for known events, unknown for custom events */
58
- type EventHandler$1<Z extends RegistryTicket, K extends string> = K extends RegistryEventName ? (data: RegistryEventMap<Z>[K]) => void : (data: unknown) => void;
59
- /** Resolves payload type: typed for known events, unknown for custom events */
60
- type EventPayload<Z extends RegistryTicket, K extends string> = K extends RegistryEventName ? RegistryEventMap<Z>[K] : unknown;
61
- interface RegistryContext<Z extends RegistryTicketInput = RegistryTicketInput, E extends RegistryTicket & Z = RegistryTicket & Z> {
62
- /**
63
- * The collection of tickets in the registry
64
- *
65
- * @template ID The type of the ticket ID.
66
- * @template E The type of the registry ticket.
67
- *
68
- * @remarks Read-only view of the internal collection. Use `register`, `unregister`, `upsert`, and `clear` methods to modify.
69
- */
70
- collection: ReadonlyMap<ID, E>;
71
- /**
72
- * Clear the entire registry
73
- *
74
- * @remarks Removes all tickets from the registry. This operation invalidates cached results from `keys()`, `values()`, and `entries()`.
75
- *
76
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#clear
77
- *
78
- * @example
79
- * ```ts
80
- * import { createRegistry } from '@vuetify/v0'
81
- *
82
- * const registry = createRegistry()
83
- *
84
- * registry.register({ id: 'ticket-1' })
85
- * registry.register({ id: 'ticket-2' })
86
- *
87
- * console.log(registry.size) // 2
88
- *
89
- * registry.clear()
90
- *
91
- * console.log(registry.size) // 0
92
- * ```
93
- */
94
- clear: () => void;
95
- /**
96
- * Check if a ticket exists by ID
97
- *
98
- * @param id The ID of the ticket to check.
99
- * @remarks Calls `collection.has` internally.
100
- *
101
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#has
102
- *
103
- * @example
104
- * ```ts
105
- * import { createRegistry } from '@vuetify/v0'
106
- *
107
- * const registry = createRegistry()
108
- *
109
- * registry.register({ id: 'ticket-id' })
110
- *
111
- * const exists = registry.has('ticket-id') // true
112
- * ```
113
- */
114
- has: (id: ID) => boolean;
115
- /**
116
- * Get all registered IDs
117
- *
118
- * @remarks Calls `collection.keys` internally with caching. First call is O(n), subsequent calls are O(1) until cache invalidation.
119
- *
120
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#keys
121
- *
122
- * @example
123
- * ```ts
124
- * import { createRegistry } from '@vuetify/v0'
125
- *
126
- * const registry = createRegistry()
127
- *
128
- * registry.register({ id: 'ticket-1' })
129
- * registry.register({ id: 'ticket-2' })
130
- *
131
- * const ids = registry.keys() // ['ticket-1', 'ticket-2']
132
- * ```
133
- */
134
- keys: () => readonly ID[];
135
- /**
136
- * Browse for an ID(s) by value
137
- *
138
- * @param value The value to browse for.
139
- * @remarks Returns an array of IDs that share the given value, or undefined if no match is found.
140
- *
141
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#browse
142
- *
143
- * @example
144
- * ```ts
145
- * import { createRegistry } from '@vuetify/v0'
146
- *
147
- * const registry = createRegistry()
148
- *
149
- * registry.register({ id: 'ticket-1', value: 'common-value' })
150
- * registry.register({ id: 'ticket-2', value: 'common-value' })
151
- * registry.register({ id: 'ticket-3', value: 'unique-value' })
152
- *
153
- * const common = registry.browse('common-value') // ['ticket-1', 'ticket-2']
154
- * const unique = registry.browse('unique-value') // ['ticket-3']
155
- * ```
156
- */
157
- browse: (value: E['value']) => ID[] | undefined;
158
- /**
159
- * lookup a ticket by index number
160
- *
161
- * @param index The index number to lookup.
162
- * @remarks Maps do not support indexing by default, this method provides a way to retrieve an ID based on its index in the registry.
163
- *
164
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#lookup
165
- *
166
- * @example
167
- * ```ts
168
- * const registry = createRegistry()
169
- *
170
- * registry.register({ id: 'ticket-1' })
171
- * registry.register({ id: 'ticket-2' })
172
- *
173
- * const ticket1 = registry.lookup(0) // 'ticket-1'
174
- * const ticket2 = registry.lookup(1) // 'ticket-2'
175
- * ```
176
- */
177
- lookup: (index: number) => ID | undefined;
178
- /**
179
- * Get a ticket by ID
180
- *
181
- * @param id The ID of the ticket to retrieve.
182
- * @remarks Calls `collection.get` internally.
183
- *
184
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#get
185
- *
186
- * @example
187
- * ```ts
188
- * import { createRegistry } from '@vuetify/v0'
189
- *
190
- * const registry = createRegistry()
191
- *
192
- * registry.register({ id: 'ticket-id', value: 'some-value' })
193
- *
194
- * const ticket = registry.get('ticket-id') // { id: 'ticket-id', index: 0, value: 'some-value', ... }
195
- * ```
196
- */
197
- get: (id: ID) => E | undefined;
198
- /**
199
- * Update or insert a ticket by ID
200
- *
201
- * @param id The ID of the ticket to upsert.
202
- * @param ticket The partial ticket data to update or insert.
203
- * @remarks If the ticket exists, it will be updated with the provided data. If it doesn't exist, a new ticket will be created with the given ID and data. This operation invalidates cached results from `keys()`, `values()`, and `entries()`.
204
- *
205
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#upsert
206
- *
207
- * @example
208
- * ```ts
209
- * import { createRegistry } from '@vuetify/v0'
210
- *
211
- * const registry = createRegistry()
212
- *
213
- * // Insert a new ticket
214
- * const ticket = registry.upsert('ticket-id', { value: 'initial-value' })
215
- *
216
- * // Update the existing ticket
217
- * const patched = registry.upsert('ticket-id', { value: 'updated-value' })
218
- * ```
219
- */
220
- upsert: (id: ID, ticket?: Partial<Z>) => E;
221
- /**
222
- * Get all values of registered tickets
223
- *
224
- * @remarks Calls `collection.values` internally with caching. First call is O(n), subsequent calls are O(1) until cache invalidation.
225
- *
226
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#values
227
- *
228
- * @example
229
- * ```ts
230
- * import { createRegistry } from '@vuetify/v0'
231
- *
232
- * const registry = createRegistry()
233
- *
234
- * registry.register({ id: 'ticket-1', value: 'value-1' })
235
- * registry.register({ id: 'ticket-2', value: 'value-2' })
236
- *
237
- * const values = registry.values() // [{ id: 'ticket-1', ... }, { id: 'ticket-2', ... }]
238
- * ```
239
- */
240
- values: () => readonly E[];
241
- /**
242
- * Get all entries of registered tickets
243
- *
244
- * @remarks Calls `collection.entries` internally with caching. First call is O(n), subsequent calls are O(1) until cache invalidation.
245
- *
246
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#entries
247
- *
248
- * @example
249
- * ```ts
250
- * import { createRegistry } from '@vuetify/v0'
251
- *
252
- * const registry = createRegistry()
253
- *
254
- * registry.register({ id: 'ticket-1', value: 'value-1' })
255
- * registry.register({ id: 'ticket-2', value: 'value-2' })
256
- *
257
- * const entries = registry.entries() // [['ticket-1', { id: 'ticket-1', ... }], ['ticket-2', { id: 'ticket-2', ... }]]
258
- * ```
259
- */
260
- entries: () => readonly [ID, E][];
261
- /**
262
- * Register a new ticket
263
- *
264
- * @param ticket The partial ticket data to register.
265
- * @remarks If no ID is provided, a unique ID will be generated automatically. If no value is provided, it defaults to the ticket's index. This operation invalidates cached results from `keys()`, `values()`, and `entries()`.
266
- *
267
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#register
268
- *
269
- * @example
270
- * ```ts
271
- * import { createRegistry } from '@vuetify/v0'
272
- *
273
- * const registry = createRegistry()
274
- *
275
- * const ticket = registry.register()
276
- *
277
- * console.log(ticket) // { id: 'generated-id', index: 0, value: 0, valueIsIndex: true }
278
- * ```
279
- */
280
- register: (ticket?: Partial<Z & RegistryTicket>) => E;
281
- /**
282
- * Unregister a ticket by ID
283
- *
284
- * @param id The ID of the ticket to unregister.
285
- * @remarks Removes the ticket from the registry and reindexes the remaining tickets. This operation invalidates cached results from `keys()`, `values()`, and `entries()`.
286
- *
287
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#unregister
288
- *
289
- * @example
290
- * ```ts
291
- * import { createRegistry } from '@vuetify/v0'
292
- *
293
- * const registry = createRegistry()
294
- *
295
- * registry.register({ id: 'ticket-id' })
296
- *
297
- * registry.unregister('ticket-id')
298
- * ```
299
- */
300
- unregister: (id: ID) => void;
301
- /**
302
- * Reset the index directory and update all tickets
303
- *
304
- * @remarks Rebuilds the internal index mapping and ensures all tickets have correct index values. This operation invalidates cached results from `keys()`, `values()`, and `entries()`.
305
- *
306
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#reindex
307
- *
308
- * @example
309
- * ```ts
310
- * import { createRegistry } from '@vuetify/v0'
311
- *
312
- * const registry = createRegistry()
313
- *
314
- * registry.register({ id: 'ticket-1' })
315
- * registry.register({ id: 'ticket-2' })
316
- *
317
- * // After some operations that may affect indexing
318
- * registry.reindex()
319
- * ```
320
- */
321
- reindex: () => void;
322
- /**
323
- * Seek for a ticket based on direction and optional predicate
324
- *
325
- * @param direction The direction to seek ('first' or 'last'). Defaults to 'first'.
326
- * @param from The index to start seeking from. Defaults to the beginning or end based on direction.
327
- * @param predicate An optional function to test each ticket. The first ticket that satisfies the predicate will be returned.
328
- * @remarks This method allows for flexible searching within the registry, either from the start or end, and can filter tickets based on custom criteria.
329
- *
330
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#seek
331
- *
332
- * @example
333
- * ```ts
334
- * import { createRegistry } from '@vuetify/v0'
335
- *
336
- * const registry = createRegistry()
337
- *
338
- * registry.register({ id: 'ticket-1', value: 'apple' })
339
- * registry.register({ id: 'ticket-2', value: 'banana' })
340
- * registry.register({ id: 'ticket-3', value: 'cherry' })
341
- *
342
- * // Seek the first ticket
343
- * const first = registry.seek('first')
344
- *
345
- * // Seek the last ticket
346
- * const last = registry.seek('last')
347
- *
348
- * // Seek the first ticket with value 'banana'
349
- * const banana = registry.seek('first', undefined, ticket => ticket.value === 'banana')
350
- *
351
- * // Seek from index 1 to find the next ticket with value starting with 'c'
352
- * const cherry = registry.seek('first', 1, ticket => (ticket.value as string).startsWith('c'))
353
- * ```
354
- */
355
- /**
356
- * Move a ticket to a new index position
357
- *
358
- * @param id The ID of the ticket to move.
359
- * @param toIndex The target index position. Clamped to valid range.
360
- * @returns The moved ticket, or undefined if the ticket was not found.
361
- *
362
- * @remarks Rebuilds the internal collection order by removing and reinserting the entry at the target position. Triggers a full reindex after the move. This operation invalidates cached results from `keys()`, `values()`, and `entries()`.
363
- *
364
- * @see https://0.vuetifyjs.com/composables/registration/create-registry#move
365
- *
366
- * @example
367
- * ```ts
368
- * import { createRegistry } from '@vuetify/v0'
369
- *
370
- * const registry = createRegistry()
371
- *
372
- * registry.onboard([
373
- * { id: 'a', value: 'alpha' },
374
- * { id: 'b', value: 'beta' },
375
- * { id: 'c', value: 'gamma' },
376
- * ])
377
- *
378
- * // Move 'a' from index 0 to index 2
379
- * registry.move('a', 2)
380
- *
381
- * console.log(registry.keys()) // ['b', 'c', 'a']
382
- * ```
383
- */
384
- move: (id: ID, toIndex: number) => E | undefined;
385
- seek: (direction?: 'first' | 'last', from?: number, predicate?: (ticket: E) => boolean) => E | undefined;
386
- /**
387
- * Listen for registry events
388
- *
389
- * @param event The name of the event to listen for.
390
- * @param cb The callback function to invoke when the event is emitted.
391
- * @remarks Must be enabled via the `events` option when creating the registry.
392
- * Supported events:
393
- * - `register:ticket` - Emitted when a ticket is registered, receives the ticket as argument
394
- * - `unregister:ticket` - Emitted when a ticket is unregistered, receives the ticket as argument
395
- * - `update:ticket` - Emitted when a ticket is updated, receives the updated ticket as argument
396
- * - `clear:registry` - Emitted when the registry is cleared
397
- * - `reindex:registry` - Emitted when the registry is reindexed
398
- *
399
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#on
400
- *
401
- * @example
402
- * ```ts
403
- * import { createRegistry } from '@vuetify/v0'
404
- *
405
- * const registry = createRegistry({ events: true })
406
- *
407
- * registry.on('register:ticket', (ticket) => {
408
- * console.log('Ticket registered:', ticket)
409
- * })
410
- *
411
- * registry.register({ id: 'ticket-id' }) // Console: Ticket registered: { id: 'ticket-id', ... }
412
- * ```
413
- */
414
- on: <K extends Extensible<RegistryEventName>>(event: K, cb: EventHandler$1<E, K>) => void;
415
- /**
416
- * Stop listening for registry events
417
- *
418
- * @param event The name of the event to stop listening for.
419
- * @param cb The callback function to remove.
420
- * @remarks Must be enabled via the `events` option when creating the registry.
421
- *
422
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#off
423
- *
424
- * @example
425
- * ```ts
426
- * import { onScopeDispose } from 'vue'
427
- * import { createRegistry } from '@vuetify/v0'
428
- *
429
- * const registry = createRegistry({ events: true })
430
- *
431
- * function onRegister(ticket) {
432
- * console.log('Ticket registered:', ticket)
433
- * }
434
- *
435
- * registry.on('register:ticket', onRegister)
436
- *
437
- * registry.register({ id: 'ticket-id' }) // Console: Ticket registered: { id: 'ticket-id', ... }
438
- *
439
- * onScopeDispose(() => {
440
- * registry.off('register:ticket', onRegister)
441
- * })
442
- * ```
443
- */
444
- off: <K extends Extensible<RegistryEventName>>(event: K, cb: EventHandler$1<E, K>) => void;
445
- /**
446
- * Emit an event with data
447
- *
448
- * @param event The name of the event to emit.
449
- * @param data The data to pass to event listeners.
450
- * @remarks Must be enabled via the `events` option when creating the registry.
451
- *
452
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#emit
453
- *
454
- * @example
455
- * ```ts
456
- * import { createRegistry } from '@vuetify/v0'
457
- *
458
- * const registry = createRegistry({ events: true })
459
- *
460
- * registry.on('custom-event', (data) => {
461
- * console.log('Custom event received:', data)
462
- * })
463
- *
464
- * registry.emit('custom-event', { message: 'Hello, World!' }) // Console: Custom event received: { message: 'Hello, World!' }
465
- * ```
466
- */
467
- emit: <K extends Extensible<RegistryEventName>>(event: K, data: EventPayload<E, K>) => void;
468
- /**
469
- * Clears the registry and removes all listeners
470
- *
471
- * @remarks Disposes of the registry by clearing all tickets and removing all event listeners.
472
- *
473
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#dispose
474
- *
475
- * @example
476
- * ```ts
477
- * import { onScopeDispose } from 'vue'
478
- * import { createRegistry } from '@vuetify/v0'
479
- *
480
- * const registry = createRegistry({ events: true })
481
- *
482
- * registry.register({ id: 'ticket-id' })
483
- *
484
- * onScopeDispose(() => {
485
- * registry.dispose()
486
- * })
487
- * ```
488
- */
489
- dispose: () => void;
490
- /**
491
- * Onboard multiple tickets at once
492
- *
493
- * @param registrations An array of partial ticket data to register.
494
- * @remarks Registers multiple tickets in a single operation and returns the array of registered tickets.
495
- *
496
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#onboard
497
- *
498
- * @example
499
- * ```ts
500
- * import { createRegistry } from '@vuetify/v0'
501
- *
502
- * const registry = createRegistry()
503
- *
504
- * const tickets = registry.onboard([
505
- * { id: 'ticket-1', value: 'value-1' },
506
- * { id: 'ticket-2', value: 'value-2' },
507
- * ])
508
- *
509
- * console.log(tickets) // [{ id: 'ticket-1', ... }, { id: 'ticket-2', ... }]
510
- * ```
511
- */
512
- onboard: (registrations: Partial<Z & RegistryTicket>[]) => E[];
513
- /**
514
- * Offboard multiple tickets at once
515
- *
516
- * @param ids An array of ticket IDs to unregister.
517
- * @remarks Unregisters multiple tickets in a single operation with optimized reindexing.
518
- *
519
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#offboard
520
- *
521
- * @example
522
- * ```ts
523
- * import { createRegistry } from '@vuetify/v0'
524
- *
525
- * const registry = createRegistry()
526
- *
527
- * registry.onboard([
528
- * { id: 'ticket-1', value: 'value-1' },
529
- * { id: 'ticket-2', value: 'value-2' },
530
- * { id: 'ticket-3', value: 'value-3' },
531
- * ])
532
- *
533
- * registry.offboard(['ticket-1', 'ticket-3'])
534
- *
535
- * console.log(registry.size) // 1
536
- * ```
537
- */
538
- offboard: (ids: ID[]) => void;
539
- /**
540
- * The number of tickets in the registry
541
- *
542
- * @remarks Reflects the current size of the internal ticket collection.
543
- *
544
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#size
545
- *
546
- * @example
547
- * ```ts
548
- * import { createRegistry } from '@vuetify/v0'
549
- *
550
- * const registry = createRegistry()
551
- *
552
- * registry.register({ id: 'ticket-1' })
553
- * registry.register({ id: 'ticket-2' })
554
- *
555
- * console.log(registry.size) // 2
556
- * ```
557
- */
558
- size: number;
559
- /**
560
- * Execute operations in a batch, deferring cache invalidation and event emission until complete
561
- *
562
- * @param fn The function containing batch operations.
563
- * @returns The return value of the batch function.
564
- * @remarks Useful for bulk operations like onboard(). Invalidation and events happen once at the end, not after each operation.
565
- *
566
- * @see https://0.vuetifyjs.com/composables/registration/use-registry#batch
567
- *
568
- * @example
569
- * ```ts
570
- * import { createRegistry } from '@vuetify/v0'
571
- *
572
- * const registry = createRegistry({ events: true })
573
- *
574
- * // Without batch: N invalidations + N events
575
- * // With batch: 1 invalidation + N events (after all registrations)
576
- * const tickets = registry.batch(() => {
577
- * return [
578
- * registry.register({ id: 'a' }),
579
- * registry.register({ id: 'b' }),
580
- * registry.register({ id: 'c' }),
581
- * ]
582
- * })
583
- * ```
584
- */
585
- batch: <R>(fn: () => R) => R;
586
- }
587
- interface RegistryOptions {
588
- /**
589
- * Enable event emission for registry operations
590
- *
591
- * @default false
592
- * @remarks When enabled, the registry will emit events for operations like registration and unregistration. Listeners can be added using the `on` method.
593
- *
594
- * @example
595
- * ```ts
596
- * import { createRegistry } from '@vuetify/v0'
597
- *
598
- * const registry = createRegistry({ events: true })
599
- *
600
- * registry.on('register:ticket', (ticket) => {
601
- * console.log('Ticket registered:', ticket)
602
- * })
603
- *
604
- * registry.register({ id: 'ticket-id' }) // Console: Ticket registered: { id: 'ticket-id', ... }
605
- * ```
606
- */
607
- events?: boolean;
608
- /**
609
- * Enable reactive behavior for registry operations
610
- *
611
- * @default false
612
- * @remarks When enabled, the registry will use Vue's shallowReactive to track changes. This is useful for scenarios where you want to reactively update the registry state in response to changes.
613
- *
614
- * @example
615
- * ```ts
616
- * import { createRegistry } from '@vuetify/v0'
617
- *
618
- * const registry = createRegistry({ reactive: true })
619
- *
620
- * registry.register({ id: 'ticket-id' })
621
- *
622
- * console.log(registry.size) // 1
623
- * ```
624
- */
625
- reactive?: boolean;
626
- }
627
- interface RegistryContextOptions extends RegistryOptions {
628
- namespace?: string;
629
- }
630
- /**
631
- * Creates a new registry instance.
632
- *
633
- * @param options The options for the registry instance.
634
- * @template Z The type of registry ticket that extends RegistryTicket. Use this to add custom properties to tickets.
635
- * @template E The type of registry context that extends RegistryContext<Z>. Use this when extending the registry with additional methods.
636
- * @returns A new registry instance.
637
- *
638
- * @see https://0.vuetifyjs.com/composables/registration/create-registry#create-registry
639
- *
640
- * @example
641
- * ```ts
642
- * import { createRegistry } from '@vuetify/v0'
643
- *
644
- * const registry = createRegistry()
645
- *
646
- * const ticket1 = registry.register({ id: 'user-1', value: { name: 'John' } })
647
- * const ticket2 = registry.register({ id: 'user-2', value: { name: 'Jane' } })
648
- *
649
- * console.log(registry.size) // 2
650
- * console.log(registry.get('user-1')) // { id: 'user-1', index: 0, value: { name: 'John' }, ... }
651
- * ```
652
- */
653
- declare function createRegistry<Z extends RegistryTicketInput = RegistryTicketInput, E extends RegistryTicket & Z = RegistryTicket & Z>(options?: RegistryOptions): RegistryContext<Z, E>;
654
- /**
655
- * Creates a new registry context.
656
- *
657
- * @param options The options for the registry context, including `namespace` (defaults to `'v0:registry'`) and `events`.
658
- * @template Z The type of registry ticket that extends RegistryTicket. Use this to add custom properties to tickets.
659
- * @template E The type of registry context that extends RegistryContext<Z>. Use this when extending the registry with additional methods.
660
- * @returns A new registry context.
661
- *
662
- * @see https://0.vuetifyjs.com/composables/registration/create-registry#create-registry-context
663
- *
664
- * @example
665
- * ```ts
666
- * import { createRegistryContext } from '@vuetify/v0'
667
- *
668
- * // With default namespace 'v0:registry'
669
- * export const [useItems, provideItems, items] = createRegistryContext()
670
- *
671
- * // Or with custom namespace
672
- * export const [useItems, provideItems, items] = createRegistryContext({ namespace: 'my-items' })
673
- *
674
- * // In a parent component:
675
- * provideItems()
676
- *
677
- * // In a child component:
678
- * const items = useItems()
679
- * items.register({ id: 'item-1', value: 'Value 1' })
680
- * ```
681
- */
682
- declare function createRegistryContext<Z extends RegistryTicketInput = RegistryTicketInput, E extends RegistryTicket & Z = RegistryTicket & Z>(_options?: RegistryContextOptions): ContextTrinity<RegistryContext<Z, E>>;
683
- /**
684
- * Uses an existing registry from context.
685
- *
686
- * @param namespace The namespace for the registry context. Defaults to `'v0:registry'`.
687
- * @template Z The type of registry ticket that extends RegistryTicket.
688
- * @template E The type of registry context that extends RegistryContext<Z>.
689
- * @returns The registry instance.
690
- *
691
- * @see https://0.vuetifyjs.com/composables/registration/create-registry#use-registry
692
- *
693
- * @example
694
- * ```ts
695
- * import { useRegistry } from '@vuetify/v0'
696
- *
697
- * // In a child component (after provideRegistry was called by an ancestor):
698
- * const registry = useRegistry()
699
- *
700
- * registry.register({ id: 'item-1', value: 'Value 1' })
701
- * ```
702
- */
703
- declare function useRegistry<Z extends RegistryTicketInput = RegistryTicketInput, E extends RegistryTicket & Z = RegistryTicket & Z>(namespace?: string): RegistryContext<Z, E>;
704
- //#endregion
705
11
  //#region src/composables/createModel/index.d.ts
706
12
  /**
707
13
  * Input type for model tickets - what users provide to register().
@@ -718,9 +24,7 @@ interface ModelTicketInput<V = unknown> extends RegistryTicketInput<V> {
718
24
  * @template Z The input ticket type that extends ModelTicketInput.
719
25
  */
720
26
  type ModelTicket<Z extends ModelTicketInput = ModelTicketInput> = RegistryTicket & Z & {
721
- /** Disabled state of the ticket (guaranteed to exist on output) */
722
- disabled: MaybeRefOrGetter<boolean>;
723
- /** Whether the ticket is currently selected */
27
+ /** Disabled state of the ticket (guaranteed to exist on output) */disabled: MaybeRefOrGetter<boolean>; /** Whether the ticket is currently selected */
724
28
  isSelected: Readonly<Ref<boolean, boolean>>;
725
29
  };
726
30
  /**
@@ -1054,11 +358,8 @@ interface SelectionTicketInput<V = unknown> extends ModelTicketInput<V> {}
1054
358
  * - `toggle()` - Method to toggle selection state
1055
359
  */
1056
360
  type SelectionTicket<Z extends SelectionTicketInput = SelectionTicketInput> = ModelTicket<Z> & {
1057
- /** Select self */
1058
- select: () => void;
1059
- /** Unselect self */
1060
- unselect: () => void;
1061
- /** Toggle self on and off */
361
+ /** Select self */select: () => void; /** Unselect self */
362
+ unselect: () => void; /** Toggle self on and off */
1062
363
  toggle: () => void;
1063
364
  };
1064
365
  /**
@@ -1500,11 +801,8 @@ interface GroupTicketInput<V = unknown> extends SelectionTicketInput<V> {
1500
801
  * Includes all input properties plus selection and tri-state methods.
1501
802
  */
1502
803
  type GroupTicket<Z extends GroupTicketInput = GroupTicketInput> = SelectionTicket<Z> & {
1503
- /** Whether the ticket is in a mixed/indeterminate state */
1504
- isMixed: Readonly<Ref<boolean>>;
1505
- /** Set self to mixed/indeterminate state */
1506
- mix: () => void;
1507
- /** Clear mixed/indeterminate state from self */
804
+ /** Whether the ticket is in a mixed/indeterminate state */isMixed: Readonly<Ref<boolean>>; /** Set self to mixed/indeterminate state */
805
+ mix: () => void; /** Clear mixed/indeterminate state from self */
1508
806
  unmix: () => void;
1509
807
  };
1510
808
  /**
@@ -2497,164 +1795,6 @@ declare function useWindowEventListener<E extends keyof WindowEventMap>(event: M
2497
1795
  */
2498
1796
  declare function useDocumentEventListener<E extends keyof DocumentEventMap>(event: MaybeRefOrGetter<MaybeArray<E>>, listener: MaybeRef<MaybeArray<(this: Document, event: DocumentEventMap[E]) => void>>, options?: MaybeRefOrGetter<boolean | AddEventListenerOptions>): CleanupFunction;
2499
1797
  //#endregion
2500
- //#region src/composables/createTokens/index.d.ts
2501
- interface TokenAlias<T = unknown> {
2502
- [key: string]: unknown;
2503
- $value: T;
2504
- $type?: string;
2505
- $description?: string;
2506
- $extensions?: Record<string, unknown>;
2507
- $deprecated?: boolean | string;
2508
- }
2509
- type TokenPrimitive = string | number | boolean | null | Function;
2510
- type TokenValue = TokenPrimitive | TokenAlias;
2511
- interface TokenCollection {
2512
- [key: string]: TokenValue | TokenCollection;
2513
- }
2514
- type FlatTokenCollection = {
2515
- id: string;
2516
- value: TokenValue;
2517
- };
2518
- interface TokenTicket<Z extends TokenValue = TokenValue> extends RegistryTicket<Z> {}
2519
- interface TokenContext<Z extends TokenTicket> extends RegistryContext<Z> {
2520
- /**
2521
- * Checks if a token is an alias
2522
- *
2523
- * @param token The token to check.
2524
- * @returns True if the token is an alias, false otherwise.
2525
- * @remarks An alias is a string that starts with "{" and ends with "}".
2526
- *
2527
- * @see https://0.vuetifyjs.com/composables/registration/create-tokens#is-alias
2528
- *
2529
- * @example
2530
- * ```ts
2531
- * const tokens = createTokens({
2532
- * colors: {
2533
- * primary: '#3b82f6',
2534
- * secondary: '{colors.primary}', // Alias reference
2535
- * },
2536
- * })
2537
- *
2538
- * console.log(tokens.isAlias('{colors.primary}')) // true
2539
- * console.log(tokens.isAlias('#3b82f6')) // false
2540
- * ```
2541
- */
2542
- isAlias: (token: unknown) => token is string;
2543
- /**
2544
- * Resolves a token or alias to its value.
2545
- *
2546
- * @param token The token or alias to resolve.
2547
- * @returns The resolved value of the token or alias, or undefined if not found.
2548
- * @remarks This function can resolve nested aliases and supports token paths using dot notation.
2549
- *
2550
- * @see https://0.vuetifyjs.com/composables/registration/create-tokens#resolve
2551
- *
2552
- * @example
2553
- * ```ts
2554
- * const tokens = createTokens({
2555
- * colors: {
2556
- * primary: '#3b82f6',
2557
- * secondary: '{colors.primary}', // Alias reference
2558
- * },
2559
- * })
2560
- *
2561
- * console.log(tokens.resolve('{colors.primary}')) // '#3b82f6'
2562
- * console.log(tokens.resolve('{colors.secondary}')) // '#3b82f6'
2563
- * ```
2564
- */
2565
- resolve: (token: string | TokenAlias) => unknown | undefined;
2566
- }
2567
- interface TokenOptions extends RegistryOptions {
2568
- /**
2569
- * Whether to flatten nested token structures.
2570
- *
2571
- * @default false
2572
- */
2573
- flat?: boolean;
2574
- /**
2575
- * An optional prefix to prepend to each token ID during registration.
2576
- *
2577
- * @remarks This is useful for namespacing tokens.
2578
- */
2579
- prefix?: string;
2580
- }
2581
- interface TokenContextOptions extends TokenOptions, RegistryContextOptions {
2582
- tokens?: TokenCollection;
2583
- }
2584
- /**
2585
- * Creates a new token instance.
2586
- *
2587
- * @param tokens The tokens to use.
2588
- * @param options The options for the token instance.
2589
- * @template Z The type of the token ticket.
2590
- * @template E The type of the token context.
2591
- * @returns A new token instance.
2592
- *
2593
- * @see https://www.designtokens.org/tr/drafts/format/
2594
- * @see https://0.vuetifyjs.com/composables/registration/create-tokens
2595
- *
2596
- * @example
2597
- * ```ts
2598
- * import { createTokens } from '@vuetify/v0'
2599
- *
2600
- * const tokens = createTokens({
2601
- * colors: {
2602
- * primary: '#3b82f6',
2603
- * secondary: '{colors.primary}', // Alias reference
2604
- * },
2605
- * })
2606
- *
2607
- * console.log(tokens.resolve('{colors.primary}')) // '#3b82f6'
2608
- * console.log(tokens.resolve('{colors.secondary}')) // '#3b82f6'
2609
- * ```
2610
- */
2611
- declare function createTokens<Z extends TokenTicket = TokenTicket, E extends TokenContext<Z> = TokenContext<Z>>(tokens?: TokenCollection, options?: TokenOptions): E;
2612
- /**
2613
- * Creates a new token context.
2614
- *
2615
- * @param namespace The namespace for the token context.
2616
- * @param tokens The tokens to use.
2617
- * @template Z The type of the token ticket.
2618
- * @template E The type of the token context.
2619
- * @returns A new token context.
2620
- *
2621
- * @see https://0.vuetifyjs.com/composables/registration/create-tokens
2622
- *
2623
- * @example
2624
- * ```ts
2625
- * import { createTokensContext } from '@vuetify/v0'
2626
- *
2627
- * export const [useTokens, provideTokens, context] = createTokensContext({
2628
- * namespace: 'v0:tokens',
2629
- * tokens: {
2630
- * colors: {
2631
- * primary: '#3b82f6',
2632
- * secondary: '{colors.primary}', // Alias reference
2633
- * },
2634
- * },
2635
- * })
2636
- * ```
2637
- */
2638
- declare function createTokensContext<Z extends TokenTicket = TokenTicket, E extends TokenContext<Z> = TokenContext<Z>>(_options: TokenContextOptions): ContextTrinity<E>;
2639
- /**
2640
- * Returns the current tokens instance.
2641
- *
2642
- * @param namespace The namespace for the tokens context. Defaults to `'v0:tokens'`.
2643
- * @returns The current tokens instance.
2644
- *
2645
- * @see https://0.vuetifyjs.com/composables/registration/create-tokens
2646
- *
2647
- * @example
2648
- * ```vue
2649
- * <script setup lang="ts">
2650
- * import { useTokens } from '@vuetify/v0'
2651
- *
2652
- * const tokens = useTokens()
2653
- * </script>
2654
- * ```
2655
- */
2656
- declare function useTokens<Z extends TokenTicket = TokenTicket, E extends TokenContext<Z> = TokenContext<Z>>(namespace?: string): E;
2657
- //#endregion
2658
1798
  //#region src/composables/useFeatures/index.d.ts
2659
1799
  /**
2660
1800
  * Input type for feature tickets - what users provide to register().
@@ -2727,100 +1867,252 @@ interface FeaturePluginOptions extends FeatureContextOptions {
2727
1867
  declare function createFeatures<Z extends FeatureTicketInput = FeatureTicketInput, E extends FeatureTicket<Z> = FeatureTicket<Z>, R extends FeatureContext<Z, E> = FeatureContext<Z, E>>(_options?: FeatureOptions): R;
2728
1868
  declare const createFeaturesContext: <_E extends FeatureContext<FeatureTicketInput, FeatureTicket<FeatureTicketInput>> = FeatureContext<FeatureTicketInput, FeatureTicket<FeatureTicketInput>>>(_options?: FeaturePluginOptions | undefined) => ContextTrinity<_E>, createFeaturesPlugin: (_options?: FeaturePluginOptions | undefined) => Plugin, useFeatures: <_E extends FeatureContext<FeatureTicketInput, FeatureTicket<FeatureTicketInput>> = FeatureContext<FeatureTicketInput, FeatureTicket<FeatureTicketInput>>>(namespace?: string) => _E;
2729
1869
  //#endregion
2730
- //#region src/composables/createForm/index.d.ts
2731
- type FormValidationResult = string | true | Promise<string | true>;
2732
- type FormValidationRule = (value: unknown) => FormValidationResult;
2733
- type FormValue = Ref<unknown> | ShallowRef<unknown>;
1870
+ //#region src/composables/useRules/adapters/standard.d.ts
2734
1871
  /**
2735
- * Input type for form tickets - what users provide to register().
2736
- * Extend this interface to add custom properties.
1872
+ * Minimal duck-typed interface matching the Standard Schema spec (v1).
1873
+ * No npm dependency structurally compatible with Zod (v3.24+), Valibot, ArkType, and others.
1874
+ *
1875
+ * @see https://standardschema.dev/
1876
+ */
1877
+ interface StandardSchemaIssue {
1878
+ message: string;
1879
+ path?: ReadonlyArray<{
1880
+ key: PropertyKey;
1881
+ }>;
1882
+ }
1883
+ interface StandardSchemaResult {
1884
+ value?: unknown;
1885
+ issues?: ReadonlyArray<StandardSchemaIssue>;
1886
+ }
1887
+ interface StandardSchemaV1 {
1888
+ '~standard': {
1889
+ version: 1;
1890
+ vendor: string;
1891
+ validate: (value: unknown) => StandardSchemaResult | Promise<StandardSchemaResult>;
1892
+ };
1893
+ }
1894
+ /**
1895
+ * Type guard for Standard Schema objects.
1896
+ * Checks for the `~standard` property that all conforming libraries expose.
1897
+ *
1898
+ * @param value The value to check.
1899
+ * @returns `true` if the value conforms to the Standard Schema interface.
1900
+ */
1901
+ declare function isStandardSchema(value: unknown): value is StandardSchemaV1;
1902
+ //#endregion
1903
+ //#region src/composables/useRules/index.d.ts
1904
+ /** A rule alias: a string name referencing a registered predicate. */
1905
+ type RuleAlias = string;
1906
+ /**
1907
+ * Input accepted by resolve(): alias strings, raw validation functions,
1908
+ * or Standard Schema objects (Zod v3.24+, Valibot, ArkType, etc.).
1909
+ */
1910
+ type RuleInput = RuleAlias | FormValidationRule | StandardSchemaV1;
1911
+ /** A map of alias names to predicate functions. */
1912
+ interface RuleAliases {
1913
+ [name: string]: FormValidationRule;
1914
+ }
1915
+ interface RulesContext {
1916
+ /** Resolve aliases, functions, and Standard Schema objects to FormValidationRule[]. */
1917
+ resolve: (rules: RuleInput[]) => FormValidationRule[];
1918
+ /** The alias map (custom aliases registered via options). */
1919
+ aliases: RuleAliases;
1920
+ }
1921
+ interface RulesOptions {
1922
+ /** Custom aliases to register. Each alias is a predicate (FormValidationRule). */
1923
+ aliases?: Partial<RuleAliases>;
1924
+ }
1925
+ interface RulesContextOptions extends RulesOptions {
1926
+ namespace?: string;
1927
+ }
1928
+ /**
1929
+ * Creates a new rules instance.
1930
+ *
1931
+ * @param options The options for the rules instance.
1932
+ * @returns A new rules instance with resolve() and aliases.
1933
+ *
1934
+ * @see https://0.vuetifyjs.com/composables/plugins/use-rules
1935
+ *
1936
+ * @example
1937
+ * ```ts
1938
+ * import { createRules } from '@vuetify/v0'
1939
+ *
1940
+ * const rules = createRules({
1941
+ * aliases: {
1942
+ * required: (v) => !!v || false,
1943
+ * },
1944
+ * })
1945
+ *
1946
+ * // Resolve alias strings to validation functions
1947
+ * const resolved = rules.resolve(['required'])
1948
+ * ```
1949
+ */
1950
+ declare function createRules(_options?: RulesOptions): RulesContext;
1951
+ /**
1952
+ * Creates a fallback rules instance for use outside component scope.
1953
+ * No locale lookup — `false` returns fall back to the alias name.
1954
+ *
1955
+ * @returns A standalone rules context with empty aliases.
1956
+ */
1957
+ declare function createRulesFallback(): RulesContext;
1958
+ declare const createRulesContext: <_E extends RulesContext = RulesContext>(_options?: RulesContextOptions | undefined) => ContextTrinity<_E>, createRulesPlugin: (_options?: RulesContextOptions | undefined) => Plugin, useRules: <_E extends RulesContext = RulesContext>(namespace?: string) => _E;
1959
+ //#endregion
1960
+ //#region src/composables/createValidation/index.d.ts
1961
+ /**
1962
+ * Input type for validation tickets - what users provide to register().
2737
1963
  *
2738
1964
  * @template V The type of the field value.
2739
1965
  */
2740
- interface FormTicketInput<V = unknown> extends RegistryTicketInput<V> {
2741
- /** Validation rules for this field */
2742
- rules?: FormValidationRule[];
2743
- /** When validation should trigger (inherits from form if not set) */
2744
- validateOn?: 'submit' | 'change' | string;
2745
- /** Whether this field is disabled */
1966
+ interface ValidationTicketInput<V = unknown> extends RegistryTicketInput<V> {
1967
+ /** Validation rules: functions, alias strings, or Standard Schema objects. */
1968
+ rules?: (FormValidationRule | RuleAlias | StandardSchemaV1)[];
1969
+ /** Whether this field is disabled. */
2746
1970
  disabled?: boolean;
2747
1971
  }
2748
1972
  /**
2749
- * Output type for form tickets - what users receive from get().
2750
- * Includes all input properties plus validation state and methods.
1973
+ * Output type for validation tickets - the full validation state for a field.
2751
1974
  *
2752
- * @template Z The input ticket type that extends FormTicketInput.
1975
+ * @template Z The input ticket type.
2753
1976
  */
2754
- type FormTicket<Z extends FormTicketInput = FormTicketInput> = RegistryTicket & Z & {
2755
- validate: (silent?: boolean) => Promise<boolean>;
2756
- reset: () => void;
2757
- validateOn: 'submit' | 'change' | string;
2758
- disabled: boolean;
2759
- errors: ShallowRef<string[]>;
2760
- rules: FormValidationRule[];
2761
- isPristine: ShallowRef<boolean>;
2762
- isValid: ShallowRef<boolean | null>;
1977
+ type ValidationTicket<Z extends ValidationTicketInput = ValidationTicketInput> = RegistryTicket & Z & {
1978
+ /** Run validation. Pass silent=true to check without updating state. */validate: (silent?: boolean) => Promise<boolean>; /** Reset value, errors, and validation state. */
1979
+ reset: () => void; /** Whether this field is disabled. */
1980
+ disabled: boolean; /** Current validation error messages. */
1981
+ errors: ShallowRef<string[]>; /** Resolved validation rules (FormValidationRule[]). */
1982
+ rules: FormValidationRule[]; /** Whether the field value has not been modified since registration or last reset. */
1983
+ isPristine: ShallowRef<boolean>; /** Tri-state: null (not validated), true (valid), false (invalid). */
1984
+ isValid: ShallowRef<boolean | null>; /** Whether async validation is in progress. */
2763
1985
  isValidating: ShallowRef<boolean>;
2764
1986
  };
2765
1987
  /**
2766
- * Context for managing form field collections with validation.
1988
+ * Context for managing a collection of validation tickets.
2767
1989
  *
2768
1990
  * @template Z The input ticket type.
2769
1991
  * @template E The output ticket type.
2770
1992
  */
2771
- interface FormContext<Z extends FormTicketInput = FormTicketInput, E extends FormTicket<Z> = FormTicket<Z>> extends Omit<RegistryContext<E>, 'register' | 'onboard'> {
2772
- register: (registration: Partial<Z>) => E;
1993
+ interface ValidationContext<Z extends ValidationTicketInput = ValidationTicketInput, E extends ValidationTicket<Z> = ValidationTicket<Z>> extends Omit<RegistryContext<E>, 'register' | 'onboard'> {
1994
+ register: (registration?: Partial<Z>) => E;
2773
1995
  onboard: (registrations: Partial<Z>[]) => E[];
1996
+ /** Aggregate: true if all tickets valid, false if any invalid, null if any unvalidated. */
1997
+ isValid: ComputedRef<boolean | null>;
1998
+ /** Aggregate: true if any ticket is validating. */
1999
+ isValidating: ComputedRef<boolean>;
2000
+ }
2001
+ interface ValidationOptions extends RegistryOptions {}
2002
+ /**
2003
+ * Creates a new validation instance.
2004
+ *
2005
+ * @param options The options for the validation instance.
2006
+ * @returns A new validation context with register(), aggregate state, etc.
2007
+ *
2008
+ * @see https://0.vuetifyjs.com/composables/forms/create-validation
2009
+ *
2010
+ * @example
2011
+ * ```ts
2012
+ * import { createValidation } from '@vuetify/v0'
2013
+ *
2014
+ * const validation = createValidation()
2015
+ *
2016
+ * const field = validation.register({
2017
+ * id: 'email',
2018
+ * value: '',
2019
+ * rules: [(v) => !!v || 'Required'],
2020
+ * })
2021
+ *
2022
+ * await field.validate()
2023
+ *
2024
+ * console.log(field.errors.value) // ['Required']
2025
+ *
2026
+ * field.reset()
2027
+ * ```
2028
+ */
2029
+ declare function createValidation<Z extends ValidationTicketInput = ValidationTicketInput, E extends ValidationTicket<Z> = ValidationTicket<Z>, R extends ValidationContext<Z, E> = ValidationContext<Z, E>>(options?: ValidationOptions): R;
2030
+ //#endregion
2031
+ //#region src/composables/createForm/index.d.ts
2032
+ type FormValidationResult = string | boolean | Promise<string | boolean>;
2033
+ type FormValidationRule = (value: unknown) => FormValidationResult;
2034
+ type FormValue = ValidationContext;
2035
+ /**
2036
+ * User-facing input shape for form tickets.
2037
+ */
2038
+ interface FormTicketInput extends RegistryTicketInput<FormValue> {}
2039
+ /**
2040
+ * A registered validation in the form registry.
2041
+ *
2042
+ * @template Z The input ticket type that extends FormTicketInput.
2043
+ */
2044
+ type FormTicket<Z extends FormTicketInput = FormTicketInput> = RegistryTicket<FormValue> & Z;
2045
+ /**
2046
+ * Context for coordinating validation across multiple fields.
2047
+ *
2048
+ * @template Z The input ticket type.
2049
+ * @template E The output ticket type.
2050
+ */
2051
+ interface FormContext<Z extends FormTicketInput = FormTicketInput, E extends FormTicket<Z> = FormTicket<Z>> extends Omit<RegistryContext<E>, 'register' | 'onboard'> {
2052
+ /** Register a validation context with the form. */
2053
+ register: (registration: Partial<Z> & {
2054
+ value: FormValue;
2055
+ }) => E;
2056
+ /** Submit: validate specific fields or all. */
2774
2057
  submit: (id?: ID | ID[]) => Promise<boolean>;
2058
+ /** Reset all registered validations. */
2775
2059
  reset: () => void;
2776
- validateOn: 'submit' | 'change' | string;
2060
+ /** Whether the form is disabled. Components can read this to conditionally disable inputs. */
2061
+ disabled: ShallowRef<boolean>;
2062
+ /** Whether the form is readonly. Components can read this to conditionally disable inputs. */
2063
+ readonly: ShallowRef<boolean>;
2064
+ /** Aggregate: true if all validations valid, false if any invalid, null if any unvalidated. */
2777
2065
  isValid: ComputedRef<boolean | null>;
2066
+ /** Aggregate: true if any validation is in progress. */
2778
2067
  isValidating: ComputedRef<boolean>;
2779
2068
  }
2780
2069
  interface FormOptions extends RegistryOptions {
2781
- validateOn?: 'submit' | 'change' | string;
2070
+ /** Whether the form starts disabled. */
2071
+ disabled?: MaybeRefOrGetter<boolean>;
2072
+ /** Whether the form starts readonly. */
2073
+ readonly?: MaybeRefOrGetter<boolean>;
2782
2074
  }
2783
- interface FormContextOptions extends RegistryOptions {
2075
+ interface FormContextOptions extends FormOptions {
2784
2076
  namespace?: string;
2785
- validateOn?: 'submit' | 'change' | string;
2786
2077
  }
2787
2078
  /**
2788
2079
  * Creates a new form instance.
2789
2080
  *
2081
+ * A form is a pure registry of validation contexts. Validations register
2082
+ * themselves via `useForm()` injection. The form coordinates submit, reset,
2083
+ * and aggregate state across all registered validations.
2084
+ *
2790
2085
  * @param options The options for the form instance.
2791
- * @template Z The type of the form ticket.
2792
- * @template E The type of the form context.
2793
- * @returns A new form instance.
2086
+ * @returns A new form context.
2794
2087
  *
2795
2088
  * @see https://0.vuetifyjs.com/composables/forms/create-form
2796
2089
  *
2797
2090
  * @example
2798
2091
  * ```ts
2799
- * import { createForm } from '@vuetify/v0'
2092
+ * import { createForm, createValidation } from '@vuetify/v0'
2800
2093
  *
2801
2094
  * const form = createForm()
2802
2095
  *
2803
- * const username = form.register({
2804
- * id: 'username',
2096
+ * // Validations register themselves — form is just the coordinator
2097
+ * const validation = createValidation()
2098
+ * const email = validation.register({
2099
+ * id: 'email',
2805
2100
  * value: '',
2806
- * rules: [(v) => v.length > 0 || 'Username is required'],
2101
+ * rules: ['required', 'email'],
2807
2102
  * })
2808
2103
  *
2809
- * await form.submit()
2810
- *
2811
- * console.log(username.errors.value) // ['Username is required']
2104
+ * form.register({ value: validation })
2812
2105
  *
2106
+ * await form.submit()
2813
2107
  * form.reset()
2814
2108
  * ```
2815
2109
  */
2816
2110
  declare function createForm<Z extends FormTicketInput = FormTicketInput, E extends FormTicket<Z> = FormTicket<Z>, R extends FormContext<Z, E> = FormContext<Z, E>>(options?: FormOptions): R;
2817
2111
  /**
2818
- * Creates a new form context.
2112
+ * Creates a new form context using the Trinity pattern.
2819
2113
  *
2820
2114
  * @param options The options for the form context.
2821
- * @template Z The type of the form ticket.
2822
- * @template E The type of the form context.
2823
- * @returns A new form context.
2115
+ * @returns A Trinity tuple: [useFormContext, provideFormContext, formContext]
2824
2116
  *
2825
2117
  * @see https://0.vuetifyjs.com/composables/forms/create-form
2826
2118
  *
@@ -2828,21 +2120,7 @@ declare function createForm<Z extends FormTicketInput = FormTicketInput, E exten
2828
2120
  * ```ts
2829
2121
  * import { createFormContext } from '@vuetify/v0'
2830
2122
  *
2831
- * // With default namespace 'v0:form'
2832
- * export const [useMyForm, provideMyForm, myForm] = createFormContext({ validateOn: 'change' })
2833
- *
2834
- * // Or with custom namespace
2835
- * export const [useMyForm, provideMyForm, myForm] = createFormContext({
2836
- * namespace: 'my-form',
2837
- * validateOn: 'change',
2838
- * })
2839
- *
2840
- * // In a parent component:
2841
- * provideMyForm()
2842
- *
2843
- * // In a child component:
2844
- * const form = useMyForm()
2845
- * form.register({ id: 'field', value: ref(''), rules: [...] })
2123
+ * export const [useMyForm, provideMyForm, myForm] = createFormContext()
2846
2124
  * ```
2847
2125
  */
2848
2126
  declare function createFormContext<Z extends FormTicketInput = FormTicketInput, E extends FormTicket<Z> = FormTicket<Z>, R extends FormContext<Z, E> = FormContext<Z, E>>(_options?: FormContextOptions): ContextTrinity<R>;
@@ -2850,7 +2128,7 @@ declare function createFormContext<Z extends FormTicketInput = FormTicketInput,
2850
2128
  * Returns the current form instance.
2851
2129
  *
2852
2130
  * @param namespace The namespace for the form context. Defaults to `'v0:form'`.
2853
- * @returns The current form instance.
2131
+ * @returns The current form instance, or undefined if not provided.
2854
2132
  *
2855
2133
  * @see https://0.vuetifyjs.com/composables/forms/create-form
2856
2134
  *
@@ -2861,15 +2139,9 @@ declare function createFormContext<Z extends FormTicketInput = FormTicketInput,
2861
2139
  *
2862
2140
  * const form = useForm()
2863
2141
  * </script>
2864
- *
2865
- * <template>
2866
- * <div>
2867
- * <p>Form is {{ form.isValid.value ? 'valid' : 'invalid' }}</p>
2868
- * </div>
2869
- * </template>
2870
2142
  * ```
2871
2143
  */
2872
- declare function useForm<Z extends FormTicketInput = FormTicketInput, E extends FormTicket<Z> = FormTicket<Z>, R extends FormContext<Z, E> = FormContext<Z, E>>(namespace?: string): R;
2144
+ declare function useForm<Z extends FormTicketInput = FormTicketInput, E extends FormTicket<Z> = FormTicket<Z>, R extends FormContext<Z, E> = FormContext<Z, E>>(namespace?: string): R | undefined;
2873
2145
  //#endregion
2874
2146
  //#region src/composables/useHotkey/index.d.ts
2875
2147
  interface UseHotkeyOptions {
@@ -3509,41 +2781,23 @@ interface NestedTicketInput<V = unknown> extends GroupTicketInput<V> {
3509
2781
  * @template Z The input ticket type that extends NestedTicketInput.
3510
2782
  */
3511
2783
  type NestedTicket<Z extends NestedTicketInput = NestedTicketInput> = GroupTicket<Z> & {
3512
- /** ID of the parent ticket, or undefined if this is a root item */
3513
- parentId: ID | undefined;
3514
- /** Whether this ticket is currently open/expanded */
3515
- isOpen: Readonly<Ref<boolean>>;
3516
- /** Whether this ticket is currently active/highlighted */
3517
- isActive: Readonly<Ref<boolean>>;
3518
- /** Whether this ticket is a leaf node (has no children) */
3519
- isLeaf: Readonly<Ref<boolean>>;
3520
- /** Depth in tree (0 = root) */
3521
- depth: Readonly<Ref<number>>;
3522
- /** Open/expand this ticket */
3523
- open: () => void;
3524
- /** Close/collapse this ticket */
3525
- close: () => void;
3526
- /** Flip this ticket's open/closed state */
3527
- flip: () => void;
3528
- /** Reveal this ticket by opening all ancestors */
3529
- reveal: () => void;
3530
- /** Activate/highlight this ticket */
3531
- activate: () => void;
3532
- /** Deactivate/unhighlight this ticket */
3533
- deactivate: () => void;
3534
- /** Get path from root to self (includes self) */
3535
- getPath: () => ID[];
3536
- /** Get ancestors excluding self */
3537
- getAncestors: () => ID[];
3538
- /** Get all descendants */
3539
- getDescendants: () => ID[];
3540
- /** Check if this ticket is an ancestor of the given ID */
3541
- isAncestorOf: (descendantId: ID) => boolean;
3542
- /** Check if this ticket has the given ID as an ancestor */
3543
- hasAncestor: (ancestorId: ID) => boolean;
3544
- /** Get sibling IDs (including self) */
3545
- siblings: () => ID[];
3546
- /** Get 1-indexed position among siblings (for aria-posinset) */
2784
+ /** ID of the parent ticket, or undefined if this is a root item */parentId: ID | undefined; /** Whether this ticket is currently open/expanded */
2785
+ isOpen: Readonly<Ref<boolean>>; /** Whether this ticket is currently active/highlighted */
2786
+ isActive: Readonly<Ref<boolean>>; /** Whether this ticket is a leaf node (has no children) */
2787
+ isLeaf: Readonly<Ref<boolean>>; /** Depth in tree (0 = root) */
2788
+ depth: Readonly<Ref<number>>; /** Open/expand this ticket */
2789
+ open: () => void; /** Close/collapse this ticket */
2790
+ close: () => void; /** Flip this ticket's open/closed state */
2791
+ flip: () => void; /** Reveal this ticket by opening all ancestors */
2792
+ reveal: () => void; /** Activate/highlight this ticket */
2793
+ activate: () => void; /** Deactivate/unhighlight this ticket */
2794
+ deactivate: () => void; /** Get path from root to self (includes self) */
2795
+ getPath: () => ID[]; /** Get ancestors excluding self */
2796
+ getAncestors: () => ID[]; /** Get all descendants */
2797
+ getDescendants: () => ID[]; /** Check if this ticket is an ancestor of the given ID */
2798
+ isAncestorOf: (descendantId: ID) => boolean; /** Check if this ticket has the given ID as an ancestor */
2799
+ hasAncestor: (ancestorId: ID) => boolean; /** Get sibling IDs (including self) */
2800
+ siblings: () => ID[]; /** Get 1-indexed position among siblings (for aria-posinset) */
3547
2801
  position: () => number;
3548
2802
  };
3549
2803
  /**
@@ -3580,8 +2834,7 @@ interface OpenStrategy {
3580
2834
  * @template Z The input ticket type that extends NestedTicketInput.
3581
2835
  */
3582
2836
  type NestedRegistration<Z extends NestedTicketInput = NestedTicketInput> = Partial<Z> & {
3583
- /** Inline children to register with this item as parent */
3584
- children?: NestedRegistration<Z>[];
2837
+ /** Inline children to register with this item as parent */children?: NestedRegistration<Z>[];
3585
2838
  };
3586
2839
  /**
3587
2840
  * Context for managing nested/hierarchical item collections.
@@ -4414,6 +3667,51 @@ interface UseElementSizeReturn extends UseResizeObserverReturn {
4414
3667
  */
4415
3668
  declare function useElementSize(target: MaybeElementRef): UseElementSizeReturn;
4416
3669
  //#endregion
3670
+ //#region src/composables/useRtl/adapters/adapter.d.ts
3671
+ interface RtlAdapterSetupContext {
3672
+ isRtl: Ref<boolean>;
3673
+ toggle: () => void;
3674
+ }
3675
+ interface RtlAdapter {
3676
+ setup: <T extends RtlAdapterSetupContext>(app: App, context: T, target?: string | HTMLElement | null) => void;
3677
+ }
3678
+ //#endregion
3679
+ //#region src/composables/useRtl/adapters/v0.d.ts
3680
+ declare class Vuetify0RtlAdapter implements RtlAdapter {
3681
+ setup<T extends RtlAdapterSetupContext>(app: App, context: T, target?: string | HTMLElement | null): void;
3682
+ }
3683
+ //#endregion
3684
+ //#region src/composables/useRtl/index.d.ts
3685
+ interface RtlContext {
3686
+ /** Writable ref — true = RTL, false = LTR */
3687
+ isRtl: Ref<boolean>;
3688
+ /** Convenience method to flip direction */
3689
+ toggle: () => void;
3690
+ }
3691
+ interface RtlOptions {
3692
+ /** Initial direction. Defaults to false (LTR). */
3693
+ default?: boolean;
3694
+ /** Adapter for framework-specific side-effects. */
3695
+ adapter?: RtlAdapter;
3696
+ /** Target element or selector for dir attribute. Defaults to documentElement. */
3697
+ target?: string | HTMLElement | null;
3698
+ }
3699
+ interface RtlContextOptions extends RtlOptions {
3700
+ namespace?: string;
3701
+ }
3702
+ interface RtlPluginOptions extends RtlContextOptions {}
3703
+ /**
3704
+ * Creates a new RTL direction instance.
3705
+ *
3706
+ * @param options The options for the RTL instance.
3707
+ * @returns A new RTL context with reactive direction state.
3708
+ *
3709
+ * @see https://0.vuetifyjs.com/composables/plugins/use-rtl
3710
+ */
3711
+ declare function createRtl(options?: RtlOptions): RtlContext;
3712
+ declare function createRtlFallback(): RtlContext;
3713
+ declare const createRtlContext: <_E extends RtlContext = RtlContext>(_options?: RtlContextOptions | undefined) => ContextTrinity<_E>, createRtlPlugin: (_options?: RtlContextOptions | undefined) => Plugin, useRtl: <_E extends RtlContext = RtlContext>(namespace?: string) => _E;
3714
+ //#endregion
4417
3715
  //#region src/composables/createSlider/index.d.ts
4418
3716
  interface SliderTicketInput extends ModelTicketInput<ShallowRef<number>> {
4419
3717
  value: ShallowRef<number>;
@@ -6071,4 +5369,4 @@ declare function createVirtualContext<T = unknown>(items: Ref<readonly T[]>, _op
6071
5369
  */
6072
5370
  declare function useVirtual<T = unknown>(namespace?: string): VirtualContext<T>;
6073
5371
  //#endregion
6074
- export { useStep as $, SingleTicketInput as $i, createHydrationContext as $n, ClickOutsideIgnoreTarget as $r, NestedOpenMode as $t, createTheme as A, createOverflow as Ai, LocaleRecord as An, TokenContext as Ar, useProxyRegistry as At, StorageOptions as B, useGroup as Bi, useLazy as Bn, EventHandler as Br, createPermissionsContext as Bt, ThemeContext as C, RegistryTicketInput as Ca, CreateContextOptions as Ci, createLoggerPlugin as Cn, createFeatures as Cr, QueueTicket as Ct, ThemeRecord as D, OverflowContext as Di, LocaleContextOptions as Dn, FlatTokenCollection as Dr, useQueue as Dt, ThemePluginOptions as E, useRegistry as Ea, useContext as Ei, LocaleContext as En, useFeatures as Er, createQueueContext as Et, Vuetify0ThemeOptions as F, GroupOptions as Fi, createLocaleFallback as Fn, TokenValue as Fr, PermissionContextOptions as Ft, useStorage as G, BreadcrumbsOptions as Gi, useElementIntersection as Gn, DateContextOptions as Gr, createNested as Gt, createStorage as H, BreadcrumbTicketInput as Hi, IntersectionObserverOptions as Hn, useEventListener as Hr, usePermissions as Ht, ThemeAdapter as I, GroupTicket as Ii, createLocalePlugin as In, createTokens as Ir, PermissionOptions as It, StepOptions as J, useBreadcrumbs as Ji, HydrationContextOptions as Jn, createDate as Jr, multipleOpenStrategy as Jt, StepContext as K, createBreadcrumbs as Ki, useIntersectionObserver as Kn, DateOptions as Kr, createNestedContext as Kt, ThemeAdapterInterface as L, GroupTicketInput as Li, useLocale as Ln, createTokensContext as Lr, PermissionPluginOptions as Lt, createThemePlugin as M, useOverflow as Mi, LocaleTicketInput as Mn, TokenOptions as Mr, ProxyModelTarget as Mt, useTheme as N, GroupContext as Ni, createLocale as Nn, TokenPrimitive as Nr, useProxyModel as Nt, ThemeTicket as O, OverflowContextOptions as Oi, LocaleOptions as On, TokenAlias as Or, ProxyRegistryContext as Ot, Vuetify0ThemeAdapter as P, GroupContextOptions as Pi, createLocaleContext as Pn, TokenTicket as Pr, PermissionContext as Pt, createStepContext as Q, SingleTicket as Qi, createHydration as Qn, ClickOutsideElement as Qr, NestedContextOptions as Qt, StorageContext as R, createGroup as Ri, LazyContext as Rn, useTokens as Rr, PermissionTicket as Rt, ThemeColors as S, RegistryTicket as Sa, ContextKey as Si, createLoggerContext as Sn, FeatureTicketInput as Sr, QueueOptions as St, ThemeOptions as T, createRegistryContext as Ta, provideContext as Ti, LogLevel as Tn, createFeaturesPlugin as Tr, createQueue as Tt, createStorageContext as U, BreadcrumbsContext as Ui, UseElementIntersectionReturn as Un, useWindowEventListener as Ur, PermissionAdapter as Ut, StoragePluginOptions as V, BreadcrumbTicket as Vi, IntersectionObserverEntry as Vn, useDocumentEventListener as Vr, createPermissionsPlugin as Vt, createStoragePlugin as W, BreadcrumbsContextOptions as Wi, UseIntersectionObserverReturn as Wn, DateContext as Wr, PermissionAdapterInterface as Wt, StepTicketInput as X, SingleContextOptions as Xi, HydrationPluginOptions as Xn, createDatePlugin as Xr, NestedActiveMode as Xt, StepTicket as Y, SingleContext as Yi, HydrationOptions as Yn, createDateContext as Yr, singleOpenStrategy as Yt, createStep as Z, SingleOptions as Zi, createFallbackHydration as Zn, useDate as Zr, NestedContext as Zt, TimelineTicket as _, RegistryContextOptions as _a, Plugin as _i, LoggerContext as _n, FeatureContext as _r, UseResizeObserverReturn as _t, VirtualDirection as a, SelectionOptions as aa, BreakpointsContext as ai, OpenStrategy as an, useHotkey as ar, StackTicketInput as at, useTimeline as b, RegistryEventName as ba, createPlugin as bi, LoggerPluginOptions as bn, FeaturePluginOptions as br, QueueContext as bt, VirtualState as c, createSelection as ca, BreakpointsPluginOptions as ci, ObservableNodeList as cn, FormOptions as cr, createStackPlugin as ct, useVirtual as d, ModelContext as da, createBreakpointsPlugin as di, useMutationObserver as dn, FormValidationResult as dr, SliderOptions as dt, createSingle as ea, ClickOutsideTarget as ei, NestedOptions as en, createHydrationPlugin as er, StackContext as et, ToggleScopeControls as f, ModelOptions as fa, useBreakpoints as fi, MediaQueryContext as fn, FormValidationRule as fr, SliderTicketInput as ft, TimelineOptions as g, RegistryContext as ga, toArray as gi, usePrefersReducedMotion as gn, useForm as gr, UseElementSizeReturn as gt, TimelineContextOptions as h, createModel as ha, toElement as hi, usePrefersDark as hn, createFormContext as hr, ResizeObserverOptions as ht, VirtualContextOptions as i, SelectionContextOptions as ia, BreakpointName as ii, NestedTicketInput as in, UseHotkeyReturn as ir, StackTicket as it, createThemeContext as j, createOverflowContext as ji, LocaleTicket as jn, TokenContextOptions as jr, ProxyModelOptions as jt, ThemeTicketInput as k, OverflowOptions as ki, LocalePluginOptions as kn, TokenCollection as kr, ProxyRegistryOptions as kt, createVirtual as l, createSelectionContext as la, createBreakpoints as li, UseMutationObserverOptions as ln, FormTicket as lr, useStack as lt, TimelineContext as m, ModelTicketInput as ma, MaybeElementRef as mi, usePrefersContrast as mn, createForm as mr, ResizeObserverEntry as mt, VirtualAnchor as n, useSingle as na, UseClickOutsideReturn as ni, NestedSelectionMode as nn, PlatformContext as nr, StackOptions as nt, VirtualItem as o, SelectionTicket as oa, BreakpointsContextOptions as oi, OpenStrategyContext as on, FormContext as or, createStack as ot, useToggleScope as p, ModelTicket as pa, toReactive as pi, useMediaQuery as pn, FormValue as pr, createSlider as pt, StepContextOptions as q, createBreadcrumbsContext as qi, HydrationContext as qn, DatePluginOptions as qr, useNested as qt, VirtualContext as r, SelectionContext as ra, useClickOutside as ri, NestedTicket as rn, UseHotkeyOptions as rr, StackPluginOptions as rt, VirtualOptions as s, SelectionTicketInput as sa, BreakpointsOptions as si, MutationObserverRecord as sn, FormContextOptions as sr, createStackContext as st, ScrollToOptions as t, createSingleContext as ta, UseClickOutsideOptions as ti, NestedRegistration as tn, useHydration as tr, StackContextOptions as tt, createVirtualContext as u, useSelection as ua, createBreakpointsContext as ui, UseMutationObserverReturn as un, FormTicketInput as ur, SliderContext as ut, createTimeline as v, RegistryEventCallback as va, PluginContextConfig as vi, LoggerContextOptions as vn, FeatureContextOptions as vr, useElementSize as vt, ThemeContextOptions as w, createRegistry as wa, createContext as wi, useLogger as wn, createFeaturesContext as wr, QueueTicketInput as wt, Colors as x, RegistryOptions as xa, createPluginContext as xi, createLogger as xn, FeatureTicket as xr, QueueContextOptions as xt, createTimelineContext as y, RegistryEventMap as ya, PluginOptions as yi, LoggerOptions as yn, FeatureOptions as yr, useResizeObserver as yt, StorageContextOptions as z, createGroupContext as zi, LazyOptions as zn, CleanupFunction as zr, createPermissions as zt };
5372
+ export { useStep as $, GroupOptions as $i, IntersectionObserverEntry as $n, createFeatures as $r, createPermissionsPlugin as $t, createTheme as A, ModelOptions as Aa, useBreakpoints as Ai, LoggerContextOptions as An, ValidationOptions as Ar, useElementSize as At, StorageOptions as B, ContextKey as Bi, LocaleOptions as Bn, createRules as Br, ProxyRegistryContext as Bt, ThemeContext as C, SelectionOptions as Ca, BreakpointsContext as Ci, useMutationObserver as Cn, FormValidationResult as Cr, Vuetify0RtlAdapter as Ct, ThemeRecord as D, createSelectionContext as Da, createBreakpoints as Di, usePrefersDark as Dn, createFormContext as Dr, ResizeObserverOptions as Dt, ThemePluginOptions as E, createSelection as Ea, BreakpointsPluginOptions as Ei, usePrefersContrast as En, createForm as Er, ResizeObserverEntry as Et, Vuetify0ThemeOptions as F, Plugin as Fi, createLoggerPlugin as Fn, RuleAliases as Fr, QueueTicket as Ft, useStorage as G, OverflowContext as Gi, createLocale as Gn, StandardSchemaV1 as Gr, useProxyModel as Gt, createStorage as H, createContext as Hi, LocaleRecord as Hn, createRulesFallback as Hr, useProxyRegistry as Ht, ThemeAdapter as I, PluginContextConfig as Ii, useLogger as In, RuleInput as Ir, QueueTicketInput as It, StepOptions as J, createOverflow as Ji, createLocalePlugin as Jn, FeatureContextOptions as Jr, PermissionOptions as Jt, StepContext as K, OverflowContextOptions as Ki, createLocaleContext as Kn, isStandardSchema as Kr, PermissionContext as Kt, ThemeAdapterInterface as L, PluginOptions as Li, LogLevel as Ln, RulesContext as Lr, createQueue as Lt, createThemePlugin as M, ModelTicketInput as Ma, MaybeElementRef as Mi, LoggerPluginOptions as Mn, ValidationTicketInput as Mr, QueueContext as Mt, useTheme as N, createModel as Na, toElement as Ni, createLogger as Nn, createValidation as Nr, QueueContextOptions as Nt, ThemeTicket as O, useSelection as Oa, createBreakpointsContext as Oi, usePrefersReducedMotion as On, useForm as Or, UseElementSizeReturn as Ot, Vuetify0ThemeAdapter as P, toArray as Pi, createLoggerContext as Pn, RuleAlias as Pr, QueueOptions as Pt, createStepContext as Q, GroupContextOptions as Qi, useLazy as Qn, FeatureTicketInput as Qr, createPermissionsContext as Qt, StorageContext as R, createPlugin as Ri, LocaleContext as Rn, RulesContextOptions as Rr, createQueueContext as Rt, ThemeColors as S, SelectionContextOptions as Sa, BreakpointName as Si, UseMutationObserverReturn as Sn, FormTicketInput as Sr, useRtl as St, ThemeOptions as T, SelectionTicketInput as Ta, BreakpointsOptions as Ti, useMediaQuery as Tn, FormValue as Tr, RtlAdapterSetupContext as Tt, createStorageContext as U, provideContext as Ui, LocaleTicket as Un, createRulesPlugin as Ur, ProxyModelOptions as Ut, StoragePluginOptions as V, CreateContextOptions as Vi, LocalePluginOptions as Vn, createRulesContext as Vr, ProxyRegistryOptions as Vt, createStoragePlugin as W, useContext as Wi, LocaleTicketInput as Wn, useRules as Wr, ProxyModelTarget as Wt, StepTicketInput as X, useOverflow as Xi, LazyContext as Xn, FeaturePluginOptions as Xr, PermissionTicket as Xt, StepTicket as Y, createOverflowContext as Yi, useLocale as Yn, FeatureOptions as Yr, PermissionPluginOptions as Yt, createStep as Z, GroupContext as Zi, LazyOptions as Zn, FeatureTicket as Zr, createPermissions as Zt, TimelineTicket as _, SingleTicketInput as _a, ClickOutsideIgnoreTarget as _i, OpenStrategy as _n, useHotkey as _r, RtlPluginOptions as _t, VirtualDirection as a, BreadcrumbTicket as aa, useDocumentEventListener as ai, useNested as an, HydrationContext as ar, StackTicketInput as at, useTimeline as b, useSingle as ba, UseClickOutsideReturn as bi, ObservableNodeList as bn, FormOptions as br, createRtlFallback as bt, VirtualState as c, BreadcrumbsContextOptions as ca, DateContext as ci, NestedActiveMode as cn, HydrationPluginOptions as cr, createStackPlugin as ct, useVirtual as d, createBreadcrumbsContext as da, DatePluginOptions as di, NestedOpenMode as dn, createHydrationContext as dr, SliderOptions as dt, GroupTicket as ea, createFeaturesContext as ei, usePermissions as en, IntersectionObserverOptions as er, StackContext as et, ToggleScopeControls as f, useBreadcrumbs as fa, createDate as fi, NestedOptions as fn, createHydrationPlugin as fr, SliderTicketInput as ft, TimelineOptions as g, SingleTicket as ga, ClickOutsideElement as gi, NestedTicketInput as gn, UseHotkeyReturn as gr, RtlOptions as gt, TimelineContextOptions as h, SingleOptions as ha, useDate as hi, NestedTicket as hn, UseHotkeyOptions as hr, RtlContextOptions as ht, VirtualContextOptions as i, useGroup as ia, EventHandler as ii, createNestedContext as in, useIntersectionObserver as ir, StackTicket as it, createThemeContext as j, ModelTicket as ja, toReactive as ji, LoggerOptions as jn, ValidationTicket as jr, useResizeObserver as jt, ThemeTicketInput as k, ModelContext as ka, createBreakpointsPlugin as ki, LoggerContext as kn, ValidationContext as kr, UseResizeObserverReturn as kt, createVirtual as l, BreadcrumbsOptions as la, DateContextOptions as li, NestedContext as ln, createFallbackHydration as lr, useStack as lt, TimelineContext as m, SingleContextOptions as ma, createDatePlugin as mi, NestedSelectionMode as mn, PlatformContext as mr, RtlContext as mt, VirtualAnchor as n, createGroup as na, useFeatures as ni, PermissionAdapterInterface as nn, UseIntersectionObserverReturn as nr, StackOptions as nt, VirtualItem as o, BreadcrumbTicketInput as oa, useEventListener as oi, multipleOpenStrategy as on, HydrationContextOptions as or, createStack as ot, useToggleScope as p, SingleContext as pa, createDateContext as pi, NestedRegistration as pn, useHydration as pr, createSlider as pt, StepContextOptions as q, OverflowOptions as qi, createLocaleFallback as qn, FeatureContext as qr, PermissionContextOptions as qt, VirtualContext as r, createGroupContext as ra, CleanupFunction as ri, createNested as rn, useElementIntersection as rr, StackPluginOptions as rt, VirtualOptions as s, BreadcrumbsContext as sa, useWindowEventListener as si, singleOpenStrategy as sn, HydrationOptions as sr, createStackContext as st, ScrollToOptions as t, GroupTicketInput as ta, createFeaturesPlugin as ti, PermissionAdapter as tn, UseElementIntersectionReturn as tr, StackContextOptions as tt, createVirtualContext as u, createBreadcrumbs as ua, DateOptions as ui, NestedContextOptions as un, createHydration as ur, SliderContext as ut, createTimeline as v, createSingle as va, ClickOutsideTarget as vi, OpenStrategyContext as vn, FormContext as vr, createRtl as vt, ThemeContextOptions as w, SelectionTicket as wa, BreakpointsContextOptions as wi, MediaQueryContext as wn, FormValidationRule as wr, RtlAdapter as wt, Colors as x, SelectionContext as xa, useClickOutside as xi, UseMutationObserverOptions as xn, FormTicket as xr, createRtlPlugin as xt, createTimelineContext as y, createSingleContext as ya, UseClickOutsideOptions as yi, MutationObserverRecord as yn, FormContextOptions as yr, createRtlContext as yt, StorageContextOptions as z, createPluginContext as zi, LocaleContextOptions as zn, RulesOptions as zr, useQueue as zt };