@lglab/compose-ui 0.28.0 → 0.30.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/dist/accordion.d.ts +49 -40
- package/dist/accordion.d.ts.map +1 -0
- package/dist/accordion.js +47 -45
- package/dist/accordion.js.map +1 -0
- package/dist/alert-dialog.d.ts +93 -87
- package/dist/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog.js +94 -111
- package/dist/alert-dialog.js.map +1 -0
- package/dist/autocomplete.d.ts +99 -96
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +92 -116
- package/dist/autocomplete.js.map +1 -0
- package/dist/avatar.d.ts +56 -47
- package/dist/avatar.d.ts.map +1 -0
- package/dist/avatar.js +66 -79
- package/dist/avatar.js.map +1 -0
- package/dist/badge.d.ts +48 -42
- package/dist/badge.d.ts.map +1 -0
- package/dist/badge.js +195 -202
- package/dist/badge.js.map +1 -0
- package/dist/button.d.ts +26 -21
- package/dist/button.d.ts.map +1 -0
- package/dist/button.js +24 -24
- package/dist/button.js.map +1 -0
- package/dist/card.d.ts +105 -99
- package/dist/card.d.ts.map +1 -0
- package/dist/card.js +105 -66
- package/dist/card.js.map +1 -0
- package/dist/checkbox-group.d.ts +16 -12
- package/dist/checkbox-group.d.ts.map +1 -0
- package/dist/checkbox-group.js +18 -14
- package/dist/checkbox-group.js.map +1 -0
- package/dist/checkbox.d.ts +25 -19
- package/dist/checkbox.d.ts.map +1 -0
- package/dist/checkbox.js +26 -32
- package/dist/checkbox.js.map +1 -0
- package/dist/collapsible.d.ts +32 -26
- package/dist/collapsible.d.ts.map +1 -0
- package/dist/collapsible.js +32 -32
- package/dist/collapsible.js.map +1 -0
- package/dist/combobox.d.ts +191 -182
- package/dist/combobox.d.ts.map +1 -0
- package/dist/combobox.js +176 -250
- package/dist/combobox.js.map +1 -0
- package/dist/components/table/filters.d.ts +29 -0
- package/dist/components/table/filters.d.ts.map +1 -0
- package/dist/components/table/filters.js +47 -0
- package/dist/components/table/filters.js.map +1 -0
- package/dist/components/table/primitives.d.ts +93 -0
- package/dist/components/table/primitives.d.ts.map +1 -0
- package/dist/components/table/primitives.js +129 -0
- package/dist/components/table/primitives.js.map +1 -0
- package/dist/components/table/sort.js +17 -0
- package/dist/components/table/sort.js.map +1 -0
- package/dist/components/table/types.d.ts +101 -0
- package/dist/components/table/types.d.ts.map +1 -0
- package/dist/context-menu.d.ts +151 -138
- package/dist/context-menu.d.ts.map +1 -0
- package/dist/context-menu.js +151 -173
- package/dist/context-menu.js.map +1 -0
- package/dist/dialog.d.ts +101 -92
- package/dist/dialog.d.ts.map +1 -0
- package/dist/dialog.js +101 -105
- package/dist/dialog.js.map +1 -0
- package/dist/drawer.d.ts +109 -99
- package/dist/drawer.d.ts.map +1 -0
- package/dist/drawer.js +120 -111
- package/dist/drawer.js.map +1 -0
- package/dist/field.d.ts +61 -54
- package/dist/field.d.ts.map +1 -0
- package/dist/field.js +58 -27
- package/dist/field.js.map +1 -0
- package/dist/fieldset.d.ts +24 -19
- package/dist/fieldset.d.ts.map +1 -0
- package/dist/fieldset.js +26 -18
- package/dist/fieldset.js.map +1 -0
- package/dist/form.d.ts +16 -12
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +18 -8
- package/dist/form.js.map +1 -0
- package/dist/index.d.ts +48 -2115
- package/dist/index.js +47 -318
- package/dist/input.d.ts +16 -12
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +19 -9
- package/dist/input.js.map +1 -0
- package/dist/lib/arrow-svg.js +28 -0
- package/dist/lib/arrow-svg.js.map +1 -0
- package/dist/lib/button-variants.d.ts +6 -0
- package/dist/lib/button-variants.d.ts.map +1 -0
- package/dist/lib/button-variants.js +31 -0
- package/dist/lib/button-variants.js.map +1 -0
- package/dist/lib/control-variants.d.ts +6 -0
- package/dist/lib/control-variants.d.ts.map +1 -0
- package/dist/lib/control-variants.js +38 -0
- package/dist/lib/control-variants.js.map +1 -0
- package/dist/lib/form-variants.js +11 -0
- package/dist/lib/form-variants.js.map +1 -0
- package/dist/lib/tooltip-variants.d.ts +5 -0
- package/dist/lib/tooltip-variants.d.ts.map +1 -0
- package/dist/lib/tooltip-variants.js +36 -0
- package/dist/lib/tooltip-variants.js.map +1 -0
- package/dist/lib/utils.js +11 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/menu.d.ts +151 -138
- package/dist/menu.d.ts.map +1 -0
- package/dist/menu.js +151 -146
- package/dist/menu.js.map +1 -0
- package/dist/menubar.d.ts +168 -155
- package/dist/menubar.d.ts.map +1 -0
- package/dist/menubar.js +163 -169
- package/dist/menubar.js.map +1 -0
- package/dist/meter.d.ts +53 -43
- package/dist/meter.d.ts.map +1 -0
- package/dist/meter.js +59 -64
- package/dist/meter.js.map +1 -0
- package/dist/navigation-menu.d.ts +111 -96
- package/dist/navigation-menu.d.ts.map +1 -0
- package/dist/navigation-menu.js +117 -175
- package/dist/navigation-menu.js.map +1 -0
- package/dist/number-field.d.ts +64 -54
- package/dist/number-field.d.ts.map +1 -0
- package/dist/number-field.js +61 -69
- package/dist/number-field.js.map +1 -0
- package/dist/pagination.d.ts +184 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +164 -0
- package/dist/pagination.js.map +1 -0
- package/dist/popover.d.ts +90 -82
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +85 -94
- package/dist/popover.js.map +1 -0
- package/dist/preview-card.d.ts +58 -54
- package/dist/preview-card.d.ts.map +1 -0
- package/dist/preview-card.js +57 -81
- package/dist/preview-card.js.map +1 -0
- package/dist/progress.d.ts +48 -40
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +46 -50
- package/dist/progress.js.map +1 -0
- package/dist/radio-group.d.ts +16 -12
- package/dist/radio-group.d.ts.map +1 -0
- package/dist/radio-group.js +18 -14
- package/dist/radio-group.js.map +1 -0
- package/dist/radio.d.ts +24 -19
- package/dist/radio.d.ts.map +1 -0
- package/dist/radio.js +25 -34
- package/dist/radio.js.map +1 -0
- package/dist/scroll-area.d.ts +57 -47
- package/dist/scroll-area.d.ts.map +1 -0
- package/dist/scroll-area.js +54 -56
- package/dist/scroll-area.js.map +1 -0
- package/dist/select.d.ts +146 -133
- package/dist/select.d.ts.map +1 -0
- package/dist/select.js +133 -167
- package/dist/select.js.map +1 -0
- package/dist/separator.d.ts +17 -12
- package/dist/separator.d.ts.map +1 -0
- package/dist/separator.js +19 -23
- package/dist/separator.js.map +1 -0
- package/dist/skeleton.d.ts +20 -0
- package/dist/skeleton.d.ts.map +1 -0
- package/dist/skeleton.js +27 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/slider.d.ts +56 -47
- package/dist/slider.d.ts.map +1 -0
- package/dist/slider.js +53 -62
- package/dist/slider.js.map +1 -0
- package/dist/styles/default.css +15 -1
- package/dist/switch.d.ts +24 -19
- package/dist/switch.d.ts.map +1 -0
- package/dist/switch.js +23 -39
- package/dist/switch.js.map +1 -0
- package/dist/table/index.d.ts +5 -0
- package/dist/table/index.js +5 -0
- package/dist/table/use-table.d.ts +9 -0
- package/dist/table/use-table.d.ts.map +1 -0
- package/dist/table/use-table.js +256 -0
- package/dist/table/use-table.js.map +1 -0
- package/dist/tabs.d.ts +60 -49
- package/dist/tabs.d.ts.map +1 -0
- package/dist/tabs.js +76 -84
- package/dist/tabs.js.map +1 -0
- package/dist/textarea.d.ts +15 -11
- package/dist/textarea.d.ts.map +1 -0
- package/dist/textarea.js +18 -14
- package/dist/textarea.js.map +1 -0
- package/dist/toast.d.ts +87 -81
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +79 -150
- package/dist/toast.js.map +1 -0
- package/dist/toggle-group.d.ts +34 -29
- package/dist/toggle-group.d.ts.map +1 -0
- package/dist/toggle-group.js +31 -34
- package/dist/toggle-group.js.map +1 -0
- package/dist/toggle.d.ts +24 -21
- package/dist/toggle.d.ts.map +1 -0
- package/dist/toggle.js +22 -15
- package/dist/toggle.js.map +1 -0
- package/dist/toolbar.d.ts +64 -56
- package/dist/toolbar.d.ts.map +1 -0
- package/dist/toolbar.js +57 -68
- package/dist/toolbar.js.map +1 -0
- package/dist/tooltip.d.ts +67 -62
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/tooltip.js +65 -90
- package/dist/tooltip.js.map +1 -0
- package/package.json +25 -13
- package/dist/arrow-svg-C6zQTvgS.js +0 -40
- package/dist/button-variants-CbFMPwc8.js +0 -33
- package/dist/control-variants-Bwep4n0y.js +0 -37
- package/dist/form-variants-LJ8gIbk0.js +0 -9
- package/dist/utils-B6yFEsav.js +0 -8
package/dist/number-field.d.ts
CHANGED
|
@@ -1,54 +1,64 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as react_jsx_runtime155 from "react/jsx-runtime";
|
|
3
|
+
import { NumberField } from "@base-ui/react/number-field";
|
|
4
|
+
|
|
5
|
+
//#region src/components/number-field.d.ts
|
|
6
|
+
type NumberFieldRootProps = React.ComponentProps<typeof NumberField.Root>;
|
|
7
|
+
declare const NumberFieldRoot: {
|
|
8
|
+
({
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}: NumberFieldRootProps): react_jsx_runtime155.JSX.Element;
|
|
12
|
+
displayName: string;
|
|
13
|
+
};
|
|
14
|
+
type NumberFieldScrubAreaProps = React.ComponentProps<typeof NumberField.ScrubArea>;
|
|
15
|
+
declare const NumberFieldScrubArea: {
|
|
16
|
+
({
|
|
17
|
+
className,
|
|
18
|
+
...props
|
|
19
|
+
}: NumberFieldScrubAreaProps): react_jsx_runtime155.JSX.Element;
|
|
20
|
+
displayName: string;
|
|
21
|
+
};
|
|
22
|
+
type NumberFieldScrubAreaCursorProps = React.ComponentProps<typeof NumberField.ScrubAreaCursor>;
|
|
23
|
+
declare const NumberFieldScrubAreaCursor: {
|
|
24
|
+
({
|
|
25
|
+
className,
|
|
26
|
+
...props
|
|
27
|
+
}: NumberFieldScrubAreaCursorProps): react_jsx_runtime155.JSX.Element;
|
|
28
|
+
displayName: string;
|
|
29
|
+
};
|
|
30
|
+
type NumberFieldGroupProps = React.ComponentProps<typeof NumberField.Group>;
|
|
31
|
+
declare const NumberFieldGroup: {
|
|
32
|
+
({
|
|
33
|
+
className,
|
|
34
|
+
...props
|
|
35
|
+
}: NumberFieldGroupProps): react_jsx_runtime155.JSX.Element;
|
|
36
|
+
displayName: string;
|
|
37
|
+
};
|
|
38
|
+
type NumberFieldInputProps = React.ComponentProps<typeof NumberField.Input>;
|
|
39
|
+
declare const NumberFieldInput: {
|
|
40
|
+
({
|
|
41
|
+
className,
|
|
42
|
+
...props
|
|
43
|
+
}: NumberFieldInputProps): react_jsx_runtime155.JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
type NumberFieldDecrementProps = React.ComponentProps<typeof NumberField.Decrement>;
|
|
47
|
+
declare const NumberFieldDecrement: {
|
|
48
|
+
({
|
|
49
|
+
className,
|
|
50
|
+
...props
|
|
51
|
+
}: NumberFieldDecrementProps): react_jsx_runtime155.JSX.Element;
|
|
52
|
+
displayName: string;
|
|
53
|
+
};
|
|
54
|
+
type NumberFieldIncrementProps = React.ComponentProps<typeof NumberField.Increment>;
|
|
55
|
+
declare const NumberFieldIncrement: {
|
|
56
|
+
({
|
|
57
|
+
className,
|
|
58
|
+
...props
|
|
59
|
+
}: NumberFieldIncrementProps): react_jsx_runtime155.JSX.Element;
|
|
60
|
+
displayName: string;
|
|
61
|
+
};
|
|
62
|
+
//#endregion
|
|
63
|
+
export { NumberFieldDecrement, type NumberFieldDecrementProps, NumberFieldGroup, type NumberFieldGroupProps, NumberFieldIncrement, type NumberFieldIncrementProps, NumberFieldInput, type NumberFieldInputProps, NumberFieldRoot, type NumberFieldRootProps, NumberFieldScrubArea, NumberFieldScrubAreaCursor, type NumberFieldScrubAreaCursorProps, type NumberFieldScrubAreaProps };
|
|
64
|
+
//# sourceMappingURL=number-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-field.d.ts","names":[],"sources":["../src/components/number-field.tsx"],"sourcesContent":[],"mappings":";;;;;KAYK,oBAAA,GAAuB,KAAA,CAAM,sBAAsB,WAAA,CAAgB;cAElE;;;;KAA4C,uBAAoB,oBAAA,CAAA,GAAA,CAAA;EAFjE,WAAA,EAAA,MAAA;CAAoB;KAYpB,yBAAA,GAA4B,KAAA,CAAM,cAZiC,CAAA,OAYX,WAAA,CAAgB,SAZL,CAAA;cAclE,oBAd4B,EAAA;EAAc,CAAA;IAAA,SAAA;IAAA,GAAA;EAAA,CAAA,EAcO,yBAdP,CAAA,EAcgC,oBAAA,CAAA,GAAA,CAAA,OAdhC;EAE1C,WAAA,EAAA,MAEL;CAAA;KAyBI,+BAAA,GAAkC,KAAA,CAAM,sBACpC,WAAA,CAAgB;cAGnB,0BA/B4C,EAAA;;IAAoB,SAAA;IAAA,GAAA;EAAA,CAAA,EAkCnE,+BAlCmE,CAAA,EAkCpC,oBAAA,CAAA,GAAA,CAAA,OAlCoC;EAAA,WAAA,EAAA,MAAA;AAAA,CAAA;KAiDjE,qBAAA,GAAwB,KAAA,CAAM,cAvCL,CAAA,OAuC2B,WAAA,CAAgB,KAvC3C,CAAA;cAyCxB,gBAzCuE,EAAA;;IAA5C,SAAM;IAAA,GAAA;EAAA,CAAA,EAyCY,qBAzCZ,CAAA,EAyCiC,oBAAA,CAAA,GAAA,CAAA,OAzCjC;EAAc,WAAA,EAAA,MAAA;AAAA,CAAA;KAmDhD,qBAAA,GAAwB,KAAA,CAAM,cA1ClC,CAAA,OA0CwD,WAAA,CAAgB,KA1CxE,CAAA;cA4CK;;IAnDiD,SAAA;IAAA,GAAA;EAAA,CAAA,EAmDJ,qBAnDI,CAAA,EAmDiB,oBAAA,CAAA,GAAA,CAAA,OAnDjB;aAAyB,EAAA,MAAA;CAAA;AAAA,KAqE3E,yBAAA,GAA4B,KAAA,CAAM,cAtDH,CAAA,OAsDyB,WAAA,CAAgB,SAtDzC,CAAA;cAwD9B,oBAxD8B,EAAA;;IAC3B,SAAA;IAAA,GAAgB;EAAA,CAAA,EAuD8B,yBAvD9B,CAAA,EAuDuD,oBAAA,CAAA,GAAA,CAAA,OAvDvD;aADoB,EAAA,MAAA;CAAc;AAAA,KA0EtD,yBAAA,GAA4B,KAAA,CAAM,cA5DtC,CAAA,OA4D4D,WAAA,CAAgB,SA5D5E,CAAA;cA8DK,oBA9DL,EAAA;;;;KA8DsD,4BAAyB,oBAAA,CAAA,GAAA,CAAA;aArE7E,EAAA,MAAA"}
|
package/dist/number-field.js
CHANGED
|
@@ -1,70 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
);
|
|
15
|
-
m.displayName = "NumberFieldScrubArea";
|
|
16
|
-
const a = ({
|
|
17
|
-
className: e,
|
|
18
|
-
...r
|
|
19
|
-
}) => /* @__PURE__ */ t(
|
|
20
|
-
o.ScrubAreaCursor,
|
|
21
|
-
{
|
|
22
|
-
className: n("drop-shadow-[0_1px_1px_rgba(0,0,0,0.5)] filter", e),
|
|
23
|
-
...r
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
a.displayName = "NumberFieldScrubAreaCursor";
|
|
27
|
-
const d = ({ className: e, ...r }) => /* @__PURE__ */ t(o.Group, { className: n("flex", e), ...r });
|
|
28
|
-
d.displayName = "NumberFieldGroup";
|
|
29
|
-
const b = ({ className: e, ...r }) => /* @__PURE__ */ t(
|
|
30
|
-
o.Input,
|
|
31
|
-
{
|
|
32
|
-
className: n(
|
|
33
|
-
"h-9 w-24 border-t border-b border-border bg-transparent text-center text-base text-foreground tabular-nums outline-none",
|
|
34
|
-
e
|
|
35
|
-
),
|
|
36
|
-
...r
|
|
37
|
-
}
|
|
38
|
-
);
|
|
39
|
-
b.displayName = "NumberFieldInput";
|
|
40
|
-
const c = ({ className: e, ...r }) => /* @__PURE__ */ t(
|
|
41
|
-
o.Decrement,
|
|
42
|
-
{
|
|
43
|
-
className: n(
|
|
44
|
-
"flex size-9 items-center justify-center rounded-l-md border border-border bg-background text-foreground select-none transition-colors hover:bg-muted active:bg-muted",
|
|
45
|
-
e
|
|
46
|
-
),
|
|
47
|
-
...r
|
|
48
|
-
}
|
|
49
|
-
);
|
|
50
|
-
c.displayName = "NumberFieldDecrement";
|
|
51
|
-
const l = ({ className: e, ...r }) => /* @__PURE__ */ t(
|
|
52
|
-
o.Increment,
|
|
53
|
-
{
|
|
54
|
-
className: n(
|
|
55
|
-
"flex size-9 items-center justify-center rounded-r-md border border-border bg-background text-foreground select-none transition-colors hover:bg-muted active:bg-muted",
|
|
56
|
-
e
|
|
57
|
-
),
|
|
58
|
-
...r
|
|
59
|
-
}
|
|
60
|
-
);
|
|
61
|
-
l.displayName = "NumberFieldIncrement";
|
|
62
|
-
export {
|
|
63
|
-
c as NumberFieldDecrement,
|
|
64
|
-
d as NumberFieldGroup,
|
|
65
|
-
l as NumberFieldIncrement,
|
|
66
|
-
b as NumberFieldInput,
|
|
67
|
-
u as NumberFieldRoot,
|
|
68
|
-
m as NumberFieldScrubArea,
|
|
69
|
-
a as NumberFieldScrubAreaCursor
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "./lib/utils.js";
|
|
4
|
+
import { fieldRootStyles } from "./lib/form-variants.js";
|
|
5
|
+
import "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
import { NumberField } from "@base-ui/react/number-field";
|
|
8
|
+
|
|
9
|
+
//#region src/components/number-field.tsx
|
|
10
|
+
const NumberFieldRoot = ({ className, ...props }) => {
|
|
11
|
+
return /* @__PURE__ */ jsx(NumberField.Root, {
|
|
12
|
+
className: cn(fieldRootStyles, className),
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
70
15
|
};
|
|
16
|
+
NumberFieldRoot.displayName = "NumberFieldRoot";
|
|
17
|
+
const NumberFieldScrubArea = ({ className, ...props }) => {
|
|
18
|
+
return /* @__PURE__ */ jsx(NumberField.ScrubArea, {
|
|
19
|
+
className: cn("cursor-ew-resize select-none", className),
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
NumberFieldScrubArea.displayName = "NumberFieldScrubArea";
|
|
24
|
+
const NumberFieldScrubAreaCursor = ({ className, ...props }) => {
|
|
25
|
+
return /* @__PURE__ */ jsx(NumberField.ScrubAreaCursor, {
|
|
26
|
+
className: cn("drop-shadow-[0_1px_1px_rgba(0,0,0,0.5)] filter", className),
|
|
27
|
+
...props
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
NumberFieldScrubAreaCursor.displayName = "NumberFieldScrubAreaCursor";
|
|
31
|
+
const NumberFieldGroup = ({ className, ...props }) => {
|
|
32
|
+
return /* @__PURE__ */ jsx(NumberField.Group, {
|
|
33
|
+
className: cn("flex", className),
|
|
34
|
+
...props
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
NumberFieldGroup.displayName = "NumberFieldGroup";
|
|
38
|
+
const NumberFieldInput = ({ className, ...props }) => {
|
|
39
|
+
return /* @__PURE__ */ jsx(NumberField.Input, {
|
|
40
|
+
className: cn("h-9 w-24 border-t border-b border-border bg-transparent text-center text-base text-foreground tabular-nums outline-none", className),
|
|
41
|
+
...props
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
NumberFieldInput.displayName = "NumberFieldInput";
|
|
45
|
+
const NumberFieldDecrement = ({ className, ...props }) => {
|
|
46
|
+
return /* @__PURE__ */ jsx(NumberField.Decrement, {
|
|
47
|
+
className: cn("flex size-9 items-center justify-center rounded-l-md border border-border bg-background text-foreground select-none transition-colors hover:bg-muted active:bg-muted", className),
|
|
48
|
+
...props
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
NumberFieldDecrement.displayName = "NumberFieldDecrement";
|
|
52
|
+
const NumberFieldIncrement = ({ className, ...props }) => {
|
|
53
|
+
return /* @__PURE__ */ jsx(NumberField.Increment, {
|
|
54
|
+
className: cn("flex size-9 items-center justify-center rounded-r-md border border-border bg-background text-foreground select-none transition-colors hover:bg-muted active:bg-muted", className),
|
|
55
|
+
...props
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
NumberFieldIncrement.displayName = "NumberFieldIncrement";
|
|
59
|
+
|
|
60
|
+
//#endregion
|
|
61
|
+
export { NumberFieldDecrement, NumberFieldGroup, NumberFieldIncrement, NumberFieldInput, NumberFieldRoot, NumberFieldScrubArea, NumberFieldScrubAreaCursor };
|
|
62
|
+
//# sourceMappingURL=number-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-field.js","names":["BaseNumberField"],"sources":["../src/components/number-field.tsx"],"sourcesContent":["'use client'\n\nimport { NumberField as BaseNumberField } from '@base-ui/react/number-field'\nimport * as React from 'react'\n\nimport { fieldRootStyles } from '../lib/form-variants'\nimport { cn } from '../lib/utils'\n\n// ============================================================================\n// NumberFieldRoot\n// ============================================================================\n\ntype NumberFieldRootProps = React.ComponentProps<typeof BaseNumberField.Root>\n\nconst NumberFieldRoot = ({ className, ...props }: NumberFieldRootProps) => {\n return <BaseNumberField.Root className={cn(fieldRootStyles, className)} {...props} />\n}\n\nNumberFieldRoot.displayName = 'NumberFieldRoot'\n\n// ============================================================================\n// NumberFieldScrubArea\n// ============================================================================\n\ntype NumberFieldScrubAreaProps = React.ComponentProps<typeof BaseNumberField.ScrubArea>\n\nconst NumberFieldScrubArea = ({ className, ...props }: NumberFieldScrubAreaProps) => {\n return (\n <BaseNumberField.ScrubArea\n className={cn('cursor-ew-resize select-none', className)}\n {...props}\n />\n )\n}\n\nNumberFieldScrubArea.displayName = 'NumberFieldScrubArea'\n\n// ============================================================================\n// NumberFieldScrubAreaCursor\n// ============================================================================\n\ntype NumberFieldScrubAreaCursorProps = React.ComponentProps<\n typeof BaseNumberField.ScrubAreaCursor\n>\n\nconst NumberFieldScrubAreaCursor = ({\n className,\n ...props\n}: NumberFieldScrubAreaCursorProps) => {\n return (\n <BaseNumberField.ScrubAreaCursor\n className={cn('drop-shadow-[0_1px_1px_rgba(0,0,0,0.5)] filter', className)}\n {...props}\n />\n )\n}\n\nNumberFieldScrubAreaCursor.displayName = 'NumberFieldScrubAreaCursor'\n\n// ============================================================================\n// NumberFieldGroup\n// ============================================================================\n\ntype NumberFieldGroupProps = React.ComponentProps<typeof BaseNumberField.Group>\n\nconst NumberFieldGroup = ({ className, ...props }: NumberFieldGroupProps) => {\n return <BaseNumberField.Group className={cn('flex', className)} {...props} />\n}\n\nNumberFieldGroup.displayName = 'NumberFieldGroup'\n\n// ============================================================================\n// NumberFieldInput\n// ============================================================================\n\ntype NumberFieldInputProps = React.ComponentProps<typeof BaseNumberField.Input>\n\nconst NumberFieldInput = ({ className, ...props }: NumberFieldInputProps) => {\n return (\n <BaseNumberField.Input\n className={cn(\n 'h-9 w-24 border-t border-b border-border bg-transparent text-center text-base text-foreground tabular-nums outline-none',\n className,\n )}\n {...props}\n />\n )\n}\n\nNumberFieldInput.displayName = 'NumberFieldInput'\n\n// ============================================================================\n// NumberFieldDecrement\n// ============================================================================\n\ntype NumberFieldDecrementProps = React.ComponentProps<typeof BaseNumberField.Decrement>\n\nconst NumberFieldDecrement = ({ className, ...props }: NumberFieldDecrementProps) => {\n return (\n <BaseNumberField.Decrement\n className={cn(\n 'flex size-9 items-center justify-center rounded-l-md border border-border bg-background text-foreground select-none transition-colors hover:bg-muted active:bg-muted',\n className,\n )}\n {...props}\n />\n )\n}\n\nNumberFieldDecrement.displayName = 'NumberFieldDecrement'\n\n// ============================================================================\n// NumberFieldIncrement\n// ============================================================================\n\ntype NumberFieldIncrementProps = React.ComponentProps<typeof BaseNumberField.Increment>\n\nconst NumberFieldIncrement = ({ className, ...props }: NumberFieldIncrementProps) => {\n return (\n <BaseNumberField.Increment\n className={cn(\n 'flex size-9 items-center justify-center rounded-r-md border border-border bg-background text-foreground select-none transition-colors hover:bg-muted active:bg-muted',\n className,\n )}\n {...props}\n />\n )\n}\n\nNumberFieldIncrement.displayName = 'NumberFieldIncrement'\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport {\n NumberFieldRoot,\n NumberFieldScrubArea,\n NumberFieldScrubAreaCursor,\n NumberFieldGroup,\n NumberFieldInput,\n NumberFieldDecrement,\n NumberFieldIncrement,\n}\n\nexport type {\n NumberFieldRootProps,\n NumberFieldScrubAreaProps,\n NumberFieldScrubAreaCursorProps,\n NumberFieldGroupProps,\n NumberFieldInputProps,\n NumberFieldDecrementProps,\n NumberFieldIncrementProps,\n}\n"],"mappings":";;;;;;;;;AAcA,MAAM,mBAAmB,EAAE,WAAW,GAAG,YAAkC;AACzE,QAAO,oBAACA,YAAgB;EAAK,WAAW,GAAG,iBAAiB,UAAU;EAAE,GAAI;GAAS;;AAGvF,gBAAgB,cAAc;AAQ9B,MAAM,wBAAwB,EAAE,WAAW,GAAG,YAAuC;AACnF,QACE,oBAACA,YAAgB;EACf,WAAW,GAAG,gCAAgC,UAAU;EACxD,GAAI;GACJ;;AAIN,qBAAqB,cAAc;AAUnC,MAAM,8BAA8B,EAClC,WACA,GAAG,YACkC;AACrC,QACE,oBAACA,YAAgB;EACf,WAAW,GAAG,kDAAkD,UAAU;EAC1E,GAAI;GACJ;;AAIN,2BAA2B,cAAc;AAQzC,MAAM,oBAAoB,EAAE,WAAW,GAAG,YAAmC;AAC3E,QAAO,oBAACA,YAAgB;EAAM,WAAW,GAAG,QAAQ,UAAU;EAAE,GAAI;GAAS;;AAG/E,iBAAiB,cAAc;AAQ/B,MAAM,oBAAoB,EAAE,WAAW,GAAG,YAAmC;AAC3E,QACE,oBAACA,YAAgB;EACf,WAAW,GACT,2HACA,UACD;EACD,GAAI;GACJ;;AAIN,iBAAiB,cAAc;AAQ/B,MAAM,wBAAwB,EAAE,WAAW,GAAG,YAAuC;AACnF,QACE,oBAACA,YAAgB;EACf,WAAW,GACT,wKACA,UACD;EACD,GAAI;GACJ;;AAIN,qBAAqB,cAAc;AAQnC,MAAM,wBAAwB,EAAE,WAAW,GAAG,YAAuC;AACnF,QACE,oBAACA,YAAgB;EACf,WAAW,GACT,wKACA,UACD;EACD,GAAI;GACJ;;AAIN,qBAAqB,cAAc"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { ControlSize, ControlVariant } from "./lib/control-variants.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as react_jsx_runtime82 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/pagination.d.ts
|
|
6
|
+
type PaginationPage = number | 'ellipsis';
|
|
7
|
+
type UsePaginationOptions = {
|
|
8
|
+
/** Current active page (1-indexed) */
|
|
9
|
+
currentPage: number;
|
|
10
|
+
/** Total number of pages */
|
|
11
|
+
totalPages: number;
|
|
12
|
+
/** Number of pages to show on each side of current page (default: 1) */
|
|
13
|
+
siblingCount?: number;
|
|
14
|
+
/** Callback when page changes */
|
|
15
|
+
onPageChange: (page: number) => void;
|
|
16
|
+
/** Current page size */
|
|
17
|
+
pageSize?: number;
|
|
18
|
+
/** Available page size options (default: [10, 25, 50, 100]) */
|
|
19
|
+
pageSizeOptions?: number[];
|
|
20
|
+
/** Callback when page size changes */
|
|
21
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
22
|
+
};
|
|
23
|
+
type UsePaginationReturn = {
|
|
24
|
+
/** Array of page numbers and 'ellipsis' markers */
|
|
25
|
+
pages: PaginationPage[];
|
|
26
|
+
/** Current active page */
|
|
27
|
+
currentPage: number;
|
|
28
|
+
/** Total number of pages */
|
|
29
|
+
totalPages: number;
|
|
30
|
+
/** Whether navigation to next page is possible */
|
|
31
|
+
canGoNext: boolean;
|
|
32
|
+
/** Whether navigation to previous page is possible */
|
|
33
|
+
canGoPrevious: boolean;
|
|
34
|
+
/** Navigate to a specific page */
|
|
35
|
+
goToPage: (page: number) => void;
|
|
36
|
+
/** Navigate to the next page */
|
|
37
|
+
goToNext: () => void;
|
|
38
|
+
/** Navigate to the previous page */
|
|
39
|
+
goToPrevious: () => void;
|
|
40
|
+
/** Navigate to the first page */
|
|
41
|
+
goToFirst: () => void;
|
|
42
|
+
/** Navigate to the last page */
|
|
43
|
+
goToLast: () => void;
|
|
44
|
+
/** Current page size */
|
|
45
|
+
pageSize: number;
|
|
46
|
+
/** Available page size options */
|
|
47
|
+
pageSizeOptions: number[];
|
|
48
|
+
/** Set page size (calls onPageSizeChange if provided) */
|
|
49
|
+
setPageSize: (size: number) => void;
|
|
50
|
+
};
|
|
51
|
+
declare function usePagination({
|
|
52
|
+
currentPage,
|
|
53
|
+
totalPages,
|
|
54
|
+
siblingCount,
|
|
55
|
+
onPageChange,
|
|
56
|
+
pageSize,
|
|
57
|
+
pageSizeOptions,
|
|
58
|
+
onPageSizeChange
|
|
59
|
+
}: UsePaginationOptions): UsePaginationReturn;
|
|
60
|
+
type PaginationRootProps = React.ComponentProps<'nav'>;
|
|
61
|
+
declare const PaginationRoot: {
|
|
62
|
+
({
|
|
63
|
+
className,
|
|
64
|
+
...props
|
|
65
|
+
}: PaginationRootProps): react_jsx_runtime82.JSX.Element;
|
|
66
|
+
displayName: string;
|
|
67
|
+
};
|
|
68
|
+
type PaginationContentProps = React.ComponentProps<'ul'>;
|
|
69
|
+
declare const PaginationContent: {
|
|
70
|
+
({
|
|
71
|
+
className,
|
|
72
|
+
...props
|
|
73
|
+
}: PaginationContentProps): react_jsx_runtime82.JSX.Element;
|
|
74
|
+
displayName: string;
|
|
75
|
+
};
|
|
76
|
+
type PaginationItemProps = React.ComponentProps<'li'>;
|
|
77
|
+
declare const PaginationItem: {
|
|
78
|
+
({
|
|
79
|
+
className,
|
|
80
|
+
...props
|
|
81
|
+
}: PaginationItemProps): react_jsx_runtime82.JSX.Element;
|
|
82
|
+
displayName: string;
|
|
83
|
+
};
|
|
84
|
+
type PaginationButtonProps = React.ComponentProps<'button'> & {
|
|
85
|
+
/** Whether this button represents the current active page */
|
|
86
|
+
isActive?: boolean;
|
|
87
|
+
/** Visual style of the button */
|
|
88
|
+
variant?: ControlVariant;
|
|
89
|
+
/** Size of the button */
|
|
90
|
+
size?: ControlSize;
|
|
91
|
+
};
|
|
92
|
+
declare const PaginationButton: {
|
|
93
|
+
({
|
|
94
|
+
className,
|
|
95
|
+
isActive,
|
|
96
|
+
variant,
|
|
97
|
+
size,
|
|
98
|
+
...props
|
|
99
|
+
}: PaginationButtonProps): react_jsx_runtime82.JSX.Element;
|
|
100
|
+
displayName: string;
|
|
101
|
+
};
|
|
102
|
+
type PaginationPreviousProps = React.ComponentProps<'button'> & {
|
|
103
|
+
/** Visual style of the button */
|
|
104
|
+
variant?: ControlVariant;
|
|
105
|
+
/** Size of the button */
|
|
106
|
+
size?: ControlSize;
|
|
107
|
+
};
|
|
108
|
+
declare const PaginationPrevious: {
|
|
109
|
+
({
|
|
110
|
+
className,
|
|
111
|
+
disabled,
|
|
112
|
+
variant,
|
|
113
|
+
size,
|
|
114
|
+
children,
|
|
115
|
+
...props
|
|
116
|
+
}: PaginationPreviousProps): react_jsx_runtime82.JSX.Element;
|
|
117
|
+
displayName: string;
|
|
118
|
+
};
|
|
119
|
+
type PaginationNextProps = React.ComponentProps<'button'> & {
|
|
120
|
+
/** Visual style of the button */
|
|
121
|
+
variant?: ControlVariant;
|
|
122
|
+
/** Size of the button */
|
|
123
|
+
size?: ControlSize;
|
|
124
|
+
};
|
|
125
|
+
declare const PaginationNext: {
|
|
126
|
+
({
|
|
127
|
+
className,
|
|
128
|
+
disabled,
|
|
129
|
+
variant,
|
|
130
|
+
size,
|
|
131
|
+
children,
|
|
132
|
+
...props
|
|
133
|
+
}: PaginationNextProps): react_jsx_runtime82.JSX.Element;
|
|
134
|
+
displayName: string;
|
|
135
|
+
};
|
|
136
|
+
type PaginationFirstProps = React.ComponentProps<'button'> & {
|
|
137
|
+
/** Visual style of the button */
|
|
138
|
+
variant?: ControlVariant;
|
|
139
|
+
/** Size of the button */
|
|
140
|
+
size?: ControlSize;
|
|
141
|
+
};
|
|
142
|
+
declare const PaginationFirst: {
|
|
143
|
+
({
|
|
144
|
+
className,
|
|
145
|
+
disabled,
|
|
146
|
+
variant,
|
|
147
|
+
size,
|
|
148
|
+
children,
|
|
149
|
+
...props
|
|
150
|
+
}: PaginationFirstProps): react_jsx_runtime82.JSX.Element;
|
|
151
|
+
displayName: string;
|
|
152
|
+
};
|
|
153
|
+
type PaginationLastProps = React.ComponentProps<'button'> & {
|
|
154
|
+
/** Visual style of the button */
|
|
155
|
+
variant?: ControlVariant;
|
|
156
|
+
/** Size of the button */
|
|
157
|
+
size?: ControlSize;
|
|
158
|
+
};
|
|
159
|
+
declare const PaginationLast: {
|
|
160
|
+
({
|
|
161
|
+
className,
|
|
162
|
+
disabled,
|
|
163
|
+
variant,
|
|
164
|
+
size,
|
|
165
|
+
children,
|
|
166
|
+
...props
|
|
167
|
+
}: PaginationLastProps): react_jsx_runtime82.JSX.Element;
|
|
168
|
+
displayName: string;
|
|
169
|
+
};
|
|
170
|
+
type PaginationEllipsisProps = React.ComponentProps<'span'> & {
|
|
171
|
+
/** Size of the ellipsis container */
|
|
172
|
+
size?: ControlSize;
|
|
173
|
+
};
|
|
174
|
+
declare const PaginationEllipsis: {
|
|
175
|
+
({
|
|
176
|
+
className,
|
|
177
|
+
size,
|
|
178
|
+
...props
|
|
179
|
+
}: PaginationEllipsisProps): react_jsx_runtime82.JSX.Element;
|
|
180
|
+
displayName: string;
|
|
181
|
+
};
|
|
182
|
+
//#endregion
|
|
183
|
+
export { PaginationButton, type PaginationButtonProps, PaginationContent, type PaginationContentProps, PaginationEllipsis, type PaginationEllipsisProps, PaginationFirst, type PaginationFirstProps, PaginationItem, type PaginationItemProps, PaginationLast, type PaginationLastProps, PaginationNext, type PaginationNextProps, type PaginationPage, PaginationPrevious, type PaginationPreviousProps, PaginationRoot, type PaginationRootProps, type UsePaginationOptions, type UsePaginationReturn, usePagination };
|
|
184
|
+
//# sourceMappingURL=pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","names":[],"sources":["../src/components/pagination.tsx"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "./lib/utils.js";
|
|
4
|
+
import { controlVariants } from "./lib/control-variants.js";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
|
|
8
|
+
//#region src/components/pagination.tsx
|
|
9
|
+
const DEFAULT_PAGE_SIZE_OPTIONS = [
|
|
10
|
+
10,
|
|
11
|
+
25,
|
|
12
|
+
50,
|
|
13
|
+
100
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* Generate page numbers with ellipsis for pagination display
|
|
17
|
+
*/
|
|
18
|
+
function computePageRange(currentPage, totalPages, siblingCount) {
|
|
19
|
+
if (totalPages <= 1) return [1];
|
|
20
|
+
if (totalPages <= 7) return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
21
|
+
const result = [];
|
|
22
|
+
const leftSiblingIndex = Math.max(currentPage - siblingCount, 1);
|
|
23
|
+
const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages);
|
|
24
|
+
const shouldShowLeftEllipsis = leftSiblingIndex > 2;
|
|
25
|
+
const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 1;
|
|
26
|
+
result.push(1);
|
|
27
|
+
if (shouldShowLeftEllipsis) result.push("ellipsis");
|
|
28
|
+
for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) if (i !== 1 && i !== totalPages) result.push(i);
|
|
29
|
+
if (shouldShowRightEllipsis) result.push("ellipsis");
|
|
30
|
+
if (totalPages > 1) result.push(totalPages);
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
function usePagination({ currentPage, totalPages, siblingCount = 1, onPageChange, pageSize = DEFAULT_PAGE_SIZE_OPTIONS[0], pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS, onPageSizeChange }) {
|
|
34
|
+
const pages = React.useMemo(() => computePageRange(currentPage, totalPages, siblingCount), [
|
|
35
|
+
currentPage,
|
|
36
|
+
totalPages,
|
|
37
|
+
siblingCount
|
|
38
|
+
]);
|
|
39
|
+
const setPageSize = React.useCallback((size) => {
|
|
40
|
+
onPageSizeChange?.(size);
|
|
41
|
+
}, [onPageSizeChange]);
|
|
42
|
+
return {
|
|
43
|
+
pages,
|
|
44
|
+
currentPage,
|
|
45
|
+
totalPages,
|
|
46
|
+
canGoNext: currentPage < totalPages,
|
|
47
|
+
canGoPrevious: currentPage > 1,
|
|
48
|
+
goToPage: onPageChange,
|
|
49
|
+
goToNext: () => onPageChange(Math.min(currentPage + 1, totalPages)),
|
|
50
|
+
goToPrevious: () => onPageChange(Math.max(currentPage - 1, 1)),
|
|
51
|
+
goToFirst: () => onPageChange(1),
|
|
52
|
+
goToLast: () => onPageChange(totalPages),
|
|
53
|
+
pageSize,
|
|
54
|
+
pageSizeOptions,
|
|
55
|
+
setPageSize
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const PaginationRoot = ({ className, ...props }) => {
|
|
59
|
+
return /* @__PURE__ */ jsx("nav", {
|
|
60
|
+
"aria-label": "pagination",
|
|
61
|
+
className,
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
PaginationRoot.displayName = "PaginationRoot";
|
|
66
|
+
const PaginationContent = ({ className, ...props }) => {
|
|
67
|
+
return /* @__PURE__ */ jsx("ul", {
|
|
68
|
+
role: "list",
|
|
69
|
+
className: cn("flex flex-row flex-wrap items-center gap-1 w-fit", className),
|
|
70
|
+
...props
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
PaginationContent.displayName = "PaginationContent";
|
|
74
|
+
const PaginationItem = ({ className, ...props }) => {
|
|
75
|
+
return /* @__PURE__ */ jsx("li", {
|
|
76
|
+
className: cn("", className),
|
|
77
|
+
...props
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
PaginationItem.displayName = "PaginationItem";
|
|
81
|
+
const PaginationButton = ({ className, isActive, variant, size = "icon-sm", ...props }) => {
|
|
82
|
+
return /* @__PURE__ */ jsx("button", {
|
|
83
|
+
type: "button",
|
|
84
|
+
"aria-current": isActive ? "page" : void 0,
|
|
85
|
+
className: cn(controlVariants({
|
|
86
|
+
variant,
|
|
87
|
+
size
|
|
88
|
+
}), className),
|
|
89
|
+
...props
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
PaginationButton.displayName = "PaginationButton";
|
|
93
|
+
const PaginationPrevious = ({ className, disabled, variant, size = "icon-sm", children, ...props }) => {
|
|
94
|
+
return /* @__PURE__ */ jsx("button", {
|
|
95
|
+
type: "button",
|
|
96
|
+
"aria-label": "Go to previous page",
|
|
97
|
+
"aria-disabled": disabled || void 0,
|
|
98
|
+
disabled,
|
|
99
|
+
className: cn(controlVariants({
|
|
100
|
+
variant,
|
|
101
|
+
size
|
|
102
|
+
}), disabled && "pointer-events-none opacity-50", className),
|
|
103
|
+
...props,
|
|
104
|
+
children
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
PaginationPrevious.displayName = "PaginationPrevious";
|
|
108
|
+
const PaginationNext = ({ className, disabled, variant, size = "icon-sm", children, ...props }) => {
|
|
109
|
+
return /* @__PURE__ */ jsx("button", {
|
|
110
|
+
type: "button",
|
|
111
|
+
"aria-label": "Go to next page",
|
|
112
|
+
"aria-disabled": disabled || void 0,
|
|
113
|
+
disabled,
|
|
114
|
+
className: cn(controlVariants({
|
|
115
|
+
variant,
|
|
116
|
+
size
|
|
117
|
+
}), disabled && "pointer-events-none opacity-50", className),
|
|
118
|
+
...props,
|
|
119
|
+
children
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
PaginationNext.displayName = "PaginationNext";
|
|
123
|
+
const PaginationFirst = ({ className, disabled, variant, size = "icon-sm", children, ...props }) => {
|
|
124
|
+
return /* @__PURE__ */ jsx("button", {
|
|
125
|
+
type: "button",
|
|
126
|
+
"aria-label": "Go to first page",
|
|
127
|
+
"aria-disabled": disabled || void 0,
|
|
128
|
+
disabled,
|
|
129
|
+
className: cn(controlVariants({
|
|
130
|
+
variant,
|
|
131
|
+
size
|
|
132
|
+
}), disabled && "pointer-events-none opacity-50", className),
|
|
133
|
+
...props,
|
|
134
|
+
children
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
PaginationFirst.displayName = "PaginationFirst";
|
|
138
|
+
const PaginationLast = ({ className, disabled, variant, size = "icon-sm", children, ...props }) => {
|
|
139
|
+
return /* @__PURE__ */ jsx("button", {
|
|
140
|
+
type: "button",
|
|
141
|
+
"aria-label": "Go to last page",
|
|
142
|
+
"aria-disabled": disabled || void 0,
|
|
143
|
+
disabled,
|
|
144
|
+
className: cn(controlVariants({
|
|
145
|
+
variant,
|
|
146
|
+
size
|
|
147
|
+
}), disabled && "pointer-events-none opacity-50", className),
|
|
148
|
+
...props,
|
|
149
|
+
children
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
PaginationLast.displayName = "PaginationLast";
|
|
153
|
+
const PaginationEllipsis = ({ className, size = "icon-sm", ...props }) => {
|
|
154
|
+
return /* @__PURE__ */ jsx("span", {
|
|
155
|
+
"aria-hidden": "true",
|
|
156
|
+
className: cn(controlVariants({ size }), "border-transparent bg-transparent shadow-none", className),
|
|
157
|
+
...props
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
161
|
+
|
|
162
|
+
//#endregion
|
|
163
|
+
export { PaginationButton, PaginationContent, PaginationEllipsis, PaginationFirst, PaginationItem, PaginationLast, PaginationNext, PaginationPrevious, PaginationRoot, usePagination };
|
|
164
|
+
//# sourceMappingURL=pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","names":[],"sources":["../src/components/pagination.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport {\n type ControlSize,\n type ControlVariant,\n controlVariants,\n} from '../lib/control-variants'\nimport { cn } from '../lib/utils'\n\n// ============================================================================\n// usePagination Hook\n// ============================================================================\n\ntype PaginationPage = number | 'ellipsis'\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100]\n\ntype UsePaginationOptions = {\n /** Current active page (1-indexed) */\n currentPage: number\n /** Total number of pages */\n totalPages: number\n /** Number of pages to show on each side of current page (default: 1) */\n siblingCount?: number\n /** Callback when page changes */\n onPageChange: (page: number) => void\n /** Current page size */\n pageSize?: number\n /** Available page size options (default: [10, 25, 50, 100]) */\n pageSizeOptions?: number[]\n /** Callback when page size changes */\n onPageSizeChange?: (pageSize: number) => void\n}\n\ntype UsePaginationReturn = {\n /** Array of page numbers and 'ellipsis' markers */\n pages: PaginationPage[]\n /** Current active page */\n currentPage: number\n /** Total number of pages */\n totalPages: number\n /** Whether navigation to next page is possible */\n canGoNext: boolean\n /** Whether navigation to previous page is possible */\n canGoPrevious: boolean\n /** Navigate to a specific page */\n goToPage: (page: number) => void\n /** Navigate to the next page */\n goToNext: () => void\n /** Navigate to the previous page */\n goToPrevious: () => void\n /** Navigate to the first page */\n goToFirst: () => void\n /** Navigate to the last page */\n goToLast: () => void\n /** Current page size */\n pageSize: number\n /** Available page size options */\n pageSizeOptions: number[]\n /** Set page size (calls onPageSizeChange if provided) */\n setPageSize: (size: number) => void\n}\n\n/**\n * Generate page numbers with ellipsis for pagination display\n */\nfunction computePageRange(\n currentPage: number,\n totalPages: number,\n siblingCount: number,\n): PaginationPage[] {\n if (totalPages <= 1) return [1]\n if (totalPages <= 7) {\n // Show all pages if 7 or fewer\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const result: PaginationPage[] = []\n const leftSiblingIndex = Math.max(currentPage - siblingCount, 1)\n const rightSiblingIndex = Math.min(currentPage + siblingCount, totalPages)\n\n const shouldShowLeftEllipsis = leftSiblingIndex > 2\n const shouldShowRightEllipsis = rightSiblingIndex < totalPages - 1\n\n // Always show first page\n result.push(1)\n\n if (shouldShowLeftEllipsis) {\n result.push('ellipsis')\n }\n\n // Add pages around current page (excluding first and last which are handled separately)\n for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) {\n if (i !== 1 && i !== totalPages) {\n result.push(i)\n }\n }\n\n if (shouldShowRightEllipsis) {\n result.push('ellipsis')\n }\n\n // Always show last page\n if (totalPages > 1) {\n result.push(totalPages)\n }\n\n return result\n}\n\nfunction usePagination({\n currentPage,\n totalPages,\n siblingCount = 1,\n onPageChange,\n pageSize = DEFAULT_PAGE_SIZE_OPTIONS[0],\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n onPageSizeChange,\n}: UsePaginationOptions): UsePaginationReturn {\n const pages = React.useMemo(\n () => computePageRange(currentPage, totalPages, siblingCount),\n [currentPage, totalPages, siblingCount],\n )\n\n const setPageSize = React.useCallback(\n (size: number) => {\n onPageSizeChange?.(size)\n },\n [onPageSizeChange],\n )\n\n return {\n pages,\n currentPage,\n totalPages,\n canGoNext: currentPage < totalPages,\n canGoPrevious: currentPage > 1,\n goToPage: onPageChange,\n goToNext: () => onPageChange(Math.min(currentPage + 1, totalPages)),\n goToPrevious: () => onPageChange(Math.max(currentPage - 1, 1)),\n goToFirst: () => onPageChange(1),\n goToLast: () => onPageChange(totalPages),\n pageSize,\n pageSizeOptions,\n setPageSize,\n }\n}\n\n// ============================================================================\n// PaginationRoot\n// ============================================================================\n\ntype PaginationRootProps = React.ComponentProps<'nav'>\n\nconst PaginationRoot = ({ className, ...props }: PaginationRootProps) => {\n return <nav aria-label='pagination' className={className} {...props} />\n}\n\nPaginationRoot.displayName = 'PaginationRoot'\n\n// ============================================================================\n// PaginationContent\n// ============================================================================\n\ntype PaginationContentProps = React.ComponentProps<'ul'>\n\nconst PaginationContent = ({ className, ...props }: PaginationContentProps) => {\n return (\n <ul\n role='list'\n className={cn('flex flex-row flex-wrap items-center gap-1 w-fit', className)}\n {...props}\n />\n )\n}\n\nPaginationContent.displayName = 'PaginationContent'\n\n// ============================================================================\n// PaginationItem\n// ============================================================================\n\ntype PaginationItemProps = React.ComponentProps<'li'>\n\nconst PaginationItem = ({ className, ...props }: PaginationItemProps) => {\n return <li className={cn('', className)} {...props} />\n}\n\nPaginationItem.displayName = 'PaginationItem'\n\n// ============================================================================\n// PaginationButton (page number button)\n// ============================================================================\n\ntype PaginationButtonProps = React.ComponentProps<'button'> & {\n /** Whether this button represents the current active page */\n isActive?: boolean\n /** Visual style of the button */\n variant?: ControlVariant\n /** Size of the button */\n size?: ControlSize\n}\n\nconst PaginationButton = ({\n className,\n isActive,\n variant,\n size = 'icon-sm',\n ...props\n}: PaginationButtonProps) => {\n return (\n <button\n type='button'\n aria-current={isActive ? 'page' : undefined}\n className={cn(controlVariants({ variant, size }), className)}\n {...props}\n />\n )\n}\n\nPaginationButton.displayName = 'PaginationButton'\n\n// ============================================================================\n// PaginationPrevious\n// ============================================================================\n\ntype PaginationPreviousProps = React.ComponentProps<'button'> & {\n /** Visual style of the button */\n variant?: ControlVariant\n /** Size of the button */\n size?: ControlSize\n}\n\nconst PaginationPrevious = ({\n className,\n disabled,\n variant,\n size = 'icon-sm',\n children,\n ...props\n}: PaginationPreviousProps) => {\n return (\n <button\n type='button'\n aria-label='Go to previous page'\n aria-disabled={disabled || undefined}\n disabled={disabled}\n className={cn(\n controlVariants({ variant, size }),\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nPaginationPrevious.displayName = 'PaginationPrevious'\n\n// ============================================================================\n// PaginationNext\n// ============================================================================\n\ntype PaginationNextProps = React.ComponentProps<'button'> & {\n /** Visual style of the button */\n variant?: ControlVariant\n /** Size of the button */\n size?: ControlSize\n}\n\nconst PaginationNext = ({\n className,\n disabled,\n variant,\n size = 'icon-sm',\n children,\n ...props\n}: PaginationNextProps) => {\n return (\n <button\n type='button'\n aria-label='Go to next page'\n aria-disabled={disabled || undefined}\n disabled={disabled}\n className={cn(\n controlVariants({ variant, size }),\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nPaginationNext.displayName = 'PaginationNext'\n\n// ============================================================================\n// PaginationFirst\n// ============================================================================\n\ntype PaginationFirstProps = React.ComponentProps<'button'> & {\n /** Visual style of the button */\n variant?: ControlVariant\n /** Size of the button */\n size?: ControlSize\n}\n\nconst PaginationFirst = ({\n className,\n disabled,\n variant,\n size = 'icon-sm',\n children,\n ...props\n}: PaginationFirstProps) => {\n return (\n <button\n type='button'\n aria-label='Go to first page'\n aria-disabled={disabled || undefined}\n disabled={disabled}\n className={cn(\n controlVariants({ variant, size }),\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nPaginationFirst.displayName = 'PaginationFirst'\n\n// ============================================================================\n// PaginationLast\n// ============================================================================\n\ntype PaginationLastProps = React.ComponentProps<'button'> & {\n /** Visual style of the button */\n variant?: ControlVariant\n /** Size of the button */\n size?: ControlSize\n}\n\nconst PaginationLast = ({\n className,\n disabled,\n variant,\n size = 'icon-sm',\n children,\n ...props\n}: PaginationLastProps) => {\n return (\n <button\n type='button'\n aria-label='Go to last page'\n aria-disabled={disabled || undefined}\n disabled={disabled}\n className={cn(\n controlVariants({ variant, size }),\n disabled && 'pointer-events-none opacity-50',\n className,\n )}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nPaginationLast.displayName = 'PaginationLast'\n\n// ============================================================================\n// PaginationEllipsis\n// ============================================================================\n\ntype PaginationEllipsisProps = React.ComponentProps<'span'> & {\n /** Size of the ellipsis container */\n size?: ControlSize\n}\n\nconst PaginationEllipsis = ({\n className,\n size = 'icon-sm',\n ...props\n}: PaginationEllipsisProps) => {\n return (\n <span\n aria-hidden='true'\n className={cn(\n controlVariants({ size }),\n 'border-transparent bg-transparent shadow-none',\n className,\n )}\n {...props}\n />\n )\n}\n\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport {\n // eslint-disable-next-line react-refresh/only-export-components\n usePagination,\n PaginationRoot,\n PaginationContent,\n PaginationItem,\n PaginationButton,\n PaginationPrevious,\n PaginationNext,\n PaginationFirst,\n PaginationLast,\n PaginationEllipsis,\n}\n\nexport type {\n PaginationPage,\n UsePaginationOptions,\n UsePaginationReturn,\n PaginationRootProps,\n PaginationContentProps,\n PaginationItemProps,\n PaginationButtonProps,\n PaginationPreviousProps,\n PaginationNextProps,\n PaginationFirstProps,\n PaginationLastProps,\n PaginationEllipsisProps,\n}\n"],"mappings":"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"}
|