@epilot/zenith-react 0.2.0-next.0 → 0.2.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/components/accordion/accordion.js +57 -48
  2. package/dist/components/accordion/accordion.js.map +1 -1
  3. package/dist/components/alert-dialog/alert-dialog.js +120 -92
  4. package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
  5. package/dist/components/avatar/avatar-group.js +38 -35
  6. package/dist/components/avatar/avatar-group.js.map +1 -1
  7. package/dist/components/avatar/avatar.js +78 -71
  8. package/dist/components/avatar/avatar.js.map +1 -1
  9. package/dist/components/badge/badge.js +60 -55
  10. package/dist/components/badge/badge.js.map +1 -1
  11. package/dist/components/breadcrumb/breadcrumb.js +99 -54
  12. package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
  13. package/dist/components/button/button.js +87 -77
  14. package/dist/components/button/button.js.map +1 -1
  15. package/dist/components/button-group/button-group.js +36 -32
  16. package/dist/components/button-group/button-group.js.map +1 -1
  17. package/dist/components/callout/callout.js +105 -98
  18. package/dist/components/callout/callout.js.map +1 -1
  19. package/dist/components/card/card.js +62 -52
  20. package/dist/components/card/card.js.map +1 -1
  21. package/dist/components/checkbox/checkbox.js +22 -19
  22. package/dist/components/checkbox/checkbox.js.map +1 -1
  23. package/dist/components/code-block/code-block.js +135 -123
  24. package/dist/components/code-block/code-block.js.map +1 -1
  25. package/dist/components/code-editor/code-editor.js +276 -260
  26. package/dist/components/code-editor/code-editor.js.map +1 -1
  27. package/dist/components/collapsible-sidebar/collapsible-sidebar.js +62 -56
  28. package/dist/components/collapsible-sidebar/collapsible-sidebar.js.map +1 -1
  29. package/dist/components/command/command.js +116 -105
  30. package/dist/components/command/command.js.map +1 -1
  31. package/dist/components/data-table/data-table-body.js +38 -34
  32. package/dist/components/data-table/data-table-body.js.map +1 -1
  33. package/dist/components/data-table/data-table-column-header.js +30 -26
  34. package/dist/components/data-table/data-table-column-header.js.map +1 -1
  35. package/dist/components/data-table/data-table-column-order.js +79 -73
  36. package/dist/components/data-table/data-table-column-order.js.map +1 -1
  37. package/dist/components/data-table/data-table-column-visibility.js +25 -22
  38. package/dist/components/data-table/data-table-column-visibility.js.map +1 -1
  39. package/dist/components/data-table/data-table-content.js +47 -44
  40. package/dist/components/data-table/data-table-content.js.map +1 -1
  41. package/dist/components/data-table/data-table-error.js +36 -32
  42. package/dist/components/data-table/data-table-error.js.map +1 -1
  43. package/dist/components/data-table/data-table-footer.js +10 -8
  44. package/dist/components/data-table/data-table-footer.js.map +1 -1
  45. package/dist/components/data-table/data-table-header-draggable.js +40 -36
  46. package/dist/components/data-table/data-table-header-draggable.js.map +1 -1
  47. package/dist/components/data-table/data-table-header.js +113 -99
  48. package/dist/components/data-table/data-table-header.js.map +1 -1
  49. package/dist/components/data-table/data-table-loading.js +21 -18
  50. package/dist/components/data-table/data-table-loading.js.map +1 -1
  51. package/dist/components/data-table/data-table-resize-handle.js +13 -11
  52. package/dist/components/data-table/data-table-resize-handle.js.map +1 -1
  53. package/dist/components/data-table/data-table-row.js +71 -59
  54. package/dist/components/data-table/data-table-row.js.map +1 -1
  55. package/dist/components/data-table/data-table-toolbar.js +9 -7
  56. package/dist/components/data-table/data-table-toolbar.js.map +1 -1
  57. package/dist/components/data-table/data-table.js +48 -46
  58. package/dist/components/data-table/data-table.js.map +1 -1
  59. package/dist/components/date-range-picker/date-range-picker.js +173 -164
  60. package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
  61. package/dist/components/date-range-picker/range-calendar.js +36 -34
  62. package/dist/components/date-range-picker/range-calendar.js.map +1 -1
  63. package/dist/components/date-time-picker/calendar.js +290 -272
  64. package/dist/components/date-time-picker/calendar.js.map +1 -1
  65. package/dist/components/date-time-picker/date-time-picker-input.js +22 -20
  66. package/dist/components/date-time-picker/date-time-picker-input.js.map +1 -1
  67. package/dist/components/date-time-picker/date-time-picker-panel.js +126 -120
  68. package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
  69. package/dist/components/date-time-picker/date-time-picker.js +42 -40
  70. package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
  71. package/dist/components/date-time-picker/time-picker.js +95 -87
  72. package/dist/components/date-time-picker/time-picker.js.map +1 -1
  73. package/dist/components/dialog/dialog.js +115 -95
  74. package/dist/components/dialog/dialog.js.map +1 -1
  75. package/dist/components/drawer/drawer.js +144 -109
  76. package/dist/components/drawer/drawer.js.map +1 -1
  77. package/dist/components/dropdown-menu/dropdown-menu.js +141 -112
  78. package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
  79. package/dist/components/field/field-combobox.js +196 -176
  80. package/dist/components/field/field-combobox.js.map +1 -1
  81. package/dist/components/field/field.js +137 -126
  82. package/dist/components/field/field.js.map +1 -1
  83. package/dist/components/list/list.js +237 -219
  84. package/dist/components/list/list.js.map +1 -1
  85. package/dist/components/option-card/option-card.js +129 -116
  86. package/dist/components/option-card/option-card.js.map +1 -1
  87. package/dist/components/pill/pill.js +55 -51
  88. package/dist/components/pill/pill.js.map +1 -1
  89. package/dist/components/popover/popover.js +53 -36
  90. package/dist/components/popover/popover.js.map +1 -1
  91. package/dist/components/radio/radio.js +38 -34
  92. package/dist/components/radio/radio.js.map +1 -1
  93. package/dist/components/scroll-area/scroll-area.js +38 -35
  94. package/dist/components/scroll-area/scroll-area.js.map +1 -1
  95. package/dist/components/scroll-overflow/scroll-overflow.js +166 -151
  96. package/dist/components/scroll-overflow/scroll-overflow.js.map +1 -1
  97. package/dist/components/segmented-control/segmented-control.js +93 -85
  98. package/dist/components/segmented-control/segmented-control.js.map +1 -1
  99. package/dist/components/select/select.js +149 -128
  100. package/dist/components/select/select.js.map +1 -1
  101. package/dist/components/separator/separator.js +19 -16
  102. package/dist/components/separator/separator.js.map +1 -1
  103. package/dist/components/skeleton/skeleton.js +34 -30
  104. package/dist/components/skeleton/skeleton.js.map +1 -1
  105. package/dist/components/spinner/spinner.js +22 -17
  106. package/dist/components/spinner/spinner.js.map +1 -1
  107. package/dist/components/surface/surface.js +25 -22
  108. package/dist/components/surface/surface.js.map +1 -1
  109. package/dist/components/switch/switch.js +66 -57
  110. package/dist/components/switch/switch.js.map +1 -1
  111. package/dist/components/table/table-pagination.js +139 -129
  112. package/dist/components/table/table-pagination.js.map +1 -1
  113. package/dist/components/table/table.js +104 -90
  114. package/dist/components/table/table.js.map +1 -1
  115. package/dist/components/tabs/tabs.js +206 -128
  116. package/dist/components/tabs/tabs.js.map +1 -1
  117. package/dist/components/toast/toast.js +112 -100
  118. package/dist/components/toast/toast.js.map +1 -1
  119. package/dist/components/toggle/toggle.js +32 -30
  120. package/dist/components/toggle/toggle.js.map +1 -1
  121. package/dist/components/tooltip/tooltip.js +59 -46
  122. package/dist/components/tooltip/tooltip.js.map +1 -1
  123. package/dist/index.d.ts +12 -0
  124. package/dist/lib/clear-button.js +18 -17
  125. package/dist/lib/clear-button.js.map +1 -1
  126. package/dist/styles/host-reset.js +47 -0
  127. package/dist/styles/host-reset.js.map +1 -0
  128. package/dist/styles/overlay-layer.js +5 -0
  129. package/dist/styles/overlay-layer.js.map +1 -0
  130. package/dist/tokens.json +1 -1
  131. package/package.json +8 -6
  132. package/scripts/migration-diagnostics.mjs +42 -7
  133. package/scripts/migration-sweep.mjs +9 -1
