@vuetify/v0 1.0.0-alpha.3 → 1.0.0-alpha.5

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 (171) hide show
  1. package/README.md +5 -0
  2. package/dist/adapter-B6IrPwib.d.mts +98 -0
  3. package/dist/adapter-BEJXp-ie.d.mts +11 -0
  4. package/dist/adapter-BFSJsyv7.mjs +481 -0
  5. package/dist/{adapter-DlX3FA3A.d.mts → adapter-BO75n0Cn.d.mts} +10 -14
  6. package/dist/adapter-BSKx9WQ7.mjs +4 -0
  7. package/dist/adapter-Chznb9Ju.mjs +4 -0
  8. package/dist/{index-CT5SCLzW.d.mts → adapter-CspReV3g.d.mts} +6 -9
  9. package/dist/adapter-D8zizQVP.mjs +4 -0
  10. package/dist/adapter-DDJHLC8K.d.mts +17 -0
  11. package/dist/adapters-4t-NhR11.mjs +5 -0
  12. package/dist/adapters-BcoA0zCS.mjs +4 -0
  13. package/dist/adapters-BjaPK635.mjs +2 -0
  14. package/dist/adapters-D64TORDu.mjs +2 -0
  15. package/dist/adapters-DvG-9z9q.mjs +3 -0
  16. package/dist/browser/index.js +2074 -561
  17. package/dist/components/index.d.mts +2 -2
  18. package/dist/components/index.mjs +1 -1
  19. package/dist/{components-C4jI-78d.mjs → components-Dn4Kbi0i.mjs} +149 -101
  20. package/dist/composables/index.d.mts +20 -19
  21. package/dist/composables/index.mjs +31 -29
  22. package/dist/{consola-BdgyPEfx.d.mts → consola-CUNHyu8J.d.mts} +2 -2
  23. package/dist/{consola-Ceox8BWi.mjs → consola-DYvbPNbF.mjs} +3 -1
  24. package/dist/constants/index.d.mts +1 -1
  25. package/dist/constants/index.mjs +2 -2
  26. package/dist/{createDataTable-iODP6aKB.mjs → createDataTable-H-PuVigU.mjs} +216 -124
  27. package/dist/{createGroup-CGk6hY_Y.mjs → createGroup-aHt_kvtU.mjs} +3 -3
  28. package/dist/{createRegistry-BXzdXAjq.mjs → createRegistry-CWpvSbCe.mjs} +78 -41
  29. package/dist/{createSelection-B3HJEPNg.mjs → createSelection-MRyUZyW2.mjs} +3 -3
  30. package/dist/{createSingle-Dql8mRi-.mjs → createSingle-BSciC9EJ.mjs} +1 -1
  31. package/dist/{createTokens-DgFYsOrv.mjs → createTokens-CQ9C7GTV.mjs} +2 -2
  32. package/dist/data-table/adapters/client/index.d.mts +2 -2
  33. package/dist/data-table/adapters/client/index.mjs +2 -2
  34. package/dist/data-table/adapters/index.d.mts +5 -5
  35. package/dist/data-table/adapters/index.mjs +6 -6
  36. package/dist/data-table/adapters/server/index.d.mts +2 -2
  37. package/dist/data-table/adapters/server/index.mjs +2 -2
  38. package/dist/data-table/adapters/virtual/index.d.mts +2 -2
  39. package/dist/data-table/adapters/virtual/index.mjs +2 -2
  40. package/dist/data-table/index.d.mts +6 -6
  41. package/dist/data-table/index.mjs +6 -6
  42. package/dist/date/index.d.mts +3 -3
  43. package/dist/date/index.mjs +12 -5
  44. package/dist/features/adapters/flagsmith/index.d.mts +2 -2
  45. package/dist/features/adapters/flagsmith/index.mjs +2 -2
  46. package/dist/features/adapters/launchdarkly/index.d.mts +2 -2
  47. package/dist/features/adapters/launchdarkly/index.mjs +2 -2
  48. package/dist/features/adapters/posthog/index.d.mts +2 -2
  49. package/dist/features/adapters/posthog/index.mjs +2 -2
  50. package/dist/features/index.d.mts +3 -3
  51. package/dist/features/index.mjs +2 -1
  52. package/dist/{index-BzFHTW59.d.mts → flagsmith-Cd44vxff.d.mts} +4 -4
  53. package/dist/{flagsmith-Dbh1h8WF.mjs → flagsmith-Cu93hUIF.mjs} +6 -4
  54. package/dist/{globals-zEjWBKCr.mjs → globals-BRdxsC2M.mjs} +1 -1
  55. package/dist/{index-GOpjKzaJ.d.mts → index-BLaKZq0Y.d.mts} +25 -2
  56. package/dist/{index-BJGcVy7e.d.mts → index-BmEu85PI.d.mts} +126 -65
  57. package/dist/{index-DE3bWw11.d.mts → index-C0ewabdY.d.mts} +93 -215
  58. package/dist/index-C6NnIuDv.d.mts +4 -0
  59. package/dist/{index-DNDuacmH.d.mts → index-CJdG9yY1.d.mts} +116 -106
  60. package/dist/index-C_t6t0Z-.d.mts +170 -0
  61. package/dist/{index-B76iGRE3.d.mts → index-CyUCELZC.d.mts} +1149 -61
  62. package/dist/index.d.mts +24 -23
  63. package/dist/index.mjs +35 -33
  64. package/dist/json/attributes.json +1 -1
  65. package/dist/json/web-types.json +2 -2
  66. package/dist/{launchdarkly-BKtW-idu.mjs → launchdarkly-CLGtJCsI.mjs} +6 -4
  67. package/dist/launchdarkly-De701hkf.d.mts +13 -0
  68. package/dist/locale/adapters/index.d.mts +3 -3
  69. package/dist/locale/adapters/index.mjs +4 -3
  70. package/dist/locale/adapters/v0/index.d.mts +2 -2
  71. package/dist/locale/adapters/v0/index.mjs +2 -2
  72. package/dist/locale/adapters/vue-i18n/index.d.mts +3 -3
  73. package/dist/locale/adapters/vue-i18n/index.mjs +4 -2
  74. package/dist/locale/index.d.mts +4 -4
  75. package/dist/locale/index.mjs +4 -3
  76. package/dist/logger/adapters/consola/index.d.mts +1 -1
  77. package/dist/logger/adapters/consola/index.mjs +1 -1
  78. package/dist/logger/adapters/index.d.mts +5 -5
  79. package/dist/logger/adapters/index.mjs +6 -5
  80. package/dist/logger/adapters/pino/index.d.mts +1 -1
  81. package/dist/logger/adapters/pino/index.mjs +1 -1
  82. package/dist/logger/adapters/v0/index.d.mts +2 -2
  83. package/dist/logger/adapters/v0/index.mjs +2 -2
  84. package/dist/logger/index.d.mts +6 -6
  85. package/dist/logger/index.mjs +6 -5
  86. package/dist/{memory-oYBvtkgx.mjs → memory-BMpJcQjQ.mjs} +13 -3
  87. package/dist/{memory-CeSQE-QV.d.mts → memory-D-JbdKXg.d.mts} +9 -9
  88. package/dist/notifications/index.d.mts +30 -4
  89. package/dist/notifications/index.mjs +187 -126
  90. package/dist/palettes/ant/index.d.mts +1 -1
  91. package/dist/palettes/index.d.mts +3 -3
  92. package/dist/palettes/leonardo/generate/index.mjs +3 -0
  93. package/dist/palettes/material/index.d.mts +1 -1
  94. package/dist/palettes/md1/index.d.mts +1 -1
  95. package/dist/palettes/md2/index.d.mts +1 -1
  96. package/dist/palettes/radix/index.d.mts +1 -1
  97. package/dist/palettes/tailwind/index.d.mts +1 -1
  98. package/dist/permissions/adapters/index.d.mts +2 -2
  99. package/dist/permissions/adapters/index.mjs +3 -3
  100. package/dist/permissions/adapters/v0/index.d.mts +2 -2
  101. package/dist/permissions/adapters/v0/index.mjs +2 -2
  102. package/dist/permissions/index.d.mts +2 -2
  103. package/dist/permissions/index.mjs +3 -3
  104. package/dist/{pino-DNfCEb0p.d.mts → pino-BaYY_KIN.d.mts} +2 -2
  105. package/dist/{pino-9L79n6y6.mjs → pino-CIcYlW3u.mjs} +3 -1
  106. package/dist/{posthog-DmuyycaR.mjs → posthog-0umvvA48.mjs} +7 -5
  107. package/dist/posthog-CIrmvke4.d.mts +13 -0
  108. package/dist/rules/index.d.mts +1 -1
  109. package/dist/rules/index.mjs +1 -1
  110. package/dist/{server-3ilWFwqe.d.mts → server-7vjHxjNc.d.mts} +5 -5
  111. package/dist/{server-y7zLSCSx.mjs → server-BNSiVoMe.mjs} +4 -3
  112. package/dist/storage/adapters/index.d.mts +3 -3
  113. package/dist/storage/adapters/index.mjs +2 -2
  114. package/dist/storage/adapters/memory/index.d.mts +2 -2
  115. package/dist/storage/adapters/memory/index.mjs +2 -2
  116. package/dist/storage/index.d.mts +4 -4
  117. package/dist/storage/index.mjs +3 -3
  118. package/dist/theme/adapters/index.d.mts +2 -2
  119. package/dist/theme/adapters/index.mjs +4 -4
  120. package/dist/theme/adapters/unhead/index.d.mts +1 -1
  121. package/dist/theme/adapters/unhead/index.mjs +1 -1
  122. package/dist/theme/adapters/v0/index.d.mts +1 -1
  123. package/dist/theme/adapters/v0/index.mjs +1 -1
  124. package/dist/theme/index.d.mts +1 -1
  125. package/dist/theme/index.mjs +3 -3
  126. package/dist/types/index.d.mts +1 -1
  127. package/dist/{unhead-B-I2OS6i.mjs → unhead-_cXZcx0j.mjs} +2 -2
  128. package/dist/{useClickOutside-CY4U2J9W.mjs → useClickOutside-DbOLg1uw.mjs} +1483 -182
  129. package/dist/{useFeatures-BPOke6iP.mjs → useFeatures-Dhnr-Lg2.mjs} +7 -10
  130. package/dist/{useLocale-BV8e3imF.mjs → useLocale-Sh-2sNiG.mjs} +6 -6
  131. package/dist/{useLogger-DvdRTrqC.mjs → useLogger-1_ZeBY12.mjs} +5 -5
  132. package/dist/{useNotifications-vSJE6z6t.mjs → useNotifications-CAVQ7hK6.mjs} +6 -6
  133. package/dist/{usePermissions-D3zPwKQc.mjs → usePermissions-D9Oituwy.mjs} +6 -6
  134. package/dist/{useRules-BT6cgoTj.mjs → useRules-DK4AeNeC.mjs} +4 -3
  135. package/dist/{useTheme-cUZb2A9O.mjs → useTheme-FMDQC81h.mjs} +5 -5
  136. package/dist/utilities/index.d.mts +2 -2
  137. package/dist/utilities/index.mjs +26 -2
  138. package/dist/{v0-CHZpnMeP.mjs → v0-C42ssNIy.mjs} +6 -4
  139. package/dist/{v0-Dq3zhexO.mjs → v0-CEfbyyp2.mjs} +3 -4
  140. package/dist/{v0-C49OI_wc.mjs → v0-Ch-O6YVd.mjs} +5 -3
  141. package/dist/{v0-gpExNexS.mjs → v0-D0imQlSD.mjs} +2 -2
  142. package/dist/{v0-DrOub-e1.d.mts → v0-DWZ_N2GG.d.mts} +4 -4
  143. package/dist/{v0-Bmow1q_x.mjs → v0-Dvu8fMl3.mjs} +3 -3
  144. package/dist/v0-QIjffi4E.d.mts +8 -0
  145. package/dist/{v0-D7Fm2C3Y.d.mts → v0-aYLq6qmT.d.mts} +3 -3
  146. package/dist/{virtual-C0yHf1DC.mjs → virtual-Cq5aRp7m.mjs} +3 -4
  147. package/dist/virtual-CrgGA-o6.d.mts +8 -0
  148. package/package.json +1 -1
  149. package/dist/adapter-58IvIfAZ.d.mts +0 -96
  150. package/dist/adapter-BvWEd9w-.d.mts +0 -17
  151. package/dist/adapter-Dhq68tz0.d.mts +0 -11
  152. package/dist/adapter-gQ2SNKZq.mjs +0 -238
  153. package/dist/adapters-BSiqsTZN.mjs +0 -3
  154. package/dist/adapters-C3QXhf4I.mjs +0 -2
  155. package/dist/adapters-CMJGA1k7.mjs +0 -2
  156. package/dist/adapters-Dse4bPxk.mjs +0 -5
  157. package/dist/adapters-_ZqxCD8f.mjs +0 -4
  158. package/dist/createPagination-CHF7SmmK.mjs +0 -247
  159. package/dist/index-1XdASTjp.d.mts +0 -13
  160. package/dist/index-C6rdXZ7j.d.mts +0 -11
  161. package/dist/index-Dp1HjBxJ.d.mts +0 -13
  162. package/dist/v0-CdusXjY_.d.mts +0 -8
  163. package/dist/virtual-D4fckewC.d.mts +0 -8
  164. /package/dist/{adapter-Be9zUc-n.mjs → adapter-oM18AdUc.mjs} +0 -0
  165. /package/dist/{htmlElements-D4oMQZPJ.mjs → htmlElements-CHXZfsZu.mjs} +0 -0
  166. /package/dist/{index-CFhUdAHM.d.mts → index-BOn0AAue.d.mts} +0 -0
  167. /package/dist/{index-CROz1VSV.d.mts → index-CKKoxA9V.d.mts} +0 -0
  168. /package/dist/{index-DuddF-NR.d.mts → index-CLR1QMM3.d.mts} +0 -0
  169. /package/dist/{index-DTvqw22G.d.mts → index-H_hl6-4b.d.mts} +0 -0
  170. /package/dist/{index-BgCkepP_.d.mts → index-PvkxPev3.d.mts} +0 -0
  171. /package/dist/{toArray-as9BWxBK.mjs → toArray-CD2-OxAz.mjs} +0 -0
