@optilogic/core 1.0.0-beta.2 → 1.0.0-beta.4
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/index.cjs +734 -219
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +308 -6
- package/dist/index.d.ts +308 -6
- package/dist/index.js +669 -168
- package/dist/index.js.map +1 -1
- package/package.json +20 -20
- package/src/components/board.tsx +251 -0
- package/src/components/card.tsx +656 -12
- package/src/components/context-menu.tsx +1 -1
- package/src/components/data-grid/hooks/useKeyboardNavigation.ts +1 -1
- package/src/index.ts +33 -0
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
2
|
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
import * as
|
|
3
|
+
import * as React34 from 'react';
|
|
4
4
|
import { useMemo, useState, useRef, useEffect, useCallback } from 'react';
|
|
5
5
|
import { Slot } from '@radix-ui/react-slot';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
@@ -53,7 +53,7 @@ var buttonVariants = cva(
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
);
|
|
56
|
-
var Button =
|
|
56
|
+
var Button = React34.forwardRef(
|
|
57
57
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
58
58
|
const Comp = asChild ? Slot : "button";
|
|
59
59
|
return /* @__PURE__ */ jsx(
|
|
@@ -67,7 +67,7 @@ var Button = React33.forwardRef(
|
|
|
67
67
|
}
|
|
68
68
|
);
|
|
69
69
|
Button.displayName = "Button";
|
|
70
|
-
var Input =
|
|
70
|
+
var Input = React34.forwardRef(
|
|
71
71
|
({ className, type, ...props }, ref) => {
|
|
72
72
|
return /* @__PURE__ */ jsx(
|
|
73
73
|
"input",
|
|
@@ -87,7 +87,7 @@ Input.displayName = "Input";
|
|
|
87
87
|
var labelVariants = cva(
|
|
88
88
|
"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
89
89
|
);
|
|
90
|
-
var Label =
|
|
90
|
+
var Label = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
91
91
|
LabelPrimitive.Root,
|
|
92
92
|
{
|
|
93
93
|
ref,
|
|
@@ -96,7 +96,7 @@ var Label = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
96
96
|
}
|
|
97
97
|
));
|
|
98
98
|
Label.displayName = LabelPrimitive.Root.displayName;
|
|
99
|
-
var Textarea =
|
|
99
|
+
var Textarea = React34.forwardRef(
|
|
100
100
|
({ className, ...props }, ref) => {
|
|
101
101
|
return /* @__PURE__ */ jsx(
|
|
102
102
|
"textarea",
|
|
@@ -135,7 +135,7 @@ var badgeVariants = cva(
|
|
|
135
135
|
function Badge({ className, variant, ...props }) {
|
|
136
136
|
return /* @__PURE__ */ jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
137
137
|
}
|
|
138
|
-
var Checkbox =
|
|
138
|
+
var Checkbox = React34.forwardRef(({ className, showBorder = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
139
139
|
CheckboxPrimitive.Root,
|
|
140
140
|
{
|
|
141
141
|
ref,
|
|
@@ -179,7 +179,7 @@ var Checkbox = React33.forwardRef(({ className, showBorder = true, ...props }, r
|
|
|
179
179
|
}
|
|
180
180
|
));
|
|
181
181
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
182
|
-
var Switch =
|
|
182
|
+
var Switch = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
183
183
|
SwitchPrimitive.Root,
|
|
184
184
|
{
|
|
185
185
|
className: cn(
|
|
@@ -215,7 +215,7 @@ var Switch = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
215
215
|
}
|
|
216
216
|
));
|
|
217
217
|
Switch.displayName = SwitchPrimitive.Root.displayName;
|
|
218
|
-
var Progress =
|
|
218
|
+
var Progress = React34.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
219
219
|
ProgressPrimitive.Root,
|
|
220
220
|
{
|
|
221
221
|
ref,
|
|
@@ -234,7 +234,7 @@ var Progress = React33.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
234
234
|
}
|
|
235
235
|
));
|
|
236
236
|
Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
237
|
-
var Separator =
|
|
237
|
+
var Separator = React34.forwardRef(
|
|
238
238
|
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
239
239
|
SeparatorPrimitive.Root,
|
|
240
240
|
{
|
|
@@ -263,7 +263,7 @@ function Skeleton({ className, ...props }) {
|
|
|
263
263
|
var Select = SelectPrimitive.Root;
|
|
264
264
|
var SelectGroup = SelectPrimitive.Group;
|
|
265
265
|
var SelectValue = SelectPrimitive.Value;
|
|
266
|
-
var SelectTrigger =
|
|
266
|
+
var SelectTrigger = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
267
267
|
SelectPrimitive.Trigger,
|
|
268
268
|
{
|
|
269
269
|
ref,
|
|
@@ -279,7 +279,7 @@ var SelectTrigger = React33.forwardRef(({ className, children, ...props }, ref)
|
|
|
279
279
|
}
|
|
280
280
|
));
|
|
281
281
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
282
|
-
var SelectScrollUpButton =
|
|
282
|
+
var SelectScrollUpButton = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
283
283
|
SelectPrimitive.ScrollUpButton,
|
|
284
284
|
{
|
|
285
285
|
ref,
|
|
@@ -292,7 +292,7 @@ var SelectScrollUpButton = React33.forwardRef(({ className, ...props }, ref) =>
|
|
|
292
292
|
}
|
|
293
293
|
));
|
|
294
294
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
295
|
-
var SelectScrollDownButton =
|
|
295
|
+
var SelectScrollDownButton = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
296
296
|
SelectPrimitive.ScrollDownButton,
|
|
297
297
|
{
|
|
298
298
|
ref,
|
|
@@ -305,7 +305,7 @@ var SelectScrollDownButton = React33.forwardRef(({ className, ...props }, ref) =
|
|
|
305
305
|
}
|
|
306
306
|
));
|
|
307
307
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
308
|
-
var SelectContent =
|
|
308
|
+
var SelectContent = React34.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
309
309
|
SelectPrimitive.Content,
|
|
310
310
|
{
|
|
311
311
|
ref,
|
|
@@ -333,7 +333,7 @@ var SelectContent = React33.forwardRef(({ className, children, position = "poppe
|
|
|
333
333
|
}
|
|
334
334
|
) }));
|
|
335
335
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
336
|
-
var SelectLabel =
|
|
336
|
+
var SelectLabel = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
337
337
|
SelectPrimitive.Label,
|
|
338
338
|
{
|
|
339
339
|
ref,
|
|
@@ -342,7 +342,7 @@ var SelectLabel = React33.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
342
342
|
}
|
|
343
343
|
));
|
|
344
344
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
345
|
-
var SelectItem =
|
|
345
|
+
var SelectItem = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
346
346
|
SelectPrimitive.Item,
|
|
347
347
|
{
|
|
348
348
|
ref,
|
|
@@ -358,7 +358,7 @@ var SelectItem = React33.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
358
358
|
}
|
|
359
359
|
));
|
|
360
360
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
361
|
-
var SelectSeparator =
|
|
361
|
+
var SelectSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
362
362
|
SelectPrimitive.Separator,
|
|
363
363
|
{
|
|
364
364
|
ref,
|
|
@@ -368,7 +368,7 @@ var SelectSeparator = React33.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
368
368
|
));
|
|
369
369
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
370
370
|
var Tabs = TabsPrimitive.Root;
|
|
371
|
-
var TabsList =
|
|
371
|
+
var TabsList = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
372
372
|
TabsPrimitive.List,
|
|
373
373
|
{
|
|
374
374
|
ref,
|
|
@@ -382,7 +382,7 @@ var TabsList = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
382
382
|
}
|
|
383
383
|
));
|
|
384
384
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
385
|
-
var TabsTrigger =
|
|
385
|
+
var TabsTrigger = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
386
386
|
TabsPrimitive.Trigger,
|
|
387
387
|
{
|
|
388
388
|
ref,
|
|
@@ -409,7 +409,7 @@ var TabsTrigger = React33.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
409
409
|
}
|
|
410
410
|
));
|
|
411
411
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
412
|
-
var TabsContent =
|
|
412
|
+
var TabsContent = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
413
413
|
TabsPrimitive.Content,
|
|
414
414
|
{
|
|
415
415
|
ref,
|
|
@@ -492,7 +492,7 @@ var accordionContentInnerVariants = cva("pb-4 pt-0", {
|
|
|
492
492
|
}
|
|
493
493
|
});
|
|
494
494
|
var Accordion = AccordionPrimitive.Root;
|
|
495
|
-
var AccordionItem =
|
|
495
|
+
var AccordionItem = React34.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
496
496
|
AccordionPrimitive.Item,
|
|
497
497
|
{
|
|
498
498
|
ref,
|
|
@@ -502,7 +502,7 @@ var AccordionItem = React33.forwardRef(({ className, variant, ...props }, ref) =
|
|
|
502
502
|
}
|
|
503
503
|
));
|
|
504
504
|
AccordionItem.displayName = "AccordionItem";
|
|
505
|
-
var AccordionTrigger =
|
|
505
|
+
var AccordionTrigger = React34.forwardRef(({ className, children, variant, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
506
506
|
AccordionPrimitive.Trigger,
|
|
507
507
|
{
|
|
508
508
|
ref,
|
|
@@ -515,7 +515,7 @@ var AccordionTrigger = React33.forwardRef(({ className, children, variant, ...pr
|
|
|
515
515
|
}
|
|
516
516
|
) }));
|
|
517
517
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
518
|
-
var AccordionContent =
|
|
518
|
+
var AccordionContent = React34.forwardRef(({ className, children, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
519
519
|
AccordionPrimitive.Content,
|
|
520
520
|
{
|
|
521
521
|
ref,
|
|
@@ -529,7 +529,7 @@ var TooltipProvider = TooltipPrimitive.Provider;
|
|
|
529
529
|
var TooltipRoot = TooltipPrimitive.Root;
|
|
530
530
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
531
531
|
var TooltipPortal = TooltipPrimitive.Portal;
|
|
532
|
-
var TooltipContent =
|
|
532
|
+
var TooltipContent = React34.forwardRef(({ className, sideOffset = 6, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
533
533
|
TooltipPrimitive.Content,
|
|
534
534
|
{
|
|
535
535
|
ref,
|
|
@@ -558,7 +558,7 @@ var TooltipContent = React33.forwardRef(({ className, sideOffset = 6, ...props }
|
|
|
558
558
|
}
|
|
559
559
|
) }));
|
|
560
560
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
561
|
-
var TooltipArrow =
|
|
561
|
+
var TooltipArrow = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
562
562
|
TooltipPrimitive.Arrow,
|
|
563
563
|
{
|
|
564
564
|
ref,
|
|
@@ -597,7 +597,7 @@ function Tooltip({
|
|
|
597
597
|
var Popover = PopoverPrimitive.Root;
|
|
598
598
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
599
599
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
600
|
-
var PopoverContent =
|
|
600
|
+
var PopoverContent = React34.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
601
601
|
PopoverPrimitive.Content,
|
|
602
602
|
{
|
|
603
603
|
ref,
|
|
@@ -623,7 +623,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
623
623
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
624
624
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
625
625
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
626
|
-
var DropdownMenuSubTrigger =
|
|
626
|
+
var DropdownMenuSubTrigger = React34.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
627
627
|
DropdownMenuPrimitive.SubTrigger,
|
|
628
628
|
{
|
|
629
629
|
ref,
|
|
@@ -642,7 +642,7 @@ var DropdownMenuSubTrigger = React33.forwardRef(({ className, inset, children, .
|
|
|
642
642
|
}
|
|
643
643
|
));
|
|
644
644
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
645
|
-
var DropdownMenuSubContent =
|
|
645
|
+
var DropdownMenuSubContent = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
646
646
|
DropdownMenuPrimitive.SubContent,
|
|
647
647
|
{
|
|
648
648
|
ref,
|
|
@@ -659,7 +659,7 @@ var DropdownMenuSubContent = React33.forwardRef(({ className, ...props }, ref) =
|
|
|
659
659
|
}
|
|
660
660
|
));
|
|
661
661
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
662
|
-
var DropdownMenuContent =
|
|
662
|
+
var DropdownMenuContent = React34.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
663
663
|
DropdownMenuPrimitive.Content,
|
|
664
664
|
{
|
|
665
665
|
ref,
|
|
@@ -677,7 +677,7 @@ var DropdownMenuContent = React33.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
677
677
|
}
|
|
678
678
|
) }));
|
|
679
679
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
680
|
-
var DropdownMenuItem =
|
|
680
|
+
var DropdownMenuItem = React34.forwardRef(({ className, inset, destructive, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
681
681
|
DropdownMenuPrimitive.Item,
|
|
682
682
|
{
|
|
683
683
|
ref,
|
|
@@ -693,7 +693,7 @@ var DropdownMenuItem = React33.forwardRef(({ className, inset, destructive, ...p
|
|
|
693
693
|
}
|
|
694
694
|
));
|
|
695
695
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
696
|
-
var DropdownMenuCheckboxItem =
|
|
696
|
+
var DropdownMenuCheckboxItem = React34.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
697
697
|
DropdownMenuPrimitive.CheckboxItem,
|
|
698
698
|
{
|
|
699
699
|
ref,
|
|
@@ -712,7 +712,7 @@ var DropdownMenuCheckboxItem = React33.forwardRef(({ className, children, checke
|
|
|
712
712
|
}
|
|
713
713
|
));
|
|
714
714
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
715
|
-
var DropdownMenuRadioItem =
|
|
715
|
+
var DropdownMenuRadioItem = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
|
|
716
716
|
DropdownMenuPrimitive.RadioItem,
|
|
717
717
|
{
|
|
718
718
|
ref,
|
|
@@ -730,7 +730,7 @@ var DropdownMenuRadioItem = React33.forwardRef(({ className, children, ...props
|
|
|
730
730
|
}
|
|
731
731
|
));
|
|
732
732
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
733
|
-
var DropdownMenuLabel =
|
|
733
|
+
var DropdownMenuLabel = React34.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
734
734
|
DropdownMenuPrimitive.Label,
|
|
735
735
|
{
|
|
736
736
|
ref,
|
|
@@ -743,7 +743,7 @@ var DropdownMenuLabel = React33.forwardRef(({ className, inset, ...props }, ref)
|
|
|
743
743
|
}
|
|
744
744
|
));
|
|
745
745
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
746
|
-
var DropdownMenuSeparator =
|
|
746
|
+
var DropdownMenuSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
747
747
|
DropdownMenuPrimitive.Separator,
|
|
748
748
|
{
|
|
749
749
|
ref,
|
|
@@ -768,7 +768,7 @@ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
|
768
768
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
769
769
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
770
770
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
771
|
-
var AlertDialogOverlay =
|
|
771
|
+
var AlertDialogOverlay = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
772
772
|
AlertDialogPrimitive.Overlay,
|
|
773
773
|
{
|
|
774
774
|
className: cn(
|
|
@@ -782,7 +782,7 @@ var AlertDialogOverlay = React33.forwardRef(({ className, ...props }, ref) => /*
|
|
|
782
782
|
}
|
|
783
783
|
));
|
|
784
784
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
785
|
-
var AlertDialogContent =
|
|
785
|
+
var AlertDialogContent = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
|
|
786
786
|
/* @__PURE__ */ jsx(AlertDialogOverlay, {}),
|
|
787
787
|
/* @__PURE__ */ jsx(
|
|
788
788
|
AlertDialogPrimitive.Content,
|
|
@@ -825,7 +825,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx(
|
|
|
825
825
|
}
|
|
826
826
|
);
|
|
827
827
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
828
|
-
var AlertDialogTitle =
|
|
828
|
+
var AlertDialogTitle = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
829
829
|
AlertDialogPrimitive.Title,
|
|
830
830
|
{
|
|
831
831
|
ref,
|
|
@@ -834,7 +834,7 @@ var AlertDialogTitle = React33.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
834
834
|
}
|
|
835
835
|
));
|
|
836
836
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
837
|
-
var AlertDialogDescription =
|
|
837
|
+
var AlertDialogDescription = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
838
838
|
AlertDialogPrimitive.Description,
|
|
839
839
|
{
|
|
840
840
|
ref,
|
|
@@ -843,7 +843,7 @@ var AlertDialogDescription = React33.forwardRef(({ className, ...props }, ref) =
|
|
|
843
843
|
}
|
|
844
844
|
));
|
|
845
845
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
846
|
-
var AlertDialogAction =
|
|
846
|
+
var AlertDialogAction = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
847
847
|
AlertDialogPrimitive.Action,
|
|
848
848
|
{
|
|
849
849
|
ref,
|
|
@@ -852,7 +852,7 @@ var AlertDialogAction = React33.forwardRef(({ className, ...props }, ref) => /*
|
|
|
852
852
|
}
|
|
853
853
|
));
|
|
854
854
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
855
|
-
var AlertDialogCancel =
|
|
855
|
+
var AlertDialogCancel = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
856
856
|
AlertDialogPrimitive.Cancel,
|
|
857
857
|
{
|
|
858
858
|
ref,
|
|
@@ -861,21 +861,107 @@ var AlertDialogCancel = React33.forwardRef(({ className, ...props }, ref) => /*
|
|
|
861
861
|
}
|
|
862
862
|
));
|
|
863
863
|
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
864
|
-
var
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
{
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
864
|
+
var cardVariants = cva(
|
|
865
|
+
"rounded-xl border bg-card text-card-foreground shadow",
|
|
866
|
+
{
|
|
867
|
+
variants: {
|
|
868
|
+
/**
|
|
869
|
+
* Card width size presets
|
|
870
|
+
*/
|
|
871
|
+
size: {
|
|
872
|
+
auto: "",
|
|
873
|
+
sm: "w-64",
|
|
874
|
+
md: "w-80",
|
|
875
|
+
lg: "w-96",
|
|
876
|
+
xl: "w-[28rem]",
|
|
877
|
+
full: "w-full"
|
|
878
|
+
},
|
|
879
|
+
/**
|
|
880
|
+
* Hover effect styles
|
|
881
|
+
*/
|
|
882
|
+
hover: {
|
|
883
|
+
none: "",
|
|
884
|
+
lift: "transition-all duration-200 hover:-translate-y-1 hover:shadow-lg",
|
|
885
|
+
glow: "transition-shadow duration-200 hover:shadow-lg hover:shadow-accent/20",
|
|
886
|
+
border: "transition-colors duration-200 hover:border-accent",
|
|
887
|
+
"border-success": "transition-colors duration-200 hover:border-success",
|
|
888
|
+
"border-warning": "transition-colors duration-200 hover:border-warning",
|
|
889
|
+
"border-destructive": "transition-colors duration-200 hover:border-destructive",
|
|
890
|
+
"border-muted": "transition-colors duration-200 hover:border-muted-foreground",
|
|
891
|
+
scale: "transition-transform duration-200 hover:scale-[1.02]"
|
|
892
|
+
},
|
|
893
|
+
/**
|
|
894
|
+
* Whether the card is interactive (clickable)
|
|
895
|
+
*/
|
|
896
|
+
interactive: {
|
|
897
|
+
true: "cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
898
|
+
false: ""
|
|
899
|
+
},
|
|
900
|
+
/**
|
|
901
|
+
* Card padding density
|
|
902
|
+
*/
|
|
903
|
+
padding: {
|
|
904
|
+
none: "",
|
|
905
|
+
sm: "[&>*:not(img)]:p-3 [&>*:not(img)]:pt-3",
|
|
906
|
+
md: "",
|
|
907
|
+
lg: "[&>*:not(img)]:p-8 [&>*:not(img)]:pt-8"
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
defaultVariants: {
|
|
911
|
+
size: "auto",
|
|
912
|
+
hover: "none",
|
|
913
|
+
interactive: false,
|
|
914
|
+
padding: "md"
|
|
874
915
|
}
|
|
875
|
-
|
|
916
|
+
}
|
|
917
|
+
);
|
|
918
|
+
var Card = React34.forwardRef(
|
|
919
|
+
({
|
|
920
|
+
className,
|
|
921
|
+
size,
|
|
922
|
+
hover,
|
|
923
|
+
interactive,
|
|
924
|
+
padding,
|
|
925
|
+
asButton,
|
|
926
|
+
hoverBorderClass,
|
|
927
|
+
onClick,
|
|
928
|
+
onKeyDown,
|
|
929
|
+
...props
|
|
930
|
+
}, ref) => {
|
|
931
|
+
const isInteractive = interactive || asButton || !!onClick;
|
|
932
|
+
const handleKeyDown = React34.useCallback(
|
|
933
|
+
(e) => {
|
|
934
|
+
if (isInteractive && (e.key === "Enter" || e.key === " ")) {
|
|
935
|
+
e.preventDefault();
|
|
936
|
+
onClick?.(e);
|
|
937
|
+
}
|
|
938
|
+
onKeyDown?.(e);
|
|
939
|
+
},
|
|
940
|
+
[isInteractive, onClick, onKeyDown]
|
|
941
|
+
);
|
|
942
|
+
return /* @__PURE__ */ jsx(
|
|
943
|
+
"div",
|
|
944
|
+
{
|
|
945
|
+
ref,
|
|
946
|
+
role: isInteractive ? "button" : void 0,
|
|
947
|
+
tabIndex: isInteractive ? 0 : void 0,
|
|
948
|
+
className: cn(
|
|
949
|
+
cardVariants({ size, hover, interactive: isInteractive, padding }),
|
|
950
|
+
"group relative",
|
|
951
|
+
// Custom hover border color overrides variant if provided
|
|
952
|
+
hoverBorderClass && "transition-colors duration-200",
|
|
953
|
+
hoverBorderClass,
|
|
954
|
+
className
|
|
955
|
+
),
|
|
956
|
+
onClick,
|
|
957
|
+
onKeyDown: handleKeyDown,
|
|
958
|
+
...props
|
|
959
|
+
}
|
|
960
|
+
);
|
|
961
|
+
}
|
|
876
962
|
);
|
|
877
963
|
Card.displayName = "Card";
|
|
878
|
-
var CardHeader =
|
|
964
|
+
var CardHeader = React34.forwardRef(
|
|
879
965
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
880
966
|
"div",
|
|
881
967
|
{
|
|
@@ -886,7 +972,7 @@ var CardHeader = React33.forwardRef(
|
|
|
886
972
|
)
|
|
887
973
|
);
|
|
888
974
|
CardHeader.displayName = "CardHeader";
|
|
889
|
-
var CardTitle =
|
|
975
|
+
var CardTitle = React34.forwardRef(
|
|
890
976
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
891
977
|
"div",
|
|
892
978
|
{
|
|
@@ -897,7 +983,7 @@ var CardTitle = React33.forwardRef(
|
|
|
897
983
|
)
|
|
898
984
|
);
|
|
899
985
|
CardTitle.displayName = "CardTitle";
|
|
900
|
-
var CardDescription =
|
|
986
|
+
var CardDescription = React34.forwardRef(
|
|
901
987
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
902
988
|
"div",
|
|
903
989
|
{
|
|
@@ -908,11 +994,11 @@ var CardDescription = React33.forwardRef(
|
|
|
908
994
|
)
|
|
909
995
|
);
|
|
910
996
|
CardDescription.displayName = "CardDescription";
|
|
911
|
-
var CardContent =
|
|
997
|
+
var CardContent = React34.forwardRef(
|
|
912
998
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
913
999
|
);
|
|
914
1000
|
CardContent.displayName = "CardContent";
|
|
915
|
-
var CardFooter =
|
|
1001
|
+
var CardFooter = React34.forwardRef(
|
|
916
1002
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
917
1003
|
"div",
|
|
918
1004
|
{
|
|
@@ -923,7 +1009,422 @@ var CardFooter = React33.forwardRef(
|
|
|
923
1009
|
)
|
|
924
1010
|
);
|
|
925
1011
|
CardFooter.displayName = "CardFooter";
|
|
926
|
-
var
|
|
1012
|
+
var cardImageVariants = cva("w-full object-cover", {
|
|
1013
|
+
variants: {
|
|
1014
|
+
/**
|
|
1015
|
+
* Image aspect ratio
|
|
1016
|
+
*/
|
|
1017
|
+
aspectRatio: {
|
|
1018
|
+
auto: "",
|
|
1019
|
+
square: "aspect-square",
|
|
1020
|
+
video: "aspect-video",
|
|
1021
|
+
wide: "aspect-[2/1]",
|
|
1022
|
+
portrait: "aspect-[3/4]"
|
|
1023
|
+
},
|
|
1024
|
+
/**
|
|
1025
|
+
* Image position in the card
|
|
1026
|
+
*/
|
|
1027
|
+
position: {
|
|
1028
|
+
top: "rounded-t-xl",
|
|
1029
|
+
bottom: "rounded-b-xl",
|
|
1030
|
+
fill: "rounded-xl"
|
|
1031
|
+
}
|
|
1032
|
+
},
|
|
1033
|
+
defaultVariants: {
|
|
1034
|
+
aspectRatio: "video",
|
|
1035
|
+
position: "top"
|
|
1036
|
+
}
|
|
1037
|
+
});
|
|
1038
|
+
var CardImage = React34.forwardRef(
|
|
1039
|
+
({ className, aspectRatio, position, fallback, alt, src, onError, ...props }, ref) => {
|
|
1040
|
+
const [hasError, setHasError] = React34.useState(false);
|
|
1041
|
+
const handleError = React34.useCallback(
|
|
1042
|
+
(e) => {
|
|
1043
|
+
setHasError(true);
|
|
1044
|
+
onError?.(e);
|
|
1045
|
+
},
|
|
1046
|
+
[onError]
|
|
1047
|
+
);
|
|
1048
|
+
React34.useEffect(() => {
|
|
1049
|
+
setHasError(false);
|
|
1050
|
+
}, [src]);
|
|
1051
|
+
if (hasError && fallback) {
|
|
1052
|
+
return /* @__PURE__ */ jsx(
|
|
1053
|
+
"div",
|
|
1054
|
+
{
|
|
1055
|
+
className: cn(
|
|
1056
|
+
"flex items-center justify-center bg-muted",
|
|
1057
|
+
cardImageVariants({ aspectRatio, position }),
|
|
1058
|
+
className
|
|
1059
|
+
),
|
|
1060
|
+
children: fallback
|
|
1061
|
+
}
|
|
1062
|
+
);
|
|
1063
|
+
}
|
|
1064
|
+
return /* @__PURE__ */ jsx(
|
|
1065
|
+
"img",
|
|
1066
|
+
{
|
|
1067
|
+
ref,
|
|
1068
|
+
src,
|
|
1069
|
+
alt,
|
|
1070
|
+
className: cn(cardImageVariants({ aspectRatio, position }), className),
|
|
1071
|
+
onError: handleError,
|
|
1072
|
+
...props
|
|
1073
|
+
}
|
|
1074
|
+
);
|
|
1075
|
+
}
|
|
1076
|
+
);
|
|
1077
|
+
CardImage.displayName = "CardImage";
|
|
1078
|
+
var cardActionsVariants = cva(
|
|
1079
|
+
"absolute flex items-center gap-1 transition-opacity duration-200 z-10",
|
|
1080
|
+
{
|
|
1081
|
+
variants: {
|
|
1082
|
+
/**
|
|
1083
|
+
* When to show the actions
|
|
1084
|
+
*/
|
|
1085
|
+
showOn: {
|
|
1086
|
+
hover: "opacity-0 group-hover:opacity-100",
|
|
1087
|
+
always: "opacity-100"
|
|
1088
|
+
},
|
|
1089
|
+
/**
|
|
1090
|
+
* Position of the actions overlay
|
|
1091
|
+
*/
|
|
1092
|
+
position: {
|
|
1093
|
+
"top-right": "top-2 right-2",
|
|
1094
|
+
"top-left": "top-2 left-2",
|
|
1095
|
+
"bottom-right": "bottom-2 right-2",
|
|
1096
|
+
"bottom-left": "bottom-2 left-2"
|
|
1097
|
+
},
|
|
1098
|
+
/**
|
|
1099
|
+
* Visual style of the actions container
|
|
1100
|
+
*/
|
|
1101
|
+
variant: {
|
|
1102
|
+
/** Solid background with backdrop blur */
|
|
1103
|
+
floating: "bg-background/90 backdrop-blur-sm rounded-md shadow-sm p-1",
|
|
1104
|
+
/** No background, just spacing */
|
|
1105
|
+
ghost: "p-1",
|
|
1106
|
+
/** Muted bar background */
|
|
1107
|
+
bar: "bg-muted/80 backdrop-blur-sm rounded-md p-1.5",
|
|
1108
|
+
/** No background on container, icons get background on hover */
|
|
1109
|
+
"icon-hover": "p-0 [&>button]:bg-transparent [&>button]:hover:bg-background/90 [&>button]:hover:shadow-sm [&>button]:transition-all"
|
|
1110
|
+
}
|
|
1111
|
+
},
|
|
1112
|
+
defaultVariants: {
|
|
1113
|
+
showOn: "hover",
|
|
1114
|
+
position: "top-right",
|
|
1115
|
+
variant: "floating"
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
);
|
|
1119
|
+
var CardActions = React34.forwardRef(
|
|
1120
|
+
({ className, showOn, position, variant, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1121
|
+
"div",
|
|
1122
|
+
{
|
|
1123
|
+
ref,
|
|
1124
|
+
className: cn(cardActionsVariants({ showOn, position, variant }), className),
|
|
1125
|
+
onClick: (e) => e.stopPropagation(),
|
|
1126
|
+
...props
|
|
1127
|
+
}
|
|
1128
|
+
)
|
|
1129
|
+
);
|
|
1130
|
+
CardActions.displayName = "CardActions";
|
|
1131
|
+
var SelectableCard = React34.forwardRef(
|
|
1132
|
+
({
|
|
1133
|
+
className,
|
|
1134
|
+
selected: controlledSelected,
|
|
1135
|
+
defaultSelected = false,
|
|
1136
|
+
onSelectedChange,
|
|
1137
|
+
showCheckbox = false,
|
|
1138
|
+
checkboxPosition = "top-right",
|
|
1139
|
+
disabled = false,
|
|
1140
|
+
children,
|
|
1141
|
+
onClick,
|
|
1142
|
+
hover = "border",
|
|
1143
|
+
...props
|
|
1144
|
+
}, ref) => {
|
|
1145
|
+
const [uncontrolledSelected, setUncontrolledSelected] = React34.useState(defaultSelected);
|
|
1146
|
+
const isControlled = controlledSelected !== void 0;
|
|
1147
|
+
const isSelected = isControlled ? controlledSelected : uncontrolledSelected;
|
|
1148
|
+
const handleClick = React34.useCallback(
|
|
1149
|
+
(e) => {
|
|
1150
|
+
if (disabled) return;
|
|
1151
|
+
const newSelected = !isSelected;
|
|
1152
|
+
if (!isControlled) {
|
|
1153
|
+
setUncontrolledSelected(newSelected);
|
|
1154
|
+
}
|
|
1155
|
+
onSelectedChange?.(newSelected);
|
|
1156
|
+
onClick?.(e);
|
|
1157
|
+
},
|
|
1158
|
+
[disabled, isSelected, isControlled, onSelectedChange, onClick]
|
|
1159
|
+
);
|
|
1160
|
+
const handleCheckboxChange = React34.useCallback(
|
|
1161
|
+
(checked) => {
|
|
1162
|
+
if (disabled) return;
|
|
1163
|
+
const newSelected = checked === true;
|
|
1164
|
+
if (!isControlled) {
|
|
1165
|
+
setUncontrolledSelected(newSelected);
|
|
1166
|
+
}
|
|
1167
|
+
onSelectedChange?.(newSelected);
|
|
1168
|
+
},
|
|
1169
|
+
[disabled, isControlled, onSelectedChange]
|
|
1170
|
+
);
|
|
1171
|
+
const isInline = checkboxPosition === "inline-left";
|
|
1172
|
+
return /* @__PURE__ */ jsxs(
|
|
1173
|
+
Card,
|
|
1174
|
+
{
|
|
1175
|
+
ref,
|
|
1176
|
+
className: cn(
|
|
1177
|
+
// Selection styling
|
|
1178
|
+
isSelected && "ring-2 ring-accent border-accent",
|
|
1179
|
+
disabled && "opacity-50 cursor-not-allowed",
|
|
1180
|
+
className
|
|
1181
|
+
),
|
|
1182
|
+
interactive: !disabled,
|
|
1183
|
+
hover: disabled ? "none" : hover,
|
|
1184
|
+
onClick: handleClick,
|
|
1185
|
+
"aria-selected": isSelected,
|
|
1186
|
+
"aria-disabled": disabled,
|
|
1187
|
+
...props,
|
|
1188
|
+
children: [
|
|
1189
|
+
showCheckbox && isInline && /* @__PURE__ */ jsxs(
|
|
1190
|
+
"div",
|
|
1191
|
+
{
|
|
1192
|
+
className: "flex items-center gap-3 px-4 py-3 border-b border-border/50",
|
|
1193
|
+
onClick: (e) => e.stopPropagation(),
|
|
1194
|
+
children: [
|
|
1195
|
+
/* @__PURE__ */ jsx(
|
|
1196
|
+
Checkbox,
|
|
1197
|
+
{
|
|
1198
|
+
checked: isSelected,
|
|
1199
|
+
onCheckedChange: handleCheckboxChange,
|
|
1200
|
+
disabled
|
|
1201
|
+
}
|
|
1202
|
+
),
|
|
1203
|
+
/* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: isSelected ? "Selected" : "Click to select" })
|
|
1204
|
+
]
|
|
1205
|
+
}
|
|
1206
|
+
),
|
|
1207
|
+
showCheckbox && !isInline && /* @__PURE__ */ jsx(
|
|
1208
|
+
"div",
|
|
1209
|
+
{
|
|
1210
|
+
className: cn(
|
|
1211
|
+
"absolute z-10 p-1 bg-background/90 backdrop-blur-sm rounded-md",
|
|
1212
|
+
checkboxPosition === "top-left" ? "top-2 left-2" : "top-2 right-2"
|
|
1213
|
+
),
|
|
1214
|
+
onClick: (e) => e.stopPropagation(),
|
|
1215
|
+
children: /* @__PURE__ */ jsx(
|
|
1216
|
+
Checkbox,
|
|
1217
|
+
{
|
|
1218
|
+
checked: isSelected,
|
|
1219
|
+
onCheckedChange: handleCheckboxChange,
|
|
1220
|
+
disabled
|
|
1221
|
+
}
|
|
1222
|
+
)
|
|
1223
|
+
}
|
|
1224
|
+
),
|
|
1225
|
+
children
|
|
1226
|
+
]
|
|
1227
|
+
}
|
|
1228
|
+
);
|
|
1229
|
+
}
|
|
1230
|
+
);
|
|
1231
|
+
SelectableCard.displayName = "SelectableCard";
|
|
1232
|
+
var cardGridVariants = cva("grid", {
|
|
1233
|
+
variants: {
|
|
1234
|
+
/**
|
|
1235
|
+
* Number of columns
|
|
1236
|
+
*/
|
|
1237
|
+
columns: {
|
|
1238
|
+
1: "grid-cols-1",
|
|
1239
|
+
2: "grid-cols-1 sm:grid-cols-2",
|
|
1240
|
+
3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
1241
|
+
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",
|
|
1242
|
+
auto: "grid-cols-[repeat(auto-fill,minmax(280px,1fr))]"
|
|
1243
|
+
},
|
|
1244
|
+
/**
|
|
1245
|
+
* Gap between cards
|
|
1246
|
+
*/
|
|
1247
|
+
gap: {
|
|
1248
|
+
none: "gap-0",
|
|
1249
|
+
sm: "gap-3",
|
|
1250
|
+
md: "gap-4",
|
|
1251
|
+
lg: "gap-6",
|
|
1252
|
+
xl: "gap-8"
|
|
1253
|
+
}
|
|
1254
|
+
},
|
|
1255
|
+
defaultVariants: {
|
|
1256
|
+
columns: "auto",
|
|
1257
|
+
gap: "md"
|
|
1258
|
+
}
|
|
1259
|
+
});
|
|
1260
|
+
var CardGrid = React34.forwardRef(
|
|
1261
|
+
({ className, columns, gap, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1262
|
+
"div",
|
|
1263
|
+
{
|
|
1264
|
+
ref,
|
|
1265
|
+
className: cn(cardGridVariants({ columns, gap }), className),
|
|
1266
|
+
...props
|
|
1267
|
+
}
|
|
1268
|
+
)
|
|
1269
|
+
);
|
|
1270
|
+
CardGrid.displayName = "CardGrid";
|
|
1271
|
+
var cardListVariants = cva("flex flex-col", {
|
|
1272
|
+
variants: {
|
|
1273
|
+
/**
|
|
1274
|
+
* Gap between cards
|
|
1275
|
+
*/
|
|
1276
|
+
gap: {
|
|
1277
|
+
none: "gap-0",
|
|
1278
|
+
sm: "gap-2",
|
|
1279
|
+
md: "gap-4",
|
|
1280
|
+
lg: "gap-6"
|
|
1281
|
+
},
|
|
1282
|
+
/**
|
|
1283
|
+
* Whether to show dividers between cards
|
|
1284
|
+
*/
|
|
1285
|
+
divided: {
|
|
1286
|
+
true: "[&>*:not(:last-child)]:border-b [&>*:not(:last-child)]:pb-4 [&>*:not(:last-child)]:rounded-b-none",
|
|
1287
|
+
false: ""
|
|
1288
|
+
}
|
|
1289
|
+
},
|
|
1290
|
+
defaultVariants: {
|
|
1291
|
+
gap: "md",
|
|
1292
|
+
divided: false
|
|
1293
|
+
}
|
|
1294
|
+
});
|
|
1295
|
+
var CardList = React34.forwardRef(
|
|
1296
|
+
({ className, gap, divided, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1297
|
+
"div",
|
|
1298
|
+
{
|
|
1299
|
+
ref,
|
|
1300
|
+
className: cn(cardListVariants({ gap, divided }), className),
|
|
1301
|
+
...props
|
|
1302
|
+
}
|
|
1303
|
+
)
|
|
1304
|
+
);
|
|
1305
|
+
CardList.displayName = "CardList";
|
|
1306
|
+
var boardVariants = cva("text-card-foreground", {
|
|
1307
|
+
variants: {
|
|
1308
|
+
/**
|
|
1309
|
+
* Elevation (shadow depth) - similar to MUI Paper
|
|
1310
|
+
*/
|
|
1311
|
+
elevation: {
|
|
1312
|
+
none: "",
|
|
1313
|
+
sm: "shadow-sm",
|
|
1314
|
+
md: "shadow",
|
|
1315
|
+
lg: "shadow-lg",
|
|
1316
|
+
xl: "shadow-xl"
|
|
1317
|
+
},
|
|
1318
|
+
/**
|
|
1319
|
+
* Border style
|
|
1320
|
+
*/
|
|
1321
|
+
border: {
|
|
1322
|
+
none: "",
|
|
1323
|
+
default: "border",
|
|
1324
|
+
muted: "border border-muted"
|
|
1325
|
+
},
|
|
1326
|
+
/**
|
|
1327
|
+
* Padding size
|
|
1328
|
+
*/
|
|
1329
|
+
padding: {
|
|
1330
|
+
none: "",
|
|
1331
|
+
sm: "p-2",
|
|
1332
|
+
md: "p-4",
|
|
1333
|
+
lg: "p-6",
|
|
1334
|
+
xl: "p-8"
|
|
1335
|
+
},
|
|
1336
|
+
/**
|
|
1337
|
+
* Border radius
|
|
1338
|
+
*/
|
|
1339
|
+
radius: {
|
|
1340
|
+
none: "rounded-none",
|
|
1341
|
+
sm: "rounded-sm",
|
|
1342
|
+
md: "rounded-md",
|
|
1343
|
+
lg: "rounded-lg",
|
|
1344
|
+
xl: "rounded-xl",
|
|
1345
|
+
full: "rounded-full"
|
|
1346
|
+
},
|
|
1347
|
+
/**
|
|
1348
|
+
* Background color
|
|
1349
|
+
*/
|
|
1350
|
+
background: {
|
|
1351
|
+
default: "bg-card",
|
|
1352
|
+
muted: "bg-muted",
|
|
1353
|
+
transparent: "bg-transparent"
|
|
1354
|
+
},
|
|
1355
|
+
/**
|
|
1356
|
+
* Hover effect styles
|
|
1357
|
+
*/
|
|
1358
|
+
hover: {
|
|
1359
|
+
none: "",
|
|
1360
|
+
border: "transition-colors duration-200 hover:border-accent",
|
|
1361
|
+
elevate: "transition-shadow duration-200 hover:shadow-lg",
|
|
1362
|
+
"border-success": "transition-colors duration-200 hover:border-success",
|
|
1363
|
+
"border-warning": "transition-colors duration-200 hover:border-warning",
|
|
1364
|
+
"border-destructive": "transition-colors duration-200 hover:border-destructive"
|
|
1365
|
+
}
|
|
1366
|
+
},
|
|
1367
|
+
defaultVariants: {
|
|
1368
|
+
elevation: "none",
|
|
1369
|
+
border: "default",
|
|
1370
|
+
padding: "none",
|
|
1371
|
+
radius: "lg",
|
|
1372
|
+
background: "default",
|
|
1373
|
+
hover: "none"
|
|
1374
|
+
}
|
|
1375
|
+
});
|
|
1376
|
+
var Board = React34.forwardRef(
|
|
1377
|
+
({
|
|
1378
|
+
className,
|
|
1379
|
+
elevation,
|
|
1380
|
+
border,
|
|
1381
|
+
padding,
|
|
1382
|
+
radius,
|
|
1383
|
+
background,
|
|
1384
|
+
hover,
|
|
1385
|
+
hoverBorderClass,
|
|
1386
|
+
...props
|
|
1387
|
+
}, ref) => {
|
|
1388
|
+
return /* @__PURE__ */ jsx(
|
|
1389
|
+
"div",
|
|
1390
|
+
{
|
|
1391
|
+
ref,
|
|
1392
|
+
className: cn(
|
|
1393
|
+
boardVariants({
|
|
1394
|
+
elevation,
|
|
1395
|
+
border,
|
|
1396
|
+
padding,
|
|
1397
|
+
radius,
|
|
1398
|
+
background,
|
|
1399
|
+
hover
|
|
1400
|
+
}),
|
|
1401
|
+
// Custom hover border color overrides variant if provided
|
|
1402
|
+
hoverBorderClass && "transition-colors duration-200",
|
|
1403
|
+
hoverBorderClass,
|
|
1404
|
+
className
|
|
1405
|
+
),
|
|
1406
|
+
...props
|
|
1407
|
+
}
|
|
1408
|
+
);
|
|
1409
|
+
}
|
|
1410
|
+
);
|
|
1411
|
+
Board.displayName = "Board";
|
|
1412
|
+
var BoardHeader = React34.forwardRef(
|
|
1413
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1414
|
+
"div",
|
|
1415
|
+
{
|
|
1416
|
+
ref,
|
|
1417
|
+
className: cn("flex items-center p-4 border-b", className),
|
|
1418
|
+
...props
|
|
1419
|
+
}
|
|
1420
|
+
)
|
|
1421
|
+
);
|
|
1422
|
+
BoardHeader.displayName = "BoardHeader";
|
|
1423
|
+
var BoardContent = React34.forwardRef(
|
|
1424
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-4", className), ...props })
|
|
1425
|
+
);
|
|
1426
|
+
BoardContent.displayName = "BoardContent";
|
|
1427
|
+
var Table = React34.forwardRef(
|
|
927
1428
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
|
|
928
1429
|
"table",
|
|
929
1430
|
{
|
|
@@ -934,11 +1435,11 @@ var Table = React33.forwardRef(
|
|
|
934
1435
|
) })
|
|
935
1436
|
);
|
|
936
1437
|
Table.displayName = "Table";
|
|
937
|
-
var TableHeader =
|
|
1438
|
+
var TableHeader = React34.forwardRef(
|
|
938
1439
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
939
1440
|
);
|
|
940
1441
|
TableHeader.displayName = "TableHeader";
|
|
941
|
-
var TableBody =
|
|
1442
|
+
var TableBody = React34.forwardRef(
|
|
942
1443
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
943
1444
|
"tbody",
|
|
944
1445
|
{
|
|
@@ -949,7 +1450,7 @@ var TableBody = React33.forwardRef(
|
|
|
949
1450
|
)
|
|
950
1451
|
);
|
|
951
1452
|
TableBody.displayName = "TableBody";
|
|
952
|
-
var TableFooter =
|
|
1453
|
+
var TableFooter = React34.forwardRef(
|
|
953
1454
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
954
1455
|
"tfoot",
|
|
955
1456
|
{
|
|
@@ -963,7 +1464,7 @@ var TableFooter = React33.forwardRef(
|
|
|
963
1464
|
)
|
|
964
1465
|
);
|
|
965
1466
|
TableFooter.displayName = "TableFooter";
|
|
966
|
-
var TableRow =
|
|
1467
|
+
var TableRow = React34.forwardRef(
|
|
967
1468
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
968
1469
|
"tr",
|
|
969
1470
|
{
|
|
@@ -977,7 +1478,7 @@ var TableRow = React33.forwardRef(
|
|
|
977
1478
|
)
|
|
978
1479
|
);
|
|
979
1480
|
TableRow.displayName = "TableRow";
|
|
980
|
-
var TableHead =
|
|
1481
|
+
var TableHead = React34.forwardRef(
|
|
981
1482
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
982
1483
|
"th",
|
|
983
1484
|
{
|
|
@@ -991,7 +1492,7 @@ var TableHead = React33.forwardRef(
|
|
|
991
1492
|
)
|
|
992
1493
|
);
|
|
993
1494
|
TableHead.displayName = "TableHead";
|
|
994
|
-
var TableCell =
|
|
1495
|
+
var TableCell = React34.forwardRef(
|
|
995
1496
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
996
1497
|
"td",
|
|
997
1498
|
{
|
|
@@ -1005,7 +1506,7 @@ var TableCell = React33.forwardRef(
|
|
|
1005
1506
|
)
|
|
1006
1507
|
);
|
|
1007
1508
|
TableCell.displayName = "TableCell";
|
|
1008
|
-
var TableCaption =
|
|
1509
|
+
var TableCaption = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1009
1510
|
"caption",
|
|
1010
1511
|
{
|
|
1011
1512
|
ref,
|
|
@@ -1024,7 +1525,7 @@ function Modal({
|
|
|
1024
1525
|
zIndex = 50,
|
|
1025
1526
|
className
|
|
1026
1527
|
}) {
|
|
1027
|
-
|
|
1528
|
+
React34.useEffect(() => {
|
|
1028
1529
|
if (!isOpen) return;
|
|
1029
1530
|
const handleEscape = (e) => {
|
|
1030
1531
|
if (e.key === "Escape") {
|
|
@@ -1034,7 +1535,7 @@ function Modal({
|
|
|
1034
1535
|
window.addEventListener("keydown", handleEscape);
|
|
1035
1536
|
return () => window.removeEventListener("keydown", handleEscape);
|
|
1036
1537
|
}, [isOpen, onClose]);
|
|
1037
|
-
|
|
1538
|
+
React34.useEffect(() => {
|
|
1038
1539
|
if (isOpen) {
|
|
1039
1540
|
document.body.style.overflow = "hidden";
|
|
1040
1541
|
} else {
|
|
@@ -1149,12 +1650,12 @@ function ConfirmationModal({
|
|
|
1149
1650
|
] }) });
|
|
1150
1651
|
}
|
|
1151
1652
|
function useConfirmation() {
|
|
1152
|
-
const [state, setState] =
|
|
1653
|
+
const [state, setState] = React34.useState({
|
|
1153
1654
|
open: false,
|
|
1154
1655
|
title: "",
|
|
1155
1656
|
description: ""
|
|
1156
1657
|
});
|
|
1157
|
-
const confirm =
|
|
1658
|
+
const confirm = React34.useCallback(
|
|
1158
1659
|
(options) => {
|
|
1159
1660
|
return new Promise((resolve) => {
|
|
1160
1661
|
setState({
|
|
@@ -1166,15 +1667,15 @@ function useConfirmation() {
|
|
|
1166
1667
|
},
|
|
1167
1668
|
[]
|
|
1168
1669
|
);
|
|
1169
|
-
const handleConfirm =
|
|
1670
|
+
const handleConfirm = React34.useCallback(() => {
|
|
1170
1671
|
state.resolve?.(true);
|
|
1171
1672
|
setState((prev) => ({ ...prev, open: false }));
|
|
1172
1673
|
}, [state.resolve]);
|
|
1173
|
-
const handleCancel =
|
|
1674
|
+
const handleCancel = React34.useCallback(() => {
|
|
1174
1675
|
state.resolve?.(false);
|
|
1175
1676
|
setState((prev) => ({ ...prev, open: false }));
|
|
1176
1677
|
}, [state.resolve]);
|
|
1177
|
-
const handleOpenChange =
|
|
1678
|
+
const handleOpenChange = React34.useCallback(
|
|
1178
1679
|
(open) => {
|
|
1179
1680
|
if (!open) {
|
|
1180
1681
|
state.resolve?.(false);
|
|
@@ -1210,11 +1711,11 @@ function ResizeHandle({
|
|
|
1210
1711
|
ariaLabel,
|
|
1211
1712
|
className
|
|
1212
1713
|
}) {
|
|
1213
|
-
const [isDragging, setIsDragging] =
|
|
1214
|
-
const [isFocused, setIsFocused] =
|
|
1215
|
-
const startXRef =
|
|
1216
|
-
const handleRef =
|
|
1217
|
-
const handleMouseDown =
|
|
1714
|
+
const [isDragging, setIsDragging] = React34.useState(false);
|
|
1715
|
+
const [isFocused, setIsFocused] = React34.useState(false);
|
|
1716
|
+
const startXRef = React34.useRef(0);
|
|
1717
|
+
const handleRef = React34.useRef(null);
|
|
1718
|
+
const handleMouseDown = React34.useCallback(
|
|
1218
1719
|
(e) => {
|
|
1219
1720
|
if (!resizable) return;
|
|
1220
1721
|
e.preventDefault();
|
|
@@ -1225,7 +1726,7 @@ function ResizeHandle({
|
|
|
1225
1726
|
},
|
|
1226
1727
|
[resizable, onDragStart]
|
|
1227
1728
|
);
|
|
1228
|
-
const handleMouseMove =
|
|
1729
|
+
const handleMouseMove = React34.useCallback(
|
|
1229
1730
|
(e) => {
|
|
1230
1731
|
if (!isDragging) return;
|
|
1231
1732
|
const deltaX = e.clientX - startXRef.current;
|
|
@@ -1234,13 +1735,13 @@ function ResizeHandle({
|
|
|
1234
1735
|
},
|
|
1235
1736
|
[isDragging, onDrag]
|
|
1236
1737
|
);
|
|
1237
|
-
const handleMouseUp =
|
|
1738
|
+
const handleMouseUp = React34.useCallback(() => {
|
|
1238
1739
|
if (!isDragging) return;
|
|
1239
1740
|
setIsDragging(false);
|
|
1240
1741
|
document.body.style.userSelect = "";
|
|
1241
1742
|
onDragEnd?.();
|
|
1242
1743
|
}, [isDragging, onDragEnd]);
|
|
1243
|
-
const handleKeyDown =
|
|
1744
|
+
const handleKeyDown = React34.useCallback(
|
|
1244
1745
|
(e) => {
|
|
1245
1746
|
if (!resizable || !onKeyboardResize) return;
|
|
1246
1747
|
let direction = null;
|
|
@@ -1259,7 +1760,7 @@ function ResizeHandle({
|
|
|
1259
1760
|
},
|
|
1260
1761
|
[resizable, onKeyboardResize, orientation]
|
|
1261
1762
|
);
|
|
1262
|
-
|
|
1763
|
+
React34.useEffect(() => {
|
|
1263
1764
|
if (isDragging) {
|
|
1264
1765
|
window.addEventListener("mousemove", handleMouseMove);
|
|
1265
1766
|
window.addEventListener("mouseup", handleMouseUp);
|
|
@@ -1329,12 +1830,12 @@ function ResizablePanel({
|
|
|
1329
1830
|
className,
|
|
1330
1831
|
dataAttributes = {}
|
|
1331
1832
|
}) {
|
|
1332
|
-
const panelRef =
|
|
1333
|
-
const [isDragging, setIsDragging] =
|
|
1334
|
-
const [localWidth, setLocalWidth] =
|
|
1335
|
-
const [localOuterWidth, setLocalOuterWidth] =
|
|
1833
|
+
const panelRef = React34.useRef(null);
|
|
1834
|
+
const [isDragging, setIsDragging] = React34.useState(false);
|
|
1835
|
+
const [localWidth, setLocalWidth] = React34.useState(null);
|
|
1836
|
+
const [localOuterWidth, setLocalOuterWidth] = React34.useState(null);
|
|
1336
1837
|
const currentWidthVW = isExpanded ? (isDragging && localWidth !== null ? localWidth : expandedWidthVW) || collapsedSizeVW : collapsedSizeVW;
|
|
1337
|
-
const clampWidth =
|
|
1838
|
+
const clampWidth = React34.useCallback(
|
|
1338
1839
|
(width) => {
|
|
1339
1840
|
let effectiveMinWidth = minWidthVW;
|
|
1340
1841
|
let effectiveMaxWidth = maxWidthVW;
|
|
@@ -1347,11 +1848,11 @@ function ResizablePanel({
|
|
|
1347
1848
|
},
|
|
1348
1849
|
[minWidthVW, maxWidthVW, orientation, leftWidthVW, isOverlay]
|
|
1349
1850
|
);
|
|
1350
|
-
const handleDragStart =
|
|
1851
|
+
const handleDragStart = React34.useCallback(() => {
|
|
1351
1852
|
setIsDragging(true);
|
|
1352
1853
|
setLocalWidth(currentWidthVW);
|
|
1353
1854
|
}, [currentWidthVW]);
|
|
1354
|
-
const handleDrag =
|
|
1855
|
+
const handleDrag = React34.useCallback(
|
|
1355
1856
|
(deltaX) => {
|
|
1356
1857
|
if (!isExpanded || isOverlay) return;
|
|
1357
1858
|
const viewportWidth = window.innerWidth;
|
|
@@ -1370,14 +1871,14 @@ function ResizablePanel({
|
|
|
1370
1871
|
clampWidth
|
|
1371
1872
|
]
|
|
1372
1873
|
);
|
|
1373
|
-
const handleDragEnd =
|
|
1874
|
+
const handleDragEnd = React34.useCallback(() => {
|
|
1374
1875
|
if (localWidth !== null && onResize) {
|
|
1375
1876
|
onResize(localWidth);
|
|
1376
1877
|
}
|
|
1377
1878
|
setIsDragging(false);
|
|
1378
1879
|
setLocalWidth(null);
|
|
1379
1880
|
}, [localWidth, onResize]);
|
|
1380
|
-
const handleKeyboardResize =
|
|
1881
|
+
const handleKeyboardResize = React34.useCallback(
|
|
1381
1882
|
(direction) => {
|
|
1382
1883
|
if (!isExpanded || isOverlay || !onResize) return;
|
|
1383
1884
|
const step = 1;
|
|
@@ -1386,13 +1887,13 @@ function ResizablePanel({
|
|
|
1386
1887
|
},
|
|
1387
1888
|
[isExpanded, isOverlay, onResize, currentWidthVW, clampWidth]
|
|
1388
1889
|
);
|
|
1389
|
-
const handleOverlayDragStart =
|
|
1890
|
+
const handleOverlayDragStart = React34.useCallback(() => {
|
|
1390
1891
|
if (outerWidthVW) {
|
|
1391
1892
|
setIsDragging(true);
|
|
1392
1893
|
setLocalOuterWidth(outerWidthVW);
|
|
1393
1894
|
}
|
|
1394
1895
|
}, [outerWidthVW]);
|
|
1395
|
-
const handleOverlayDrag =
|
|
1896
|
+
const handleOverlayDrag = React34.useCallback(
|
|
1396
1897
|
(deltaX) => {
|
|
1397
1898
|
if (!isOverlay) return;
|
|
1398
1899
|
const viewportWidth = window.innerWidth;
|
|
@@ -1403,14 +1904,14 @@ function ResizablePanel({
|
|
|
1403
1904
|
},
|
|
1404
1905
|
[isOverlay, localOuterWidth, outerWidthVW]
|
|
1405
1906
|
);
|
|
1406
|
-
const handleOverlayDragEnd =
|
|
1907
|
+
const handleOverlayDragEnd = React34.useCallback(() => {
|
|
1407
1908
|
if (localOuterWidth !== null && onResizeOverlay) {
|
|
1408
1909
|
onResizeOverlay(localOuterWidth);
|
|
1409
1910
|
}
|
|
1410
1911
|
setIsDragging(false);
|
|
1411
1912
|
setLocalOuterWidth(null);
|
|
1412
1913
|
}, [localOuterWidth, onResizeOverlay]);
|
|
1413
|
-
|
|
1914
|
+
React34.useEffect(() => {
|
|
1414
1915
|
if (isOverlay && panelRef.current) {
|
|
1415
1916
|
const focusableElement = panelRef.current.querySelector(
|
|
1416
1917
|
'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
|
|
@@ -1418,7 +1919,7 @@ function ResizablePanel({
|
|
|
1418
1919
|
focusableElement?.focus();
|
|
1419
1920
|
}
|
|
1420
1921
|
}, [isOverlay]);
|
|
1421
|
-
|
|
1922
|
+
React34.useEffect(() => {
|
|
1422
1923
|
if (!isOverlay) return;
|
|
1423
1924
|
const handleEscape = (e) => {
|
|
1424
1925
|
if (e.key === "Escape") {
|
|
@@ -1634,10 +2135,10 @@ var loadingSpinnerVariants = cva("rounded-full animate-spin border-current", {
|
|
|
1634
2135
|
variant: "default"
|
|
1635
2136
|
}
|
|
1636
2137
|
});
|
|
1637
|
-
var LoadingSpinner =
|
|
2138
|
+
var LoadingSpinner = React34.forwardRef(
|
|
1638
2139
|
({ className, size, variant, label, showDots = false, ...props }, ref) => {
|
|
1639
|
-
const [dots, setDots] =
|
|
1640
|
-
|
|
2140
|
+
const [dots, setDots] = React34.useState("");
|
|
2141
|
+
React34.useEffect(() => {
|
|
1641
2142
|
if (!showDots || !label) return;
|
|
1642
2143
|
const interval = setInterval(() => {
|
|
1643
2144
|
setDots((prev) => prev.length >= 3 ? "" : prev + ".");
|
|
@@ -1734,12 +2235,12 @@ function Calendar({
|
|
|
1734
2235
|
const endMonth = props.endMonth ?? props.toDate;
|
|
1735
2236
|
const fromYear = startMonth?.getFullYear();
|
|
1736
2237
|
const toYear = endMonth?.getFullYear();
|
|
1737
|
-
const years =
|
|
1738
|
-
const [internalMonth, setInternalMonth] =
|
|
2238
|
+
const years = React34.useMemo(() => getYearRange(fromYear, toYear), [fromYear, toYear]);
|
|
2239
|
+
const [internalMonth, setInternalMonth] = React34.useState(
|
|
1739
2240
|
defaultMonth ?? /* @__PURE__ */ new Date()
|
|
1740
2241
|
);
|
|
1741
2242
|
const displayedMonth = controlledMonth ?? internalMonth;
|
|
1742
|
-
const handleMonthChange =
|
|
2243
|
+
const handleMonthChange = React34.useCallback(
|
|
1743
2244
|
(newMonth) => {
|
|
1744
2245
|
if (controlledMonth === void 0) {
|
|
1745
2246
|
setInternalMonth(newMonth);
|
|
@@ -1870,8 +2371,8 @@ function DatePicker({
|
|
|
1870
2371
|
matchTriggerWidth = false,
|
|
1871
2372
|
onOpenChange
|
|
1872
2373
|
}) {
|
|
1873
|
-
const [open, setOpen] =
|
|
1874
|
-
const [internalValue, setInternalValue] =
|
|
2374
|
+
const [open, setOpen] = React34.useState(false);
|
|
2375
|
+
const [internalValue, setInternalValue] = React34.useState(
|
|
1875
2376
|
defaultValue
|
|
1876
2377
|
);
|
|
1877
2378
|
const isControlled = value !== void 0;
|
|
@@ -1973,15 +2474,15 @@ function DatePickerInput({
|
|
|
1973
2474
|
onOpenChange,
|
|
1974
2475
|
size = "default"
|
|
1975
2476
|
}) {
|
|
1976
|
-
const [open, setOpen] =
|
|
1977
|
-
const [internalValue, setInternalValue] =
|
|
2477
|
+
const [open, setOpen] = React34.useState(false);
|
|
2478
|
+
const [internalValue, setInternalValue] = React34.useState(
|
|
1978
2479
|
defaultValue
|
|
1979
2480
|
);
|
|
1980
|
-
const [inputValue, setInputValue] =
|
|
1981
|
-
const inputRef =
|
|
2481
|
+
const [inputValue, setInputValue] = React34.useState("");
|
|
2482
|
+
const inputRef = React34.useRef(null);
|
|
1982
2483
|
const isControlled = value !== void 0;
|
|
1983
2484
|
const selectedDate = isControlled ? value : internalValue;
|
|
1984
|
-
|
|
2485
|
+
React34.useEffect(() => {
|
|
1985
2486
|
if (selectedDate) {
|
|
1986
2487
|
setInputValue(format(selectedDate, dateFormat));
|
|
1987
2488
|
} else {
|
|
@@ -2142,11 +2643,11 @@ function FilterPopover({
|
|
|
2142
2643
|
onFilterChange
|
|
2143
2644
|
}) {
|
|
2144
2645
|
const filterType = column.filterType || "text";
|
|
2145
|
-
const [operator, setOperator] =
|
|
2646
|
+
const [operator, setOperator] = React34.useState(
|
|
2146
2647
|
filter?.operator || getDefaultOperator(filterType)
|
|
2147
2648
|
);
|
|
2148
|
-
const [value, setValue] =
|
|
2149
|
-
const [valueTo, setValueTo] =
|
|
2649
|
+
const [value, setValue] = React34.useState(filter?.value ?? "");
|
|
2650
|
+
const [valueTo, setValueTo] = React34.useState(filter?.valueTo ?? "");
|
|
2150
2651
|
function getDefaultOperator(type) {
|
|
2151
2652
|
switch (type) {
|
|
2152
2653
|
case "text":
|
|
@@ -2289,7 +2790,7 @@ function FilterPopover({
|
|
|
2289
2790
|
] })
|
|
2290
2791
|
] });
|
|
2291
2792
|
const renderDateFilter = () => {
|
|
2292
|
-
const dateValue =
|
|
2793
|
+
const dateValue = React34.useMemo(() => {
|
|
2293
2794
|
if (!value) return void 0;
|
|
2294
2795
|
if (value instanceof Date) return value;
|
|
2295
2796
|
if (typeof value === "string") {
|
|
@@ -2298,7 +2799,7 @@ function FilterPopover({
|
|
|
2298
2799
|
}
|
|
2299
2800
|
return void 0;
|
|
2300
2801
|
}, [value]);
|
|
2301
|
-
const dateToValue =
|
|
2802
|
+
const dateToValue = React34.useMemo(() => {
|
|
2302
2803
|
if (!valueTo) return void 0;
|
|
2303
2804
|
if (valueTo instanceof Date) return valueTo;
|
|
2304
2805
|
if (typeof valueTo === "string") {
|
|
@@ -2433,7 +2934,7 @@ function HeaderCell({
|
|
|
2433
2934
|
onResizeDoubleClick,
|
|
2434
2935
|
isResizing
|
|
2435
2936
|
}) {
|
|
2436
|
-
const [filterOpen, setFilterOpen] =
|
|
2937
|
+
const [filterOpen, setFilterOpen] = React34.useState(false);
|
|
2437
2938
|
const isSorted = sorting?.field === column.key;
|
|
2438
2939
|
const isFiltered = !!filter;
|
|
2439
2940
|
const isSortable = column.sortable && onSort;
|
|
@@ -2591,15 +3092,15 @@ function CellEditor({
|
|
|
2591
3092
|
className
|
|
2592
3093
|
}) {
|
|
2593
3094
|
const editorType = column.editorType || "text";
|
|
2594
|
-
const [internalValue, setInternalValue] =
|
|
2595
|
-
const [validationError, setValidationError] =
|
|
3095
|
+
const [internalValue, setInternalValue] = React34.useState(value);
|
|
3096
|
+
const [validationError, setValidationError] = React34.useState(
|
|
2596
3097
|
null
|
|
2597
3098
|
);
|
|
2598
|
-
const inputRef =
|
|
2599
|
-
const selectRef =
|
|
3099
|
+
const inputRef = React34.useRef(null);
|
|
3100
|
+
const selectRef = React34.useRef(null);
|
|
2600
3101
|
const currentValue = onChange ? value : internalValue;
|
|
2601
3102
|
const setValue = onChange || setInternalValue;
|
|
2602
|
-
const validate =
|
|
3103
|
+
const validate = React34.useCallback(
|
|
2603
3104
|
(val) => {
|
|
2604
3105
|
if (!column.validator) return true;
|
|
2605
3106
|
const result = column.validator(val, row);
|
|
@@ -2647,7 +3148,7 @@ function CellEditor({
|
|
|
2647
3148
|
}
|
|
2648
3149
|
handleCommit();
|
|
2649
3150
|
};
|
|
2650
|
-
|
|
3151
|
+
React34.useEffect(() => {
|
|
2651
3152
|
const timer = setTimeout(() => {
|
|
2652
3153
|
if (editorType === "select") {
|
|
2653
3154
|
selectRef.current?.focus();
|
|
@@ -2694,7 +3195,7 @@ function CellEditor({
|
|
|
2694
3195
|
}
|
|
2695
3196
|
);
|
|
2696
3197
|
const renderDateEditor = () => {
|
|
2697
|
-
const dateValue =
|
|
3198
|
+
const dateValue = React34.useMemo(() => {
|
|
2698
3199
|
if (!currentValue) return void 0;
|
|
2699
3200
|
if (currentValue instanceof Date) return currentValue;
|
|
2700
3201
|
if (typeof currentValue === "string") {
|
|
@@ -3742,15 +4243,15 @@ function DataGrid({
|
|
|
3742
4243
|
hasMore = false,
|
|
3743
4244
|
loadingMore = false
|
|
3744
4245
|
}) {
|
|
3745
|
-
const parentRef =
|
|
3746
|
-
const headerRef =
|
|
3747
|
-
const [headerHeight, setHeaderHeight] =
|
|
3748
|
-
const [hoveredCell, setHoveredCell] =
|
|
3749
|
-
const visibleColumns =
|
|
4246
|
+
const parentRef = React34.useRef(null);
|
|
4247
|
+
const headerRef = React34.useRef(null);
|
|
4248
|
+
const [headerHeight, setHeaderHeight] = React34.useState(40);
|
|
4249
|
+
const [hoveredCell, setHoveredCell] = React34.useState(null);
|
|
4250
|
+
const visibleColumns = React34.useMemo(
|
|
3750
4251
|
() => columns.filter((col) => !col.hidden),
|
|
3751
4252
|
[columns]
|
|
3752
4253
|
);
|
|
3753
|
-
const getCellValue2 =
|
|
4254
|
+
const getCellValue2 = React34.useCallback(
|
|
3754
4255
|
(row, column) => {
|
|
3755
4256
|
if (column.accessor) {
|
|
3756
4257
|
return column.accessor(row);
|
|
@@ -3779,7 +4280,7 @@ function DataGrid({
|
|
|
3779
4280
|
data,
|
|
3780
4281
|
getCellValue: getCellValue2
|
|
3781
4282
|
});
|
|
3782
|
-
const processedData =
|
|
4283
|
+
const processedData = React34.useMemo(() => {
|
|
3783
4284
|
let result = data;
|
|
3784
4285
|
if (enableInternalFiltering && !isControlled.filters && state.filters.length > 0) {
|
|
3785
4286
|
result = applyFilters(result, state.filters, visibleColumns);
|
|
@@ -3807,7 +4308,7 @@ function DataGrid({
|
|
|
3807
4308
|
onColumnResizeEnd
|
|
3808
4309
|
});
|
|
3809
4310
|
const shouldVirtualize = virtualized ?? processedData.length > 100;
|
|
3810
|
-
|
|
4311
|
+
React34.useLayoutEffect(() => {
|
|
3811
4312
|
if (headerRef.current && shouldVirtualize) {
|
|
3812
4313
|
setHeaderHeight(headerRef.current.offsetHeight);
|
|
3813
4314
|
}
|
|
@@ -3819,13 +4320,13 @@ function DataGrid({
|
|
|
3819
4320
|
overscan: DEFAULT_OVERSCAN,
|
|
3820
4321
|
enabled: shouldVirtualize
|
|
3821
4322
|
});
|
|
3822
|
-
const tableWidth =
|
|
4323
|
+
const tableWidth = React34.useMemo(() => {
|
|
3823
4324
|
return visibleColumns.reduce((acc, col) => {
|
|
3824
4325
|
const width = state.columnWidths[col.key] || col.width || estimateColumnWidth(col);
|
|
3825
4326
|
return acc + width;
|
|
3826
4327
|
}, 0);
|
|
3827
4328
|
}, [visibleColumns, state.columnWidths]);
|
|
3828
|
-
const visibleRowCount =
|
|
4329
|
+
const visibleRowCount = React34.useMemo(() => {
|
|
3829
4330
|
if (!parentRef.current) return 10;
|
|
3830
4331
|
return Math.floor(parentRef.current.clientHeight / DEFAULT_ROW_HEIGHT);
|
|
3831
4332
|
}, []);
|
|
@@ -3844,7 +4345,7 @@ function DataGrid({
|
|
|
3844
4345
|
rowVirtualizer.scrollToIndex(rowIndex, { align: "auto" });
|
|
3845
4346
|
}
|
|
3846
4347
|
});
|
|
3847
|
-
const handleBlur =
|
|
4348
|
+
const handleBlur = React34.useCallback(
|
|
3848
4349
|
(event) => {
|
|
3849
4350
|
const target = event.target;
|
|
3850
4351
|
const relatedTarget = event.relatedTarget;
|
|
@@ -3902,7 +4403,7 @@ function DataGrid({
|
|
|
3902
4403
|
},
|
|
3903
4404
|
[state.editingCell, actions]
|
|
3904
4405
|
);
|
|
3905
|
-
|
|
4406
|
+
React34.useEffect(() => {
|
|
3906
4407
|
if (!infiniteScroll || !hasMore || loadingMore || !parentRef.current) return;
|
|
3907
4408
|
const observer = new IntersectionObserver(
|
|
3908
4409
|
(entries) => {
|
|
@@ -4346,7 +4847,7 @@ function DataGrid({
|
|
|
4346
4847
|
);
|
|
4347
4848
|
}
|
|
4348
4849
|
function PaginationFooter({ pagination }) {
|
|
4349
|
-
const [goToPage, setGoToPage] =
|
|
4850
|
+
const [goToPage, setGoToPage] = React34.useState("");
|
|
4350
4851
|
const handleGoToPage = () => {
|
|
4351
4852
|
const page = parseInt(goToPage, 10);
|
|
4352
4853
|
if (!isNaN(page) && page >= 1 && page <= pagination.totalPages) {
|
|
@@ -4464,21 +4965,21 @@ function Autocomplete({
|
|
|
4464
4965
|
className,
|
|
4465
4966
|
clearable = false
|
|
4466
4967
|
}) {
|
|
4467
|
-
const [open, setOpen] =
|
|
4468
|
-
const [search, setSearch] =
|
|
4469
|
-
const inputRef =
|
|
4470
|
-
const selectedOption =
|
|
4968
|
+
const [open, setOpen] = React34.useState(false);
|
|
4969
|
+
const [search, setSearch] = React34.useState("");
|
|
4970
|
+
const inputRef = React34.useRef(null);
|
|
4971
|
+
const selectedOption = React34.useMemo(
|
|
4471
4972
|
() => options.find((opt) => opt.value === value),
|
|
4472
4973
|
[options, value]
|
|
4473
4974
|
);
|
|
4474
|
-
const filteredOptions =
|
|
4975
|
+
const filteredOptions = React34.useMemo(() => {
|
|
4475
4976
|
if (!search.trim()) return options;
|
|
4476
4977
|
const searchLower = search.toLowerCase();
|
|
4477
4978
|
return options.filter(
|
|
4478
4979
|
(opt) => opt.label.toLowerCase().includes(searchLower) || opt.description?.toLowerCase().includes(searchLower)
|
|
4479
4980
|
);
|
|
4480
4981
|
}, [options, search]);
|
|
4481
|
-
const groupedOptions =
|
|
4982
|
+
const groupedOptions = React34.useMemo(() => {
|
|
4482
4983
|
const groups = {};
|
|
4483
4984
|
const ungrouped = [];
|
|
4484
4985
|
filteredOptions.forEach((opt) => {
|
|
@@ -4492,7 +4993,7 @@ function Autocomplete({
|
|
|
4492
4993
|
return { groups, ungrouped };
|
|
4493
4994
|
}, [filteredOptions]);
|
|
4494
4995
|
const hasGroups = Object.keys(groupedOptions.groups).length > 0;
|
|
4495
|
-
const handleSelect =
|
|
4996
|
+
const handleSelect = React34.useCallback(
|
|
4496
4997
|
(optionValue) => {
|
|
4497
4998
|
onChange?.(optionValue);
|
|
4498
4999
|
setOpen(false);
|
|
@@ -4500,7 +5001,7 @@ function Autocomplete({
|
|
|
4500
5001
|
},
|
|
4501
5002
|
[onChange]
|
|
4502
5003
|
);
|
|
4503
|
-
const handleClear =
|
|
5004
|
+
const handleClear = React34.useCallback(
|
|
4504
5005
|
(e) => {
|
|
4505
5006
|
e.stopPropagation();
|
|
4506
5007
|
onChange?.(void 0);
|
|
@@ -4508,7 +5009,7 @@ function Autocomplete({
|
|
|
4508
5009
|
},
|
|
4509
5010
|
[onChange]
|
|
4510
5011
|
);
|
|
4511
|
-
|
|
5012
|
+
React34.useEffect(() => {
|
|
4512
5013
|
if (open) {
|
|
4513
5014
|
const timeout = setTimeout(() => {
|
|
4514
5015
|
inputRef.current?.focus();
|
|
@@ -4518,7 +5019,7 @@ function Autocomplete({
|
|
|
4518
5019
|
setSearch("");
|
|
4519
5020
|
}
|
|
4520
5021
|
}, [open]);
|
|
4521
|
-
const handleKeyDown =
|
|
5022
|
+
const handleKeyDown = React34.useCallback((e) => {
|
|
4522
5023
|
if (e.key === "Escape") {
|
|
4523
5024
|
setOpen(false);
|
|
4524
5025
|
}
|
|
@@ -4694,7 +5195,7 @@ var iconButtonVariants = cva(
|
|
|
4694
5195
|
}
|
|
4695
5196
|
}
|
|
4696
5197
|
);
|
|
4697
|
-
var IconButton =
|
|
5198
|
+
var IconButton = React34.forwardRef(
|
|
4698
5199
|
({ className, variant, size, isActive = false, icon, children, ...props }, ref) => {
|
|
4699
5200
|
return /* @__PURE__ */ jsx(
|
|
4700
5201
|
"button",
|
|
@@ -4718,7 +5219,7 @@ var IconButton = React33.forwardRef(
|
|
|
4718
5219
|
);
|
|
4719
5220
|
IconButton.displayName = "IconButton";
|
|
4720
5221
|
function CopyButton({ content, className, size = "md" }) {
|
|
4721
|
-
const [copied, setCopied] =
|
|
5222
|
+
const [copied, setCopied] = React34.useState(false);
|
|
4722
5223
|
const handleCopy = async () => {
|
|
4723
5224
|
try {
|
|
4724
5225
|
await navigator.clipboard.writeText(content);
|
|
@@ -5491,11 +5992,11 @@ function ThemePicker({
|
|
|
5491
5992
|
align = "end",
|
|
5492
5993
|
side = "bottom"
|
|
5493
5994
|
}) {
|
|
5494
|
-
const [open, setOpen] =
|
|
5495
|
-
const [selectedTheme, setSelectedTheme] =
|
|
5995
|
+
const [open, setOpen] = React34.useState(false);
|
|
5996
|
+
const [selectedTheme, setSelectedTheme] = React34.useState(
|
|
5496
5997
|
value || themes[0]
|
|
5497
5998
|
);
|
|
5498
|
-
|
|
5999
|
+
React34.useEffect(() => {
|
|
5499
6000
|
if (value) {
|
|
5500
6001
|
setSelectedTheme(value);
|
|
5501
6002
|
}
|
|
@@ -5605,19 +6106,19 @@ function getSafePosition(x, y, menuWidth, menuHeight) {
|
|
|
5605
6106
|
return { x: safeX, y: safeY };
|
|
5606
6107
|
}
|
|
5607
6108
|
function MenuItem({ item, onClose, depth = 0 }) {
|
|
5608
|
-
const [isSubmenuOpen, setIsSubmenuOpen] =
|
|
5609
|
-
const [submenuPosition, setSubmenuPosition] =
|
|
5610
|
-
const itemRef =
|
|
5611
|
-
const hoverTimeoutRef =
|
|
6109
|
+
const [isSubmenuOpen, setIsSubmenuOpen] = React34.useState(false);
|
|
6110
|
+
const [submenuPosition, setSubmenuPosition] = React34.useState(null);
|
|
6111
|
+
const itemRef = React34.useRef(null);
|
|
6112
|
+
const hoverTimeoutRef = React34.useRef(null);
|
|
5612
6113
|
const hasSubmenu = item.submenu && item.submenu.length > 0;
|
|
5613
|
-
|
|
6114
|
+
React34.useEffect(() => {
|
|
5614
6115
|
return () => {
|
|
5615
6116
|
if (hoverTimeoutRef.current) {
|
|
5616
6117
|
clearTimeout(hoverTimeoutRef.current);
|
|
5617
6118
|
}
|
|
5618
6119
|
};
|
|
5619
6120
|
}, []);
|
|
5620
|
-
const handleMouseEnter =
|
|
6121
|
+
const handleMouseEnter = React34.useCallback(() => {
|
|
5621
6122
|
if (hoverTimeoutRef.current) {
|
|
5622
6123
|
clearTimeout(hoverTimeoutRef.current);
|
|
5623
6124
|
}
|
|
@@ -5637,22 +6138,22 @@ function MenuItem({ item, onClose, depth = 0 }) {
|
|
|
5637
6138
|
setIsSubmenuOpen(true);
|
|
5638
6139
|
}
|
|
5639
6140
|
}, [hasSubmenu, item.submenu?.length]);
|
|
5640
|
-
const handleMouseLeave =
|
|
6141
|
+
const handleMouseLeave = React34.useCallback(() => {
|
|
5641
6142
|
hoverTimeoutRef.current = setTimeout(() => {
|
|
5642
6143
|
setIsSubmenuOpen(false);
|
|
5643
6144
|
}, 100);
|
|
5644
6145
|
}, []);
|
|
5645
|
-
const handleSubmenuMouseEnter =
|
|
6146
|
+
const handleSubmenuMouseEnter = React34.useCallback(() => {
|
|
5646
6147
|
if (hoverTimeoutRef.current) {
|
|
5647
6148
|
clearTimeout(hoverTimeoutRef.current);
|
|
5648
6149
|
}
|
|
5649
6150
|
}, []);
|
|
5650
|
-
const handleSubmenuMouseLeave =
|
|
6151
|
+
const handleSubmenuMouseLeave = React34.useCallback(() => {
|
|
5651
6152
|
hoverTimeoutRef.current = setTimeout(() => {
|
|
5652
6153
|
setIsSubmenuOpen(false);
|
|
5653
6154
|
}, 100);
|
|
5654
6155
|
}, []);
|
|
5655
|
-
const handleClick =
|
|
6156
|
+
const handleClick = React34.useCallback(() => {
|
|
5656
6157
|
if (item.disabled) return;
|
|
5657
6158
|
if (!hasSubmenu && item.action) {
|
|
5658
6159
|
item.action();
|
|
@@ -5732,12 +6233,12 @@ function ContextMenu({
|
|
|
5732
6233
|
anchorEl,
|
|
5733
6234
|
className
|
|
5734
6235
|
}) {
|
|
5735
|
-
const menuRef =
|
|
5736
|
-
const [menuPosition, setMenuPosition] =
|
|
6236
|
+
const menuRef = React34.useRef(null);
|
|
6237
|
+
const [menuPosition, setMenuPosition] = React34.useState({
|
|
5737
6238
|
x: 0,
|
|
5738
6239
|
y: 0
|
|
5739
6240
|
});
|
|
5740
|
-
|
|
6241
|
+
React34.useEffect(() => {
|
|
5741
6242
|
if (!isOpen) return;
|
|
5742
6243
|
let x = position.x;
|
|
5743
6244
|
let y = position.y;
|
|
@@ -5756,7 +6257,7 @@ function ContextMenu({
|
|
|
5756
6257
|
}
|
|
5757
6258
|
});
|
|
5758
6259
|
}, [isOpen, position, anchorEl]);
|
|
5759
|
-
|
|
6260
|
+
React34.useEffect(() => {
|
|
5760
6261
|
if (!isOpen) return;
|
|
5761
6262
|
const handleClickOutside = (e) => {
|
|
5762
6263
|
if (menuRef.current && !menuRef.current.contains(e.target)) {
|
|
@@ -5800,16 +6301,16 @@ function ContextMenu({
|
|
|
5800
6301
|
);
|
|
5801
6302
|
}
|
|
5802
6303
|
function useContextMenu() {
|
|
5803
|
-
const [isOpen, setIsOpen] =
|
|
5804
|
-
const [position, setPosition] =
|
|
5805
|
-
const [targetItem, setTargetItem] =
|
|
5806
|
-
const menuRef =
|
|
5807
|
-
const openMenu =
|
|
6304
|
+
const [isOpen, setIsOpen] = React34.useState(false);
|
|
6305
|
+
const [position, setPosition] = React34.useState({ x: 0, y: 0 });
|
|
6306
|
+
const [targetItem, setTargetItem] = React34.useState(null);
|
|
6307
|
+
const menuRef = React34.useRef(null);
|
|
6308
|
+
const openMenu = React34.useCallback((x, y, item) => {
|
|
5808
6309
|
setPosition({ x, y });
|
|
5809
6310
|
setTargetItem(item);
|
|
5810
6311
|
setIsOpen(true);
|
|
5811
6312
|
}, []);
|
|
5812
|
-
const closeMenu =
|
|
6313
|
+
const closeMenu = React34.useCallback(() => {
|
|
5813
6314
|
setIsOpen(false);
|
|
5814
6315
|
setTargetItem(null);
|
|
5815
6316
|
}, []);
|
|
@@ -5823,6 +6324,6 @@ function useContextMenu() {
|
|
|
5823
6324
|
};
|
|
5824
6325
|
}
|
|
5825
6326
|
|
|
5826
|
-
export { ALL_THEMES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Autocomplete, Badge, Button, CYBERPUNK_THEME, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CellEditor, Checkbox, Chip, ConfirmationModal, ContextMenu, CopyButton, DARK_ELEGANT_THEME, DataGrid, DatePicker, DatePickerInput, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FOREST_THEME, FUTURISTIC_THEME, FilterPopover, GREEN_THEME, HeaderCell, IconButton, Input, Label, LoadingSpinner, MINIMALIST_LIGHT_THEME, Modal, ModalButton, NATURE_THEME, OCEAN_THEME, OPTILOGIC_LEGACY_THEME, PRESET_THEMES, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, ResizablePanel, ResizeHandle, SCIFI_THEME, SUNSET_THEME, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemePicker, Toaster, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, applyFilterOperator, applyFilters, applySorting, applyTheme, areThemesEqual, badgeVariants, buttonVariants, cloneTheme, cn, exportTheme, getCellValue, getCurrentTheme, getDefaultTheme, getPresetTheme, hexToHsl, iconButtonVariants, importTheme, isPresetTheme, labelVariants, loadingSpinnerVariants, themeToHsl, useColumnResize, useColumnResizeManager, useConfirmation, useContextMenu, useDataGridState, useKeyboardNavigation, validateTheme };
|
|
6327
|
+
export { ALL_THEMES, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Autocomplete, Badge, Board, BoardContent, BoardHeader, Button, CYBERPUNK_THEME, Calendar, Card, CardActions, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardImage, CardList, CardTitle, CellEditor, Checkbox, Chip, ConfirmationModal, ContextMenu, CopyButton, DARK_ELEGANT_THEME, DataGrid, DatePicker, DatePickerInput, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FOREST_THEME, FUTURISTIC_THEME, FilterPopover, GREEN_THEME, HeaderCell, IconButton, Input, Label, LoadingSpinner, MINIMALIST_LIGHT_THEME, Modal, ModalButton, NATURE_THEME, OCEAN_THEME, OPTILOGIC_LEGACY_THEME, PRESET_THEMES, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, ResizablePanel, ResizeHandle, SCIFI_THEME, SUNSET_THEME, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableCard, Separator, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemePicker, Toaster, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipRoot, TooltipTrigger, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, applyFilterOperator, applyFilters, applySorting, applyTheme, areThemesEqual, badgeVariants, boardVariants, buttonVariants, cardActionsVariants, cardGridVariants, cardImageVariants, cardListVariants, cardVariants, cloneTheme, cn, exportTheme, getCellValue, getCurrentTheme, getDefaultTheme, getPresetTheme, hexToHsl, iconButtonVariants, importTheme, isPresetTheme, labelVariants, loadingSpinnerVariants, themeToHsl, useColumnResize, useColumnResizeManager, useConfirmation, useContextMenu, useDataGridState, useKeyboardNavigation, validateTheme };
|
|
5827
6328
|
//# sourceMappingURL=index.js.map
|
|
5828
6329
|
//# sourceMappingURL=index.js.map
|