@epilot/volt-ui-experimental-griffel 0.2.3 → 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/ADOPTING.md +416 -0
- package/README.md +32 -31
- package/dist/components/alert-dialog/alert-dialog.js +61 -59
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/avatar/avatar.js +6 -6
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/badge/badge.js +47 -39
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/button/button.js +71 -68
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/checkbox/checkbox.js +23 -20
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/command/command.js +50 -35
- package/dist/components/command/command.js.map +1 -1
- package/dist/components/data-table/data-table.js +89 -88
- package/dist/components/data-table/data-table.js.map +1 -1
- package/dist/components/density-provider/density-provider.js +28 -0
- package/dist/components/density-provider/density-provider.js.map +1 -0
- package/dist/components/dialog/dialog.js +122 -100
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/drawer/drawer.js +61 -59
- package/dist/components/drawer/drawer.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +88 -85
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/field/field-combobox.js +121 -106
- package/dist/components/field/field-combobox.js.map +1 -1
- package/dist/components/field/field.js +105 -104
- package/dist/components/field/field.js.map +1 -1
- package/dist/components/list/list.js +282 -308
- package/dist/components/list/list.js.map +1 -1
- package/dist/components/pill/pill.js +58 -56
- package/dist/components/pill/pill.js.map +1 -1
- package/dist/components/popover/popover.js +47 -38
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radio/radio.js +21 -18
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/select/select.js +185 -156
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/skeleton/skeleton.js +2 -2
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/switch/switch.js +34 -29
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/table-pagination.js +92 -90
- package/dist/components/table/table-pagination.js.map +1 -1
- package/dist/components/table/table.js +109 -121
- package/dist/components/table/table.js.map +1 -1
- package/dist/components/toggle/toggle.js +29 -29
- package/dist/components/toggle/toggle.js.map +1 -1
- package/dist/components/tooltip/tooltip.js +36 -34
- 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/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/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,15 +1,16 @@
|
|
|
1
1
|
import { jsx as t, jsxs as a } from "react/jsx-runtime";
|
|
2
|
-
import * as
|
|
3
|
-
import { Root as
|
|
2
|
+
import * as G from "react";
|
|
3
|
+
import { Root as X, Trigger as Q, Value as U, Icon as Z, Portal as q, Content as J, Viewport as K, Group as Y, Label as b, Item as ee, ItemIndicator as te, ItemText as oe } from "../../vendor/@radix-ui/react-select/dist/index.js";
|
|
4
4
|
import { shorthands as i } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/index.js";
|
|
5
|
-
import { SLOT_ATTR as
|
|
6
|
-
import { mergeClasses as
|
|
7
|
-
import { makeVoltStyles as
|
|
8
|
-
import { radiusMd as
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
5
|
+
import { SLOT_ATTR as ne } from "../../packages/volt-runtime/dist/renderer/contract.js";
|
|
6
|
+
import { mergeClasses as re } from "../../packages/volt-runtime/dist/vendor/@griffel/core/src/mergeClasses.js";
|
|
7
|
+
import { makeVoltStyles as ie } from "../../styles/make-styles.js";
|
|
8
|
+
import { radiusMd as ae, grayA6 as ce, radiusLg as W, spacingElement3 as se, accentA3 as R, leadingSm as m, textSm as u, grayA11 as k, fontWeightSemibold as de, leadingXs as ge, textXs as pe, semBody as he, accent8 as le, grayA4 as y, grayA3 as g, spacingElement1 as me, spacingGroup1 as E, accent11 as C, trackingNormal as ue, accentA8 as ve, spacingElement2 as fe } from "../../tokens/index.js";
|
|
9
|
+
import { useDensity as we } from "../density-provider/density-provider.js";
|
|
10
|
+
import { calculatePagination as ke, getPageNumbers as ye, clampPage as Ce } from "../../lib/pagination.js";
|
|
11
|
+
import { TooltipProvider as xe, Tooltip as Ie, TooltipTrigger as Pe, TooltipContent as Ne } from "../tooltip/tooltip.js";
|
|
11
12
|
import { Button as d } from "../button/button.js";
|
|
12
|
-
const
|
|
13
|
+
const Se = (r) => /* @__PURE__ */ a(
|
|
13
14
|
"svg",
|
|
14
15
|
{
|
|
15
16
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -27,7 +28,7 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
27
28
|
/* @__PURE__ */ t("path", { d: "m15 18-6-6 6-6" })
|
|
28
29
|
]
|
|
29
30
|
}
|
|
30
|
-
),
|
|
31
|
+
), Le = (r) => /* @__PURE__ */ t(
|
|
31
32
|
"svg",
|
|
32
33
|
{
|
|
33
34
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -42,7 +43,7 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
42
43
|
...r,
|
|
43
44
|
children: /* @__PURE__ */ t("path", { d: "m15 18-6-6 6-6" })
|
|
44
45
|
}
|
|
45
|
-
),
|
|
46
|
+
), Be = (r) => /* @__PURE__ */ t(
|
|
46
47
|
"svg",
|
|
47
48
|
{
|
|
48
49
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -57,7 +58,7 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
57
58
|
...r,
|
|
58
59
|
children: /* @__PURE__ */ t("path", { d: "m9 18 6-6-6-6" })
|
|
59
60
|
}
|
|
60
|
-
),
|
|
61
|
+
), Te = (r) => /* @__PURE__ */ a(
|
|
61
62
|
"svg",
|
|
62
63
|
{
|
|
63
64
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -75,7 +76,7 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
75
76
|
/* @__PURE__ */ t("path", { d: "M18 6v12" })
|
|
76
77
|
]
|
|
77
78
|
}
|
|
78
|
-
),
|
|
79
|
+
), je = (r) => /* @__PURE__ */ t(
|
|
79
80
|
"svg",
|
|
80
81
|
{
|
|
81
82
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -90,7 +91,7 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
90
91
|
...r,
|
|
91
92
|
children: /* @__PURE__ */ t("path", { d: "m6 9 6 6 6-6" })
|
|
92
93
|
}
|
|
93
|
-
),
|
|
94
|
+
), ze = (r) => /* @__PURE__ */ t(
|
|
94
95
|
"svg",
|
|
95
96
|
{
|
|
96
97
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -105,30 +106,30 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
105
106
|
...r,
|
|
106
107
|
children: /* @__PURE__ */ t("path", { d: "M20 6 9 17l-5-5" })
|
|
107
108
|
}
|
|
108
|
-
),
|
|
109
|
+
), Ae = [10, 25, 50, 100], We = ie({
|
|
109
110
|
root: {
|
|
110
111
|
display: "flex",
|
|
111
112
|
alignItems: "center",
|
|
112
113
|
justifyContent: "space-between",
|
|
113
|
-
gap:
|
|
114
|
-
...i.paddingBlock(
|
|
114
|
+
gap: E,
|
|
115
|
+
...i.paddingBlock(se),
|
|
115
116
|
fontSize: u,
|
|
116
117
|
lineHeight: m
|
|
117
118
|
},
|
|
118
119
|
left: {
|
|
119
120
|
display: "flex",
|
|
120
121
|
alignItems: "center",
|
|
121
|
-
gap:
|
|
122
|
+
gap: fe
|
|
122
123
|
},
|
|
123
124
|
navButton: {
|
|
124
125
|
backgroundColor: g,
|
|
125
|
-
color:
|
|
126
|
+
color: C,
|
|
126
127
|
":hover": {
|
|
127
|
-
backgroundColor:
|
|
128
|
+
backgroundColor: y
|
|
128
129
|
},
|
|
129
130
|
":disabled": {
|
|
130
131
|
backgroundColor: g,
|
|
131
|
-
color:
|
|
132
|
+
color: ve,
|
|
132
133
|
pointerEvents: "none"
|
|
133
134
|
}
|
|
134
135
|
},
|
|
@@ -137,18 +138,18 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
137
138
|
},
|
|
138
139
|
pageButtonInactive: {
|
|
139
140
|
backgroundColor: "transparent",
|
|
140
|
-
color:
|
|
141
|
+
color: C,
|
|
141
142
|
":hover": {
|
|
142
143
|
backgroundColor: g
|
|
143
144
|
},
|
|
144
145
|
":active": {
|
|
145
|
-
backgroundColor:
|
|
146
|
+
backgroundColor: y
|
|
146
147
|
}
|
|
147
148
|
},
|
|
148
149
|
ellipsisButton: {
|
|
149
|
-
letterSpacing:
|
|
150
|
+
letterSpacing: ue,
|
|
150
151
|
backgroundColor: "transparent",
|
|
151
|
-
color:
|
|
152
|
+
color: C,
|
|
152
153
|
":hover": {
|
|
153
154
|
backgroundColor: g
|
|
154
155
|
}
|
|
@@ -156,7 +157,7 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
156
157
|
right: {
|
|
157
158
|
display: "flex",
|
|
158
159
|
alignItems: "center",
|
|
159
|
-
gap:
|
|
160
|
+
gap: E,
|
|
160
161
|
paddingRight: "0.125rem"
|
|
161
162
|
},
|
|
162
163
|
range: {
|
|
@@ -172,8 +173,8 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
172
173
|
minWidth: "4rem",
|
|
173
174
|
alignItems: "center",
|
|
174
175
|
justifyContent: "space-between",
|
|
175
|
-
gap:
|
|
176
|
-
...i.borderRadius(
|
|
176
|
+
gap: me,
|
|
177
|
+
...i.borderRadius(W),
|
|
177
178
|
backgroundColor: g,
|
|
178
179
|
...i.paddingInline("0.75rem"),
|
|
179
180
|
fontSize: u,
|
|
@@ -181,12 +182,12 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
181
182
|
cursor: "pointer",
|
|
182
183
|
...i.borderWidth(0),
|
|
183
184
|
":hover": {
|
|
184
|
-
backgroundColor:
|
|
185
|
+
backgroundColor: y
|
|
185
186
|
},
|
|
186
187
|
":focus": {
|
|
187
188
|
outlineWidth: "2px",
|
|
188
189
|
outlineStyle: "solid",
|
|
189
|
-
outlineColor:
|
|
190
|
+
outlineColor: le,
|
|
190
191
|
outlineOffset: "2px"
|
|
191
192
|
},
|
|
192
193
|
":disabled": {
|
|
@@ -203,9 +204,9 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
203
204
|
position: "relative",
|
|
204
205
|
zIndex: 50,
|
|
205
206
|
...i.overflow("hidden"),
|
|
206
|
-
...i.borderRadius(
|
|
207
|
-
...i.border("1px", "solid",
|
|
208
|
-
backgroundColor:
|
|
207
|
+
...i.borderRadius(W),
|
|
208
|
+
...i.border("1px", "solid", ce),
|
|
209
|
+
backgroundColor: he,
|
|
209
210
|
boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)"
|
|
210
211
|
},
|
|
211
212
|
selectViewport: {
|
|
@@ -213,9 +214,9 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
213
214
|
},
|
|
214
215
|
selectLabel: {
|
|
215
216
|
...i.padding("0.375rem", "0.5rem"),
|
|
216
|
-
fontSize:
|
|
217
|
-
lineHeight:
|
|
218
|
-
fontWeight:
|
|
217
|
+
fontSize: pe,
|
|
218
|
+
lineHeight: ge,
|
|
219
|
+
fontWeight: de,
|
|
219
220
|
color: k
|
|
220
221
|
},
|
|
221
222
|
selectItem: {
|
|
@@ -224,16 +225,16 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
224
225
|
cursor: "pointer",
|
|
225
226
|
userSelect: "none",
|
|
226
227
|
alignItems: "center",
|
|
227
|
-
...i.borderRadius(
|
|
228
|
+
...i.borderRadius(ae),
|
|
228
229
|
...i.padding("0.375rem", "0.5rem", "0.375rem", "2rem"),
|
|
229
230
|
fontSize: u,
|
|
230
231
|
lineHeight: m,
|
|
231
232
|
outlineStyle: "none",
|
|
232
233
|
":focus": {
|
|
233
|
-
backgroundColor:
|
|
234
|
+
backgroundColor: R
|
|
234
235
|
},
|
|
235
236
|
"&[data-state='checked']": {
|
|
236
|
-
backgroundColor:
|
|
237
|
+
backgroundColor: R
|
|
237
238
|
}
|
|
238
239
|
},
|
|
239
240
|
selectItemIndicator: {
|
|
@@ -245,39 +246,39 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
245
246
|
alignItems: "center",
|
|
246
247
|
justifyContent: "center"
|
|
247
248
|
}
|
|
248
|
-
}),
|
|
249
|
-
page:
|
|
249
|
+
}), Xe = G.forwardRef(function({
|
|
250
|
+
page: x,
|
|
250
251
|
totalItems: p,
|
|
251
252
|
pageSize: v,
|
|
252
253
|
onPageChange: s,
|
|
253
|
-
onPageSizeChange:
|
|
254
|
-
pageSizeOptions:
|
|
254
|
+
onPageSizeChange: V,
|
|
255
|
+
pageSizeOptions: O = Ae,
|
|
255
256
|
siblingCount: $ = 2,
|
|
256
257
|
disabled: c = !1,
|
|
257
258
|
labels: e,
|
|
258
|
-
className:
|
|
259
|
-
...
|
|
260
|
-
},
|
|
261
|
-
var
|
|
262
|
-
const o =
|
|
263
|
-
page:
|
|
259
|
+
className: D,
|
|
260
|
+
...H
|
|
261
|
+
}, M) {
|
|
262
|
+
var B;
|
|
263
|
+
const o = We(), I = we(), { totalPages: f, start: P, end: N, isFirstPage: S, isLastPage: L } = ke({
|
|
264
|
+
page: x,
|
|
264
265
|
pageSize: v,
|
|
265
266
|
totalItems: p
|
|
266
|
-
}), h =
|
|
267
|
+
}), h = Ce(x, f), _ = ye(h, f, $), F = (n) => {
|
|
267
268
|
const l = parseInt(n, 10);
|
|
268
|
-
isNaN(l) ||
|
|
269
|
+
isNaN(l) || V(l);
|
|
269
270
|
};
|
|
270
|
-
return p === 0 ? null : /* @__PURE__ */ t(
|
|
271
|
+
return p === 0 ? null : /* @__PURE__ */ t(xe, { children: /* @__PURE__ */ a(
|
|
271
272
|
"div",
|
|
272
273
|
{
|
|
273
|
-
ref:
|
|
274
|
+
ref: M,
|
|
274
275
|
"data-slot": "table-pagination",
|
|
275
|
-
[
|
|
276
|
+
[ne]: "table-pagination",
|
|
276
277
|
"data-fs-element": "TablePagination",
|
|
277
278
|
role: "navigation",
|
|
278
279
|
"aria-label": e == null ? void 0 : e.navigation,
|
|
279
|
-
className:
|
|
280
|
-
...
|
|
280
|
+
className: re(o.root, D),
|
|
281
|
+
...H,
|
|
281
282
|
children: [
|
|
282
283
|
/* @__PURE__ */ a("div", { className: o.left, children: [
|
|
283
284
|
/* @__PURE__ */ t(
|
|
@@ -286,11 +287,11 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
286
287
|
variant: "secondary",
|
|
287
288
|
size: "icon-sm",
|
|
288
289
|
shape: "normal",
|
|
289
|
-
disabled: c ||
|
|
290
|
+
disabled: c || S,
|
|
290
291
|
onClick: () => s(1),
|
|
291
292
|
"aria-label": e == null ? void 0 : e.firstPage,
|
|
292
293
|
className: o.navButton,
|
|
293
|
-
children: /* @__PURE__ */ t(
|
|
294
|
+
children: /* @__PURE__ */ t(Se, {})
|
|
294
295
|
}
|
|
295
296
|
),
|
|
296
297
|
/* @__PURE__ */ t(
|
|
@@ -299,19 +300,19 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
299
300
|
variant: "secondary",
|
|
300
301
|
size: "icon-sm",
|
|
301
302
|
shape: "normal",
|
|
302
|
-
disabled: c ||
|
|
303
|
+
disabled: c || S,
|
|
303
304
|
onClick: () => s(h - 1),
|
|
304
305
|
"aria-label": e == null ? void 0 : e.previousPage,
|
|
305
306
|
className: o.navButton,
|
|
306
|
-
children: /* @__PURE__ */ t(
|
|
307
|
+
children: /* @__PURE__ */ t(Le, {})
|
|
307
308
|
}
|
|
308
309
|
),
|
|
309
|
-
|
|
310
|
-
var
|
|
311
|
-
const
|
|
310
|
+
_.map((n, l) => {
|
|
311
|
+
var j, z, A;
|
|
312
|
+
const T = n.type === "ellipsis" ? `ellipsis-${l}-${n.targetPage}` : `page-${n.page}`;
|
|
312
313
|
if (n.type === "ellipsis")
|
|
313
|
-
return /* @__PURE__ */ a(
|
|
314
|
-
/* @__PURE__ */ t(
|
|
314
|
+
return /* @__PURE__ */ a(Ie, { children: [
|
|
315
|
+
/* @__PURE__ */ t(Pe, { asChild: !0, children: /* @__PURE__ */ t(
|
|
315
316
|
d,
|
|
316
317
|
{
|
|
317
318
|
variant: "tertiary",
|
|
@@ -319,13 +320,13 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
319
320
|
shape: "normal",
|
|
320
321
|
disabled: c,
|
|
321
322
|
onClick: () => s(n.targetPage),
|
|
322
|
-
"aria-label": (
|
|
323
|
+
"aria-label": (j = e == null ? void 0 : e.jumpToPage) == null ? void 0 : j.call(e, n.targetPage),
|
|
323
324
|
className: o.ellipsisButton,
|
|
324
325
|
children: "..."
|
|
325
326
|
}
|
|
326
327
|
) }),
|
|
327
|
-
/* @__PURE__ */ t(
|
|
328
|
-
] },
|
|
328
|
+
/* @__PURE__ */ t(Ne, { children: (z = e == null ? void 0 : e.jumpToPage) == null ? void 0 : z.call(e, n.targetPage) })
|
|
329
|
+
] }, T);
|
|
329
330
|
const w = n.page === h;
|
|
330
331
|
return /* @__PURE__ */ t(
|
|
331
332
|
d,
|
|
@@ -335,12 +336,12 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
335
336
|
shape: "normal",
|
|
336
337
|
disabled: c,
|
|
337
338
|
onClick: () => s(n.page),
|
|
338
|
-
"aria-label": (
|
|
339
|
+
"aria-label": (A = e == null ? void 0 : e.goToPage) == null ? void 0 : A.call(e, n.page),
|
|
339
340
|
"aria-current": w ? "page" : void 0,
|
|
340
341
|
className: w ? o.pageButtonActive : o.pageButtonInactive,
|
|
341
342
|
children: n.page
|
|
342
343
|
},
|
|
343
|
-
|
|
344
|
+
T
|
|
344
345
|
);
|
|
345
346
|
}),
|
|
346
347
|
/* @__PURE__ */ t(
|
|
@@ -349,11 +350,11 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
349
350
|
variant: "secondary",
|
|
350
351
|
size: "icon-sm",
|
|
351
352
|
shape: "normal",
|
|
352
|
-
disabled: c ||
|
|
353
|
+
disabled: c || L,
|
|
353
354
|
onClick: () => s(h + 1),
|
|
354
355
|
"aria-label": e == null ? void 0 : e.nextPage,
|
|
355
356
|
className: o.navButton,
|
|
356
|
-
children: /* @__PURE__ */ t(
|
|
357
|
+
children: /* @__PURE__ */ t(Be, {})
|
|
357
358
|
}
|
|
358
359
|
),
|
|
359
360
|
/* @__PURE__ */ t(
|
|
@@ -362,11 +363,11 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
362
363
|
variant: "secondary",
|
|
363
364
|
size: "icon-sm",
|
|
364
365
|
shape: "normal",
|
|
365
|
-
disabled: c ||
|
|
366
|
+
disabled: c || L,
|
|
366
367
|
onClick: () => s(f),
|
|
367
368
|
"aria-label": e == null ? void 0 : e.lastPage,
|
|
368
369
|
className: o.navButton,
|
|
369
|
-
children: /* @__PURE__ */ t(
|
|
370
|
+
children: /* @__PURE__ */ t(Te, {})
|
|
370
371
|
}
|
|
371
372
|
)
|
|
372
373
|
] }),
|
|
@@ -377,43 +378,44 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
377
378
|
"data-slot": "table-pagination-range",
|
|
378
379
|
className: o.range,
|
|
379
380
|
"aria-live": "polite",
|
|
380
|
-
children: e != null && e.rangeDisplay ? e.rangeDisplay(
|
|
381
|
+
children: e != null && e.rangeDisplay ? e.rangeDisplay(P, N, p) : `${P}-${N} / ${p}`
|
|
381
382
|
}
|
|
382
383
|
),
|
|
383
384
|
/* @__PURE__ */ a(
|
|
384
|
-
|
|
385
|
+
X,
|
|
385
386
|
{
|
|
386
387
|
value: String(v),
|
|
387
|
-
onValueChange:
|
|
388
|
+
onValueChange: F,
|
|
388
389
|
disabled: c,
|
|
389
390
|
children: [
|
|
390
391
|
/* @__PURE__ */ a(
|
|
391
|
-
|
|
392
|
+
Q,
|
|
392
393
|
{
|
|
393
394
|
className: o.selectTrigger,
|
|
394
|
-
"aria-label": (
|
|
395
|
+
"aria-label": (B = e == null ? void 0 : e.pageSizeSelector) == null ? void 0 : B.call(e, v),
|
|
395
396
|
children: [
|
|
396
|
-
/* @__PURE__ */ t(
|
|
397
|
-
/* @__PURE__ */ t(
|
|
397
|
+
/* @__PURE__ */ t(U, {}),
|
|
398
|
+
/* @__PURE__ */ t(Z, { className: o.selectIcon, children: /* @__PURE__ */ t(je, {}) })
|
|
398
399
|
]
|
|
399
400
|
}
|
|
400
401
|
),
|
|
401
|
-
/* @__PURE__ */ t(
|
|
402
|
-
|
|
402
|
+
/* @__PURE__ */ t(q, { children: /* @__PURE__ */ t(
|
|
403
|
+
J,
|
|
403
404
|
{
|
|
404
405
|
className: o.selectContent,
|
|
406
|
+
...I !== void 0 ? { "data-density": I } : {},
|
|
405
407
|
position: "popper",
|
|
406
408
|
sideOffset: 4,
|
|
407
|
-
children: /* @__PURE__ */ t(
|
|
408
|
-
(e == null ? void 0 : e.resultsPerPage) && /* @__PURE__ */ t(
|
|
409
|
-
|
|
410
|
-
|
|
409
|
+
children: /* @__PURE__ */ t(K, { className: o.selectViewport, children: /* @__PURE__ */ a(Y, { children: [
|
|
410
|
+
(e == null ? void 0 : e.resultsPerPage) && /* @__PURE__ */ t(b, { className: o.selectLabel, children: e.resultsPerPage }),
|
|
411
|
+
O.map((n) => /* @__PURE__ */ a(
|
|
412
|
+
ee,
|
|
411
413
|
{
|
|
412
414
|
value: String(n),
|
|
413
415
|
className: o.selectItem,
|
|
414
416
|
children: [
|
|
415
|
-
/* @__PURE__ */ t("span", { className: o.selectItemIndicator, children: /* @__PURE__ */ t(
|
|
416
|
-
/* @__PURE__ */ t(
|
|
417
|
+
/* @__PURE__ */ t("span", { className: o.selectItemIndicator, children: /* @__PURE__ */ t(te, { children: /* @__PURE__ */ t(ze, { style: { width: 16, height: 16 } }) }) }),
|
|
418
|
+
/* @__PURE__ */ t(oe, { children: n })
|
|
417
419
|
]
|
|
418
420
|
},
|
|
419
421
|
n
|
|
@@ -430,6 +432,6 @@ const Pe = (r) => /* @__PURE__ */ a(
|
|
|
430
432
|
) });
|
|
431
433
|
});
|
|
432
434
|
export {
|
|
433
|
-
|
|
435
|
+
Xe as TablePagination
|
|
434
436
|
};
|
|
435
437
|
//# sourceMappingURL=table-pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-pagination.js","sources":["../../../src/components/table/table-pagination.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { SVGProps, ComponentProps } from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\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 {\n calculatePagination,\n clampPage,\n getPageNumbers,\n} from \"../../lib/pagination\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../tooltip/tooltip\"\nimport { Button } from \"../button/button\"\n\n// Navigation icons\nconst IconFirstPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M6 6v12\" />\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronLeft = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronRight = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n)\n\nconst IconLastPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n <path d=\"M18 6v12\" />\n </svg>\n)\n\n// Select icons\nconst ChevronDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n)\n\nconst CheckIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n)\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingGroup1,\n ...shorthands.paddingBlock(tokens.spacingElement3),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n left: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingElement2,\n },\n navButton: {\n backgroundColor: tokens.grayA3,\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":disabled\": {\n backgroundColor: tokens.grayA3,\n color: tokens.accentA8,\n pointerEvents: \"none\",\n },\n },\n pageButtonActive: {\n pointerEvents: \"none\",\n },\n pageButtonInactive: {\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n \":active\": {\n backgroundColor: tokens.grayA4,\n },\n },\n ellipsisButton: {\n letterSpacing: tokens.trackingNormal,\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n },\n right: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingGroup1,\n paddingRight: \"0.125rem\",\n },\n range: {\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n fontVariantNumeric: \"tabular-nums\",\n },\n selectTrigger: {\n display: \"flex\",\n height: \"2rem\",\n width: \"auto\",\n minWidth: \"4rem\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingElement1,\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: tokens.grayA3,\n ...shorthands.paddingInline(\"0.75rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n cursor: \"pointer\",\n ...shorthands.borderWidth(0),\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":focus\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineColor: tokens.accent8,\n outlineOffset: \"2px\",\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n selectIcon: {\n display: \"flex\",\n alignItems: \"center\",\n color: tokens.grayA11,\n },\n selectContent: {\n position: \"relative\",\n zIndex: 50,\n ...shorthands.overflow(\"hidden\"),\n ...shorthands.borderRadius(tokens.radiusLg),\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA6),\n backgroundColor: tokens.semBody,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n selectViewport: {\n ...shorthands.padding(\"0.25rem\"),\n },\n selectLabel: {\n ...shorthands.padding(\"0.375rem\", \"0.5rem\"),\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA11,\n },\n selectItem: {\n position: \"relative\",\n display: \"flex\",\n cursor: \"pointer\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n ...shorthands.padding(\"0.375rem\", \"0.5rem\", \"0.375rem\", \"2rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n \":focus\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-state='checked']\": {\n backgroundColor: tokens.accentA3,\n },\n },\n selectItemIndicator: {\n position: \"absolute\",\n left: \"0.5rem\",\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n})\n\nexport type TablePaginationLabels = {\n /** Label for the pagination navigation region. */\n navigation?: string\n /** Label for first page button. */\n firstPage?: string\n /** Label for previous page button. */\n previousPage?: string\n /** Label for next page button. */\n nextPage?: string\n /** Label for last page button. */\n lastPage?: string\n /** Label generator for page number buttons. Receives 1-indexed page number. */\n goToPage?: (page: number) => string\n /** Label generator for ellipsis jump buttons. Receives target page number. */\n jumpToPage?: (page: number) => string\n /** Label generator for page size selector. Receives current page size. */\n pageSizeSelector?: (pageSize: number) => string\n /** Label for page size dropdown header. */\n resultsPerPage?: string\n /** Label generator for the range display. Receives start, end, and total. */\n rangeDisplay?: (start: number, end: number, total: number) => string\n}\n\nexport type TablePaginationProps = Omit<ComponentProps<\"div\">, \"onChange\"> & {\n /** Current page number (1-indexed) */\n page: number\n /** Total number of items across all pages */\n totalItems: number\n /** Current page size (items per page) */\n pageSize: number\n /** Callback fired when the page changes */\n onPageChange: (page: number) => void\n /** Callback fired when the page size changes */\n onPageSizeChange: (pageSize: number) => void\n /** Available page size options for the dropdown */\n pageSizeOptions?: number[]\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number\n /** Whether the pagination controls are disabled */\n disabled?: boolean\n /** Labels for i18n. All labels are optional for backwards compatibility but recommended. */\n labels?: TablePaginationLabels\n}\n\nexport const TablePagination = React.forwardRef<\n HTMLDivElement,\n TablePaginationProps\n>(function TablePagination(\n {\n page,\n totalItems,\n pageSize,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n siblingCount = 2,\n disabled = false,\n labels,\n className,\n ...props\n },\n ref\n) {\n const styles = useStyles()\n const { totalPages, start, end, isFirstPage, isLastPage } =\n calculatePagination({\n page,\n pageSize,\n totalItems,\n })\n\n const safePage = clampPage(page, totalPages)\n const pageItems = getPageNumbers(safePage, totalPages, siblingCount)\n\n const handlePageSizeChange = (value: string) => {\n const newSize = parseInt(value, 10)\n if (!isNaN(newSize)) {\n onPageSizeChange(newSize)\n }\n }\n\n // Don't render if no items\n if (totalItems === 0) {\n return null\n }\n\n return (\n <TooltipProvider>\n <div\n ref={ref}\n data-slot=\"table-pagination\"\n {...{ [SLOT_ATTR]: \"table-pagination\" }}\n data-fs-element=\"TablePagination\"\n role=\"navigation\"\n aria-label={labels?.navigation}\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {/* LEFT SIDE: Navigation and page buttons */}\n <div className={styles.left}>\n {/* First page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(1)}\n aria-label={labels?.firstPage}\n className={styles.navButton}\n >\n <IconFirstPage />\n </Button>\n\n {/* Previous page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(safePage - 1)}\n aria-label={labels?.previousPage}\n className={styles.navButton}\n >\n <IconChevronLeft />\n </Button>\n\n {/* Page number buttons */}\n {pageItems.map((item, index) => {\n const key =\n item.type === \"ellipsis\"\n ? `ellipsis-${index}-${item.targetPage}`\n : `page-${item.page}`\n\n if (item.type === \"ellipsis\") {\n return (\n <Tooltip key={key}>\n <TooltipTrigger asChild>\n <Button\n variant=\"tertiary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.targetPage)}\n aria-label={labels?.jumpToPage?.(item.targetPage)}\n className={styles.ellipsisButton}\n >\n ...\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {labels?.jumpToPage?.(item.targetPage)}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n const isCurrentPage = item.page === safePage\n\n return (\n <Button\n key={key}\n variant={isCurrentPage ? \"secondary\" : \"tertiary\"}\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.page)}\n aria-label={labels?.goToPage?.(item.page)}\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={\n isCurrentPage\n ? styles.pageButtonActive\n : styles.pageButtonInactive\n }\n >\n {item.page}\n </Button>\n )\n })}\n\n {/* Next page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(safePage + 1)}\n aria-label={labels?.nextPage}\n className={styles.navButton}\n >\n <IconChevronRight />\n </Button>\n\n {/* Last page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(totalPages)}\n aria-label={labels?.lastPage}\n className={styles.navButton}\n >\n <IconLastPage />\n </Button>\n </div>\n\n {/* RIGHT SIDE: Range display and page size selector */}\n <div className={styles.right}>\n {/* Range display */}\n <span\n data-slot=\"table-pagination-range\"\n className={styles.range}\n aria-live=\"polite\"\n >\n {labels?.rangeDisplay\n ? labels.rangeDisplay(start, end, totalItems)\n : `${start}-${end} / ${totalItems}`}\n </span>\n\n {/* Page size selector */}\n <SelectPrimitive.Root\n value={String(pageSize)}\n onValueChange={handlePageSizeChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n className={styles.selectTrigger}\n aria-label={labels?.pageSizeSelector?.(pageSize)}\n >\n <SelectPrimitive.Value />\n <SelectPrimitive.Icon className={styles.selectIcon}>\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={styles.selectContent}\n position=\"popper\"\n sideOffset={4}\n >\n <SelectPrimitive.Viewport className={styles.selectViewport}>\n <SelectPrimitive.Group>\n {labels?.resultsPerPage && (\n <SelectPrimitive.Label className={styles.selectLabel}>\n {labels.resultsPerPage}\n </SelectPrimitive.Label>\n )}\n {pageSizeOptions.map((option) => (\n <SelectPrimitive.Item\n key={option}\n value={String(option)}\n className={styles.selectItem}\n >\n <span className={styles.selectItemIndicator}>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon style={{ width: 16, height: 16 }} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>\n {option}\n </SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Group>\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n </div>\n </TooltipProvider>\n )\n})\n"],"names":["IconFirstPage","props","jsxs","jsx","IconChevronLeft","IconChevronRight","IconLastPage","ChevronDownIcon","CheckIcon","DEFAULT_PAGE_SIZE_OPTIONS","useStyles","makeVoltStyles","tokens.spacingGroup1","shorthands","tokens.spacingElement3","tokens.textSm","tokens.leadingSm","tokens.spacingElement2","tokens.grayA3","tokens.accent11","tokens.grayA4","tokens.accentA8","tokens.trackingNormal","tokens.grayA11","tokens.spacingElement1","tokens.radiusLg","tokens.accent8","tokens.grayA6","tokens.semBody","tokens.textXs","tokens.leadingXs","tokens.fontWeightSemibold","tokens.radiusMd","tokens.accentA3","TablePagination","React","page","totalItems","pageSize","onPageChange","onPageSizeChange","pageSizeOptions","siblingCount","disabled","labels","className","ref","styles","totalPages","start","end","isFirstPage","isLastPage","calculatePagination","safePage","clampPage","pageItems","getPageNumbers","handlePageSizeChange","value","newSize","TooltipProvider","SLOT_ATTR","mergeClasses","Button","item","index","key","Tooltip","TooltipTrigger","_a","TooltipContent","_b","isCurrentPage","_c","SelectPrimitive.Root","SelectPrimitive.Trigger","SelectPrimitive.Value","SelectPrimitive.Icon","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Group","SelectPrimitive.Label","option","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","SelectPrimitive.ItemText"],"mappings":";;;;;;;;;;;AAsBA,MAAMA,KAAgB,CAACC,MACrB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACd,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAAC,QAAA,EAAK,GAAE,UAAA,CAAU;AAAA,MAClB,gBAAAA,EAAC,QAAA,EAAK,GAAE,iBAAA,CAAiB;AAAA,IAAA;AAAA,EAAA;AAC3B,GAGIC,KAAkB,CAACH,MACvB,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACd,GAAGF;AAAA,IAEJ,UAAA,gBAAAE,EAAC,QAAA,EAAK,GAAE,iBAAA,CAAiB;AAAA,EAAA;AAC3B,GAGIE,KAAmB,CAACJ,MACxB,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACd,GAAGF;AAAA,IAEJ,UAAA,gBAAAE,EAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,EAAA;AAC1B,GAGIG,KAAe,CAACL,MACpB,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACd,GAAGD;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAAC,QAAA,EAAK,GAAE,gBAAA,CAAgB;AAAA,MACxB,gBAAAA,EAAC,QAAA,EAAK,GAAE,WAAA,CAAW;AAAA,IAAA;AAAA,EAAA;AACrB,GAIII,KAAkB,CAACN,MACvB,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACd,GAAGF;AAAA,IAEJ,UAAA,gBAAAE,EAAC,QAAA,EAAK,GAAE,eAAA,CAAe;AAAA,EAAA;AACzB,GAGIK,KAAY,CAACP,MACjB,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACd,GAAGF;AAAA,IAEJ,UAAA,gBAAAE,EAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,EAAA;AAC5B,GAGIM,KAA4B,CAAC,IAAI,IAAI,IAAI,GAAG,GAE5CC,KAAYC,GAAe;AAAA,EAC/B,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,KAAKC;AAAAA,IACL,GAAGC,EAAW,aAAaC,EAAsB;AAAA,IACjD,UAAUC;AAAAA,IACV,YAAYC;AAAAA,EAAO;AAAA,EAErB,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAKC;AAAAA,EAAO;AAAA,EAEd,WAAW;AAAA,IACT,iBAAiBC;AAAAA,IACjB,OAAOC;AAAAA,IACP,UAAU;AAAA,MACR,iBAAiBC;AAAAA,IAAO;AAAA,IAE1B,aAAa;AAAA,MACX,iBAAiBF;AAAAA,MACjB,OAAOG;AAAAA,MACP,eAAe;AAAA,IAAA;AAAA,EACjB;AAAA,EAEF,kBAAkB;AAAA,IAChB,eAAe;AAAA,EAAA;AAAA,EAEjB,oBAAoB;AAAA,IAClB,iBAAiB;AAAA,IACjB,OAAOF;AAAAA,IACP,UAAU;AAAA,MACR,iBAAiBD;AAAAA,IAAO;AAAA,IAE1B,WAAW;AAAA,MACT,iBAAiBE;AAAAA,IAAO;AAAA,EAC1B;AAAA,EAEF,gBAAgB;AAAA,IACd,eAAeE;AAAAA,IACf,iBAAiB;AAAA,IACjB,OAAOH;AAAAA,IACP,UAAU;AAAA,MACR,iBAAiBD;AAAAA,IAAO;AAAA,EAC1B;AAAA,EAEF,OAAO;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAKN;AAAAA,IACL,cAAc;AAAA,EAAA;AAAA,EAEhB,OAAO;AAAA,IACL,UAAUG;AAAAA,IACV,YAAYC;AAAAA,IACZ,OAAOO;AAAAA,IACP,oBAAoB;AAAA,EAAA;AAAA,EAEtB,eAAe;AAAA,IACb,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,KAAKC;AAAAA,IACL,GAAGX,EAAW,aAAaY,CAAe;AAAA,IAC1C,iBAAiBP;AAAAA,IACjB,GAAGL,EAAW,cAAc,SAAS;AAAA,IACrC,UAAUE;AAAAA,IACV,YAAYC;AAAAA,IACZ,QAAQ;AAAA,IACR,GAAGH,EAAW,YAAY,CAAC;AAAA,IAC3B,UAAU;AAAA,MACR,iBAAiBO;AAAAA,IAAO;AAAA,IAE1B,UAAU;AAAA,MACR,cAAc;AAAA,MACd,cAAc;AAAA,MACd,cAAcM;AAAAA,MACd,eAAe;AAAA,IAAA;AAAA,IAEjB,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,YAAY;AAAA,IACV,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,OAAOH;AAAAA,EAAO;AAAA,EAEhB,eAAe;AAAA,IACb,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,GAAGV,EAAW,SAAS,QAAQ;AAAA,IAC/B,GAAGA,EAAW,aAAaY,CAAe;AAAA,IAC1C,GAAGZ,EAAW,OAAO,OAAO,SAASc,EAAa;AAAA,IAClD,iBAAiBC;AAAAA,IACjB,WACE;AAAA,EAAA;AAAA,EAEJ,gBAAgB;AAAA,IACd,GAAGf,EAAW,QAAQ,SAAS;AAAA,EAAA;AAAA,EAEjC,aAAa;AAAA,IACX,GAAGA,EAAW,QAAQ,YAAY,QAAQ;AAAA,IAC1C,UAAUgB;AAAAA,IACV,YAAYC;AAAAA,IACZ,YAAYC;AAAAA,IACZ,OAAOR;AAAAA,EAAO;AAAA,EAEhB,YAAY;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,GAAGV,EAAW,aAAamB,EAAe;AAAA,IAC1C,GAAGnB,EAAW,QAAQ,YAAY,UAAU,YAAY,MAAM;AAAA,IAC9D,UAAUE;AAAAA,IACV,YAAYC;AAAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,MACR,iBAAiBiB;AAAAA,IAAO;AAAA,IAE1B,2BAA2B;AAAA,MACzB,iBAAiBA;AAAAA,IAAO;AAAA,EAC1B;AAAA,EAEF,qBAAqB;AAAA,IACnB,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,gBAAgB;AAAA,EAAA;AAEpB,CAAC,GA8CYC,KAAkBC,EAAM,WAGnC,SACA;AAAA,EACE,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,iBAAAC,IAAkBhC;AAAA,EAClB,cAAAiC,IAAe;AAAA,EACf,UAAAC,IAAW;AAAA,EACX,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAG5C;AACL,GACA6C,GACA;;AACA,QAAMC,IAASrC,GAAA,GACT,EAAE,YAAAsC,GAAY,OAAAC,GAAO,KAAAC,GAAK,aAAAC,GAAa,YAAAC,EAAA,IAC3CC,GAAoB;AAAA,IAClB,MAAAjB;AAAA,IACA,UAAAE;AAAA,IACA,YAAAD;AAAA,EAAA,CACD,GAEGiB,IAAWC,GAAUnB,GAAMY,CAAU,GACrCQ,IAAYC,GAAeH,GAAUN,GAAYN,CAAY,GAE7DgB,IAAuB,CAACC,MAAkB;AAC9C,UAAMC,IAAU,SAASD,GAAO,EAAE;AAClC,IAAK,MAAMC,CAAO,KAChBpB,EAAiBoB,CAAO;AAAA,EAE5B;AAGA,SAAIvB,MAAe,IACV,yBAINwB,IAAA,EACC,UAAA,gBAAA3D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAA4C;AAAA,MACA,aAAU;AAAA,MACJ,CAACgB,EAAS,GAAG;AAAA,MACnB,mBAAgB;AAAA,MAChB,MAAK;AAAA,MACL,cAAYlB,KAAA,gBAAAA,EAAQ;AAAA,MACpB,WAAWmB,GAAahB,EAAO,MAAMF,CAAS;AAAA,MAC7C,GAAG5C;AAAA,MAGJ,UAAA;AAAA,QAAA,gBAAAC,EAAC,OAAA,EAAI,WAAW6C,EAAO,MAErB,UAAA;AAAA,UAAA,gBAAA5C;AAAA,YAAC6D;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,OAAM;AAAA,cACN,UAAUrB,KAAYQ;AAAA,cACtB,SAAS,MAAMZ,EAAa,CAAC;AAAA,cAC7B,cAAYK,KAAA,gBAAAA,EAAQ;AAAA,cACpB,WAAWG,EAAO;AAAA,cAElB,4BAAC/C,IAAA,CAAA,CAAc;AAAA,YAAA;AAAA,UAAA;AAAA,UAIjB,gBAAAG;AAAA,YAAC6D;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,OAAM;AAAA,cACN,UAAUrB,KAAYQ;AAAA,cACtB,SAAS,MAAMZ,EAAae,IAAW,CAAC;AAAA,cACxC,cAAYV,KAAA,gBAAAA,EAAQ;AAAA,cACpB,WAAWG,EAAO;AAAA,cAElB,4BAAC3C,IAAA,CAAA,CAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,UAIlBoD,EAAU,IAAI,CAACS,GAAMC,MAAU;;AAC9B,kBAAMC,IACJF,EAAK,SAAS,aACV,YAAYC,CAAK,IAAID,EAAK,UAAU,KACpC,QAAQA,EAAK,IAAI;AAEvB,gBAAIA,EAAK,SAAS;AAChB,uCACGG,IAAA,EACC,UAAA;AAAA,gBAAA,gBAAAjE,EAACkE,IAAA,EAAe,SAAO,IACrB,UAAA,gBAAAlE;AAAA,kBAAC6D;AAAA,kBAAA;AAAA,oBACC,SAAQ;AAAA,oBACR,MAAK;AAAA,oBACL,OAAM;AAAA,oBACN,UAAArB;AAAA,oBACA,SAAS,MAAMJ,EAAa0B,EAAK,UAAU;AAAA,oBAC3C,eAAYK,IAAA1B,KAAA,gBAAAA,EAAQ,eAAR,gBAAA0B,EAAA,KAAA1B,GAAqBqB,EAAK;AAAA,oBACtC,WAAWlB,EAAO;AAAA,oBACnB,UAAA;AAAA,kBAAA;AAAA,gBAAA,GAGH;AAAA,kCACCwB,IAAA,EACE,WAAAC,IAAA5B,KAAA,gBAAAA,EAAQ,eAAR,gBAAA4B,EAAA,KAAA5B,GAAqBqB,EAAK,YAAU,CACvC;AAAA,cAAA,EAAA,GAhBYE,CAiBd;AAIJ,kBAAMM,IAAgBR,EAAK,SAASX;AAEpC,mBACE,gBAAAnD;AAAA,cAAC6D;AAAA,cAAA;AAAA,gBAEC,SAASS,IAAgB,cAAc;AAAA,gBACvC,MAAK;AAAA,gBACL,OAAM;AAAA,gBACN,UAAA9B;AAAA,gBACA,SAAS,MAAMJ,EAAa0B,EAAK,IAAI;AAAA,gBACrC,eAAYS,IAAA9B,KAAA,gBAAAA,EAAQ,aAAR,gBAAA8B,EAAA,KAAA9B,GAAmBqB,EAAK;AAAA,gBACpC,gBAAcQ,IAAgB,SAAS;AAAA,gBACvC,WACEA,IACI1B,EAAO,mBACPA,EAAO;AAAA,gBAGZ,UAAAkB,EAAK;AAAA,cAAA;AAAA,cAdDE;AAAA,YAAA;AAAA,UAiBX,CAAC;AAAA,UAGD,gBAAAhE;AAAA,YAAC6D;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,OAAM;AAAA,cACN,UAAUrB,KAAYS;AAAA,cACtB,SAAS,MAAMb,EAAae,IAAW,CAAC;AAAA,cACxC,cAAYV,KAAA,gBAAAA,EAAQ;AAAA,cACpB,WAAWG,EAAO;AAAA,cAElB,4BAAC1C,IAAA,CAAA,CAAiB;AAAA,YAAA;AAAA,UAAA;AAAA,UAIpB,gBAAAF;AAAA,YAAC6D;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,OAAM;AAAA,cACN,UAAUrB,KAAYS;AAAA,cACtB,SAAS,MAAMb,EAAaS,CAAU;AAAA,cACtC,cAAYJ,KAAA,gBAAAA,EAAQ;AAAA,cACpB,WAAWG,EAAO;AAAA,cAElB,4BAACzC,IAAA,CAAA,CAAa;AAAA,YAAA;AAAA,UAAA;AAAA,QAChB,GACF;AAAA,QAGA,gBAAAJ,EAAC,OAAA,EAAI,WAAW6C,EAAO,OAErB,UAAA;AAAA,UAAA,gBAAA5C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,aAAU;AAAA,cACV,WAAW4C,EAAO;AAAA,cAClB,aAAU;AAAA,cAET,UAAAH,KAAA,QAAAA,EAAQ,eACLA,EAAO,aAAaK,GAAOC,GAAKb,CAAU,IAC1C,GAAGY,CAAK,IAAIC,CAAG,MAAMb,CAAU;AAAA,YAAA;AAAA,UAAA;AAAA,UAIrC,gBAAAnC;AAAA,YAACyE;AAAAA,YAAA;AAAA,cACC,OAAO,OAAOrC,CAAQ;AAAA,cACtB,eAAeoB;AAAA,cACf,UAAAf;AAAA,cAEA,UAAA;AAAA,gBAAA,gBAAAzC;AAAA,kBAAC0E;AAAAA,kBAAA;AAAA,oBACC,WAAW7B,EAAO;AAAA,oBAClB,eAAYuB,IAAA1B,KAAA,gBAAAA,EAAQ,qBAAR,gBAAA0B,EAAA,KAAA1B,GAA2BN;AAAA,oBAEvC,UAAA;AAAA,sBAAA,gBAAAnC,EAAC0E,GAAA,EAAsB;AAAA,sBACvB,gBAAA1E,EAAC2E,GAAA,EAAqB,WAAW/B,EAAO,YACtC,UAAA,gBAAA5C,EAACI,IAAA,CAAA,CAAgB,EAAA,CACnB;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAEF,gBAAAJ,EAAC4E,GAAA,EACC,UAAA,gBAAA5E;AAAA,kBAAC6E;AAAAA,kBAAA;AAAA,oBACC,WAAWjC,EAAO;AAAA,oBAClB,UAAS;AAAA,oBACT,YAAY;AAAA,oBAEZ,UAAA,gBAAA5C,EAAC8E,GAAA,EAAyB,WAAWlC,EAAO,gBAC1C,UAAA,gBAAA7C,EAACgF,GAAA,EACE,UAAA;AAAA,uBAAAtC,KAAA,gBAAAA,EAAQ,qCACNuC,GAAA,EAAsB,WAAWpC,EAAO,aACtC,UAAAH,EAAO,eAAA,CACV;AAAA,sBAEDH,EAAgB,IAAI,CAAC2C,MACpB,gBAAAlF;AAAA,wBAACmF;AAAAA,wBAAA;AAAA,0BAEC,OAAO,OAAOD,CAAM;AAAA,0BACpB,WAAWrC,EAAO;AAAA,0BAElB,UAAA;AAAA,4BAAA,gBAAA5C,EAAC,UAAK,WAAW4C,EAAO,qBACtB,UAAA,gBAAA5C,EAACmF,IAAA,EACC,UAAA,gBAAAnF,EAACK,IAAA,EAAU,OAAO,EAAE,OAAO,IAAI,QAAQ,GAAA,EAAG,CAAG,GAC/C,GACF;AAAA,4BACA,gBAAAL,EAACoF,IAAA,EACE,UAAAH,EAAA,CACH;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAXKA;AAAA,sBAAA,CAaR;AAAA,oBAAA,EAAA,CACH,EAAA,CACF;AAAA,kBAAA;AAAA,gBAAA,EACF,CACF;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ,CAAC;"}
|
|
1
|
+
{"version":3,"file":"table-pagination.js","sources":["../../../src/components/table/table-pagination.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { SVGProps, ComponentProps } from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\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 { useDensity } from \"../density-provider/density-provider\"\nimport {\n calculatePagination,\n clampPage,\n getPageNumbers,\n} from \"../../lib/pagination\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../tooltip/tooltip\"\nimport { Button } from \"../button/button\"\n\n// Navigation icons\nconst IconFirstPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M6 6v12\" />\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronLeft = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n)\n\nconst IconChevronRight = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n)\n\nconst IconLastPage = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m9 18 6-6-6-6\" />\n <path d=\"M18 6v12\" />\n </svg>\n)\n\n// Select icons\nconst ChevronDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n)\n\nconst CheckIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n)\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\nconst useStyles = makeVoltStyles({\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingGroup1,\n ...shorthands.paddingBlock(tokens.spacingElement3),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n },\n left: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingElement2,\n },\n navButton: {\n backgroundColor: tokens.grayA3,\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":disabled\": {\n backgroundColor: tokens.grayA3,\n color: tokens.accentA8,\n pointerEvents: \"none\",\n },\n },\n pageButtonActive: {\n pointerEvents: \"none\",\n },\n pageButtonInactive: {\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n \":active\": {\n backgroundColor: tokens.grayA4,\n },\n },\n ellipsisButton: {\n letterSpacing: tokens.trackingNormal,\n backgroundColor: \"transparent\",\n color: tokens.accent11,\n \":hover\": {\n backgroundColor: tokens.grayA3,\n },\n },\n right: {\n display: \"flex\",\n alignItems: \"center\",\n gap: tokens.spacingGroup1,\n paddingRight: \"0.125rem\",\n },\n range: {\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n color: tokens.grayA11,\n fontVariantNumeric: \"tabular-nums\",\n },\n selectTrigger: {\n display: \"flex\",\n height: \"2rem\",\n width: \"auto\",\n minWidth: \"4rem\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: tokens.spacingElement1,\n ...shorthands.borderRadius(tokens.radiusLg),\n backgroundColor: tokens.grayA3,\n ...shorthands.paddingInline(\"0.75rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n cursor: \"pointer\",\n ...shorthands.borderWidth(0),\n \":hover\": {\n backgroundColor: tokens.grayA4,\n },\n \":focus\": {\n outlineWidth: \"2px\",\n outlineStyle: \"solid\",\n outlineColor: tokens.accent8,\n outlineOffset: \"2px\",\n },\n \":disabled\": {\n cursor: \"not-allowed\",\n opacity: 0.5,\n },\n },\n selectIcon: {\n display: \"flex\",\n alignItems: \"center\",\n color: tokens.grayA11,\n },\n selectContent: {\n position: \"relative\",\n zIndex: 50,\n ...shorthands.overflow(\"hidden\"),\n ...shorthands.borderRadius(tokens.radiusLg),\n ...shorthands.border(\"1px\", \"solid\", tokens.grayA6),\n backgroundColor: tokens.semBody,\n boxShadow:\n \"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)\",\n },\n selectViewport: {\n ...shorthands.padding(\"0.25rem\"),\n },\n selectLabel: {\n ...shorthands.padding(\"0.375rem\", \"0.5rem\"),\n fontSize: tokens.textXs,\n lineHeight: tokens.leadingXs,\n fontWeight: tokens.fontWeightSemibold,\n color: tokens.grayA11,\n },\n selectItem: {\n position: \"relative\",\n display: \"flex\",\n cursor: \"pointer\",\n userSelect: \"none\",\n alignItems: \"center\",\n ...shorthands.borderRadius(tokens.radiusMd),\n ...shorthands.padding(\"0.375rem\", \"0.5rem\", \"0.375rem\", \"2rem\"),\n fontSize: tokens.textSm,\n lineHeight: tokens.leadingSm,\n outlineStyle: \"none\",\n \":focus\": {\n backgroundColor: tokens.accentA3,\n },\n \"&[data-state='checked']\": {\n backgroundColor: tokens.accentA3,\n },\n },\n selectItemIndicator: {\n position: \"absolute\",\n left: \"0.5rem\",\n display: \"flex\",\n width: \"1rem\",\n height: \"1rem\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n})\n\nexport type TablePaginationLabels = {\n /** Label for the pagination navigation region. */\n navigation?: string\n /** Label for first page button. */\n firstPage?: string\n /** Label for previous page button. */\n previousPage?: string\n /** Label for next page button. */\n nextPage?: string\n /** Label for last page button. */\n lastPage?: string\n /** Label generator for page number buttons. Receives 1-indexed page number. */\n goToPage?: (page: number) => string\n /** Label generator for ellipsis jump buttons. Receives target page number. */\n jumpToPage?: (page: number) => string\n /** Label generator for page size selector. Receives current page size. */\n pageSizeSelector?: (pageSize: number) => string\n /** Label for page size dropdown header. */\n resultsPerPage?: string\n /** Label generator for the range display. Receives start, end, and total. */\n rangeDisplay?: (start: number, end: number, total: number) => string\n}\n\nexport type TablePaginationProps = Omit<ComponentProps<\"div\">, \"onChange\"> & {\n /** Current page number (1-indexed) */\n page: number\n /** Total number of items across all pages */\n totalItems: number\n /** Current page size (items per page) */\n pageSize: number\n /** Callback fired when the page changes */\n onPageChange: (page: number) => void\n /** Callback fired when the page size changes */\n onPageSizeChange: (pageSize: number) => void\n /** Available page size options for the dropdown */\n pageSizeOptions?: number[]\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number\n /** Whether the pagination controls are disabled */\n disabled?: boolean\n /** Labels for i18n. All labels are optional for backwards compatibility but recommended. */\n labels?: TablePaginationLabels\n}\n\nexport const TablePagination = React.forwardRef<\n HTMLDivElement,\n TablePaginationProps\n>(function TablePagination(\n {\n page,\n totalItems,\n pageSize,\n onPageChange,\n onPageSizeChange,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n siblingCount = 2,\n disabled = false,\n labels,\n className,\n ...props\n },\n ref\n) {\n const styles = useStyles()\n // TABLE-DENSITY-IMPLEMENTATION.md: closes the previously deferred inline Select portal — stamp\n // an explicit override only when one exists in the React tree (Table/DataTable's own explicit\n // density, via DensityContextBoundary), never a fabricated default; an omitted override still\n // inherits live shell density through ordinary DOM/CSS since the portal container is a\n // descendant of <html>. Same pattern as select.tsx's SelectContent.\n const densityOverride = useDensity()\n const { totalPages, start, end, isFirstPage, isLastPage } =\n calculatePagination({\n page,\n pageSize,\n totalItems,\n })\n\n const safePage = clampPage(page, totalPages)\n const pageItems = getPageNumbers(safePage, totalPages, siblingCount)\n\n const handlePageSizeChange = (value: string) => {\n const newSize = parseInt(value, 10)\n if (!isNaN(newSize)) {\n onPageSizeChange(newSize)\n }\n }\n\n // Don't render if no items\n if (totalItems === 0) {\n return null\n }\n\n return (\n <TooltipProvider>\n <div\n ref={ref}\n data-slot=\"table-pagination\"\n {...{ [SLOT_ATTR]: \"table-pagination\" }}\n data-fs-element=\"TablePagination\"\n role=\"navigation\"\n aria-label={labels?.navigation}\n className={mergeClasses(styles.root, className)}\n {...props}\n >\n {/* LEFT SIDE: Navigation and page buttons */}\n <div className={styles.left}>\n {/* First page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(1)}\n aria-label={labels?.firstPage}\n className={styles.navButton}\n >\n <IconFirstPage />\n </Button>\n\n {/* Previous page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isFirstPage}\n onClick={() => onPageChange(safePage - 1)}\n aria-label={labels?.previousPage}\n className={styles.navButton}\n >\n <IconChevronLeft />\n </Button>\n\n {/* Page number buttons */}\n {pageItems.map((item, index) => {\n const key =\n item.type === \"ellipsis\"\n ? `ellipsis-${index}-${item.targetPage}`\n : `page-${item.page}`\n\n if (item.type === \"ellipsis\") {\n return (\n <Tooltip key={key}>\n <TooltipTrigger asChild>\n <Button\n variant=\"tertiary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.targetPage)}\n aria-label={labels?.jumpToPage?.(item.targetPage)}\n className={styles.ellipsisButton}\n >\n ...\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {labels?.jumpToPage?.(item.targetPage)}\n </TooltipContent>\n </Tooltip>\n )\n }\n\n const isCurrentPage = item.page === safePage\n\n return (\n <Button\n key={key}\n variant={isCurrentPage ? \"secondary\" : \"tertiary\"}\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled}\n onClick={() => onPageChange(item.page)}\n aria-label={labels?.goToPage?.(item.page)}\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={\n isCurrentPage\n ? styles.pageButtonActive\n : styles.pageButtonInactive\n }\n >\n {item.page}\n </Button>\n )\n })}\n\n {/* Next page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(safePage + 1)}\n aria-label={labels?.nextPage}\n className={styles.navButton}\n >\n <IconChevronRight />\n </Button>\n\n {/* Last page button */}\n <Button\n variant=\"secondary\"\n size=\"icon-sm\"\n shape=\"normal\"\n disabled={disabled || isLastPage}\n onClick={() => onPageChange(totalPages)}\n aria-label={labels?.lastPage}\n className={styles.navButton}\n >\n <IconLastPage />\n </Button>\n </div>\n\n {/* RIGHT SIDE: Range display and page size selector */}\n <div className={styles.right}>\n {/* Range display */}\n <span\n data-slot=\"table-pagination-range\"\n className={styles.range}\n aria-live=\"polite\"\n >\n {labels?.rangeDisplay\n ? labels.rangeDisplay(start, end, totalItems)\n : `${start}-${end} / ${totalItems}`}\n </span>\n\n {/* Page size selector */}\n <SelectPrimitive.Root\n value={String(pageSize)}\n onValueChange={handlePageSizeChange}\n disabled={disabled}\n >\n <SelectPrimitive.Trigger\n className={styles.selectTrigger}\n aria-label={labels?.pageSizeSelector?.(pageSize)}\n >\n <SelectPrimitive.Value />\n <SelectPrimitive.Icon className={styles.selectIcon}>\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={styles.selectContent}\n {...(densityOverride !== undefined\n ? { \"data-density\": densityOverride }\n : {})}\n position=\"popper\"\n sideOffset={4}\n >\n <SelectPrimitive.Viewport className={styles.selectViewport}>\n <SelectPrimitive.Group>\n {labels?.resultsPerPage && (\n <SelectPrimitive.Label className={styles.selectLabel}>\n {labels.resultsPerPage}\n </SelectPrimitive.Label>\n )}\n {pageSizeOptions.map((option) => (\n <SelectPrimitive.Item\n key={option}\n value={String(option)}\n className={styles.selectItem}\n >\n <span className={styles.selectItemIndicator}>\n <SelectPrimitive.ItemIndicator>\n <CheckIcon style={{ width: 16, height: 16 }} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>\n {option}\n </SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ))}\n </SelectPrimitive.Group>\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n </div>\n </div>\n </TooltipProvider>\n )\n})\n"],"names":["IconFirstPage","props","jsxs","jsx","IconChevronLeft","IconChevronRight","IconLastPage","ChevronDownIcon","CheckIcon","DEFAULT_PAGE_SIZE_OPTIONS","useStyles","makeVoltStyles","tokens.spacingGroup1","shorthands","tokens.spacingElement3","tokens.textSm","tokens.leadingSm","tokens.spacingElement2","tokens.grayA3","tokens.accent11","tokens.grayA4","tokens.accentA8","tokens.trackingNormal","tokens.grayA11","tokens.spacingElement1","tokens.radiusLg","tokens.accent8","tokens.grayA6","tokens.semBody","tokens.textXs","tokens.leadingXs","tokens.fontWeightSemibold","tokens.radiusMd","tokens.accentA3","TablePagination","React","page","totalItems","pageSize","onPageChange","onPageSizeChange","pageSizeOptions","siblingCount","disabled","labels","className","ref","styles","densityOverride","useDensity","totalPages","start","end","isFirstPage","isLastPage","calculatePagination","safePage","clampPage","pageItems","getPageNumbers","handlePageSizeChange","value","newSize","TooltipProvider","SLOT_ATTR","mergeClasses","Button","item","index","key","Tooltip","TooltipTrigger","_a","TooltipContent","_b","isCurrentPage","_c","SelectPrimitive.Root","SelectPrimitive.Trigger","SelectPrimitive.Value","SelectPrimitive.Icon","SelectPrimitive.Portal","SelectPrimitive.Content","SelectPrimitive.Viewport","SelectPrimitive.Group","SelectPrimitive.Label","option","SelectPrimitive.Item","SelectPrimitive.ItemIndicator","SelectPrimitive.ItemText"],"mappings":"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"}
|