@pactor-app/ui 1.2.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ui/index.cjs CHANGED
@@ -49,6 +49,15 @@ __export(ui_exports, {
49
49
  AlertDialogTrigger: () => AlertDialogTrigger,
50
50
  AlertTitle: () => AlertTitle,
51
51
  AspectRatio: () => AspectRatio,
52
+ Attachment: () => Attachment,
53
+ AttachmentAction: () => AttachmentAction,
54
+ AttachmentActions: () => AttachmentActions,
55
+ AttachmentContent: () => AttachmentContent,
56
+ AttachmentDescription: () => AttachmentDescription,
57
+ AttachmentGroup: () => AttachmentGroup,
58
+ AttachmentMedia: () => AttachmentMedia,
59
+ AttachmentTitle: () => AttachmentTitle,
60
+ AttachmentTrigger: () => AttachmentTrigger,
52
61
  Avatar: () => Avatar,
53
62
  AvatarFallback: () => AvatarFallback,
54
63
  AvatarImage: () => AvatarImage,
@@ -60,6 +69,10 @@ __export(ui_exports, {
60
69
  BreadcrumbList: () => BreadcrumbList,
61
70
  BreadcrumbPage: () => BreadcrumbPage,
62
71
  BreadcrumbSeparator: () => BreadcrumbSeparator,
72
+ Bubble: () => Bubble,
73
+ BubbleContent: () => BubbleContent,
74
+ BubbleGroup: () => BubbleGroup,
75
+ BubbleReactions: () => BubbleReactions,
63
76
  Button: () => Button,
64
77
  ButtonGroup: () => ButtonGroup,
65
78
  CHART_TOKEN_COLORS: () => CHART_TOKEN_COLORS,
@@ -157,6 +170,12 @@ __export(ui_exports, {
157
170
  MenubarMenu: () => MenubarMenu,
158
171
  MenubarSeparator: () => MenubarSeparator,
159
172
  MenubarTrigger: () => MenubarTrigger,
173
+ Message: () => Message,
174
+ MessageAvatar: () => MessageAvatar,
175
+ MessageContent: () => MessageContent,
176
+ MessageFooter: () => MessageFooter,
177
+ MessageGroup: () => MessageGroup,
178
+ MessageHeader: () => MessageHeader,
160
179
  NavigationMenu: () => NavigationMenu,
161
180
  NavigationMenuContent: () => NavigationMenuContent,
162
181
  NavigationMenuItem: () => NavigationMenuItem,
@@ -205,6 +224,29 @@ __export(ui_exports, {
205
224
  SheetPortal: () => SheetPortal,
206
225
  SheetTitle: () => SheetTitle,
207
226
  SheetTrigger: () => SheetTrigger,
227
+ SidebarContentArea: () => SidebarContent,
228
+ SidebarFooterArea: () => SidebarFooter,
229
+ SidebarGroup: () => SidebarGroup,
230
+ SidebarGroupAction: () => SidebarGroupAction,
231
+ SidebarGroupContent: () => SidebarGroupContent,
232
+ SidebarGroupLabel: () => SidebarGroupLabel,
233
+ SidebarHeaderArea: () => SidebarHeader,
234
+ SidebarInput: () => SidebarInput,
235
+ SidebarInset: () => SidebarInset,
236
+ SidebarMenu: () => SidebarMenu,
237
+ SidebarMenuAction: () => SidebarMenuAction,
238
+ SidebarMenuBadge: () => SidebarMenuBadge,
239
+ SidebarMenuButton: () => SidebarMenuButton,
240
+ SidebarMenuItem: () => SidebarMenuItem,
241
+ SidebarMenuSkeleton: () => SidebarMenuSkeleton,
242
+ SidebarMenuSub: () => SidebarMenuSub,
243
+ SidebarMenuSubButton: () => SidebarMenuSubButton,
244
+ SidebarMenuSubItem: () => SidebarMenuSubItem,
245
+ SidebarProvider: () => SidebarProvider,
246
+ SidebarRail: () => SidebarRail,
247
+ SidebarRoot: () => SidebarRoot,
248
+ SidebarSeparator: () => SidebarSeparator,
249
+ SidebarTrigger: () => SidebarTrigger,
208
250
  Skeleton: () => Skeleton,
209
251
  Slider: () => Slider,
210
252
  SliderControl: () => SliderControl,
@@ -243,7 +285,8 @@ __export(ui_exports, {
243
285
  toastManager: () => toastManager,
244
286
  toggleVariants: () => toggleVariants,
245
287
  typographyVariants: () => typographyVariants,
246
- useCarousel: () => useCarousel
288
+ useCarousel: () => useCarousel,
289
+ useSidebar: () => useSidebar
247
290
  });
248
291
  module.exports = __toCommonJS(ui_exports);
249
292
 
@@ -400,8 +443,9 @@ function AlertDescription({
400
443
  );
401
444
  }
402
445
 
403
- // src/ui/alert-dialog.tsx
404
- var import_alert_dialog = require("@base-ui/react/alert-dialog");
446
+ // src/ui/attachment.tsx
447
+ var import_class_variance_authority3 = require("class-variance-authority");
448
+ var React2 = __toESM(require("react"), 1);
405
449
 
406
450
  // src/ui/button.tsx
407
451
  var import_button = require("@base-ui/react/button");
@@ -415,16 +459,20 @@ var buttonVariants = (0, import_class_variance_authority2.cva)(
415
459
  variant: {
416
460
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
417
461
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
418
- outline: "border border-border bg-background hover:bg-accent hover:text-accent-foreground",
462
+ outline: "border border-border bg-card hover:bg-accent hover:text-accent-foreground",
419
463
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
420
464
  ghost: "hover:bg-accent hover:text-accent-foreground",
421
465
  link: "text-primary underline-offset-4 hover:underline"
422
466
  },
423
467
  size: {
424
468
  default: "h-9 px-4 py-2",
469
+ xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
425
470
  sm: "h-8 gap-1.5 rounded-md px-3 text-xs",
426
471
  lg: "h-10 rounded-md px-6",
427
- icon: "size-9"
472
+ icon: "size-9",
473
+ "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
474
+ "icon-sm": "size-8",
475
+ "icon-lg": "size-10"
428
476
  }
429
477
  },
430
478
  defaultVariants: {
@@ -463,33 +511,225 @@ function Button({
463
511
  );
464
512
  }
465
513
 
466
- // src/ui/alert-dialog.tsx
514
+ // src/ui/attachment.tsx
467
515
  var import_jsx_runtime4 = require("react/jsx-runtime");
516
+ var attachmentVariants = (0, import_class_variance_authority3.cva)(
517
+ "group/attachment relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap rounded-xl border bg-card text-card-foreground transition-colors focus-within:ring-1 focus-within:ring-ring/50 has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive/30 data-[state=idle]:border-dashed",
518
+ {
519
+ variants: {
520
+ size: {
521
+ default: "gap-2 text-sm has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2",
522
+ sm: "gap-2.5 text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5",
523
+ xs: "gap-1.5 rounded-lg text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1"
524
+ },
525
+ orientation: {
526
+ horizontal: "min-w-40 items-center",
527
+ vertical: "w-24 flex-col has-data-[slot=attachment-content]:w-30"
528
+ }
529
+ }
530
+ }
531
+ );
532
+ function Attachment({
533
+ className,
534
+ state = "done",
535
+ size = "default",
536
+ orientation = "horizontal",
537
+ ...props
538
+ }) {
539
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
540
+ "div",
541
+ {
542
+ "data-slot": "attachment",
543
+ "data-state": state,
544
+ "data-size": size,
545
+ "data-orientation": orientation,
546
+ className: cn(attachmentVariants({ size, orientation }), className),
547
+ ...props
548
+ }
549
+ );
550
+ }
551
+ var attachmentMediaVariants = (0, import_class_variance_authority3.cva)(
552
+ "relative flex aspect-square w-10 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-muted text-foreground group-data-[orientation=vertical]/attachment:w-full group-data-[size=sm]/attachment:w-8 group-data-[size=xs]/attachment:w-7 group-data-[size=xs]/attachment:rounded-md group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6! [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5",
553
+ {
554
+ variants: {
555
+ variant: {
556
+ icon: "",
557
+ image: "opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover"
558
+ }
559
+ },
560
+ defaultVariants: {
561
+ variant: "icon"
562
+ }
563
+ }
564
+ );
565
+ function AttachmentMedia({
566
+ className,
567
+ variant = "icon",
568
+ ...props
569
+ }) {
570
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
571
+ "div",
572
+ {
573
+ "data-slot": "attachment-media",
574
+ "data-variant": variant,
575
+ className: cn(attachmentMediaVariants({ variant }), className),
576
+ ...props
577
+ }
578
+ );
579
+ }
580
+ function AttachmentContent({
581
+ className,
582
+ ...props
583
+ }) {
584
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
585
+ "div",
586
+ {
587
+ "data-slot": "attachment-content",
588
+ className: cn(
589
+ "max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1",
590
+ className
591
+ ),
592
+ ...props
593
+ }
594
+ );
595
+ }
596
+ function AttachmentTitle({
597
+ className,
598
+ ...props
599
+ }) {
600
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
601
+ "span",
602
+ {
603
+ "data-slot": "attachment-title",
604
+ className: cn(
605
+ "block max-w-full min-w-0 truncate font-medium group-data-[state=processing]/attachment:shimmer group-data-[state=uploading]/attachment:shimmer",
606
+ className
607
+ ),
608
+ ...props
609
+ }
610
+ );
611
+ }
612
+ function AttachmentDescription({
613
+ className,
614
+ ...props
615
+ }) {
616
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
617
+ "span",
618
+ {
619
+ "data-slot": "attachment-description",
620
+ className: cn(
621
+ "mt-0.5 block min-w-0 truncate text-xs text-muted-foreground group-data-[state=error]/attachment:text-destructive/80",
622
+ "max-w-full",
623
+ className
624
+ ),
625
+ ...props
626
+ }
627
+ );
628
+ }
629
+ function AttachmentActions({
630
+ className,
631
+ ...props
632
+ }) {
633
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
634
+ "div",
635
+ {
636
+ "data-slot": "attachment-actions",
637
+ className: cn(
638
+ "relative z-20 flex shrink-0 items-center group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:right-3 group-data-[orientation=vertical]/attachment:gap-1",
639
+ className
640
+ ),
641
+ ...props
642
+ }
643
+ );
644
+ }
645
+ function AttachmentAction({
646
+ className,
647
+ variant,
648
+ size = "icon-xs",
649
+ ...props
650
+ }) {
651
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
652
+ Button,
653
+ {
654
+ "data-slot": "attachment-action",
655
+ variant: variant ?? "ghost",
656
+ size,
657
+ className: cn(className),
658
+ ...props
659
+ }
660
+ );
661
+ }
662
+ function AttachmentTrigger({
663
+ className,
664
+ asChild = false,
665
+ type,
666
+ children,
667
+ ...props
668
+ }) {
669
+ if (asChild && React2.isValidElement(children)) {
670
+ return React2.cloneElement(children, {
671
+ "data-slot": "attachment-trigger",
672
+ className: cn(
673
+ "absolute inset-0 z-10 outline-none",
674
+ children.props.className,
675
+ className
676
+ ),
677
+ ...props
678
+ });
679
+ }
680
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
681
+ "button",
682
+ {
683
+ "data-slot": "attachment-trigger",
684
+ type: type ?? "button",
685
+ className: cn("absolute inset-0 z-10 outline-none", className),
686
+ ...props,
687
+ children
688
+ }
689
+ );
690
+ }
691
+ function AttachmentGroup({ className, ...props }) {
692
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
693
+ "div",
694
+ {
695
+ "data-slot": "attachment-group",
696
+ className: cn(
697
+ "flex min-w-0 scroll-fade-x snap-x snap-mandatory scroll-px-1 scrollbar-none gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start",
698
+ className
699
+ ),
700
+ ...props
701
+ }
702
+ );
703
+ }
704
+
705
+ // src/ui/alert-dialog.tsx
706
+ var import_alert_dialog = require("@base-ui/react/alert-dialog");
707
+ var import_jsx_runtime5 = require("react/jsx-runtime");
468
708
  function AlertDialog({
469
709
  ...props
470
710
  }) {
471
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_alert_dialog.AlertDialog.Root, { "data-slot": "alert-dialog", ...props });
711
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_alert_dialog.AlertDialog.Root, { "data-slot": "alert-dialog", ...props });
472
712
  }
473
713
  function AlertDialogTrigger({
474
714
  ...props
475
715
  }) {
476
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_alert_dialog.AlertDialog.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
716
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_alert_dialog.AlertDialog.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
477
717
  }
478
718
  function AlertDialogPortal({
479
719
  ...props
480
720
  }) {
481
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_alert_dialog.AlertDialog.Portal, { "data-slot": "alert-dialog-portal", ...props });
721
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_alert_dialog.AlertDialog.Portal, { "data-slot": "alert-dialog-portal", ...props });
482
722
  }