@@ -1,7 +1,8 @@
1
- import { a as ID } from "./index-DuddF-NR.mjs";
2
- import { t as ContextTrinity } from "./index-DTvqw22G.mjs";
3
- import { a as SortDirection, l as PaginationOptions, o as SortEntry, r as DataTableAdapterInterface, s as PaginationContext, y as FilterOptions } from "./adapter-DlX3FA3A.mjs";
4
- import { MaybeRefOrGetter, Ref, ShallowRef } from "vue";
1
+ import { a as ID, i as Extensible } from "./index-CLR1QMM3.mjs";
2
+ import { t as ContextTrinity } from "./index-H_hl6-4b.mjs";
3
+ import { c as RegistryTicketInput, s as RegistryTicket, t as RegistryContext } from "./index-C0ewabdY.mjs";
4
+ import { a as SortEntry, c as PaginationOptions, i as SortDirection, o as PaginationContext, t as DataTableAdapter, v as FilterOptions } from "./adapter-BO75n0Cn.mjs";
5
+ import { Ref, ShallowRef } from "vue";
5
6
 
6
7
  //#region src/composables/createDataTable/columns.d.ts
7
8
  /**
@@ -10,15 +11,15 @@ import { MaybeRefOrGetter, Ref, ShallowRef } from "vue";
10
11
  * @remarks
11
12
  * Utilities for resolving recursive column definitions into flat leaf
12
13
  * columns and 2D header grids. Used by createDataTable for header
13
- * rendering and by createDataGrid for column layout.
14
+ * rendering.
14
15
  */
