@otfdashkit/ui 0.1.2 → 0.1.3

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.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import { clsx } from 'clsx';
2
2
  import { twMerge } from 'tailwind-merge';
3
- import * as React131 from 'react';
4
- import React131__default, { createContext, useState, useCallback, useMemo, useId, useRef, useEffect, useContext } from 'react';
3
+ import * as React136 from 'react';
4
+ import React136__default, { createContext, useState, useCallback, useMemo, useId, useRef, useEffect, useContext } from 'react';
5
5
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
6
- import { ChevronDown, ArrowLeft, ArrowRight, Check, Copy, X, Search, GripVertical, Circle, ChevronRight, Minus, Star, ChevronUp, Pipette, EyeOff, Eye, Menu, ChevronLeft, Play, Pause, VolumeX, Volume1, Volume2, Layers, Minimize, Maximize, Heading1, Heading2, Heading3, Bold, Italic, Underline, Code, List, ListOrdered, Quote, Code2, Undo2, Redo2, Link, Table as Table$2, Plus, ArrowUpToLine, ArrowDownToLine, ArrowLeftToLine, ArrowRightToLine, Trash2, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, MoreHorizontal, Loader2Icon, ArrowUp, ArrowDown, ArrowUpDown, Loader2, TrendingUp, TrendingDown, Send, Pencil, Sun, Moon, Monitor, Palette, LayoutDashboard, FolderOpen, Users, Settings, Bell, BarChart2, CreditCard, HelpCircle, Calendar as Calendar$1, User, LogOut, Upload, ChevronsUpDown, Info, XCircle, AlertTriangle, CheckCircle2, FileText, Archive, Film, FileCode, Image, File, Download, CheckCircle } from 'lucide-react';
6
+ import { ChevronDown, ArrowLeft, ArrowRight, Minus, Plus, X, Check, Copy, Search, GripVertical, Circle, ChevronRight, ShoppingCart, Star, ChevronUp, Pipette, EyeOff, Eye, Menu, ChevronLeft, Play, Pause, VolumeX, Volume1, Volume2, Layers, Minimize, Maximize, Heading1, Heading2, Heading3, Bold, Italic, Underline, Code, List, ListOrdered, Quote, Code2, Undo2, Redo2, Link, Table as Table$2, ArrowUpToLine, ArrowDownToLine, ArrowLeftToLine, ArrowRightToLine, Trash2, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, MoreHorizontal, Loader2Icon, ArrowUp, ArrowDown, ArrowUpDown, Loader2, TrendingUp, TrendingDown, Send, Pencil, Sun, Moon, Monitor, Palette, LayoutDashboard, FolderOpen, Users, Settings, Bell, BarChart2, CreditCard, HelpCircle, Calendar as Calendar$1, User, LogOut, Upload, ChevronsUpDown, Info, XCircle, AlertTriangle, CheckCircle2, FileText, Archive, Film, FileCode, Image, File, Download, CheckCircle } from 'lucide-react';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
9
9
  import { Slot } from '@radix-ui/react-slot';
@@ -71,7 +71,7 @@ function cn(...inputs) {
71
71
  return twMerge(clsx(inputs));
72
72
  }
73
73
  var Accordion = AccordionPrimitive.Root;
74
- var AccordionItem = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
74
+ var AccordionItem = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
75
75
  AccordionPrimitive.Item,
