@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.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
- import * as React33 from 'react';
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(
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 = React33.forwardRef(({ className, showBorder = true, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(
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 = React33.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, children, variant, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, children, variant, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, sideOffset = 6, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, inset, destructive, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
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 = React33.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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 Card = React33.forwardRef(
865
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
866
- "div",
867
- {
868
- ref,
869
- className: cn(
870
- "rounded-xl border bg-card text-card-foreground shadow",
871
- className
872
- ),
873
- ...props
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 Table = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(
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 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
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
- React33.useEffect(() => {
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
- React33.useEffect(() => {
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] = React33.useState({
1653
+ const [state, setState] = React34.useState({
1153
1654
  open: false,
1154
1655
  title: "",
1155
1656
  description: ""
1156
1657
  });
1157
- const confirm = React33.useCallback(
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 = React33.useCallback(() => {
1670
+ const handleConfirm = React34.useCallback(() => {
1170
1671
  state.resolve?.(true);
1171
1672
  setState((prev) => ({ ...prev, open: false }));
1172
1673
  }, [state.resolve]);
1173
- const handleCancel = React33.useCallback(() => {
1674
+ const handleCancel = React34.useCallback(() => {
1174
1675
  state.resolve?.(false);
1175
1676
  setState((prev) => ({ ...prev, open: false }));
1176
1677
  }, [state.resolve]);
1177
- const handleOpenChange = React33.useCallback(
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] = React33.useState(false);
1214
- const [isFocused, setIsFocused] = React33.useState(false);
1215
- const startXRef = React33.useRef(0);
1216
- const handleRef = React33.useRef(null);
1217
- const handleMouseDown = React33.useCallback(
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 = React33.useCallback(
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 = React33.useCallback(() => {
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 = React33.useCallback(
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
- React33.useEffect(() => {
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 = React33.useRef(null);
1333
- const [isDragging, setIsDragging] = React33.useState(false);
1334
- const [localWidth, setLocalWidth] = React33.useState(null);
1335
- const [localOuterWidth, setLocalOuterWidth] = React33.useState(null);
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 = React33.useCallback(
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 = React33.useCallback(() => {
1851
+ const handleDragStart = React34.useCallback(() => {
1351
1852
  setIsDragging(true);
1352
1853
  setLocalWidth(currentWidthVW);
1353
1854
  }, [currentWidthVW]);
1354
- const handleDrag = React33.useCallback(
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 = React33.useCallback(() => {
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 = React33.useCallback(
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 = React33.useCallback(() => {
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 = React33.useCallback(
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 = React33.useCallback(() => {
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
- React33.useEffect(() => {
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
- React33.useEffect(() => {
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 = React33.forwardRef(
2138
+ var LoadingSpinner = React34.forwardRef(
1638
2139
  ({ className, size, variant, label, showDots = false, ...props }, ref) => {
1639
- const [dots, setDots] = React33.useState("");
1640
- React33.useEffect(() => {
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 = React33.useMemo(() => getYearRange(fromYear, toYear), [fromYear, toYear]);
1738
- const [internalMonth, setInternalMonth] = React33.useState(
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 = React33.useCallback(
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] = React33.useState(false);
1874
- const [internalValue, setInternalValue] = React33.useState(
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] = React33.useState(false);
1977
- const [internalValue, setInternalValue] = React33.useState(
2477
+ const [open, setOpen] = React34.useState(false);
2478
+ const [internalValue, setInternalValue] = React34.useState(
1978
2479
  defaultValue
1979
2480
  );
1980
- const [inputValue, setInputValue] = React33.useState("");
1981
- const inputRef = React33.useRef(null);
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
- React33.useEffect(() => {
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] = React33.useState(
2646
+ const [operator, setOperator] = React34.useState(
2146
2647
  filter?.operator || getDefaultOperator(filterType)
2147
2648
  );
2148
- const [value, setValue] = React33.useState(filter?.value ?? "");
2149
- const [valueTo, setValueTo] = React33.useState(filter?.valueTo ?? "");
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 = React33.useMemo(() => {
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 = React33.useMemo(() => {
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] = React33.useState(false);
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] = React33.useState(value);
2595
- const [validationError, setValidationError] = React33.useState(
3095
+ const [internalValue, setInternalValue] = React34.useState(value);
3096
+ const [validationError, setValidationError] = React34.useState(
2596
3097
  null
2597
3098
  );
2598
- const inputRef = React33.useRef(null);
2599
- const selectRef = React33.useRef(null);
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 = React33.useCallback(
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
- React33.useEffect(() => {
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 = React33.useMemo(() => {
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 = React33.useRef(null);
3746
- const headerRef = React33.useRef(null);
3747
- const [headerHeight, setHeaderHeight] = React33.useState(40);
3748
- const [hoveredCell, setHoveredCell] = React33.useState(null);
3749
- const visibleColumns = React33.useMemo(
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 = React33.useCallback(
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 = React33.useMemo(() => {
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
- React33.useLayoutEffect(() => {
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 = React33.useMemo(() => {
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 = React33.useMemo(() => {
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 = React33.useCallback(
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
- React33.useEffect(() => {
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] = React33.useState("");
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] = React33.useState(false);
4468
- const [search, setSearch] = React33.useState("");
4469
- const inputRef = React33.useRef(null);
4470
- const selectedOption = React33.useMemo(
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 = React33.useMemo(() => {
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 = React33.useMemo(() => {
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 = React33.useCallback(
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 = React33.useCallback(
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
- React33.useEffect(() => {
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 = React33.useCallback((e) => {
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 = React33.forwardRef(
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] = React33.useState(false);
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] = React33.useState(false);
5495
- const [selectedTheme, setSelectedTheme] = React33.useState(
5995
+ const [open, setOpen] = React34.useState(false);
5996
+ const [selectedTheme, setSelectedTheme] = React34.useState(
5496
5997
  value || themes[0]
5497
5998
  );
5498
- React33.useEffect(() => {
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] = React33.useState(false);
5609
- const [submenuPosition, setSubmenuPosition] = React33.useState(null);
5610
- const itemRef = React33.useRef(null);
5611
- const hoverTimeoutRef = React33.useRef(null);
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
- React33.useEffect(() => {
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 = React33.useCallback(() => {
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 = React33.useCallback(() => {
6141
+ const handleMouseLeave = React34.useCallback(() => {
5641
6142
  hoverTimeoutRef.current = setTimeout(() => {
5642
6143
  setIsSubmenuOpen(false);
5643
6144
  }, 100);
5644
6145
  }, []);
5645
- const handleSubmenuMouseEnter = React33.useCallback(() => {
6146
+ const handleSubmenuMouseEnter = React34.useCallback(() => {
5646
6147
  if (hoverTimeoutRef.current) {
5647
6148
  clearTimeout(hoverTimeoutRef.current);
5648
6149
  }
5649
6150
  }, []);
5650
- const handleSubmenuMouseLeave = React33.useCallback(() => {
6151
+ const handleSubmenuMouseLeave = React34.useCallback(() => {
5651
6152
  hoverTimeoutRef.current = setTimeout(() => {
5652
6153
  setIsSubmenuOpen(false);
5653
6154
  }, 100);
5654
6155
  }, []);
5655
- const handleClick = React33.useCallback(() => {
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 = React33.useRef(null);
5736
- const [menuPosition, setMenuPosition] = React33.useState({
6236
+ const menuRef = React34.useRef(null);
6237
+ const [menuPosition, setMenuPosition] = React34.useState({
5737
6238
  x: 0,
5738
6239
  y: 0
5739
6240
  });
5740
- React33.useEffect(() => {
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
- React33.useEffect(() => {
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] = React33.useState(false);
5804
- const [position, setPosition] = React33.useState({ x: 0, y: 0 });
5805
- const [targetItem, setTargetItem] = React33.useState(null);
5806
- const menuRef = React33.useRef(null);
5807
- const openMenu = React33.useCallback((x, y, item) => {
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 = React33.useCallback(() => {
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