@epilot/zenith-react 0.1.0-next.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -10
- package/dist/components/appearance-boundary/appearance-boundary.js +32 -34
- package/dist/components/appearance-boundary/appearance-boundary.js.map +1 -1
- package/dist/components/badge/badge.js +1 -1
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +10 -10
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button.js +28 -28
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/callout/callout.js +13 -13
- package/dist/components/callout/callout.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +13 -13
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/code-block/code-block.js +6 -6
- package/dist/components/code-block/code-block.js.map +1 -1
- package/dist/components/code-editor/code-editor.js +1 -1
- package/dist/components/code-editor/code-editor.js.map +1 -1
- package/dist/components/command/command.js +6 -6
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table-body.js +120 -66
- package/dist/components/data-table/data-table-body.js.map +1 -1
- package/dist/components/data-table/data-table-column-header.js +7 -7
- package/dist/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/data-table/data-table-column-order.js +277 -0
- package/dist/components/data-table/data-table-column-order.js.map +1 -0
- package/dist/components/data-table/data-table-content.js +72 -58
- package/dist/components/data-table/data-table-content.js.map +1 -1
- package/dist/components/data-table/data-table-context.js +8 -4
- package/dist/components/data-table/data-table-context.js.map +1 -1
- package/dist/components/data-table/data-table-footer.js +31 -0
- package/dist/components/data-table/data-table-footer.js.map +1 -0
- package/dist/components/data-table/data-table-header-draggable.js +151 -0
- package/dist/components/data-table/data-table-header-draggable.js.map +1 -0
- package/dist/components/data-table/data-table-header.js +130 -57
- package/dist/components/data-table/data-table-header.js.map +1 -1
- package/dist/components/data-table/data-table-resize-handle.js +137 -0
- package/dist/components/data-table/data-table-resize-handle.js.map +1 -0
- package/dist/components/data-table/data-table.js +184 -156
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/data-table/hooks/use-data-table-virtualizer.js +9 -0
- package/dist/components/data-table/hooks/use-data-table-virtualizer.js.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.js +194 -187
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-time-picker/calendar.js +29 -29
- package/dist/components/date-time-picker/calendar.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +55 -55
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/dialog/dialog.js +1 -1
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +5 -5
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +36 -36
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +4 -4
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field.js +40 -40
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/list/list.js +40 -40
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/option-card/option-card.js +27 -25
- package/dist/components/option-card/option-card.js.map +1 -1
- package/dist/components/pill/pill.js +9 -9
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/radio/radio.js +14 -14
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/scroll-area/scroll-area.js +9 -9
- package/dist/components/scroll-area/scroll-area.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +1 -1
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +11 -11
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/switch/switch.js +11 -11
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +1 -1
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +15 -15
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/text/text.js +10 -1
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/toast/toast.js +26 -26
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle/toggle.js +20 -20
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/index.d.ts +1930 -1867
- package/dist/index.js +133 -121
- package/dist/index.js.map +1 -1
- package/dist/packages/tokens/dist/generated/core.generated.js +13 -22
- package/dist/packages/tokens/dist/generated/core.generated.js.map +1 -1
- package/dist/packages/tokens/dist/generated/palette.generated.js +5 -5
- package/dist/packages/tokens/dist/generated/palette.generated.js.map +1 -1
- package/dist/packages/tokens/dist/install.js +5 -5
- package/dist/packages/tokens/dist/install.js.map +1 -1
- package/dist/tokens/core.meta.generated.js +2 -2
- package/dist/tokens/core.meta.generated.js.map +1 -1
- package/dist/tokens/index.d.ts +1029 -1104
- package/dist/tokens/index.js +1031 -1106
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/palette.generated.js +2 -2
- package/dist/tokens/palette.generated.js.map +1 -1
- package/dist/tokens.json +605 -755
- package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js +385 -340
- package/dist/vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js.map +1 -1
- package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js +344 -229
- package/dist/vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js.map +1 -1
- package/dist/vendor/.bun/@dnd-kit_utilities@3.2.2_62547eec5a2188e3/vendor/@dnd-kit/utilities/dist/utilities.esm.js +1 -1
- package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js +36 -0
- package/dist/vendor/.bun/@tanstack_react-virtual@3.11.2_6f4b9a1cfb20c0ae/vendor/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js +450 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js +50 -0
- package/dist/vendor/.bun/@tanstack_virtual-core@3.11.2/vendor/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
- package/package.json +5 -3
|
@@ -1,84 +1,138 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import * as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { jsx as t, jsxs as j } from "react/jsx-runtime";
|
|
2
|
+
import * as k from "react";
|
|
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";
|
|
6
7
|
import { DataTableRow as v } from "./data-table-row.js";
|
|
7
|
-
import { DataTableLoading as
|
|
8
|
-
import { useDataTable as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
const
|
|
8
|
+
import { DataTableLoading as H } from "./data-table-loading.js";
|
|
9
|
+
import { useDataTable as O } from "./hooks/use-data-table.js";
|
|
10
|
+
import { useDataTableVirtualizer as P } from "./hooks/use-data-table-virtualizer.js";
|
|
11
|
+
import { useDataTableContent as _ } from "./hooks/use-data-table-content.js";
|
|
12
|
+
const z = A({
|
|
12
13
|
stateCell: {
|
|
13
14
|
height: "12rem",
|
|
14
|
-
color:
|
|
15
|
+
color: E
|
|
16
|
+
},
|
|
17
|
+
paddingRow: {
|
|
18
|
+
...h.borderWidth(0),
|
|
19
|
+
"&:hover": {
|
|
20
|
+
backgroundColor: "transparent"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
paddingCell: {
|
|
24
|
+
...h.padding(0),
|
|
25
|
+
...h.borderWidth(0)
|
|
15
26
|
}
|
|
16
27
|
});
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
children: t
|
|
28
|
+
function C({ height: i, colSpan: a }) {
|
|
29
|
+
const e = z();
|
|
30
|
+
return /* @__PURE__ */ t(R, { noHover: !0, className: e.paddingRow, children: /* @__PURE__ */ t(
|
|
31
|
+
S,
|
|
32
|
+
{
|
|
33
|
+
colSpan: a,
|
|
34
|
+
className: e.paddingCell,
|
|
35
|
+
style: { height: i, padding: 0, border: 0 }
|
|
36
|
+
}
|
|
37
|
+
) });
|
|
38
|
+
}
|
|
39
|
+
function u({
|
|
40
|
+
colSpan: i,
|
|
41
|
+
children: a
|
|
20
42
|
}) {
|
|
21
|
-
const
|
|
22
|
-
return /* @__PURE__ */
|
|
43
|
+
const e = z();
|
|
44
|
+
return /* @__PURE__ */ t(R, { noHover: !0, children: /* @__PURE__ */ t(S, { colSpan: i, align: "center", className: e.stateCell, children: a }) });
|
|
23
45
|
}
|
|
24
|
-
const
|
|
25
|
-
className:
|
|
26
|
-
emptyState:
|
|
27
|
-
loadingState:
|
|
28
|
-
isLoading:
|
|
29
|
-
errorState:
|
|
30
|
-
isError:
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
const U = k.forwardRef(function({
|
|
47
|
+
className: a,
|
|
48
|
+
emptyState: e,
|
|
49
|
+
loadingState: x,
|
|
50
|
+
isLoading: V = !1,
|
|
51
|
+
errorState: p,
|
|
52
|
+
isError: f = !1
|
|
53
|
+
}, 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(
|
|
34
57
|
"DataTableBody: isError is true but no errorState was provided. Please provide an errorState prop to display error content."
|
|
35
|
-
),
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
58
|
+
), f && p)
|
|
59
|
+
return /* @__PURE__ */ t(
|
|
60
|
+
n,
|
|
61
|
+
{
|
|
62
|
+
ref: o,
|
|
63
|
+
"data-slot": "data-table-body",
|
|
64
|
+
[l]: "data-table-body",
|
|
65
|
+
"data-fs-element": "DataTable-Body",
|
|
66
|
+
"data-state": "error",
|
|
67
|
+
className: a,
|
|
68
|
+
children: /* @__PURE__ */ t(u, { colSpan: d, children: p })
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
if (V)
|
|
72
|
+
return /* @__PURE__ */ t(
|
|
73
|
+
n,
|
|
74
|
+
{
|
|
75
|
+
ref: o,
|
|
76
|
+
"data-slot": "data-table-body",
|
|
77
|
+
[l]: "data-table-body",
|
|
78
|
+
"data-fs-element": "DataTable-Body",
|
|
79
|
+
"data-state": "loading",
|
|
80
|
+
className: a,
|
|
81
|
+
"aria-busy": "true",
|
|
82
|
+
children: /* @__PURE__ */ t(u, { colSpan: d, children: x ?? /* @__PURE__ */ t(H, {}) })
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
if (!b.length)
|
|
86
|
+
return /* @__PURE__ */ t(
|
|
87
|
+
n,
|
|
88
|
+
{
|
|
89
|
+
ref: o,
|
|
90
|
+
"data-slot": "data-table-body",
|
|
91
|
+
[l]: "data-table-body",
|
|
92
|
+
"data-fs-element": "DataTable-Body",
|
|
93
|
+
"data-state": "empty",
|
|
94
|
+
className: a,
|
|
95
|
+
children: /* @__PURE__ */ t(u, { colSpan: d, children: e })
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
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(
|
|
101
|
+
n,
|
|
102
|
+
{
|
|
103
|
+
ref: o,
|
|
104
|
+
"data-slot": "data-table-body",
|
|
105
|
+
[l]: "data-table-body",
|
|
106
|
+
"data-fs-element": "DataTable-Body",
|
|
107
|
+
className: a,
|
|
108
|
+
children: [
|
|
109
|
+
w > 0 && /* @__PURE__ */ t(C, { height: w, colSpan: d }),
|
|
110
|
+
c.map((y) => /* @__PURE__ */ t(
|
|
111
|
+
v,
|
|
112
|
+
{
|
|
113
|
+
row: b[y.index],
|
|
114
|
+
style: { height: `${y.size}px` }
|
|
115
|
+
},
|
|
116
|
+
b[y.index].id
|
|
117
|
+
)),
|
|
118
|
+
B > 0 && /* @__PURE__ */ t(C, { height: B, colSpan: d })
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
return /* @__PURE__ */ t(
|
|
124
|
+
n,
|
|
70
125
|
{
|
|
71
|
-
ref:
|
|
126
|
+
ref: o,
|
|
72
127
|
"data-slot": "data-table-body",
|
|
73
128
|
[l]: "data-table-body",
|
|
74
129
|
"data-fs-element": "DataTable-Body",
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
children: /* @__PURE__ */ a(i, { colSpan: s, children: r })
|
|
130
|
+
className: a,
|
|
131
|
+
children: b.map((r) => /* @__PURE__ */ t(v, { row: r }, r.id))
|
|
78
132
|
}
|
|
79
133
|
);
|
|
80
134
|
});
|
|
81
135
|
export {
|
|
82
|
-
|
|
136
|
+
U as DataTableBody
|
|
83
137
|
};
|
|
84
138
|
//# 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\"\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 {
|
|
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,8 +1,8 @@
|
|
|
1
1
|
import { jsx as o, jsxs as n } from "react/jsx-runtime";
|
|
2
2
|
import * as l from "react";
|
|
3
|
-
import { mergeClasses as h, SLOT_ATTR as g, shorthands as
|
|
3
|
+
import { mergeClasses as h, SLOT_ATTR as g, shorthands as s } from "@epilot/zenith-runtime/v1";
|
|
4
4
|
import { makeZenithStyles as p } from "../../styles/make-styles.js";
|
|
5
|
-
import { accent11 as m, accentA8 as u,
|
|
5
|
+
import { accent11 as m, accentA8 as u, accentSoft as w, spacingElement1 as c, radiusLg as k } from "../../tokens/index.js";
|
|
6
6
|
const f = (e) => /* @__PURE__ */ n(
|
|
7
7
|
"svg",
|
|
8
8
|
{
|
|
@@ -62,9 +62,9 @@ const f = (e) => /* @__PURE__ */ n(
|
|
|
62
62
|
display: "inline-flex",
|
|
63
63
|
alignItems: "center",
|
|
64
64
|
gap: c,
|
|
65
|
-
...
|
|
66
|
-
...
|
|
67
|
-
...
|
|
65
|
+
...s.paddingBlock("0.125rem"),
|
|
66
|
+
...s.paddingInline(c),
|
|
67
|
+
...s.borderRadius(k),
|
|
68
68
|
cursor: "pointer",
|
|
69
69
|
transitionProperty: "color, background-color, border-color",
|
|
70
70
|
transitionDuration: "150ms",
|
|
@@ -103,8 +103,8 @@ function x({ column: e, title: t, className: a }, d) {
|
|
|
103
103
|
[g]: "data-table-column-header",
|
|
104
104
|
"data-fs-element": "DataTable-SortButton",
|
|
105
105
|
onClick: () => e.toggleSorting(),
|
|
106
|
-
onKeyDown: (
|
|
107
|
-
(
|
|
106
|
+
onKeyDown: (i) => {
|
|
107
|
+
(i.key === "Enter" || i.key === " ") && (i.preventDefault(), e.toggleSorting());
|
|
108
108
|
},
|
|
109
109
|
"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
110
|
className: h(r.button, a),
|
|
@@ -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.
|
|
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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"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { jsxs as b, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import * as A from "react";
|
|
3
|
+
import { useCallback as N } from "react";
|
|
4
|
+
import { useSensors as M, useSensor as O, DndContext as E, closestCenter as L, KeyboardSensor as R, PointerSensor as k } from "../../vendor/.bun/@dnd-kit_core@6.3.1_6f4b9a1cfb20c0ae/vendor/@dnd-kit/core/dist/core.esm.js";
|
|
5
|
+
import { arrayMove as B, SortableContext as _, verticalListSortingStrategy as G, sortableKeyboardCoordinates as z, useSortable as Z } from "../../vendor/.bun/@dnd-kit_sortable@10.0.0_1d291640e1250bbe/vendor/@dnd-kit/sortable/dist/sortable.esm.js";
|
|
6
|
+
import { CSS as j } from "../../vendor/.bun/@dnd-kit_utilities@3.2.2_62547eec5a2188e3/vendor/@dnd-kit/utilities/dist/utilities.esm.js";
|
|
7
|
+
import { SLOT_ATTR as x, shorthands as d, mergeClasses as F } from "@epilot/zenith-runtime/v1";
|
|
8
|
+
import { makeZenithStyles as K } from "../../styles/make-styles.js";
|
|
9
|
+
import { accentA8 as V, grayA12 as W, grayA8 as X, grayA3 as H, leadingSm as P, textSm as $, spacingElement2 as C, radiusSm as q } from "../../tokens/index.js";
|
|
10
|
+
import { Button as J } from "../button/button.js";
|
|
11
|
+
import { DropdownMenu as Q, DropdownMenuTrigger as U, DropdownMenuContent as Y, DropdownMenuLabel as ee, DropdownMenuSeparator as te } from "../dropdown-menu/dropdown-menu.js";
|
|
12
|
+
import { useDataTable as re } from "./hooks/use-data-table.js";
|
|
13
|
+
const ne = (t) => /* @__PURE__ */ e(
|
|
14
|
+
"svg",
|
|
15
|
+
{
|
|
16
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
+
width: "20",
|
|
18
|
+
height: "20",
|
|
19
|
+
viewBox: "0 -960 960 960",
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
...t,
|
|
22
|
+
children: /* @__PURE__ */ e("path", { d: "M320-440v-287l-76 76-44-44 150-150 150 150-44 44-76-76v287h-60ZM560-155 410-305l44-44 76 76v-287h60v287l76-76 44 44L560-155Z" })
|
|
23
|
+
}
|
|
24
|
+
), oe = (t) => /* @__PURE__ */ b(
|
|
25
|
+
"svg",
|
|
26
|
+
{
|
|
27
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
28
|
+
width: "16",
|
|
29
|
+
height: "16",
|
|
30
|
+
viewBox: "0 0 24 24",
|
|
31
|
+
fill: "currentColor",
|
|
32
|
+
...t,
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ e("circle", { cx: "9", cy: "5", r: "1.5" }),
|
|
35
|
+
/* @__PURE__ */ e("circle", { cx: "15", cy: "5", r: "1.5" }),
|
|
36
|
+
/* @__PURE__ */ e("circle", { cx: "9", cy: "12", r: "1.5" }),
|
|
37
|
+
/* @__PURE__ */ e("circle", { cx: "15", cy: "12", r: "1.5" }),
|
|
38
|
+
/* @__PURE__ */ e("circle", { cx: "9", cy: "19", r: "1.5" }),
|
|
39
|
+
/* @__PURE__ */ e("circle", { cx: "15", cy: "19", r: "1.5" })
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
), T = K({
|
|
43
|
+
icon: {
|
|
44
|
+
width: "1rem",
|
|
45
|
+
height: "1rem"
|
|
46
|
+
},
|
|
47
|
+
gripIcon: {
|
|
48
|
+
width: "14px",
|
|
49
|
+
height: "14px"
|
|
50
|
+
},
|
|
51
|
+
srOnly: {
|
|
52
|
+
position: "absolute",
|
|
53
|
+
width: "1px",
|
|
54
|
+
height: "1px",
|
|
55
|
+
...d.padding(0),
|
|
56
|
+
...d.margin("-1px"),
|
|
57
|
+
...d.overflow("hidden"),
|
|
58
|
+
clip: "rect(0, 0, 0, 0)",
|
|
59
|
+
whiteSpace: "nowrap"
|
|
60
|
+
},
|
|
61
|
+
item: {
|
|
62
|
+
display: "flex",
|
|
63
|
+
alignItems: "center",
|
|
64
|
+
...d.gap(C),
|
|
65
|
+
...d.borderRadius(q),
|
|
66
|
+
paddingLeft: C,
|
|
67
|
+
paddingRight: C,
|
|
68
|
+
paddingTop: "6px",
|
|
69
|
+
paddingBottom: "6px",
|
|
70
|
+
fontSize: $,
|
|
71
|
+
lineHeight: P
|
|
72
|
+
},
|
|
73
|
+
itemDragging: {
|
|
74
|
+
zIndex: 50,
|
|
75
|
+
backgroundColor: H,
|
|
76
|
+
opacity: 0.8
|
|
77
|
+
},
|
|
78
|
+
dragHandle: {
|
|
79
|
+
display: "inline-flex",
|
|
80
|
+
flexShrink: 0,
|
|
81
|
+
cursor: "grab",
|
|
82
|
+
touchAction: "none",
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
color: X,
|
|
85
|
+
backgroundColor: "transparent",
|
|
86
|
+
...d.borderWidth(0),
|
|
87
|
+
...d.padding(0),
|
|
88
|
+
"&:hover": {
|
|
89
|
+
color: W
|
|
90
|
+
},
|
|
91
|
+
"&:focus-visible": {
|
|
92
|
+
outlineWidth: "2px",
|
|
93
|
+
outlineStyle: "solid",
|
|
94
|
+
outlineOffset: "2px",
|
|
95
|
+
outlineColor: V
|
|
96
|
+
},
|
|
97
|
+
"&:active": {
|
|
98
|
+
cursor: "grabbing"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
itemLabel: {
|
|
102
|
+
userSelect: "none"
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
function ae({
|
|
106
|
+
column: t,
|
|
107
|
+
dragHandleLabel: r
|
|
108
|
+
}) {
|
|
109
|
+
const n = T(), {
|
|
110
|
+
attributes: c,
|
|
111
|
+
listeners: u,
|
|
112
|
+
setNodeRef: g,
|
|
113
|
+
transform: p,
|
|
114
|
+
transition: f,
|
|
115
|
+
isDragging: o
|
|
116
|
+
} = Z({ id: t.id }), i = t.columnDef.meta, a = (i == null ? void 0 : i.visibilityLabel) ?? (typeof t.columnDef.header == "string" ? t.columnDef.header : t.id), s = r ? typeof r == "function" ? r(a) : r : `Drag to reorder ${a}`;
|
|
117
|
+
return /* @__PURE__ */ b(
|
|
118
|
+
"div",
|
|
119
|
+
{
|
|
120
|
+
ref: g,
|
|
121
|
+
style: {
|
|
122
|
+
transform: j.Transform.toString(p),
|
|
123
|
+
transition: f
|
|
124
|
+
},
|
|
125
|
+
className: F(n.item, o && n.itemDragging),
|
|
126
|
+
"data-slot": "data-table-column-order-item",
|
|
127
|
+
[x]: "data-table-column-order-item",
|
|
128
|
+
"data-fs-element": "DataTable-ColumnOrder-Item",
|
|
129
|
+
children: [
|
|
130
|
+
/* @__PURE__ */ e(
|
|
131
|
+
"button",
|
|
132
|
+
{
|
|
133
|
+
type: "button",
|
|
134
|
+
className: n.dragHandle,
|
|
135
|
+
"data-slot": "data-table-column-order-drag-handle",
|
|
136
|
+
[x]: "data-table-column-order-drag-handle",
|
|
137
|
+
"aria-label": s,
|
|
138
|
+
...c,
|
|
139
|
+
...u,
|
|
140
|
+
children: /* @__PURE__ */ e(oe, { className: n.gripIcon })
|
|
141
|
+
}
|
|
142
|
+
),
|
|
143
|
+
/* @__PURE__ */ e(
|
|
144
|
+
"span",
|
|
145
|
+
{
|
|
146
|
+
className: n.itemLabel,
|
|
147
|
+
"data-slot": "data-table-column-order-item-label",
|
|
148
|
+
[x]: "data-table-column-order-item-label",
|
|
149
|
+
children: a
|
|
150
|
+
}
|
|
151
|
+
)
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
function ie({
|
|
157
|
+
columns: t,
|
|
158
|
+
currentOrder: r,
|
|
159
|
+
table: n,
|
|
160
|
+
dragHandleLabel: c,
|
|
161
|
+
announcements: u,
|
|
162
|
+
screenReaderInstructions: g
|
|
163
|
+
}) {
|
|
164
|
+
const p = M(
|
|
165
|
+
O(k, {
|
|
166
|
+
activationConstraint: { distance: 3 }
|
|
167
|
+
}),
|
|
168
|
+
O(R, {
|
|
169
|
+
coordinateGetter: z
|
|
170
|
+
})
|
|
171
|
+
), f = N(
|
|
172
|
+
(o) => {
|
|
173
|
+
const { active: i, over: a } = o;
|
|
174
|
+
if (!a || i.id === a.id) return;
|
|
175
|
+
const s = r.indexOf(i.id), l = r.indexOf(a.id);
|
|
176
|
+
if (s === -1 || l === -1) return;
|
|
177
|
+
const y = B(r, s, l);
|
|
178
|
+
n.setColumnOrder(y);
|
|
179
|
+
},
|
|
180
|
+
[r, n]
|
|
181
|
+
);
|
|
182
|
+
return /* @__PURE__ */ e(
|
|
183
|
+
E,
|
|
184
|
+
{
|
|
185
|
+
sensors: p,
|
|
186
|
+
collisionDetection: L,
|
|
187
|
+
onDragEnd: f,
|
|
188
|
+
accessibility: {
|
|
189
|
+
announcements: u,
|
|
190
|
+
screenReaderInstructions: g
|
|
191
|
+
},
|
|
192
|
+
children: /* @__PURE__ */ e(
|
|
193
|
+
_,
|
|
194
|
+
{
|
|
195
|
+
items: t.map((o) => o.id),
|
|
196
|
+
strategy: G,
|
|
197
|
+
children: t.map((o) => /* @__PURE__ */ e(
|
|
198
|
+
ae,
|
|
199
|
+
{
|
|
200
|
+
column: o,
|
|
201
|
+
dragHandleLabel: c
|
|
202
|
+
},
|
|
203
|
+
o.id
|
|
204
|
+
))
|
|
205
|
+
}
|
|
206
|
+
)
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
const xe = A.forwardRef(function({
|
|
211
|
+
icon: r,
|
|
212
|
+
trigger: n,
|
|
213
|
+
label: c,
|
|
214
|
+
dragHandleLabel: u,
|
|
215
|
+
announcements: g,
|
|
216
|
+
screenReaderInstructions: p,
|
|
217
|
+
contentClassName: f,
|
|
218
|
+
align: o = "end",
|
|
219
|
+
...i
|
|
220
|
+
}, a) {
|
|
221
|
+
const s = T(), { table: l } = re(), y = l.getAllLeafColumns(), w = y.filter((m) => {
|
|
222
|
+
if (m.id === "select") return !1;
|
|
223
|
+
const h = m.columnDef.meta;
|
|
224
|
+
return (h == null ? void 0 : h.enableOrdering) !== !1;
|
|
225
|
+
});
|
|
226
|
+
if (w.length === 0)
|
|
227
|
+
return null;
|
|
228
|
+
const S = l.getState().columnOrder && l.getState().columnOrder.length > 0 ? l.getState().columnOrder : y.map((m) => m.id), I = [...w].sort((m, h) => {
|
|
229
|
+
const D = S.indexOf(m.id), v = S.indexOf(h.id);
|
|
230
|
+
return (D === -1 ? Number.MAX_SAFE_INTEGER : D) - (v === -1 ? Number.MAX_SAFE_INTEGER : v);
|
|
231
|
+
});
|
|
232
|
+
return /* @__PURE__ */ b(Q, { ref: a, ...i, children: [
|
|
233
|
+
/* @__PURE__ */ e(U, { asChild: !0, children: n ?? /* @__PURE__ */ b(
|
|
234
|
+
J,
|
|
235
|
+
{
|
|
236
|
+
variant: "tertiary",
|
|
237
|
+
size: "sm",
|
|
238
|
+
"data-slot": "data-table-column-order-trigger",
|
|
239
|
+
[x]: "data-table-column-order-trigger",
|
|
240
|
+
"data-fs-element": "DataTable-ColumnOrder-Trigger",
|
|
241
|
+
children: [
|
|
242
|
+
r ?? /* @__PURE__ */ e(ne, { className: s.icon }),
|
|
243
|
+
/* @__PURE__ */ e("span", { className: s.srOnly, children: c })
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
) }),
|
|
247
|
+
/* @__PURE__ */ b(
|
|
248
|
+
Y,
|
|
249
|
+
{
|
|
250
|
+
align: o,
|
|
251
|
+
className: f,
|
|
252
|
+
"data-slot": "data-table-column-order-content",
|
|
253
|
+
[x]: "data-table-column-order-content",
|
|
254
|
+
"data-fs-element": "DataTable-ColumnOrder-Content",
|
|
255
|
+
children: [
|
|
256
|
+
/* @__PURE__ */ e(ee, { children: c }),
|
|
257
|
+
/* @__PURE__ */ e(te, {}),
|
|
258
|
+
/* @__PURE__ */ e(
|
|
259
|
+
ie,
|
|
260
|
+
{
|
|
261
|
+
columns: I,
|
|
262
|
+
currentOrder: S,
|
|
263
|
+
table: l,
|
|
264
|
+
dragHandleLabel: u,
|
|
265
|
+
announcements: g,
|
|
266
|
+
screenReaderInstructions: p
|
|
267
|
+
}
|
|
268
|
+
)
|
|
269
|
+
]
|
|
270
|
+
}
|
|
271
|
+
)
|
|
272
|
+
] });
|
|
273
|
+
});
|
|
274
|
+
export {
|
|
275
|
+
xe as DataTableColumnOrder
|
|
276
|
+
};
|
|
277
|
+
//# sourceMappingURL=data-table-column-order.js.map
|