@@ -1,34 +1,38 @@
1
- import { jsx as t, jsxs as j } from "react/jsx-runtime";
2
- import * as k from "react";
1
+ import { jsx as t, jsxs as k } from "react/jsx-runtime";
2
+ import * as A from "react";
3
3
  import { SLOT_ATTR as l, shorthands as h } from "@epilot/zenith-runtime/v1";
4
- import { makeZenithStyles as A } from "../../styles/make-styles.js";
5
- import { grayA11 as E } from "../../tokens/index.js";
6
- import { TableBody as n, TableRow as R, TableCell as S } from "../table/table.js";
7
- import { DataTableRow as v } from "./data-table-row.js";
8
- import { DataTableLoading as H } from "./data-table-loading.js";
4
+ import { makeZenithStyles as E } from "../../styles/make-styles.js";
5
+ import { boxModel as u } from "../../styles/host-reset.js";
6
+ import { grayA11 as H } from "../../tokens/index.js";
7
+ import { TableBody as n, TableRow as S, TableCell as x } from "../table/table.js";
8
+ import { DataTableRow as C } from "./data-table-row.js";
9
+ import { DataTableLoading as M } from "./data-table-loading.js";
9
10
  import { useDataTable as O } from "./hooks/use-data-table.js";
10
11
  import { useDataTableVirtualizer as P } from "./hooks/use-data-table-virtualizer.js";
11
12
  import { useDataTableContent as _ } from "./hooks/use-data-table-content.js";
