@pactor-app/ui 1.44.0 → 1.46.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
@@ -34,6 +34,7 @@ __export(ui_exports, {
34
34
  AccordionContent: () => AccordionContent,
35
35
  AccordionItem: () => AccordionItem,
36
36
  AccordionTrigger: () => AccordionTrigger,
37
+ ActionButton: () => ActionButton,
37
38
  Alert: () => Alert,
38
39
  AlertDescription: () => AlertDescription,
39
40
  AlertDialog: () => AlertDialog,
@@ -101,11 +102,13 @@ __export(ui_exports, {
101
102
  CommandInput: () => CommandInput,
102
103
  CommandItem: () => CommandItem,
103
104
  CommandList: () => CommandList,
105
+ ConfirmMorph: () => ConfirmMorph,
104
106
  ContextMenu: () => ContextMenu,
105
107
  ContextMenuContent: () => ContextMenuContent,
106
108
  ContextMenuItem: () => ContextMenuItem,
107
109
  ContextMenuSeparator: () => ContextMenuSeparator,
108
110
  ContextMenuTrigger: () => ContextMenuTrigger,
111
+ CopyButton: () => CopyButton,
109
112
  Dialog: () => Dialog,
110
113
  DialogClose: () => DialogClose,
111
114
  DialogContent: () => DialogContent,
@@ -139,13 +142,16 @@ __export(ui_exports, {
139
142
  EmptyDescription: () => EmptyDescription,
140
143
  EmptyHeader: () => EmptyHeader,
141
144
  EmptyTitle: () => EmptyTitle,
145
+ ExpandingButtonGroup: () => ExpandingButtonGroup,
142
146
  Field: () => Field,
143
147
  FieldDescription: () => FieldDescription,
144
148
  FieldError: () => FieldError,
145
149
  FieldLabel: () => FieldLabel,
150
+ FloatingButtonGroup: () => FloatingButtonGroup,
146
151
  HoverCard: () => HoverCard,
147
152
  HoverCardContent: () => HoverCardContent,
148
153
  HoverCardTrigger: () => HoverCardTrigger,
154
+ IconMorph: () => IconMorph,
149
155
  Input: () => Input,
150
156
  InputGroup: () => InputGroup,
151
157
  InputGroupAddon: () => InputGroupAddon,
@@ -162,6 +168,7 @@ __export(ui_exports, {
162
168
  ItemTitle: () => ItemTitle,
163
169
  Kbd: () => Kbd,
164
170
  Label: () => Label,
171
+ MORPH_PAIRS: () => MORPH_PAIRS,
165
172
  Menubar: () => Menubar,
166
173
  MenubarContent: () => MenubarContent,
167
174
  MenubarItem: () => MenubarItem,
@@ -252,6 +259,7 @@ __export(ui_exports, {
252
259
  SliderThumb: () => SliderThumb,
253
260
  SliderTrack: () => SliderTrack,
254
261
  Spinner: () => Spinner,
262
+ SplitButton: () => SplitButton,
255
263
  Switch: () => Switch,
256
264
  Table: () => Table,
257
265
  TableBody: () => TableBody,
@@ -375,10 +383,172 @@ function AccordionContent({
375
383
  );
376
384
  }
377
385
 
378
- // src/ui/alert.tsx
386
+ // src/ui/button.tsx
387
+ var import_button = require("@base-ui/react/button");
379
388
  var import_class_variance_authority = require("class-variance-authority");
389
+ var React = __toESM(require("react"), 1);
380
390
  var import_jsx_runtime2 = require("react/jsx-runtime");
381
- var alertVariants = (0, import_class_variance_authority.cva)(
391
+ var buttonVariants = (0, import_class_variance_authority.cva)(
392
+ "inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
393
+ {
394
+ variants: {
395
+ variant: {
396
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
397
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
398
+ outline: "border border-border bg-card hover:bg-accent hover:text-accent-foreground",
399
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
400
+ ghost: "hover:bg-accent hover:text-accent-foreground",
401
+ link: "text-primary underline-offset-4 hover:underline"
402
+ },
403
+ size: {
404
+ default: "h-9 px-4 py-2",
405
+ xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
406
+ sm: "h-8 gap-1.5 rounded-md px-3 text-xs",
407
+ lg: "h-10 rounded-md px-6",
408
+ icon: "size-9",
409
+ "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
410
+ "icon-sm": "size-8",
411
+ "icon-lg": "size-10"
412
+ }
413
+ },
414
+ defaultVariants: {
415
+ variant: "default",
416
+ size: "default"
417
+ }
418
+ }
419
+ );
420
+ function Button({
421
+ className,
422
+ variant,
423
+ size,
424
+ asChild = false,
425
+ children,
426
+ ...props
427
+ }) {
428
+ if (asChild && React.isValidElement(children)) {
429
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
430
+ import_button.Button,
431
+ {
432
+ "data-slot": "button",
433
+ className: cn(buttonVariants({ variant, size, className })),
434
+ render: children,
435
+ ...props
436
+ }
437
+ );
438
+ }
439
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
440
+ import_button.Button,
441
+ {
442
+ "data-slot": "button",
443
+ className: cn(buttonVariants({ variant, size, className })),
444
+ ...props,
445
+ children
446
+ }
447
+ );
448
+ }
449
+
450
+ // src/ui/tooltip.tsx
451
+ var import_tooltip = require("@base-ui/react/tooltip");
452
+ var import_jsx_runtime3 = require("react/jsx-runtime");
453
+ function TooltipProvider({
454
+ delay = 0,
455
+ ...props
456
+ }) {
457
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
458
+ import_tooltip.Tooltip.Provider,
459
+ {
460
+ "data-slot": "tooltip-provider",
461
+ delay,
462
+ ...props
463
+ }
464
+ );
465
+ }
466
+ function Tooltip({
467
+ ...props
468
+ }) {
469
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_tooltip.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
470
+ }
471
+ function TooltipTrigger({
472
+ ...props
473
+ }) {
474
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_tooltip.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
475
+ }
476
+ function TooltipContent({
477
+ className,
478
+ side = "top",
479
+ sideOffset = 4,
480
+ align = "center",
481
+ children,
482
+ ...props
483
+ }) {
484
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
485
+ import_tooltip.Tooltip.Positioner,
486
+ {
487
+ align,
488
+ side,
489
+ sideOffset,
490
+ className: "isolate z-50",
491
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
492
+ import_tooltip.Tooltip.Popup,
493
+ {
494
+ "data-slot": "tooltip-content",
495
+ className: cn(
496
+ "z-50 w-fit origin-(--transform-origin) rounded-md bg-primary px-3 py-1.5 text-xs text-balance text-primary-foreground duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fill-mode-forwards data-closed:fade-out-0 data-closed:zoom-out-95",
497
+ className
498
+ ),
499
+ ...props,
500
+ children: [
501
+ children,
502
+ /* @__PURE__ */ (0, import_jsx_runtime3.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" })
503
+ ]
504
+ }
505
+ )
506
+ }
507
+ ) });
508
+ }
509
+
510
+ // src/ui/action-button.tsx
511
+ var import_jsx_runtime4 = require("react/jsx-runtime");
512
+ function ActionButton({
513
+ className,
514
+ variant,
515
+ size,
516
+ icon,
517
+ label,
518
+ tooltip,
519
+ type = "button",
520
+ ...props
521
+ }) {
522
+ const resolvedSize = size ?? (label ? "sm" : "icon-sm");
523
+ if (process.env.NODE_ENV !== "production" && !label && !props["aria-label"]) {
524
+ console.warn("[ActionButton] icon-only \u7528\u6CD5\u987B\u4F20 aria-label \u4EE5\u4FDD\u8BC1\u53EF\u8BBF\u95EE\u6027\u3002");
525
+ }
526
+ const button = /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
527
+ Button,
528
+ {
529
+ "data-slot": "action-button",
530
+ variant,
531
+ size: resolvedSize,
532
+ type,
533
+ className: cn(className),
534
+ ...props,
535
+ children: [
536
+ icon,
537
+ label ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { children: label }) : null
538
+ ]
539
+ }
540
+ );
541
+ if (!tooltip) return button;
542
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Tooltip, { children: [
543
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipTrigger, { render: button }),
544
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipContent, { children: tooltip })
545
+ ] });
546
+ }
547
+
548
+ // src/ui/alert.tsx
549
+ var import_class_variance_authority2 = require("class-variance-authority");
550
+ var import_jsx_runtime5 = require("react/jsx-runtime");
551
+ var alertVariants = (0, import_class_variance_authority2.cva)(
382
552
  "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border border-border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
383
553
  {
384
554
  variants: {
@@ -400,7 +570,7 @@ function Alert({
400
570
  variant,
401
571
  ...props
402
572
  }) {
403
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
573
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
404
574
  "div",
405
575
  {
406
576
  "data-slot": "alert",
@@ -411,7 +581,7 @@ function Alert({
411
581
  );
412
582
  }
413
583
  function AlertTitle({ className, ...props }) {
414
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
584
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
415
585
  "div",
416
586
  {
417
587
  "data-slot": "alert-title",
@@ -427,7 +597,7 @@ function AlertDescription({
427
597
  className,
428
598
  ...props
429
599
  }) {
430
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
600
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
431
601
  "div",
432
602
  {
433
603
  "data-slot": "alert-description",
@@ -443,73 +613,7 @@ function AlertDescription({
443
613
  // src/ui/attachment.tsx
444
614
  var import_class_variance_authority3 = require("class-variance-authority");
445
615
  var React2 = __toESM(require("react"), 1);
446
-
447
- // src/ui/button.tsx
448
- var import_button = require("@base-ui/react/button");
449
- var import_class_variance_authority2 = require("class-variance-authority");
450
- var React = __toESM(require("react"), 1);
451
- var import_jsx_runtime3 = require("react/jsx-runtime");
452
- var buttonVariants = (0, import_class_variance_authority2.cva)(
453
- "inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium outline-none transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
454
- {
455
- variants: {
456
- variant: {
457
- default: "bg-primary text-primary-foreground hover:bg-primary/90",
458
- destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 focus-visible:ring-destructive/20",
459
- outline: "border border-border bg-card hover:bg-accent hover:text-accent-foreground",
460
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
461
- ghost: "hover:bg-accent hover:text-accent-foreground",
462
- link: "text-primary underline-offset-4 hover:underline"
463
- },
464
- size: {
465
- default: "h-9 px-4 py-2",
466
- xs: "h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",
467
- sm: "h-8 gap-1.5 rounded-md px-3 text-xs",
468
- lg: "h-10 rounded-md px-6",
469
- icon: "size-9",
470
- "icon-xs": "size-6 rounded-md [&_svg:not([class*='size-'])]:size-3",
471
- "icon-sm": "size-8",
472
- "icon-lg": "size-10"
473
- }
474
- },
475
- defaultVariants: {
476
- variant: "default",
477
- size: "default"
478
- }
479
- }
480
- );
481
- function Button({
482
- className,
483
- variant,
484
- size,
485
- asChild = false,
486
- children,
487
- ...props
488
- }) {
489
- if (asChild && React.isValidElement(children)) {
490
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
491
- import_button.Button,
492
- {
493
- "data-slot": "button",
494
- className: cn(buttonVariants({ variant, size, className })),
495
- render: children,
496
- ...props
497
- }
498
- );
499
- }
500
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
501
- import_button.Button,
502
- {
503
- "data-slot": "button",
504
- className: cn(buttonVariants({ variant, size, className })),
505
- ...props,
506
- children
507
- }
508
- );
509
- }
510
-
511
- // src/ui/attachment.tsx
512
- var import_jsx_runtime4 = require("react/jsx-runtime");
616
+ var import_jsx_runtime6 = require("react/jsx-runtime");
513
617
  var attachmentVariants = (0, import_class_variance_authority3.cva)(
514
618
  "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",
515
619
  {
@@ -533,7 +637,7 @@ function Attachment({
533
637
  orientation = "horizontal",
534
638
  ...props
535
639
  }) {
536
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
640
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
537
641
  "div",
538
642
  {
539
643
  "data-slot": "attachment",
@@ -564,7 +668,7 @@ function AttachmentMedia({
564
668
  variant = "icon",
565
669
  ...props
566
670
  }) {
567
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
671
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
568
672
  "div",
569
673
  {
570
674
  "data-slot": "attachment-media",
@@ -578,7 +682,7 @@ function AttachmentContent({
578
682
  className,
579
683
  ...props
580
684
  }) {
581
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
685
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
582
686
  "div",
583
687
  {
584
688
  "data-slot": "attachment-content",
@@ -594,7 +698,7 @@ function AttachmentTitle({
594
698
  className,
595
699
  ...props
596
700
  }) {
597
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
701
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
598
702
  "span",
599
703
  {
600
704
  "data-slot": "attachment-title",
@@ -610,7 +714,7 @@ function AttachmentDescription({
610
714
  className,
611
715
  ...props
612
716
  }) {
613
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
717
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
614
718
  "span",
615
719
  {
616
720
  "data-slot": "attachment-description",
@@ -627,7 +731,7 @@ function AttachmentActions({
627
731
  className,
628
732
  ...props
629
733
  }) {
630
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
734
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
631
735
  "div",
632
736
  {
633
737
  "data-slot": "attachment-actions",
@@ -645,7 +749,7 @@ function AttachmentAction({
645
749
  size = "icon-xs",
646
750
  ...props
647
751
  }) {
648
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
752
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
649
753
  Button,
650
754
  {
651
755
  "data-slot": "attachment-action",
@@ -674,7 +778,7 @@ function AttachmentTrigger({
674
778
  ...props
675
779
  });
676
780
  }
677
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
781
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
678
782
  "button",
679
783
  {
680
784
  "data-slot": "attachment-trigger",
@@ -686,7 +790,7 @@ function AttachmentTrigger({
686
790
  );
687
791
  }
688
792
  function AttachmentGroup({ className, ...props }) {
689
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
793
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
690
794
  "div",
691
795
  {
692
796
  "data-slot": "attachment-group",
@@ -701,27 +805,27 @@ function AttachmentGroup({ className, ...props }) {
701
805
 
702
806
  // src/ui/alert-dialog.tsx
703
807
  var import_alert_dialog = require("@base-ui/react/alert-dialog");
704
- var import_jsx_runtime5 = require("react/jsx-runtime");
808
+ var import_jsx_runtime7 = require("react/jsx-runtime");
705
809
  function AlertDialog({
706
810
  ...props
707
811
  }) {
708
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_alert_dialog.AlertDialog.Root, { "data-slot": "alert-dialog", ...props });
812
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_alert_dialog.AlertDialog.Root, { "data-slot": "alert-dialog", ...props });
709
813
  }
710
814
  function AlertDialogTrigger({
711
815
  ...props
712
816
  }) {
713
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_alert_dialog.AlertDialog.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
817
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_alert_dialog.AlertDialog.Trigger, { "data-slot": "alert-dialog-trigger", ...props });
714
818
  }
715
819
  function AlertDialogPortal({
716
820
  ...props
717
821
  }) {
718
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_alert_dialog.AlertDialog.Portal, { "data-slot": "alert-dialog-portal", ...props });
822
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_alert_dialog.AlertDialog.Portal, { "data-slot": "alert-dialog-portal", ...props });
719
823
  }
720
824
  function AlertDialogOverlay({
721
825
  className,
722
826
  ...props
723
827
  }) {
724
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
828
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
725
829
  import_alert_dialog.AlertDialog.Backdrop,
726
830
  {
727
831
  "data-slot": "alert-dialog-overlay",
@@ -737,9 +841,9 @@ function AlertDialogContent({
737
841
  className,
738
842
  ...props
739
843
  }) {
740
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(AlertDialogPortal, { "data-slot": "alert-dialog-portal", children: [
741
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AlertDialogOverlay, {}),
742
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
844
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(AlertDialogPortal, { "data-slot": "alert-dialog-portal", children: [
845
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(AlertDialogOverlay, {}),
846
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
743
847
  import_alert_dialog.AlertDialog.Popup,
744
848
  {
745
849
  "data-slot": "alert-dialog-content",
@@ -756,7 +860,7 @@ function AlertDialogHeader({
756
860
  className,
757
861
  ...props
758
862
  }) {
759
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
863
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
760
864
  "div",
761
865
  {
762
866
  "data-slot": "alert-dialog-header",
@@ -769,7 +873,7 @@ function AlertDialogFooter({
769
873
  className,
770
874
  ...props
771
875
  }) {
772
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
876
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
773
877
  "div",
774
878
  {
775
879
  "data-slot": "alert-dialog-footer",
@@ -785,7 +889,7 @@ function AlertDialogTitle({
785
889
  className,
786
890
  ...props
787
891
  }) {
788
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
892
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
789
893
  import_alert_dialog.AlertDialog.Title,
790
894
  {
791
895
  "data-slot": "alert-dialog-title",
@@ -798,7 +902,7 @@ function AlertDialogDescription({
798
902
  className,
799
903
  ...props
800
904
  }) {
801
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
905
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
802
906
  import_alert_dialog.AlertDialog.Description,
803
907
  {
804
908
  "data-slot": "alert-dialog-description",
@@ -812,7 +916,7 @@ function AlertDialogAction({
812
916
  variant = "default",
813
917
  ...props
814
918
  }) {
815
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
919
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
816
920
  import_alert_dialog.AlertDialog.Close,
817
921
  {
818
922
  "data-slot": "alert-dialog-action",
@@ -826,7 +930,7 @@ function AlertDialogCancel({
826
930
  variant = "outline",
827
931
  ...props
828
932
  }) {
829
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
933
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
830
934
  import_alert_dialog.AlertDialog.Close,
831
935
  {
832
936
  "data-slot": "alert-dialog-cancel",
@@ -837,14 +941,14 @@ function AlertDialogCancel({
837
941
  }
838
942
 
839
943
  // src/ui/aspect-ratio.tsx
840
- var import_jsx_runtime6 = require("react/jsx-runtime");
944
+ var import_jsx_runtime8 = require("react/jsx-runtime");
841
945
  function AspectRatio({
842
946
  ratio = 1,
843
947
  className,
844
948
  style,
845
949
  ...props
846
950
  }) {
847
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
951
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
848
952
  "div",
849
953
  {
850
954
  "data-slot": "aspect-ratio",
@@ -857,9 +961,9 @@ function AspectRatio({
857
961
 
858
962
  // src/ui/avatar.tsx
859
963
  var import_avatar = require("@base-ui/react/avatar");
860
- var import_jsx_runtime7 = require("react/jsx-runtime");
964
+ var import_jsx_runtime9 = require("react/jsx-runtime");
861
965
  function Avatar({ className, ...props }) {
862
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
966
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
863
967
  import_avatar.Avatar.Root,
864
968
  {
865
969
  "data-slot": "avatar",
@@ -872,7 +976,7 @@ function Avatar({ className, ...props }) {
872
976
  );
873
977
  }
874
978
  function AvatarImage({ className, ...props }) {
875
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
979
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
876
980
  import_avatar.Avatar.Image,
877
981
  {
878
982
  "data-slot": "avatar-image",
@@ -882,7 +986,7 @@ function AvatarImage({ className, ...props }) {
882
986
  );
883
987
  }
884
988
  function AvatarFallback({ className, ...props }) {
885
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
989
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
886
990
  import_avatar.Avatar.Fallback,
887
991
  {
888
992
  "data-slot": "avatar-fallback",
@@ -897,7 +1001,7 @@ function AvatarFallback({ className, ...props }) {
897
1001
 
898
1002
  // src/ui/badge.tsx
899
1003
  var import_class_variance_authority4 = require("class-variance-authority");
900
- var import_jsx_runtime8 = require("react/jsx-runtime");
1004
+ var import_jsx_runtime10 = require("react/jsx-runtime");
901
1005
  var badgeVariants = (0, import_class_variance_authority4.cva)(
902
1006
  "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",
903
1007
  {
@@ -919,7 +1023,7 @@ function Badge({
919
1023
  variant,
920
1024
  ...props
921
1025
  }) {
922
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1026
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
923
1027
  "span",
924
1028
  {
925
1029
  "data-slot": "badge",
@@ -932,12 +1036,12 @@ function Badge({
932
1036
  // src/ui/breadcrumb.tsx
933
1037
  var import_lucide_react2 = require("lucide-react");
934
1038
  var React3 = __toESM(require("react"), 1);
935
- var import_jsx_runtime9 = require("react/jsx-runtime");
1039
+ var import_jsx_runtime11 = require("react/jsx-runtime");
936
1040
  function Breadcrumb({ ...props }) {
937
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
1041
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
938
1042
  }
939
1043
  function BreadcrumbList({ className, ...props }) {
940
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1044
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
941
1045
  "ol",
942
1046
  {
943
1047
  "data-slot": "breadcrumb-list",
@@ -950,7 +1054,7 @@ function BreadcrumbList({ className, ...props }) {
950
1054
  );
951
1055
  }
952
1056
  function BreadcrumbItem({ className, ...props }) {
953
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1057
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
954
1058
  "li",
955
1059
  {
956
1060
  "data-slot": "breadcrumb-item",
@@ -975,7 +1079,7 @@ function BreadcrumbLink({
975
1079
  )
976
1080
  });
977
1081
  }
978
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1082
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
979
1083
  "a",
980
1084
  {
981
1085
  "data-slot": "breadcrumb-link",
@@ -985,7 +1089,7 @@ function BreadcrumbLink({
985
1089
  );
986
1090
  }
987
1091
  function BreadcrumbPage({ className, ...props }) {
988
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1092
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
989
1093
  "span",
990
1094
  {
991
1095
  "data-slot": "breadcrumb-page",
@@ -1002,7 +1106,7 @@ function BreadcrumbSeparator({
1002
1106
  className,
1003
1107
  ...props
1004
1108
  }) {
1005
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1109
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1006
1110
  "li",
1007
1111
  {
1008
1112
  "data-slot": "breadcrumb-separator",
@@ -1010,12 +1114,12 @@ function BreadcrumbSeparator({
1010
1114
  "aria-hidden": "true",
1011
1115
  className: cn("[&>svg]:size-3.5", className),
1012
1116
  ...props,
1013
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react2.ChevronRightIcon, {})
1117
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react2.ChevronRightIcon, {})
1014
1118
  }
1015
1119
  );
1016
1120
  }
1017
1121
  function BreadcrumbEllipsis({ className, ...props }) {
1018
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1122
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1019
1123
  "span",
1020
1124
  {
1021
1125
  "data-slot": "breadcrumb-ellipsis",
@@ -1024,17 +1128,17 @@ function BreadcrumbEllipsis({ className, ...props }) {
1024
1128
  className: cn("flex size-9 items-center justify-center", className),
1025
1129
  ...props,
1026
1130
  children: [
1027
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react2.MoreHorizontalIcon, { className: "size-4" }),
1028
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "More" })
1131
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react2.MoreHorizontalIcon, { className: "size-4" }),
1132
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "More" })
1029
1133
  ]
1030
1134
  }
1031
1135
  );
1032
1136
  }
1033
1137
 
1034
1138
  // src/ui/button-group.tsx
1035
- var import_jsx_runtime10 = require("react/jsx-runtime");
1139
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1036
1140
  function ButtonGroup({ className, ...props }) {
1037
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1141
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1038
1142
  "div",
1039
1143
  {
1040
1144
  role: "group",
@@ -1051,9 +1155,9 @@ function ButtonGroup({ className, ...props }) {
1051
1155
  // src/ui/bubble.tsx
1052
1156
  var React4 = __toESM(require("react"), 1);
1053
1157
  var import_class_variance_authority5 = require("class-variance-authority");
1054
- var import_jsx_runtime11 = require("react/jsx-runtime");
1158
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1055
1159
  function BubbleGroup({ className, ...props }) {
1056
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1160
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1057
1161
  "div",
1058
1162
  {
1059
1163
  "data-slot": "bubble-group",
@@ -1087,7 +1191,7 @@ function Bubble({
1087
1191
  className,
1088
1192
  ...props
1089
1193
  }) {
1090
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1194
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1091
1195
  "div",
1092
1196
  {
1093
1197
  "data-slot": "bubble",
@@ -1115,7 +1219,7 @@ function BubbleContent({
1115
1219
  ...props
1116
1220
  });
1117
1221
  }
1118
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1222
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1119
1223
  "div",
1120
1224
  {
1121
1225
  "data-slot": "bubble-content",
@@ -1150,7 +1254,7 @@ function BubbleReactions({
1150
1254
  className,
1151
1255
  ...props
1152
1256
  }) {
1153
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1257
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1154
1258
  "div",
1155
1259
  {
1156
1260
  "data-slot": "bubble-reactions",
@@ -1165,7 +1269,7 @@ function BubbleReactions({
1165
1269
  // src/ui/calendar.tsx
1166
1270
  var import_lucide_react3 = require("lucide-react");
1167
1271
  var import_react_day_picker = require("react-day-picker");
1168
- var import_jsx_runtime12 = require("react/jsx-runtime");
1272
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1169
1273
  function Calendar({
1170
1274
  className,
1171
1275
  classNames,
@@ -1173,7 +1277,7 @@ function Calendar({
1173
1277
  ...props
1174
1278
  }) {
1175
1279
  const defaultClassNames = (0, import_react_day_picker.getDefaultClassNames)();
1176
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1280
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1177
1281
  import_react_day_picker.DayPicker,
1178
1282
  {
1179
1283
  showOutsideDays,
@@ -1230,7 +1334,7 @@ function Calendar({
1230
1334
  ...classNames
1231
1335
  },
1232
1336
  components: {
1233
- 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" })
1337
+ Chevron: ({ orientation }) => orientation === "left" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react3.ChevronLeftIcon, { className: "size-4" }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react3.ChevronRightIcon, { className: "size-4" })
1234
1338
  },
1235
1339
  ...props
1236
1340
  }
@@ -1241,7 +1345,7 @@ function Calendar({
1241
1345
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
1242
1346
  var import_lucide_react4 = require("lucide-react");
1243
1347
  var React5 = __toESM(require("react"), 1);
1244
- var import_jsx_runtime13 = require("react/jsx-runtime");
1348
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1245
1349
  var CarouselContext = React5.createContext(null);
1246
1350
  function useCarousel() {
1247
1351
  const context = React5.useContext(CarouselContext);
@@ -1296,7 +1400,7 @@ function Carousel({
1296
1400
  api.off("select", onSelect);
1297
1401
  };
1298
1402
  }, [api, onSelect]);
1299
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1403
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1300
1404
  CarouselContext.Provider,
1301
1405
  {
1302
1406
  value: {
@@ -1309,7 +1413,7 @@ function Carousel({
1309
1413
  canScrollPrev,
1310
1414
  canScrollNext
1311
1415
  },
1312
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1416
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1313
1417
  "div",
1314
1418
  {
1315
1419
  onKeyDownCapture: handleKeyDown,
@@ -1326,7 +1430,7 @@ function Carousel({
1326
1430
  }
1327
1431
  function CarouselContent({ className, ...props }) {
1328
1432
  const { carouselRef, orientation } = useCarousel();
1329
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { ref: carouselRef, className: "overflow-hidden", "data-slot": "carousel-viewport", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1433
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ref: carouselRef, className: "overflow-hidden", "data-slot": "carousel-viewport", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1330
1434
  "div",
1331
1435
  {
1332
1436
  className: cn(
@@ -1340,7 +1444,7 @@ function CarouselContent({ className, ...props }) {
1340
1444
  }
1341
1445
  function CarouselItem({ className, ...props }) {
1342
1446
  const { orientation } = useCarousel();
1343
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1447
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1344
1448
  "div",
1345
1449
  {
1346
1450
  role: "group",
@@ -1362,7 +1466,7 @@ function CarouselPrevious({
1362
1466
  ...props
1363
1467
  }) {
1364
1468
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
1365
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1469
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1366
1470
  Button,
1367
1471
  {
1368
1472
  "data-slot": "carousel-previous",
@@ -1377,8 +1481,8 @@ function CarouselPrevious({
1377
1481
  onClick: scrollPrev,
1378
1482
  ...props,
1379
1483
  children: [
1380
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.ChevronLeftIcon, {}),
1381
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "sr-only", children: "Previous slide" })
1484
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react4.ChevronLeftIcon, {}),
1485
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sr-only", children: "Previous slide" })
1382
1486
  ]
1383
1487
  }
1384
1488
  );
@@ -1390,7 +1494,7 @@ function CarouselNext({
1390
1494
  ...props
1391
1495
  }) {
1392
1496
  const { orientation, scrollNext, canScrollNext } = useCarousel();
1393
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1497
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1394
1498
  Button,
1395
1499
  {
1396
1500
  "data-slot": "carousel-next",
@@ -1405,8 +1509,8 @@ function CarouselNext({
1405
1509
  onClick: scrollNext,
1406
1510
  ...props,
1407
1511
  children: [
1408
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react4.ChevronRightIcon, {}),
1409
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "sr-only", children: "Next slide" })
1512
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react4.ChevronRightIcon, {}),
1513
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "sr-only", children: "Next slide" })
1410
1514
  ]
1411
1515
  }
1412
1516
  );
@@ -1415,9 +1519,9 @@ function CarouselNext({
1415
1519
  // src/ui/checkbox.tsx
1416
1520
  var import_checkbox = require("@base-ui/react/checkbox");
1417
1521
  var import_lucide_react5 = require("lucide-react");
1418
- var import_jsx_runtime14 = require("react/jsx-runtime");
1522
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1419
1523
  function Checkbox({ className, indeterminate, ...props }) {
1420
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1524
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1421
1525
  import_checkbox.Checkbox.Root,
1422
1526
  {
1423
1527
  "data-slot": "checkbox",
@@ -1427,12 +1531,12 @@ function Checkbox({ className, indeterminate, ...props }) {
1427
1531
  className
1428
1532
  ),
1429
1533
  ...props,
1430
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1534
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1431
1535
  import_checkbox.Checkbox.Indicator,
1432
1536
  {
1433
1537
  "data-slot": "checkbox-indicator",
1434
1538
  className: "flex items-center justify-center text-current",
1435
- children: indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react5.MinusIcon, { className: "size-3.5" }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react5.CheckIcon, { className: "size-3.5" })
1539
+ children: indeterminate ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react5.MinusIcon, { className: "size-3.5" }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react5.CheckIcon, { className: "size-3.5" })
1436
1540
  }
1437
1541
  )
1438
1542
  }
@@ -1442,18 +1546,18 @@ function Checkbox({ className, indeterminate, ...props }) {
1442
1546
  // src/ui/collapsible.tsx
1443
1547
  var import_collapsible = require("@base-ui/react/collapsible");
1444
1548
  var import_lucide_react6 = require("lucide-react");
1445
- var import_jsx_runtime15 = require("react/jsx-runtime");
1549
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1446
1550
  function Collapsible({
1447
1551
  ...props
1448
1552
  }) {
1449
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_collapsible.Collapsible.Root, { "data-slot": "collapsible", ...props });
1553
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_collapsible.Collapsible.Root, { "data-slot": "collapsible", ...props });
1450
1554
  }
1451
1555
  function CollapsibleTrigger({
1452
1556
  className,
1453
1557
  children,
1454
1558
  ...props
1455
1559
  }) {
1456
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1560
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1457
1561
  import_collapsible.Collapsible.Trigger,
1458
1562
  {
1459
1563
  "data-slot": "collapsible-trigger",
@@ -1464,7 +1568,7 @@ function CollapsibleTrigger({
1464
1568
  ...props,
1465
1569
  children: [
1466
1570
  children,
1467
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react6.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
1571
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react6.ChevronDownIcon, { className: "pointer-events-none size-4 shrink-0 text-muted-foreground transition-transform duration-200" })
1468
1572
  ]
1469
1573
  }
1470
1574
  );
@@ -1473,7 +1577,7 @@ function CollapsibleContent({
1473
1577
  className,
1474
1578
  ...props
1475
1579
  }) {
1476
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1580
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1477
1581
  import_collapsible.Collapsible.Panel,
1478
1582
  {
1479
1583
  "data-slot": "collapsible-content",
@@ -1491,16 +1595,16 @@ var import_lucide_react7 = require("lucide-react");
1491
1595
 
1492
1596
  // src/ui/popover.tsx
1493
1597
  var import_popover = require("@base-ui/react/popover");
1494
- var import_jsx_runtime16 = require("react/jsx-runtime");
1598
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1495
1599
  function Popover({
1496
1600
  ...props
1497
1601
  }) {
1498
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_popover.Popover.Root, { "data-slot": "popover", ...props });
1602
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_popover.Popover.Root, { "data-slot": "popover", ...props });
1499
1603
  }
1500
1604
  function PopoverTrigger({
1501
1605
  ...props
1502
1606
  }) {
1503
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_popover.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
1607
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_popover.Popover.Trigger, { "data-slot": "popover-trigger", ...props });
1504
1608
  }
1505
1609
  function PopoverContent({
1506
1610
  className,
@@ -1510,7 +1614,7 @@ function PopoverContent({
1510
1614
  anchor,
1511
1615
  ...props
1512
1616
  }) {
1513
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1617
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_popover.Popover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1514
1618
  import_popover.Popover.Positioner,
1515
1619
  {
1516
1620
  align,
@@ -1518,7 +1622,7 @@ function PopoverContent({
1518
1622
  sideOffset,
1519
1623
  anchor,
1520
1624
  className: "isolate z-50",
1521
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1625
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1522
1626
  import_popover.Popover.Popup,
1523
1627
  {
1524
1628
  "data-slot": "popover-content",
@@ -1534,13 +1638,13 @@ function PopoverContent({
1534
1638
  }
1535
1639
 
1536
1640
  // src/ui/combobox.tsx
1537
- var import_jsx_runtime17 = require("react/jsx-runtime");
1641
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1538
1642
  function Combobox({
1539
1643
  open,
1540
1644
  onOpenChange,
1541
1645
  children
1542
1646
  }) {
1543
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Popover, { open, onOpenChange: (next) => onOpenChange?.(next), children });
1647
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Popover, { open, onOpenChange: (next) => onOpenChange?.(next), children });
1544
1648
  }
1545
1649
  function ComboboxTrigger({
1546
1650
  className,
@@ -1549,7 +1653,7 @@ function ComboboxTrigger({
1549
1653
  iconClassName,
1550
1654
  ...props
1551
1655
  }) {
1552
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1656
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1553
1657
  PopoverTrigger,
1554
1658
  {
1555
1659
  "data-slot": "combobox-trigger",
@@ -1559,9 +1663,9 @@ function ComboboxTrigger({
1559
1663
  ),
1560
1664
  ...props,
1561
1665
  children: [
1562
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children }),
1666
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "min-w-0 flex-1 truncate text-left", children }),
1563
1667
  endAdornment,
1564
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react7.ChevronsUpDownIcon, { className: cn("size-4 shrink-0 opacity-50", iconClassName) })
1668
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react7.ChevronsUpDownIcon, { className: cn("size-4 shrink-0 opacity-50", iconClassName) })
1565
1669
  ]
1566
1670
  }
1567
1671
  );
@@ -1571,7 +1675,7 @@ function ComboboxContent({
1571
1675
  children,
1572
1676
  ...props
1573
1677
  }) {
1574
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1678
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1575
1679
  PopoverContent,
1576
1680
  {
1577
1681
  "data-slot": "combobox-content",
@@ -1585,12 +1689,12 @@ function ComboboxContent({
1585
1689
  // src/ui/command.tsx
1586
1690
  var import_cmdk = require("cmdk");
1587
1691
  var import_lucide_react8 = require("lucide-react");
1588
- var import_jsx_runtime18 = require("react/jsx-runtime");
1692
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1589
1693
  function Command({
1590
1694
  className,
1591
1695
  ...props
1592
1696
  }) {
1593
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1697
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1594
1698
  import_cmdk.Command,
1595
1699
  {
1596
1700
  "data-slot": "command",
@@ -1606,14 +1710,14 @@ function CommandInput({
1606
1710
  className,
1607
1711
  ...props
1608
1712
  }) {
1609
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1713
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1610
1714
  "div",
1611
1715
  {
1612
1716
  "data-slot": "command-input-wrapper",
1613
1717
  className: "flex items-center gap-2 border-b border-border px-3",
1614
1718
  children: [
1615
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react8.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1616
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1719
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_lucide_react8.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1720
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1617
1721
  import_cmdk.Command.Input,
1618
1722
  {
1619
1723
  "data-slot": "command-input",
@@ -1632,7 +1736,7 @@ function CommandList({
1632
1736
  className,
1633
1737
  ...props
1634
1738
  }) {
1635
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1739
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1636
1740
  import_cmdk.Command.List,
1637
1741
  {
1638
1742
  "data-slot": "command-list",
@@ -1647,7 +1751,7 @@ function CommandList({
1647
1751
  function CommandEmpty({
1648
1752
  ...props
1649
1753
  }) {
1650
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1754
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1651
1755
  import_cmdk.Command.Empty,
1652
1756
  {
1653
1757
  "data-slot": "command-empty",
@@ -1660,7 +1764,7 @@ function CommandGroup({
1660
1764
  className,
1661
1765
  ...props
1662
1766
  }) {
1663
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1767
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1664
1768
  import_cmdk.Command.Group,
1665
1769
  {
1666
1770
  "data-slot": "command-group",
@@ -1670,43 +1774,214 @@ function CommandGroup({
1670
1774
  ),
1671
1775
  ...props
1672
1776
  }
1673
- );
1674
- }
1675
- function CommandItem({
1676
- className,
1677
- ...props
1678
- }) {
1679
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1680
- import_cmdk.Command.Item,
1777
+ );
1778
+ }
1779
+ function CommandItem({
1780
+ className,
1781
+ ...props
1782
+ }) {
1783
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1784
+ import_cmdk.Command.Item,
1785
+ {
1786
+ "data-slot": "command-item",
1787
+ className: cn(
1788
+ "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",
1789
+ className
1790
+ ),
1791
+ ...props
1792
+ }
1793
+ );
1794
+ }
1795
+
1796
+ // src/ui/confirm-morph.tsx
1797
+ var import_lucide_react10 = require("lucide-react");
1798
+ var React6 = __toESM(require("react"), 1);
1799
+
1800
+ // src/ui/spinner.tsx
1801
+ var import_lucide_react9 = require("lucide-react");
1802
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1803
+ function Spinner({ className, ...props }) {
1804
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1805
+ import_lucide_react9.Loader2Icon,
1806
+ {
1807
+ role: "status",
1808
+ "aria-label": "Loading",
1809
+ "data-slot": "spinner",
1810
+ className: cn("size-4 animate-spin", className),
1811
+ ...props
1812
+ }
1813
+ );
1814
+ }
1815
+
1816
+ // src/ui/confirm-morph.tsx
1817
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1818
+ function ConfirmMorph({
1819
+ className,
1820
+ variant,
1821
+ size,
1822
+ label,
1823
+ confirmLabel = "\u786E\u8BA4",
1824
+ pendingLabel,
1825
+ successLabel = "\u5DF2\u5B8C\u6210",
1826
+ undoLabel = "\u64A4\u9500",
1827
+ confirmVariant = "destructive",
1828
+ confirmTimeout = 3e3,
1829
+ resetDelay = 1500,
1830
+ onConfirm,
1831
+ onUndo,
1832
+ onStateChange,
1833
+ disabled,
1834
+ type = "button",
1835
+ ...props
1836
+ }) {
1837
+ const [state, setState] = React6.useState("idle");
1838
+ const timerRef = React6.useRef(null);
1839
+ const generationRef = React6.useRef(0);
1840
+ const transition = React6.useCallback(
1841
+ (next) => {
1842
+ setState(next);
1843
+ onStateChange?.(next);
1844
+ },
1845
+ [onStateChange]
1846
+ );
1847
+ const clearTimer = React6.useCallback(() => {
1848
+ if (timerRef.current) {
1849
+ clearTimeout(timerRef.current);
1850
+ timerRef.current = null;
1851
+ }
1852
+ }, []);
1853
+ React6.useEffect(() => clearTimer, [clearTimer]);
1854
+ const handleClick = () => {
1855
+ if (disabled) return;
1856
+ if (state === "idle") {
1857
+ transition("confirming");
1858
+ clearTimer();
1859
+ timerRef.current = setTimeout(() => {
1860
+ generationRef.current += 1;
1861
+ transition("idle");
1862
+ }, confirmTimeout);
1863
+ return;
1864
+ }
1865
+ if (state === "confirming") {
1866
+ clearTimer();
1867
+ const generation = ++generationRef.current;
1868
+ let result;
1869
+ try {
1870
+ result = onConfirm?.();
1871
+ } catch {
1872
+ transition("error");
1873
+ return;
1874
+ }
1875
+ if (result && typeof result.then === "function") {
1876
+ transition("pending");
1877
+ result.then(
1878
+ () => {
1879
+ if (generationRef.current !== generation) return;
1880
+ transition("success");
1881
+ timerRef.current = setTimeout(
1882
+ () => transition("idle"),
1883
+ resetDelay
1884
+ );
1885
+ },
1886
+ () => {
1887
+ if (generationRef.current !== generation) return;
1888
+ transition("error");
1889
+ }
1890
+ );
1891
+ } else {
1892
+ transition("success");
1893
+ timerRef.current = setTimeout(() => transition("idle"), resetDelay);
1894
+ }
1895
+ return;
1896
+ }
1897
+ if (state === "error") {
1898
+ generationRef.current += 1;
1899
+ onUndo?.();
1900
+ transition("idle");
1901
+ }
1902
+ };
1903
+ const interactive = state === "idle" || state === "confirming" || state === "error";
1904
+ const currentVariant = state === "confirming" ? confirmVariant : variant;
1905
+ const segments = [
1906
+ { key: "idle", content: label },
1907
+ { key: "confirming", content: confirmLabel },
1908
+ {
1909
+ key: "pending",
1910
+ content: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1911
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Spinner, { className: "motion-reduce:animate-none" }),
1912
+ pendingLabel ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: pendingLabel }) : null
1913
+ ] })
1914
+ },
1915
+ {
1916
+ key: "success",
1917
+ content: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1918
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.CheckIcon, {}),
1919
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: successLabel })
1920
+ ] })
1921
+ },
1922
+ {
1923
+ key: "error",
1924
+ content: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
1925
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.RotateCcwIcon, {}),
1926
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: undoLabel })
1927
+ ] })
1928
+ }
1929
+ ];
1930
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1931
+ Button,
1681
1932
  {
1682
- "data-slot": "command-item",
1933
+ "data-slot": "confirm-morph",
1934
+ "data-state": state,
1935
+ variant: currentVariant,
1936
+ size,
1937
+ type,
1938
+ disabled,
1939
+ "aria-busy": state === "pending" || void 0,
1683
1940
  className: cn(
1684
- "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",
1941
+ "transition-colors motion-reduce:transition-none",
1942
+ !interactive && "pointer-events-none",
1685
1943
  className
1686
1944
  ),
1687
- ...props
1945
+ onClick: handleClick,
1946
+ ...props,
1947
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "grid", children: segments.map((segment) => {
1948
+ const active = state === segment.key;
1949
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1950
+ "span",
1951
+ {
1952
+ "data-segment": segment.key,
1953
+ "aria-hidden": active ? void 0 : true,
1954
+ className: cn(
1955
+ "col-start-1 row-start-1 inline-flex items-center justify-center gap-2 whitespace-nowrap transition-opacity duration-150 motion-reduce:transition-none",
1956
+ active ? "opacity-100" : "pointer-events-none opacity-0"
1957
+ ),
1958
+ children: segment.content
1959
+ },
1960
+ segment.key
1961
+ );
1962
+ }) })
1688
1963
  }
1689
1964
  );
1690
1965
  }
1691
1966
 
1692
1967
  // src/ui/context-menu.tsx
1693
1968
  var import_context_menu = require("@base-ui/react/context-menu");
1694
- var import_jsx_runtime19 = require("react/jsx-runtime");
1969
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1695
1970
  function ContextMenu({
1696
1971
  ...props
1697
1972
  }) {
1698
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_context_menu.ContextMenu.Root, { "data-slot": "context-menu", ...props });
1973
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_context_menu.ContextMenu.Root, { "data-slot": "context-menu", ...props });
1699
1974
  }
1700
1975
  function ContextMenuTrigger({
1701
1976
  ...props
1702
1977
  }) {
1703
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_context_menu.ContextMenu.Trigger, { "data-slot": "context-menu-trigger", ...props });
1978
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_context_menu.ContextMenu.Trigger, { "data-slot": "context-menu-trigger", ...props });
1704
1979
  }
1705
1980
  function ContextMenuContent({
1706
1981
  className,
1707
1982
  ...props
1708
1983
  }) {
1709
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_context_menu.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_context_menu.ContextMenu.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1984
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_context_menu.ContextMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_context_menu.ContextMenu.Positioner, { className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1710
1985
  import_context_menu.ContextMenu.Popup,
1711
1986
  {
1712
1987
  "data-slot": "context-menu-content",
@@ -1723,7 +1998,7 @@ function ContextMenuItem({
1723
1998
  variant = "default",
1724
1999
  ...props
1725
2000
  }) {
1726
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2001
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1727
2002
  import_context_menu.ContextMenu.Item,
1728
2003
  {
1729
2004
  "data-slot": "context-menu-item",
@@ -1740,7 +2015,7 @@ function ContextMenuSeparator({
1740
2015
  className,
1741
2016
  ...props
1742
2017
  }) {
1743
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
2018
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1744
2019
  import_context_menu.ContextMenu.Separator,
1745
2020
  {
1746
2021
  "data-slot": "context-menu-separator",
@@ -1750,34 +2025,158 @@ function ContextMenuSeparator({
1750
2025
  );
1751
2026
  }
1752
2027
 
2028
+ // src/ui/copy-button.tsx
2029
+ var React7 = __toESM(require("react"), 1);
2030
+
2031
+ // src/ui/icon-morph.tsx
2032
+ var import_lucide_react11 = require("lucide-react");
2033
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2034
+ var MORPH_PAIRS = {
2035
+ "menu-close": { a: import_lucide_react11.Menu, b: import_lucide_react11.X },
2036
+ "play-pause": { a: import_lucide_react11.Play, b: import_lucide_react11.Pause },
2037
+ "copy-check": { a: import_lucide_react11.Copy, b: import_lucide_react11.Check },
2038
+ "plus-minus": { a: import_lucide_react11.Plus, b: import_lucide_react11.Minus }
2039
+ };
2040
+ function IconMorph({ morph, state, className, style }) {
2041
+ const pair = MORPH_PAIRS[morph];
2042
+ if (!pair) {
2043
+ if (process.env.NODE_ENV !== "production") {
2044
+ console.warn(
2045
+ `[IconMorph] \u672A\u77E5\u9884\u8BBE\u56FE\u6807\u5BF9 "${morph}"\uFF0C\u5DF2\u6E32\u67D3\u5360\u4F4D\u56FE\u6807\u3002\u53EF\u7528\u503C\uFF1A${Object.keys(MORPH_PAIRS).join(" / ")}`
2046
+ );
2047
+ }
2048
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2049
+ "span",
2050
+ {
2051
+ "data-slot": "icon-morph",
2052
+ "data-unknown": morph,
2053
+ className: cn("relative inline-flex size-4 shrink-0", className),
2054
+ style,
2055
+ "aria-hidden": "true",
2056
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.CircleQuestionMark, { className: "size-full" })
2057
+ }
2058
+ );
2059
+ }
2060
+ const layers = [
2061
+ { key: "a", Icon: pair.a },
2062
+ { key: "b", Icon: pair.b }
2063
+ ];
2064
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2065
+ "span",
2066
+ {
2067
+ "data-slot": "icon-morph",
2068
+ "data-state": state,
2069
+ className: cn("relative inline-flex size-4 shrink-0", className),
2070
+ style,
2071
+ "aria-hidden": "true",
2072
+ children: layers.map(({ key, Icon }) => {
2073
+ const active = state === key;
2074
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2075
+ Icon,
2076
+ {
2077
+ "data-state": active ? "active" : "inactive",
2078
+ className: cn(
2079
+ "absolute inset-0 size-full transition-all duration-200 ease-out motion-reduce:transition-none",
2080
+ active ? "rotate-0 scale-100 opacity-100" : "scale-50 opacity-0",
2081
+ !active && (key === "a" ? "-rotate-90" : "rotate-90")
2082
+ )
2083
+ },
2084
+ key
2085
+ );
2086
+ })
2087
+ }
2088
+ );
2089
+ }
2090
+
2091
+ // src/ui/copy-button.tsx
2092
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2093
+ function CopyButton({
2094
+ className,
2095
+ variant = "outline",
2096
+ size = "sm",
2097
+ value,
2098
+ label,
2099
+ copiedLabel,
2100
+ resetDelay = 1500,
2101
+ onCopy,
2102
+ onError,
2103
+ onClick,
2104
+ disabled,
2105
+ type = "button",
2106
+ ...props
2107
+ }) {
2108
+ const [copied, setCopied] = React7.useState(false);
2109
+ const timerRef = React7.useRef(null);
2110
+ React7.useEffect(
2111
+ () => () => {
2112
+ if (timerRef.current) clearTimeout(timerRef.current);
2113
+ },
2114
+ []
2115
+ );
2116
+ const handleClick = async (event) => {
2117
+ onClick?.(event);
2118
+ if (event.defaultPrevented || disabled) return;
2119
+ try {
2120
+ if (!navigator.clipboard?.writeText) {
2121
+ throw new Error("navigator.clipboard \u4E0D\u53EF\u7528\uFF08\u975E\u5B89\u5168\u4E0A\u4E0B\u6587\uFF09");
2122
+ }
2123
+ await navigator.clipboard.writeText(value);
2124
+ if (timerRef.current) clearTimeout(timerRef.current);
2125
+ setCopied(true);
2126
+ onCopy?.(value);
2127
+ timerRef.current = setTimeout(() => setCopied(false), resetDelay);
2128
+ } catch (error) {
2129
+ onError?.(error);
2130
+ }
2131
+ };
2132
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2133
+ Button,
2134
+ {
2135
+ "data-slot": "copy-button",
2136
+ "data-state": copied ? "copied" : "idle",
2137
+ variant,
2138
+ size,
2139
+ type,
2140
+ disabled,
2141
+ className: cn(className),
2142
+ onClick: handleClick,
2143
+ ...props,
2144
+ children: [
2145
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(IconMorph, { morph: "copy-check", state: copied ? "b" : "a" }),
2146
+ copied && copiedLabel ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: copiedLabel }) : label ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: label }) : null
2147
+ ]
2148
+ }
2149
+ );
2150
+ }
2151
+
1753
2152
  // src/ui/drawer.tsx
1754
2153
  var import_vaul = require("vaul");
1755
- var import_jsx_runtime20 = require("react/jsx-runtime");
2154
+ var import_jsx_runtime26 = require("react/jsx-runtime");
1756
2155
  function Drawer({
1757
2156
  ...props
1758
2157
  }) {
1759
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_vaul.Drawer.Root, { "data-slot": "drawer", ...props });
2158
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1760
2159
  }
1761
2160
  function DrawerTrigger({
1762
2161
  ...props
1763
2162
  }) {
1764
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
2163
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1765
2164
  }
1766
2165
  function DrawerPortal({
1767
2166
  ...props
1768
2167
  }) {
1769
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
2168
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1770
2169
  }
1771
2170
  function DrawerClose({
1772
2171
  ...props
1773
2172
  }) {
1774
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
2173
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1775
2174
  }
1776
2175
  function DrawerOverlay({
1777
2176
  className,
1778
2177
  ...props
1779
2178
  }) {
1780
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2179
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1781
2180
  import_vaul.Drawer.Overlay,
1782
2181
  {
1783
2182
  "data-slot": "drawer-overlay",
@@ -1792,8 +2191,8 @@ function DrawerContent({
1792
2191
  overlayProps,
1793
2192
  ...props
1794
2193
  }) {
1795
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
1796
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2194
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(DrawerPortal, { "data-slot": "drawer-portal", children: [
2195
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1797
2196
  "div",
1798
2197
  {
1799
2198
  "data-slot": "drawer-overlay",
@@ -1804,7 +2203,7 @@ function DrawerContent({
1804
2203
  )
1805
2204
  }
1806
2205
  ),
1807
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2206
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
1808
2207
  import_vaul.Drawer.Content,
1809
2208
  {
1810
2209
  "data-slot": "drawer-content",
@@ -1818,7 +2217,7 @@ function DrawerContent({
1818
2217
  ),
1819
2218
  ...props,
1820
2219
  children: [
1821
- /* @__PURE__ */ (0, import_jsx_runtime20.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" }),
2220
+ /* @__PURE__ */ (0, import_jsx_runtime26.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" }),
1822
2221
  children
1823
2222
  ]
1824
2223
  }
@@ -1826,7 +2225,7 @@ function DrawerContent({
1826
2225
  ] });
1827
2226
  }
1828
2227
  function DrawerHeader({ className, ...props }) {
1829
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2228
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1830
2229
  "div",
1831
2230
  {
1832
2231
  "data-slot": "drawer-header",
@@ -1836,7 +2235,7 @@ function DrawerHeader({ className, ...props }) {
1836
2235
  );
1837
2236
  }
1838
2237
  function DrawerFooter({ className, ...props }) {
1839
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2238
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1840
2239
  "div",
1841
2240
  {
1842
2241
  "data-slot": "drawer-footer",
@@ -1849,7 +2248,7 @@ function DrawerTitle({
1849
2248
  className,
1850
2249
  ...props
1851
2250
  }) {
1852
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2251
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1853
2252
  import_vaul.Drawer.Title,
1854
2253
  {
1855
2254
  "data-slot": "drawer-title",
@@ -1862,7 +2261,7 @@ function DrawerDescription({
1862
2261
  className,
1863
2262
  ...props
1864
2263
  }) {
1865
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2264
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1866
2265
  import_vaul.Drawer.Description,
1867
2266
  {
1868
2267
  "data-slot": "drawer-description",
@@ -1874,17 +2273,17 @@ function DrawerDescription({
1874
2273
 
1875
2274
  // src/ui/dropdown-menu.tsx
1876
2275
  var import_menu = require("@base-ui/react/menu");
1877
- var import_lucide_react9 = require("lucide-react");
1878
- var import_jsx_runtime21 = require("react/jsx-runtime");
2276
+ var import_lucide_react12 = require("lucide-react");
2277
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1879
2278
  function DropdownMenu({
1880
2279
  ...props
1881
2280
  }) {
1882
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_menu.Menu.Root, { "data-slot": "dropdown-menu", ...props });
2281
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_menu.Menu.Root, { "data-slot": "dropdown-menu", ...props });
1883
2282
  }
1884
2283
  function DropdownMenuTrigger({
1885
2284
  ...props
1886
2285
  }) {
1887
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_menu.Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
2286
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_menu.Menu.Trigger, { "data-slot": "dropdown-menu-trigger", ...props });
1888
2287
  }
1889
2288
  function DropdownMenuContent({
1890
2289
  className,
@@ -1893,14 +2292,14 @@ function DropdownMenuContent({
1893
2292
  sideOffset = 4,
1894
2293
  ...props
1895
2294
  }) {
1896
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2295
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1897
2296
  import_menu.Menu.Positioner,
1898
2297
  {
1899
2298
  align,
1900
2299
  side,
1901
2300
  sideOffset,
1902
2301
  className: "isolate z-50",
1903
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2302
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1904
2303
  import_menu.Menu.Popup,
1905
2304
  {
1906
2305
  "data-slot": "dropdown-menu-content",
@@ -1919,7 +2318,7 @@ function DropdownMenuItem({
1919
2318
  variant = "default",
1920
2319
  ...props
1921
2320
  }) {
1922
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2321
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1923
2322
  import_menu.Menu.Item,
1924
2323
  {
1925
2324
  "data-slot": "dropdown-menu-item",
@@ -1936,7 +2335,7 @@ function DropdownMenuSeparator({
1936
2335
  className,
1937
2336
  ...props
1938
2337
  }) {
1939
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2338
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1940
2339
  import_menu.Menu.Separator,
1941
2340
  {
1942
2341
  "data-slot": "dropdown-menu-separator",
@@ -1948,14 +2347,14 @@ function DropdownMenuSeparator({
1948
2347
  function DropdownMenuSub({
1949
2348
  ...props
1950
2349
  }) {
1951
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_menu.Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
2350
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_menu.Menu.SubmenuRoot, { "data-slot": "dropdown-menu-sub", ...props });
1952
2351
  }
1953
2352
  function DropdownMenuSubTrigger({
1954
2353
  className,
1955
2354
  children,
1956
2355
  ...props
1957
2356
  }) {
1958
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2357
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
1959
2358
  import_menu.Menu.SubmenuTrigger,
1960
2359
  {
1961
2360
  "data-slot": "dropdown-menu-sub-trigger",
@@ -1966,7 +2365,7 @@ function DropdownMenuSubTrigger({
1966
2365
  ...props,
1967
2366
  children: [
1968
2367
  children,
1969
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react9.ChevronRightIcon, { className: "ml-auto" })
2368
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react12.ChevronRightIcon, { className: "ml-auto" })
1970
2369
  ]
1971
2370
  }
1972
2371
  );
@@ -1976,7 +2375,7 @@ function DropdownMenuSubContent({
1976
2375
  sideOffset = 2,
1977
2376
  ...props
1978
2377
  }) {
1979
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_menu.Menu.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2378
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_menu.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_menu.Menu.Positioner, { sideOffset, className: "isolate z-50", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1980
2379
  import_menu.Menu.Popup,
1981
2380
  {
1982
2381
  "data-slot": "dropdown-menu-sub-content",
@@ -1989,18 +2388,191 @@ function DropdownMenuSubContent({
1989
2388
  ) }) });
1990
2389
  }
1991
2390
 
2391
+ // src/ui/expanding-button-group.tsx
2392
+ var React8 = __toESM(require("react"), 1);
2393
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2394
+ function ExpandingButtonGroup({
2395
+ options,
2396
+ onSelect,
2397
+ className,
2398
+ style
2399
+ }) {
2400
+ const [expanded, setExpanded] = React8.useState(null);
2401
+ const [confirming, setConfirming] = React8.useState(null);
2402
+ const handleClick = (option) => {
2403
+ if (option.confirm) {
2404
+ if (confirming === option.value) {
2405
+ setConfirming(null);
2406
+ onSelect?.(option.value);
2407
+ } else {
2408
+ setConfirming(option.value);
2409
+ }
2410
+ return;
2411
+ }
2412
+ onSelect?.(option.value);
2413
+ };
2414
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2415
+ "div",
2416
+ {
2417
+ role: "group",
2418
+ "data-slot": "expanding-button-group",
2419
+ className: cn("inline-flex w-fit items-center gap-1", className),
2420
+ style,
2421
+ children: options.map((option) => {
2422
+ const isConfirming = confirming === option.value;
2423
+ const isExpanded = expanded === option.value || isConfirming;
2424
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2425
+ "button",
2426
+ {
2427
+ type: "button",
2428
+ "data-slot": "expanding-button-group-item",
2429
+ "data-value": option.value,
2430
+ "data-expanded": isExpanded ? "" : void 0,
2431
+ "data-confirming": isConfirming ? "" : void 0,
2432
+ disabled: option.disabled,
2433
+ className: cn(
2434
+ "inline-flex h-8 cursor-pointer items-center justify-center gap-1.5 rounded-md px-2 text-sm font-medium whitespace-nowrap outline-none transition-colors duration-150 hover:bg-accent hover:text-accent-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4",
2435
+ isConfirming && "bg-destructive text-destructive-foreground hover:bg-destructive/90"
2436
+ ),
2437
+ onMouseEnter: () => setExpanded(option.value),
2438
+ onMouseLeave: () => {
2439
+ setExpanded(null);
2440
+ setConfirming(
2441
+ (prev) => prev === option.value ? null : prev
2442
+ );
2443
+ },
2444
+ onFocus: () => setExpanded(option.value),
2445
+ onBlur: () => {
2446
+ setExpanded(null);
2447
+ setConfirming(
2448
+ (prev) => prev === option.value ? null : prev
2449
+ );
2450
+ },
2451
+ onClick: () => handleClick(option),
2452
+ children: [
2453
+ option.icon,
2454
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2455
+ "span",
2456
+ {
2457
+ className: "grid transition-[grid-template-columns] duration-200 ease-out motion-reduce:transition-none",
2458
+ style: { gridTemplateColumns: isExpanded ? "1fr" : "0fr" },
2459
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "overflow-hidden", children: isConfirming ? option.confirmLabel ?? "\u786E\u8BA4" : option.label })
2460
+ }
2461
+ )
2462
+ ]
2463
+ },
2464
+ option.value
2465
+ );
2466
+ })
2467
+ }
2468
+ );
2469
+ }
2470
+
2471
+ // src/ui/floating-button-group.tsx
2472
+ var React9 = __toESM(require("react"), 1);
2473
+ var import_jsx_runtime29 = require("react/jsx-runtime");
2474
+ function FloatingButtonGroup({
2475
+ options,
2476
+ value,
2477
+ onSelect,
2478
+ className,
2479
+ style
2480
+ }) {
2481
+ const containerRef = React9.useRef(null);
2482
+ const buttonRefs = React9.useRef(/* @__PURE__ */ new Map());
2483
+ const [hovered, setHovered] = React9.useState(null);
2484
+ const [box, setBox] = React9.useState(null);
2485
+ const [visible, setVisible] = React9.useState(false);
2486
+ const target = value ?? hovered;
2487
+ React9.useLayoutEffect(() => {
2488
+ if (!target) {
2489
+ setVisible(false);
2490
+ return;
2491
+ }
2492
+ const el = buttonRefs.current.get(target);
2493
+ if (!el || el.offsetWidth === 0) {
2494
+ setVisible(false);
2495
+ return;
2496
+ }
2497
+ setBox({ x: el.offsetLeft, width: el.offsetWidth });
2498
+ setVisible(true);
2499
+ }, [target]);
2500
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2501
+ "div",
2502
+ {
2503
+ ref: containerRef,
2504
+ role: "group",
2505
+ "data-slot": "floating-button-group",
2506
+ className: cn(
2507
+ "relative inline-flex w-fit items-center gap-1 rounded-full bg-muted p-1",
2508
+ className
2509
+ ),
2510
+ style,
2511
+ onMouseLeave: () => setHovered(null),
2512
+ children: [
2513
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2514
+ "span",
2515
+ {
2516
+ "data-slot": "floating-button-group-highlight",
2517
+ "aria-hidden": "true",
2518
+ className: cn(
2519
+ "absolute inset-y-1 left-0 rounded-full bg-card shadow-sm transition-[transform,width,opacity] duration-200 ease-out motion-reduce:transition-none",
2520
+ visible ? "opacity-100" : "opacity-0"
2521
+ ),
2522
+ style: {
2523
+ width: box?.width ?? 0,
2524
+ transform: `translateX(${box?.x ?? 0}px)`
2525
+ }
2526
+ }
2527
+ ),
2528
+ options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2529
+ "button",
2530
+ {
2531
+ type: "button",
2532
+ ref: (el) => {
2533
+ if (el) buttonRefs.current.set(option.value, el);
2534
+ else buttonRefs.current.delete(option.value);
2535
+ },
2536
+ "data-slot": "floating-button-group-item",
2537
+ "data-value": option.value,
2538
+ "data-active": value === option.value ? "" : void 0,
2539
+ disabled: option.disabled,
2540
+ className: cn(
2541
+ "relative z-10 inline-flex h-8 cursor-pointer items-center justify-center gap-1.5 rounded-full px-3 text-sm font-medium whitespace-nowrap outline-none transition-[transform,color] duration-150 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 active:scale-95 disabled:pointer-events-none disabled:opacity-50 motion-reduce:transition-none motion-reduce:active:transform-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4",
2542
+ target === option.value ? "text-foreground" : "text-muted-foreground"
2543
+ ),
2544
+ onMouseEnter: () => setHovered(option.value),
2545
+ onFocus: (event) => {
2546
+ if (event.currentTarget.matches(":focus-visible")) {
2547
+ setHovered(option.value);
2548
+ }
2549
+ },
2550
+ onBlur: () => setHovered(null),
2551
+ onClick: () => onSelect?.(option.value),
2552
+ children: [
2553
+ option.icon,
2554
+ option.label ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { children: option.label }) : null
2555
+ ]
2556
+ },
2557
+ option.value
2558
+ ))
2559
+ ]
2560
+ }
2561
+ );
2562
+ }
2563
+
1992
2564
  // src/ui/hover-card.tsx
1993
2565
  var import_preview_card = require("@base-ui/react/preview-card");
1994
- var import_jsx_runtime22 = require("react/jsx-runtime");
2566
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1995
2567
  function HoverCard({
1996
2568
  ...props
1997
2569
  }) {
1998
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_preview_card.PreviewCard.Root, { "data-slot": "hover-card", ...props });
2570
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_preview_card.PreviewCard.Root, { "data-slot": "hover-card", ...props });
1999
2571
  }
2000
2572
  function HoverCardTrigger({
2001
2573
  ...props
2002
2574
  }) {
2003
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_preview_card.PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
2575
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_preview_card.PreviewCard.Trigger, { "data-slot": "hover-card-trigger", ...props });
2004
2576
  }
2005
2577
  function HoverCardContent({
2006
2578
  className,
@@ -2009,14 +2581,14 @@ function HoverCardContent({
2009
2581
  sideOffset = 4,
2010
2582
  ...props
2011
2583
  }) {
2012
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_preview_card.PreviewCard.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2584
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_preview_card.PreviewCard.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2013
2585
  import_preview_card.PreviewCard.Positioner,
2014
2586
  {
2015
2587
  align,
2016
2588
  side,
2017
2589
  sideOffset,
2018
2590
  className: "isolate z-50",
2019
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2591
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2020
2592
  import_preview_card.PreviewCard.Popup,
2021
2593
  {
2022
2594
  "data-slot": "hover-card-content",
@@ -2034,12 +2606,12 @@ function HoverCardContent({
2034
2606
  // src/ui/menubar.tsx
2035
2607
  var import_menu2 = require("@base-ui/react/menu");
2036
2608
  var import_menubar = require("@base-ui/react/menubar");
2037
- var import_jsx_runtime23 = require("react/jsx-runtime");
2609
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2038
2610
  function Menubar({
2039
2611
  className,
2040
2612
  ...props
2041
2613
  }) {
2042
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2614
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2043
2615
  import_menubar.Menubar,
2044
2616
  {
2045
2617
  "data-slot": "menubar",
@@ -2054,13 +2626,13 @@ function Menubar({
2054
2626
  function MenubarMenu({
2055
2627
  ...props
2056
2628
  }) {
2057
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
2629
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_menu2.Menu.Root, { "data-slot": "menubar-menu", ...props });
2058
2630
  }
2059
2631
  function MenubarTrigger({
2060
2632
  className,
2061
2633
  ...props
2062
2634
  }) {
2063
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2635
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2064
2636
  import_menu2.Menu.Trigger,
2065
2637
  {
2066
2638
  "data-slot": "menubar-trigger",
@@ -2079,14 +2651,14 @@ function MenubarContent({
2079
2651
  sideOffset = 8,
2080
2652
  ...props
2081
2653
  }) {
2082
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2654
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_menu2.Menu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2083
2655
  import_menu2.Menu.Positioner,
2084
2656
  {
2085
2657
  align,
2086
2658
  side,
2087
2659
  sideOffset,
2088
2660
  className: "isolate z-50",
2089
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2661
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2090
2662
  import_menu2.Menu.Popup,
2091
2663
  {
2092
2664
  "data-slot": "menubar-content",
@@ -2105,7 +2677,7 @@ function MenubarItem({
2105
2677
  variant = "default",
2106
2678
  ...props
2107
2679
  }) {
2108
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2680
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2109
2681
  import_menu2.Menu.Item,
2110
2682
  {
2111
2683
  "data-slot": "menubar-item",
@@ -2122,7 +2694,7 @@ function MenubarSeparator({
2122
2694
  className,
2123
2695
  ...props
2124
2696
  }) {
2125
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2697
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2126
2698
  import_menu2.Menu.Separator,
2127
2699
  {
2128
2700
  "data-slot": "menubar-separator",
@@ -2134,15 +2706,15 @@ function MenubarSeparator({
2134
2706
 
2135
2707
  // src/ui/navigation-menu.tsx
2136
2708
  var import_navigation_menu = require("@base-ui/react/navigation-menu");
2137
- var import_lucide_react10 = require("lucide-react");
2709
+ var import_lucide_react13 = require("lucide-react");
2138
2710
  var import_class_variance_authority6 = require("class-variance-authority");
2139
- var import_jsx_runtime24 = require("react/jsx-runtime");
2711
+ var import_jsx_runtime32 = require("react/jsx-runtime");
2140
2712
  function NavigationMenu({
2141
2713
  className,
2142
2714
  children,
2143
2715
  ...props
2144
2716
  }) {
2145
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2717
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2146
2718
  import_navigation_menu.NavigationMenu.Root,
2147
2719
  {
2148
2720
  "data-slot": "navigation-menu",
@@ -2150,7 +2722,7 @@ function NavigationMenu({
2150
2722
  ...props,
2151
2723
  children: [
2152
2724
  children,
2153
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(NavigationMenuViewport, {})
2725
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(NavigationMenuViewport, {})
2154
2726
  ]
2155
2727
  }
2156
2728
  );
@@ -2159,7 +2731,7 @@ function NavigationMenuList({
2159
2731
  className,
2160
2732
  ...props
2161
2733
  }) {
2162
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2734
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2163
2735
  import_navigation_menu.NavigationMenu.List,
2164
2736
  {
2165
2737
  "data-slot": "navigation-menu-list",
@@ -2172,7 +2744,7 @@ function NavigationMenuItem({
2172
2744
  className,
2173
2745
  ...props
2174
2746
  }) {
2175
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2747
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2176
2748
  import_navigation_menu.NavigationMenu.Item,
2177
2749
  {
2178
2750
  "data-slot": "navigation-menu-item",
@@ -2189,7 +2761,7 @@ function NavigationMenuTrigger({
2189
2761
  children,
2190
2762
  ...props
2191
2763
  }) {
2192
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2764
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2193
2765
  import_navigation_menu.NavigationMenu.Trigger,
2194
2766
  {
2195
2767
  "data-slot": "navigation-menu-trigger",
@@ -2197,8 +2769,8 @@ function NavigationMenuTrigger({
2197
2769
  ...props,
2198
2770
  children: [
2199
2771
  children,
2200
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2201
- import_lucide_react10.ChevronDownIcon,
2772
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2773
+ import_lucide_react13.ChevronDownIcon,
2202
2774
  {
2203
2775
  className: "relative top-px ml-1 size-3 transition-transform duration-200 group-data-open/navigation-menu-trigger:rotate-180",
2204
2776
  "aria-hidden": "true"
@@ -2212,7 +2784,7 @@ function NavigationMenuContent({
2212
2784
  className,
2213
2785
  ...props
2214
2786
  }) {
2215
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2787
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2216
2788
  import_navigation_menu.NavigationMenu.Content,
2217
2789
  {
2218
2790
  "data-slot": "navigation-menu-content",
@@ -2225,13 +2797,13 @@ function NavigationMenuContent({
2225
2797
  );
2226
2798
  }
2227
2799
  function NavigationMenuViewport({ className }) {
2228
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2800
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2229
2801
  import_navigation_menu.NavigationMenu.Positioner,
2230
2802
  {
2231
2803
  side: "bottom",
2232
2804
  align: "start",
2233
2805
  className: "isolate z-50",
2234
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2806
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2235
2807
  import_navigation_menu.NavigationMenu.Popup,
2236
2808
  {
2237
2809
  "data-slot": "navigation-menu-popup",
@@ -2239,7 +2811,7 @@ function NavigationMenuViewport({ className }) {
2239
2811
  "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:fill-mode-forwards data-closed:fade-out-0 data-closed:zoom-out-95",
2240
2812
  className
2241
2813
  ),
2242
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
2814
+ children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_navigation_menu.NavigationMenu.Viewport, { "data-slot": "navigation-menu-viewport" })
2243
2815
  }
2244
2816
  )
2245
2817
  }
@@ -2249,7 +2821,7 @@ function NavigationMenuLink({
2249
2821
  className,
2250
2822
  ...props
2251
2823
  }) {
2252
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2824
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2253
2825
  import_navigation_menu.NavigationMenu.Link,
2254
2826
  {
2255
2827
  "data-slot": "navigation-menu-link",
@@ -2263,10 +2835,10 @@ function NavigationMenuLink({
2263
2835
  }
2264
2836
 
2265
2837
  // src/ui/pagination.tsx
2266
- var import_lucide_react11 = require("lucide-react");
2267
- var import_jsx_runtime25 = require("react/jsx-runtime");
2838
+ var import_lucide_react14 = require("lucide-react");
2839
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2268
2840
  function Pagination({ className, ...props }) {
2269
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2841
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2270
2842
  "nav",
2271
2843
  {
2272
2844
  role: "navigation",
@@ -2278,7 +2850,7 @@ function Pagination({ className, ...props }) {
2278
2850
  );
2279
2851
  }
2280
2852
  function PaginationContent({ className, ...props }) {
2281
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2853
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2282
2854
  "ul",
2283
2855
  {
2284
2856
  "data-slot": "pagination-content",
@@ -2288,7 +2860,7 @@ function PaginationContent({ className, ...props }) {
2288
2860
  );
2289
2861
  }
2290
2862
  function PaginationItem({ ...props }) {
2291
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("li", { "data-slot": "pagination-item", ...props });
2863
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("li", { "data-slot": "pagination-item", ...props });
2292
2864
  }
2293
2865
  function PaginationLink({
2294
2866
  className,
@@ -2296,7 +2868,7 @@ function PaginationLink({
2296
2868
  disabled,
2297
2869
  ...props
2298
2870
  }) {
2299
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2871
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2300
2872
  "a",
2301
2873
  {
2302
2874
  "aria-current": isActive ? "page" : void 0,
@@ -2320,15 +2892,15 @@ function PaginationPrevious({
2320
2892
  className,
2321
2893
  ...props
2322
2894
  }) {
2323
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2895
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2324
2896
  PaginationLink,
2325
2897
  {
2326
2898
  "aria-label": "Go to previous page",
2327
2899
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
2328
2900
  ...props,
2329
2901
  children: [
2330
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.ChevronLeftIcon, {}),
2331
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "hidden sm:block", children: "Previous" })
2902
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react14.ChevronLeftIcon, {}),
2903
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "hidden sm:block", children: "Previous" })
2332
2904
  ]
2333
2905
  }
2334
2906
  );
@@ -2337,21 +2909,21 @@ function PaginationNext({
2337
2909
  className,
2338
2910
  ...props
2339
2911
  }) {
2340
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2912
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2341
2913
  PaginationLink,
2342
2914
  {
2343
2915
  "aria-label": "Go to next page",
2344
2916
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
2345
2917
  ...props,
2346
2918
  children: [
2347
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "hidden sm:block", children: "Next" }),
2348
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.ChevronRightIcon, {})
2919
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "hidden sm:block", children: "Next" }),
2920
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react14.ChevronRightIcon, {})
2349
2921
  ]
2350
2922
  }
2351
2923
  );
2352
2924
  }
2353
2925
  function PaginationEllipsis({ className, ...props }) {
2354
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2926
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2355
2927
  "span",
2356
2928
  {
2357
2929
  "aria-hidden": true,
@@ -2359,8 +2931,8 @@ function PaginationEllipsis({ className, ...props }) {
2359
2931
  className: cn("flex size-9 items-center justify-center", className),
2360
2932
  ...props,
2361
2933
  children: [
2362
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react11.MoreHorizontalIcon, { className: "size-4" }),
2363
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "sr-only", children: "More pages" })
2934
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react14.MoreHorizontalIcon, { className: "size-4" }),
2935
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "sr-only", children: "More pages" })
2364
2936
  ]
2365
2937
  }
2366
2938
  );
@@ -2368,34 +2940,34 @@ function PaginationEllipsis({ className, ...props }) {
2368
2940
 
2369
2941
  // src/ui/sheet.tsx
2370
2942
  var import_dialog = require("@base-ui/react/dialog");
2371
- var import_lucide_react12 = require("lucide-react");
2943
+ var import_lucide_react15 = require("lucide-react");
2372
2944
  var import_class_variance_authority7 = require("class-variance-authority");
2373
- var import_jsx_runtime26 = require("react/jsx-runtime");
2945
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2374
2946
  function Sheet({
2375
2947
  ...props
2376
2948
  }) {
2377
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_dialog.Dialog.Root, { "data-slot": "sheet", ...props });
2949
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_dialog.Dialog.Root, { "data-slot": "sheet", ...props });
2378
2950
  }
2379
2951
  function SheetTrigger({
2380
2952
  ...props
2381
2953
  }) {
2382
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "sheet-trigger", ...props });
2954
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_dialog.Dialog.Trigger, { "data-slot": "sheet-trigger", ...props });
2383
2955
  }
2384
2956
  function SheetClose({
2385
2957
  ...props
2386
2958
  }) {
2387
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_dialog.Dialog.Close, { "data-slot": "sheet-close", ...props });
2959
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_dialog.Dialog.Close, { "data-slot": "sheet-close", ...props });
2388
2960
  }
2389
2961
  function SheetPortal({
2390
2962
  ...props
2391
2963
  }) {
2392
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_dialog.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
2964
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_dialog.Dialog.Portal, { "data-slot": "sheet-portal", ...props });
2393
2965
  }
2394
2966
  function SheetOverlay({
2395
2967
  className,
2396
2968
  ...props
2397
2969
  }) {
2398
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2970
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2399
2971
  import_dialog.Dialog.Backdrop,
2400
2972
  {
2401
2973
  "data-slot": "sheet-overlay",
@@ -2429,9 +3001,9 @@ function SheetContent({
2429
3001
  side = "right",
2430
3002
  ...props
2431
3003
  }) {
2432
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
2433
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(SheetOverlay, {}),
2434
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3004
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(SheetPortal, { "data-slot": "sheet-portal", children: [
3005
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SheetOverlay, {}),
3006
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
2435
3007
  import_dialog.Dialog.Popup,
2436
3008
  {
2437
3009
  "data-slot": "sheet-content",
@@ -2439,11 +3011,11 @@ function SheetContent({
2439
3011
  ...props,
2440
3012
  children: [
2441
3013
  children,
2442
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3014
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
2443
3015
  import_dialog.Dialog.Close,
2444
3016
  {
2445
3017
  "data-slot": "sheet-close",
2446
- render: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3018
+ render: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2447
3019
  "button",
2448
3020
  {
2449
3021
  type: "button",
@@ -2451,8 +3023,8 @@ function SheetContent({
2451
3023
  }
2452
3024
  ),
2453
3025
  children: [
2454
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react12.XIcon, {}),
2455
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sr-only", children: "Close" })
3026
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react15.XIcon, {}),
3027
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "sr-only", children: "Close" })
2456
3028
  ]
2457
3029
  }
2458
3030
  )
@@ -2462,7 +3034,7 @@ function SheetContent({
2462
3034
  ] });
2463
3035
  }
2464
3036
  function SheetHeader({ className, ...props }) {
2465
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3037
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2466
3038
  "div",
2467
3039
  {
2468
3040
  "data-slot": "sheet-header",
@@ -2472,7 +3044,7 @@ function SheetHeader({ className, ...props }) {
2472
3044
  );
2473
3045
  }
2474
3046
  function SheetFooter({ className, ...props }) {
2475
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3047
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2476
3048
  "div",
2477
3049
  {
2478
3050
  "data-slot": "sheet-footer",
@@ -2485,7 +3057,7 @@ function SheetTitle({
2485
3057
  className,
2486
3058
  ...props
2487
3059
  }) {
2488
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3060
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2489
3061
  import_dialog.Dialog.Title,
2490
3062
  {
2491
3063
  "data-slot": "sheet-title",
@@ -2498,7 +3070,7 @@ function SheetDescription({
2498
3070
  className,
2499
3071
  ...props
2500
3072
  }) {
2501
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3073
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2502
3074
  import_dialog.Dialog.Description,
2503
3075
  {
2504
3076
  "data-slot": "sheet-description",
@@ -2510,8 +3082,8 @@ function SheetDescription({
2510
3082
 
2511
3083
  // src/ui/toast.tsx
2512
3084
  var import_toast = require("@base-ui/react/toast");
2513
- var import_lucide_react13 = require("lucide-react");
2514
- var import_jsx_runtime27 = require("react/jsx-runtime");
3085
+ var import_lucide_react16 = require("lucide-react");
3086
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2515
3087
  var toastManager = import_toast.Toast.createToastManager();
2516
3088
  function toast(message, options = {}) {
2517
3089
  return toastManager.add({
@@ -2529,7 +3101,7 @@ var toastVariantClass = {
2529
3101
  };
2530
3102
  function ToasterViewport({ className }) {
2531
3103
  const { toasts } = import_toast.Toast.useToastManager();
2532
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3104
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_toast.Toast.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2533
3105
  import_toast.Toast.Viewport,
2534
3106
  {
2535
3107
  "data-slot": "toast-viewport",
@@ -2537,7 +3109,7 @@ function ToasterViewport({ className }) {
2537
3109
  "fixed top-4 right-4 z-[100] flex w-80 flex-col gap-2 outline-none",
2538
3110
  className
2539
3111
  ),
2540
- children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3112
+ children: toasts.map((item) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2541
3113
  import_toast.Toast.Root,
2542
3114
  {
2543
3115
  toast: item,
@@ -2547,16 +3119,16 @@ function ToasterViewport({ className }) {
2547
3119
  "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",
2548
3120
  toastVariantClass[item.type ?? "info"] ?? toastVariantClass.info
2549
3121
  ),
2550
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
2551
- /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "grid gap-0.5", children: [
2552
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3122
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_toast.Toast.Content, { className: "flex items-start justify-between gap-2", children: [
3123
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "grid gap-0.5", children: [
3124
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2553
3125
  import_toast.Toast.Title,
2554
3126
  {
2555
3127
  "data-slot": "toast-title",
2556
3128
  className: "font-medium"
2557
3129
  }
2558
3130
  ),
2559
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3131
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2560
3132
  import_toast.Toast.Description,
2561
3133
  {
2562
3134
  "data-slot": "toast-description",
@@ -2564,13 +3136,13 @@ function ToasterViewport({ className }) {
2564
3136
  }
2565
3137
  )
2566
3138
  ] }),
2567
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3139
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2568
3140
  import_toast.Toast.Close,
2569
3141
  {
2570
3142
  "data-slot": "toast-close",
2571
3143
  "aria-label": "Close",
2572
3144
  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",
2573
- children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_lucide_react13.XIcon, {})
3145
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react16.XIcon, {})
2574
3146
  }
2575
3147
  )
2576
3148
  ] })
@@ -2581,71 +3153,11 @@ function ToasterViewport({ className }) {
2581
3153
  ) });
2582
3154
  }
2583
3155
  function Toaster({ className }) {
2584
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ToasterViewport, { className }) });
2585
- }
2586
-
2587
- // src/ui/tooltip.tsx
2588
- var import_tooltip = require("@base-ui/react/tooltip");
2589
- var import_jsx_runtime28 = require("react/jsx-runtime");
2590
- function TooltipProvider({
2591
- delay = 0,
2592
- ...props
2593
- }) {
2594
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2595
- import_tooltip.Tooltip.Provider,
2596
- {
2597
- "data-slot": "tooltip-provider",
2598
- delay,
2599
- ...props
2600
- }
2601
- );
2602
- }
2603
- function Tooltip({
2604
- ...props
2605
- }) {
2606
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_tooltip.Tooltip.Root, { "data-slot": "tooltip", ...props }) });
2607
- }
2608
- function TooltipTrigger({
2609
- ...props
2610
- }) {
2611
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_tooltip.Tooltip.Trigger, { "data-slot": "tooltip-trigger", ...props });
2612
- }
2613
- function TooltipContent({
2614
- className,
2615
- side = "top",
2616
- sideOffset = 4,
2617
- align = "center",
2618
- children,
2619
- ...props
2620
- }) {
2621
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2622
- import_tooltip.Tooltip.Positioner,
2623
- {
2624
- align,
2625
- side,
2626
- sideOffset,
2627
- className: "isolate z-50",
2628
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
2629
- import_tooltip.Tooltip.Popup,
2630
- {
2631
- "data-slot": "tooltip-content",
2632
- className: cn(
2633
- "z-50 w-fit origin-(--transform-origin) rounded-md bg-primary px-3 py-1.5 text-xs text-balance text-primary-foreground duration-200 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fill-mode-forwards data-closed:fade-out-0 data-closed:zoom-out-95",
2634
- className
2635
- ),
2636
- ...props,
2637
- children: [
2638
- children,
2639
- /* @__PURE__ */ (0, import_jsx_runtime28.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" })
2640
- ]
2641
- }
2642
- )
2643
- }
2644
- ) });
3156
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_toast.Toast.Provider, { toastManager, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(ToasterViewport, { className }) });
2645
3157
  }
2646
3158
 
2647
3159
  // src/ui/card.tsx
2648
- var import_jsx_runtime29 = require("react/jsx-runtime");
3160
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2649
3161
  var cardRoundedClasses = {
2650
3162
  none: "rounded-none",
2651
3163
  sm: "rounded-sm",
@@ -2660,7 +3172,7 @@ function Card({
2660
3172
  rounded = "lg",
2661
3173
  ...props
2662
3174
  }) {
2663
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3175
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2664
3176
  "div",
2665
3177
  {
2666
3178
  "data-slot": "card",
@@ -2674,7 +3186,7 @@ function Card({
2674
3186
  );
2675
3187
  }
2676
3188
  function CardHeader({ className, ...props }) {
2677
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3189
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2678
3190
  "div",
2679
3191
  {
2680
3192
  "data-slot": "card-header",
@@ -2687,7 +3199,7 @@ function CardHeader({ className, ...props }) {
2687
3199
  );
2688
3200
  }
2689
3201
  function CardTitle({ className, ...props }) {
2690
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3202
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2691
3203
  "div",
2692
3204
  {
2693
3205
  "data-slot": "card-title",
@@ -2697,7 +3209,7 @@ function CardTitle({ className, ...props }) {
2697
3209
  );
2698
3210
  }
2699
3211
  function CardDescription({ className, ...props }) {
2700
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3212
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2701
3213
  "div",
2702
3214
  {
2703
3215
  "data-slot": "card-description",
@@ -2707,7 +3219,7 @@ function CardDescription({ className, ...props }) {
2707
3219
  );
2708
3220
  }
2709
3221
  function CardAction({ className, ...props }) {
2710
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3222
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2711
3223
  "div",
2712
3224
  {
2713
3225
  "data-slot": "card-action",
@@ -2720,7 +3232,7 @@ function CardAction({ className, ...props }) {
2720
3232
  );
2721
3233
  }
2722
3234
  function CardContent({ className, ...props }) {
2723
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3235
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2724
3236
  "div",
2725
3237
  {
2726
3238
  "data-slot": "card-content",
@@ -2730,7 +3242,7 @@ function CardContent({ className, ...props }) {
2730
3242
  );
2731
3243
  }
2732
3244
  function CardFooter({ className, ...props }) {
2733
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3245
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2734
3246
  "div",
2735
3247
  {
2736
3248
  "data-slot": "card-footer",
@@ -2742,33 +3254,33 @@ function CardFooter({ className, ...props }) {
2742
3254
 
2743
3255
  // src/ui/dialog.tsx
2744
3256
  var import_dialog2 = require("@base-ui/react/dialog");
2745
- var import_lucide_react14 = require("lucide-react");
2746
- var import_jsx_runtime30 = require("react/jsx-runtime");
3257
+ var import_lucide_react17 = require("lucide-react");
3258
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2747
3259
  function Dialog({
2748
3260
  ...props
2749
3261
  }) {
2750
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_dialog2.Dialog.Root, { "data-slot": "dialog", ...props });
3262
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_dialog2.Dialog.Root, { "data-slot": "dialog", ...props });
2751
3263
  }
2752
3264
  function DialogTrigger({
2753
3265
  ...props
2754
3266
  }) {
2755
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_dialog2.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
3267
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_dialog2.Dialog.Trigger, { "data-slot": "dialog-trigger", ...props });
2756
3268
  }
2757
3269
  function DialogPortal({
2758
3270
  ...props
2759
3271
  }) {
2760
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_dialog2.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
3272
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_dialog2.Dialog.Portal, { "data-slot": "dialog-portal", ...props });
2761
3273
  }
2762
3274
  function DialogClose({
2763
3275
  ...props
2764
3276
  }) {
2765
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_dialog2.Dialog.Close, { "data-slot": "dialog-close", ...props });
3277
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_dialog2.Dialog.Close, { "data-slot": "dialog-close", ...props });
2766
3278
  }
2767
3279
  function DialogOverlay({
2768
3280
  className,
2769
3281
  ...props
2770
3282
  }) {
2771
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3283
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2772
3284
  import_dialog2.Dialog.Backdrop,
2773
3285
  {
2774
3286
  "data-slot": "dialog-overlay",
@@ -2786,9 +3298,9 @@ function DialogContent({
2786
3298
  showCloseButton = true,
2787
3299
  ...props
2788
3300
  }) {
2789
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
2790
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(DialogOverlay, {}),
2791
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3301
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
3302
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(DialogOverlay, {}),
3303
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2792
3304
  import_dialog2.Dialog.Popup,
2793
3305
  {
2794
3306
  "data-slot": "dialog-content",
@@ -2799,11 +3311,11 @@ function DialogContent({
2799
3311
  ...props,
2800
3312
  children: [
2801
3313
  children,
2802
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
3314
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2803
3315
  import_dialog2.Dialog.Close,
2804
3316
  {
2805
3317
  "data-slot": "dialog-close",
2806
- render: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3318
+ render: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2807
3319
  "button",
2808
3320
  {
2809
3321
  type: "button",
@@ -2811,8 +3323,8 @@ function DialogContent({
2811
3323
  }
2812
3324
  ),
2813
3325
  children: [
2814
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react14.XIcon, {}),
2815
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "sr-only", children: "Close" })
3326
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.XIcon, {}),
3327
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "sr-only", children: "Close" })
2816
3328
  ]
2817
3329
  }
2818
3330
  )
@@ -2822,7 +3334,7 @@ function DialogContent({
2822
3334
  ] });
2823
3335
  }
2824
3336
  function DialogHeader({ className, ...props }) {
2825
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3337
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2826
3338
  "div",
2827
3339
  {
2828
3340
  "data-slot": "dialog-header",
@@ -2832,7 +3344,7 @@ function DialogHeader({ className, ...props }) {
2832
3344
  );
2833
3345
  }
2834
3346
  function DialogFooter({ className, ...props }) {
2835
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3347
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2836
3348
  "div",
2837
3349
  {
2838
3350
  "data-slot": "dialog-footer",
@@ -2848,7 +3360,7 @@ function DialogTitle({
2848
3360
  className,
2849
3361
  ...props
2850
3362
  }) {
2851
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3363
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2852
3364
  import_dialog2.Dialog.Title,
2853
3365
  {
2854
3366
  "data-slot": "dialog-title",
@@ -2861,7 +3373,7 @@ function DialogDescription({
2861
3373
  className,
2862
3374
  ...props
2863
3375
  }) {
2864
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3376
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2865
3377
  import_dialog2.Dialog.Description,
2866
3378
  {
2867
3379
  "data-slot": "dialog-description",
@@ -2872,9 +3384,9 @@ function DialogDescription({
2872
3384
  }
2873
3385
 
2874
3386
  // src/ui/empty.tsx
2875
- var import_jsx_runtime31 = require("react/jsx-runtime");
3387
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2876
3388
  function Empty({ className, ...props }) {
2877
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3389
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2878
3390
  "div",
2879
3391
  {
2880
3392
  "data-slot": "empty",
@@ -2887,7 +3399,7 @@ function Empty({ className, ...props }) {
2887
3399
  );
2888
3400
  }
2889
3401
  function EmptyHeader({ className, ...props }) {
2890
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3402
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2891
3403
  "div",
2892
3404
  {
2893
3405
  "data-slot": "empty-header",
@@ -2897,7 +3409,7 @@ function EmptyHeader({ className, ...props }) {
2897
3409
  );
2898
3410
  }
2899
3411
  function EmptyTitle({ className, ...props }) {
2900
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3412
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2901
3413
  "div",
2902
3414
  {
2903
3415
  "data-slot": "empty-title",
@@ -2907,7 +3419,7 @@ function EmptyTitle({ className, ...props }) {
2907
3419
  );
2908
3420
  }
2909
3421
  function EmptyDescription({ className, ...props }) {
2910
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3422
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2911
3423
  "p",
2912
3424
  {
2913
3425
  "data-slot": "empty-description",
@@ -2917,7 +3429,7 @@ function EmptyDescription({ className, ...props }) {
2917
3429
  );
2918
3430
  }
2919
3431
  function EmptyContent({ className, ...props }) {
2920
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3432
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2921
3433
  "div",
2922
3434
  {
2923
3435
  "data-slot": "empty-content",
@@ -2932,9 +3444,9 @@ function EmptyContent({ className, ...props }) {
2932
3444
 
2933
3445
  // src/ui/field.tsx
2934
3446
  var import_field = require("@base-ui/react/field");
2935
- var import_jsx_runtime32 = require("react/jsx-runtime");
3447
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2936
3448
  function Field({ className, ...props }) {
2937
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3449
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2938
3450
  import_field.Field.Root,
2939
3451
  {
2940
3452
  "data-slot": "field",
@@ -2944,7 +3456,7 @@ function Field({ className, ...props }) {
2944
3456
  );
2945
3457
  }
2946
3458
  function FieldLabel({ className, ...props }) {
2947
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3459
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2948
3460
  import_field.Field.Label,
2949
3461
  {
2950
3462
  "data-slot": "field-label",
@@ -2954,7 +3466,7 @@ function FieldLabel({ className, ...props }) {
2954
3466
  );
2955
3467
  }
2956
3468
  function FieldDescription({ className, ...props }) {
2957
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3469
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2958
3470
  import_field.Field.Description,
2959
3471
  {
2960
3472
  "data-slot": "field-description",
@@ -2964,7 +3476,7 @@ function FieldDescription({ className, ...props }) {
2964
3476
  );
2965
3477
  }
2966
3478
  function FieldError({ className, ...props }) {
2967
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
3479
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2968
3480
  import_field.Field.Error,
2969
3481
  {
2970
3482
  "data-slot": "field-error",
@@ -2975,9 +3487,9 @@ function FieldError({ className, ...props }) {
2975
3487
  }
2976
3488
 
2977
3489
  // src/ui/input.tsx
2978
- var import_jsx_runtime33 = require("react/jsx-runtime");
3490
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2979
3491
  function Input({ className, type, ...props }) {
2980
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
3492
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2981
3493
  "input",
2982
3494
  {
2983
3495
  type,
@@ -2992,9 +3504,9 @@ function Input({ className, type, ...props }) {
2992
3504
  }
2993
3505
 
2994
3506
  // src/ui/input-group.tsx
2995
- var import_jsx_runtime34 = require("react/jsx-runtime");
3507
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2996
3508
  function InputGroup({ className, ...props }) {
2997
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3509
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
2998
3510
  "div",
2999
3511
  {
3000
3512
  "data-slot": "input-group",
@@ -3016,7 +3528,7 @@ function InputGroupAddon({
3016
3528
  align = "inline-start",
3017
3529
  ...props
3018
3530
  }) {
3019
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3531
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3020
3532
  "div",
3021
3533
  {
3022
3534
  role: "group",
@@ -3035,7 +3547,7 @@ function InputGroupInput({
3035
3547
  className,
3036
3548
  ...props
3037
3549
  }) {
3038
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
3550
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3039
3551
  "input",
3040
3552
  {
3041
3553
  "data-slot": "input-group-input",
@@ -3050,15 +3562,15 @@ function InputGroupInput({
3050
3562
 
3051
3563
  // src/ui/input-otp.tsx
3052
3564
  var import_input_otp = require("input-otp");
3053
- var import_lucide_react15 = require("lucide-react");
3054
- var React6 = __toESM(require("react"), 1);
3055
- var import_jsx_runtime35 = require("react/jsx-runtime");
3565
+ var import_lucide_react18 = require("lucide-react");
3566
+ var React10 = __toESM(require("react"), 1);
3567
+ var import_jsx_runtime42 = require("react/jsx-runtime");
3056
3568
  function InputOTP({
3057
3569
  className,
3058
3570
  containerClassName,
3059
3571
  ...props
3060
3572
  }) {
3061
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3573
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3062
3574
  import_input_otp.OTPInput,
3063
3575
  {
3064
3576
  "data-slot": "input-otp",
@@ -3072,7 +3584,7 @@ function InputOTP({
3072
3584
  );
3073
3585
  }
3074
3586
  function InputOTPGroup({ className, ...props }) {
3075
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3587
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3076
3588
  "div",
3077
3589
  {
3078
3590
  "data-slot": "input-otp-group",
@@ -3086,9 +3598,9 @@ function InputOTPSlot({
3086
3598
  className,
3087
3599
  ...props
3088
3600
  }) {
3089
- const inputOTPContext = React6.useContext(import_input_otp.OTPInputContext);
3601
+ const inputOTPContext = React10.useContext(import_input_otp.OTPInputContext);
3090
3602
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
3091
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
3603
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3092
3604
  "div",
3093
3605
  {
3094
3606
  "data-slot": "input-otp-slot",
@@ -3100,19 +3612,19 @@ function InputOTPSlot({
3100
3612
  ...props,
3101
3613
  children: [
3102
3614
  char,
3103
- hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
3615
+ hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) }) : null
3104
3616
  ]
3105
3617
  }
3106
3618
  );
3107
3619
  }
3108
3620
  function InputOTPSeparator({ ...props }) {
3109
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react15.MinusIcon, {}) });
3621
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react18.MinusIcon, {}) });
3110
3622
  }
3111
3623
 
3112
3624
  // src/ui/item.tsx
3113
- var import_jsx_runtime36 = require("react/jsx-runtime");
3625
+ var import_jsx_runtime43 = require("react/jsx-runtime");
3114
3626
  function Item({ className, ...props }) {
3115
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3627
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3116
3628
  "div",
3117
3629
  {
3118
3630
  "data-slot": "item",
@@ -3125,7 +3637,7 @@ function Item({ className, ...props }) {
3125
3637
  );
3126
3638
  }
3127
3639
  function ItemMedia({ className, ...props }) {
3128
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3640
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3129
3641
  "div",
3130
3642
  {
3131
3643
  "data-slot": "item-media",
@@ -3138,7 +3650,7 @@ function ItemMedia({ className, ...props }) {
3138
3650
  );
3139
3651
  }
3140
3652
  function ItemContent({ className, ...props }) {
3141
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3653
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3142
3654
  "div",
3143
3655
  {
3144
3656
  "data-slot": "item-content",
@@ -3148,7 +3660,7 @@ function ItemContent({ className, ...props }) {
3148
3660
  );
3149
3661
  }
3150
3662
  function ItemTitle({ className, ...props }) {
3151
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3663
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3152
3664
  "div",
3153
3665
  {
3154
3666
  "data-slot": "item-title",
@@ -3158,7 +3670,7 @@ function ItemTitle({ className, ...props }) {
3158
3670
  );
3159
3671
  }
3160
3672
  function ItemDescription({ className, ...props }) {
3161
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3673
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3162
3674
  "p",
3163
3675
  {
3164
3676
  "data-slot": "item-description",
@@ -3168,7 +3680,7 @@ function ItemDescription({ className, ...props }) {
3168
3680
  );
3169
3681
  }
3170
3682
  function ItemActions({ className, ...props }) {
3171
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3683
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3172
3684
  "div",
3173
3685
  {
3174
3686
  "data-slot": "item-actions",
@@ -3179,9 +3691,9 @@ function ItemActions({ className, ...props }) {
3179
3691
  }
3180
3692
 
3181
3693
  // src/ui/kbd.tsx
3182
- var import_jsx_runtime37 = require("react/jsx-runtime");
3694
+ var import_jsx_runtime44 = require("react/jsx-runtime");
3183
3695
  function Kbd({ className, ...props }) {
3184
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3696
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3185
3697
  "kbd",
3186
3698
  {
3187
3699
  "data-slot": "kbd",
@@ -3195,12 +3707,12 @@ function Kbd({ className, ...props }) {
3195
3707
  }
3196
3708
 
3197
3709
  // src/ui/label.tsx
3198
- var import_jsx_runtime38 = require("react/jsx-runtime");
3710
+ var import_jsx_runtime45 = require("react/jsx-runtime");
3199
3711
  function Label({
3200
3712
  className,
3201
3713
  ...props
3202
3714
  }) {
3203
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3715
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3204
3716
  "label",
3205
3717
  {
3206
3718
  "data-slot": "label",
@@ -3214,9 +3726,9 @@ function Label({
3214
3726
  }
3215
3727
 
3216
3728
  // src/ui/message.tsx
3217
- var import_jsx_runtime39 = require("react/jsx-runtime");
3729
+ var import_jsx_runtime46 = require("react/jsx-runtime");
3218
3730
  function MessageGroup({ className, ...props }) {
3219
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3731
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3220
3732
  "div",
3221
3733
  {
3222
3734
  "data-slot": "message-group",
@@ -3230,7 +3742,7 @@ function Message({
3230
3742
  align = "start",
3231
3743
  ...props
3232
3744
  }) {
3233
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3745
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3234
3746
  "div",
3235
3747
  {
3236
3748
  "data-slot": "message",
@@ -3244,7 +3756,7 @@ function Message({
3244
3756
  );
3245
3757
  }
3246
3758
  function MessageAvatar({ className, ...props }) {
3247
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3759
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3248
3760
  "div",
3249
3761
  {
3250
3762
  "data-slot": "message-avatar",
@@ -3257,7 +3769,7 @@ function MessageAvatar({ className, ...props }) {
3257
3769
  );
3258
3770
  }
3259
3771
  function MessageContent({ className, ...props }) {
3260
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3772
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3261
3773
  "div",
3262
3774
  {
3263
3775
  "data-slot": "message-content",
@@ -3270,7 +3782,7 @@ function MessageContent({ className, ...props }) {
3270
3782
  );
3271
3783
  }
3272
3784
  function MessageHeader({ className, ...props }) {
3273
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3785
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3274
3786
  "div",
3275
3787
  {
3276
3788
  "data-slot": "message-header",
@@ -3283,7 +3795,7 @@ function MessageHeader({ className, ...props }) {
3283
3795
  );
3284
3796
  }
3285
3797
  function MessageFooter({ className, ...props }) {
3286
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3798
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
3287
3799
  "div",
3288
3800
  {
3289
3801
  "data-slot": "message-footer",
@@ -3298,9 +3810,9 @@ function MessageFooter({ className, ...props }) {
3298
3810
 
3299
3811
  // src/ui/progress.tsx
3300
3812
  var import_progress = require("@base-ui/react/progress");
3301
- var import_jsx_runtime40 = require("react/jsx-runtime");
3813
+ var import_jsx_runtime47 = require("react/jsx-runtime");
3302
3814
  function Progress({ className, ...props }) {
3303
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3815
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3304
3816
  import_progress.Progress.Root,
3305
3817
  {
3306
3818
  "data-slot": "progress",
@@ -3310,7 +3822,7 @@ function Progress({ className, ...props }) {
3310
3822
  );
3311
3823
  }
3312
3824
  function ProgressTrack({ className, ...props }) {
3313
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3825
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3314
3826
  import_progress.Progress.Track,
3315
3827
  {
3316
3828
  "data-slot": "progress-track",
@@ -3323,7 +3835,7 @@ function ProgressIndicator({
3323
3835
  className,
3324
3836
  ...props
3325
3837
  }) {
3326
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3838
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3327
3839
  import_progress.Progress.Indicator,
3328
3840
  {
3329
3841
  "data-slot": "progress-indicator",
@@ -3339,9 +3851,9 @@ function ProgressIndicator({
3339
3851
  // src/ui/radio-group.tsx
3340
3852
  var import_radio = require("@base-ui/react/radio");
3341
3853
  var import_radio_group = require("@base-ui/react/radio-group");
3342
- var import_jsx_runtime41 = require("react/jsx-runtime");
3854
+ var import_jsx_runtime48 = require("react/jsx-runtime");
3343
3855
  function RadioGroup({ className, ...props }) {
3344
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3856
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3345
3857
  import_radio_group.RadioGroup,
3346
3858
  {
3347
3859
  "data-slot": "radio-group",
@@ -3351,7 +3863,7 @@ function RadioGroup({ className, ...props }) {
3351
3863
  );
3352
3864
  }
3353
3865
  function RadioGroupItem({ className, ...props }) {
3354
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3866
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3355
3867
  import_radio.Radio.Root,
3356
3868
  {
3357
3869
  "data-slot": "radio-group-item",
@@ -3360,12 +3872,12 @@ function RadioGroupItem({ className, ...props }) {
3360
3872
  className
3361
3873
  ),
3362
3874
  ...props,
3363
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3875
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3364
3876
  import_radio.Radio.Indicator,
3365
3877
  {
3366
3878
  "data-slot": "radio-group-indicator",
3367
3879
  className: "flex items-center justify-center",
3368
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
3880
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "size-2 rounded-full bg-(--radio-checked)" })
3369
3881
  }
3370
3882
  )
3371
3883
  }
@@ -3373,14 +3885,14 @@ function RadioGroupItem({ className, ...props }) {
3373
3885
  }
3374
3886
 
3375
3887
  // src/ui/resizable.tsx
3376
- var import_lucide_react16 = require("lucide-react");
3888
+ var import_lucide_react19 = require("lucide-react");
3377
3889
  var import_react_resizable_panels = require("react-resizable-panels");
3378
- var import_jsx_runtime42 = require("react/jsx-runtime");
3890
+ var import_jsx_runtime49 = require("react/jsx-runtime");
3379
3891
  function PanelGroup({
3380
3892
  className,
3381
3893
  ...props
3382
3894
  }) {
3383
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3895
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3384
3896
  import_react_resizable_panels.Group,
3385
3897
  {
3386
3898
  "data-slot": "resizable-panel-group",
@@ -3393,14 +3905,14 @@ function PanelGroup({
3393
3905
  );
3394
3906
  }
3395
3907
  function Panel({ ...props }) {
3396
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
3908
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_resizable_panels.Panel, { "data-slot": "resizable-panel", ...props });
3397
3909
  }
3398
3910
  function ResizableHandle({
3399
3911
  withHandle,
3400
3912
  className,
3401
3913
  ...props
3402
3914
  }) {
3403
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3915
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3404
3916
  import_react_resizable_panels.Separator,
3405
3917
  {
3406
3918
  "data-slot": "resizable-handle",
@@ -3409,27 +3921,27 @@ function ResizableHandle({
3409
3921
  className
3410
3922
  ),
3411
3923
  ...props,
3412
- children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime42.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_runtime42.jsx)(import_lucide_react16.GripVerticalIcon, { className: "size-2.5" }) }) : null
3924
+ children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime49.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_runtime49.jsx)(import_lucide_react19.GripVerticalIcon, { className: "size-2.5" }) }) : null
3413
3925
  }
3414
3926
  );
3415
3927
  }
3416
3928
 
3417
3929
  // src/ui/scroll-area.tsx
3418
3930
  var import_scroll_area = require("@base-ui/react/scroll-area");
3419
- var import_jsx_runtime43 = require("react/jsx-runtime");
3931
+ var import_jsx_runtime50 = require("react/jsx-runtime");
3420
3932
  function ScrollArea({
3421
3933
  className,
3422
3934
  children,
3423
3935
  ...props
3424
3936
  }) {
3425
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
3937
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
3426
3938
  import_scroll_area.ScrollArea.Root,
3427
3939
  {
3428
3940
  "data-slot": "scroll-area",
3429
3941
  className: cn("relative overflow-hidden", className),
3430
3942
  ...props,
3431
3943
  children: [
3432
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3944
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3433
3945
  import_scroll_area.ScrollArea.Viewport,
3434
3946
  {
3435
3947
  "data-slot": "scroll-area-viewport",
@@ -3437,8 +3949,8 @@ function ScrollArea({
3437
3949
  children
3438
3950
  }
3439
3951
  ),
3440
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ScrollBar, {}),
3441
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_scroll_area.ScrollArea.Corner, {})
3952
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ScrollBar, {}),
3953
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_scroll_area.ScrollArea.Corner, {})
3442
3954
  ]
3443
3955
  }
3444
3956
  );
@@ -3448,7 +3960,7 @@ function ScrollBar({
3448
3960
  orientation = "vertical",
3449
3961
  ...props
3450
3962
  }) {
3451
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3963
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3452
3964
  import_scroll_area.ScrollArea.Scrollbar,
3453
3965
  {
3454
3966
  "data-slot": "scroll-area-scrollbar",
@@ -3460,7 +3972,7 @@ function ScrollBar({
3460
3972
  className
3461
3973
  ),
3462
3974
  ...props,
3463
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3975
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
3464
3976
  import_scroll_area.ScrollArea.Thumb,
3465
3977
  {
3466
3978
  "data-slot": "scroll-area-thumb",
@@ -3473,18 +3985,18 @@ function ScrollBar({
3473
3985
 
3474
3986
  // src/ui/select.tsx
3475
3987
  var import_select = require("@base-ui/react/select");
3476
- var import_lucide_react17 = require("lucide-react");
3477
- var import_jsx_runtime44 = require("react/jsx-runtime");
3988
+ var import_lucide_react20 = require("lucide-react");
3989
+ var import_jsx_runtime51 = require("react/jsx-runtime");
3478
3990
  var Select = import_select.Select.Root;
3479
3991
  function SelectGroup({
3480
3992
  ...props
3481
3993
  }) {
3482
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_select.Select.Group, { "data-slot": "select-group", ...props });
3994
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_select.Select.Group, { "data-slot": "select-group", ...props });
3483
3995
  }
3484
3996
  function SelectValue({
3485
3997
  ...props
3486
3998
  }) {
3487
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
3999
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_select.Select.Value, { "data-slot": "select-value", ...props });
3488
4000
  }
3489
4001
  function SelectTrigger({
3490
4002
  className,
@@ -3493,7 +4005,7 @@ function SelectTrigger({
3493
4005
  iconClassName,
3494
4006
  ...props
3495
4007
  }) {
3496
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
4008
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
3497
4009
  import_select.Select.Trigger,
3498
4010
  {
3499
4011
  "data-slot": "select-trigger",
@@ -3505,10 +4017,10 @@ function SelectTrigger({
3505
4017
  ...props,
3506
4018
  children: [
3507
4019
  children,
3508
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4020
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3509
4021
  import_select.Select.Icon,
3510
4022
  {
3511
- render: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react17.ChevronDownIcon, { className: cn("size-4 opacity-50", iconClassName) })
4023
+ render: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react20.ChevronDownIcon, { className: cn("size-4 opacity-50", iconClassName) })
3512
4024
  }
3513
4025
  )
3514
4026
  ]
@@ -3526,7 +4038,7 @@ function SelectContent({
3526
4038
  alignItemWithTrigger = false,
3527
4039
  ...props
3528
4040
  }) {
3529
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4041
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_select.Select.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3530
4042
  import_select.Select.Positioner,
3531
4043
  {
3532
4044
  side,
@@ -3534,7 +4046,7 @@ function SelectContent({
3534
4046
  align,
3535
4047
  alignItemWithTrigger,
3536
4048
  className: "isolate z-50",
3537
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
4049
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
3538
4050
  import_select.Select.Popup,
3539
4051
  {
3540
4052
  "data-slot": "select-content",
@@ -3548,9 +4060,9 @@ function SelectContent({
3548
4060
  ),
3549
4061
  ...props,
3550
4062
  children: [
3551
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectScrollUpButton, {}),
3552
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_select.Select.List, { className: "p-1", children }),
3553
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectScrollDownButton, {})
4063
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SelectScrollUpButton, {}),
4064
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_select.Select.List, { className: "p-1", children }),
4065
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(SelectScrollDownButton, {})
3554
4066
  ]
3555
4067
  }
3556
4068
  )
@@ -3561,7 +4073,7 @@ function SelectLabel({
3561
4073
  className,
3562
4074
  ...props
3563
4075
  }) {
3564
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4076
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3565
4077
  import_select.Select.GroupLabel,
3566
4078
  {
3567
4079
  "data-slot": "select-label",
@@ -3575,7 +4087,7 @@ function SelectItem({
3575
4087
  children,
3576
4088
  ...props
3577
4089
  }) {
3578
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
4090
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
3579
4091
  import_select.Select.Item,
3580
4092
  {
3581
4093
  "data-slot": "select-item",
@@ -3585,8 +4097,8 @@ function SelectItem({
3585
4097
  ),
3586
4098
  ...props,
3587
4099
  children: [
3588
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react17.CheckIcon, { className: "size-4" }) }) }),
3589
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_select.Select.ItemText, { children })
4100
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_select.Select.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react20.CheckIcon, { className: "size-4" }) }) }),
4101
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_select.Select.ItemText, { children })
3590
4102
  ]
3591
4103
  }
3592
4104
  );
@@ -3595,7 +4107,7 @@ function SelectSeparator({
3595
4107
  className,
3596
4108
  ...props
3597
4109
  }) {
3598
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4110
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3599
4111
  import_select.Select.Separator,
3600
4112
  {
3601
4113
  "data-slot": "select-separator",
@@ -3608,7 +4120,7 @@ function SelectScrollUpButton({
3608
4120
  className,
3609
4121
  ...props
3610
4122
  }) {
3611
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4123
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3612
4124
  import_select.Select.ScrollUpArrow,
3613
4125
  {
3614
4126
  "data-slot": "select-scroll-up-button",
@@ -3617,7 +4129,7 @@ function SelectScrollUpButton({
3617
4129
  className
3618
4130
  ),
3619
4131
  ...props,
3620
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react17.ChevronUpIcon, { className: "size-4" })
4132
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react20.ChevronUpIcon, { className: "size-4" })
3621
4133
  }
3622
4134
  );
3623
4135
  }
@@ -3625,7 +4137,7 @@ function SelectScrollDownButton({
3625
4137
  className,
3626
4138
  ...props
3627
4139
  }) {
3628
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4140
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3629
4141
  import_select.Select.ScrollDownArrow,
3630
4142
  {
3631
4143
  "data-slot": "select-scroll-down-button",
@@ -3634,21 +4146,21 @@ function SelectScrollDownButton({
3634
4146
  className
3635
4147
  ),
3636
4148
  ...props,
3637
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_lucide_react17.ChevronDownIcon, { className: "size-4" })
4149
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_lucide_react20.ChevronDownIcon, { className: "size-4" })
3638
4150
  }
3639
4151
  );
3640
4152
  }
3641
4153
 
3642
4154
  // src/ui/separator.tsx
3643
4155
  var import_separator = require("@base-ui/react/separator");
3644
- var import_jsx_runtime45 = require("react/jsx-runtime");
4156
+ var import_jsx_runtime52 = require("react/jsx-runtime");
3645
4157
  function Separator({
3646
4158
  className,
3647
4159
  orientation = "horizontal",
3648
4160
  decorative: _decorative,
3649
4161
  ...props
3650
4162
  }) {
3651
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
4163
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3652
4164
  import_separator.Separator,
3653
4165
  {
3654
4166
  "data-slot": "separator",
@@ -3663,9 +4175,9 @@ function Separator({
3663
4175
  }
3664
4176
 
3665
4177
  // src/ui/sidebar.tsx
3666
- var React7 = __toESM(require("react"), 1);
4178
+ var React11 = __toESM(require("react"), 1);
3667
4179
  var import_class_variance_authority8 = require("class-variance-authority");
3668
- var import_lucide_react18 = require("lucide-react");
4180
+ var import_lucide_react21 = require("lucide-react");
3669
4181
 
3670
4182
  // src/hooks/use-mobile.ts
3671
4183
  var import_react = require("react");
@@ -3690,9 +4202,9 @@ function useIsMobile() {
3690
4202
  }
3691
4203
 
3692
4204
  // src/ui/skeleton.tsx
3693
- var import_jsx_runtime46 = require("react/jsx-runtime");
4205
+ var import_jsx_runtime53 = require("react/jsx-runtime");
3694
4206
  function Skeleton({ className, ...props }) {
3695
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
4207
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
3696
4208
  "div",
3697
4209
  {
3698
4210
  "data-slot": "skeleton",
@@ -3703,14 +4215,14 @@ function Skeleton({ className, ...props }) {
3703
4215
  }
3704
4216
 
3705
4217
  // src/ui/sidebar.tsx
3706
- var import_jsx_runtime47 = require("react/jsx-runtime");
4218
+ var import_jsx_runtime54 = require("react/jsx-runtime");
3707
4219
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
3708
4220
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
3709
4221
  var SIDEBAR_WIDTH_MOBILE = "18rem";
3710
4222
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
3711
- var SidebarContext = React7.createContext(null);
4223
+ var SidebarContext = React11.createContext(null);
3712
4224
  function useSidebar() {
3713
- const context = React7.useContext(SidebarContext);
4225
+ const context = React11.useContext(SidebarContext);
3714
4226
  if (!context) {
3715
4227
  throw new Error("useSidebar must be used within a SidebarProvider.");
3716
4228
  }
@@ -3726,10 +4238,10 @@ function SidebarProvider({
3726
4238
  ...props
3727
4239
  }) {
3728
4240
  const isMobile = useIsMobile();
3729
- const [openMobile, setOpenMobile] = React7.useState(false);
3730
- const [_open, _setOpen] = React7.useState(defaultOpen);
4241
+ const [openMobile, setOpenMobile] = React11.useState(false);
4242
+ const [_open, _setOpen] = React11.useState(defaultOpen);
3731
4243
  const open = openProp ?? _open;
3732
- const setOpen = React7.useCallback(
4244
+ const setOpen = React11.useCallback(
3733
4245
  (value) => {
3734
4246
  const openState = typeof value === "function" ? value(open) : value;
3735
4247
  if (setOpenProp) {
@@ -3741,10 +4253,10 @@ function SidebarProvider({
3741
4253
  },
3742
4254
  [setOpenProp, open]
3743
4255
  );
3744
- const toggleSidebar = React7.useCallback(() => {
4256
+ const toggleSidebar = React11.useCallback(() => {
3745
4257
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
3746
4258
  }, [isMobile, setOpen, setOpenMobile]);
3747
- React7.useEffect(() => {
4259
+ React11.useEffect(() => {
3748
4260
  const handleKeyDown = (event) => {
3749
4261
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
3750
4262
  event.preventDefault();
@@ -3755,7 +4267,7 @@ function SidebarProvider({
3755
4267
  return () => window.removeEventListener("keydown", handleKeyDown);
3756
4268
  }, [toggleSidebar]);
3757
4269
  const state = open ? "expanded" : "collapsed";
3758
- const contextValue = React7.useMemo(
4270
+ const contextValue = React11.useMemo(
3759
4271
  () => ({
3760
4272
  state,
3761
4273
  open,
@@ -3767,7 +4279,7 @@ function SidebarProvider({
3767
4279
  }),
3768
4280
  [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
3769
4281
  );
3770
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4282
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipProvider, { delay: 0, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3771
4283
  "div",
3772
4284
  {
3773
4285
  "data-slot": "sidebar-wrapper",
@@ -3791,7 +4303,7 @@ function SidebarRoot({
3791
4303
  }) {
3792
4304
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
3793
4305
  if (collapsible === "none") {
3794
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4306
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3795
4307
  "div",
3796
4308
  {
3797
4309
  "data-slot": "sidebar",
@@ -3805,7 +4317,7 @@ function SidebarRoot({
3805
4317
  );
3806
4318
  }
3807
4319
  if (isMobile) {
3808
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
4320
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
3809
4321
  SheetContent,
3810
4322
  {
3811
4323
  "data-sidebar": "sidebar",
@@ -3817,16 +4329,16 @@ function SidebarRoot({
3817
4329
  },
3818
4330
  side,
3819
4331
  children: [
3820
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(SheetHeader, { className: "sr-only", children: [
3821
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SheetTitle, { children: "Sidebar" }),
3822
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
4332
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(SheetHeader, { className: "sr-only", children: [
4333
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SheetTitle, { children: "Sidebar" }),
4334
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
3823
4335
  ] }),
3824
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex h-full w-full flex-col", children })
4336
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex h-full w-full flex-col", children })
3825
4337
  ]
3826
4338
  }
3827
4339
  ) });
3828
4340
  }
3829
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
4341
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
3830
4342
  "div",
3831
4343
  {
3832
4344
  className: "group peer hidden text-sidebar-foreground md:block",
@@ -3836,7 +4348,7 @@ function SidebarRoot({
3836
4348
  "data-side": side,
3837
4349
  "data-slot": "sidebar",
3838
4350
  children: [
3839
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4351
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3840
4352
  "div",
3841
4353
  {
3842
4354
  "data-slot": "sidebar-gap",
@@ -3848,7 +4360,7 @@ function SidebarRoot({
3848
4360
  )
3849
4361
  }
3850
4362
  ),
3851
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4363
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3852
4364
  "div",
3853
4365
  {
3854
4366
  "data-slot": "sidebar-container",
@@ -3864,7 +4376,7 @@ function SidebarRoot({
3864
4376
  className
3865
4377
  ),
3866
4378
  ...props,
3867
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4379
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3868
4380
  "div",
3869
4381
  {
3870
4382
  "data-sidebar": "sidebar",
@@ -3885,7 +4397,7 @@ function SidebarTrigger({
3885
4397
  ...props
3886
4398
  }) {
3887
4399
  const { toggleSidebar } = useSidebar();
3888
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
4400
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
3889
4401
  Button,
3890
4402
  {
3891
4403
  "data-sidebar": "trigger",
@@ -3899,15 +4411,15 @@ function SidebarTrigger({
3899
4411
  },
3900
4412
  ...props,
3901
4413
  children: [
3902
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react18.PanelLeftIcon, {}),
3903
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
4414
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react21.PanelLeftIcon, {}),
4415
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
3904
4416
  ]
3905
4417
  }
3906
4418
  );
3907
4419
  }
3908
4420
  function SidebarRail({ className, ...props }) {
3909
4421
  const { toggleSidebar } = useSidebar();
3910
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4422
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3911
4423
  "button",
3912
4424
  {
3913
4425
  "data-sidebar": "rail",
@@ -3930,7 +4442,7 @@ function SidebarRail({ className, ...props }) {
3930
4442
  );
3931
4443
  }
3932
4444
  function SidebarInset({ className, ...props }) {
3933
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4445
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3934
4446
  "main",
3935
4447
  {
3936
4448
  "data-slot": "sidebar-inset",
@@ -3949,7 +4461,7 @@ function SidebarInput({
3949
4461
  className,
3950
4462
  ...props
3951
4463
  }) {
3952
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4464
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3953
4465
  Input,
3954
4466
  {
3955
4467
  "data-slot": "sidebar-input",
@@ -3960,7 +4472,7 @@ function SidebarInput({
3960
4472
  );
3961
4473
  }
3962
4474
  function SidebarHeader({ className, ...props }) {
3963
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4475
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3964
4476
  "div",
3965
4477
  {
3966
4478
  "data-slot": "sidebar-header",
@@ -3971,7 +4483,7 @@ function SidebarHeader({ className, ...props }) {
3971
4483
  );
3972
4484
  }
3973
4485
  function SidebarFooter({ className, ...props }) {
3974
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4486
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3975
4487
  "div",
3976
4488
  {
3977
4489
  "data-slot": "sidebar-footer",
@@ -3985,7 +4497,7 @@ function SidebarSeparator({
3985
4497
  className,
3986
4498
  ...props
3987
4499
  }) {
3988
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4500
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
3989
4501
  Separator,
3990
4502
  {
3991
4503
  "data-slot": "sidebar-separator",
@@ -3996,7 +4508,7 @@ function SidebarSeparator({
3996
4508
  );
3997
4509
  }
3998
4510
  function SidebarContent({ className, ...props }) {
3999
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4511
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4000
4512
  "div",
4001
4513
  {
4002
4514
  "data-slot": "sidebar-content",
@@ -4010,7 +4522,7 @@ function SidebarContent({ className, ...props }) {
4010
4522
  );
4011
4523
  }
4012
4524
  function SidebarGroup({ className, ...props }) {
4013
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4525
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4014
4526
  "div",
4015
4527
  {
4016
4528
  "data-slot": "sidebar-group",
@@ -4021,10 +4533,10 @@ function SidebarGroup({ className, ...props }) {
4021
4533
  );
4022
4534
  }
4023
4535
  function renderAsChild(children, dataSlot, className, rest) {
4024
- if (!React7.isValidElement(children)) {
4536
+ if (!React11.isValidElement(children)) {
4025
4537
  return null;
4026
4538
  }
4027
- return React7.cloneElement(children, {
4539
+ return React11.cloneElement(children, {
4028
4540
  "data-slot": dataSlot,
4029
4541
  className: cn(
4030
4542
  className,
@@ -4047,7 +4559,7 @@ function SidebarGroupLabel({
4047
4559
  if (asChild) {
4048
4560
  return renderAsChild(children, "sidebar-group-label", cls, props);
4049
4561
  }
4050
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4562
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4051
4563
  "div",
4052
4564
  {
4053
4565
  "data-slot": "sidebar-group-label",
@@ -4073,7 +4585,7 @@ function SidebarGroupAction({
4073
4585
  if (asChild) {
4074
4586
  return renderAsChild(children, "sidebar-group-action", cls, props);
4075
4587
  }
4076
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4588
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4077
4589
  "button",
4078
4590
  {
4079
4591
  "data-slot": "sidebar-group-action",
@@ -4088,7 +4600,7 @@ function SidebarGroupContent({
4088
4600
  className,
4089
4601
  ...props
4090
4602
  }) {
4091
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4603
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4092
4604
  "div",
4093
4605
  {
4094
4606
  "data-slot": "sidebar-group-content",
@@ -4099,7 +4611,7 @@ function SidebarGroupContent({
4099
4611
  );
4100
4612
  }
4101
4613
  function SidebarMenu({ className, ...props }) {
4102
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4614
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4103
4615
  "ul",
4104
4616
  {
4105
4617
  "data-slot": "sidebar-menu",
@@ -4110,7 +4622,7 @@ function SidebarMenu({ className, ...props }) {
4110
4622
  );
4111
4623
  }
4112
4624
  function SidebarMenuItem({ className, ...props }) {
4113
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4625
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4114
4626
  "li",
4115
4627
  {
4116
4628
  "data-slot": "sidebar-menu-item",
@@ -4157,7 +4669,7 @@ function SidebarMenuButton({
4157
4669
  "data-size": size,
4158
4670
  "data-active": isActive,
4159
4671
  ...props
4160
- }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4672
+ }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4161
4673
  "button",
4162
4674
  {
4163
4675
  "data-slot": "sidebar-menu-button",
@@ -4177,9 +4689,9 @@ function SidebarMenuButton({
4177
4689
  children: tooltip
4178
4690
  };
4179
4691
  }
4180
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Tooltip, { children: [
4181
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(TooltipTrigger, { render: button }),
4182
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4692
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Tooltip, { children: [
4693
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipTrigger, { render: button }),
4694
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4183
4695
  TooltipContent,
4184
4696
  {
4185
4697
  side: "right",
@@ -4210,7 +4722,7 @@ function SidebarMenuAction({
4210
4722
  if (asChild) {
4211
4723
  return renderAsChild(children, "sidebar-menu-action", cls, props);
4212
4724
  }
4213
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4725
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4214
4726
  "button",
4215
4727
  {
4216
4728
  "data-slot": "sidebar-menu-action",
@@ -4225,7 +4737,7 @@ function SidebarMenuBadge({
4225
4737
  className,
4226
4738
  ...props
4227
4739
  }) {
4228
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4740
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4229
4741
  "div",
4230
4742
  {
4231
4743
  "data-slot": "sidebar-menu-badge",
@@ -4248,10 +4760,10 @@ function SidebarMenuSkeleton({
4248
4760
  showIcon = false,
4249
4761
  ...props
4250
4762
  }) {
4251
- const width = React7.useMemo(() => {
4763
+ const width = React11.useMemo(() => {
4252
4764
  return `${Math.floor(Math.random() * 40) + 50}%`;
4253
4765
  }, []);
4254
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
4766
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
4255
4767
  "div",
4256
4768
  {
4257
4769
  "data-slot": "sidebar-menu-skeleton",
@@ -4259,14 +4771,14 @@ function SidebarMenuSkeleton({
4259
4771
  className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
4260
4772
  ...props,
4261
4773
  children: [
4262
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4774
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4263
4775
  Skeleton,
4264
4776
  {
4265
4777
  className: "size-4 rounded-md",
4266
4778
  "data-sidebar": "menu-skeleton-icon"
4267
4779
  }
4268
4780
  ),
4269
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4781
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4270
4782
  Skeleton,
4271
4783
  {
4272
4784
  className: "h-4 max-w-(--skeleton-width) flex-1",
@@ -4281,7 +4793,7 @@ function SidebarMenuSkeleton({
4281
4793
  );
4282
4794
  }
4283
4795
  function SidebarMenuSub({ className, ...props }) {
4284
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4796
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4285
4797
  "ul",
4286
4798
  {
4287
4799
  "data-slot": "sidebar-menu-sub",
@@ -4299,7 +4811,7 @@ function SidebarMenuSubItem({
4299
4811
  className,
4300
4812
  ...props
4301
4813
  }) {
4302
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4814
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4303
4815
  "li",
4304
4816
  {
4305
4817
  "data-slot": "sidebar-menu-sub-item",
@@ -4335,7 +4847,7 @@ function SidebarMenuSubButton({
4335
4847
  }
4336
4848
  return (
4337
4849
  // eslint-disable-next-line jsx-a11y/anchor-has-content
4338
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4850
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4339
4851
  "a",
4340
4852
  {
4341
4853
  "data-slot": "sidebar-menu-sub-button",
@@ -4352,9 +4864,9 @@ function SidebarMenuSubButton({
4352
4864
 
4353
4865
  // src/ui/slider.tsx
4354
4866
  var import_slider = require("@base-ui/react/slider");
4355
- var import_jsx_runtime48 = require("react/jsx-runtime");
4867
+ var import_jsx_runtime55 = require("react/jsx-runtime");
4356
4868
  function Slider({ className, ...props }) {
4357
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4869
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4358
4870
  import_slider.Slider.Root,
4359
4871
  {
4360
4872
  "data-slot": "slider",
@@ -4367,7 +4879,7 @@ function Slider({ className, ...props }) {
4367
4879
  );
4368
4880
  }
4369
4881
  function SliderControl({ className, ...props }) {
4370
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4882
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4371
4883
  import_slider.Slider.Control,
4372
4884
  {
4373
4885
  "data-slot": "slider-control",
@@ -4377,7 +4889,7 @@ function SliderControl({ className, ...props }) {
4377
4889
  );
4378
4890
  }
4379
4891
  function SliderTrack({ className, ...props }) {
4380
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4892
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4381
4893
  import_slider.Slider.Track,
4382
4894
  {
4383
4895
  "data-slot": "slider-track",
@@ -4390,7 +4902,7 @@ function SliderTrack({ className, ...props }) {
4390
4902
  );
4391
4903
  }
4392
4904
  function SliderIndicator({ className, ...props }) {
4393
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4905
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4394
4906
  import_slider.Slider.Indicator,
4395
4907
  {
4396
4908
  "data-slot": "slider-indicator",
@@ -4400,7 +4912,7 @@ function SliderIndicator({ className, ...props }) {
4400
4912
  );
4401
4913
  }
4402
4914
  function SliderThumb({ className, ...props }) {
4403
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4915
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4404
4916
  import_slider.Slider.Thumb,
4405
4917
  {
4406
4918
  "data-slot": "slider-thumb",
@@ -4413,27 +4925,72 @@ function SliderThumb({ className, ...props }) {
4413
4925
  );
4414
4926
  }
4415
4927
 
4416
- // src/ui/spinner.tsx
4417
- var import_lucide_react19 = require("lucide-react");
4418
- var import_jsx_runtime49 = require("react/jsx-runtime");
4419
- function Spinner({ className, ...props }) {
4420
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4421
- import_lucide_react19.Loader2Icon,
4422
- {
4423
- role: "status",
4424
- "aria-label": "Loading",
4425
- "data-slot": "spinner",
4426
- className: cn("size-4 animate-spin", className),
4427
- ...props
4428
- }
4429
- );
4928
+ // src/ui/split-button.tsx
4929
+ var import_lucide_react22 = require("lucide-react");
4930
+ var import_jsx_runtime56 = require("react/jsx-runtime");
4931
+ function SplitButton({
4932
+ className,
4933
+ style,
4934
+ variant,
4935
+ size,
4936
+ disabled,
4937
+ children,
4938
+ options,
4939
+ onSelect,
4940
+ triggerLabel = "\u66F4\u591A\u9009\u9879",
4941
+ type = "button",
4942
+ ...props
4943
+ }) {
4944
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(ButtonGroup, { "data-slot": "split-button", className: cn(className), style, children: [
4945
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
4946
+ Button,
4947
+ {
4948
+ variant,
4949
+ size,
4950
+ disabled,
4951
+ type,
4952
+ ...props,
4953
+ children
4954
+ }
4955
+ ),
4956
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(DropdownMenu, { children: [
4957
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
4958
+ DropdownMenuTrigger,
4959
+ {
4960
+ render: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
4961
+ Button,
4962
+ {
4963
+ variant,
4964
+ size,
4965
+ disabled,
4966
+ "aria-label": triggerLabel,
4967
+ className: "px-2",
4968
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_lucide_react22.ChevronDownIcon, {})
4969
+ }
4970
+ )
4971
+ }
4972
+ ),
4973
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(DropdownMenuContent, { align: "end", children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
4974
+ DropdownMenuItem,
4975
+ {
4976
+ disabled: option.disabled,
4977
+ onClick: () => onSelect?.(option.value),
4978
+ children: [
4979
+ option.icon,
4980
+ option.label
4981
+ ]
4982
+ },
4983
+ option.value
4984
+ )) })
4985
+ ] })
4986
+ ] });
4430
4987
  }
4431
4988
 
4432
4989
  // src/ui/switch.tsx
4433
4990
  var import_switch = require("@base-ui/react/switch");
4434
- var import_jsx_runtime50 = require("react/jsx-runtime");
4991
+ var import_jsx_runtime57 = require("react/jsx-runtime");
4435
4992
  function Switch({ className, ...props }) {
4436
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4993
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
4437
4994
  import_switch.Switch.Root,
4438
4995
  {
4439
4996
  "data-slot": "switch",
@@ -4442,7 +4999,7 @@ function Switch({ className, ...props }) {
4442
4999
  className
4443
5000
  ),
4444
5001
  ...props,
4445
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
5002
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
4446
5003
  import_switch.Switch.Thumb,
4447
5004
  {
4448
5005
  "data-slot": "switch-thumb",
@@ -4454,20 +5011,20 @@ function Switch({ className, ...props }) {
4454
5011
  }
4455
5012
 
4456
5013
  // src/ui/table.tsx
4457
- var import_jsx_runtime51 = require("react/jsx-runtime");
5014
+ var import_jsx_runtime58 = require("react/jsx-runtime");
4458
5015
  function Table({
4459
5016
  className,
4460
5017
  containerClassName,
4461
5018
  containerStyle,
4462
5019
  ...props
4463
5020
  }) {
4464
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5021
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4465
5022
  "div",
4466
5023
  {
4467
5024
  "data-slot": "table-container",
4468
5025
  className: cn("relative w-full overflow-x-auto", containerClassName),
4469
5026
  style: containerStyle,
4470
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5027
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4471
5028
  "table",
4472
5029
  {
4473
5030
  "data-slot": "table",
@@ -4479,7 +5036,7 @@ function Table({
4479
5036
  );
4480
5037
  }
4481
5038
  function TableHeader({ className, ...props }) {
4482
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5039
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4483
5040
  "thead",
4484
5041
  {
4485
5042
  "data-slot": "table-header",
@@ -4489,7 +5046,7 @@ function TableHeader({ className, ...props }) {
4489
5046
  );
4490
5047
  }
4491
5048
  function TableBody({ className, ...props }) {
4492
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5049
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4493
5050
  "tbody",
4494
5051
  {
4495
5052
  "data-slot": "table-body",
@@ -4499,7 +5056,7 @@ function TableBody({ className, ...props }) {
4499
5056
  );
4500
5057
  }
4501
5058
  function TableFooter({ className, ...props }) {
4502
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5059
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4503
5060
  "tfoot",
4504
5061
  {
4505
5062
  "data-slot": "table-footer",
@@ -4512,7 +5069,7 @@ function TableFooter({ className, ...props }) {
4512
5069
  );
4513
5070
  }
4514
5071
  function TableRow({ className, ...props }) {
4515
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5072
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4516
5073
  "tr",
4517
5074
  {
4518
5075
  "data-slot": "table-row",
@@ -4525,7 +5082,7 @@ function TableRow({ className, ...props }) {
4525
5082
  );
4526
5083
  }
4527
5084
  function TableHead({ className, ...props }) {
4528
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5085
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4529
5086
  "th",
4530
5087
  {
4531
5088
  "data-slot": "table-head",
@@ -4538,7 +5095,7 @@ function TableHead({ className, ...props }) {
4538
5095
  );
4539
5096
  }
4540
5097
  function TableCell({ className, ...props }) {
4541
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5098
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4542
5099
  "td",
4543
5100
  {
4544
5101
  "data-slot": "table-cell",
@@ -4554,7 +5111,7 @@ function TableCaption({
4554
5111
  className,
4555
5112
  ...props
4556
5113
  }) {
4557
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
5114
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
4558
5115
  "caption",
4559
5116
  {
4560
5117
  "data-slot": "table-caption",
@@ -4567,12 +5124,12 @@ function TableCaption({
4567
5124
  // src/ui/tabs.tsx
4568
5125
  var import_tabs = require("@base-ui/react/tabs");
4569
5126
  var import_class_variance_authority9 = require("class-variance-authority");
4570
- var import_jsx_runtime52 = require("react/jsx-runtime");
5127
+ var import_jsx_runtime59 = require("react/jsx-runtime");
4571
5128
  function Tabs({
4572
5129
  className,
4573
5130
  ...props
4574
5131
  }) {
4575
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
5132
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4576
5133
  import_tabs.Tabs.Root,
4577
5134
  {
4578
5135
  "data-slot": "tabs",
@@ -4589,24 +5146,35 @@ var tabsListVariants = (0, import_class_variance_authority9.cva)(
4589
5146
  default: "h-9 rounded-lg bg-muted p-[3px]",
4590
5147
  // line:页签栏通栏(下划线轨道占满容器宽),触发器自然宽度靠左排列
4591
5148
  line: "h-auto w-full justify-start gap-1 rounded-none border-b border-border bg-transparent p-0"
5149
+ },
5150
+ /** 尺寸(对齐 Button 的 size 语义):sm 经 compoundVariants 仅压缩胶囊变体 */
5151
+ size: {
5152
+ default: "",
5153
+ sm: ""
4592
5154
  }
4593
5155
  },
5156
+ compoundVariants: [
5157
+ { variant: "default", size: "sm", class: "h-8" }
5158
+ ],
4594
5159
  defaultVariants: {
4595
- variant: "default"
5160
+ variant: "default",
5161
+ size: "default"
4596
5162
  }
4597
5163
  }
4598
5164
  );
4599
5165
  function TabsList({
4600
5166
  className,
4601
5167
  variant,
5168
+ size,
4602
5169
  ...props
4603
5170
  }) {
4604
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
5171
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4605
5172
  import_tabs.Tabs.List,
4606
5173
  {
4607
5174
  "data-slot": "tabs-list",
4608
5175
  "data-variant": variant ?? "default",
4609
- className: cn(tabsListVariants({ variant }), className),
5176
+ "data-size": size ?? "default",
5177
+ className: cn(tabsListVariants({ variant, size }), className),
4610
5178
  ...props
4611
5179
  }
4612
5180
  );
@@ -4615,7 +5183,7 @@ function TabsTrigger({
4615
5183
  className,
4616
5184
  ...props
4617
5185
  }) {
4618
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
5186
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4619
5187
  import_tabs.Tabs.Tab,
4620
5188
  {
4621
5189
  "data-slot": "tabs-trigger",
@@ -4627,6 +5195,8 @@ function TabsTrigger({
4627
5195
  //(叠在 List 的底边轨道上),无底色/圆角/阴影;通栏 List 下取消
4628
5196
  // flex-1 拉伸,触发器保持自然宽度
4629
5197
  "group-data-[variant=line]/tabs-list:-mb-px group-data-[variant=line]/tabs-list:h-9 group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:border-x-0 group-data-[variant=line]/tabs-list:border-t-0 group-data-[variant=line]/tabs-list:border-b-2 group-data-[variant=line]/tabs-list:py-1.5 group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-[variant=line]/tabs-list:data-active:text-foreground",
5198
+ // size=sm:小字号 + 收紧纵向 padding(高度随 List h-8 自动收缩)
5199
+ "group-data-[size=sm]/tabs-list:py-0.5 group-data-[size=sm]/tabs-list:text-xs",
4630
5200
  className
4631
5201
  ),
4632
5202
  ...props
@@ -4637,7 +5207,7 @@ function TabsContent({
4637
5207
  className,
4638
5208
  ...props
4639
5209
  }) {
4640
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
5210
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4641
5211
  import_tabs.Tabs.Panel,
4642
5212
  {
4643
5213
  "data-slot": "tabs-content",
@@ -4648,12 +5218,12 @@ function TabsContent({
4648
5218
  }
4649
5219
 
4650
5220
  // src/ui/textarea.tsx
4651
- var import_jsx_runtime53 = require("react/jsx-runtime");
5221
+ var import_jsx_runtime60 = require("react/jsx-runtime");
4652
5222
  function Textarea({
4653
5223
  className,
4654
5224
  ...props
4655
5225
  }) {
4656
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5226
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
4657
5227
  "textarea",
4658
5228
  {
4659
5229
  "data-slot": "textarea",
@@ -4669,7 +5239,7 @@ function Textarea({
4669
5239
  // src/ui/toggle.tsx
4670
5240
  var import_toggle = require("@base-ui/react/toggle");
4671
5241
  var import_class_variance_authority10 = require("class-variance-authority");
4672
- var import_jsx_runtime54 = require("react/jsx-runtime");
5242
+ var import_jsx_runtime61 = require("react/jsx-runtime");
4673
5243
  var toggleVariants = (0, import_class_variance_authority10.cva)(
4674
5244
  "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",
4675
5245
  {
@@ -4696,7 +5266,7 @@ function Toggle({
4696
5266
  size,
4697
5267
  ...props
4698
5268
  }) {
4699
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
5269
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
4700
5270
  import_toggle.Toggle,
4701
5271
  {
4702
5272
  "data-slot": "toggle",
@@ -4709,9 +5279,9 @@ function Toggle({
4709
5279
  // src/ui/toggle-group.tsx
4710
5280
  var import_toggle2 = require("@base-ui/react/toggle");
4711
5281
  var import_toggle_group = require("@base-ui/react/toggle-group");
4712
- var React8 = __toESM(require("react"), 1);
4713
- var import_jsx_runtime55 = require("react/jsx-runtime");
4714
- var ToggleGroupContext = React8.createContext({
5282
+ var React12 = __toESM(require("react"), 1);
5283
+ var import_jsx_runtime62 = require("react/jsx-runtime");
5284
+ var ToggleGroupContext = React12.createContext({
4715
5285
  size: "default",
4716
5286
  variant: "default"
4717
5287
  });
@@ -4722,7 +5292,7 @@ function ToggleGroup({
4722
5292
  children,
4723
5293
  ...props
4724
5294
  }) {
4725
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
5295
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4726
5296
  import_toggle_group.ToggleGroup,
4727
5297
  {
4728
5298
  "data-slot": "toggle-group",
@@ -4733,7 +5303,7 @@ function ToggleGroup({
4733
5303
  className
4734
5304
  ),
4735
5305
  ...props,
4736
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
5306
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
4737
5307
  }
4738
5308
  );
4739
5309
  }
@@ -4744,8 +5314,8 @@ function ToggleGroupItem({
4744
5314
  size,
4745
5315
  ...props
4746
5316
  }) {
4747
- const context = React8.useContext(ToggleGroupContext);
4748
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
5317
+ const context = React12.useContext(ToggleGroupContext);
5318
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
4749
5319
  import_toggle2.Toggle,
4750
5320
  {
4751
5321
  "data-slot": "toggle-group-item",
@@ -4767,7 +5337,7 @@ function ToggleGroupItem({
4767
5337
 
4768
5338
  // src/ui/typography.tsx
4769
5339
  var import_class_variance_authority11 = require("class-variance-authority");
4770
- var import_jsx_runtime56 = require("react/jsx-runtime");
5340
+ var import_jsx_runtime63 = require("react/jsx-runtime");
4771
5341
  var typographyVariants = (0, import_class_variance_authority11.cva)("", {
4772
5342
  variants: {
4773
5343
  variant: {
@@ -4803,7 +5373,7 @@ var variantTagMap = {
4803
5373
  };
4804
5374
  function Typography({ className, variant = "p", ...props }) {
4805
5375
  const Tag = variantTagMap[variant ?? "p"];
4806
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
5376
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4807
5377
  Tag,
4808
5378
  {
4809
5379
  "data-slot": "typography",
@@ -4819,6 +5389,7 @@ function Typography({ className, variant = "p", ...props }) {
4819
5389
  AccordionContent,
4820
5390
  AccordionItem,
4821
5391
  AccordionTrigger,
5392
+ ActionButton,
4822
5393
  Alert,
4823
5394
  AlertDescription,
4824
5395
  AlertDialog,
@@ -4886,11 +5457,13 @@ function Typography({ className, variant = "p", ...props }) {
4886
5457
  CommandInput,
4887
5458
  CommandItem,
4888
5459
  CommandList,
5460
+ ConfirmMorph,
4889
5461
  ContextMenu,
4890
5462
  ContextMenuContent,
4891
5463
  ContextMenuItem,
4892
5464
  ContextMenuSeparator,
4893
5465
  ContextMenuTrigger,
5466
+ CopyButton,
4894
5467
  Dialog,
4895
5468
  DialogClose,
4896
5469
  DialogContent,
@@ -4924,13 +5497,16 @@ function Typography({ className, variant = "p", ...props }) {
4924
5497
  EmptyDescription,
4925
5498
  EmptyHeader,
4926
5499
  EmptyTitle,
5500
+ ExpandingButtonGroup,
4927
5501
  Field,
4928
5502
  FieldDescription,
4929
5503
  FieldError,
4930
5504
  FieldLabel,
5505
+ FloatingButtonGroup,
4931
5506
  HoverCard,
4932
5507
  HoverCardContent,
4933
5508
  HoverCardTrigger,
5509
+ IconMorph,
4934
5510
  Input,
4935
5511
  InputGroup,
4936
5512
  InputGroupAddon,
@@ -4947,6 +5523,7 @@ function Typography({ className, variant = "p", ...props }) {
4947
5523
  ItemTitle,
4948
5524
  Kbd,
4949
5525
  Label,
5526
+ MORPH_PAIRS,
4950
5527
  Menubar,
4951
5528
  MenubarContent,
4952
5529
  MenubarItem,
@@ -5037,6 +5614,7 @@ function Typography({ className, variant = "p", ...props }) {
5037
5614
  SliderThumb,
5038
5615
  SliderTrack,
5039
5616
  Spinner,
5617
+ SplitButton,
5040
5618
  Switch,
5041
5619
  Table,
5042
5620
  TableBody,