@epilot/zenith-react 0.1.0-next.0 → 0.1.0

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 (142) hide show
  1. package/README.md +95 -15
  2. package/dist/components/appearance-boundary/appearance-boundary.js +32 -34
  3. package/dist/components/appearance-boundary/appearance-boundary.js.map +1 -1
  4. package/dist/components/badge/badge.js +1 -1
  5. package/dist/components/badge/badge.js.map +1 -1
  6. package/dist/components/breadcrumb/breadcrumb.js +10 -10
  7. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  8. package/dist/components/button/button.js +28 -28
  9. package/dist/components/button/button.js.map +1 -1
  10. package/dist/components/button-group/button-group.js.map +1 -1
  11. package/dist/components/callout/callout.js +13 -13
  12. package/dist/components/callout/callout.js.map +1 -1
  13. package/dist/components/card/card.js.map +1 -1
  14. package/dist/components/checkbox/checkbox.js +13 -13
  15. package/dist/components/checkbox/checkbox.js.map +1 -1
  16. package/dist/components/code-block/code-block.js +6 -6
  17. package/dist/components/code-block/code-block.js.map +1 -1
  18. package/dist/components/code-editor/code-editor.js +1 -1
  19. package/dist/components/code-editor/code-editor.js.map +1 -1
  20. package/dist/components/code-editor/indent.js.map +1 -1
  21. package/dist/components/command/command.js +7 -13
  22. package/dist/components/command/command.js.map +1 -1
  23. package/dist/components/data-table/data-table-body.js +120 -66
  24. package/dist/components/data-table/data-table-body.js.map +1 -1
  25. package/dist/components/data-table/data-table-column-header.js +7 -7
  26. package/dist/components/data-table/data-table-column-header.js.map +1 -1
  27. package/dist/components/data-table/data-table-column-order.js +277 -0
  28. package/dist/components/data-table/data-table-column-order.js.map +1 -0
  29. package/dist/components/data-table/data-table-content.js +72 -58
  30. package/dist/components/data-table/data-table-content.js.map +1 -1
  31. package/dist/components/data-table/data-table-context.js +8 -4
  32. package/dist/components/data-table/data-table-context.js.map +1 -1
  33. package/dist/components/data-table/data-table-footer.js +31 -0
  34. package/dist/components/data-table/data-table-footer.js.map +1 -0
  35. package/dist/components/data-table/data-table-header-draggable.js +151 -0
  36. package/dist/components/data-table/data-table-header-draggable.js.map +1 -0
  37. package/dist/components/data-table/data-table-header.js +130 -57
  38. package/dist/components/data-table/data-table-header.js.map +1 -1
  39. package/dist/components/data-table/data-table-resize-handle.js +137 -0
  40. package/dist/components/data-table/data-table-resize-handle.js.map +1 -0
  41. package/dist/components/data-table/data-table.js +184 -156
  42. package/dist/components/data-table/data-table.js.map +1 -1
  43. package/dist/components/data-table/hooks/use-data-table-virtualizer.js +9 -0
  44. package/dist/components/data-table/hooks/use-data-table-virtualizer.js.map +1 -0
  45. package/dist/components/date-range-picker/date-range-picker.js +197 -195
  46. package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
  47. package/dist/components/date-time-picker/calendar.js +29 -29
  48. package/dist/components/date-time-picker/calendar.js.map +1 -1
  49. package/dist/components/date-time-picker/time-picker.js +55 -55
  50. package/dist/components/date-time-picker/time-picker.js.map +1 -1
  51. package/dist/components/density-provider/density-provider.js.map +1 -1
  52. package/dist/components/dialog/dialog.js +1 -1
  53. package/dist/components/dialog/dialog.js.map +1 -1
  54. package/dist/components/drawer/drawer.js +5 -5
  55. package/dist/components/drawer/drawer.js.map +1 -1
  56. package/dist/components/dropdown-menu/dropdown-menu.js +36 -36
  57. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  58. package/dist/components/field/field-combobox.js +4 -4
  59. package/dist/components/field/field-combobox.js.map +1 -1
  60. package/dist/components/field/field.js +40 -40
  61. package/dist/components/field/field.js.map +1 -1
  62. package/dist/components/label/label.js +0 -28
  63. package/dist/components/label/label.js.map +1 -1
  64. package/dist/components/list/list.js +42 -52
  65. package/dist/components/list/list.js.map +1 -1
  66. package/dist/components/option-card/option-card.js +27 -25
  67. package/dist/components/option-card/option-card.js.map +1 -1
  68. package/dist/components/pill/pill.js +9 -9
  69. package/dist/components/pill/pill.js.map +1 -1
  70. package/dist/components/radio/radio.js +14 -14
  71. package/dist/components/radio/radio.js.map +1 -1
  72. package/dist/components/scroll-area/scroll-area.js +9 -9
  73. package/dist/components/scroll-area/scroll-area.js.map +1 -1
  74. package/dist/components/segmented-control/segmented-control.js +1 -1
  75. package/dist/components/segmented-control/segmented-control.js.map +1 -1
  76. package/dist/components/select/select.js +11 -11
  77. package/dist/components/select/select.js.map +1 -1
  78. package/dist/components/separator/separator.js.map +1 -1
  79. package/dist/components/skeleton/skeleton.js.map +1 -1
  80. package/dist/components/slot/compose-as-child.js.map +1 -1
  81. package/dist/components/spinner/spinner.js.map +1 -1
  82. package/dist/components/switch/switch.js +11 -11
  83. package/dist/components/switch/switch.js.map +1 -1
  84. package/dist/components/table/table-pagination.js +1 -1
  85. package/dist/components/table/table-pagination.js.map +1 -1
  86. package/dist/components/table/table.js +15 -15
  87. package/dist/components/table/table.js.map +1 -1
  88. package/dist/components/text/text.js +10 -1
  89. package/dist/components/text/text.js.map +1 -1
  90. package/dist/components/toast/toast.js +30 -32
  91. package/dist/components/toast/toast.js.map +1 -1
  92. package/dist/components/toggle/toggle.js +20 -20
  93. package/dist/components/toggle/toggle.js.map +1 -1
  94. package/dist/delivery/index.d.ts +10 -44
  95. package/dist/delivery/index.js +5 -9
  96. package/dist/index.d.ts +1994 -2272
  97. package/dist/index.js +133 -121
  98. package/dist/index.js.map +1 -1
  99. package/dist/lib/clear-button.js.map +1 -1
  100. package/dist/lib/code-highlight.js.map +1 -1
  101. package/dist/lib/code-tokens.js.map +1 -1
  102. package/dist/lib/pagination.js.map +1 -1
  103. package/dist/packages/tokens/dist/delivery/index.js +18 -48
  104. package/dist/packages/tokens/dist/delivery/index.js.map +1 -1
  105. package/dist/packages/tokens/dist/generated/core.generated.js +18 -0
  106. package/dist/packages/tokens/dist/generated/core.generated.js.map +1 -0
  107. package/dist/packages/tokens/dist/generated/palette.generated.js +5 -5
  108. package/dist/packages/tokens/dist/generated/palette.generated.js.map +1 -1
  109. package/dist/packages/tokens/dist/install.js +9 -9
  110. package/dist/packages/tokens/dist/install.js.map +1 -1
  111. package/dist/styles/document-context.js.map +1 -1
  112. package/dist/styles/make-styles.js.map +1 -1
  113. package/dist/tokens/core.meta.generated.js +2 -2
  114. package/dist/tokens/core.meta.generated.js.map +1 -1
  115. package/dist/tokens/index.d.ts +1029 -1104
  116. package/dist/tokens/index.js +1031 -1106
  117. package/dist/tokens/index.js.map +1 -1
  118. package/dist/tokens/palette.generated.js +2 -2
  119. package/dist/tokens/palette.generated.js.map +1 -1
  120. package/dist/tokens/use-palette-tokens.js.map +1 -1
  121. package/dist/tokens.json +605 -755
  122. package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js +385 -340
  123. package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js.map +1 -1
  124. package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js +344 -229
  125. package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -1
  126. package/dist/vendor/.bun/@dnd-kit_utilities@3.2.2_62547eec5a2188e3/vendor/@dnd-kit/utilities/dist/utilities.esm.js +1 -1
  127. package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js +36 -0
  128. package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
  129. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js +450 -0
  130. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
  131. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js +50 -0
  132. package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
  133. package/package.json +5 -4
  134. package/scripts/migration-diagnostics-core.mjs +19 -90
  135. package/scripts/migration-diagnostics.mjs +1 -16
  136. package/scripts/migration-sweep.mjs +2 -12
  137. package/ADOPTING.md +0 -73
  138. package/dist/packages/tokens/dist/delivery/internal.js +0 -181
  139. package/dist/packages/tokens/dist/delivery/internal.js.map +0 -1
  140. package/dist/packages/tokens/dist/generated/core.meta.generated.js +0 -10
  141. package/dist/packages/tokens/dist/generated/core.meta.generated.js.map +0 -1
  142. package/dist/token-assets/core/5cd4072decf5df2a664f0b1d5f2ec250a3309101ded3056c1f87c8bbe3738d50.css +0 -22
