@caffeinebounce/ui 0.62.3 → 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 +7 -6
- package/dist/blog.mjs +2 -1
- package/dist/charts.d.cts +1 -1
- package/dist/charts.d.ts +1 -1
- package/dist/{chunk-6DVWMJ3H.mjs → chunk-2EFVMX6V.mjs} +3 -3
- package/dist/{chunk-6ZJCK6KH.js → chunk-375DECW4.js} +31 -31
- package/dist/{chunk-PZRI43EZ.js → chunk-46JYKBRX.js} +0 -43
- package/dist/chunk-5D55OVD5.js +75 -0
- package/dist/{chunk-JORVSG52.js → chunk-663CFAHS.js} +211 -269
- package/dist/chunk-6HKJDV43.mjs +48 -0
- package/dist/chunk-6NCRGHV3.mjs +64 -0
- package/dist/{chunk-OLAAXLXY.mjs → chunk-6QAKQG57.mjs} +4 -4
- package/dist/{chunk-N6AFNFZR.mjs → chunk-7ERVZXIN.mjs} +214 -270
- package/dist/chunk-APFEP5B7.mjs +100 -0
- package/dist/chunk-C3OADNSG.js +348 -0
- package/dist/{chunk-GIJQE3JR.js → chunk-DH5Z3ETN.js} +66 -45
- package/dist/chunk-DYWZ23QT.mjs +90 -0
- package/dist/{chunk-DTVWRRFN.mjs → chunk-E67IR6HU.mjs} +30 -9
- package/dist/{chunk-OVNLC5RD.mjs → chunk-EXQSWHLD.mjs} +6 -6
- package/dist/{chunk-ZOA7B32D.js → chunk-F35KL6TX.js} +9 -9
- package/dist/{chunk-YSLD2HLP.mjs → chunk-FFJC66KO.mjs} +1 -1
- package/dist/{chunk-MPZFPU4X.js → chunk-GMBLPQ3I.js} +3 -3
- package/dist/chunk-IJFPPLQW.js +50 -0
- package/dist/{chunk-BMFQG6RA.mjs → chunk-KJIX6V32.mjs} +107 -1885
- package/dist/chunk-LABHD4PU.js +109 -0
- package/dist/{chunk-GAIQJCAZ.js → chunk-LT5VD4KR.js} +149 -1953
- package/dist/{chunk-7DHKQODW.mjs → chunk-LTLCIRZY.mjs} +256 -474
- package/dist/chunk-N5BHXWR3.mjs +34 -0
- package/dist/chunk-OCO3Z5YA.js +37 -0
- package/dist/chunk-OIJ7XMDV.mjs +71 -0
- package/dist/chunk-ORBH4IBC.mjs +316 -0
- package/dist/chunk-OWWOAYIY.js +2652 -0
- package/dist/chunk-PFHOXDSW.mjs +10 -0
- package/dist/chunk-QRS7DJGS.js +103 -0
- package/dist/{chunk-NXPEJ2UR.mjs → chunk-R3X4B4JJ.mjs} +53 -6
- package/dist/chunk-RM7ACPTM.mjs +2601 -0
- package/dist/chunk-RODSGPBB.mjs +75 -0
- package/dist/{chunk-T6ZBA6VJ.js → chunk-UHAV34YX.js} +8 -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} +2 -1
- package/dist/{chunk-ESZ7CBA2.js → chunk-VKBJ3SGT.js} +6 -5
- package/dist/{chunk-UM7WMXIU.js → chunk-W3YOQ5ZD.js} +264 -505
- package/dist/{chunk-GHOFYK2E.js → chunk-XGJL6DLV.js} +55 -5
- package/dist/chunk-YRIBFIQ5.js +116 -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 +3829 -3408
- package/dist/index.mjs +2067 -1767
- package/dist/layouts.js +25 -25
- package/dist/layouts.mjs +4 -4
- package/dist/marketing.js +74 -74
- package/dist/marketing.mjs +4 -4
- package/dist/navigation.js +28 -28
- package/dist/navigation.mjs +6 -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 +17 -1
- package/dist/UnifiedTableControls-CG299y9h.d.ts +0 -1233
- package/dist/UnifiedTableControls-CIjRpNhy.d.cts +0 -1233
- package/dist/chunk-GMBGWOCR.mjs +0 -49
- package/dist/chunk-HBLKVQIQ.mjs +0 -23
- package/dist/chunk-HMAMMC72.js +0 -26
- package/dist/chunk-MVYRNJA6.js +0 -75
- /package/dist/{chunk-RVEFPVZF.mjs → chunk-C57MX3BG.mjs} +0 -0
- /package/dist/{chunk-C4UT5V3P.js → chunk-OWHI5VGJ.js} +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var chunkLQCVRWVF_js = require('./chunk-LQCVRWVF.js');
|
|
5
|
+
var chunkOCO3Z5YA_js = require('./chunk-OCO3Z5YA.js');
|
|
5
6
|
var chunk7IKHZKAC_js = require('./chunk-7IKHZKAC.js');
|
|
6
|
-
var chunkHMAMMC72_js = require('./chunk-HMAMMC72.js');
|
|
7
7
|
var chunkJ6OLBSZR_js = require('./chunk-J6OLBSZR.js');
|
|
8
8
|
var chunkDQWHYBV2_js = require('./chunk-DQWHYBV2.js');
|
|
9
9
|
var chunkQ256HRYD_js = require('./chunk-Q256HRYD.js');
|
|
@@ -782,14 +782,16 @@ var SidebarMenuSubButton = React__namespace.forwardRef(({ asChild = false, size
|
|
|
782
782
|
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
783
783
|
function Avatar({
|
|
784
784
|
className,
|
|
785
|
+
size = "default",
|
|
785
786
|
...props
|
|
786
787
|
}) {
|
|
787
788
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
788
789
|
AvatarPrimitive__namespace.Root,
|
|
789
790
|
{
|
|
790
791
|
"data-slot": "avatar",
|
|
792
|
+
"data-size": size,
|
|
791
793
|
className: chunkADIDI7AJ_js.cn(
|
|
792
|
-
"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",
|
|
793
795
|
className
|
|
794
796
|
),
|
|
795
797
|
...props
|
|
@@ -804,7 +806,7 @@ function AvatarImage({
|
|
|
804
806
|
AvatarPrimitive__namespace.Image,
|
|
805
807
|
{
|
|
806
808
|
"data-slot": "avatar-image",
|
|
807
|
-
className: chunkADIDI7AJ_js.cn("aspect-square size-full
|
|
809
|
+
className: chunkADIDI7AJ_js.cn("aspect-square size-full", className),
|
|
808
810
|
...props
|
|
809
811
|
}
|
|
810
812
|
);
|
|
@@ -818,7 +820,52 @@ function AvatarFallback({
|
|
|
818
820
|
{
|
|
819
821
|
"data-slot": "avatar-fallback",
|
|
820
822
|
className: chunkADIDI7AJ_js.cn(
|
|
821
|
-
"
|
|
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",
|
|
822
869
|
className
|
|
823
870
|
),
|
|
824
871
|
...props
|
|
@@ -864,7 +911,7 @@ function UserAvatarMenu({
|
|
|
864
911
|
"div",
|
|
865
912
|
{
|
|
866
913
|
className: `inline-flex items-center justify-center rounded-md ${sizeClass} ${className}`,
|
|
867
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
914
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkOCO3Z5YA_js.SizedSpinner, { size: "sm" })
|
|
868
915
|
}
|
|
869
916
|
);
|
|
870
917
|
}
|
|
@@ -962,7 +1009,10 @@ function UserAvatarMenu({
|
|
|
962
1009
|
}
|
|
963
1010
|
|
|
964
1011
|
exports.Avatar = Avatar;
|
|
1012
|
+
exports.AvatarBadge = AvatarBadge;
|
|
965
1013
|
exports.AvatarFallback = AvatarFallback;
|
|
1014
|
+
exports.AvatarGroup = AvatarGroup;
|
|
1015
|
+
exports.AvatarGroupCount = AvatarGroupCount;
|
|
966
1016
|
exports.AvatarImage = AvatarImage;
|
|
967
1017
|
exports.Kbd = Kbd;
|
|
968
1018
|
exports.KbdGroup = KbdGroup;
|
|
@@ -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;
|
|
@@ -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 };
|