@epilot/volt-ui-experimental-griffel 0.2.3 → 0.3.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/ADOPTING.md +416 -0
- package/README.md +32 -31
- package/dist/_virtual/jsx-dev-runtime.js +5 -0
- package/dist/_virtual/jsx-dev-runtime.js.map +1 -0
- package/dist/_virtual/react-jsx-dev-runtime.development.js +5 -0
- package/dist/_virtual/react-jsx-dev-runtime.development.js.map +1 -0
- package/dist/_virtual/react-jsx-dev-runtime.production.js +5 -0
- package/dist/_virtual/react-jsx-dev-runtime.production.js.map +1 -0
- package/dist/components/accordion/accordion.js +126 -66
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +239 -137
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/avatar/avatar-group.js +102 -47
- package/dist/components/avatar/avatar-group.js.map +1 -1
- package/dist/components/avatar/avatar.js +97 -73
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.js +53 -37
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +97 -49
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/button/button.js +88 -77
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button-group/button-group.js +55 -31
- package/dist/components/button-group/button-group.js.map +1 -1
- package/dist/components/callout/callout.js +288 -164
- package/dist/components/callout/callout.js.map +1 -1
- package/dist/components/card/card.js +137 -81
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +100 -49
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js +155 -107
- package/dist/components/collapsible-sidebar/collapsible-sidebar.js.map +1 -1
- package/dist/components/command/command.js +297 -158
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table-body.js +114 -54
- package/dist/components/data-table/data-table-body.js.map +1 -1
- package/dist/components/data-table/data-table-column-header.js +117 -45
- package/dist/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/data-table/data-table-column-visibility.js +98 -39
- package/dist/components/data-table/data-table-column-visibility.js.map +1 -1
- package/dist/components/data-table/data-table-content.js +90 -58
- package/dist/components/data-table/data-table-content.js.map +1 -1
- package/dist/components/data-table/data-table-error.js +83 -39
- package/dist/components/data-table/data-table-error.js.map +1 -1
- package/dist/components/data-table/data-table-header.js +88 -54
- package/dist/components/data-table/data-table-header.js.map +1 -1
- package/dist/components/data-table/data-table-loading.js +27 -15
- package/dist/components/data-table/data-table-loading.js.map +1 -1
- package/dist/components/data-table/data-table-pagination.js +27 -19
- package/dist/components/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/data-table/data-table-row.js +87 -64
- package/dist/components/data-table/data-table-row.js.map +1 -1
- package/dist/components/data-table/data-table-toolbar.js +24 -16
- package/dist/components/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/data-table/data-table.js +182 -145
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +342 -214
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker/range-calendar.js +132 -92
- package/dist/components/date-range-picker/range-calendar.js.map +1 -1
- package/dist/components/date-time-picker/calendar.js +501 -317
- package/dist/components/date-time-picker/calendar.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker-context.js +64 -60
- 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 +249 -149
- 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 +273 -165
- 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 +22 -14
- package/dist/components/date-time-picker/date-time-picker-popover.js.map +1 -1
- package/dist/components/date-time-picker/date-time-picker.js +134 -90
- package/dist/components/date-time-picker/date-time-picker.js.map +1 -1
- package/dist/components/date-time-picker/time-picker.js +198 -132
- package/dist/components/date-time-picker/time-picker.js.map +1 -1
- package/dist/components/density-provider/density-provider.js +48 -0
- package/dist/components/density-provider/density-provider.js.map +1 -0
- package/dist/components/dialog/dialog.js +280 -150
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +273 -163
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +378 -195
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +447 -240
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field-select.js +23 -19
- package/dist/components/field/field-select.js.map +1 -1
- package/dist/components/field/field.js +318 -209
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/label/label.js +27 -19
- package/dist/components/label/label.js.map +1 -1
- package/dist/components/list/list.js +623 -369
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/option-card/option-card.js +323 -159
- package/dist/components/option-card/option-card.js.map +1 -1
- package/dist/components/pill/pill.js +82 -64
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/popover/popover.js +101 -56
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radio/radio.js +94 -51
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/scroll-overflow/scroll-overflow.js +350 -198
- package/dist/components/scroll-overflow/scroll-overflow.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +141 -97
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.js +452 -227
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/separator/separator.js +24 -16
- package/dist/components/separator/separator.js.map +1 -1
- package/dist/components/skeleton/skeleton.js +83 -43
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/spinner/spinner.js +44 -20
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/switch/switch.js +163 -86
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +465 -205
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +212 -144
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/tabs/tabs.js +94 -58
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/text/text.js +40 -32
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/toast/toast.js +187 -111
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/components/toggle/toggle-group.js +40 -24
- package/dist/components/toggle/toggle-group.js.map +1 -1
- package/dist/components/toggle/toggle.js +48 -40
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +101 -55
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/index.d.ts +600 -427
- package/dist/index.js +215 -212
- package/dist/index.js.map +1 -1
- package/dist/lib/clear-button.js +27 -15
- package/dist/lib/clear-button.js.map +1 -1
- package/dist/lib/icons.js +18 -6
- package/dist/lib/icons.js.map +1 -1
- package/dist/packages/volt-runtime/dist/sheet.js +27 -10
- package/dist/packages/volt-runtime/dist/sheet.js.map +1 -1
- package/dist/packages/volt-runtime/dist/styles/recipe.js +76 -0
- package/dist/packages/volt-runtime/dist/styles/recipe.js.map +1 -0
- package/dist/styles/document-context.js +12 -0
- package/dist/styles/document-context.js.map +1 -0
- package/dist/styles/make-styles.js +18 -10
- package/dist/styles/make-styles.js.map +1 -1
- package/dist/tokens/core.generated.js +1238 -1166
- package/dist/tokens/core.generated.js.map +1 -1
- package/dist/tokens/index.d.ts +442 -415
- package/dist/tokens/index.js +1105 -1078
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/install.js +9 -5
- package/dist/tokens/install.js.map +1 -1
- package/dist/tokens/use-palette-tokens.js +20 -0
- package/dist/tokens/use-palette-tokens.js.map +1 -0
- package/dist/tokens.json +83 -2
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.development.js +236 -0
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.development.js.map +1 -0
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.production.js +21 -0
- package/dist/vendor/react/cjs/react-jsx-dev-runtime.production.js.map +1 -0
- package/dist/vendor/react/jsx-dev-runtime.js +9 -0
- package/dist/vendor/react/jsx-dev-runtime.js.map +1 -0
- package/package.json +13 -5
- package/scripts/migration-diagnostics-core.mjs +859 -0
- package/scripts/migration-diagnostics.mjs +353 -0
- package/scripts/migration-sweep.mjs +179 -0
- package/AGENTS.md +0 -153
- package/AUTHORING.md +0 -292
- package/dist/packages/volt-runtime/dist/styles/make-styles.js +0 -22
- package/dist/packages/volt-runtime/dist/styles/make-styles.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 { j as e } from "../../vendor/react/jsx-dev-runtime.js";
|
|
2
|
+
import * as p from "react";
|
|
3
|
+
import { shorthands as a } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
4
|
+
import { SLOT_ATTR as u } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
5
|
+
import { mergeClasses as d } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
6
|
+
import { makeVoltStyles as f } from "../../styles/make-styles.js";
|
|
7
|
+
import { spacingLayout2 as g, spacingGroup1 as x, grayA11 as b, leadingSm as N, textSm as h, grayA12 as v, fontWeightMedium as T, leadingBase as q, textBase as w, spacingElement2 as E, errorA11 as D, spacingElement1 as j } from "../../tokens/index.js";
|
|
8
|
+
import { Button as k } from "../button/button.js";
|
|
9
|
+
const y = (t) => /* @__PURE__ */ e.jsxDEV(
|
|
10
10
|
"svg",
|
|
11
11
|
{
|
|
12
12
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -14,71 +14,115 @@ const C = (o) => /* @__PURE__ */ t(
|
|
|
14
14
|
viewBox: "0 -960 960 960",
|
|
15
15
|
width: "24px",
|
|
16
16
|
fill: "currentColor",
|
|
17
|
-
...
|
|
18
|
-
children: /* @__PURE__ */
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
...t,
|
|
18
|
+
children: /* @__PURE__ */ e.jsxDEV("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" }, void 0, !1, {
|
|
19
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
20
|
+
lineNumber: 19,
|
|
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({
|
|
21
33
|
root: {
|
|
22
34
|
display: "flex",
|
|
23
35
|
flexDirection: "column",
|
|
24
36
|
alignItems: "center",
|
|
25
37
|
justifyContent: "center",
|
|
26
|
-
gap:
|
|
27
|
-
...
|
|
38
|
+
gap: j,
|
|
39
|
+
...a.paddingBlock(g),
|
|
28
40
|
textAlign: "center"
|
|
29
41
|
},
|
|
30
42
|
icon: {
|
|
31
43
|
width: "2.5rem",
|
|
32
44
|
height: "2.5rem",
|
|
33
|
-
color:
|
|
45
|
+
color: D,
|
|
34
46
|
marginBottom: E
|
|
35
47
|
},
|
|
36
48
|
title: {
|
|
37
|
-
fontSize:
|
|
38
|
-
lineHeight:
|
|
39
|
-
fontWeight:
|
|
49
|
+
fontSize: w,
|
|
50
|
+
lineHeight: q,
|
|
51
|
+
fontWeight: T,
|
|
40
52
|
color: v,
|
|
41
|
-
...
|
|
53
|
+
...a.margin(0)
|
|
42
54
|
},
|
|
43
55
|
description: {
|
|
44
|
-
fontSize:
|
|
45
|
-
lineHeight:
|
|
46
|
-
color:
|
|
56
|
+
fontSize: h,
|
|
57
|
+
lineHeight: N,
|
|
58
|
+
color: b,
|
|
47
59
|
maxWidth: "28rem",
|
|
48
|
-
...
|
|
60
|
+
...a.margin(0)
|
|
49
61
|
},
|
|
50
62
|
retry: {
|
|
51
63
|
marginTop: x
|
|
52
64
|
}
|
|
53
|
-
}),
|
|
54
|
-
const r =
|
|
55
|
-
return /* @__PURE__ */
|
|
65
|
+
}), R = p.forwardRef(function({ title: o, description: l, retryLabel: s, onRetry: i, className: n, children: m }, c) {
|
|
66
|
+
const r = V();
|
|
67
|
+
return /* @__PURE__ */ e.jsxDEV(
|
|
56
68
|
"div",
|
|
57
69
|
{
|
|
58
70
|
ref: c,
|
|
59
71
|
"data-slot": "data-table-error",
|
|
60
|
-
[
|
|
72
|
+
[u]: "data-table-error",
|
|
61
73
|
role: "alert",
|
|
62
|
-
className:
|
|
63
|
-
children: m ?? /* @__PURE__ */
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
74
|
+
className: d(r.root, n),
|
|
75
|
+
children: m ?? /* @__PURE__ */ e.jsxDEV(e.Fragment, { children: [
|
|
76
|
+
/* @__PURE__ */ e.jsxDEV(y, { className: r.icon }, void 0, !1, {
|
|
77
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
78
|
+
lineNumber: 96,
|
|
79
|
+
columnNumber: 11
|
|
80
|
+
}, this),
|
|
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,
|
|
69
93
|
{
|
|
70
94
|
variant: "secondary",
|
|
71
95
|
size: "sm",
|
|
72
96
|
onClick: i,
|
|
73
97
|
className: r.retry,
|
|
74
98
|
children: s
|
|
75
|
-
}
|
|
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
|
|
76
108
|
)
|
|
77
|
-
] }
|
|
78
|
-
|
|
109
|
+
] }, void 0, !0, {
|
|
110
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-error.tsx",
|
|
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
|
|
79
123
|
);
|
|
80
124
|
});
|
|
81
125
|
export {
|
|
82
|
-
|
|
126
|
+
R as DataTableError
|
|
83
127
|
};
|
|
84
128
|
//# 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","jsxDEV","this","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","Fragment","Button"],"mappings":";;;;;;;;AASA,MAAMA,IAAY,CAACC,MACjBC,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,OAAM;AAAA,IACN,MAAK;AAAA,IACJ,GAAGD;AAAA,IAEJ,UAAAC,gBAAAA,EAAAA,OAAC,QAAA,EAAK,GAAE,kfAAA,GAAR,QAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA,GAAAC,MAA0f;AAAA,EAAA;AAAA,EAR5f;AAAA,EAAA;AAAA,EAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA;AAAA,EAAAA;AASA,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,SACEF,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAyB;AAAA,MACA,aAAU;AAAA,MACJ,CAACE,CAAS,GAAG;AAAA,MACnB,MAAK;AAAA,MACL,WAAWC,EAAaF,EAAO,MAAMH,CAAS;AAAA,MAE7C,eACCvB,gBAAAA,EAAAA,OAAA6B,EAAAA,UAAA,EACE,UAAA;AAAA,QAAA7B,gBAAAA,EAAAA,OAACF,GAAA,EAAU,WAAW4B,EAAO,KAAA,GAA7B,QAAA,IAAA;AAAA,UAAA,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,cAAA;AAAA,QAAA,GAAA,IAAmC;AAAA,QACnC1B,gBAAAA,SAAC,KAAA,EAAE,WAAW0B,EAAO,OAAQ,UAAAP,EAAA,GAA7B,QAAA,IAAA;AAAA,UAAA,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,cAAA;AAAA,QAAA,GAAA,IAAmC;AAAA,QAClCC,KAAepB,gBAAAA,EAAAA,OAAC,KAAA,EAAE,WAAW0B,EAAO,aAAc,UAAAN,KAAnC,QAAA,IAAA;AAAA,UAAA,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,cAAA;AAAA,QAAA,GAAA,IAA+C;AAAA,QAC9DE,KACCtB,gBAAAA,EAAAA;AAAAA,UAAC8B;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,SAASR;AAAA,YACT,WAAWI,EAAO;AAAA,YAEjB,UAAAL;AAAA,UAAA;AAAA,UANH;AAAA,UAAA;AAAA,UAAA;AAAA,YAAA,UAAA;AAAA,YAAA,YAAA;AAAA,YAAA,cAAA;AAAA,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAOA,EAAA,GAZJ,QAAA,IAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAA,IAcA;AAAA,IAAA;AAAA,IAtBJ;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAA;AAAA,EAAA;AA0BJ,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 { j as i } from "../../vendor/react/jsx-dev-runtime.js";
|
|
2
|
+
import * as H from "react";
|
|
3
|
+
import { flexRender as k } from "../../vendor/@tanstack/react-table/build/lib/index.js";
|
|
4
|
+
import { shorthands as L } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
5
|
+
import { SLOT_ATTR as P } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
|
+
import { mergeClasses as W } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
|
+
import { makeVoltStyles as j } from "../../styles/make-styles.js";
|
|
8
|
+
import { grayA6 as z, gray2 as E, fontWeightSemibold as U } from "../../tokens/index.js";
|
|
9
|
+
import { TableHeader as I, TableRow as V, TableHead as f } from "../table/table.js";
|
|
10
|
+
import { getPinnedColumnOffset as O, isLastLeftPinnedColumn as _, isFirstRightPinnedColumn as A } from "./data-table-pinning-utils.js";
|
|
11
|
+
import { useDataTable as F } from "./hooks/use-data-table.js";
|
|
12
|
+
import { useDataTableContent as $ } from "./hooks/use-data-table-content.js";
|
|
13
|
+
const Q = 150, q = j({
|
|
14
14
|
headerTitle: {
|
|
15
15
|
display: "block",
|
|
16
|
-
...
|
|
16
|
+
...L.overflow("hidden"),
|
|
17
17
|
whiteSpace: "nowrap",
|
|
18
|
-
fontWeight:
|
|
18
|
+
fontWeight: U
|
|
19
19
|
},
|
|
20
20
|
shadowLeft: {
|
|
21
21
|
boxShadow: "2px 0 5px -2px rgba(0,0,0,0.1)"
|
|
@@ -23,78 +23,112 @@ const q = 150, B = O({
|
|
|
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
|
+
}), se = H.forwardRef(function({ className: g, sticky: b = !1, stickyBackground: m = E }, h) {
|
|
27
|
+
const n = q(), { table: s, disableColumnResizing: x, showHeaderBorder: v, fitHeaderWidth: w } = F(), c = !x, r = $(), u = (r == null ? void 0 : r.spacerWidth) ?? 0, t = b, N = (l) => l.map((e) => {
|
|
28
|
+
const o = e.column.getIsPinned(), p = o ? O(e.column, s) : void 0, S = _(e.column, s), D = A(e.column, s), d = e.column.columnDef.meta, R = d == null ? void 0 : d.align, T = {
|
|
29
|
+
width: c || e.getSize() !== Q ? e.getSize() : void 0,
|
|
30
|
+
minWidth: w ? "max-content" : void 0,
|
|
31
|
+
backgroundColor: t || o ? m : void 0,
|
|
32
|
+
position: t || o ? "sticky" : c ? "relative" : void 0,
|
|
33
33
|
top: t ? 0 : void 0,
|
|
34
|
-
left:
|
|
35
|
-
right:
|
|
36
|
-
zIndex:
|
|
34
|
+
left: o === "left" ? `${p}px` : void 0,
|
|
35
|
+
right: o === "right" ? `${p}px` : void 0,
|
|
36
|
+
zIndex: o ? 30 : t ? 10 : void 0,
|
|
37
37
|
// Reduce padding for sortable headers
|
|
38
38
|
...(() => {
|
|
39
|
-
const
|
|
40
|
-
return (
|
|
39
|
+
const a = e.column.columnDef.meta;
|
|
40
|
+
return (a == null ? void 0 : a._sortableHeaderWrapped) || e.column.getCanSort() && typeof e.column.columnDef.header == "function" ? (a == null ? void 0 : a.align) === "right" ? { paddingRight: 8 } : { paddingLeft: 8 } : {};
|
|
41
41
|
})()
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
}, y = e.column.getIsSorted() === "asc" ? "ascending" : e.column.getIsSorted() === "desc" ? "descending" : e.column.getCanSort() ? "none" : void 0, C = /* @__PURE__ */ i.jsxDEV("span", { className: n.headerTitle, children: e.isPlaceholder ? null : k(e.column.columnDef.header, e.getContext()) }, void 0, !1, {
|
|
43
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-header.tsx",
|
|
44
|
+
lineNumber: 124,
|
|
45
|
+
columnNumber: 9
|
|
46
|
+
}, this);
|
|
47
|
+
return /* @__PURE__ */ i.jsxDEV(
|
|
48
|
+
f,
|
|
45
49
|
{
|
|
46
50
|
align: R,
|
|
47
|
-
"aria-sort":
|
|
48
|
-
style:
|
|
49
|
-
className:
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
"aria-sort": y,
|
|
52
|
+
style: T,
|
|
53
|
+
className: W(
|
|
54
|
+
S && n.shadowLeft,
|
|
55
|
+
D && n.shadowRight
|
|
52
56
|
),
|
|
53
|
-
children:
|
|
57
|
+
children: C
|
|
54
58
|
},
|
|
55
|
-
|
|
59
|
+
e.id,
|
|
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
|
|
56
67
|
);
|
|
57
68
|
});
|
|
58
|
-
return /* @__PURE__ */
|
|
59
|
-
|
|
69
|
+
return /* @__PURE__ */ i.jsxDEV(
|
|
70
|
+
I,
|
|
60
71
|
{
|
|
61
|
-
ref:
|
|
72
|
+
ref: h,
|
|
62
73
|
"data-slot": "data-table-header",
|
|
63
|
-
[
|
|
74
|
+
[P]: "data-table-header",
|
|
64
75
|
"data-fs-element": "DataTable-Header",
|
|
65
|
-
className:
|
|
66
|
-
children:
|
|
67
|
-
|
|
76
|
+
className: g,
|
|
77
|
+
children: s.getHeaderGroups().map((l) => /* @__PURE__ */ i.jsxDEV(
|
|
78
|
+
V,
|
|
68
79
|
{
|
|
69
80
|
noHover: !0,
|
|
70
81
|
style: {
|
|
71
|
-
boxShadow:
|
|
82
|
+
boxShadow: v !== !1 ? `inset 0 -1px 0 0 ${z}` : "none"
|
|
72
83
|
},
|
|
73
84
|
children: [
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
85
|
+
N(l.headers),
|
|
86
|
+
u > 0 && /* @__PURE__ */ i.jsxDEV(
|
|
87
|
+
f,
|
|
77
88
|
{
|
|
78
89
|
"data-spacer": !0,
|
|
79
90
|
"aria-hidden": "true",
|
|
80
91
|
style: {
|
|
81
|
-
width:
|
|
92
|
+
width: u,
|
|
82
93
|
padding: 0,
|
|
83
|
-
backgroundColor: t ?
|
|
94
|
+
backgroundColor: t ? m : void 0,
|
|
84
95
|
position: t ? "sticky" : void 0,
|
|
85
96
|
top: t ? 0 : void 0,
|
|
86
97
|
zIndex: t ? 5 : void 0
|
|
87
98
|
}
|
|
88
|
-
}
|
|
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
|
|
89
108
|
)
|
|
90
109
|
]
|
|
91
110
|
},
|
|
92
|
-
|
|
111
|
+
l.id,
|
|
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
|
|
93
119
|
))
|
|
94
|
-
}
|
|
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
|
|
95
129
|
);
|
|
96
130
|
});
|
|
97
131
|
export {
|
|
98
|
-
|
|
132
|
+
se as DataTableHeader
|
|
99
133
|
};
|
|
100
134
|
//# 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","jsx","flexRender","TableHead","mergeClasses","TableHeader","SLOT_ATTR","headerGroup","jsxs","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","jsxDEV","flexRender","TableHead","mergeClasses","TableHeader","SLOT_ATTR","headerGroup","TableRow","tokens.grayA6"],"mappings":"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"}
|
|
@@ -1,39 +1,51 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { j as a } from "../../vendor/react/jsx-dev-runtime.js";
|
|
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 i } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
4
|
+
import { SLOT_ATTR as l } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
5
|
+
import { mergeClasses as n } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
6
|
+
import { makeVoltStyles as m } 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 = m({
|
|
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
|
+
...i.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
|
+
}), j = s.forwardRef(function({ className: t, children: o }, r) {
|
|
24
|
+
const e = g();
|
|
25
|
+
return /* @__PURE__ */ a.jsxDEV(
|
|
26
26
|
"div",
|
|
27
27
|
{
|
|
28
28
|
ref: r,
|
|
29
29
|
"data-slot": "data-table-loading",
|
|
30
|
-
[
|
|
31
|
-
className:
|
|
32
|
-
children:
|
|
33
|
-
|
|
30
|
+
[l]: "data-table-loading",
|
|
31
|
+
className: n(e.root, t),
|
|
32
|
+
children: o ?? /* @__PURE__ */ a.jsxDEV(f, { className: e.spinner }, void 0, !1, {
|
|
33
|
+
fileName: "/Users/wilianmolinari/repos/volt-ui-rollout/release/packages/experimental-griffel/src/components/data-table/data-table-loading.tsx",
|
|
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
|
|
34
46
|
);
|
|
35
47
|
});
|
|
36
48
|
export {
|
|
37
|
-
|
|
49
|
+
j as DataTableLoading
|
|
38
50
|
};
|
|
39
51
|
//# 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","jsxDEV","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,SACEY,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAF;AAAA,MACA,aAAU;AAAA,MACJ,CAACG,CAAS,GAAG;AAAA,MACnB,WAAWC,EAAaH,EAAO,MAAMH,CAAS;AAAA,MAE7C,UAAAC,KAAYG,gBAAAA,EAAAA,OAACG,GAAA,EAAQ,WAAWJ,EAAO,QAAA,GAA3B,QAAA,IAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAA,GAAA,IAAoC;AAAA,IAAA;AAAA,IANnD;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAA;AAAA,EAAA;AASJ,CAAC;"}
|
|
@@ -1,30 +1,38 @@
|
|
|
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 { j as d } from "../../vendor/react/jsx-dev-runtime.js";
|
|
2
|
+
import * as c from "react";
|
|
3
|
+
import { TablePagination as f } from "../table/table-pagination.js";
|
|
4
|
+
import { useDataTable as u } from "./hooks/use-data-table.js";
|
|
5
|
+
const P = [10, 25, 50, 100], I = c.forwardRef(function({ pageSizeOptions: n, siblingCount: s, labels: i, className: l }, r) {
|
|
6
|
+
const { table: a, pagination: e } = u(), g = n ?? (e == null ? void 0 : e.pageSizeOptions) ?? P, { pageIndex: m, pageSize: o } = a.getState().pagination, p = (e == null ? void 0 : e.totalItems) ?? ((e == null ? void 0 : e.pageCount) !== void 0 && e.pageCount >= 0 ? e.pageCount * o : a.getFilteredRowModel().rows.length);
|
|
7
|
+
return /* @__PURE__ */ d.jsxDEV(
|
|
8
|
+
f,
|
|
9
9
|
{
|
|
10
|
-
ref:
|
|
10
|
+
ref: r,
|
|
11
11
|
"data-slot": "data-table-pagination",
|
|
12
12
|
"data-fs-element": "DataTable-Pagination",
|
|
13
|
-
page:
|
|
14
|
-
totalItems:
|
|
13
|
+
page: m + 1,
|
|
14
|
+
totalItems: p,
|
|
15
15
|
pageSize: o,
|
|
16
|
-
onPageChange: (
|
|
17
|
-
onPageSizeChange: (
|
|
18
|
-
|
|
16
|
+
onPageChange: (t) => a.setPageIndex(t - 1),
|
|
17
|
+
onPageSizeChange: (t) => {
|
|
18
|
+
a.setPageSize(t), a.setPageIndex(0);
|
|
19
19
|
},
|
|
20
|
-
pageSizeOptions:
|
|
20
|
+
pageSizeOptions: g,
|
|
21
21
|
siblingCount: s,
|
|
22
|
-
labels:
|
|
23
|
-
className:
|
|
24
|
-
}
|
|
22
|
+
labels: i,
|
|
23
|
+
className: l
|
|
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
|
|
25
33
|
);
|
|
26
34
|
});
|
|
27
35
|
export {
|
|
28
|
-
|
|
36
|
+
I as DataTablePagination
|
|
29
37
|
};
|
|
30
38
|
//# 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","jsxDEV","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,SACEO,gBAAAA,EAAAA;AAAAA,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,IAfF;AAAA,IAAA;AAAA,IAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA;AAAA,IAAA;AAAA,EAAA;AAkBJ,CAAC;"}
|