@@ -1,127 +1,133 @@
1
- import { jsx as f } from "react/jsx-runtime";
2
- import * as Le from "react";
3
- import { useState as c, useRef as Ve, useEffect as F, useMemo as d, useCallback as je } from "react";
4
- import { useReactTable as He } from "../../vendor/.bun/@tanstack_react-table@8.21.3_6f4b9a1cfb20c0ae/vendor/@tanstack/react-table/build/lib/index.js";
5
- import { mergeClasses as _e, SLOT_ATTR as Ee } from "@epilot/zenith-runtime/v1";
6
- import { makeZenithStyles as Oe } from "../../styles/make-styles.js";
7
- import { Checkbox as Y } from "../checkbox/checkbox.js";
8
- import { DensityContextBoundary as We, canonicalDensity as Ze } from "../density-provider/density-provider.js";
9
- import { DataTableContext as qe } from "./data-table-context.js";
10
- import { DataTableColumnHeader as Be } from "./data-table-column-header.js";
11
- import { getPaginationRowModel as Ge, getFilteredRowModel as Je, getSortedRowModel as Ke, getCoreRowModel as Qe } from "../../vendor/.bun/@tanstack_table-core@8.21.3/vendor/@tanstack/table-core/build/lib/index.js";
12
- function Ue(n, P) {
13
- return P ? n.map((s) => {
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import * as Je from "react";
3
+ import { useState as f, useRef as Ke, useEffect as h, useMemo as u, useCallback as Qe } from "react";
4
+ import { useReactTable as Xe } from "../../vendor/.bun/@tanstack_react-table@8.21.3_6f4b9a1cfb20c0ae/vendor/@tanstack/react-table/build/lib/index.js";
5
+ import { mergeClasses as Ye, SLOT_ATTR as $e } from "@epilot/zenith-runtime/v1";
6
+ import { makeZenithStyles as Ce } from "../../styles/make-styles.js";
7
+ import { Checkbox as ee } from "../checkbox/checkbox.js";
8
+ import { DensityContextBoundary as ze, canonicalDensity as ve } from "../density-provider/density-provider.js";
9
+ import { DEFAULT_CONTAINER_HEIGHT as ge, DEFAULT_OVERSCAN as ae, DEFAULT_ROW_HEIGHT as ie, DataTableContext as pe } from "./data-table-context.js";
10
+ import { DataTableColumnHeader as et } from "./data-table-column-header.js";
11
+ import { getPaginationRowModel as tt, getFilteredRowModel as st, getSortedRowModel as lt, getCoreRowModel as ct } from "../../vendor/.bun/@tanstack_table-core@8.21.3/vendor/@tanstack/table-core/build/lib/index.js";
12
+ function rt(d, T) {
13
+ return T ? d.map((c) => {
14
14
  var r;
15
- if (s.enableSorting === !1 || typeof s.header != "string")
16
- return s;
17
- const m = s.header;
15
+ if (c.enableSorting === !1 || typeof c.header != "string")
16
+ return c;
17
+ const I = c.header;
18
18
  return {
19
- ...s,
20
- header: ({ column: u }) => /* @__PURE__ */ f(Be, { column: u, title: m }),
19
+ ...c,
20
+ header: ({ column: m }) => /* @__PURE__ */ n(et, { column: m, title: I }),
21
21
  meta: {
22
- ...s.meta,
22
+ ...c.meta,
23
23
  // Preserve original header for visibility dropdown fallback
24
- visibilityLabel: ((r = s.meta) == null ? void 0 : r.visibilityLabel) ?? m,
24
+ visibilityLabel: ((r = c.meta) == null ? void 0 : r.visibilityLabel) ?? I,
25
25
  // Flag to indicate this header was auto-wrapped with DataTableColumnHeader
26
26
  _sortableHeaderWrapped: !0
27
27
  }
28
28
  };
29
- }) : n;
29
+ }) : d;
30
30
  }
31
- const Xe = Oe({
31
+ const ft = Ce({
32
32
  root: {
33
33
  width: "100%",
34
34
  maxWidth: "100%"
35
35
  }
36
36
  });
37
- function Ye({
38
- columns: n,
39
- data: P,
40
- children: s,
41
- getRowId: m,
37
+ function ot({
38
+ columns: d,
39
+ data: T,
40
+ children: c,
41
+ getRowId: I,
42
42
  enableRowSelection: r = !1,
43
- enableSorting: u = !1,
44
- manualSorting: a = !1,
45
- enableFiltering: $ = !1,
46
- manualFiltering: h = !1,
47
- enableGlobalFilter: N = !1,
43
+ enableSorting: m = !1,
44
+ manualSorting: U = !1,
45
+ enableFiltering: te = !1,
46
+ manualFiltering: j = !1,
47
+ enableGlobalFilter: se = !1,
48
48
  pagination: t,
49
- sorting: C,
50
- onSortingChange: b,
51
- defaultSorting: g = [],
52
- rowSelection: p,
53
- onRowSelectionChange: y,
54
- defaultRowSelection: ee = {},
55
- columnFilters: te,
56
- onColumnFiltersChange: x,
57
- columnVisibility: le,
58
- onColumnVisibilityChange: i,
59
- globalFilter: se,
60
- onGlobalFilterChange: w,
61
- onRowClick: L,
62
- clickableRowClassName: V,
63
- selectedRowClassName: j,
64
- cellOverflow: H = "truncate",
65
- disableColumnResizing: T = !1,
66
- columnResizeMode: re = "onChange",
67
- columnSizing: ce,
68
- onColumnSizingChange: z,
69
- defaultColumnSizing: oe = {},
70
- columnPinning: fe,
71
- onColumnPinningChange: D,
72
- defaultColumnPinning: ne = { left: [], right: [] },
73
- autoPinSelection: _,
74
- showHeaderBorder: E = !0,
75
- showRowBorders: O = !0,
76
- fitHeaderWidth: W = !1,
77
- density: M,
78
- className: ue
79
- }, de) {
80
- const me = Xe(), [Se, Ie] = c(g), [Pe, be] = c(ee), [ye, xe] = c([]), [ie, we] = c({}), [Te, ze] = c(""), [De, Me] = c(oe), [ve, Re] = c(ne), ke = {
49
+ sorting: le,
50
+ onSortingChange: x,
51
+ defaultSorting: ce = [],
52
+ rowSelection: re,
53
+ onRowSelectionChange: w,
54
+ defaultRowSelection: fe = {},
55
+ columnFilters: oe,
56
+ onColumnFiltersChange: D,
57
+ columnVisibility: ne,
58
+ onColumnVisibilityChange: R,
59
+ globalFilter: de,
60
+ onGlobalFilterChange: A,
61
+ onRowClick: G,
62
+ clickableRowClassName: N,
63
+ selectedRowClassName: W,
64
+ cellOverflow: B = "truncate",
65
+ disableColumnResizing: H = !1,
66
+ resizeHandleVisibility: Z = "onHeaderHover",
67
+ columnResizeMode: me = "onChange",
68
+ columnSizing: Se,
69
+ onColumnSizingChange: F,
70
+ defaultColumnSizing: ue = {},
71
+ columnPinning: Ie,
72
+ onColumnPinningChange: M,
73
+ defaultColumnPinning: Pe = { left: [], right: [] },
74
+ autoPinSelection: q,
75
+ showHeaderBorder: J = !0,
76
+ showRowBorders: K = !0,
77
+ fitHeaderWidth: Q = !1,
78
+ columnOrder: be,
79
+ onColumnOrderChange: E,
80
+ defaultColumnOrder: ye = [],
81
+ enableColumnOrdering: X = !1,
82
+ virtualization: l,
83
+ density: _,
84
+ className: Te
85
+ }, xe) {
86
+ const we = ft(), [De, Re] = f(ce), [Ae, He] = f(fe), [Fe, Me] = f([]), [Ee, _e] = f({}), [ke, Le] = f(""), [Oe, Ve] = f(ue), [he, Ue] = f(Pe), [je, Ge] = f(ye), Ne = {
81
87
  pageIndex: (t == null ? void 0 : t.pageIndex) ?? 0,
82
88
  pageSize: (t == null ? void 0 : t.pageSize) ?? 10
83
- }, [v, R] = c(ke), k = Ve(!1);
84
- F(() => {
89
+ }, [k, L] = f(Ne), O = Ke(!1);
90
+ h(() => {
85
91
  if ((t == null ? void 0 : t.pageIndex) === void 0)
86
92
  return;
87
93
  const e = t.pageIndex;
88
- R(
89
- (l) => l.pageIndex === e ? l : { ...l, pageIndex: e }
94
+ L(
95
+ (s) => s.pageIndex === e ? s : { ...s, pageIndex: e }
90
96
  );
91
- }, [t == null ? void 0 : t.pageIndex]), F(() => {
97
+ }, [t == null ? void 0 : t.pageIndex]), h(() => {
92
98
  if ((t == null ? void 0 : t.pageSize) === void 0)
93
99
  return;
94
100
  const e = t.pageSize;
95
- R(
96
- (l) => l.pageSize === e ? l : { ...l, pageSize: e }
101
+ L(
102
+ (s) => s.pageSize === e ? s : { ...s, pageSize: e }
97
103
  );
98
104
  }, [t == null ? void 0 : t.pageSize]);
99
- const Z = !T, q = C ?? Se, S = p ?? Pe, B = te ?? ye, G = le ?? ie, J = se ?? Te, K = ce ?? De, o = fe ?? ve, Ae = d(() => {
100
- if (!(r && _ && Object.keys(S).length > 0))
105
+ const Y = !H, $ = le ?? De, P = re ?? Ae, C = oe ?? Fe, z = ne ?? Ee, v = de ?? ke, b = Se ?? Oe, o = Ie ?? he, y = be ?? je, We = u(() => {
106
+ if (!(r && q && Object.keys(P).length > 0))
101
107
  return o;
102
- const l = o.left ?? [];
103
- return l.includes("select") ? o : {
108
+ const s = o.left ?? [];
109
+ return s.includes("select") ? o : {
104
110
  ...o,
105
- left: ["select", ...l]
111
+ left: ["select", ...s]
106
112
  };
107
- }, [o, S, r, _]), Q = d(
113
+ }, [o, P, r, q]), g = u(
108
114
  () => ({
109
115
  id: "select",
110
- header: ({ table: e }) => /* @__PURE__ */ f(
111
- Y,
116
+ header: ({ table: e }) => /* @__PURE__ */ n(
117
+ ee,
112
118
  {
113
119
  "data-fs-element": "DataTable-SelectAll",
114
120
  checked: e.getIsAllPageRowsSelected() || e.getIsSomePageRowsSelected() && "indeterminate",
115
- onCheckedChange: (l) => e.toggleAllPageRowsSelected(!!l),
121
+ onCheckedChange: (s) => e.toggleAllPageRowsSelected(!!s),
116
122
  "aria-label": "Select all rows"
117
123
  }
118
124
  ),
119
- cell: ({ row: e }) => /* @__PURE__ */ f(
120
- Y,
125
+ cell: ({ row: e }) => /* @__PURE__ */ n(
126
+ ee,
121
127
  {
122
128
  "data-fs-element": "DataTable-SelectRow",
123
129
  checked: e.getIsSelected(),
124
- onCheckedChange: (l) => e.toggleSelected(!!l),
130
+ onCheckedChange: (s) => e.toggleSelected(!!s),
125
131
  disabled: !e.getCanSelect(),
126
132
  "aria-label": "Select row"
127
133
  }
@@ -132,140 +138,162 @@ function Ye({
132
138
  size: 40
133
139
  }),
134
140
  []
135
- ), A = d(() => Ue(n, u), [n, u]), Fe = d(() => r ? [Q, ...A] : A, [A, r, Q]), I = !!t, U = I && ((t == null ? void 0 : t.totalItems) !== void 0 || (t == null ? void 0 : t.pageCount) !== void 0), ae = je(
141
+ ), V = u(() => rt(d, m), [d, m]), Be = u(() => r ? [g, ...V] : V, [V, r, g]), S = !!t, a = !!(l != null && l.enabled && !S), i = S && ((t == null ? void 0 : t.totalItems) !== void 0 || (t == null ? void 0 : t.pageCount) !== void 0), Ze = Qe(
136
142
  (e) => {
137
- k.current = !0, R((l) => typeof e == "function" ? e(l) : e);
143
+ O.current = !0, L((s) => typeof e == "function" ? e(s) : e);
138
144
  },
139
145
  []
140
146
  );
141
- F(() => {
147
+ h(() => {
142
148
  var e;
143
- k.current && ((e = t == null ? void 0 : t.onPaginationChange) == null || e.call(t, v), k.current = !1);
144
- }, [v, t]);
145
- const X = He({
146
- data: P,
147
- columns: Fe,
148
- getRowId: m,
149
- getCoreRowModel: Qe(),
149
+ O.current && ((e = t == null ? void 0 : t.onPaginationChange) == null || e.call(t, k), O.current = !1);
150
+ }, [k, t]);
151
+ const p = Xe({
152
+ data: T,
153
+ columns: Be,
154
+ getRowId: I,
155
+ getCoreRowModel: ct(),
150
156
  // Default column configuration
151
157
  defaultColumn: {
152
158
  minSize: 50
153
159
  },
154
160
  // Sorting
155
- ...u && !a && {
156
- getSortedRowModel: Ke()
161
+ ...m && !U && {
162
+ getSortedRowModel: lt()
157
163
  },
158
- ...a && {
164
+ ...U && {
159
165
  manualSorting: !0
160
166
  },
161
167
  state: {
162
- sorting: q,
163
- rowSelection: S,
164
- columnFilters: B,
165
- columnVisibility: G,
166
- globalFilter: J,
167
- columnPinning: Ae,
168
- ...I && {
169
- pagination: v
168
+ sorting: $,
169
+ rowSelection: P,
170
+ columnFilters: C,
171
+ columnVisibility: z,
172
+ globalFilter: v,
173
+ columnPinning: We,
174
+ columnOrder: y,
175
+ ...S && {
176
+ pagination: k
170
177
  },
171
- ...Z && {
172
- columnSizing: K
178
+ ...Y && {
179
+ columnSizing: b
173
180
  }
174
181
  },
175
182
  onSortingChange: (e) => {
176
- const l = typeof e == "function" ? e(q) : e;
177
- Ie(l), b == null || b(l);
183
+ const s = typeof e == "function" ? e($) : e;
184
+ Re(s), x == null || x(s);
178
185
  },
179
186
  // Row selection
180
187
  enableRowSelection: typeof r == "function" ? (e) => r(e) : r,
181
188
  onRowSelectionChange: (e) => {
182
- const l = typeof e == "function" ? e(S) : e;
183
- be(l), y == null || y(l);
189
+ const s = typeof e == "function" ? e(P) : e;
190
+ He(s), w == null || w(s);
184
191
  },
185
192
  // Filtering
186
- ...($ || N) && !h && {
187
- getFilteredRowModel: Je()
193
+ ...(te || se) && !j && {
194
+ getFilteredRowModel: st()
188
195
  },
189
- ...h && {
196
+ ...j && {
190
197
  manualFiltering: !0
191
198
  },
192
199
  onColumnFiltersChange: (e) => {
193
- const l = typeof e == "function" ? e(B) : e;
194
- xe(l), x == null || x(l);
200
+ const s = typeof e == "function" ? e(C) : e;
201
+ Me(s), D == null || D(s);
195
202
  },
196
203
  onColumnVisibilityChange: (e) => {
197
- const l = typeof e == "function" ? e(G) : e;
198
- we(l), i == null || i(l);
204
+ const s = typeof e == "function" ? e(z) : e;
205
+ _e(s), R == null || R(s);
199
206
  },
200
207
  onGlobalFilterChange: (e) => {
201
- const l = typeof e == "function" ? e(J) : e;
202
- ze(l), w == null || w(l);
208
+ const s = typeof e == "function" ? e(v) : e;
209
+ Le(s), A == null || A(s);
210
+ },
211
+ // Column ordering
212
+ onColumnOrderChange: (e) => {
213
+ const s = typeof e == "function" ? e(y) : e;
214
+ Ge(s), E == null || E(s);
203
215
  },
204
216
  // Column resizing
205
- enableColumnResizing: Z,
206
- columnResizeMode: re,
217
+ enableColumnResizing: Y,
218
+ columnResizeMode: me,
207
219
  onColumnSizingChange: (e) => {
208
- const l = typeof e == "function" ? e(K) : e;
209
- Me(l), z == null || z(l);
220
+ const s = typeof e == "function" ? e(b) : e;
221
+ Ve(s), F == null || F(s);
210
222
  },
211
223
  // Column pinning
212
224
  onColumnPinningChange: (e) => {
213
- const l = typeof e == "function" ? e(o) : e;
214
- Re(l), D == null || D(l);
225
+ const s = typeof e == "function" ? e(o) : e;
226
+ Ue(s), M == null || M(s);
215
227
  },
216
228
  // Pagination
217
- ...I && !U && {
218
- getPaginationRowModel: Ge()
229
+ ...S && !i && {
230
+ getPaginationRowModel: tt()
219
231
  },
220
- ...U && {
232
+ ...i && {
221
233
  manualPagination: !0,
222
234
  pageCount: t == null ? void 0 : t.pageCount,
223
235
  rowCount: t == null ? void 0 : t.totalItems
224
236
  },
225
- ...I && {
226
- onPaginationChange: ae
237
+ ...S && {
238
+ onPaginationChange: Ze
227
239
  }
228
- }), he = d(
240
+ }), qe = u(
229
241
  () => ({
230
- table: X,
242
+ table: p,
231
243
  pagination: t,
232
- onRowClick: L,
233
- clickableRowClassName: V,
234
- selectedRowClassName: j,
235
- cellOverflow: H,
236
- disableColumnResizing: T,
237
- showHeaderBorder: E,
238
- showRowBorders: O,
239
- fitHeaderWidth: W
244
+ config: {
245
+ enableVirtualization: a,
246
+ estimateRowHeight: (l == null ? void 0 : l.estimateRowHeight) ?? ie,
247
+ overscan: (l == null ? void 0 : l.overscan) ?? ae,
248
+ containerHeight: (l == null ? void 0 : l.containerHeight) ?? ge
249
+ },
250
+ onRowClick: G,
251
+ clickableRowClassName: N,
252
+ selectedRowClassName: W,
253
+ cellOverflow: B,
254
+ disableColumnResizing: H,
255
+ resizeHandleVisibility: Z,
256
+ showHeaderBorder: J,
257
+ showRowBorders: K,
258
+ fitHeaderWidth: Q,
259
+ columnSizing: b,
260
+ enableColumnOrdering: X,
261
+ columnOrder: y
240
262
  }),
241
263
  [
242
- X,
264
+ p,
243
265
  t,
244
- L,
245
- V,
246
- j,
266
+ a,
267
+ l,
268
+ G,
269
+ N,
270
+ W,
271
+ B,
247
272
  H,
248
- T,
249
- E,
250
- O,
251
- W
273
+ Z,
274
+ J,
275
+ K,
276
+ Q,
277
+ b,
278
+ X,
279
+ y
252
280
  ]
253
281
  );
254
- return /* @__PURE__ */ f(qe.Provider, { value: he, children: /* @__PURE__ */ f(
282
+ return /* @__PURE__ */ n(pe.Provider, { value: qe, children: /* @__PURE__ */ n(
255
283
  "div",
256
284
  {
257
- ref: de,
285
+ ref: xe,
258
286
  "data-slot": "data-table",
259
- [Ee]: "data-table",
287
+ [$e]: "data-table",
260
288
  "data-fs-element": "DataTable",
261
- className: _e(me.root, ue),
262
- ...M !== void 0 ? { "data-density": Ze(M) } : {},
263
- children: /* @__PURE__ */ f(We, { density: M, children: s })
289
+ className: Ye(we.root, Te),
290
+ ..._ !== void 0 ? { "data-density": ve(_) } : {},
291
+ children: /* @__PURE__ */ n(ze, { density: _, children: c })
264
292
  }
265
293
  ) });
266
294
  }
267
- const ot = Le.forwardRef(Ye);
295
+ const wt = Je.forwardRef(ot);
268
296
  export {
269
- ot as DataTable
297
+ wt as DataTable
270
298
  };
271
299
  //# sourceMappingURL=data-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.js","sources":["../../../src/components/data-table/data-table.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { useState, useRef, useEffect, useCallback, useMemo } from \"react\"\nimport type { ReactNode, MouseEvent } from \"react\"\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n type SortingState,\n type RowSelectionState,\n type PaginationState,\n type ColumnFiltersState,\n type VisibilityState,\n type ColumnDef,\n type Row,\n type ColumnSizingState,\n type ColumnPinningState,\n type HeaderContext,\n} from \"@tanstack/react-table\"\nimport { mergeClasses } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { Checkbox } from \"../checkbox/checkbox\"\nimport { type TableDensity } from \"../table/table\"\nimport {\n canonicalDensity,\n DensityContextBoundary,\n} from \"../density-provider/density-provider\"\nimport {\n DataTableContext,\n type DataTablePaginationConfig,\n type DataTableCellOverflow,\n} from \"./data-table-context\"\nimport { DataTableColumnHeader } from \"./data-table-column-header\"\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type DataTableProps<TData> = {\n /** Column definitions */\n columns: ColumnDef<TData, unknown>[]\n /** Data array */\n data: TData[]\n /** Children rendered inside the context (DataTableContent, DataTablePagination, etc.) */\n children?: ReactNode\n /** Unique key accessor for each row */\n getRowId?: (row: TData) => string\n /** Enable row selection with checkboxes */\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n /** Enable column sorting */\n enableSorting?: boolean\n /** Skip client-side sorting (for server-side sorting). When true, sorting state is tracked but rows are not sorted client-side. */\n manualSorting?: boolean\n /** Enable column filtering */\n enableFiltering?: boolean\n /** Skip client-side filtering (for server-side filtering). When true, filter state is tracked but rows are not filtered client-side. */\n manualFiltering?: boolean\n /** Enable global search/filter */\n enableGlobalFilter?: boolean\n /** Pagination configuration */\n pagination?: DataTablePaginationConfig\n /** Controlled sorting state */\n sorting?: SortingState\n /** Callback when sorting changes */\n onSortingChange?: (sorting: SortingState) => void\n /** Default sorting state */\n defaultSorting?: SortingState\n /** Controlled row selection state */\n rowSelection?: RowSelectionState\n /** Callback when row selection changes */\n onRowSelectionChange?: (selection: RowSelectionState) => void\n /** Default row selection state */\n defaultRowSelection?: RowSelectionState\n /** Controlled column filters state */\n columnFilters?: ColumnFiltersState\n /** Callback when column filters change */\n onColumnFiltersChange?: (filters: ColumnFiltersState) => void\n /** Controlled column visibility state */\n columnVisibility?: VisibilityState\n /** Callback when column visibility changes */\n onColumnVisibilityChange?: (visibility: VisibilityState) => void\n /** Controlled global filter value */\n globalFilter?: string\n /** Callback when global filter changes */\n onGlobalFilterChange?: (value: string) => void\n /** Handler called when a row is clicked. Enables clickable row mode. */\n onRowClick?: (row: Row<TData>, event: MouseEvent<HTMLTableRowElement>) => void\n /** Custom hover class for clickable rows. Default: 'hover:bg-accent-a3' */\n clickableRowClassName?: string\n /** Custom class for selected rows. Default: 'data-[state=selected]:bg-accent-a3' */\n selectedRowClassName?: string\n /** Controls how cell content handles overflow. 'grow' expands cells (default), 'wrap' wraps text, 'truncate' shows ellipsis. Can be overridden per-column via column meta. */\n cellOverflow?: DataTableCellOverflow\n /** Disable column width resizing (enabled by default) */\n disableColumnResizing?: boolean\n /** Resize mode: 'onChange' updates during drag, 'onEnd' updates when drag finishes. Default: 'onChange' */\n columnResizeMode?: \"onChange\" | \"onEnd\"\n /** Controlled column sizing state */\n columnSizing?: ColumnSizingState\n /** Callback when column sizing changes */\n onColumnSizingChange?: (sizing: ColumnSizingState) => void\n /** Default column sizing for uncontrolled mode */\n defaultColumnSizing?: ColumnSizingState\n /** Controlled column pinning state */\n columnPinning?: ColumnPinningState\n /** Callback when column pinning changes */\n onColumnPinningChange?: (pinning: ColumnPinningState) => void\n /** Default column pinning for uncontrolled mode */\n defaultColumnPinning?: ColumnPinningState\n /** Auto-pin selection column to left when rows are selected. Default: false */\n autoPinSelection?: boolean\n /** Show bottom border on header row. Default: true */\n showHeaderBorder?: boolean\n /** Show bottom borders on data rows. Default: true */\n showRowBorders?: boolean\n /** Ensure columns have minimum width to fit header content (prevents hover clipping on sortable headers). Default: false */\n fitHeaderWidth?: boolean\n /**\n * Cell density: compact, normal, or comfortable. Omitted inherits ambient CSS density (shell or\n * an outer `DensityProvider`) with no default-normal stamp — explicit only when passed.\n */\n density?: TableDensity\n /** Additional class name */\n className?: string\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Transforms columns to auto-wrap string headers with DataTableColumnHeader\n * when sorting is enabled at the table level.\n */\nfunction wrapSortableHeaders<TData>(\n columns: ColumnDef<TData, unknown>[],\n enableSorting: boolean | undefined\n): ColumnDef<TData, unknown>[] {\n if (!enableSorting) {\n return columns\n }\n\n return columns.map((column) => {\n // Skip if column explicitly disables sorting\n if (column.enableSorting === false) {\n return column\n }\n\n // Skip if header is not a string (already a function/component)\n if (typeof column.header !== \"string\") {\n return column\n }\n\n const headerTitle = column.header\n\n return {\n ...column,\n header: ({ column: col }: HeaderContext<TData, unknown>) => (\n <DataTableColumnHeader column={col} title={headerTitle} />\n ),\n meta: {\n ...column.meta,\n // Preserve original header for visibility dropdown fallback\n visibilityLabel:\n (column.meta as { visibilityLabel?: string } | undefined)\n ?.visibilityLabel ?? headerTitle,\n // Flag to indicate this header was auto-wrapped with DataTableColumnHeader\n _sortableHeaderWrapped: true,\n },\n } as ColumnDef<TData, unknown>\n })\n}\n\nconst useStyles = makeZenithStyles({\n root: {\n width: \"100%\",\n maxWidth: \"100%\",\n },\n})\n\n// =============================================================================\n// Component\n// =============================================================================\n\nfunction DataTableInner<TData>(\n {\n columns,\n data,\n children,\n getRowId,\n enableRowSelection = false,\n enableSorting = false,\n manualSorting = false,\n enableFiltering = false,\n manualFiltering = false,\n enableGlobalFilter = false,\n pagination,\n sorting: controlledSorting,\n onSortingChange,\n defaultSorting = [],\n rowSelection: controlledRowSelection,\n onRowSelectionChange,\n defaultRowSelection = {},\n columnFilters: controlledColumnFilters,\n onColumnFiltersChange,\n columnVisibility: controlledColumnVisibility,\n onColumnVisibilityChange,\n globalFilter: controlledGlobalFilter,\n onGlobalFilterChange,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow = \"truncate\",\n disableColumnResizing = false,\n columnResizeMode = \"onChange\",\n columnSizing: controlledColumnSizing,\n onColumnSizingChange,\n defaultColumnSizing = {},\n columnPinning: controlledColumnPinning,\n onColumnPinningChange,\n defaultColumnPinning = { left: [], right: [] },\n autoPinSelection,\n showHeaderBorder = true,\n showRowBorders = true,\n fitHeaderWidth = false,\n density,\n className,\n }: DataTableProps<TData>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const styles = useStyles()\n\n // Internal state for uncontrolled mode\n const [internalSorting, setInternalSorting] =\n useState<SortingState>(defaultSorting)\n const [internalRowSelection, setInternalRowSelection] =\n useState<RowSelectionState>(defaultRowSelection)\n const [internalColumnFilters, setInternalColumnFilters] =\n useState<ColumnFiltersState>([])\n const [internalColumnVisibility, setInternalColumnVisibility] =\n useState<VisibilityState>({})\n const [internalGlobalFilter, setInternalGlobalFilter] = useState<string>(\"\")\n const [internalColumnSizing, setInternalColumnSizing] =\n useState<ColumnSizingState>(defaultColumnSizing)\n const [internalColumnPinning, setInternalColumnPinning] =\n useState<ColumnPinningState>(defaultColumnPinning)\n\n const initialPagination = {\n pageIndex: pagination?.pageIndex ?? 0,\n pageSize: pagination?.pageSize ?? 10,\n }\n const [internalPagination, setInternalPagination] =\n useState<PaginationState>(initialPagination)\n const isInternalPaginationChange = useRef(false)\n\n useEffect(() => {\n if (pagination?.pageIndex === undefined) {\n return\n }\n const pageIndex = pagination.pageIndex\n setInternalPagination((prev) =>\n prev.pageIndex === pageIndex ? prev : { ...prev, pageIndex }\n )\n }, [pagination?.pageIndex])\n\n useEffect(() => {\n if (pagination?.pageSize === undefined) {\n return\n }\n const pageSize = pagination.pageSize\n setInternalPagination((prev) =>\n prev.pageSize === pageSize ? prev : { ...prev, pageSize }\n )\n }, [pagination?.pageSize])\n\n // Derive enableColumnResizing from disableColumnResizing (enabled by default)\n const enableColumnResizing = !disableColumnResizing\n\n // Use controlled or internal state\n const sorting = controlledSorting ?? internalSorting\n const rowSelection = controlledRowSelection ?? internalRowSelection\n const columnFilters = controlledColumnFilters ?? internalColumnFilters\n const columnVisibility =\n controlledColumnVisibility ?? internalColumnVisibility\n const globalFilter = controlledGlobalFilter ?? internalGlobalFilter\n const columnSizing = controlledColumnSizing ?? internalColumnSizing\n const columnPinning = controlledColumnPinning ?? internalColumnPinning\n\n // Compute effective pinning with auto-pin selection\n const effectiveColumnPinning = useMemo(() => {\n const shouldAutoPinSelection =\n enableRowSelection &&\n autoPinSelection &&\n Object.keys(rowSelection).length > 0\n\n if (!shouldAutoPinSelection) {\n return columnPinning\n }\n\n // Add \"select\" to left pinned if not already present\n const leftPinned = columnPinning.left ?? []\n if (leftPinned.includes(\"select\")) {\n return columnPinning\n }\n\n return {\n ...columnPinning,\n left: [\"select\", ...leftPinned],\n }\n }, [columnPinning, rowSelection, enableRowSelection, autoPinSelection])\n\n // Build selection column if enabled\n const selectionColumn: ColumnDef<TData, unknown> = useMemo(\n () => ({\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n data-fs-element=\"DataTable-SelectAll\"\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all rows\"\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n data-fs-element=\"DataTable-SelectRow\"\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n disabled={!row.getCanSelect()}\n aria-label=\"Select row\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n enableResizing: false,\n size: 40,\n }),\n []\n )\n\n // Transform columns to auto-wrap sortable headers\n const processedColumns = useMemo(() => {\n return wrapSortableHeaders(columns, enableSorting)\n }, [columns, enableSorting])\n\n // Prepend selection column if enabled\n const allColumns = useMemo(() => {\n if (enableRowSelection) {\n return [selectionColumn, ...processedColumns]\n }\n return processedColumns\n }, [processedColumns, enableRowSelection, selectionColumn])\n\n const usePagination = Boolean(pagination)\n const isServerSidePagination =\n usePagination &&\n (pagination?.totalItems !== undefined ||\n pagination?.pageCount !== undefined)\n\n const handlePaginationChange = useCallback(\n (\n updater: PaginationState | ((prev: PaginationState) => PaginationState)\n ) => {\n isInternalPaginationChange.current = true\n setInternalPagination((prev) => {\n const next = typeof updater === \"function\" ? updater(prev) : updater\n return next\n })\n },\n []\n )\n\n // Call user's pagination callback after render completes\n useEffect(() => {\n if (isInternalPaginationChange.current) {\n pagination?.onPaginationChange?.(internalPagination)\n isInternalPaginationChange.current = false\n }\n }, [internalPagination, pagination])\n\n // Create table instance\n const table = useReactTable({\n data,\n columns: allColumns,\n getRowId,\n getCoreRowModel: getCoreRowModel(),\n\n // Default column configuration\n defaultColumn: {\n minSize: 50,\n },\n\n // Sorting\n ...(enableSorting &&\n !manualSorting && {\n getSortedRowModel: getSortedRowModel(),\n }),\n ...(manualSorting && {\n manualSorting: true,\n }),\n state: {\n sorting,\n rowSelection,\n columnFilters,\n columnVisibility,\n globalFilter,\n columnPinning: effectiveColumnPinning,\n ...(usePagination && {\n pagination: internalPagination,\n }),\n ...(enableColumnResizing && {\n columnSizing,\n }),\n },\n onSortingChange: (updater) => {\n const newSorting =\n typeof updater === \"function\" ? updater(sorting) : updater\n setInternalSorting(newSorting)\n onSortingChange?.(newSorting)\n },\n\n // Row selection\n enableRowSelection:\n typeof enableRowSelection === \"function\"\n ? (row: Row<TData>) => enableRowSelection(row)\n : enableRowSelection,\n onRowSelectionChange: (updater) => {\n const newSelection =\n typeof updater === \"function\" ? updater(rowSelection) : updater\n setInternalRowSelection(newSelection)\n onRowSelectionChange?.(newSelection)\n },\n\n // Filtering\n ...((enableFiltering || enableGlobalFilter) &&\n !manualFiltering && {\n getFilteredRowModel: getFilteredRowModel(),\n }),\n ...(manualFiltering && {\n manualFiltering: true,\n }),\n onColumnFiltersChange: (updater) => {\n const newFilters =\n typeof updater === \"function\" ? updater(columnFilters) : updater\n setInternalColumnFilters(newFilters)\n onColumnFiltersChange?.(newFilters)\n },\n onColumnVisibilityChange: (updater) => {\n const newVisibility =\n typeof updater === \"function\" ? updater(columnVisibility) : updater\n setInternalColumnVisibility(newVisibility)\n onColumnVisibilityChange?.(newVisibility)\n },\n onGlobalFilterChange: (updater) => {\n const newGlobalFilter =\n typeof updater === \"function\" ? updater(globalFilter) : updater\n setInternalGlobalFilter(newGlobalFilter)\n onGlobalFilterChange?.(newGlobalFilter)\n },\n\n // Column resizing\n enableColumnResizing,\n columnResizeMode,\n onColumnSizingChange: (updater) => {\n const newSizing =\n typeof updater === \"function\" ? updater(columnSizing) : updater\n setInternalColumnSizing(newSizing)\n onColumnSizingChange?.(newSizing)\n },\n\n // Column pinning\n onColumnPinningChange: (updater) => {\n const newPinning =\n typeof updater === \"function\" ? updater(columnPinning) : updater\n setInternalColumnPinning(newPinning)\n onColumnPinningChange?.(newPinning)\n },\n\n // Pagination\n ...(usePagination &&\n !isServerSidePagination && {\n getPaginationRowModel: getPaginationRowModel(),\n }),\n ...(isServerSidePagination && {\n manualPagination: true,\n pageCount: pagination?.pageCount,\n rowCount: pagination?.totalItems,\n }),\n ...(usePagination && {\n onPaginationChange: handlePaginationChange,\n }),\n })\n\n const contextValue = useMemo(\n () => ({\n table,\n pagination,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow,\n disableColumnResizing,\n showHeaderBorder,\n showRowBorders,\n fitHeaderWidth,\n }),\n [\n table,\n pagination,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow,\n disableColumnResizing,\n showHeaderBorder,\n showRowBorders,\n fitHeaderWidth,\n ]\n )\n\n return (\n <DataTableContext.Provider value={contextValue}>\n <div\n ref={ref}\n data-slot=\"data-table\"\n {...{ [SLOT_ATTR]: \"data-table\" }}\n data-fs-element=\"DataTable\"\n className={mergeClasses(styles.root, className)}\n // Authoritative, normalized, spread last: a raw caller data-density prop must never win\n // over the normalized density prop — same invariant DensityProvider/Table enforce.\n // canonicalDensity is the SAME normalization DensityContextBoundary below applies to the\n // context value, so an invalid density can never make DOM and context disagree.\n {...(density !== undefined\n ? { \"data-density\": canonicalDensity(density) }\n : {})}\n >\n <DensityContextBoundary density={density}>\n {children}\n </DensityContextBoundary>\n </div>\n </DataTableContext.Provider>\n )\n}\n\nexport const DataTable = React.forwardRef(DataTableInner) as <TData>(\n props: DataTableProps<TData> & { ref?: React.Ref<HTMLDivElement> }\n) => React.ReactElement | null\n"],"names":["wrapSortableHeaders","columns","enableSorting","column","headerTitle","col","jsx","DataTableColumnHeader","_a","useStyles","makeZenithStyles","DataTableInner","data","children","getRowId","enableRowSelection","manualSorting","enableFiltering","manualFiltering","enableGlobalFilter","pagination","controlledSorting","onSortingChange","defaultSorting","controlledRowSelection","onRowSelectionChange","defaultRowSelection","controlledColumnFilters","onColumnFiltersChange","controlledColumnVisibility","onColumnVisibilityChange","controlledGlobalFilter","onGlobalFilterChange","onRowClick","clickableRowClassName","selectedRowClassName","cellOverflow","disableColumnResizing","columnResizeMode","controlledColumnSizing","onColumnSizingChange","defaultColumnSizing","controlledColumnPinning","onColumnPinningChange","defaultColumnPinning","autoPinSelection","showHeaderBorder","showRowBorders","fitHeaderWidth","density","className","ref","styles","internalSorting","setInternalSorting","useState","internalRowSelection","setInternalRowSelection","internalColumnFilters","setInternalColumnFilters","internalColumnVisibility","setInternalColumnVisibility","internalGlobalFilter","setInternalGlobalFilter","internalColumnSizing","setInternalColumnSizing","internalColumnPinning","setInternalColumnPinning","initialPagination","internalPagination","setInternalPagination","isInternalPaginationChange","useRef","useEffect","pageIndex","prev","pageSize","enableColumnResizing","sorting","rowSelection","columnFilters","columnVisibility","globalFilter","columnSizing","columnPinning","effectiveColumnPinning","useMemo","leftPinned","selectionColumn","table","Checkbox","value","row","processedColumns","allColumns","usePagination","isServerSidePagination","handlePaginationChange","useCallback","updater","useReactTable","getCoreRowModel","getSortedRowModel","newSorting","newSelection","getFilteredRowModel","newFilters","newVisibility","newGlobalFilter","newSizing","newPinning","getPaginationRowModel","contextValue","DataTableContext","SLOT_ATTR","mergeClasses","canonicalDensity","DensityContextBoundary","DataTable","React"],"mappings":"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"}
1
+ {"version":3,"file":"data-table.js","sources":["../../../src/components/data-table/data-table.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { useState, useRef, useEffect, useCallback, useMemo } from \"react\"\nimport type { ReactNode, MouseEvent } from \"react\"\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n type SortingState,\n type RowSelectionState,\n type PaginationState,\n type ColumnFiltersState,\n type VisibilityState,\n type ColumnDef,\n type Row,\n type ColumnSizingState,\n type ColumnPinningState,\n type ColumnOrderState,\n type HeaderContext,\n} from \"@tanstack/react-table\"\nimport { mergeClasses } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { Checkbox } from \"../checkbox/checkbox\"\nimport { type TableDensity } from \"../table/table\"\nimport {\n canonicalDensity,\n DensityContextBoundary,\n} from \"../density-provider/density-provider\"\nimport {\n DataTableContext,\n type DataTablePaginationConfig,\n type DataTableCellOverflow,\n type DataTableVirtualizationConfig,\n DEFAULT_ROW_HEIGHT,\n DEFAULT_OVERSCAN,\n DEFAULT_CONTAINER_HEIGHT,\n} from \"./data-table-context\"\nimport { DataTableColumnHeader } from \"./data-table-column-header\"\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type DataTableProps<TData> = {\n /** Column definitions */\n columns: ColumnDef<TData, unknown>[]\n /** Data array */\n data: TData[]\n /** Children rendered inside the context (DataTableContent, DataTablePagination, etc.) */\n children?: ReactNode\n /** Unique key accessor for each row */\n getRowId?: (row: TData) => string\n /** Enable row selection with checkboxes */\n enableRowSelection?: boolean | ((row: Row<TData>) => boolean)\n /** Enable column sorting */\n enableSorting?: boolean\n /** Skip client-side sorting (for server-side sorting). When true, sorting state is tracked but rows are not sorted client-side. */\n manualSorting?: boolean\n /** Enable column filtering */\n enableFiltering?: boolean\n /** Skip client-side filtering (for server-side filtering). When true, filter state is tracked but rows are not filtered client-side. */\n manualFiltering?: boolean\n /** Enable global search/filter */\n enableGlobalFilter?: boolean\n /** Pagination configuration */\n pagination?: DataTablePaginationConfig\n /** Controlled sorting state */\n sorting?: SortingState\n /** Callback when sorting changes */\n onSortingChange?: (sorting: SortingState) => void\n /** Default sorting state */\n defaultSorting?: SortingState\n /** Controlled row selection state */\n rowSelection?: RowSelectionState\n /** Callback when row selection changes */\n onRowSelectionChange?: (selection: RowSelectionState) => void\n /** Default row selection state */\n defaultRowSelection?: RowSelectionState\n /** Controlled column filters state */\n columnFilters?: ColumnFiltersState\n /** Callback when column filters change */\n onColumnFiltersChange?: (filters: ColumnFiltersState) => void\n /** Controlled column visibility state */\n columnVisibility?: VisibilityState\n /** Callback when column visibility changes */\n onColumnVisibilityChange?: (visibility: VisibilityState) => void\n /** Controlled global filter value */\n globalFilter?: string\n /** Callback when global filter changes */\n onGlobalFilterChange?: (value: string) => void\n /** Handler called when a row is clicked. Enables clickable row mode. */\n onRowClick?: (row: Row<TData>, event: MouseEvent<HTMLTableRowElement>) => void\n /** Custom hover class for clickable rows. Default: 'hover:bg-accent-a3' */\n clickableRowClassName?: string\n /** Custom class for selected rows. Default: 'data-[state=selected]:bg-accent-a3' */\n selectedRowClassName?: string\n /** Controls how cell content handles overflow. 'grow' expands cells (default), 'wrap' wraps text, 'truncate' shows ellipsis. Can be overridden per-column via column meta. */\n cellOverflow?: DataTableCellOverflow\n /** Disable column width resizing (enabled by default) */\n disableColumnResizing?: boolean\n /** Controls when resize handles are visible. 'always' shows handles persistently, 'onHeaderHover' only shows on header row hover. Default: 'onHeaderHover' */\n resizeHandleVisibility?: \"always\" | \"onHeaderHover\"\n /** Resize mode: 'onChange' updates during drag, 'onEnd' updates when drag finishes. Default: 'onChange' */\n columnResizeMode?: \"onChange\" | \"onEnd\"\n /** Controlled column sizing state */\n columnSizing?: ColumnSizingState\n /** Callback when column sizing changes */\n onColumnSizingChange?: (sizing: ColumnSizingState) => void\n /** Default column sizing for uncontrolled mode */\n defaultColumnSizing?: ColumnSizingState\n /** Controlled column pinning state */\n columnPinning?: ColumnPinningState\n /** Callback when column pinning changes */\n onColumnPinningChange?: (pinning: ColumnPinningState) => void\n /** Default column pinning for uncontrolled mode */\n defaultColumnPinning?: ColumnPinningState\n /** Auto-pin selection column to left when rows are selected. Default: false */\n autoPinSelection?: boolean\n /** Show bottom border on header row. Default: true */\n showHeaderBorder?: boolean\n /** Show bottom borders on data rows. Default: true */\n showRowBorders?: boolean\n /** Ensure columns have minimum width to fit header content (prevents hover clipping on sortable headers). Default: false */\n fitHeaderWidth?: boolean\n /** Controlled column order */\n columnOrder?: ColumnOrderState\n /** Callback for column order changes */\n onColumnOrderChange?: (columnOrder: ColumnOrderState) => void\n /** Default column order for uncontrolled mode */\n defaultColumnOrder?: ColumnOrderState\n /** Enable drag-and-drop column reordering in headers. Default: false */\n enableColumnOrdering?: boolean\n /** Virtualization configuration for large datasets (incompatible with pagination) */\n virtualization?: DataTableVirtualizationConfig\n /**\n * Cell density: compact, normal, or comfortable. Omitted inherits ambient CSS density (shell or\n * an outer `DensityProvider`) with no default-normal stamp — explicit only when passed.\n */\n density?: TableDensity\n /** Additional class name */\n className?: string\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Transforms columns to auto-wrap string headers with DataTableColumnHeader\n * when sorting is enabled at the table level.\n */\nfunction wrapSortableHeaders<TData>(\n columns: ColumnDef<TData, unknown>[],\n enableSorting: boolean | undefined\n): ColumnDef<TData, unknown>[] {\n if (!enableSorting) {\n return columns\n }\n\n return columns.map((column) => {\n // Skip if column explicitly disables sorting\n if (column.enableSorting === false) {\n return column\n }\n\n // Skip if header is not a string (already a function/component)\n if (typeof column.header !== \"string\") {\n return column\n }\n\n const headerTitle = column.header\n\n return {\n ...column,\n header: ({ column: col }: HeaderContext<TData, unknown>) => (\n <DataTableColumnHeader column={col} title={headerTitle} />\n ),\n meta: {\n ...column.meta,\n // Preserve original header for visibility dropdown fallback\n visibilityLabel:\n (column.meta as { visibilityLabel?: string } | undefined)\n ?.visibilityLabel ?? headerTitle,\n // Flag to indicate this header was auto-wrapped with DataTableColumnHeader\n _sortableHeaderWrapped: true,\n },\n } as ColumnDef<TData, unknown>\n })\n}\n\nconst useStyles = makeZenithStyles({\n root: {\n width: \"100%\",\n maxWidth: \"100%\",\n },\n})\n\n// =============================================================================\n// Component\n// =============================================================================\n\nfunction DataTableInner<TData>(\n {\n columns,\n data,\n children,\n getRowId,\n enableRowSelection = false,\n enableSorting = false,\n manualSorting = false,\n enableFiltering = false,\n manualFiltering = false,\n enableGlobalFilter = false,\n pagination,\n sorting: controlledSorting,\n onSortingChange,\n defaultSorting = [],\n rowSelection: controlledRowSelection,\n onRowSelectionChange,\n defaultRowSelection = {},\n columnFilters: controlledColumnFilters,\n onColumnFiltersChange,\n columnVisibility: controlledColumnVisibility,\n onColumnVisibilityChange,\n globalFilter: controlledGlobalFilter,\n onGlobalFilterChange,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow = \"truncate\",\n disableColumnResizing = false,\n resizeHandleVisibility = \"onHeaderHover\",\n columnResizeMode = \"onChange\",\n columnSizing: controlledColumnSizing,\n onColumnSizingChange,\n defaultColumnSizing = {},\n columnPinning: controlledColumnPinning,\n onColumnPinningChange,\n defaultColumnPinning = { left: [], right: [] },\n autoPinSelection,\n showHeaderBorder = true,\n showRowBorders = true,\n fitHeaderWidth = false,\n columnOrder: controlledColumnOrder,\n onColumnOrderChange,\n defaultColumnOrder = [],\n enableColumnOrdering = false,\n virtualization,\n density,\n className,\n }: DataTableProps<TData>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const styles = useStyles()\n\n // Internal state for uncontrolled mode\n const [internalSorting, setInternalSorting] =\n useState<SortingState>(defaultSorting)\n const [internalRowSelection, setInternalRowSelection] =\n useState<RowSelectionState>(defaultRowSelection)\n const [internalColumnFilters, setInternalColumnFilters] =\n useState<ColumnFiltersState>([])\n const [internalColumnVisibility, setInternalColumnVisibility] =\n useState<VisibilityState>({})\n const [internalGlobalFilter, setInternalGlobalFilter] = useState<string>(\"\")\n const [internalColumnSizing, setInternalColumnSizing] =\n useState<ColumnSizingState>(defaultColumnSizing)\n const [internalColumnPinning, setInternalColumnPinning] =\n useState<ColumnPinningState>(defaultColumnPinning)\n const [internalColumnOrder, setInternalColumnOrder] =\n useState<ColumnOrderState>(defaultColumnOrder)\n\n const initialPagination = {\n pageIndex: pagination?.pageIndex ?? 0,\n pageSize: pagination?.pageSize ?? 10,\n }\n const [internalPagination, setInternalPagination] =\n useState<PaginationState>(initialPagination)\n const isInternalPaginationChange = useRef(false)\n\n useEffect(() => {\n if (pagination?.pageIndex === undefined) {\n return\n }\n const pageIndex = pagination.pageIndex\n setInternalPagination((prev) =>\n prev.pageIndex === pageIndex ? prev : { ...prev, pageIndex }\n )\n }, [pagination?.pageIndex])\n\n useEffect(() => {\n if (pagination?.pageSize === undefined) {\n return\n }\n const pageSize = pagination.pageSize\n setInternalPagination((prev) =>\n prev.pageSize === pageSize ? prev : { ...prev, pageSize }\n )\n }, [pagination?.pageSize])\n\n // Derive enableColumnResizing from disableColumnResizing (enabled by default)\n const enableColumnResizing = !disableColumnResizing\n\n // Use controlled or internal state\n const sorting = controlledSorting ?? internalSorting\n const rowSelection = controlledRowSelection ?? internalRowSelection\n const columnFilters = controlledColumnFilters ?? internalColumnFilters\n const columnVisibility =\n controlledColumnVisibility ?? internalColumnVisibility\n const globalFilter = controlledGlobalFilter ?? internalGlobalFilter\n const columnSizing = controlledColumnSizing ?? internalColumnSizing\n const columnPinning = controlledColumnPinning ?? internalColumnPinning\n const columnOrder = controlledColumnOrder ?? internalColumnOrder\n\n // Compute effective pinning with auto-pin selection\n const effectiveColumnPinning = useMemo(() => {\n const shouldAutoPinSelection =\n enableRowSelection &&\n autoPinSelection &&\n Object.keys(rowSelection).length > 0\n\n if (!shouldAutoPinSelection) {\n return columnPinning\n }\n\n // Add \"select\" to left pinned if not already present\n const leftPinned = columnPinning.left ?? []\n if (leftPinned.includes(\"select\")) {\n return columnPinning\n }\n\n return {\n ...columnPinning,\n left: [\"select\", ...leftPinned],\n }\n }, [columnPinning, rowSelection, enableRowSelection, autoPinSelection])\n\n // Build selection column if enabled\n const selectionColumn: ColumnDef<TData, unknown> = useMemo(\n () => ({\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n data-fs-element=\"DataTable-SelectAll\"\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all rows\"\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n data-fs-element=\"DataTable-SelectRow\"\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n disabled={!row.getCanSelect()}\n aria-label=\"Select row\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n enableResizing: false,\n size: 40,\n }),\n []\n )\n\n // Transform columns to auto-wrap sortable headers\n const processedColumns = useMemo(() => {\n return wrapSortableHeaders(columns, enableSorting)\n }, [columns, enableSorting])\n\n // Prepend selection column if enabled\n const allColumns = useMemo(() => {\n if (enableRowSelection) {\n return [selectionColumn, ...processedColumns]\n }\n return processedColumns\n }, [processedColumns, enableRowSelection, selectionColumn])\n\n const usePagination = Boolean(pagination)\n const useVirtualization = Boolean(virtualization?.enabled && !usePagination)\n const isServerSidePagination =\n usePagination &&\n (pagination?.totalItems !== undefined ||\n pagination?.pageCount !== undefined)\n\n const handlePaginationChange = useCallback(\n (\n updater: PaginationState | ((prev: PaginationState) => PaginationState)\n ) => {\n isInternalPaginationChange.current = true\n setInternalPagination((prev) => {\n const next = typeof updater === \"function\" ? updater(prev) : updater\n return next\n })\n },\n []\n )\n\n // Call user's pagination callback after render completes\n useEffect(() => {\n if (isInternalPaginationChange.current) {\n pagination?.onPaginationChange?.(internalPagination)\n isInternalPaginationChange.current = false\n }\n }, [internalPagination, pagination])\n\n // Create table instance\n const table = useReactTable({\n data,\n columns: allColumns,\n getRowId,\n getCoreRowModel: getCoreRowModel(),\n\n // Default column configuration\n defaultColumn: {\n minSize: 50,\n },\n\n // Sorting\n ...(enableSorting &&\n !manualSorting && {\n getSortedRowModel: getSortedRowModel(),\n }),\n ...(manualSorting && {\n manualSorting: true,\n }),\n state: {\n sorting,\n rowSelection,\n columnFilters,\n columnVisibility,\n globalFilter,\n columnPinning: effectiveColumnPinning,\n columnOrder,\n ...(usePagination && {\n pagination: internalPagination,\n }),\n ...(enableColumnResizing && {\n columnSizing,\n }),\n },\n onSortingChange: (updater) => {\n const newSorting =\n typeof updater === \"function\" ? updater(sorting) : updater\n setInternalSorting(newSorting)\n onSortingChange?.(newSorting)\n },\n\n // Row selection\n enableRowSelection:\n typeof enableRowSelection === \"function\"\n ? (row: Row<TData>) => enableRowSelection(row)\n : enableRowSelection,\n onRowSelectionChange: (updater) => {\n const newSelection =\n typeof updater === \"function\" ? updater(rowSelection) : updater\n setInternalRowSelection(newSelection)\n onRowSelectionChange?.(newSelection)\n },\n\n // Filtering\n ...((enableFiltering || enableGlobalFilter) &&\n !manualFiltering && {\n getFilteredRowModel: getFilteredRowModel(),\n }),\n ...(manualFiltering && {\n manualFiltering: true,\n }),\n onColumnFiltersChange: (updater) => {\n const newFilters =\n typeof updater === \"function\" ? updater(columnFilters) : updater\n setInternalColumnFilters(newFilters)\n onColumnFiltersChange?.(newFilters)\n },\n onColumnVisibilityChange: (updater) => {\n const newVisibility =\n typeof updater === \"function\" ? updater(columnVisibility) : updater\n setInternalColumnVisibility(newVisibility)\n onColumnVisibilityChange?.(newVisibility)\n },\n onGlobalFilterChange: (updater) => {\n const newGlobalFilter =\n typeof updater === \"function\" ? updater(globalFilter) : updater\n setInternalGlobalFilter(newGlobalFilter)\n onGlobalFilterChange?.(newGlobalFilter)\n },\n\n // Column ordering\n onColumnOrderChange: (updater) => {\n const newOrder =\n typeof updater === \"function\" ? updater(columnOrder) : updater\n setInternalColumnOrder(newOrder)\n onColumnOrderChange?.(newOrder)\n },\n\n // Column resizing\n enableColumnResizing,\n columnResizeMode,\n onColumnSizingChange: (updater) => {\n const newSizing =\n typeof updater === \"function\" ? updater(columnSizing) : updater\n setInternalColumnSizing(newSizing)\n onColumnSizingChange?.(newSizing)\n },\n\n // Column pinning\n onColumnPinningChange: (updater) => {\n const newPinning =\n typeof updater === \"function\" ? updater(columnPinning) : updater\n setInternalColumnPinning(newPinning)\n onColumnPinningChange?.(newPinning)\n },\n\n // Pagination\n ...(usePagination &&\n !isServerSidePagination && {\n getPaginationRowModel: getPaginationRowModel(),\n }),\n ...(isServerSidePagination && {\n manualPagination: true,\n pageCount: pagination?.pageCount,\n rowCount: pagination?.totalItems,\n }),\n ...(usePagination && {\n onPaginationChange: handlePaginationChange,\n }),\n })\n\n const contextValue = useMemo(\n () => ({\n table,\n pagination,\n config: {\n enableVirtualization: useVirtualization,\n estimateRowHeight:\n virtualization?.estimateRowHeight ?? DEFAULT_ROW_HEIGHT,\n overscan: virtualization?.overscan ?? DEFAULT_OVERSCAN,\n containerHeight:\n virtualization?.containerHeight ?? DEFAULT_CONTAINER_HEIGHT,\n },\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow,\n disableColumnResizing,\n resizeHandleVisibility,\n showHeaderBorder,\n showRowBorders,\n fitHeaderWidth,\n columnSizing,\n enableColumnOrdering,\n columnOrder,\n }),\n [\n table,\n pagination,\n useVirtualization,\n virtualization,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow,\n disableColumnResizing,\n resizeHandleVisibility,\n showHeaderBorder,\n showRowBorders,\n fitHeaderWidth,\n columnSizing,\n enableColumnOrdering,\n columnOrder,\n ]\n )\n\n return (\n <DataTableContext.Provider value={contextValue}>\n <div\n ref={ref}\n data-slot=\"data-table\"\n {...{ [SLOT_ATTR]: \"data-table\" }}\n data-fs-element=\"DataTable\"\n className={mergeClasses(styles.root, className)}\n // Authoritative, normalized, spread last: a raw caller data-density prop must never win\n // over the normalized density prop — same invariant DensityProvider/Table enforce.\n // canonicalDensity is the SAME normalization DensityContextBoundary below applies to the\n // context value, so an invalid density can never make DOM and context disagree.\n {...(density !== undefined\n ? { \"data-density\": canonicalDensity(density) }\n : {})}\n >\n <DensityContextBoundary density={density}>\n {children}\n </DensityContextBoundary>\n </div>\n </DataTableContext.Provider>\n )\n}\n\nexport const DataTable = React.forwardRef(DataTableInner) as <TData>(\n props: DataTableProps<TData> & { ref?: React.Ref<HTMLDivElement> }\n) => React.ReactElement | null\n"],"names":["wrapSortableHeaders","columns","enableSorting","column","headerTitle","col","jsx","DataTableColumnHeader","_a","useStyles","makeZenithStyles","DataTableInner","data","children","getRowId","enableRowSelection","manualSorting","enableFiltering","manualFiltering","enableGlobalFilter","pagination","controlledSorting","onSortingChange","defaultSorting","controlledRowSelection","onRowSelectionChange","defaultRowSelection","controlledColumnFilters","onColumnFiltersChange","controlledColumnVisibility","onColumnVisibilityChange","controlledGlobalFilter","onGlobalFilterChange","onRowClick","clickableRowClassName","selectedRowClassName","cellOverflow","disableColumnResizing","resizeHandleVisibility","columnResizeMode","controlledColumnSizing","onColumnSizingChange","defaultColumnSizing","controlledColumnPinning","onColumnPinningChange","defaultColumnPinning","autoPinSelection","showHeaderBorder","showRowBorders","fitHeaderWidth","controlledColumnOrder","onColumnOrderChange","defaultColumnOrder","enableColumnOrdering","virtualization","density","className","ref","styles","internalSorting","setInternalSorting","useState","internalRowSelection","setInternalRowSelection","internalColumnFilters","setInternalColumnFilters","internalColumnVisibility","setInternalColumnVisibility","internalGlobalFilter","setInternalGlobalFilter","internalColumnSizing","setInternalColumnSizing","internalColumnPinning","setInternalColumnPinning","internalColumnOrder","setInternalColumnOrder","initialPagination","internalPagination","setInternalPagination","isInternalPaginationChange","useRef","useEffect","pageIndex","prev","pageSize","enableColumnResizing","sorting","rowSelection","columnFilters","columnVisibility","globalFilter","columnSizing","columnPinning","columnOrder","effectiveColumnPinning","useMemo","leftPinned","selectionColumn","table","Checkbox","value","row","processedColumns","allColumns","usePagination","useVirtualization","isServerSidePagination","handlePaginationChange","useCallback","updater","useReactTable","getCoreRowModel","getSortedRowModel","newSorting","newSelection","getFilteredRowModel","newFilters","newVisibility","newGlobalFilter","newOrder","newSizing","newPinning","getPaginationRowModel","contextValue","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN","DEFAULT_CONTAINER_HEIGHT","DataTableContext","SLOT_ATTR","mergeClasses","canonicalDensity","DensityContextBoundary","DataTable","React"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { useContext as t } from "react";
2
+ import { DataTableVirtualizerContext as r } from "../data-table-context.js";
3
+ function o() {
4
+ return t(r);
5
+ }
6
+ export {
7
+ o as useDataTableVirtualizer
8
+ };
9
+ //# sourceMappingURL=use-data-table-virtualizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-data-table-virtualizer.js","sources":["../../../../src/components/data-table/hooks/use-data-table-virtualizer.ts"],"sourcesContent":["import { useContext } from \"react\"\nimport { DataTableVirtualizerContext } from \"../data-table-context\"\n\nexport function useDataTableVirtualizer() {\n return useContext(DataTableVirtualizerContext)\n}\n"],"names":["useDataTableVirtualizer","useContext","DataTableVirtualizerContext"],"mappings":";;AAGO,SAASA,IAA0B;AACxC,SAAOC,EAAWC,CAA2B;AAC/C;"}