@epilot/volt-ui-experimental-griffel 0.3.0 → 0.3.1
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 +66 -126
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +138 -238
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/avatar/avatar-group.js +47 -102
- package/dist/components/avatar/avatar-group.js.map +1 -1
- package/dist/components/avatar/avatar.js +72 -96
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.js +48 -56
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +49 -97
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button.js +49 -57
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button-group/button-group.js +31 -55
- package/dist/components/button-group/button-group.js.map +1 -1
- package/dist/components/callout/callout.js +164 -288
- package/dist/components/callout/callout.js.map +1 -1
- package/dist/components/card/card.js +81 -137
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +48 -96
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js +107 -155
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js.map +1 -1
- package/dist/components/command/command.js +161 -285
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table-body.js +54 -114
- package/dist/components/data-table/data-table-body.js.map +1 -1
- package/dist/components/data-table/data-table-column-header.js +45 -117
- package/dist/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/data-table/data-table-column-visibility.js +39 -98
- package/dist/components/data-table/data-table-column-visibility.js.map +1 -1
- package/dist/components/data-table/data-table-content.js +58 -90
- package/dist/components/data-table/data-table-content.js.map +1 -1
- package/dist/components/data-table/data-table-error.js +39 -83
- package/dist/components/data-table/data-table-error.js.map +1 -1
- package/dist/components/data-table/data-table-header.js +54 -88
- package/dist/components/data-table/data-table-header.js.map +1 -1
- package/dist/components/data-table/data-table-loading.js +15 -27
- package/dist/components/data-table/data-table-loading.js.map +1 -1
- package/dist/components/data-table/data-table-pagination.js +19 -27
- package/dist/components/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/data-table/data-table-row.js +64 -87
- package/dist/components/data-table/data-table-row.js.map +1 -1
- package/dist/components/data-table/data-table-toolbar.js +16 -24
- package/dist/components/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/data-table/data-table.js +145 -181
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +214 -342
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/range-calendar.js +92 -132
- package/dist/components/date-range-picker/range-calendar.js.map +1 -1
- package/dist/components/date-time-picker/calendar.js +317 -501
- package/dist/components/date-time-picker/calendar.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-context.js +60 -64
- package/dist/components/date-time-picker/date-time-picker-context.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-input.js +149 -249
- 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 +165 -273
- package/dist/components/date-time-picker/date-time-picker-panel.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-popover.js +14 -22
- package/dist/components/date-time-picker/date-time-picker-popover.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker.js +90 -134
- package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +132 -198
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/density-provider/density-provider.js +19 -39
- package/dist/components/density-provider/density-provider.js.map +1 -1
- package/dist/components/dialog/dialog.js +145 -253
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +164 -272
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +204 -384
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +243 -435
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field-select.js +19 -23
- package/dist/components/field/field-select.js.map +1 -1
- package/dist/components/field/field.js +189 -297
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/label/label.js +19 -27
- package/dist/components/label/label.js.map +1 -1
- package/dist/components/list/list.js +315 -595
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/option-card/option-card.js +159 -323
- package/dist/components/option-card/option-card.js.map +1 -1
- package/dist/components/pill/pill.js +68 -84
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/popover/popover.js +48 -84
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radio/radio.js +49 -89
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/scroll-overflow/scroll-overflow.js +198 -350
- package/dist/components/scroll-overflow/scroll-overflow.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +97 -141
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +200 -396
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/separator/separator.js +16 -24
- package/dist/components/separator/separator.js.map +1 -1
- package/dist/components/skeleton/skeleton.js +43 -83
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/spinner/spinner.js +20 -44
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/switch/switch.js +83 -155
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +210 -468
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +131 -211
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/tabs.js +58 -94
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/text/text.js +32 -40
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/toast/toast.js +111 -187
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle/toggle-group.js +24 -40
- package/dist/components/toggle/toggle-group.js.map +1 -1
- package/dist/components/toggle/toggle.js +39 -47
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +62 -106
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/lib/clear-button.js +15 -27
- package/dist/lib/clear-button.js.map +1 -1
- package/dist/lib/icons.js +6 -18
- package/dist/lib/icons.js.map +1 -1
- package/dist/tokens.json +1 -1
- package/package.json +1 -1
- package/dist/_virtual/jsx-dev-runtime.js +0 -5
- package/dist/_virtual/jsx-dev-runtime.js.map +0 -1
- package/dist/_virtual/react-jsx-dev-runtime.development.js +0 -5
- package/dist/_virtual/react-jsx-dev-runtime.development.js.map +0 -1
- package/dist/_virtual/react-jsx-dev-runtime.production.js +0 -5
- package/dist/_virtual/react-jsx-dev-runtime.production.js.map +0 -1
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.development.js +0 -236
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.development.js.map +0 -1
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.production.js +0 -21
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.production.js.map +0 -1
- package/dist/vendor/react/jsx-dev-runtime.js +0 -9
- package/dist/vendor/react/jsx-dev-runtime.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
import { shorthands as
|
|
4
|
-
import { SLOT_ATTR as
|
|
5
|
-
import { mergeClasses as
|
|
6
|
-
import { makeVoltStyles as
|
|
7
|
-
import { spacingLayout2 as
|
|
8
|
-
import { Button as
|
|
9
|
-
const
|
|
1
|
+
import { jsx as t, jsxs as g, Fragment as p } from "react/jsx-runtime";
|
|
2
|
+
import * as d from "react";
|
|
3
|
+
import { shorthands as e } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
4
|
+
import { SLOT_ATTR as T } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
5
|
+
import { mergeClasses as h } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
6
|
+
import { makeVoltStyles as q } from "../../styles/make-styles.js";
|
|
7
|
+
import { spacingLayout2 as f, spacingGroup1 as x, grayA11 as y, leadingSm as u, textSm as w, grayA12 as v, fontWeightMedium as S, leadingBase as B, textBase as A, spacingElement2 as E, errorA11 as N, spacingElement1 as Z } from "../../tokens/index.js";
|
|
8
|
+
import { Button as b } from "../button/button.js";
|
|
9
|
+
const C = (o) => /* @__PURE__ */ t(
|
|
10
10
|
"svg",
|
|
11
11
|
{
|
|
12
12
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -14,115 +14,71 @@ const y = (t) => /* @__PURE__ */ e.jsxDEV(
|
|
|
14
14
|
viewBox: "0 -960 960 960",
|
|
15
15
|
width: "24px",
|
|
16
16
|
fill: "currentColor",
|
|
17
|
-
...
|
|
18
|
-
children: /* @__PURE__ */
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
columnNumber: 5
|
|
22
|
-
}, void 0)
|
|
23
|
-
},
|
|
24
|
-
void 0,
|
|
25
|
-
!1,
|
|
26
|
-
{
|
|
27
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
28
|
-
lineNumber: 11,
|
|
29
|
-
columnNumber: 3
|
|
30
|
-
},
|
|
31
|
-
void 0
|
|
32
|
-
), V = f({
|
|
17
|
+
...o,
|
|
18
|
+
children: /* @__PURE__ */ t("path", { d: "M480-280q17 0 28.5-11.5T520-320q0-17-11.5-28.5T480-360q-17 0-28.5 11.5T440-320q0 17 11.5 28.5T480-280Zm0-160q17 0 28.5-11.5T520-480v-160q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v160q0 17 11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" })
|
|
19
|
+
}
|
|
20
|
+
), j = q({
|
|
33
21
|
root: {
|
|
34
22
|
display: "flex",
|
|
35
23
|
flexDirection: "column",
|
|
36
24
|
alignItems: "center",
|
|
37
25
|
justifyContent: "center",
|
|
38
|
-
gap:
|
|
39
|
-
...
|
|
26
|
+
gap: Z,
|
|
27
|
+
...e.paddingBlock(f),
|
|
40
28
|
textAlign: "center"
|
|
41
29
|
},
|
|
42
30
|
icon: {
|
|
43
31
|
width: "2.5rem",
|
|
44
32
|
height: "2.5rem",
|
|
45
|
-
color:
|
|
33
|
+
color: N,
|
|
46
34
|
marginBottom: E
|
|
47
35
|
},
|
|
48
36
|
title: {
|
|
49
|
-
fontSize:
|
|
50
|
-
lineHeight:
|
|
51
|
-
fontWeight:
|
|
37
|
+
fontSize: A,
|
|
38
|
+
lineHeight: B,
|
|
39
|
+
fontWeight: S,
|
|
52
40
|
color: v,
|
|
53
|
-
...
|
|
41
|
+
...e.margin(0)
|
|
54
42
|
},
|
|
55
43
|
description: {
|
|
56
|
-
fontSize:
|
|
57
|
-
lineHeight:
|
|
58
|
-
color:
|
|
44
|
+
fontSize: w,
|
|
45
|
+
lineHeight: u,
|
|
46
|
+
color: y,
|
|
59
47
|
maxWidth: "28rem",
|
|
60
|
-
...
|
|
48
|
+
...e.margin(0)
|
|
61
49
|
},
|
|
62
50
|
retry: {
|
|
63
51
|
marginTop: x
|
|
64
52
|
}
|
|
65
|
-
}),
|
|
66
|
-
const r =
|
|
67
|
-
return /* @__PURE__ */
|
|
53
|
+
}), M = d.forwardRef(function({ title: n, description: a, retryLabel: s, onRetry: i, className: l, children: m }, c) {
|
|
54
|
+
const r = j();
|
|
55
|
+
return /* @__PURE__ */ t(
|
|
68
56
|
"div",
|
|
69
57
|
{
|
|
70
58
|
ref: c,
|
|
71
59
|
"data-slot": "data-table-error",
|
|
72
|
-
[
|
|
60
|
+
[T]: "data-table-error",
|
|
73
61
|
role: "alert",
|
|
74
|
-
className:
|
|
75
|
-
children: m ?? /* @__PURE__ */
|
|
76
|
-
/* @__PURE__ */
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
/* @__PURE__ */ e.jsxDEV("p", { className: r.title, children: o }, void 0, !1, {
|
|
82
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
83
|
-
lineNumber: 97,
|
|
84
|
-
columnNumber: 11
|
|
85
|
-
}, this),
|
|
86
|
-
l && /* @__PURE__ */ e.jsxDEV("p", { className: r.description, children: l }, void 0, !1, {
|
|
87
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
88
|
-
lineNumber: 98,
|
|
89
|
-
columnNumber: 27
|
|
90
|
-
}, this),
|
|
91
|
-
i && /* @__PURE__ */ e.jsxDEV(
|
|
92
|
-
k,
|
|
62
|
+
className: h(r.root, l),
|
|
63
|
+
children: m ?? /* @__PURE__ */ g(p, { children: [
|
|
64
|
+
/* @__PURE__ */ t(C, { className: r.icon }),
|
|
65
|
+
/* @__PURE__ */ t("p", { className: r.title, children: n }),
|
|
66
|
+
a && /* @__PURE__ */ t("p", { className: r.description, children: a }),
|
|
67
|
+
i && /* @__PURE__ */ t(
|
|
68
|
+
b,
|
|
93
69
|
{
|
|
94
70
|
variant: "secondary",
|
|
95
71
|
size: "sm",
|
|
96
72
|
onClick: i,
|
|
97
73
|
className: r.retry,
|
|
98
74
|
children: s
|
|
99
|
-
}
|
|
100
|
-
void 0,
|
|
101
|
-
!1,
|
|
102
|
-
{
|
|
103
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
104
|
-
lineNumber: 100,
|
|
105
|
-
columnNumber: 13
|
|
106
|
-
},
|
|
107
|
-
this
|
|
75
|
+
}
|
|
108
76
|
)
|
|
109
|
-
] }
|
|
110
|
-
|
|
111
|
-
lineNumber: 95,
|
|
112
|
-
columnNumber: 9
|
|
113
|
-
}, this)
|
|
114
|
-
},
|
|
115
|
-
void 0,
|
|
116
|
-
!1,
|
|
117
|
-
{
|
|
118
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
119
|
-
lineNumber: 87,
|
|
120
|
-
columnNumber: 5
|
|
121
|
-
},
|
|
122
|
-
this
|
|
77
|
+
] })
|
|
78
|
+
}
|
|
123
79
|
);
|
|
124
80
|
});
|
|
125
81
|
export {
|
|
126
|
-
|
|
82
|
+
M as DataTableError
|
|
127
83
|
};
|
|
128
84
|
//# sourceMappingURL=data-table-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-error.js","sources":["../../../src/components/data-table/data-table-error.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { ReactNode } from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { Button } from \"../button/button\"\n\nconst ErrorIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-280q17 0 28.5-11.5T520-320q0-17-11.5-28.5T480-360q-17 0-28.5 11.5T440-320q0 17 11.5 28.5T480-280Zm0-160q17 0 28.5-11.5T520-480v-160q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v160q0 17 11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\" />\n </svg>\n)\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: tokens.spacingElement1,\n ...shorthands.paddingBlock(tokens.spacingLayout2),\n textAlign: \"center\",\n },\n icon: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n color: tokens.errorA11,\n marginBottom: tokens.spacingElement2,\n },\n title: {\n fontSize: tokens.textBase,\n lineHeight: tokens.leadingBase,\n fontWeight: tokens.fontWeightMedium,\n color: tokens.grayA12,\n ...shorthands.margin(0),\n },\n description: {\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n maxWidth: \"28rem\",\n ...shorthands.margin(0),\n },\n retry: {\n marginTop: tokens.spacingGroup1,\n },\n})\n\nexport type DataTableErrorProps = {\n /** Error title text */\n title?: string\n /** Error description/message */\n description?: ReactNode\n /** Retry button text */\n retryLabel?: string\n /** Callback when retry is clicked */\n onRetry?: () => void\n /** Additional class name */\n className?: string\n /** Custom error content (overrides default error display) */\n children?: ReactNode\n}\n\n/**\n * Error state display for DataTable.\n * Shows an error icon, message, and optional retry button.\n */\nexport const DataTableError = React.forwardRef<\n HTMLDivElement,\n DataTableErrorProps\n>(function DataTableError(\n { title, description, retryLabel, onRetry, className, children },\n ref\n) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"data-table-error\"\n {...{ [SLOT_ATTR]: \"data-table-error\" }}\n role=\"alert\"\n className={mergeClasses(styles.root, className)}\n >\n {children ?? (\n <>\n <ErrorIcon className={styles.icon} />\n <p className={styles.title}>{title}</p>\n {description && <p className={styles.description}>{description}</p>}\n {onRetry && (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={onRetry}\n className={styles.retry}\n >\n {retryLabel}\n </Button>\n )}\n </>\n )}\n </div>\n )\n})\n"],"names":["ErrorIcon","props","
|
|
1
|
+
{"version":3,"file":"data-table-error.js","sources":["../../../src/components/data-table/data-table-error.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { ReactNode } from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { Button } from \"../button/button\"\n\nconst ErrorIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 -960 960 960\"\n width=\"24px\"\n fill=\"currentColor\"\n {...props}\n >\n <path d=\"M480-280q17 0 28.5-11.5T520-320q0-17-11.5-28.5T480-360q-17 0-28.5 11.5T440-320q0 17 11.5 28.5T480-280Zm0-160q17 0 28.5-11.5T520-480v-160q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640v160q0 17 11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\" />\n </svg>\n)\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: tokens.spacingElement1,\n ...shorthands.paddingBlock(tokens.spacingLayout2),\n textAlign: \"center\",\n },\n icon: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n color: tokens.errorA11,\n marginBottom: tokens.spacingElement2,\n },\n title: {\n fontSize: tokens.textBase,\n lineHeight: tokens.leadingBase,\n fontWeight: tokens.fontWeightMedium,\n color: tokens.grayA12,\n ...shorthands.margin(0),\n },\n description: {\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n maxWidth: \"28rem\",\n ...shorthands.margin(0),\n },\n retry: {\n marginTop: tokens.spacingGroup1,\n },\n})\n\nexport type DataTableErrorProps = {\n /** Error title text */\n title?: string\n /** Error description/message */\n description?: ReactNode\n /** Retry button text */\n retryLabel?: string\n /** Callback when retry is clicked */\n onRetry?: () => void\n /** Additional class name */\n className?: string\n /** Custom error content (overrides default error display) */\n children?: ReactNode\n}\n\n/**\n * Error state display for DataTable.\n * Shows an error icon, message, and optional retry button.\n */\nexport const DataTableError = React.forwardRef<\n HTMLDivElement,\n DataTableErrorProps\n>(function DataTableError(\n { title, description, retryLabel, onRetry, className, children },\n ref\n) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"data-table-error\"\n {...{ [SLOT_ATTR]: \"data-table-error\" }}\n role=\"alert\"\n className={mergeClasses(styles.root, className)}\n >\n {children ?? (\n <>\n <ErrorIcon className={styles.icon} />\n <p className={styles.title}>{title}</p>\n {description && <p className={styles.description}>{description}</p>}\n {onRetry && (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n onClick={onRetry}\n className={styles.retry}\n >\n {retryLabel}\n </Button>\n )}\n </>\n )}\n </div>\n )\n})\n"],"names":["ErrorIcon","props","jsx","useStyles","makeVoltStyles","tokens.spacingElement1","shorthands","tokens.spacingLayout2","tokens.errorA11","tokens.spacingElement2","tokens.textBase","tokens.leadingBase","tokens.fontWeightMedium","tokens.grayA12","tokens.textSm","tokens.leadingSm","tokens.grayA11","tokens.spacingGroup1","DataTableError","React","title","description","retryLabel","onRetry","className","children","ref","styles","SLOT_ATTR","mergeClasses","jsxs","Fragment","Button"],"mappings":";;;;;;;;AASA,MAAMA,IAAY,CAACC,MACjB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,GAAGD;AAAA,IAEJ,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,kfAAA,CAAkf;AAAA,EAAA;AAC5f,GAGIC,IAAYC,EAAe;AAAA,EAC/B,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,KAAKC;AAAAA,IACL,GAAGC,EAAW,aAAaC,CAAqB;AAAA,IAChD,WAAW;AAAA,EAAA;AAAA,EAEb,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOC;AAAAA,IACP,cAAcC;AAAAA,EAAO;AAAA,EAEvB,OAAO;AAAA,IACL,UAAUC;AAAAA,IACV,YAAYC;AAAAA,IACZ,YAAYC;AAAAA,IACZ,OAAOC;AAAAA,IACP,GAAGP,EAAW,OAAO,CAAC;AAAA,EAAA;AAAA,EAExB,aAAa;AAAA,IACX,UAAUQ;AAAAA,IACV,YAAYC;AAAAA,IACZ,OAAOC;AAAAA,IACP,UAAU;AAAA,IACV,GAAGV,EAAW,OAAO,CAAC;AAAA,EAAA;AAAA,EAExB,OAAO;AAAA,IACL,WAAWW;AAAAA,EAAO;AAEtB,CAAC,GAqBYC,IAAiBC,EAAM,WAGlC,SACA,EAAE,OAAAC,GAAO,aAAAC,GAAa,YAAAC,GAAY,SAAAC,GAAS,WAAAC,GAAW,UAAAC,EAAA,GACtDC,GACA;AACA,QAAMC,IAASxB,EAAA;AAEf,SACE,gBAAAD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAwB;AAAA,MACA,aAAU;AAAA,MACJ,CAACE,CAAS,GAAG;AAAA,MACnB,MAAK;AAAA,MACL,WAAWC,EAAaF,EAAO,MAAMH,CAAS;AAAA,MAE7C,eACC,gBAAAM,EAAAC,GAAA,EACE,UAAA;AAAA,QAAA,gBAAA7B,EAACF,GAAA,EAAU,WAAW2B,EAAO,KAAA,CAAM;AAAA,QACnC,gBAAAzB,EAAC,KAAA,EAAE,WAAWyB,EAAO,OAAQ,UAAAP,GAAM;AAAA,QAClCC,KAAe,gBAAAnB,EAAC,KAAA,EAAE,WAAWyB,EAAO,aAAc,UAAAN,GAAY;AAAA,QAC9DE,KACC,gBAAArB;AAAA,UAAC8B;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,SAAST;AAAA,YACT,WAAWI,EAAO;AAAA,YAEjB,UAAAL;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
import { flexRender as
|
|
4
|
-
import { shorthands as
|
|
5
|
-
import { SLOT_ATTR as
|
|
6
|
-
import { mergeClasses as
|
|
7
|
-
import { makeVoltStyles as
|
|
8
|
-
import { grayA6 as
|
|
9
|
-
import { TableHeader as
|
|
10
|
-
import { getPinnedColumnOffset as
|
|
11
|
-
import { useDataTable as
|
|
12
|
-
import { useDataTableContent as
|
|
13
|
-
const
|
|
1
|
+
import { jsx as a, jsxs as L } from "react/jsx-runtime";
|
|
2
|
+
import * as P from "react";
|
|
3
|
+
import { flexRender as W } from "../../vendor/@tanstack/react-table/build/lib/index.js";
|
|
4
|
+
import { shorthands as z } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
5
|
+
import { SLOT_ATTR as I } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
|
+
import { mergeClasses as k } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
|
+
import { makeVoltStyles as O } from "../../styles/make-styles.js";
|
|
8
|
+
import { grayA6 as _, gray2 as A, fontWeightSemibold as F } from "../../tokens/index.js";
|
|
9
|
+
import { TableHeader as N, TableRow as $, TableHead as g } from "../table/table.js";
|
|
10
|
+
import { getPinnedColumnOffset as j, isLastLeftPinnedColumn as U, isFirstRightPinnedColumn as E } from "./data-table-pinning-utils.js";
|
|
11
|
+
import { useDataTable as Q } from "./hooks/use-data-table.js";
|
|
12
|
+
import { useDataTableContent as V } from "./hooks/use-data-table-content.js";
|
|
13
|
+
const q = 150, B = O({
|
|
14
14
|
headerTitle: {
|
|
15
15
|
display: "block",
|
|
16
|
-
...
|
|
16
|
+
...z.overflow("hidden"),
|
|
17
17
|
whiteSpace: "nowrap",
|
|
18
|
-
fontWeight:
|
|
18
|
+
fontWeight: F
|
|
19
19
|
},
|
|
20
20
|
shadowLeft: {
|
|
21
21
|
boxShadow: "2px 0 5px -2px rgba(0,0,0,0.1)"
|
|
@@ -23,112 +23,78 @@ const Q = 150, q = j({
|
|
|
23
23
|
shadowRight: {
|
|
24
24
|
boxShadow: "-2px 0 5px -2px rgba(0,0,0,0.1)"
|
|
25
25
|
}
|
|
26
|
-
}),
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
width:
|
|
30
|
-
minWidth:
|
|
31
|
-
backgroundColor: t ||
|
|
32
|
-
position: t ||
|
|
26
|
+
}), ao = P.forwardRef(function({ className: u, sticky: h = !1, stickyBackground: c = A }, b) {
|
|
27
|
+
const d = B(), { table: i, disableColumnResizing: x, showHeaderBorder: S, fitHeaderWidth: v } = Q(), m = !x, r = V(), p = (r == null ? void 0 : r.spacerWidth) ?? 0, t = h, w = (s) => s.map((o) => {
|
|
28
|
+
const e = o.column.getIsPinned(), f = e ? j(o.column, i) : void 0, T = U(o.column, i), y = E(o.column, i), l = o.column.columnDef.meta, R = l == null ? void 0 : l.align, C = {
|
|
29
|
+
width: m || o.getSize() !== q ? o.getSize() : void 0,
|
|
30
|
+
minWidth: v ? "max-content" : void 0,
|
|
31
|
+
backgroundColor: t || e ? c : void 0,
|
|
32
|
+
position: t || e ? "sticky" : m ? "relative" : void 0,
|
|
33
33
|
top: t ? 0 : void 0,
|
|
34
|
-
left:
|
|
35
|
-
right:
|
|
36
|
-
zIndex:
|
|
34
|
+
left: e === "left" ? `${f}px` : void 0,
|
|
35
|
+
right: e === "right" ? `${f}px` : void 0,
|
|
36
|
+
zIndex: e ? 30 : t ? 10 : void 0,
|
|
37
37
|
// Reduce padding for sortable headers
|
|
38
38
|
...(() => {
|
|
39
|
-
const
|
|
40
|
-
return (
|
|
39
|
+
const n = o.column.columnDef.meta;
|
|
40
|
+
return (n == null ? void 0 : n._sortableHeaderWrapped) || o.column.getCanSort() && typeof o.column.columnDef.header == "function" ? (n == null ? void 0 : n.align) === "right" ? { paddingRight: 8 } : { paddingLeft: 8 } : {};
|
|
41
41
|
})()
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
columnNumber: 9
|
|
46
|
-
}, this);
|
|
47
|
-
return /* @__PURE__ */ i.jsxDEV(
|
|
48
|
-
f,
|
|
42
|
+
}, H = o.column.getIsSorted() === "asc" ? "ascending" : o.column.getIsSorted() === "desc" ? "descending" : o.column.getCanSort() ? "none" : void 0, D = /* @__PURE__ */ a("span", { className: d.headerTitle, children: o.isPlaceholder ? null : W(o.column.columnDef.header, o.getContext()) });
|
|
43
|
+
return /* @__PURE__ */ a(
|
|
44
|
+
g,
|
|
49
45
|
{
|
|
50
46
|
align: R,
|
|
51
|
-
"aria-sort":
|
|
52
|
-
style:
|
|
53
|
-
className:
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
"aria-sort": H,
|
|
48
|
+
style: C,
|
|
49
|
+
className: k(
|
|
50
|
+
T && d.shadowLeft,
|
|
51
|
+
y && d.shadowRight
|
|
56
52
|
),
|
|
57
|
-
children:
|
|
53
|
+
children: D
|
|
58
54
|
},
|
|
59
|
-
|
|
60
|
-
!1,
|
|
61
|
-
{
|
|
62
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-header.tsx",
|
|
63
|
-
lineNumber: 132,
|
|
64
|
-
columnNumber: 9
|
|
65
|
-
},
|
|
66
|
-
this
|
|
55
|
+
o.id
|
|
67
56
|
);
|
|
68
57
|
});
|
|
69
|
-
return /* @__PURE__ */
|
|
70
|
-
|
|
58
|
+
return /* @__PURE__ */ a(
|
|
59
|
+
N,
|
|
71
60
|
{
|
|
72
|
-
ref:
|
|
61
|
+
ref: b,
|
|
73
62
|
"data-slot": "data-table-header",
|
|
74
|
-
[
|
|
63
|
+
[I]: "data-table-header",
|
|
75
64
|
"data-fs-element": "DataTable-Header",
|
|
76
|
-
className:
|
|
77
|
-
children:
|
|
78
|
-
|
|
65
|
+
className: u,
|
|
66
|
+
children: i.getHeaderGroups().map((s) => /* @__PURE__ */ L(
|
|
67
|
+
$,
|
|
79
68
|
{
|
|
80
69
|
noHover: !0,
|
|
81
70
|
style: {
|
|
82
|
-
boxShadow:
|
|
71
|
+
boxShadow: S !== !1 ? `inset 0 -1px 0 0 ${_}` : "none"
|
|
83
72
|
},
|
|
84
73
|
children: [
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
74
|
+
w(s.headers),
|
|
75
|
+
p > 0 && /* @__PURE__ */ a(
|
|
76
|
+
g,
|
|
88
77
|
{
|
|
89
78
|
"data-spacer": !0,
|
|
90
79
|
"aria-hidden": "true",
|
|
91
80
|
style: {
|
|
92
|
-
width:
|
|
81
|
+
width: p,
|
|
93
82
|
padding: 0,
|
|
94
|
-
backgroundColor: t ?
|
|
83
|
+
backgroundColor: t ? c : void 0,
|
|
95
84
|
position: t ? "sticky" : void 0,
|
|
96
85
|
top: t ? 0 : void 0,
|
|
97
86
|
zIndex: t ? 5 : void 0
|
|
98
87
|
}
|
|
99
|
-
}
|
|
100
|
-
void 0,
|
|
101
|
-
!1,
|
|
102
|
-
{
|
|
103
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-header.tsx",
|
|
104
|
-
lineNumber: 169,
|
|
105
|
-
columnNumber: 13
|
|
106
|
-
},
|
|
107
|
-
this
|
|
88
|
+
}
|
|
108
89
|
)
|
|
109
90
|
]
|
|
110
91
|
},
|
|
111
|
-
|
|
112
|
-
!0,
|
|
113
|
-
{
|
|
114
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-header.tsx",
|
|
115
|
-
lineNumber: 156,
|
|
116
|
-
columnNumber: 9
|
|
117
|
-
},
|
|
118
|
-
this
|
|
92
|
+
s.id
|
|
119
93
|
))
|
|
120
|
-
}
|
|
121
|
-
void 0,
|
|
122
|
-
!1,
|
|
123
|
-
{
|
|
124
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-header.tsx",
|
|
125
|
-
lineNumber: 148,
|
|
126
|
-
columnNumber: 5
|
|
127
|
-
},
|
|
128
|
-
this
|
|
94
|
+
}
|
|
129
95
|
);
|
|
130
96
|
});
|
|
131
97
|
export {
|
|
132
|
-
|
|
98
|
+
ao as DataTableHeader
|
|
133
99
|
};
|
|
134
100
|
//# sourceMappingURL=data-table-header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-header.js","sources":["../../../src/components/data-table/data-table-header.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { flexRender, type Header } from \"@tanstack/react-table\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { TableHeader, TableRow, TableHead } from \"../table/table\"\nimport { useDataTable, useDataTableContent } from \"./hooks\"\nimport {\n getPinnedColumnOffset,\n isLastLeftPinnedColumn,\n isFirstRightPinnedColumn,\n} from \"./data-table-pinning-utils\"\n\n// TanStack Table's default column width\nconst DEFAULT_COLUMN_WIDTH = 150\n\nconst useStyles = makeVoltStyles({\n headerTitle: {\n display: \"block\",\n ...shorthands.overflow(\"hidden\"),\n whiteSpace: \"nowrap\",\n fontWeight: tokens.fontWeightSemibold,\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 DataTableHeaderProps = {\n /** Additional class name */\n className?: string\n /** Whether to make header sticky */\n sticky?: boolean\n /** Background color for sticky header. Default: tokens.gray2 */\n stickyBackground?: string\n}\n\n/**\n * Renders the table header with column headers.\n * Must be used within a DataTable component.\n */\nexport const DataTableHeader = React.forwardRef<\n HTMLTableSectionElement,\n DataTableHeaderProps\n>(function DataTableHeader(\n { className, sticky = false, stickyBackground = tokens.gray2 },\n ref\n) {\n const styles = useStyles()\n const { table, disableColumnResizing, showHeaderBorder, fitHeaderWidth } =\n useDataTable()\n const enableColumnResizing = !disableColumnResizing\n const contentContext = useDataTableContent()\n const spacerWidth = contentContext?.spacerWidth ?? 0\n\n const isSticky = sticky\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderHeaders = (headers: Header<any, unknown>[]) =>\n headers.map((header) => {\n const isPinned = header.column.getIsPinned()\n const pinnedOffset = isPinned\n ? getPinnedColumnOffset(header.column, table)\n : undefined\n const isLastLeft = isLastLeftPinnedColumn(header.column, table)\n const isFirstRight = isFirstRightPinnedColumn(header.column, table)\n const columnMeta = header.column.columnDef.meta as\n | { align?: \"left\" | \"center\" | \"right\" }\n | undefined\n const align = columnMeta?.align\n\n const cellStyle: React.CSSProperties = {\n width: enableColumnResizing\n ? header.getSize()\n : header.getSize() !== DEFAULT_COLUMN_WIDTH\n ? header.getSize()\n : undefined,\n minWidth: fitHeaderWidth ? \"max-content\" : undefined,\n backgroundColor: isSticky || isPinned ? stickyBackground : undefined,\n position:\n isSticky || isPinned\n ? \"sticky\"\n : enableColumnResizing\n ? \"relative\"\n : undefined,\n top: isSticky ? 0 : undefined,\n left: isPinned === \"left\" ? `${pinnedOffset}px` : undefined,\n right: isPinned === \"right\" ? `${pinnedOffset}px` : undefined,\n zIndex: isPinned ? 30 : isSticky ? 10 : undefined,\n // Reduce padding for sortable headers\n ...(() => {\n const meta = header.column.columnDef.meta as\n | {\n _sortableHeaderWrapped?: boolean\n align?: \"left\" | \"right\" | \"center\"\n }\n | undefined\n const shouldReducePadding =\n meta?._sortableHeaderWrapped ||\n (header.column.getCanSort() &&\n typeof header.column.columnDef.header === \"function\")\n if (!shouldReducePadding) return {}\n return meta?.align === \"right\"\n ? { paddingRight: 8 }\n : { paddingLeft: 8 }\n })(),\n }\n\n const ariaSort =\n header.column.getIsSorted() === \"asc\"\n ? (\"ascending\" as const)\n : header.column.getIsSorted() === \"desc\"\n ? (\"descending\" as const)\n : header.column.getCanSort()\n ? (\"none\" as const)\n : undefined\n\n const headerContent = (\n <span className={styles.headerTitle}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n )\n\n return (\n <TableHead\n key={header.id}\n align={align}\n aria-sort={ariaSort}\n style={cellStyle}\n className={mergeClasses(\n isLastLeft && styles.shadowLeft,\n isFirstRight && styles.shadowRight\n )}\n >\n {headerContent}\n </TableHead>\n )\n })\n\n return (\n <TableHeader\n ref={ref}\n data-slot=\"data-table-header\"\n {...{ [SLOT_ATTR]: \"data-table-header\" }}\n data-fs-element=\"DataTable-Header\"\n className={className}\n >\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow\n key={headerGroup.id}\n noHover\n style={{\n boxShadow:\n showHeaderBorder !== false\n ? `inset 0 -1px 0 0 ${tokens.grayA6}`\n : \"none\",\n }}\n >\n {renderHeaders(headerGroup.headers)}\n {/* Spacer cell - absorbs remaining width when columns < container */}\n {spacerWidth > 0 && (\n <TableHead\n data-spacer\n aria-hidden=\"true\"\n style={{\n width: spacerWidth,\n padding: 0,\n backgroundColor: isSticky ? stickyBackground : undefined,\n position: isSticky ? \"sticky\" : undefined,\n top: isSticky ? 0 : undefined,\n zIndex: isSticky ? 5 : undefined,\n }}\n />\n )}\n </TableRow>\n ))}\n </TableHeader>\n )\n})\n"],"names":["DEFAULT_COLUMN_WIDTH","useStyles","makeVoltStyles","shorthands","tokens.fontWeightSemibold","DataTableHeader","React","className","sticky","stickyBackground","tokens.gray2","ref","styles","table","disableColumnResizing","showHeaderBorder","fitHeaderWidth","useDataTable","enableColumnResizing","contentContext","useDataTableContent","spacerWidth","isSticky","renderHeaders","headers","header","isPinned","pinnedOffset","getPinnedColumnOffset","isLastLeft","isLastLeftPinnedColumn","isFirstRight","isFirstRightPinnedColumn","columnMeta","align","cellStyle","meta","ariaSort","headerContent","jsxDEV","flexRender","TableHead","mergeClasses","TableHeader","SLOT_ATTR","headerGroup","TableRow","tokens.grayA6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table-header.js","sources":["../../../src/components/data-table/data-table-header.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { flexRender, type Header } from \"@tanstack/react-table\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { TableHeader, TableRow, TableHead } from \"../table/table\"\nimport { useDataTable, useDataTableContent } from \"./hooks\"\nimport {\n getPinnedColumnOffset,\n isLastLeftPinnedColumn,\n isFirstRightPinnedColumn,\n} from \"./data-table-pinning-utils\"\n\n// TanStack Table's default column width\nconst DEFAULT_COLUMN_WIDTH = 150\n\nconst useStyles = makeVoltStyles({\n headerTitle: {\n display: \"block\",\n ...shorthands.overflow(\"hidden\"),\n whiteSpace: \"nowrap\",\n fontWeight: tokens.fontWeightSemibold,\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 DataTableHeaderProps = {\n /** Additional class name */\n className?: string\n /** Whether to make header sticky */\n sticky?: boolean\n /** Background color for sticky header. Default: tokens.gray2 */\n stickyBackground?: string\n}\n\n/**\n * Renders the table header with column headers.\n * Must be used within a DataTable component.\n */\nexport const DataTableHeader = React.forwardRef<\n HTMLTableSectionElement,\n DataTableHeaderProps\n>(function DataTableHeader(\n { className, sticky = false, stickyBackground = tokens.gray2 },\n ref\n) {\n const styles = useStyles()\n const { table, disableColumnResizing, showHeaderBorder, fitHeaderWidth } =\n useDataTable()\n const enableColumnResizing = !disableColumnResizing\n const contentContext = useDataTableContent()\n const spacerWidth = contentContext?.spacerWidth ?? 0\n\n const isSticky = sticky\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderHeaders = (headers: Header<any, unknown>[]) =>\n headers.map((header) => {\n const isPinned = header.column.getIsPinned()\n const pinnedOffset = isPinned\n ? getPinnedColumnOffset(header.column, table)\n : undefined\n const isLastLeft = isLastLeftPinnedColumn(header.column, table)\n const isFirstRight = isFirstRightPinnedColumn(header.column, table)\n const columnMeta = header.column.columnDef.meta as\n | { align?: \"left\" | \"center\" | \"right\" }\n | undefined\n const align = columnMeta?.align\n\n const cellStyle: React.CSSProperties = {\n width: enableColumnResizing\n ? header.getSize()\n : header.getSize() !== DEFAULT_COLUMN_WIDTH\n ? header.getSize()\n : undefined,\n minWidth: fitHeaderWidth ? \"max-content\" : undefined,\n backgroundColor: isSticky || isPinned ? stickyBackground : undefined,\n position:\n isSticky || isPinned\n ? \"sticky\"\n : enableColumnResizing\n ? \"relative\"\n : undefined,\n top: isSticky ? 0 : undefined,\n left: isPinned === \"left\" ? `${pinnedOffset}px` : undefined,\n right: isPinned === \"right\" ? `${pinnedOffset}px` : undefined,\n zIndex: isPinned ? 30 : isSticky ? 10 : undefined,\n // Reduce padding for sortable headers\n ...(() => {\n const meta = header.column.columnDef.meta as\n | {\n _sortableHeaderWrapped?: boolean\n align?: \"left\" | \"right\" | \"center\"\n }\n | undefined\n const shouldReducePadding =\n meta?._sortableHeaderWrapped ||\n (header.column.getCanSort() &&\n typeof header.column.columnDef.header === \"function\")\n if (!shouldReducePadding) return {}\n return meta?.align === \"right\"\n ? { paddingRight: 8 }\n : { paddingLeft: 8 }\n })(),\n }\n\n const ariaSort =\n header.column.getIsSorted() === \"asc\"\n ? (\"ascending\" as const)\n : header.column.getIsSorted() === \"desc\"\n ? (\"descending\" as const)\n : header.column.getCanSort()\n ? (\"none\" as const)\n : undefined\n\n const headerContent = (\n <span className={styles.headerTitle}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n )\n\n return (\n <TableHead\n key={header.id}\n align={align}\n aria-sort={ariaSort}\n style={cellStyle}\n className={mergeClasses(\n isLastLeft && styles.shadowLeft,\n isFirstRight && styles.shadowRight\n )}\n >\n {headerContent}\n </TableHead>\n )\n })\n\n return (\n <TableHeader\n ref={ref}\n data-slot=\"data-table-header\"\n {...{ [SLOT_ATTR]: \"data-table-header\" }}\n data-fs-element=\"DataTable-Header\"\n className={className}\n >\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow\n key={headerGroup.id}\n noHover\n style={{\n boxShadow:\n showHeaderBorder !== false\n ? `inset 0 -1px 0 0 ${tokens.grayA6}`\n : \"none\",\n }}\n >\n {renderHeaders(headerGroup.headers)}\n {/* Spacer cell - absorbs remaining width when columns < container */}\n {spacerWidth > 0 && (\n <TableHead\n data-spacer\n aria-hidden=\"true\"\n style={{\n width: spacerWidth,\n padding: 0,\n backgroundColor: isSticky ? stickyBackground : undefined,\n position: isSticky ? \"sticky\" : undefined,\n top: isSticky ? 0 : undefined,\n zIndex: isSticky ? 5 : undefined,\n }}\n />\n )}\n </TableRow>\n ))}\n </TableHeader>\n )\n})\n"],"names":["DEFAULT_COLUMN_WIDTH","useStyles","makeVoltStyles","shorthands","tokens.fontWeightSemibold","DataTableHeader","React","className","sticky","stickyBackground","tokens.gray2","ref","styles","table","disableColumnResizing","showHeaderBorder","fitHeaderWidth","useDataTable","enableColumnResizing","contentContext","useDataTableContent","spacerWidth","isSticky","renderHeaders","headers","header","isPinned","pinnedOffset","getPinnedColumnOffset","isLastLeft","isLastLeftPinnedColumn","isFirstRight","isFirstRightPinnedColumn","columnMeta","align","cellStyle","meta","ariaSort","headerContent","jsx","flexRender","TableHead","mergeClasses","TableHeader","SLOT_ATTR","headerGroup","jsxs","TableRow","tokens.grayA6"],"mappings":";;;;;;;;;;;;AAgBA,MAAMA,IAAuB,KAEvBC,IAAYC,EAAe;AAAA,EAC/B,aAAa;AAAA,IACX,SAAS;AAAA,IACT,GAAGC,EAAW,SAAS,QAAQ;AAAA,IAC/B,YAAY;AAAA,IACZ,YAAYC;AAAAA,EAAO;AAAA,EAErB,YAAY;AAAA,IACV,WAAW;AAAA,EAAA;AAAA,EAEb,aAAa;AAAA,IACX,WAAW;AAAA,EAAA;AAEf,CAAC,GAeYC,KAAkBC,EAAM,WAGnC,SACA,EAAE,WAAAC,GAAW,QAAAC,IAAS,IAAO,kBAAAC,IAAmBC,EAAO,GACvDC,GACA;AACA,QAAMC,IAASX,EAAA,GACT,EAAE,OAAAY,GAAO,uBAAAC,GAAuB,kBAAAC,GAAkB,gBAAAC,EAAA,IACtDC,EAAA,GACIC,IAAuB,CAACJ,GACxBK,IAAiBC,EAAA,GACjBC,KAAcF,KAAA,gBAAAA,EAAgB,gBAAe,GAE7CG,IAAWd,GAGXe,IAAgB,CAACC,MACrBA,EAAQ,IAAI,CAACC,MAAW;AACtB,UAAMC,IAAWD,EAAO,OAAO,YAAA,GACzBE,IAAeD,IACjBE,EAAsBH,EAAO,QAAQZ,CAAK,IAC1C,QACEgB,IAAaC,EAAuBL,EAAO,QAAQZ,CAAK,GACxDkB,IAAeC,EAAyBP,EAAO,QAAQZ,CAAK,GAC5DoB,IAAaR,EAAO,OAAO,UAAU,MAGrCS,IAAQD,KAAA,gBAAAA,EAAY,OAEpBE,IAAiC;AAAA,MACrC,OAAOjB,KAEHO,EAAO,QAAA,MAAczB,IADrByB,EAAO,YAGL;AAAA,MACN,UAAUT,IAAiB,gBAAgB;AAAA,MAC3C,iBAAiBM,KAAYI,IAAWjB,IAAmB;AAAA,MAC3D,UACEa,KAAYI,IACR,WACAR,IACE,aACA;AAAA,MACR,KAAKI,IAAW,IAAI;AAAA,MACpB,MAAMI,MAAa,SAAS,GAAGC,CAAY,OAAO;AAAA,MAClD,OAAOD,MAAa,UAAU,GAAGC,CAAY,OAAO;AAAA,MACpD,QAAQD,IAAW,KAAKJ,IAAW,KAAK;AAAA;AAAA,MAExC,IAAI,MAAM;AACR,cAAMc,IAAOX,EAAO,OAAO,UAAU;AAUrC,gBAHEW,KAAA,gBAAAA,EAAM,2BACLX,EAAO,OAAO,WAAA,KACb,OAAOA,EAAO,OAAO,UAAU,UAAW,cAEvCW,KAAA,gBAAAA,EAAM,WAAU,UACnB,EAAE,cAAc,EAAA,IAChB,EAAE,aAAa,EAAA,IAHc,CAAA;AAAA,MAInC,GAAA;AAAA,IAAG,GAGCC,IACJZ,EAAO,OAAO,YAAA,MAAkB,QAC3B,cACDA,EAAO,OAAO,YAAA,MAAkB,SAC7B,eACDA,EAAO,OAAO,WAAA,IACX,SACD,QAEJa,IACJ,gBAAAC,EAAC,QAAA,EAAK,WAAW3B,EAAO,aACrB,UAAAa,EAAO,gBACJ,OACAe,EAAWf,EAAO,OAAO,UAAU,QAAQA,EAAO,WAAA,CAAY,GACpE;AAGF,WACE,gBAAAc;AAAA,MAACE;AAAA,MAAA;AAAA,QAEC,OAAAP;AAAA,QACA,aAAWG;AAAA,QACX,OAAOF;AAAA,QACP,WAAWO;AAAAA,UACTb,KAAcjB,EAAO;AAAA,UACrBmB,KAAgBnB,EAAO;AAAA,QAAA;AAAA,QAGxB,UAAA0B;AAAA,MAAA;AAAA,MATIb,EAAO;AAAA,IAAA;AAAA,EAYlB,CAAC;AAEH,SACE,gBAAAc;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,KAAAhC;AAAA,MACA,aAAU;AAAA,MACJ,CAACiC,CAAS,GAAG;AAAA,MACnB,mBAAgB;AAAA,MAChB,WAAArC;AAAA,MAEC,UAAAM,EAAM,gBAAA,EAAkB,IAAI,CAACgC,MAC5B,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UAEC,SAAO;AAAA,UACP,OAAO;AAAA,YACL,WACEhC,MAAqB,KACjB,oBAAoBiC,CAAa,KACjC;AAAA,UAAA;AAAA,UAGP,UAAA;AAAA,YAAAzB,EAAcsB,EAAY,OAAO;AAAA,YAEjCxB,IAAc,KACb,gBAAAkB;AAAA,cAACE;AAAA,cAAA;AAAA,gBACC,eAAW;AAAA,gBACX,eAAY;AAAA,gBACZ,OAAO;AAAA,kBACL,OAAOpB;AAAA,kBACP,SAAS;AAAA,kBACT,iBAAiBC,IAAWb,IAAmB;AAAA,kBAC/C,UAAUa,IAAW,WAAW;AAAA,kBAChC,KAAKA,IAAW,IAAI;AAAA,kBACpB,QAAQA,IAAW,IAAI;AAAA,gBAAA;AAAA,cACzB;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QAvBGuB,EAAY;AAAA,MAAA,CA0BpB;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;"}
|
|
@@ -1,51 +1,39 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
2
|
import * as s from "react";
|
|
3
|
-
import { shorthands as
|
|
4
|
-
import { SLOT_ATTR as
|
|
5
|
-
import { mergeClasses as
|
|
6
|
-
import { makeVoltStyles as
|
|
3
|
+
import { shorthands as n } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
4
|
+
import { SLOT_ATTR as i } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
5
|
+
import { mergeClasses as m } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
6
|
+
import { makeVoltStyles as l } from "../../styles/make-styles.js";
|
|
7
7
|
import { spacingLayout2 as p, grayA11 as c, spacingElement2 as d } from "../../tokens/index.js";
|
|
8
8
|
import { Spinner as f } from "../spinner/spinner.js";
|
|
9
|
-
const g =
|
|
9
|
+
const g = l({
|
|
10
10
|
root: {
|
|
11
11
|
display: "flex",
|
|
12
12
|
flexDirection: "column",
|
|
13
13
|
alignItems: "center",
|
|
14
14
|
justifyContent: "center",
|
|
15
15
|
gap: d,
|
|
16
|
-
...
|
|
16
|
+
...n.paddingBlock(p)
|
|
17
17
|
},
|
|
18
18
|
spinner: {
|
|
19
19
|
width: "2.5rem",
|
|
20
20
|
height: "2.5rem",
|
|
21
21
|
color: c
|
|
22
22
|
}
|
|
23
|
-
}),
|
|
24
|
-
const
|
|
25
|
-
return /* @__PURE__ */ a
|
|
23
|
+
}), D = s.forwardRef(function({ className: o, children: e }, r) {
|
|
24
|
+
const t = g();
|
|
25
|
+
return /* @__PURE__ */ a(
|
|
26
26
|
"div",
|
|
27
27
|
{
|
|
28
28
|
ref: r,
|
|
29
29
|
"data-slot": "data-table-loading",
|
|
30
|
-
[
|
|
31
|
-
className:
|
|
32
|
-
children:
|
|
33
|
-
|
|
34
|
-
lineNumber: 50,
|
|
35
|
-
columnNumber: 20
|
|
36
|
-
}, this)
|
|
37
|
-
},
|
|
38
|
-
void 0,
|
|
39
|
-
!1,
|
|
40
|
-
{
|
|
41
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-loading.tsx",
|
|
42
|
-
lineNumber: 44,
|
|
43
|
-
columnNumber: 5
|
|
44
|
-
},
|
|
45
|
-
this
|
|
30
|
+
[i]: "data-table-loading",
|
|
31
|
+
className: m(t.root, o),
|
|
32
|
+
children: e ?? /* @__PURE__ */ a(f, { className: t.spinner })
|
|
33
|
+
}
|
|
46
34
|
);
|
|
47
35
|
});
|
|
48
36
|
export {
|
|
49
|
-
|
|
37
|
+
D as DataTableLoading
|
|
50
38
|
};
|
|
51
39
|
//# sourceMappingURL=data-table-loading.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-loading.js","sources":["../../../src/components/data-table/data-table-loading.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { ReactNode } from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { Spinner } from \"../spinner/spinner\"\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: tokens.spacingElement2,\n ...shorthands.paddingBlock(tokens.spacingLayout2),\n },\n spinner: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n color: tokens.grayA11,\n },\n})\n\nexport type DataTableLoadingProps = {\n /** Additional class name */\n className?: string\n /** Custom loading content (overrides default spinner) */\n children?: ReactNode\n}\n\n/**\n * Loading state display for DataTable.\n * Renders a centered spinner by default, or custom content when children are provided.\n */\nexport const DataTableLoading = React.forwardRef<\n HTMLDivElement,\n DataTableLoadingProps\n>(function DataTableLoading({ className, children }, ref) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"data-table-loading\"\n {...{ [SLOT_ATTR]: \"data-table-loading\" }}\n className={mergeClasses(styles.root, className)}\n >\n {children ?? <Spinner className={styles.spinner} />}\n </div>\n )\n})\n"],"names":["useStyles","makeVoltStyles","tokens.spacingElement2","shorthands","tokens.spacingLayout2","tokens.grayA11","DataTableLoading","React","className","children","ref","styles","
|
|
1
|
+
{"version":3,"file":"data-table-loading.js","sources":["../../../src/components/data-table/data-table-loading.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { ReactNode } from \"react\"\nimport { mergeClasses, shorthands } from \"@epilot/volt-ui-runtime\"\n\nimport { SLOT_ATTR } from \"../../renderer/contract\"\nimport { makeVoltStyles } from \"../../styles/make-styles\"\nimport * as tokens from \"../../tokens\"\nimport { Spinner } from \"../spinner/spinner\"\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: tokens.spacingElement2,\n ...shorthands.paddingBlock(tokens.spacingLayout2),\n },\n spinner: {\n width: \"2.5rem\",\n height: \"2.5rem\",\n color: tokens.grayA11,\n },\n})\n\nexport type DataTableLoadingProps = {\n /** Additional class name */\n className?: string\n /** Custom loading content (overrides default spinner) */\n children?: ReactNode\n}\n\n/**\n * Loading state display for DataTable.\n * Renders a centered spinner by default, or custom content when children are provided.\n */\nexport const DataTableLoading = React.forwardRef<\n HTMLDivElement,\n DataTableLoadingProps\n>(function DataTableLoading({ className, children }, ref) {\n const styles = useStyles()\n\n return (\n <div\n ref={ref}\n data-slot=\"data-table-loading\"\n {...{ [SLOT_ATTR]: \"data-table-loading\" }}\n className={mergeClasses(styles.root, className)}\n >\n {children ?? <Spinner className={styles.spinner} />}\n </div>\n )\n})\n"],"names":["useStyles","makeVoltStyles","tokens.spacingElement2","shorthands","tokens.spacingLayout2","tokens.grayA11","DataTableLoading","React","className","children","ref","styles","jsx","SLOT_ATTR","mergeClasses","Spinner"],"mappings":";;;;;;;;AASA,MAAMA,IAAYC,EAAe;AAAA,EAC/B,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,KAAKC;AAAAA,IACL,GAAGC,EAAW,aAAaC,CAAqB;AAAA,EAAA;AAAA,EAElD,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAOC;AAAAA,EAAO;AAElB,CAAC,GAaYC,IAAmBC,EAAM,WAGpC,SAA0B,EAAE,WAAAC,GAAW,UAAAC,EAAA,GAAYC,GAAK;AACxD,QAAMC,IAASX,EAAA;AAEf,SACE,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,aAAU;AAAA,MACJ,CAACG,CAAS,GAAG;AAAA,MACnB,WAAWC,EAAaH,EAAO,MAAMH,CAAS;AAAA,MAE7C,UAAAC,KAAY,gBAAAG,EAACG,GAAA,EAAQ,WAAWJ,EAAO,QAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAGvD,CAAC;"}
|
|
@@ -1,38 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
import { TablePagination as
|
|
4
|
-
import { useDataTable as
|
|
5
|
-
const
|
|
6
|
-
const { table:
|
|
7
|
-
return /* @__PURE__ */ d
|
|
8
|
-
|
|
1
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import * as m from "react";
|
|
3
|
+
import { TablePagination as S } from "../table/table-pagination.js";
|
|
4
|
+
import { useDataTable as c } from "./hooks/use-data-table.js";
|
|
5
|
+
const f = [10, 25, 50, 100], z = m.forwardRef(function({ pageSizeOptions: n, siblingCount: s, labels: g, className: i }, l) {
|
|
6
|
+
const { table: t, pagination: e } = c(), r = n ?? (e == null ? void 0 : e.pageSizeOptions) ?? f, { pageIndex: p, pageSize: o } = t.getState().pagination, P = (e == null ? void 0 : e.totalItems) ?? ((e == null ? void 0 : e.pageCount) !== void 0 && e.pageCount >= 0 ? e.pageCount * o : t.getFilteredRowModel().rows.length);
|
|
7
|
+
return /* @__PURE__ */ d(
|
|
8
|
+
S,
|
|
9
9
|
{
|
|
10
|
-
ref:
|
|
10
|
+
ref: l,
|
|
11
11
|
"data-slot": "data-table-pagination",
|
|
12
12
|
"data-fs-element": "DataTable-Pagination",
|
|
13
|
-
page:
|
|
14
|
-
totalItems:
|
|
13
|
+
page: p + 1,
|
|
14
|
+
totalItems: P,
|
|
15
15
|
pageSize: o,
|
|
16
|
-
onPageChange: (
|
|
17
|
-
onPageSizeChange: (
|
|
18
|
-
|
|
16
|
+
onPageChange: (a) => t.setPageIndex(a - 1),
|
|
17
|
+
onPageSizeChange: (a) => {
|
|
18
|
+
t.setPageSize(a), t.setPageIndex(0);
|
|
19
19
|
},
|
|
20
|
-
pageSizeOptions:
|
|
20
|
+
pageSizeOptions: r,
|
|
21
21
|
siblingCount: s,
|
|
22
|
-
labels:
|
|
23
|
-
className:
|
|
24
|
-
}
|
|
25
|
-
void 0,
|
|
26
|
-
!1,
|
|
27
|
-
{
|
|
28
|
-
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-pagination.tsx",
|
|
29
|
-
lineNumber: 49,
|
|
30
|
-
columnNumber: 5
|
|
31
|
-
},
|
|
32
|
-
this
|
|
22
|
+
labels: g,
|
|
23
|
+
className: i
|
|
24
|
+
}
|
|
33
25
|
);
|
|
34
26
|
});
|
|
35
27
|
export {
|
|
36
|
-
|
|
28
|
+
z as DataTablePagination
|
|
37
29
|
};
|
|
38
30
|
//# sourceMappingURL=data-table-pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-pagination.js","sources":["../../../src/components/data-table/data-table-pagination.tsx"],"sourcesContent":["import * as React from \"react\"\nimport {\n TablePagination,\n type TablePaginationLabels,\n} from \"../table/table-pagination\"\nimport { useDataTable } from \"./hooks\"\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\nexport type DataTablePaginationProps = {\n /** Available page size options */\n pageSizeOptions?: number[]\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number\n /** Labels for i18n. See TablePaginationLabels for available options. */\n labels?: TablePaginationLabels\n /** Additional class name */\n className?: string\n}\n\n/**\n * Pagination component that integrates with DataTable's Tanstack Table instance.\n * Must be used within a DataTable component.\n */\nexport const DataTablePagination = React.forwardRef<\n HTMLDivElement,\n DataTablePaginationProps\n>(function DataTablePagination(\n { pageSizeOptions, siblingCount, labels, className },\n ref\n) {\n const { table, pagination } = useDataTable()\n\n // Prop takes precedence, then pagination config, then default\n const resolvedPageSizeOptions =\n pageSizeOptions ?? pagination?.pageSizeOptions ?? DEFAULT_PAGE_SIZE_OPTIONS\n\n const { pageIndex, pageSize } = table.getState().pagination\n\n // For server-side pagination, use totalItems from config\n // For client-side pagination, use filtered row count\n const totalRows =\n pagination?.totalItems ??\n (pagination?.pageCount !== undefined && pagination.pageCount >= 0\n ? pagination.pageCount * pageSize\n : table.getFilteredRowModel().rows.length)\n\n return (\n <TablePagination\n ref={ref}\n data-slot=\"data-table-pagination\"\n data-fs-element=\"DataTable-Pagination\"\n page={pageIndex + 1} // Convert to 1-indexed\n totalItems={totalRows}\n pageSize={pageSize}\n onPageChange={(page) => table.setPageIndex(page - 1)} // Convert back to 0-indexed\n onPageSizeChange={(size) => {\n table.setPageSize(size)\n table.setPageIndex(0) // Reset to first page\n }}\n pageSizeOptions={resolvedPageSizeOptions}\n siblingCount={siblingCount}\n labels={labels}\n className={className}\n />\n )\n})\n"],"names":["DEFAULT_PAGE_SIZE_OPTIONS","DataTablePagination","React","pageSizeOptions","siblingCount","labels","className","ref","table","pagination","useDataTable","resolvedPageSizeOptions","pageIndex","pageSize","totalRows","
|
|
1
|
+
{"version":3,"file":"data-table-pagination.js","sources":["../../../src/components/data-table/data-table-pagination.tsx"],"sourcesContent":["import * as React from \"react\"\nimport {\n TablePagination,\n type TablePaginationLabels,\n} from \"../table/table-pagination\"\nimport { useDataTable } from \"./hooks\"\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\nexport type DataTablePaginationProps = {\n /** Available page size options */\n pageSizeOptions?: number[]\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number\n /** Labels for i18n. See TablePaginationLabels for available options. */\n labels?: TablePaginationLabels\n /** Additional class name */\n className?: string\n}\n\n/**\n * Pagination component that integrates with DataTable's Tanstack Table instance.\n * Must be used within a DataTable component.\n */\nexport const DataTablePagination = React.forwardRef<\n HTMLDivElement,\n DataTablePaginationProps\n>(function DataTablePagination(\n { pageSizeOptions, siblingCount, labels, className },\n ref\n) {\n const { table, pagination } = useDataTable()\n\n // Prop takes precedence, then pagination config, then default\n const resolvedPageSizeOptions =\n pageSizeOptions ?? pagination?.pageSizeOptions ?? DEFAULT_PAGE_SIZE_OPTIONS\n\n const { pageIndex, pageSize } = table.getState().pagination\n\n // For server-side pagination, use totalItems from config\n // For client-side pagination, use filtered row count\n const totalRows =\n pagination?.totalItems ??\n (pagination?.pageCount !== undefined && pagination.pageCount >= 0\n ? pagination.pageCount * pageSize\n : table.getFilteredRowModel().rows.length)\n\n return (\n <TablePagination\n ref={ref}\n data-slot=\"data-table-pagination\"\n data-fs-element=\"DataTable-Pagination\"\n page={pageIndex + 1} // Convert to 1-indexed\n totalItems={totalRows}\n pageSize={pageSize}\n onPageChange={(page) => table.setPageIndex(page - 1)} // Convert back to 0-indexed\n onPageSizeChange={(size) => {\n table.setPageSize(size)\n table.setPageIndex(0) // Reset to first page\n }}\n pageSizeOptions={resolvedPageSizeOptions}\n siblingCount={siblingCount}\n labels={labels}\n className={className}\n />\n )\n})\n"],"names":["DEFAULT_PAGE_SIZE_OPTIONS","DataTablePagination","React","pageSizeOptions","siblingCount","labels","className","ref","table","pagination","useDataTable","resolvedPageSizeOptions","pageIndex","pageSize","totalRows","jsx","TablePagination","page","size"],"mappings":";;;;AAOA,MAAMA,IAA4B,CAAC,IAAI,IAAI,IAAI,GAAG,GAiBrCC,IAAsBC,EAAM,WAGvC,SACA,EAAE,iBAAAC,GAAiB,cAAAC,GAAc,QAAAC,GAAQ,WAAAC,EAAA,GACzCC,GACA;AACA,QAAM,EAAE,OAAAC,GAAO,YAAAC,EAAA,IAAeC,EAAA,GAGxBC,IACJR,MAAmBM,KAAA,gBAAAA,EAAY,oBAAmBT,GAE9C,EAAE,WAAAY,GAAW,UAAAC,EAAA,IAAaL,EAAM,WAAW,YAI3CM,KACJL,KAAA,gBAAAA,EAAY,iBACXA,KAAA,gBAAAA,EAAY,eAAc,UAAaA,EAAW,aAAa,IAC5DA,EAAW,YAAYI,IACvBL,EAAM,oBAAA,EAAsB,KAAK;AAEvC,SACE,gBAAAO;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAT;AAAA,MACA,aAAU;AAAA,MACV,mBAAgB;AAAA,MAChB,MAAMK,IAAY;AAAA,MAClB,YAAYE;AAAA,MACZ,UAAAD;AAAA,MACA,cAAc,CAACI,MAAST,EAAM,aAAaS,IAAO,CAAC;AAAA,MACnD,kBAAkB,CAACC,MAAS;AAC1B,QAAAV,EAAM,YAAYU,CAAI,GACtBV,EAAM,aAAa,CAAC;AAAA,MACtB;AAAA,MACA,iBAAiBG;AAAA,MACjB,cAAAP;AAAA,MACA,QAAAC;AAAA,MACA,WAAAC;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
|