76
76
  {
77
77
  ref,
@@ -80,7 +80,7 @@ var AccordionItem = React131.forwardRef(({ className, ...props }, ref) => /* @__
80
80
  }
81
81
  ));
82
82
  AccordionItem.displayName = "AccordionItem";
83
- var AccordionTrigger = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
83
+ var AccordionTrigger = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
84
84
  AccordionPrimitive.Trigger,
85
85
  {
86
86
  ref,
@@ -96,7 +96,7 @@ var AccordionTrigger = React131.forwardRef(({ className, children, ...props }, r
96
96
  }
97
97
  ) }));
98
98
  AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
99
- var AccordionContent = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
99
+ var AccordionContent = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
100
100
  AccordionPrimitive.Content,
101
101
  {
102
102
  ref,
@@ -128,7 +128,7 @@ var buttonVariants = cva(
128
128
  defaultVariants: { variant: "default", size: "default" }
129
129
  }
130
130
  );
131
- var Button = React131__default.forwardRef(
131
+ var Button = React136__default.forwardRef(
132
132
  ({ className, variant, size, asChild = false, ...props }, ref) => {
133
133
  const Comp = asChild ? Slot : "button";
134
134
  return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size }), className), ref, ...props });
@@ -138,7 +138,7 @@ Button.displayName = "Button";
138
138
  var AlertDialog = AlertDialogPrimitive.Root;
139
139
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
140
140
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
141
- var AlertDialogOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
141
+ var AlertDialogOverlay = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
142
142
  AlertDialogPrimitive.Overlay,
143
143
  {
144
144
  className: cn(
@@ -150,7 +150,7 @@ var AlertDialogOverlay = React131.forwardRef(({ className, ...props }, ref) => /
150
150
  }
151
151
  ));
152
152
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
153
- var AlertDialogContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
153
+ var AlertDialogContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
154
154
  /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
155
155
  /* @__PURE__ */ jsx(
156
156
  AlertDialogPrimitive.Content,
@@ -193,7 +193,7 @@ var AlertDialogFooter = ({
193
193
  }
194
194
  );
195
195
  AlertDialogFooter.displayName = "AlertDialogFooter";
196
- var AlertDialogTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
196
+ var AlertDialogTitle = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
197
197
  AlertDialogPrimitive.Title,
198
198
  {
199
199
  ref,
@@ -202,7 +202,7 @@ var AlertDialogTitle = React131.forwardRef(({ className, ...props }, ref) => /*
202
202
  }
203
203
  ));
204
204
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
205
- var AlertDialogDescription = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
205
+ var AlertDialogDescription = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
206
206
  AlertDialogPrimitive.Description,
207
207
  {
208
208
  ref,
@@ -211,7 +211,7 @@ var AlertDialogDescription = React131.forwardRef(({ className, ...props }, ref)
211
211
  }
212
212
  ));
213
213
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
214
- var AlertDialogAction = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
214
+ var AlertDialogAction = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
215
215
  AlertDialogPrimitive.Action,
216
216
  {
217
217
  ref,
@@ -220,7 +220,7 @@ var AlertDialogAction = React131.forwardRef(({ className, ...props }, ref) => /*
220
220
  }
221
221
  ));
222
222
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
223
- var AlertDialogCancel = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
223
+ var AlertDialogCancel = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
224
224
  AlertDialogPrimitive.Cancel,
225
225
  {
226
226
  ref,
@@ -247,7 +247,7 @@ var alertVariants = cva(
247
247
  }
248
248
  }
249
249
  );
250
- var Alert = React131.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
250
+ var Alert = React136.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
251
251
  "div",
252
252
  {
253
253
  ref,
@@ -257,7 +257,7 @@ var Alert = React131.forwardRef(({ className, variant, ...props }, ref) => /* @_
257
257
  }
258
258
  ));
259
259
  Alert.displayName = "Alert";
260
- var AlertTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
260
+ var AlertTitle = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
261
261
  "h5",
262
262
  {
263
263
  ref,
@@ -266,7 +266,7 @@ var AlertTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PUR
266
266
  }
267
267
  ));
268
268
  AlertTitle.displayName = "AlertTitle";
269
- var AlertDescription = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
269
+ var AlertDescription = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
270
270
  "div",
271
271
  {
272
272
  ref,
@@ -276,7 +276,7 @@ var AlertDescription = React131.forwardRef(({ className, ...props }, ref) => /*
276
276
  ));
277
277
  AlertDescription.displayName = "AlertDescription";
278
278
  var AspectRatio = AspectRatioPrimitive.Root;
279
- var Avatar = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
279
+ var Avatar = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
280
280
  AvatarPrimitive.Root,
281
281
  {
282
282
  ref,
@@ -285,9 +285,9 @@ var Avatar = React131__default.forwardRef(({ className, ...props }, ref) => /* @
285
285
  }
286
286
  ));
287
287
  Avatar.displayName = AvatarPrimitive.Root.displayName;
288
- var AvatarImage = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
288
+ var AvatarImage = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
289
289
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
290
- var AvatarFallback = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
290
+ var AvatarFallback = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
291
291
  AvatarPrimitive.Fallback,
292
292
  {
293
293
  ref,
@@ -296,15 +296,15 @@ var AvatarFallback = React131__default.forwardRef(({ className, ...props }, ref)
296
296
  }
297
297
  ));
298
298
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
299
- var AvatarGroup = React131__default.forwardRef(
299
+ var AvatarGroup = React136__default.forwardRef(
300
300
  ({ className, max = 4, size = 32, spacing, renderOverflow, children, ...props }, ref) => {
301
- const items = React131__default.Children.toArray(children).filter(React131__default.isValidElement);
301
+ const items = React136__default.Children.toArray(children).filter(React136__default.isValidElement);
302
302
  const overlap = spacing ?? Math.round(size / 3);
303
303
  const visible = items.slice(0, max);
304
304
  const remaining = Math.max(0, items.length - max);
305
305
  return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex items-center", className), "data-slot": "avatar-group", ...props, children: [
306
306
  visible.map(
307
- (child, i) => React131__default.cloneElement(child, {
307
+ (child, i) => React136__default.cloneElement(child, {
308
308
  key: child.key ?? i,
309
309
  style: {
310
310
  width: size,
@@ -510,8 +510,8 @@ function CalendarDayButton({
510
510
  ...props
511
511
  }) {
512
512
  const defaultClassNames = getDefaultClassNames();
513
- const ref = React131.useRef(null);
514
- React131.useEffect(() => {
513
+ const ref = React136.useRef(null);
514
+ React136.useEffect(() => {
515
515
  if (modifiers.focused) ref.current?.focus();
516
516
  }, [modifiers.focused]);
517
517
  return /* @__PURE__ */ jsx(
@@ -534,7 +534,7 @@ function CalendarDayButton({
534
534
  }
535
535
  );
536
536
  }
537
- var Card = React131__default.forwardRef(
537
+ var Card = React136__default.forwardRef(
538
538
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
539
539
  "div",
540
540
  {
@@ -545,35 +545,35 @@ var Card = React131__default.forwardRef(
545
545
  )
546
546
  );
547
547
  Card.displayName = "Card";
548
- var CardHeader = React131__default.forwardRef(
548
+ var CardHeader = React136__default.forwardRef(
549
549
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
550
550
  );
551
551
  CardHeader.displayName = "CardHeader";
552
- var CardTitle = React131__default.forwardRef(
552
+ var CardTitle = React136__default.forwardRef(
553
553
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
554
554
  );
555
555
  CardTitle.displayName = "CardTitle";
556
- var CardDescription = React131__default.forwardRef(
556
+ var CardDescription = React136__default.forwardRef(
557
557
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
558
558
  );
559
559
  CardDescription.displayName = "CardDescription";
560
- var CardContent = React131__default.forwardRef(
560
+ var CardContent = React136__default.forwardRef(
561
561
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
562
562
  );
563
563
  CardContent.displayName = "CardContent";
564
- var CardFooter = React131__default.forwardRef(
564
+ var CardFooter = React136__default.forwardRef(
565
565
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
566
566
  );
567
567
  CardFooter.displayName = "CardFooter";
568
- var CarouselContext = React131.createContext(null);
568
+ var CarouselContext = React136.createContext(null);
569
569
  function useCarousel() {
570
- const context = React131.useContext(CarouselContext);
570
+ const context = React136.useContext(CarouselContext);
571
571
  if (!context) {
572
572
  throw new Error("useCarousel must be used within a <Carousel />");
573
573
  }
574
574
  return context;
575
575
  }
576
- var Carousel = React131.forwardRef(
576
+ var Carousel = React136.forwardRef(
577
577
  ({
578
578
  orientation = "horizontal",
579
579
  opts,
@@ -590,22 +590,22 @@ var Carousel = React131.forwardRef(
590
590
  },
591
591
  plugins
592
592
  );
593
- const [canScrollPrev, setCanScrollPrev] = React131.useState(false);
594
- const [canScrollNext, setCanScrollNext] = React131.useState(false);
595
- const onSelect = React131.useCallback((api2) => {
593
+ const [canScrollPrev, setCanScrollPrev] = React136.useState(false);
594
+ const [canScrollNext, setCanScrollNext] = React136.useState(false);
595
+ const onSelect = React136.useCallback((api2) => {
596
596
  if (!api2) {
597
597
  return;
598
598
  }
599
599
  setCanScrollPrev(api2.canScrollPrev());
600
600
  setCanScrollNext(api2.canScrollNext());
601
601
  }, []);
602
- const scrollPrev = React131.useCallback(() => {
602
+ const scrollPrev = React136.useCallback(() => {
603
603
  api?.scrollPrev();
604
604
  }, [api]);
605
- const scrollNext = React131.useCallback(() => {
605
+ const scrollNext = React136.useCallback(() => {
606
606
  api?.scrollNext();
607
607
  }, [api]);
608
- const handleKeyDown = React131.useCallback(
608
+ const handleKeyDown = React136.useCallback(
609
609
  (event) => {
610
610
  if (event.key === "ArrowLeft") {
611
611
  event.preventDefault();
@@ -617,13 +617,13 @@ var Carousel = React131.forwardRef(
617
617
  },
618
618
  [scrollPrev, scrollNext]
619
619
  );
620
- React131.useEffect(() => {
620
+ React136.useEffect(() => {
621
621
  if (!api || !setApi) {
622
622
  return;
623
623
  }
624
624
  setApi(api);
625
625
  }, [api, setApi]);
626
- React131.useEffect(() => {
626
+ React136.useEffect(() => {
627
627
  if (!api) {
628
628
  return;
629
629
  }
@@ -664,7 +664,7 @@ var Carousel = React131.forwardRef(
664
664
  }
665
665
  );
666
666
  Carousel.displayName = "Carousel";
667
- var CarouselContent = React131.forwardRef(({ className, ...props }, ref) => {
667
+ var CarouselContent = React136.forwardRef(({ className, ...props }, ref) => {
668
668
  const { carouselRef, orientation } = useCarousel();
669
669
  return /* @__PURE__ */ jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
670
670
  "div",
@@ -680,7 +680,7 @@ var CarouselContent = React131.forwardRef(({ className, ...props }, ref) => {
680
680
  ) });
681
681
  });
682
682
  CarouselContent.displayName = "CarouselContent";
683
- var CarouselItem = React131.forwardRef(({ className, ...props }, ref) => {
683
+ var CarouselItem = React136.forwardRef(({ className, ...props }, ref) => {
684
684
  const { orientation } = useCarousel();
685
685
  return /* @__PURE__ */ jsx(
686
686
  "div",
@@ -698,7 +698,7 @@ var CarouselItem = React131.forwardRef(({ className, ...props }, ref) => {
698
698
  );
699
699
  });
700
700
  CarouselItem.displayName = "CarouselItem";
701
- var CarouselPrevious = React131.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
701
+ var CarouselPrevious = React136.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
702
702
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
703
703
  return /* @__PURE__ */ jsxs(
704
704
  Button,
@@ -722,7 +722,7 @@ var CarouselPrevious = React131.forwardRef(({ className, variant = "outline", si
722
722
  );
723
723
  });
724
724
  CarouselPrevious.displayName = "CarouselPrevious";
725
- var CarouselNext = React131.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
725
+ var CarouselNext = React136.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
726
726
  const { orientation, scrollNext, canScrollNext } = useCarousel();
727
727
  return /* @__PURE__ */ jsxs(
728
728
  Button,
@@ -746,17 +746,173 @@ var CarouselNext = React131.forwardRef(({ className, variant = "outline", size =
746
746
  );
747
747
  });
748
748
  CarouselNext.displayName = "CarouselNext";
749
+ var SIZE = {
750
+ sm: { price: "text-sm", compare: "text-xs" },
751
+ md: { price: "text-lg", compare: "text-sm" },
752
+ lg: { price: "text-2xl", compare: "text-base" }
753
+ };
754
+ function formatMoney(minor, currency, locale) {
755
+ return new Intl.NumberFormat(locale, { style: "currency", currency }).format(minor / 100);
756
+ }
757
+ var PriceTag = React136__default.forwardRef(
758
+ ({ amount, compareAt, currency = "USD", locale = "en-US", size = "md", showDiscount = true, className, ...props }, ref) => {
759
+ const onSale = compareAt !== void 0 && compareAt > amount;
760
+ const pct = onSale ? Math.round((1 - amount / compareAt) * 100) : 0;
761
+ const s = SIZE[size];
762
+ return /* @__PURE__ */ jsxs("span", { ref, className: cn("inline-flex items-baseline gap-2 font-sans tabular-nums", className), ...props, children: [
763
+ /* @__PURE__ */ jsx("span", { className: cn("font-semibold tracking-tight text-foreground", s.price), children: formatMoney(amount, currency, locale) }),
764
+ onSale && /* @__PURE__ */ jsxs(Fragment, { children: [
765
+ /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground line-through", s.compare), children: formatMoney(compareAt, currency, locale) }),
766
+ showDiscount && /* @__PURE__ */ jsxs("span", { className: "rounded-full bg-destructive/10 px-2 py-0.5 text-xs font-semibold text-destructive", children: [
767
+ "\u2212",
768
+ pct,
769
+ "%"
770
+ ] })
771
+ ] })
772
+ ] });
773
+ }
774
+ );
775
+ PriceTag.displayName = "PriceTag";
776
+ var QuantityStepper = React136__default.forwardRef(
777
+ ({
778
+ value: valueProp,
779
+ defaultValue = 1,
780
+ onValueChange,
781
+ min = 1,
782
+ max = 99,
783
+ step = 1,
784
+ size = "md",
785
+ disabled = false,
786
+ className,
787
+ "aria-label": ariaLabel = "Quantity",
788
+ ...props
789
+ }, ref) => {
790
+ const isControlled = valueProp !== void 0;
791
+ const [internal, setInternal] = React136__default.useState(defaultValue);
792
+ const value = isControlled ? valueProp : internal;
793
+ const commit = (next) => {
794
+ const clamped = Math.max(min, Math.min(max, next));
795
+ if (!isControlled) setInternal(clamped);
796
+ onValueChange?.(clamped);
797
+ };
798
+ const dim = size === "sm" ? "h-7 w-7" : "h-9 w-9";
799
+ return /* @__PURE__ */ jsxs(
800
+ "div",
801
+ {
802
+ ref,
803
+ role: "group",
804
+ "aria-label": ariaLabel,
805
+ className: cn("inline-flex items-center rounded-md border border-input", className),
806
+ ...props,
807
+ children: [
808
+ /* @__PURE__ */ jsx(
809
+ Button,
810
+ {
811
+ type: "button",
812
+ variant: "ghost",
813
+ size: "icon",
814
+ className: cn("rounded-r-none", dim),
815
+ disabled: disabled || value <= min,
816
+ onClick: () => commit(value - step),
817
+ "aria-label": "Decrease quantity",
818
+ children: /* @__PURE__ */ jsx(Minus, { className: "h-4 w-4" })
819
+ }
820
+ ),
821
+ /* @__PURE__ */ jsx(
822
+ "span",
823
+ {
824
+ "aria-live": "polite",
825
+ className: cn("select-none text-center text-sm font-medium tabular-nums", size === "sm" ? "min-w-7" : "min-w-8"),
826
+ children: value
827
+ }
828
+ ),
829
+ /* @__PURE__ */ jsx(
830
+ Button,
831
+ {
832
+ type: "button",
833
+ variant: "ghost",
834
+ size: "icon",
835
+ className: cn("rounded-l-none", dim),
836
+ disabled: disabled || value >= max,
837
+ onClick: () => commit(value + step),
838
+ "aria-label": "Increase quantity",
839
+ children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
840
+ }
841
+ )
842
+ ]
843
+ }
844
+ );
845
+ }
846
+ );
847
+ QuantityStepper.displayName = "QuantityStepper";
848
+ var CartLineItem = React136__default.forwardRef(
849
+ ({
850
+ image,
851
+ title,
852
+ variant,
853
+ price,
854
+ compareAt,
855
+ currency = "USD",
856
+ quantity,
857
+ onQuantityChange,
858
+ onRemove,
859
+ minQuantity = 1,
860
+ maxQuantity = 99,
861
+ className,
862
+ ...props
863
+ }, ref) => {
864
+ return /* @__PURE__ */ jsxs(
865
+ "div",
866
+ {
867
+ ref,
868
+ className: cn("flex items-center gap-4 rounded-lg border border-border bg-card p-3", className),
869
+ ...props,
870
+ children: [
871
+ image && /* @__PURE__ */ jsx("img", { src: image, alt: "", className: "h-16 w-16 flex-none rounded-md object-cover" }),
872
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
873
+ /* @__PURE__ */ jsx("span", { className: "truncate font-medium text-card-foreground", children: title }),
874
+ variant && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-muted-foreground", children: variant }),
875
+ /* @__PURE__ */ jsx(PriceTag, { amount: price, compareAt, currency, size: "sm" })
876
+ ] }),
877
+ /* @__PURE__ */ jsx(
878
+ QuantityStepper,
879
+ {
880
+ value: quantity,
881
+ min: minQuantity,
882
+ max: maxQuantity,
883
+ onValueChange: onQuantityChange,
884
+ size: "sm"
885
+ }
886
+ ),
887
+ onRemove && /* @__PURE__ */ jsx(
888
+ Button,
889
+ {
890
+ type: "button",
891
+ variant: "ghost",
892
+ size: "icon",
893
+ className: "h-8 w-8 text-muted-foreground hover:text-destructive",
894
+ onClick: onRemove,
895
+ "aria-label": `Remove ${title}`,
896
+ children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
897
+ }
898
+ )
899
+ ]
900
+ }
901
+ );
902
+ }
903
+ );
904
+ CartLineItem.displayName = "CartLineItem";
749
905
  var THEMES = { light: "", dark: ".dark" };
750
- var ChartContext = React131.createContext(null);
906
+ var ChartContext = React136.createContext(null);
751
907
  function useChart() {
752
- const context = React131.useContext(ChartContext);
908
+ const context = React136.useContext(ChartContext);
753
909
  if (!context) {
754
910
  throw new Error("useChart must be used within a <ChartContainer />");
755
911
  }
756
912
  return context;
757
913
  }
758
- var ChartContainer = React131.forwardRef(({ id, className, children, config, ...props }, ref) => {
759
- const uniqueId = React131.useId();
914
+ var ChartContainer = React136.forwardRef(({ id, className, children, config, ...props }, ref) => {
915
+ const uniqueId = React136.useId();
760
916
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
761
917
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
762
918
  "div",
@@ -802,7 +958,7 @@ ${colorConfig.map(([key, itemConfig]) => {
802
958
  );
803
959
  };
804
960
  var ChartTooltip = RechartsPrimitive.Tooltip;
805
- var ChartTooltipContent = React131.forwardRef(
961
+ var ChartTooltipContent = React136.forwardRef(
806
962
  ({
807
963
  active,
808
964
  payload,
@@ -819,7 +975,7 @@ var ChartTooltipContent = React131.forwardRef(
819
975
  labelKey
820
976
  }, ref) => {
821
977
  const { config } = useChart();
822
- const tooltipLabel = React131.useMemo(() => {
978
+ const tooltipLabel = React136.useMemo(() => {
823
979
  if (hideLabel || !payload?.length) {
824
980
  return null;
825
981
  }
@@ -915,7 +1071,7 @@ var ChartTooltipContent = React131.forwardRef(
915
1071
  );
916
1072
  ChartTooltipContent.displayName = "ChartTooltip";
917
1073
  var ChartLegend = RechartsPrimitive.Legend;
918
- var ChartLegendContent = React131.forwardRef(
1074
+ var ChartLegendContent = React136.forwardRef(
919
1075
  ({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
920
1076
  const { config } = useChart();
921
1077
  if (!payload?.length) {
@@ -973,7 +1129,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
973
1129
  }
974
1130
  return configLabelKey in config ? config[configLabelKey] : config[key];
975
1131
  }
976
- var Checkbox = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1132
+ var Checkbox = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
977
1133
  CheckboxPrimitive.Root,
978
1134
  {
979
1135
  ref,
@@ -1013,7 +1169,7 @@ function detectTheme(node) {
1013
1169
  }
1014
1170
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
1015
1171
  }
1016
- var CodeBlock = React131__default.forwardRef(
1172
+ var CodeBlock = React136__default.forwardRef(
1017
1173
  ({
1018
1174
  code,
1019
1175
  language = "tsx",
@@ -1024,10 +1180,10 @@ var CodeBlock = React131__default.forwardRef(
1024
1180
  className,
1025
1181
  ...props
1026
1182
  }, ref) => {
1027
- const containerRef = React131__default.useRef(null);
1028
- const [html, setHtml] = React131__default.useState(null);
1029
- const [copied, setCopied] = React131__default.useState(false);
1030
- React131__default.useEffect(() => {
1183
+ const containerRef = React136__default.useRef(null);
1184
+ const [html, setHtml] = React136__default.useState(null);
1185
+ const [copied, setCopied] = React136__default.useState(false);
1186
+ React136__default.useEffect(() => {
1031
1187
  let cancelled = false;
1032
1188
  getHighlighter().then((hl) => {
1033
1189
  if (cancelled) return;
@@ -1042,7 +1198,7 @@ var CodeBlock = React131__default.forwardRef(
1042
1198
  cancelled = true;
1043
1199
  };
1044
1200
  }, [code, language, theme]);
1045
- const onCopy = React131__default.useCallback(async () => {
1201
+ const onCopy = React136__default.useCallback(async () => {
1046
1202
  try {
1047
1203
  await navigator.clipboard.writeText(code);
1048
1204
  setCopied(true);
@@ -1050,7 +1206,7 @@ var CodeBlock = React131__default.forwardRef(
1050
1206
  } catch {
1051
1207
  }
1052
1208
  }, [code]);
1053
- const lines = React131__default.useMemo(() => code.split("\n"), [code]);
1209
+ const lines = React136__default.useMemo(() => code.split("\n"), [code]);
1054
1210
  return /* @__PURE__ */ jsxs(
1055
1211
  "div",
1056
1212
  {
@@ -1118,7 +1274,7 @@ var Dialog = DialogPrimitive.Root;
1118
1274
  var DialogTrigger = DialogPrimitive.Trigger;
1119
1275
  var DialogPortal = DialogPrimitive.Portal;
1120
1276
  var DialogClose = DialogPrimitive.Close;
1121
- var DialogOverlay = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1277
+ var DialogOverlay = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1122
1278
  DialogPrimitive.Overlay,
1123
1279
  {
1124
1280
  ref,
@@ -1132,7 +1288,7 @@ var DialogOverlay = React131__default.forwardRef(({ className, ...props }, ref)
1132
1288
  }
1133
1289
  ));
1134
1290
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
1135
- var DialogContent = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
1291
+ var DialogContent = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
1136
1292
  /* @__PURE__ */ jsx(DialogOverlay, {}),
1137
1293
  /* @__PURE__ */ jsxs(
1138
1294
  DialogPrimitive.Content,
@@ -1162,7 +1318,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { cla
1162
1318
  DialogHeader.displayName = "DialogHeader";
1163
1319
  var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
1164
1320
  DialogFooter.displayName = "DialogFooter";
1165
- var DialogTitle = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1321
+ var DialogTitle = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1166
1322
  DialogPrimitive.Title,
1167
1323
  {
1168
1324
  ref,
@@ -1171,7 +1327,7 @@ var DialogTitle = React131__default.forwardRef(({ className, ...props }, ref) =>
1171
1327
  }
1172
1328
  ));
1173
1329
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
1174
- var DialogDescription = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1330
+ var DialogDescription = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1175
1331
  DialogPrimitive.Description,
1176
1332
  {
1177
1333
  ref,
@@ -1180,7 +1336,7 @@ var DialogDescription = React131__default.forwardRef(({ className, ...props }, r
1180
1336
  }
1181
1337
  ));
1182
1338
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
1183
- var Command = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1339
+ var Command = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1184
1340
  Command$1,
1185
1341
  {
1186
1342
  ref,
@@ -1195,7 +1351,7 @@ Command.displayName = Command$1.displayName;
1195
1351
  var CommandDialog = ({ children, ...props }) => {
1196
1352
  return /* @__PURE__ */ jsx(Dialog, { ...props, children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
1197
1353
  };
1198
- var CommandInput = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1354
+ var CommandInput = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1199
1355
  /* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
1200
1356
  /* @__PURE__ */ jsx(
1201
1357
  Command$1.Input,
@@ -1210,7 +1366,7 @@ var CommandInput = React131.forwardRef(({ className, ...props }, ref) => /* @__P
1210
1366
  )
1211
1367
  ] }));
1212
1368
  CommandInput.displayName = Command$1.Input.displayName;
1213
- var CommandList = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1369
+ var CommandList = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1214
1370
  Command$1.List,
1215
1371
  {
1216
1372
  ref,
@@ -1219,7 +1375,7 @@ var CommandList = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
1219
1375
  }
1220
1376
  ));
1221
1377
  CommandList.displayName = Command$1.List.displayName;
1222
- var CommandEmpty = React131.forwardRef((props, ref) => /* @__PURE__ */ jsx(
1378
+ var CommandEmpty = React136.forwardRef((props, ref) => /* @__PURE__ */ jsx(
1223
1379
  Command$1.Empty,
1224
1380
  {
1225
1381
  ref,
@@ -1228,7 +1384,7 @@ var CommandEmpty = React131.forwardRef((props, ref) => /* @__PURE__ */ jsx(
1228
1384
  }
1229
1385
  ));
1230
1386
  CommandEmpty.displayName = Command$1.Empty.displayName;
1231
- var CommandGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1387
+ var CommandGroup = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1232
1388
  Command$1.Group,
1233
1389
  {
1234
1390
  ref,
@@ -1240,7 +1396,7 @@ var CommandGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__P
1240
1396
  }
1241
1397
  ));
1242
1398
  CommandGroup.displayName = Command$1.Group.displayName;
1243
- var CommandSeparator = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1399
+ var CommandSeparator = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1244
1400
  Command$1.Separator,
1245
1401
  {
1246
1402
  ref,
@@ -1249,7 +1405,7 @@ var CommandSeparator = React131.forwardRef(({ className, ...props }, ref) => /*
1249
1405
  }
1250
1406
  ));
1251
1407
  CommandSeparator.displayName = Command$1.Separator.displayName;
1252
- var CommandItem = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1408
+ var CommandItem = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1253
1409
  Command$1.Item,
1254
1410
  {
1255
1411
  ref,
@@ -1277,7 +1433,7 @@ var CommandShortcut = ({
1277
1433
  );
1278
1434
  };
1279
1435
  CommandShortcut.displayName = "CommandShortcut";
1280
- var Comparison = React131__default.forwardRef(
1436
+ var Comparison = React136__default.forwardRef(
1281
1437
  ({
1282
1438
  before,
1283
1439
  after,
@@ -1293,10 +1449,10 @@ var Comparison = React131__default.forwardRef(
1293
1449
  ...props
1294
1450
  }, ref) => {
1295
1451
  const isControlled = valueProp !== void 0;
1296
- const [internal, setInternal] = React131__default.useState(defaultValue);
1452
+ const [internal, setInternal] = React136__default.useState(defaultValue);
1297
1453
  const value = Math.max(0, Math.min(100, isControlled ? valueProp : internal));
1298
- const containerRef = React131__default.useRef(null);
1299
- const commit = React131__default.useCallback(
1454
+ const containerRef = React136__default.useRef(null);
1455
+ const commit = React136__default.useCallback(
1300
1456
  (next) => {
1301
1457
  const clamped = Math.max(0, Math.min(100, next));
1302
1458
  if (!isControlled) setInternal(clamped);
@@ -1304,7 +1460,7 @@ var Comparison = React131__default.forwardRef(
1304
1460
  },
1305
1461
  [isControlled, onValueChange]
1306
1462
  );
1307
- const updateFromPointer = React131__default.useCallback(
1463
+ const updateFromPointer = React136__default.useCallback(
1308
1464
  (clientX, clientY) => {
1309
1465
  const el = containerRef.current;
1310
1466
  if (!el) return;
@@ -1427,30 +1583,30 @@ var ContextMenuSub = ContextMenuPrimitive.Sub;
1427
1583
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
1428
1584
  var contentStyle = "z-50 min-w-[8rem] overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--popover))] p-1 text-[hsl(var(--popover-foreground))] shadow-md animate-in fade-in-80";
1429
1585
  var itemStyle = "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))] data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
1430
- var ContextMenuContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, { ref, className: cn(contentStyle, className), ...props }) }));
1586
+ var ContextMenuContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, { ref, className: cn(contentStyle, className), ...props }) }));
1431
1587
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
1432
- var ContextMenuItem = React131__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
1588
+ var ContextMenuItem = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
1433
1589
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
1434
- var ContextMenuCheckboxItem = React131__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
1590
+ var ContextMenuCheckboxItem = React136__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
1435
1591
  /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
1436
1592
  children
1437
1593
  ] }));
1438
1594
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1439
- var ContextMenuRadioItem = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
1595
+ var ContextMenuRadioItem = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
1440
1596
  /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
1441
1597
  children
1442
1598
  ] }));
1443
1599
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1444
- var ContextMenuLabel = React131__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
1600
+ var ContextMenuLabel = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
1445
1601
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1446
- var ContextMenuSeparator = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
1602
+ var ContextMenuSeparator = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
1447
1603
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
1448
- var ContextMenuSubTrigger = React131__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props, children: [
1604
+ var ContextMenuSubTrigger = React136__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props, children: [
1449
1605
  children,
1450
1606
  /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
1451
1607
  ] }));
1452
1608
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1453
- var ContextMenuSubContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, { ref, className: cn(contentStyle, className), ...props }));
1609
+ var ContextMenuSubContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, { ref, className: cn(contentStyle, className), ...props }));
1454
1610
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1455
1611
  var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1456
1612
  var Drawer = ({
@@ -1467,7 +1623,7 @@ Drawer.displayName = "Drawer";
1467
1623
  var DrawerTrigger = Drawer$1.Trigger;
1468
1624
  var DrawerPortal = Drawer$1.Portal;
1469
1625
  var DrawerClose = Drawer$1.Close;
1470
- var DrawerOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1626
+ var DrawerOverlay = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1471
1627
  Drawer$1.Overlay,
1472
1628
  {
1473
1629
  ref,
@@ -1476,7 +1632,7 @@ var DrawerOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__
1476
1632
  }
1477
1633
  ));
1478
1634
  DrawerOverlay.displayName = Drawer$1.Overlay.displayName;
1479
- var DrawerContent = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
1635
+ var DrawerContent = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
1480
1636
  /* @__PURE__ */ jsx(DrawerOverlay, {}),
1481
1637
  /* @__PURE__ */ jsxs(
1482
1638
  Drawer$1.Content,
@@ -1517,7 +1673,7 @@ var DrawerFooter = ({
1517
1673
  }
1518
1674
  );
1519
1675
  DrawerFooter.displayName = "DrawerFooter";
1520
- var DrawerTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1676
+ var DrawerTitle = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1521
1677
  Drawer$1.Title,
1522
1678
  {
1523
1679
  ref,
@@ -1529,7 +1685,7 @@ var DrawerTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
1529
1685
  }
1530
1686
  ));
1531
1687
  DrawerTitle.displayName = Drawer$1.Title.displayName;
1532
- var DrawerDescription = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1688
+ var DrawerDescription = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1533
1689
  Drawer$1.Description,
1534
1690
  {
1535
1691
  ref,
@@ -1554,36 +1710,65 @@ var itemStyle2 = cn(
1554
1710
  "focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))]",
1555
1711
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
1556
1712
  );
1557
- var DropdownMenuContent = React131__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentStyle2, className), ...props }) }));
1713
+ var DropdownMenuContent = React136__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentStyle2, className), ...props }) }));
1558
1714
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1559
- var DropdownMenuItem = React131__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
1715
+ var DropdownMenuItem = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
1560
1716
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1561
- var DropdownMenuCheckboxItem = React131__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
1717
+ var DropdownMenuCheckboxItem = React136__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
1562
1718
  /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
1563
1719
  children
1564
1720
  ] }));
1565
1721
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1566
- var DropdownMenuRadioItem = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
1722
+ var DropdownMenuRadioItem = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
1567
1723
  /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }),
1568
1724
  children
1569
1725
  ] }));
1570
1726
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
1571
- var DropdownMenuLabel = React131__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
1727
+ var DropdownMenuLabel = React136__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, { ref, className: cn("px-2 py-1.5 text-xs font-semibold text-[hsl(var(--muted-foreground))]", inset && "pl-8", className), ...props }));
1572
1728
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
1573
- var DropdownMenuSeparator = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
1729
+ var DropdownMenuSeparator = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-[hsl(var(--muted))]", className), ...props }));
1574
1730
  DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
1575
- var DropdownMenuSubTrigger = React131__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle2, inset && "pl-8", "data-[state=open]:bg-[hsl(var(--accent))]", className), ...props, children: [
1731
+ var DropdownMenuSubTrigger = React136__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle2, inset && "pl-8", "data-[state=open]:bg-[hsl(var(--accent))]", className), ...props, children: [
1576
1732
  children,
1577
1733
  /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
1578
1734
  ] }));
1579
1735
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1580
- var DropdownMenuSubContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
1736
+ var DropdownMenuSubContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
1581
1737
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1582
1738
  var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1583
1739
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1740
+ var EmptyCart = React136__default.forwardRef(
1741
+ ({
1742
+ title = "Your cart is empty",
1743
+ description = "Browse the catalog and add something you love.",
1744
+ actionLabel = "Continue shopping",
1745
+ onAction,
1746
+ icon,
1747
+ className,
1748
+ ...props
1749
+ }, ref) => {
1750
+ return /* @__PURE__ */ jsxs(
1751
+ "div",
1752
+ {
1753
+ ref,
1754
+ className: cn("flex flex-col items-center justify-center gap-4 px-6 py-12 text-center", className),
1755
+ ...props,
1756
+ children: [
1757
+ /* @__PURE__ */ jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", children: icon ?? /* @__PURE__ */ jsx(ShoppingCart, { className: "h-6 w-6", strokeWidth: 1.5 }) }),
1758
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
1759
+ /* @__PURE__ */ jsx("span", { className: "text-base font-semibold text-foreground", children: title }),
1760
+ description && /* @__PURE__ */ jsx("span", { className: "max-w-xs text-sm text-muted-foreground", children: description })
1761
+ ] }),
1762
+ actionLabel && onAction && /* @__PURE__ */ jsx(Button, { onClick: onAction, className: "mt-1", children: actionLabel })
1763
+ ]
1764
+ }
1765
+ );
1766
+ }
1767
+ );
1768
+ EmptyCart.displayName = "EmptyCart";
1584
1769
  var HoverCard = HoverCardPrimitive.Root;
1585
1770
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
1586
- var HoverCardContent = React131.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1771
+ var HoverCardContent = React136.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1587
1772
  HoverCardPrimitive.Content,
1588
1773
  {
1589
1774
  ref,
@@ -1597,7 +1782,7 @@ var HoverCardContent = React131.forwardRef(({ className, align = "center", sideO
1597
1782
  }
1598
1783
  ));
1599
1784
  HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
1600
- var InputOTP = React131.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
1785
+ var InputOTP = React136.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
1601
1786
  OTPInput,
1602
1787
  {
1603
1788
  ref,
@@ -1610,10 +1795,10 @@ var InputOTP = React131.forwardRef(({ className, containerClassName, ...props },
1610
1795
  }
1611
1796
  ));
1612
1797
  InputOTP.displayName = "InputOTP";
1613
- var InputOTPGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
1798
+ var InputOTPGroup = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
1614
1799
  InputOTPGroup.displayName = "InputOTPGroup";
1615
- var InputOTPSlot = React131.forwardRef(({ index, className, ...props }, ref) => {
1616
- const inputOTPContext = React131.useContext(OTPInputContext);
1800
+ var InputOTPSlot = React136.forwardRef(({ index, className, ...props }, ref) => {
1801
+ const inputOTPContext = React136.useContext(OTPInputContext);
1617
1802
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
1618
1803
  return /* @__PURE__ */ jsxs(
1619
1804
  "div",
@@ -1633,9 +1818,9 @@ var InputOTPSlot = React131.forwardRef(({ index, className, ...props }, ref) =>
1633
1818
  );
1634
1819
  });
1635
1820
  InputOTPSlot.displayName = "InputOTPSlot";
1636
- var InputOTPSeparator = React131.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
1821
+ var InputOTPSeparator = React136.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
1637
1822
  InputOTPSeparator.displayName = "InputOTPSeparator";
1638
- var Input = React131__default.forwardRef(
1823
+ var Input = React136__default.forwardRef(
1639
1824
  ({ className, type, ...props }, ref) => /* @__PURE__ */ jsx(
1640
1825
  "input",
1641
1826
  {
@@ -1657,7 +1842,7 @@ Input.displayName = "Input";
1657
1842
  var labelVariants = cva(
1658
1843
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1659
1844
  );
1660
- var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1845
+ var Label3 = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1661
1846
  LabelPrimitive.Root,
1662
1847
  {
1663
1848
  ref,
@@ -1666,7 +1851,7 @@ var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1666
1851
  }
1667
1852
  ));
1668
1853
  Label3.displayName = LabelPrimitive.Root.displayName;
1669
- var LogoCarousel = React131__default.forwardRef(
1854
+ var LogoCarousel = React136__default.forwardRef(
1670
1855
  ({
1671
1856
  className,
1672
1857
  logos,
@@ -1760,7 +1945,7 @@ var SPEED_DURATION = {
1760
1945
  normal: "40s",
1761
1946
  fast: "20s"
1762
1947
  };
1763
- var Marquee = React131__default.forwardRef(
1948
+ var Marquee = React136__default.forwardRef(
1764
1949
  ({
1765
1950
  children,
1766
1951
  speed = "normal",
@@ -1824,7 +2009,7 @@ function MenubarSub({
1824
2009
  }) {
1825
2010
  return /* @__PURE__ */ jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
1826
2011
  }
1827
- var Menubar = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2012
+ var Menubar = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1828
2013
  MenubarPrimitive.Root,
1829
2014
  {
1830
2015
  ref,
@@ -1836,7 +2021,7 @@ var Menubar = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1836
2021
  }
1837
2022
  ));
1838
2023
  Menubar.displayName = MenubarPrimitive.Root.displayName;
1839
- var MenubarTrigger = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2024
+ var MenubarTrigger = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1840
2025
  MenubarPrimitive.Trigger,
1841
2026
  {
1842
2027
  ref,
@@ -1848,7 +2033,7 @@ var MenubarTrigger = React131.forwardRef(({ className, ...props }, ref) => /* @_
1848
2033
  }
1849
2034
  ));
1850
2035
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
1851
- var MenubarSubTrigger = React131.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2036
+ var MenubarSubTrigger = React136.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1852
2037
  MenubarPrimitive.SubTrigger,
1853
2038
  {
1854
2039
  ref,
@@ -1865,7 +2050,7 @@ var MenubarSubTrigger = React131.forwardRef(({ className, inset, children, ...pr
1865
2050
  }
1866
2051
  ));
1867
2052
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
1868
- var MenubarSubContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2053
+ var MenubarSubContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1869
2054
  MenubarPrimitive.SubContent,
1870
2055
  {
1871
2056
  ref,
@@ -1877,7 +2062,7 @@ var MenubarSubContent = React131.forwardRef(({ className, ...props }, ref) => /*
1877
2062
  }
1878
2063
  ));
1879
2064
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
1880
- var MenubarContent = React131.forwardRef(
2065
+ var MenubarContent = React136.forwardRef(
1881
2066
  ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1882
2067
  MenubarPrimitive.Content,
1883
2068
  {
@@ -1894,7 +2079,7 @@ var MenubarContent = React131.forwardRef(
1894
2079
  ) })
1895
2080
  );
1896
2081
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
1897
- var MenubarItem = React131.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
2082
+ var MenubarItem = React136.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1898
2083
  MenubarPrimitive.Item,
1899
2084
  {
1900
2085
  ref,
@@ -1907,7 +2092,7 @@ var MenubarItem = React131.forwardRef(({ className, inset, ...props }, ref) => /
1907
2092
  }
1908
2093
  ));
1909
2094
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
1910
- var MenubarCheckboxItem = React131.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
2095
+ var MenubarCheckboxItem = React136.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
1911
2096
  MenubarPrimitive.CheckboxItem,
1912
2097
  {
1913
2098
  ref,
@@ -1924,7 +2109,7 @@ var MenubarCheckboxItem = React131.forwardRef(({ className, children, checked, .
1924
2109
  }
1925
2110
  ));
1926
2111
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
1927
- var MenubarRadioItem = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2112
+ var MenubarRadioItem = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1928
2113
  MenubarPrimitive.RadioItem,
1929
2114
  {
1930
2115
  ref,
@@ -1940,7 +2125,7 @@ var MenubarRadioItem = React131.forwardRef(({ className, children, ...props }, r
1940
2125
  }
1941
2126
  ));
1942
2127
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
1943
- var MenubarLabel = React131.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
2128
+ var MenubarLabel = React136.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1944
2129
  MenubarPrimitive.Label,
1945
2130
  {
1946
2131
  ref,
@@ -1953,7 +2138,7 @@ var MenubarLabel = React131.forwardRef(({ className, inset, ...props }, ref) =>
1953
2138
  }
1954
2139
  ));
1955
2140
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
1956
- var MenubarSeparator = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2141
+ var MenubarSeparator = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1957
2142
  MenubarPrimitive.Separator,
1958
2143
  {
1959
2144
  ref,
@@ -1978,7 +2163,7 @@ var MenubarShortcut = ({
1978
2163
  );
1979
2164
  };
1980
2165
  MenubarShortcut.displayname = "MenubarShortcut";
1981
- var NavigationMenu = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2166
+ var NavigationMenu = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1982
2167
  NavigationMenuPrimitive.Root,
1983
2168
  {
1984
2169
  ref,
@@ -1994,7 +2179,7 @@ var NavigationMenu = React131.forwardRef(({ className, children, ...props }, ref
1994
2179
  }
1995
2180
  ));
1996
2181
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1997
- var NavigationMenuList = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2182
+ var NavigationMenuList = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1998
2183
  NavigationMenuPrimitive.List,
1999
2184
  {
2000
2185
  ref,
@@ -2010,7 +2195,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
2010
2195
  var navigationMenuTriggerStyle = cva(
2011
2196
  "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
2012
2197
  );
2013
- var NavigationMenuTrigger = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2198
+ var NavigationMenuTrigger = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2014
2199
  NavigationMenuPrimitive.Trigger,
2015
2200
  {
2016
2201
  ref,
@@ -2030,7 +2215,7 @@ var NavigationMenuTrigger = React131.forwardRef(({ className, children, ...props
2030
2215
  }
2031
2216
  ));
2032
2217
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
2033
- var NavigationMenuContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2218
+ var NavigationMenuContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2034
2219
  NavigationMenuPrimitive.Content,
2035
2220
  {
2036
2221
  ref,
@@ -2043,7 +2228,7 @@ var NavigationMenuContent = React131.forwardRef(({ className, ...props }, ref) =
2043
2228
  ));
2044
2229
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
2045
2230
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
2046
- var NavigationMenuViewport = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
2231
+ var NavigationMenuViewport = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
2047
2232
  NavigationMenuPrimitive.Viewport,
2048
2233
  {
2049
2234
  className: cn(
@@ -2055,7 +2240,7 @@ var NavigationMenuViewport = React131.forwardRef(({ className, ...props }, ref)
2055
2240
  }
2056
2241
  ) }));
2057
2242
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
2058
- var NavigationMenuIndicator = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2243
+ var NavigationMenuIndicator = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2059
2244
  NavigationMenuPrimitive.Indicator,
2060
2245
  {
2061
2246
  ref,
@@ -2078,7 +2263,7 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
2078
2263
  }
2079
2264
  );
2080
2265
  Pagination.displayName = "Pagination";
2081
- var PaginationContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2266
+ var PaginationContent = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2082
2267
  "ul",
2083
2268
  {
2084
2269
  ref,
@@ -2087,7 +2272,7 @@ var PaginationContent = React131.forwardRef(({ className, ...props }, ref) => /*
2087
2272
  }
2088
2273
  ));
2089
2274
  PaginationContent.displayName = "PaginationContent";
2090
- var PaginationItem = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
2275
+ var PaginationItem = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
2091
2276
  PaginationItem.displayName = "PaginationItem";
2092
2277
  var PaginationLink = ({
2093
2278
  className,
@@ -2162,7 +2347,7 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
2162
2347
  var Popover = PopoverPrimitive.Root;
2163
2348
  var PopoverTrigger = PopoverPrimitive.Trigger;
2164
2349
  var PopoverAnchor = PopoverPrimitive.Anchor;
2165
- var PopoverContent = React131__default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2350
+ var PopoverContent = React136__default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2166
2351
  PopoverPrimitive.Content,
2167
2352
  {
2168
2353
  ref,
@@ -2179,7 +2364,7 @@ var PopoverContent = React131__default.forwardRef(({ className, align = "center"
2179
2364
  }
2180
2365
  ) }));
2181
2366
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
2182
- var Progress = React131__default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
2367
+ var Progress = React136__default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
2183
2368
  ProgressPrimitive.Root,
2184
2369
  {
2185
2370
  ref,
@@ -2195,7 +2380,7 @@ var Progress = React131__default.forwardRef(({ className, value, ...props }, ref
2195
2380
  }
2196
2381
  ));
2197
2382
  Progress.displayName = ProgressPrimitive.Root.displayName;
2198
- var QrCode = React131__default.forwardRef(
2383
+ var QrCode = React136__default.forwardRef(
2199
2384
  ({
2200
2385
  value,
2201
2386
  size = 192,
@@ -2252,9 +2437,9 @@ var QrCode = React131__default.forwardRef(
2252
2437
  }
2253
2438
  );
2254
2439
  QrCode.displayName = "QrCode";
2255
- var RadioGroup4 = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ref, ...props }));
2440
+ var RadioGroup4 = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ref, ...props }));
2256
2441
  RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
2257
- var RadioGroupItem = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2442
+ var RadioGroupItem = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2258
2443
  RadioGroupPrimitive.Item,
2259
2444
  {
2260
2445
  ref,
@@ -2269,12 +2454,12 @@ var RadioGroupItem = React131__default.forwardRef(({ className, ...props }, ref)
2269
2454
  }
2270
2455
  ));
2271
2456
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
2272
- var SIZE = {
2457
+ var SIZE2 = {
2273
2458
  sm: "h-4 w-4",
2274
2459
  md: "h-5 w-5",
2275
2460
  lg: "h-6 w-6"
2276
2461
  };
2277
- var Rating = React131__default.forwardRef(
2462
+ var Rating = React136__default.forwardRef(
2278
2463
  ({
2279
2464
  value: valueProp,
2280
2465
  defaultValue = 0,
@@ -2290,10 +2475,10 @@ var Rating = React131__default.forwardRef(
2290
2475
  ...props
2291
2476
  }, ref) => {
2292
2477
  const isControlled = valueProp !== void 0;
2293
- const [internal, setInternal] = React131__default.useState(defaultValue);
2478
+ const [internal, setInternal] = React136__default.useState(defaultValue);
2294
2479
  const value = isControlled ? valueProp : internal;
2295
2480
  const step = allowHalf ? 0.5 : 1;
2296
- const commit = React131__default.useCallback(
2481
+ const commit = React136__default.useCallback(
2297
2482
  (next) => {
2298
2483
  const clamped = Math.max(0, Math.min(max, next));
2299
2484
  if (!isControlled) setInternal(clamped);
@@ -2340,13 +2525,13 @@ var Rating = React131__default.forwardRef(
2340
2525
  children: Array.from({ length: max }).map((_, i) => {
2341
2526
  const fillPercent = Math.max(0, Math.min(1, value - i)) * 100;
2342
2527
  const Icon2 = /* @__PURE__ */ jsxs("span", { className: "relative inline-block leading-none", children: [
2343
- /* @__PURE__ */ jsx("span", { className: cn("block text-muted-foreground/40", SIZE[size]), children: emptyIcon ?? /* @__PURE__ */ jsx(Star, { className: "h-full w-full", strokeWidth: 1.5 }) }),
2528
+ /* @__PURE__ */ jsx("span", { className: cn("block text-muted-foreground/40", SIZE2[size]), children: emptyIcon ?? /* @__PURE__ */ jsx(Star, { className: "h-full w-full", strokeWidth: 1.5 }) }),
2344
2529
  /* @__PURE__ */ jsx(
2345
2530
  "span",
2346
2531
  {
2347
2532
  className: cn(
2348
2533
  "absolute inset-0 overflow-hidden text-[hsl(var(--primary))]",
2349
- SIZE[size]
2534
+ SIZE2[size]
2350
2535
  ),
2351
2536
  style: { width: `${fillPercent}%` },
2352
2537
  "aria-hidden": "true",
@@ -2407,7 +2592,7 @@ var ResizableHandle = ({
2407
2592
  children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx(GripVertical, { className: "h-2.5 w-2.5" }) })
2408
2593
  }
2409
2594
  );
2410
- var ScrollArea = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2595
+ var ScrollArea = React136.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2411
2596
  ScrollAreaPrimitive.Root,
2412
2597
  {
2413
2598
  ref,
@@ -2421,7 +2606,7 @@ var ScrollArea = React131.forwardRef(({ className, children, ...props }, ref) =>
2421
2606
  }
2422
2607
  ));
2423
2608
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2424
- var ScrollBar = React131.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
2609
+ var ScrollBar = React136.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
2425
2610
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2426
2611
  {
2427
2612
  ref,
@@ -2440,7 +2625,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2440
2625
  var Select = SelectPrimitive.Root;
2441
2626
  var SelectGroup = SelectPrimitive.Group;
2442
2627
  var SelectValue = SelectPrimitive.Value;
2443
- var SelectTrigger = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2628
+ var SelectTrigger = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2444
2629
  SelectPrimitive.Trigger,
2445
2630
  {
2446
2631
  ref,
@@ -2460,7 +2645,7 @@ var SelectTrigger = React131__default.forwardRef(({ className, children, ...prop
2460
2645
  }
2461
2646
  ));
2462
2647
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2463
- var SelectScrollUpButton = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2648
+ var SelectScrollUpButton = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2464
2649
  SelectPrimitive.ScrollUpButton,
2465
2650
  {
2466
2651
  ref,
@@ -2470,7 +2655,7 @@ var SelectScrollUpButton = React131__default.forwardRef(({ className, ...props }
2470
2655
  }
2471
2656
  ));
2472
2657
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2473
- var SelectScrollDownButton = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2658
+ var SelectScrollDownButton = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2474
2659
  SelectPrimitive.ScrollDownButton,
2475
2660
  {
2476
2661
  ref,
@@ -2480,7 +2665,7 @@ var SelectScrollDownButton = React131__default.forwardRef(({ className, ...props
2480
2665
  }
2481
2666
  ));
2482
2667
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2483
- var SelectContent = React131__default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
2668
+ var SelectContent = React136__default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
2484
2669
  SelectPrimitive.Content,
2485
2670
  {
2486
2671
  ref,
@@ -2507,7 +2692,7 @@ var SelectContent = React131__default.forwardRef(({ className, children, positio
2507
2692
  }
2508
2693
  ) }));
2509
2694
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2510
- var SelectLabel = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2695
+ var SelectLabel = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2511
2696
  SelectPrimitive.Label,
2512
2697
  {
2513
2698
  ref,
@@ -2516,7 +2701,7 @@ var SelectLabel = React131__default.forwardRef(({ className, ...props }, ref) =>
2516
2701
  }
2517
2702
  ));
2518
2703
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2519
- var SelectItem = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2704
+ var SelectItem = React136__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2520
2705
  SelectPrimitive.Item,
2521
2706
  {
2522
2707
  ref,
@@ -2534,7 +2719,7 @@ var SelectItem = React131__default.forwardRef(({ className, children, ...props }
2534
2719
  }
2535
2720
  ));
2536
2721
  SelectItem.displayName = SelectPrimitive.Item.displayName;
2537
- var SelectSeparator = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2722
+ var SelectSeparator = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2538
2723
  SelectPrimitive.Separator,
2539
2724
  {
2540
2725
  ref,
@@ -2543,7 +2728,7 @@ var SelectSeparator = React131__default.forwardRef(({ className, ...props }, ref
2543
2728
  }
2544
2729
  ));
2545
2730
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
2546
- var Separator6 = React131__default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
2731
+ var Separator6 = React136__default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
2547
2732
  SeparatorPrimitive.Root,
2548
2733
  {
2549
2734
  ref,
@@ -2562,7 +2747,7 @@ var Sheet = DialogPrimitive.Root;
2562
2747
  var SheetTrigger = DialogPrimitive.Trigger;
2563
2748
  var SheetClose = DialogPrimitive.Close;
2564
2749
  var SheetPortal = DialogPrimitive.Portal;
2565
- var SheetOverlay = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2750
+ var SheetOverlay = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2566
2751
  DialogPrimitive.Overlay,
2567
2752
  {
2568
2753
  ref,
@@ -2590,7 +2775,7 @@ var sheetVariants = cva(
2590
2775
  defaultVariants: { side: "right" }
2591
2776
  }
2592
2777
  );
2593
- var SheetContent = React131__default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
2778
+ var SheetContent = React136__default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
2594
2779
  /* @__PURE__ */ jsx(SheetOverlay, {}),
2595
2780
  /* @__PURE__ */ jsxs(DialogPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
2596
2781
  /* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[hsl(var(--ring))]", children: [
@@ -2603,9 +2788,9 @@ var SheetContent = React131__default.forwardRef(({ side = "right", className, ch
2603
2788
  SheetContent.displayName = DialogPrimitive.Content.displayName;
2604
2789
  var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
2605
2790
  var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
2606
- var SheetTitle = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
2791
+ var SheetTitle = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
2607
2792
  SheetTitle.displayName = DialogPrimitive.Title.displayName;
2608
- var SheetDescription = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
2793
+ var SheetDescription = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
2609
2794
  SheetDescription.displayName = DialogPrimitive.Description.displayName;
2610
2795
  function Skeleton({ className, ...props }) {
2611
2796
  return /* @__PURE__ */ jsx(
@@ -2616,7 +2801,7 @@ function Skeleton({ className, ...props }) {
2616
2801
  }
2617
2802
  );
2618
2803
  }
2619
- var Slider = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
2804
+ var Slider = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
2620
2805
  SliderPrimitive.Root,
2621
2806
  {
2622
2807
  ref,
@@ -2640,7 +2825,7 @@ function Spinner({ className, ...props }) {
2640
2825
  }
2641
2826
  );
2642
2827
  }
2643
- var Switch = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2828
+ var Switch = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2644
2829
  SwitchPrimitive.Root,
2645
2830
  {
2646
2831
  ref,
@@ -2666,7 +2851,7 @@ var Switch = React131__default.forwardRef(({ className, ...props }, ref) => /* @
2666
2851
  }
2667
2852
  ));
2668
2853
  Switch.displayName = SwitchPrimitive.Root.displayName;
2669
- var Table = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
2854
+ var Table = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
2670
2855
  "table",
2671
2856
  {
2672
2857
  ref,
@@ -2675,9 +2860,9 @@ var Table = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
2675
2860
  }
2676
2861
  ) }));
2677
2862
  Table.displayName = "Table";
2678
- var TableHeader = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
2863
+ var TableHeader = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
2679
2864
  TableHeader.displayName = "TableHeader";
2680
- var TableBody = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2865
+ var TableBody = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2681
2866
  "tbody",
2682
2867
  {
2683
2868
  ref,
@@ -2686,7 +2871,7 @@ var TableBody = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
2686
2871
  }
2687
2872
  ));
2688
2873
  TableBody.displayName = "TableBody";
2689
- var TableFooter = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2874
+ var TableFooter = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2690
2875
  "tfoot",
2691
2876
  {
2692
2877
  ref,
@@ -2698,7 +2883,7 @@ var TableFooter = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
2698
2883
  }
2699
2884
  ));
2700
2885
  TableFooter.displayName = "TableFooter";
2701
- var TableRow = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2886
+ var TableRow = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2702
2887
  "tr",
2703
2888
  {
2704
2889
  ref,
@@ -2710,7 +2895,7 @@ var TableRow = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2710
2895
  }
2711
2896
  ));
2712
2897
  TableRow.displayName = "TableRow";
2713
- var TableHead = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2898
+ var TableHead = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2714
2899
  "th",
2715
2900
  {
2716
2901
  ref,
@@ -2722,7 +2907,7 @@ var TableHead = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
2722
2907
  }
2723
2908
  ));
2724
2909
  TableHead.displayName = "TableHead";
2725
- var TableCell = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2910
+ var TableCell = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2726
2911
  "td",
2727
2912
  {
2728
2913
  ref,
@@ -2734,7 +2919,7 @@ var TableCell = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
2734
2919
  }
2735
2920
  ));
2736
2921
  TableCell.displayName = "TableCell";
2737
- var TableCaption = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2922
+ var TableCaption = React136.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2738
2923
  "caption",
2739
2924
  {
2740
2925
  ref,
@@ -2744,7 +2929,7 @@ var TableCaption = React131.forwardRef(({ className, ...props }, ref) => /* @__P
2744
2929
  ));
2745
2930
  TableCaption.displayName = "TableCaption";
2746
2931
  var Tabs = TabsPrimitive.Root;
2747
- var TabsList = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2932
+ var TabsList = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2748
2933
  TabsPrimitive.List,
2749
2934
  {
2750
2935
  ref,
@@ -2756,7 +2941,7 @@ var TabsList = React131__default.forwardRef(({ className, ...props }, ref) => /*
2756
2941
  }
2757
2942
  ));
2758
2943
  TabsList.displayName = TabsPrimitive.List.displayName;
2759
- var TabsTrigger = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2944
+ var TabsTrigger = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2760
2945
  TabsPrimitive.Trigger,
2761
2946
  {
2762
2947
  ref,
@@ -2771,7 +2956,7 @@ var TabsTrigger = React131__default.forwardRef(({ className, ...props }, ref) =>
2771
2956
  }
2772
2957
  ));
2773
2958
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
2774
- var TabsContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2959
+ var TabsContent = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2775
2960
  TabsPrimitive.Content,
2776
2961
  {
2777
2962
  ref,
@@ -2783,7 +2968,7 @@ var TabsContent = React131__default.forwardRef(({ className, ...props }, ref) =>
2783
2968
  }
2784
2969
  ));
2785
2970
  TabsContent.displayName = TabsPrimitive.Content.displayName;
2786
- var Textarea = React131__default.forwardRef(
2971
+ var Textarea = React136__default.forwardRef(
2787
2972
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2788
2973
  "textarea",
2789
2974
  {
@@ -2801,7 +2986,7 @@ var Textarea = React131__default.forwardRef(
2801
2986
  )
2802
2987
  );
2803
2988
  Textarea.displayName = "Textarea";
2804
- var TextureCard = React131.forwardRef(
2989
+ var TextureCard = React136.forwardRef(
2805
2990
  ({ children, className, padding = true, ...props }, ref) => /* @__PURE__ */ jsx(
2806
2991
  "div",
2807
2992
  {
@@ -2818,15 +3003,15 @@ var TextureCard = React131.forwardRef(
2818
3003
  )
2819
3004
  );
2820
3005
  TextureCard.displayName = "TextureCard";
2821
- var TextureCardHeader = React131.forwardRef(
3006
+ var TextureCardHeader = React136.forwardRef(
2822
3007
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 mb-4", className), ...props })
2823
3008
  );
2824
3009
  TextureCardHeader.displayName = "TextureCardHeader";
2825
- var TextureCardTitle = React131.forwardRef(
3010
+ var TextureCardTitle = React136.forwardRef(
2826
3011
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("h3", { ref, className: cn("font-semibold text-base leading-tight tracking-tight text-foreground", className), ...props })
2827
3012
  );
2828
3013
  TextureCardTitle.displayName = "TextureCardTitle";
2829
- var TextureCardDescription = React131.forwardRef(
3014
+ var TextureCardDescription = React136.forwardRef(
2830
3015
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
2831
3016
  );
2832
3017
  TextureCardDescription.displayName = "TextureCardDescription";
@@ -2850,7 +3035,7 @@ var toggleVariants = cva(
2850
3035
  }
2851
3036
  }
2852
3037
  );
2853
- var Toggle = React131.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
3038
+ var Toggle = React136.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
2854
3039
  TogglePrimitive.Root,
2855
3040
  {
2856
3041
  ref,
@@ -2859,11 +3044,11 @@ var Toggle = React131.forwardRef(({ className, variant, size, ...props }, ref) =
2859
3044
  }
2860
3045
  ));
2861
3046
  Toggle.displayName = TogglePrimitive.Root.displayName;
2862
- var ToggleGroupContext = React131.createContext({
3047
+ var ToggleGroupContext = React136.createContext({
2863
3048
  size: "default",
2864
3049
  variant: "default"
2865
3050
  });
2866
- var ToggleGroup = React131.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
3051
+ var ToggleGroup = React136.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
2867
3052
  ToggleGroupPrimitive.Root,
2868
3053
  {
2869
3054
  ref,
@@ -2873,8 +3058,8 @@ var ToggleGroup = React131.forwardRef(({ className, variant, size, children, ...
2873
3058
  }
2874
3059
  ));
2875
3060
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
2876
- var ToggleGroupItem = React131.forwardRef(({ className, children, variant, size, ...props }, ref) => {
2877
- const context = React131.useContext(ToggleGroupContext);
3061
+ var ToggleGroupItem = React136.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3062
+ const context = React136.useContext(ToggleGroupContext);
2878
3063
  return /* @__PURE__ */ jsx(
2879
3064
  ToggleGroupPrimitive.Item,
2880
3065
  {
@@ -2895,7 +3080,7 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
2895
3080
  var TooltipProvider = TooltipPrimitive.Provider;
2896
3081
  var Tooltip2 = TooltipPrimitive.Root;
2897
3082
  var TooltipTrigger = TooltipPrimitive.Trigger;
2898
- var TooltipContent = React131__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3083
+ var TooltipContent = React136__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2899
3084
  TooltipPrimitive.Content,
2900
3085
  {
2901
3086
  ref,
@@ -2911,6 +3096,52 @@ var TooltipContent = React131__default.forwardRef(({ className, sideOffset = 4,
2911
3096
  }
2912
3097
  ) }));
2913
3098
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3099
+ var VariantPicker = React136__default.forwardRef(
3100
+ ({ label, options, value: valueProp, defaultValue, onValueChange, className, ...props }, ref) => {
3101
+ const isControlled = valueProp !== void 0;
3102
+ const [internal, setInternal] = React136__default.useState(defaultValue);
3103
+ const value = isControlled ? valueProp : internal;
3104
+ const select = (v) => {
3105
+ if (!isControlled) setInternal(v);
3106
+ onValueChange?.(v);
3107
+ };
3108
+ return /* @__PURE__ */ jsxs("div", { ref, role: "radiogroup", "aria-label": label, className: cn("flex flex-col gap-2", className), ...props, children: [
3109
+ label && /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
3110
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: options.map((opt) => {
3111
+ const selected = value === opt.value;
3112
+ return /* @__PURE__ */ jsxs(
3113
+ "button",
3114
+ {
3115
+ type: "button",
3116
+ role: "radio",
3117
+ "aria-checked": selected,
3118
+ disabled: opt.disabled,
3119
+ onClick: () => select(opt.value),
3120
+ className: cn(
3121
+ "inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors",
3122
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
3123
+ selected ? "border-primary bg-primary/10 text-[hsl(var(--primary))]" : "border-border hover:bg-accent hover:text-accent-foreground",
3124
+ opt.disabled && "cursor-not-allowed text-muted-foreground line-through opacity-50"
3125
+ ),
3126
+ children: [
3127
+ opt.swatch && /* @__PURE__ */ jsx(
3128
+ "span",
3129
+ {
3130
+ "aria-hidden": "true",
3131
+ className: "h-4 w-4 rounded-full border border-border",
3132
+ style: { backgroundColor: opt.swatch }
3133
+ }
3134
+ ),
3135
+ opt.label
3136
+ ]
3137
+ },
3138
+ opt.value
3139
+ );
3140
+ }) })
3141
+ ] });
3142
+ }
3143
+ );
3144
+ VariantPicker.displayName = "VariantPicker";
2914
3145
  var bannerVariants = cva(
2915
3146
  "relative flex items-start gap-3 rounded-lg border px-4 py-3.5 text-sm transition-all",
2916
3147
  {
@@ -3007,8 +3238,8 @@ function Banner({
3007
3238
  className,
3008
3239
  children
3009
3240
  }) {
3010
- const [dismissed, setDismissed] = React131__default.useState(false);
3011
- const [exiting, setExiting] = React131__default.useState(false);
3241
+ const [dismissed, setDismissed] = React136__default.useState(false);
3242
+ const [exiting, setExiting] = React136__default.useState(false);
3012
3243
  const handleDismiss = () => {
3013
3244
  setExiting(true);
3014
3245
  setTimeout(() => {
@@ -3069,7 +3300,7 @@ function BreadcrumbSeparator({ className }) {
3069
3300
  return /* @__PURE__ */ jsx("li", { role: "presentation", "aria-hidden": "true", className: cn("flex items-center text-[hsl(var(--muted-foreground))]", className), children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-3.5 w-3.5" }) });
3070
3301
  }
3071
3302
  function Breadcrumb({ children, className }) {
3072
- const items = React131__default.Children.toArray(children);
3303
+ const items = React136__default.Children.toArray(children);
3073
3304
  const withSeparators = [];
3074
3305
  items.forEach((item, i) => {
3075
3306
  withSeparators.push(item);
@@ -3099,8 +3330,8 @@ function CommandItem2({ icon, label, description, shortcut, active, onClick, cla
3099
3330
  );
3100
3331
  }
3101
3332
  function EditableCell({ value: initial, onSave }) {
3102
- const [editing, setEditing] = React131__default.useState(false);
3103
- const [val, setVal] = React131__default.useState(String(initial ?? ""));
3333
+ const [editing, setEditing] = React136__default.useState(false);
3334
+ const [val, setVal] = React136__default.useState(String(initial ?? ""));
3104
3335
  const commit = () => {
3105
3336
  onSave(val);
3106
3337
  setEditing(false);
@@ -3131,10 +3362,10 @@ var selectionCol = () => ({
3131
3362
  enableResizing: false
3132
3363
  });
3133
3364
  function DataGrid({ columns, data: initialData, onDataChange, editable, className }) {
3134
- const [data, setData] = React131__default.useState(initialData);
3135
- const [rowSelection, setRowSelection] = React131__default.useState({});
3365
+ const [data, setData] = React136__default.useState(initialData);
3366
+ const [rowSelection, setRowSelection] = React136__default.useState({});
3136
3367
  const columnResizeMode = "onChange";
3137
- const editableColumns = React131__default.useMemo(() => {
3368
+ const editableColumns = React136__default.useMemo(() => {
3138
3369
  if (!editable) return columns;
3139
3370
  return columns.map((col) => ({
3140
3371
  ...col,
@@ -3153,7 +3384,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
3153
3384
  )
3154
3385
  }));
3155
3386
  }, [columns, data, editable, onDataChange]);
3156
- const allColumns = React131__default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
3387
+ const allColumns = React136__default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
3157
3388
  const table = useReactTable({
3158
3389
  data,
3159
3390
  columns: allColumns,
@@ -3224,7 +3455,7 @@ function DataTableToolbar({ table, searchColumn }) {
3224
3455
  ) });
3225
3456
  }
3226
3457
  function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loading }) {
3227
- const [sorting, setSorting] = React131__default.useState([]);
3458
+ const [sorting, setSorting] = React136__default.useState([]);
3228
3459
  const table = useReactTable({
3229
3460
  data,
3230
3461
  columns,
@@ -3249,7 +3480,7 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
3249
3480
  /* @__PURE__ */ jsx(DataTablePagination, { table })
3250
3481
  ] });
3251
3482
  }
3252
- var EmptyStateIcon = React131__default.forwardRef(
3483
+ var EmptyStateIcon = React136__default.forwardRef(
3253
3484
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-12 w-12 items-center justify-center rounded-full bg-[hsl(var(--muted))] text-[hsl(var(--muted-foreground))]", className), ...props })
3254
3485
  );
3255
3486
  EmptyStateIcon.displayName = "EmptyStateIcon";
@@ -3364,7 +3595,7 @@ function Persona({ name, subtitle, src, size = "md", badge, className }) {
3364
3595
  ] })
3365
3596
  ] });
3366
3597
  }
3367
- var PropertyList = React131__default.forwardRef(
3598
+ var PropertyList = React136__default.forwardRef(
3368
3599
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("dl", { ref, className: cn("divide-y divide-[hsl(var(--border))]", className), ...props })
3369
3600
  );
3370
3601
  PropertyList.displayName = "PropertyList";
@@ -3450,7 +3681,7 @@ function StructuredListItem({ left, title, description, right, onClick, classNam
3450
3681
  }
3451
3682
  );
3452
3683
  }
3453
- var StructuredList = React131__default.forwardRef(
3684
+ var StructuredList = React136__default.forwardRef(
3454
3685
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-4", className), ...props })
3455
3686
  );
3456
3687
  StructuredList.displayName = "StructuredList";
@@ -3460,7 +3691,7 @@ var dotColors = {
3460
3691
  error: "bg-red-500",
3461
3692
  warning: "bg-yellow-500"
3462
3693
  };
3463
- var TimelineContent = React131__default.forwardRef(
3694
+ var TimelineContent = React136__default.forwardRef(
3464
3695
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("pb-1", className), ...props })
3465
3696
  );
3466
3697
  TimelineContent.displayName = "TimelineContent";
@@ -3483,9 +3714,9 @@ function TimelineItem({ icon, title, description, timestamp, variant = "default"
3483
3714
  ] });
3484
3715
  }
3485
3716
  function Timeline({ children, className }) {
3486
- const items = React131__default.Children.toArray(children);
3717
+ const items = React136__default.Children.toArray(children);
3487
3718
  return /* @__PURE__ */ jsx("div", { className: cn("", className), children: items.map(
3488
- (child, i) => React131__default.isValidElement(child) ? React131__default.cloneElement(child, { isLast: i === items.length - 1 }) : child
3719
+ (child, i) => React136__default.isValidElement(child) ? React136__default.cloneElement(child, { isLast: i === items.length - 1 }) : child
3489
3720
  ) });
3490
3721
  }
3491
3722
  var INITIAL_MESSAGES = [
@@ -3669,7 +3900,7 @@ function FileRow({ file, onDelete }) {
3669
3900
  ] });
3670
3901
  }
3671
3902
  function FilesList({ className }) {
3672
- const [files, setFiles] = React131__default.useState(FILES2);
3903
+ const [files, setFiles] = React136__default.useState(FILES2);
3673
3904
  return /* @__PURE__ */ jsx("div", { className: cn("rounded-md border border-[hsl(var(--border))] overflow-hidden", className), children: /* @__PURE__ */ jsxs("table", { className: "w-full", children: [
3674
3905
  /* @__PURE__ */ jsx("thead", { className: "bg-[hsl(var(--muted)/0.5)]", children: /* @__PURE__ */ jsx("tr", { children: ["Name", "Type", "Size", "Modified", ""].map((h) => /* @__PURE__ */ jsx("th", { className: "px-4 py-2.5 text-left text-xs font-medium text-[hsl(var(--muted-foreground))]", children: h }, h)) }) }),
3675
3906
  /* @__PURE__ */ jsx("tbody", { children: files.map((f) => /* @__PURE__ */ jsx(FileRow, { file: f, onDelete: () => setFiles((fs) => fs.filter((x) => x.id !== f.id)) }, f.id)) })
@@ -4164,9 +4395,9 @@ function apply(mode) {
4164
4395
  document.documentElement.classList.toggle("dark", isDark);
4165
4396
  }
4166
4397
  function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }) {
4167
- const [mode, setMode] = React131__default.useState(() => defaultMode ?? readInitial());
4168
- const didMount = React131__default.useRef(false);
4169
- React131__default.useEffect(() => {
4398
+ const [mode, setMode] = React136__default.useState(() => defaultMode ?? readInitial());
4399
+ const didMount = React136__default.useRef(false);
4400
+ React136__default.useEffect(() => {
4170
4401
  if (!didMount.current) {
4171
4402
  didMount.current = true;
4172
4403
  return;
@@ -4178,7 +4409,7 @@ function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }
4178
4409
  }
4179
4410
  onChange?.(mode);
4180
4411
  }, [mode, onChange]);
4181
- React131__default.useEffect(() => {
4412
+ React136__default.useEffect(() => {
4182
4413
  if (mode !== "system" || typeof window === "undefined") return;
4183
4414
  const mql = window.matchMedia("(prefers-color-scheme: dark)");
4184
4415
  const handler = () => apply("system");
@@ -4269,7 +4500,7 @@ function FloatingActionButton({
4269
4500
  position = "bottom-right",
4270
4501
  className
4271
4502
  }) {
4272
- const [open, setOpen] = React131__default.useState(false);
4503
+ const [open, setOpen] = React136__default.useState(false);
4273
4504
  return /* @__PURE__ */ jsx(
4274
4505
  "div",
4275
4506
  {
@@ -4310,7 +4541,7 @@ function FloatingActionButton({
4310
4541
  ] }),
4311
4542
  sections.length > 0 && /* @__PURE__ */ jsx(Separator6, {})
4312
4543
  ] }),
4313
- sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(React131__default.Fragment, { children: [
4544
+ sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(React136__default.Fragment, { children: [
4314
4545
  /* @__PURE__ */ jsxs("div", { children: [
4315
4546
  /* @__PURE__ */ jsx("p", { className: "text-[9px] font-semibold uppercase tracking-widest text-muted-foreground mb-1.5", children: section.label }),
4316
4547
  section.content
@@ -4352,7 +4583,7 @@ function applyTheme(val) {
4352
4583
  }
4353
4584
  }
4354
4585
  function PaletteSwatches({ options = DEFAULT_THEME_OPTIONS }) {
4355
- const [activeValue, setActiveValue] = React131__default.useState(readStoredTheme);
4586
+ const [activeValue, setActiveValue] = React136__default.useState(readStoredTheme);
4356
4587
  const activeOption = options.find((o) => o.value === activeValue) ?? options[0];
4357
4588
  const handleSelect = (value) => {
4358
4589
  setActiveValue(value);
@@ -5228,8 +5459,8 @@ function BulkActions({ count, actions, onClear, className }) {
5228
5459
  ] });
5229
5460
  }
5230
5461
  function useCommandBar() {
5231
- const [open, setOpen] = React131__default.useState(false);
5232
- React131__default.useEffect(() => {
5462
+ const [open, setOpen] = React136__default.useState(false);
5463
+ React136__default.useEffect(() => {
5233
5464
  const handler = (e) => {
5234
5465
  if ((e.metaKey || e.ctrlKey) && e.key === "k") {
5235
5466
  e.preventDefault();
@@ -5269,12 +5500,12 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
5269
5500
  );
5270
5501
  }
5271
5502
  function CommandBar({ open, onOpenChange, children, placeholder = "Search commands...", onSearch }) {
5272
- const [query, setQuery] = React131__default.useState("");
5503
+ const [query, setQuery] = React136__default.useState("");
5273
5504
  const handleSearch = (v) => {
5274
5505
  setQuery(v);
5275
5506
  onSearch?.(v);
5276
5507
  };
5277
- const items = React131__default.useRef(null);
5508
+ const items = React136__default.useRef(null);
5278
5509
  const handleKeyDown = (e) => {
5279
5510
  if (e.key === "Escape") {
5280
5511
  onOpenChange(false);
@@ -5315,10 +5546,10 @@ function CommandBar({ open, onOpenChange, children, placeholder = "Search comman
5315
5546
  var textOps = ["contains", "equals", "starts with"];
5316
5547
  var numOps = ["=", ">", "<", ">=", "<="];
5317
5548
  function AddFilterPopover({ filters, onAdd }) {
5318
- const [open, setOpen] = React131__default.useState(false);
5319
- const [key, setKey] = React131__default.useState("");
5320
- const [op, setOp] = React131__default.useState("");
5321
- const [val, setVal] = React131__default.useState("");
5549
+ const [open, setOpen] = React136__default.useState(false);
5550
+ const [key, setKey] = React136__default.useState("");
5551
+ const [op, setOp] = React136__default.useState("");
5552
+ const [val, setVal] = React136__default.useState("");
5322
5553
  const def = filters.find((f) => f.key === key);
5323
5554
  const ops = def?.type === "number" ? numOps : textOps;
5324
5555
  const handleAdd = () => {
@@ -5430,7 +5661,7 @@ function formatColumnSubLabel(date, scale) {
5430
5661
  function snapDate(date, scale) {
5431
5662
  return startOfScale(date, scale);
5432
5663
  }
5433
- var Gantt = React131__default.forwardRef(
5664
+ var Gantt = React136__default.forwardRef(
5434
5665
  ({
5435
5666
  items,
5436
5667
  scale = "days",
@@ -5448,7 +5679,7 @@ var Gantt = React131__default.forwardRef(
5448
5679
  }, ref) => {
5449
5680
  const interactive = !!onItemMove || !!onItemResize;
5450
5681
  const columnWidth = DEFAULT_COLUMN_WIDTH[scale];
5451
- const viewport = React131__default.useMemo(() => {
5682
+ const viewport = React136__default.useMemo(() => {
5452
5683
  const earliest = startDate ?? (items.length ? new Date(Math.min(...items.map((i) => i.start.getTime()))) : /* @__PURE__ */ new Date());
5453
5684
  const latest = endDate ?? (items.length ? new Date(Math.max(...items.map((i) => i.end.getTime()))) : addDays(/* @__PURE__ */ new Date(), 14));
5454
5685
  return {
@@ -5458,7 +5689,7 @@ var Gantt = React131__default.forwardRef(
5458
5689
  }, [items, startDate, endDate, scale]);
5459
5690
  const colCount = totalColumns(viewport.start, viewport.end, scale);
5460
5691
  const timelineWidth = colCount * columnWidth;
5461
- const grouped = React131__default.useMemo(() => {
5692
+ const grouped = React136__default.useMemo(() => {
5462
5693
  const map = /* @__PURE__ */ new Map();
5463
5694
  for (const it of items) {
5464
5695
  const k = it.group ?? void 0;
@@ -5468,7 +5699,7 @@ var Gantt = React131__default.forwardRef(
5468
5699
  return Array.from(map.entries());
5469
5700
  }, [items]);
5470
5701
  const hasGroups = grouped.some(([k]) => k !== void 0);
5471
- const [collapsed, setCollapsed] = React131__default.useState(() => /* @__PURE__ */ new Set());
5702
+ const [collapsed, setCollapsed] = React136__default.useState(() => /* @__PURE__ */ new Set());
5472
5703
  const toggleGroup = (key) => {
5473
5704
  setCollapsed((prev) => {
5474
5705
  const next = new Set(prev);
@@ -5477,7 +5708,7 @@ var Gantt = React131__default.forwardRef(
5477
5708
  return next;
5478
5709
  });
5479
5710
  };
5480
- const rows = React131__default.useMemo(() => {
5711
+ const rows = React136__default.useMemo(() => {
5481
5712
  const out = [];
5482
5713
  for (const [groupKey, list] of grouped) {
5483
5714
  if (groupKey !== void 0) {
@@ -5488,21 +5719,21 @@ var Gantt = React131__default.forwardRef(
5488
5719
  }
5489
5720
  return out;
5490
5721
  }, [grouped, collapsed]);
5491
- const itemRowIndex = React131__default.useMemo(() => {
5722
+ const itemRowIndex = React136__default.useMemo(() => {
5492
5723
  const m = /* @__PURE__ */ new Map();
5493
5724
  rows.forEach((r, i) => {
5494
5725
  if (r.kind === "item") m.set(r.item.id, i);
5495
5726
  });
5496
5727
  return m;
5497
5728
  }, [rows]);
5498
- const todayOffsetPx = React131__default.useMemo(() => {
5729
+ const todayOffsetPx = React136__default.useMemo(() => {
5499
5730
  if (!showToday) return null;
5500
5731
  const now = /* @__PURE__ */ new Date();
5501
5732
  const u = unitsBetween(viewport.start, now, scale);
5502
5733
  if (u < 0 || u > colCount) return null;
5503
5734
  return u * columnWidth;
5504
5735
  }, [showToday, viewport.start, scale, colCount, columnWidth]);
5505
- const columnDates = React131__default.useMemo(() => {
5736
+ const columnDates = React136__default.useMemo(() => {
5506
5737
  return Array.from(
5507
5738
  { length: colCount },
5508
5739
  (_, i) => addUnits(viewport.start, i, scale)
@@ -5726,12 +5957,12 @@ function GanttBar({
5726
5957
  }) {
5727
5958
  const color = item.color ?? DEFAULT_COLOR2;
5728
5959
  const progress = Math.max(0, Math.min(100, item.progress ?? 0));
5729
- const [previewLeftDelta, setPreviewLeftDelta] = React131__default.useState(0);
5730
- const [previewRightDelta, setPreviewRightDelta] = React131__default.useState(0);
5731
- const dragMode = React131__default.useRef(null);
5732
- const startX = React131__default.useRef(0);
5733
- const longPressTimer = React131__default.useRef(null);
5734
- const moved = React131__default.useRef(false);
5960
+ const [previewLeftDelta, setPreviewLeftDelta] = React136__default.useState(0);
5961
+ const [previewRightDelta, setPreviewRightDelta] = React136__default.useState(0);
5962
+ const dragMode = React136__default.useRef(null);
5963
+ const startX = React136__default.useRef(0);
5964
+ const longPressTimer = React136__default.useRef(null);
5965
+ const moved = React136__default.useRef(false);
5735
5966
  const baseLeft = unitsBetween(viewportStart, item.start, scale) * columnWidth;
5736
5967
  const baseRight = unitsBetween(viewportStart, item.end, scale) * columnWidth;
5737
5968
  const baseWidth = Math.max(columnWidth * 0.25, baseRight - baseLeft);
@@ -5937,7 +6168,7 @@ function DependencyLayer({
5937
6168
  timelineWidth,
5938
6169
  totalHeight
5939
6170
  }) {
5940
- const itemById = React131__default.useMemo(() => {
6171
+ const itemById = React136__default.useMemo(() => {
5941
6172
  const m = /* @__PURE__ */ new Map();
5942
6173
  for (const it of items) m.set(it.id, it);
5943
6174
  return m;
@@ -6036,9 +6267,9 @@ function KanbanColumn({ column, isOver }) {
6036
6267
  ] });
6037
6268
  }
6038
6269
  function Kanban({ columns: initialColumns, onMoveCard, className }) {
6039
- const [cols, setCols] = React131__default.useState(initialColumns);
6040
- const [activeCard, setActiveCard] = React131__default.useState(null);
6041
- const [overColId, setOverColId] = React131__default.useState(null);
6270
+ const [cols, setCols] = React136__default.useState(initialColumns);
6271
+ const [activeCard, setActiveCard] = React136__default.useState(null);
6272
+ const [overColId, setOverColId] = React136__default.useState(null);
6042
6273
  const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));
6043
6274
  const findColByCard = (cardId) => cols.find((c) => c.cards.some((card) => card.id === cardId));
6044
6275
  const onDragStart = ({ active }) => {
@@ -6107,10 +6338,10 @@ function ToolbarButton({
6107
6338
  ] });
6108
6339
  }
6109
6340
  function LinkPopover({ editor }) {
6110
- const [open, setOpen] = React131__default.useState(false);
6111
- const [url, setUrl] = React131__default.useState("");
6341
+ const [open, setOpen] = React136__default.useState(false);
6342
+ const [url, setUrl] = React136__default.useState("");
6112
6343
  const isActive = editor.isActive("link");
6113
- React131__default.useEffect(() => {
6344
+ React136__default.useEffect(() => {
6114
6345
  if (!open) return;
6115
6346
  const current = editor.getAttributes("link")?.href;
6116
6347
  setUrl(current ?? "");
@@ -6575,7 +6806,7 @@ var proseClasses = cn(
6575
6806
  // Selected cells in tables
6576
6807
  "[&_.selectedCell]:bg-[hsl(var(--accent))]/40"
6577
6808
  );
6578
- var RichEditor = React131__default.forwardRef(
6809
+ var RichEditor = React136__default.forwardRef(
6579
6810
  function RichEditor2({
6580
6811
  value,
6581
6812
  defaultValue,
@@ -6589,12 +6820,12 @@ var RichEditor = React131__default.forwardRef(
6589
6820
  }, ref) {
6590
6821
  const isControlled = value !== void 0;
6591
6822
  const initialContent = isControlled ? value ?? "" : defaultValue ?? "";
6592
- const debounceRef = React131__default.useRef(null);
6593
- const onChangeRef = React131__default.useRef(onChange);
6594
- React131__default.useEffect(() => {
6823
+ const debounceRef = React136__default.useRef(null);
6824
+ const onChangeRef = React136__default.useRef(onChange);
6825
+ React136__default.useEffect(() => {
6595
6826
  onChangeRef.current = onChange;
6596
6827
  }, [onChange]);
6597
- const [charCount, setCharCount] = React131__default.useState(0);
6828
+ const [charCount, setCharCount] = React136__default.useState(0);
6598
6829
  const editor = useEditor({
6599
6830
  editable,
6600
6831
  content: initialContent,
@@ -6637,18 +6868,18 @@ var RichEditor = React131__default.forwardRef(
6637
6868
  }, 100);
6638
6869
  }
6639
6870
  });
6640
- React131__default.useEffect(() => {
6871
+ React136__default.useEffect(() => {
6641
6872
  if (!editor || !isControlled) return;
6642
6873
  const current = editor.getHTML();
6643
6874
  if ((value ?? "") !== current) {
6644
6875
  editor.commands.setContent(value ?? "", { emitUpdate: false });
6645
6876
  }
6646
6877
  }, [editor, isControlled, value]);
6647
- React131__default.useEffect(() => {
6878
+ React136__default.useEffect(() => {
6648
6879
  if (!editor) return;
6649
6880
  if (editor.isEditable !== editable) editor.setEditable(editable);
6650
6881
  }, [editor, editable]);
6651
- React131__default.useEffect(() => {
6882
+ React136__default.useEffect(() => {
6652
6883
  return () => {
6653
6884
  if (debounceRef.current) clearTimeout(debounceRef.current);
6654
6885
  };
@@ -6746,10 +6977,10 @@ function ToggleButtonGroup(props) {
6746
6977
  props.onChange(val);
6747
6978
  }
6748
6979
  };
6749
- return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children: React131__default.Children.map(children, (child) => {
6750
- if (!React131__default.isValidElement(child)) return child;
6980
+ return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center gap-1 rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.4)] p-0.5", className), children: React136__default.Children.map(children, (child) => {
6981
+ if (!React136__default.isValidElement(child)) return child;
6751
6982
  const tb = child;
6752
- return React131__default.cloneElement(tb, {
6983
+ return React136__default.cloneElement(tb, {
6753
6984
  pressed: isPressed(tb.props.value),
6754
6985
  onClick: () => handleClick(tb.props.value)
6755
6986
  });
@@ -7104,7 +7335,7 @@ function useChecklist() {
7104
7335
  if (!ctx) throw new Error("<ChecklistItem> must be used inside <Checklist>");
7105
7336
  return ctx;
7106
7337
  }
7107
- var Checklist = React131__default.forwardRef(
7338
+ var Checklist = React136__default.forwardRef(
7108
7339
  ({
7109
7340
  title = "Getting started",
7110
7341
  description,
@@ -7120,7 +7351,7 @@ var Checklist = React131__default.forwardRef(
7120
7351
  }, ref) => {
7121
7352
  const [internalCompleted, setInternalCompleted] = useState({});
7122
7353
  const [open, setOpen] = useState(defaultOpen);
7123
- const completedFiredRef = React131__default.useRef(false);
7354
+ const completedFiredRef = React136__default.useRef(false);
7124
7355
  const isControlled = controlledCompleted !== void 0;
7125
7356
  const completed = isControlled ? controlledCompleted : internalCompleted;
7126
7357
  const setCompleted = useCallback(
@@ -7132,8 +7363,8 @@ var Checklist = React131__default.forwardRef(
7132
7363
  );
7133
7364
  const total = useMemo(() => {
7134
7365
  let n = 0;
7135
- React131__default.Children.forEach(children, (child) => {
7136
- if (React131__default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
7366
+ React136__default.Children.forEach(children, (child) => {
7367
+ if (React136__default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
7137
7368
  n++;
7138
7369
  }
7139
7370
  });
@@ -7143,7 +7374,7 @@ var Checklist = React131__default.forwardRef(
7143
7374
  () => Object.values(completed).filter(Boolean).length,
7144
7375
  [completed]
7145
7376
  );
7146
- React131__default.useEffect(() => {
7377
+ React136__default.useEffect(() => {
7147
7378
  if (!completedFiredRef.current && total > 0 && doneCount >= total) {
7148
7379
  completedFiredRef.current = true;
7149
7380
  onComplete?.();
@@ -7204,7 +7435,7 @@ var Checklist = React131__default.forwardRef(
7204
7435
  }
7205
7436
  );
7206
7437
  Checklist.displayName = "Checklist";
7207
- var ChecklistItem = React131__default.forwardRef(
7438
+ var ChecklistItem = React136__default.forwardRef(
7208
7439
  ({ id, title, description, action, onActivate, className, ...props }, ref) => {
7209
7440
  const { completed, setCompleted } = useChecklist();
7210
7441
  const done = !!completed[id];
@@ -7552,7 +7783,7 @@ function Field({ label, description, error, required, children, className }) {
7552
7783
  error && /* @__PURE__ */ jsx(FieldError, { children: error })
7553
7784
  ] });
7554
7785
  }
7555
- var FieldLabel = React131__default.forwardRef(
7786
+ var FieldLabel = React136__default.forwardRef(
7556
7787
  ({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxs(
7557
7788
  "label",
7558
7789
  {
@@ -7567,7 +7798,7 @@ var FieldLabel = React131__default.forwardRef(
7567
7798
  )
7568
7799
  );
7569
7800
  FieldLabel.displayName = "FieldLabel";
7570
- var FieldDescription = React131__default.forwardRef(
7801
+ var FieldDescription = React136__default.forwardRef(
7571
7802
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7572
7803
  "p",
7573
7804
  {
@@ -7578,7 +7809,7 @@ var FieldDescription = React131__default.forwardRef(
7578
7809
  )
7579
7810
  );
7580
7811
  FieldDescription.displayName = "FieldDescription";
7581
- var FieldError = React131__default.forwardRef(
7812
+ var FieldError = React136__default.forwardRef(
7582
7813
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7583
7814
  "p",
7584
7815
  {
@@ -7679,7 +7910,7 @@ function defaultFor(format3, showAlpha) {
7679
7910
  if (format3 === "rgb") return showAlpha ? "rgba(59, 130, 246, 1)" : "rgb(59, 130, 246)";
7680
7911
  return showAlpha ? "hsla(217, 91%, 60%, 1)" : "hsl(217, 91%, 60%)";
7681
7912
  }
7682
- var ColorPicker = React131__default.forwardRef(
7913
+ var ColorPicker = React136__default.forwardRef(
7683
7914
  ({
7684
7915
  value: valueProp,
7685
7916
  defaultValue,
@@ -7694,21 +7925,21 @@ var ColorPicker = React131__default.forwardRef(
7694
7925
  }, ref) => {
7695
7926
  const fallback = defaultValue ?? defaultFor(format3, showAlpha);
7696
7927
  const isControlled = valueProp !== void 0;
7697
- const [internal, setInternal] = React131__default.useState(fallback);
7928
+ const [internal, setInternal] = React136__default.useState(fallback);
7698
7929
  const value = isControlled ? valueProp : internal;
7699
- const [draft, setDraft] = React131__default.useState(value);
7700
- const [draftValid, setDraftValid] = React131__default.useState(true);
7701
- React131__default.useEffect(() => {
7930
+ const [draft, setDraft] = React136__default.useState(value);
7931
+ const [draftValid, setDraftValid] = React136__default.useState(true);
7932
+ React136__default.useEffect(() => {
7702
7933
  setDraft(value);
7703
7934
  setDraftValid(true);
7704
7935
  }, [value]);
7705
- const [eyeDropperSupported, setEyeDropperSupported] = React131__default.useState(false);
7706
- React131__default.useEffect(() => {
7936
+ const [eyeDropperSupported, setEyeDropperSupported] = React136__default.useState(false);
7937
+ React136__default.useEffect(() => {
7707
7938
  if (typeof window !== "undefined" && "EyeDropper" in window) {
7708
7939
  setEyeDropperSupported(true);
7709
7940
  }
7710
7941
  }, []);
7711
- const commit = React131__default.useCallback(
7942
+ const commit = React136__default.useCallback(
7712
7943
  (next) => {
7713
7944
  if (!isControlled) setInternal(next);
7714
7945
  onValueChange?.(next);
@@ -7945,7 +8176,7 @@ function FileUploadPreview({ files, onRemove, className }) {
7945
8176
  ] })
7946
8177
  ] }, i)) });
7947
8178
  }
7948
- var FloatingLabelInput = React131__default.forwardRef(
8179
+ var FloatingLabelInput = React136__default.forwardRef(
7949
8180
  ({ label, error, hint, wrapperClassName, className, id, value, defaultValue, onFocus, onBlur, onChange, ...props }, ref) => {
7950
8181
  const autoId = useId();
7951
8182
  const inputId = id ?? autoId;
@@ -8029,7 +8260,7 @@ function FormField(props) {
8029
8260
  function FormItem({ className, ...props }) {
8030
8261
  return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
8031
8262
  }
8032
- var FormLabel = React131__default.forwardRef(
8263
+ var FormLabel = React136__default.forwardRef(
8033
8264
  ({ className, error, ...props }, ref) => /* @__PURE__ */ jsx(
8034
8265
  "label",
8035
8266
  {
@@ -8044,7 +8275,7 @@ var FormLabel = React131__default.forwardRef(
8044
8275
  )
8045
8276
  );
8046
8277
  FormLabel.displayName = "FormLabel";
8047
- var FormControl = React131__default.forwardRef(
8278
+ var FormControl = React136__default.forwardRef(
8048
8279
  ({ ...props }, ref) => {
8049
8280
  const id = useId();
8050
8281
  return /* @__PURE__ */ jsx("div", { ref, id, ...props });
@@ -8101,7 +8332,7 @@ function getStrength(value) {
8101
8332
  if (score <= 3) return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
8102
8333
  return { level: "strong", width: "w-full", color: "bg-green-500" };
8103
8334
  }
8104
- var PasswordInput = React131__default.forwardRef(
8335
+ var PasswordInput = React136__default.forwardRef(
8105
8336
  ({ className, strength, ...props }, ref) => {
8106
8337
  const [show, setShow] = useState(false);
8107
8338
  const value = String(props.value ?? "");
@@ -8136,7 +8367,7 @@ var PasswordInput = React131__default.forwardRef(
8136
8367
  }
8137
8368
  );
8138
8369
  PasswordInput.displayName = "PasswordInput";
8139
- var SearchInput = React131__default.forwardRef(
8370
+ var SearchInput = React136__default.forwardRef(
8140
8371
  ({ className, shortcut, onClear, onChange, value: valueProp, defaultValue, ...props }, ref) => {
8141
8372
  const [internalValue, setInternalValue] = useState(defaultValue ?? "");
8142
8373
  const isControlled = valueProp !== void 0;
@@ -8199,7 +8430,7 @@ function StepForm({ steps, onSubmit, children, className }) {
8199
8430
  isFirst: currentStep === 0,
8200
8431
  isLast: currentStep === totalSteps - 1
8201
8432
  };
8202
- const childArray = React131__default.Children.toArray(children);
8433
+ const childArray = React136__default.Children.toArray(children);
8203
8434
  const currentChild = childArray[currentStep];
8204
8435
  return /* @__PURE__ */ jsx(StepFormContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-6", className), children: [
8205
8436
  /* @__PURE__ */ jsx(StepIndicator, { steps, currentStep }),
@@ -8208,7 +8439,7 @@ function StepForm({ steps, onSubmit, children, className }) {
8208
8439
  ] }) });
8209
8440
  }
8210
8441
  function StepIndicator({ steps, currentStep }) {
8211
- return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(React131__default.Fragment, { children: [
8442
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(React136__default.Fragment, { children: [
8212
8443
  i > 0 && /* @__PURE__ */ jsx("div", { className: cn("h-px flex-1 bg-[hsl(var(--border))]", i <= currentStep && "bg-[hsl(var(--primary))]") }),
8213
8444
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1", children: [
8214
8445
  /* @__PURE__ */ jsx("div", { className: cn(
@@ -8237,7 +8468,7 @@ function StepFormNavigation({ onSubmit, submitLabel = "Submit" }) {
8237
8468
  isLast ? /* @__PURE__ */ jsx(Button, { type: "button", onClick: onSubmit, children: submitLabel }) : /* @__PURE__ */ jsx(Button, { type: "button", onClick: next, children: "Next" })
8238
8469
  ] });
8239
8470
  }
8240
- var Tags = React131__default.forwardRef(
8471
+ var Tags = React136__default.forwardRef(
8241
8472
  ({
8242
8473
  value: valueProp,
8243
8474
  defaultValue,
@@ -8253,25 +8484,25 @@ var Tags = React131__default.forwardRef(
8253
8484
  ...props
8254
8485
  }, ref) => {
8255
8486
  const isControlled = valueProp !== void 0;
8256
- const [internal, setInternal] = React131__default.useState(defaultValue ?? []);
8487
+ const [internal, setInternal] = React136__default.useState(defaultValue ?? []);
8257
8488
  const tags = isControlled ? valueProp : internal;
8258
- const [input, setInput] = React131__default.useState("");
8259
- const [error, setError] = React131__default.useState(null);
8260
- const [focused, setFocused] = React131__default.useState(false);
8261
- const [activeIndex, setActiveIndex] = React131__default.useState(0);
8262
- const inputRef = React131__default.useRef(null);
8263
- const containerRef = React131__default.useRef(null);
8264
- React131__default.useImperativeHandle(ref, () => containerRef.current);
8489
+ const [input, setInput] = React136__default.useState("");
8490
+ const [error, setError] = React136__default.useState(null);
8491
+ const [focused, setFocused] = React136__default.useState(false);
8492
+ const [activeIndex, setActiveIndex] = React136__default.useState(0);
8493
+ const inputRef = React136__default.useRef(null);
8494
+ const containerRef = React136__default.useRef(null);
8495
+ React136__default.useImperativeHandle(ref, () => containerRef.current);
8265
8496
  const atMax = maxTags !== void 0 && tags.length >= maxTags;
8266
8497
  const inputDisabled = disabled || atMax;
8267
- const commit = React131__default.useCallback(
8498
+ const commit = React136__default.useCallback(
8268
8499
  (next) => {
8269
8500
  if (!isControlled) setInternal(next);
8270
8501
  onValueChange?.(next);
8271
8502
  },
8272
8503
  [isControlled, onValueChange]
8273
8504
  );
8274
- const addTag = React131__default.useCallback(
8505
+ const addTag = React136__default.useCallback(
8275
8506
  (raw) => {
8276
8507
  const tag = raw.trim();
8277
8508
  if (!tag) return false;
@@ -8297,20 +8528,20 @@ var Tags = React131__default.forwardRef(
8297
8528
  },
8298
8529
  [tags, allowDuplicates, validate, atMax, commit]
8299
8530
  );
8300
- const removeTag = React131__default.useCallback(
8531
+ const removeTag = React136__default.useCallback(
8301
8532
  (index) => {
8302
8533
  commit(tags.filter((_, i) => i !== index));
8303
8534
  setError(null);
8304
8535
  },
8305
8536
  [tags, commit]
8306
8537
  );
8307
- const filteredSuggestions = React131__default.useMemo(() => {
8538
+ const filteredSuggestions = React136__default.useMemo(() => {
8308
8539
  if (!suggestions || !input.trim()) return [];
8309
8540
  const q = input.trim().toLowerCase();
8310
8541
  return suggestions.filter((s) => s.toLowerCase().includes(q)).filter((s) => allowDuplicates || !tags.includes(s)).slice(0, 8);
8311
8542
  }, [suggestions, input, tags, allowDuplicates]);
8312
8543
  const showPopover = focused && !inputDisabled && filteredSuggestions.length > 0;
8313
- React131__default.useEffect(() => {
8544
+ React136__default.useEffect(() => {
8314
8545
  if (activeIndex >= filteredSuggestions.length) setActiveIndex(0);
8315
8546
  }, [filteredSuggestions.length, activeIndex]);
8316
8547
  const handleKeyDown = (e) => {
@@ -8452,7 +8683,7 @@ var Tags = React131__default.forwardRef(
8452
8683
  }
8453
8684
  );
8454
8685
  Tags.displayName = "Tags";
8455
- var AppShellCtx = React131__default.createContext({
8686
+ var AppShellCtx = React136__default.createContext({
8456
8687
  collapsed: false,
8457
8688
  setCollapsed: () => {
8458
8689
  },
@@ -8460,12 +8691,12 @@ var AppShellCtx = React131__default.createContext({
8460
8691
  setMobileOpen: () => {
8461
8692
  }
8462
8693
  });
8463
- var useAppShell = () => React131__default.useContext(AppShellCtx);
8464
- var AppShell = React131__default.forwardRef(
8694
+ var useAppShell = () => React136__default.useContext(AppShellCtx);
8695
+ var AppShell = React136__default.forwardRef(
8465
8696
  ({ className, defaultCollapsed = false, children, ...props }, ref) => {
8466
- const [collapsed, setCollapsed] = React131__default.useState(defaultCollapsed);
8467
- const [mobileOpen, setMobileOpen] = React131__default.useState(false);
8468
- React131__default.useEffect(() => {
8697
+ const [collapsed, setCollapsed] = React136__default.useState(defaultCollapsed);
8698
+ const [mobileOpen, setMobileOpen] = React136__default.useState(false);
8699
+ React136__default.useEffect(() => {
8469
8700
  const handleClick = (e) => {
8470
8701
  const target = e.target;
8471
8702
  if (target.closest("a[href]") || target.closest("[data-mobile-close]")) {
@@ -8496,7 +8727,7 @@ var AppShell = React131__default.forwardRef(
8496
8727
  }
8497
8728
  );
8498
8729
  AppShell.displayName = "AppShell";
8499
- var AppShellSidebar = React131__default.forwardRef(
8730
+ var AppShellSidebar = React136__default.forwardRef(
8500
8731
  ({ className, ...props }, ref) => {
8501
8732
  const { mobileOpen } = useAppShell();
8502
8733
  return /* @__PURE__ */ jsx(
@@ -8517,11 +8748,11 @@ var AppShellSidebar = React131__default.forwardRef(
8517
8748
  }
8518
8749
  );
8519
8750
  AppShellSidebar.displayName = "AppShellSidebar";
8520
- var AppShellMain = React131__default.forwardRef(
8751
+ var AppShellMain = React136__default.forwardRef(
8521
8752
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 flex flex-col overflow-auto", className), ...props })
8522
8753
  );
8523
8754
  AppShellMain.displayName = "AppShellMain";
8524
- var MobileSidebarTrigger = React131__default.forwardRef(
8755
+ var MobileSidebarTrigger = React136__default.forwardRef(
8525
8756
  ({ className, ...props }, ref) => {
8526
8757
  const { mobileOpen, setMobileOpen } = useAppShell();
8527
8758
  return /* @__PURE__ */ jsx(
@@ -8550,7 +8781,7 @@ var sizeMap5 = {
8550
8781
  xl: "max-w-screen-xl",
8551
8782
  full: "max-w-full"
8552
8783
  };
8553
- var Container = React131__default.forwardRef(
8784
+ var Container = React136__default.forwardRef(
8554
8785
  ({ className, size = "lg", noPadding = false, ...props }, ref) => /* @__PURE__ */ jsx(
8555
8786
  "div",
8556
8787
  {
@@ -8566,7 +8797,7 @@ var Container = React131__default.forwardRef(
8566
8797
  )
8567
8798
  );
8568
8799
  Container.displayName = "Container";
8569
- var Navbar = React131__default.forwardRef(
8800
+ var Navbar = React136__default.forwardRef(
8570
8801
  ({ className, sticky = false, border = true, ...props }, ref) => /* @__PURE__ */ jsx(
8571
8802
  "nav",
8572
8803
  {
@@ -8582,7 +8813,7 @@ var Navbar = React131__default.forwardRef(
8582
8813
  )
8583
8814
  );
8584
8815
  Navbar.displayName = "Navbar";
8585
- var NavbarBrand = React131__default.forwardRef(
8816
+ var NavbarBrand = React136__default.forwardRef(
8586
8817
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 px-4 shrink-0", className), ...props })
8587
8818
  );
8588
8819
  NavbarBrand.displayName = "NavbarBrand";
@@ -8591,7 +8822,7 @@ var alignMap = {
8591
8822
  center: "justify-center flex-1",
8592
8823
  end: "justify-end ml-auto"
8593
8824
  };
8594
- var NavbarContent = React131__default.forwardRef(
8825
+ var NavbarContent = React136__default.forwardRef(
8595
8826
  ({ className, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(
8596
8827
  "div",
8597
8828
  {
@@ -8602,11 +8833,11 @@ var NavbarContent = React131__default.forwardRef(
8602
8833
  )
8603
8834
  );
8604
8835
  NavbarContent.displayName = "NavbarContent";
8605
- var NavbarItem = React131__default.forwardRef(
8836
+ var NavbarItem = React136__default.forwardRef(
8606
8837
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props })
8607
8838
  );
8608
8839
  NavbarItem.displayName = "NavbarItem";
8609
- var Page = React131__default.forwardRef(
8840
+ var Page = React136__default.forwardRef(
8610
8841
  ({ className, maxWidth, style, ...props }, ref) => /* @__PURE__ */ jsx(
8611
8842
  "div",
8612
8843
  {
@@ -8618,7 +8849,7 @@ var Page = React131__default.forwardRef(
8618
8849
  )
8619
8850
  );
8620
8851
  Page.displayName = "Page";
8621
- var PageHeader = React131__default.forwardRef(
8852
+ var PageHeader = React136__default.forwardRef(
8622
8853
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8623
8854
  "div",
8624
8855
  {
@@ -8629,7 +8860,7 @@ var PageHeader = React131__default.forwardRef(
8629
8860
  )
8630
8861
  );
8631
8862
  PageHeader.displayName = "PageHeader";
8632
- var PageTitle = React131__default.forwardRef(
8863
+ var PageTitle = React136__default.forwardRef(
8633
8864
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8634
8865
  "h1",
8635
8866
  {
@@ -8640,19 +8871,19 @@ var PageTitle = React131__default.forwardRef(
8640
8871
  )
8641
8872
  );
8642
8873
  PageTitle.displayName = "PageTitle";
8643
- var PageDescription = React131__default.forwardRef(
8874
+ var PageDescription = React136__default.forwardRef(
8644
8875
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className), ...props })
8645
8876
  );
8646
8877
  PageDescription.displayName = "PageDescription";
8647
- var PageActions = React131__default.forwardRef(
8878
+ var PageActions = React136__default.forwardRef(
8648
8879
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 shrink-0", className), ...props })
8649
8880
  );
8650
8881
  PageActions.displayName = "PageActions";
8651
- var PageBody = React131__default.forwardRef(
8882
+ var PageBody = React136__default.forwardRef(
8652
8883
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 p-6 flex flex-col gap-6", className), ...props })
8653
8884
  );
8654
8885
  PageBody.displayName = "PageBody";
8655
- var ResizeBox = React131__default.forwardRef(
8886
+ var ResizeBox = React136__default.forwardRef(
8656
8887
  ({ className, resize = "both", minWidth = 100, minHeight = 100, style, ...props }, ref) => /* @__PURE__ */ jsx(
8657
8888
  "div",
8658
8889
  {
@@ -8669,7 +8900,7 @@ var HandleIcon = () => /* @__PURE__ */ jsxs("svg", { width: "10", height: "10",
8669
8900
  /* @__PURE__ */ jsx("path", { d: "M8 5L5 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
8670
8901
  /* @__PURE__ */ jsx("path", { d: "M8 8L8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
8671
8902
  ] });
8672
- var ResizeHandle = React131__default.forwardRef(
8903
+ var ResizeHandle = React136__default.forwardRef(
8673
8904
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8674
8905
  "div",
8675
8906
  {
@@ -8685,16 +8916,16 @@ var ResizeHandle = React131__default.forwardRef(
8685
8916
  )
8686
8917
  );
8687
8918
  ResizeHandle.displayName = "ResizeHandle";
8688
- var SidebarCtx2 = React131__default.createContext({ collapsed: false });
8689
- var useSidebarCtx = () => React131__default.useContext(SidebarCtx2);
8919
+ var SidebarCtx2 = React136__default.createContext({ collapsed: false });
8920
+ var useSidebarCtx = () => React136__default.useContext(SidebarCtx2);
8690
8921
  var makeSlot = (name, cls) => {
8691
- const C = React131__default.forwardRef(
8922
+ const C = React136__default.forwardRef(
8692
8923
  ({ className, ...p }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn(cls, className), ...p })
8693
8924
  );
8694
8925
  C.displayName = name;
8695
8926
  return C;
8696
8927
  };
8697
- var Sidebar2 = React131__default.forwardRef(
8928
+ var Sidebar2 = React136__default.forwardRef(
8698
8929
  ({ className, collapsed = false, onCollapse, width = "240px", style, children, ...props }, ref) => /* @__PURE__ */ jsx(SidebarCtx2.Provider, { value: { collapsed }, children: /* @__PURE__ */ jsxs(
8699
8930
  "div",
8700
8931
  {
@@ -8722,7 +8953,7 @@ var SidebarContent = makeSlot("SidebarContent", "flex-1 overflow-y-auto py-2");
8722
8953
  var SidebarFooter2 = makeSlot("SidebarFooter", "px-3 py-3 border-t border-[hsl(var(--border))] shrink-0");
8723
8954
  var SidebarGroup = makeSlot("SidebarGroup", "mb-2");
8724
8955
  var SidebarSeparator2 = makeSlot("SidebarSeparator", "h-px bg-[hsl(var(--border))] mx-3 my-2");
8725
- var SidebarGroupLabel = React131__default.forwardRef(
8956
+ var SidebarGroupLabel = React136__default.forwardRef(
8726
8957
  ({ className, ...props }, ref) => {
8727
8958
  const { collapsed } = useSidebarCtx();
8728
8959
  return /* @__PURE__ */ jsx(
@@ -8736,7 +8967,7 @@ var SidebarGroupLabel = React131__default.forwardRef(
8736
8967
  }
8737
8968
  );
8738
8969
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
8739
- var SidebarItem2 = React131__default.forwardRef(
8970
+ var SidebarItem2 = React136__default.forwardRef(
8740
8971
  ({ className, icon, label, active, href, badge, onClick, ...props }, ref) => {
8741
8972
  const { collapsed } = useSidebarCtx();
8742
8973
  const cls = cn(
@@ -8755,11 +8986,11 @@ var SidebarItem2 = React131__default.forwardRef(
8755
8986
  }
8756
8987
  );
8757
8988
  SidebarItem2.displayName = "SidebarItem";
8758
- var SplitPage = React131__default.forwardRef(
8989
+ var SplitPage = React136__default.forwardRef(
8759
8990
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-full w-full overflow-hidden", className), ...props })
8760
8991
  );
8761
8992
  SplitPage.displayName = "SplitPage";
8762
- var SplitPageList = React131__default.forwardRef(
8993
+ var SplitPageList = React136__default.forwardRef(
8763
8994
  ({ className, width = "320px", style, ...props }, ref) => /* @__PURE__ */ jsx(
8764
8995
  "div",
8765
8996
  {
@@ -8771,7 +9002,7 @@ var SplitPageList = React131__default.forwardRef(
8771
9002
  )
8772
9003
  );
8773
9004
  SplitPageList.displayName = "SplitPageList";
8774
- var SplitPageDetail = React131__default.forwardRef(
9005
+ var SplitPageDetail = React136__default.forwardRef(
8775
9006
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 h-full overflow-auto", className), ...props })
8776
9007
  );
8777
9008
  SplitPageDetail.displayName = "SplitPageDetail";
@@ -8796,7 +9027,7 @@ var justifyMap = {
8796
9027
  around: "justify-around",
8797
9028
  evenly: "justify-evenly"
8798
9029
  };
8799
- var Stack = React131__default.forwardRef(
9030
+ var Stack = React136__default.forwardRef(
8800
9031
  ({ className, gap, direction = "col", align, justify, wrap, style, ...props }, ref) => /* @__PURE__ */ jsx(
8801
9032
  "div",
8802
9033
  {
@@ -8815,15 +9046,15 @@ var Stack = React131__default.forwardRef(
8815
9046
  )
8816
9047
  );
8817
9048
  Stack.displayName = "Stack";
8818
- var HStack = React131__default.forwardRef(
9049
+ var HStack = React136__default.forwardRef(
8819
9050
  (props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "row", ...props })
8820
9051
  );
8821
9052
  HStack.displayName = "HStack";
8822
- var VStack = React131__default.forwardRef(
9053
+ var VStack = React136__default.forwardRef(
8823
9054
  (props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "col", ...props })
8824
9055
  );
8825
9056
  VStack.displayName = "VStack";
8826
- var PageLayout = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9057
+ var PageLayout = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8827
9058
  "div",
8828
9059
  {
8829
9060
  ref,
@@ -8833,7 +9064,7 @@ var PageLayout = React131__default.forwardRef(({ className, ...props }, ref) =>
8833
9064
  }
8834
9065
  ));
8835
9066
  PageLayout.displayName = "PageLayout";
8836
- var PageHeader2 = React131__default.forwardRef(
9067
+ var PageHeader2 = React136__default.forwardRef(
8837
9068
  ({ className, title, description, actions, back, children }, ref) => /* @__PURE__ */ jsxs(
8838
9069
  "div",
8839
9070
  {
@@ -8855,7 +9086,7 @@ var PageHeader2 = React131__default.forwardRef(
8855
9086
  )
8856
9087
  );
8857
9088
  PageHeader2.displayName = "PageHeader";
8858
- var PageContainer = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9089
+ var PageContainer = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8859
9090
  "div",
8860
9091
  {
8861
9092
  ref,
@@ -8869,7 +9100,7 @@ var PageContainer = React131__default.forwardRef(({ className, ...props }, ref)
8869
9100
  }
8870
9101
  ));
8871
9102
  PageContainer.displayName = "PageContainer";
8872
- var PageMain = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9103
+ var PageMain = React136__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8873
9104
  "div",
8874
9105
  {
8875
9106
  ref,
@@ -9315,7 +9546,7 @@ var directionClasses = {
9315
9546
  bl: "bg-gradient-to-bl",
9316
9547
  l: "bg-gradient-to-l"
9317
9548
  };
9318
- var GradientHeading = React131__default.forwardRef(
9549
+ var GradientHeading = React136__default.forwardRef(
9319
9550
  ({
9320
9551
  as: Tag = "h2",
9321
9552
  preset = "primary",
@@ -9361,7 +9592,7 @@ function formatNumber(value, decimals, format3, locale) {
9361
9592
  }
9362
9593
  return decimals > 0 ? value.toFixed(decimals) : String(Math.round(value));
9363
9594
  }
9364
- var AnimatedNumber = React131__default.forwardRef(
9595
+ var AnimatedNumber = React136__default.forwardRef(
9365
9596
  ({
9366
9597
  value,
9367
9598
  from = 0,
@@ -9381,7 +9612,7 @@ var AnimatedNumber = React131__default.forwardRef(
9381
9612
  const startTimeRef = useRef(null);
9382
9613
  const containerRef = useRef(null);
9383
9614
  const hasStarted = useRef(false);
9384
- const runAnimation = React131__default.useCallback(
9615
+ const runAnimation = React136__default.useCallback(
9385
9616
  (startFrom) => {
9386
9617
  if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
9387
9618
  startTimeRef.current = null;
@@ -9493,7 +9724,7 @@ function TextReveal({
9493
9724
  }
9494
9725
  }, [autoStart, delay]);
9495
9726
  const units = mode === "chars" ? text.split("") : mode === "words" ? text.split(" ") : [text];
9496
- return React131__default.createElement(
9727
+ return React136__default.createElement(
9497
9728
  Tag,
9498
9729
  {
9499
9730
  ref: containerRef,
@@ -9573,7 +9804,7 @@ function Typewriter({
9573
9804
  if (timerRef.current) clearTimeout(timerRef.current);
9574
9805
  };
9575
9806
  }, [display, phase, wordIdx, words, typeSpeed, deleteSpeed, pauseAfter, loop]);
9576
- return React131__default.createElement(
9807
+ return React136__default.createElement(
9577
9808
  Tag,
9578
9809
  {
9579
9810
  "data-slot": "typewriter",
@@ -9612,9 +9843,9 @@ var headingVariants = cva("font-heading tracking-tight text-foreground", {
9612
9843
  },
9613
9844
  defaultVariants: { size: "lg", tone: "default" }
9614
9845
  });
9615
- var Heading = React131__default.forwardRef(
9846
+ var Heading = React136__default.forwardRef(
9616
9847
  ({ as: Tag = "h2", size, tone, className, ...props }, ref) => {
9617
- return React131__default.createElement(Tag, {
9848
+ return React136__default.createElement(Tag, {
9618
9849
  ref,
9619
9850
  "data-slot": "heading",
9620
9851
  className: cn(headingVariants({ size, tone }), className),
@@ -9644,9 +9875,9 @@ var bodyVariants = cva("font-sans", {
9644
9875
  },
9645
9876
  defaultVariants: { size: "md", tone: "default", weight: "normal" }
9646
9877
  });
9647
- var Body = React131__default.forwardRef(
9878
+ var Body = React136__default.forwardRef(
9648
9879
  ({ as: Tag = "p", size, tone, weight, className, ...props }, ref) => {
9649
- return React131__default.createElement(Tag, {
9880
+ return React136__default.createElement(Tag, {
9650
9881
  ref,
9651
9882
  "data-slot": "body",
9652
9883
  className: cn(bodyVariants({ size, tone, weight }), className),
@@ -9665,7 +9896,7 @@ var captionVariants = cva("font-sans text-[11px] font-semibold uppercase trackin
9665
9896
  },
9666
9897
  defaultVariants: { tone: "default" }
9667
9898
  });
9668
- var Caption = React131__default.forwardRef(
9899
+ var Caption = React136__default.forwardRef(
9669
9900
  ({ tone, className, ...props }, ref) => /* @__PURE__ */ jsx(
9670
9901
  "span",
9671
9902
  {
@@ -9677,7 +9908,7 @@ var Caption = React131__default.forwardRef(
9677
9908
  )
9678
9909
  );
9679
9910
  Caption.displayName = "Caption";
9680
- var Code3 = React131__default.forwardRef(
9911
+ var Code3 = React136__default.forwardRef(
9681
9912
  ({ block, className, children, ...props }, ref) => {
9682
9913
  if (block) {
9683
9914
  return /* @__PURE__ */ jsx(
@@ -9729,7 +9960,7 @@ var presetStyles = {
9729
9960
  },
9730
9961
  custom: {}
9731
9962
  };
9732
- var GradientBackground = React131__default.forwardRef(
9963
+ var GradientBackground = React136__default.forwardRef(
9733
9964
  ({
9734
9965
  fixed = false,
9735
9966
  preset = "slate",
@@ -9788,7 +10019,7 @@ var DEFAULT_COLORS4 = [
9788
10019
  "hsl(280 100% 70% / 0.25)",
9789
10020
  "hsl(217 33% 17% / 0.4)"
9790
10021
  ];
9791
- var AnimatedGradient = React131__default.forwardRef(
10022
+ var AnimatedGradient = React136__default.forwardRef(
9792
10023
  ({
9793
10024
  colors = DEFAULT_COLORS4,
9794
10025
  speed = 1,
@@ -9907,7 +10138,7 @@ var AnimatedGradient = React131__default.forwardRef(
9907
10138
  }
9908
10139
  );
9909
10140
  AnimatedGradient.displayName = "AnimatedGradient";
9910
- var DottedBackground = React131__default.forwardRef(
10141
+ var DottedBackground = React136__default.forwardRef(
9911
10142
  ({
9912
10143
  color,
9913
10144
  dotSize = 1,
@@ -9954,7 +10185,7 @@ var DottedBackground = React131__default.forwardRef(
9954
10185
  }
9955
10186
  );
9956
10187
  DottedBackground.displayName = "DottedBackground";
9957
- var NoiseBackground = React131__default.forwardRef(
10188
+ var NoiseBackground = React136__default.forwardRef(
9958
10189
  ({
9959
10190
  opacity = 0.04,
9960
10191
  frequency = 0.65,
@@ -10050,7 +10281,7 @@ var DEFAULT_COLORS5 = [
10050
10281
  [0.55, 0.3, 0.95]
10051
10282
  // chart-3 violet
10052
10283
  ];
10053
- var HeroShaderA = React131__default.forwardRef(
10284
+ var HeroShaderA = React136__default.forwardRef(
10054
10285
  ({
10055
10286
  className,
10056
10287
  colors = DEFAULT_COLORS5,
@@ -10064,7 +10295,7 @@ var HeroShaderA = React131__default.forwardRef(
10064
10295
  const wrapRef = useRef(null);
10065
10296
  const canvasRef = useRef(null);
10066
10297
  const fallbackRef = useRef(false);
10067
- React131__default.useImperativeHandle(ref, () => wrapRef.current);
10298
+ React136__default.useImperativeHandle(ref, () => wrapRef.current);
10068
10299
  useEffect(() => {
10069
10300
  if (typeof window === "undefined") return;
10070
10301
  const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
@@ -10201,7 +10432,7 @@ var HeroShaderA = React131__default.forwardRef(
10201
10432
  }
10202
10433
  );
10203
10434
  HeroShaderA.displayName = "HeroShaderA";
10204
- var ScrollHeader = React131__default.forwardRef(
10435
+ var ScrollHeader = React136__default.forwardRef(
10205
10436
  ({
10206
10437
  title,
10207
10438
  subtitle,
@@ -10288,7 +10519,7 @@ var DEFAULT_TRANSITION = {
10288
10519
  ease: [0.16, 1, 0.3, 1]
10289
10520
  // ease-out-expo (BezierDefinition)
10290
10521
  };
10291
- var FadeIn = React131__default.forwardRef(
10522
+ var FadeIn = React136__default.forwardRef(
10292
10523
  ({ delay = 0, duration, children, ...props }, ref) => {
10293
10524
  const transition = {
10294
10525
  ...DEFAULT_TRANSITION,
@@ -10316,7 +10547,7 @@ var DIRECTION_PRESET_MAP = {
10316
10547
  left: "slideLeft",
10317
10548
  right: "slideRight"
10318
10549
  };
10319
- var SlideIn = React131__default.forwardRef(
10550
+ var SlideIn = React136__default.forwardRef(
10320
10551
  ({ direction = "up", delay = 0, duration, children, ...props }, ref) => {
10321
10552
  const preset = MOTION_PRESETS[DIRECTION_PRESET_MAP[direction]];
10322
10553
  const transition = {
@@ -10339,7 +10570,7 @@ var SlideIn = React131__default.forwardRef(
10339
10570
  }
10340
10571
  );
10341
10572
  SlideIn.displayName = "SlideIn";
10342
- var ScaleIn = React131__default.forwardRef(
10573
+ var ScaleIn = React136__default.forwardRef(
10343
10574
  ({ delay = 0, duration, children, ...props }, ref) => {
10344
10575
  const transition = {
10345
10576
  ...DEFAULT_TRANSITION,
@@ -10403,16 +10634,16 @@ function Stagger({ staggerDelay = 0.05, preset = "fadeIn", children, className,
10403
10634
  initial: "hidden",
10404
10635
  animate: isInView ? "visible" : "hidden",
10405
10636
  className,
10406
- children: React131__default.Children.map(children, (child, i) => /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: child }, i))
10637
+ children: React136__default.Children.map(children, (child, i) => /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: child }, i))
10407
10638
  }
10408
10639
  );
10409
10640
  }
10410
- var Morph = React131__default.forwardRef(
10641
+ var Morph = React136__default.forwardRef(
10411
10642
  ({ layoutId, children, ...props }, ref) => /* @__PURE__ */ jsx(motion.div, { ref, layoutId, layout: true, ...props, children })
10412
10643
  );
10413
10644
  Morph.displayName = "Morph";
10414
10645
  var rippleCounter = 0;
10415
- var Ripple = React131__default.forwardRef(
10646
+ var Ripple = React136__default.forwardRef(
10416
10647
  ({ color = "currentColor", duration = 0.6, children, style, ...props }, ref) => {
10417
10648
  const [ripples, setRipples] = useState([]);
10418
10649
  const handlePointerDown = useCallback(
@@ -10468,7 +10699,7 @@ var Ripple = React131__default.forwardRef(
10468
10699
  }
10469
10700
  );
10470
10701
  Ripple.displayName = "Ripple";
10471
- var Parallax = React131__default.forwardRef(
10702
+ var Parallax = React136__default.forwardRef(
10472
10703
  ({ offset = 50, scrollRef, children, style, ...props }, ref) => {
10473
10704
  const innerRef = useRef(null);
10474
10705
  const resolvedRef = ref ?? innerRef;
@@ -10497,7 +10728,7 @@ function useLayoutId(key) {
10497
10728
  function Transition({ show = true, children, mode = "wait" }) {
10498
10729
  return /* @__PURE__ */ jsx(AnimatePresence, { mode, children: show ? children : null });
10499
10730
  }
10500
- var DataList = React131__default.forwardRef(
10731
+ var DataList = React136__default.forwardRef(
10501
10732
  ({ divided = true, bordered = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
10502
10733
  "ul",
10503
10734
  {
@@ -10514,7 +10745,7 @@ var DataList = React131__default.forwardRef(
10514
10745
  )
10515
10746
  );
10516
10747
  DataList.displayName = "DataList";
10517
- var DataListItem = React131__default.forwardRef(
10748
+ var DataListItem = React136__default.forwardRef(
10518
10749
  ({ left, title, description, right, interactive, onSelect, className, children, ...props }, ref) => {
10519
10750
  const clickable = interactive || !!onSelect;
10520
10751
  return /* @__PURE__ */ jsxs(
@@ -10574,7 +10805,7 @@ function getWeekDays(date, weekStartsOn) {
10574
10805
  const start = startOfWeek$1(date, { weekStartsOn });
10575
10806
  return Array.from({ length: 7 }, (_, i) => addDays(start, i));
10576
10807
  }
10577
- var EventCalendar = React131__default.forwardRef(
10808
+ var EventCalendar = React136__default.forwardRef(
10578
10809
  ({
10579
10810
  events,
10580
10811
  view: viewProp,
@@ -10589,20 +10820,20 @@ var EventCalendar = React131__default.forwardRef(
10589
10820
  className,
10590
10821
  ...props
10591
10822
  }, ref) => {
10592
- const [internalView, setInternalView] = React131__default.useState("month");
10823
+ const [internalView, setInternalView] = React136__default.useState("month");
10593
10824
  const view = viewProp ?? internalView;
10594
- const commitView = React131__default.useCallback(
10825
+ const commitView = React136__default.useCallback(
10595
10826
  (next) => {
10596
10827
  if (viewProp === void 0) setInternalView(next);
10597
10828
  onViewChange?.(next);
10598
10829
  },
10599
10830
  [viewProp, onViewChange]
10600
10831
  );
10601
- const [internalDate, setInternalDate] = React131__default.useState(
10832
+ const [internalDate, setInternalDate] = React136__default.useState(
10602
10833
  () => defaultDate ?? /* @__PURE__ */ new Date()
10603
10834
  );
10604
10835
  const date = dateProp ?? internalDate;
10605
- const commitDate = React131__default.useCallback(
10836
+ const commitDate = React136__default.useCallback(
10606
10837
  (next) => {
10607
10838
  if (dateProp === void 0) setInternalDate(next);
10608
10839
  onDateChange?.(next);
@@ -10628,7 +10859,7 @@ var EventCalendar = React131__default.forwardRef(
10628
10859
  handleToday();
10629
10860
  }
10630
10861
  };
10631
- const headerLabel = React131__default.useMemo(() => {
10862
+ const headerLabel = React136__default.useMemo(() => {
10632
10863
  if (view === "month") return format(date, "MMMM yyyy");
10633
10864
  if (view === "week") {
10634
10865
  const start = startOfWeek$1(date, { weekStartsOn });
@@ -10777,11 +11008,11 @@ function MonthView({
10777
11008
  onEventCreate,
10778
11009
  onDayPick
10779
11010
  }) {
10780
- const cells = React131__default.useMemo(
11011
+ const cells = React136__default.useMemo(
10781
11012
  () => getMonthMatrix(date, weekStartsOn),
10782
11013
  [date, weekStartsOn]
10783
11014
  );
10784
- const weekdayLabels = React131__default.useMemo(() => {
11015
+ const weekdayLabels = React136__default.useMemo(() => {
10785
11016
  const start = startOfWeek$1(/* @__PURE__ */ new Date(), { weekStartsOn });
10786
11017
  return Array.from({ length: 7 }, (_, i) => format(addDays(start, i), "EEE"));
10787
11018
  }, [weekStartsOn]);
@@ -10928,7 +11159,7 @@ function HourGrid({
10928
11159
  onEventCreate,
10929
11160
  onEventResize
10930
11161
  }) {
10931
- const hours = React131__default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
11162
+ const hours = React136__default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
10932
11163
  const today = /* @__PURE__ */ new Date();
10933
11164
  return /* @__PURE__ */ jsxs(
10934
11165
  "div",
@@ -10982,7 +11213,7 @@ function DayColumn({
10982
11213
  onEventResize,
10983
11214
  showHeader
10984
11215
  }) {
10985
- const bodyRef = React131__default.useRef(null);
11216
+ const bodyRef = React136__default.useRef(null);
10986
11217
  const handleEmptyClick = (e) => {
10987
11218
  if (e.target.closest("[data-event-block]")) return;
10988
11219
  if (!onEventCreate) return;
@@ -11063,10 +11294,10 @@ function EventBlock({ event, day, onClick, onResize }) {
11063
11294
  differenceInMinutes(visibleEnd, visibleStart)
11064
11295
  );
11065
11296
  const top = startMinutes / 60 * HOUR_ROW_PX;
11066
- const [resizingDelta, setResizingDelta] = React131__default.useState(0);
11297
+ const [resizingDelta, setResizingDelta] = React136__default.useState(0);
11067
11298
  const height = durationMinutes / 60 * HOUR_ROW_PX + resizingDelta;
11068
- const isResizing = React131__default.useRef(false);
11069
- const startY = React131__default.useRef(0);
11299
+ const isResizing = React136__default.useRef(false);
11300
+ const startY = React136__default.useRef(0);
11070
11301
  const handleResizePointerDown = (e) => {
11071
11302
  if (!onResize) return;
11072
11303
  e.preventDefault();
@@ -11155,7 +11386,7 @@ function WeekView({
11155
11386
  onEventCreate,
11156
11387
  onEventResize
11157
11388
  }) {
11158
- const days = React131__default.useMemo(
11389
+ const days = React136__default.useMemo(
11159
11390
  () => getWeekDays(date, weekStartsOn),
11160
11391
  [date, weekStartsOn]
11161
11392
  );
@@ -11188,7 +11419,7 @@ function DayView({
11188
11419
  }
11189
11420
  ) });
11190
11421
  }
11191
- var GridList = React131__default.forwardRef(
11422
+ var GridList = React136__default.forwardRef(
11192
11423
  ({ minItemWidth = 240, gap = 1, className, style, ...props }, ref) => /* @__PURE__ */ jsx(
11193
11424
  "ul",
11194
11425
  {
@@ -11205,7 +11436,7 @@ var GridList = React131__default.forwardRef(
11205
11436
  )
11206
11437
  );
11207
11438
  GridList.displayName = "GridList";
11208
- var GridListItem = React131__default.forwardRef(
11439
+ var GridListItem = React136__default.forwardRef(
11209
11440
  ({ interactive, onSelect, className, ...props }, ref) => {
11210
11441
  const clickable = interactive || !!onSelect;
11211
11442
  return /* @__PURE__ */ jsx(
@@ -11276,7 +11507,7 @@ async function extractCroppedDataUrl(image, crop, format3, quality) {
11276
11507
  const mime = format3 === "jpeg" ? "image/jpeg" : format3 === "webp" ? "image/webp" : "image/png";
11277
11508
  return canvas.toDataURL(mime, quality);
11278
11509
  }
11279
- var ImageCrop = React131__default.forwardRef(
11510
+ var ImageCrop = React136__default.forwardRef(
11280
11511
  ({
11281
11512
  src,
11282
11513
  aspect,
@@ -11291,13 +11522,13 @@ var ImageCrop = React131__default.forwardRef(
11291
11522
  className,
11292
11523
  ...props
11293
11524
  }, ref) => {
11294
- const [crop, setCrop] = React131__default.useState(void 0);
11295
- const imgRef = React131__default.useRef(null);
11296
- const timerRef = React131__default.useRef(null);
11297
- React131__default.useEffect(() => {
11525
+ const [crop, setCrop] = React136__default.useState(void 0);
11526
+ const imgRef = React136__default.useRef(null);
11527
+ const timerRef = React136__default.useRef(null);
11528
+ React136__default.useEffect(() => {
11298
11529
  setCrop(void 0);
11299
11530
  }, [src]);
11300
- React131__default.useEffect(() => {
11531
+ React136__default.useEffect(() => {
11301
11532
  return () => {
11302
11533
  if (timerRef.current) clearTimeout(timerRef.current);
11303
11534
  };
@@ -11522,7 +11753,7 @@ function TreeRow({
11522
11753
  }
11523
11754
  );
11524
11755
  }
11525
- var Tree = React131__default.forwardRef(
11756
+ var Tree = React136__default.forwardRef(
11526
11757
  ({
11527
11758
  data,
11528
11759
  defaultExpandedIds,
@@ -11538,21 +11769,21 @@ var Tree = React131__default.forwardRef(
11538
11769
  ...props
11539
11770
  }, ref) => {
11540
11771
  const isControlled = expandedIds !== void 0;
11541
- const [internalExpanded, setInternalExpanded] = React131__default.useState(
11772
+ const [internalExpanded, setInternalExpanded] = React136__default.useState(
11542
11773
  () => new Set(defaultExpandedIds ?? [])
11543
11774
  );
11544
- const expandedSet = React131__default.useMemo(
11775
+ const expandedSet = React136__default.useMemo(
11545
11776
  () => isControlled ? new Set(expandedIds) : internalExpanded,
11546
11777
  [isControlled, expandedIds, internalExpanded]
11547
11778
  );
11548
- const commitExpanded = React131__default.useCallback(
11779
+ const commitExpanded = React136__default.useCallback(
11549
11780
  (next) => {
11550
11781
  if (!isControlled) setInternalExpanded(next);
11551
11782
  onExpandedChange?.(Array.from(next));
11552
11783
  },
11553
11784
  [isControlled, onExpandedChange]
11554
11785
  );
11555
- const toggle = React131__default.useCallback(
11786
+ const toggle = React136__default.useCallback(
11556
11787
  (id) => {
11557
11788
  const next = new Set(expandedSet);
11558
11789
  if (next.has(id)) next.delete(id);
@@ -11561,7 +11792,7 @@ var Tree = React131__default.forwardRef(
11561
11792
  },
11562
11793
  [expandedSet, commitExpanded]
11563
11794
  );
11564
- const expand = React131__default.useCallback(
11795
+ const expand = React136__default.useCallback(
11565
11796
  (id) => {
11566
11797
  if (expandedSet.has(id)) return;
11567
11798
  const next = new Set(expandedSet);
@@ -11570,7 +11801,7 @@ var Tree = React131__default.forwardRef(
11570
11801
  },
11571
11802
  [expandedSet, commitExpanded]
11572
11803
  );
11573
- const collapse = React131__default.useCallback(
11804
+ const collapse = React136__default.useCallback(
11574
11805
  (id) => {
11575
11806
  if (!expandedSet.has(id)) return;
11576
11807
  const next = new Set(expandedSet);
@@ -11579,27 +11810,27 @@ var Tree = React131__default.forwardRef(
11579
11810
  },
11580
11811
  [expandedSet, commitExpanded]
11581
11812
  );
11582
- const rows = React131__default.useMemo(
11813
+ const rows = React136__default.useMemo(
11583
11814
  () => flatten(data, expandedSet),
11584
11815
  [data, expandedSet]
11585
11816
  );
11586
- const [focusedId, setFocusedId] = React131__default.useState(
11817
+ const [focusedId, setFocusedId] = React136__default.useState(
11587
11818
  () => selectedId ?? data[0]?.id ?? null
11588
11819
  );
11589
- const rowRefs = React131__default.useRef(/* @__PURE__ */ new Map());
11590
- const registerRef = React131__default.useCallback(
11820
+ const rowRefs = React136__default.useRef(/* @__PURE__ */ new Map());
11821
+ const registerRef = React136__default.useCallback(
11591
11822
  (id, el) => {
11592
11823
  if (el) rowRefs.current.set(id, el);
11593
11824
  else rowRefs.current.delete(id);
11594
11825
  },
11595
11826
  []
11596
11827
  );
11597
- const moveFocus = React131__default.useCallback((id) => {
11828
+ const moveFocus = React136__default.useCallback((id) => {
11598
11829
  setFocusedId(id);
11599
11830
  const el = rowRefs.current.get(id);
11600
11831
  el?.focus();
11601
11832
  }, []);
11602
- const onRowKeyDown = React131__default.useCallback(
11833
+ const onRowKeyDown = React136__default.useCallback(
11603
11834
  (e, row) => {
11604
11835
  const idx = rows.findIndex((r) => r.node.id === row.node.id);
11605
11836
  if (idx === -1) return;
@@ -11649,11 +11880,11 @@ var Tree = React131__default.forwardRef(
11649
11880
  useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),
11650
11881
  useSensor(KeyboardSensor)
11651
11882
  );
11652
- const [activeDragId, setActiveDragId] = React131__default.useState(null);
11653
- const handleDragStart = React131__default.useCallback((e) => {
11883
+ const [activeDragId, setActiveDragId] = React136__default.useState(null);
11884
+ const handleDragStart = React136__default.useCallback((e) => {
11654
11885
  setActiveDragId(String(e.active.id));
11655
11886
  }, []);
11656
- const handleDragEnd = React131__default.useCallback(
11887
+ const handleDragEnd = React136__default.useCallback(
11657
11888
  (e) => {
11658
11889
  setActiveDragId(null);
11659
11890
  const { active, over } = e;
@@ -11669,8 +11900,8 @@ var Tree = React131__default.forwardRef(
11669
11900
  },
11670
11901
  [onMove]
11671
11902
  );
11672
- const handleDragCancel = React131__default.useCallback(() => setActiveDragId(null), []);
11673
- const scrollerRef = React131__default.useRef(null);
11903
+ const handleDragCancel = React136__default.useCallback(() => setActiveDragId(null), []);
11904
+ const scrollerRef = React136__default.useRef(null);
11674
11905
  const virtualizer = useVirtualizer({
11675
11906
  count: virtualize ? rows.length : 0,
11676
11907
  getScrollElement: () => scrollerRef.current,
@@ -11772,7 +12003,7 @@ async function exitFs() {
11772
12003
  if (d.exitFullscreen) return void d.exitFullscreen();
11773
12004
  if (d.webkitExitFullscreen) return void d.webkitExitFullscreen();
11774
12005
  }
11775
- var VideoPlayer = React131__default.forwardRef(
12006
+ var VideoPlayer = React136__default.forwardRef(
11776
12007
  ({
11777
12008
  src,
11778
12009
  poster,
@@ -11789,33 +12020,33 @@ var VideoPlayer = React131__default.forwardRef(
11789
12020
  muted: mutedProp,
11790
12021
  ...videoProps
11791
12022
  }, ref) => {
11792
- const containerRef = React131__default.useRef(null);
11793
- const videoRef = React131__default.useRef(null);
11794
- const hideTimerRef = React131__default.useRef(null);
11795
- const [isPlaying, setIsPlaying] = React131__default.useState(false);
11796
- const [hasPlayed, setHasPlayed] = React131__default.useState(Boolean(autoPlay));
11797
- const [currentTime, setCurrentTime] = React131__default.useState(0);
11798
- const [duration, setDuration] = React131__default.useState(0);
11799
- const [buffered, setBuffered] = React131__default.useState(0);
11800
- const [volume, setVolume] = React131__default.useState(1);
11801
- const [isMuted, setIsMuted] = React131__default.useState(Boolean(mutedProp ?? autoPlay));
11802
- const [isFullscreen, setIsFullscreen] = React131__default.useState(false);
11803
- const [showControls, setShowControls] = React131__default.useState(true);
11804
- React131__default.useImperativeHandle(ref, () => containerRef.current);
11805
- React131__default.useEffect(() => {
12023
+ const containerRef = React136__default.useRef(null);
12024
+ const videoRef = React136__default.useRef(null);
12025
+ const hideTimerRef = React136__default.useRef(null);
12026
+ const [isPlaying, setIsPlaying] = React136__default.useState(false);
12027
+ const [hasPlayed, setHasPlayed] = React136__default.useState(Boolean(autoPlay));
12028
+ const [currentTime, setCurrentTime] = React136__default.useState(0);
12029
+ const [duration, setDuration] = React136__default.useState(0);
12030
+ const [buffered, setBuffered] = React136__default.useState(0);
12031
+ const [volume, setVolume] = React136__default.useState(1);
12032
+ const [isMuted, setIsMuted] = React136__default.useState(Boolean(mutedProp ?? autoPlay));
12033
+ const [isFullscreen, setIsFullscreen] = React136__default.useState(false);
12034
+ const [showControls, setShowControls] = React136__default.useState(true);
12035
+ React136__default.useImperativeHandle(ref, () => containerRef.current);
12036
+ React136__default.useEffect(() => {
11806
12037
  const v = videoRef.current;
11807
12038
  if (!v) return;
11808
12039
  v.volume = volume;
11809
12040
  v.muted = isMuted;
11810
12041
  }, [volume, isMuted]);
11811
- const showAndScheduleHide = React131__default.useCallback(() => {
12042
+ const showAndScheduleHide = React136__default.useCallback(() => {
11812
12043
  setShowControls(true);
11813
12044
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
11814
12045
  if (isPlaying) {
11815
12046
  hideTimerRef.current = setTimeout(() => setShowControls(false), 3e3);
11816
12047
  }
11817
12048
  }, [isPlaying]);
11818
- React131__default.useEffect(() => {
12049
+ React136__default.useEffect(() => {
11819
12050
  if (!isPlaying) {
11820
12051
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
11821
12052
  setShowControls(true);
@@ -11826,7 +12057,7 @@ var VideoPlayer = React131__default.forwardRef(
11826
12057
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
11827
12058
  };
11828
12059
  }, [isPlaying]);
11829
- React131__default.useEffect(() => {
12060
+ React136__default.useEffect(() => {
11830
12061
  const onFsChange = () => setIsFullscreen(isFullscreenActive());
11831
12062
  document.addEventListener("fullscreenchange", onFsChange);
11832
12063
  document.addEventListener("webkitfullscreenchange", onFsChange);
@@ -11835,7 +12066,7 @@ var VideoPlayer = React131__default.forwardRef(
11835
12066
  document.removeEventListener("webkitfullscreenchange", onFsChange);
11836
12067
  };
11837
12068
  }, []);
11838
- const togglePlay = React131__default.useCallback(() => {
12069
+ const togglePlay = React136__default.useCallback(() => {
11839
12070
  const v = videoRef.current;
11840
12071
  if (!v) return;
11841
12072
  if (v.paused) {
@@ -11844,22 +12075,22 @@ var VideoPlayer = React131__default.forwardRef(
11844
12075
  v.pause();
11845
12076
  }
11846
12077
  }, []);
11847
- const toggleMute = React131__default.useCallback(() => {
12078
+ const toggleMute = React136__default.useCallback(() => {
11848
12079
  setIsMuted((m) => !m);
11849
12080
  }, []);
11850
- const toggleFullscreen = React131__default.useCallback(() => {
12081
+ const toggleFullscreen = React136__default.useCallback(() => {
11851
12082
  const el = containerRef.current;
11852
12083
  if (!el) return;
11853
12084
  if (isFullscreenActive()) void exitFs();
11854
12085
  else void requestFs(el);
11855
12086
  }, []);
11856
- const seekTo = React131__default.useCallback((time) => {
12087
+ const seekTo = React136__default.useCallback((time) => {
11857
12088
  const v = videoRef.current;
11858
12089
  if (!v) return;
11859
12090
  const clamped = Math.max(0, Math.min(v.duration || 0, time));
11860
12091
  v.currentTime = clamped;
11861
12092
  }, []);
11862
- const seekBy = React131__default.useCallback(
12093
+ const seekBy = React136__default.useCallback(
11863
12094
  (delta) => {
11864
12095
  seekTo((videoRef.current?.currentTime ?? 0) + delta);
11865
12096
  },
@@ -12207,7 +12438,7 @@ function Combobox({
12207
12438
  className,
12208
12439
  contentWidth = "trigger"
12209
12440
  }) {
12210
- const [open, setOpen] = React131__default.useState(false);
12441
+ const [open, setOpen] = React136__default.useState(false);
12211
12442
  const selected = options.find((o) => o.value === value);
12212
12443
  return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
12213
12444
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
@@ -12301,9 +12532,9 @@ function ColorSchemeSelect({
12301
12532
  className
12302
12533
  }) {
12303
12534
  const fallback = defaultValue ?? options[0]?.value ?? "";
12304
- const [value, setValue] = React131__default.useState(() => readInitial2(fallback));
12305
- const didMount = React131__default.useRef(false);
12306
- React131__default.useEffect(() => {
12535
+ const [value, setValue] = React136__default.useState(() => readInitial2(fallback));
12536
+ const didMount = React136__default.useRef(false);
12537
+ React136__default.useEffect(() => {
12307
12538
  if (!didMount.current) {
12308
12539
  didMount.current = true;
12309
12540
  return;
@@ -12749,6 +12980,6 @@ function SortableNav({ items, onReorder, className }) {
12749
12980
  return /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx(SortableContext, { items: items.map((i) => i.id), strategy: verticalListSortingStrategy, children: /* @__PURE__ */ jsx("nav", { "data-slot": "sortable-nav", className: cn("space-y-0.5 px-2 py-1", className), children: items.map((item) => /* @__PURE__ */ jsx(SortableNavItemWrapper, { item }, item.id)) }) }) });
12750
12981
  }
12751
12982
 
12752
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandItem2 as CommandListItem, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingLabelInput, FloatingThemePicker, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PropertyItem, PropertyList, QrCode, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette, useHotkeys, useLayoutId, useSidebar, useTour };
12983
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedGradient, AnimatedNumber, AppShell, AppShellMain, AppShellSidebar, AppShellUserMenu, Sidebar as AppSidebar, AreaChart, ArrayField, AspectRatio, AutoForm, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, Banner, BarChart, BarList, Beacon, BillingStatus, Body, Breadcrumb, BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator, BulkActions, Button, Calendar, CalendarDayButton, Caption, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CartLineItem, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, ChatDetail, Checkbox, Checklist, ChecklistItem, Code3 as Code, CodeBlock, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, ColorSchemeSelect, Combobox, Command, CommandBar, CommandBarEmpty, CommandBarGroup, CommandBarItem, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandItem2 as CommandListItem, CommandPalette, CommandPaletteProvider, CommandSeparator, CommandShortcut, Comparison, Container, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_THEME_OPTIONS, DEFAULT_TRANSITION, DataGrid, DataList, DataListItem, DataTable, DataTableColumnHeader, DataTablePagination, DataTableToolbar, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DottedBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyCart, EmptyState, EmptyStateIcon, EventCalendar, FadeIn, FeedbackModal, Field, FieldDescription, FieldError, FieldLabel, FileCards, FileUpload, FileUploadPreview, FilesList, FilterBadge, FilterItem, Filters, FloatingActionButton, FloatingLabelInput, FloatingThemePicker, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Gantt, GradientBackground, GradientHeading, GridList, GridListItem, HStack, Heading, Heatmap, HelpSheet, HeroShaderA, HotkeyBadge, Hotkeys, HotkeysProvider, HoverCard, HoverCardContent, HoverCardTrigger, IconBadge, ImageCrop, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, IntegrationCard, IntroDisclosure, InviteModal, Kanban, KanbanCard, KanbanColumn, Label3 as Label, LineChart, LoadingOverlay, LogoCarousel, MOTION_PRESETS, ManageTagsModal, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MessagesCard, MetricCard, MetricCardWithButton, MetricCardWithIcon, MobileSidebarTrigger, Morph, Navbar, NavbarBrand, NavbarContent, NavbarItem, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NoiseBackground, NotificationSettings, ObjectField, OrgMenu, Page, PageActions, PageBody, PageContainer, PageDescription, PageHeader, PageLayout, PageMain, PageTitle, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaletteSwatches, Parallax, PasswordInput, Persona, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PriceTag, Progress, PropertyItem, PropertyList, QrCode, QuantityStepper, RadioGroup4 as RadioGroup, RadioGroupItem, Rating, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeBox, ResizeHandle, Reveal, RichEditor, Ripple, RolesMenu, ScaleIn, ScrollArea, ScrollBar, ScrollHeader, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectUsersModal, SelectValue, Separator6 as Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, AppShell2 as Shell, Sidebar2 as Sidebar, SidebarContent, SidebarFooter2 as SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader2 as SidebarHeader, SidebarItem2 as SidebarItem, SidebarLayoutDashboard, SidebarLayoutGroups, SidebarLayoutMinimal, SidebarLayoutSearch, SidebarLayoutUser, SidebarResizer, SidebarSeparator2 as SidebarSeparator, Skeleton, SlideIn, Slider, SortableNav, SortableTaskList, Sparkline, Spinner, SplitPage, SplitPageDetail, SplitPageList, Stack, StackedLayoutBranded, StackedLayoutTabs, Stagger, Stat, StatGroup, StepForm, StepFormNavigation, StepFormStep, Stepper, StepperStep, StructuredList, StructuredListItem, StructuredListSection, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tags, TaskCard, TaskCardWithLabels, TextReveal, Textarea, TextureCard, TextureCardDescription, TextureCardHeader, TextureCardTitle, ThemeSwitch, Timeline, TimelineConnector, TimelineContent, TimelineItem, Toaster, Toggle, ToggleButton, ToggleButtonGroup, ToggleGroup, ToggleGroupItem, Tooltip2 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TourStep, Transition, Tree, Typewriter, UserMenu, VStack, VariantPicker, VideoPlayer, WorkspaceMembers, WorkspacesMenu, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toastFn as toast, toastEmitter, toggleVariants, useAppShell, useCommandBar, useCommandPalette, useHotkeys, useLayoutId, useSidebar, useTour };
12753
12984
  //# sourceMappingURL=index.mjs.map
12754
12985
  //# sourceMappingURL=index.mjs.map