483
723
  function AlertDialogOverlay({
484
724
  className,
485
725
  ...props
486
726
  }) {
487
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
727
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
488
728
  import_alert_dialog.AlertDialog.Backdrop,
489
729
  {
490
730
  "data-slot": "alert-dialog-overlay",
491
731
  className: cn(
492
- "fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
732
+ "fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
493
733
  className
494
734
  ),
495
735
  ...props
@@ -500,14 +740,14 @@ function AlertDialogContent({
500
740
  className,
501
741
  ...props
502
742
  }) {
503
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(AlertDialogPortal, { "data-slot": "alert-dialog-portal", children: [
504
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AlertDialogOverlay, {}),
505
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
743
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(AlertDialogPortal, { "data-slot": "alert-dialog-portal", children: [
744
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AlertDialogOverlay, {}),
745
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
506
746
  import_alert_dialog.AlertDialog.Popup,
507
747
  {
508
748
  "data-slot": "alert-dialog-content",
509
749
  className: cn(
510
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-background p-6 shadow-lg duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
750
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-popover p-6 shadow-lg shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
511
751
  className
512
752
  ),
513
753
  ...props
@@ -519,7 +759,7 @@ function AlertDialogHeader({
519
759
  className,
520
760
  ...props
521
761
  }) {
522
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
762
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
523
763
  "div",
524
764
  {
525
765
  "data-slot": "alert-dialog-header",
@@ -532,7 +772,7 @@ function AlertDialogFooter({
532
772
  className,
533
773
  ...props
534
774
  }) {
535
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
775
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
536
776
  "div",
537
777
  {
538
778
  "data-slot": "alert-dialog-footer",
@@ -548,7 +788,7 @@ function AlertDialogTitle({
548
788
  className,
549
789
  ...props
550
790
  }) {
551
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
791
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
552
792
  import_alert_dialog.AlertDialog.Title,
553
793
  {
554
794
  "data-slot": "alert-dialog-title",
@@ -561,7 +801,7 @@ function AlertDialogDescription({
561
801
  className,
562
802
  ...props
563
803
  }) {
564
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
804
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
565
805
  import_alert_dialog.AlertDialog.Description,
566
806
  {
567
807
  "data-slot": "alert-dialog-description",
@@ -575,7 +815,7 @@ function AlertDialogAction({
575
815
  variant = "default",
576
816
  ...props
577
817
  }) {
578
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
818
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
579
819
  import_alert_dialog.AlertDialog.Close,
580
820
  {
581
821
  "data-slot": "alert-dialog-action",
@@ -589,7 +829,7 @@ function AlertDialogCancel({
589
829
  variant = "outline",
590
830
  ...props
591
831
  }) {
592
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
832
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
593
833
  import_alert_dialog.AlertDialog.Close,
594
834
  {
595
835
  "data-slot": "alert-dialog-cancel",
@@ -600,14 +840,14 @@ function AlertDialogCancel({
600
840
  }
601
841
 
602
842
  // src/ui/aspect-ratio.tsx
603
- var import_jsx_runtime5 = require("react/jsx-runtime");
843
+ var import_jsx_runtime6 = require("react/jsx-runtime");
604
844
  function AspectRatio({
605
845
  ratio = 1,
606
846
  className,
607
847
  style,
608
848
  ...props
609
849
  }) {
610
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
850
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
611
851
  "div",
612
852
  {
613
853
  "data-slot": "aspect-ratio",
@@ -620,9 +860,9 @@ function AspectRatio({
620
860
 
621
861
  // src/ui/avatar.tsx
622
862
  var import_avatar = require("@base-ui/react/avatar");
623
- var import_jsx_runtime6 = require("react/jsx-runtime");
863
+ var import_jsx_runtime7 = require("react/jsx-runtime");
624
864
  function Avatar({ className, ...props }) {
625
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
865
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
626
866
  import_avatar.Avatar.Root,
627
867
  {
628
868
  "data-slot": "avatar",
@@ -635,7 +875,7 @@ function Avatar({ className, ...props }) {
635
875
  );
636
876
  }
637
877
  function AvatarImage({ className, ...props }) {
638
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
878
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
639
879
  import_avatar.Avatar.Image,
640
880
  {
641
881
  "data-slot": "avatar-image",
@@ -645,7 +885,7 @@ function AvatarImage({ className, ...props }) {
645
885
  );
646
886
  }
647
887
  function AvatarFallback({ className, ...props }) {
648
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
888
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
649
889
  import_avatar.Avatar.Fallback,
650
890
  {
651
891
  "data-slot": "avatar-fallback",
@@ -659,9 +899,9 @@ function AvatarFallback({ className, ...props }) {
659
899
  }
660
900
 
661
901
  // src/ui/badge.tsx
662
- var import_class_variance_authority3 = require("class-variance-authority");
663
- var import_jsx_runtime7 = require("react/jsx-runtime");
664
- var badgeVariants = (0, import_class_variance_authority3.cva)(
902
+ var import_class_variance_authority4 = require("class-variance-authority");
903
+ var import_jsx_runtime8 = require("react/jsx-runtime");
904
+ var badgeVariants = (0, import_class_variance_authority4.cva)(
665
905
  "inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap [&>svg]:pointer-events-none [&>svg]:size-3",
666
906
  {
667
907
  variants: {
@@ -682,7 +922,7 @@ function Badge({
682
922
  variant,
683
923
  ...props
684
924
  }) {
685
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
925
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
686
926
  "span",
687
927
  {
688
928
  "data-slot": "badge",
@@ -694,12 +934,12 @@ function Badge({
694
934
 
695
935
  // src/ui/breadcrumb.tsx
696
936
  var import_lucide_react2 = require("lucide-react");
697
- var import_jsx_runtime8 = require("react/jsx-runtime");
937
+ var import_jsx_runtime9 = require("react/jsx-runtime");
698
938
  function Breadcrumb({ ...props }) {
699
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
939
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
700
940
  }
701
941
  function BreadcrumbList({ className, ...props }) {
702
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
942
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
703
943
  "ol",
704
944
  {
705
945
  "data-slot": "breadcrumb-list",
@@ -712,7 +952,7 @@ function BreadcrumbList({ className, ...props }) {
712
952
  );
713
953
  }
714
954
  function BreadcrumbItem({ className, ...props }) {
715
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
955
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
716
956
  "li",
717
957
  {
718
958
  "data-slot": "breadcrumb-item",
@@ -722,7 +962,7 @@ function BreadcrumbItem({ className, ...props }) {
722
962
  );
723
963
  }
724
964
  function BreadcrumbLink({ className, ...props }) {
725
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
965
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
726
966
  "a",
727
967
  {
728
968
  "data-slot": "breadcrumb-link",
@@ -732,7 +972,7 @@ function BreadcrumbLink({ className, ...props }) {
732
972
  );
733
973
  }
734
974
  function BreadcrumbPage({ className, ...props }) {
735
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
975
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
736
976
  "span",
737
977
  {
738
978
  "data-slot": "breadcrumb-page",
@@ -749,7 +989,7 @@ function BreadcrumbSeparator({
749
989
  className,
750
990
  ...props
751
991
  }) {
752
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
992
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
753
993
  "li",
754
994
  {
755
995
  "data-slot": "breadcrumb-separator",
@@ -757,12 +997,12 @@ function BreadcrumbSeparator({
757
997
  "aria-hidden": "true",
758
998
  className: cn("[&>svg]:size-3.5", className),
759
999
  ...props,
760
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react2.ChevronRightIcon, {})
1000
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react2.ChevronRightIcon, {})
761
1001
  }
762
1002
  );
763
1003
  }
764
1004
  function BreadcrumbEllipsis({ className, ...props }) {
765
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
1005
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
766
1006
  "span",
767
1007
  {
768
1008
  "data-slot": "breadcrumb-ellipsis",
@@ -771,17 +1011,17 @@ function BreadcrumbEllipsis({ className, ...props }) {
771
1011
  className: cn("flex size-9 items-center justify-center", className),
772
1012
  ...props,
773
1013
  children: [
774
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react2.MoreHorizontalIcon, { className: "size-4" }),
775
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "sr-only", children: "More" })
1014
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react2.MoreHorizontalIcon, { className: "size-4" }),
1015
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "More" })
776
1016
  ]
777
1017
  }
778
1018
  );
779
1019
  }
780
1020
 
781
1021
  // src/ui/button-group.tsx
782
- var import_jsx_runtime9 = require("react/jsx-runtime");
1022
+ var import_jsx_runtime10 = require("react/jsx-runtime");
783
1023
  function ButtonGroup({ className, ...props }) {
784
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1024
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
785
1025
  "div",
786
1026
  {
787
1027
  role: "group",
@@ -795,63 +1035,177 @@ function ButtonGroup({ className, ...props }) {
795
1035
  );
796
1036
  }
797
1037
 
798
- // src/ui/calendar.tsx
799
- var import_lucide_react3 = require("lucide-react");
800
- var import_react_day_picker = require("react-day-picker");
801
- var import_jsx_runtime10 = require("react/jsx-runtime");
802
- function Calendar({
1038
+ // src/ui/bubble.tsx
1039
+ var React3 = __toESM(require("react"), 1);
1040
+ var import_class_variance_authority5 = require("class-variance-authority");
1041
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1042
+ function BubbleGroup({ className, ...props }) {
1043
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1044
+ "div",
1045
+ {
1046
+ "data-slot": "bubble-group",
1047
+ className: cn("flex min-w-0 flex-col gap-2", className),
1048
+ ...props
1049
+ }
1050
+ );
1051
+ }
1052
+ var bubbleVariants = (0, import_class_variance_authority5.cva)(
1053
+ "group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full",
1054
+ {
1055
+ variants: {
1056
+ variant: {
1057
+ default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
1058
+ secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
1059
+ muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
1060
+ tinted: "*:data-[slot=bubble-content]:bg-(--bubble-background) *:data-[slot=bubble-content]:text-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-(--bubble-hover-background)",
1061
+ outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-card [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",
1062
+ ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",
1063
+ destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"
1064
+ }
1065
+ },
1066
+ defaultVariants: {
1067
+ variant: "default"
1068
+ }
1069
+ }
1070
+ );
1071
+ function Bubble({
1072
+ variant = "default",
1073
+ align = "start",
803
1074
  className,
804
- classNames,
805
- showOutsideDays = true,
806
1075
  ...props
807
1076
  }) {
808
- const defaultClassNames = (0, import_react_day_picker.getDefaultClassNames)();
809
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
810
- import_react_day_picker.DayPicker,
1077
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1078
+ "div",
811
1079
  {
812
- showOutsideDays,
813
- className: cn("bg-background p-3", className),
814
- classNames: {
815
- root: cn("w-fit", defaultClassNames.root),
816
- months: cn("relative flex flex-col gap-4 md:flex-row", defaultClassNames.months),
817
- month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
818
- nav: cn(
819
- "absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
820
- defaultClassNames.nav
821
- ),
822
- button_previous: cn(
823
- buttonVariants({ variant: "outline" }),
824
- "size-7 bg-transparent p-0 opacity-50 hover:opacity-100",
825
- defaultClassNames.button_previous
826
- ),
827
- button_next: cn(
828
- buttonVariants({ variant: "outline" }),
829
- "size-7 bg-transparent p-0 opacity-50 hover:opacity-100",
830
- defaultClassNames.button_next
831
- ),
832
- month_caption: cn(
833
- "flex h-7 w-full items-center justify-center px-7",
834
- defaultClassNames.month_caption
835
- ),
836
- caption_label: cn("text-sm font-medium", defaultClassNames.caption_label),
837
- month_grid: cn("w-full border-collapse", defaultClassNames.month_grid),
838
- weekdays: cn("flex", defaultClassNames.weekdays),
839
- weekday: cn(
840
- "w-8 rounded-md text-[0.8rem] font-normal text-muted-foreground",
841
- defaultClassNames.weekday
842
- ),
843
- week: cn("mt-2 flex w-full", defaultClassNames.week),
844
- day: cn("h-8 w-8 p-0 text-center text-sm", defaultClassNames.day),
845
- day_button: cn(
846
- "size-8 cursor-pointer rounded-md p-0 font-normal hover:bg-accent hover:text-accent-foreground aria-selected:opacity-100",
1080
+ "data-slot": "bubble",
1081
+ "data-variant": variant,
1082
+ "data-align": align,
1083
+ className: cn(bubbleVariants({ variant }), className),
1084
+ ...props
1085
+ }
1086
+ );
1087
+ }
1088
+ function BubbleContent({
1089
+ asChild = false,
1090
+ className,
1091
+ children,
1092
+ ...props
1093
+ }) {
1094
+ const cls = cn(
1095
+ "w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50",
1096
+ className
1097
+ );
1098
+ if (asChild && React3.isValidElement(children)) {
1099
+ return React3.cloneElement(children, {
1100
+ "data-slot": "bubble-content",
1101
+ className: cn(cls, children.props.className),
1102
+ ...props
1103
+ });
1104
+ }
1105
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1106
+ "div",
1107
+ {
1108
+ "data-slot": "bubble-content",
1109
+ className: cls,
1110
+ ...props,
1111
+ children
1112
+ }
1113
+ );
1114
+ }
1115
+ var bubbleReactionsVariants = (0, import_class_variance_authority5.cva)(
1116
+ "absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0",
1117
+ {
1118
+ variants: {
1119
+ side: {
1120
+ top: "top-0 -translate-y-3/4",
1121
+ bottom: "bottom-0 translate-y-3/4"
1122
+ },
1123
+ align: {
1124
+ start: "left-3",
1125
+ end: "right-3"
1126
+ }
1127
+ },
1128
+ defaultVariants: {
1129
+ side: "bottom",
1130
+ align: "end"
1131
+ }
1132
+ }
1133
+ );
1134
+ function BubbleReactions({
1135
+ side = "bottom",
1136
+ align = "end",
1137
+ className,
1138
+ ...props
1139
+ }) {
1140
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1141
+ "div",
1142
+ {
1143
+ "data-slot": "bubble-reactions",
1144
+ "data-align": align,
1145
+ "data-side": side,
1146
+ className: cn(bubbleReactionsVariants({ side, align }), className),
1147
+ ...props
1148
+ }
1149
+ );
1150
+ }
1151
+
1152
+ // src/ui/calendar.tsx
1153
+ var import_lucide_react3 = require("lucide-react");
1154
+ var import_react_day_picker = require("react-day-picker");
1155
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1156
+ function Calendar({
1157
+ className,
1158
+ classNames,
1159
+ showOutsideDays = true,
1160
+ ...props
1161
+ }) {
1162
+ const defaultClassNames = (0, import_react_day_picker.getDefaultClassNames)();
1163
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1164
+ import_react_day_picker.DayPicker,
1165
+ {
1166
+ showOutsideDays,
1167
+ className: cn("bg-card p-3", className),
1168
+ classNames: {
1169
+ root: cn("w-fit", defaultClassNames.root),
1170
+ months: cn("relative flex flex-col gap-4 md:flex-row", defaultClassNames.months),
1171
+ month: cn("flex w-full flex-col gap-4", defaultClassNames.month),
1172
+ nav: cn(
1173
+ "absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",
1174
+ defaultClassNames.nav
1175
+ ),
1176
+ button_previous: cn(
1177
+ buttonVariants({ variant: "outline" }),
1178
+ "size-7 bg-transparent p-0 opacity-50 hover:opacity-100",
1179
+ defaultClassNames.button_previous
1180
+ ),
1181
+ button_next: cn(
1182
+ buttonVariants({ variant: "outline" }),
1183
+ "size-7 bg-transparent p-0 opacity-50 hover:opacity-100",
1184
+ defaultClassNames.button_next
1185
+ ),
1186
+ month_caption: cn(
1187
+ "flex h-7 w-full items-center justify-center px-7",
1188
+ defaultClassNames.month_caption
1189
+ ),
1190
+ caption_label: cn("text-sm font-medium", defaultClassNames.caption_label),
1191
+ month_grid: cn("w-full border-collapse", defaultClassNames.month_grid),
1192
+ weekdays: cn("flex", defaultClassNames.weekdays),
1193
+ weekday: cn(
1194
+ "w-8 rounded-md text-[0.8rem] font-normal text-muted-foreground",
1195
+ defaultClassNames.weekday
1196
+ ),
1197
+ week: cn("mt-2 flex w-full", defaultClassNames.week),
1198
+ day: cn("h-8 w-8 p-0 text-center text-sm", defaultClassNames.day),
1199
+ day_button: cn(
1200
+ "size-8 cursor-pointer rounded-md p-0 font-normal hover:bg-(--calendar-day-hover-background) hover:text-(--calendar-day-hover-foreground) aria-selected:opacity-100",
847
1201
  defaultClassNames.day_button
848
1202
  ),
849
1203
  selected: cn(
850
- "[&>button]:bg-primary [&>button]:text-primary-foreground [&>button]:hover:bg-primary",
1204
+ "[&>button]:bg-(--calendar-selected-background) [&>button]:text-(--calendar-selected-foreground) [&>button]:hover:bg-(--calendar-selected-background) [&>button]:hover:text-(--calendar-selected-foreground)",
851
1205
  defaultClassNames.selected
852
1206
  ),
853
1207
  today: cn(
854
- "[&>button]:bg-accent [&>button]:text-accent-foreground",
1208
+ "[&>button]:bg-(--calendar-today-background) [&>button]:text-(--calendar-today-foreground) [&>button]:hover:bg-(--calendar-today-background) [&>button]:hover:text-(--calendar-today-foreground) [&>button]:border [&>button]:border-(--calendar-today-border)",
855
1209
  defaultClassNames.today
856
1210
  ),
857
1211
  outside: cn(
@@ -863,7 +1217,7 @@ function Calendar({
863
1217
  ...classNames
864
1218
  },
865
1219
  components: {
866
- Chevron: ({ orientation }) => orientation === "left" ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react3.ChevronLeftIcon, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react3.ChevronRightIcon, { className: "size-4" })
1220
+ Chevron: ({ orientation }) => orientation === "left" ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react3.ChevronLeftIcon, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react3.ChevronRightIcon, { className: "size-4" })
867
1221
  },
868
1222
  ...props
869
1223
  }
@@ -872,13 +1226,13 @@ function Calendar({
872
1226
 
873
1227
  // src/ui/chart.tsx
874
1228
  var import_recharts = require("recharts");
875
- var import_jsx_runtime11 = require("react/jsx-runtime");
1229
+ var import_jsx_runtime13 = require("react/jsx-runtime");
876
1230
  var CHART_TOKEN_COLORS = [
877
- "hsl(var(--chart-1))",
878
- "hsl(var(--chart-2))",
879
- "hsl(var(--chart-3))",
880
- "hsl(var(--chart-4))",
881
- "hsl(var(--chart-5))"
1231
+ "var(--chart-1)",
1232
+ "var(--chart-2)",
1233
+ "var(--chart-3)",
1234
+ "var(--chart-4)",
1235
+ "var(--chart-5)"
882
1236
  ];
883
1237
  function chartColor(index, colors) {
884
1238
  if (colors && colors.length > 0) {
@@ -891,13 +1245,13 @@ function ChartContainer({
891
1245
  children,
892
1246
  ...props
893
1247
  }) {
894
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1248
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
895
1249
  "div",
896
1250
  {
897
1251
  "data-slot": "chart-container",
898
1252
  className: cn("h-64 w-full", className),
899
1253
  ...props,
900
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children })
1254
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children })
901
1255
  }
902
1256
  );
903
1257
  }
@@ -905,11 +1259,11 @@ function ChartContainer({
905
1259
  // src/ui/carousel.tsx
906
1260
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
907
1261
  var import_lucide_react4 = require("lucide-react");
908
- var React2 = __toESM(require("react"), 1);
909
- var import_jsx_runtime12 = require("react/jsx-runtime");
910
- var CarouselContext = React2.createContext(null);
1262
+ var React4 = __toESM(require("react"), 1);
1263
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1264
+ var CarouselContext = React4.createContext(null);
911
1265
  function useCarousel() {
912
- const context = React2.useContext(CarouselContext);
1266
+ const context = React4.useContext(CarouselContext);
913
1267
  if (!context) {
914
1268
  throw new Error("useCarousel must be used within a <Carousel />");
915
1269
  }
@@ -928,16 +1282,16 @@ function Carousel({
928
1282
  { ...opts, axis: orientation === "horizontal" ? "x" : "y" },
929
1283
  plugins
930
1284
  );
931
- const [canScrollPrev, setCanScrollPrev] = React2.useState(false);
932
- const [canScrollNext, setCanScrollNext] = React2.useState(false);
933
- const onSelect = React2.useCallback((carouselApi) => {
1285
+ const [canScrollPrev, setCanScrollPrev] = React4.useState(false);
1286
+ const [canScrollNext, setCanScrollNext] = React4.useState(false);
1287
+ const onSelect = React4.useCallback((carouselApi) => {
934
1288
  if (!carouselApi) return;
935
1289
  setCanScrollPrev(carouselApi.canScrollPrev());
936
1290
  setCanScrollNext(carouselApi.canScrollNext());
937
1291
  }, []);
938
- const scrollPrev = React2.useCallback(() => api?.scrollPrev(), [api]);
939
- const scrollNext = React2.useCallback(() => api?.scrollNext(), [api]);
940
- const handleKeyDown = React2.useCallback(
1292
+ const scrollPrev = React4.useCallback(() => api?.scrollPrev(), [api]);
1293
+ const scrollNext = React4.useCallback(() => api?.scrollNext(), [api]);
1294
+ const handleKeyDown = React4.useCallback(
941
1295
  (event) => {
942
1296
  if (event.key === "ArrowLeft") {
943
1297
  event.preventDefault();
@@ -949,10 +1303,10 @@ function Carousel({
949
1303
  },
950
1304
  [scrollPrev, scrollNext]
951
1305
  );
952
- React2.useEffect(() => {
1306
+ React4.useEffect(() => {
953
1307
  if (api && setApi) setApi(api);
954
1308
  }, [api, setApi]);
955
- React2.useEffect(() => {
1309
+ React4.useEffect(() => {
956
1310
  if (!api) return;
957
1311
  onSelect(api);
958
1312
  api.on("reInit", onSelect);
@@ -961,7 +1315,7 @@ function Carousel({
961
1315
  api.off("select", onSelect);
962
1316
  };
963
1317
  }, [api, onSelect]);
964
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1318
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
965
1319
  CarouselContext.Provider,
966
1320
  {
967
1321
  value: {
@@ -974,7 +1328,7 @@ function Carousel({
974
1328
  canScrollPrev,
975
1329
  canScrollNext
976
1330
  },
977
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1331
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
978
1332
  "div",
979
1333
  {
980
1334
  onKeyDownCapture: handleKeyDown,
@@ -991,7 +1345,7 @@ function Carousel({
991
1345
  }
992
1346
  function CarouselContent({ className, ...props }) {
993
1347
  const { carouselRef, orientation } = useCarousel();
994
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { ref: carouselRef, className: "overflow-hidden", "data-slot": "carousel-viewport", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1348
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { ref: carouselRef, className: "overflow-hidden", "data-slot": "carousel-viewport", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
995
1349
  "div",
996
1350
  {
997
1351
  className: cn(
@@ -1005,7 +1359,7 @@ function CarouselContent({ className, ...props }) {
1005
1359
  }
1006
1360
  function CarouselItem({ className, ...props }) {
1007
1361
  const { orientation } = useCarousel();
1008
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1362
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1009
1363
  "div",
1010
1364
  {
1011
1365
  role: "group",
@@ -1027,7 +1381,7 @@ function CarouselPrevious({
1027
1381
  ...props
1028
1382
  }) {
1029
1383
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
1030
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1384
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1031
1385
  Button,
1032
1386
  {
1033
1387
  "data-slot": "carousel-previous",
@@ -1042,8 +1396,8 @@ function CarouselPrevious({
1042
1396
  onClick: scrollPrev,
1043
1397
  ...props,
1044
1398
  children: [
1045
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react4.ChevronLeftIcon, {}),
1046
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Previous slide" })
1399
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react4.ChevronLeftIcon, {}),
1400
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "sr-only", children: "Previous slide" })
1047
1401
  ]
1048
1402
  }
1049
1403
  );
@@ -1055,7 +1409,7 @@ function CarouselNext({
1055
1409
  ...props
1056
1410
  }) {
1057
1411
  const { orientation, scrollNext, canScrollNext } = useCarousel();
1058
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1412
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1059
1413
  Button,
1060
1414
  {
1061
1415
  "data-slot": "carousel-next",
@@ -1070,8 +1424,8 @@ function CarouselNext({
1070
1424
  onClick: scrollNext,
1071
1425
  ...props,
1072
1426
  children: [
1073
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react4.ChevronRightIcon, {}),
1074
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "sr-only", children: "Next slide" })
1427
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react4.ChevronRightIcon, {}),
1428
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "sr-only", children: "Next slide" })
1075
1429
  ]
1076
1430
  }
1077
1431
  );
@@ -1080,9 +1434,9 @@ function CarouselNext({
1080
1434
  // src/ui/checkbox.tsx
1081
1435
  var import_checkbox = require("@base-ui/react/checkbox");
1082
1436
  var import_lucide_react5 = require("lucide-react");
1083
- var import_jsx_runtime13 = require("react/jsx-runtime");
1437
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1084
1438
  function Checkbox({ className, ...props }) {
1085
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1439
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1086
1440
  import_checkbox.Checkbox.Root,
1087
1441
  {
1088
1442
  "data-slot": "checkbox",
@@ -1091,12 +1445,12 @@ function Checkbox({ className, ...props }) {
1091
1445
  className
1092
1446
  ),
1093
1447
  ...props,
1094
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1448
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1095
1449
  import_checkbox.Checkbox.Indicator,
1096
1450
  {
1097
1451
  "data-slot": "checkbox-indicator",
1098
1452
  className: "flex items-center justify-center text-current",
1099
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react5.CheckIcon, { className: "size-3.5" })
1453
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react5.CheckIcon, { className: "size-3.5" })
1100
1454
  }
1101
1455
  )
1102
1456
  }
@@ -1106,18 +1460,18 @@ function Checkbox({ className, ...props }) {
1106
1460
  // src/ui/collapsible.tsx
1107
1461
  var import_collapsible = require("@base-ui/react/collapsible");
1108
1462
  var import_lucide_react6 = require("lucide-react");
1109
- var import_jsx_runtime14 = require("react/jsx-runtime");
1463
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1110
1464
  function Collapsible({
1111
1465
  ...props
1112
1466
  }) {
1113
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_collapsible.Collapsible.Root, { "data-slot": "collapsible", ...props });
1467
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_collapsible.Collapsible.Root, { "data-slot": "collapsible", ...props });
1114
1468
  }
1115
1469
  function CollapsibleTrigger({
1116
1470
  className,
1117
1471
  children,
1118
1472
  ...props
1119
1473
  }) {
1120
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1474
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1121
1475
  import_collapsible.Collapsible.Trigger,
1122
1476
  {
1123
1477
  "data-slot": "collapsible-trigger",
@@ -1128,7 +1482,7 @@ function CollapsibleTrigger({
1128
1482
  ...props,
1129
1483
  children: [
1130
1484
  children,
1131
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
1485
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react6.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
1132
1486
  ]
1133
1487
  }
1134
1488
  );
@@ -1137,7 +1491,7 @@ function CollapsibleContent({
1137
1491
  className,
1138
1492
  ...props
1139
1493
  }) {
1140
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1494
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1141
1495
  import_collapsible.Collapsible.Panel,
1142
1496
  {
1143
1497
  "data-slot": "collapsible-content",
@@ -1155,16 +1509,16 @@ var import_lucide_react7 = require("lucide-react");
1155
1509
 
1156
1510
  // src/ui/popover.tsx
1157
1511
  var import_popover = require("@base-ui/react/popover");
1158
- var import_jsx_runtime15 = require("react/jsx-runtime");
1512
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1159
1513
  function Popover({
1160
1514
  ...props
1161
1515
  }) {
1162
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_popover.Popover.Root, { "data-slot": "popover", ...props });
1516
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_popover.Popover.Root, { "data-slot": "popover", ...props });
1163
1517
  }
1164
1518
  function PopoverTrigger({
1165
1519
  ...props
1166
1520
  }) {
1167
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_popover.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
1521
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_popover.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
1168
1522
  }
1169
1523
  function PopoverContent({
1170
1524
  className,
@@ -1174,7 +1528,7 @@ function PopoverContent({
1174
1528
  anchor,
1175
1529
  ...props
1176
1530
  }) {
1177
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1531
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1178
1532
  import_popover.Popover.Positioner,
1179
1533
  {
1180
1534
  align,
@@ -1182,12 +1536,12 @@ function PopoverContent({
1182
1536
  sideOffset,
1183
1537
  anchor,
1184
1538
  className: "isolate z-50",
1185
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1539
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1186
1540
  import_popover.Popover.Popup,
1187
1541
  {
1188
1542
  "data-slot": "popover-content",
1189
1543
  className: cn(
1190
- "z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1544
+ "z-50 w-72 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md shadow-(color:--shadow-color) outline-none duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1191
1545
  className
1192
1546
  ),
1193
1547
  ...props
@@ -1198,20 +1552,20 @@ function PopoverContent({
1198
1552
  }
1199
1553
 
1200
1554
  // src/ui/combobox.tsx
1201
- var import_jsx_runtime16 = require("react/jsx-runtime");
1555
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1202
1556
  function Combobox({
1203
1557
  open,
1204
1558
  onOpenChange,
1205
1559
  children
1206
1560
  }) {
1207
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Popover, { open, onOpenChange: (next) => onOpenChange?.(next), children });
1561
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Popover, { open, onOpenChange: (next) => onOpenChange?.(next), children });
1208
1562
  }
1209
1563
  function ComboboxTrigger({
1210
1564
  className,
1211
1565
  children,
1212
1566
  ...props
1213
1567
  }) {
1214
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1568
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1215
1569
  PopoverTrigger,
1216
1570
  {
1217
1571
  "data-slot": "combobox-trigger",
@@ -1221,8 +1575,8 @@ function ComboboxTrigger({
1221
1575
  ),
1222
1576
  ...props,
1223
1577
  children: [
1224
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children }),
1225
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react7.ChevronsUpDownIcon, { className: "size-4 shrink-0 opacity-50" })
1578
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children }),
1579
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react7.ChevronsUpDownIcon, { className: "size-4 shrink-0 opacity-50" })
1226
1580
  ]
1227
1581
  }
1228
1582
  );
@@ -1232,7 +1586,7 @@ function ComboboxContent({
1232
1586
  children,
1233
1587
  ...props
1234
1588
  }) {
1235
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1589
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1236
1590
  PopoverContent,
1237
1591
  {
1238
1592
  "data-slot": "combobox-content",
@@ -1246,12 +1600,12 @@ function ComboboxContent({
1246
1600
  // src/ui/command.tsx
1247
1601
  var import_cmdk = require("cmdk");
1248
1602
  var import_lucide_react8 = require("lucide-react");
1249
- var import_jsx_runtime17 = require("react/jsx-runtime");
1603
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1250
1604
  function Command({
1251
1605
  className,
1252
1606
  ...props
1253
1607
  }) {
1254
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1608
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1255
1609
  import_cmdk.Command,
1256
1610
  {
1257
1611
  "data-slot": "command",
@@ -1267,14 +1621,14 @@ function CommandInput({
1267
1621
  className,
1268
1622
  ...props
1269
1623
  }) {
1270
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1624
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1271
1625
  "div",
1272
1626
  {
1273
1627
  "data-slot": "command-input-wrapper",
1274
1628
  className: "flex items-center gap-2 border-b border-border px-3",
1275
1629
  children: [
1276
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react8.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1277
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1630
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react8.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1631
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1278
1632
  import_cmdk.Command.Input,
1279
1633
  {
1280
1634
  "data-slot": "command-input",
@@ -1293,7 +1647,7 @@ function CommandList({
1293
1647
  className,
1294
1648
  ...props
1295
1649
  }) {
1296
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1650
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1297
1651
  import_cmdk.Command.List,
1298
1652
  {
1299
1653
  "data-slot": "command-list",
@@ -1308,7 +1662,7 @@ function CommandList({
1308
1662
  function CommandEmpty({
1309
1663
  ...props
1310
1664
  }) {
1311
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1665
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1312
1666
  import_cmdk.Command.Empty,
1313
1667
  {
1314
1668
  "data-slot": "command-empty",
@@ -1321,7 +1675,7 @@ function CommandGroup({
1321
1675
  className,
1322
1676
  ...props
1323
1677
  }) {
1324
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1678
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1325
1679
  import_cmdk.Command.Group,
1326
1680
  {
1327
1681
  "data-slot": "command-group",
@@ -1337,12 +1691,12 @@ function CommandItem({
1337
1691
  className,
1338
1692
  ...props
1339
1693
  }) {
1340
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1694
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1341
1695
  import_cmdk.Command.Item,
1342
1696
  {
1343
1697
  "data-slot": "command-item",
1344
1698
  className: cn(
1345
- "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1699
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-[selected=true]:bg-(--menu-active-background) data-[selected=true]:text-(--menu-active-foreground) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1346
1700
  className
1347
1701
  ),
1348
1702
  ...props
@@ -1352,27 +1706,27 @@ function CommandItem({
1352
1706
 
1353
1707
  // src/ui/context-menu.tsx
1354
1708
  var import_context_menu = require("@base-ui/react/context-menu");
1355
- var import_jsx_runtime18 = require("react/jsx-runtime");
1709
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1356
1710
  function ContextMenu({
1357
1711
  ...props
1358
1712
  }) {
1359
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_context_menu.ContextMenu.Root, { "data-slot": "context-menu", ...props });
1713
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_context_menu.ContextMenu.Root, { "data-slot": "context-menu", ...props });
1360
1714
  }
1361
1715
  function ContextMenuTrigger({
1362
1716
  ...props
1363
1717
  }) {
1364
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_context_menu.ContextMenu.Trigger, { "data-slot": "context-menu-trigger", ...props });
1718
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_context_menu.ContextMenu.Trigger, { "data-slot": "context-menu-trigger", ...props });
1365
1719
  }
1366
1720
  function ContextMenuContent({
1367
1721
  className,
1368
1722
  ...props
1369
1723
  }) {
1370
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_context_menu.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_context_menu.ContextMenu.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1724
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_context_menu.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_context_menu.ContextMenu.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1371
1725
  import_context_menu.ContextMenu.Popup,
1372
1726
  {
1373
1727
  "data-slot": "context-menu-content",
1374
1728
  className: cn(
1375
- "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1729
+ "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1376
1730
  className
1377
1731
  ),
1378
1732
  ...props
@@ -1384,13 +1738,13 @@ function ContextMenuItem({
1384
1738
  variant = "default",
1385
1739
  ...props
1386
1740
  }) {
1387
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1741
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1388
1742
  import_context_menu.ContextMenu.Item,
1389
1743
  {
1390
1744
  "data-slot": "context-menu-item",
1391
1745
  "data-variant": variant,
1392
1746
  className: cn(
1393
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1747
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1394
1748
  className
1395
1749
  ),
1396
1750
  ...props
@@ -1401,7 +1755,7 @@ function ContextMenuSeparator({
1401
1755
  className,
1402
1756
  ...props
1403
1757
  }) {
1404
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1758
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1405
1759
  import_context_menu.ContextMenu.Separator,
1406
1760
  {
1407
1761
  "data-slot": "context-menu-separator",
@@ -1413,36 +1767,36 @@ function ContextMenuSeparator({
1413
1767
 
1414
1768
  // src/ui/drawer.tsx
1415
1769
  var import_vaul = require("vaul");
1416
- var import_jsx_runtime19 = require("react/jsx-runtime");
1770
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1417
1771
  function Drawer({
1418
1772
  ...props
1419
1773
  }) {
1420
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1774
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1421
1775
  }
1422
1776
  function DrawerTrigger({
1423
1777
  ...props
1424
1778
  }) {
1425
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1779
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1426
1780
  }
1427
1781
  function DrawerPortal({
1428
1782
  ...props
1429
1783
  }) {
1430
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1784
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1431
1785
  }
1432
1786
  function DrawerClose({
1433
1787
  ...props
1434
1788
  }) {
1435
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1789
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1436
1790
  }
1437
1791
  function DrawerOverlay({
1438
1792
  className,
1439
1793
  ...props
1440
1794
  }) {
1441
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1795
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1442
1796
  import_vaul.Drawer.Overlay,
1443
1797
  {
1444
1798
  "data-slot": "drawer-overlay",
1445
- className: cn("fixed inset-0 z-50 bg-black/50", className),
1799
+ className: cn("fixed inset-0 z-50 bg-(--overlay-background)", className),
1446
1800
  ...props
1447
1801
  }
1448
1802
  );
@@ -1452,14 +1806,14 @@ function DrawerContent({
1452
1806
  children,
1453
1807
  ...props
1454
1808
  }) {
1455
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
1456
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(DrawerOverlay, {}),
1457
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1809
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
1810
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DrawerOverlay, {}),
1811
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1458
1812
  import_vaul.Drawer.Content,
1459
1813
  {
1460
1814
  "data-slot": "drawer-content",
1461
1815
  className: cn(
1462
- "group/drawer-content fixed z-50 flex h-auto flex-col border-border bg-background",
1816
+ "group/drawer-content fixed z-50 flex h-auto flex-col border-border bg-popover",
1463
1817
  "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
1464
1818
  "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
1465
1819
  "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
@@ -1468,7 +1822,7 @@ function DrawerContent({
1468
1822
  ),
1469
1823
  ...props,
1470
1824
  children: [
1471
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1825
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1472
1826
  children
1473
1827
  ]
1474
1828
  }
@@ -1476,7 +1830,7 @@ function DrawerContent({
1476
1830
  ] });
1477
1831
  }
1478
1832
  function DrawerHeader({ className, ...props }) {
1479
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1833
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1480
1834
  "div",
1481
1835
  {
1482
1836
  "data-slot": "drawer-header",
@@ -1486,7 +1840,7 @@ function DrawerHeader({ className, ...props }) {
1486
1840
  );
1487
1841
  }
1488
1842
  function DrawerFooter({ className, ...props }) {
1489
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1843
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1490
1844
  "div",
1491
1845
  {
1492
1846
  "data-slot": "drawer-footer",
@@ -1499,7 +1853,7 @@ function DrawerTitle({
1499
1853
  className,
1500
1854
  ...props
1501
1855
  }) {
1502
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1856
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1503
1857
  import_vaul.Drawer.Title,
1504
1858
  {
1505
1859
  "data-slot": "drawer-title",
@@ -1512,7 +1866,7 @@ function DrawerDescription({
1512
1866
  className,
1513
1867
  ...props
1514
1868
  }) {
1515
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1869
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1516
1870
  import_vaul.Drawer.Description,
1517
1871
  {
1518
1872
  "data-slot": "drawer-description",
@@ -1525,16 +1879,16 @@ function DrawerDescription({
1525
1879
  // src/ui/dropdown-menu.tsx
1526
1880
  var import_menu = require("@base-ui/react/menu");
1527
1881
  var import_lucide_react9 = require("lucide-react");
1528
- var import_jsx_runtime20 = require("react/jsx-runtime");
1882
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1529
1883
  function DropdownMenu({
1530
1884
  ...props
1531
1885
  }) {
1532
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_menu.Menu.Root, { "data-slot": "dropdown-menu", ...props });
1886
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu.Menu.Root, { "data-slot": "dropdown-menu", ...props });
1533
1887
  }
1534
1888
  function DropdownMenuTrigger({
1535
1889
  ...props
1536
1890
  }) {
1537
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_menu.Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
1891
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu.Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
1538
1892
  }
1539
1893
  function DropdownMenuContent({
1540
1894
  className,
@@ -1543,19 +1897,19 @@ function DropdownMenuContent({
1543
1897
  sideOffset = 4,
1544
1898
  ...props
1545
1899
  }) {
1546
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1900
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1547
1901
  import_menu.Menu.Positioner,
1548
1902
  {
1549
1903
  align,
1550
1904
  side,
1551
1905
  sideOffset,
1552
1906
  className: "isolate z-50",
1553
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1907
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1554
1908
  import_menu.Menu.Popup,
1555
1909
  {
1556
1910
  "data-slot": "dropdown-menu-content",
1557
1911
  className: cn(
1558
- "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1912
+ "z-50 max-h-(--available-height) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1559
1913
  className
1560
1914
  ),
1561
1915
  ...props
@@ -1569,13 +1923,13 @@ function DropdownMenuItem({
1569
1923
  variant = "default",
1570
1924
  ...props
1571
1925
  }) {
1572
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1926
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1573
1927
  import_menu.Menu.Item,
1574
1928
  {
1575
1929
  "data-slot": "dropdown-menu-item",
1576
1930
  "data-variant": variant,
1577
1931
  className: cn(
1578
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1932
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1579
1933
  className
1580
1934
  ),
1581
1935
  ...props
@@ -1586,7 +1940,7 @@ function DropdownMenuSeparator({
1586
1940
  className,
1587
1941
  ...props
1588
1942
  }) {
1589
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1943
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1590
1944
  import_menu.Menu.Separator,
1591
1945
  {
1592
1946
  "data-slot": "dropdown-menu-separator",
@@ -1598,25 +1952,25 @@ function DropdownMenuSeparator({
1598
1952
  function DropdownMenuSub({
1599
1953
  ...props
1600
1954
  }) {
1601
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_menu.Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
1955
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu.Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
1602
1956
  }
1603
1957
  function DropdownMenuSubTrigger({
1604
1958
  className,
1605
1959
  children,
1606
1960
  ...props
1607
1961
  }) {
1608
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1962
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1609
1963
  import_menu.Menu.SubmenuTrigger,
1610
1964
  {
1611
1965
  "data-slot": "dropdown-menu-sub-trigger",
1612
1966
  className: cn(
1613
- "flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1967
+ "flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-open:bg-(--menu-active-background) data-open:text-(--menu-active-foreground) [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1614
1968
  className
1615
1969
  ),
1616
1970
  ...props,
1617
1971
  children: [
1618
1972
  children,
1619
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react9.ChevronRightIcon, { className: "ml-auto" })
1973
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react9.ChevronRightIcon, { className: "ml-auto" })
1620
1974
  ]
1621
1975
  }
1622
1976
  );
@@ -1626,12 +1980,12 @@ function DropdownMenuSubContent({
1626
1980
  sideOffset = 2,
1627
1981
  ...props
1628
1982
  }) {
1629
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_menu.Menu.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1983
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu.Menu.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1630
1984
  import_menu.Menu.Popup,
1631
1985
  {
1632
1986
  "data-slot": "dropdown-menu-sub-content",
1633
1987
  className: cn(
1634
- "z-50 min-w-32 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1988
+ "z-50 min-w-32 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1635
1989
  className
1636
1990
  ),
1637
1991
  ...props
@@ -1641,16 +1995,16 @@ function DropdownMenuSubContent({
1641
1995
 
1642
1996
  // src/ui/hover-card.tsx
1643
1997
  var import_preview_card = require("@base-ui/react/preview-card");
1644
- var import_jsx_runtime21 = require("react/jsx-runtime");
1998
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1645
1999
  function HoverCard({
1646
2000
  ...props
1647
2001
  }) {
1648
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_preview_card.PreviewCard.Root, { "data-slot": "hover-card", ...props });
2002
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_preview_card.PreviewCard.Root, { "data-slot": "hover-card", ...props });
1649
2003
  }
1650
2004
  function HoverCardTrigger({
1651
2005
  ...props
1652
2006
  }) {
1653
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_preview_card.PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
2007
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_preview_card.PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
1654
2008
  }
1655
2009
  function HoverCardContent({
1656
2010
  className,
@@ -1659,19 +2013,19 @@ function HoverCardContent({
1659
2013
  sideOffset = 4,
1660
2014
  ...props
1661
2015
  }) {
1662
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_preview_card.PreviewCard.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2016
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_preview_card.PreviewCard.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1663
2017
  import_preview_card.PreviewCard.Positioner,
1664
2018
  {
1665
2019
  align,
1666
2020
  side,
1667
2021
  sideOffset,
1668
2022
  className: "isolate z-50",
1669
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2023
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1670
2024
  import_preview_card.PreviewCard.Popup,
1671
2025
  {
1672
2026
  "data-slot": "hover-card-content",
1673
2027
  className: cn(
1674
- "z-50 w-64 origin-(--transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-hidden duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2028
+ "z-50 w-64 origin-(--transform-origin) rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md shadow-(color:--shadow-color) outline-hidden duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1675
2029
  className
1676
2030
  ),
1677
2031
  ...props
@@ -1684,17 +2038,17 @@ function HoverCardContent({
1684
2038
  // src/ui/menubar.tsx
1685
2039
  var import_menu2 = require("@base-ui/react/menu");
1686
2040
  var import_menubar = require("@base-ui/react/menubar");
1687
- var import_jsx_runtime22 = require("react/jsx-runtime");
2041
+ var import_jsx_runtime24 = require("react/jsx-runtime");
1688
2042
  function Menubar({
1689
2043
  className,
1690
2044
  ...props
1691
2045
  }) {
1692
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2046
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1693
2047
  import_menubar.Menubar,
1694
2048
  {
1695
2049
  "data-slot": "menubar",
1696
2050
  className: cn(
1697
- "flex h-9 items-center gap-1 rounded-md border border-border bg-background p-1 shadow-xs",
2051
+ "flex h-9 items-center gap-1 rounded-md border border-border bg-card p-1 shadow-xs",
1698
2052
  className
1699
2053
  ),
1700
2054
  ...props
@@ -1704,18 +2058,18 @@ function Menubar({
1704
2058
  function MenubarMenu({
1705
2059
  ...props
1706
2060
  }) {
1707
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
2061
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
1708
2062
  }
1709
2063
  function MenubarTrigger({
1710
2064
  className,
1711
2065
  ...props
1712
2066
  }) {
1713
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2067
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1714
2068
  import_menu2.Menu.Trigger,
1715
2069
  {
1716
2070
  "data-slot": "menubar-trigger",
1717
2071
  className: cn(
1718
- "flex cursor-pointer items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground",
2072
+ "flex cursor-pointer items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-open:bg-(--menu-active-background) data-open:text-(--menu-active-foreground)",
1719
2073
  className
1720
2074
  ),
1721
2075
  ...props
@@ -1729,19 +2083,19 @@ function MenubarContent({
1729
2083
  sideOffset = 8,
1730
2084
  ...props
1731
2085
  }) {
1732
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2086
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1733
2087
  import_menu2.Menu.Positioner,
1734
2088
  {
1735
2089
  align,
1736
2090
  side,
1737
2091
  sideOffset,
1738
2092
  className: "isolate z-50",
1739
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2093
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1740
2094
  import_menu2.Menu.Popup,
1741
2095
  {
1742
2096
  "data-slot": "menubar-content",
1743
2097
  className: cn(
1744
- "z-50 min-w-36 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2098
+ "z-50 min-w-36 origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1745
2099
  className
1746
2100
  ),
1747
2101
  ...props
@@ -1755,13 +2109,13 @@ function MenubarItem({
1755
2109
  variant = "default",
1756
2110
  ...props
1757
2111
  }) {
1758
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2112
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1759
2113
  import_menu2.Menu.Item,
1760
2114
  {
1761
2115
  "data-slot": "menubar-item",
1762
2116
  "data-variant": variant,
1763
2117
  className: cn(
1764
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2118
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1765
2119
  className
1766
2120
  ),
1767
2121
  ...props
@@ -1772,7 +2126,7 @@ function MenubarSeparator({
1772
2126
  className,
1773
2127
  ...props
1774
2128
  }) {
1775
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2129
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1776
2130
  import_menu2.Menu.Separator,
1777
2131
  {
1778
2132
  "data-slot": "menubar-separator",
@@ -1785,14 +2139,14 @@ function MenubarSeparator({
1785
2139
  // src/ui/navigation-menu.tsx
1786
2140
  var import_navigation_menu = require("@base-ui/react/navigation-menu");
1787
2141
  var import_lucide_react10 = require("lucide-react");
1788
- var import_class_variance_authority4 = require("class-variance-authority");
1789
- var import_jsx_runtime23 = require("react/jsx-runtime");
2142
+ var import_class_variance_authority6 = require("class-variance-authority");
2143
+ var import_jsx_runtime25 = require("react/jsx-runtime");
1790
2144
  function NavigationMenu({
1791
2145
  className,
1792
2146
  children,
1793
2147
  ...props
1794
2148
  }) {
1795
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2149
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
1796
2150
  import_navigation_menu.NavigationMenu.Root,
1797
2151
  {
1798
2152
  "data-slot": "navigation-menu",
@@ -1800,7 +2154,7 @@ function NavigationMenu({
1800
2154
  ...props,
1801
2155
  children: [
1802
2156
  children,
1803
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(NavigationMenuViewport, {})
2157
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(NavigationMenuViewport, {})
1804
2158
  ]
1805
2159
  }
1806
2160
  );
@@ -1809,7 +2163,7 @@ function NavigationMenuList({
1809
2163
  className,
1810
2164
  ...props
1811
2165
  }) {
1812
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2166
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1813
2167
  import_navigation_menu.NavigationMenu.List,
1814
2168
  {
1815
2169
  "data-slot": "navigation-menu-list",
@@ -1822,7 +2176,7 @@ function NavigationMenuItem({
1822
2176
  className,
1823
2177
  ...props
1824
2178
  }) {
1825
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2179
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1826
2180
  import_navigation_menu.NavigationMenu.Item,
1827
2181
  {
1828
2182
  "data-slot": "navigation-menu-item",
@@ -1831,15 +2185,15 @@ function NavigationMenuItem({
1831
2185
  }
1832
2186
  );
1833
2187
  }
1834
- var navigationMenuTriggerStyle = (0, import_class_variance_authority4.cva)(
1835
- "group/navigation-menu-trigger 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-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-open:bg-accent/50 data-open:text-accent-foreground"
2188
+ var navigationMenuTriggerStyle = (0, import_class_variance_authority6.cva)(
2189
+ "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-open:bg-(--menu-active-background)/50 data-open:text-(--menu-active-foreground)"
1836
2190
  );
1837
2191
  function NavigationMenuTrigger({
1838
2192
  className,
1839
2193
  children,
1840
2194
  ...props
1841
2195
  }) {
1842
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2196
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
1843
2197
  import_navigation_menu.NavigationMenu.Trigger,
1844
2198
  {
1845
2199
  "data-slot": "navigation-menu-trigger",
@@ -1847,7 +2201,7 @@ function NavigationMenuTrigger({
1847
2201
  ...props,
1848
2202
  children: [
1849
2203
  children,
1850
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2204
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1851
2205
  import_lucide_react10.ChevronDownIcon,
1852
2206
  {
1853
2207
  className: "relative top-px ml-1 size-3 transition-transform duration-200 group-data-open/navigation-menu-trigger:rotate-180",
@@ -1862,7 +2216,7 @@ function NavigationMenuContent({
1862
2216
  className,
1863
2217
  ...props
1864
2218
  }) {
1865
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2219
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1866
2220
  import_navigation_menu.NavigationMenu.Content,
1867
2221
  {
1868
2222
  "data-slot": "navigation-menu-content",
@@ -1875,21 +2229,21 @@ function NavigationMenuContent({
1875
2229
  );
1876
2230
  }
1877
2231
  function NavigationMenuViewport({ className }) {
1878
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2232
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1879
2233
  import_navigation_menu.NavigationMenu.Positioner,
1880
2234
  {
1881
2235
  side: "bottom",
1882
2236
  align: "start",
1883
2237
  className: "isolate z-50",
1884
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2238
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1885
2239
  import_navigation_menu.NavigationMenu.Popup,
1886
2240
  {
1887
2241
  "data-slot": "navigation-menu-popup",
1888
2242
  className: cn(
1889
- "origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
2243
+ "origin-(--transform-origin) overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
1890
2244
  className
1891
2245
  ),
1892
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
2246
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
1893
2247
  }
1894
2248
  )
1895
2249
  }
@@ -1899,12 +2253,12 @@ function NavigationMenuLink({
1899
2253
  className,
1900
2254
  ...props
1901
2255
  }) {
1902
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2256
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1903
2257
  import_navigation_menu.NavigationMenu.Link,
1904
2258
  {
1905
2259
  "data-slot": "navigation-menu-link",
1906
2260
  className: cn(
1907
- "flex flex-col gap-1 rounded-md p-2 text-sm transition-colors outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 data-active:bg-accent/50 data-active:text-accent-foreground [&_svg:not([class*='size-'])]:size-4",
2261
+ "flex flex-col gap-1 rounded-md p-2 text-sm transition-colors outline-none hover:bg-(--menu-hover-background) hover:text-(--menu-hover-foreground) focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) focus-visible:ring-[3px] focus-visible:ring-ring/50 data-active:bg-(--menu-active-background)/50 data-active:text-(--menu-active-foreground) [&_svg:not([class*='size-'])]:size-4",
1908
2262
  className
1909
2263
  ),
1910
2264
  ...props
@@ -1914,9 +2268,9 @@ function NavigationMenuLink({
1914
2268
 
1915
2269
  // src/ui/pagination.tsx
1916
2270
  var import_lucide_react11 = require("lucide-react");
1917
- var import_jsx_runtime24 = require("react/jsx-runtime");
2271
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1918
2272
  function Pagination({ className, ...props }) {
1919
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2273
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1920
2274
  "nav",
1921
2275
  {
1922
2276
  role: "navigation",
@@ -1928,7 +2282,7 @@ function Pagination({ className, ...props }) {
1928
2282
  );
1929
2283
  }
1930
2284
  function PaginationContent({ className, ...props }) {
1931
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2285
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1932
2286
  "ul",
1933
2287
  {
1934
2288
  "data-slot": "pagination-content",
@@ -1938,7 +2292,7 @@ function PaginationContent({ className, ...props }) {
1938
2292
  );
1939
2293
  }
1940
2294
  function PaginationItem({ ...props }) {
1941
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("li", { "data-slot": "pagination-item", ...props });
2295
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("li", { "data-slot": "pagination-item", ...props });
1942
2296
  }
1943
2297
  function PaginationLink({
1944
2298
  className,
@@ -1946,7 +2300,7 @@ function PaginationLink({
1946
2300
  disabled,
1947
2301
  ...props
1948
2302
  }) {
1949
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2303
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1950
2304
  "a",
1951
2305
  {
1952
2306
  "aria-current": isActive ? "page" : void 0,
@@ -1958,6 +2312,7 @@ function PaginationLink({
1958
2312
  buttonVariants({
1959
2313
  variant: isActive ? "outline" : "ghost"
1960
2314
  }),
2315
+ isActive && "border-(color:--pagination-active-border) bg-(--pagination-active-background) rounded-(--pagination-active-radius)",
1961
2316
  disabled && "pointer-events-none opacity-50",
1962
2317
  className
1963
2318
  ),
@@ -1969,15 +2324,15 @@ function PaginationPrevious({
1969
2324
  className,
1970
2325
  ...props
1971
2326
  }) {
1972
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2327
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
1973
2328
  PaginationLink,
1974
2329
  {
1975
2330
  "aria-label": "Go to previous page",
1976
2331
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
1977
2332
  ...props,
1978
2333
  children: [
1979
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.ChevronLeftIcon, {}),
1980
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "hidden sm:block", children: "Previous" })
2334
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.ChevronLeftIcon, {}),
2335
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "hidden sm:block", children: "Previous" })
1981
2336
  ]
1982
2337
  }
1983
2338
  );
@@ -1986,21 +2341,21 @@ function PaginationNext({
1986
2341
  className,
1987
2342
  ...props
1988
2343
  }) {
1989
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2344
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
1990
2345
  PaginationLink,
1991
2346
  {
1992
2347
  "aria-label": "Go to next page",
1993
2348
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
1994
2349
  ...props,
1995
2350
  children: [
1996
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "hidden sm:block", children: "Next" }),
1997
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.ChevronRightIcon, {})
2351
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "hidden sm:block", children: "Next" }),
2352
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.ChevronRightIcon, {})
1998
2353
  ]
1999
2354
  }
2000
2355
  );
2001
2356
  }
2002
2357
  function PaginationEllipsis({ className, ...props }) {
2003
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2358
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2004
2359
  "span",
2005
2360
  {
2006
2361
  "aria-hidden": true,
@@ -2008,8 +2363,8 @@ function PaginationEllipsis({ className, ...props }) {
2008
2363
  className: cn("flex size-9 items-center justify-center", className),
2009
2364
  ...props,
2010
2365
  children: [
2011
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.MoreHorizontalIcon, { className: "size-4" }),
2012
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "sr-only", children: "More pages" })
2366
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.MoreHorizontalIcon, { className: "size-4" }),
2367
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sr-only", children: "More pages" })
2013
2368
  ]
2014
2369
  }
2015
2370
  );
@@ -2018,46 +2373,46 @@ function PaginationEllipsis({ className, ...props }) {
2018
2373
  // src/ui/sheet.tsx
2019
2374
  var import_dialog = require("@base-ui/react/dialog");
2020
2375
  var import_lucide_react12 = require("lucide-react");
2021
- var import_class_variance_authority5 = require("class-variance-authority");
2022
- var import_jsx_runtime25 = require("react/jsx-runtime");
2376
+ var import_class_variance_authority7 = require("class-variance-authority");
2377
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2023
2378
  function Sheet({
2024
2379
  ...props
2025
2380
  }) {
2026
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_dialog.Dialog.Root, { "data-slot": "sheet", ...props });
2381
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dialog.Dialog.Root, { "data-slot": "sheet", ...props });
2027
2382
  }
2028
2383
  function SheetTrigger({
2029
2384
  ...props
2030
2385
  }) {
2031
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "sheet-trigger", ...props });
2386
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "sheet-trigger", ...props });
2032
2387
  }
2033
2388
  function SheetClose({
2034
2389
  ...props
2035
2390
  }) {
2036
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_dialog.Dialog.Close, { "data-slot": "sheet-close", ...props });
2391
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dialog.Dialog.Close, { "data-slot": "sheet-close", ...props });
2037
2392
  }
2038
2393
  function SheetPortal({
2039
2394
  ...props
2040
2395
  }) {
2041
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_dialog.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
2396
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_dialog.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
2042
2397
  }
2043
2398
  function SheetOverlay({
2044
2399
  className,
2045
2400
  ...props
2046
2401
  }) {
2047
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2402
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2048
2403
  import_dialog.Dialog.Backdrop,
2049
2404
  {
2050
2405
  "data-slot": "sheet-overlay",
2051
2406
  className: cn(
2052
- "fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
2407
+ "fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
2053
2408
  className
2054
2409
  ),
2055
2410
  ...props
2056
2411
  }
2057
2412
  );
2058
2413
  }
2059
- var sheetVariants = (0, import_class_variance_authority5.cva)(
2060
- "fixed z-50 flex flex-col gap-4 border-border bg-background shadow-lg transition ease-in-out data-open:animate-in data-open:duration-300 data-closed:animate-out data-closed:duration-200",
2414
+ var sheetVariants = (0, import_class_variance_authority7.cva)(
2415
+ "fixed z-50 flex flex-col gap-4 border-border bg-popover shadow-lg shadow-(color:--shadow-color) transition ease-in-out data-open:animate-in data-open:duration-300 data-closed:animate-out data-closed:duration-200",
2061
2416
  {
2062
2417
  variants: {
2063
2418
  side: {
@@ -2078,9 +2433,9 @@ function SheetContent({
2078
2433
  side = "right",
2079
2434
  ...props
2080
2435
  }) {
2081
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
2082
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(SheetOverlay, {}),
2083
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2436
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
2437
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SheetOverlay, {}),
2438
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2084
2439
  import_dialog.Dialog.Popup,
2085
2440
  {
2086
2441
  "data-slot": "sheet-content",
@@ -2088,11 +2443,11 @@ function SheetContent({
2088
2443
  ...props,
2089
2444
  children: [
2090
2445
  children,
2091
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2446
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2092
2447
  import_dialog.Dialog.Close,
2093
2448
  {
2094
2449
  "data-slot": "sheet-close",
2095
- render: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2450
+ render: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2096
2451
  "button",
2097
2452
  {
2098
2453
  type: "button",
@@ -2100,8 +2455,8 @@ function SheetContent({
2100
2455
  }
2101
2456
  ),
2102
2457
  children: [
2103
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react12.XIcon, {}),
2104
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sr-only", children: "Close" })
2458
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.XIcon, {}),
2459
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "sr-only", children: "Close" })
2105
2460
  ]
2106
2461
  }
2107
2462
  )
@@ -2111,7 +2466,7 @@ function SheetContent({
2111
2466
  ] });
2112
2467
  }
2113
2468
  function SheetHeader({ className, ...props }) {
2114
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2469
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2115
2470
  "div",
2116
2471
  {
2117
2472
  "data-slot": "sheet-header",
@@ -2121,7 +2476,7 @@ function SheetHeader({ className, ...props }) {
2121
2476
  );
2122
2477
  }
2123
2478
  function SheetFooter({ className, ...props }) {
2124
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2479
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2125
2480
  "div",
2126
2481
  {
2127
2482
  "data-slot": "sheet-footer",
@@ -2134,7 +2489,7 @@ function SheetTitle({
2134
2489
  className,
2135
2490
  ...props
2136
2491
  }) {
2137
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2492
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2138
2493
  import_dialog.Dialog.Title,
2139
2494
  {
2140
2495
  "data-slot": "sheet-title",
@@ -2147,7 +2502,7 @@ function SheetDescription({
2147
2502
  className,
2148
2503
  ...props
2149
2504
  }) {
2150
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2505
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2151
2506
  import_dialog.Dialog.Description,
2152
2507
  {
2153
2508
  "data-slot": "sheet-description",
@@ -2160,7 +2515,7 @@ function SheetDescription({
2160
2515
  // src/ui/toast.tsx
2161
2516
  var import_toast = require("@base-ui/react/toast");
2162
2517
  var import_lucide_react13 = require("lucide-react");
2163
- var import_jsx_runtime26 = require("react/jsx-runtime");
2518
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2164
2519
  var toastManager = import_toast.Toast.createToastManager();
2165
2520
  function toast(message, options = {}) {
2166
2521
  return toastManager.add({
@@ -2176,7 +2531,7 @@ var toastVariantClass = {
2176
2531
  };
2177
2532
  function ToasterViewport({ className }) {
2178
2533
  const { toasts } = import_toast.Toast.useToastManager();
2179
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2534
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2180
2535
  import_toast.Toast.Viewport,
2181
2536
  {
2182
2537
  "data-slot": "toast-viewport",
@@ -2184,26 +2539,26 @@ function ToasterViewport({ className }) {
2184
2539
  "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
2185
2540
  className
2186
2541
  ),
2187
- children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2542
+ children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2188
2543
  import_toast.Toast.Root,
2189
2544
  {
2190
2545
  toast: item,
2191
2546
  "data-slot": "toast",
2192
2547
  "data-type": item.type ?? "info",
2193
2548
  className: cn(
2194
- "rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
2549
+ "rounded-md border border-border bg-popover px-4 py-3 text-sm text-popover-foreground shadow-md shadow-(color:--shadow-color) transition-[opacity,transform] duration-200 data-ending-style:animate-toast-out data-starting-style:animate-toast-in",
2195
2550
  toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
2196
2551
  ),
2197
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
2198
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "grid gap-0.5", children: [
2199
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2552
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
2553
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "grid gap-0.5", children: [
2554
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2200
2555
  import_toast.Toast.Title,
2201
2556
  {
2202
2557
  "data-slot": "toast-title",
2203
2558
  className: "font-medium"
2204
2559
  }
2205
2560
  ),
2206
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2561
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2207
2562
  import_toast.Toast.Description,
2208
2563
  {
2209
2564
  "data-slot": "toast-description",
@@ -2211,13 +2566,13 @@ function ToasterViewport({ className }) {
2211
2566
  }
2212
2567
  )
2213
2568
  ] }),
2214
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2569
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2215
2570
  import_toast.Toast.Close,
2216
2571
  {
2217
2572
  "data-slot": "toast-close",
2218
2573
  "aria-label": "Close",
2219
2574
  className: "cursor-pointer rounded-xs opacity-70 transition-opacity hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none [&_svg]:size-3.5",
2220
- children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react13.XIcon, {})
2575
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_lucide_react13.XIcon, {})
2221
2576
  }
2222
2577
  )
2223
2578
  ] })
@@ -2228,17 +2583,17 @@ function ToasterViewport({ className }) {
2228
2583
  ) });
2229
2584
  }
2230
2585
  function Toaster({ className }) {
2231
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ToasterViewport, { className }) });
2586
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ToasterViewport, { className }) });
2232
2587
  }
2233
2588
 
2234
2589
  // src/ui/tooltip.tsx
2235
2590
  var import_tooltip = require("@base-ui/react/tooltip");
2236
- var import_jsx_runtime27 = require("react/jsx-runtime");
2591
+ var import_jsx_runtime29 = require("react/jsx-runtime");
2237
2592
  function TooltipProvider({
2238
2593
  delay = 0,
2239
2594
  ...props
2240
2595
  }) {
2241
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2596
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2242
2597
  import_tooltip.Tooltip.Provider,
2243
2598
  {
2244
2599
  "data-slot": "tooltip-provider",
@@ -2250,12 +2605,12 @@ function TooltipProvider({
2250
2605
  function Tooltip({
2251
2606
  ...props
2252
2607
  }) {
2253
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_tooltip.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
2608
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_tooltip.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
2254
2609
  }
2255
2610
  function TooltipTrigger({
2256
2611
  ...props
2257
2612
  }) {
2258
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_tooltip.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
2613
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_tooltip.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
2259
2614
  }
2260
2615
  function TooltipContent({
2261
2616
  className,
@@ -2265,14 +2620,14 @@ function TooltipContent({
2265
2620
  children,
2266
2621
  ...props
2267
2622
  }) {
2268
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2623
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2269
2624
  import_tooltip.Tooltip.Positioner,
2270
2625
  {
2271
2626
  align,
2272
2627
  side,
2273
2628
  sideOffset,
2274
2629
  className: "isolate z-50",
2275
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
2630
+ children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2276
2631
  import_tooltip.Tooltip.Popup,
2277
2632
  {
2278
2633
  "data-slot": "tooltip-content",
@@ -2283,7 +2638,7 @@ function TooltipContent({
2283
2638
  ...props,
2284
2639
  children: [
2285
2640
  children,
2286
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_tooltip.Tooltip.Arrow, { className: "z-50 size-2.5 rotate-45 rounded-[2px] bg-primary fill-primary data-[side=top]:-bottom-1 data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1" })
2641
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_tooltip.Tooltip.Arrow, { className: "z-50 size-2.5 rotate-45 rounded-[2px] bg-primary fill-primary data-[side=top]:-bottom-1 data-[side=bottom]:-top-1 data-[side=left]:-right-1 data-[side=right]:-left-1" })
2287
2642
  ]
2288
2643
  }
2289
2644
  )
@@ -2292,14 +2647,14 @@ function TooltipContent({
2292
2647
  }
2293
2648
 
2294
2649
  // src/ui/card.tsx
2295
- var import_jsx_runtime28 = require("react/jsx-runtime");
2650
+ var import_jsx_runtime30 = require("react/jsx-runtime");
2296
2651
  function Card({ className, ...props }) {
2297
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2652
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2298
2653
  "div",
2299
2654
  {
2300
2655
  "data-slot": "card",
2301
2656
  className: cn(
2302
- "flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-sm",
2657
+ "flex flex-col gap-6 rounded-xl border border-border bg-card py-6 text-card-foreground shadow-(--card-shadow)",
2303
2658
  className
2304
2659
  ),
2305
2660
  ...props
@@ -2307,7 +2662,7 @@ function Card({ className, ...props }) {
2307
2662
  );
2308
2663
  }
2309
2664
  function CardHeader({ className, ...props }) {
2310
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2665
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2311
2666
  "div",
2312
2667
  {
2313
2668
  "data-slot": "card-header",
@@ -2320,7 +2675,7 @@ function CardHeader({ className, ...props }) {
2320
2675
  );
2321
2676
  }
2322
2677
  function CardTitle({ className, ...props }) {
2323
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2678
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2324
2679
  "div",
2325
2680
  {
2326
2681
  "data-slot": "card-title",
@@ -2330,7 +2685,7 @@ function CardTitle({ className, ...props }) {
2330
2685
  );
2331
2686
  }
2332
2687
  function CardDescription({ className, ...props }) {
2333
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2688
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2334
2689
  "div",
2335
2690
  {
2336
2691
  "data-slot": "card-description",
@@ -2340,7 +2695,7 @@ function CardDescription({ className, ...props }) {
2340
2695
  );
2341
2696
  }
2342
2697
  function CardAction({ className, ...props }) {
2343
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2698
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2344
2699
  "div",
2345
2700
  {
2346
2701
  "data-slot": "card-action",
@@ -2353,7 +2708,7 @@ function CardAction({ className, ...props }) {
2353
2708
  );
2354
2709
  }
2355
2710
  function CardContent({ className, ...props }) {
2356
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2711
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2357
2712
  "div",
2358
2713
  {
2359
2714
  "data-slot": "card-content",
@@ -2363,7 +2718,7 @@ function CardContent({ className, ...props }) {
2363
2718
  );
2364
2719
  }
2365
2720
  function CardFooter({ className, ...props }) {
2366
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2721
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2367
2722
  "div",
2368
2723
  {
2369
2724
  "data-slot": "card-footer",
@@ -2376,37 +2731,37 @@ function CardFooter({ className, ...props }) {
2376
2731
  // src/ui/dialog.tsx
2377
2732
  var import_dialog2 = require("@base-ui/react/dialog");
2378
2733
  var import_lucide_react14 = require("lucide-react");
2379
- var import_jsx_runtime29 = require("react/jsx-runtime");
2734
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2380
2735
  function Dialog({
2381
2736
  ...props
2382
2737
  }) {
2383
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_dialog2.Dialog.Root, { "data-slot": "dialog", ...props });
2738
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_dialog2.Dialog.Root, { "data-slot": "dialog", ...props });
2384
2739
  }
2385
2740
  function DialogTrigger({
2386
2741
  ...props
2387
2742
  }) {
2388
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_dialog2.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
2743
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_dialog2.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
2389
2744
  }
2390
2745
  function DialogPortal({
2391
2746
  ...props
2392
2747
  }) {
2393
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_dialog2.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
2748
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_dialog2.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
2394
2749
  }
2395
2750
  function DialogClose({
2396
2751
  ...props
2397
2752
  }) {
2398
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_dialog2.Dialog.Close, { "data-slot": "dialog-close", ...props });
2753
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_dialog2.Dialog.Close, { "data-slot": "dialog-close", ...props });
2399
2754
  }
2400
2755
  function DialogOverlay({
2401
2756
  className,
2402
2757
  ...props
2403
2758
  }) {
2404
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2759
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2405
2760
  import_dialog2.Dialog.Backdrop,
2406
2761
  {
2407
2762
  "data-slot": "dialog-overlay",
2408
2763
  className: cn(
2409
- "fixed inset-0 z-50 bg-black/50 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
2764
+ "fixed inset-0 z-50 bg-(--overlay-background) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
2410
2765
  className
2411
2766
  ),
2412
2767
  ...props
@@ -2419,24 +2774,24 @@ function DialogContent({
2419
2774
  showCloseButton = true,
2420
2775
  ...props
2421
2776
  }) {
2422
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
2423
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(DialogOverlay, {}),
2424
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2777
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
2778
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(DialogOverlay, {}),
2779
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2425
2780
  import_dialog2.Dialog.Popup,
2426
2781
  {
2427
2782
  "data-slot": "dialog-content",
2428
2783
  className: cn(
2429
- "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-background p-6 shadow-lg duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
2784
+ "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-border bg-popover p-6 shadow-lg shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 sm:max-w-lg",
2430
2785
  className
2431
2786
  ),
2432
2787
  ...props,
2433
2788
  children: [
2434
2789
  children,
2435
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2790
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2436
2791
  import_dialog2.Dialog.Close,
2437
2792
  {
2438
2793
  "data-slot": "dialog-close",
2439
- render: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2794
+ render: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2440
2795
  "button",
2441
2796
  {
2442
2797
  type: "button",
@@ -2444,8 +2799,8 @@ function DialogContent({
2444
2799
  }
2445
2800
  ),
2446
2801
  children: [
2447
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react14.XIcon, {}),
2448
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "sr-only", children: "Close" })
2802
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react14.XIcon, {}),
2803
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "sr-only", children: "Close" })
2449
2804
  ]
2450
2805
  }
2451
2806
  )
@@ -2455,7 +2810,7 @@ function DialogContent({
2455
2810
  ] });
2456
2811
  }
2457
2812
  function DialogHeader({ className, ...props }) {
2458
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2813
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2459
2814
  "div",
2460
2815
  {
2461
2816
  "data-slot": "dialog-header",
@@ -2465,7 +2820,7 @@ function DialogHeader({ className, ...props }) {
2465
2820
  );
2466
2821
  }
2467
2822
  function DialogFooter({ className, ...props }) {
2468
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2823
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2469
2824
  "div",
2470
2825
  {
2471
2826
  "data-slot": "dialog-footer",
@@ -2481,7 +2836,7 @@ function DialogTitle({
2481
2836
  className,
2482
2837
  ...props
2483
2838
  }) {
2484
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2839
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2485
2840
  import_dialog2.Dialog.Title,
2486
2841
  {
2487
2842
  "data-slot": "dialog-title",
@@ -2494,7 +2849,7 @@ function DialogDescription({
2494
2849
  className,
2495
2850
  ...props
2496
2851
  }) {
2497
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2852
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2498
2853
  import_dialog2.Dialog.Description,
2499
2854
  {
2500
2855
  "data-slot": "dialog-description",
@@ -2505,9 +2860,9 @@ function DialogDescription({
2505
2860
  }
2506
2861
 
2507
2862
  // src/ui/empty.tsx
2508
- var import_jsx_runtime30 = require("react/jsx-runtime");
2863
+ var import_jsx_runtime32 = require("react/jsx-runtime");
2509
2864
  function Empty({ className, ...props }) {
2510
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2865
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2511
2866
  "div",
2512
2867
  {
2513
2868
  "data-slot": "empty",
@@ -2520,7 +2875,7 @@ function Empty({ className, ...props }) {
2520
2875
  );
2521
2876
  }
2522
2877
  function EmptyHeader({ className, ...props }) {
2523
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2878
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2524
2879
  "div",
2525
2880
  {
2526
2881
  "data-slot": "empty-header",
@@ -2530,7 +2885,7 @@ function EmptyHeader({ className, ...props }) {
2530
2885
  );
2531
2886
  }
2532
2887
  function EmptyTitle({ className, ...props }) {
2533
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2888
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2534
2889
  "div",
2535
2890
  {
2536
2891
  "data-slot": "empty-title",
@@ -2540,7 +2895,7 @@ function EmptyTitle({ className, ...props }) {
2540
2895
  );
2541
2896
  }
2542
2897
  function EmptyDescription({ className, ...props }) {
2543
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2898
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2544
2899
  "p",
2545
2900
  {
2546
2901
  "data-slot": "empty-description",
@@ -2550,7 +2905,7 @@ function EmptyDescription({ className, ...props }) {
2550
2905
  );
2551
2906
  }
2552
2907
  function EmptyContent({ className, ...props }) {
2553
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2908
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2554
2909
  "div",
2555
2910
  {
2556
2911
  "data-slot": "empty-content",
@@ -2565,9 +2920,9 @@ function EmptyContent({ className, ...props }) {
2565
2920
 
2566
2921
  // src/ui/field.tsx
2567
2922
  var import_field = require("@base-ui/react/field");
2568
- var import_jsx_runtime31 = require("react/jsx-runtime");
2923
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2569
2924
  function Field({ className, ...props }) {
2570
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2925
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2571
2926
  import_field.Field.Root,
2572
2927
  {
2573
2928
  "data-slot": "field",
@@ -2577,7 +2932,7 @@ function Field({ className, ...props }) {
2577
2932
  );
2578
2933
  }
2579
2934
  function FieldLabel({ className, ...props }) {
2580
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2935
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2581
2936
  import_field.Field.Label,
2582
2937
  {
2583
2938
  "data-slot": "field-label",
@@ -2587,7 +2942,7 @@ function FieldLabel({ className, ...props }) {
2587
2942
  );
2588
2943
  }
2589
2944
  function FieldDescription({ className, ...props }) {
2590
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2945
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2591
2946
  import_field.Field.Description,
2592
2947
  {
2593
2948
  "data-slot": "field-description",
@@ -2597,7 +2952,7 @@ function FieldDescription({ className, ...props }) {
2597
2952
  );
2598
2953
  }
2599
2954
  function FieldError({ className, ...props }) {
2600
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2955
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2601
2956
  import_field.Field.Error,
2602
2957
  {
2603
2958
  "data-slot": "field-error",
@@ -2608,9 +2963,9 @@ function FieldError({ className, ...props }) {
2608
2963
  }
2609
2964
 
2610
2965
  // src/ui/input.tsx
2611
- var import_jsx_runtime32 = require("react/jsx-runtime");
2966
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2612
2967
  function Input({ className, type, ...props }) {
2613
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2968
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2614
2969
  "input",
2615
2970
  {
2616
2971
  type,
@@ -2625,9 +2980,9 @@ function Input({ className, type, ...props }) {
2625
2980
  }
2626
2981
 
2627
2982
  // src/ui/input-group.tsx
2628
- var import_jsx_runtime33 = require("react/jsx-runtime");
2983
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2629
2984
  function InputGroup({ className, ...props }) {
2630
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2985
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2631
2986
  "div",
2632
2987
  {
2633
2988
  "data-slot": "input-group",
@@ -2649,7 +3004,7 @@ function InputGroupAddon({
2649
3004
  align = "inline-start",
2650
3005
  ...props
2651
3006
  }) {
2652
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3007
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2653
3008
  "div",
2654
3009
  {
2655
3010
  role: "group",
@@ -2668,7 +3023,7 @@ function InputGroupInput({
2668
3023
  className,
2669
3024
  ...props
2670
3025
  }) {
2671
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3026
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2672
3027
  "input",
2673
3028
  {
2674
3029
  "data-slot": "input-group-input",
@@ -2684,14 +3039,14 @@ function InputGroupInput({
2684
3039
  // src/ui/input-otp.tsx
2685
3040
  var import_input_otp = require("input-otp");
2686
3041
  var import_lucide_react15 = require("lucide-react");
2687
- var React3 = __toESM(require("react"), 1);
2688
- var import_jsx_runtime34 = require("react/jsx-runtime");
3042
+ var React5 = __toESM(require("react"), 1);
3043
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2689
3044
  function InputOTP({
2690
3045
  className,
2691
3046
  containerClassName,
2692
3047
  ...props
2693
3048
  }) {
2694
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3049
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2695
3050
  import_input_otp.OTPInput,
2696
3051
  {
2697
3052
  "data-slot": "input-otp",
@@ -2705,7 +3060,7 @@ function InputOTP({
2705
3060
  );
2706
3061
  }
2707
3062
  function InputOTPGroup({ className, ...props }) {
2708
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3063
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2709
3064
  "div",
2710
3065
  {
2711
3066
  "data-slot": "input-otp-group",
@@ -2719,9 +3074,9 @@ function InputOTPSlot({
2719
3074
  className,
2720
3075
  ...props
2721
3076
  }) {
2722
- const inputOTPContext = React3.useContext(import_input_otp.OTPInputContext);
3077
+ const inputOTPContext = React5.useContext(import_input_otp.OTPInputContext);
2723
3078
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
2724
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
3079
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
2725
3080
  "div",
2726
3081
  {
2727
3082
  "data-slot": "input-otp-slot",
@@ -2733,19 +3088,19 @@ function InputOTPSlot({
2733
3088
  ...props,
2734
3089
  children: [
2735
3090
  char,
2736
- hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
3091
+ hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
2737
3092
  ]
2738
3093
  }
2739
3094
  );
2740
3095
  }
2741
3096
  function InputOTPSeparator({ ...props }) {
2742
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react15.MinusIcon, {}) });
3097
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_lucide_react15.MinusIcon, {}) });
2743
3098
  }
2744
3099
 
2745
3100
  // src/ui/item.tsx
2746
- var import_jsx_runtime35 = require("react/jsx-runtime");
3101
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2747
3102
  function Item({ className, ...props }) {
2748
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3103
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2749
3104
  "div",
2750
3105
  {
2751
3106
  "data-slot": "item",
@@ -2758,7 +3113,7 @@ function Item({ className, ...props }) {
2758
3113
  );
2759
3114
  }
2760
3115
  function ItemMedia({ className, ...props }) {
2761
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3116
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2762
3117
  "div",
2763
3118
  {
2764
3119
  "data-slot": "item-media",
@@ -2771,7 +3126,7 @@ function ItemMedia({ className, ...props }) {
2771
3126
  );
2772
3127
  }
2773
3128
  function ItemContent({ className, ...props }) {
2774
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3129
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2775
3130
  "div",
2776
3131
  {
2777
3132
  "data-slot": "item-content",
@@ -2781,7 +3136,7 @@ function ItemContent({ className, ...props }) {
2781
3136
  );
2782
3137
  }
2783
3138
  function ItemTitle({ className, ...props }) {
2784
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3139
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2785
3140
  "div",
2786
3141
  {
2787
3142
  "data-slot": "item-title",
@@ -2791,7 +3146,7 @@ function ItemTitle({ className, ...props }) {
2791
3146
  );
2792
3147
  }
2793
3148
  function ItemDescription({ className, ...props }) {
2794
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3149
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2795
3150
  "p",
2796
3151
  {
2797
3152
  "data-slot": "item-description",
@@ -2801,7 +3156,7 @@ function ItemDescription({ className, ...props }) {
2801
3156
  );
2802
3157
  }
2803
3158
  function ItemActions({ className, ...props }) {
2804
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3159
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2805
3160
  "div",
2806
3161
  {
2807
3162
  "data-slot": "item-actions",
@@ -2812,9 +3167,9 @@ function ItemActions({ className, ...props }) {
2812
3167
  }
2813
3168
 
2814
3169
  // src/ui/kbd.tsx
2815
- var import_jsx_runtime36 = require("react/jsx-runtime");
3170
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2816
3171
  function Kbd({ className, ...props }) {
2817
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3172
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2818
3173
  "kbd",
2819
3174
  {
2820
3175
  "data-slot": "kbd",
@@ -2828,12 +3183,12 @@ function Kbd({ className, ...props }) {
2828
3183
  }
2829
3184
 
2830
3185
  // src/ui/label.tsx
2831
- var import_jsx_runtime37 = require("react/jsx-runtime");
3186
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2832
3187
  function Label({
2833
3188
  className,
2834
3189
  ...props
2835
3190
  }) {
2836
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3191
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2837
3192
  "label",
2838
3193
  {
2839
3194
  "data-slot": "label",
@@ -2846,11 +3201,94 @@ function Label({
2846
3201
  );
2847
3202
  }
2848
3203
 
3204
+ // src/ui/message.tsx
3205
+ var import_jsx_runtime40 = require("react/jsx-runtime");
3206
+ function MessageGroup({ className, ...props }) {
3207
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3208
+ "div",
3209
+ {
3210
+ "data-slot": "message-group",
3211
+ className: cn("flex min-w-0 flex-col gap-2", className),
3212
+ ...props
3213
+ }
3214
+ );
3215
+ }
3216
+ function Message({
3217
+ className,
3218
+ align = "start",
3219
+ ...props
3220
+ }) {
3221
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3222
+ "div",
3223
+ {
3224
+ "data-slot": "message",
3225
+ "data-align": align,
3226
+ className: cn(
3227
+ "group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse",
3228
+ className
3229
+ ),
3230
+ ...props
3231
+ }
3232
+ );
3233
+ }
3234
+ function MessageAvatar({ className, ...props }) {
3235
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3236
+ "div",
3237
+ {
3238
+ "data-slot": "message-avatar",
3239
+ className: cn(
3240
+ "flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-data-[slot=message-footer]/message:-translate-y-8",
3241
+ className
3242
+ ),
3243
+ ...props
3244
+ }
3245
+ );
3246
+ }
3247
+ function MessageContent({ className, ...props }) {
3248
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3249
+ "div",
3250
+ {
3251
+ "data-slot": "message-content",
3252
+ className: cn(
3253
+ "flex w-full min-w-0 flex-col gap-2.5 wrap-break-word group-data-[align=end]/message:*:data-slot:self-end",
3254
+ className
3255
+ ),
3256
+ ...props
3257
+ }
3258
+ );
3259
+ }
3260
+ function MessageHeader({ className, ...props }) {
3261
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3262
+ "div",
3263
+ {
3264
+ "data-slot": "message-header",
3265
+ className: cn(
3266
+ "flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0",
3267
+ className
3268
+ ),
3269
+ ...props
3270
+ }
3271
+ );
3272
+ }
3273
+ function MessageFooter({ className, ...props }) {
3274
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3275
+ "div",
3276
+ {
3277
+ "data-slot": "message-footer",
3278
+ className: cn(
3279
+ "flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-has-data-[variant=ghost]/message:px-0 group-data-[align=end]/message:justify-end",
3280
+ className
3281
+ ),
3282
+ ...props
3283
+ }
3284
+ );
3285
+ }
3286
+
2849
3287
  // src/ui/progress.tsx
2850
3288
  var import_progress = require("@base-ui/react/progress");
2851
- var import_jsx_runtime38 = require("react/jsx-runtime");
3289
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2852
3290
  function Progress({ className, ...props }) {
2853
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3291
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2854
3292
  import_progress.Progress.Root,
2855
3293
  {
2856
3294
  "data-slot": "progress",
@@ -2860,11 +3298,11 @@ function Progress({ className, ...props }) {
2860
3298
  );
2861
3299
  }
2862
3300
  function ProgressTrack({ className, ...props }) {
2863
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3301
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2864
3302
  import_progress.Progress.Track,
2865
3303
  {
2866
3304
  "data-slot": "progress-track",
2867
- className: cn("h-2 w-full overflow-hidden rounded-full bg-muted", className),
3305
+ className: cn("h-2 w-full overflow-hidden rounded-full bg-(--progress-track)", className),
2868
3306
  ...props
2869
3307
  }
2870
3308
  );
@@ -2873,12 +3311,12 @@ function ProgressIndicator({
2873
3311
  className,
2874
3312
  ...props
2875
3313
  }) {
2876
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3314
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2877
3315
  import_progress.Progress.Indicator,
2878
3316
  {
2879
3317
  "data-slot": "progress-indicator",
2880
3318
  className: cn(
2881
- "h-full bg-primary transition-[width] duration-300 ease-in-out",
3319
+ "h-full bg-(--progress-indicator) transition-[width] duration-300 ease-in-out",
2882
3320
  className
2883
3321
  ),
2884
3322
  ...props
@@ -2889,9 +3327,9 @@ function ProgressIndicator({
2889
3327
  // src/ui/radio-group.tsx
2890
3328
  var import_radio = require("@base-ui/react/radio");
2891
3329
  var import_radio_group = require("@base-ui/react/radio-group");
2892
- var import_jsx_runtime39 = require("react/jsx-runtime");
3330
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2893
3331
  function RadioGroup({ className, ...props }) {
2894
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3332
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2895
3333
  import_radio_group.RadioGroup,
2896
3334
  {
2897
3335
  "data-slot": "radio-group",
@@ -2901,21 +3339,21 @@ function RadioGroup({ className, ...props }) {
2901
3339
  );
2902
3340
  }
2903
3341
  function RadioGroupItem({ className, ...props }) {
2904
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3342
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2905
3343
  import_radio.Radio.Root,
2906
3344
  {
2907
3345
  "data-slot": "radio-group-item",
2908
3346
  className: cn(
2909
- "aspect-square size-4 shrink-0 cursor-pointer rounded-full border border-input shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:border-primary",
3347
+ "aspect-square size-4 shrink-0 cursor-pointer inline-flex items-center justify-center rounded-full border border-(color:--radio-border) shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:border-(color:--radio-checked)",
2910
3348
  className
2911
3349
  ),
2912
3350
  ...props,
2913
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3351
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2914
3352
  import_radio.Radio.Indicator,
2915
3353
  {
2916
3354
  "data-slot": "radio-group-indicator",
2917
3355
  className: "flex items-center justify-center",
2918
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "size-2 rounded-full bg-primary" })
3356
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
2919
3357
  }
2920
3358
  )
2921
3359
  }
@@ -2925,12 +3363,12 @@ function RadioGroupItem({ className, ...props }) {
2925
3363
  // src/ui/resizable.tsx
2926
3364
  var import_lucide_react16 = require("lucide-react");
2927
3365
  var import_react_resizable_panels = require("react-resizable-panels");
2928
- var import_jsx_runtime40 = require("react/jsx-runtime");
3366
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2929
3367
  function PanelGroup({
2930
3368
  className,
2931
3369
  ...props
2932
3370
  }) {
2933
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3371
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2934
3372
  import_react_resizable_panels.Group,
2935
3373
  {
2936
3374
  "data-slot": "resizable-panel-group",
@@ -2943,14 +3381,14 @@ function PanelGroup({
2943
3381
  );
2944
3382
  }
2945
3383
  function Panel({ ...props }) {
2946
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
3384
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
2947
3385
  }
2948
3386
  function ResizableHandle({
2949
3387
  withHandle,
2950
3388
  className,
2951
3389
  ...props
2952
3390
  }) {
2953
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3391
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2954
3392
  import_react_resizable_panels.Separator,
2955
3393
  {
2956
3394
  "data-slot": "resizable-handle",
@@ -2959,27 +3397,27 @@ function ResizableHandle({
2959
3397
  className
2960
3398
  ),
2961
3399
  ...props,
2962
- children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react16.GripVerticalIcon, { className: "size-2.5" }) }) : null
3400
+ children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border border-border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react16.GripVerticalIcon, { className: "size-2.5" }) }) : null
2963
3401
  }
2964
3402
  );
2965
3403
  }
2966
3404
 
2967
3405
  // src/ui/scroll-area.tsx
2968
3406
  var import_scroll_area = require("@base-ui/react/scroll-area");
2969
- var import_jsx_runtime41 = require("react/jsx-runtime");
3407
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2970
3408
  function ScrollArea({
2971
3409
  className,
2972
3410
  children,
2973
3411
  ...props
2974
3412
  }) {
2975
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
3413
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
2976
3414
  import_scroll_area.ScrollArea.Root,
2977
3415
  {
2978
3416
  "data-slot": "scroll-area",
2979
3417
  className: cn("relative overflow-hidden", className),
2980
3418
  ...props,
2981
3419
  children: [
2982
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3420
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2983
3421
  import_scroll_area.ScrollArea.Viewport,
2984
3422
  {
2985
3423
  "data-slot": "scroll-area-viewport",
@@ -2987,8 +3425,8 @@ function ScrollArea({
2987
3425
  children
2988
3426
  }
2989
3427
  ),
2990
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(ScrollBar, {}),
2991
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_scroll_area.ScrollArea.Corner, {})
3428
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ScrollBar, {}),
3429
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_scroll_area.ScrollArea.Corner, {})
2992
3430
  ]
2993
3431
  }
2994
3432
  );
@@ -2998,7 +3436,7 @@ function ScrollBar({
2998
3436
  orientation = "vertical",
2999
3437
  ...props
3000
3438
  }) {
3001
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3439
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3002
3440
  import_scroll_area.ScrollArea.Scrollbar,
3003
3441
  {
3004
3442
  "data-slot": "scroll-area-scrollbar",
@@ -3010,7 +3448,7 @@ function ScrollBar({
3010
3448
  className
3011
3449
  ),
3012
3450
  ...props,
3013
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3451
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3014
3452
  import_scroll_area.ScrollArea.Thumb,
3015
3453
  {
3016
3454
  "data-slot": "scroll-area-thumb",
@@ -3024,205 +3462,879 @@ function ScrollBar({
3024
3462
  // src/ui/select.tsx
3025
3463
  var import_select = require("@base-ui/react/select");
3026
3464
  var import_lucide_react17 = require("lucide-react");
3027
- var import_jsx_runtime42 = require("react/jsx-runtime");
3465
+ var import_jsx_runtime45 = require("react/jsx-runtime");
3028
3466
  var Select = import_select.Select.Root;
3029
3467
  function SelectGroup({
3030
3468
  ...props
3031
3469
  }) {
3032
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_select.Select.Group, { "data-slot": "select-group", ...props });
3470
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_select.Select.Group, { "data-slot": "select-group", ...props });
3033
3471
  }
3034
3472
  function SelectValue({
3035
3473
  ...props
3036
3474
  }) {
3037
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
3475
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
3476
+ }
3477
+ function SelectTrigger({
3478
+ className,
3479
+ size = "default",
3480
+ children,
3481
+ ...props
3482
+ }) {
3483
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
3484
+ import_select.Select.Trigger,
3485
+ {
3486
+ "data-slot": "select-trigger",
3487
+ "data-size": size,
3488
+ className: cn(
3489
+ "flex w-fit cursor-pointer items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 data-[placeholder]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3490
+ className
3491
+ ),
3492
+ ...props,
3493
+ children: [
3494
+ children,
3495
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3496
+ import_select.Select.Icon,
3497
+ {
3498
+ render: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react17.ChevronDownIcon, { className: "size-4 opacity-50" })
3499
+ }
3500
+ )
3501
+ ]
3502
+ }
3503
+ );
3504
+ }
3505
+ function SelectContent({
3506
+ className,
3507
+ children,
3508
+ side = "bottom",
3509
+ sideOffset = 4,
3510
+ align = "center",
3511
+ alignItemWithTrigger = false,
3512
+ ...props
3513
+ }) {
3514
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3515
+ import_select.Select.Positioner,
3516
+ {
3517
+ side,
3518
+ sideOffset,
3519
+ align,
3520
+ alignItemWithTrigger,
3521
+ className: "isolate z-50",
3522
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
3523
+ import_select.Select.Popup,
3524
+ {
3525
+ "data-slot": "select-content",
3526
+ className: cn(
3527
+ "relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md shadow-(color:--shadow-color) duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
3528
+ className
3529
+ ),
3530
+ ...props,
3531
+ children: [
3532
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectScrollUpButton, {}),
3533
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_select.Select.List, { className: "p-1", children }),
3534
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectScrollDownButton, {})
3535
+ ]
3536
+ }
3537
+ )
3538
+ }
3539
+ ) });
3540
+ }
3541
+ function SelectLabel({
3542
+ className,
3543
+ ...props
3544
+ }) {
3545
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3546
+ import_select.Select.GroupLabel,
3547
+ {
3548
+ "data-slot": "select-label",
3549
+ className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
3550
+ ...props
3551
+ }
3552
+ );
3553
+ }
3554
+ function SelectItem({
3555
+ className,
3556
+ children,
3557
+ ...props
3558
+ }) {
3559
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
3560
+ import_select.Select.Item,
3561
+ {
3562
+ "data-slot": "select-item",
3563
+ className: cn(
3564
+ "relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-(--menu-hover-background) focus:text-(--menu-hover-foreground) data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3565
+ className
3566
+ ),
3567
+ ...props,
3568
+ children: [
3569
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react17.CheckIcon, { className: "size-4" }) }) }),
3570
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_select.Select.ItemText, { children })
3571
+ ]
3572
+ }
3573
+ );
3574
+ }
3575
+ function SelectSeparator({
3576
+ className,
3577
+ ...props
3578
+ }) {
3579
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3580
+ import_select.Select.Separator,
3581
+ {
3582
+ "data-slot": "select-separator",
3583
+ className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className),
3584
+ ...props
3585
+ }
3586
+ );
3587
+ }
3588
+ function SelectScrollUpButton({
3589
+ className,
3590
+ ...props
3591
+ }) {
3592
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3593
+ import_select.Select.ScrollUpArrow,
3594
+ {
3595
+ "data-slot": "select-scroll-up-button",
3596
+ className: cn(
3597
+ "flex cursor-default items-center justify-center py-1",
3598
+ className
3599
+ ),
3600
+ ...props,
3601
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react17.ChevronUpIcon, { className: "size-4" })
3602
+ }
3603
+ );
3604
+ }
3605
+ function SelectScrollDownButton({
3606
+ className,
3607
+ ...props
3608
+ }) {
3609
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3610
+ import_select.Select.ScrollDownArrow,
3611
+ {
3612
+ "data-slot": "select-scroll-down-button",
3613
+ className: cn(
3614
+ "flex cursor-default items-center justify-center py-1",
3615
+ className
3616
+ ),
3617
+ ...props,
3618
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_lucide_react17.ChevronDownIcon, { className: "size-4" })
3619
+ }
3620
+ );
3621
+ }
3622
+
3623
+ // src/ui/separator.tsx
3624
+ var import_separator = require("@base-ui/react/separator");
3625
+ var import_jsx_runtime46 = require("react/jsx-runtime");
3626
+ function Separator({
3627
+ className,
3628
+ orientation = "horizontal",
3629
+ decorative: _decorative,
3630
+ ...props
3631
+ }) {
3632
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3633
+ import_separator.Separator,
3634
+ {
3635
+ "data-slot": "separator",
3636
+ orientation,
3637
+ className: cn(
3638
+ "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
3639
+ className
3640
+ ),
3641
+ ...props
3642
+ }
3643
+ );
3644
+ }
3645
+
3646
+ // src/ui/sidebar.tsx
3647
+ var React6 = __toESM(require("react"), 1);
3648
+ var import_class_variance_authority8 = require("class-variance-authority");
3649
+ var import_lucide_react18 = require("lucide-react");
3650
+
3651
+ // src/hooks/use-mobile.ts
3652
+ var import_react = require("react");
3653
+ var MOBILE_MEDIA_QUERY = "(max-width: 767px)";
3654
+ function useIsMobile() {
3655
+ const [isMobile, setIsMobile] = (0, import_react.useState)(
3656
+ () => typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(MOBILE_MEDIA_QUERY).matches
3657
+ );
3658
+ (0, import_react.useEffect)(() => {
3659
+ if (typeof window.matchMedia !== "function") {
3660
+ return;
3661
+ }
3662
+ const media = window.matchMedia(MOBILE_MEDIA_QUERY);
3663
+ const onChange = (event) => {
3664
+ setIsMobile(event.matches);
3665
+ };
3666
+ setIsMobile(media.matches);
3667
+ media.addEventListener("change", onChange);
3668
+ return () => media.removeEventListener("change", onChange);
3669
+ }, []);
3670
+ return isMobile;
3671
+ }
3672
+
3673
+ // src/ui/skeleton.tsx
3674
+ var import_jsx_runtime47 = require("react/jsx-runtime");
3675
+ function Skeleton({ className, ...props }) {
3676
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3677
+ "div",
3678
+ {
3679
+ "data-slot": "skeleton",
3680
+ className: cn("animate-pulse rounded-md bg-muted", className),
3681
+ ...props
3682
+ }
3683
+ );
3684
+ }
3685
+
3686
+ // src/ui/sidebar.tsx
3687
+ var import_jsx_runtime48 = require("react/jsx-runtime");
3688
+ var SIDEBAR_COOKIE_NAME = "sidebar_state";
3689
+ var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
3690
+ var SIDEBAR_WIDTH = "16rem";
3691
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
3692
+ var SIDEBAR_WIDTH_ICON = "3rem";
3693
+ var SIDEBAR_KEYBOARD_SHORTCUT = "b";
3694
+ var SidebarContext = React6.createContext(null);
3695
+ function useSidebar() {
3696
+ const context = React6.useContext(SidebarContext);
3697
+ if (!context) {
3698
+ throw new Error("useSidebar must be used within a SidebarProvider.");
3699
+ }
3700
+ return context;
3701
+ }
3702
+ function SidebarProvider({
3703
+ defaultOpen = true,
3704
+ open: openProp,
3705
+ onOpenChange: setOpenProp,
3706
+ className,
3707
+ style,
3708
+ children,
3709
+ ...props
3710
+ }) {
3711
+ const isMobile = useIsMobile();
3712
+ const [openMobile, setOpenMobile] = React6.useState(false);
3713
+ const [_open, _setOpen] = React6.useState(defaultOpen);
3714
+ const open = openProp ?? _open;
3715
+ const setOpen = React6.useCallback(
3716
+ (value) => {
3717
+ const openState = typeof value === "function" ? value(open) : value;
3718
+ if (setOpenProp) {
3719
+ setOpenProp(openState);
3720
+ } else {
3721
+ _setOpen(openState);
3722
+ }
3723
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
3724
+ },
3725
+ [setOpenProp, open]
3726
+ );
3727
+ const toggleSidebar = React6.useCallback(() => {
3728
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
3729
+ }, [isMobile, setOpen, setOpenMobile]);
3730
+ React6.useEffect(() => {
3731
+ const handleKeyDown = (event) => {
3732
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
3733
+ event.preventDefault();
3734
+ toggleSidebar();
3735
+ }
3736
+ };
3737
+ window.addEventListener("keydown", handleKeyDown);
3738
+ return () => window.removeEventListener("keydown", handleKeyDown);
3739
+ }, [toggleSidebar]);
3740
+ const state = open ? "expanded" : "collapsed";
3741
+ const contextValue = React6.useMemo(
3742
+ () => ({
3743
+ state,
3744
+ open,
3745
+ setOpen,
3746
+ isMobile,
3747
+ openMobile,
3748
+ setOpenMobile,
3749
+ toggleSidebar
3750
+ }),
3751
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
3752
+ );
3753
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3754
+ "div",
3755
+ {
3756
+ "data-slot": "sidebar-wrapper",
3757
+ style: {
3758
+ "--sidebar-width": SIDEBAR_WIDTH,
3759
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
3760
+ ...style
3761
+ },
3762
+ className: cn(
3763
+ "group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",
3764
+ className
3765
+ ),
3766
+ ...props,
3767
+ children
3768
+ }
3769
+ ) }) });
3770
+ }
3771
+ function SidebarRoot({
3772
+ side = "left",
3773
+ variant = "sidebar",
3774
+ collapsible = "offcanvas",
3775
+ className,
3776
+ children,
3777
+ ...props
3778
+ }) {
3779
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
3780
+ if (collapsible === "none") {
3781
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3782
+ "div",
3783
+ {
3784
+ "data-slot": "sidebar",
3785
+ className: cn(
3786
+ "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",
3787
+ className
3788
+ ),
3789
+ ...props,
3790
+ children
3791
+ }
3792
+ );
3793
+ }
3794
+ if (isMobile) {
3795
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
3796
+ SheetContent,
3797
+ {
3798
+ "data-sidebar": "sidebar",
3799
+ "data-slot": "sidebar",
3800
+ "data-mobile": "true",
3801
+ className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
3802
+ style: {
3803
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
3804
+ },
3805
+ side,
3806
+ children: [
3807
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(SheetHeader, { className: "sr-only", children: [
3808
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SheetTitle, { children: "Sidebar" }),
3809
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
3810
+ ] }),
3811
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "flex h-full w-full flex-col", children })
3812
+ ]
3813
+ }
3814
+ ) });
3815
+ }
3816
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
3817
+ "div",
3818
+ {
3819
+ className: "group peer hidden text-sidebar-foreground md:block",
3820
+ "data-state": state,
3821
+ "data-collapsible": state === "collapsed" ? collapsible : "",
3822
+ "data-variant": variant,
3823
+ "data-side": side,
3824
+ "data-slot": "sidebar",
3825
+ children: [
3826
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3827
+ "div",
3828
+ {
3829
+ "data-slot": "sidebar-gap",
3830
+ className: cn(
3831
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
3832
+ "group-data-[collapsible=offcanvas]:w-0",
3833
+ "group-data-[side=right]:rotate-180",
3834
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
3835
+ )
3836
+ }
3837
+ ),
3838
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3839
+ "div",
3840
+ {
3841
+ "data-slot": "sidebar-container",
3842
+ className: cn(
3843
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
3844
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
3845
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
3846
+ className
3847
+ ),
3848
+ ...props,
3849
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3850
+ "div",
3851
+ {
3852
+ "data-sidebar": "sidebar",
3853
+ "data-slot": "sidebar-inner",
3854
+ className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
3855
+ children
3856
+ }
3857
+ )
3858
+ }
3859
+ )
3860
+ ]
3861
+ }
3862
+ );
3863
+ }
3864
+ function SidebarTrigger({
3865
+ className,
3866
+ onClick,
3867
+ ...props
3868
+ }) {
3869
+ const { toggleSidebar } = useSidebar();
3870
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
3871
+ Button,
3872
+ {
3873
+ "data-sidebar": "trigger",
3874
+ "data-slot": "sidebar-trigger",
3875
+ variant: "ghost",
3876
+ size: "icon",
3877
+ className: cn("size-7", className),
3878
+ onClick: (event) => {
3879
+ onClick?.(event);
3880
+ toggleSidebar();
3881
+ },
3882
+ ...props,
3883
+ children: [
3884
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react18.PanelLeftIcon, {}),
3885
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
3886
+ ]
3887
+ }
3888
+ );
3889
+ }
3890
+ function SidebarRail({ className, ...props }) {
3891
+ const { toggleSidebar } = useSidebar();
3892
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3893
+ "button",
3894
+ {
3895
+ "data-sidebar": "rail",
3896
+ "data-slot": "sidebar-rail",
3897
+ "aria-label": "Toggle Sidebar",
3898
+ tabIndex: -1,
3899
+ onClick: toggleSidebar,
3900
+ title: "Toggle Sidebar",
3901
+ className: cn(
3902
+ "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex",
3903
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
3904
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
3905
+ "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
3906
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
3907
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
3908
+ className
3909
+ ),
3910
+ ...props
3911
+ }
3912
+ );
3913
+ }
3914
+ function SidebarInset({ className, ...props }) {
3915
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3916
+ "main",
3917
+ {
3918
+ "data-slot": "sidebar-inset",
3919
+ className: cn(
3920
+ "relative flex w-full flex-1 flex-col bg-background",
3921
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
3922
+ className
3923
+ ),
3924
+ ...props
3925
+ }
3926
+ );
3927
+ }
3928
+ function SidebarInput({
3929
+ className,
3930
+ ...props
3931
+ }) {
3932
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3933
+ Input,
3934
+ {
3935
+ "data-slot": "sidebar-input",
3936
+ "data-sidebar": "input",
3937
+ className: cn("h-8 w-full bg-sidebar shadow-none", className),
3938
+ ...props
3939
+ }
3940
+ );
3941
+ }
3942
+ function SidebarHeader({ className, ...props }) {
3943
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3944
+ "div",
3945
+ {
3946
+ "data-slot": "sidebar-header",
3947
+ "data-sidebar": "header",
3948
+ className: cn("flex flex-col gap-2 p-2", className),
3949
+ ...props
3950
+ }
3951
+ );
3952
+ }
3953
+ function SidebarFooter({ className, ...props }) {
3954
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3955
+ "div",
3956
+ {
3957
+ "data-slot": "sidebar-footer",
3958
+ "data-sidebar": "footer",
3959
+ className: cn("flex flex-col gap-2 p-2", className),
3960
+ ...props
3961
+ }
3962
+ );
3963
+ }
3964
+ function SidebarSeparator({
3965
+ className,
3966
+ ...props
3967
+ }) {
3968
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3969
+ Separator,
3970
+ {
3971
+ "data-slot": "sidebar-separator",
3972
+ "data-sidebar": "separator",
3973
+ className: cn("mx-2 w-auto bg-sidebar-border", className),
3974
+ ...props
3975
+ }
3976
+ );
3977
+ }
3978
+ function SidebarContent({ className, ...props }) {
3979
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3980
+ "div",
3981
+ {
3982
+ "data-slot": "sidebar-content",
3983
+ "data-sidebar": "content",
3984
+ className: cn(
3985
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
3986
+ className
3987
+ ),
3988
+ ...props
3989
+ }
3990
+ );
3991
+ }
3992
+ function SidebarGroup({ className, ...props }) {
3993
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3994
+ "div",
3995
+ {
3996
+ "data-slot": "sidebar-group",
3997
+ "data-sidebar": "group",
3998
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
3999
+ ...props
4000
+ }
4001
+ );
4002
+ }
4003
+ function renderAsChild(children, dataSlot, className, rest) {
4004
+ if (!React6.isValidElement(children)) {
4005
+ return null;
4006
+ }
4007
+ return React6.cloneElement(children, {
4008
+ "data-slot": dataSlot,
4009
+ className: cn(
4010
+ className,
4011
+ children.props.className
4012
+ ),
4013
+ ...rest
4014
+ });
3038
4015
  }
3039
- function SelectTrigger({
4016
+ function SidebarGroupLabel({
3040
4017
  className,
3041
- size = "default",
4018
+ asChild = false,
3042
4019
  children,
3043
4020
  ...props
3044
4021
  }) {
3045
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3046
- import_select.Select.Trigger,
4022
+ const cls = cn(
4023
+ "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4024
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
4025
+ className
4026
+ );
4027
+ if (asChild) {
4028
+ return renderAsChild(children, "sidebar-group-label", cls, props);
4029
+ }
4030
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4031
+ "div",
3047
4032
  {
3048
- "data-slot": "select-trigger",
3049
- "data-size": size,
3050
- className: cn(
3051
- "flex w-fit cursor-pointer items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-colors outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 data-[placeholder]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3052
- className
3053
- ),
4033
+ "data-slot": "sidebar-group-label",
4034
+ "data-sidebar": "group-label",
4035
+ className: cls,
3054
4036
  ...props,
3055
- children: [
3056
- children,
3057
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3058
- import_select.Select.Icon,
3059
- {
3060
- render: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react17.ChevronDownIcon, { className: "size-4 opacity-50" })
3061
- }
3062
- )
3063
- ]
4037
+ children
3064
4038
  }
3065
4039
  );
3066
4040
  }
3067
- function SelectContent({
4041
+ function SidebarGroupAction({
3068
4042
  className,
4043
+ asChild = false,
3069
4044
  children,
3070
- side = "bottom",
3071
- sideOffset = 4,
3072
- align = "center",
3073
- alignItemWithTrigger = false,
3074
4045
  ...props
3075
4046
  }) {
3076
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3077
- import_select.Select.Positioner,
4047
+ const cls = cn(
4048
+ "absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4049
+ "after:absolute after:-inset-2 md:after:hidden",
4050
+ "group-data-[collapsible=icon]:hidden",
4051
+ className
4052
+ );
4053
+ if (asChild) {
4054
+ return renderAsChild(children, "sidebar-group-action", cls, props);
4055
+ }
4056
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4057
+ "button",
3078
4058
  {
3079
- side,
3080
- sideOffset,
3081
- align,
3082
- alignItemWithTrigger,
3083
- className: "isolate z-50",
3084
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3085
- import_select.Select.Popup,
3086
- {
3087
- "data-slot": "select-content",
3088
- className: cn(
3089
- "relative z-50 max-h-96 min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
3090
- className
3091
- ),
3092
- ...props,
3093
- children: [
3094
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SelectScrollUpButton, {}),
3095
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_select.Select.List, { className: "p-1", children }),
3096
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SelectScrollDownButton, {})
3097
- ]
3098
- }
3099
- )
4059
+ "data-slot": "sidebar-group-action",
4060
+ "data-sidebar": "group-action",
4061
+ className: cls,
4062
+ ...props,
4063
+ children
3100
4064
  }
3101
- ) });
4065
+ );
3102
4066
  }
3103
- function SelectLabel({
4067
+ function SidebarGroupContent({
3104
4068
  className,
3105
4069
  ...props
3106
4070
  }) {
3107
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3108
- import_select.Select.GroupLabel,
4071
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4072
+ "div",
3109
4073
  {
3110
- "data-slot": "select-label",
3111
- className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
4074
+ "data-slot": "sidebar-group-content",
4075
+ "data-sidebar": "group-content",
4076
+ className: cn("w-full text-sm", className),
3112
4077
  ...props
3113
4078
  }
3114
4079
  );
3115
4080
  }
3116
- function SelectItem({
4081
+ function SidebarMenu({ className, ...props }) {
4082
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4083
+ "ul",
4084
+ {
4085
+ "data-slot": "sidebar-menu",
4086
+ "data-sidebar": "menu",
4087
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
4088
+ ...props
4089
+ }
4090
+ );
4091
+ }
4092
+ function SidebarMenuItem({ className, ...props }) {
4093
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4094
+ "li",
4095
+ {
4096
+ "data-slot": "sidebar-menu-item",
4097
+ "data-sidebar": "menu-item",
4098
+ className: cn("group/menu-item relative", className),
4099
+ ...props
4100
+ }
4101
+ );
4102
+ }
4103
+ var sidebarMenuButtonVariants = (0, import_class_variance_authority8.cva)(
4104
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
4105
+ {
4106
+ variants: {
4107
+ variant: {
4108
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
4109
+ outline: "bg-sidebar shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
4110
+ },
4111
+ size: {
4112
+ default: "h-8 text-sm",
4113
+ sm: "h-7 text-xs",
4114
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
4115
+ }
4116
+ },
4117
+ defaultVariants: {
4118
+ variant: "default",
4119
+ size: "default"
4120
+ }
4121
+ }
4122
+ );
4123
+ function SidebarMenuButton({
4124
+ asChild = false,
4125
+ isActive = false,
4126
+ variant = "default",
4127
+ size = "default",
4128
+ tooltip,
3117
4129
  className,
3118
4130
  children,
3119
4131
  ...props
3120
4132
  }) {
3121
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3122
- import_select.Select.Item,
4133
+ const { isMobile, state } = useSidebar();
4134
+ const cls = cn(sidebarMenuButtonVariants({ variant, size }), className);
4135
+ const button = asChild ? renderAsChild(children, "sidebar-menu-button", cls, {
4136
+ "data-sidebar": "menu-button",
4137
+ "data-size": size,
4138
+ "data-active": isActive,
4139
+ ...props
4140
+ }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4141
+ "button",
3123
4142
  {
3124
- "data-slot": "select-item",
3125
- className: cn(
3126
- "relative flex w-full cursor-pointer items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3127
- className
3128
- ),
4143
+ "data-slot": "sidebar-menu-button",
4144
+ "data-sidebar": "menu-button",
4145
+ "data-size": size,
4146
+ "data-active": isActive,
4147
+ className: cls,
3129
4148
  ...props,
3130
- children: [
3131
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react17.CheckIcon, { className: "size-4" }) }) }),
3132
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_select.Select.ItemText, { children })
3133
- ]
4149
+ children
3134
4150
  }
3135
4151
  );
4152
+ if (!tooltip) {
4153
+ return button;
4154
+ }
4155
+ if (typeof tooltip === "string") {
4156
+ tooltip = {
4157
+ children: tooltip
4158
+ };
4159
+ }
4160
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Tooltip, { children: [
4161
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(TooltipTrigger, { render: button }),
4162
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4163
+ TooltipContent,
4164
+ {
4165
+ side: "right",
4166
+ align: "center",
4167
+ hidden: state !== "collapsed" || isMobile,
4168
+ ...tooltip
4169
+ }
4170
+ )
4171
+ ] });
3136
4172
  }
3137
- function SelectSeparator({
4173
+ function SidebarMenuAction({
3138
4174
  className,
4175
+ asChild = false,
4176
+ showOnHover = false,
4177
+ children,
3139
4178
  ...props
3140
4179
  }) {
3141
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3142
- import_select.Select.Separator,
4180
+ const cls = cn(
4181
+ "absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
4182
+ "after:absolute after:-inset-2 md:after:hidden",
4183
+ "peer-data-[size=sm]/menu-button:top-1",
4184
+ "peer-data-[size=default]/menu-button:top-1.5",
4185
+ "peer-data-[size=lg]/menu-button:top-2.5",
4186
+ "group-data-[collapsible=icon]:hidden",
4187
+ showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100 md:opacity-0",
4188
+ className
4189
+ );
4190
+ if (asChild) {
4191
+ return renderAsChild(children, "sidebar-menu-action", cls, props);
4192
+ }
4193
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4194
+ "button",
3143
4195
  {
3144
- "data-slot": "select-separator",
3145
- className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className),
3146
- ...props
4196
+ "data-slot": "sidebar-menu-action",
4197
+ "data-sidebar": "menu-action",
4198
+ className: cls,
4199
+ ...props,
4200
+ children
3147
4201
  }
3148
4202
  );
3149
4203
  }
3150
- function SelectScrollUpButton({
4204
+ function SidebarMenuBadge({
3151
4205
  className,
3152
4206
  ...props
3153
4207
  }) {
3154
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3155
- import_select.Select.ScrollUpArrow,
4208
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4209
+ "div",
3156
4210
  {
3157
- "data-slot": "select-scroll-up-button",
4211
+ "data-slot": "sidebar-menu-badge",
4212
+ "data-sidebar": "menu-badge",
3158
4213
  className: cn(
3159
- "flex cursor-default items-center justify-center py-1",
4214
+ "pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none",
4215
+ "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
4216
+ "peer-data-[size=sm]/menu-button:top-1",
4217
+ "peer-data-[size=default]/menu-button:top-1.5",
4218
+ "peer-data-[size=lg]/menu-button:top-2.5",
4219
+ "group-data-[collapsible=icon]:hidden",
3160
4220
  className
3161
4221
  ),
3162
- ...props,
3163
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react17.ChevronUpIcon, { className: "size-4" })
4222
+ ...props
3164
4223
  }
3165
4224
  );
3166
4225
  }
3167
- function SelectScrollDownButton({
4226
+ function SidebarMenuSkeleton({
3168
4227
  className,
4228
+ showIcon = false,
3169
4229
  ...props
3170
4230
  }) {
3171
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3172
- import_select.Select.ScrollDownArrow,
4231
+ const width = React6.useMemo(() => {
4232
+ return `${Math.floor(Math.random() * 40) + 50}%`;
4233
+ }, []);
4234
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
4235
+ "div",
3173
4236
  {
3174
- "data-slot": "select-scroll-down-button",
3175
- className: cn(
3176
- "flex cursor-default items-center justify-center py-1",
3177
- className
3178
- ),
4237
+ "data-slot": "sidebar-menu-skeleton",
4238
+ "data-sidebar": "menu-skeleton",
4239
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
3179
4240
  ...props,
3180
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react17.ChevronDownIcon, { className: "size-4" })
4241
+ children: [
4242
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4243
+ Skeleton,
4244
+ {
4245
+ className: "size-4 rounded-md",
4246
+ "data-sidebar": "menu-skeleton-icon"
4247
+ }
4248
+ ),
4249
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4250
+ Skeleton,
4251
+ {
4252
+ className: "h-4 max-w-(--skeleton-width) flex-1",
4253
+ "data-sidebar": "menu-skeleton-text",
4254
+ style: {
4255
+ "--skeleton-width": width
4256
+ }
4257
+ }
4258
+ )
4259
+ ]
3181
4260
  }
3182
4261
  );
3183
4262
  }
3184
-
3185
- // src/ui/separator.tsx
3186
- var import_separator = require("@base-ui/react/separator");
3187
- var import_jsx_runtime43 = require("react/jsx-runtime");
3188
- function Separator({
3189
- className,
3190
- orientation = "horizontal",
3191
- decorative: _decorative,
3192
- ...props
3193
- }) {
3194
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3195
- import_separator.Separator,
4263
+ function SidebarMenuSub({ className, ...props }) {
4264
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4265
+ "ul",
3196
4266
  {
3197
- "data-slot": "separator",
3198
- orientation,
4267
+ "data-slot": "sidebar-menu-sub",
4268
+ "data-sidebar": "menu-sub",
3199
4269
  className: cn(
3200
- "shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
4270
+ "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
4271
+ "group-data-[collapsible=icon]:hidden",
3201
4272
  className
3202
4273
  ),
3203
4274
  ...props
3204
4275
  }
3205
4276
  );
3206
4277
  }
3207
-
3208
- // src/ui/skeleton.tsx
3209
- var import_jsx_runtime44 = require("react/jsx-runtime");
3210
- function Skeleton({ className, ...props }) {
3211
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3212
- "div",
4278
+ function SidebarMenuSubItem({
4279
+ className,
4280
+ ...props
4281
+ }) {
4282
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4283
+ "li",
3213
4284
  {
3214
- "data-slot": "skeleton",
3215
- className: cn("animate-pulse rounded-md bg-muted", className),
4285
+ "data-slot": "sidebar-menu-sub-item",
4286
+ "data-sidebar": "menu-sub-item",
4287
+ className: cn("group/menu-sub-item relative", className),
3216
4288
  ...props
3217
4289
  }
3218
4290
  );
3219
4291
  }
4292
+ function SidebarMenuSubButton({
4293
+ asChild = false,
4294
+ size = "md",
4295
+ isActive = false,
4296
+ className,
4297
+ children,
4298
+ ...props
4299
+ }) {
4300
+ const cls = cn(
4301
+ "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
4302
+ "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
4303
+ size === "sm" && "text-xs",
4304
+ size === "md" && "text-sm",
4305
+ "group-data-[collapsible=icon]:hidden",
4306
+ className
4307
+ );
4308
+ if (asChild) {
4309
+ return renderAsChild(children, "sidebar-menu-sub-button", cls, {
4310
+ "data-sidebar": "menu-sub-button",
4311
+ "data-size": size,
4312
+ "data-active": isActive,
4313
+ ...props
4314
+ });
4315
+ }
4316
+ return (
4317
+ // eslint-disable-next-line jsx-a11y/anchor-has-content
4318
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4319
+ "a",
4320
+ {
4321
+ "data-slot": "sidebar-menu-sub-button",
4322
+ "data-sidebar": "menu-sub-button",
4323
+ "data-size": size,
4324
+ "data-active": isActive,
4325
+ className: cls,
4326
+ ...props,
4327
+ children
4328
+ }
4329
+ )
4330
+ );
4331
+ }
3220
4332
 
3221
4333
  // src/ui/slider.tsx
3222
4334
  var import_slider = require("@base-ui/react/slider");
3223
- var import_jsx_runtime45 = require("react/jsx-runtime");
4335
+ var import_jsx_runtime49 = require("react/jsx-runtime");
3224
4336
  function Slider({ className, ...props }) {
3225
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4337
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3226
4338
  import_slider.Slider.Root,
3227
4339
  {
3228
4340
  "data-slot": "slider",
@@ -3235,7 +4347,7 @@ function Slider({ className, ...props }) {
3235
4347
  );
3236
4348
  }
3237
4349
  function SliderControl({ className, ...props }) {
3238
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4350
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3239
4351
  import_slider.Slider.Control,
3240
4352
  {
3241
4353
  "data-slot": "slider-control",
@@ -3245,12 +4357,12 @@ function SliderControl({ className, ...props }) {
3245
4357
  );
3246
4358
  }
3247
4359
  function SliderTrack({ className, ...props }) {
3248
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4360
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3249
4361
  import_slider.Slider.Track,
3250
4362
  {
3251
4363
  "data-slot": "slider-track",
3252
4364
  className: cn(
3253
- "relative h-1.5 w-full grow overflow-hidden rounded-full bg-muted",
4365
+ "relative h-1.5 w-full grow overflow-hidden rounded-full bg-(--slider-track)",
3254
4366
  className
3255
4367
  ),
3256
4368
  ...props
@@ -3258,22 +4370,22 @@ function SliderTrack({ className, ...props }) {
3258
4370
  );
3259
4371
  }
3260
4372
  function SliderIndicator({ className, ...props }) {
3261
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4373
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3262
4374
  import_slider.Slider.Indicator,
3263
4375
  {
3264
4376
  "data-slot": "slider-indicator",
3265
- className: cn("absolute h-full bg-primary", className),
4377
+ className: cn("absolute h-full bg-(--slider-range)", className),
3266
4378
  ...props
3267
4379
  }
3268
4380
  );
3269
4381
  }
3270
4382
  function SliderThumb({ className, ...props }) {
3271
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4383
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3272
4384
  import_slider.Slider.Thumb,
3273
4385
  {
3274
4386
  "data-slot": "slider-thumb",
3275
4387
  className: cn(
3276
- "block size-4 shrink-0 cursor-grab rounded-full border border-primary bg-background shadow-sm transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50",
4388
+ "block size-4 shrink-0 cursor-grab rounded-full border border-primary bg-(--slider-thumb) shadow-sm transition-colors focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-none active:cursor-grabbing disabled:pointer-events-none disabled:opacity-50",
3277
4389
  className
3278
4390
  ),
3279
4391
  ...props
@@ -3282,11 +4394,11 @@ function SliderThumb({ className, ...props }) {
3282
4394
  }
3283
4395
 
3284
4396
  // src/ui/spinner.tsx
3285
- var import_lucide_react18 = require("lucide-react");
3286
- var import_jsx_runtime46 = require("react/jsx-runtime");
4397
+ var import_lucide_react19 = require("lucide-react");
4398
+ var import_jsx_runtime50 = require("react/jsx-runtime");
3287
4399
  function Spinner({ className, ...props }) {
3288
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3289
- import_lucide_react18.Loader2Icon,
4400
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4401
+ import_lucide_react19.Loader2Icon,
3290
4402
  {
3291
4403
  role: "status",
3292
4404
  "aria-label": "Loading",
@@ -3299,22 +4411,22 @@ function Spinner({ className, ...props }) {
3299
4411
 
3300
4412
  // src/ui/switch.tsx
3301
4413
  var import_switch = require("@base-ui/react/switch");
3302
- var import_jsx_runtime47 = require("react/jsx-runtime");
4414
+ var import_jsx_runtime51 = require("react/jsx-runtime");
3303
4415
  function Switch({ className, ...props }) {
3304
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4416
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3305
4417
  import_switch.Switch.Root,
3306
4418
  {
3307
4419
  "data-slot": "switch",
3308
4420
  className: cn(
3309
- "inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-primary data-unchecked:bg-input",
4421
+ "inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-checked:bg-(--switch-track-checked) data-unchecked:bg-(--switch-track)",
3310
4422
  className
3311
4423
  ),
3312
4424
  ...props,
3313
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4425
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3314
4426
  import_switch.Switch.Thumb,
3315
4427
  {
3316
4428
  "data-slot": "switch-thumb",
3317
- className: "pointer-events-none block size-4 rounded-full bg-background transition-transform data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0"
4429
+ className: "pointer-events-none block size-4 rounded-full bg-(--switch-thumb) transition-transform data-checked:translate-x-[calc(100%-2px)] data-unchecked:translate-x-0"
3318
4430
  }
3319
4431
  )
3320
4432
  }
@@ -3322,14 +4434,14 @@ function Switch({ className, ...props }) {
3322
4434
  }
3323
4435
 
3324
4436
  // src/ui/table.tsx
3325
- var import_jsx_runtime48 = require("react/jsx-runtime");
4437
+ var import_jsx_runtime52 = require("react/jsx-runtime");
3326
4438
  function Table({ className, ...props }) {
3327
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4439
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3328
4440
  "div",
3329
4441
  {
3330
4442
  "data-slot": "table-container",
3331
4443
  className: "relative w-full overflow-x-auto",
3332
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4444
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3333
4445
  "table",
3334
4446
  {
3335
4447
  "data-slot": "table",
@@ -3341,7 +4453,7 @@ function Table({ className, ...props }) {
3341
4453
  );
3342
4454
  }
3343
4455
  function TableHeader({ className, ...props }) {
3344
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4456
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3345
4457
  "thead",
3346
4458
  {
3347
4459
  "data-slot": "table-header",
@@ -3351,7 +4463,7 @@ function TableHeader({ className, ...props }) {
3351
4463
  );
3352
4464
  }
3353
4465
  function TableBody({ className, ...props }) {
3354
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4466
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3355
4467
  "tbody",
3356
4468
  {
3357
4469
  "data-slot": "table-body",
@@ -3361,7 +4473,7 @@ function TableBody({ className, ...props }) {
3361
4473
  );
3362
4474
  }
3363
4475
  function TableFooter({ className, ...props }) {
3364
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4476
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3365
4477
  "tfoot",
3366
4478
  {
3367
4479
  "data-slot": "table-footer",
@@ -3374,7 +4486,7 @@ function TableFooter({ className, ...props }) {
3374
4486
  );
3375
4487
  }
3376
4488
  function TableRow({ className, ...props }) {
3377
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4489
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3378
4490
  "tr",
3379
4491
  {
3380
4492
  "data-slot": "table-row",
@@ -3387,7 +4499,7 @@ function TableRow({ className, ...props }) {
3387
4499
  );
3388
4500
  }
3389
4501
  function TableHead({ className, ...props }) {
3390
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4502
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3391
4503
  "th",
3392
4504
  {
3393
4505
  "data-slot": "table-head",
@@ -3400,7 +4512,7 @@ function TableHead({ className, ...props }) {
3400
4512
  );
3401
4513
  }
3402
4514
  function TableCell({ className, ...props }) {
3403
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4515
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3404
4516
  "td",
3405
4517
  {
3406
4518
  "data-slot": "table-cell",
@@ -3416,7 +4528,7 @@ function TableCaption({
3416
4528
  className,
3417
4529
  ...props
3418
4530
  }) {
3419
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4531
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3420
4532
  "caption",
3421
4533
  {
3422
4534
  "data-slot": "table-caption",
@@ -3428,12 +4540,12 @@ function TableCaption({
3428
4540
 
3429
4541
  // src/ui/tabs.tsx
3430
4542
  var import_tabs = require("@base-ui/react/tabs");
3431
- var import_jsx_runtime49 = require("react/jsx-runtime");
4543
+ var import_jsx_runtime53 = require("react/jsx-runtime");
3432
4544
  function Tabs({
3433
4545
  className,
3434
4546
  ...props
3435
4547
  }) {
3436
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4548
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3437
4549
  import_tabs.Tabs.Root,
3438
4550
  {
3439
4551
  "data-slot": "tabs",
@@ -3446,7 +4558,7 @@ function TabsList({
3446
4558
  className,
3447
4559
  ...props
3448
4560
  }) {
3449
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4561
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3450
4562
  import_tabs.Tabs.List,
3451
4563
  {
3452
4564
  "data-slot": "tabs-list",
@@ -3462,12 +4574,12 @@ function TabsTrigger({
3462
4574
  className,
3463
4575
  ...props
3464
4576
  }) {
3465
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4577
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3466
4578
  import_tabs.Tabs.Tab,
3467
4579
  {
3468
4580
  "data-slot": "tabs-trigger",
3469
4581
  className: cn(
3470
- "inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-background data-active:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4582
+ "inline-flex h-[calc(100%-1px)] flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-active:border-border data-active:bg-card data-active:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3471
4583
  className
3472
4584
  ),
3473
4585
  ...props
@@ -3478,7 +4590,7 @@ function TabsContent({
3478
4590
  className,
3479
4591
  ...props
3480
4592
  }) {
3481
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4593
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3482
4594
  import_tabs.Tabs.Panel,
3483
4595
  {
3484
4596
  "data-slot": "tabs-content",
@@ -3489,12 +4601,12 @@ function TabsContent({
3489
4601
  }
3490
4602
 
3491
4603
  // src/ui/textarea.tsx
3492
- var import_jsx_runtime50 = require("react/jsx-runtime");
4604
+ var import_jsx_runtime54 = require("react/jsx-runtime");
3493
4605
  function Textarea({
3494
4606
  className,
3495
4607
  ...props
3496
4608
  }) {
3497
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4609
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3498
4610
  "textarea",
3499
4611
  {
3500
4612
  "data-slot": "textarea",
@@ -3509,9 +4621,9 @@ function Textarea({
3509
4621
 
3510
4622
  // src/ui/toggle.tsx
3511
4623
  var import_toggle = require("@base-ui/react/toggle");
3512
- var import_class_variance_authority6 = require("class-variance-authority");
3513
- var import_jsx_runtime51 = require("react/jsx-runtime");
3514
- var toggleVariants = (0, import_class_variance_authority6.cva)(
4624
+ var import_class_variance_authority9 = require("class-variance-authority");
4625
+ var import_jsx_runtime55 = require("react/jsx-runtime");
4626
+ var toggleVariants = (0, import_class_variance_authority9.cva)(
3515
4627
  "inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-colors outline-none hover:bg-muted hover:text-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-pressed:bg-accent data-pressed:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3516
4628
  {
3517
4629
  variants: {
@@ -3537,7 +4649,7 @@ function Toggle({
3537
4649
  size,
3538
4650
  ...props
3539
4651
  }) {
3540
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
4652
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
3541
4653
  import_toggle.Toggle,
3542
4654
  {
3543
4655
  "data-slot": "toggle",
@@ -3550,9 +4662,9 @@ function Toggle({
3550
4662
  // src/ui/toggle-group.tsx
3551
4663
  var import_toggle2 = require("@base-ui/react/toggle");
3552
4664
  var import_toggle_group = require("@base-ui/react/toggle-group");
3553
- var React4 = __toESM(require("react"), 1);
3554
- var import_jsx_runtime52 = require("react/jsx-runtime");
3555
- var ToggleGroupContext = React4.createContext({
4665
+ var React7 = __toESM(require("react"), 1);
4666
+ var import_jsx_runtime56 = require("react/jsx-runtime");
4667
+ var ToggleGroupContext = React7.createContext({
3556
4668
  size: "default",
3557
4669
  variant: "default"
3558
4670
  });
@@ -3563,18 +4675,18 @@ function ToggleGroup({
3563
4675
  children,
3564
4676
  ...props
3565
4677
  }) {
3566
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4678
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
3567
4679
  import_toggle_group.ToggleGroup,
3568
4680
  {
3569
4681
  "data-slot": "toggle-group",
3570
4682
  "data-variant": variant,
3571
4683
  "data-size": size,
3572
4684
  className: cn(
3573
- "group/toggle-group flex w-fit items-center rounded-md [&>[data-slot=toggle]]:rounded-none [&>[data-slot=toggle]]:first:rounded-l-md [&>[data-slot=toggle]]:last:rounded-r-md",
4685
+ "group/toggle-group flex w-fit items-center gap-1 rounded-md",
3574
4686
  className
3575
4687
  ),
3576
4688
  ...props,
3577
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
4689
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
3578
4690
  }
3579
4691
  );
3580
4692
  }
@@ -3585,8 +4697,8 @@ function ToggleGroupItem({
3585
4697
  size,
3586
4698
  ...props
3587
4699
  }) {
3588
- const context = React4.useContext(ToggleGroupContext);
3589
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4700
+ const context = React7.useContext(ToggleGroupContext);
4701
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
3590
4702
  import_toggle2.Toggle,
3591
4703
  {
3592
4704
  "data-slot": "toggle-group-item",
@@ -3607,9 +4719,9 @@ function ToggleGroupItem({
3607
4719
  }
3608
4720
 
3609
4721
  // src/ui/typography.tsx
3610
- var import_class_variance_authority7 = require("class-variance-authority");
3611
- var import_jsx_runtime53 = require("react/jsx-runtime");
3612
- var typographyVariants = (0, import_class_variance_authority7.cva)("", {
4722
+ var import_class_variance_authority10 = require("class-variance-authority");
4723
+ var import_jsx_runtime57 = require("react/jsx-runtime");
4724
+ var typographyVariants = (0, import_class_variance_authority10.cva)("", {
3613
4725
  variants: {
3614
4726
  variant: {
3615
4727
  h1: "scroll-m-20 text-4xl font-extrabold tracking-tight text-balance",
@@ -3644,7 +4756,7 @@ var variantTagMap = {
3644
4756
  };
3645
4757
  function Typography({ className, variant = "p", ...props }) {
3646
4758
  const Tag = variantTagMap[variant ?? "p"];
3647
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4759
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
3648
4760
  Tag,
3649
4761
  {
3650
4762
  "data-slot": "typography",
@@ -3675,6 +4787,15 @@ function Typography({ className, variant = "p", ...props }) {
3675
4787
  AlertDialogTrigger,
3676
4788
  AlertTitle,
3677
4789
  AspectRatio,
4790
+ Attachment,
4791
+ AttachmentAction,
4792
+ AttachmentActions,
4793
+ AttachmentContent,
4794
+ AttachmentDescription,
4795
+ AttachmentGroup,
4796
+ AttachmentMedia,
4797
+ AttachmentTitle,
4798
+ AttachmentTrigger,
3678
4799
  Avatar,
3679
4800
  AvatarFallback,
3680
4801
  AvatarImage,
@@ -3686,6 +4807,10 @@ function Typography({ className, variant = "p", ...props }) {
3686
4807
  BreadcrumbList,
3687
4808
  BreadcrumbPage,
3688
4809
  BreadcrumbSeparator,
4810
+ Bubble,
4811
+ BubbleContent,
4812
+ BubbleGroup,
4813
+ BubbleReactions,
3689
4814
  Button,
3690
4815
  ButtonGroup,
3691
4816
  CHART_TOKEN_COLORS,
@@ -3783,6 +4908,12 @@ function Typography({ className, variant = "p", ...props }) {
3783
4908
  MenubarMenu,
3784
4909
  MenubarSeparator,
3785
4910
  MenubarTrigger,
4911
+ Message,
4912
+ MessageAvatar,
4913
+ MessageContent,
4914
+ MessageFooter,
4915
+ MessageGroup,
4916
+ MessageHeader,
3786
4917
  NavigationMenu,
3787
4918
  NavigationMenuContent,
3788
4919
  NavigationMenuItem,
@@ -3831,6 +4962,29 @@ function Typography({ className, variant = "p", ...props }) {
3831
4962
  SheetPortal,
3832
4963
  SheetTitle,
3833
4964
  SheetTrigger,
4965
+ SidebarContentArea,
4966
+ SidebarFooterArea,
4967
+ SidebarGroup,
4968
+ SidebarGroupAction,
4969
+ SidebarGroupContent,
4970
+ SidebarGroupLabel,
4971
+ SidebarHeaderArea,
4972
+ SidebarInput,
4973
+ SidebarInset,
4974
+ SidebarMenu,
4975
+ SidebarMenuAction,
4976
+ SidebarMenuBadge,
4977
+ SidebarMenuButton,
4978
+ SidebarMenuItem,
4979
+ SidebarMenuSkeleton,
4980
+ SidebarMenuSub,
4981
+ SidebarMenuSubButton,
4982
+ SidebarMenuSubItem,
4983
+ SidebarProvider,
4984
+ SidebarRail,
4985
+ SidebarRoot,
4986
+ SidebarSeparator,
4987
+ SidebarTrigger,
3834
4988
  Skeleton,
3835
4989
  Slider,
3836
4990
  SliderControl,
@@ -3869,5 +5023,6 @@ function Typography({ className, variant = "p", ...props }) {
3869
5023
  toastManager,
3870
5024
  toggleVariants,
3871
5025
  typographyVariants,
3872
- useCarousel
5026
+ useCarousel,
5027
+ useSidebar
3873
5028
  });