12
- const z = A({
13
+ const z = E({
13
14
  stateCell: {
15
+ ...u,
14
16
  height: "12rem",
15
- color: E
17
+ color: H
16
18
  },
17
19
  paddingRow: {
20
+ ...u,
18
21
  ...h.borderWidth(0),
19
22
  "&:hover": {
20
23
  backgroundColor: "transparent"
21
24
  }
22
25
  },
23
26
  paddingCell: {
27
+ ...u,
24
28
  ...h.padding(0),
25
29
  ...h.borderWidth(0)
26
30
  }
27
31
  });
28
- function C({ height: i, colSpan: a }) {
32
+ function R({ height: i, colSpan: a }) {
29
33
  const e = z();
30
- return /* @__PURE__ */ t(R, { noHover: !0, className: e.paddingRow, children: /* @__PURE__ */ t(
31
- S,
34
+ return /* @__PURE__ */ t(S, { noHover: !0, className: e.paddingRow, children: /* @__PURE__ */ t(
35
+ x,
32
36
  {
33
37
  colSpan: a,
34
38
  className: e.paddingCell,
@@ -36,26 +40,26 @@ function C({ height: i, colSpan: a }) {
36
40
  }
37
41
  ) });
38
42
  }
39
- function u({
43
+ function f({
40
44
  colSpan: i,
41
45
  children: a
42
46
  }) {
43
47
  const e = z();
44
- return /* @__PURE__ */ t(R, { noHover: !0, children: /* @__PURE__ */ t(S, { colSpan: i, align: "center", className: e.stateCell, children: a }) });
48
+ return /* @__PURE__ */ t(S, { noHover: !0, children: /* @__PURE__ */ t(x, { colSpan: i, align: "center", className: e.stateCell, children: a }) });
45
49
  }
46
- const U = k.forwardRef(function({
50
+ const Y = A.forwardRef(function({
47
51
  className: a,
48
52
  emptyState: e,
49
- loadingState: x,
50
- isLoading: V = !1,
51
- errorState: p,
52
- isError: f = !1
53
+ loadingState: V,
54
+ isLoading: W = !1,
55
+ errorState: m,
56
+ isError: g = !1
53
57
  }, o) {
54
- var T, D;
55
- const { table: g } = O(), s = P(), m = _(), W = (m == null ? void 0 : m.spacerWidth) ?? 0, b = g.getRowModel().rows, d = g.getVisibleLeafColumns().length + (W > 0 ? 1 : 0);
56
- if (process.env.NODE_ENV !== "production" && f && !p && console.warn(
58
+ var D, w;
59
+ const { table: T } = O(), s = P(), p = _(), L = (p == null ? void 0 : p.spacerWidth) ?? 0, b = T.getRowModel().rows, d = T.getVisibleLeafColumns().length + (L > 0 ? 1 : 0);
60
+ if (process.env.NODE_ENV !== "production" && g && !m && console.warn(
57
61
  "DataTableBody: isError is true but no errorState was provided. Please provide an errorState prop to display error content."
58
- ), f && p)
62
+ ), g && m)
59
63
  return /* @__PURE__ */ t(
60
64
  n,
61
65
  {
@@ -65,10 +69,10 @@ const U = k.forwardRef(function({
65
69
  "data-fs-element": "DataTable-Body",
66
70
  "data-state": "error",
67
71
  className: a,
68
- children: /* @__PURE__ */ t(u, { colSpan: d, children: p })
72
+ children: /* @__PURE__ */ t(f, { colSpan: d, children: m })
69
73
  }
70
74
  );
71
- if (V)
75
+ if (W)
72
76
  return /* @__PURE__ */ t(
73
77
  n,
74
78
  {
@@ -79,7 +83,7 @@ const U = k.forwardRef(function({
79
83
  "data-state": "loading",
80
84
  className: a,
81
85
  "aria-busy": "true",
82
- children: /* @__PURE__ */ t(u, { colSpan: d, children: x ?? /* @__PURE__ */ t(H, {}) })
86
+ children: /* @__PURE__ */ t(f, { colSpan: d, children: V ?? /* @__PURE__ */ t(M, {}) })
83
87
  }
84
88
  );
85
89
  if (!b.length)
@@ -92,12 +96,12 @@ const U = k.forwardRef(function({
92
96
  "data-fs-element": "DataTable-Body",
93
97
  "data-state": "empty",
94
98
  className: a,
95
- children: /* @__PURE__ */ t(u, { colSpan: d, children: e })
99
+ children: /* @__PURE__ */ t(f, { colSpan: d, children: e })
96
100
  }
97
101
  );
98
102
  if (s != null && s.virtualizer) {
99
- const { virtualizer: r } = s, c = r.getVirtualItems(), L = r.getTotalSize(), w = ((T = c[0]) == null ? void 0 : T.start) ?? 0, B = L - (((D = c[c.length - 1]) == null ? void 0 : D.end) ?? 0);
100
- return /* @__PURE__ */ j(
103
+ const { virtualizer: r } = s, c = r.getVirtualItems(), j = r.getTotalSize(), B = ((D = c[0]) == null ? void 0 : D.start) ?? 0, v = j - (((w = c[c.length - 1]) == null ? void 0 : w.end) ?? 0);
104
+ return /* @__PURE__ */ k(
101
105
  n,
102
106
  {
103
107
  ref: o,
@@ -106,16 +110,16 @@ const U = k.forwardRef(function({
106
110
  "data-fs-element": "DataTable-Body",
107
111
  className: a,
108
112
  children: [
109
- w > 0 && /* @__PURE__ */ t(C, { height: w, colSpan: d }),
113
+ B > 0 && /* @__PURE__ */ t(R, { height: B, colSpan: d }),
110
114
  c.map((y) => /* @__PURE__ */ t(
111
- v,
115
+ C,
112
116
  {
113
117
  row: b[y.index],
114
118
  style: { height: `${y.size}px` }
115
119
  },
116
120
  b[y.index].id
117
121
  )),
118
- B > 0 && /* @__PURE__ */ t(C, { height: B, colSpan: d })
122
+ v > 0 && /* @__PURE__ */ t(R, { height: v, colSpan: d })
119
123
  ]
120
124
  }
121
125
  );
@@ -128,11 +132,11 @@ const U = k.forwardRef(function({
128
132
  [l]: "data-table-body",
129
133
  "data-fs-element": "DataTable-Body",
130
134
  className: a,
131
- children: b.map((r) => /* @__PURE__ */ t(v, { row: r }, r.id))
135
+ children: b.map((r) => /* @__PURE__ */ t(C, { row: r }, r.id))
132
136
  }
133
137
  );
134
138
  });
135
139
  export {
136
- U as DataTableBody
140
+ Y as DataTableBody
137
141
  };
138
142
  //# sourceMappingURL=data-table-body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-body.js","sources":["../../../src/components/data-table/data-table-body.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { ReactNode } from \"react\"\nimport { shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { TableBody, TableRow, TableCell } from \"../table/table\"\nimport {\n useDataTable,\n useDataTableContent,\n useDataTableVirtualizer,\n} from \"./hooks\"\nimport { DataTableRow } from \"./data-table-row\"\nimport { DataTableLoading } from \"./data-table-loading\"\n\nconst useStyles = makeZenithStyles({\n stateCell: {\n height: \"12rem\",\n color: tokens.grayA11,\n },\n paddingRow: {\n ...shorthands.borderWidth(0),\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n paddingCell: {\n ...shorthands.padding(0),\n ...shorthands.borderWidth(0),\n },\n})\n\nexport type DataTableBodyProps = {\n /** Additional class name */\n className?: string\n /** Custom empty state content */\n emptyState?: ReactNode\n /** Loading state content (shown when isLoading is true) */\n loadingState?: ReactNode\n /** Whether the table is in loading state */\n isLoading?: boolean\n /** Error state content (shown when isError is true) */\n errorState?: ReactNode\n /** Whether the table is in error state */\n isError?: boolean\n}\n\n/**\n * Internal component for padding rows in virtualized tables.\n */\nfunction PaddingRow({ height, colSpan }: { height: number; colSpan: number }) {\n const styles = useStyles()\n return (\n <TableRow noHover className={styles.paddingRow}>\n <TableCell\n colSpan={colSpan}\n className={styles.paddingCell}\n style={{ height, padding: 0, border: 0 }}\n />\n </TableRow>\n )\n}\n\n/**\n * Internal component for state display (loading/error/empty).\n */\nfunction DataTableStateDisplay({\n colSpan,\n children,\n}: {\n colSpan: number\n children?: ReactNode\n}) {\n const styles = useStyles()\n\n return (\n <TableRow noHover>\n <TableCell colSpan={colSpan} align=\"center\" className={styles.stateCell}>\n {children}\n </TableCell>\n </TableRow>\n )\n}\n\n/**\n * Renders the table body with rows.\n * Automatically handles virtualization when used within a DataTableContent with virtualization enabled.\n * Must be used within a DataTable component.\n */\nexport const DataTableBody = React.forwardRef<\n HTMLTableSectionElement,\n DataTableBodyProps\n>(function DataTableBody(\n {\n className,\n emptyState,\n loadingState,\n isLoading = false,\n errorState,\n isError = false,\n },\n ref\n) {\n const { table } = useDataTable()\n const virtualizerContext = useDataTableVirtualizer()\n const contentContext = useDataTableContent()\n const spacerWidth = contentContext?.spacerWidth ?? 0\n\n const rows = table.getRowModel().rows\n const visibleColumns = table.getVisibleLeafColumns()\n const colSpan = visibleColumns.length + (spacerWidth > 0 ? 1 : 0)\n\n // Warn if isError is true but no errorState is provided\n if (process.env.NODE_ENV !== \"production\" && isError && !errorState) {\n console.warn(\n \"DataTableBody: isError is true but no errorState was provided. \" +\n \"Please provide an errorState prop to display error content.\"\n )\n }\n\n // Priority: Error > Loading > Empty > Data\n\n // Error state\n if (isError && errorState) {\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n data-state=\"error\"\n className={className}\n >\n <DataTableStateDisplay colSpan={colSpan}>\n {errorState}\n </DataTableStateDisplay>\n </TableBody>\n )\n }\n\n // Loading state\n if (isLoading) {\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n data-state=\"loading\"\n className={className}\n aria-busy=\"true\"\n >\n <DataTableStateDisplay colSpan={colSpan}>\n {loadingState ?? <DataTableLoading />}\n </DataTableStateDisplay>\n </TableBody>\n )\n }\n\n // Empty state\n if (!rows.length) {\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n data-state=\"empty\"\n className={className}\n >\n <DataTableStateDisplay colSpan={colSpan}>\n {emptyState}\n </DataTableStateDisplay>\n </TableBody>\n )\n }\n\n // Virtualized rendering\n if (virtualizerContext?.virtualizer) {\n const { virtualizer } = virtualizerContext\n const virtualRows = virtualizer.getVirtualItems()\n const totalSize = virtualizer.getTotalSize()\n const paddingTop = virtualRows[0]?.start ?? 0\n const paddingBottom =\n totalSize - (virtualRows[virtualRows.length - 1]?.end ?? 0)\n\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n className={className}\n >\n {paddingTop > 0 && <PaddingRow height={paddingTop} colSpan={colSpan} />}\n {virtualRows.map((virtualRow) => (\n <DataTableRow\n key={rows[virtualRow.index].id}\n row={rows[virtualRow.index]}\n style={{ height: `${virtualRow.size}px` }}\n />\n ))}\n {paddingBottom > 0 && (\n <PaddingRow height={paddingBottom} colSpan={colSpan} />\n )}\n </TableBody>\n )\n }\n\n // Standard rendering\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n className={className}\n >\n {rows.map((row) => (\n <DataTableRow key={row.id} row={row} />\n ))}\n </TableBody>\n )\n})\n"],"names":["useStyles","makeZenithStyles","tokens.grayA11","shorthands","PaddingRow","height","colSpan","styles","TableRow","jsx","TableCell","DataTableStateDisplay","children","DataTableBody","React","className","emptyState","loadingState","isLoading","errorState","isError","ref","table","useDataTable","virtualizerContext","useDataTableVirtualizer","contentContext","useDataTableContent","spacerWidth","rows","TableBody","SLOT_ATTR","DataTableLoading","virtualizer","virtualRows","totalSize","paddingTop","_a","paddingBottom","_b","jsxs","virtualRow","DataTableRow","row"],"mappings":"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"}
1
+ {"version":3,"file":"data-table-body.js","sources":["../../../src/components/data-table/data-table-body.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { ReactNode } from \"react\"\nimport { shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { boxModel } from \"../../styles/host-reset\"\nimport * as tokens from \"../../tokens\"\nimport { TableBody, TableRow, TableCell } from \"../table/table\"\nimport {\n useDataTable,\n useDataTableContent,\n useDataTableVirtualizer,\n} from \"./hooks\"\nimport { DataTableRow } from \"./data-table-row\"\nimport { DataTableLoading } from \"./data-table-loading\"\n\nconst useStyles = makeZenithStyles({\n stateCell: {\n ...boxModel,\n height: \"12rem\",\n color: tokens.grayA11,\n },\n paddingRow: {\n ...boxModel,\n ...shorthands.borderWidth(0),\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n paddingCell: {\n ...boxModel,\n ...shorthands.padding(0),\n ...shorthands.borderWidth(0),\n },\n})\n\nexport type DataTableBodyProps = {\n /** Additional class name */\n className?: string\n /** Custom empty state content */\n emptyState?: ReactNode\n /** Loading state content (shown when isLoading is true) */\n loadingState?: ReactNode\n /** Whether the table is in loading state */\n isLoading?: boolean\n /** Error state content (shown when isError is true) */\n errorState?: ReactNode\n /** Whether the table is in error state */\n isError?: boolean\n}\n\n/**\n * Internal component for padding rows in virtualized tables.\n */\nfunction PaddingRow({ height, colSpan }: { height: number; colSpan: number }) {\n const styles = useStyles()\n return (\n <TableRow noHover className={styles.paddingRow}>\n <TableCell\n colSpan={colSpan}\n className={styles.paddingCell}\n style={{ height, padding: 0, border: 0 }}\n />\n </TableRow>\n )\n}\n\n/**\n * Internal component for state display (loading/error/empty).\n */\nfunction DataTableStateDisplay({\n colSpan,\n children,\n}: {\n colSpan: number\n children?: ReactNode\n}) {\n const styles = useStyles()\n\n return (\n <TableRow noHover>\n <TableCell colSpan={colSpan} align=\"center\" className={styles.stateCell}>\n {children}\n </TableCell>\n </TableRow>\n )\n}\n\n/**\n * Renders the table body with rows.\n * Automatically handles virtualization when used within a DataTableContent with virtualization enabled.\n * Must be used within a DataTable component.\n */\nexport const DataTableBody = React.forwardRef<\n HTMLTableSectionElement,\n DataTableBodyProps\n>(function DataTableBody(\n {\n className,\n emptyState,\n loadingState,\n isLoading = false,\n errorState,\n isError = false,\n },\n ref\n) {\n const { table } = useDataTable()\n const virtualizerContext = useDataTableVirtualizer()\n const contentContext = useDataTableContent()\n const spacerWidth = contentContext?.spacerWidth ?? 0\n\n const rows = table.getRowModel().rows\n const visibleColumns = table.getVisibleLeafColumns()\n const colSpan = visibleColumns.length + (spacerWidth > 0 ? 1 : 0)\n\n // Warn if isError is true but no errorState is provided\n if (process.env.NODE_ENV !== \"production\" && isError && !errorState) {\n console.warn(\n \"DataTableBody: isError is true but no errorState was provided. \" +\n \"Please provide an errorState prop to display error content.\"\n )\n }\n\n // Priority: Error > Loading > Empty > Data\n\n // Error state\n if (isError && errorState) {\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n data-state=\"error\"\n className={className}\n >\n <DataTableStateDisplay colSpan={colSpan}>\n {errorState}\n </DataTableStateDisplay>\n </TableBody>\n )\n }\n\n // Loading state\n if (isLoading) {\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n data-state=\"loading\"\n className={className}\n aria-busy=\"true\"\n >\n <DataTableStateDisplay colSpan={colSpan}>\n {loadingState ?? <DataTableLoading />}\n </DataTableStateDisplay>\n </TableBody>\n )\n }\n\n // Empty state\n if (!rows.length) {\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n data-state=\"empty\"\n className={className}\n >\n <DataTableStateDisplay colSpan={colSpan}>\n {emptyState}\n </DataTableStateDisplay>\n </TableBody>\n )\n }\n\n // Virtualized rendering\n if (virtualizerContext?.virtualizer) {\n const { virtualizer } = virtualizerContext\n const virtualRows = virtualizer.getVirtualItems()\n const totalSize = virtualizer.getTotalSize()\n const paddingTop = virtualRows[0]?.start ?? 0\n const paddingBottom =\n totalSize - (virtualRows[virtualRows.length - 1]?.end ?? 0)\n\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n className={className}\n >\n {paddingTop > 0 && <PaddingRow height={paddingTop} colSpan={colSpan} />}\n {virtualRows.map((virtualRow) => (\n <DataTableRow\n key={rows[virtualRow.index].id}\n row={rows[virtualRow.index]}\n style={{ height: `${virtualRow.size}px` }}\n />\n ))}\n {paddingBottom > 0 && (\n <PaddingRow height={paddingBottom} colSpan={colSpan} />\n )}\n </TableBody>\n )\n }\n\n // Standard rendering\n return (\n <TableBody\n ref={ref}\n data-slot=\"data-table-body\"\n {...{ [SLOT_ATTR]: \"data-table-body\" }}\n data-fs-element=\"DataTable-Body\"\n className={className}\n >\n {rows.map((row) => (\n <DataTableRow key={row.id} row={row} />\n ))}\n </TableBody>\n )\n})\n"],"names":["useStyles","makeZenithStyles","boxModel","tokens.grayA11","shorthands","PaddingRow","height","colSpan","styles","TableRow","jsx","TableCell","DataTableStateDisplay","children","DataTableBody","React","className","emptyState","loadingState","isLoading","errorState","isError","ref","table","useDataTable","virtualizerContext","useDataTableVirtualizer","contentContext","useDataTableContent","spacerWidth","rows","TableBody","SLOT_ATTR","DataTableLoading","virtualizer","virtualRows","totalSize","paddingTop","_a","paddingBottom","_b","jsxs","virtualRow","DataTableRow","row"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as o, jsxs as n } from "react/jsx-runtime";
2
- import * as l from "react";
3
- import { mergeClasses as h, SLOT_ATTR as g, shorthands as s } from "@epilot/zenith-runtime/v1";
4
- import { makeZenithStyles as p } from "../../styles/make-styles.js";
5
- import { accent11 as m, accentA8 as u, accentSoft as w, spacingElement1 as c, radiusLg as k } from "../../tokens/index.js";
6
- const f = (e) => /* @__PURE__ */ n(
2
+ import * as h from "react";
3
+ import { mergeClasses as g, SLOT_ATTR as p, shorthands as s } from "@epilot/zenith-runtime/v1";
4
+ import { makeZenithStyles as m } from "../../styles/make-styles.js";
5
+ import { boxModel as a } from "../../styles/host-reset.js";
6
+ import { accent11 as u, accentA8 as w, accentSoft as k, spacingElement1 as l, radiusLg as f } from "../../tokens/index.js";
7
+ const v = (e) => /* @__PURE__ */ n(
7
8
  "svg",
8
9
  {
9
10
  xmlns: "http://www.w3.org/2000/svg",
@@ -21,7 +22,7 @@ const f = (e) => /* @__PURE__ */ n(
21
22
  /* @__PURE__ */ o("path", { d: "M12 19V5" })
22
23
  ]
23
24
  }
24
- ), v = (e) => /* @__PURE__ */ n(
25
+ ), S = (e) => /* @__PURE__ */ n(
25
26
  "svg",
26
27
  {
27
28
  xmlns: "http://www.w3.org/2000/svg",
@@ -39,7 +40,7 @@ const f = (e) => /* @__PURE__ */ n(
39
40
  /* @__PURE__ */ o("path", { d: "m19 12-7 7-7-7" })
40
41
  ]
41
42
  }
42
- ), S = (e) => /* @__PURE__ */ n(
43
+ ), b = (e) => /* @__PURE__ */ n(
43
44
  "svg",
44
45
  {
45
46
  xmlns: "http://www.w3.org/2000/svg",
@@ -57,70 +58,73 @@ const f = (e) => /* @__PURE__ */ n(
57
58
  /* @__PURE__ */ o("path", { d: "m7 9 5-5 5 5" })
58
59
  ]
59
60
  }
60
- ), b = p({
61
+ ), x = m({
61
62
  button: {
63
+ ...a,
62
64
  display: "inline-flex",
63
65
  alignItems: "center",
64
- gap: c,
66
+ gap: l,
65
67
  ...s.paddingBlock("0.125rem"),
66
- ...s.paddingInline(c),
67
- ...s.borderRadius(k),
68
+ ...s.paddingInline(l),
69
+ ...s.borderRadius(f),
68
70
  cursor: "pointer",
69
71
  transitionProperty: "color, background-color, border-color",
70
72
  transitionDuration: "150ms",
71
73
  ":hover": {
72
- backgroundColor: w
74
+ backgroundColor: k
73
75
  },
74
76
  ":focus-visible": {
75
77
  outlineWidth: "2px",
76
78
  outlineStyle: "solid",
77
79
  outlineOffset: "2px",
78
- outlineColor: u
80
+ outlineColor: w
79
81
  }
80
82
  },
81
83
  iconActive: {
84
+ ...a,
82
85
  width: "1rem",
83
86
  height: "1rem",
84
- color: m,
87
+ color: u,
85
88
  flexShrink: 0
86
89
  },
87
90
  iconUnsorted: {
91
+ ...a,
88
92
  width: "1rem",
89
93
  height: "1rem",
90
94
  opacity: 0.4,
91
95
  flexShrink: 0
92
96
  }
93
97
  });
94
- function x({ column: e, title: t, className: a }, d) {
95
- const r = b();
98
+ function C({ column: e, title: t, className: d }, c) {
99
+ const r = x();
96
100
  return e.getCanSort() ? /* @__PURE__ */ n(
97
101
  "span",
98
102
  {
99
- ref: d,
103
+ ref: c,
100
104
  role: "button",
101
105
  tabIndex: 0,
102
106
  "data-slot": "data-table-column-header",
103
- [g]: "data-table-column-header",
107
+ [p]: "data-table-column-header",
104
108
  "data-fs-element": "DataTable-SortButton",
105
109
  onClick: () => e.toggleSorting(),
106
110
  onKeyDown: (i) => {
107
111
  (i.key === "Enter" || i.key === " ") && (i.preventDefault(), e.toggleSorting());
108
112
  },
109
113
  "aria-label": e.getIsSorted() === "asc" ? `${t}, sorted ascending. Click to sort descending.` : e.getIsSorted() === "desc" ? `${t}, sorted descending. Click to remove sorting.` : `${t}. Click to sort ascending.`,
110
- className: h(r.button, a),
114
+ className: g(r.button, d),
111
115
  children: [
112
116
  t,
113
- e.getIsSorted() === "asc" && /* @__PURE__ */ o(f, { className: r.iconActive }),
114
- e.getIsSorted() === "desc" && /* @__PURE__ */ o(v, { className: r.iconActive }),
115
- !e.getIsSorted() && /* @__PURE__ */ o(S, { className: r.iconUnsorted })
117
+ e.getIsSorted() === "asc" && /* @__PURE__ */ o(v, { className: r.iconActive }),
118
+ e.getIsSorted() === "desc" && /* @__PURE__ */ o(S, { className: r.iconActive }),
119
+ !e.getIsSorted() && /* @__PURE__ */ o(b, { className: r.iconUnsorted })
116
120
  ]
117
121
  }
118
- ) : /* @__PURE__ */ o("span", { ref: d, className: a, children: t });
122
+ ) : /* @__PURE__ */ o("span", { ref: c, className: d, children: t });
119
123
  }
120
- const L = l.forwardRef(
121
- x
124
+ const T = h.forwardRef(
125
+ C
122
126
  );
123
127
  export {
124
- L as DataTableColumnHeader
128
+ T as DataTableColumnHeader
125
129
  };
126
130
  //# sourceMappingURL=data-table-column-header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-column-header.js","sources":["../../../src/components/data-table/data-table-column-header.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { SVGProps } from \"react\"\nimport type { Column } from \"@tanstack/react-table\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\n\n// Sort icons\nconst IconArrowUp = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n)\n\nconst IconArrowDown = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M12 5v14\" />\n <path d=\"m19 12-7 7-7-7\" />\n </svg>\n)\n\nconst IconArrowsSort = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n button: {\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: tokens.spacingElement1,\n ...shorthands.paddingBlock(\"0.125rem\"),\n ...shorthands.paddingInline(tokens.spacingElement1),\n ...shorthands.borderRadius(tokens.radiusLg),\n cursor: \"pointer\",\n transitionProperty: \"color, background-color, border-color\",\n transitionDuration: \"150ms\",\n \":hover\": {\n backgroundColor: tokens.accentSoft,\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n },\n iconActive: {\n width: \"1rem\",\n height: \"1rem\",\n color: tokens.accent11,\n flexShrink: 0,\n },\n iconUnsorted: {\n width: \"1rem\",\n height: \"1rem\",\n opacity: 0.4,\n flexShrink: 0,\n },\n})\n\nexport type DataTableColumnHeaderProps<TData = unknown, TValue = unknown> = {\n /** The column instance from Tanstack Table */\n column: Column<TData, TValue>\n /** The header title to display */\n title: string\n /** Additional class name */\n className?: string\n}\n\nfunction DataTableColumnHeaderInner<TData, TValue>(\n { column, title, className }: DataTableColumnHeaderProps<TData, TValue>,\n ref: React.ForwardedRef<HTMLSpanElement>\n) {\n const styles = useStyles()\n\n if (!column.getCanSort()) {\n return (\n <span ref={ref} className={className}>\n {title}\n </span>\n )\n }\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n data-slot=\"data-table-column-header\"\n {...{ [SLOT_ATTR]: \"data-table-column-header\" }}\n data-fs-element=\"DataTable-SortButton\"\n onClick={() => column.toggleSorting()}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n column.toggleSorting()\n }\n }}\n aria-label={\n column.getIsSorted() === \"asc\"\n ? `${title}, sorted ascending. Click to sort descending.`\n : column.getIsSorted() === \"desc\"\n ? `${title}, sorted descending. Click to remove sorting.`\n : `${title}. Click to sort ascending.`\n }\n className={mergeClasses(styles.button, className)}\n >\n {title}\n {column.getIsSorted() === \"asc\" && (\n <IconArrowUp className={styles.iconActive} />\n )}\n {column.getIsSorted() === \"desc\" && (\n <IconArrowDown className={styles.iconActive} />\n )}\n {!column.getIsSorted() && (\n <IconArrowsSort className={styles.iconUnsorted} />\n )}\n </span>\n )\n}\n\nexport const DataTableColumnHeader = React.forwardRef(\n DataTableColumnHeaderInner\n) as <TData = unknown, TValue = unknown>(\n props: DataTableColumnHeaderProps<TData, TValue> & {\n ref?: React.Ref<HTMLSpanElement>\n }\n) => React.ReactElement | null\n"],"names":["IconArrowUp","props","jsxs","jsx","IconArrowDown","IconArrowsSort","useStyles","makeZenithStyles","tokens.spacingElement1","shorthands","tokens.radiusLg","tokens.accentSoft","tokens.accentA8","tokens.accent11","DataTableColumnHeaderInner","column","title","className","ref","styles","SLOT_ATTR","e","mergeClasses","DataTableColumnHeader","React"],"mappings":"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"}
1
+ {"version":3,"file":"data-table-column-header.js","sources":["../../../src/components/data-table/data-table-column-header.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { SVGProps } from \"react\"\nimport type { Column } from \"@tanstack/react-table\"\nimport { mergeClasses, shorthands } from \"@epilot/zenith-runtime/v1\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeZenithStyles } from \"../../styles/make-styles\"\nimport { boxModel } from \"../../styles/host-reset\"\nimport * as tokens from \"../../tokens\"\n\n// Sort icons\nconst IconArrowUp = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </svg>\n)\n\nconst IconArrowDown = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M12 5v14\" />\n <path d=\"m19 12-7 7-7-7\" />\n </svg>\n)\n\nconst IconArrowsSort = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n)\n\nconst useStyles = makeZenithStyles({\n button: {\n ...boxModel,\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: tokens.spacingElement1,\n ...shorthands.paddingBlock(\"0.125rem\"),\n ...shorthands.paddingInline(tokens.spacingElement1),\n ...shorthands.borderRadius(tokens.radiusLg),\n cursor: \"pointer\",\n transitionProperty: \"color, background-color, border-color\",\n transitionDuration: \"150ms\",\n \":hover\": {\n backgroundColor: tokens.accentSoft,\n },\n \":focus-visible\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineOffset: \"2px\",\n outlineColor: tokens.accentA8,\n },\n },\n iconActive: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n color: tokens.accent11,\n flexShrink: 0,\n },\n iconUnsorted: {\n ...boxModel,\n width: \"1rem\",\n height: \"1rem\",\n opacity: 0.4,\n flexShrink: 0,\n },\n})\n\nexport type DataTableColumnHeaderProps<TData = unknown, TValue = unknown> = {\n /** The column instance from Tanstack Table */\n column: Column<TData, TValue>\n /** The header title to display */\n title: string\n /** Additional class name */\n className?: string\n}\n\nfunction DataTableColumnHeaderInner<TData, TValue>(\n { column, title, className }: DataTableColumnHeaderProps<TData, TValue>,\n ref: React.ForwardedRef<HTMLSpanElement>\n) {\n const styles = useStyles()\n\n if (!column.getCanSort()) {\n return (\n <span ref={ref} className={className}>\n {title}\n </span>\n )\n }\n\n return (\n <span\n ref={ref}\n role=\"button\"\n tabIndex={0}\n data-slot=\"data-table-column-header\"\n {...{ [SLOT_ATTR]: \"data-table-column-header\" }}\n data-fs-element=\"DataTable-SortButton\"\n onClick={() => column.toggleSorting()}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n column.toggleSorting()\n }\n }}\n aria-label={\n column.getIsSorted() === \"asc\"\n ? `${title}, sorted ascending. Click to sort descending.`\n : column.getIsSorted() === \"desc\"\n ? `${title}, sorted descending. Click to remove sorting.`\n : `${title}. Click to sort ascending.`\n }\n className={mergeClasses(styles.button, className)}\n >\n {title}\n {column.getIsSorted() === \"asc\" && (\n <IconArrowUp className={styles.iconActive} />\n )}\n {column.getIsSorted() === \"desc\" && (\n <IconArrowDown className={styles.iconActive} />\n )}\n {!column.getIsSorted() && (\n <IconArrowsSort className={styles.iconUnsorted} />\n )}\n </span>\n )\n}\n\nexport const DataTableColumnHeader = React.forwardRef(\n DataTableColumnHeaderInner\n) as <TData = unknown, TValue = unknown>(\n props: DataTableColumnHeaderProps<TData, TValue> & {\n ref?: React.Ref<HTMLSpanElement>\n }\n) => React.ReactElement | null\n"],"names":["IconArrowUp","props","jsxs","jsx","IconArrowDown","IconArrowsSort","useStyles","makeZenithStyles","boxModel","tokens.spacingElement1","shorthands","tokens.radiusLg","tokens.accentSoft","tokens.accentA8","tokens.accent11","DataTableColumnHeaderInner","column","title","className","ref","styles","SLOT_ATTR","e","mergeClasses","DataTableColumnHeader","React"],"mappings":"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"}