@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.
- package/dist/components/accordion/accordion.js +57 -48
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +120 -92
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/avatar/avatar-group.js +38 -35
- package/dist/components/avatar/avatar-group.js.map +1 -1
- package/dist/components/avatar/avatar.js +78 -71
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.js +60 -55
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +99 -54
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button.js +87 -77
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button-group/button-group.js +36 -32
- package/dist/components/button-group/button-group.js.map +1 -1
- package/dist/components/callout/callout.js +105 -98
- package/dist/components/callout/callout.js.map +1 -1
- package/dist/components/card/card.js +62 -52
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +22 -19
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/code-block/code-block.js +135 -123
- package/dist/components/code-block/code-block.js.map +1 -1
- package/dist/components/code-editor/code-editor.js +276 -260
- package/dist/components/code-editor/code-editor.js.map +1 -1
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js +62 -56
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js.map +1 -1
- package/dist/components/command/command.js +116 -105
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table-body.js +38 -34
- package/dist/components/data-table/data-table-body.js.map +1 -1
- package/dist/components/data-table/data-table-column-header.js +30 -26
- package/dist/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/data-table/data-table-column-order.js +79 -73
- package/dist/components/data-table/data-table-column-order.js.map +1 -1
- package/dist/components/data-table/data-table-column-visibility.js +25 -22
- package/dist/components/data-table/data-table-column-visibility.js.map +1 -1
- package/dist/components/data-table/data-table-content.js +47 -44
- package/dist/components/data-table/data-table-content.js.map +1 -1
- package/dist/components/data-table/data-table-error.js +36 -32
- package/dist/components/data-table/data-table-error.js.map +1 -1
- package/dist/components/data-table/data-table-footer.js +10 -8
- package/dist/components/data-table/data-table-footer.js.map +1 -1
- package/dist/components/data-table/data-table-header-draggable.js +40 -36
- package/dist/components/data-table/data-table-header-draggable.js.map +1 -1
- package/dist/components/data-table/data-table-header.js +113 -99
- package/dist/components/data-table/data-table-header.js.map +1 -1
- package/dist/components/data-table/data-table-loading.js +21 -18
- package/dist/components/data-table/data-table-loading.js.map +1 -1
- package/dist/components/data-table/data-table-resize-handle.js +13 -11
- package/dist/components/data-table/data-table-resize-handle.js.map +1 -1
- package/dist/components/data-table/data-table-row.js +71 -59
- package/dist/components/data-table/data-table-row.js.map +1 -1
- package/dist/components/data-table/data-table-toolbar.js +9 -7
- package/dist/components/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/data-table/data-table.js +48 -46
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +173 -164
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/range-calendar.js +36 -34
- package/dist/components/date-range-picker/range-calendar.js.map +1 -1
- package/dist/components/date-time-picker/calendar.js +290 -272
- package/dist/components/date-time-picker/calendar.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-input.js +22 -20
- package/dist/components/date-time-picker/date-time-picker-input.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-panel.js +126 -120
- package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker.js +42 -40
- package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +95 -87
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/dialog/dialog.js +115 -95
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +144 -109
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +141 -112
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +196 -176
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field.js +137 -126
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/list/list.js +237 -219
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/option-card/option-card.js +129 -116
- package/dist/components/option-card/option-card.js.map +1 -1
- package/dist/components/pill/pill.js +55 -51
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/popover/popover.js +53 -36
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radio/radio.js +38 -34
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/scroll-area/scroll-area.js +38 -35
- package/dist/components/scroll-area/scroll-area.js.map +1 -1
- package/dist/components/scroll-overflow/scroll-overflow.js +166 -151
- package/dist/components/scroll-overflow/scroll-overflow.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +93 -85
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +149 -128
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/separator/separator.js +19 -16
- package/dist/components/separator/separator.js.map +1 -1
- package/dist/components/skeleton/skeleton.js +34 -30
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/spinner/spinner.js +22 -17
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/surface/surface.js +25 -22
- package/dist/components/surface/surface.js.map +1 -1
- package/dist/components/switch/switch.js +66 -57
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +139 -129
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +104 -90
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/tabs.js +206 -128
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/toast/toast.js +112 -100
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle/toggle.js +32 -30
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +59 -46
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/index.d.ts +12 -0
- package/dist/lib/clear-button.js +18 -17
- package/dist/lib/clear-button.js.map +1 -1
- package/dist/styles/host-reset.js +47 -0
- package/dist/styles/host-reset.js.map +1 -0
- package/dist/styles/overlay-layer.js +5 -0
- package/dist/styles/overlay-layer.js.map +1 -0
- package/dist/tokens.json +1 -1
- package/package.json +8 -6
- package/scripts/migration-diagnostics.mjs +42 -7
- package/scripts/migration-sweep.mjs +9 -1
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import * as
|
|
3
|
-
import { flexRender as
|
|
4
|
-
import { mergeClasses as
|
|
5
|
-
import { makeZenithStyles as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
|
|
1
|
+
import { jsxs as A, jsx as p } from "react/jsx-runtime";
|
|
2
|
+
import * as B from "react";
|
|
3
|
+
import { flexRender as N } from "../../vendor/.bun/@tanstack_react-table@8.21.3_6f4b9a1cfb20c0ae/vendor/@tanstack/react-table/build/lib/index.js";
|
|
4
|
+
import { mergeClasses as w, SLOT_ATTR as u, shorthands as g } from "@epilot/zenith-runtime/v1";
|
|
5
|
+
import { makeZenithStyles as $ } from "../../styles/make-styles.js";
|
|
6
|
+
import { boxModel as h } from "../../styles/host-reset.js";
|
|
7
|
+
import { grayA6 as k, accentA3 as x } from "../../tokens/index.js";
|
|
8
|
+
import { TableRow as z, TableCell as C } from "../table/table.js";
|
|
9
|
+
import { getPinnedColumnOffset as j, isLastLeftPinnedColumn as F, isFirstRightPinnedColumn as K } from "./data-table-pinning-utils.js";
|
|
10
|
+
import { useDataTable as V } from "./hooks/use-data-table.js";
|
|
11
|
+
import { useDataTableContent as _ } from "./hooks/use-data-table-content.js";
|
|
12
|
+
function Z(t, a) {
|
|
12
13
|
const n = t.column.columnDef.meta;
|
|
13
14
|
return (n == null ? void 0 : n.cellOverflow) ?? a;
|
|
14
15
|
}
|
|
15
|
-
function
|
|
16
|
+
function q(t) {
|
|
16
17
|
const a = t.column.columnDef.meta;
|
|
17
18
|
return a == null ? void 0 : a.align;
|
|
18
19
|
}
|
|
19
|
-
const
|
|
20
|
+
const R = [
|
|
20
21
|
"button",
|
|
21
22
|
"a",
|
|
22
23
|
"input",
|
|
@@ -35,32 +36,43 @@ const C = [
|
|
|
35
36
|
'[role="switch"]',
|
|
36
37
|
'[role="tab"]',
|
|
37
38
|
"[data-radix-collection-item]",
|
|
38
|
-
`[${
|
|
39
|
-
],
|
|
39
|
+
`[${u}="checkbox"]`
|
|
40
|
+
], G = $({
|
|
40
41
|
rowClickable: {
|
|
41
42
|
cursor: "pointer",
|
|
42
43
|
":hover": {
|
|
43
|
-
backgroundColor:
|
|
44
|
+
backgroundColor: x
|
|
44
45
|
}
|
|
45
46
|
},
|
|
46
47
|
rowSelected: {
|
|
47
|
-
backgroundColor:
|
|
48
|
+
backgroundColor: x
|
|
48
49
|
},
|
|
50
|
+
// The rule is painted on the cells: WebKit draws no box-shadow on a <tr>,
|
|
51
|
+
// and row borders don't paint under DataTableContent's
|
|
52
|
+
// `border-collapse: separate`. A background image also stays clear of the
|
|
53
|
+
// pinned cells' own box-shadow and adds no height.
|
|
49
54
|
rowBorder: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
"& > td": {
|
|
56
|
+
backgroundImage: `linear-gradient(${k}, ${k})`,
|
|
57
|
+
backgroundSize: "100% 1px",
|
|
58
|
+
backgroundPosition: "bottom",
|
|
59
|
+
backgroundRepeat: "no-repeat"
|
|
60
|
+
},
|
|
61
|
+
"&:last-child > td": {
|
|
62
|
+
backgroundImage: "none"
|
|
53
63
|
}
|
|
54
64
|
},
|
|
55
65
|
cellTruncate: {
|
|
66
|
+
...h,
|
|
56
67
|
maxWidth: 0,
|
|
57
|
-
...
|
|
68
|
+
...g.overflow("hidden"),
|
|
58
69
|
textOverflow: "ellipsis",
|
|
59
70
|
whiteSpace: "nowrap"
|
|
60
71
|
},
|
|
61
72
|
cellWrap: {
|
|
73
|
+
...h,
|
|
62
74
|
maxWidth: 0,
|
|
63
|
-
...
|
|
75
|
+
...g.overflow("hidden"),
|
|
64
76
|
overflowWrap: "break-word",
|
|
65
77
|
wordBreak: "break-word"
|
|
66
78
|
},
|
|
@@ -71,91 +83,91 @@ const C = [
|
|
|
71
83
|
boxShadow: "-2px 0 5px -2px rgba(0,0,0,0.1)"
|
|
72
84
|
}
|
|
73
85
|
});
|
|
74
|
-
function
|
|
75
|
-
const r =
|
|
86
|
+
function H({ row: t, style: a, className: n }, v) {
|
|
87
|
+
const r = G(), {
|
|
76
88
|
table: c,
|
|
77
89
|
onRowClick: i,
|
|
78
|
-
clickableRowClassName:
|
|
79
|
-
selectedRowClassName:
|
|
80
|
-
cellOverflow:
|
|
81
|
-
showRowBorders:
|
|
82
|
-
disableColumnResizing:
|
|
83
|
-
} =
|
|
90
|
+
clickableRowClassName: T,
|
|
91
|
+
selectedRowClassName: S,
|
|
92
|
+
cellOverflow: I = "truncate",
|
|
93
|
+
showRowBorders: D,
|
|
94
|
+
disableColumnResizing: y
|
|
95
|
+
} = V(), d = _(), f = (d == null ? void 0 : d.spacerWidth) ?? 0, E = !y, s = !!i, O = (e) => {
|
|
84
96
|
if (!i) return;
|
|
85
97
|
const l = e.target;
|
|
86
|
-
|
|
98
|
+
R.some(
|
|
87
99
|
(o) => l.closest(o)
|
|
88
100
|
) || i(t, e);
|
|
89
|
-
},
|
|
101
|
+
}, L = (e) => {
|
|
90
102
|
if (i && (e.key === "Enter" || e.key === " ")) {
|
|
91
103
|
const l = e.target;
|
|
92
|
-
if (
|
|
104
|
+
if (R.some(
|
|
93
105
|
(o) => l.closest(o)
|
|
94
106
|
))
|
|
95
107
|
return;
|
|
96
108
|
e.preventDefault(), i(t, e);
|
|
97
109
|
}
|
|
98
110
|
};
|
|
99
|
-
return /* @__PURE__ */
|
|
100
|
-
|
|
111
|
+
return /* @__PURE__ */ A(
|
|
112
|
+
z,
|
|
101
113
|
{
|
|
102
|
-
ref:
|
|
114
|
+
ref: v,
|
|
103
115
|
"data-slot": "data-table-row",
|
|
104
|
-
[
|
|
116
|
+
[u]: "data-table-row",
|
|
105
117
|
"data-fs-element": "DataTable-Row",
|
|
106
118
|
"data-state": t.getIsSelected() ? "selected" : void 0,
|
|
107
119
|
"data-clickable": s ? "true" : void 0,
|
|
108
120
|
style: a,
|
|
109
|
-
className:
|
|
110
|
-
|
|
111
|
-
s && (
|
|
112
|
-
t.getIsSelected() && (
|
|
121
|
+
className: w(
|
|
122
|
+
D !== !1 && r.rowBorder,
|
|
123
|
+
s && (T ?? r.rowClickable),
|
|
124
|
+
t.getIsSelected() && (S ?? r.rowSelected),
|
|
113
125
|
n
|
|
114
126
|
),
|
|
115
|
-
onClick: s ?
|
|
127
|
+
onClick: s ? O : void 0,
|
|
116
128
|
tabIndex: s ? 0 : void 0,
|
|
117
|
-
onKeyDown: s ?
|
|
129
|
+
onKeyDown: s ? L : void 0,
|
|
118
130
|
children: [
|
|
119
131
|
t.getVisibleCells().map((e) => {
|
|
120
|
-
const l =
|
|
121
|
-
return /* @__PURE__ */
|
|
122
|
-
|
|
132
|
+
const l = Z(e, I), m = q(e), o = e.column.getIsPinned(), b = o ? j(e.column, c) : void 0, W = F(e.column, c), P = K(e.column, c);
|
|
133
|
+
return /* @__PURE__ */ p(
|
|
134
|
+
C,
|
|
123
135
|
{
|
|
124
136
|
"data-slot": "data-table-cell",
|
|
125
|
-
[
|
|
137
|
+
[u]: "data-table-cell",
|
|
126
138
|
"data-fs-element": "DataTable-Cell",
|
|
127
139
|
"data-pinned": o || void 0,
|
|
128
140
|
align: m,
|
|
129
141
|
style: {
|
|
130
|
-
width:
|
|
131
|
-
left: o === "left" ? `${
|
|
132
|
-
right: o === "right" ? `${
|
|
142
|
+
width: E || o ? e.column.getSize() : void 0,
|
|
143
|
+
left: o === "left" ? `${b}px` : void 0,
|
|
144
|
+
right: o === "right" ? `${b}px` : void 0
|
|
133
145
|
},
|
|
134
|
-
className:
|
|
146
|
+
className: w(
|
|
135
147
|
l === "truncate" && r.cellTruncate,
|
|
136
148
|
l === "wrap" && r.cellWrap,
|
|
137
|
-
|
|
138
|
-
|
|
149
|
+
W && r.shadowLeft,
|
|
150
|
+
P && r.shadowRight
|
|
139
151
|
),
|
|
140
|
-
children:
|
|
152
|
+
children: N(e.column.columnDef.cell, e.getContext())
|
|
141
153
|
},
|
|
142
154
|
e.id
|
|
143
155
|
);
|
|
144
156
|
}),
|
|
145
|
-
|
|
146
|
-
|
|
157
|
+
f > 0 && /* @__PURE__ */ p(
|
|
158
|
+
C,
|
|
147
159
|
{
|
|
148
160
|
"data-spacer": !0,
|
|
149
161
|
"aria-hidden": "true",
|
|
150
|
-
style: { width:
|
|
162
|
+
style: { width: f, padding: 0 }
|
|
151
163
|
}
|
|
152
164
|
)
|
|
153
165
|
]
|
|
154
166
|
}
|
|
155
167
|
);
|
|
156
168
|
}
|
|
157
|
-
const
|
|
169
|
+
const re = B.forwardRef(H);
|
|
158
170
|
export {
|
|
159
|
-
|
|
171
|
+
re as DataTableRow
|
|
160
172
|
};
|
|
161
173
|
//# sourceMappingURL=data-table-row.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-row.js","sources":["../../../src/components/data-table/data-table-row.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { CSSProperties, MouseEvent, KeyboardEvent } from \"react\"\nimport type { Row, Cell } from \"@tanstack/react-table\"\nimport { flexRender } 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\"\nimport { TableRow, TableCell } from \"../table/table\"\nimport { useDataTable, useDataTableContent } from \"./hooks\"\nimport type { DataTableCellOverflow } from \"./data-table-context\"\nimport {\n getPinnedColumnOffset,\n isLastLeftPinnedColumn,\n isFirstRightPinnedColumn,\n} from \"./data-table-pinning-utils\"\n\ntype CellAlign = \"left\" | \"center\" | \"right\"\n\n/**\n * Gets the cell overflow mode, checking column meta first, then falling back to table default.\n */\nfunction getCellOverflow<TData>(\n cell: Cell<TData, unknown>,\n tableDefault: DataTableCellOverflow\n): DataTableCellOverflow {\n const columnMeta = cell.column.columnDef.meta as\n { cellOverflow?: DataTableCellOverflow } | undefined\n return columnMeta?.cellOverflow ?? tableDefault\n}\n\n/**\n * Gets the cell alignment from column meta.\n */\nfunction getCellAlign<TData>(\n cell: Cell<TData, unknown>\n): CellAlign | undefined {\n const columnMeta = cell.column.columnDef.meta as\n { align?: CellAlign } | undefined\n return columnMeta?.align\n}\n\n// Interactive element selectors that should NOT trigger row click\nconst INTERACTIVE_SELECTORS = [\n \"button\",\n \"a\",\n \"input\",\n \"select\",\n \"textarea\",\n '[role=\"button\"]',\n '[role=\"checkbox\"]',\n '[role=\"link\"]',\n '[role=\"menuitem\"]',\n '[role=\"menuitemcheckbox\"]',\n '[role=\"menuitemradio\"]',\n '[role=\"option\"]',\n '[role=\"radio\"]',\n '[role=\"slider\"]',\n '[role=\"spinbutton\"]',\n '[role=\"switch\"]',\n '[role=\"tab\"]',\n \"[data-radix-collection-item]\",\n `[${SLOT_ATTR}=\"checkbox\"]`,\n]\n\nconst useStyles = makeZenithStyles({\n rowClickable: {\n cursor: \"pointer\",\n \":hover\": {\n backgroundColor: tokens.accentA3,\n },\n },\n rowSelected: {\n backgroundColor: tokens.accentA3,\n },\n rowBorder: {\n boxShadow: `inset 0 -1px 0 0 ${tokens.grayA6}`,\n \"&:last-child\": {\n boxShadow: \"none\",\n },\n },\n cellTruncate: {\n maxWidth: 0,\n ...shorthands.overflow(\"hidden\"),\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n cellWrap: {\n maxWidth: 0,\n ...shorthands.overflow(\"hidden\"),\n overflowWrap: \"break-word\",\n wordBreak: \"break-word\",\n },\n shadowLeft: {\n boxShadow: \"2px 0 5px -2px rgba(0,0,0,0.1)\",\n },\n shadowRight: {\n boxShadow: \"-2px 0 5px -2px rgba(0,0,0,0.1)\",\n },\n})\n\nexport type DataTableRowProps<TData> = {\n /** The row instance from TanStack Table */\n row: Row<TData>\n /** Optional style (used for virtualized row heights) */\n style?: CSSProperties\n /** Additional class name */\n className?: string\n}\n\n/**\n * Renders a single table row with its cells.\n * Supports clickable rows when onRowClick is provided via DataTable context.\n */\nfunction DataTableRowInner<TData>(\n { row, style, className }: DataTableRowProps<TData>,\n ref: React.ForwardedRef<HTMLTableRowElement>\n) {\n const styles = useStyles()\n const {\n table,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow: tableCellOverflow = \"truncate\",\n showRowBorders,\n disableColumnResizing,\n } = useDataTable<TData>()\n const contentContext = useDataTableContent()\n const spacerWidth = contentContext?.spacerWidth ?? 0\n\n const enableColumnResizing = !disableColumnResizing\n const isClickable = Boolean(onRowClick)\n\n const handleClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (!onRowClick) return\n\n // Check if click originated from an interactive element\n const target = event.target as HTMLElement\n const isInteractiveElement = INTERACTIVE_SELECTORS.some((selector) =>\n target.closest(selector)\n )\n\n if (isInteractiveElement) {\n return // Don't trigger row click for interactive elements\n }\n\n onRowClick(row, event)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTableRowElement>) => {\n if (!onRowClick) return\n\n if (event.key === \"Enter\" || event.key === \" \") {\n // Check if key event originated from an interactive element\n const target = event.target as HTMLElement\n const isInteractiveElement = INTERACTIVE_SELECTORS.some((selector) =>\n target.closest(selector)\n )\n\n if (isInteractiveElement) {\n return // Let the interactive element handle the event\n }\n\n event.preventDefault()\n onRowClick(row, event as unknown as MouseEvent<HTMLTableRowElement>)\n }\n }\n\n return (\n <TableRow\n ref={ref}\n data-slot=\"data-table-row\"\n {...{ [SLOT_ATTR]: \"data-table-row\" }}\n data-fs-element=\"DataTable-Row\"\n data-state={row.getIsSelected() ? \"selected\" : undefined}\n data-clickable={isClickable ? \"true\" : undefined}\n style={style}\n className={mergeClasses(\n showRowBorders !== false && styles.rowBorder,\n isClickable && (clickableRowClassName ?? styles.rowClickable),\n row.getIsSelected() && (selectedRowClassName ?? styles.rowSelected),\n className\n )}\n onClick={isClickable ? handleClick : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={isClickable ? handleKeyDown : undefined}\n >\n {row.getVisibleCells().map((cell) => {\n const overflow = getCellOverflow(cell, tableCellOverflow)\n const align = getCellAlign(cell)\n const isPinned = cell.column.getIsPinned()\n const pinnedOffset = isPinned\n ? getPinnedColumnOffset(cell.column, table)\n : undefined\n const isLastLeft = isLastLeftPinnedColumn(cell.column, table)\n const isFirstRight = isFirstRightPinnedColumn(cell.column, table)\n\n return (\n <TableCell\n key={cell.id}\n data-slot=\"data-table-cell\"\n {...{ [SLOT_ATTR]: \"data-table-cell\" }}\n data-fs-element=\"DataTable-Cell\"\n data-pinned={isPinned || undefined}\n align={align}\n style={{\n width:\n enableColumnResizing || isPinned\n ? cell.column.getSize()\n : undefined,\n left: isPinned === \"left\" ? `${pinnedOffset}px` : undefined,\n right: isPinned === \"right\" ? `${pinnedOffset}px` : undefined,\n }}\n className={mergeClasses(\n overflow === \"truncate\" && styles.cellTruncate,\n overflow === \"wrap\" && styles.cellWrap,\n isLastLeft && styles.shadowLeft,\n isFirstRight && styles.shadowRight\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n {/* Spacer cell - matches header spacer column */}\n {spacerWidth > 0 && (\n <TableCell\n data-spacer\n aria-hidden=\"true\"\n style={{ width: spacerWidth, padding: 0 }}\n />\n )}\n </TableRow>\n )\n}\n\nexport const DataTableRow = React.forwardRef(DataTableRowInner) as <TData>(\n props: DataTableRowProps<TData> & {\n ref?: React.Ref<HTMLTableRowElement>\n }\n) => React.ReactElement | null\n"],"names":["getCellOverflow","cell","tableDefault","columnMeta","getCellAlign","INTERACTIVE_SELECTORS","SLOT_ATTR","useStyles","makeZenithStyles","tokens.accentA3","tokens.grayA6","shorthands","DataTableRowInner","row","style","className","ref","styles","table","onRowClick","clickableRowClassName","selectedRowClassName","tableCellOverflow","showRowBorders","disableColumnResizing","useDataTable","contentContext","useDataTableContent","spacerWidth","enableColumnResizing","isClickable","handleClick","event","target","selector","handleKeyDown","jsxs","TableRow","mergeClasses","overflow","align","isPinned","pinnedOffset","getPinnedColumnOffset","isLastLeft","isLastLeftPinnedColumn","isFirstRight","isFirstRightPinnedColumn","jsx","TableCell","DataTableRow","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table-row.js","sources":["../../../src/components/data-table/data-table-row.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { CSSProperties, MouseEvent, KeyboardEvent } from \"react\"\nimport type { Row, Cell } from \"@tanstack/react-table\"\nimport { flexRender } 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\"\nimport { TableRow, TableCell } from \"../table/table\"\nimport { useDataTable, useDataTableContent } from \"./hooks\"\nimport type { DataTableCellOverflow } from \"./data-table-context\"\nimport {\n getPinnedColumnOffset,\n isLastLeftPinnedColumn,\n isFirstRightPinnedColumn,\n} from \"./data-table-pinning-utils\"\n\ntype CellAlign = \"left\" | \"center\" | \"right\"\n\n/**\n * Gets the cell overflow mode, checking column meta first, then falling back to table default.\n */\nfunction getCellOverflow<TData>(\n cell: Cell<TData, unknown>,\n tableDefault: DataTableCellOverflow\n): DataTableCellOverflow {\n const columnMeta = cell.column.columnDef.meta as\n { cellOverflow?: DataTableCellOverflow } | undefined\n return columnMeta?.cellOverflow ?? tableDefault\n}\n\n/**\n * Gets the cell alignment from column meta.\n */\nfunction getCellAlign<TData>(\n cell: Cell<TData, unknown>\n): CellAlign | undefined {\n const columnMeta = cell.column.columnDef.meta as\n { align?: CellAlign } | undefined\n return columnMeta?.align\n}\n\n// Interactive element selectors that should NOT trigger row click\nconst INTERACTIVE_SELECTORS = [\n \"button\",\n \"a\",\n \"input\",\n \"select\",\n \"textarea\",\n '[role=\"button\"]',\n '[role=\"checkbox\"]',\n '[role=\"link\"]',\n '[role=\"menuitem\"]',\n '[role=\"menuitemcheckbox\"]',\n '[role=\"menuitemradio\"]',\n '[role=\"option\"]',\n '[role=\"radio\"]',\n '[role=\"slider\"]',\n '[role=\"spinbutton\"]',\n '[role=\"switch\"]',\n '[role=\"tab\"]',\n \"[data-radix-collection-item]\",\n `[${SLOT_ATTR}=\"checkbox\"]`,\n]\n\nconst useStyles = makeZenithStyles({\n rowClickable: {\n cursor: \"pointer\",\n \":hover\": {\n backgroundColor: tokens.accentA3,\n },\n },\n rowSelected: {\n backgroundColor: tokens.accentA3,\n },\n // The rule is painted on the cells: WebKit draws no box-shadow on a <tr>,\n // and row borders don't paint under DataTableContent's\n // `border-collapse: separate`. A background image also stays clear of the\n // pinned cells' own box-shadow and adds no height.\n rowBorder: {\n \"& > td\": {\n backgroundImage: `linear-gradient(${tokens.grayA6}, ${tokens.grayA6})`,\n backgroundSize: \"100% 1px\",\n backgroundPosition: \"bottom\",\n backgroundRepeat: \"no-repeat\",\n },\n \"&:last-child > td\": {\n backgroundImage: \"none\",\n },\n },\n cellTruncate: {\n ...boxModel,\n maxWidth: 0,\n ...shorthands.overflow(\"hidden\"),\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n cellWrap: {\n ...boxModel,\n maxWidth: 0,\n ...shorthands.overflow(\"hidden\"),\n overflowWrap: \"break-word\",\n wordBreak: \"break-word\",\n },\n shadowLeft: {\n boxShadow: \"2px 0 5px -2px rgba(0,0,0,0.1)\",\n },\n shadowRight: {\n boxShadow: \"-2px 0 5px -2px rgba(0,0,0,0.1)\",\n },\n})\n\nexport type DataTableRowProps<TData> = {\n /** The row instance from TanStack Table */\n row: Row<TData>\n /** Optional style (used for virtualized row heights) */\n style?: CSSProperties\n /** Additional class name */\n className?: string\n}\n\n/**\n * Renders a single table row with its cells.\n * Supports clickable rows when onRowClick is provided via DataTable context.\n */\nfunction DataTableRowInner<TData>(\n { row, style, className }: DataTableRowProps<TData>,\n ref: React.ForwardedRef<HTMLTableRowElement>\n) {\n const styles = useStyles()\n const {\n table,\n onRowClick,\n clickableRowClassName,\n selectedRowClassName,\n cellOverflow: tableCellOverflow = \"truncate\",\n showRowBorders,\n disableColumnResizing,\n } = useDataTable<TData>()\n const contentContext = useDataTableContent()\n const spacerWidth = contentContext?.spacerWidth ?? 0\n\n const enableColumnResizing = !disableColumnResizing\n const isClickable = Boolean(onRowClick)\n\n const handleClick = (event: MouseEvent<HTMLTableRowElement>) => {\n if (!onRowClick) return\n\n // Check if click originated from an interactive element\n const target = event.target as HTMLElement\n const isInteractiveElement = INTERACTIVE_SELECTORS.some((selector) =>\n target.closest(selector)\n )\n\n if (isInteractiveElement) {\n return // Don't trigger row click for interactive elements\n }\n\n onRowClick(row, event)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLTableRowElement>) => {\n if (!onRowClick) return\n\n if (event.key === \"Enter\" || event.key === \" \") {\n // Check if key event originated from an interactive element\n const target = event.target as HTMLElement\n const isInteractiveElement = INTERACTIVE_SELECTORS.some((selector) =>\n target.closest(selector)\n )\n\n if (isInteractiveElement) {\n return // Let the interactive element handle the event\n }\n\n event.preventDefault()\n onRowClick(row, event as unknown as MouseEvent<HTMLTableRowElement>)\n }\n }\n\n return (\n <TableRow\n ref={ref}\n data-slot=\"data-table-row\"\n {...{ [SLOT_ATTR]: \"data-table-row\" }}\n data-fs-element=\"DataTable-Row\"\n data-state={row.getIsSelected() ? \"selected\" : undefined}\n data-clickable={isClickable ? \"true\" : undefined}\n style={style}\n className={mergeClasses(\n showRowBorders !== false && styles.rowBorder,\n isClickable && (clickableRowClassName ?? styles.rowClickable),\n row.getIsSelected() && (selectedRowClassName ?? styles.rowSelected),\n className\n )}\n onClick={isClickable ? handleClick : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={isClickable ? handleKeyDown : undefined}\n >\n {row.getVisibleCells().map((cell) => {\n const overflow = getCellOverflow(cell, tableCellOverflow)\n const align = getCellAlign(cell)\n const isPinned = cell.column.getIsPinned()\n const pinnedOffset = isPinned\n ? getPinnedColumnOffset(cell.column, table)\n : undefined\n const isLastLeft = isLastLeftPinnedColumn(cell.column, table)\n const isFirstRight = isFirstRightPinnedColumn(cell.column, table)\n\n return (\n <TableCell\n key={cell.id}\n data-slot=\"data-table-cell\"\n {...{ [SLOT_ATTR]: \"data-table-cell\" }}\n data-fs-element=\"DataTable-Cell\"\n data-pinned={isPinned || undefined}\n align={align}\n style={{\n width:\n enableColumnResizing || isPinned\n ? cell.column.getSize()\n : undefined,\n left: isPinned === \"left\" ? `${pinnedOffset}px` : undefined,\n right: isPinned === \"right\" ? `${pinnedOffset}px` : undefined,\n }}\n className={mergeClasses(\n overflow === \"truncate\" && styles.cellTruncate,\n overflow === \"wrap\" && styles.cellWrap,\n isLastLeft && styles.shadowLeft,\n isFirstRight && styles.shadowRight\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n {/* Spacer cell - matches header spacer column */}\n {spacerWidth > 0 && (\n <TableCell\n data-spacer\n aria-hidden=\"true\"\n style={{ width: spacerWidth, padding: 0 }}\n />\n )}\n </TableRow>\n )\n}\n\nexport const DataTableRow = React.forwardRef(DataTableRowInner) as <TData>(\n props: DataTableRowProps<TData> & {\n ref?: React.Ref<HTMLTableRowElement>\n }\n) => React.ReactElement | null\n"],"names":["getCellOverflow","cell","tableDefault","columnMeta","getCellAlign","INTERACTIVE_SELECTORS","SLOT_ATTR","useStyles","makeZenithStyles","tokens.accentA3","tokens.grayA6","boxModel","shorthands","DataTableRowInner","row","style","className","ref","styles","table","onRowClick","clickableRowClassName","selectedRowClassName","tableCellOverflow","showRowBorders","disableColumnResizing","useDataTable","contentContext","useDataTableContent","spacerWidth","enableColumnResizing","isClickable","handleClick","event","target","selector","handleKeyDown","jsxs","TableRow","mergeClasses","overflow","align","isPinned","pinnedOffset","getPinnedColumnOffset","isLastLeft","isLastLeftPinnedColumn","isFirstRight","isFirstRightPinnedColumn","jsx","TableCell","DataTableRow","React"],"mappings":";;;;;;;;;;;AAwBA,SAASA,EACPC,GACAC,GACuB;AACvB,QAAMC,IAAaF,EAAK,OAAO,UAAU;AAEzC,UAAOE,KAAA,gBAAAA,EAAY,iBAAgBD;AACrC;AAKA,SAASE,EACPH,GACuB;AACvB,QAAME,IAAaF,EAAK,OAAO,UAAU;AAEzC,SAAOE,KAAA,gBAAAA,EAAY;AACrB;AAGA,MAAME,IAAwB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,IAAIC,CAAS;AACf,GAEMC,IAAYC,EAAiB;AAAA,EACjC,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,UAAU;AAAA,MACR,iBAAiBC;AAAAA,IAAO;AAAA,EAC1B;AAAA,EAEF,aAAa;AAAA,IACX,iBAAiBA;AAAAA,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAM1B,WAAW;AAAA,IACT,UAAU;AAAA,MACR,iBAAiB,mBAAmBC,CAAa,KAAKA,CAAa;AAAA,MACnE,gBAAgB;AAAA,MAChB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,IAAA;AAAA,IAEpB,qBAAqB;AAAA,MACnB,iBAAiB;AAAA,IAAA;AAAA,EACnB;AAAA,EAEF,cAAc;AAAA,IACZ,GAAGC;AAAA,IACH,UAAU;AAAA,IACV,GAAGC,EAAW,SAAS,QAAQ;AAAA,IAC/B,cAAc;AAAA,IACd,YAAY;AAAA,EAAA;AAAA,EAEd,UAAU;AAAA,IACR,GAAGD;AAAA,IACH,UAAU;AAAA,IACV,GAAGC,EAAW,SAAS,QAAQ;AAAA,IAC/B,cAAc;AAAA,IACd,WAAW;AAAA,EAAA;AAAA,EAEb,YAAY;AAAA,IACV,WAAW;AAAA,EAAA;AAAA,EAEb,aAAa;AAAA,IACX,WAAW;AAAA,EAAA;AAEf,CAAC;AAeD,SAASC,EACP,EAAE,KAAAC,GAAK,OAAAC,GAAO,WAAAC,EAAA,GACdC,GACA;AACA,QAAMC,IAASX,EAAA,GACT;AAAA,IACJ,OAAAY;AAAA,IACA,YAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,cAAcC,IAAoB;AAAA,IAClC,gBAAAC;AAAA,IACA,uBAAAC;AAAA,EAAA,IACEC,EAAA,GACEC,IAAiBC,EAAA,GACjBC,KAAcF,KAAA,gBAAAA,EAAgB,gBAAe,GAE7CG,IAAuB,CAACL,GACxBM,IAAc,EAAQX,GAEtBY,IAAc,CAACC,MAA2C;AAC9D,QAAI,CAACb,EAAY;AAGjB,UAAMc,IAASD,EAAM;AAKrB,IAJ6B5B,EAAsB;AAAA,MAAK,CAAC8B,MACvDD,EAAO,QAAQC,CAAQ;AAAA,IAAA,KAOzBf,EAAWN,GAAKmB,CAAK;AAAA,EACvB,GAEMG,IAAgB,CAACH,MAA8C;AACnE,QAAKb,MAEDa,EAAM,QAAQ,WAAWA,EAAM,QAAQ,MAAK;AAE9C,YAAMC,IAASD,EAAM;AAKrB,UAJ6B5B,EAAsB;AAAA,QAAK,CAAC8B,MACvDD,EAAO,QAAQC,CAAQ;AAAA,MAAA;AAIvB;AAGF,MAAAF,EAAM,eAAA,GACNb,EAAWN,GAAKmB,CAAmD;AAAA,IACrE;AAAA,EACF;AAEA,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAArB;AAAA,MACA,aAAU;AAAA,MACJ,CAACX,CAAS,GAAG;AAAA,MACnB,mBAAgB;AAAA,MAChB,cAAYQ,EAAI,cAAA,IAAkB,aAAa;AAAA,MAC/C,kBAAgBiB,IAAc,SAAS;AAAA,MACvC,OAAAhB;AAAA,MACA,WAAWwB;AAAA,QACTf,MAAmB,MAASN,EAAO;AAAA,QACnCa,MAAgBV,KAAyBH,EAAO;AAAA,QAChDJ,EAAI,cAAA,MAAoBQ,KAAwBJ,EAAO;AAAA,QACvDF;AAAA,MAAA;AAAA,MAEF,SAASe,IAAcC,IAAc;AAAA,MACrC,UAAUD,IAAc,IAAI;AAAA,MAC5B,WAAWA,IAAcK,IAAgB;AAAA,MAExC,UAAA;AAAA,QAAAtB,EAAI,gBAAA,EAAkB,IAAI,CAACb,MAAS;AACnC,gBAAMuC,IAAWxC,EAAgBC,GAAMsB,CAAiB,GAClDkB,IAAQrC,EAAaH,CAAI,GACzByC,IAAWzC,EAAK,OAAO,YAAA,GACvB0C,IAAeD,IACjBE,EAAsB3C,EAAK,QAAQkB,CAAK,IACxC,QACE0B,IAAaC,EAAuB7C,EAAK,QAAQkB,CAAK,GACtD4B,IAAeC,EAAyB/C,EAAK,QAAQkB,CAAK;AAEhE,iBACE,gBAAA8B;AAAA,YAACC;AAAA,YAAA;AAAA,cAEC,aAAU;AAAA,cACJ,CAAC5C,CAAS,GAAG;AAAA,cACnB,mBAAgB;AAAA,cAChB,eAAaoC,KAAY;AAAA,cACzB,OAAAD;AAAA,cACA,OAAO;AAAA,gBACL,OACEX,KAAwBY,IACpBzC,EAAK,OAAO,YACZ;AAAA,gBACN,MAAMyC,MAAa,SAAS,GAAGC,CAAY,OAAO;AAAA,gBAClD,OAAOD,MAAa,UAAU,GAAGC,CAAY,OAAO;AAAA,cAAA;AAAA,cAEtD,WAAWJ;AAAA,gBACTC,MAAa,cAActB,EAAO;AAAA,gBAClCsB,MAAa,UAAUtB,EAAO;AAAA,gBAC9B2B,KAAc3B,EAAO;AAAA,gBACrB6B,KAAgB7B,EAAO;AAAA,cAAA;AAAA,cAGxB,YAAWjB,EAAK,OAAO,UAAU,MAAMA,EAAK,YAAY;AAAA,YAAA;AAAA,YArBpDA,EAAK;AAAA,UAAA;AAAA,QAwBhB,CAAC;AAAA,QAEA4B,IAAc,KACb,gBAAAoB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,eAAW;AAAA,YACX,eAAY;AAAA,YACZ,OAAO,EAAE,OAAOrB,GAAa,SAAS,EAAA;AAAA,UAAE;AAAA,QAAA;AAAA,MAC1C;AAAA,IAAA;AAAA,EAAA;AAIR;AAEO,MAAMsB,KAAeC,EAAM,WAAWvC,CAAiB;"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import * as
|
|
3
|
-
import { mergeClasses as
|
|
2
|
+
import * as m from "react";
|
|
3
|
+
import { mergeClasses as i, SLOT_ATTR as p, shorthands as a } from "@epilot/zenith-runtime/v1";
|
|
4
4
|
import { makeZenithStyles as d } from "../../styles/make-styles.js";
|
|
5
|
-
import {
|
|
5
|
+
import { boxModel as b } from "../../styles/host-reset.js";
|
|
6
|
+
import { spacingGroup1 as t, spacingElement1 as f } from "../../tokens/index.js";
|
|
6
7
|
const c = d({
|
|
7
8
|
root: {
|
|
9
|
+
...b,
|
|
8
10
|
display: "flex",
|
|
9
11
|
alignItems: "center",
|
|
10
12
|
justifyContent: "space-between",
|
|
11
13
|
gap: t,
|
|
12
|
-
...a.paddingInline(
|
|
14
|
+
...a.paddingInline(f),
|
|
13
15
|
...a.paddingBlock(t)
|
|
14
16
|
}
|
|
15
|
-
}),
|
|
17
|
+
}), D = m.forwardRef(function({ className: o, children: e, ...r }, s) {
|
|
16
18
|
const l = c();
|
|
17
19
|
return /* @__PURE__ */ n(
|
|
18
20
|
"div",
|
|
@@ -21,13 +23,13 @@ const c = d({
|
|
|
21
23
|
"data-slot": "data-table-toolbar",
|
|
22
24
|
[p]: "data-table-toolbar",
|
|
23
25
|
"data-fs-element": "DataTable-Toolbar",
|
|
24
|
-
className:
|
|
26
|
+
className: i(l.root, o),
|
|
25
27
|
...r,
|
|
26
28
|
children: e
|
|
27
29
|
}
|
|
28
30
|
);
|
|
29
31
|
});
|
|
30
32
|
export {
|
|
31
|
-
|
|
33
|
+
D as DataTableToolbar
|
|
32
34
|
};
|
|
33
35
|
//# sourceMappingURL=data-table-toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-toolbar.js","sources":["../../../src/components/data-table/data-table-toolbar.tsx"],"sourcesContent":["import * as React from \"react\"\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\nconst useStyles = makeZenithStyles({\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingGroup1,\n ...shorthands.paddingInline(tokens.spacingElement1),\n ...shorthands.paddingBlock(tokens.spacingGroup1),\n },\n})\n\nexport type DataTableToolbarProps = React.ComponentProps<\"div\">\n\n/**\n * A toolbar wrapper for DataTable that contains filters, search, and actions.\n * Place above the table for consistent layout.\n */\nexport const DataTableToolbar = React.forwardRef<\n HTMLDivElement,\n DataTableToolbarProps\n>(function DataTableToolbar({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"data-table-toolbar\"\n {...{ [SLOT_ATTR]: \"data-table-toolbar\" }}\n data-fs-element=\"DataTable-Toolbar\"\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {children}\n </div>\n )\n})\n"],"names":["useStyles","makeZenithStyles","tokens.spacingGroup1","shorthands","tokens.spacingElement1","DataTableToolbar","React","className","children","props","ref","styles","jsx","SLOT_ATTR","mergeClasses"],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-table-toolbar.js","sources":["../../../src/components/data-table/data-table-toolbar.tsx"],"sourcesContent":["import * as React from \"react\"\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\nconst useStyles = makeZenithStyles({\n root: {\n ...boxModel,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingGroup1,\n ...shorthands.paddingInline(tokens.spacingElement1),\n ...shorthands.paddingBlock(tokens.spacingGroup1),\n },\n})\n\nexport type DataTableToolbarProps = React.ComponentProps<\"div\">\n\n/**\n * A toolbar wrapper for DataTable that contains filters, search, and actions.\n * Place above the table for consistent layout.\n */\nexport const DataTableToolbar = React.forwardRef<\n HTMLDivElement,\n DataTableToolbarProps\n>(function DataTableToolbar({ className, children, ...props }, ref) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"data-table-toolbar\"\n {...{ [SLOT_ATTR]: \"data-table-toolbar\" }}\n data-fs-element=\"DataTable-Toolbar\"\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {children}\n </div>\n )\n})\n"],"names":["useStyles","makeZenithStyles","boxModel","tokens.spacingGroup1","shorthands","tokens.spacingElement1","DataTableToolbar","React","className","children","props","ref","styles","jsx","SLOT_ATTR","mergeClasses"],"mappings":";;;;;;AAQA,MAAMA,IAAYC,EAAiB;AAAA,EACjC,MAAM;AAAA,IACJ,GAAGC;AAAA,IACH,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,KAAKC;AAAAA,IACL,GAAGC,EAAW,cAAcC,CAAsB;AAAA,IAClD,GAAGD,EAAW,aAAaD,CAAoB;AAAA,EAAA;AAEnD,CAAC,GAQYG,IAAmBC,EAAM,WAGpC,SAA0B,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,GAAK;AAClE,QAAMC,IAASZ,EAAA;AAEf,SACE,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,aAAU;AAAA,MACJ,CAACG,CAAS,GAAG;AAAA,MACnB,mBAAgB;AAAA,MAChB,WAAWC,EAAaH,EAAO,MAAMJ,CAAS;AAAA,MAC7C,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import * as Je from "react";
|
|
3
|
-
import { useState as
|
|
3
|
+
import { useState as o, useRef as Ke, useEffect as h, useMemo as u, useCallback as Qe } from "react";
|
|
4
4
|
import { useReactTable as Xe } from "../../vendor/.bun/@tanstack_react-table@8.21.3_6f4b9a1cfb20c0ae/vendor/@tanstack/react-table/build/lib/index.js";
|
|
5
5
|
import { mergeClasses as Ye, SLOT_ATTR as $e } from "@epilot/zenith-runtime/v1";
|
|
6
6
|
import { makeZenithStyles as Ce } from "../../styles/make-styles.js";
|
|
7
|
+
import { boxModel as ze } from "../../styles/host-reset.js";
|
|
7
8
|
import { Checkbox as ee } from "../checkbox/checkbox.js";
|
|
8
|
-
import { DensityContextBoundary as
|
|
9
|
-
import { DEFAULT_CONTAINER_HEIGHT as
|
|
10
|
-
import { DataTableColumnHeader as
|
|
11
|
-
import { getPaginationRowModel as
|
|
12
|
-
function
|
|
9
|
+
import { DensityContextBoundary as ve, canonicalDensity as ge } from "../density-provider/density-provider.js";
|
|
10
|
+
import { DEFAULT_CONTAINER_HEIGHT as ae, DEFAULT_OVERSCAN as ie, DEFAULT_ROW_HEIGHT as pe, DataTableContext as et } from "./data-table-context.js";
|
|
11
|
+
import { DataTableColumnHeader as tt } from "./data-table-column-header.js";
|
|
12
|
+
import { getPaginationRowModel as st, getFilteredRowModel as lt, getSortedRowModel as ct, getCoreRowModel as rt } from "../../vendor/.bun/@tanstack_table-core@8.21.3/vendor/@tanstack/table-core/build/lib/index.js";
|
|
13
|
+
function ot(d, T) {
|
|
13
14
|
return T ? d.map((c) => {
|
|
14
15
|
var r;
|
|
15
16
|
if (c.enableSorting === !1 || typeof c.header != "string")
|
|
@@ -17,7 +18,7 @@ function rt(d, T) {
|
|
|
17
18
|
const I = c.header;
|
|
18
19
|
return {
|
|
19
20
|
...c,
|
|
20
|
-
header: ({ column: m }) => /* @__PURE__ */ n(
|
|
21
|
+
header: ({ column: m }) => /* @__PURE__ */ n(tt, { column: m, title: I }),
|
|
21
22
|
meta: {
|
|
22
23
|
...c.meta,
|
|
23
24
|
// Preserve original header for visibility dropdown fallback
|
|
@@ -30,11 +31,12 @@ function rt(d, T) {
|
|
|
30
31
|
}
|
|
31
32
|
const ft = Ce({
|
|
32
33
|
root: {
|
|
34
|
+
...ze,
|
|
33
35
|
width: "100%",
|
|
34
36
|
maxWidth: "100%"
|
|
35
37
|
}
|
|
36
38
|
});
|
|
37
|
-
function
|
|
39
|
+
function nt({
|
|
38
40
|
columns: d,
|
|
39
41
|
data: T,
|
|
40
42
|
children: c,
|
|
@@ -51,8 +53,8 @@ function ot({
|
|
|
51
53
|
defaultSorting: ce = [],
|
|
52
54
|
rowSelection: re,
|
|
53
55
|
onRowSelectionChange: w,
|
|
54
|
-
defaultRowSelection:
|
|
55
|
-
columnFilters:
|
|
56
|
+
defaultRowSelection: oe = {},
|
|
57
|
+
columnFilters: fe,
|
|
56
58
|
onColumnFiltersChange: D,
|
|
57
59
|
columnVisibility: ne,
|
|
58
60
|
onColumnVisibilityChange: R,
|
|
@@ -66,16 +68,16 @@ function ot({
|
|
|
66
68
|
resizeHandleVisibility: Z = "onHeaderHover",
|
|
67
69
|
columnResizeMode: me = "onChange",
|
|
68
70
|
columnSizing: Se,
|
|
69
|
-
onColumnSizingChange:
|
|
71
|
+
onColumnSizingChange: M,
|
|
70
72
|
defaultColumnSizing: ue = {},
|
|
71
73
|
columnPinning: Ie,
|
|
72
|
-
onColumnPinningChange:
|
|
73
|
-
defaultColumnPinning:
|
|
74
|
+
onColumnPinningChange: F,
|
|
75
|
+
defaultColumnPinning: be = { left: [], right: [] },
|
|
74
76
|
autoPinSelection: q,
|
|
75
77
|
showHeaderBorder: J = !0,
|
|
76
78
|
showRowBorders: K = !0,
|
|
77
79
|
fitHeaderWidth: Q = !1,
|
|
78
|
-
columnOrder:
|
|
80
|
+
columnOrder: Pe,
|
|
79
81
|
onColumnOrderChange: E,
|
|
80
82
|
defaultColumnOrder: ye = [],
|
|
81
83
|
enableColumnOrdering: X = !1,
|
|
@@ -83,10 +85,10 @@ function ot({
|
|
|
83
85
|
density: _,
|
|
84
86
|
className: Te
|
|
85
87
|
}, xe) {
|
|
86
|
-
const we = ft(), [De, Re] =
|
|
88
|
+
const we = ft(), [De, Re] = o(ce), [Ae, He] = o(oe), [Me, Fe] = o([]), [Ee, _e] = o({}), [ke, Le] = o(""), [Oe, Ve] = o(ue), [he, Ue] = o(be), [je, Ge] = o(ye), Ne = {
|
|
87
89
|
pageIndex: (t == null ? void 0 : t.pageIndex) ?? 0,
|
|
88
90
|
pageSize: (t == null ? void 0 : t.pageSize) ?? 10
|
|
89
|
-
}, [k, L] =
|
|
91
|
+
}, [k, L] = o(Ne), O = Ke(!1);
|
|
90
92
|
h(() => {
|
|
91
93
|
if ((t == null ? void 0 : t.pageIndex) === void 0)
|
|
92
94
|
return;
|
|
@@ -102,15 +104,15 @@ function ot({
|
|
|
102
104
|
(s) => s.pageSize === e ? s : { ...s, pageSize: e }
|
|
103
105
|
);
|
|
104
106
|
}, [t == null ? void 0 : t.pageSize]);
|
|
105
|
-
const Y = !H, $ = le ?? De,
|
|
106
|
-
if (!(r && q && Object.keys(
|
|
107
|
-
return
|
|
108
|
-
const s =
|
|
109
|
-
return s.includes("select") ?
|
|
110
|
-
...
|
|
107
|
+
const Y = !H, $ = le ?? De, b = re ?? Ae, C = fe ?? Me, z = ne ?? Ee, v = de ?? ke, P = Se ?? Oe, f = Ie ?? he, y = Pe ?? je, We = u(() => {
|
|
108
|
+
if (!(r && q && Object.keys(b).length > 0))
|
|
109
|
+
return f;
|
|
110
|
+
const s = f.left ?? [];
|
|
111
|
+
return s.includes("select") ? f : {
|
|
112
|
+
...f,
|
|
111
113
|
left: ["select", ...s]
|
|
112
114
|
};
|
|
113
|
-
}, [
|
|
115
|
+
}, [f, b, r, q]), g = u(
|
|
114
116
|
() => ({
|
|
115
117
|
id: "select",
|
|
116
118
|
header: ({ table: e }) => /* @__PURE__ */ n(
|
|
@@ -138,7 +140,7 @@ function ot({
|
|
|
138
140
|
size: 40
|
|
139
141
|
}),
|
|
140
142
|
[]
|
|
141
|
-
), V = u(() =>
|
|
143
|
+
), V = u(() => ot(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(
|
|
142
144
|
(e) => {
|
|
143
145
|
O.current = !0, L((s) => typeof e == "function" ? e(s) : e);
|
|
144
146
|
},
|
|
@@ -152,21 +154,21 @@ function ot({
|
|
|
152
154
|
data: T,
|
|
153
155
|
columns: Be,
|
|
154
156
|
getRowId: I,
|
|
155
|
-
getCoreRowModel:
|
|
157
|
+
getCoreRowModel: rt(),
|
|
156
158
|
// Default column configuration
|
|
157
159
|
defaultColumn: {
|
|
158
160
|
minSize: 50
|
|
159
161
|
},
|
|
160
162
|
// Sorting
|
|
161
163
|
...m && !U && {
|
|
162
|
-
getSortedRowModel:
|
|
164
|
+
getSortedRowModel: ct()
|
|
163
165
|
},
|
|
164
166
|
...U && {
|
|
165
167
|
manualSorting: !0
|
|
166
168
|
},
|
|
167
169
|
state: {
|
|
168
170
|
sorting: $,
|
|
169
|
-
rowSelection:
|
|
171
|
+
rowSelection: b,
|
|
170
172
|
columnFilters: C,
|
|
171
173
|
columnVisibility: z,
|
|
172
174
|
globalFilter: v,
|
|
@@ -176,7 +178,7 @@ function ot({
|
|
|
176
178
|
pagination: k
|
|
177
179
|
},
|
|
178
180
|
...Y && {
|
|
179
|
-
columnSizing:
|
|
181
|
+
columnSizing: P
|
|
180
182
|
}
|
|
181
183
|
},
|
|
182
184
|
onSortingChange: (e) => {
|
|
@@ -186,19 +188,19 @@ function ot({
|
|
|
186
188
|
// Row selection
|
|
187
189
|
enableRowSelection: typeof r == "function" ? (e) => r(e) : r,
|
|
188
190
|
onRowSelectionChange: (e) => {
|
|
189
|
-
const s = typeof e == "function" ? e(
|
|
191
|
+
const s = typeof e == "function" ? e(b) : e;
|
|
190
192
|
He(s), w == null || w(s);
|
|
191
193
|
},
|
|
192
194
|
// Filtering
|
|
193
195
|
...(te || se) && !j && {
|
|
194
|
-
getFilteredRowModel:
|
|
196
|
+
getFilteredRowModel: lt()
|
|
195
197
|
},
|
|
196
198
|
...j && {
|
|
197
199
|
manualFiltering: !0
|
|
198
200
|
},
|
|
199
201
|
onColumnFiltersChange: (e) => {
|
|
200
202
|
const s = typeof e == "function" ? e(C) : e;
|
|
201
|
-
|
|
203
|
+
Fe(s), D == null || D(s);
|
|
202
204
|
},
|
|
203
205
|
onColumnVisibilityChange: (e) => {
|
|
204
206
|
const s = typeof e == "function" ? e(z) : e;
|
|
@@ -217,17 +219,17 @@ function ot({
|
|
|
217
219
|
enableColumnResizing: Y,
|
|
218
220
|
columnResizeMode: me,
|
|
219
221
|
onColumnSizingChange: (e) => {
|
|
220
|
-
const s = typeof e == "function" ? e(
|
|
221
|
-
Ve(s),
|
|
222
|
+
const s = typeof e == "function" ? e(P) : e;
|
|
223
|
+
Ve(s), M == null || M(s);
|
|
222
224
|
},
|
|
223
225
|
// Column pinning
|
|
224
226
|
onColumnPinningChange: (e) => {
|
|
225
|
-
const s = typeof e == "function" ? e(
|
|
226
|
-
Ue(s),
|
|
227
|
+
const s = typeof e == "function" ? e(f) : e;
|
|
228
|
+
Ue(s), F == null || F(s);
|
|
227
229
|
},
|
|
228
230
|
// Pagination
|
|
229
231
|
...S && !i && {
|
|
230
|
-
getPaginationRowModel:
|
|
232
|
+
getPaginationRowModel: st()
|
|
231
233
|
},
|
|
232
234
|
...i && {
|
|
233
235
|
manualPagination: !0,
|
|
@@ -243,9 +245,9 @@ function ot({
|
|
|
243
245
|
pagination: t,
|
|
244
246
|
config: {
|
|
245
247
|
enableVirtualization: a,
|
|
246
|
-
estimateRowHeight: (l == null ? void 0 : l.estimateRowHeight) ??
|
|
247
|
-
overscan: (l == null ? void 0 : l.overscan) ??
|
|
248
|
-
containerHeight: (l == null ? void 0 : l.containerHeight) ??
|
|
248
|
+
estimateRowHeight: (l == null ? void 0 : l.estimateRowHeight) ?? pe,
|
|
249
|
+
overscan: (l == null ? void 0 : l.overscan) ?? ie,
|
|
250
|
+
containerHeight: (l == null ? void 0 : l.containerHeight) ?? ae
|
|
249
251
|
},
|
|
250
252
|
onRowClick: G,
|
|
251
253
|
clickableRowClassName: N,
|
|
@@ -256,7 +258,7 @@ function ot({
|
|
|
256
258
|
showHeaderBorder: J,
|
|
257
259
|
showRowBorders: K,
|
|
258
260
|
fitHeaderWidth: Q,
|
|
259
|
-
columnSizing:
|
|
261
|
+
columnSizing: P,
|
|
260
262
|
enableColumnOrdering: X,
|
|
261
263
|
columnOrder: y
|
|
262
264
|
}),
|
|
@@ -274,12 +276,12 @@ function ot({
|
|
|
274
276
|
J,
|
|
275
277
|
K,
|
|
276
278
|
Q,
|
|
277
|
-
|
|
279
|
+
P,
|
|
278
280
|
X,
|
|
279
281
|
y
|
|
280
282
|
]
|
|
281
283
|
);
|
|
282
|
-
return /* @__PURE__ */ n(
|
|
284
|
+
return /* @__PURE__ */ n(et.Provider, { value: qe, children: /* @__PURE__ */ n(
|
|
283
285
|
"div",
|
|
284
286
|
{
|
|
285
287
|
ref: xe,
|
|
@@ -287,13 +289,13 @@ function ot({
|
|
|
287
289
|
[$e]: "data-table",
|
|
288
290
|
"data-fs-element": "DataTable",
|
|
289
291
|
className: Ye(we.root, Te),
|
|
290
|
-
..._ !== void 0 ? { "data-density":
|
|
291
|
-
children: /* @__PURE__ */ n(
|
|
292
|
+
..._ !== void 0 ? { "data-density": ge(_) } : {},
|
|
293
|
+
children: /* @__PURE__ */ n(ve, { density: _, children: c })
|
|
292
294
|
}
|
|
293
295
|
) });
|
|
294
296
|
}
|
|
295
|
-
const
|
|
297
|
+
const Rt = Je.forwardRef(nt);
|
|
296
298
|
export {
|
|
297
|
-
|
|
299
|
+
Rt as DataTable
|
|
298
300
|
};
|
|
299
301
|
//# sourceMappingURL=data-table.js.map
|