@caffeinebounce/ui 0.62.2 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/blog.js +8 -6
- package/dist/blog.mjs +3 -1
- package/dist/charts.d.cts +1 -1
- package/dist/charts.d.ts +1 -1
- package/dist/{chunk-6DVWMJ3H.mjs → chunk-2EFVMX6V.mjs} +4 -3
- package/dist/chunk-33JR5SYE.js +1 -0
- package/dist/{chunk-OZZWDIOY.js → chunk-375DECW4.js} +32 -31
- package/dist/chunk-3NDB4YPC.js +1 -0
- package/dist/{chunk-PZRI43EZ.js → chunk-46JYKBRX.js} +0 -43
- package/dist/chunk-5D55OVD5.js +75 -0
- package/dist/chunk-5RW4PYZ6.js +1 -0
- package/dist/chunk-5THF4YP6.mjs +1 -0
- package/dist/{chunk-JORVSG52.js → chunk-663CFAHS.js} +212 -269
- package/dist/chunk-6BUBNZPG.mjs +1 -0
- package/dist/chunk-6HKJDV43.mjs +48 -0
- package/dist/chunk-6NCRGHV3.mjs +64 -0
- package/dist/{chunk-OLAAXLXY.mjs → chunk-6QAKQG57.mjs} +5 -4
- package/dist/chunk-72JGQ7IJ.mjs +1 -0
- package/dist/{chunk-N6AFNFZR.mjs → chunk-7ERVZXIN.mjs} +215 -270
- package/dist/chunk-7IKHZKAC.js +1 -0
- package/dist/chunk-APFEP5B7.mjs +100 -0
- package/dist/chunk-C3OADNSG.js +348 -0
- package/dist/{chunk-RVEFPVZF.mjs → chunk-C57MX3BG.mjs} +1 -0
- package/dist/{chunk-CC4KUIKC.js → chunk-DH5Z3ETN.js} +67 -45
- package/dist/chunk-DYWZ23QT.mjs +90 -0
- package/dist/{chunk-KRRIRS6A.mjs → chunk-E67IR6HU.mjs} +31 -9
- package/dist/{chunk-D3QXPL47.mjs → chunk-EXQSWHLD.mjs} +7 -6
- package/dist/{chunk-ZOA7B32D.js → chunk-F35KL6TX.js} +10 -9
- package/dist/{chunk-YSLD2HLP.mjs → chunk-FFJC66KO.mjs} +2 -1
- package/dist/chunk-FRRS2YZH.mjs +1 -0
- package/dist/chunk-G5TQWWQA.mjs +1 -0
- package/dist/{chunk-MPZFPU4X.js → chunk-GMBLPQ3I.js} +4 -3
- package/dist/chunk-IJFPPLQW.js +50 -0
- package/dist/chunk-J6OLBSZR.js +1 -0
- package/dist/chunk-KGGQ5NZV.js +1 -0
- package/dist/chunk-KHCC5UKW.mjs +1 -0
- package/dist/{chunk-BMFQG6RA.mjs → chunk-KJIX6V32.mjs} +108 -1885
- package/dist/chunk-LABHD4PU.js +109 -0
- package/dist/chunk-LQCVRWVF.js +1 -0
- package/dist/{chunk-GAIQJCAZ.js → chunk-LT5VD4KR.js} +150 -1953
- package/dist/{chunk-7DHKQODW.mjs → chunk-LTLCIRZY.mjs} +257 -474
- package/dist/chunk-N5BHXWR3.mjs +34 -0
- package/dist/chunk-OCO3Z5YA.js +37 -0
- package/dist/chunk-OFQLWSUR.mjs +1 -0
- package/dist/chunk-OIJ7XMDV.mjs +71 -0
- package/dist/chunk-ORBH4IBC.mjs +316 -0
- package/dist/{chunk-C4UT5V3P.js → chunk-OWHI5VGJ.js} +1 -0
- package/dist/chunk-OWWOAYIY.js +2652 -0
- package/dist/chunk-PFHOXDSW.mjs +10 -0
- package/dist/chunk-Q52ZEL62.mjs +1 -0
- package/dist/chunk-QRS7DJGS.js +103 -0
- package/dist/chunk-R26Y7LGJ.js +1 -0
- package/dist/{chunk-BFWX5GJZ.mjs → chunk-R3X4B4JJ.mjs} +56 -8
- package/dist/chunk-RBUYW6QQ.js +1 -0
- package/dist/chunk-RM7ACPTM.mjs +2601 -0
- package/dist/chunk-RODSGPBB.mjs +75 -0
- package/dist/chunk-SORWLKOK.js +1 -0
- package/dist/{chunk-T6ZBA6VJ.js → chunk-UHAV34YX.js} +9 -8
- package/dist/{chunk-GUSTCU2W.mjs → chunk-ULANYJ7Y.mjs} +1 -59
- package/dist/chunk-ULDE7QSN.js +70 -0
- package/dist/chunk-UT36VNVZ.mjs +47 -0
- package/dist/chunk-UY3H4PKB.js +71 -0
- package/dist/{chunk-KB7UXIQZ.mjs → chunk-VIVWFQG5.mjs} +3 -1
- package/dist/{chunk-ESZ7CBA2.js → chunk-VKBJ3SGT.js} +7 -5
- package/dist/{chunk-UM7WMXIU.js → chunk-W3YOQ5ZD.js} +265 -505
- package/dist/chunk-WOITB4JL.js +1 -0
- package/dist/{chunk-E42B4GSB.js → chunk-XGJL6DLV.js} +58 -7
- package/dist/chunk-YKZEKJMZ.mjs +1 -0
- package/dist/chunk-YRIBFIQ5.js +116 -0
- package/dist/chunk-ZFLZA7UP.mjs +1 -0
- package/dist/chunk-ZKUIUE7W.mjs +1 -0
- package/dist/chunk-ZWWJ3RRA.js +15 -0
- package/dist/data-grid.d.cts +241 -0
- package/dist/data-grid.d.ts +241 -0
- package/dist/data-grid.js +6486 -0
- package/dist/data-grid.mjs +6459 -0
- package/dist/data-table-CDQBo-Ve.d.ts +818 -0
- package/dist/data-table-jLzt6plY.d.cts +818 -0
- package/dist/data-table.d.cts +8 -42
- package/dist/data-table.d.ts +8 -42
- package/dist/data-table.js +61 -187
- package/dist/data-table.mjs +11 -5
- package/dist/finance.d.cts +534 -0
- package/dist/finance.d.ts +534 -0
- package/dist/finance.js +188 -0
- package/dist/finance.mjs +15 -0
- package/dist/forms.js +9 -6
- package/dist/forms.mjs +7 -4
- package/dist/{hooks-B2jU1GVT.d.ts → hooks-A55E0fgf.d.ts} +3 -2
- package/dist/{hooks-8ORd7T1A.d.cts → hooks-Bys_AZPI.d.cts} +3 -2
- package/dist/hooks.d.cts +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +26 -23
- package/dist/hooks.mjs +6 -3
- package/dist/index.d.cts +536 -665
- package/dist/index.d.ts +536 -665
- package/dist/index.js +3830 -3408
- package/dist/index.mjs +2068 -1767
- package/dist/layouts.js +26 -25
- package/dist/layouts.mjs +5 -4
- package/dist/marketing-3d.js +1 -0
- package/dist/marketing-3d.mjs +1 -0
- package/dist/marketing.js +75 -74
- package/dist/marketing.mjs +5 -4
- package/dist/media.js +1 -0
- package/dist/media.mjs +1 -0
- package/dist/navigation.js +29 -28
- package/dist/navigation.mjs +7 -6
- package/dist/primitives.d.cts +72 -109
- package/dist/primitives.d.ts +72 -109
- package/dist/primitives.js +78 -72
- package/dist/primitives.mjs +8 -6
- package/dist/settings.js +9 -9
- package/dist/settings.mjs +4 -4
- package/package.json +21 -4
- package/dist/UnifiedTableControls-CG299y9h.d.ts +0 -1233
- package/dist/UnifiedTableControls-CIjRpNhy.d.cts +0 -1233
- package/dist/chunk-GMBGWOCR.mjs +0 -48
- package/dist/chunk-HBLKVQIQ.mjs +0 -23
- package/dist/chunk-HMAMMC72.js +0 -26
- package/dist/chunk-MVYRNJA6.js +0 -74
package/dist/chunk-WOITB4JL.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
4
|
var chunkLQCVRWVF_js = require('./chunk-LQCVRWVF.js');
|
|
5
|
+
var chunkOCO3Z5YA_js = require('./chunk-OCO3Z5YA.js');
|
|
4
6
|
var chunk7IKHZKAC_js = require('./chunk-7IKHZKAC.js');
|
|
5
|
-
var chunkHMAMMC72_js = require('./chunk-HMAMMC72.js');
|
|
6
7
|
var chunkJ6OLBSZR_js = require('./chunk-J6OLBSZR.js');
|
|
7
8
|
var chunkDQWHYBV2_js = require('./chunk-DQWHYBV2.js');
|
|
8
9
|
var chunkQ256HRYD_js = require('./chunk-Q256HRYD.js');
|
|
@@ -150,10 +151,10 @@ var SidebarProvider = React__namespace.forwardRef(
|
|
|
150
151
|
...props
|
|
151
152
|
}, ref) => {
|
|
152
153
|
const [machine, dispatch] = React__namespace.useReducer(sidebarReducer, {
|
|
153
|
-
viewportWidth:
|
|
154
|
+
viewportWidth: 1024,
|
|
154
155
|
desktopPref: toDesktopPreference(defaultOpen),
|
|
155
156
|
openMobile: false,
|
|
156
|
-
hydrated:
|
|
157
|
+
hydrated: false
|
|
157
158
|
});
|
|
158
159
|
React__namespace.useLayoutEffect(() => {
|
|
159
160
|
const syncViewport = () => {
|
|
@@ -781,14 +782,16 @@ var SidebarMenuSubButton = React__namespace.forwardRef(({ asChild = false, size
|
|
|
781
782
|
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
782
783
|
function Avatar({
|
|
783
784
|
className,
|
|
785
|
+
size = "default",
|
|
784
786
|
...props
|
|
785
787
|
}) {
|
|
786
788
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
787
789
|
AvatarPrimitive__namespace.Root,
|
|
788
790
|
{
|
|
789
791
|
"data-slot": "avatar",
|
|
792
|
+
"data-size": size,
|
|
790
793
|
className: chunkADIDI7AJ_js.cn(
|
|
791
|
-
"relative flex size-
|
|
794
|
+
"group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",
|
|
792
795
|
className
|
|
793
796
|
),
|
|
794
797
|
...props
|
|
@@ -803,7 +806,7 @@ function AvatarImage({
|
|
|
803
806
|
AvatarPrimitive__namespace.Image,
|
|
804
807
|
{
|
|
805
808
|
"data-slot": "avatar-image",
|
|
806
|
-
className: chunkADIDI7AJ_js.cn("aspect-square size-full
|
|
809
|
+
className: chunkADIDI7AJ_js.cn("aspect-square size-full", className),
|
|
807
810
|
...props
|
|
808
811
|
}
|
|
809
812
|
);
|
|
@@ -817,7 +820,52 @@ function AvatarFallback({
|
|
|
817
820
|
{
|
|
818
821
|
"data-slot": "avatar-fallback",
|
|
819
822
|
className: chunkADIDI7AJ_js.cn(
|
|
820
|
-
"
|
|
823
|
+
"flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",
|
|
824
|
+
className
|
|
825
|
+
),
|
|
826
|
+
...props
|
|
827
|
+
}
|
|
828
|
+
);
|
|
829
|
+
}
|
|
830
|
+
function AvatarBadge({ className, ...props }) {
|
|
831
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
832
|
+
"span",
|
|
833
|
+
{
|
|
834
|
+
"data-slot": "avatar-badge",
|
|
835
|
+
className: chunkADIDI7AJ_js.cn(
|
|
836
|
+
"absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground ring-2 ring-background select-none",
|
|
837
|
+
"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
|
|
838
|
+
"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
|
|
839
|
+
"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
|
|
840
|
+
className
|
|
841
|
+
),
|
|
842
|
+
...props
|
|
843
|
+
}
|
|
844
|
+
);
|
|
845
|
+
}
|
|
846
|
+
function AvatarGroup({ className, ...props }) {
|
|
847
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
848
|
+
"div",
|
|
849
|
+
{
|
|
850
|
+
"data-slot": "avatar-group",
|
|
851
|
+
className: chunkADIDI7AJ_js.cn(
|
|
852
|
+
"group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background",
|
|
853
|
+
className
|
|
854
|
+
),
|
|
855
|
+
...props
|
|
856
|
+
}
|
|
857
|
+
);
|
|
858
|
+
}
|
|
859
|
+
function AvatarGroupCount({
|
|
860
|
+
className,
|
|
861
|
+
...props
|
|
862
|
+
}) {
|
|
863
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
864
|
+
"div",
|
|
865
|
+
{
|
|
866
|
+
"data-slot": "avatar-group-count",
|
|
867
|
+
className: chunkADIDI7AJ_js.cn(
|
|
868
|
+
"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
|
|
821
869
|
className
|
|
822
870
|
),
|
|
823
871
|
...props
|
|
@@ -863,7 +911,7 @@ function UserAvatarMenu({
|
|
|
863
911
|
"div",
|
|
864
912
|
{
|
|
865
913
|
className: `inline-flex items-center justify-center rounded-md ${sizeClass} ${className}`,
|
|
866
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
914
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkOCO3Z5YA_js.SizedSpinner, { size: "sm" })
|
|
867
915
|
}
|
|
868
916
|
);
|
|
869
917
|
}
|
|
@@ -961,7 +1009,10 @@ function UserAvatarMenu({
|
|
|
961
1009
|
}
|
|
962
1010
|
|
|
963
1011
|
exports.Avatar = Avatar;
|
|
1012
|
+
exports.AvatarBadge = AvatarBadge;
|
|
964
1013
|
exports.AvatarFallback = AvatarFallback;
|
|
1014
|
+
exports.AvatarGroup = AvatarGroup;
|
|
1015
|
+
exports.AvatarGroupCount = AvatarGroupCount;
|
|
965
1016
|
exports.AvatarImage = AvatarImage;
|
|
966
1017
|
exports.Kbd = Kbd;
|
|
967
1018
|
exports.KbdGroup = KbdGroup;
|
package/dist/chunk-YKZEKJMZ.mjs
CHANGED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
|
|
5
|
+
var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
6
|
+
var classVarianceAuthority = require('class-variance-authority');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
28
|
+
|
|
29
|
+
function Tabs({
|
|
30
|
+
className,
|
|
31
|
+
orientation = "horizontal",
|
|
32
|
+
...props
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
35
|
+
TabsPrimitive__namespace.Root,
|
|
36
|
+
{
|
|
37
|
+
"data-slot": "tabs",
|
|
38
|
+
"data-orientation": orientation,
|
|
39
|
+
orientation,
|
|
40
|
+
className: chunkADIDI7AJ_js.cn(
|
|
41
|
+
"group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",
|
|
42
|
+
className
|
|
43
|
+
),
|
|
44
|
+
...props
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
var tabsListVariants = classVarianceAuthority.cva(
|
|
49
|
+
"group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",
|
|
50
|
+
{
|
|
51
|
+
variants: {
|
|
52
|
+
variant: {
|
|
53
|
+
default: "bg-muted",
|
|
54
|
+
line: "gap-1 bg-transparent"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
defaultVariants: {
|
|
58
|
+
variant: "default"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
function TabsList({
|
|
63
|
+
className,
|
|
64
|
+
// Local change over shadcn: consumers were built on the underline look, so
|
|
65
|
+
// "line" stays the default; pass variant="default" for the upstream pill.
|
|
66
|
+
variant = "line",
|
|
67
|
+
...props
|
|
68
|
+
}) {
|
|
69
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
70
|
+
TabsPrimitive__namespace.List,
|
|
71
|
+
{
|
|
72
|
+
"data-slot": "tabs-list",
|
|
73
|
+
"data-variant": variant,
|
|
74
|
+
className: chunkADIDI7AJ_js.cn(tabsListVariants({ variant }), className),
|
|
75
|
+
...props
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
function TabsTrigger({
|
|
80
|
+
className,
|
|
81
|
+
...props
|
|
82
|
+
}) {
|
|
83
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84
|
+
TabsPrimitive__namespace.Trigger,
|
|
85
|
+
{
|
|
86
|
+
"data-slot": "tabs-trigger",
|
|
87
|
+
className: chunkADIDI7AJ_js.cn(
|
|
88
|
+
"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
89
|
+
"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent",
|
|
90
|
+
"data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground",
|
|
91
|
+
"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",
|
|
92
|
+
className
|
|
93
|
+
),
|
|
94
|
+
...props
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
function TabsContent({
|
|
99
|
+
className,
|
|
100
|
+
...props
|
|
101
|
+
}) {
|
|
102
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
103
|
+
TabsPrimitive__namespace.Content,
|
|
104
|
+
{
|
|
105
|
+
"data-slot": "tabs-content",
|
|
106
|
+
className: chunkADIDI7AJ_js.cn("flex-1 outline-none", className),
|
|
107
|
+
...props
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
exports.Tabs = Tabs;
|
|
113
|
+
exports.TabsContent = TabsContent;
|
|
114
|
+
exports.TabsList = TabsList;
|
|
115
|
+
exports.TabsTrigger = TabsTrigger;
|
|
116
|
+
exports.tabsListVariants = tabsListVariants;
|
package/dist/chunk-ZFLZA7UP.mjs
CHANGED
package/dist/chunk-ZKUIUE7W.mjs
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/blocks/table/addons/data-table-styles.ts
|
|
4
|
+
var dataTableTopperButtonProps = {
|
|
5
|
+
variant: "ghost-icon",
|
|
6
|
+
size: "icon-sm"
|
|
7
|
+
};
|
|
8
|
+
var dataTableTopperResponsiveClasses = "w-8 @min-[450px]:w-auto @min-[450px]:px-2";
|
|
9
|
+
var dataTableTopperOpenStateClasses = "data-[state=open]:text-foreground";
|
|
10
|
+
var dataTableTopperIconClasses = "text-icon hover:text-icon-hover [&_svg]:transition-transform [&_svg]:duration-200 hover:[&_svg]:scale-110";
|
|
11
|
+
|
|
12
|
+
exports.dataTableTopperButtonProps = dataTableTopperButtonProps;
|
|
13
|
+
exports.dataTableTopperIconClasses = dataTableTopperIconClasses;
|
|
14
|
+
exports.dataTableTopperOpenStateClasses = dataTableTopperOpenStateClasses;
|
|
15
|
+
exports.dataTableTopperResponsiveClasses = dataTableTopperResponsiveClasses;
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React$1 from 'react';
|
|
3
|
+
import { RowData, Cell, TableMeta, TableOptions, ColumnDef, Column } from '@tanstack/react-table';
|
|
4
|
+
import * as _tanstack_virtual_core from '@tanstack/virtual-core';
|
|
5
|
+
import * as _tanstack_table_core from '@tanstack/table-core';
|
|
6
|
+
|
|
7
|
+
type Direction = "ltr" | "rtl";
|
|
8
|
+
type RowHeightValue = "short" | "medium" | "tall" | "extra-tall";
|
|
9
|
+
interface CellSelectOption {
|
|
10
|
+
label: string;
|
|
11
|
+
value: string;
|
|
12
|
+
icon?: React.ComponentType<React.ComponentProps<"svg">>;
|
|
13
|
+
count?: number;
|
|
14
|
+
}
|
|
15
|
+
type CellOpts = {
|
|
16
|
+
variant: "short-text";
|
|
17
|
+
} | {
|
|
18
|
+
variant: "long-text";
|
|
19
|
+
} | {
|
|
20
|
+
variant: "number";
|
|
21
|
+
min?: number;
|
|
22
|
+
max?: number;
|
|
23
|
+
step?: number;
|
|
24
|
+
} | {
|
|
25
|
+
variant: "select";
|
|
26
|
+
options: CellSelectOption[];
|
|
27
|
+
} | {
|
|
28
|
+
variant: "multi-select";
|
|
29
|
+
options: CellSelectOption[];
|
|
30
|
+
} | {
|
|
31
|
+
variant: "checkbox";
|
|
32
|
+
} | {
|
|
33
|
+
variant: "date";
|
|
34
|
+
} | {
|
|
35
|
+
variant: "url";
|
|
36
|
+
} | {
|
|
37
|
+
variant: "file";
|
|
38
|
+
maxFileSize?: number;
|
|
39
|
+
maxFiles?: number;
|
|
40
|
+
accept?: string;
|
|
41
|
+
multiple?: boolean;
|
|
42
|
+
};
|
|
43
|
+
interface CellUpdate {
|
|
44
|
+
rowIndex: number;
|
|
45
|
+
columnId: string;
|
|
46
|
+
value: unknown;
|
|
47
|
+
}
|
|
48
|
+
declare module "@tanstack/react-table" {
|
|
49
|
+
interface ColumnMeta<TData extends RowData, TValue> {
|
|
50
|
+
label?: string;
|
|
51
|
+
cell?: CellOpts;
|
|
52
|
+
}
|
|
53
|
+
interface TableMeta<TData extends RowData> {
|
|
54
|
+
dataGridRef?: React.RefObject<HTMLElement | null>;
|
|
55
|
+
cellMapRef?: React.RefObject<Map<string, HTMLDivElement>>;
|
|
56
|
+
focusedCell?: CellPosition | null;
|
|
57
|
+
editingCell?: CellPosition | null;
|
|
58
|
+
selectionState?: SelectionState;
|
|
59
|
+
searchOpen?: boolean;
|
|
60
|
+
getIsCellSelected?: (rowIndex: number, columnId: string) => boolean;
|
|
61
|
+
getIsSearchMatch?: (rowIndex: number, columnId: string) => boolean;
|
|
62
|
+
getIsActiveSearchMatch?: (rowIndex: number, columnId: string) => boolean;
|
|
63
|
+
getVisualRowIndex?: (rowId: string) => number | undefined;
|
|
64
|
+
scrollToCell?: (rowIndex: number, columnId: string, align?: "auto" | "start" | "center" | "end") => void;
|
|
65
|
+
rowHeight?: RowHeightValue;
|
|
66
|
+
onRowHeightChange?: (value: RowHeightValue) => void;
|
|
67
|
+
onRowSelect?: (rowId: string, checked: boolean, shiftKey: boolean) => void;
|
|
68
|
+
onDataUpdate?: (params: CellUpdate | Array<CellUpdate>) => void;
|
|
69
|
+
onRowsDelete?: (rowIndices: number[]) => void | Promise<void>;
|
|
70
|
+
onColumnClick?: (columnId: string) => void;
|
|
71
|
+
onCellClick?: (rowIndex: number, columnId: string, event?: React.MouseEvent) => void;
|
|
72
|
+
onCellDoubleClick?: (rowIndex: number, columnId: string) => void;
|
|
73
|
+
onCellMouseDown?: (rowIndex: number, columnId: string, event: React.MouseEvent) => void;
|
|
74
|
+
onCellMouseEnter?: (rowIndex: number, columnId: string) => void;
|
|
75
|
+
onCellMouseUp?: () => void;
|
|
76
|
+
onCellContextMenu?: (rowIndex: number, columnId: string, event: React.MouseEvent) => void;
|
|
77
|
+
onCellEditingStart?: (rowIndex: number, columnId: string) => void;
|
|
78
|
+
onCellEditingStop?: (opts?: {
|
|
79
|
+
direction?: NavigationDirection;
|
|
80
|
+
moveToNextRow?: boolean;
|
|
81
|
+
}) => void;
|
|
82
|
+
onCellsCopy?: () => void;
|
|
83
|
+
onCellsCut?: () => void;
|
|
84
|
+
onCellsPaste?: (expand?: boolean) => void;
|
|
85
|
+
onSelectionClear?: () => void;
|
|
86
|
+
onFilesUpload?: (params: {
|
|
87
|
+
files: File[];
|
|
88
|
+
rowIndex: number;
|
|
89
|
+
columnId: string;
|
|
90
|
+
}) => Promise<FileCellData[]>;
|
|
91
|
+
onFilesDelete?: (params: {
|
|
92
|
+
fileIds: string[];
|
|
93
|
+
rowIndex: number;
|
|
94
|
+
columnId: string;
|
|
95
|
+
}) => void | Promise<void>;
|
|
96
|
+
contextMenu?: ContextMenuState;
|
|
97
|
+
onContextMenuOpenChange?: (open: boolean) => void;
|
|
98
|
+
pasteDialog?: PasteDialogState;
|
|
99
|
+
onPasteDialogOpenChange?: (open: boolean) => void;
|
|
100
|
+
readOnly?: boolean;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
interface CellPosition {
|
|
104
|
+
rowIndex: number;
|
|
105
|
+
columnId: string;
|
|
106
|
+
}
|
|
107
|
+
interface CellRange {
|
|
108
|
+
start: CellPosition;
|
|
109
|
+
end: CellPosition;
|
|
110
|
+
}
|
|
111
|
+
interface SelectionState {
|
|
112
|
+
selectedCells: Set<string>;
|
|
113
|
+
selectionRange: CellRange | null;
|
|
114
|
+
isSelecting: boolean;
|
|
115
|
+
}
|
|
116
|
+
interface ContextMenuState {
|
|
117
|
+
open: boolean;
|
|
118
|
+
x: number;
|
|
119
|
+
y: number;
|
|
120
|
+
}
|
|
121
|
+
interface PasteDialogState {
|
|
122
|
+
open: boolean;
|
|
123
|
+
rowsNeeded: number;
|
|
124
|
+
clipboardText: string;
|
|
125
|
+
}
|
|
126
|
+
type NavigationDirection = "up" | "down" | "left" | "right" | "home" | "end" | "ctrl+up" | "ctrl+down" | "ctrl+home" | "ctrl+end" | "pageup" | "pagedown" | "pageleft" | "pageright";
|
|
127
|
+
interface SearchState {
|
|
128
|
+
searchMatches: CellPosition[];
|
|
129
|
+
matchIndex: number;
|
|
130
|
+
searchOpen: boolean;
|
|
131
|
+
onSearchOpenChange: (open: boolean) => void;
|
|
132
|
+
searchQuery: string;
|
|
133
|
+
onSearchQueryChange: (query: string) => void;
|
|
134
|
+
onSearch: (query: string) => void;
|
|
135
|
+
onNavigateToNextMatch: () => void;
|
|
136
|
+
onNavigateToPrevMatch: () => void;
|
|
137
|
+
}
|
|
138
|
+
interface DataGridCellProps<TData> {
|
|
139
|
+
cell: Cell<TData, unknown>;
|
|
140
|
+
tableMeta: TableMeta<TData>;
|
|
141
|
+
rowIndex: number;
|
|
142
|
+
columnId: string;
|
|
143
|
+
rowHeight: RowHeightValue;
|
|
144
|
+
isEditing: boolean;
|
|
145
|
+
isFocused: boolean;
|
|
146
|
+
isSelected: boolean;
|
|
147
|
+
isSearchMatch: boolean;
|
|
148
|
+
isActiveSearchMatch: boolean;
|
|
149
|
+
readOnly: boolean;
|
|
150
|
+
}
|
|
151
|
+
interface FileCellData {
|
|
152
|
+
id: string;
|
|
153
|
+
name: string;
|
|
154
|
+
size: number;
|
|
155
|
+
type: string;
|
|
156
|
+
url?: string;
|
|
157
|
+
}
|
|
158
|
+
type TextFilterOperator = "contains" | "notContains" | "equals" | "notEquals" | "startsWith" | "endsWith" | "isEmpty" | "isNotEmpty";
|
|
159
|
+
type NumberFilterOperator = "equals" | "notEquals" | "lessThan" | "lessThanOrEqual" | "greaterThan" | "greaterThanOrEqual" | "isBetween" | "isEmpty" | "isNotEmpty";
|
|
160
|
+
type DateFilterOperator = "equals" | "notEquals" | "before" | "after" | "onOrBefore" | "onOrAfter" | "isBetween" | "isEmpty" | "isNotEmpty";
|
|
161
|
+
type SelectFilterOperator = "is" | "isNot" | "isAnyOf" | "isNoneOf" | "isEmpty" | "isNotEmpty";
|
|
162
|
+
type BooleanFilterOperator = "isTrue" | "isFalse";
|
|
163
|
+
type FilterOperator = TextFilterOperator | NumberFilterOperator | DateFilterOperator | SelectFilterOperator | BooleanFilterOperator;
|
|
164
|
+
interface FilterValue {
|
|
165
|
+
operator: FilterOperator;
|
|
166
|
+
value?: string | number | string[];
|
|
167
|
+
endValue?: string | number;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
interface UseDataGridProps<TData> extends Omit<TableOptions<TData>, "pageCount" | "getCoreRowModel"> {
|
|
171
|
+
onDataChange?: (data: TData[]) => void;
|
|
172
|
+
onRowAdd?: (event?: React$1.MouseEvent<HTMLDivElement>) => Partial<CellPosition> | Promise<Partial<CellPosition> | null> | null;
|
|
173
|
+
onRowsAdd?: (count: number) => void | Promise<void>;
|
|
174
|
+
onRowsDelete?: (rows: TData[], rowIndices: number[]) => void | Promise<void>;
|
|
175
|
+
onPaste?: (updates: Array<CellUpdate>) => void | Promise<void>;
|
|
176
|
+
onFilesUpload?: (params: {
|
|
177
|
+
files: File[];
|
|
178
|
+
rowIndex: number;
|
|
179
|
+
columnId: string;
|
|
180
|
+
}) => Promise<FileCellData[]>;
|
|
181
|
+
onFilesDelete?: (params: {
|
|
182
|
+
fileIds: string[];
|
|
183
|
+
rowIndex: number;
|
|
184
|
+
columnId: string;
|
|
185
|
+
}) => void | Promise<void>;
|
|
186
|
+
rowHeight?: RowHeightValue;
|
|
187
|
+
onRowHeightChange?: (rowHeight: RowHeightValue) => void;
|
|
188
|
+
overscan?: number;
|
|
189
|
+
dir?: Direction;
|
|
190
|
+
autoFocus?: boolean | Partial<CellPosition>;
|
|
191
|
+
enableSingleCellSelection?: boolean;
|
|
192
|
+
enableColumnSelection?: boolean;
|
|
193
|
+
enableSearch?: boolean;
|
|
194
|
+
enablePaste?: boolean;
|
|
195
|
+
readOnly?: boolean;
|
|
196
|
+
}
|
|
197
|
+
declare function useDataGrid<TData>({ data, columns, rowHeight: rowHeightProp, overscan, dir: dirProp, initialState, ...props }: UseDataGridProps<TData>): {
|
|
198
|
+
dataGridRef: React$1.RefObject<HTMLDivElement | null>;
|
|
199
|
+
headerRef: React$1.RefObject<HTMLDivElement | null>;
|
|
200
|
+
rowMapRef: React$1.RefObject<Map<number, HTMLDivElement>>;
|
|
201
|
+
footerRef: React$1.RefObject<HTMLDivElement | null>;
|
|
202
|
+
dir: "ltr" | "rtl";
|
|
203
|
+
table: _tanstack_table_core.Table<TData>;
|
|
204
|
+
tableMeta: TableMeta<TData>;
|
|
205
|
+
virtualTotalSize: number;
|
|
206
|
+
virtualItems: _tanstack_virtual_core.VirtualItem[];
|
|
207
|
+
measureElement: (node: Element | null) => void;
|
|
208
|
+
columns: ColumnDef<TData, any>[];
|
|
209
|
+
columnSizeVars: {
|
|
210
|
+
[key: string]: number;
|
|
211
|
+
};
|
|
212
|
+
searchState: SearchState | undefined;
|
|
213
|
+
searchMatchesByRow: Map<number, Set<string>> | null;
|
|
214
|
+
activeSearchMatch: CellPosition | null;
|
|
215
|
+
cellSelectionMap: Map<number, Set<string>> | null;
|
|
216
|
+
focusedCell: CellPosition | null;
|
|
217
|
+
editingCell: CellPosition | null;
|
|
218
|
+
rowHeight: RowHeightValue;
|
|
219
|
+
contextMenu: ContextMenuState;
|
|
220
|
+
pasteDialog: PasteDialogState;
|
|
221
|
+
onRowAdd: ((event?: React$1.MouseEvent<HTMLDivElement>) => Promise<void>) | undefined;
|
|
222
|
+
adjustLayout: boolean;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
interface DataGridProps<TData> extends Omit<ReturnType<typeof useDataGrid<TData>>, "dir">, Omit<React$1.ComponentProps<"div">, "contextMenu"> {
|
|
226
|
+
dir?: Direction;
|
|
227
|
+
height?: number;
|
|
228
|
+
stretchColumns?: boolean;
|
|
229
|
+
}
|
|
230
|
+
declare function DataGrid<TData>({ dataGridRef, headerRef, rowMapRef, footerRef, dir, table, tableMeta, virtualTotalSize, virtualItems, measureElement, columns, columnSizeVars, searchState, searchMatchesByRow, activeSearchMatch, cellSelectionMap, focusedCell, editingCell, rowHeight, contextMenu, pasteDialog, onRowAdd: onRowAddProp, height, stretchColumns, adjustLayout, className, ...props }: DataGridProps<TData>): react_jsx_runtime.JSX.Element;
|
|
231
|
+
|
|
232
|
+
declare function getCellKey(rowIndex: number, columnId: string): string;
|
|
233
|
+
declare function parseCellKey(cellKey: string): Required<CellPosition>;
|
|
234
|
+
declare function getRowHeightValue(rowHeight: RowHeightValue): number;
|
|
235
|
+
declare function getColumnPinningStyle<TData>(params: {
|
|
236
|
+
column: Column<TData>;
|
|
237
|
+
withBorder?: boolean;
|
|
238
|
+
dir?: Direction;
|
|
239
|
+
}): React$1.CSSProperties;
|
|
240
|
+
|
|
241
|
+
export { type BooleanFilterOperator, type CellOpts, type CellPosition, type CellRange, type CellSelectOption, type CellUpdate, type ContextMenuState, DataGrid, type DataGridCellProps, type DateFilterOperator, type Direction, type FileCellData, type FilterOperator, type FilterValue, type NavigationDirection, type NumberFilterOperator, type PasteDialogState, type RowHeightValue, type SearchState, type SelectFilterOperator, type SelectionState, type TextFilterOperator, type UseDataGridProps, getCellKey, getColumnPinningStyle as getGridColumnPinningStyle, getRowHeightValue, parseCellKey, useDataGrid };
|