@otfdashkit/ui 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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 React137 from 'react';
4
+ import React137__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, Columns3, 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';
@@ -62,16 +62,16 @@ import * as z from 'zod';
62
62
  import { HexAlphaColorPicker, HexColorPicker, RgbStringColorPicker, HslStringColorPicker } from 'react-colorful';
63
63
  import { motion, useScroll, useTransform, useInView, AnimatePresence } from 'motion/react';
64
64
  export { AnimatePresence, motion, useInView, useMotionValue, useScroll, useSpring, useTransform } from 'motion/react';
65
+ import { useVirtualizer } from '@tanstack/react-virtual';
65
66
  import ReactCrop, { centerCrop, makeAspectCrop } from 'react-image-crop';
66
67
  import 'react-image-crop/dist/ReactCrop.css';
67
- import { useVirtualizer } from '@tanstack/react-virtual';
68
68
 
69
69
  // src/utils/cn.ts
70
70
  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 = React137.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 = React137.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 = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
100
100
  AccordionPrimitive.Content,
101
101
  {
102
102
  ref,
@@ -116,29 +116,67 @@ var buttonVariants = cva(
116
116
  outline: "border border-border bg-transparent hover:bg-accent hover:text-accent-foreground",
117
117
  ghost: "hover:bg-accent hover:text-accent-foreground",
118
118
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
119
- link: "text-primary underline-offset-4 hover:underline"
119
+ link: "text-primary underline-offset-4 hover:underline",
120
+ gradient: [
121
+ "bg-gradient-to-b from-primary to-[hsl(var(--primary)/0.8)]",
122
+ "text-primary-foreground",
123
+ "shadow-[0_1px_0_0_rgba(255,255,255,0.1)_inset,0_-1px_0_0_rgba(0,0,0,0.25)_inset]",
124
+ "hover:from-[hsl(var(--primary)/0.9)] hover:to-[hsl(var(--primary)/0.7)]",
125
+ "active:from-[hsl(var(--primary)/0.8)] active:to-[hsl(var(--primary)/0.6)]"
126
+ ].join(" "),
127
+ texture: [
128
+ "relative border border-border/40",
129
+ "bg-gradient-to-b from-card to-[hsl(var(--card)/0.9)]",
130
+ "text-foreground",
131
+ "shadow-[0_0_0_1px_hsl(var(--border)/0.2)_inset]",
132
+ "hover:border-border/60 hover:bg-accent",
133
+ "active:shadow-none"
134
+ ].join(" "),
135
+ // Loud by design: keep for primary CTAs. The sweep keyframe ships in themes/base.css.
136
+ shimmer: [
137
+ "relative isolate overflow-hidden",
138
+ "bg-primary text-primary-foreground",
139
+ "shadow-[0_1px_0_rgba(255,255,255,0.18)_inset,0_-1px_0_rgba(0,0,0,0.25)_inset]",
140
+ "hover:bg-primary/95",
141
+ "before:absolute before:inset-[-1px] before:rounded-[inherit] before:-z-10",
142
+ "before:bg-[conic-gradient(from_0deg,transparent_0deg,transparent_70deg,rgba(255,255,255,0.55)_90deg,transparent_110deg,transparent_360deg)]",
143
+ "before:animate-[shimmer-rotate_2.6s_linear_infinite] motion-reduce:before:animate-none",
144
+ "after:absolute after:inset-0 after:rounded-[inherit] after:pointer-events-none",
145
+ "after:bg-[linear-gradient(115deg,transparent_30%,rgba(255,255,255,0.22)_50%,transparent_70%)]",
146
+ "after:translate-x-[-120%] hover:after:translate-x-[120%] after:transition-transform after:duration-[900ms] after:ease-out"
147
+ ].join(" ")
120
148
  },
121
149
  size: {
122
150
  sm: "h-8 px-3 text-xs",
123
151
  default: "h-9 px-4 py-2",
124
152
  lg: "h-11 px-6 text-base",
125
- icon: "h-9 w-9"
153
+ xl: "h-12 px-8 text-base",
154
+ icon: "h-9 w-9",
155
+ "icon-sm": "h-7 w-7 p-0 text-xs"
126
156
  }
127
157
  },
128
158
  defaultVariants: { variant: "default", size: "default" }
129
159
  }
130
160
  );
131
- var Button = React131__default.forwardRef(
161
+ var Button = React137__default.forwardRef(
132
162
  ({ className, variant, size, asChild = false, ...props }, ref) => {
133
163
  const Comp = asChild ? Slot : "button";
134
164
  return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size }), className), ref, ...props });
135
165
  }
136
166
  );
137
167
  Button.displayName = "Button";
168
+ var IconButton = React137__default.forwardRef(
169
+ ({ icon, label, size = "default", variant = "ghost", className, asChild = false, ...props }, ref) => {
170
+ const Comp = asChild ? Slot : "button";
171
+ const sizeClass = size === "sm" ? "h-7 w-7" : size === "lg" ? "h-10 w-10" : "h-9 w-9";
172
+ return /* @__PURE__ */ jsx(Comp, { ref, "aria-label": label, className: cn(buttonVariants({ variant }), sizeClass, "p-0 shrink-0", className), ...props, children: icon });
173
+ }
174
+ );
175
+ IconButton.displayName = "IconButton";
138
176
  var AlertDialog = AlertDialogPrimitive.Root;
139
177
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
140
178
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
141
- var AlertDialogOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
179
+ var AlertDialogOverlay = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
142
180
  AlertDialogPrimitive.Overlay,
143
181
  {
144
182
  className: cn(
@@ -150,7 +188,7 @@ var AlertDialogOverlay = React131.forwardRef(({ className, ...props }, ref) => /
150
188
  }
151
189
  ));
152
190
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
153
- var AlertDialogContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
191
+ var AlertDialogContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
154
192
  /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