15
16
  interface ColumnNode {
16
- readonly key: string;
17
+ readonly id: string;
17
18
  readonly title?: string;
18
19
  readonly children?: readonly ColumnNode[];
19
20
  }
20
21
  interface InternalHeader {
21
- key: string;
22
+ id: string;
22
23
  title: string;
23
24
  colspan: number;
24
25
  rowspan: number;
@@ -50,31 +51,86 @@ declare function computeDepth(columns: readonly ColumnNode[]): number;
50
51
  declare function resolveHeaders(columns: readonly ColumnNode[]): InternalHeader[][];
51
52
  //#endregion
52
53
  //#region src/composables/createDataTable/index.d.ts
53
- /** Extract keys of T whose value type extends V */
54
- type KeysOfType<T, V> = { [K in keyof T]: T[K] extends V ? K : never }[keyof T] & string;
55
54
  type SelectStrategy = 'single' | 'page' | 'all';
56
- interface DataTableColumn<T extends Record<string, unknown> = Record<string, unknown>> {
57
- readonly key: string;
58
- readonly title?: string;
59
- readonly sortable?: boolean;
60
- readonly filterable?: boolean;
61
- /** Custom sort comparator for this column */
62
- readonly sort?: (a: unknown, b: unknown) => number;
63
- /** Custom filter function for this column */
64
- readonly filter?: (value: unknown, query: string) => boolean;
65
- readonly children?: readonly DataTableColumn<T>[];
55
+ /**
56
+ * Input shape passed to `register` / `onboard` on a data table's row registry.
57
+ *
58
+ * @template T Row value type.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const table = createDataTable<User>()
63
+ * table.register({ id: user.id, value: user })
64
+ * ```
65
+ */
66
+ type DataTableTicketInput<T extends Record<string, unknown>> = RegistryTicketInput<T>;
67
+ /**
68
+ * Output ticket returned by row `register` / `onboard` / `get`.
69
+ *
70
+ * @template T Row value type.
71
+ */
72
+ type DataTableTicket<T extends Record<string, unknown>> = RegistryTicket<T> & DataTableTicketInput<T>;
73
+ /**
74
+ * Input shape passed to `table.columns.register` / `table.columns.onboard`.
75
+ *
76
+ * `id` is required and acts as the column identifier — selection, sort, and
77
+ * filter all key off it. The `Extensible<keyof T & string>` shape preserves
78
+ * autocomplete for the row's own keys while still accepting arbitrary strings
79
+ * for derived columns (computed totals, action columns, etc.).
80
+ *
81
+ * @template T Row value type.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * import { createDataTable } from '@vuetify/v0'
86
+ *
87
+ * interface User { id: number, name: string, email: string }
88
+ *
89
+ * const table = createDataTable<User>()
90
+ * table.columns.register({ id: 'name', title: 'Name', sortable: true })
91
+ * table.columns.register({
92
+ * id: 'actions',
93
+ * title: '',
94
+ * sortable: false,
95
+ * })
96
+ * ```
97
+ */
98
+ interface DataTableColumnTicketInput<T extends Record<string, unknown> = Record<string, unknown>> extends RegistryTicketInput {
99
+ /** Column identifier. Required — selection / sort / filter all key off it. */
100
+ id: Extensible<keyof T & string>;
101
+ /** Display title rendered in the header cell. */
102
+ title?: string;
103
+ /** Allow this column to participate in the sort pipeline. */
104
+ sortable?: boolean;
105
+ /** Allow this column to participate in the filter pipeline. */
106
+ filterable?: boolean;
107
+ /** Custom per-column sort comparator. */
108
+ sort?: (a: unknown, b: unknown) => number;
109
+ /** Custom per-column filter predicate. */
110
+ filter?: (value: unknown, query: string) => boolean;
111
+ /** Header-group children (recursive). Children are NOT separately registered. */
112
+ children?: readonly DataTableColumnTicketInput<T>[];
66
113
  }
114
+ /**
115
+ * Output ticket returned by `table.columns.register` / `table.columns.onboard`.
116
+ *
117
+ * Combines the standard registry ticket fields (`index`, `valueIsIndex`,
118
+ * `unregister`) with the column-shape fields from {@link DataTableColumnTicketInput}.
119
+ *
120
+ * @template T Row value type.
121
+ */
122
+ type DataTableColumnTicket<T extends Record<string, unknown> = Record<string, unknown>> = RegistryTicket<DataTableColumnTicketInput<T>['value']> & DataTableColumnTicketInput<T>;
67
123
  interface DataTableSort {
68
124
  /** Toggle sort for a column: none → asc → desc → none */
69
- toggle: (key: string) => void;
125
+ toggle: (id: string) => void;
70
126
  /** Current sort columns derived from group state */
71
127
  columns: Readonly<Ref<SortEntry[]>>;
72
128
  /** Order of sort columns (for multi-sort priority) */
73
129
  order: readonly string[];
74
- /** Get sort direction for a specific column key */
75
- direction: (key: string) => SortDirection;
130
+ /** Get sort direction for a specific column id */
131
+ direction: (id: string) => SortDirection;
76
132
  /** Get sort priority index (0-based), or -1 if not sorted */
77
- priority: (key: string) => number;
133
+ priority: (id: string) => number;
78
134
  /** Reset all sort state */
79
135
  reset: () => void;
80
136
  }
@@ -143,12 +199,6 @@ interface DataTableExpansion {
143
199
  collapseAll: () => void;
144
200
  }
145
201
  interface DataTableOptions<T extends Record<string, unknown>> {
146
- /** Source items */
147
- items: MaybeRefOrGetter<T[]>;
148
- /** Column definitions */
149
- columns: readonly DataTableColumn<T>[];
150
- /** Property used as row identifier. Must resolve to a string or number value. @default 'id' */
151
- itemValue?: KeysOfType<T, ID>;
152
202
  /** Filter options (keys derived from columns) */
153
203
  filter?: Omit<FilterOptions, 'keys'>;
154
204
  /** Pagination options (size derived from pipeline) */
@@ -163,7 +213,7 @@ interface DataTableOptions<T extends Record<string, unknown>> {
163
213
  selectStrategy?: SelectStrategy;
164
214
  /** Property that controls per-row selectability */
165
215
  itemSelectable?: keyof T & string;
166
- /** Column key to group rows by */
216
+ /** Column id to group rows by */
167
217
  groupBy?: keyof T & string;
168
218
  /** Auto-open all groups on creation. @default false */
169
219
  openAll?: boolean;
@@ -171,10 +221,10 @@ interface DataTableOptions<T extends Record<string, unknown>> {
171
221
  expandMultiple?: boolean;
172
222
  /** Locale for sorting (defaults to useLocale's selected locale or browser default) */
173
223
  locale?: string;
174
- /** Pipeline adapter. @default ClientAdapter */
175
- adapter?: DataTableAdapterInterface<T>;
224
+ /** Pipeline adapter. @default ClientDataTableAdapter */
225
+ adapter?: DataTableAdapter<T>;
176
226
  }
177
- interface DataTableContext<T extends Record<string, unknown>> {
227
+ interface DataTableContext<T extends Record<string, unknown>> extends RegistryContext<DataTableTicketInput<T>, DataTableTicket<T>> {
178
228
  /** Final paginated items for rendering */
179
229
  items: Readonly<Ref<readonly T[]>>;
180
230
  /** Raw unprocessed items */
@@ -183,11 +233,15 @@ interface DataTableContext<T extends Record<string, unknown>> {
183
233
  filteredItems: Readonly<Ref<readonly T[]>>;
184
234
  /** Items after filtering and sorting */
185
235
  sortedItems: Readonly<Ref<readonly T[]>>;
186
- /** Column definitions */
187
- columns: readonly DataTableColumn<T>[];
188
- /** Leaf columns (no children) used by the data pipeline */
189
- leaves: readonly DataTableColumn<T>[];
190
- /** 2D header grid with colspan/rowspan for rendering thead */
236
+ /**
237
+ * Column registry. Use `columns.register({...})`, `columns.onboard([...])`,
238
+ * `columns.unregister(id)`, and `columns.clear()` to manage columns. The
239
+ * registry is reactive — `leaves` and `headers` recompute when it mutates.
240
+ */
241
+ columns: RegistryContext<DataTableColumnTicketInput<T>, DataTableColumnTicket<T>>;
242
+ /** Leaf columns (no children) used by the data pipeline. Reactive. */
243
+ leaves: Readonly<Ref<readonly DataTableColumnTicket<T>[]>>;
244
+ /** 2D header grid with colspan/rowspan for rendering thead. Reactive. */
191
245
  headers: Readonly<Ref<InternalHeader[][]>>;
192
246
  /** Set the search query */
193
247
  search: (value: string) => void;
@@ -217,45 +271,51 @@ interface DataTableContextOptions<T extends Record<string, unknown>> extends Dat
217
271
  * Creates a data table instance with sort controls, selection, and an
218
272
  * adapter-driven data pipeline.
219
273
  *
274
+ * Rows and columns are both managed via internal registries. Use
275
+ * `table.columns.register({ id, ... })` / `table.columns.onboard([...])` to
276
+ * add columns and `table.register({ id, value })` / `table.onboard([...])`
277
+ * for rows. Removing entries from the column registry reactively updates
278
+ * `leaves`, `headers`, the sort group, and the filter pipeline.
279
+ *
220
280
  * Must be called inside a component `setup()` or a Vue effect scope.
221
281
  * Calling at module scope in SSR environments causes request state leakage.
222
282
  *
223
- * @param options Data table options
224
- * @returns Data table context with pipeline stages and controls
283
+ * @param options Data table options (all optional)
284
+ * @returns Data table context with pipeline stages, controls, and registry surface
225
285
  *
226
286
  * @example
227
287
  * ```ts
228
288
  * import { createDataTable } from '@vuetify/v0'
229
289
  *
230
- * const table = createDataTable({
231
- * items: users,
232
- * columns: [
233
- * { key: 'name', title: 'Name', sortable: true, filterable: true },
234
- * { key: 'email', title: 'Email', sortable: true, filterable: true },
235
- * { key: 'age', title: 'Age', sortable: true },
236
- * ],
237
- * })
290
+ * const table = createDataTable<User>()
291
+ *
292
+ * table.columns.onboard([
293
+ * { id: 'name', title: 'Name', sortable: true, filterable: true },
294
+ * { id: 'email', title: 'Email', sortable: true, filterable: true },
295
+ * { id: 'age', title: 'Age', sortable: true },
296
+ * ])
297
+ *
298
+ * table.onboard(users.map(value => ({ id: value.id, value })))
238
299
  *
239
- * // Search
240
300
  * table.search('john')
241
301
  *
242
- * // Sort
243
- * table.sort.toggle('name') // asc
244
- * table.sort.toggle('name') // desc
245
- * table.sort.toggle('name') // none
246
- * console.log(table.sort.columns.value) // [{ key: 'name', direction: 'asc' }]
302
+ * table.sort.toggle('name')
303
+ * table.sort.toggle('name')
304
+ * table.sort.toggle('name')
247
305
  *
248
- * // Paginate
249
306
  * table.pagination.next()
250
307
  *
251
- * // Select rows
252
- * table.selection.toggle('user-1')
308
+ * table.selection.toggle(1)
253
309
  * ```
254
310
  */
255
- declare function createDataTable<T extends Record<string, unknown>>(options: DataTableOptions<T>): DataTableContext<T>;
311
+ declare function createDataTable<T extends Record<string, unknown>>(options?: DataTableOptions<T>): DataTableContext<T>;
256
312
  /**
257
313
  * Creates a data table context with dependency injection support.
258
314
  *
315
+ * The returned context exposes both row and column registries. Columns must
316
+ * be onboarded after construction — pass them via `context.columns.onboard`,
317
+ * not in the factory options.
318
+ *
259
319
  * @param options Data table context options including namespace
260
320
  * @returns A trinity tuple: [useDataTable, provideDataTable, defaultContext]
261
321
  *
@@ -263,22 +323,23 @@ declare function createDataTable<T extends Record<string, unknown>>(options: Dat
263
323
  * ```ts
264
324
  * import { createDataTableContext } from '@vuetify/v0'
265
325
  *
266
- * const [useDataTable, provideDataTable, context] = createDataTableContext({
326
+ * const [useDataTable, provideDataTable, context] = createDataTableContext<User>({
267
327
  * namespace: 'app:users',
268
- * items: users,
269
- * columns: [
270
- * { key: 'name', title: 'Name', sortable: true },
271
- * ],
272
328
  * })
273
329
  *
330
+ * context.columns.onboard([
331
+ * { id: 'name', title: 'Name', sortable: true },
332
+ * ])
333
+ *
274
334
  * // Parent component
275
335
  * provideDataTable()
336
+ * context.onboard(users.map(value => ({ id: value.id, value })))
276
337
  *
277
338
  * // Child component
278
339
  * const table = useDataTable()
279
340
  * ```
280
341
  */
281
- declare function createDataTableContext<T extends Record<string, unknown>>(_options: DataTableContextOptions<T>): ContextTrinity<DataTableContext<T>>;
342
+ declare function createDataTableContext<T extends Record<string, unknown>>(_options?: DataTableContextOptions<T>): ContextTrinity<DataTableContext<T>>;
282
343
  /**
283
344
  * Returns the current data table context from dependency injection.
284
345
  *
@@ -299,4 +360,4 @@ declare function createDataTableContext<T extends Record<string, unknown>>(_opti
299
360
  */
300
361
  declare function useDataTable<T extends Record<string, unknown>>(namespace?: string): DataTableContext<T>;
301
362
  //#endregion
302
- export { computeDepth as _, DataTableGroup as a, DataTableSelection as c, SelectStrategy as d, createDataTable as f, InternalHeader as g, ColumnNode as h, DataTableExpansion as i, DataTableSort as l, useDataTable as m, DataTableContext as n, DataTableGrouping as o, createDataTableContext as p, DataTableContextOptions as r, DataTableOptions as s, DataTableColumn as t, KeysOfType as u, extractLeaves as v, resolveHeaders as y };
363
+ export { ColumnNode as _, DataTableExpansion as a, extractLeaves as b, DataTableOptions as c, DataTableTicket as d, DataTableTicketInput as f, useDataTable as g, createDataTableContext as h, DataTableContextOptions as i, DataTableSelection as l, createDataTable as m, DataTableColumnTicketInput as n, DataTableGroup as o, SelectStrategy as p, DataTableContext as r, DataTableGrouping as s, DataTableColumnTicket as t, DataTableSort as u, InternalHeader as v, resolveHeaders as x, computeDepth as y };