155
193
  /* @__PURE__ */ jsx(
156
194
  AlertDialogPrimitive.Content,
@@ -193,7 +231,7 @@ var AlertDialogFooter = ({
193
231
  }
194
232
  );
195
233
  AlertDialogFooter.displayName = "AlertDialogFooter";
196
- var AlertDialogTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
234
+ var AlertDialogTitle = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
197
235
  AlertDialogPrimitive.Title,
198
236
  {
199
237
  ref,
@@ -202,7 +240,7 @@ var AlertDialogTitle = React131.forwardRef(({ className, ...props }, ref) => /*
202
240
  }
203
241
  ));
204
242
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
205
- var AlertDialogDescription = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
243
+ var AlertDialogDescription = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
206
244
  AlertDialogPrimitive.Description,
207
245
  {
208
246
  ref,
@@ -211,7 +249,7 @@ var AlertDialogDescription = React131.forwardRef(({ className, ...props }, ref)
211
249
  }
212
250
  ));
213
251
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
214
- var AlertDialogAction = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
252
+ var AlertDialogAction = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
215
253
  AlertDialogPrimitive.Action,
216
254
  {
217
255
  ref,
@@ -220,7 +258,7 @@ var AlertDialogAction = React131.forwardRef(({ className, ...props }, ref) => /*
220
258
  }
221
259
  ));
222
260
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
223
- var AlertDialogCancel = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
261
+ var AlertDialogCancel = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
224
262
  AlertDialogPrimitive.Cancel,
225
263
  {
226
264
  ref,
@@ -247,7 +285,7 @@ var alertVariants = cva(
247
285
  }
248
286
  }
249
287
  );
250
- var Alert = React131.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
288
+ var Alert = React137.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx(
251
289
  "div",
252
290
  {
253
291
  ref,
@@ -257,7 +295,7 @@ var Alert = React131.forwardRef(({ className, variant, ...props }, ref) => /* @_
257
295
  }
258
296
  ));
259
297
  Alert.displayName = "Alert";
260
- var AlertTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
298
+ var AlertTitle = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
261
299
  "h5",
262
300
  {
263
301
  ref,
@@ -266,7 +304,7 @@ var AlertTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PUR
266
304
  }
267
305
  ));
268
306
  AlertTitle.displayName = "AlertTitle";
269
- var AlertDescription = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
307
+ var AlertDescription = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
270
308
  "div",
271
309
  {
272
310
  ref,
@@ -276,7 +314,7 @@ var AlertDescription = React131.forwardRef(({ className, ...props }, ref) => /*
276
314
  ));
277
315
  AlertDescription.displayName = "AlertDescription";
278
316
  var AspectRatio = AspectRatioPrimitive.Root;
279
- var Avatar = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
317
+ var Avatar = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
280
318
  AvatarPrimitive.Root,
281
319
  {
282
320
  ref,
@@ -285,9 +323,9 @@ var Avatar = React131__default.forwardRef(({ className, ...props }, ref) => /* @
285
323
  }
286
324
  ));
287
325
  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 }));
326
+ var AvatarImage = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(AvatarPrimitive.Image, { ref, className: cn("aspect-square h-full w-full object-cover", className), ...props }));
289
327
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
290
- var AvatarFallback = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
328
+ var AvatarFallback = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
291
329
  AvatarPrimitive.Fallback,
292
330
  {
293
331
  ref,
@@ -296,15 +334,15 @@ var AvatarFallback = React131__default.forwardRef(({ className, ...props }, ref)
296
334
  }
297
335
  ));
298
336
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
299
- var AvatarGroup = React131__default.forwardRef(
337
+ var AvatarGroup = React137__default.forwardRef(
300
338
  ({ className, max = 4, size = 32, spacing, renderOverflow, children, ...props }, ref) => {
301
- const items = React131__default.Children.toArray(children).filter(React131__default.isValidElement);
339
+ const items = React137__default.Children.toArray(children).filter(React137__default.isValidElement);
302
340
  const overlap = spacing ?? Math.round(size / 3);
303
341
  const visible = items.slice(0, max);
304
342
  const remaining = Math.max(0, items.length - max);
305
343
  return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex items-center", className), "data-slot": "avatar-group", ...props, children: [
306
344
  visible.map(
307
- (child, i) => React131__default.cloneElement(child, {
345
+ (child, i) => React137__default.cloneElement(child, {
308
346
  key: child.key ?? i,
309
347
  style: {
310
348
  width: size,
@@ -510,8 +548,8 @@ function CalendarDayButton({
510
548
  ...props
511
549
  }) {
512
550
  const defaultClassNames = getDefaultClassNames();
513
- const ref = React131.useRef(null);
514
- React131.useEffect(() => {
551
+ const ref = React137.useRef(null);
552
+ React137.useEffect(() => {
515
553
  if (modifiers.focused) ref.current?.focus();
516
554
  }, [modifiers.focused]);
517
555
  return /* @__PURE__ */ jsx(
@@ -534,7 +572,7 @@ function CalendarDayButton({
534
572
  }
535
573
  );
536
574
  }
537
- var Card = React131__default.forwardRef(
575
+ var Card = React137__default.forwardRef(
538
576
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
539
577
  "div",
540
578
  {
@@ -545,35 +583,35 @@ var Card = React131__default.forwardRef(
545
583
  )
546
584
  );
547
585
  Card.displayName = "Card";
548
- var CardHeader = React131__default.forwardRef(
586
+ var CardHeader = React137__default.forwardRef(
549
587
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
550
588
  );
551
589
  CardHeader.displayName = "CardHeader";
552
- var CardTitle = React131__default.forwardRef(
590
+ var CardTitle = React137__default.forwardRef(
553
591
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("font-semibold leading-none tracking-tight", className), ...props })
554
592
  );
555
593
  CardTitle.displayName = "CardTitle";
556
- var CardDescription = React131__default.forwardRef(
594
+ var CardDescription = React137__default.forwardRef(
557
595
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
558
596
  );
559
597
  CardDescription.displayName = "CardDescription";
560
- var CardContent = React131__default.forwardRef(
598
+ var CardContent = React137__default.forwardRef(
561
599
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
562
600
  );
563
601
  CardContent.displayName = "CardContent";
564
- var CardFooter = React131__default.forwardRef(
602
+ var CardFooter = React137__default.forwardRef(
565
603
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
566
604
  );
567
605
  CardFooter.displayName = "CardFooter";
568
- var CarouselContext = React131.createContext(null);
606
+ var CarouselContext = React137.createContext(null);
569
607
  function useCarousel() {
570
- const context = React131.useContext(CarouselContext);
608
+ const context = React137.useContext(CarouselContext);
571
609
  if (!context) {
572
610
  throw new Error("useCarousel must be used within a <Carousel />");
573
611
  }
574
612
  return context;
575
613
  }
576
- var Carousel = React131.forwardRef(
614
+ var Carousel = React137.forwardRef(
577
615
  ({
578
616
  orientation = "horizontal",
579
617
  opts,
@@ -590,22 +628,22 @@ var Carousel = React131.forwardRef(
590
628
  },
591
629
  plugins
592
630
  );
593
- const [canScrollPrev, setCanScrollPrev] = React131.useState(false);
594
- const [canScrollNext, setCanScrollNext] = React131.useState(false);
595
- const onSelect = React131.useCallback((api2) => {
631
+ const [canScrollPrev, setCanScrollPrev] = React137.useState(false);
632
+ const [canScrollNext, setCanScrollNext] = React137.useState(false);
633
+ const onSelect = React137.useCallback((api2) => {
596
634
  if (!api2) {
597
635
  return;
598
636
  }
599
637
  setCanScrollPrev(api2.canScrollPrev());
600
638
  setCanScrollNext(api2.canScrollNext());
601
639
  }, []);
602
- const scrollPrev = React131.useCallback(() => {
640
+ const scrollPrev = React137.useCallback(() => {
603
641
  api?.scrollPrev();
604
642
  }, [api]);
605
- const scrollNext = React131.useCallback(() => {
643
+ const scrollNext = React137.useCallback(() => {
606
644
  api?.scrollNext();
607
645
  }, [api]);
608
- const handleKeyDown = React131.useCallback(
646
+ const handleKeyDown = React137.useCallback(
609
647
  (event) => {
610
648
  if (event.key === "ArrowLeft") {
611
649
  event.preventDefault();
@@ -617,13 +655,13 @@ var Carousel = React131.forwardRef(
617
655
  },
618
656
  [scrollPrev, scrollNext]
619
657
  );
620
- React131.useEffect(() => {
658
+ React137.useEffect(() => {
621
659
  if (!api || !setApi) {
622
660
  return;
623
661
  }
624
662
  setApi(api);
625
663
  }, [api, setApi]);
626
- React131.useEffect(() => {
664
+ React137.useEffect(() => {
627
665
  if (!api) {
628
666
  return;
629
667
  }
@@ -664,7 +702,7 @@ var Carousel = React131.forwardRef(
664
702
  }
665
703
  );
666
704
  Carousel.displayName = "Carousel";
667
- var CarouselContent = React131.forwardRef(({ className, ...props }, ref) => {
705
+ var CarouselContent = React137.forwardRef(({ className, ...props }, ref) => {
668
706
  const { carouselRef, orientation } = useCarousel();
669
707
  return /* @__PURE__ */ jsx("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
670
708
  "div",
@@ -680,7 +718,7 @@ var CarouselContent = React131.forwardRef(({ className, ...props }, ref) => {
680
718
  ) });
681
719
  });
682
720
  CarouselContent.displayName = "CarouselContent";
683
- var CarouselItem = React131.forwardRef(({ className, ...props }, ref) => {
721
+ var CarouselItem = React137.forwardRef(({ className, ...props }, ref) => {
684
722
  const { orientation } = useCarousel();
685
723
  return /* @__PURE__ */ jsx(
686
724
  "div",
@@ -698,7 +736,7 @@ var CarouselItem = React131.forwardRef(({ className, ...props }, ref) => {
698
736
  );
699
737
  });
700
738
  CarouselItem.displayName = "CarouselItem";
701
- var CarouselPrevious = React131.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
739
+ var CarouselPrevious = React137.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
702
740
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
703
741
  return /* @__PURE__ */ jsxs(
704
742
  Button,
@@ -722,7 +760,7 @@ var CarouselPrevious = React131.forwardRef(({ className, variant = "outline", si
722
760
  );
723
761
  });
724
762
  CarouselPrevious.displayName = "CarouselPrevious";
725
- var CarouselNext = React131.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
763
+ var CarouselNext = React137.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
726
764
  const { orientation, scrollNext, canScrollNext } = useCarousel();
727
765
  return /* @__PURE__ */ jsxs(
728
766
  Button,
@@ -746,17 +784,173 @@ var CarouselNext = React131.forwardRef(({ className, variant = "outline", size =
746
784
  );
747
785
  });
748
786
  CarouselNext.displayName = "CarouselNext";
787
+ var SIZE = {
788
+ sm: { price: "text-sm", compare: "text-xs" },
789
+ md: { price: "text-lg", compare: "text-sm" },
790
+ lg: { price: "text-2xl", compare: "text-base" }
791
+ };
792
+ function formatMoney(minor, currency, locale) {
793
+ return new Intl.NumberFormat(locale, { style: "currency", currency }).format(minor / 100);
794
+ }
795
+ var PriceTag = React137__default.forwardRef(
796
+ ({ amount, compareAt, currency = "USD", locale = "en-US", size = "md", showDiscount = true, className, ...props }, ref) => {
797
+ const onSale = compareAt !== void 0 && compareAt > amount;
798
+ const pct = onSale ? Math.round((1 - amount / compareAt) * 100) : 0;
799
+ const s = SIZE[size];
800
+ return /* @__PURE__ */ jsxs("span", { ref, className: cn("inline-flex items-baseline gap-2 font-sans tabular-nums", className), ...props, children: [
801
+ /* @__PURE__ */ jsx("span", { className: cn("font-semibold tracking-tight text-foreground", s.price), children: formatMoney(amount, currency, locale) }),
802
+ onSale && /* @__PURE__ */ jsxs(Fragment, { children: [
803
+ /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground line-through", s.compare), children: formatMoney(compareAt, currency, locale) }),
804
+ showDiscount && /* @__PURE__ */ jsxs("span", { className: "rounded-full bg-destructive/10 px-2 py-0.5 text-xs font-semibold text-destructive", children: [
805
+ "\u2212",
806
+ pct,
807
+ "%"
808
+ ] })
809
+ ] })
810
+ ] });
811
+ }
812
+ );
813
+ PriceTag.displayName = "PriceTag";
814
+ var QuantityStepper = React137__default.forwardRef(
815
+ ({
816
+ value: valueProp,
817
+ defaultValue = 1,
818
+ onValueChange,
819
+ min = 1,
820
+ max = 99,
821
+ step = 1,
822
+ size = "md",
823
+ disabled = false,
824
+ className,
825
+ "aria-label": ariaLabel = "Quantity",
826
+ ...props
827
+ }, ref) => {
828
+ const isControlled = valueProp !== void 0;
829
+ const [internal, setInternal] = React137__default.useState(defaultValue);
830
+ const value = isControlled ? valueProp : internal;
831
+ const commit = (next) => {
832
+ const clamped = Math.max(min, Math.min(max, next));
833
+ if (!isControlled) setInternal(clamped);
834
+ onValueChange?.(clamped);
835
+ };
836
+ const dim = size === "sm" ? "h-7 w-7" : "h-9 w-9";
837
+ return /* @__PURE__ */ jsxs(
838
+ "div",
839
+ {
840
+ ref,
841
+ role: "group",
842
+ "aria-label": ariaLabel,
843
+ className: cn("inline-flex items-center rounded-md border border-input", className),
844
+ ...props,
845
+ children: [
846
+ /* @__PURE__ */ jsx(
847
+ Button,
848
+ {
849
+ type: "button",
850
+ variant: "ghost",
851
+ size: "icon",
852
+ className: cn("rounded-r-none", dim),
853
+ disabled: disabled || value <= min,
854
+ onClick: () => commit(value - step),
855
+ "aria-label": "Decrease quantity",
856
+ children: /* @__PURE__ */ jsx(Minus, { className: "h-4 w-4" })
857
+ }
858
+ ),
859
+ /* @__PURE__ */ jsx(
860
+ "span",
861
+ {
862
+ "aria-live": "polite",
863
+ className: cn("select-none text-center text-sm font-medium tabular-nums", size === "sm" ? "min-w-7" : "min-w-8"),
864
+ children: value
865
+ }
866
+ ),
867
+ /* @__PURE__ */ jsx(
868
+ Button,
869
+ {
870
+ type: "button",
871
+ variant: "ghost",
872
+ size: "icon",
873
+ className: cn("rounded-l-none", dim),
874
+ disabled: disabled || value >= max,
875
+ onClick: () => commit(value + step),
876
+ "aria-label": "Increase quantity",
877
+ children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" })
878
+ }
879
+ )
880
+ ]
881
+ }
882
+ );
883
+ }
884
+ );
885
+ QuantityStepper.displayName = "QuantityStepper";
886
+ var CartLineItem = React137__default.forwardRef(
887
+ ({
888
+ image,
889
+ title,
890
+ variant,
891
+ price,
892
+ compareAt,
893
+ currency = "USD",
894
+ quantity,
895
+ onQuantityChange,
896
+ onRemove,
897
+ minQuantity = 1,
898
+ maxQuantity = 99,
899
+ className,
900
+ ...props
901
+ }, ref) => {
902
+ return /* @__PURE__ */ jsxs(
903
+ "div",
904
+ {
905
+ ref,
906
+ className: cn("flex items-center gap-4 rounded-lg border border-border bg-card p-3", className),
907
+ ...props,
908
+ children: [
909
+ image && /* @__PURE__ */ jsx("img", { src: image, alt: "", className: "h-16 w-16 flex-none rounded-md object-cover" }),
910
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
911
+ /* @__PURE__ */ jsx("span", { className: "truncate font-medium text-card-foreground", children: title }),
912
+ variant && /* @__PURE__ */ jsx("span", { className: "truncate text-sm text-muted-foreground", children: variant }),
913
+ /* @__PURE__ */ jsx(PriceTag, { amount: price, compareAt, currency, size: "sm" })
914
+ ] }),
915
+ /* @__PURE__ */ jsx(
916
+ QuantityStepper,
917
+ {
918
+ value: quantity,
919
+ min: minQuantity,
920
+ max: maxQuantity,
921
+ onValueChange: onQuantityChange,
922
+ size: "sm"
923
+ }
924
+ ),
925
+ onRemove && /* @__PURE__ */ jsx(
926
+ Button,
927
+ {
928
+ type: "button",
929
+ variant: "ghost",
930
+ size: "icon",
931
+ className: "h-8 w-8 text-muted-foreground hover:text-destructive",
932
+ onClick: onRemove,
933
+ "aria-label": `Remove ${title}`,
934
+ children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
935
+ }
936
+ )
937
+ ]
938
+ }
939
+ );
940
+ }
941
+ );
942
+ CartLineItem.displayName = "CartLineItem";
749
943
  var THEMES = { light: "", dark: ".dark" };
750
- var ChartContext = React131.createContext(null);
944
+ var ChartContext = React137.createContext(null);
751
945
  function useChart() {
752
- const context = React131.useContext(ChartContext);
946
+ const context = React137.useContext(ChartContext);
753
947
  if (!context) {
754
948
  throw new Error("useChart must be used within a <ChartContainer />");
755
949
  }
756
950
  return context;
757
951
  }
758
- var ChartContainer = React131.forwardRef(({ id, className, children, config, ...props }, ref) => {
759
- const uniqueId = React131.useId();
952
+ var ChartContainer = React137.forwardRef(({ id, className, children, config, ...props }, ref) => {
953
+ const uniqueId = React137.useId();
760
954
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
761
955
  return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
762
956
  "div",
@@ -802,7 +996,7 @@ ${colorConfig.map(([key, itemConfig]) => {
802
996
  );
803
997
  };
804
998
  var ChartTooltip = RechartsPrimitive.Tooltip;
805
- var ChartTooltipContent = React131.forwardRef(
999
+ var ChartTooltipContent = React137.forwardRef(
806
1000
  ({
807
1001
  active,
808
1002
  payload,
@@ -819,7 +1013,7 @@ var ChartTooltipContent = React131.forwardRef(
819
1013
  labelKey
820
1014
  }, ref) => {
821
1015
  const { config } = useChart();
822
- const tooltipLabel = React131.useMemo(() => {
1016
+ const tooltipLabel = React137.useMemo(() => {
823
1017
  if (hideLabel || !payload?.length) {
824
1018
  return null;
825
1019
  }
@@ -915,7 +1109,7 @@ var ChartTooltipContent = React131.forwardRef(
915
1109
  );
916
1110
  ChartTooltipContent.displayName = "ChartTooltip";
917
1111
  var ChartLegend = RechartsPrimitive.Legend;
918
- var ChartLegendContent = React131.forwardRef(
1112
+ var ChartLegendContent = React137.forwardRef(
919
1113
  ({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
920
1114
  const { config } = useChart();
921
1115
  if (!payload?.length) {
@@ -973,7 +1167,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
973
1167
  }
974
1168
  return configLabelKey in config ? config[configLabelKey] : config[key];
975
1169
  }
976
- var Checkbox = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1170
+ var Checkbox = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
977
1171
  CheckboxPrimitive.Root,
978
1172
  {
979
1173
  ref,
@@ -1013,7 +1207,7 @@ function detectTheme(node) {
1013
1207
  }
1014
1208
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
1015
1209
  }
1016
- var CodeBlock = React131__default.forwardRef(
1210
+ var CodeBlock = React137__default.forwardRef(
1017
1211
  ({
1018
1212
  code,
1019
1213
  language = "tsx",
@@ -1024,10 +1218,10 @@ var CodeBlock = React131__default.forwardRef(
1024
1218
  className,
1025
1219
  ...props
1026
1220
  }, 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(() => {
1221
+ const containerRef = React137__default.useRef(null);
1222
+ const [html, setHtml] = React137__default.useState(null);
1223
+ const [copied, setCopied] = React137__default.useState(false);
1224
+ React137__default.useEffect(() => {
1031
1225
  let cancelled = false;
1032
1226
  getHighlighter().then((hl) => {
1033
1227
  if (cancelled) return;
@@ -1042,7 +1236,7 @@ var CodeBlock = React131__default.forwardRef(
1042
1236
  cancelled = true;
1043
1237
  };
1044
1238
  }, [code, language, theme]);
1045
- const onCopy = React131__default.useCallback(async () => {
1239
+ const onCopy = React137__default.useCallback(async () => {
1046
1240
  try {
1047
1241
  await navigator.clipboard.writeText(code);
1048
1242
  setCopied(true);
@@ -1050,7 +1244,7 @@ var CodeBlock = React131__default.forwardRef(
1050
1244
  } catch {
1051
1245
  }
1052
1246
  }, [code]);
1053
- const lines = React131__default.useMemo(() => code.split("\n"), [code]);
1247
+ const lines = React137__default.useMemo(() => code.split("\n"), [code]);
1054
1248
  return /* @__PURE__ */ jsxs(
1055
1249
  "div",
1056
1250
  {
@@ -1118,7 +1312,7 @@ var Dialog = DialogPrimitive.Root;
1118
1312
  var DialogTrigger = DialogPrimitive.Trigger;
1119
1313
  var DialogPortal = DialogPrimitive.Portal;
1120
1314
  var DialogClose = DialogPrimitive.Close;
1121
- var DialogOverlay = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1315
+ var DialogOverlay = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1122
1316
  DialogPrimitive.Overlay,
1123
1317
  {
1124
1318
  ref,
@@ -1132,7 +1326,7 @@ var DialogOverlay = React131__default.forwardRef(({ className, ...props }, ref)
1132
1326
  }
1133
1327
  ));
1134
1328
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
1135
- var DialogContent = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
1329
+ var DialogContent = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DialogPortal, { children: [
1136
1330
  /* @__PURE__ */ jsx(DialogOverlay, {}),
1137
1331
  /* @__PURE__ */ jsxs(
1138
1332
  DialogPrimitive.Content,
@@ -1162,7 +1356,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { cla
1162
1356
  DialogHeader.displayName = "DialogHeader";
1163
1357
  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
1358
  DialogFooter.displayName = "DialogFooter";
1165
- var DialogTitle = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1359
+ var DialogTitle = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1166
1360
  DialogPrimitive.Title,
1167
1361
  {
1168
1362
  ref,
@@ -1171,7 +1365,7 @@ var DialogTitle = React131__default.forwardRef(({ className, ...props }, ref) =>
1171
1365
  }
1172
1366
  ));
1173
1367
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
1174
- var DialogDescription = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1368
+ var DialogDescription = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1175
1369
  DialogPrimitive.Description,
1176
1370
  {
1177
1371
  ref,
@@ -1180,7 +1374,7 @@ var DialogDescription = React131__default.forwardRef(({ className, ...props }, r
1180
1374
  }
1181
1375
  ));
1182
1376
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
1183
- var Command = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1377
+ var Command = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1184
1378
  Command$1,
1185
1379
  {
1186
1380
  ref,
@@ -1195,7 +1389,7 @@ Command.displayName = Command$1.displayName;
1195
1389
  var CommandDialog = ({ children, ...props }) => {
1196
1390
  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
1391
  };
1198
- var CommandInput = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1392
+ var CommandInput = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1199
1393
  /* @__PURE__ */ jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
1200
1394
  /* @__PURE__ */ jsx(
1201
1395
  Command$1.Input,
@@ -1210,7 +1404,7 @@ var CommandInput = React131.forwardRef(({ className, ...props }, ref) => /* @__P
1210
1404
  )
1211
1405
  ] }));
1212
1406
  CommandInput.displayName = Command$1.Input.displayName;
1213
- var CommandList = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1407
+ var CommandList = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1214
1408
  Command$1.List,
1215
1409
  {
1216
1410
  ref,
@@ -1219,7 +1413,7 @@ var CommandList = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
1219
1413
  }
1220
1414
  ));
1221
1415
  CommandList.displayName = Command$1.List.displayName;
1222
- var CommandEmpty = React131.forwardRef((props, ref) => /* @__PURE__ */ jsx(
1416
+ var CommandEmpty = React137.forwardRef((props, ref) => /* @__PURE__ */ jsx(
1223
1417
  Command$1.Empty,
1224
1418
  {
1225
1419
  ref,
@@ -1228,7 +1422,7 @@ var CommandEmpty = React131.forwardRef((props, ref) => /* @__PURE__ */ jsx(
1228
1422
  }
1229
1423
  ));
1230
1424
  CommandEmpty.displayName = Command$1.Empty.displayName;
1231
- var CommandGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1425
+ var CommandGroup = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1232
1426
  Command$1.Group,
1233
1427
  {
1234
1428
  ref,
@@ -1240,7 +1434,7 @@ var CommandGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__P
1240
1434
  }
1241
1435
  ));
1242
1436
  CommandGroup.displayName = Command$1.Group.displayName;
1243
- var CommandSeparator = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1437
+ var CommandSeparator = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1244
1438
  Command$1.Separator,
1245
1439
  {
1246
1440
  ref,
@@ -1249,7 +1443,7 @@ var CommandSeparator = React131.forwardRef(({ className, ...props }, ref) => /*
1249
1443
  }
1250
1444
  ));
1251
1445
  CommandSeparator.displayName = Command$1.Separator.displayName;
1252
- var CommandItem = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1446
+ var CommandItem = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1253
1447
  Command$1.Item,
1254
1448
  {
1255
1449
  ref,
@@ -1277,7 +1471,7 @@ var CommandShortcut = ({
1277
1471
  );
1278
1472
  };
1279
1473
  CommandShortcut.displayName = "CommandShortcut";
1280
- var Comparison = React131__default.forwardRef(
1474
+ var Comparison = React137__default.forwardRef(
1281
1475
  ({
1282
1476
  before,
1283
1477
  after,
@@ -1293,10 +1487,10 @@ var Comparison = React131__default.forwardRef(
1293
1487
  ...props
1294
1488
  }, ref) => {
1295
1489
  const isControlled = valueProp !== void 0;
1296
- const [internal, setInternal] = React131__default.useState(defaultValue);
1490
+ const [internal, setInternal] = React137__default.useState(defaultValue);
1297
1491
  const value = Math.max(0, Math.min(100, isControlled ? valueProp : internal));
1298
- const containerRef = React131__default.useRef(null);
1299
- const commit = React131__default.useCallback(
1492
+ const containerRef = React137__default.useRef(null);
1493
+ const commit = React137__default.useCallback(
1300
1494
  (next) => {
1301
1495
  const clamped = Math.max(0, Math.min(100, next));
1302
1496
  if (!isControlled) setInternal(clamped);
@@ -1304,7 +1498,7 @@ var Comparison = React131__default.forwardRef(
1304
1498
  },
1305
1499
  [isControlled, onValueChange]
1306
1500
  );
1307
- const updateFromPointer = React131__default.useCallback(
1501
+ const updateFromPointer = React137__default.useCallback(
1308
1502
  (clientX, clientY) => {
1309
1503
  const el = containerRef.current;
1310
1504
  if (!el) return;
@@ -1427,30 +1621,30 @@ var ContextMenuSub = ContextMenuPrimitive.Sub;
1427
1621
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
1428
1622
  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
1623
  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 }) }));
1624
+ var ContextMenuContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, { ref, className: cn(contentStyle, className), ...props }) }));
1431
1625
  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 }));
1626
+ var ContextMenuItem = React137__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props }));
1433
1627
  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: [
1628
+ var ContextMenuCheckboxItem = React137__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle, "pl-8", className), checked, ...props, children: [
1435
1629
  /* @__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
1630
  children
1437
1631
  ] }));
1438
1632
  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: [
1633
+ var ContextMenuRadioItem = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, { ref, className: cn(itemStyle, "pl-8", className), ...props, children: [
1440
1634
  /* @__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
1635
  children
1442
1636
  ] }));
1443
1637
  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 }));
1638
+ var ContextMenuLabel = React137__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
1639
  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 }));
1640
+ var ContextMenuSeparator = React137__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
1641
  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: [
1642
+ var ContextMenuSubTrigger = React137__default.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, { ref, className: cn(itemStyle, inset && "pl-8", className), ...props, children: [
1449
1643
  children,
1450
1644
  /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
1451
1645
  ] }));
1452
1646
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1453
- var ContextMenuSubContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, { ref, className: cn(contentStyle, className), ...props }));
1647
+ var ContextMenuSubContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, { ref, className: cn(contentStyle, className), ...props }));
1454
1648
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1455
1649
  var ContextMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1456
1650
  var Drawer = ({
@@ -1467,7 +1661,7 @@ Drawer.displayName = "Drawer";
1467
1661
  var DrawerTrigger = Drawer$1.Trigger;
1468
1662
  var DrawerPortal = Drawer$1.Portal;
1469
1663
  var DrawerClose = Drawer$1.Close;
1470
- var DrawerOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1664
+ var DrawerOverlay = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1471
1665
  Drawer$1.Overlay,
1472
1666
  {
1473
1667
  ref,
@@ -1476,7 +1670,7 @@ var DrawerOverlay = React131.forwardRef(({ className, ...props }, ref) => /* @__
1476
1670
  }
1477
1671
  ));
1478
1672
  DrawerOverlay.displayName = Drawer$1.Overlay.displayName;
1479
- var DrawerContent = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
1673
+ var DrawerContent = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DrawerPortal, { children: [
1480
1674
  /* @__PURE__ */ jsx(DrawerOverlay, {}),
1481
1675
  /* @__PURE__ */ jsxs(
1482
1676
  Drawer$1.Content,
@@ -1517,7 +1711,7 @@ var DrawerFooter = ({
1517
1711
  }
1518
1712
  );
1519
1713
  DrawerFooter.displayName = "DrawerFooter";
1520
- var DrawerTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1714
+ var DrawerTitle = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1521
1715
  Drawer$1.Title,
1522
1716
  {
1523
1717
  ref,
@@ -1529,7 +1723,7 @@ var DrawerTitle = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
1529
1723
  }
1530
1724
  ));
1531
1725
  DrawerTitle.displayName = Drawer$1.Title.displayName;
1532
- var DrawerDescription = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1726
+ var DrawerDescription = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1533
1727
  Drawer$1.Description,
1534
1728
  {
1535
1729
  ref,
@@ -1554,36 +1748,65 @@ var itemStyle2 = cn(
1554
1748
  "focus:bg-[hsl(var(--accent))] focus:text-[hsl(var(--accent-foreground))]",
1555
1749
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
1556
1750
  );
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 }) }));
1751
+ var DropdownMenuContent = React137__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, { ref, sideOffset, className: cn(contentStyle2, className), ...props }) }));
1558
1752
  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 }));
1753
+ var DropdownMenuItem = React137__default.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, { ref, className: cn(itemStyle2, inset && "pl-8", className), ...props }));
1560
1754
  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: [
1755
+ var DropdownMenuCheckboxItem = React137__default.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, { ref, className: cn(itemStyle2, "pl-8", className), checked, ...props, children: [
1562
1756
  /* @__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
1757
  children
1564
1758
  ] }));
1565
1759
  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: [
1760
+ var DropdownMenuRadioItem = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, { ref, className: cn(itemStyle2, "pl-8", className), ...props, children: [
1567
1761
  /* @__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
1762
  children
1569
1763
  ] }));
1570
1764
  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 }));
1765
+ var DropdownMenuLabel = React137__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
1766
  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 }));
1767
+ var DropdownMenuSeparator = React137__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
1768
  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: [
1769
+ var DropdownMenuSubTrigger = React137__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
1770
  children,
1577
1771
  /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
1578
1772
  ] }));
1579
1773
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1580
- var DropdownMenuSubContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
1774
+ var DropdownMenuSubContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, { ref, className: cn(contentStyle2, className), ...props }));
1581
1775
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1582
1776
  var DropdownMenuShortcut = ({ className, ...props }) => /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
1583
1777
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
1778
+ var EmptyCart = React137__default.forwardRef(
1779
+ ({
1780
+ title = "Your cart is empty",
1781
+ description = "Browse the catalog and add something you love.",
1782
+ actionLabel = "Continue shopping",
1783
+ onAction,
1784
+ icon,
1785
+ className,
1786
+ ...props
1787
+ }, ref) => {
1788
+ return /* @__PURE__ */ jsxs(
1789
+ "div",
1790
+ {
1791
+ ref,
1792
+ className: cn("flex flex-col items-center justify-center gap-4 px-6 py-12 text-center", className),
1793
+ ...props,
1794
+ children: [
1795
+ /* @__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 }) }),
1796
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
1797
+ /* @__PURE__ */ jsx("span", { className: "text-base font-semibold text-foreground", children: title }),
1798
+ description && /* @__PURE__ */ jsx("span", { className: "max-w-xs text-sm text-muted-foreground", children: description })
1799
+ ] }),
1800
+ actionLabel && onAction && /* @__PURE__ */ jsx(Button, { onClick: onAction, className: "mt-1", children: actionLabel })
1801
+ ]
1802
+ }
1803
+ );
1804
+ }
1805
+ );
1806
+ EmptyCart.displayName = "EmptyCart";
1584
1807
  var HoverCard = HoverCardPrimitive.Root;
1585
1808
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
1586
- var HoverCardContent = React131.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1809
+ var HoverCardContent = React137.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
1587
1810
  HoverCardPrimitive.Content,
1588
1811
  {
1589
1812
  ref,
@@ -1597,7 +1820,7 @@ var HoverCardContent = React131.forwardRef(({ className, align = "center", sideO
1597
1820
  }
1598
1821
  ));
1599
1822
  HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
1600
- var InputOTP = React131.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
1823
+ var InputOTP = React137.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
1601
1824
  OTPInput,
1602
1825
  {
1603
1826
  ref,
@@ -1610,10 +1833,10 @@ var InputOTP = React131.forwardRef(({ className, containerClassName, ...props },
1610
1833
  }
1611
1834
  ));
1612
1835
  InputOTP.displayName = "InputOTP";
1613
- var InputOTPGroup = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
1836
+ var InputOTPGroup = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
1614
1837
  InputOTPGroup.displayName = "InputOTPGroup";
1615
- var InputOTPSlot = React131.forwardRef(({ index, className, ...props }, ref) => {
1616
- const inputOTPContext = React131.useContext(OTPInputContext);
1838
+ var InputOTPSlot = React137.forwardRef(({ index, className, ...props }, ref) => {
1839
+ const inputOTPContext = React137.useContext(OTPInputContext);
1617
1840
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
1618
1841
  return /* @__PURE__ */ jsxs(
1619
1842
  "div",
@@ -1633,9 +1856,9 @@ var InputOTPSlot = React131.forwardRef(({ index, className, ...props }, ref) =>
1633
1856
  );
1634
1857
  });
1635
1858
  InputOTPSlot.displayName = "InputOTPSlot";
1636
- var InputOTPSeparator = React131.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
1859
+ var InputOTPSeparator = React137.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
1637
1860
  InputOTPSeparator.displayName = "InputOTPSeparator";
1638
- var Input = React131__default.forwardRef(
1861
+ var Input = React137__default.forwardRef(
1639
1862
  ({ className, type, ...props }, ref) => /* @__PURE__ */ jsx(
1640
1863
  "input",
1641
1864
  {
@@ -1657,7 +1880,7 @@ Input.displayName = "Input";
1657
1880
  var labelVariants = cva(
1658
1881
  "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
1659
1882
  );
1660
- var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1883
+ var Label3 = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1661
1884
  LabelPrimitive.Root,
1662
1885
  {
1663
1886
  ref,
@@ -1666,7 +1889,7 @@ var Label3 = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1666
1889
  }
1667
1890
  ));
1668
1891
  Label3.displayName = LabelPrimitive.Root.displayName;
1669
- var LogoCarousel = React131__default.forwardRef(
1892
+ var LogoCarousel = React137__default.forwardRef(
1670
1893
  ({
1671
1894
  className,
1672
1895
  logos,
@@ -1760,7 +1983,7 @@ var SPEED_DURATION = {
1760
1983
  normal: "40s",
1761
1984
  fast: "20s"
1762
1985
  };
1763
- var Marquee = React131__default.forwardRef(
1986
+ var Marquee = React137__default.forwardRef(
1764
1987
  ({
1765
1988
  children,
1766
1989
  speed = "normal",
@@ -1824,7 +2047,7 @@ function MenubarSub({
1824
2047
  }) {
1825
2048
  return /* @__PURE__ */ jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
1826
2049
  }
1827
- var Menubar = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2050
+ var Menubar = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1828
2051
  MenubarPrimitive.Root,
1829
2052
  {
1830
2053
  ref,
@@ -1836,7 +2059,7 @@ var Menubar = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1836
2059
  }
1837
2060
  ));
1838
2061
  Menubar.displayName = MenubarPrimitive.Root.displayName;
1839
- var MenubarTrigger = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2062
+ var MenubarTrigger = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1840
2063
  MenubarPrimitive.Trigger,
1841
2064
  {
1842
2065
  ref,
@@ -1848,7 +2071,7 @@ var MenubarTrigger = React131.forwardRef(({ className, ...props }, ref) => /* @_
1848
2071
  }
1849
2072
  ));
1850
2073
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
1851
- var MenubarSubTrigger = React131.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2074
+ var MenubarSubTrigger = React137.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1852
2075
  MenubarPrimitive.SubTrigger,
1853
2076
  {
1854
2077
  ref,
@@ -1865,7 +2088,7 @@ var MenubarSubTrigger = React131.forwardRef(({ className, inset, children, ...pr
1865
2088
  }
1866
2089
  ));
1867
2090
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
1868
- var MenubarSubContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2091
+ var MenubarSubContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1869
2092
  MenubarPrimitive.SubContent,
1870
2093
  {
1871
2094
  ref,
@@ -1877,7 +2100,7 @@ var MenubarSubContent = React131.forwardRef(({ className, ...props }, ref) => /*
1877
2100
  }
1878
2101
  ));
1879
2102
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
1880
- var MenubarContent = React131.forwardRef(
2103
+ var MenubarContent = React137.forwardRef(
1881
2104
  ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx(
1882
2105
  MenubarPrimitive.Content,
1883
2106
  {
@@ -1894,7 +2117,7 @@ var MenubarContent = React131.forwardRef(
1894
2117
  ) })
1895
2118
  );
1896
2119
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
1897
- var MenubarItem = React131.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
2120
+ var MenubarItem = React137.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1898
2121
  MenubarPrimitive.Item,
1899
2122
  {
1900
2123
  ref,
@@ -1907,7 +2130,7 @@ var MenubarItem = React131.forwardRef(({ className, inset, ...props }, ref) => /
1907
2130
  }
1908
2131
  ));
1909
2132
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
1910
- var MenubarCheckboxItem = React131.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
2133
+ var MenubarCheckboxItem = React137.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(
1911
2134
  MenubarPrimitive.CheckboxItem,
1912
2135
  {
1913
2136
  ref,
@@ -1924,7 +2147,7 @@ var MenubarCheckboxItem = React131.forwardRef(({ className, children, checked, .
1924
2147
  }
1925
2148
  ));
1926
2149
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
1927
- var MenubarRadioItem = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2150
+ var MenubarRadioItem = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1928
2151
  MenubarPrimitive.RadioItem,
1929
2152
  {
1930
2153
  ref,
@@ -1940,7 +2163,7 @@ var MenubarRadioItem = React131.forwardRef(({ className, children, ...props }, r
1940
2163
  }
1941
2164
  ));
1942
2165
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
1943
- var MenubarLabel = React131.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
2166
+ var MenubarLabel = React137.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(
1944
2167
  MenubarPrimitive.Label,
1945
2168
  {
1946
2169
  ref,
@@ -1953,7 +2176,7 @@ var MenubarLabel = React131.forwardRef(({ className, inset, ...props }, ref) =>
1953
2176
  }
1954
2177
  ));
1955
2178
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
1956
- var MenubarSeparator = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2179
+ var MenubarSeparator = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1957
2180
  MenubarPrimitive.Separator,
1958
2181
  {
1959
2182
  ref,
@@ -1978,7 +2201,7 @@ var MenubarShortcut = ({
1978
2201
  );
1979
2202
  };
1980
2203
  MenubarShortcut.displayname = "MenubarShortcut";
1981
- var NavigationMenu = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2204
+ var NavigationMenu = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
1982
2205
  NavigationMenuPrimitive.Root,
1983
2206
  {
1984
2207
  ref,
@@ -1994,7 +2217,7 @@ var NavigationMenu = React131.forwardRef(({ className, children, ...props }, ref
1994
2217
  }
1995
2218
  ));
1996
2219
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1997
- var NavigationMenuList = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2220
+ var NavigationMenuList = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
1998
2221
  NavigationMenuPrimitive.List,
1999
2222
  {
2000
2223
  ref,
@@ -2010,7 +2233,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
2010
2233
  var navigationMenuTriggerStyle = cva(
2011
2234
  "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
2235
  );
2013
- var NavigationMenuTrigger = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2236
+ var NavigationMenuTrigger = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2014
2237
  NavigationMenuPrimitive.Trigger,
2015
2238
  {
2016
2239
  ref,
@@ -2030,7 +2253,7 @@ var NavigationMenuTrigger = React131.forwardRef(({ className, children, ...props
2030
2253
  }
2031
2254
  ));
2032
2255
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
2033
- var NavigationMenuContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2256
+ var NavigationMenuContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2034
2257
  NavigationMenuPrimitive.Content,
2035
2258
  {
2036
2259
  ref,
@@ -2043,7 +2266,7 @@ var NavigationMenuContent = React131.forwardRef(({ className, ...props }, ref) =
2043
2266
  ));
2044
2267
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
2045
2268
  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(
2269
+ var NavigationMenuViewport = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx(
2047
2270
  NavigationMenuPrimitive.Viewport,
2048
2271
  {
2049
2272
  className: cn(
@@ -2055,7 +2278,7 @@ var NavigationMenuViewport = React131.forwardRef(({ className, ...props }, ref)
2055
2278
  }
2056
2279
  ) }));
2057
2280
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
2058
- var NavigationMenuIndicator = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2281
+ var NavigationMenuIndicator = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2059
2282
  NavigationMenuPrimitive.Indicator,
2060
2283
  {
2061
2284
  ref,
@@ -2078,7 +2301,7 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx(
2078
2301
  }
2079
2302
  );
2080
2303
  Pagination.displayName = "Pagination";
2081
- var PaginationContent = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2304
+ var PaginationContent = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2082
2305
  "ul",
2083
2306
  {
2084
2307
  ref,
@@ -2087,7 +2310,7 @@ var PaginationContent = React131.forwardRef(({ className, ...props }, ref) => /*
2087
2310
  }
2088
2311
  ));
2089
2312
  PaginationContent.displayName = "PaginationContent";
2090
- var PaginationItem = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
2313
+ var PaginationItem = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("", className), ...props }));
2091
2314
  PaginationItem.displayName = "PaginationItem";
2092
2315
  var PaginationLink = ({
2093
2316
  className,
@@ -2162,7 +2385,7 @@ PaginationEllipsis.displayName = "PaginationEllipsis";
2162
2385
  var Popover = PopoverPrimitive.Root;
2163
2386
  var PopoverTrigger = PopoverPrimitive.Trigger;
2164
2387
  var PopoverAnchor = PopoverPrimitive.Anchor;
2165
- var PopoverContent = React131__default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2388
+ var PopoverContent = React137__default.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2166
2389
  PopoverPrimitive.Content,
2167
2390
  {
2168
2391
  ref,
@@ -2179,7 +2402,7 @@ var PopoverContent = React131__default.forwardRef(({ className, align = "center"
2179
2402
  }
2180
2403
  ) }));
2181
2404
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
2182
- var Progress = React131__default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
2405
+ var Progress = React137__default.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx(
2183
2406
  ProgressPrimitive.Root,
2184
2407
  {
2185
2408
  ref,
@@ -2195,7 +2418,7 @@ var Progress = React131__default.forwardRef(({ className, value, ...props }, ref
2195
2418
  }
2196
2419
  ));
2197
2420
  Progress.displayName = ProgressPrimitive.Root.displayName;
2198
- var QrCode = React131__default.forwardRef(
2421
+ var QrCode = React137__default.forwardRef(
2199
2422
  ({
2200
2423
  value,
2201
2424
  size = 192,
@@ -2252,9 +2475,9 @@ var QrCode = React131__default.forwardRef(
2252
2475
  }
2253
2476
  );
2254
2477
  QrCode.displayName = "QrCode";
2255
- var RadioGroup4 = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ref, ...props }));
2478
+ var RadioGroup4 = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ref, ...props }));
2256
2479
  RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
2257
- var RadioGroupItem = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2480
+ var RadioGroupItem = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2258
2481
  RadioGroupPrimitive.Item,
2259
2482
  {
2260
2483
  ref,
@@ -2269,12 +2492,12 @@ var RadioGroupItem = React131__default.forwardRef(({ className, ...props }, ref)
2269
2492
  }
2270
2493
  ));
2271
2494
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
2272
- var SIZE = {
2495
+ var SIZE2 = {
2273
2496
  sm: "h-4 w-4",
2274
2497
  md: "h-5 w-5",
2275
2498
  lg: "h-6 w-6"
2276
2499
  };
2277
- var Rating = React131__default.forwardRef(
2500
+ var Rating = React137__default.forwardRef(
2278
2501
  ({
2279
2502
  value: valueProp,
2280
2503
  defaultValue = 0,
@@ -2290,10 +2513,10 @@ var Rating = React131__default.forwardRef(
2290
2513
  ...props
2291
2514
  }, ref) => {
2292
2515
  const isControlled = valueProp !== void 0;
2293
- const [internal, setInternal] = React131__default.useState(defaultValue);
2516
+ const [internal, setInternal] = React137__default.useState(defaultValue);
2294
2517
  const value = isControlled ? valueProp : internal;
2295
2518
  const step = allowHalf ? 0.5 : 1;
2296
- const commit = React131__default.useCallback(
2519
+ const commit = React137__default.useCallback(
2297
2520
  (next) => {
2298
2521
  const clamped = Math.max(0, Math.min(max, next));
2299
2522
  if (!isControlled) setInternal(clamped);
@@ -2340,13 +2563,13 @@ var Rating = React131__default.forwardRef(
2340
2563
  children: Array.from({ length: max }).map((_, i) => {
2341
2564
  const fillPercent = Math.max(0, Math.min(1, value - i)) * 100;
2342
2565
  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 }) }),
2566
+ /* @__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
2567
  /* @__PURE__ */ jsx(
2345
2568
  "span",
2346
2569
  {
2347
2570
  className: cn(
2348
2571
  "absolute inset-0 overflow-hidden text-[hsl(var(--primary))]",
2349
- SIZE[size]
2572
+ SIZE2[size]
2350
2573
  ),
2351
2574
  style: { width: `${fillPercent}%` },
2352
2575
  "aria-hidden": "true",
@@ -2407,7 +2630,7 @@ var ResizableHandle = ({
2407
2630
  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
2631
  }
2409
2632
  );
2410
- var ScrollArea = React131.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2633
+ var ScrollArea = React137.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2411
2634
  ScrollAreaPrimitive.Root,
2412
2635
  {
2413
2636
  ref,
@@ -2421,7 +2644,7 @@ var ScrollArea = React131.forwardRef(({ className, children, ...props }, ref) =>
2421
2644
  }
2422
2645
  ));
2423
2646
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2424
- var ScrollBar = React131.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
2647
+ var ScrollBar = React137.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
2425
2648
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2426
2649
  {
2427
2650
  ref,
@@ -2440,7 +2663,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2440
2663
  var Select = SelectPrimitive.Root;
2441
2664
  var SelectGroup = SelectPrimitive.Group;
2442
2665
  var SelectValue = SelectPrimitive.Value;
2443
- var SelectTrigger = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2666
+ var SelectTrigger = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2444
2667
  SelectPrimitive.Trigger,
2445
2668
  {
2446
2669
  ref,
@@ -2460,7 +2683,7 @@ var SelectTrigger = React131__default.forwardRef(({ className, children, ...prop
2460
2683
  }
2461
2684
  ));
2462
2685
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2463
- var SelectScrollUpButton = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2686
+ var SelectScrollUpButton = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2464
2687
  SelectPrimitive.ScrollUpButton,
2465
2688
  {
2466
2689
  ref,
@@ -2470,7 +2693,7 @@ var SelectScrollUpButton = React131__default.forwardRef(({ className, ...props }
2470
2693
  }
2471
2694
  ));
2472
2695
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2473
- var SelectScrollDownButton = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2696
+ var SelectScrollDownButton = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2474
2697
  SelectPrimitive.ScrollDownButton,
2475
2698
  {
2476
2699
  ref,
@@ -2480,7 +2703,7 @@ var SelectScrollDownButton = React131__default.forwardRef(({ className, ...props
2480
2703
  }
2481
2704
  ));
2482
2705
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2483
- var SelectContent = React131__default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
2706
+ var SelectContent = React137__default.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
2484
2707
  SelectPrimitive.Content,
2485
2708
  {
2486
2709
  ref,
@@ -2507,7 +2730,7 @@ var SelectContent = React131__default.forwardRef(({ className, children, positio
2507
2730
  }
2508
2731
  ) }));
2509
2732
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2510
- var SelectLabel = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2733
+ var SelectLabel = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2511
2734
  SelectPrimitive.Label,
2512
2735
  {
2513
2736
  ref,
@@ -2516,7 +2739,7 @@ var SelectLabel = React131__default.forwardRef(({ className, ...props }, ref) =>
2516
2739
  }
2517
2740
  ));
2518
2741
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2519
- var SelectItem = React131__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2742
+ var SelectItem = React137__default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
2520
2743
  SelectPrimitive.Item,
2521
2744
  {
2522
2745
  ref,
@@ -2534,7 +2757,7 @@ var SelectItem = React131__default.forwardRef(({ className, children, ...props }
2534
2757
  }
2535
2758
  ));
2536
2759
  SelectItem.displayName = SelectPrimitive.Item.displayName;
2537
- var SelectSeparator = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2760
+ var SelectSeparator = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2538
2761
  SelectPrimitive.Separator,
2539
2762
  {
2540
2763
  ref,
@@ -2543,7 +2766,7 @@ var SelectSeparator = React131__default.forwardRef(({ className, ...props }, ref
2543
2766
  }
2544
2767
  ));
2545
2768
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
2546
- var Separator6 = React131__default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
2769
+ var Separator6 = React137__default.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
2547
2770
  SeparatorPrimitive.Root,
2548
2771
  {
2549
2772
  ref,
@@ -2562,7 +2785,7 @@ var Sheet = DialogPrimitive.Root;
2562
2785
  var SheetTrigger = DialogPrimitive.Trigger;
2563
2786
  var SheetClose = DialogPrimitive.Close;
2564
2787
  var SheetPortal = DialogPrimitive.Portal;
2565
- var SheetOverlay = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2788
+ var SheetOverlay = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2566
2789
  DialogPrimitive.Overlay,
2567
2790
  {
2568
2791
  ref,
@@ -2590,7 +2813,7 @@ var sheetVariants = cva(
2590
2813
  defaultVariants: { side: "right" }
2591
2814
  }
2592
2815
  );
2593
- var SheetContent = React131__default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
2816
+ var SheetContent = React137__default.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
2594
2817
  /* @__PURE__ */ jsx(SheetOverlay, {}),
2595
2818
  /* @__PURE__ */ jsxs(DialogPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
2596
2819
  /* @__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 +2826,9 @@ var SheetContent = React131__default.forwardRef(({ side = "right", className, ch
2603
2826
  SheetContent.displayName = DialogPrimitive.Content.displayName;
2604
2827
  var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
2605
2828
  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 }));
2829
+ var SheetTitle = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
2607
2830
  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 }));
2831
+ var SheetDescription = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DialogPrimitive.Description, { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))]", className), ...props }));
2609
2832
  SheetDescription.displayName = DialogPrimitive.Description.displayName;
2610
2833
  function Skeleton({ className, ...props }) {
2611
2834
  return /* @__PURE__ */ jsx(
@@ -2616,7 +2839,7 @@ function Skeleton({ className, ...props }) {
2616
2839
  }
2617
2840
  );
2618
2841
  }
2619
- var Slider = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
2842
+ var Slider = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs(
2620
2843
  SliderPrimitive.Root,
2621
2844
  {
2622
2845
  ref,
@@ -2640,7 +2863,7 @@ function Spinner({ className, ...props }) {
2640
2863
  }
2641
2864
  );
2642
2865
  }
2643
- var Switch = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2866
+ var Switch = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2644
2867
  SwitchPrimitive.Root,
2645
2868
  {
2646
2869
  ref,
@@ -2666,7 +2889,7 @@ var Switch = React131__default.forwardRef(({ className, ...props }, ref) => /* @
2666
2889
  }
2667
2890
  ));
2668
2891
  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(
2892
+ var Table = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx(
2670
2893
  "table",
2671
2894
  {
2672
2895
  ref,
@@ -2675,9 +2898,9 @@ var Table = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
2675
2898
  }
2676
2899
  ) }));
2677
2900
  Table.displayName = "Table";
2678
- var TableHeader = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
2901
+ var TableHeader = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
2679
2902
  TableHeader.displayName = "TableHeader";
2680
- var TableBody = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2903
+ var TableBody = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2681
2904
  "tbody",
2682
2905
  {
2683
2906
  ref,
@@ -2686,7 +2909,7 @@ var TableBody = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
2686
2909
  }
2687
2910
  ));
2688
2911
  TableBody.displayName = "TableBody";
2689
- var TableFooter = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2912
+ var TableFooter = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2690
2913
  "tfoot",
2691
2914
  {
2692
2915
  ref,
@@ -2698,7 +2921,7 @@ var TableFooter = React131.forwardRef(({ className, ...props }, ref) => /* @__PU
2698
2921
  }
2699
2922
  ));
2700
2923
  TableFooter.displayName = "TableFooter";
2701
- var TableRow = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2924
+ var TableRow = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2702
2925
  "tr",
2703
2926
  {
2704
2927
  ref,
@@ -2710,7 +2933,7 @@ var TableRow = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE_
2710
2933
  }
2711
2934
  ));
2712
2935
  TableRow.displayName = "TableRow";
2713
- var TableHead = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2936
+ var TableHead = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2714
2937
  "th",
2715
2938
  {
2716
2939
  ref,
@@ -2722,7 +2945,7 @@ var TableHead = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
2722
2945
  }
2723
2946
  ));
2724
2947
  TableHead.displayName = "TableHead";
2725
- var TableCell = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2948
+ var TableCell = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2726
2949
  "td",
2727
2950
  {
2728
2951
  ref,
@@ -2734,7 +2957,7 @@ var TableCell = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE
2734
2957
  }
2735
2958
  ));
2736
2959
  TableCell.displayName = "TableCell";
2737
- var TableCaption = React131.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2960
+ var TableCaption = React137.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2738
2961
  "caption",
2739
2962
  {
2740
2963
  ref,
@@ -2744,7 +2967,7 @@ var TableCaption = React131.forwardRef(({ className, ...props }, ref) => /* @__P
2744
2967
  ));
2745
2968
  TableCaption.displayName = "TableCaption";
2746
2969
  var Tabs = TabsPrimitive.Root;
2747
- var TabsList = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2970
+ var TabsList = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2748
2971
  TabsPrimitive.List,
2749
2972
  {
2750
2973
  ref,
@@ -2756,7 +2979,7 @@ var TabsList = React131__default.forwardRef(({ className, ...props }, ref) => /*
2756
2979
  }
2757
2980
  ));
2758
2981
  TabsList.displayName = TabsPrimitive.List.displayName;
2759
- var TabsTrigger = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2982
+ var TabsTrigger = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2760
2983
  TabsPrimitive.Trigger,
2761
2984
  {
2762
2985
  ref,
@@ -2771,7 +2994,7 @@ var TabsTrigger = React131__default.forwardRef(({ className, ...props }, ref) =>
2771
2994
  }
2772
2995
  ));
2773
2996
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
2774
- var TabsContent = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2997
+ var TabsContent = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2775
2998
  TabsPrimitive.Content,
2776
2999
  {
2777
3000
  ref,
@@ -2783,7 +3006,7 @@ var TabsContent = React131__default.forwardRef(({ className, ...props }, ref) =>
2783
3006
  }
2784
3007
  ));
2785
3008
  TabsContent.displayName = TabsPrimitive.Content.displayName;
2786
- var Textarea = React131__default.forwardRef(
3009
+ var Textarea = React137__default.forwardRef(
2787
3010
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
2788
3011
  "textarea",
2789
3012
  {
@@ -2801,7 +3024,7 @@ var Textarea = React131__default.forwardRef(
2801
3024
  )
2802
3025
  );
2803
3026
  Textarea.displayName = "Textarea";
2804
- var TextureCard = React131.forwardRef(
3027
+ var TextureCard = React137.forwardRef(
2805
3028
  ({ children, className, padding = true, ...props }, ref) => /* @__PURE__ */ jsx(
2806
3029
  "div",
2807
3030
  {
@@ -2818,15 +3041,15 @@ var TextureCard = React131.forwardRef(
2818
3041
  )
2819
3042
  );
2820
3043
  TextureCard.displayName = "TextureCard";
2821
- var TextureCardHeader = React131.forwardRef(
3044
+ var TextureCardHeader = React137.forwardRef(
2822
3045
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col gap-1.5 mb-4", className), ...props })
2823
3046
  );
2824
3047
  TextureCardHeader.displayName = "TextureCardHeader";
2825
- var TextureCardTitle = React131.forwardRef(
3048
+ var TextureCardTitle = React137.forwardRef(
2826
3049
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("h3", { ref, className: cn("font-semibold text-base leading-tight tracking-tight text-foreground", className), ...props })
2827
3050
  );
2828
3051
  TextureCardTitle.displayName = "TextureCardTitle";
2829
- var TextureCardDescription = React131.forwardRef(
3052
+ var TextureCardDescription = React137.forwardRef(
2830
3053
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
2831
3054
  );
2832
3055
  TextureCardDescription.displayName = "TextureCardDescription";
@@ -2850,7 +3073,7 @@ var toggleVariants = cva(
2850
3073
  }
2851
3074
  }
2852
3075
  );
2853
- var Toggle = React131.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
3076
+ var Toggle = React137.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
2854
3077
  TogglePrimitive.Root,
2855
3078
  {
2856
3079
  ref,
@@ -2859,11 +3082,11 @@ var Toggle = React131.forwardRef(({ className, variant, size, ...props }, ref) =
2859
3082
  }
2860
3083
  ));
2861
3084
  Toggle.displayName = TogglePrimitive.Root.displayName;
2862
- var ToggleGroupContext = React131.createContext({
3085
+ var ToggleGroupContext = React137.createContext({
2863
3086
  size: "default",
2864
3087
  variant: "default"
2865
3088
  });
2866
- var ToggleGroup = React131.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
3089
+ var ToggleGroup = React137.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx(
2867
3090
  ToggleGroupPrimitive.Root,
2868
3091
  {
2869
3092
  ref,
@@ -2873,8 +3096,8 @@ var ToggleGroup = React131.forwardRef(({ className, variant, size, children, ...
2873
3096
  }
2874
3097
  ));
2875
3098
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
2876
- var ToggleGroupItem = React131.forwardRef(({ className, children, variant, size, ...props }, ref) => {
2877
- const context = React131.useContext(ToggleGroupContext);
3099
+ var ToggleGroupItem = React137.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3100
+ const context = React137.useContext(ToggleGroupContext);
2878
3101
  return /* @__PURE__ */ jsx(
2879
3102
  ToggleGroupPrimitive.Item,
2880
3103
  {
@@ -2895,7 +3118,7 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
2895
3118
  var TooltipProvider = TooltipPrimitive.Provider;
2896
3119
  var Tooltip2 = TooltipPrimitive.Root;
2897
3120
  var TooltipTrigger = TooltipPrimitive.Trigger;
2898
- var TooltipContent = React131__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
3121
+ var TooltipContent = React137__default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
2899
3122
  TooltipPrimitive.Content,
2900
3123
  {
2901
3124
  ref,
@@ -2911,6 +3134,52 @@ var TooltipContent = React131__default.forwardRef(({ className, sideOffset = 4,
2911
3134
  }
2912
3135
  ) }));
2913
3136
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3137
+ var VariantPicker = React137__default.forwardRef(
3138
+ ({ label, options, value: valueProp, defaultValue, onValueChange, className, ...props }, ref) => {
3139
+ const isControlled = valueProp !== void 0;
3140
+ const [internal, setInternal] = React137__default.useState(defaultValue);
3141
+ const value = isControlled ? valueProp : internal;
3142
+ const select = (v) => {
3143
+ if (!isControlled) setInternal(v);
3144
+ onValueChange?.(v);
3145
+ };
3146
+ return /* @__PURE__ */ jsxs("div", { ref, role: "radiogroup", "aria-label": label, className: cn("flex flex-col gap-2", className), ...props, children: [
3147
+ label && /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: label }),
3148
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: options.map((opt) => {
3149
+ const selected = value === opt.value;
3150
+ return /* @__PURE__ */ jsxs(
3151
+ "button",
3152
+ {
3153
+ type: "button",
3154
+ role: "radio",
3155
+ "aria-checked": selected,
3156
+ disabled: opt.disabled,
3157
+ onClick: () => select(opt.value),
3158
+ className: cn(
3159
+ "inline-flex items-center gap-2 rounded-md border px-3 py-1.5 text-sm font-medium transition-colors",
3160
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
3161
+ selected ? "border-primary bg-primary/10 text-[hsl(var(--primary))]" : "border-border hover:bg-accent hover:text-accent-foreground",
3162
+ opt.disabled && "cursor-not-allowed text-muted-foreground line-through opacity-50"
3163
+ ),
3164
+ children: [
3165
+ opt.swatch && /* @__PURE__ */ jsx(
3166
+ "span",
3167
+ {
3168
+ "aria-hidden": "true",
3169
+ className: "h-4 w-4 rounded-full border border-border",
3170
+ style: { backgroundColor: opt.swatch }
3171
+ }
3172
+ ),
3173
+ opt.label
3174
+ ]
3175
+ },
3176
+ opt.value
3177
+ );
3178
+ }) })
3179
+ ] });
3180
+ }
3181
+ );
3182
+ VariantPicker.displayName = "VariantPicker";
2914
3183
  var bannerVariants = cva(
2915
3184
  "relative flex items-start gap-3 rounded-lg border px-4 py-3.5 text-sm transition-all",
2916
3185
  {
@@ -3007,8 +3276,8 @@ function Banner({
3007
3276
  className,
3008
3277
  children
3009
3278
  }) {
3010
- const [dismissed, setDismissed] = React131__default.useState(false);
3011
- const [exiting, setExiting] = React131__default.useState(false);
3279
+ const [dismissed, setDismissed] = React137__default.useState(false);
3280
+ const [exiting, setExiting] = React137__default.useState(false);
3012
3281
  const handleDismiss = () => {
3013
3282
  setExiting(true);
3014
3283
  setTimeout(() => {
@@ -3069,7 +3338,7 @@ function BreadcrumbSeparator({ className }) {
3069
3338
  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
3339
  }
3071
3340
  function Breadcrumb({ children, className }) {
3072
- const items = React131__default.Children.toArray(children);
3341
+ const items = React137__default.Children.toArray(children);
3073
3342
  const withSeparators = [];
3074
3343
  items.forEach((item, i) => {
3075
3344
  withSeparators.push(item);
@@ -3099,8 +3368,8 @@ function CommandItem2({ icon, label, description, shortcut, active, onClick, cla
3099
3368
  );
3100
3369
  }
3101
3370
  function EditableCell({ value: initial, onSave }) {
3102
- const [editing, setEditing] = React131__default.useState(false);
3103
- const [val, setVal] = React131__default.useState(String(initial ?? ""));
3371
+ const [editing, setEditing] = React137__default.useState(false);
3372
+ const [val, setVal] = React137__default.useState(String(initial ?? ""));
3104
3373
  const commit = () => {
3105
3374
  onSave(val);
3106
3375
  setEditing(false);
@@ -3131,10 +3400,10 @@ var selectionCol = () => ({
3131
3400
  enableResizing: false
3132
3401
  });
3133
3402
  function DataGrid({ columns, data: initialData, onDataChange, editable, className }) {
3134
- const [data, setData] = React131__default.useState(initialData);
3135
- const [rowSelection, setRowSelection] = React131__default.useState({});
3403
+ const [data, setData] = React137__default.useState(initialData);
3404
+ const [rowSelection, setRowSelection] = React137__default.useState({});
3136
3405
  const columnResizeMode = "onChange";
3137
- const editableColumns = React131__default.useMemo(() => {
3406
+ const editableColumns = React137__default.useMemo(() => {
3138
3407
  if (!editable) return columns;
3139
3408
  return columns.map((col) => ({
3140
3409
  ...col,
@@ -3153,7 +3422,7 @@ function DataGrid({ columns, data: initialData, onDataChange, editable, classNam
3153
3422
  )
3154
3423
  }));
3155
3424
  }, [columns, data, editable, onDataChange]);
3156
- const allColumns = React131__default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
3425
+ const allColumns = React137__default.useMemo(() => [selectionCol(), ...editableColumns], [editableColumns]);
3157
3426
  const table = useReactTable({
3158
3427
  data,
3159
3428
  columns: allColumns,
@@ -3224,7 +3493,7 @@ function DataTableToolbar({ table, searchColumn }) {
3224
3493
  ) });
3225
3494
  }
3226
3495
  function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loading }) {
3227
- const [sorting, setSorting] = React131__default.useState([]);
3496
+ const [sorting, setSorting] = React137__default.useState([]);
3228
3497
  const table = useReactTable({
3229
3498
  data,
3230
3499
  columns,
@@ -3249,7 +3518,7 @@ function DataTable({ columns, data, pageSize = 10, searchable, searchColumn, loa
3249
3518
  /* @__PURE__ */ jsx(DataTablePagination, { table })
3250
3519
  ] });
3251
3520
  }
3252
- var EmptyStateIcon = React131__default.forwardRef(
3521
+ var EmptyStateIcon = React137__default.forwardRef(
3253
3522
  ({ 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
3523
  );
3255
3524
  EmptyStateIcon.displayName = "EmptyStateIcon";
@@ -3364,7 +3633,7 @@ function Persona({ name, subtitle, src, size = "md", badge, className }) {
3364
3633
  ] })
3365
3634
  ] });
3366
3635
  }
3367
- var PropertyList = React131__default.forwardRef(
3636
+ var PropertyList = React137__default.forwardRef(
3368
3637
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("dl", { ref, className: cn("divide-y divide-[hsl(var(--border))]", className), ...props })
3369
3638
  );
3370
3639
  PropertyList.displayName = "PropertyList";
@@ -3450,7 +3719,7 @@ function StructuredListItem({ left, title, description, right, onClick, classNam
3450
3719
  }
3451
3720
  );
3452
3721
  }
3453
- var StructuredList = React131__default.forwardRef(
3722
+ var StructuredList = React137__default.forwardRef(
3454
3723
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("space-y-4", className), ...props })
3455
3724
  );
3456
3725
  StructuredList.displayName = "StructuredList";
@@ -3460,7 +3729,7 @@ var dotColors = {
3460
3729
  error: "bg-red-500",
3461
3730
  warning: "bg-yellow-500"
3462
3731
  };
3463
- var TimelineContent = React131__default.forwardRef(
3732
+ var TimelineContent = React137__default.forwardRef(
3464
3733
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("pb-1", className), ...props })
3465
3734
  );
3466
3735
  TimelineContent.displayName = "TimelineContent";
@@ -3483,9 +3752,9 @@ function TimelineItem({ icon, title, description, timestamp, variant = "default"
3483
3752
  ] });
3484
3753
  }
3485
3754
  function Timeline({ children, className }) {
3486
- const items = React131__default.Children.toArray(children);
3755
+ const items = React137__default.Children.toArray(children);
3487
3756
  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
3757
+ (child, i) => React137__default.isValidElement(child) ? React137__default.cloneElement(child, { isLast: i === items.length - 1 }) : child
3489
3758
  ) });
3490
3759
  }
3491
3760
  var INITIAL_MESSAGES = [
@@ -3669,7 +3938,7 @@ function FileRow({ file, onDelete }) {
3669
3938
  ] });
3670
3939
  }
3671
3940
  function FilesList({ className }) {
3672
- const [files, setFiles] = React131__default.useState(FILES2);
3941
+ const [files, setFiles] = React137__default.useState(FILES2);
3673
3942
  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
3943
  /* @__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
3944
  /* @__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 +4433,9 @@ function apply(mode) {
4164
4433
  document.documentElement.classList.toggle("dark", isDark);
4165
4434
  }
4166
4435
  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(() => {
4436
+ const [mode, setMode] = React137__default.useState(() => defaultMode ?? readInitial());
4437
+ const didMount = React137__default.useRef(false);
4438
+ React137__default.useEffect(() => {
4170
4439
  if (!didMount.current) {
4171
4440
  didMount.current = true;
4172
4441
  return;
@@ -4178,7 +4447,7 @@ function ThemeSwitch({ defaultMode, onChange, className, variant = "segmented" }
4178
4447
  }
4179
4448
  onChange?.(mode);
4180
4449
  }, [mode, onChange]);
4181
- React131__default.useEffect(() => {
4450
+ React137__default.useEffect(() => {
4182
4451
  if (mode !== "system" || typeof window === "undefined") return;
4183
4452
  const mql = window.matchMedia("(prefers-color-scheme: dark)");
4184
4453
  const handler = () => apply("system");
@@ -4269,7 +4538,7 @@ function FloatingActionButton({
4269
4538
  position = "bottom-right",
4270
4539
  className
4271
4540
  }) {
4272
- const [open, setOpen] = React131__default.useState(false);
4541
+ const [open, setOpen] = React137__default.useState(false);
4273
4542
  return /* @__PURE__ */ jsx(
4274
4543
  "div",
4275
4544
  {
@@ -4310,7 +4579,7 @@ function FloatingActionButton({
4310
4579
  ] }),
4311
4580
  sections.length > 0 && /* @__PURE__ */ jsx(Separator6, {})
4312
4581
  ] }),
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: [
4582
+ sections.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-3 py-2.5 space-y-3", children: sections.map((section, i) => /* @__PURE__ */ jsxs(React137__default.Fragment, { children: [
4314
4583
  /* @__PURE__ */ jsxs("div", { children: [
4315
4584
  /* @__PURE__ */ jsx("p", { className: "text-[9px] font-semibold uppercase tracking-widest text-muted-foreground mb-1.5", children: section.label }),
4316
4585
  section.content
@@ -4352,7 +4621,7 @@ function applyTheme(val) {
4352
4621
  }
4353
4622
  }
4354
4623
  function PaletteSwatches({ options = DEFAULT_THEME_OPTIONS }) {
4355
- const [activeValue, setActiveValue] = React131__default.useState(readStoredTheme);
4624
+ const [activeValue, setActiveValue] = React137__default.useState(readStoredTheme);
4356
4625
  const activeOption = options.find((o) => o.value === activeValue) ?? options[0];
4357
4626
  const handleSelect = (value) => {
4358
4627
  setActiveValue(value);
@@ -5228,8 +5497,8 @@ function BulkActions({ count, actions, onClear, className }) {
5228
5497
  ] });
5229
5498
  }
5230
5499
  function useCommandBar() {
5231
- const [open, setOpen] = React131__default.useState(false);
5232
- React131__default.useEffect(() => {
5500
+ const [open, setOpen] = React137__default.useState(false);
5501
+ React137__default.useEffect(() => {
5233
5502
  const handler = (e) => {
5234
5503
  if ((e.metaKey || e.ctrlKey) && e.key === "k") {
5235
5504
  e.preventDefault();
@@ -5269,12 +5538,12 @@ function CommandBarItem({ icon, label, shortcut, onSelect, active, className })
5269
5538
  );
5270
5539
  }
5271
5540
  function CommandBar({ open, onOpenChange, children, placeholder = "Search commands...", onSearch }) {
5272
- const [query, setQuery] = React131__default.useState("");
5541
+ const [query, setQuery] = React137__default.useState("");
5273
5542
  const handleSearch = (v) => {
5274
5543
  setQuery(v);
5275
5544
  onSearch?.(v);
5276
5545
  };
5277
- const items = React131__default.useRef(null);
5546
+ const items = React137__default.useRef(null);
5278
5547
  const handleKeyDown = (e) => {
5279
5548
  if (e.key === "Escape") {
5280
5549
  onOpenChange(false);
@@ -5315,10 +5584,10 @@ function CommandBar({ open, onOpenChange, children, placeholder = "Search comman
5315
5584
  var textOps = ["contains", "equals", "starts with"];
5316
5585
  var numOps = ["=", ">", "<", ">=", "<="];
5317
5586
  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("");
5587
+ const [open, setOpen] = React137__default.useState(false);
5588
+ const [key, setKey] = React137__default.useState("");
5589
+ const [op, setOp] = React137__default.useState("");
5590
+ const [val, setVal] = React137__default.useState("");
5322
5591
  const def = filters.find((f) => f.key === key);
5323
5592
  const ops = def?.type === "number" ? numOps : textOps;
5324
5593
  const handleAdd = () => {
@@ -5430,7 +5699,7 @@ function formatColumnSubLabel(date, scale) {
5430
5699
  function snapDate(date, scale) {
5431
5700
  return startOfScale(date, scale);
5432
5701
  }
5433
- var Gantt = React131__default.forwardRef(
5702
+ var Gantt = React137__default.forwardRef(
5434
5703
  ({
5435
5704
  items,
5436
5705
  scale = "days",
@@ -5448,7 +5717,7 @@ var Gantt = React131__default.forwardRef(
5448
5717
  }, ref) => {
5449
5718
  const interactive = !!onItemMove || !!onItemResize;
5450
5719
  const columnWidth = DEFAULT_COLUMN_WIDTH[scale];
5451
- const viewport = React131__default.useMemo(() => {
5720
+ const viewport = React137__default.useMemo(() => {
5452
5721
  const earliest = startDate ?? (items.length ? new Date(Math.min(...items.map((i) => i.start.getTime()))) : /* @__PURE__ */ new Date());
5453
5722
  const latest = endDate ?? (items.length ? new Date(Math.max(...items.map((i) => i.end.getTime()))) : addDays(/* @__PURE__ */ new Date(), 14));
5454
5723
  return {
@@ -5458,7 +5727,7 @@ var Gantt = React131__default.forwardRef(
5458
5727
  }, [items, startDate, endDate, scale]);
5459
5728
  const colCount = totalColumns(viewport.start, viewport.end, scale);
5460
5729
  const timelineWidth = colCount * columnWidth;
5461
- const grouped = React131__default.useMemo(() => {
5730
+ const grouped = React137__default.useMemo(() => {
5462
5731
  const map = /* @__PURE__ */ new Map();
5463
5732
  for (const it of items) {
5464
5733
  const k = it.group ?? void 0;
@@ -5468,7 +5737,7 @@ var Gantt = React131__default.forwardRef(
5468
5737
  return Array.from(map.entries());
5469
5738
  }, [items]);
5470
5739
  const hasGroups = grouped.some(([k]) => k !== void 0);
5471
- const [collapsed, setCollapsed] = React131__default.useState(() => /* @__PURE__ */ new Set());
5740
+ const [collapsed, setCollapsed] = React137__default.useState(() => /* @__PURE__ */ new Set());
5472
5741
  const toggleGroup = (key) => {
5473
5742
  setCollapsed((prev) => {
5474
5743
  const next = new Set(prev);
@@ -5477,7 +5746,7 @@ var Gantt = React131__default.forwardRef(
5477
5746
  return next;
5478
5747
  });
5479
5748
  };
5480
- const rows = React131__default.useMemo(() => {
5749
+ const rows = React137__default.useMemo(() => {
5481
5750
  const out = [];
5482
5751
  for (const [groupKey, list] of grouped) {
5483
5752
  if (groupKey !== void 0) {
@@ -5488,21 +5757,21 @@ var Gantt = React131__default.forwardRef(
5488
5757
  }
5489
5758
  return out;
5490
5759
  }, [grouped, collapsed]);
5491
- const itemRowIndex = React131__default.useMemo(() => {
5760
+ const itemRowIndex = React137__default.useMemo(() => {
5492
5761
  const m = /* @__PURE__ */ new Map();
5493
5762
  rows.forEach((r, i) => {
5494
5763
  if (r.kind === "item") m.set(r.item.id, i);
5495
5764
  });
5496
5765
  return m;
5497
5766
  }, [rows]);
5498
- const todayOffsetPx = React131__default.useMemo(() => {
5767
+ const todayOffsetPx = React137__default.useMemo(() => {
5499
5768
  if (!showToday) return null;
5500
5769
  const now = /* @__PURE__ */ new Date();
5501
5770
  const u = unitsBetween(viewport.start, now, scale);
5502
5771
  if (u < 0 || u > colCount) return null;
5503
5772
  return u * columnWidth;
5504
5773
  }, [showToday, viewport.start, scale, colCount, columnWidth]);
5505
- const columnDates = React131__default.useMemo(() => {
5774
+ const columnDates = React137__default.useMemo(() => {
5506
5775
  return Array.from(
5507
5776
  { length: colCount },
5508
5777
  (_, i) => addUnits(viewport.start, i, scale)
@@ -5726,12 +5995,12 @@ function GanttBar({
5726
5995
  }) {
5727
5996
  const color = item.color ?? DEFAULT_COLOR2;
5728
5997
  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);
5998
+ const [previewLeftDelta, setPreviewLeftDelta] = React137__default.useState(0);
5999
+ const [previewRightDelta, setPreviewRightDelta] = React137__default.useState(0);
6000
+ const dragMode = React137__default.useRef(null);
6001
+ const startX = React137__default.useRef(0);
6002
+ const longPressTimer = React137__default.useRef(null);
6003
+ const moved = React137__default.useRef(false);
5735
6004
  const baseLeft = unitsBetween(viewportStart, item.start, scale) * columnWidth;
5736
6005
  const baseRight = unitsBetween(viewportStart, item.end, scale) * columnWidth;
5737
6006
  const baseWidth = Math.max(columnWidth * 0.25, baseRight - baseLeft);
@@ -5937,7 +6206,7 @@ function DependencyLayer({
5937
6206
  timelineWidth,
5938
6207
  totalHeight
5939
6208
  }) {
5940
- const itemById = React131__default.useMemo(() => {
6209
+ const itemById = React137__default.useMemo(() => {
5941
6210
  const m = /* @__PURE__ */ new Map();
5942
6211
  for (const it of items) m.set(it.id, it);
5943
6212
  return m;
@@ -6036,9 +6305,9 @@ function KanbanColumn({ column, isOver }) {
6036
6305
  ] });
6037
6306
  }
6038
6307
  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);
6308
+ const [cols, setCols] = React137__default.useState(initialColumns);
6309
+ const [activeCard, setActiveCard] = React137__default.useState(null);
6310
+ const [overColId, setOverColId] = React137__default.useState(null);
6042
6311
  const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));
6043
6312
  const findColByCard = (cardId) => cols.find((c) => c.cards.some((card) => card.id === cardId));
6044
6313
  const onDragStart = ({ active }) => {
@@ -6107,10 +6376,10 @@ function ToolbarButton({
6107
6376
  ] });
6108
6377
  }
6109
6378
  function LinkPopover({ editor }) {
6110
- const [open, setOpen] = React131__default.useState(false);
6111
- const [url, setUrl] = React131__default.useState("");
6379
+ const [open, setOpen] = React137__default.useState(false);
6380
+ const [url, setUrl] = React137__default.useState("");
6112
6381
  const isActive = editor.isActive("link");
6113
- React131__default.useEffect(() => {
6382
+ React137__default.useEffect(() => {
6114
6383
  if (!open) return;
6115
6384
  const current = editor.getAttributes("link")?.href;
6116
6385
  setUrl(current ?? "");
@@ -6575,7 +6844,7 @@ var proseClasses = cn(
6575
6844
  // Selected cells in tables
6576
6845
  "[&_.selectedCell]:bg-[hsl(var(--accent))]/40"
6577
6846
  );
6578
- var RichEditor = React131__default.forwardRef(
6847
+ var RichEditor = React137__default.forwardRef(
6579
6848
  function RichEditor2({
6580
6849
  value,
6581
6850
  defaultValue,
@@ -6589,12 +6858,12 @@ var RichEditor = React131__default.forwardRef(
6589
6858
  }, ref) {
6590
6859
  const isControlled = value !== void 0;
6591
6860
  const initialContent = isControlled ? value ?? "" : defaultValue ?? "";
6592
- const debounceRef = React131__default.useRef(null);
6593
- const onChangeRef = React131__default.useRef(onChange);
6594
- React131__default.useEffect(() => {
6861
+ const debounceRef = React137__default.useRef(null);
6862
+ const onChangeRef = React137__default.useRef(onChange);
6863
+ React137__default.useEffect(() => {
6595
6864
  onChangeRef.current = onChange;
6596
6865
  }, [onChange]);
6597
- const [charCount, setCharCount] = React131__default.useState(0);
6866
+ const [charCount, setCharCount] = React137__default.useState(0);
6598
6867
  const editor = useEditor({
6599
6868
  editable,
6600
6869
  content: initialContent,
@@ -6637,18 +6906,18 @@ var RichEditor = React131__default.forwardRef(
6637
6906
  }, 100);
6638
6907
  }
6639
6908
  });
6640
- React131__default.useEffect(() => {
6909
+ React137__default.useEffect(() => {
6641
6910
  if (!editor || !isControlled) return;
6642
6911
  const current = editor.getHTML();
6643
6912
  if ((value ?? "") !== current) {
6644
6913
  editor.commands.setContent(value ?? "", { emitUpdate: false });
6645
6914
  }
6646
6915
  }, [editor, isControlled, value]);
6647
- React131__default.useEffect(() => {
6916
+ React137__default.useEffect(() => {
6648
6917
  if (!editor) return;
6649
6918
  if (editor.isEditable !== editable) editor.setEditable(editable);
6650
6919
  }, [editor, editable]);
6651
- React131__default.useEffect(() => {
6920
+ React137__default.useEffect(() => {
6652
6921
  return () => {
6653
6922
  if (debounceRef.current) clearTimeout(debounceRef.current);
6654
6923
  };
@@ -6746,10 +7015,10 @@ function ToggleButtonGroup(props) {
6746
7015
  props.onChange(val);
6747
7016
  }
6748
7017
  };
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;
7018
+ 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: React137__default.Children.map(children, (child) => {
7019
+ if (!React137__default.isValidElement(child)) return child;
6751
7020
  const tb = child;
6752
- return React131__default.cloneElement(tb, {
7021
+ return React137__default.cloneElement(tb, {
6753
7022
  pressed: isPressed(tb.props.value),
6754
7023
  onClick: () => handleClick(tb.props.value)
6755
7024
  });
@@ -7104,7 +7373,7 @@ function useChecklist() {
7104
7373
  if (!ctx) throw new Error("<ChecklistItem> must be used inside <Checklist>");
7105
7374
  return ctx;
7106
7375
  }
7107
- var Checklist = React131__default.forwardRef(
7376
+ var Checklist = React137__default.forwardRef(
7108
7377
  ({
7109
7378
  title = "Getting started",
7110
7379
  description,
@@ -7120,7 +7389,7 @@ var Checklist = React131__default.forwardRef(
7120
7389
  }, ref) => {
7121
7390
  const [internalCompleted, setInternalCompleted] = useState({});
7122
7391
  const [open, setOpen] = useState(defaultOpen);
7123
- const completedFiredRef = React131__default.useRef(false);
7392
+ const completedFiredRef = React137__default.useRef(false);
7124
7393
  const isControlled = controlledCompleted !== void 0;
7125
7394
  const completed = isControlled ? controlledCompleted : internalCompleted;
7126
7395
  const setCompleted = useCallback(
@@ -7132,8 +7401,8 @@ var Checklist = React131__default.forwardRef(
7132
7401
  );
7133
7402
  const total = useMemo(() => {
7134
7403
  let n = 0;
7135
- React131__default.Children.forEach(children, (child) => {
7136
- if (React131__default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
7404
+ React137__default.Children.forEach(children, (child) => {
7405
+ if (React137__default.isValidElement(child) && child.type.displayName === "ChecklistItem") {
7137
7406
  n++;
7138
7407
  }
7139
7408
  });
@@ -7143,7 +7412,7 @@ var Checklist = React131__default.forwardRef(
7143
7412
  () => Object.values(completed).filter(Boolean).length,
7144
7413
  [completed]
7145
7414
  );
7146
- React131__default.useEffect(() => {
7415
+ React137__default.useEffect(() => {
7147
7416
  if (!completedFiredRef.current && total > 0 && doneCount >= total) {
7148
7417
  completedFiredRef.current = true;
7149
7418
  onComplete?.();
@@ -7204,7 +7473,7 @@ var Checklist = React131__default.forwardRef(
7204
7473
  }
7205
7474
  );
7206
7475
  Checklist.displayName = "Checklist";
7207
- var ChecklistItem = React131__default.forwardRef(
7476
+ var ChecklistItem = React137__default.forwardRef(
7208
7477
  ({ id, title, description, action, onActivate, className, ...props }, ref) => {
7209
7478
  const { completed, setCompleted } = useChecklist();
7210
7479
  const done = !!completed[id];
@@ -7552,7 +7821,7 @@ function Field({ label, description, error, required, children, className }) {
7552
7821
  error && /* @__PURE__ */ jsx(FieldError, { children: error })
7553
7822
  ] });
7554
7823
  }
7555
- var FieldLabel = React131__default.forwardRef(
7824
+ var FieldLabel = React137__default.forwardRef(
7556
7825
  ({ className, required, children, ...props }, ref) => /* @__PURE__ */ jsxs(
7557
7826
  "label",
7558
7827
  {
@@ -7567,7 +7836,7 @@ var FieldLabel = React131__default.forwardRef(
7567
7836
  )
7568
7837
  );
7569
7838
  FieldLabel.displayName = "FieldLabel";
7570
- var FieldDescription = React131__default.forwardRef(
7839
+ var FieldDescription = React137__default.forwardRef(
7571
7840
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7572
7841
  "p",
7573
7842
  {
@@ -7578,7 +7847,7 @@ var FieldDescription = React131__default.forwardRef(
7578
7847
  )
7579
7848
  );
7580
7849
  FieldDescription.displayName = "FieldDescription";
7581
- var FieldError = React131__default.forwardRef(
7850
+ var FieldError = React137__default.forwardRef(
7582
7851
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
7583
7852
  "p",
7584
7853
  {
@@ -7679,7 +7948,7 @@ function defaultFor(format3, showAlpha) {
7679
7948
  if (format3 === "rgb") return showAlpha ? "rgba(59, 130, 246, 1)" : "rgb(59, 130, 246)";
7680
7949
  return showAlpha ? "hsla(217, 91%, 60%, 1)" : "hsl(217, 91%, 60%)";
7681
7950
  }
7682
- var ColorPicker = React131__default.forwardRef(
7951
+ var ColorPicker = React137__default.forwardRef(
7683
7952
  ({
7684
7953
  value: valueProp,
7685
7954
  defaultValue,
@@ -7694,21 +7963,21 @@ var ColorPicker = React131__default.forwardRef(
7694
7963
  }, ref) => {
7695
7964
  const fallback = defaultValue ?? defaultFor(format3, showAlpha);
7696
7965
  const isControlled = valueProp !== void 0;
7697
- const [internal, setInternal] = React131__default.useState(fallback);
7966
+ const [internal, setInternal] = React137__default.useState(fallback);
7698
7967
  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(() => {
7968
+ const [draft, setDraft] = React137__default.useState(value);
7969
+ const [draftValid, setDraftValid] = React137__default.useState(true);
7970
+ React137__default.useEffect(() => {
7702
7971
  setDraft(value);
7703
7972
  setDraftValid(true);
7704
7973
  }, [value]);
7705
- const [eyeDropperSupported, setEyeDropperSupported] = React131__default.useState(false);
7706
- React131__default.useEffect(() => {
7974
+ const [eyeDropperSupported, setEyeDropperSupported] = React137__default.useState(false);
7975
+ React137__default.useEffect(() => {
7707
7976
  if (typeof window !== "undefined" && "EyeDropper" in window) {
7708
7977
  setEyeDropperSupported(true);
7709
7978
  }
7710
7979
  }, []);
7711
- const commit = React131__default.useCallback(
7980
+ const commit = React137__default.useCallback(
7712
7981
  (next) => {
7713
7982
  if (!isControlled) setInternal(next);
7714
7983
  onValueChange?.(next);
@@ -7945,7 +8214,7 @@ function FileUploadPreview({ files, onRemove, className }) {
7945
8214
  ] })
7946
8215
  ] }, i)) });
7947
8216
  }
7948
- var FloatingLabelInput = React131__default.forwardRef(
8217
+ var FloatingLabelInput = React137__default.forwardRef(
7949
8218
  ({ label, error, hint, wrapperClassName, className, id, value, defaultValue, onFocus, onBlur, onChange, ...props }, ref) => {
7950
8219
  const autoId = useId();
7951
8220
  const inputId = id ?? autoId;
@@ -8029,7 +8298,7 @@ function FormField(props) {
8029
8298
  function FormItem({ className, ...props }) {
8030
8299
  return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-1.5", className), ...props });
8031
8300
  }
8032
- var FormLabel = React131__default.forwardRef(
8301
+ var FormLabel = React137__default.forwardRef(
8033
8302
  ({ className, error, ...props }, ref) => /* @__PURE__ */ jsx(
8034
8303
  "label",
8035
8304
  {
@@ -8044,7 +8313,7 @@ var FormLabel = React131__default.forwardRef(
8044
8313
  )
8045
8314
  );
8046
8315
  FormLabel.displayName = "FormLabel";
8047
- var FormControl = React131__default.forwardRef(
8316
+ var FormControl = React137__default.forwardRef(
8048
8317
  ({ ...props }, ref) => {
8049
8318
  const id = useId();
8050
8319
  return /* @__PURE__ */ jsx("div", { ref, id, ...props });
@@ -8101,7 +8370,7 @@ function getStrength(value) {
8101
8370
  if (score <= 3) return { level: "medium", width: "w-2/3", color: "bg-yellow-500" };
8102
8371
  return { level: "strong", width: "w-full", color: "bg-green-500" };
8103
8372
  }
8104
- var PasswordInput = React131__default.forwardRef(
8373
+ var PasswordInput = React137__default.forwardRef(
8105
8374
  ({ className, strength, ...props }, ref) => {
8106
8375
  const [show, setShow] = useState(false);
8107
8376
  const value = String(props.value ?? "");
@@ -8136,7 +8405,7 @@ var PasswordInput = React131__default.forwardRef(
8136
8405
  }
8137
8406
  );
8138
8407
  PasswordInput.displayName = "PasswordInput";
8139
- var SearchInput = React131__default.forwardRef(
8408
+ var SearchInput = React137__default.forwardRef(
8140
8409
  ({ className, shortcut, onClear, onChange, value: valueProp, defaultValue, ...props }, ref) => {
8141
8410
  const [internalValue, setInternalValue] = useState(defaultValue ?? "");
8142
8411
  const isControlled = valueProp !== void 0;
@@ -8199,7 +8468,7 @@ function StepForm({ steps, onSubmit, children, className }) {
8199
8468
  isFirst: currentStep === 0,
8200
8469
  isLast: currentStep === totalSteps - 1
8201
8470
  };
8202
- const childArray = React131__default.Children.toArray(children);
8471
+ const childArray = React137__default.Children.toArray(children);
8203
8472
  const currentChild = childArray[currentStep];
8204
8473
  return /* @__PURE__ */ jsx(StepFormContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-6", className), children: [
8205
8474
  /* @__PURE__ */ jsx(StepIndicator, { steps, currentStep }),
@@ -8208,7 +8477,7 @@ function StepForm({ steps, onSubmit, children, className }) {
8208
8477
  ] }) });
8209
8478
  }
8210
8479
  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: [
8480
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", children: steps.map((label, i) => /* @__PURE__ */ jsxs(React137__default.Fragment, { children: [
8212
8481
  i > 0 && /* @__PURE__ */ jsx("div", { className: cn("h-px flex-1 bg-[hsl(var(--border))]", i <= currentStep && "bg-[hsl(var(--primary))]") }),
8213
8482
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1", children: [
8214
8483
  /* @__PURE__ */ jsx("div", { className: cn(
@@ -8237,7 +8506,7 @@ function StepFormNavigation({ onSubmit, submitLabel = "Submit" }) {
8237
8506
  isLast ? /* @__PURE__ */ jsx(Button, { type: "button", onClick: onSubmit, children: submitLabel }) : /* @__PURE__ */ jsx(Button, { type: "button", onClick: next, children: "Next" })
8238
8507
  ] });
8239
8508
  }
8240
- var Tags = React131__default.forwardRef(
8509
+ var Tags = React137__default.forwardRef(
8241
8510
  ({
8242
8511
  value: valueProp,
8243
8512
  defaultValue,
@@ -8253,25 +8522,25 @@ var Tags = React131__default.forwardRef(
8253
8522
  ...props
8254
8523
  }, ref) => {
8255
8524
  const isControlled = valueProp !== void 0;
8256
- const [internal, setInternal] = React131__default.useState(defaultValue ?? []);
8525
+ const [internal, setInternal] = React137__default.useState(defaultValue ?? []);
8257
8526
  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);
8527
+ const [input, setInput] = React137__default.useState("");
8528
+ const [error, setError] = React137__default.useState(null);
8529
+ const [focused, setFocused] = React137__default.useState(false);
8530
+ const [activeIndex, setActiveIndex] = React137__default.useState(0);
8531
+ const inputRef = React137__default.useRef(null);
8532
+ const containerRef = React137__default.useRef(null);
8533
+ React137__default.useImperativeHandle(ref, () => containerRef.current);
8265
8534
  const atMax = maxTags !== void 0 && tags.length >= maxTags;
8266
8535
  const inputDisabled = disabled || atMax;
8267
- const commit = React131__default.useCallback(
8536
+ const commit = React137__default.useCallback(
8268
8537
  (next) => {
8269
8538
  if (!isControlled) setInternal(next);
8270
8539
  onValueChange?.(next);
8271
8540
  },
8272
8541
  [isControlled, onValueChange]
8273
8542
  );
8274
- const addTag = React131__default.useCallback(
8543
+ const addTag = React137__default.useCallback(
8275
8544
  (raw) => {
8276
8545
  const tag = raw.trim();
8277
8546
  if (!tag) return false;
@@ -8297,20 +8566,20 @@ var Tags = React131__default.forwardRef(
8297
8566
  },
8298
8567
  [tags, allowDuplicates, validate, atMax, commit]
8299
8568
  );
8300
- const removeTag = React131__default.useCallback(
8569
+ const removeTag = React137__default.useCallback(
8301
8570
  (index) => {
8302
8571
  commit(tags.filter((_, i) => i !== index));
8303
8572
  setError(null);
8304
8573
  },
8305
8574
  [tags, commit]
8306
8575
  );
8307
- const filteredSuggestions = React131__default.useMemo(() => {
8576
+ const filteredSuggestions = React137__default.useMemo(() => {
8308
8577
  if (!suggestions || !input.trim()) return [];
8309
8578
  const q = input.trim().toLowerCase();
8310
8579
  return suggestions.filter((s) => s.toLowerCase().includes(q)).filter((s) => allowDuplicates || !tags.includes(s)).slice(0, 8);
8311
8580
  }, [suggestions, input, tags, allowDuplicates]);
8312
8581
  const showPopover = focused && !inputDisabled && filteredSuggestions.length > 0;
8313
- React131__default.useEffect(() => {
8582
+ React137__default.useEffect(() => {
8314
8583
  if (activeIndex >= filteredSuggestions.length) setActiveIndex(0);
8315
8584
  }, [filteredSuggestions.length, activeIndex]);
8316
8585
  const handleKeyDown = (e) => {
@@ -8452,7 +8721,7 @@ var Tags = React131__default.forwardRef(
8452
8721
  }
8453
8722
  );
8454
8723
  Tags.displayName = "Tags";
8455
- var AppShellCtx = React131__default.createContext({
8724
+ var AppShellCtx = React137__default.createContext({
8456
8725
  collapsed: false,
8457
8726
  setCollapsed: () => {
8458
8727
  },
@@ -8460,12 +8729,12 @@ var AppShellCtx = React131__default.createContext({
8460
8729
  setMobileOpen: () => {
8461
8730
  }
8462
8731
  });
8463
- var useAppShell = () => React131__default.useContext(AppShellCtx);
8464
- var AppShell = React131__default.forwardRef(
8732
+ var useAppShell = () => React137__default.useContext(AppShellCtx);
8733
+ var AppShell = React137__default.forwardRef(
8465
8734
  ({ 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(() => {
8735
+ const [collapsed, setCollapsed] = React137__default.useState(defaultCollapsed);
8736
+ const [mobileOpen, setMobileOpen] = React137__default.useState(false);
8737
+ React137__default.useEffect(() => {
8469
8738
  const handleClick = (e) => {
8470
8739
  const target = e.target;
8471
8740
  if (target.closest("a[href]") || target.closest("[data-mobile-close]")) {
@@ -8496,7 +8765,7 @@ var AppShell = React131__default.forwardRef(
8496
8765
  }
8497
8766
  );
8498
8767
  AppShell.displayName = "AppShell";
8499
- var AppShellSidebar = React131__default.forwardRef(
8768
+ var AppShellSidebar = React137__default.forwardRef(
8500
8769
  ({ className, ...props }, ref) => {
8501
8770
  const { mobileOpen } = useAppShell();
8502
8771
  return /* @__PURE__ */ jsx(
@@ -8517,11 +8786,11 @@ var AppShellSidebar = React131__default.forwardRef(
8517
8786
  }
8518
8787
  );
8519
8788
  AppShellSidebar.displayName = "AppShellSidebar";
8520
- var AppShellMain = React131__default.forwardRef(
8789
+ var AppShellMain = React137__default.forwardRef(
8521
8790
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 flex flex-col overflow-auto", className), ...props })
8522
8791
  );
8523
8792
  AppShellMain.displayName = "AppShellMain";
8524
- var MobileSidebarTrigger = React131__default.forwardRef(
8793
+ var MobileSidebarTrigger = React137__default.forwardRef(
8525
8794
  ({ className, ...props }, ref) => {
8526
8795
  const { mobileOpen, setMobileOpen } = useAppShell();
8527
8796
  return /* @__PURE__ */ jsx(
@@ -8550,7 +8819,7 @@ var sizeMap5 = {
8550
8819
  xl: "max-w-screen-xl",
8551
8820
  full: "max-w-full"
8552
8821
  };
8553
- var Container = React131__default.forwardRef(
8822
+ var Container = React137__default.forwardRef(
8554
8823
  ({ className, size = "lg", noPadding = false, ...props }, ref) => /* @__PURE__ */ jsx(
8555
8824
  "div",
8556
8825
  {
@@ -8566,7 +8835,7 @@ var Container = React131__default.forwardRef(
8566
8835
  )
8567
8836
  );
8568
8837
  Container.displayName = "Container";
8569
- var Navbar = React131__default.forwardRef(
8838
+ var Navbar = React137__default.forwardRef(
8570
8839
  ({ className, sticky = false, border = true, ...props }, ref) => /* @__PURE__ */ jsx(
8571
8840
  "nav",
8572
8841
  {
@@ -8582,7 +8851,7 @@ var Navbar = React131__default.forwardRef(
8582
8851
  )
8583
8852
  );
8584
8853
  Navbar.displayName = "Navbar";
8585
- var NavbarBrand = React131__default.forwardRef(
8854
+ var NavbarBrand = React137__default.forwardRef(
8586
8855
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 px-4 shrink-0", className), ...props })
8587
8856
  );
8588
8857
  NavbarBrand.displayName = "NavbarBrand";
@@ -8591,7 +8860,7 @@ var alignMap = {
8591
8860
  center: "justify-center flex-1",
8592
8861
  end: "justify-end ml-auto"
8593
8862
  };
8594
- var NavbarContent = React131__default.forwardRef(
8863
+ var NavbarContent = React137__default.forwardRef(
8595
8864
  ({ className, align = "start", ...props }, ref) => /* @__PURE__ */ jsx(
8596
8865
  "div",
8597
8866
  {
@@ -8602,11 +8871,11 @@ var NavbarContent = React131__default.forwardRef(
8602
8871
  )
8603
8872
  );
8604
8873
  NavbarContent.displayName = "NavbarContent";
8605
- var NavbarItem = React131__default.forwardRef(
8874
+ var NavbarItem = React137__default.forwardRef(
8606
8875
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props })
8607
8876
  );
8608
8877
  NavbarItem.displayName = "NavbarItem";
8609
- var Page = React131__default.forwardRef(
8878
+ var Page = React137__default.forwardRef(
8610
8879
  ({ className, maxWidth, style, ...props }, ref) => /* @__PURE__ */ jsx(
8611
8880
  "div",
8612
8881
  {
@@ -8618,7 +8887,7 @@ var Page = React131__default.forwardRef(
8618
8887
  )
8619
8888
  );
8620
8889
  Page.displayName = "Page";
8621
- var PageHeader = React131__default.forwardRef(
8890
+ var PageHeader = React137__default.forwardRef(
8622
8891
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8623
8892
  "div",
8624
8893
  {
@@ -8629,7 +8898,7 @@ var PageHeader = React131__default.forwardRef(
8629
8898
  )
8630
8899
  );
8631
8900
  PageHeader.displayName = "PageHeader";
8632
- var PageTitle = React131__default.forwardRef(
8901
+ var PageTitle = React137__default.forwardRef(
8633
8902
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8634
8903
  "h1",
8635
8904
  {
@@ -8640,19 +8909,19 @@ var PageTitle = React131__default.forwardRef(
8640
8909
  )
8641
8910
  );
8642
8911
  PageTitle.displayName = "PageTitle";
8643
- var PageDescription = React131__default.forwardRef(
8912
+ var PageDescription = React137__default.forwardRef(
8644
8913
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("p", { ref, className: cn("text-sm text-[hsl(var(--muted-foreground))] mt-1", className), ...props })
8645
8914
  );
8646
8915
  PageDescription.displayName = "PageDescription";
8647
- var PageActions = React131__default.forwardRef(
8916
+ var PageActions = React137__default.forwardRef(
8648
8917
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center gap-2 shrink-0", className), ...props })
8649
8918
  );
8650
8919
  PageActions.displayName = "PageActions";
8651
- var PageBody = React131__default.forwardRef(
8920
+ var PageBody = React137__default.forwardRef(
8652
8921
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 p-6 flex flex-col gap-6", className), ...props })
8653
8922
  );
8654
8923
  PageBody.displayName = "PageBody";
8655
- var ResizeBox = React131__default.forwardRef(
8924
+ var ResizeBox = React137__default.forwardRef(
8656
8925
  ({ className, resize = "both", minWidth = 100, minHeight = 100, style, ...props }, ref) => /* @__PURE__ */ jsx(
8657
8926
  "div",
8658
8927
  {
@@ -8669,7 +8938,7 @@ var HandleIcon = () => /* @__PURE__ */ jsxs("svg", { width: "10", height: "10",
8669
8938
  /* @__PURE__ */ jsx("path", { d: "M8 5L5 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }),
8670
8939
  /* @__PURE__ */ jsx("path", { d: "M8 8L8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
8671
8940
  ] });
8672
- var ResizeHandle = React131__default.forwardRef(
8941
+ var ResizeHandle = React137__default.forwardRef(
8673
8942
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8674
8943
  "div",
8675
8944
  {
@@ -8685,16 +8954,16 @@ var ResizeHandle = React131__default.forwardRef(
8685
8954
  )
8686
8955
  );
8687
8956
  ResizeHandle.displayName = "ResizeHandle";
8688
- var SidebarCtx2 = React131__default.createContext({ collapsed: false });
8689
- var useSidebarCtx = () => React131__default.useContext(SidebarCtx2);
8957
+ var SidebarCtx2 = React137__default.createContext({ collapsed: false });
8958
+ var useSidebarCtx = () => React137__default.useContext(SidebarCtx2);
8690
8959
  var makeSlot = (name, cls) => {
8691
- const C = React131__default.forwardRef(
8960
+ const C = React137__default.forwardRef(
8692
8961
  ({ className, ...p }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn(cls, className), ...p })
8693
8962
  );
8694
8963
  C.displayName = name;
8695
8964
  return C;
8696
8965
  };
8697
- var Sidebar2 = React131__default.forwardRef(
8966
+ var Sidebar2 = React137__default.forwardRef(
8698
8967
  ({ className, collapsed = false, onCollapse, width = "240px", style, children, ...props }, ref) => /* @__PURE__ */ jsx(SidebarCtx2.Provider, { value: { collapsed }, children: /* @__PURE__ */ jsxs(
8699
8968
  "div",
8700
8969
  {
@@ -8722,7 +8991,7 @@ var SidebarContent = makeSlot("SidebarContent", "flex-1 overflow-y-auto py-2");
8722
8991
  var SidebarFooter2 = makeSlot("SidebarFooter", "px-3 py-3 border-t border-[hsl(var(--border))] shrink-0");
8723
8992
  var SidebarGroup = makeSlot("SidebarGroup", "mb-2");
8724
8993
  var SidebarSeparator2 = makeSlot("SidebarSeparator", "h-px bg-[hsl(var(--border))] mx-3 my-2");
8725
- var SidebarGroupLabel = React131__default.forwardRef(
8994
+ var SidebarGroupLabel = React137__default.forwardRef(
8726
8995
  ({ className, ...props }, ref) => {
8727
8996
  const { collapsed } = useSidebarCtx();
8728
8997
  return /* @__PURE__ */ jsx(
@@ -8736,7 +9005,7 @@ var SidebarGroupLabel = React131__default.forwardRef(
8736
9005
  }
8737
9006
  );
8738
9007
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
8739
- var SidebarItem2 = React131__default.forwardRef(
9008
+ var SidebarItem2 = React137__default.forwardRef(
8740
9009
  ({ className, icon, label, active, href, badge, onClick, ...props }, ref) => {
8741
9010
  const { collapsed } = useSidebarCtx();
8742
9011
  const cls = cn(
@@ -8755,11 +9024,11 @@ var SidebarItem2 = React131__default.forwardRef(
8755
9024
  }
8756
9025
  );
8757
9026
  SidebarItem2.displayName = "SidebarItem";
8758
- var SplitPage = React131__default.forwardRef(
9027
+ var SplitPage = React137__default.forwardRef(
8759
9028
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex h-full w-full overflow-hidden", className), ...props })
8760
9029
  );
8761
9030
  SplitPage.displayName = "SplitPage";
8762
- var SplitPageList = React131__default.forwardRef(
9031
+ var SplitPageList = React137__default.forwardRef(
8763
9032
  ({ className, width = "320px", style, ...props }, ref) => /* @__PURE__ */ jsx(
8764
9033
  "div",
8765
9034
  {
@@ -8771,7 +9040,7 @@ var SplitPageList = React131__default.forwardRef(
8771
9040
  )
8772
9041
  );
8773
9042
  SplitPageList.displayName = "SplitPageList";
8774
- var SplitPageDetail = React131__default.forwardRef(
9043
+ var SplitPageDetail = React137__default.forwardRef(
8775
9044
  ({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex-1 min-w-0 h-full overflow-auto", className), ...props })
8776
9045
  );
8777
9046
  SplitPageDetail.displayName = "SplitPageDetail";
@@ -8796,7 +9065,7 @@ var justifyMap = {
8796
9065
  around: "justify-around",
8797
9066
  evenly: "justify-evenly"
8798
9067
  };
8799
- var Stack = React131__default.forwardRef(
9068
+ var Stack = React137__default.forwardRef(
8800
9069
  ({ className, gap, direction = "col", align, justify, wrap, style, ...props }, ref) => /* @__PURE__ */ jsx(
8801
9070
  "div",
8802
9071
  {
@@ -8815,15 +9084,15 @@ var Stack = React131__default.forwardRef(
8815
9084
  )
8816
9085
  );
8817
9086
  Stack.displayName = "Stack";
8818
- var HStack = React131__default.forwardRef(
9087
+ var HStack = React137__default.forwardRef(
8819
9088
  (props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "row", ...props })
8820
9089
  );
8821
9090
  HStack.displayName = "HStack";
8822
- var VStack = React131__default.forwardRef(
9091
+ var VStack = React137__default.forwardRef(
8823
9092
  (props, ref) => /* @__PURE__ */ jsx(Stack, { ref, direction: "col", ...props })
8824
9093
  );
8825
9094
  VStack.displayName = "VStack";
8826
- var PageLayout = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9095
+ var PageLayout = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8827
9096
  "div",
8828
9097
  {
8829
9098
  ref,
@@ -8833,7 +9102,7 @@ var PageLayout = React131__default.forwardRef(({ className, ...props }, ref) =>
8833
9102
  }
8834
9103
  ));
8835
9104
  PageLayout.displayName = "PageLayout";
8836
- var PageHeader2 = React131__default.forwardRef(
9105
+ var PageHeader2 = React137__default.forwardRef(
8837
9106
  ({ className, title, description, actions, back, children }, ref) => /* @__PURE__ */ jsxs(
8838
9107
  "div",
8839
9108
  {
@@ -8855,7 +9124,7 @@ var PageHeader2 = React131__default.forwardRef(
8855
9124
  )
8856
9125
  );
8857
9126
  PageHeader2.displayName = "PageHeader";
8858
- var PageContainer = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9127
+ var PageContainer = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8859
9128
  "div",
8860
9129
  {
8861
9130
  ref,
@@ -8869,7 +9138,7 @@ var PageContainer = React131__default.forwardRef(({ className, ...props }, ref)
8869
9138
  }
8870
9139
  ));
8871
9140
  PageContainer.displayName = "PageContainer";
8872
- var PageMain = React131__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9141
+ var PageMain = React137__default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
8873
9142
  "div",
8874
9143
  {
8875
9144
  ref,
@@ -9315,7 +9584,7 @@ var directionClasses = {
9315
9584
  bl: "bg-gradient-to-bl",
9316
9585
  l: "bg-gradient-to-l"
9317
9586
  };
9318
- var GradientHeading = React131__default.forwardRef(
9587
+ var GradientHeading = React137__default.forwardRef(
9319
9588
  ({
9320
9589
  as: Tag = "h2",
9321
9590
  preset = "primary",
@@ -9361,7 +9630,7 @@ function formatNumber(value, decimals, format3, locale) {
9361
9630
  }
9362
9631
  return decimals > 0 ? value.toFixed(decimals) : String(Math.round(value));
9363
9632
  }
9364
- var AnimatedNumber = React131__default.forwardRef(
9633
+ var AnimatedNumber = React137__default.forwardRef(
9365
9634
  ({
9366
9635
  value,
9367
9636
  from = 0,
@@ -9381,7 +9650,7 @@ var AnimatedNumber = React131__default.forwardRef(
9381
9650
  const startTimeRef = useRef(null);
9382
9651
  const containerRef = useRef(null);
9383
9652
  const hasStarted = useRef(false);
9384
- const runAnimation = React131__default.useCallback(
9653
+ const runAnimation = React137__default.useCallback(
9385
9654
  (startFrom) => {
9386
9655
  if (rafRef.current !== null) cancelAnimationFrame(rafRef.current);
9387
9656
  startTimeRef.current = null;
@@ -9493,7 +9762,7 @@ function TextReveal({
9493
9762
  }
9494
9763
  }, [autoStart, delay]);
9495
9764
  const units = mode === "chars" ? text.split("") : mode === "words" ? text.split(" ") : [text];
9496
- return React131__default.createElement(
9765
+ return React137__default.createElement(
9497
9766
  Tag,
9498
9767
  {
9499
9768
  ref: containerRef,
@@ -9573,7 +9842,7 @@ function Typewriter({
9573
9842
  if (timerRef.current) clearTimeout(timerRef.current);
9574
9843
  };
9575
9844
  }, [display, phase, wordIdx, words, typeSpeed, deleteSpeed, pauseAfter, loop]);
9576
- return React131__default.createElement(
9845
+ return React137__default.createElement(
9577
9846
  Tag,
9578
9847
  {
9579
9848
  "data-slot": "typewriter",
@@ -9612,9 +9881,9 @@ var headingVariants = cva("font-heading tracking-tight text-foreground", {
9612
9881
  },
9613
9882
  defaultVariants: { size: "lg", tone: "default" }
9614
9883
  });
9615
- var Heading = React131__default.forwardRef(
9884
+ var Heading = React137__default.forwardRef(
9616
9885
  ({ as: Tag = "h2", size, tone, className, ...props }, ref) => {
9617
- return React131__default.createElement(Tag, {
9886
+ return React137__default.createElement(Tag, {
9618
9887
  ref,
9619
9888
  "data-slot": "heading",
9620
9889
  className: cn(headingVariants({ size, tone }), className),
@@ -9644,9 +9913,9 @@ var bodyVariants = cva("font-sans", {
9644
9913
  },
9645
9914
  defaultVariants: { size: "md", tone: "default", weight: "normal" }
9646
9915
  });
9647
- var Body = React131__default.forwardRef(
9916
+ var Body = React137__default.forwardRef(
9648
9917
  ({ as: Tag = "p", size, tone, weight, className, ...props }, ref) => {
9649
- return React131__default.createElement(Tag, {
9918
+ return React137__default.createElement(Tag, {
9650
9919
  ref,
9651
9920
  "data-slot": "body",
9652
9921
  className: cn(bodyVariants({ size, tone, weight }), className),
@@ -9665,7 +9934,7 @@ var captionVariants = cva("font-sans text-[11px] font-semibold uppercase trackin
9665
9934
  },
9666
9935
  defaultVariants: { tone: "default" }
9667
9936
  });
9668
- var Caption = React131__default.forwardRef(
9937
+ var Caption = React137__default.forwardRef(
9669
9938
  ({ tone, className, ...props }, ref) => /* @__PURE__ */ jsx(
9670
9939
  "span",
9671
9940
  {
@@ -9677,7 +9946,7 @@ var Caption = React131__default.forwardRef(
9677
9946
  )
9678
9947
  );
9679
9948
  Caption.displayName = "Caption";
9680
- var Code3 = React131__default.forwardRef(
9949
+ var Code3 = React137__default.forwardRef(
9681
9950
  ({ block, className, children, ...props }, ref) => {
9682
9951
  if (block) {
9683
9952
  return /* @__PURE__ */ jsx(
@@ -9729,7 +9998,7 @@ var presetStyles = {
9729
9998
  },
9730
9999
  custom: {}
9731
10000
  };
9732
- var GradientBackground = React131__default.forwardRef(
10001
+ var GradientBackground = React137__default.forwardRef(
9733
10002
  ({
9734
10003
  fixed = false,
9735
10004
  preset = "slate",
@@ -9788,7 +10057,7 @@ var DEFAULT_COLORS4 = [
9788
10057
  "hsl(280 100% 70% / 0.25)",
9789
10058
  "hsl(217 33% 17% / 0.4)"
9790
10059
  ];
9791
- var AnimatedGradient = React131__default.forwardRef(
10060
+ var AnimatedGradient = React137__default.forwardRef(
9792
10061
  ({
9793
10062
  colors = DEFAULT_COLORS4,
9794
10063
  speed = 1,
@@ -9907,7 +10176,7 @@ var AnimatedGradient = React131__default.forwardRef(
9907
10176
  }
9908
10177
  );
9909
10178
  AnimatedGradient.displayName = "AnimatedGradient";
9910
- var DottedBackground = React131__default.forwardRef(
10179
+ var DottedBackground = React137__default.forwardRef(
9911
10180
  ({
9912
10181
  color,
9913
10182
  dotSize = 1,
@@ -9954,7 +10223,7 @@ var DottedBackground = React131__default.forwardRef(
9954
10223
  }
9955
10224
  );
9956
10225
  DottedBackground.displayName = "DottedBackground";
9957
- var NoiseBackground = React131__default.forwardRef(
10226
+ var NoiseBackground = React137__default.forwardRef(
9958
10227
  ({
9959
10228
  opacity = 0.04,
9960
10229
  frequency = 0.65,
@@ -10050,7 +10319,7 @@ var DEFAULT_COLORS5 = [
10050
10319
  [0.55, 0.3, 0.95]
10051
10320
  // chart-3 violet
10052
10321
  ];
10053
- var HeroShaderA = React131__default.forwardRef(
10322
+ var HeroShaderA = React137__default.forwardRef(
10054
10323
  ({
10055
10324
  className,
10056
10325
  colors = DEFAULT_COLORS5,
@@ -10064,7 +10333,7 @@ var HeroShaderA = React131__default.forwardRef(
10064
10333
  const wrapRef = useRef(null);
10065
10334
  const canvasRef = useRef(null);
10066
10335
  const fallbackRef = useRef(false);
10067
- React131__default.useImperativeHandle(ref, () => wrapRef.current);
10336
+ React137__default.useImperativeHandle(ref, () => wrapRef.current);
10068
10337
  useEffect(() => {
10069
10338
  if (typeof window === "undefined") return;
10070
10339
  const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
@@ -10201,7 +10470,7 @@ var HeroShaderA = React131__default.forwardRef(
10201
10470
  }
10202
10471
  );
10203
10472
  HeroShaderA.displayName = "HeroShaderA";
10204
- var ScrollHeader = React131__default.forwardRef(
10473
+ var ScrollHeader = React137__default.forwardRef(
10205
10474
  ({
10206
10475
  title,
10207
10476
  subtitle,
@@ -10288,7 +10557,7 @@ var DEFAULT_TRANSITION = {
10288
10557
  ease: [0.16, 1, 0.3, 1]
10289
10558
  // ease-out-expo (BezierDefinition)
10290
10559
  };
10291
- var FadeIn = React131__default.forwardRef(
10560
+ var FadeIn = React137__default.forwardRef(
10292
10561
  ({ delay = 0, duration, children, ...props }, ref) => {
10293
10562
  const transition = {
10294
10563
  ...DEFAULT_TRANSITION,
@@ -10316,7 +10585,7 @@ var DIRECTION_PRESET_MAP = {
10316
10585
  left: "slideLeft",
10317
10586
  right: "slideRight"
10318
10587
  };
10319
- var SlideIn = React131__default.forwardRef(
10588
+ var SlideIn = React137__default.forwardRef(
10320
10589
  ({ direction = "up", delay = 0, duration, children, ...props }, ref) => {
10321
10590
  const preset = MOTION_PRESETS[DIRECTION_PRESET_MAP[direction]];
10322
10591
  const transition = {
@@ -10339,7 +10608,7 @@ var SlideIn = React131__default.forwardRef(
10339
10608
  }
10340
10609
  );
10341
10610
  SlideIn.displayName = "SlideIn";
10342
- var ScaleIn = React131__default.forwardRef(
10611
+ var ScaleIn = React137__default.forwardRef(
10343
10612
  ({ delay = 0, duration, children, ...props }, ref) => {
10344
10613
  const transition = {
10345
10614
  ...DEFAULT_TRANSITION,
@@ -10403,16 +10672,16 @@ function Stagger({ staggerDelay = 0.05, preset = "fadeIn", children, className,
10403
10672
  initial: "hidden",
10404
10673
  animate: isInView ? "visible" : "hidden",
10405
10674
  className,
10406
- children: React131__default.Children.map(children, (child, i) => /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: child }, i))
10675
+ children: React137__default.Children.map(children, (child, i) => /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: child }, i))
10407
10676
  }
10408
10677
  );
10409
10678
  }
10410
- var Morph = React131__default.forwardRef(
10679
+ var Morph = React137__default.forwardRef(
10411
10680
  ({ layoutId, children, ...props }, ref) => /* @__PURE__ */ jsx(motion.div, { ref, layoutId, layout: true, ...props, children })
10412
10681
  );
10413
10682
  Morph.displayName = "Morph";
10414
10683
  var rippleCounter = 0;
10415
- var Ripple = React131__default.forwardRef(
10684
+ var Ripple = React137__default.forwardRef(
10416
10685
  ({ color = "currentColor", duration = 0.6, children, style, ...props }, ref) => {
10417
10686
  const [ripples, setRipples] = useState([]);
10418
10687
  const handlePointerDown = useCallback(
@@ -10468,7 +10737,7 @@ var Ripple = React131__default.forwardRef(
10468
10737
  }
10469
10738
  );
10470
10739
  Ripple.displayName = "Ripple";
10471
- var Parallax = React131__default.forwardRef(
10740
+ var Parallax = React137__default.forwardRef(
10472
10741
  ({ offset = 50, scrollRef, children, style, ...props }, ref) => {
10473
10742
  const innerRef = useRef(null);
10474
10743
  const resolvedRef = ref ?? innerRef;
@@ -10497,7 +10766,328 @@ function useLayoutId(key) {
10497
10766
  function Transition({ show = true, children, mode = "wait" }) {
10498
10767
  return /* @__PURE__ */ jsx(AnimatePresence, { mode, children: show ? children : null });
10499
10768
  }
10500
- var DataList = React131__default.forwardRef(
10769
+ function Checkbox2({
10770
+ checked,
10771
+ onCheckedChange,
10772
+ className
10773
+ }) {
10774
+ return /* @__PURE__ */ jsx(
10775
+ "input",
10776
+ {
10777
+ type: "checkbox",
10778
+ checked: checked === true,
10779
+ ref: (el) => {
10780
+ if (el) el.indeterminate = checked === "indeterminate";
10781
+ },
10782
+ onChange: (e) => onCheckedChange(e.target.checked),
10783
+ className: cn(
10784
+ "h-4 w-4 rounded border border-input accent-primary cursor-pointer",
10785
+ "focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1",
10786
+ className
10787
+ )
10788
+ }
10789
+ );
10790
+ }
10791
+ function SortIcon({ dir }) {
10792
+ if (dir === "asc") return /* @__PURE__ */ jsx(ArrowUp, { className: "h-3.5 w-3.5 shrink-0" });
10793
+ if (dir === "desc") return /* @__PURE__ */ jsx(ArrowDown, { className: "h-3.5 w-3.5 shrink-0" });
10794
+ return /* @__PURE__ */ jsx(ArrowUpDown, { className: "h-3.5 w-3.5 shrink-0 opacity-30" });
10795
+ }
10796
+ function ColumnVisibilityDropdown({
10797
+ columns,
10798
+ visibility,
10799
+ onVisibilityChange
10800
+ }) {
10801
+ const [open, setOpen] = useState(false);
10802
+ return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
10803
+ /* @__PURE__ */ jsxs(
10804
+ "button",
10805
+ {
10806
+ onClick: () => setOpen((v) => !v),
10807
+ className: cn(
10808
+ "inline-flex items-center gap-1.5 rounded-md border border-border px-2.5 py-1.5 text-xs font-medium",
10809
+ "bg-transparent text-muted-foreground hover:bg-accent hover:text-accent-foreground",
10810
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
10811
+ "transition-colors"
10812
+ ),
10813
+ children: [
10814
+ /* @__PURE__ */ jsx(Columns3, { className: "h-3.5 w-3.5" }),
10815
+ "Columns",
10816
+ /* @__PURE__ */ jsx(ChevronDown, { className: "h-3 w-3" })
10817
+ ]
10818
+ }
10819
+ ),
10820
+ open && /* @__PURE__ */ jsxs(Fragment, { children: [
10821
+ /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-10", onClick: () => setOpen(false) }),
10822
+ /* @__PURE__ */ jsx("div", { className: "absolute right-0 top-full mt-1 z-20 min-w-[140px] rounded-md border border-border bg-popover shadow-lg py-1", children: columns.map((col) => /* @__PURE__ */ jsxs(
10823
+ "label",
10824
+ {
10825
+ className: "flex items-center gap-2 px-3 py-1.5 text-xs text-foreground hover:bg-accent cursor-pointer",
10826
+ children: [
10827
+ /* @__PURE__ */ jsx(
10828
+ "input",
10829
+ {
10830
+ type: "checkbox",
10831
+ className: "h-3.5 w-3.5 accent-primary",
10832
+ checked: visibility[col.id] !== false,
10833
+ onChange: (e) => onVisibilityChange(col.id, e.target.checked)
10834
+ }
10835
+ ),
10836
+ col.label
10837
+ ]
10838
+ },
10839
+ col.id
10840
+ )) })
10841
+ ] })
10842
+ ] });
10843
+ }
10844
+ function SkeletonRow({ cols }) {
10845
+ return /* @__PURE__ */ jsx("tr", { className: "border-t border-border", children: Array.from({ length: cols }, (_, i) => /* @__PURE__ */ jsx("td", { className: "px-3 py-2.5", children: /* @__PURE__ */ jsx(
10846
+ "div",
10847
+ {
10848
+ className: "h-4 rounded bg-gradient-to-r from-muted via-muted/50 to-muted bg-[length:400%_100%] animate-[shimmer_2s_ease-in-out_infinite]",
10849
+ style: { width: `${60 + Math.random() * 30}%` }
10850
+ }
10851
+ ) }, i)) });
10852
+ }
10853
+ function DataGrid2({
10854
+ columns,
10855
+ data,
10856
+ selectable = false,
10857
+ onSelectionChange,
10858
+ sortable = true,
10859
+ columnVisibility: showColumnVisibility = false,
10860
+ resizable = true,
10861
+ filterable = false,
10862
+ virtual = false,
10863
+ virtualHeight = 480,
10864
+ rowHeight = 40,
10865
+ emptyState,
10866
+ loading = false,
10867
+ skeletonRows = 5,
10868
+ className,
10869
+ onRowClick
10870
+ }) {
10871
+ const [rowSelection, setRowSelection] = useState({});
10872
+ const [sorting, setSorting] = useState([]);
10873
+ const [columnFilters, setColumnFilters] = useState([]);
10874
+ const [colVisibility, setColVisibility] = useState({});
10875
+ const scrollContainerRef = React137__default.useRef(null);
10876
+ const selectionColumn = useMemo(
10877
+ () => ({
10878
+ id: "_select",
10879
+ size: 40,
10880
+ enableResizing: false,
10881
+ enableSorting: false,
10882
+ header: ({ table: table2 }) => /* @__PURE__ */ jsx(
10883
+ Checkbox2,
10884
+ {
10885
+ checked: table2.getIsAllPageRowsSelected() ? true : table2.getIsSomePageRowsSelected() ? "indeterminate" : false,
10886
+ onCheckedChange: (v) => table2.toggleAllPageRowsSelected(v)
10887
+ }
10888
+ ),
10889
+ cell: ({ row }) => /* @__PURE__ */ jsx(
10890
+ Checkbox2,
10891
+ {
10892
+ checked: row.getIsSelected(),
10893
+ onCheckedChange: (v) => row.toggleSelected(v)
10894
+ }
10895
+ )
10896
+ }),
10897
+ []
10898
+ );
10899
+ const allColumns = useMemo(
10900
+ () => selectable ? [selectionColumn, ...columns] : columns,
10901
+ [selectable, selectionColumn, columns]
10902
+ );
10903
+ const table = useReactTable({
10904
+ data,
10905
+ columns: allColumns,
10906
+ columnResizeMode: "onChange",
10907
+ state: {
10908
+ rowSelection,
10909
+ sorting,
10910
+ columnFilters,
10911
+ columnVisibility: colVisibility
10912
+ },
10913
+ onRowSelectionChange: (updater) => {
10914
+ const next = typeof updater === "function" ? updater(rowSelection) : updater;
10915
+ setRowSelection(next);
10916
+ if (onSelectionChange) {
10917
+ const selectedRows = Object.keys(next).filter((k) => next[k]).map((k) => data[Number(k)]).filter(Boolean);
10918
+ onSelectionChange(selectedRows);
10919
+ }
10920
+ },
10921
+ onSortingChange: setSorting,
10922
+ onColumnFiltersChange: setColumnFilters,
10923
+ onColumnVisibilityChange: setColVisibility,
10924
+ getCoreRowModel: getCoreRowModel(),
10925
+ getSortedRowModel: sortable ? getSortedRowModel() : void 0,
10926
+ getFilteredRowModel: filterable ? getFilteredRowModel() : void 0,
10927
+ enableColumnResizing: resizable,
10928
+ enableRowSelection: selectable
10929
+ });
10930
+ const { rows } = table.getRowModel();
10931
+ const virtualizer = useVirtualizer({
10932
+ count: virtual ? rows.length : 0,
10933
+ getScrollElement: () => scrollContainerRef.current,
10934
+ estimateSize: () => rowHeight,
10935
+ overscan: 10
10936
+ });
10937
+ const visibleColumnDefs = table.getAllLeafColumns().filter((c) => c.id !== "_select" && c.getIsVisible());
10938
+ const columnVisibilityItems = visibleColumnDefs.map((c) => ({
10939
+ id: c.id,
10940
+ label: typeof c.columnDef.header === "string" ? c.columnDef.header : c.id
10941
+ }));
10942
+ const renderRows = () => {
10943
+ if (loading) {
10944
+ return Array.from({ length: skeletonRows }, (_, i) => /* @__PURE__ */ jsx(SkeletonRow, { cols: allColumns.length }, i));
10945
+ }
10946
+ if (rows.length === 0) {
10947
+ return /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx(
10948
+ "td",
10949
+ {
10950
+ colSpan: allColumns.length,
10951
+ className: "py-16 text-center text-sm text-muted-foreground",
10952
+ children: emptyState ?? "No results."
10953
+ }
10954
+ ) });
10955
+ }
10956
+ if (virtual) {
10957
+ const virtualItems = virtualizer.getVirtualItems();
10958
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
10959
+ virtualItems.length > 0 && /* @__PURE__ */ jsx("tr", { style: { height: virtualItems[0].start }, children: /* @__PURE__ */ jsx("td", { colSpan: allColumns.length }) }),
10960
+ virtualItems.map((vRow) => {
10961
+ const row = rows[vRow.index];
10962
+ return /* @__PURE__ */ jsx(
10963
+ "tr",
10964
+ {
10965
+ "data-index": vRow.index,
10966
+ className: cn(
10967
+ "border-t border-border transition-colors",
10968
+ onRowClick && "cursor-pointer",
10969
+ row.getIsSelected() ? "bg-primary/5" : "hover:bg-accent/40"
10970
+ ),
10971
+ onClick: () => onRowClick?.(row.original),
10972
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
10973
+ "td",
10974
+ {
10975
+ style: { width: cell.column.getSize() },
10976
+ className: "px-3 py-2 text-sm border-r border-border last:border-r-0 truncate max-w-0",
10977
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
10978
+ },
10979
+ cell.id
10980
+ ))
10981
+ },
10982
+ row.id
10983
+ );
10984
+ }),
10985
+ virtualItems.length > 0 && /* @__PURE__ */ jsx(
10986
+ "tr",
10987
+ {
10988
+ style: {
10989
+ height: virtualizer.getTotalSize() - (virtualItems[virtualItems.length - 1]?.end ?? 0)
10990
+ },
10991
+ children: /* @__PURE__ */ jsx("td", { colSpan: allColumns.length })
10992
+ }
10993
+ )
10994
+ ] });
10995
+ }
10996
+ return rows.map((row) => /* @__PURE__ */ jsx(
10997
+ "tr",
10998
+ {
10999
+ className: cn(
11000
+ "border-t border-border transition-colors",
11001
+ onRowClick && "cursor-pointer",
11002
+ row.getIsSelected() ? "bg-primary/5" : "hover:bg-accent/40"
11003
+ ),
11004
+ onClick: () => onRowClick?.(row.original),
11005
+ children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
11006
+ "td",
11007
+ {
11008
+ style: { width: cell.column.getSize() },
11009
+ className: "px-3 py-2 text-sm border-r border-border last:border-r-0 truncate max-w-0",
11010
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
11011
+ },
11012
+ cell.id
11013
+ ))
11014
+ },
11015
+ row.id
11016
+ ));
11017
+ };
11018
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "data-grid", className: cn("flex flex-col gap-2", className), children: [
11019
+ showColumnVisibility && /* @__PURE__ */ jsx("div", { className: "flex items-center justify-end gap-2", children: /* @__PURE__ */ jsx(
11020
+ ColumnVisibilityDropdown,
11021
+ {
11022
+ columns: columnVisibilityItems,
11023
+ visibility: colVisibility,
11024
+ onVisibilityChange: (id, visible) => setColVisibility((prev) => ({ ...prev, [id]: visible }))
11025
+ }
11026
+ ) }),
11027
+ /* @__PURE__ */ jsx(
11028
+ "div",
11029
+ {
11030
+ ref: virtual ? scrollContainerRef : void 0,
11031
+ className: "overflow-auto rounded-md border border-border",
11032
+ style: virtual ? { height: virtualHeight } : void 0,
11033
+ children: /* @__PURE__ */ jsxs(
11034
+ "table",
11035
+ {
11036
+ className: "w-full text-sm",
11037
+ style: { width: table.getCenterTotalSize() },
11038
+ children: [
11039
+ /* @__PURE__ */ jsx("thead", { className: "sticky top-0 z-10 bg-muted/60 backdrop-blur-sm", children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx("tr", { children: hg.headers.map((h) => /* @__PURE__ */ jsxs(
11040
+ "th",
11041
+ {
11042
+ style: { width: h.getSize() },
11043
+ className: "relative px-3 py-2.5 text-left text-xs font-semibold text-muted-foreground uppercase tracking-wider border-r border-border last:border-r-0 whitespace-nowrap",
11044
+ children: [
11045
+ /* @__PURE__ */ jsxs(
11046
+ "div",
11047
+ {
11048
+ className: cn(
11049
+ "flex items-center gap-1.5 select-none",
11050
+ h.column.getCanSort() && "cursor-pointer hover:text-foreground transition-colors"
11051
+ ),
11052
+ onClick: h.column.getCanSort() ? h.column.getToggleSortingHandler() : void 0,
11053
+ children: [
11054
+ h.isPlaceholder ? null : flexRender(h.column.columnDef.header, h.getContext()),
11055
+ h.column.getCanSort() && /* @__PURE__ */ jsx(SortIcon, { dir: h.column.getIsSorted() })
11056
+ ]
11057
+ }
11058
+ ),
11059
+ h.column.getCanResize() && /* @__PURE__ */ jsx(
11060
+ "div",
11061
+ {
11062
+ onMouseDown: h.getResizeHandler(),
11063
+ onTouchStart: h.getResizeHandler(),
11064
+ className: cn(
11065
+ "absolute right-0 top-0 h-full w-1 cursor-col-resize touch-none select-none",
11066
+ "hover:bg-primary/40",
11067
+ h.column.getIsResizing() && "bg-primary/60"
11068
+ )
11069
+ }
11070
+ )
11071
+ ]
11072
+ },
11073
+ h.id
11074
+ )) }, hg.id)) }),
11075
+ /* @__PURE__ */ jsx("tbody", { children: renderRows() })
11076
+ ]
11077
+ }
11078
+ )
11079
+ }
11080
+ ),
11081
+ selectable && Object.keys(rowSelection).length > 0 && /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
11082
+ Object.keys(rowSelection).filter((k) => rowSelection[k]).length,
11083
+ " of",
11084
+ " ",
11085
+ data.length,
11086
+ " row(s) selected"
11087
+ ] })
11088
+ ] });
11089
+ }
11090
+ var DataList = React137__default.forwardRef(
10501
11091
  ({ divided = true, bordered = true, className, ...props }, ref) => /* @__PURE__ */ jsx(
10502
11092
  "ul",
10503
11093
  {
@@ -10514,7 +11104,7 @@ var DataList = React131__default.forwardRef(
10514
11104
  )
10515
11105
  );
10516
11106
  DataList.displayName = "DataList";
10517
- var DataListItem = React131__default.forwardRef(
11107
+ var DataListItem = React137__default.forwardRef(
10518
11108
  ({ left, title, description, right, interactive, onSelect, className, children, ...props }, ref) => {
10519
11109
  const clickable = interactive || !!onSelect;
10520
11110
  return /* @__PURE__ */ jsxs(
@@ -10574,7 +11164,7 @@ function getWeekDays(date, weekStartsOn) {
10574
11164
  const start = startOfWeek$1(date, { weekStartsOn });
10575
11165
  return Array.from({ length: 7 }, (_, i) => addDays(start, i));
10576
11166
  }
10577
- var EventCalendar = React131__default.forwardRef(
11167
+ var EventCalendar = React137__default.forwardRef(
10578
11168
  ({
10579
11169
  events,
10580
11170
  view: viewProp,
@@ -10589,20 +11179,20 @@ var EventCalendar = React131__default.forwardRef(
10589
11179
  className,
10590
11180
  ...props
10591
11181
  }, ref) => {
10592
- const [internalView, setInternalView] = React131__default.useState("month");
11182
+ const [internalView, setInternalView] = React137__default.useState("month");
10593
11183
  const view = viewProp ?? internalView;
10594
- const commitView = React131__default.useCallback(
11184
+ const commitView = React137__default.useCallback(
10595
11185
  (next) => {
10596
11186
  if (viewProp === void 0) setInternalView(next);
10597
11187
  onViewChange?.(next);
10598
11188
  },
10599
11189
  [viewProp, onViewChange]
10600
11190
  );
10601
- const [internalDate, setInternalDate] = React131__default.useState(
11191
+ const [internalDate, setInternalDate] = React137__default.useState(
10602
11192
  () => defaultDate ?? /* @__PURE__ */ new Date()
10603
11193
  );
10604
11194
  const date = dateProp ?? internalDate;
10605
- const commitDate = React131__default.useCallback(
11195
+ const commitDate = React137__default.useCallback(
10606
11196
  (next) => {
10607
11197
  if (dateProp === void 0) setInternalDate(next);
10608
11198
  onDateChange?.(next);
@@ -10628,7 +11218,7 @@ var EventCalendar = React131__default.forwardRef(
10628
11218
  handleToday();
10629
11219
  }
10630
11220
  };
10631
- const headerLabel = React131__default.useMemo(() => {
11221
+ const headerLabel = React137__default.useMemo(() => {
10632
11222
  if (view === "month") return format(date, "MMMM yyyy");
10633
11223
  if (view === "week") {
10634
11224
  const start = startOfWeek$1(date, { weekStartsOn });
@@ -10777,11 +11367,11 @@ function MonthView({
10777
11367
  onEventCreate,
10778
11368
  onDayPick
10779
11369
  }) {
10780
- const cells = React131__default.useMemo(
11370
+ const cells = React137__default.useMemo(
10781
11371
  () => getMonthMatrix(date, weekStartsOn),
10782
11372
  [date, weekStartsOn]
10783
11373
  );
10784
- const weekdayLabels = React131__default.useMemo(() => {
11374
+ const weekdayLabels = React137__default.useMemo(() => {
10785
11375
  const start = startOfWeek$1(/* @__PURE__ */ new Date(), { weekStartsOn });
10786
11376
  return Array.from({ length: 7 }, (_, i) => format(addDays(start, i), "EEE"));
10787
11377
  }, [weekStartsOn]);
@@ -10928,7 +11518,7 @@ function HourGrid({
10928
11518
  onEventCreate,
10929
11519
  onEventResize
10930
11520
  }) {
10931
- const hours = React131__default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
11521
+ const hours = React137__default.useMemo(() => Array.from({ length: 24 }, (_, i) => i), []);
10932
11522
  const today = /* @__PURE__ */ new Date();
10933
11523
  return /* @__PURE__ */ jsxs(
10934
11524
  "div",
@@ -10982,7 +11572,7 @@ function DayColumn({
10982
11572
  onEventResize,
10983
11573
  showHeader
10984
11574
  }) {
10985
- const bodyRef = React131__default.useRef(null);
11575
+ const bodyRef = React137__default.useRef(null);
10986
11576
  const handleEmptyClick = (e) => {
10987
11577
  if (e.target.closest("[data-event-block]")) return;
10988
11578
  if (!onEventCreate) return;
@@ -11063,10 +11653,10 @@ function EventBlock({ event, day, onClick, onResize }) {
11063
11653
  differenceInMinutes(visibleEnd, visibleStart)
11064
11654
  );
11065
11655
  const top = startMinutes / 60 * HOUR_ROW_PX;
11066
- const [resizingDelta, setResizingDelta] = React131__default.useState(0);
11656
+ const [resizingDelta, setResizingDelta] = React137__default.useState(0);
11067
11657
  const height = durationMinutes / 60 * HOUR_ROW_PX + resizingDelta;
11068
- const isResizing = React131__default.useRef(false);
11069
- const startY = React131__default.useRef(0);
11658
+ const isResizing = React137__default.useRef(false);
11659
+ const startY = React137__default.useRef(0);
11070
11660
  const handleResizePointerDown = (e) => {
11071
11661
  if (!onResize) return;
11072
11662
  e.preventDefault();
@@ -11155,7 +11745,7 @@ function WeekView({
11155
11745
  onEventCreate,
11156
11746
  onEventResize
11157
11747
  }) {
11158
- const days = React131__default.useMemo(
11748
+ const days = React137__default.useMemo(
11159
11749
  () => getWeekDays(date, weekStartsOn),
11160
11750
  [date, weekStartsOn]
11161
11751
  );
@@ -11188,7 +11778,7 @@ function DayView({
11188
11778
  }
11189
11779
  ) });
11190
11780
  }
11191
- var GridList = React131__default.forwardRef(
11781
+ var GridList = React137__default.forwardRef(
11192
11782
  ({ minItemWidth = 240, gap = 1, className, style, ...props }, ref) => /* @__PURE__ */ jsx(
11193
11783
  "ul",
11194
11784
  {
@@ -11205,7 +11795,7 @@ var GridList = React131__default.forwardRef(
11205
11795
  )
11206
11796
  );
11207
11797
  GridList.displayName = "GridList";
11208
- var GridListItem = React131__default.forwardRef(
11798
+ var GridListItem = React137__default.forwardRef(
11209
11799
  ({ interactive, onSelect, className, ...props }, ref) => {
11210
11800
  const clickable = interactive || !!onSelect;
11211
11801
  return /* @__PURE__ */ jsx(
@@ -11276,7 +11866,7 @@ async function extractCroppedDataUrl(image, crop, format3, quality) {
11276
11866
  const mime = format3 === "jpeg" ? "image/jpeg" : format3 === "webp" ? "image/webp" : "image/png";
11277
11867
  return canvas.toDataURL(mime, quality);
11278
11868
  }
11279
- var ImageCrop = React131__default.forwardRef(
11869
+ var ImageCrop = React137__default.forwardRef(
11280
11870
  ({
11281
11871
  src,
11282
11872
  aspect,
@@ -11291,13 +11881,13 @@ var ImageCrop = React131__default.forwardRef(
11291
11881
  className,
11292
11882
  ...props
11293
11883
  }, 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(() => {
11884
+ const [crop, setCrop] = React137__default.useState(void 0);
11885
+ const imgRef = React137__default.useRef(null);
11886
+ const timerRef = React137__default.useRef(null);
11887
+ React137__default.useEffect(() => {
11298
11888
  setCrop(void 0);
11299
11889
  }, [src]);
11300
- React131__default.useEffect(() => {
11890
+ React137__default.useEffect(() => {
11301
11891
  return () => {
11302
11892
  if (timerRef.current) clearTimeout(timerRef.current);
11303
11893
  };
@@ -11522,7 +12112,7 @@ function TreeRow({
11522
12112
  }
11523
12113
  );
11524
12114
  }
11525
- var Tree = React131__default.forwardRef(
12115
+ var Tree = React137__default.forwardRef(
11526
12116
  ({
11527
12117
  data,
11528
12118
  defaultExpandedIds,
@@ -11538,21 +12128,21 @@ var Tree = React131__default.forwardRef(
11538
12128
  ...props
11539
12129
  }, ref) => {
11540
12130
  const isControlled = expandedIds !== void 0;
11541
- const [internalExpanded, setInternalExpanded] = React131__default.useState(
12131
+ const [internalExpanded, setInternalExpanded] = React137__default.useState(
11542
12132
  () => new Set(defaultExpandedIds ?? [])
11543
12133
  );
11544
- const expandedSet = React131__default.useMemo(
12134
+ const expandedSet = React137__default.useMemo(
11545
12135
  () => isControlled ? new Set(expandedIds) : internalExpanded,
11546
12136
  [isControlled, expandedIds, internalExpanded]
11547
12137
  );
11548
- const commitExpanded = React131__default.useCallback(
12138
+ const commitExpanded = React137__default.useCallback(
11549
12139
  (next) => {
11550
12140
  if (!isControlled) setInternalExpanded(next);
11551
12141
  onExpandedChange?.(Array.from(next));
11552
12142
  },
11553
12143
  [isControlled, onExpandedChange]
11554
12144
  );
11555
- const toggle = React131__default.useCallback(
12145
+ const toggle = React137__default.useCallback(
11556
12146
  (id) => {
11557
12147
  const next = new Set(expandedSet);
11558
12148
  if (next.has(id)) next.delete(id);
@@ -11561,7 +12151,7 @@ var Tree = React131__default.forwardRef(
11561
12151
  },
11562
12152
  [expandedSet, commitExpanded]
11563
12153
  );
11564
- const expand = React131__default.useCallback(
12154
+ const expand = React137__default.useCallback(
11565
12155
  (id) => {
11566
12156
  if (expandedSet.has(id)) return;
11567
12157
  const next = new Set(expandedSet);
@@ -11570,7 +12160,7 @@ var Tree = React131__default.forwardRef(
11570
12160
  },
11571
12161
  [expandedSet, commitExpanded]
11572
12162
  );
11573
- const collapse = React131__default.useCallback(
12163
+ const collapse = React137__default.useCallback(
11574
12164
  (id) => {
11575
12165
  if (!expandedSet.has(id)) return;
11576
12166
  const next = new Set(expandedSet);
@@ -11579,27 +12169,27 @@ var Tree = React131__default.forwardRef(
11579
12169
  },
11580
12170
  [expandedSet, commitExpanded]
11581
12171
  );
11582
- const rows = React131__default.useMemo(
12172
+ const rows = React137__default.useMemo(
11583
12173
  () => flatten(data, expandedSet),
11584
12174
  [data, expandedSet]
11585
12175
  );
11586
- const [focusedId, setFocusedId] = React131__default.useState(
12176
+ const [focusedId, setFocusedId] = React137__default.useState(
11587
12177
  () => selectedId ?? data[0]?.id ?? null
11588
12178
  );
11589
- const rowRefs = React131__default.useRef(/* @__PURE__ */ new Map());
11590
- const registerRef = React131__default.useCallback(
12179
+ const rowRefs = React137__default.useRef(/* @__PURE__ */ new Map());
12180
+ const registerRef = React137__default.useCallback(
11591
12181
  (id, el) => {
11592
12182
  if (el) rowRefs.current.set(id, el);
11593
12183
  else rowRefs.current.delete(id);
11594
12184
  },
11595
12185
  []
11596
12186
  );
11597
- const moveFocus = React131__default.useCallback((id) => {
12187
+ const moveFocus = React137__default.useCallback((id) => {
11598
12188
  setFocusedId(id);
11599
12189
  const el = rowRefs.current.get(id);
11600
12190
  el?.focus();
11601
12191
  }, []);
11602
- const onRowKeyDown = React131__default.useCallback(
12192
+ const onRowKeyDown = React137__default.useCallback(
11603
12193
  (e, row) => {
11604
12194
  const idx = rows.findIndex((r) => r.node.id === row.node.id);
11605
12195
  if (idx === -1) return;
@@ -11649,11 +12239,11 @@ var Tree = React131__default.forwardRef(
11649
12239
  useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),
11650
12240
  useSensor(KeyboardSensor)
11651
12241
  );
11652
- const [activeDragId, setActiveDragId] = React131__default.useState(null);
11653
- const handleDragStart = React131__default.useCallback((e) => {
12242
+ const [activeDragId, setActiveDragId] = React137__default.useState(null);
12243
+ const handleDragStart = React137__default.useCallback((e) => {
11654
12244
  setActiveDragId(String(e.active.id));
11655
12245
  }, []);
11656
- const handleDragEnd = React131__default.useCallback(
12246
+ const handleDragEnd = React137__default.useCallback(
11657
12247
  (e) => {
11658
12248
  setActiveDragId(null);
11659
12249
  const { active, over } = e;
@@ -11669,8 +12259,8 @@ var Tree = React131__default.forwardRef(
11669
12259
  },
11670
12260
  [onMove]
11671
12261
  );
11672
- const handleDragCancel = React131__default.useCallback(() => setActiveDragId(null), []);
11673
- const scrollerRef = React131__default.useRef(null);
12262
+ const handleDragCancel = React137__default.useCallback(() => setActiveDragId(null), []);
12263
+ const scrollerRef = React137__default.useRef(null);
11674
12264
  const virtualizer = useVirtualizer({
11675
12265
  count: virtualize ? rows.length : 0,
11676
12266
  getScrollElement: () => scrollerRef.current,
@@ -11772,7 +12362,7 @@ async function exitFs() {
11772
12362
  if (d.exitFullscreen) return void d.exitFullscreen();
11773
12363
  if (d.webkitExitFullscreen) return void d.webkitExitFullscreen();
11774
12364
  }
11775
- var VideoPlayer = React131__default.forwardRef(
12365
+ var VideoPlayer = React137__default.forwardRef(
11776
12366
  ({
11777
12367
  src,
11778
12368
  poster,
@@ -11789,33 +12379,33 @@ var VideoPlayer = React131__default.forwardRef(
11789
12379
  muted: mutedProp,
11790
12380
  ...videoProps
11791
12381
  }, 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(() => {
12382
+ const containerRef = React137__default.useRef(null);
12383
+ const videoRef = React137__default.useRef(null);
12384
+ const hideTimerRef = React137__default.useRef(null);
12385
+ const [isPlaying, setIsPlaying] = React137__default.useState(false);
12386
+ const [hasPlayed, setHasPlayed] = React137__default.useState(Boolean(autoPlay));
12387
+ const [currentTime, setCurrentTime] = React137__default.useState(0);
12388
+ const [duration, setDuration] = React137__default.useState(0);
12389
+ const [buffered, setBuffered] = React137__default.useState(0);
12390
+ const [volume, setVolume] = React137__default.useState(1);
12391
+ const [isMuted, setIsMuted] = React137__default.useState(Boolean(mutedProp ?? autoPlay));
12392
+ const [isFullscreen, setIsFullscreen] = React137__default.useState(false);
12393
+ const [showControls, setShowControls] = React137__default.useState(true);
12394
+ React137__default.useImperativeHandle(ref, () => containerRef.current);
12395
+ React137__default.useEffect(() => {
11806
12396
  const v = videoRef.current;
11807
12397
  if (!v) return;
11808
12398
  v.volume = volume;
11809
12399
  v.muted = isMuted;
11810
12400
  }, [volume, isMuted]);
11811
- const showAndScheduleHide = React131__default.useCallback(() => {
12401
+ const showAndScheduleHide = React137__default.useCallback(() => {
11812
12402
  setShowControls(true);
11813
12403
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
11814
12404
  if (isPlaying) {
11815
12405
  hideTimerRef.current = setTimeout(() => setShowControls(false), 3e3);
11816
12406
  }
11817
12407
  }, [isPlaying]);
11818
- React131__default.useEffect(() => {
12408
+ React137__default.useEffect(() => {
11819
12409
  if (!isPlaying) {
11820
12410
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
11821
12411
  setShowControls(true);
@@ -11826,7 +12416,7 @@ var VideoPlayer = React131__default.forwardRef(
11826
12416
  if (hideTimerRef.current) clearTimeout(hideTimerRef.current);
11827
12417
  };
11828
12418
  }, [isPlaying]);
11829
- React131__default.useEffect(() => {
12419
+ React137__default.useEffect(() => {
11830
12420
  const onFsChange = () => setIsFullscreen(isFullscreenActive());
11831
12421
  document.addEventListener("fullscreenchange", onFsChange);
11832
12422
  document.addEventListener("webkitfullscreenchange", onFsChange);
@@ -11835,7 +12425,7 @@ var VideoPlayer = React131__default.forwardRef(
11835
12425
  document.removeEventListener("webkitfullscreenchange", onFsChange);
11836
12426
  };
11837
12427
  }, []);
11838
- const togglePlay = React131__default.useCallback(() => {
12428
+ const togglePlay = React137__default.useCallback(() => {
11839
12429
  const v = videoRef.current;
11840
12430
  if (!v) return;
11841
12431
  if (v.paused) {
@@ -11844,22 +12434,22 @@ var VideoPlayer = React131__default.forwardRef(
11844
12434
  v.pause();
11845
12435
  }
11846
12436
  }, []);
11847
- const toggleMute = React131__default.useCallback(() => {
12437
+ const toggleMute = React137__default.useCallback(() => {
11848
12438
  setIsMuted((m) => !m);
11849
12439
  }, []);
11850
- const toggleFullscreen = React131__default.useCallback(() => {
12440
+ const toggleFullscreen = React137__default.useCallback(() => {
11851
12441
  const el = containerRef.current;
11852
12442
  if (!el) return;
11853
12443
  if (isFullscreenActive()) void exitFs();
11854
12444
  else void requestFs(el);
11855
12445
  }, []);
11856
- const seekTo = React131__default.useCallback((time) => {
12446
+ const seekTo = React137__default.useCallback((time) => {
11857
12447
  const v = videoRef.current;
11858
12448
  if (!v) return;
11859
12449
  const clamped = Math.max(0, Math.min(v.duration || 0, time));
11860
12450
  v.currentTime = clamped;
11861
12451
  }, []);
11862
- const seekBy = React131__default.useCallback(
12452
+ const seekBy = React137__default.useCallback(
11863
12453
  (delta) => {
11864
12454
  seekTo((videoRef.current?.currentTime ?? 0) + delta);
11865
12455
  },
@@ -12207,7 +12797,7 @@ function Combobox({
12207
12797
  className,
12208
12798
  contentWidth = "trigger"
12209
12799
  }) {
12210
- const [open, setOpen] = React131__default.useState(false);
12800
+ const [open, setOpen] = React137__default.useState(false);
12211
12801
  const selected = options.find((o) => o.value === value);
12212
12802
  return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
12213
12803
  /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
@@ -12301,9 +12891,9 @@ function ColorSchemeSelect({
12301
12891
  className
12302
12892
  }) {
12303
12893
  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(() => {
12894
+ const [value, setValue] = React137__default.useState(() => readInitial2(fallback));
12895
+ const didMount = React137__default.useRef(false);
12896
+ React137__default.useEffect(() => {
12307
12897
  if (!didMount.current) {
12308
12898
  didMount.current = true;
12309
12899
  return;
@@ -12749,6 +13339,6 @@ function SortableNav({ items, onReorder, className }) {
12749
13339
  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
13340
  }
12751
13341
 
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 };
13342
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityHeatmap, DataGrid2 as AdvancedDataGrid, 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, IconButton, 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
13343
  //# sourceMappingURL=index.mjs.map
12754
13344
  //# sourceMappingURL=index.mjs.map