@codapet/design-system 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -330,15 +330,124 @@ function AspectRatio({
330
330
  return /* @__PURE__ */ jsx5(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
331
331
  }
332
332
 
333
+ // src/components/ui/auto-resize-textarea.tsx
334
+ import * as React6 from "react";
335
+
336
+ // src/components/ui/textarea.tsx
337
+ import * as React5 from "react";
338
+ import { jsx as jsx6 } from "react/jsx-runtime";
339
+ var textareaBaseStyles = [
340
+ // Base styles aligned with Input
341
+ "placeholder:text-gray-subtle selection:bg-primary selection:text-primary-foreground",
342
+ "flex w-full min-w-0 rounded-md border bg-transparent text-base shadow-xs transition-all duration-400",
343
+ "outline-none font-sans",
344
+ // Disabled
345
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
346
+ // Responsive text size
347
+ "md:text-sm",
348
+ // Default state
349
+ "border-zinc-300 bg-background",
350
+ // Hover/Focus/Active states
351
+ "hover:border-brand-normal",
352
+ "focus:border-blue-500",
353
+ "active:border-brand-normal",
354
+ // Textarea specific
355
+ "field-sizing-content min-h-16 resize-y px-3 py-2"
356
+ ].join(" ");
357
+ var errorStyles = [
358
+ "border-destructive bg-red-subtle",
359
+ "focus:border-destructive focus:ring-destructive/20",
360
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
361
+ ].join(" ");
362
+ var Textarea = React5.forwardRef(
363
+ ({ className, error, ...props }, ref) => {
364
+ return /* @__PURE__ */ jsx6(
365
+ "textarea",
366
+ {
367
+ "data-slot": "textarea",
368
+ className: cn(textareaBaseStyles, error && errorStyles, className),
369
+ "aria-invalid": error,
370
+ ref,
371
+ ...props
372
+ }
373
+ );
374
+ }
375
+ );
376
+ Textarea.displayName = "Textarea";
377
+
378
+ // src/components/ui/auto-resize-textarea.tsx
379
+ import { jsx as jsx7 } from "react/jsx-runtime";
380
+ var AutoResizeTextarea = React6.forwardRef(
381
+ ({
382
+ className,
383
+ style,
384
+ onInput,
385
+ onChange,
386
+ maxHeight,
387
+ minHeight = 120,
388
+ value,
389
+ ...props
390
+ }, forwardedRef) => {
391
+ const innerRef = React6.useRef(null);
392
+ const setRefs = React6.useCallback(
393
+ (node) => {
394
+ innerRef.current = node;
395
+ if (typeof forwardedRef === "function") forwardedRef(node);
396
+ else if (forwardedRef) forwardedRef.current = node;
397
+ },
398
+ [forwardedRef]
399
+ );
400
+ const resize = React6.useCallback(() => {
401
+ const el = innerRef.current;
402
+ if (!el) return;
403
+ el.style.height = "auto";
404
+ const nextHeight = Math.max(minHeight, el.scrollHeight);
405
+ if (maxHeight && nextHeight > maxHeight) {
406
+ el.style.height = `${maxHeight}px`;
407
+ el.style.overflowY = "auto";
408
+ } else {
409
+ el.style.height = `${nextHeight}px`;
410
+ el.style.overflowY = "hidden";
411
+ }
412
+ }, [maxHeight, minHeight]);
413
+ React6.useLayoutEffect(() => {
414
+ resize();
415
+ }, [resize, value]);
416
+ return /* @__PURE__ */ jsx7(
417
+ Textarea,
418
+ {
419
+ ...props,
420
+ ref: setRefs,
421
+ value,
422
+ onInput: (e) => {
423
+ resize();
424
+ onInput?.(e);
425
+ },
426
+ onChange: (e) => {
427
+ onChange?.(e);
428
+ },
429
+ className: cn("resize-none", className),
430
+ style: {
431
+ ...style,
432
+ minHeight,
433
+ height: style?.height ?? "auto",
434
+ overflowY: style?.overflowY ?? "hidden"
435
+ }
436
+ }
437
+ );
438
+ }
439
+ );
440
+ AutoResizeTextarea.displayName = "AutoResizeTextarea";
441
+
333
442
  // src/components/ui/avatar.tsx
334
443
  import "react";
335
444
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
336
- import { jsx as jsx6 } from "react/jsx-runtime";
445
+ import { jsx as jsx8 } from "react/jsx-runtime";
337
446
  function Avatar({
338
447
  className,
339
448
  ...props
340
449
  }) {
341
- return /* @__PURE__ */ jsx6(
450
+ return /* @__PURE__ */ jsx8(
342
451
  AvatarPrimitive.Root,
343
452
  {
344
453
  "data-slot": "avatar",
@@ -354,7 +463,7 @@ function AvatarImage({
354
463
  className,
355
464
  ...props
356
465
  }) {
357
- return /* @__PURE__ */ jsx6(
466
+ return /* @__PURE__ */ jsx8(
358
467
  AvatarPrimitive.Image,
359
468
  {
360
469
  "data-slot": "avatar-image",
@@ -367,7 +476,7 @@ function AvatarFallback({
367
476
  className,
368
477
  ...props
369
478
  }) {
370
- return /* @__PURE__ */ jsx6(
479
+ return /* @__PURE__ */ jsx8(
371
480
  AvatarPrimitive.Fallback,
372
481
  {
373
482
  "data-slot": "avatar-fallback",
@@ -384,7 +493,7 @@ function AvatarFallback({
384
493
  import "react";
385
494
  import { Slot as Slot2 } from "@radix-ui/react-slot";
386
495
  import { cva as cva3 } from "class-variance-authority";
387
- import { jsx as jsx7 } from "react/jsx-runtime";
496
+ import { jsx as jsx9 } from "react/jsx-runtime";
388
497
  var badgeVariants = cva3(
389
498
  "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
390
499
  {
@@ -408,7 +517,7 @@ function Badge({
408
517
  ...props
409
518
  }) {
410
519
  const Comp = asChild ? Slot2 : "span";
411
- return /* @__PURE__ */ jsx7(
520
+ return /* @__PURE__ */ jsx9(
412
521
  Comp,
413
522
  {
414
523
  "data-slot": "badge",
@@ -422,12 +531,12 @@ function Badge({
422
531
  import "react";
423
532
  import { Slot as Slot3 } from "@radix-ui/react-slot";
424
533
  import { ChevronRight, MoreHorizontal } from "lucide-react";
425
- import { jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
534
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
426
535
  function Breadcrumb({ ...props }) {
427
- return /* @__PURE__ */ jsx8("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
536
+ return /* @__PURE__ */ jsx10("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
428
537
  }
429
538
  function BreadcrumbList({ className, ...props }) {
430
- return /* @__PURE__ */ jsx8(
539
+ return /* @__PURE__ */ jsx10(
431
540
  "ol",
432
541
  {
433
542
  "data-slot": "breadcrumb-list",
@@ -440,7 +549,7 @@ function BreadcrumbList({ className, ...props }) {
440
549
  );
441
550
  }
442
551
  function BreadcrumbItem({ className, ...props }) {
443
- return /* @__PURE__ */ jsx8(
552
+ return /* @__PURE__ */ jsx10(
444
553
  "li",
445
554
  {
446
555
  "data-slot": "breadcrumb-item",
@@ -455,7 +564,7 @@ function BreadcrumbLink({
455
564
  ...props
456
565
  }) {
457
566
  const Comp = asChild ? Slot3 : "a";
458
- return /* @__PURE__ */ jsx8(
567
+ return /* @__PURE__ */ jsx10(
459
568
  Comp,
460
569
  {
461
570
  "data-slot": "breadcrumb-link",
@@ -465,7 +574,7 @@ function BreadcrumbLink({
465
574
  );
466
575
  }
467
576
  function BreadcrumbPage({ className, ...props }) {
468
- return /* @__PURE__ */ jsx8(
577
+ return /* @__PURE__ */ jsx10(
469
578
  "span",
470
579
  {
471
580
  "data-slot": "breadcrumb-page",
@@ -482,7 +591,7 @@ function BreadcrumbSeparator({
482
591
  className,
483
592
  ...props
484
593
  }) {
485
- return /* @__PURE__ */ jsx8(
594
+ return /* @__PURE__ */ jsx10(
486
595
  "li",
487
596
  {
488
597
  "data-slot": "breadcrumb-separator",
@@ -490,7 +599,7 @@ function BreadcrumbSeparator({
490
599
  "aria-hidden": "true",
491
600
  className: cn("[&>svg]:size-3.5", className),
492
601
  ...props,
493
- children: children ?? /* @__PURE__ */ jsx8(ChevronRight, {})
602
+ children: children ?? /* @__PURE__ */ jsx10(ChevronRight, {})
494
603
  }
495
604
  );
496
605
  }
@@ -507,22 +616,22 @@ function BreadcrumbEllipsis({
507
616
  className: cn("flex size-9 items-center justify-center", className),
508
617
  ...props,
509
618
  children: [
510
- /* @__PURE__ */ jsx8(MoreHorizontal, { className: "size-4" }),
511
- /* @__PURE__ */ jsx8("span", { className: "sr-only", children: "More" })
619
+ /* @__PURE__ */ jsx10(MoreHorizontal, { className: "size-4" }),
620
+ /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "More" })
512
621
  ]
513
622
  }
514
623
  );
515
624
  }
516
625
 
517
626
  // src/components/ui/calendar.tsx
518
- import * as React8 from "react";
627
+ import * as React10 from "react";
519
628
  import {
520
629
  ChevronDownIcon as ChevronDownIcon2,
521
630
  ChevronLeftIcon,
522
631
  ChevronRightIcon
523
632
  } from "lucide-react";
524
633
  import { DayPicker, getDefaultClassNames } from "react-day-picker";
525
- import { jsx as jsx9 } from "react/jsx-runtime";
634
+ import { jsx as jsx11 } from "react/jsx-runtime";
526
635
  function Calendar({
527
636
  className,
528
637
  classNames,
@@ -534,7 +643,7 @@ function Calendar({
534
643
  ...props
535
644
  }) {
536
645
  const defaultClassNames = getDefaultClassNames();
537
- return /* @__PURE__ */ jsx9(
646
+ return /* @__PURE__ */ jsx11(
538
647
  DayPicker,
539
648
  {
540
649
  showOutsideDays,
@@ -633,7 +742,7 @@ function Calendar({
633
742
  },
634
743
  components: {
635
744
  Root: ({ className: className2, rootRef, ...props2 }) => {
636
- return /* @__PURE__ */ jsx9(
745
+ return /* @__PURE__ */ jsx11(
637
746
  "div",
638
747
  {
639
748
  "data-slot": "calendar",
@@ -645,10 +754,10 @@ function Calendar({
645
754
  },
646
755
  Chevron: ({ className: className2, orientation, ...props2 }) => {
647
756
  if (orientation === "left") {
648
- return /* @__PURE__ */ jsx9(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
757
+ return /* @__PURE__ */ jsx11(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
649
758
  }
650
759
  if (orientation === "right") {
651
- return /* @__PURE__ */ jsx9(
760
+ return /* @__PURE__ */ jsx11(
652
761
  ChevronRightIcon,
653
762
  {
654
763
  className: cn("size-4", className2),
@@ -656,11 +765,11 @@ function Calendar({
656
765
  }
657
766
  );
658
767
  }
659
- return /* @__PURE__ */ jsx9(ChevronDownIcon2, { className: cn("size-4", className2), ...props2 });
768
+ return /* @__PURE__ */ jsx11(ChevronDownIcon2, { className: cn("size-4", className2), ...props2 });
660
769
  },
661
770
  DayButton: CalendarDayButton,
662
771
  WeekNumber: ({ children, ...props2 }) => {
663
- return /* @__PURE__ */ jsx9("td", { ...props2, children: /* @__PURE__ */ jsx9("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
772
+ return /* @__PURE__ */ jsx11("td", { ...props2, children: /* @__PURE__ */ jsx11("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
664
773
  },
665
774
  ...components
666
775
  },
@@ -675,11 +784,11 @@ function CalendarDayButton({
675
784
  ...props
676
785
  }) {
677
786
  const defaultClassNames = getDefaultClassNames();
678
- const ref = React8.useRef(null);
679
- React8.useEffect(() => {
787
+ const ref = React10.useRef(null);
788
+ React10.useEffect(() => {
680
789
  if (modifiers.focused) ref.current?.focus();
681
790
  }, [modifiers.focused]);
682
- return /* @__PURE__ */ jsx9(
791
+ return /* @__PURE__ */ jsx11(
683
792
  Button,
684
793
  {
685
794
  ref,
@@ -702,9 +811,9 @@ function CalendarDayButton({
702
811
 
703
812
  // src/components/ui/card.tsx
704
813
  import "react";
705
- import { jsx as jsx10 } from "react/jsx-runtime";
814
+ import { jsx as jsx12 } from "react/jsx-runtime";
706
815
  function Card({ className, ...props }) {
707
- return /* @__PURE__ */ jsx10(
816
+ return /* @__PURE__ */ jsx12(
708
817
  "div",
709
818
  {
710
819
  "data-slot": "card",
@@ -717,7 +826,7 @@ function Card({ className, ...props }) {
717
826
  );
718
827
  }
719
828
  function CardHeader({ className, ...props }) {
720
- return /* @__PURE__ */ jsx10(
829
+ return /* @__PURE__ */ jsx12(
721
830
  "div",
722
831
  {
723
832
  "data-slot": "card-header",
@@ -730,7 +839,7 @@ function CardHeader({ className, ...props }) {
730
839
  );
731
840
  }
732
841
  function CardTitle({ className, ...props }) {
733
- return /* @__PURE__ */ jsx10(
842
+ return /* @__PURE__ */ jsx12(
734
843
  "div",
735
844
  {
736
845
  "data-slot": "card-title",
@@ -740,7 +849,7 @@ function CardTitle({ className, ...props }) {
740
849
  );
741
850
  }
742
851
  function CardDescription({ className, ...props }) {
743
- return /* @__PURE__ */ jsx10(
852
+ return /* @__PURE__ */ jsx12(
744
853
  "div",
745
854
  {
746
855
  "data-slot": "card-description",
@@ -750,7 +859,7 @@ function CardDescription({ className, ...props }) {
750
859
  );
751
860
  }
752
861
  function CardAction({ className, ...props }) {
753
- return /* @__PURE__ */ jsx10(
862
+ return /* @__PURE__ */ jsx12(
754
863
  "div",
755
864
  {
756
865
  "data-slot": "card-action",
@@ -763,7 +872,7 @@ function CardAction({ className, ...props }) {
763
872
  );
764
873
  }
765
874
  function CardContent({ className, ...props }) {
766
- return /* @__PURE__ */ jsx10(
875
+ return /* @__PURE__ */ jsx12(
767
876
  "div",
768
877
  {
769
878
  "data-slot": "card-content",
@@ -773,7 +882,7 @@ function CardContent({ className, ...props }) {
773
882
  );
774
883
  }
775
884
  function CardFooter({ className, ...props }) {
776
- return /* @__PURE__ */ jsx10(
885
+ return /* @__PURE__ */ jsx12(
777
886
  "div",
778
887
  {
779
888
  "data-slot": "card-footer",
@@ -784,13 +893,13 @@ function CardFooter({ className, ...props }) {
784
893
  }
785
894
 
786
895
  // src/components/ui/carousel.tsx
787
- import * as React10 from "react";
896
+ import * as React12 from "react";
788
897
  import useEmblaCarousel from "embla-carousel-react";
789
898
  import { ArrowLeft, ArrowRight } from "lucide-react";
790
- import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
791
- var CarouselContext = React10.createContext(null);
899
+ import { jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
900
+ var CarouselContext = React12.createContext(null);
792
901
  function useCarousel() {
793
- const context = React10.useContext(CarouselContext);
902
+ const context = React12.useContext(CarouselContext);
794
903
  if (!context) {
795
904
  throw new Error("useCarousel must be used within a <Carousel />");
796
905
  }
@@ -812,20 +921,20 @@ function Carousel({
812
921
  },
813
922
  plugins
814
923
  );
815
- const [canScrollPrev, setCanScrollPrev] = React10.useState(false);
816
- const [canScrollNext, setCanScrollNext] = React10.useState(false);
817
- const onSelect = React10.useCallback((api2) => {
924
+ const [canScrollPrev, setCanScrollPrev] = React12.useState(false);
925
+ const [canScrollNext, setCanScrollNext] = React12.useState(false);
926
+ const onSelect = React12.useCallback((api2) => {
818
927
  if (!api2) return;
819
928
  setCanScrollPrev(api2.canScrollPrev());
820
929
  setCanScrollNext(api2.canScrollNext());
821
930
  }, []);
822
- const scrollPrev = React10.useCallback(() => {
931
+ const scrollPrev = React12.useCallback(() => {
823
932
  api?.scrollPrev();
824
933
  }, [api]);
825
- const scrollNext = React10.useCallback(() => {
934
+ const scrollNext = React12.useCallback(() => {
826
935
  api?.scrollNext();
827
936
  }, [api]);
828
- const handleKeyDown = React10.useCallback(
937
+ const handleKeyDown = React12.useCallback(
829
938
  (event) => {
830
939
  if (event.key === "ArrowLeft") {
831
940
  event.preventDefault();
@@ -837,11 +946,11 @@ function Carousel({
837
946
  },
838
947
  [scrollPrev, scrollNext]
839
948
  );
840
- React10.useEffect(() => {
949
+ React12.useEffect(() => {
841
950
  if (!api || !setApi) return;
842
951
  setApi(api);
843
952
  }, [api, setApi]);
844
- React10.useEffect(() => {
953
+ React12.useEffect(() => {
845
954
  if (!api) return;
846
955
  onSelect(api);
847
956
  api.on("reInit", onSelect);
@@ -850,7 +959,7 @@ function Carousel({
850
959
  api?.off("select", onSelect);
851
960
  };
852
961
  }, [api, onSelect]);
853
- return /* @__PURE__ */ jsx11(
962
+ return /* @__PURE__ */ jsx13(
854
963
  CarouselContext.Provider,
855
964
  {
856
965
  value: {
@@ -863,7 +972,7 @@ function Carousel({
863
972
  canScrollPrev,
864
973
  canScrollNext
865
974
  },
866
- children: /* @__PURE__ */ jsx11(
975
+ children: /* @__PURE__ */ jsx13(
867
976
  "div",
868
977
  {
869
978
  onKeyDownCapture: handleKeyDown,
@@ -880,13 +989,13 @@ function Carousel({
880
989
  }
881
990
  function CarouselContent({ className, ...props }) {
882
991
  const { carouselRef, orientation } = useCarousel();
883
- return /* @__PURE__ */ jsx11(
992
+ return /* @__PURE__ */ jsx13(
884
993
  "div",
885
994
  {
886
995
  ref: carouselRef,
887
996
  className: "overflow-hidden",
888
997
  "data-slot": "carousel-content",
889
- children: /* @__PURE__ */ jsx11(
998
+ children: /* @__PURE__ */ jsx13(
890
999
  "div",
891
1000
  {
892
1001
  className: cn(
@@ -902,7 +1011,7 @@ function CarouselContent({ className, ...props }) {
902
1011
  }
903
1012
  function CarouselItem({ className, ...props }) {
904
1013
  const { orientation } = useCarousel();
905
- return /* @__PURE__ */ jsx11(
1014
+ return /* @__PURE__ */ jsx13(
906
1015
  "div",
907
1016
  {
908
1017
  role: "group",
@@ -939,8 +1048,8 @@ function CarouselPrevious({
939
1048
  onClick: scrollPrev,
940
1049
  ...props,
941
1050
  children: [
942
- /* @__PURE__ */ jsx11(ArrowLeft, {}),
943
- /* @__PURE__ */ jsx11("span", { className: "sr-only", children: "Previous slide" })
1051
+ /* @__PURE__ */ jsx13(ArrowLeft, {}),
1052
+ /* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Previous slide" })
944
1053
  ]
945
1054
  }
946
1055
  );
@@ -967,21 +1076,21 @@ function CarouselNext({
967
1076
  onClick: scrollNext,
968
1077
  ...props,
969
1078
  children: [
970
- /* @__PURE__ */ jsx11(ArrowRight, {}),
971
- /* @__PURE__ */ jsx11("span", { className: "sr-only", children: "Next slide" })
1079
+ /* @__PURE__ */ jsx13(ArrowRight, {}),
1080
+ /* @__PURE__ */ jsx13("span", { className: "sr-only", children: "Next slide" })
972
1081
  ]
973
1082
  }
974
1083
  );
975
1084
  }
976
1085
 
977
1086
  // src/components/ui/chart.tsx
978
- import * as React11 from "react";
1087
+ import * as React13 from "react";
979
1088
  import * as RechartsPrimitive from "recharts";
980
- import { Fragment, jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
1089
+ import { Fragment, jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
981
1090
  var THEMES = { light: "", dark: ".dark" };
982
- var ChartContext = React11.createContext(null);
1091
+ var ChartContext = React13.createContext(null);
983
1092
  function useChart() {
984
- const context = React11.useContext(ChartContext);
1093
+ const context = React13.useContext(ChartContext);
985
1094
  if (!context) {
986
1095
  throw new Error("useChart must be used within a <ChartContainer />");
987
1096
  }
@@ -994,9 +1103,9 @@ function ChartContainer({
994
1103
  config,
995
1104
  ...props
996
1105
  }) {
997
- const uniqueId = React11.useId();
1106
+ const uniqueId = React13.useId();
998
1107
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
999
- return /* @__PURE__ */ jsx12(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs5(
1108
+ return /* @__PURE__ */ jsx14(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs5(
1000
1109
  "div",
1001
1110
  {
1002
1111
  "data-slot": "chart",
@@ -1007,8 +1116,8 @@ function ChartContainer({
1007
1116
  ),
1008
1117
  ...props,
1009
1118
  children: [
1010
- /* @__PURE__ */ jsx12(ChartStyle, { id: chartId, config }),
1011
- /* @__PURE__ */ jsx12(RechartsPrimitive.ResponsiveContainer, { children })
1119
+ /* @__PURE__ */ jsx14(ChartStyle, { id: chartId, config }),
1120
+ /* @__PURE__ */ jsx14(RechartsPrimitive.ResponsiveContainer, { children })
1012
1121
  ]
1013
1122
  }
1014
1123
  ) });
@@ -1020,7 +1129,7 @@ var ChartStyle = ({ id, config }) => {
1020
1129
  if (!colorConfig.length) {
1021
1130
  return null;
1022
1131
  }
1023
- return /* @__PURE__ */ jsx12(
1132
+ return /* @__PURE__ */ jsx14(
1024
1133
  "style",
1025
1134
  {
1026
1135
  dangerouslySetInnerHTML: {
@@ -1055,7 +1164,7 @@ function ChartTooltipContent({
1055
1164
  labelKey
1056
1165
  }) {
1057
1166
  const { config } = useChart();
1058
- const tooltipLabel = React11.useMemo(() => {
1167
+ const tooltipLabel = React13.useMemo(() => {
1059
1168
  if (hideLabel || !payload?.length) {
1060
1169
  return null;
1061
1170
  }
@@ -1064,12 +1173,12 @@ function ChartTooltipContent({
1064
1173
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
1065
1174
  const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
1066
1175
  if (labelFormatter) {
1067
- return /* @__PURE__ */ jsx12("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
1176
+ return /* @__PURE__ */ jsx14("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
1068
1177
  }
1069
1178
  if (!value) {
1070
1179
  return null;
1071
1180
  }
1072
- return /* @__PURE__ */ jsx12("div", { className: cn("font-medium", labelClassName), children: value });
1181
+ return /* @__PURE__ */ jsx14("div", { className: cn("font-medium", labelClassName), children: value });
1073
1182
  }, [
1074
1183
  label,
1075
1184
  labelFormatter,
@@ -1092,11 +1201,11 @@ function ChartTooltipContent({
1092
1201
  ),
1093
1202
  children: [
1094
1203
  !nestLabel ? tooltipLabel : null,
1095
- /* @__PURE__ */ jsx12("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
1204
+ /* @__PURE__ */ jsx14("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
1096
1205
  const key = `${nameKey || item.name || item.dataKey || "value"}`;
1097
1206
  const itemConfig = getPayloadConfigFromPayload(config, item, key);
1098
1207
  const indicatorColor = color || item.payload.fill || item.color;
1099
- return /* @__PURE__ */ jsx12(
1208
+ return /* @__PURE__ */ jsx14(
1100
1209
  "div",
1101
1210
  {
1102
1211
  className: cn(
@@ -1104,7 +1213,7 @@ function ChartTooltipContent({
1104
1213
  indicator === "dot" && "items-center"
1105
1214
  ),
1106
1215
  children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs5(Fragment, { children: [
1107
- itemConfig?.icon ? /* @__PURE__ */ jsx12(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx12(
1216
+ itemConfig?.icon ? /* @__PURE__ */ jsx14(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx14(
1108
1217
  "div",
1109
1218
  {
1110
1219
  className: cn(
@@ -1132,9 +1241,9 @@ function ChartTooltipContent({
1132
1241
  children: [
1133
1242
  /* @__PURE__ */ jsxs5("div", { className: "grid gap-1.5", children: [
1134
1243
  nestLabel ? tooltipLabel : null,
1135
- /* @__PURE__ */ jsx12("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1244
+ /* @__PURE__ */ jsx14("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1136
1245
  ] }),
1137
- item.value && /* @__PURE__ */ jsx12("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
1246
+ item.value && /* @__PURE__ */ jsx14("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
1138
1247
  ]
1139
1248
  }
1140
1249
  )
@@ -1159,7 +1268,7 @@ function ChartLegendContent({
1159
1268
  if (!payload?.length) {
1160
1269
  return null;
1161
1270
  }
1162
- return /* @__PURE__ */ jsx12(
1271
+ return /* @__PURE__ */ jsx14(
1163
1272
  "div",
1164
1273
  {
1165
1274
  className: cn(
@@ -1177,7 +1286,7 @@ function ChartLegendContent({
1177
1286
  "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
1178
1287
  ),
1179
1288
  children: [
1180
- itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx12(itemConfig.icon, {}) : /* @__PURE__ */ jsx12(
1289
+ itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx14(itemConfig.icon, {}) : /* @__PURE__ */ jsx14(
1181
1290
  "div",
1182
1291
  {
1183
1292
  className: "h-2 w-2 shrink-0 rounded-[2px]",
@@ -1213,12 +1322,12 @@ function getPayloadConfigFromPayload(config, payload, key) {
1213
1322
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
1214
1323
  import { Check } from "lucide-react";
1215
1324
  import "react";
1216
- import { jsx as jsx13 } from "react/jsx-runtime";
1325
+ import { jsx as jsx15 } from "react/jsx-runtime";
1217
1326
  function Checkbox({
1218
1327
  className,
1219
1328
  ...props
1220
1329
  }) {
1221
- return /* @__PURE__ */ jsx13(
1330
+ return /* @__PURE__ */ jsx15(
1222
1331
  CheckboxPrimitive.Root,
1223
1332
  {
1224
1333
  "data-slot": "checkbox",
@@ -1227,13 +1336,13 @@ function Checkbox({
1227
1336
  className
1228
1337
  ),
1229
1338
  ...props,
1230
- children: /* @__PURE__ */ jsx13(
1339
+ children: /* @__PURE__ */ jsx15(
1231
1340
  CheckboxPrimitive.Indicator,
1232
1341
  {
1233
1342
  "data-slot": "checkbox-indicator",
1234
1343
  forceMount: true,
1235
1344
  className: "flex items-center justify-center text-current transition-opacity duration-400 opacity-0 group-data-[state=checked]:opacity-100",
1236
- children: /* @__PURE__ */ jsx13(Check, { className: "size-3.5" })
1345
+ children: /* @__PURE__ */ jsx15(Check, { className: "size-3.5" })
1237
1346
  }
1238
1347
  )
1239
1348
  }
@@ -1242,16 +1351,16 @@ function Checkbox({
1242
1351
 
1243
1352
  // src/components/ui/collapsible.tsx
1244
1353
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
1245
- import { jsx as jsx14 } from "react/jsx-runtime";
1354
+ import { jsx as jsx16 } from "react/jsx-runtime";
1246
1355
  function Collapsible({
1247
1356
  ...props
1248
1357
  }) {
1249
- return /* @__PURE__ */ jsx14(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
1358
+ return /* @__PURE__ */ jsx16(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
1250
1359
  }
1251
1360
  function CollapsibleTrigger2({
1252
1361
  ...props
1253
1362
  }) {
1254
- return /* @__PURE__ */ jsx14(
1363
+ return /* @__PURE__ */ jsx16(
1255
1364
  CollapsiblePrimitive.CollapsibleTrigger,
1256
1365
  {
1257
1366
  "data-slot": "collapsible-trigger",
@@ -1262,7 +1371,7 @@ function CollapsibleTrigger2({
1262
1371
  function CollapsibleContent2({
1263
1372
  ...props
1264
1373
  }) {
1265
- return /* @__PURE__ */ jsx14(
1374
+ return /* @__PURE__ */ jsx16(
1266
1375
  CollapsiblePrimitive.CollapsibleContent,
1267
1376
  {
1268
1377
  "data-slot": "collapsible-content",
@@ -1280,32 +1389,32 @@ import { SearchIcon } from "lucide-react";
1280
1389
  import * as DialogPrimitive from "@radix-ui/react-dialog";
1281
1390
  import { XIcon } from "lucide-react";
1282
1391
  import "react";
1283
- import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
1392
+ import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
1284
1393
  function Dialog({
1285
1394
  ...props
1286
1395
  }) {
1287
- return /* @__PURE__ */ jsx15(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
1396
+ return /* @__PURE__ */ jsx17(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
1288
1397
  }
1289
1398
  function DialogTrigger({
1290
1399
  ...props
1291
1400
  }) {
1292
- return /* @__PURE__ */ jsx15(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
1401
+ return /* @__PURE__ */ jsx17(DialogPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
1293
1402
  }
1294
1403
  function DialogPortal({
1295
1404
  ...props
1296
1405
  }) {
1297
- return /* @__PURE__ */ jsx15(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
1406
+ return /* @__PURE__ */ jsx17(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
1298
1407
  }
1299
1408
  function DialogClose({
1300
1409
  ...props
1301
1410
  }) {
1302
- return /* @__PURE__ */ jsx15(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
1411
+ return /* @__PURE__ */ jsx17(DialogPrimitive.Close, { "data-slot": "dialog-close", ...props });
1303
1412
  }
1304
1413
  function DialogOverlay({
1305
1414
  className,
1306
1415
  ...props
1307
1416
  }) {
1308
- return /* @__PURE__ */ jsx15(
1417
+ return /* @__PURE__ */ jsx17(
1309
1418
  DialogPrimitive.Overlay,
1310
1419
  {
1311
1420
  "data-slot": "dialog-overlay",
@@ -1325,7 +1434,7 @@ function DialogContent({
1325
1434
  ...props
1326
1435
  }) {
1327
1436
  return /* @__PURE__ */ jsxs6(DialogPortal, { "data-slot": "dialog-portal", children: [
1328
- /* @__PURE__ */ jsx15(DialogOverlay, { className: overlayClassName }),
1437
+ /* @__PURE__ */ jsx17(DialogOverlay, { className: overlayClassName }),
1329
1438
  /* @__PURE__ */ jsxs6(
1330
1439
  DialogPrimitive.Content,
1331
1440
  {
@@ -1343,8 +1452,8 @@ function DialogContent({
1343
1452
  "data-slot": "dialog-close",
1344
1453
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1345
1454
  children: [
1346
- /* @__PURE__ */ jsx15(XIcon, {}),
1347
- /* @__PURE__ */ jsx15("span", { className: "sr-only", children: "Close" })
1455
+ /* @__PURE__ */ jsx17(XIcon, {}),
1456
+ /* @__PURE__ */ jsx17("span", { className: "sr-only", children: "Close" })
1348
1457
  ]
1349
1458
  }
1350
1459
  )
@@ -1354,7 +1463,7 @@ function DialogContent({
1354
1463
  ] });
1355
1464
  }
1356
1465
  function DialogHeader({ className, ...props }) {
1357
- return /* @__PURE__ */ jsx15(
1466
+ return /* @__PURE__ */ jsx17(
1358
1467
  "div",
1359
1468
  {
1360
1469
  "data-slot": "dialog-header",
@@ -1364,7 +1473,7 @@ function DialogHeader({ className, ...props }) {
1364
1473
  );
1365
1474
  }
1366
1475
  function DialogFooter({ className, ...props }) {
1367
- return /* @__PURE__ */ jsx15(
1476
+ return /* @__PURE__ */ jsx17(
1368
1477
  "div",
1369
1478
  {
1370
1479
  "data-slot": "dialog-footer",
@@ -1380,7 +1489,7 @@ function DialogTitle({
1380
1489
  className,
1381
1490
  ...props
1382
1491
  }) {
1383
- return /* @__PURE__ */ jsx15(
1492
+ return /* @__PURE__ */ jsx17(
1384
1493
  DialogPrimitive.Title,
1385
1494
  {
1386
1495
  "data-slot": "dialog-title",
@@ -1393,7 +1502,7 @@ function DialogDescription({
1393
1502
  className,
1394
1503
  ...props
1395
1504
  }) {
1396
- return /* @__PURE__ */ jsx15(
1505
+ return /* @__PURE__ */ jsx17(
1397
1506
  DialogPrimitive.Description,
1398
1507
  {
1399
1508
  "data-slot": "dialog-description",
@@ -1404,12 +1513,12 @@ function DialogDescription({
1404
1513
  }
1405
1514
 
1406
1515
  // src/components/ui/command.tsx
1407
- import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
1516
+ import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
1408
1517
  function Command({
1409
1518
  className,
1410
1519
  ...props
1411
1520
  }) {
1412
- return /* @__PURE__ */ jsx16(
1521
+ return /* @__PURE__ */ jsx18(
1413
1522
  CommandPrimitive,
1414
1523
  {
1415
1524
  "data-slot": "command",
@@ -1431,15 +1540,15 @@ function CommandDialog({
1431
1540
  }) {
1432
1541
  return /* @__PURE__ */ jsxs7(Dialog, { ...props, children: [
1433
1542
  /* @__PURE__ */ jsxs7(DialogHeader, { className: "sr-only", children: [
1434
- /* @__PURE__ */ jsx16(DialogTitle, { children: title }),
1435
- /* @__PURE__ */ jsx16(DialogDescription, { children: description })
1543
+ /* @__PURE__ */ jsx18(DialogTitle, { children: title }),
1544
+ /* @__PURE__ */ jsx18(DialogDescription, { children: description })
1436
1545
  ] }),
1437
- /* @__PURE__ */ jsx16(
1546
+ /* @__PURE__ */ jsx18(
1438
1547
  DialogContent,
1439
1548
  {
1440
1549
  className: cn("overflow-hidden p-0", className),
1441
1550
  showCloseButton,
1442
- children: /* @__PURE__ */ jsx16(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
1551
+ children: /* @__PURE__ */ jsx18(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
1443
1552
  }
1444
1553
  )
1445
1554
  ] });
@@ -1454,8 +1563,8 @@ function CommandInput({
1454
1563
  "data-slot": "command-input-wrapper",
1455
1564
  className: "flex h-9 items-center gap-2 border-b px-3",
1456
1565
  children: [
1457
- /* @__PURE__ */ jsx16(SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1458
- /* @__PURE__ */ jsx16(
1566
+ /* @__PURE__ */ jsx18(SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1567
+ /* @__PURE__ */ jsx18(
1459
1568
  CommandPrimitive.Input,
1460
1569
  {
1461
1570
  "data-slot": "command-input",
@@ -1474,7 +1583,7 @@ function CommandList({
1474
1583
  className,
1475
1584
  ...props
1476
1585
  }) {
1477
- return /* @__PURE__ */ jsx16(
1586
+ return /* @__PURE__ */ jsx18(
1478
1587
  CommandPrimitive.List,
1479
1588
  {
1480
1589
  "data-slot": "command-list",
@@ -1489,7 +1598,7 @@ function CommandList({
1489
1598
  function CommandEmpty({
1490
1599
  ...props
1491
1600
  }) {
1492
- return /* @__PURE__ */ jsx16(
1601
+ return /* @__PURE__ */ jsx18(
1493
1602
  CommandPrimitive.Empty,
1494
1603
  {
1495
1604
  "data-slot": "command-empty",
@@ -1502,7 +1611,7 @@ function CommandGroup({
1502
1611
  className,
1503
1612
  ...props
1504
1613
  }) {
1505
- return /* @__PURE__ */ jsx16(
1614
+ return /* @__PURE__ */ jsx18(
1506
1615
  CommandPrimitive.Group,
1507
1616
  {
1508
1617
  "data-slot": "command-group",
@@ -1518,7 +1627,7 @@ function CommandSeparator({
1518
1627
  className,
1519
1628
  ...props
1520
1629
  }) {
1521
- return /* @__PURE__ */ jsx16(
1630
+ return /* @__PURE__ */ jsx18(
1522
1631
  CommandPrimitive.Separator,
1523
1632
  {
1524
1633
  "data-slot": "command-separator",
@@ -1531,7 +1640,7 @@ function CommandItem({
1531
1640
  className,
1532
1641
  ...props
1533
1642
  }) {
1534
- return /* @__PURE__ */ jsx16(
1643
+ return /* @__PURE__ */ jsx18(
1535
1644
  CommandPrimitive.Item,
1536
1645
  {
1537
1646
  "data-slot": "command-item",
@@ -1547,7 +1656,7 @@ function CommandShortcut({
1547
1656
  className,
1548
1657
  ...props
1549
1658
  }) {
1550
- return /* @__PURE__ */ jsx16(
1659
+ return /* @__PURE__ */ jsx18(
1551
1660
  "span",
1552
1661
  {
1553
1662
  "data-slot": "command-shortcut",
@@ -1564,36 +1673,36 @@ function CommandShortcut({
1564
1673
  import "react";
1565
1674
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
1566
1675
  import { CheckIcon, ChevronRightIcon as ChevronRightIcon2, CircleIcon } from "lucide-react";
1567
- import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1676
+ import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
1568
1677
  function ContextMenu({
1569
1678
  ...props
1570
1679
  }) {
1571
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
1680
+ return /* @__PURE__ */ jsx19(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
1572
1681
  }
1573
1682
  function ContextMenuTrigger({
1574
1683
  ...props
1575
1684
  }) {
1576
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", ...props });
1685
+ return /* @__PURE__ */ jsx19(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", ...props });
1577
1686
  }
1578
1687
  function ContextMenuGroup({
1579
1688
  ...props
1580
1689
  }) {
1581
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props });
1690
+ return /* @__PURE__ */ jsx19(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props });
1582
1691
  }
1583
1692
  function ContextMenuPortal({
1584
1693
  ...props
1585
1694
  }) {
1586
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props });
1695
+ return /* @__PURE__ */ jsx19(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props });
1587
1696
  }
1588
1697
  function ContextMenuSub({
1589
1698
  ...props
1590
1699
  }) {
1591
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
1700
+ return /* @__PURE__ */ jsx19(ContextMenuPrimitive.Sub, { "data-slot": "context-menu-sub", ...props });
1592
1701
  }
1593
1702
  function ContextMenuRadioGroup({
1594
1703
  ...props
1595
1704
  }) {
1596
- return /* @__PURE__ */ jsx17(
1705
+ return /* @__PURE__ */ jsx19(
1597
1706
  ContextMenuPrimitive.RadioGroup,
1598
1707
  {
1599
1708
  "data-slot": "context-menu-radio-group",
@@ -1619,7 +1728,7 @@ function ContextMenuSubTrigger({
1619
1728
  ...props,
1620
1729
  children: [
1621
1730
  children,
1622
- /* @__PURE__ */ jsx17(ChevronRightIcon2, { className: "ml-auto" })
1731
+ /* @__PURE__ */ jsx19(ChevronRightIcon2, { className: "ml-auto" })
1623
1732
  ]
1624
1733
  }
1625
1734
  );
@@ -1628,7 +1737,7 @@ function ContextMenuSubContent({
1628
1737
  className,
1629
1738
  ...props
1630
1739
  }) {
1631
- return /* @__PURE__ */ jsx17(
1740
+ return /* @__PURE__ */ jsx19(
1632
1741
  ContextMenuPrimitive.SubContent,
1633
1742
  {
1634
1743
  "data-slot": "context-menu-sub-content",
@@ -1644,7 +1753,7 @@ function ContextMenuContent({
1644
1753
  className,
1645
1754
  ...props
1646
1755
  }) {
1647
- return /* @__PURE__ */ jsx17(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx17(
1756
+ return /* @__PURE__ */ jsx19(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx19(
1648
1757
  ContextMenuPrimitive.Content,
1649
1758
  {
1650
1759
  "data-slot": "context-menu-content",
@@ -1662,7 +1771,7 @@ function ContextMenuItem({
1662
1771
  variant = "default",
1663
1772
  ...props
1664
1773
  }) {
1665
- return /* @__PURE__ */ jsx17(
1774
+ return /* @__PURE__ */ jsx19(
1666
1775
  ContextMenuPrimitive.Item,
1667
1776
  {
1668
1777
  "data-slot": "context-menu-item",
@@ -1693,7 +1802,7 @@ function ContextMenuCheckboxItem({
1693
1802
  checked,
1694
1803
  ...props,
1695
1804
  children: [
1696
- /* @__PURE__ */ jsx17("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(CheckIcon, { className: "size-4" }) }) }),
1805
+ /* @__PURE__ */ jsx19("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx19(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx19(CheckIcon, { className: "size-4" }) }) }),
1697
1806
  children
1698
1807
  ]
1699
1808
  }
@@ -1714,7 +1823,7 @@ function ContextMenuRadioItem({
1714
1823
  ),
1715
1824
  ...props,
1716
1825
  children: [
1717
- /* @__PURE__ */ jsx17("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx17(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx17(CircleIcon, { className: "size-2 fill-current" }) }) }),
1826
+ /* @__PURE__ */ jsx19("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx19(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx19(CircleIcon, { className: "size-2 fill-current" }) }) }),
1718
1827
  children
1719
1828
  ]
1720
1829
  }
@@ -1725,7 +1834,7 @@ function ContextMenuLabel({
1725
1834
  inset,
1726
1835
  ...props
1727
1836
  }) {
1728
- return /* @__PURE__ */ jsx17(
1837
+ return /* @__PURE__ */ jsx19(
1729
1838
  ContextMenuPrimitive.Label,
1730
1839
  {
1731
1840
  "data-slot": "context-menu-label",
@@ -1742,7 +1851,7 @@ function ContextMenuSeparator({
1742
1851
  className,
1743
1852
  ...props
1744
1853
  }) {
1745
- return /* @__PURE__ */ jsx17(
1854
+ return /* @__PURE__ */ jsx19(
1746
1855
  ContextMenuPrimitive.Separator,
1747
1856
  {
1748
1857
  "data-slot": "context-menu-separator",
@@ -1755,7 +1864,7 @@ function ContextMenuShortcut({
1755
1864
  className,
1756
1865
  ...props
1757
1866
  }) {
1758
- return /* @__PURE__ */ jsx17(
1867
+ return /* @__PURE__ */ jsx19(
1759
1868
  "span",
1760
1869
  {
1761
1870
  "data-slot": "context-menu-shortcut",
@@ -1768,90 +1877,451 @@ function ContextMenuShortcut({
1768
1877
  );
1769
1878
  }
1770
1879
 
1771
- // src/components/ui/drawer.tsx
1772
- import "react";
1773
- import { Drawer as DrawerPrimitive } from "vaul";
1774
- import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
1775
- function Drawer({
1776
- ...props
1777
- }) {
1778
- return /* @__PURE__ */ jsx18(DrawerPrimitive.Root, { "data-slot": "drawer", ...props });
1779
- }
1780
- function DrawerTrigger({
1781
- ...props
1782
- }) {
1783
- return /* @__PURE__ */ jsx18(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
1784
- }
1785
- function DrawerPortal({
1786
- ...props
1787
- }) {
1788
- return /* @__PURE__ */ jsx18(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
1789
- }
1790
- function DrawerClose({
1791
- ...props
1792
- }) {
1793
- return /* @__PURE__ */ jsx18(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
1794
- }
1795
- function DrawerOverlay({
1796
- className,
1797
- ...props
1798
- }) {
1799
- return /* @__PURE__ */ jsx18(
1800
- DrawerPrimitive.Overlay,
1801
- {
1802
- "data-slot": "drawer-overlay",
1803
- className: cn(
1804
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
1805
- className
1806
- ),
1807
- ...props
1808
- }
1809
- );
1810
- }
1811
- function DrawerContent({
1812
- className,
1813
- children,
1814
- withCloseButton = true,
1815
- ...props
1816
- }) {
1817
- return /* @__PURE__ */ jsxs9(DrawerPortal, { "data-slot": "drawer-portal", children: [
1818
- /* @__PURE__ */ jsx18(DrawerOverlay, {}),
1819
- /* @__PURE__ */ jsxs9(
1820
- DrawerPrimitive.Content,
1821
- {
1822
- "data-slot": "drawer-content",
1823
- className: cn(
1824
- "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
1825
- "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
1826
- "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
1827
- "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
1828
- "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
1829
- className
1830
- ),
1831
- ...props,
1832
- children: [
1833
- withCloseButton && /* @__PURE__ */ jsx18("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1834
- children
1835
- ]
1880
+ // src/components/ui/date-input.tsx
1881
+ import "class-variance-authority";
1882
+ import { CalendarDays } from "lucide-react";
1883
+ import * as React20 from "react";
1884
+
1885
+ // src/components/ui/input.tsx
1886
+ import { cva as cva4 } from "class-variance-authority";
1887
+ import * as React18 from "react";
1888
+ import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
1889
+ var inputVariants = cva4(
1890
+ [
1891
+ // Base styles
1892
+ "file:text-zinc-800 placeholder:text-gray-subtle selection:bg-primary selection:text-primary-foreground",
1893
+ "flex w-full min-w-0 rounded-md border bg-transparent text-base transition-all duration-400",
1894
+ "outline-none font-sans",
1895
+ // File input styles
1896
+ "file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium",
1897
+ // Disabled styles
1898
+ "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
1899
+ // Responsive text size
1900
+ "md:text-sm",
1901
+ // Default state
1902
+ "border-zinc-300 bg-background",
1903
+ // Hover state
1904
+ "hover:border-primary-stroke-default",
1905
+ // Focus state
1906
+ "focus:border-blue-500",
1907
+ "active:border-brand-normal"
1908
+ ],
1909
+ {
1910
+ variants: {
1911
+ size: {
1912
+ sm: "h-9 px-3 py-1 text-base",
1913
+ md: "h-10 px-3 py-2 text-base",
1914
+ lg: "h-12 px-4 py-3 text-base"
1836
1915
  }
1837
- )
1838
- ] });
1839
- }
1840
- function DrawerHeader({ className, ...props }) {
1841
- return /* @__PURE__ */ jsx18(
1842
- "div",
1843
- {
1844
- "data-slot": "drawer-header",
1845
- className: cn(
1846
- "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",
1847
- className
1848
- ),
1849
- ...props
1916
+ },
1917
+ defaultVariants: {
1918
+ size: "md"
1919
+ }
1920
+ }
1921
+ );
1922
+ var Input = React18.forwardRef(
1923
+ ({
1924
+ className,
1925
+ type,
1926
+ size,
1927
+ leftIcon,
1928
+ rightIcon,
1929
+ leftIconClassName,
1930
+ rightIconClassName,
1931
+ rightIconOnClick,
1932
+ rightIconButtonProps,
1933
+ error,
1934
+ ...props
1935
+ }, ref) => {
1936
+ const errorStyles2 = error ? [
1937
+ "border-destructive bg-red-subtle",
1938
+ "focus:border-destructive focus:ring-destructive/20",
1939
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
1940
+ ] : [];
1941
+ if (leftIcon || rightIcon) {
1942
+ return /* @__PURE__ */ jsxs9("div", { className: "relative", children: [
1943
+ /* @__PURE__ */ jsx20(
1944
+ "input",
1945
+ {
1946
+ type,
1947
+ "data-slot": "input",
1948
+ className: cn(
1949
+ inputVariants({ size }),
1950
+ errorStyles2,
1951
+ "peer",
1952
+ leftIcon && "pl-8",
1953
+ rightIcon && "pr-10",
1954
+ className
1955
+ ),
1956
+ ref,
1957
+ "aria-invalid": error,
1958
+ ...props
1959
+ }
1960
+ ),
1961
+ leftIcon && /* @__PURE__ */ jsx20(
1962
+ "div",
1963
+ {
1964
+ className: cn(
1965
+ "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 flex items-center justify-center",
1966
+ "transition-colors stroke-[1.5px]",
1967
+ error ? "text-destructive peer-hover:text-destructive peer-focus:text-destructive peer-active:text-destructive" : "text-muted-foreground peer-hover:text-brand-normal peer-focus:text-blue-500 peer-active:text-brand-normal",
1968
+ leftIconClassName
1969
+ ),
1970
+ children: React18.isValidElement(leftIcon) ? (() => {
1971
+ const iconEl = leftIcon;
1972
+ return React18.cloneElement(iconEl, {
1973
+ className: cn("h-4 w-4", iconEl.props.className)
1974
+ });
1975
+ })() : leftIcon
1976
+ }
1977
+ ),
1978
+ rightIcon && /* @__PURE__ */ jsx20(
1979
+ Button,
1980
+ {
1981
+ onClick: rightIconOnClick,
1982
+ variant: "ghost",
1983
+ size: "icon",
1984
+ className: cn(
1985
+ "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center",
1986
+ "h-6 w-6 rounded-sm transition-colors",
1987
+ error ? "text-destructive hover:text-destructive focus:text-destructive" : "text-muted-foreground hover:text-brand-normal focus:text-blue-500",
1988
+ rightIconClassName
1989
+ ),
1990
+ "aria-label": "Input action",
1991
+ ...rightIconButtonProps,
1992
+ children: React18.isValidElement(rightIcon) ? (() => {
1993
+ const iconEl = rightIcon;
1994
+ return React18.cloneElement(iconEl, {
1995
+ className: cn("h-4 w-4", iconEl.props.className)
1996
+ });
1997
+ })() : rightIcon
1998
+ }
1999
+ )
2000
+ ] });
2001
+ }
2002
+ return /* @__PURE__ */ jsx20(
2003
+ "input",
2004
+ {
2005
+ type,
2006
+ "data-slot": "input",
2007
+ className: cn(inputVariants({ size }), errorStyles2, className),
2008
+ ref,
2009
+ "aria-invalid": error,
2010
+ ...props
2011
+ }
2012
+ );
2013
+ }
2014
+ );
2015
+ Input.displayName = "Input";
2016
+
2017
+ // src/components/ui/popover.tsx
2018
+ import "react";
2019
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
2020
+ import { jsx as jsx21 } from "react/jsx-runtime";
2021
+ function Popover({
2022
+ ...props
2023
+ }) {
2024
+ return /* @__PURE__ */ jsx21(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
2025
+ }
2026
+ function PopoverTrigger({
2027
+ ...props
2028
+ }) {
2029
+ return /* @__PURE__ */ jsx21(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
2030
+ }
2031
+ function PopoverContent({
2032
+ className,
2033
+ align = "center",
2034
+ sideOffset = 4,
2035
+ ...props
2036
+ }) {
2037
+ return /* @__PURE__ */ jsx21(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
2038
+ PopoverPrimitive.Content,
2039
+ {
2040
+ "data-slot": "popover-content",
2041
+ align,
2042
+ sideOffset,
2043
+ className: cn(
2044
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
2045
+ className
2046
+ ),
2047
+ ...props
2048
+ }
2049
+ ) });
2050
+ }
2051
+ function PopoverAnchor({
2052
+ ...props
2053
+ }) {
2054
+ return /* @__PURE__ */ jsx21(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
2055
+ }
2056
+
2057
+ // src/components/ui/date-input.tsx
2058
+ import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
2059
+ function formatDate(date) {
2060
+ if (!date) {
2061
+ return "";
2062
+ }
2063
+ return date.toLocaleDateString("en-US", {
2064
+ day: "2-digit",
2065
+ month: "2-digit",
2066
+ year: "numeric"
2067
+ });
2068
+ }
2069
+ function isValidDate(date) {
2070
+ if (!date) {
2071
+ return false;
2072
+ }
2073
+ return !isNaN(date.getTime());
2074
+ }
2075
+ function DateInput({
2076
+ date,
2077
+ setDate,
2078
+ maxDate,
2079
+ minDate,
2080
+ disableFuture = true,
2081
+ className,
2082
+ inputClassName,
2083
+ calendarClassName,
2084
+ calendarProps,
2085
+ placeholder = "mm/dd/yyyy",
2086
+ disabled,
2087
+ onBlur,
2088
+ ...props
2089
+ }) {
2090
+ const [open, setOpen] = React20.useState(false);
2091
+ const [month, setMonth] = React20.useState(date ?? null);
2092
+ const [value, setValue] = React20.useState(formatDate(date ?? null));
2093
+ const today = React20.useMemo(() => {
2094
+ const d = /* @__PURE__ */ new Date();
2095
+ d.setHours(0, 0, 0, 0);
2096
+ return d;
2097
+ }, []);
2098
+ const effectiveMaxDate = React20.useMemo(() => {
2099
+ if (disableFuture) {
2100
+ if (maxDate) {
2101
+ const max = new Date(maxDate);
2102
+ max.setHours(0, 0, 0, 0);
2103
+ return max < today ? max : today;
2104
+ }
2105
+ return today;
2106
+ }
2107
+ if (maxDate) {
2108
+ const max = new Date(maxDate);
2109
+ max.setHours(0, 0, 0, 0);
2110
+ return max;
2111
+ }
2112
+ return void 0;
2113
+ }, [maxDate, disableFuture, today]);
2114
+ const effectiveMinDate = React20.useMemo(() => {
2115
+ if (minDate) {
2116
+ const min = new Date(minDate);
2117
+ min.setHours(0, 0, 0, 0);
2118
+ return min;
2119
+ }
2120
+ return null;
2121
+ }, [minDate]);
2122
+ React20.useEffect(() => {
2123
+ if (date) {
2124
+ setValue(formatDate(date));
2125
+ setMonth(date);
2126
+ }
2127
+ }, [date]);
2128
+ const handleInputChange = (e) => {
2129
+ const inputValue = e.target.value;
2130
+ setValue(inputValue);
2131
+ const parsedDate = new Date(inputValue);
2132
+ if (isValidDate(parsedDate)) {
2133
+ const selectedDate = new Date(parsedDate);
2134
+ selectedDate.setHours(0, 0, 0, 0);
2135
+ const isAfterMin = !effectiveMinDate || selectedDate >= effectiveMinDate;
2136
+ const isBeforeMax = !effectiveMaxDate || selectedDate <= effectiveMaxDate;
2137
+ if (isAfterMin && isBeforeMax) {
2138
+ setDate(parsedDate);
2139
+ setMonth(parsedDate);
2140
+ }
2141
+ } else if (inputValue === "") {
2142
+ setDate(null);
2143
+ }
2144
+ };
2145
+ const handleBlur = (e) => {
2146
+ if (onBlur) {
2147
+ onBlur(e);
2148
+ }
2149
+ if (value === "") {
2150
+ if (date !== null) {
2151
+ setDate(null);
2152
+ }
2153
+ return;
2154
+ }
2155
+ const parsedDate = new Date(value);
2156
+ if (!isValidDate(parsedDate)) {
2157
+ setValue(formatDate(date));
2158
+ } else {
2159
+ const selectedDate = new Date(parsedDate);
2160
+ selectedDate.setHours(0, 0, 0, 0);
2161
+ const isAfterMin = !effectiveMinDate || selectedDate >= effectiveMinDate;
2162
+ const isBeforeMax = !effectiveMaxDate || selectedDate <= effectiveMaxDate;
2163
+ if (!isAfterMin || !isBeforeMax) {
2164
+ setValue(formatDate(date));
2165
+ }
2166
+ }
2167
+ };
2168
+ return /* @__PURE__ */ jsx22("div", { className: cn("relative flex gap-2", className), children: /* @__PURE__ */ jsxs10(Popover, { open, onOpenChange: setOpen, children: [
2169
+ /* @__PURE__ */ jsx22(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx22("div", { className: "w-full relative", children: /* @__PURE__ */ jsx22(
2170
+ Input,
2171
+ {
2172
+ id: "date",
2173
+ value,
2174
+ placeholder,
2175
+ className: cn("bg-background cursor-pointer", inputClassName),
2176
+ onChange: handleInputChange,
2177
+ onBlur: handleBlur,
2178
+ disabled,
2179
+ onKeyDown: (e) => {
2180
+ if (e.key === "ArrowDown" && !disabled) {
2181
+ e.preventDefault();
2182
+ setOpen(true);
2183
+ }
2184
+ },
2185
+ rightIcon: /* @__PURE__ */ jsx22(CalendarDays, { className: "h-4 w-4 text-muted-foreground" }),
2186
+ rightIconOnClick: disabled ? void 0 : () => setOpen(!open),
2187
+ rightIconButtonProps: { disabled },
2188
+ ...props
2189
+ }
2190
+ ) }) }),
2191
+ /* @__PURE__ */ jsx22(
2192
+ PopoverContent,
2193
+ {
2194
+ className: "w-auto overflow-hidden p-0",
2195
+ align: "end",
2196
+ alignOffset: -8,
2197
+ sideOffset: 10,
2198
+ side: "top",
2199
+ children: /* @__PURE__ */ jsx22(
2200
+ Calendar,
2201
+ {
2202
+ ...calendarProps,
2203
+ mode: "single",
2204
+ selected: date ?? void 0,
2205
+ captionLayout: "dropdown",
2206
+ month: month ?? void 0,
2207
+ onMonthChange: setMonth,
2208
+ showOutsideDays: false,
2209
+ className: cn(
2210
+ "md:w-auto w-[calc(100vw-50px)] mx-auto h-[350px] overflow-y-auto md:h-auto m-2",
2211
+ calendarClassName
2212
+ ),
2213
+ classNames: calendarProps?.classNames,
2214
+ onSelect: (selectedDate) => {
2215
+ if (selectedDate) {
2216
+ const dateObj = new Date(selectedDate);
2217
+ dateObj.setHours(0, 0, 0, 0);
2218
+ const isAfterMin = !effectiveMinDate || dateObj >= effectiveMinDate;
2219
+ const isBeforeMax = !effectiveMaxDate || dateObj <= effectiveMaxDate;
2220
+ if (isAfterMin && isBeforeMax) {
2221
+ setDate(selectedDate);
2222
+ setValue(formatDate(selectedDate));
2223
+ setOpen(false);
2224
+ }
2225
+ }
2226
+ },
2227
+ disabled: (date2) => {
2228
+ const checkDate = new Date(date2);
2229
+ checkDate.setHours(0, 0, 0, 0);
2230
+ const isBeforeMin = effectiveMinDate !== null && checkDate < effectiveMinDate;
2231
+ const isAfterMax = effectiveMaxDate !== void 0 && checkDate > effectiveMaxDate;
2232
+ return isBeforeMin || isAfterMax;
2233
+ }
2234
+ }
2235
+ )
2236
+ }
2237
+ )
2238
+ ] }) });
2239
+ }
2240
+
2241
+ // src/components/ui/drawer.tsx
2242
+ import "react";
2243
+ import { Drawer as DrawerPrimitive } from "vaul";
2244
+ import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
2245
+ function Drawer({
2246
+ ...props
2247
+ }) {
2248
+ return /* @__PURE__ */ jsx23(DrawerPrimitive.Root, { "data-slot": "drawer", ...props, repositionInputs: false });
2249
+ }
2250
+ function DrawerTrigger({
2251
+ ...props
2252
+ }) {
2253
+ return /* @__PURE__ */ jsx23(DrawerPrimitive.Trigger, { "data-slot": "drawer-trigger", ...props });
2254
+ }
2255
+ function DrawerPortal({
2256
+ ...props
2257
+ }) {
2258
+ return /* @__PURE__ */ jsx23(DrawerPrimitive.Portal, { "data-slot": "drawer-portal", ...props });
2259
+ }
2260
+ function DrawerClose({
2261
+ ...props
2262
+ }) {
2263
+ return /* @__PURE__ */ jsx23(DrawerPrimitive.Close, { "data-slot": "drawer-close", ...props });
2264
+ }
2265
+ function DrawerOverlay({
2266
+ className,
2267
+ ...props
2268
+ }) {
2269
+ return /* @__PURE__ */ jsx23(
2270
+ DrawerPrimitive.Overlay,
2271
+ {
2272
+ "data-slot": "drawer-overlay",
2273
+ className: cn(
2274
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
2275
+ className
2276
+ ),
2277
+ ...props
2278
+ }
2279
+ );
2280
+ }
2281
+ function DrawerContent({
2282
+ className,
2283
+ children,
2284
+ withCloseButton = true,
2285
+ ...props
2286
+ }) {
2287
+ return /* @__PURE__ */ jsxs11(DrawerPortal, { "data-slot": "drawer-portal", children: [
2288
+ /* @__PURE__ */ jsx23(DrawerOverlay, {}),
2289
+ /* @__PURE__ */ jsxs11(
2290
+ DrawerPrimitive.Content,
2291
+ {
2292
+ "data-slot": "drawer-content",
2293
+ className: cn(
2294
+ "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
2295
+ "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
2296
+ "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
2297
+ "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
2298
+ "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
2299
+ className
2300
+ ),
2301
+ ...props,
2302
+ children: [
2303
+ withCloseButton && /* @__PURE__ */ jsx23("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
2304
+ children
2305
+ ]
2306
+ }
2307
+ )
2308
+ ] });
2309
+ }
2310
+ function DrawerHeader({ className, ...props }) {
2311
+ return /* @__PURE__ */ jsx23(
2312
+ "div",
2313
+ {
2314
+ "data-slot": "drawer-header",
2315
+ className: cn(
2316
+ "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",
2317
+ className
2318
+ ),
2319
+ ...props
1850
2320
  }
1851
2321
  );
1852
2322
  }
1853
2323
  function DrawerFooter({ className, ...props }) {
1854
- return /* @__PURE__ */ jsx18(
2324
+ return /* @__PURE__ */ jsx23(
1855
2325
  "div",
1856
2326
  {
1857
2327
  "data-slot": "drawer-footer",
@@ -1864,7 +2334,7 @@ function DrawerTitle({
1864
2334
  className,
1865
2335
  ...props
1866
2336
  }) {
1867
- return /* @__PURE__ */ jsx18(
2337
+ return /* @__PURE__ */ jsx23(
1868
2338
  DrawerPrimitive.Title,
1869
2339
  {
1870
2340
  "data-slot": "drawer-title",
@@ -1877,7 +2347,7 @@ function DrawerDescription({
1877
2347
  className,
1878
2348
  ...props
1879
2349
  }) {
1880
- return /* @__PURE__ */ jsx18(
2350
+ return /* @__PURE__ */ jsx23(
1881
2351
  DrawerPrimitive.Description,
1882
2352
  {
1883
2353
  "data-slot": "drawer-description",
@@ -1891,21 +2361,21 @@ function DrawerDescription({
1891
2361
  import "react";
1892
2362
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1893
2363
  import { CheckIcon as CheckIcon2, ChevronRightIcon as ChevronRightIcon3, CircleIcon as CircleIcon2 } from "lucide-react";
1894
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
2364
+ import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
1895
2365
  function DropdownMenu({
1896
2366
  ...props
1897
2367
  }) {
1898
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
2368
+ return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1899
2369
  }
1900
2370
  function DropdownMenuPortal({
1901
2371
  ...props
1902
2372
  }) {
1903
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
2373
+ return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1904
2374
  }
1905
2375
  function DropdownMenuTrigger({
1906
2376
  ...props
1907
2377
  }) {
1908
- return /* @__PURE__ */ jsx19(
2378
+ return /* @__PURE__ */ jsx24(
1909
2379
  DropdownMenuPrimitive.Trigger,
1910
2380
  {
1911
2381
  "data-slot": "dropdown-menu-trigger",
@@ -1918,7 +2388,7 @@ function DropdownMenuContent({
1918
2388
  sideOffset = 4,
1919
2389
  ...props
1920
2390
  }) {
1921
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx19(
2391
+ return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx24(
1922
2392
  DropdownMenuPrimitive.Content,
1923
2393
  {
1924
2394
  "data-slot": "dropdown-menu-content",
@@ -1934,7 +2404,7 @@ function DropdownMenuContent({
1934
2404
  function DropdownMenuGroup({
1935
2405
  ...props
1936
2406
  }) {
1937
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
2407
+ return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
1938
2408
  }
1939
2409
  function DropdownMenuItem({
1940
2410
  className,
@@ -1942,7 +2412,7 @@ function DropdownMenuItem({
1942
2412
  variant = "default",
1943
2413
  ...props
1944
2414
  }) {
1945
- return /* @__PURE__ */ jsx19(
2415
+ return /* @__PURE__ */ jsx24(
1946
2416
  DropdownMenuPrimitive.Item,
1947
2417
  {
1948
2418
  "data-slot": "dropdown-menu-item",
@@ -1962,7 +2432,7 @@ function DropdownMenuCheckboxItem({
1962
2432
  checked,
1963
2433
  ...props
1964
2434
  }) {
1965
- return /* @__PURE__ */ jsxs10(
2435
+ return /* @__PURE__ */ jsxs12(
1966
2436
  DropdownMenuPrimitive.CheckboxItem,
1967
2437
  {
1968
2438
  "data-slot": "dropdown-menu-checkbox-item",
@@ -1973,7 +2443,7 @@ function DropdownMenuCheckboxItem({
1973
2443
  checked,
1974
2444
  ...props,
1975
2445
  children: [
1976
- /* @__PURE__ */ jsx19("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx19(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx19(CheckIcon2, { className: "size-4" }) }) }),
2446
+ /* @__PURE__ */ jsx24("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CheckIcon2, { className: "size-4" }) }) }),
1977
2447
  children
1978
2448
  ]
1979
2449
  }
@@ -1982,7 +2452,7 @@ function DropdownMenuCheckboxItem({
1982
2452
  function DropdownMenuRadioGroup({
1983
2453
  ...props
1984
2454
  }) {
1985
- return /* @__PURE__ */ jsx19(
2455
+ return /* @__PURE__ */ jsx24(
1986
2456
  DropdownMenuPrimitive.RadioGroup,
1987
2457
  {
1988
2458
  "data-slot": "dropdown-menu-radio-group",
@@ -1995,7 +2465,7 @@ function DropdownMenuRadioItem({
1995
2465
  children,
1996
2466
  ...props
1997
2467
  }) {
1998
- return /* @__PURE__ */ jsxs10(
2468
+ return /* @__PURE__ */ jsxs12(
1999
2469
  DropdownMenuPrimitive.RadioItem,
2000
2470
  {
2001
2471
  "data-slot": "dropdown-menu-radio-item",
@@ -2005,7 +2475,7 @@ function DropdownMenuRadioItem({
2005
2475
  ),
2006
2476
  ...props,
2007
2477
  children: [
2008
- /* @__PURE__ */ jsx19("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx19(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx19(CircleIcon2, { className: "size-2 fill-current" }) }) }),
2478
+ /* @__PURE__ */ jsx24("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx24(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx24(CircleIcon2, { className: "size-2 fill-current" }) }) }),
2009
2479
  children
2010
2480
  ]
2011
2481
  }
@@ -2016,7 +2486,7 @@ function DropdownMenuLabel({
2016
2486
  inset,
2017
2487
  ...props
2018
2488
  }) {
2019
- return /* @__PURE__ */ jsx19(
2489
+ return /* @__PURE__ */ jsx24(
2020
2490
  DropdownMenuPrimitive.Label,
2021
2491
  {
2022
2492
  "data-slot": "dropdown-menu-label",
@@ -2033,7 +2503,7 @@ function DropdownMenuSeparator({
2033
2503
  className,
2034
2504
  ...props
2035
2505
  }) {
2036
- return /* @__PURE__ */ jsx19(
2506
+ return /* @__PURE__ */ jsx24(
2037
2507
  DropdownMenuPrimitive.Separator,
2038
2508
  {
2039
2509
  "data-slot": "dropdown-menu-separator",
@@ -2046,7 +2516,7 @@ function DropdownMenuShortcut({
2046
2516
  className,
2047
2517
  ...props
2048
2518
  }) {
2049
- return /* @__PURE__ */ jsx19(
2519
+ return /* @__PURE__ */ jsx24(
2050
2520
  "span",
2051
2521
  {
2052
2522
  "data-slot": "dropdown-menu-shortcut",
@@ -2061,7 +2531,7 @@ function DropdownMenuShortcut({
2061
2531
  function DropdownMenuSub({
2062
2532
  ...props
2063
2533
  }) {
2064
- return /* @__PURE__ */ jsx19(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
2534
+ return /* @__PURE__ */ jsx24(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
2065
2535
  }
2066
2536
  function DropdownMenuSubTrigger({
2067
2537
  className,
@@ -2069,7 +2539,7 @@ function DropdownMenuSubTrigger({
2069
2539
  children,
2070
2540
  ...props
2071
2541
  }) {
2072
- return /* @__PURE__ */ jsxs10(
2542
+ return /* @__PURE__ */ jsxs12(
2073
2543
  DropdownMenuPrimitive.SubTrigger,
2074
2544
  {
2075
2545
  "data-slot": "dropdown-menu-sub-trigger",
@@ -2081,7 +2551,7 @@ function DropdownMenuSubTrigger({
2081
2551
  ...props,
2082
2552
  children: [
2083
2553
  children,
2084
- /* @__PURE__ */ jsx19(ChevronRightIcon3, { className: "ml-auto size-4" })
2554
+ /* @__PURE__ */ jsx24(ChevronRightIcon3, { className: "ml-auto size-4" })
2085
2555
  ]
2086
2556
  }
2087
2557
  );
@@ -2090,7 +2560,7 @@ function DropdownMenuSubContent({
2090
2560
  className,
2091
2561
  ...props
2092
2562
  }) {
2093
- return /* @__PURE__ */ jsx19(
2563
+ return /* @__PURE__ */ jsx24(
2094
2564
  DropdownMenuPrimitive.SubContent,
2095
2565
  {
2096
2566
  "data-slot": "dropdown-menu-sub-content",
@@ -2104,7 +2574,7 @@ function DropdownMenuSubContent({
2104
2574
  }
2105
2575
 
2106
2576
  // src/components/ui/form.tsx
2107
- import * as React19 from "react";
2577
+ import * as React24 from "react";
2108
2578
  import "@radix-ui/react-label";
2109
2579
  import { Slot as Slot5 } from "@radix-ui/react-slot";
2110
2580
  import {
@@ -2116,10 +2586,10 @@ import {
2116
2586
 
2117
2587
  // src/components/ui/label.tsx
2118
2588
  import { Slot as Slot4 } from "@radix-ui/react-slot";
2119
- import { cva as cva4 } from "class-variance-authority";
2589
+ import { cva as cva5 } from "class-variance-authority";
2120
2590
  import "react";
2121
- import { jsx as jsx20 } from "react/jsx-runtime";
2122
- var labelTextVariants = cva4("font-sans font-semibold ", {
2591
+ import { jsx as jsx25 } from "react/jsx-runtime";
2592
+ var labelTextVariants = cva5("font-sans font-semibold ", {
2123
2593
  variants: {
2124
2594
  size: {
2125
2595
  lg: "text-base md:text-lg md:leading-[1.625rem] leading-[1.5rem]",
@@ -2139,7 +2609,7 @@ function Label3({
2139
2609
  ...props
2140
2610
  }) {
2141
2611
  const Comp = asChild ? Slot4 : "label";
2142
- return /* @__PURE__ */ jsx20(
2612
+ return /* @__PURE__ */ jsx25(
2143
2613
  Comp,
2144
2614
  {
2145
2615
  "data-slot": "label",
@@ -2150,19 +2620,19 @@ function Label3({
2150
2620
  }
2151
2621
 
2152
2622
  // src/components/ui/form.tsx
2153
- import { jsx as jsx21 } from "react/jsx-runtime";
2623
+ import { jsx as jsx26 } from "react/jsx-runtime";
2154
2624
  var Form = FormProvider;
2155
- var FormFieldContext = React19.createContext(
2625
+ var FormFieldContext = React24.createContext(
2156
2626
  {}
2157
2627
  );
2158
2628
  var FormField = ({
2159
2629
  ...props
2160
2630
  }) => {
2161
- return /* @__PURE__ */ jsx21(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx21(Controller, { ...props }) });
2631
+ return /* @__PURE__ */ jsx26(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx26(Controller, { ...props }) });
2162
2632
  };
2163
2633
  var useFormField = () => {
2164
- const fieldContext = React19.useContext(FormFieldContext);
2165
- const itemContext = React19.useContext(FormItemContext);
2634
+ const fieldContext = React24.useContext(FormFieldContext);
2635
+ const itemContext = React24.useContext(FormItemContext);
2166
2636
  const { getFieldState } = useFormContext();
2167
2637
  const formState = useFormState({ name: fieldContext.name });
2168
2638
  const fieldState = getFieldState(fieldContext.name, formState);
@@ -2179,12 +2649,12 @@ var useFormField = () => {
2179
2649
  ...fieldState
2180
2650
  };
2181
2651
  };
2182
- var FormItemContext = React19.createContext(
2652
+ var FormItemContext = React24.createContext(
2183
2653
  {}
2184
2654
  );
2185
2655
  function FormItem({ className, ...props }) {
2186
- const id = React19.useId();
2187
- return /* @__PURE__ */ jsx21(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx21(
2656
+ const id = React24.useId();
2657
+ return /* @__PURE__ */ jsx26(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx26(
2188
2658
  "div",
2189
2659
  {
2190
2660
  "data-slot": "form-item",
@@ -2198,7 +2668,7 @@ function FormLabel({
2198
2668
  ...props
2199
2669
  }) {
2200
2670
  const { error, formItemId } = useFormField();
2201
- return /* @__PURE__ */ jsx21(
2671
+ return /* @__PURE__ */ jsx26(
2202
2672
  Label3,
2203
2673
  {
2204
2674
  "data-slot": "form-label",
@@ -2211,7 +2681,7 @@ function FormLabel({
2211
2681
  }
2212
2682
  function FormControl({ ...props }) {
2213
2683
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2214
- return /* @__PURE__ */ jsx21(
2684
+ return /* @__PURE__ */ jsx26(
2215
2685
  Slot5,
2216
2686
  {
2217
2687
  "data-slot": "form-control",
@@ -2224,7 +2694,7 @@ function FormControl({ ...props }) {
2224
2694
  }
2225
2695
  function FormDescription({ className, ...props }) {
2226
2696
  const { formDescriptionId } = useFormField();
2227
- return /* @__PURE__ */ jsx21(
2697
+ return /* @__PURE__ */ jsx26(
2228
2698
  "p",
2229
2699
  {
2230
2700
  "data-slot": "form-description",
@@ -2240,7 +2710,7 @@ function FormMessage({ className, ...props }) {
2240
2710
  if (!body) {
2241
2711
  return null;
2242
2712
  }
2243
- return /* @__PURE__ */ jsx21(
2713
+ return /* @__PURE__ */ jsx26(
2244
2714
  "p",
2245
2715
  {
2246
2716
  "data-slot": "form-message",
@@ -2255,16 +2725,16 @@ function FormMessage({ className, ...props }) {
2255
2725
  // src/components/ui/hover-card.tsx
2256
2726
  import "react";
2257
2727
  import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
2258
- import { jsx as jsx22 } from "react/jsx-runtime";
2728
+ import { jsx as jsx27 } from "react/jsx-runtime";
2259
2729
  function HoverCard({
2260
2730
  ...props
2261
2731
  }) {
2262
- return /* @__PURE__ */ jsx22(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
2732
+ return /* @__PURE__ */ jsx27(HoverCardPrimitive.Root, { "data-slot": "hover-card", ...props });
2263
2733
  }
2264
2734
  function HoverCardTrigger({
2265
2735
  ...props
2266
2736
  }) {
2267
- return /* @__PURE__ */ jsx22(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
2737
+ return /* @__PURE__ */ jsx27(HoverCardPrimitive.Trigger, { "data-slot": "hover-card-trigger", ...props });
2268
2738
  }
2269
2739
  function HoverCardContent({
2270
2740
  className,
@@ -2272,7 +2742,7 @@ function HoverCardContent({
2272
2742
  sideOffset = 4,
2273
2743
  ...props
2274
2744
  }) {
2275
- return /* @__PURE__ */ jsx22(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx22(
2745
+ return /* @__PURE__ */ jsx27(HoverCardPrimitive.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsx27(
2276
2746
  HoverCardPrimitive.Content,
2277
2747
  {
2278
2748
  "data-slot": "hover-card-content",
@@ -2287,149 +2757,17 @@ function HoverCardContent({
2287
2757
  ) });
2288
2758
  }
2289
2759
 
2290
- // src/components/ui/input.tsx
2291
- import { cva as cva5 } from "class-variance-authority";
2292
- import * as React21 from "react";
2293
- import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
2294
- var inputVariants = cva5(
2295
- [
2296
- // Base styles
2297
- "file:text-zinc-800 placeholder:text-gray-subtle selection:bg-primary selection:text-primary-foreground",
2298
- "flex w-full min-w-0 rounded-md border bg-transparent text-base transition-all duration-400",
2299
- "outline-none font-sans",
2300
- // File input styles
2301
- "file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium",
2302
- // Disabled styles
2303
- "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
2304
- // Responsive text size
2305
- "md:text-sm",
2306
- // Default state
2307
- "border-zinc-300 bg-background",
2308
- // Hover state
2309
- "hover:border-primary-stroke-default",
2310
- // Focus state
2311
- "focus:border-blue-500",
2312
- "active:border-brand-normal"
2313
- ],
2314
- {
2315
- variants: {
2316
- size: {
2317
- sm: "h-9 px-3 py-1 text-base",
2318
- md: "h-10 px-3 py-2 text-base",
2319
- lg: "h-12 px-4 py-3 text-base"
2320
- }
2321
- },
2322
- defaultVariants: {
2323
- size: "md"
2324
- }
2325
- }
2326
- );
2327
- var Input = React21.forwardRef(
2328
- ({
2329
- className,
2330
- type,
2331
- size,
2332
- leftIcon,
2333
- rightIcon,
2334
- leftIconClassName,
2335
- rightIconClassName,
2336
- rightIconOnClick,
2337
- rightIconButtonProps,
2338
- error,
2339
- ...props
2340
- }, ref) => {
2341
- const errorStyles2 = error ? [
2342
- "border-destructive bg-red-subtle",
2343
- "focus:border-destructive focus:ring-destructive/20",
2344
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
2345
- ] : [];
2346
- if (leftIcon || rightIcon) {
2347
- return /* @__PURE__ */ jsxs11("div", { className: "relative", children: [
2348
- /* @__PURE__ */ jsx23(
2349
- "input",
2350
- {
2351
- type,
2352
- "data-slot": "input",
2353
- className: cn(
2354
- inputVariants({ size }),
2355
- errorStyles2,
2356
- "peer",
2357
- leftIcon && "pl-8",
2358
- rightIcon && "pr-10",
2359
- className
2360
- ),
2361
- ref,
2362
- "aria-invalid": error,
2363
- ...props
2364
- }
2365
- ),
2366
- leftIcon && /* @__PURE__ */ jsx23(
2367
- "div",
2368
- {
2369
- className: cn(
2370
- "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 flex items-center justify-center",
2371
- "transition-colors stroke-[1.5px]",
2372
- error ? "text-destructive peer-hover:text-destructive peer-focus:text-destructive peer-active:text-destructive" : "text-muted-foreground peer-hover:text-brand-normal peer-focus:text-blue-500 peer-active:text-brand-normal",
2373
- leftIconClassName
2374
- ),
2375
- children: React21.isValidElement(leftIcon) ? (() => {
2376
- const iconEl = leftIcon;
2377
- return React21.cloneElement(iconEl, {
2378
- className: cn("h-4 w-4", iconEl.props.className)
2379
- });
2380
- })() : leftIcon
2381
- }
2382
- ),
2383
- rightIcon && /* @__PURE__ */ jsx23(
2384
- Button,
2385
- {
2386
- onClick: rightIconOnClick,
2387
- variant: "ghost",
2388
- size: "icon",
2389
- className: cn(
2390
- "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center",
2391
- "h-6 w-6 rounded-sm transition-colors",
2392
- error ? "text-destructive hover:text-destructive focus:text-destructive" : "text-muted-foreground hover:text-brand-normal focus:text-blue-500",
2393
- rightIconClassName
2394
- ),
2395
- "aria-label": "Input action",
2396
- ...rightIconButtonProps,
2397
- children: React21.isValidElement(rightIcon) ? (() => {
2398
- const iconEl = rightIcon;
2399
- return React21.cloneElement(iconEl, {
2400
- className: cn("h-4 w-4", iconEl.props.className)
2401
- });
2402
- })() : rightIcon
2403
- }
2404
- )
2405
- ] });
2406
- }
2407
- return /* @__PURE__ */ jsx23(
2408
- "input",
2409
- {
2410
- type,
2411
- "data-slot": "input",
2412
- className: cn(inputVariants({ size }), errorStyles2, className),
2413
- ref,
2414
- "aria-invalid": error,
2415
- ...props
2416
- }
2417
- );
2418
- }
2419
- );
2420
- Input.displayName = "Input";
2421
-
2422
2760
  // src/components/ui/input-otp.tsx
2423
- import * as React22 from "react";
2761
+ import * as React26 from "react";
2424
2762
  import { OTPInput, OTPInputContext } from "input-otp";
2425
2763
  import { MinusIcon } from "lucide-react";
2426
- import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
2764
+ import { jsx as jsx28, jsxs as jsxs13 } from "react/jsx-runtime";
2427
2765
  function InputOTP({
2428
2766
  className,
2429
2767
  containerClassName,
2430
2768
  ...props
2431
2769
  }) {
2432
- return /* @__PURE__ */ jsx24(
2770
+ return /* @__PURE__ */ jsx28(
2433
2771
  OTPInput,
2434
2772
  {
2435
2773
  "data-slot": "input-otp",
@@ -2443,7 +2781,7 @@ function InputOTP({
2443
2781
  );
2444
2782
  }
2445
2783
  function InputOTPGroup({ className, ...props }) {
2446
- return /* @__PURE__ */ jsx24(
2784
+ return /* @__PURE__ */ jsx28(
2447
2785
  "div",
2448
2786
  {
2449
2787
  "data-slot": "input-otp-group",
@@ -2457,9 +2795,9 @@ function InputOTPSlot({
2457
2795
  className,
2458
2796
  ...props
2459
2797
  }) {
2460
- const inputOTPContext = React22.useContext(OTPInputContext);
2798
+ const inputOTPContext = React26.useContext(OTPInputContext);
2461
2799
  const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
2462
- return /* @__PURE__ */ jsxs12(
2800
+ return /* @__PURE__ */ jsxs13(
2463
2801
  "div",
2464
2802
  {
2465
2803
  "data-slot": "input-otp-slot",
@@ -2471,25 +2809,25 @@ function InputOTPSlot({
2471
2809
  ...props,
2472
2810
  children: [
2473
2811
  char,
2474
- hasFakeCaret && /* @__PURE__ */ jsx24("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx24("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
2812
+ hasFakeCaret && /* @__PURE__ */ jsx28("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx28("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
2475
2813
  ]
2476
2814
  }
2477
2815
  );
2478
2816
  }
2479
2817
  function InputOTPSeparator({ ...props }) {
2480
- return /* @__PURE__ */ jsx24("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx24(MinusIcon, {}) });
2818
+ return /* @__PURE__ */ jsx28("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsx28(MinusIcon, {}) });
2481
2819
  }
2482
2820
 
2483
2821
  // src/components/ui/menubar.tsx
2484
2822
  import "react";
2485
2823
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
2486
2824
  import { CheckIcon as CheckIcon3, ChevronRightIcon as ChevronRightIcon4, CircleIcon as CircleIcon3 } from "lucide-react";
2487
- import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
2825
+ import { jsx as jsx29, jsxs as jsxs14 } from "react/jsx-runtime";
2488
2826
  function Menubar({
2489
2827
  className,
2490
2828
  ...props
2491
2829
  }) {
2492
- return /* @__PURE__ */ jsx25(
2830
+ return /* @__PURE__ */ jsx29(
2493
2831
  MenubarPrimitive.Root,
2494
2832
  {
2495
2833
  "data-slot": "menubar",
@@ -2504,28 +2842,28 @@ function Menubar({
2504
2842
  function MenubarMenu({
2505
2843
  ...props
2506
2844
  }) {
2507
- return /* @__PURE__ */ jsx25(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
2845
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
2508
2846
  }
2509
2847
  function MenubarGroup({
2510
2848
  ...props
2511
2849
  }) {
2512
- return /* @__PURE__ */ jsx25(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
2850
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
2513
2851
  }
2514
2852
  function MenubarPortal({
2515
2853
  ...props
2516
2854
  }) {
2517
- return /* @__PURE__ */ jsx25(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
2855
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
2518
2856
  }
2519
2857
  function MenubarRadioGroup({
2520
2858
  ...props
2521
2859
  }) {
2522
- return /* @__PURE__ */ jsx25(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
2860
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
2523
2861
  }
2524
2862
  function MenubarTrigger({
2525
2863
  className,
2526
2864
  ...props
2527
2865
  }) {
2528
- return /* @__PURE__ */ jsx25(
2866
+ return /* @__PURE__ */ jsx29(
2529
2867
  MenubarPrimitive.Trigger,
2530
2868
  {
2531
2869
  "data-slot": "menubar-trigger",
@@ -2544,7 +2882,7 @@ function MenubarContent({
2544
2882
  sideOffset = 8,
2545
2883
  ...props
2546
2884
  }) {
2547
- return /* @__PURE__ */ jsx25(MenubarPortal, { children: /* @__PURE__ */ jsx25(
2885
+ return /* @__PURE__ */ jsx29(MenubarPortal, { children: /* @__PURE__ */ jsx29(
2548
2886
  MenubarPrimitive.Content,
2549
2887
  {
2550
2888
  "data-slot": "menubar-content",
@@ -2565,7 +2903,7 @@ function MenubarItem({
2565
2903
  variant = "default",
2566
2904
  ...props
2567
2905
  }) {
2568
- return /* @__PURE__ */ jsx25(
2906
+ return /* @__PURE__ */ jsx29(
2569
2907
  MenubarPrimitive.Item,
2570
2908
  {
2571
2909
  "data-slot": "menubar-item",
@@ -2585,7 +2923,7 @@ function MenubarCheckboxItem({
2585
2923
  checked,
2586
2924
  ...props
2587
2925
  }) {
2588
- return /* @__PURE__ */ jsxs13(
2926
+ return /* @__PURE__ */ jsxs14(
2589
2927
  MenubarPrimitive.CheckboxItem,
2590
2928
  {
2591
2929
  "data-slot": "menubar-checkbox-item",
@@ -2596,7 +2934,7 @@ function MenubarCheckboxItem({
2596
2934
  checked,
2597
2935
  ...props,
2598
2936
  children: [
2599
- /* @__PURE__ */ jsx25("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CheckIcon3, { className: "size-4" }) }) }),
2937
+ /* @__PURE__ */ jsx29("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(CheckIcon3, { className: "size-4" }) }) }),
2600
2938
  children
2601
2939
  ]
2602
2940
  }
@@ -2607,7 +2945,7 @@ function MenubarRadioItem({
2607
2945
  children,
2608
2946
  ...props
2609
2947
  }) {
2610
- return /* @__PURE__ */ jsxs13(
2948
+ return /* @__PURE__ */ jsxs14(
2611
2949
  MenubarPrimitive.RadioItem,
2612
2950
  {
2613
2951
  "data-slot": "menubar-radio-item",
@@ -2617,7 +2955,7 @@ function MenubarRadioItem({
2617
2955
  ),
2618
2956
  ...props,
2619
2957
  children: [
2620
- /* @__PURE__ */ jsx25("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx25(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx25(CircleIcon3, { className: "size-2 fill-current" }) }) }),
2958
+ /* @__PURE__ */ jsx29("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx29(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx29(CircleIcon3, { className: "size-2 fill-current" }) }) }),
2621
2959
  children
2622
2960
  ]
2623
2961
  }
@@ -2628,7 +2966,7 @@ function MenubarLabel({
2628
2966
  inset,
2629
2967
  ...props
2630
2968
  }) {
2631
- return /* @__PURE__ */ jsx25(
2969
+ return /* @__PURE__ */ jsx29(
2632
2970
  MenubarPrimitive.Label,
2633
2971
  {
2634
2972
  "data-slot": "menubar-label",
@@ -2645,7 +2983,7 @@ function MenubarSeparator({
2645
2983
  className,
2646
2984
  ...props
2647
2985
  }) {
2648
- return /* @__PURE__ */ jsx25(
2986
+ return /* @__PURE__ */ jsx29(
2649
2987
  MenubarPrimitive.Separator,
2650
2988
  {
2651
2989
  "data-slot": "menubar-separator",
@@ -2658,7 +2996,7 @@ function MenubarShortcut({
2658
2996
  className,
2659
2997
  ...props
2660
2998
  }) {
2661
- return /* @__PURE__ */ jsx25(
2999
+ return /* @__PURE__ */ jsx29(
2662
3000
  "span",
2663
3001
  {
2664
3002
  "data-slot": "menubar-shortcut",
@@ -2673,7 +3011,7 @@ function MenubarShortcut({
2673
3011
  function MenubarSub({
2674
3012
  ...props
2675
3013
  }) {
2676
- return /* @__PURE__ */ jsx25(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
3014
+ return /* @__PURE__ */ jsx29(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
2677
3015
  }
2678
3016
  function MenubarSubTrigger({
2679
3017
  className,
@@ -2681,7 +3019,7 @@ function MenubarSubTrigger({
2681
3019
  children,
2682
3020
  ...props
2683
3021
  }) {
2684
- return /* @__PURE__ */ jsxs13(
3022
+ return /* @__PURE__ */ jsxs14(
2685
3023
  MenubarPrimitive.SubTrigger,
2686
3024
  {
2687
3025
  "data-slot": "menubar-sub-trigger",
@@ -2693,7 +3031,7 @@ function MenubarSubTrigger({
2693
3031
  ...props,
2694
3032
  children: [
2695
3033
  children,
2696
- /* @__PURE__ */ jsx25(ChevronRightIcon4, { className: "ml-auto h-4 w-4" })
3034
+ /* @__PURE__ */ jsx29(ChevronRightIcon4, { className: "ml-auto h-4 w-4" })
2697
3035
  ]
2698
3036
  }
2699
3037
  );
@@ -2702,7 +3040,7 @@ function MenubarSubContent({
2702
3040
  className,
2703
3041
  ...props
2704
3042
  }) {
2705
- return /* @__PURE__ */ jsx25(
3043
+ return /* @__PURE__ */ jsx29(
2706
3044
  MenubarPrimitive.SubContent,
2707
3045
  {
2708
3046
  "data-slot": "menubar-sub-content",
@@ -2720,14 +3058,14 @@ import "react";
2720
3058
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
2721
3059
  import { cva as cva6 } from "class-variance-authority";
2722
3060
  import { ChevronDownIcon as ChevronDownIcon3 } from "lucide-react";
2723
- import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
3061
+ import { jsx as jsx30, jsxs as jsxs15 } from "react/jsx-runtime";
2724
3062
  function NavigationMenu({
2725
3063
  className,
2726
3064
  children,
2727
3065
  viewport = true,
2728
3066
  ...props
2729
3067
  }) {
2730
- return /* @__PURE__ */ jsxs14(
3068
+ return /* @__PURE__ */ jsxs15(
2731
3069
  NavigationMenuPrimitive.Root,
2732
3070
  {
2733
3071
  "data-slot": "navigation-menu",
@@ -2739,7 +3077,7 @@ function NavigationMenu({
2739
3077
  ...props,
2740
3078
  children: [
2741
3079
  children,
2742
- viewport && /* @__PURE__ */ jsx26(NavigationMenuViewport, {})
3080
+ viewport && /* @__PURE__ */ jsx30(NavigationMenuViewport, {})
2743
3081
  ]
2744
3082
  }
2745
3083
  );
@@ -2748,7 +3086,7 @@ function NavigationMenuList({
2748
3086
  className,
2749
3087
  ...props
2750
3088
  }) {
2751
- return /* @__PURE__ */ jsx26(
3089
+ return /* @__PURE__ */ jsx30(
2752
3090
  NavigationMenuPrimitive.List,
2753
3091
  {
2754
3092
  "data-slot": "navigation-menu-list",
@@ -2764,7 +3102,7 @@ function NavigationMenuItem({
2764
3102
  className,
2765
3103
  ...props
2766
3104
  }) {
2767
- return /* @__PURE__ */ jsx26(
3105
+ return /* @__PURE__ */ jsx30(
2768
3106
  NavigationMenuPrimitive.Item,
2769
3107
  {
2770
3108
  "data-slot": "navigation-menu-item",
@@ -2781,7 +3119,7 @@ function NavigationMenuTrigger({
2781
3119
  children,
2782
3120
  ...props
2783
3121
  }) {
2784
- return /* @__PURE__ */ jsxs14(
3122
+ return /* @__PURE__ */ jsxs15(
2785
3123
  NavigationMenuPrimitive.Trigger,
2786
3124
  {
2787
3125
  "data-slot": "navigation-menu-trigger",
@@ -2790,7 +3128,7 @@ function NavigationMenuTrigger({
2790
3128
  children: [
2791
3129
  children,
2792
3130
  " ",
2793
- /* @__PURE__ */ jsx26(
3131
+ /* @__PURE__ */ jsx30(
2794
3132
  ChevronDownIcon3,
2795
3133
  {
2796
3134
  className: "relative top-[1px] ml-1 size-3 transition duration-400 group-data-[state=open]:rotate-180",
@@ -2805,7 +3143,7 @@ function NavigationMenuContent({
2805
3143
  className,
2806
3144
  ...props
2807
3145
  }) {
2808
- return /* @__PURE__ */ jsx26(
3146
+ return /* @__PURE__ */ jsx30(
2809
3147
  NavigationMenuPrimitive.Content,
2810
3148
  {
2811
3149
  "data-slot": "navigation-menu-content",
@@ -2822,13 +3160,13 @@ function NavigationMenuViewport({
2822
3160
  className,
2823
3161
  ...props
2824
3162
  }) {
2825
- return /* @__PURE__ */ jsx26(
3163
+ return /* @__PURE__ */ jsx30(
2826
3164
  "div",
2827
3165
  {
2828
3166
  className: cn(
2829
3167
  "absolute top-full left-0 isolate z-50 flex justify-center"
2830
3168
  ),
2831
- children: /* @__PURE__ */ jsx26(
3169
+ children: /* @__PURE__ */ jsx30(
2832
3170
  NavigationMenuPrimitive.Viewport,
2833
3171
  {
2834
3172
  "data-slot": "navigation-menu-viewport",
@@ -2846,7 +3184,7 @@ function NavigationMenuLink({
2846
3184
  className,
2847
3185
  ...props
2848
3186
  }) {
2849
- return /* @__PURE__ */ jsx26(
3187
+ return /* @__PURE__ */ jsx30(
2850
3188
  NavigationMenuPrimitive.Link,
2851
3189
  {
2852
3190
  "data-slot": "navigation-menu-link",
@@ -2862,7 +3200,7 @@ function NavigationMenuIndicator({
2862
3200
  className,
2863
3201
  ...props
2864
3202
  }) {
2865
- return /* @__PURE__ */ jsx26(
3203
+ return /* @__PURE__ */ jsx30(
2866
3204
  NavigationMenuPrimitive.Indicator,
2867
3205
  {
2868
3206
  "data-slot": "navigation-menu-indicator",
@@ -2871,7 +3209,7 @@ function NavigationMenuIndicator({
2871
3209
  className
2872
3210
  ),
2873
3211
  ...props,
2874
- children: /* @__PURE__ */ jsx26("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
3212
+ children: /* @__PURE__ */ jsx30("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
2875
3213
  }
2876
3214
  );
2877
3215
  }
@@ -2883,9 +3221,9 @@ import {
2883
3221
  ChevronRightIcon as ChevronRightIcon5,
2884
3222
  MoreHorizontalIcon
2885
3223
  } from "lucide-react";
2886
- import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
3224
+ import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
2887
3225
  function Pagination({ className, ...props }) {
2888
- return /* @__PURE__ */ jsx27(
3226
+ return /* @__PURE__ */ jsx31(
2889
3227
  "nav",
2890
3228
  {
2891
3229
  role: "navigation",
@@ -2900,7 +3238,7 @@ function PaginationContent({
2900
3238
  className,
2901
3239
  ...props
2902
3240
  }) {
2903
- return /* @__PURE__ */ jsx27(
3241
+ return /* @__PURE__ */ jsx31(
2904
3242
  "ul",
2905
3243
  {
2906
3244
  "data-slot": "pagination-content",
@@ -2910,7 +3248,7 @@ function PaginationContent({
2910
3248
  );
2911
3249
  }
2912
3250
  function PaginationItem({ ...props }) {
2913
- return /* @__PURE__ */ jsx27("li", { "data-slot": "pagination-item", ...props });
3251
+ return /* @__PURE__ */ jsx31("li", { "data-slot": "pagination-item", ...props });
2914
3252
  }
2915
3253
  function PaginationLink({
2916
3254
  className,
@@ -2918,7 +3256,7 @@ function PaginationLink({
2918
3256
  size = "icon",
2919
3257
  ...props
2920
3258
  }) {
2921
- return /* @__PURE__ */ jsx27(
3259
+ return /* @__PURE__ */ jsx31(
2922
3260
  "a",
2923
3261
  {
2924
3262
  "aria-current": isActive ? "page" : void 0,
@@ -2939,7 +3277,7 @@ function PaginationPrevious({
2939
3277
  className,
2940
3278
  ...props
2941
3279
  }) {
2942
- return /* @__PURE__ */ jsxs15(
3280
+ return /* @__PURE__ */ jsxs16(
2943
3281
  PaginationLink,
2944
3282
  {
2945
3283
  "aria-label": "Go to previous page",
@@ -2947,8 +3285,8 @@ function PaginationPrevious({
2947
3285
  className: cn("gap-1 px-2.5 sm:pl-2.5", className),
2948
3286
  ...props,
2949
3287
  children: [
2950
- /* @__PURE__ */ jsx27(ChevronLeftIcon2, {}),
2951
- /* @__PURE__ */ jsx27("span", { className: "hidden sm:block", children: "Previous" })
3288
+ /* @__PURE__ */ jsx31(ChevronLeftIcon2, {}),
3289
+ /* @__PURE__ */ jsx31("span", { className: "hidden sm:block", children: "Previous" })
2952
3290
  ]
2953
3291
  }
2954
3292
  );
@@ -2957,7 +3295,7 @@ function PaginationNext({
2957
3295
  className,
2958
3296
  ...props
2959
3297
  }) {
2960
- return /* @__PURE__ */ jsxs15(
3298
+ return /* @__PURE__ */ jsxs16(
2961
3299
  PaginationLink,
2962
3300
  {
2963
3301
  "aria-label": "Go to next page",
@@ -2965,8 +3303,8 @@ function PaginationNext({
2965
3303
  className: cn("gap-1 px-2.5 sm:pr-2.5", className),
2966
3304
  ...props,
2967
3305
  children: [
2968
- /* @__PURE__ */ jsx27("span", { className: "hidden sm:block", children: "Next" }),
2969
- /* @__PURE__ */ jsx27(ChevronRightIcon5, {})
3306
+ /* @__PURE__ */ jsx31("span", { className: "hidden sm:block", children: "Next" }),
3307
+ /* @__PURE__ */ jsx31(ChevronRightIcon5, {})
2970
3308
  ]
2971
3309
  }
2972
3310
  );
@@ -2975,7 +3313,7 @@ function PaginationEllipsis({
2975
3313
  className,
2976
3314
  ...props
2977
3315
  }) {
2978
- return /* @__PURE__ */ jsxs15(
3316
+ return /* @__PURE__ */ jsxs16(
2979
3317
  "span",
2980
3318
  {
2981
3319
  "aria-hidden": true,
@@ -2983,63 +3321,23 @@ function PaginationEllipsis({
2983
3321
  className: cn("flex size-9 items-center justify-center", className),
2984
3322
  ...props,
2985
3323
  children: [
2986
- /* @__PURE__ */ jsx27(MoreHorizontalIcon, { className: "size-4" }),
2987
- /* @__PURE__ */ jsx27("span", { className: "sr-only", children: "More pages" })
3324
+ /* @__PURE__ */ jsx31(MoreHorizontalIcon, { className: "size-4" }),
3325
+ /* @__PURE__ */ jsx31("span", { className: "sr-only", children: "More pages" })
2988
3326
  ]
2989
3327
  }
2990
3328
  );
2991
3329
  }
2992
3330
 
2993
- // src/components/ui/popover.tsx
2994
- import "react";
2995
- import * as PopoverPrimitive from "@radix-ui/react-popover";
2996
- import { jsx as jsx28 } from "react/jsx-runtime";
2997
- function Popover({
2998
- ...props
2999
- }) {
3000
- return /* @__PURE__ */ jsx28(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
3001
- }
3002
- function PopoverTrigger({
3003
- ...props
3004
- }) {
3005
- return /* @__PURE__ */ jsx28(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
3006
- }
3007
- function PopoverContent({
3008
- className,
3009
- align = "center",
3010
- sideOffset = 4,
3011
- ...props
3012
- }) {
3013
- return /* @__PURE__ */ jsx28(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx28(
3014
- PopoverPrimitive.Content,
3015
- {
3016
- "data-slot": "popover-content",
3017
- align,
3018
- sideOffset,
3019
- className: cn(
3020
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
3021
- className
3022
- ),
3023
- ...props
3024
- }
3025
- ) });
3026
- }
3027
- function PopoverAnchor({
3028
- ...props
3029
- }) {
3030
- return /* @__PURE__ */ jsx28(PopoverPrimitive.Anchor, { "data-slot": "popover-anchor", ...props });
3031
- }
3032
-
3033
3331
  // src/components/ui/progress.tsx
3034
3332
  import * as ProgressPrimitive from "@radix-ui/react-progress";
3035
3333
  import "react";
3036
- import { jsx as jsx29 } from "react/jsx-runtime";
3334
+ import { jsx as jsx32 } from "react/jsx-runtime";
3037
3335
  function Progress({
3038
3336
  className,
3039
3337
  value,
3040
3338
  ...props
3041
3339
  }) {
3042
- return /* @__PURE__ */ jsx29(
3340
+ return /* @__PURE__ */ jsx32(
3043
3341
  ProgressPrimitive.Root,
3044
3342
  {
3045
3343
  "data-slot": "progress",
@@ -3048,7 +3346,7 @@ function Progress({
3048
3346
  className
3049
3347
  ),
3050
3348
  ...props,
3051
- children: /* @__PURE__ */ jsx29(
3349
+ children: /* @__PURE__ */ jsx32(
3052
3350
  ProgressPrimitive.Indicator,
3053
3351
  {
3054
3352
  "data-slot": "progress-indicator",
@@ -3064,12 +3362,12 @@ function Progress({
3064
3362
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3065
3363
  import { CircleIcon as CircleIcon4 } from "lucide-react";
3066
3364
  import "react";
3067
- import { jsx as jsx30 } from "react/jsx-runtime";
3365
+ import { jsx as jsx33 } from "react/jsx-runtime";
3068
3366
  function RadioGroup4({
3069
3367
  className,
3070
3368
  ...props
3071
3369
  }) {
3072
- return /* @__PURE__ */ jsx30(
3370
+ return /* @__PURE__ */ jsx33(
3073
3371
  RadioGroupPrimitive.Root,
3074
3372
  {
3075
3373
  "data-slot": "radio-group",
@@ -3082,7 +3380,7 @@ function RadioGroupItem({
3082
3380
  className,
3083
3381
  ...props
3084
3382
  }) {
3085
- return /* @__PURE__ */ jsx30(
3383
+ return /* @__PURE__ */ jsx33(
3086
3384
  RadioGroupPrimitive.Item,
3087
3385
  {
3088
3386
  "data-slot": "radio-group-item",
@@ -3091,12 +3389,12 @@ function RadioGroupItem({
3091
3389
  className
3092
3390
  ),
3093
3391
  ...props,
3094
- children: /* @__PURE__ */ jsx30(
3392
+ children: /* @__PURE__ */ jsx33(
3095
3393
  RadioGroupPrimitive.Indicator,
3096
3394
  {
3097
3395
  "data-slot": "radio-group-indicator",
3098
3396
  className: "relative flex items-center justify-center",
3099
- children: /* @__PURE__ */ jsx30(CircleIcon4, { className: "fill-white absolute top-1/2 left-1/2 size-1.5 -translate-x-1/2 -translate-y-1/2" })
3397
+ children: /* @__PURE__ */ jsx33(CircleIcon4, { className: "fill-white absolute top-1/2 left-1/2 size-1.5 -translate-x-1/2 -translate-y-1/2" })
3100
3398
  }
3101
3399
  )
3102
3400
  }
@@ -3107,12 +3405,12 @@ function RadioGroupItem({
3107
3405
  import "react";
3108
3406
  import { GripVerticalIcon } from "lucide-react";
3109
3407
  import * as ResizablePrimitive from "react-resizable-panels";
3110
- import { jsx as jsx31 } from "react/jsx-runtime";
3408
+ import { jsx as jsx34 } from "react/jsx-runtime";
3111
3409
  function ResizablePanelGroup({
3112
3410
  className,
3113
3411
  ...props
3114
3412
  }) {
3115
- return /* @__PURE__ */ jsx31(
3413
+ return /* @__PURE__ */ jsx34(
3116
3414
  ResizablePrimitive.PanelGroup,
3117
3415
  {
3118
3416
  "data-slot": "resizable-panel-group",
@@ -3127,14 +3425,14 @@ function ResizablePanelGroup({
3127
3425
  function ResizablePanel({
3128
3426
  ...props
3129
3427
  }) {
3130
- return /* @__PURE__ */ jsx31(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
3428
+ return /* @__PURE__ */ jsx34(ResizablePrimitive.Panel, { "data-slot": "resizable-panel", ...props });
3131
3429
  }
3132
3430
  function ResizableHandle({
3133
3431
  withHandle,
3134
3432
  className,
3135
3433
  ...props
3136
3434
  }) {
3137
- return /* @__PURE__ */ jsx31(
3435
+ return /* @__PURE__ */ jsx34(
3138
3436
  ResizablePrimitive.PanelResizeHandle,
3139
3437
  {
3140
3438
  "data-slot": "resizable-handle",
@@ -3143,7 +3441,7 @@ function ResizableHandle({
3143
3441
  className
3144
3442
  ),
3145
3443
  ...props,
3146
- children: withHandle && /* @__PURE__ */ jsx31("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsx31(GripVerticalIcon, { className: "size-2.5" }) })
3444
+ children: withHandle && /* @__PURE__ */ jsx34("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsx34(GripVerticalIcon, { className: "size-2.5" }) })
3147
3445
  }
3148
3446
  );
3149
3447
  }
@@ -3151,20 +3449,20 @@ function ResizableHandle({
3151
3449
  // src/components/ui/scroll-area.tsx
3152
3450
  import "react";
3153
3451
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3154
- import { jsx as jsx32, jsxs as jsxs16 } from "react/jsx-runtime";
3452
+ import { jsx as jsx35, jsxs as jsxs17 } from "react/jsx-runtime";
3155
3453
  function ScrollArea({
3156
3454
  className,
3157
3455
  children,
3158
3456
  ...props
3159
3457
  }) {
3160
- return /* @__PURE__ */ jsxs16(
3458
+ return /* @__PURE__ */ jsxs17(
3161
3459
  ScrollAreaPrimitive.Root,
3162
3460
  {
3163
3461
  "data-slot": "scroll-area",
3164
3462
  className: cn("relative", className),
3165
3463
  ...props,
3166
3464
  children: [
3167
- /* @__PURE__ */ jsx32(
3465
+ /* @__PURE__ */ jsx35(
3168
3466
  ScrollAreaPrimitive.Viewport,
3169
3467
  {
3170
3468
  "data-slot": "scroll-area-viewport",
@@ -3172,8 +3470,8 @@ function ScrollArea({
3172
3470
  children
3173
3471
  }
3174
3472
  ),
3175
- /* @__PURE__ */ jsx32(ScrollBar, {}),
3176
- /* @__PURE__ */ jsx32(ScrollAreaPrimitive.Corner, {})
3473
+ /* @__PURE__ */ jsx35(ScrollBar, {}),
3474
+ /* @__PURE__ */ jsx35(ScrollAreaPrimitive.Corner, {})
3177
3475
  ]
3178
3476
  }
3179
3477
  );
@@ -3183,7 +3481,7 @@ function ScrollBar({
3183
3481
  orientation = "vertical",
3184
3482
  ...props
3185
3483
  }) {
3186
- return /* @__PURE__ */ jsx32(
3484
+ return /* @__PURE__ */ jsx35(
3187
3485
  ScrollAreaPrimitive.ScrollAreaScrollbar,
3188
3486
  {
3189
3487
  "data-slot": "scroll-area-scrollbar",
@@ -3195,7 +3493,7 @@ function ScrollBar({
3195
3493
  className
3196
3494
  ),
3197
3495
  ...props,
3198
- children: /* @__PURE__ */ jsx32(
3496
+ children: /* @__PURE__ */ jsx35(
3199
3497
  ScrollAreaPrimitive.ScrollAreaThumb,
3200
3498
  {
3201
3499
  "data-slot": "scroll-area-thumb",
@@ -3210,21 +3508,21 @@ function ScrollBar({
3210
3508
  import "react";
3211
3509
  import * as SelectPrimitive from "@radix-ui/react-select";
3212
3510
  import { CheckIcon as CheckIcon4, ChevronDownIcon as ChevronDownIcon4, ChevronUpIcon } from "lucide-react";
3213
- import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
3511
+ import { jsx as jsx36, jsxs as jsxs18 } from "react/jsx-runtime";
3214
3512
  function Select({
3215
3513
  ...props
3216
3514
  }) {
3217
- return /* @__PURE__ */ jsx33(SelectPrimitive.Root, { "data-slot": "select", ...props });
3515
+ return /* @__PURE__ */ jsx36(SelectPrimitive.Root, { "data-slot": "select", ...props });
3218
3516
  }
3219
3517
  function SelectGroup({
3220
3518
  ...props
3221
3519
  }) {
3222
- return /* @__PURE__ */ jsx33(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
3520
+ return /* @__PURE__ */ jsx36(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
3223
3521
  }
3224
3522
  function SelectValue({
3225
3523
  ...props
3226
3524
  }) {
3227
- return /* @__PURE__ */ jsx33(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
3525
+ return /* @__PURE__ */ jsx36(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
3228
3526
  }
3229
3527
  function SelectTrigger({
3230
3528
  className,
@@ -3232,7 +3530,7 @@ function SelectTrigger({
3232
3530
  children,
3233
3531
  ...props
3234
3532
  }) {
3235
- return /* @__PURE__ */ jsxs17(
3533
+ return /* @__PURE__ */ jsxs18(
3236
3534
  SelectPrimitive.Trigger,
3237
3535
  {
3238
3536
  "data-slot": "select-trigger",
@@ -3244,7 +3542,7 @@ function SelectTrigger({
3244
3542
  ...props,
3245
3543
  children: [
3246
3544
  children,
3247
- /* @__PURE__ */ jsx33(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx33(ChevronDownIcon4, { className: "size-4 opacity-50" }) })
3545
+ /* @__PURE__ */ jsx36(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx36(ChevronDownIcon4, { className: "size-4 opacity-50" }) })
3248
3546
  ]
3249
3547
  }
3250
3548
  );
@@ -3255,7 +3553,7 @@ function SelectContent({
3255
3553
  position = "popper",
3256
3554
  ...props
3257
3555
  }) {
3258
- return /* @__PURE__ */ jsx33(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs17(
3556
+ return /* @__PURE__ */ jsx36(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs18(
3259
3557
  SelectPrimitive.Content,
3260
3558
  {
3261
3559
  "data-slot": "select-content",
@@ -3267,8 +3565,8 @@ function SelectContent({
3267
3565
  position,
3268
3566
  ...props,
3269
3567
  children: [
3270
- /* @__PURE__ */ jsx33(SelectScrollUpButton, {}),
3271
- /* @__PURE__ */ jsx33(
3568
+ /* @__PURE__ */ jsx36(SelectScrollUpButton, {}),
3569
+ /* @__PURE__ */ jsx36(
3272
3570
  SelectPrimitive.Viewport,
3273
3571
  {
3274
3572
  className: cn(
@@ -3278,7 +3576,7 @@ function SelectContent({
3278
3576
  children
3279
3577
  }
3280
3578
  ),
3281
- /* @__PURE__ */ jsx33(SelectScrollDownButton, {})
3579
+ /* @__PURE__ */ jsx36(SelectScrollDownButton, {})
3282
3580
  ]
3283
3581
  }
3284
3582
  ) });
@@ -3287,7 +3585,7 @@ function SelectLabel({
3287
3585
  className,
3288
3586
  ...props
3289
3587
  }) {
3290
- return /* @__PURE__ */ jsx33(
3588
+ return /* @__PURE__ */ jsx36(
3291
3589
  SelectPrimitive.Label,
3292
3590
  {
3293
3591
  "data-slot": "select-label",
@@ -3301,7 +3599,7 @@ function SelectItem({
3301
3599
  children,
3302
3600
  ...props
3303
3601
  }) {
3304
- return /* @__PURE__ */ jsxs17(
3602
+ return /* @__PURE__ */ jsxs18(
3305
3603
  SelectPrimitive.Item,
3306
3604
  {
3307
3605
  "data-slot": "select-item",
@@ -3311,8 +3609,8 @@ function SelectItem({
3311
3609
  ),
3312
3610
  ...props,
3313
3611
  children: [
3314
- /* @__PURE__ */ jsx33("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx33(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx33(CheckIcon4, { className: "size-4" }) }) }),
3315
- /* @__PURE__ */ jsx33(SelectPrimitive.ItemText, { children })
3612
+ /* @__PURE__ */ jsx36("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx36(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx36(CheckIcon4, { className: "size-4" }) }) }),
3613
+ /* @__PURE__ */ jsx36(SelectPrimitive.ItemText, { children })
3316
3614
  ]
3317
3615
  }
3318
3616
  );
@@ -3321,7 +3619,7 @@ function SelectSeparator({
3321
3619
  className,
3322
3620
  ...props
3323
3621
  }) {
3324
- return /* @__PURE__ */ jsx33(
3622
+ return /* @__PURE__ */ jsx36(
3325
3623
  SelectPrimitive.Separator,
3326
3624
  {
3327
3625
  "data-slot": "select-separator",
@@ -3334,7 +3632,7 @@ function SelectScrollUpButton({
3334
3632
  className,
3335
3633
  ...props
3336
3634
  }) {
3337
- return /* @__PURE__ */ jsx33(
3635
+ return /* @__PURE__ */ jsx36(
3338
3636
  SelectPrimitive.ScrollUpButton,
3339
3637
  {
3340
3638
  "data-slot": "select-scroll-up-button",
@@ -3343,7 +3641,7 @@ function SelectScrollUpButton({
3343
3641
  className
3344
3642
  ),
3345
3643
  ...props,
3346
- children: /* @__PURE__ */ jsx33(ChevronUpIcon, { className: "size-4" })
3644
+ children: /* @__PURE__ */ jsx36(ChevronUpIcon, { className: "size-4" })
3347
3645
  }
3348
3646
  );
3349
3647
  }
@@ -3351,7 +3649,7 @@ function SelectScrollDownButton({
3351
3649
  className,
3352
3650
  ...props
3353
3651
  }) {
3354
- return /* @__PURE__ */ jsx33(
3652
+ return /* @__PURE__ */ jsx36(
3355
3653
  SelectPrimitive.ScrollDownButton,
3356
3654
  {
3357
3655
  "data-slot": "select-scroll-down-button",
@@ -3360,7 +3658,7 @@ function SelectScrollDownButton({
3360
3658
  className
3361
3659
  ),
3362
3660
  ...props,
3363
- children: /* @__PURE__ */ jsx33(ChevronDownIcon4, { className: "size-4" })
3661
+ children: /* @__PURE__ */ jsx36(ChevronDownIcon4, { className: "size-4" })
3364
3662
  }
3365
3663
  );
3366
3664
  }
@@ -3368,14 +3666,14 @@ function SelectScrollDownButton({
3368
3666
  // src/components/ui/separator.tsx
3369
3667
  import "react";
3370
3668
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
3371
- import { jsx as jsx34 } from "react/jsx-runtime";
3669
+ import { jsx as jsx37 } from "react/jsx-runtime";
3372
3670
  function Separator5({
3373
3671
  className,
3374
3672
  orientation = "horizontal",
3375
3673
  decorative = true,
3376
3674
  ...props
3377
3675
  }) {
3378
- return /* @__PURE__ */ jsx34(
3676
+ return /* @__PURE__ */ jsx37(
3379
3677
  SeparatorPrimitive.Root,
3380
3678
  {
3381
3679
  "data-slot": "separator",
@@ -3394,30 +3692,30 @@ function Separator5({
3394
3692
  import * as SheetPrimitive from "@radix-ui/react-dialog";
3395
3693
  import { XIcon as XIcon2 } from "lucide-react";
3396
3694
  import "react";
3397
- import { jsx as jsx35, jsxs as jsxs18 } from "react/jsx-runtime";
3695
+ import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
3398
3696
  function Sheet({ ...props }) {
3399
- return /* @__PURE__ */ jsx35(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
3697
+ return /* @__PURE__ */ jsx38(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
3400
3698
  }
3401
3699
  function SheetTrigger({
3402
3700
  ...props
3403
3701
  }) {
3404
- return /* @__PURE__ */ jsx35(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
3702
+ return /* @__PURE__ */ jsx38(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
3405
3703
  }
3406
3704
  function SheetClose({
3407
3705
  ...props
3408
3706
  }) {
3409
- return /* @__PURE__ */ jsx35(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
3707
+ return /* @__PURE__ */ jsx38(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
3410
3708
  }
3411
3709
  function SheetPortal({
3412
3710
  ...props
3413
3711
  }) {
3414
- return /* @__PURE__ */ jsx35(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
3712
+ return /* @__PURE__ */ jsx38(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
3415
3713
  }
3416
3714
  function SheetOverlay({
3417
3715
  className,
3418
3716
  ...props
3419
3717
  }) {
3420
- return /* @__PURE__ */ jsx35(
3718
+ return /* @__PURE__ */ jsx38(
3421
3719
  SheetPrimitive.Overlay,
3422
3720
  {
3423
3721
  "data-slot": "sheet-overlay",
@@ -3436,9 +3734,9 @@ function SheetContent({
3436
3734
  showCloseButton = true,
3437
3735
  ...props
3438
3736
  }) {
3439
- return /* @__PURE__ */ jsxs18(SheetPortal, { children: [
3440
- /* @__PURE__ */ jsx35(SheetOverlay, {}),
3441
- /* @__PURE__ */ jsxs18(
3737
+ return /* @__PURE__ */ jsxs19(SheetPortal, { children: [
3738
+ /* @__PURE__ */ jsx38(SheetOverlay, {}),
3739
+ /* @__PURE__ */ jsxs19(
3442
3740
  SheetPrimitive.Content,
3443
3741
  {
3444
3742
  "data-slot": "sheet-content",
@@ -3453,9 +3751,9 @@ function SheetContent({
3453
3751
  ...props,
3454
3752
  children: [
3455
3753
  children,
3456
- showCloseButton && /* @__PURE__ */ jsxs18(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
3457
- /* @__PURE__ */ jsx35(XIcon2, { className: "size-4" }),
3458
- /* @__PURE__ */ jsx35("span", { className: "sr-only", children: "Close" })
3754
+ showCloseButton && /* @__PURE__ */ jsxs19(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
3755
+ /* @__PURE__ */ jsx38(XIcon2, { className: "size-4" }),
3756
+ /* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Close" })
3459
3757
  ] })
3460
3758
  ]
3461
3759
  }
@@ -3463,7 +3761,7 @@ function SheetContent({
3463
3761
  ] });
3464
3762
  }
3465
3763
  function SheetHeader({ className, ...props }) {
3466
- return /* @__PURE__ */ jsx35(
3764
+ return /* @__PURE__ */ jsx38(
3467
3765
  "div",
3468
3766
  {
3469
3767
  "data-slot": "sheet-header",
@@ -3473,7 +3771,7 @@ function SheetHeader({ className, ...props }) {
3473
3771
  );
3474
3772
  }
3475
3773
  function SheetFooter({ className, ...props }) {
3476
- return /* @__PURE__ */ jsx35(
3774
+ return /* @__PURE__ */ jsx38(
3477
3775
  "div",
3478
3776
  {
3479
3777
  "data-slot": "sheet-footer",
@@ -3486,7 +3784,7 @@ function SheetTitle({
3486
3784
  className,
3487
3785
  ...props
3488
3786
  }) {
3489
- return /* @__PURE__ */ jsx35(
3787
+ return /* @__PURE__ */ jsx38(
3490
3788
  SheetPrimitive.Title,
3491
3789
  {
3492
3790
  "data-slot": "sheet-title",
@@ -3499,7 +3797,7 @@ function SheetDescription({
3499
3797
  className,
3500
3798
  ...props
3501
3799
  }) {
3502
- return /* @__PURE__ */ jsx35(
3800
+ return /* @__PURE__ */ jsx38(
3503
3801
  SheetPrimitive.Description,
3504
3802
  {
3505
3803
  "data-slot": "sheet-description",
@@ -3510,32 +3808,15 @@ function SheetDescription({
3510
3808
  }
3511
3809
 
3512
3810
  // src/components/ui/sidebar.tsx
3513
- import * as React36 from "react";
3514
3811
  import { Slot as Slot6 } from "@radix-ui/react-slot";
3515
3812
  import { cva as cva7 } from "class-variance-authority";
3516
3813
  import { PanelLeftIcon } from "lucide-react";
3517
-
3518
- // src/hooks/use-mobile.ts
3519
- import * as React34 from "react";
3520
- var MOBILE_BREAKPOINT = 768;
3521
- function useIsMobile() {
3522
- const [isMobile, setIsMobile] = React34.useState(void 0);
3523
- React34.useEffect(() => {
3524
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
3525
- const onChange = () => {
3526
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3527
- };
3528
- mql.addEventListener("change", onChange);
3529
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3530
- return () => mql.removeEventListener("change", onChange);
3531
- }, []);
3532
- return !!isMobile;
3533
- }
3814
+ import * as React39 from "react";
3534
3815
 
3535
3816
  // src/components/ui/skeleton.tsx
3536
- import { jsx as jsx36 } from "react/jsx-runtime";
3817
+ import { jsx as jsx39 } from "react/jsx-runtime";
3537
3818
  function Skeleton({ className, ...props }) {
3538
- return /* @__PURE__ */ jsx36(
3819
+ return /* @__PURE__ */ jsx39(
3539
3820
  "div",
3540
3821
  {
3541
3822
  "data-slot": "skeleton",
@@ -3548,12 +3829,12 @@ function Skeleton({ className, ...props }) {
3548
3829
  // src/components/ui/tooltip.tsx
3549
3830
  import "react";
3550
3831
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3551
- import { jsx as jsx37, jsxs as jsxs19 } from "react/jsx-runtime";
3832
+ import { jsx as jsx40, jsxs as jsxs20 } from "react/jsx-runtime";
3552
3833
  function TooltipProvider({
3553
3834
  delayDuration = 0,
3554
3835
  ...props
3555
3836
  }) {
3556
- return /* @__PURE__ */ jsx37(
3837
+ return /* @__PURE__ */ jsx40(
3557
3838
  TooltipPrimitive.Provider,
3558
3839
  {
3559
3840
  "data-slot": "tooltip-provider",
@@ -3565,12 +3846,12 @@ function TooltipProvider({
3565
3846
  function Tooltip2({
3566
3847
  ...props
3567
3848
  }) {
3568
- return /* @__PURE__ */ jsx37(TooltipProvider, { children: /* @__PURE__ */ jsx37(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
3849
+ return /* @__PURE__ */ jsx40(TooltipProvider, { children: /* @__PURE__ */ jsx40(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
3569
3850
  }
3570
3851
  function TooltipTrigger({
3571
3852
  ...props
3572
3853
  }) {
3573
- return /* @__PURE__ */ jsx37(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
3854
+ return /* @__PURE__ */ jsx40(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
3574
3855
  }
3575
3856
  function TooltipContent({
3576
3857
  className,
@@ -3578,7 +3859,7 @@ function TooltipContent({
3578
3859
  children,
3579
3860
  ...props
3580
3861
  }) {
3581
- return /* @__PURE__ */ jsx37(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs19(
3862
+ return /* @__PURE__ */ jsx40(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs20(
3582
3863
  TooltipPrimitive.Content,
3583
3864
  {
3584
3865
  "data-slot": "tooltip-content",
@@ -3590,23 +3871,40 @@ function TooltipContent({
3590
3871
  ...props,
3591
3872
  children: [
3592
3873
  children,
3593
- /* @__PURE__ */ jsx37(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
3874
+ /* @__PURE__ */ jsx40(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
3594
3875
  ]
3595
3876
  }
3596
3877
  ) });
3597
3878
  }
3598
3879
 
3880
+ // src/hooks/use-mobile.ts
3881
+ import * as React38 from "react";
3882
+ var MOBILE_BREAKPOINT = 768;
3883
+ function useIsMobile() {
3884
+ const [isMobile, setIsMobile] = React38.useState(void 0);
3885
+ React38.useEffect(() => {
3886
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
3887
+ const onChange = () => {
3888
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3889
+ };
3890
+ mql.addEventListener("change", onChange);
3891
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3892
+ return () => mql.removeEventListener("change", onChange);
3893
+ }, []);
3894
+ return !!isMobile;
3895
+ }
3896
+
3599
3897
  // src/components/ui/sidebar.tsx
3600
- import { jsx as jsx38, jsxs as jsxs20 } from "react/jsx-runtime";
3898
+ import { jsx as jsx41, jsxs as jsxs21 } from "react/jsx-runtime";
3601
3899
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
3602
3900
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
3603
- var SIDEBAR_WIDTH = "16rem";
3901
+ var SIDEBAR_WIDTH = "18rem";
3604
3902
  var SIDEBAR_WIDTH_MOBILE = "18rem";
3605
3903
  var SIDEBAR_WIDTH_ICON = "3rem";
3606
3904
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
3607
- var SidebarContext = React36.createContext(null);
3905
+ var SidebarContext = React39.createContext(null);
3608
3906
  function useSidebar() {
3609
- const context = React36.useContext(SidebarContext);
3907
+ const context = React39.useContext(SidebarContext);
3610
3908
  if (!context) {
3611
3909
  throw new Error("useSidebar must be used within a SidebarProvider.");
3612
3910
  }
@@ -3622,10 +3920,10 @@ function SidebarProvider({
3622
3920
  ...props
3623
3921
  }) {
3624
3922
  const isMobile = useIsMobile();
3625
- const [openMobile, setOpenMobile] = React36.useState(false);
3626
- const [_open, _setOpen] = React36.useState(defaultOpen);
3923
+ const [openMobile, setOpenMobile] = React39.useState(false);
3924
+ const [_open, _setOpen] = React39.useState(defaultOpen);
3627
3925
  const open = openProp ?? _open;
3628
- const setOpen = React36.useCallback(
3926
+ const setOpen = React39.useCallback(
3629
3927
  (value) => {
3630
3928
  const openState = typeof value === "function" ? value(open) : value;
3631
3929
  if (setOpenProp) {
@@ -3637,10 +3935,10 @@ function SidebarProvider({
3637
3935
  },
3638
3936
  [setOpenProp, open]
3639
3937
  );
3640
- const toggleSidebar = React36.useCallback(() => {
3938
+ const toggleSidebar = React39.useCallback(() => {
3641
3939
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
3642
3940
  }, [isMobile, setOpen, setOpenMobile]);
3643
- React36.useEffect(() => {
3941
+ React39.useEffect(() => {
3644
3942
  const handleKeyDown = (event) => {
3645
3943
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
3646
3944
  event.preventDefault();
@@ -3651,7 +3949,7 @@ function SidebarProvider({
3651
3949
  return () => window.removeEventListener("keydown", handleKeyDown);
3652
3950
  }, [toggleSidebar]);
3653
3951
  const state = open ? "expanded" : "collapsed";
3654
- const contextValue = React36.useMemo(
3952
+ const contextValue = React39.useMemo(
3655
3953
  () => ({
3656
3954
  state,
3657
3955
  open,
@@ -3663,7 +3961,7 @@ function SidebarProvider({
3663
3961
  }),
3664
3962
  [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
3665
3963
  );
3666
- return /* @__PURE__ */ jsx38(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx38(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx38(
3964
+ return /* @__PURE__ */ jsx41(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx41(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx41(
3667
3965
  "div",
3668
3966
  {
3669
3967
  "data-slot": "sidebar-wrapper",
@@ -3691,7 +3989,7 @@ function Sidebar({
3691
3989
  }) {
3692
3990
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
3693
3991
  if (collapsible === "none") {
3694
- return /* @__PURE__ */ jsx38(
3992
+ return /* @__PURE__ */ jsx41(
3695
3993
  "div",
3696
3994
  {
3697
3995
  "data-slot": "sidebar",
@@ -3705,7 +4003,7 @@ function Sidebar({
3705
4003
  );
3706
4004
  }
3707
4005
  if (isMobile) {
3708
- return /* @__PURE__ */ jsx38(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs20(
4006
+ return /* @__PURE__ */ jsx41(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs21(
3709
4007
  SheetContent,
3710
4008
  {
3711
4009
  "data-sidebar": "sidebar",
@@ -3717,16 +4015,16 @@ function Sidebar({
3717
4015
  },
3718
4016
  side,
3719
4017
  children: [
3720
- /* @__PURE__ */ jsxs20(SheetHeader, { className: "sr-only", children: [
3721
- /* @__PURE__ */ jsx38(SheetTitle, { children: "Sidebar" }),
3722
- /* @__PURE__ */ jsx38(SheetDescription, { children: "Displays the mobile sidebar." })
4018
+ /* @__PURE__ */ jsxs21(SheetHeader, { className: "sr-only", children: [
4019
+ /* @__PURE__ */ jsx41(SheetTitle, { children: "Sidebar" }),
4020
+ /* @__PURE__ */ jsx41(SheetDescription, { children: "Displays the mobile sidebar." })
3723
4021
  ] }),
3724
- /* @__PURE__ */ jsx38("div", { className: "flex h-full w-full flex-col", children })
4022
+ /* @__PURE__ */ jsx41("div", { className: "flex h-full w-full flex-col", children })
3725
4023
  ]
3726
4024
  }
3727
4025
  ) });
3728
4026
  }
3729
- return /* @__PURE__ */ jsxs20(
4027
+ return /* @__PURE__ */ jsxs21(
3730
4028
  "div",
3731
4029
  {
3732
4030
  className: "group peer text-sidebar-foreground hidden md:block",
@@ -3736,7 +4034,7 @@ function Sidebar({
3736
4034
  "data-side": side,
3737
4035
  "data-slot": "sidebar",
3738
4036
  children: [
3739
- /* @__PURE__ */ jsx38(
4037
+ /* @__PURE__ */ jsx41(
3740
4038
  "div",
3741
4039
  {
3742
4040
  "data-slot": "sidebar-gap",
@@ -3748,7 +4046,7 @@ function Sidebar({
3748
4046
  )
3749
4047
  }
3750
4048
  ),
3751
- /* @__PURE__ */ jsx38(
4049
+ /* @__PURE__ */ jsx41(
3752
4050
  "div",
3753
4051
  {
3754
4052
  "data-slot": "sidebar-container",
@@ -3760,7 +4058,7 @@ function Sidebar({
3760
4058
  className
3761
4059
  ),
3762
4060
  ...props,
3763
- children: /* @__PURE__ */ jsx38(
4061
+ children: /* @__PURE__ */ jsx41(
3764
4062
  "div",
3765
4063
  {
3766
4064
  "data-sidebar": "sidebar",
@@ -3781,29 +4079,29 @@ function SidebarTrigger({
3781
4079
  ...props
3782
4080
  }) {
3783
4081
  const { toggleSidebar } = useSidebar();
3784
- return /* @__PURE__ */ jsxs20(
4082
+ return /* @__PURE__ */ jsxs21(
3785
4083
  Button,
3786
4084
  {
3787
4085
  "data-sidebar": "trigger",
3788
4086
  "data-slot": "sidebar-trigger",
3789
4087
  variant: "ghost",
3790
4088
  size: "icon",
3791
- className: cn("size-7", className),
4089
+ className: cn("size-9", className),
3792
4090
  onClick: (event) => {
3793
4091
  onClick?.(event);
3794
4092
  toggleSidebar();
3795
4093
  },
3796
4094
  ...props,
3797
4095
  children: [
3798
- /* @__PURE__ */ jsx38(PanelLeftIcon, {}),
3799
- /* @__PURE__ */ jsx38("span", { className: "sr-only", children: "Toggle Sidebar" })
4096
+ /* @__PURE__ */ jsx41(PanelLeftIcon, {}),
4097
+ /* @__PURE__ */ jsx41("span", { className: "sr-only", children: "Toggle Sidebar" })
3800
4098
  ]
3801
4099
  }
3802
4100
  );
3803
4101
  }
3804
4102
  function SidebarRail({ className, ...props }) {
3805
4103
  const { toggleSidebar } = useSidebar();
3806
- return /* @__PURE__ */ jsx38(
4104
+ return /* @__PURE__ */ jsx41(
3807
4105
  "button",
3808
4106
  {
3809
4107
  "data-sidebar": "rail",
@@ -3826,7 +4124,7 @@ function SidebarRail({ className, ...props }) {
3826
4124
  );
3827
4125
  }
3828
4126
  function SidebarInset({ className, ...props }) {
3829
- return /* @__PURE__ */ jsx38(
4127
+ return /* @__PURE__ */ jsx41(
3830
4128
  "main",
3831
4129
  {
3832
4130
  "data-slot": "sidebar-inset",
@@ -3843,7 +4141,7 @@ function SidebarInput({
3843
4141
  className,
3844
4142
  ...props
3845
4143
  }) {
3846
- return /* @__PURE__ */ jsx38(
4144
+ return /* @__PURE__ */ jsx41(
3847
4145
  Input,
3848
4146
  {
3849
4147
  "data-slot": "sidebar-input",
@@ -3854,7 +4152,7 @@ function SidebarInput({
3854
4152
  );
3855
4153
  }
3856
4154
  function SidebarHeader({ className, ...props }) {
3857
- return /* @__PURE__ */ jsx38(
4155
+ return /* @__PURE__ */ jsx41(
3858
4156
  "div",
3859
4157
  {
3860
4158
  "data-slot": "sidebar-header",
@@ -3865,7 +4163,7 @@ function SidebarHeader({ className, ...props }) {
3865
4163
  );
3866
4164
  }
3867
4165
  function SidebarFooter({ className, ...props }) {
3868
- return /* @__PURE__ */ jsx38(
4166
+ return /* @__PURE__ */ jsx41(
3869
4167
  "div",
3870
4168
  {
3871
4169
  "data-slot": "sidebar-footer",
@@ -3879,7 +4177,7 @@ function SidebarSeparator({
3879
4177
  className,
3880
4178
  ...props
3881
4179
  }) {
3882
- return /* @__PURE__ */ jsx38(
4180
+ return /* @__PURE__ */ jsx41(
3883
4181
  Separator5,
3884
4182
  {
3885
4183
  "data-slot": "sidebar-separator",
@@ -3890,7 +4188,7 @@ function SidebarSeparator({
3890
4188
  );
3891
4189
  }
3892
4190
  function SidebarContent({ className, ...props }) {
3893
- return /* @__PURE__ */ jsx38(
4191
+ return /* @__PURE__ */ jsx41(
3894
4192
  "div",
3895
4193
  {
3896
4194
  "data-slot": "sidebar-content",
@@ -3904,7 +4202,7 @@ function SidebarContent({ className, ...props }) {
3904
4202
  );
3905
4203
  }
3906
4204
  function SidebarGroup({ className, ...props }) {
3907
- return /* @__PURE__ */ jsx38(
4205
+ return /* @__PURE__ */ jsx41(
3908
4206
  "div",
3909
4207
  {
3910
4208
  "data-slot": "sidebar-group",
@@ -3920,7 +4218,7 @@ function SidebarGroupLabel({
3920
4218
  ...props
3921
4219
  }) {
3922
4220
  const Comp = asChild ? Slot6 : "div";
3923
- return /* @__PURE__ */ jsx38(
4221
+ return /* @__PURE__ */ jsx41(
3924
4222
  Comp,
3925
4223
  {
3926
4224
  "data-slot": "sidebar-group-label",
@@ -3940,7 +4238,7 @@ function SidebarGroupAction({
3940
4238
  ...props
3941
4239
  }) {
3942
4240
  const Comp = asChild ? Slot6 : "button";
3943
- return /* @__PURE__ */ jsx38(
4241
+ return /* @__PURE__ */ jsx41(
3944
4242
  Comp,
3945
4243
  {
3946
4244
  "data-slot": "sidebar-group-action",
@@ -3960,7 +4258,7 @@ function SidebarGroupContent({
3960
4258
  className,
3961
4259
  ...props
3962
4260
  }) {
3963
- return /* @__PURE__ */ jsx38(
4261
+ return /* @__PURE__ */ jsx41(
3964
4262
  "div",
3965
4263
  {
3966
4264
  "data-slot": "sidebar-group-content",
@@ -3971,7 +4269,7 @@ function SidebarGroupContent({
3971
4269
  );
3972
4270
  }
3973
4271
  function SidebarMenu({ className, ...props }) {
3974
- return /* @__PURE__ */ jsx38(
4272
+ return /* @__PURE__ */ jsx41(
3975
4273
  "ul",
3976
4274
  {
3977
4275
  "data-slot": "sidebar-menu",
@@ -3982,7 +4280,7 @@ function SidebarMenu({ className, ...props }) {
3982
4280
  );
3983
4281
  }
3984
4282
  function SidebarMenuItem({ className, ...props }) {
3985
- return /* @__PURE__ */ jsx38(
4283
+ return /* @__PURE__ */ jsx41(
3986
4284
  "li",
3987
4285
  {
3988
4286
  "data-slot": "sidebar-menu-item",
@@ -4023,7 +4321,7 @@ function SidebarMenuButton({
4023
4321
  }) {
4024
4322
  const Comp = asChild ? Slot6 : "button";
4025
4323
  const { isMobile, state } = useSidebar();
4026
- const button = /* @__PURE__ */ jsx38(
4324
+ const button = /* @__PURE__ */ jsx41(
4027
4325
  Comp,
4028
4326
  {
4029
4327
  "data-slot": "sidebar-menu-button",
@@ -4042,9 +4340,9 @@ function SidebarMenuButton({
4042
4340
  children: tooltip
4043
4341
  };
4044
4342
  }
4045
- return /* @__PURE__ */ jsxs20(Tooltip2, { children: [
4046
- /* @__PURE__ */ jsx38(TooltipTrigger, { asChild: true, children: button }),
4047
- /* @__PURE__ */ jsx38(
4343
+ return /* @__PURE__ */ jsxs21(Tooltip2, { children: [
4344
+ /* @__PURE__ */ jsx41(TooltipTrigger, { asChild: true, children: button }),
4345
+ /* @__PURE__ */ jsx41(
4048
4346
  TooltipContent,
4049
4347
  {
4050
4348
  side: "right",
@@ -4062,7 +4360,7 @@ function SidebarMenuAction({
4062
4360
  ...props
4063
4361
  }) {
4064
4362
  const Comp = asChild ? Slot6 : "button";
4065
- return /* @__PURE__ */ jsx38(
4363
+ return /* @__PURE__ */ jsx41(
4066
4364
  Comp,
4067
4365
  {
4068
4366
  "data-slot": "sidebar-menu-action",
@@ -4086,7 +4384,7 @@ function SidebarMenuBadge({
4086
4384
  className,
4087
4385
  ...props
4088
4386
  }) {
4089
- return /* @__PURE__ */ jsx38(
4387
+ return /* @__PURE__ */ jsx41(
4090
4388
  "div",
4091
4389
  {
4092
4390
  "data-slot": "sidebar-menu-badge",
@@ -4109,10 +4407,10 @@ function SidebarMenuSkeleton({
4109
4407
  showIcon = false,
4110
4408
  ...props
4111
4409
  }) {
4112
- const width = React36.useMemo(() => {
4410
+ const width = React39.useMemo(() => {
4113
4411
  return `${Math.floor(Math.random() * 40) + 50}%`;
4114
4412
  }, []);
4115
- return /* @__PURE__ */ jsxs20(
4413
+ return /* @__PURE__ */ jsxs21(
4116
4414
  "div",
4117
4415
  {
4118
4416
  "data-slot": "sidebar-menu-skeleton",
@@ -4120,14 +4418,14 @@ function SidebarMenuSkeleton({
4120
4418
  className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
4121
4419
  ...props,
4122
4420
  children: [
4123
- showIcon && /* @__PURE__ */ jsx38(
4421
+ showIcon && /* @__PURE__ */ jsx41(
4124
4422
  Skeleton,
4125
4423
  {
4126
4424
  className: "size-4 rounded-md",
4127
4425
  "data-sidebar": "menu-skeleton-icon"
4128
4426
  }
4129
4427
  ),
4130
- /* @__PURE__ */ jsx38(
4428
+ /* @__PURE__ */ jsx41(
4131
4429
  Skeleton,
4132
4430
  {
4133
4431
  className: "h-4 max-w-(--skeleton-width) flex-1",
@@ -4142,7 +4440,7 @@ function SidebarMenuSkeleton({
4142
4440
  );
4143
4441
  }
4144
4442
  function SidebarMenuSub({ className, ...props }) {
4145
- return /* @__PURE__ */ jsx38(
4443
+ return /* @__PURE__ */ jsx41(
4146
4444
  "ul",
4147
4445
  {
4148
4446
  "data-slot": "sidebar-menu-sub",
@@ -4160,7 +4458,7 @@ function SidebarMenuSubItem({
4160
4458
  className,
4161
4459
  ...props
4162
4460
  }) {
4163
- return /* @__PURE__ */ jsx38(
4461
+ return /* @__PURE__ */ jsx41(
4164
4462
  "li",
4165
4463
  {
4166
4464
  "data-slot": "sidebar-menu-sub-item",
@@ -4178,7 +4476,7 @@ function SidebarMenuSubButton({
4178
4476
  ...props
4179
4477
  }) {
4180
4478
  const Comp = asChild ? Slot6 : "a";
4181
- return /* @__PURE__ */ jsx38(
4479
+ return /* @__PURE__ */ jsx41(
4182
4480
  Comp,
4183
4481
  {
4184
4482
  "data-slot": "sidebar-menu-sub-button",
@@ -4199,9 +4497,9 @@ function SidebarMenuSubButton({
4199
4497
  }
4200
4498
 
4201
4499
  // src/components/ui/slider.tsx
4202
- import * as React37 from "react";
4500
+ import * as React40 from "react";
4203
4501
  import * as SliderPrimitive from "@radix-ui/react-slider";
4204
- import { jsx as jsx39, jsxs as jsxs21 } from "react/jsx-runtime";
4502
+ import { jsx as jsx42, jsxs as jsxs22 } from "react/jsx-runtime";
4205
4503
  function Slider({
4206
4504
  className,
4207
4505
  defaultValue,
@@ -4210,11 +4508,11 @@ function Slider({
4210
4508
  max = 100,
4211
4509
  ...props
4212
4510
  }) {
4213
- const _values = React37.useMemo(
4511
+ const _values = React40.useMemo(
4214
4512
  () => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
4215
4513
  [value, defaultValue, min, max]
4216
4514
  );
4217
- return /* @__PURE__ */ jsxs21(
4515
+ return /* @__PURE__ */ jsxs22(
4218
4516
  SliderPrimitive.Root,
4219
4517
  {
4220
4518
  "data-slot": "slider",
@@ -4228,14 +4526,14 @@ function Slider({
4228
4526
  ),
4229
4527
  ...props,
4230
4528
  children: [
4231
- /* @__PURE__ */ jsx39(
4529
+ /* @__PURE__ */ jsx42(
4232
4530
  SliderPrimitive.Track,
4233
4531
  {
4234
4532
  "data-slot": "slider-track",
4235
4533
  className: cn(
4236
4534
  "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
4237
4535
  ),
4238
- children: /* @__PURE__ */ jsx39(
4536
+ children: /* @__PURE__ */ jsx42(
4239
4537
  SliderPrimitive.Range,
4240
4538
  {
4241
4539
  "data-slot": "slider-range",
@@ -4246,7 +4544,7 @@ function Slider({
4246
4544
  )
4247
4545
  }
4248
4546
  ),
4249
- Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx39(
4547
+ Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx42(
4250
4548
  SliderPrimitive.Thumb,
4251
4549
  {
4252
4550
  "data-slot": "slider-thumb",
@@ -4259,8 +4557,11 @@ function Slider({
4259
4557
  );
4260
4558
  }
4261
4559
 
4560
+ // src/components/ui/smart-dialog-drawer.tsx
4561
+ import "react";
4562
+
4262
4563
  // src/components/ui/useMediaQuery.ts
4263
- import { useEffect as useEffect5, useState as useState4 } from "react";
4564
+ import { useEffect as useEffect6, useState as useState5 } from "react";
4264
4565
  function useMediaQuery(query) {
4265
4566
  const getMatches = (query2) => {
4266
4567
  if (typeof window !== "undefined") {
@@ -4268,11 +4569,11 @@ function useMediaQuery(query) {
4268
4569
  }
4269
4570
  return false;
4270
4571
  };
4271
- const [matches, setMatches] = useState4(getMatches(query));
4572
+ const [matches, setMatches] = useState5(getMatches(query));
4272
4573
  function handleChange() {
4273
4574
  setMatches(getMatches(query));
4274
4575
  }
4275
- useEffect5(() => {
4576
+ useEffect6(() => {
4276
4577
  const matchMedia = window.matchMedia(query);
4277
4578
  handleChange();
4278
4579
  if (matchMedia.addListener) {
@@ -4292,26 +4593,31 @@ function useMediaQuery(query) {
4292
4593
  }
4293
4594
 
4294
4595
  // src/components/ui/smart-dialog-drawer.tsx
4295
- import { Fragment as Fragment2, jsx as jsx40 } from "react/jsx-runtime";
4296
- var SmartDialog = ({
4297
- children,
4298
- ...props
4299
- }) => {
4596
+ import { Fragment as Fragment2, jsx as jsx43 } from "react/jsx-runtime";
4597
+ var SmartDialog = ({ children, ...props }) => {
4300
4598
  const isMobile = useMediaQuery("(max-width: 600px)");
4301
- return isMobile ? /* @__PURE__ */ jsx40(Drawer, { ...props, children }) : /* @__PURE__ */ jsx40(Dialog, { ...props, children });
4599
+ return isMobile ? /* @__PURE__ */ jsx43(Drawer, { ...props, children }) : /* @__PURE__ */ jsx43(Dialog, { ...props, children });
4302
4600
  };
4303
4601
  var SmartDialogContent = ({
4304
4602
  children,
4305
4603
  overlayClassName = "",
4306
- withCloseButton = true,
4604
+ withCloseButton,
4605
+ showCloseButton,
4307
4606
  ...props
4308
4607
  }) => {
4309
4608
  const isMobile = useMediaQuery("(max-width: 600px)");
4310
- return isMobile ? /* @__PURE__ */ jsx40(DrawerContent, { ...props, withCloseButton, children }) : /* @__PURE__ */ jsx40(
4609
+ return isMobile ? /* @__PURE__ */ jsx43(
4610
+ DrawerContent,
4611
+ {
4612
+ ...props,
4613
+ withCloseButton: withCloseButton ?? showCloseButton ?? true,
4614
+ children
4615
+ }
4616
+ ) : /* @__PURE__ */ jsx43(
4311
4617
  DialogContent,
4312
4618
  {
4313
4619
  ...props,
4314
- showCloseButton: withCloseButton,
4620
+ showCloseButton: showCloseButton ?? withCloseButton ?? true,
4315
4621
  overlayClassName,
4316
4622
  children
4317
4623
  }
@@ -4322,51 +4628,39 @@ var SmartDialogDescription = ({
4322
4628
  ...props
4323
4629
  }) => {
4324
4630
  const isMobile = useMediaQuery("(max-width: 600px)");
4325
- return isMobile ? /* @__PURE__ */ jsx40(DrawerDescription, { ...props, children }) : /* @__PURE__ */ jsx40(DialogDescription, { ...props, children });
4631
+ return isMobile ? /* @__PURE__ */ jsx43(DrawerDescription, { ...props, children }) : /* @__PURE__ */ jsx43(DialogDescription, { ...props, children });
4326
4632
  };
4327
- var SmartDialogHeader = ({
4328
- children,
4329
- ...props
4330
- }) => {
4633
+ var SmartDialogHeader = ({ children, ...props }) => {
4331
4634
  const isMobile = useMediaQuery("(max-width: 600px)");
4332
- return isMobile ? /* @__PURE__ */ jsx40(DrawerHeader, { ...props, children }) : /* @__PURE__ */ jsx40(DialogHeader, { ...props, children });
4635
+ return isMobile ? /* @__PURE__ */ jsx43(DrawerHeader, { ...props, children }) : /* @__PURE__ */ jsx43(DialogHeader, { ...props, children });
4333
4636
  };
4334
- var SmartDialogTitle = ({
4335
- children,
4336
- ...props
4337
- }) => {
4637
+ var SmartDialogTitle = ({ children, ...props }) => {
4338
4638
  const isMobile = useMediaQuery("(max-width: 600px)");
4339
- return isMobile ? /* @__PURE__ */ jsx40(DrawerTitle, { ...props, children }) : /* @__PURE__ */ jsx40(DialogTitle, { ...props, children });
4639
+ return isMobile ? /* @__PURE__ */ jsx43(DrawerTitle, { ...props, children }) : /* @__PURE__ */ jsx43(DialogTitle, { ...props, children });
4340
4640
  };
4341
4641
  var SmartDialogTrigger = ({
4342
4642
  children,
4343
4643
  ...props
4344
4644
  }) => {
4345
4645
  const isMobile = useMediaQuery("(max-width: 600px)");
4346
- return isMobile ? /* @__PURE__ */ jsx40(DrawerTrigger, { ...props, children }) : /* @__PURE__ */ jsx40(DialogTrigger, { ...props, children });
4646
+ return isMobile ? /* @__PURE__ */ jsx43(DrawerTrigger, { ...props, children }) : /* @__PURE__ */ jsx43(DialogTrigger, { ...props, children });
4347
4647
  };
4348
- var SmartDialogFooter = ({
4349
- children,
4350
- ...props
4351
- }) => {
4648
+ var SmartDialogFooter = ({ children, ...props }) => {
4352
4649
  const isMobile = useMediaQuery("(max-width: 600px)");
4353
- return isMobile ? /* @__PURE__ */ jsx40(DrawerFooter, { ...props, children }) : /* @__PURE__ */ jsx40(DialogFooter, { ...props, children });
4650
+ return isMobile ? /* @__PURE__ */ jsx43(DrawerFooter, { ...props, children }) : /* @__PURE__ */ jsx43(DialogFooter, { ...props, children });
4354
4651
  };
4355
- var SmartDialogClose = ({
4356
- children,
4357
- ...props
4358
- }) => {
4652
+ var SmartDialogClose = ({ children, ...props }) => {
4359
4653
  const isMobile = useMediaQuery("(max-width: 600px)");
4360
- return isMobile ? /* @__PURE__ */ jsx40(Fragment2, { children: /* @__PURE__ */ jsx40(DrawerClose, { ...props, children }) }) : /* @__PURE__ */ jsx40(DialogClose, { ...props, children });
4654
+ return isMobile ? /* @__PURE__ */ jsx43(Fragment2, { children: /* @__PURE__ */ jsx43(DrawerClose, { ...props, children }) }) : /* @__PURE__ */ jsx43(DialogClose, { ...props, children });
4361
4655
  };
4362
4656
 
4363
4657
  // src/components/ui/sonner.tsx
4364
4658
  import { useTheme } from "next-themes";
4365
4659
  import { Toaster as Sonner } from "sonner";
4366
- import { jsx as jsx41 } from "react/jsx-runtime";
4660
+ import { jsx as jsx44 } from "react/jsx-runtime";
4367
4661
  var Toaster = ({ ...props }) => {
4368
4662
  const { theme = "system" } = useTheme();
4369
- return /* @__PURE__ */ jsx41(
4663
+ return /* @__PURE__ */ jsx44(
4370
4664
  Sonner,
4371
4665
  {
4372
4666
  theme,
@@ -4384,12 +4678,12 @@ var Toaster = ({ ...props }) => {
4384
4678
  // src/components/ui/switch.tsx
4385
4679
  import * as SwitchPrimitive from "@radix-ui/react-switch";
4386
4680
  import "react";
4387
- import { jsx as jsx42 } from "react/jsx-runtime";
4681
+ import { jsx as jsx45 } from "react/jsx-runtime";
4388
4682
  function Switch({
4389
4683
  className,
4390
4684
  ...props
4391
4685
  }) {
4392
- return /* @__PURE__ */ jsx42(
4686
+ return /* @__PURE__ */ jsx45(
4393
4687
  SwitchPrimitive.Root,
4394
4688
  {
4395
4689
  "data-slot": "switch",
@@ -4398,7 +4692,7 @@ function Switch({
4398
4692
  className
4399
4693
  ),
4400
4694
  ...props,
4401
- children: /* @__PURE__ */ jsx42(
4695
+ children: /* @__PURE__ */ jsx45(
4402
4696
  SwitchPrimitive.Thumb,
4403
4697
  {
4404
4698
  "data-slot": "switch-thumb",
@@ -4413,14 +4707,14 @@ function Switch({
4413
4707
 
4414
4708
  // src/components/ui/table.tsx
4415
4709
  import "react";
4416
- import { jsx as jsx43 } from "react/jsx-runtime";
4710
+ import { jsx as jsx46 } from "react/jsx-runtime";
4417
4711
  function Table({ className, ...props }) {
4418
- return /* @__PURE__ */ jsx43(
4712
+ return /* @__PURE__ */ jsx46(
4419
4713
  "div",
4420
4714
  {
4421
4715
  "data-slot": "table-container",
4422
4716
  className: "relative w-full overflow-x-auto",
4423
- children: /* @__PURE__ */ jsx43(
4717
+ children: /* @__PURE__ */ jsx46(
4424
4718
  "table",
4425
4719
  {
4426
4720
  "data-slot": "table",
@@ -4432,7 +4726,7 @@ function Table({ className, ...props }) {
4432
4726
  );
4433
4727
  }
4434
4728
  function TableHeader({ className, ...props }) {
4435
- return /* @__PURE__ */ jsx43(
4729
+ return /* @__PURE__ */ jsx46(
4436
4730
  "thead",
4437
4731
  {
4438
4732
  "data-slot": "table-header",
@@ -4442,7 +4736,7 @@ function TableHeader({ className, ...props }) {
4442
4736
  );
4443
4737
  }
4444
4738
  function TableBody({ className, ...props }) {
4445
- return /* @__PURE__ */ jsx43(
4739
+ return /* @__PURE__ */ jsx46(
4446
4740
  "tbody",
4447
4741
  {
4448
4742
  "data-slot": "table-body",
@@ -4452,7 +4746,7 @@ function TableBody({ className, ...props }) {
4452
4746
  );
4453
4747
  }
4454
4748
  function TableFooter({ className, ...props }) {
4455
- return /* @__PURE__ */ jsx43(
4749
+ return /* @__PURE__ */ jsx46(
4456
4750
  "tfoot",
4457
4751
  {
4458
4752
  "data-slot": "table-footer",
@@ -4465,7 +4759,7 @@ function TableFooter({ className, ...props }) {
4465
4759
  );
4466
4760
  }
4467
4761
  function TableRow({ className, ...props }) {
4468
- return /* @__PURE__ */ jsx43(
4762
+ return /* @__PURE__ */ jsx46(
4469
4763
  "tr",
4470
4764
  {
4471
4765
  "data-slot": "table-row",
@@ -4478,7 +4772,7 @@ function TableRow({ className, ...props }) {
4478
4772
  );
4479
4773
  }
4480
4774
  function TableHead({ className, ...props }) {
4481
- return /* @__PURE__ */ jsx43(
4775
+ return /* @__PURE__ */ jsx46(
4482
4776
  "th",
4483
4777
  {
4484
4778
  "data-slot": "table-head",
@@ -4491,7 +4785,7 @@ function TableHead({ className, ...props }) {
4491
4785
  );
4492
4786
  }
4493
4787
  function TableCell({ className, ...props }) {
4494
- return /* @__PURE__ */ jsx43(
4788
+ return /* @__PURE__ */ jsx46(
4495
4789
  "td",
4496
4790
  {
4497
4791
  "data-slot": "table-cell",
@@ -4507,7 +4801,7 @@ function TableCaption({
4507
4801
  className,
4508
4802
  ...props
4509
4803
  }) {
4510
- return /* @__PURE__ */ jsx43(
4804
+ return /* @__PURE__ */ jsx46(
4511
4805
  "caption",
4512
4806
  {
4513
4807
  "data-slot": "table-caption",
@@ -4520,12 +4814,12 @@ function TableCaption({
4520
4814
  // src/components/ui/tabs.tsx
4521
4815
  import * as TabsPrimitive from "@radix-ui/react-tabs";
4522
4816
  import "react";
4523
- import { jsx as jsx44 } from "react/jsx-runtime";
4817
+ import { jsx as jsx47 } from "react/jsx-runtime";
4524
4818
  function Tabs({
4525
4819
  className,
4526
4820
  ...props
4527
4821
  }) {
4528
- return /* @__PURE__ */ jsx44(
4822
+ return /* @__PURE__ */ jsx47(
4529
4823
  TabsPrimitive.Root,
4530
4824
  {
4531
4825
  "data-slot": "tabs",
@@ -4538,7 +4832,7 @@ function TabsList({
4538
4832
  className,
4539
4833
  ...props
4540
4834
  }) {
4541
- return /* @__PURE__ */ jsx44(
4835
+ return /* @__PURE__ */ jsx47(
4542
4836
  TabsPrimitive.List,
4543
4837
  {
4544
4838
  "data-slot": "tabs-list",
@@ -4554,7 +4848,7 @@ function TabsTrigger({
4554
4848
  className,
4555
4849
  ...props
4556
4850
  }) {
4557
- return /* @__PURE__ */ jsx44(
4851
+ return /* @__PURE__ */ jsx47(
4558
4852
  TabsPrimitive.Trigger,
4559
4853
  {
4560
4854
  "data-slot": "tabs-trigger",
@@ -4570,7 +4864,7 @@ function TabsContent({
4570
4864
  className,
4571
4865
  ...props
4572
4866
  }) {
4573
- return /* @__PURE__ */ jsx44(
4867
+ return /* @__PURE__ */ jsx47(
4574
4868
  TabsPrimitive.Content,
4575
4869
  {
4576
4870
  "data-slot": "tabs-content",
@@ -4580,53 +4874,11 @@ function TabsContent({
4580
4874
  );
4581
4875
  }
4582
4876
 
4583
- // src/components/ui/textarea.tsx
4584
- import * as React41 from "react";
4585
- import { jsx as jsx45 } from "react/jsx-runtime";
4586
- var textareaBaseStyles = [
4587
- // Base styles aligned with Input
4588
- "placeholder:text-gray-subtle selection:bg-primary selection:text-primary-foreground",
4589
- "flex w-full min-w-0 rounded-md border bg-transparent text-base shadow-xs transition-all duration-400",
4590
- "outline-none font-sans",
4591
- // Disabled
4592
- "disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
4593
- // Responsive text size
4594
- "md:text-sm",
4595
- // Default state
4596
- "border-zinc-300 bg-background",
4597
- // Hover/Focus/Active states
4598
- "hover:border-brand-normal",
4599
- "focus:border-blue-500",
4600
- "active:border-brand-normal",
4601
- // Textarea specific
4602
- "field-sizing-content min-h-16 resize-y px-3 py-2"
4603
- ].join(" ");
4604
- var errorStyles = [
4605
- "border-destructive bg-red-subtle",
4606
- "focus:border-destructive focus:ring-destructive/20",
4607
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
4608
- ].join(" ");
4609
- var Textarea = React41.forwardRef(
4610
- ({ className, error, ...props }, ref) => {
4611
- return /* @__PURE__ */ jsx45(
4612
- "textarea",
4613
- {
4614
- "data-slot": "textarea",
4615
- className: cn(textareaBaseStyles, error && errorStyles, className),
4616
- "aria-invalid": error,
4617
- ref,
4618
- ...props
4619
- }
4620
- );
4621
- }
4622
- );
4623
- Textarea.displayName = "Textarea";
4624
-
4625
4877
  // src/components/ui/toggle.tsx
4626
4878
  import "react";
4627
4879
  import * as TogglePrimitive from "@radix-ui/react-toggle";
4628
4880
  import { cva as cva8 } from "class-variance-authority";
4629
- import { jsx as jsx46 } from "react/jsx-runtime";
4881
+ import { jsx as jsx48 } from "react/jsx-runtime";
4630
4882
  var toggleVariants = cva8(
4631
4883
  "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
4632
4884
  {
@@ -4653,7 +4905,7 @@ function Toggle({
4653
4905
  size,
4654
4906
  ...props
4655
4907
  }) {
4656
- return /* @__PURE__ */ jsx46(
4908
+ return /* @__PURE__ */ jsx48(
4657
4909
  TogglePrimitive.Root,
4658
4910
  {
4659
4911
  "data-slot": "toggle",
@@ -4664,11 +4916,11 @@ function Toggle({
4664
4916
  }
4665
4917
 
4666
4918
  // src/components/ui/toggle-group.tsx
4667
- import * as React43 from "react";
4919
+ import * as React46 from "react";
4668
4920
  import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
4669
4921
  import "class-variance-authority";
4670
- import { jsx as jsx47 } from "react/jsx-runtime";
4671
- var ToggleGroupContext = React43.createContext({
4922
+ import { jsx as jsx49 } from "react/jsx-runtime";
4923
+ var ToggleGroupContext = React46.createContext({
4672
4924
  size: "default",
4673
4925
  variant: "default"
4674
4926
  });
@@ -4679,7 +4931,7 @@ function ToggleGroup({
4679
4931
  children,
4680
4932
  ...props
4681
4933
  }) {
4682
- return /* @__PURE__ */ jsx47(
4934
+ return /* @__PURE__ */ jsx49(
4683
4935
  ToggleGroupPrimitive.Root,
4684
4936
  {
4685
4937
  "data-slot": "toggle-group",
@@ -4690,7 +4942,7 @@ function ToggleGroup({
4690
4942
  className
4691
4943
  ),
4692
4944
  ...props,
4693
- children: /* @__PURE__ */ jsx47(ToggleGroupContext.Provider, { value: { variant, size }, children })
4945
+ children: /* @__PURE__ */ jsx49(ToggleGroupContext.Provider, { value: { variant, size }, children })
4694
4946
  }
4695
4947
  );
4696
4948
  }
@@ -4701,8 +4953,8 @@ function ToggleGroupItem({
4701
4953
  size,
4702
4954
  ...props
4703
4955
  }) {
4704
- const context = React43.useContext(ToggleGroupContext);
4705
- return /* @__PURE__ */ jsx47(
4956
+ const context = React46.useContext(ToggleGroupContext);
4957
+ return /* @__PURE__ */ jsx49(
4706
4958
  ToggleGroupPrimitive.Item,
4707
4959
  {
4708
4960
  "data-slot": "toggle-group-item",
@@ -4726,7 +4978,7 @@ function ToggleGroupItem({
4726
4978
  import { Slot as Slot7 } from "@radix-ui/react-slot";
4727
4979
  import { cva as cva9 } from "class-variance-authority";
4728
4980
  import "react";
4729
- import { jsx as jsx48 } from "react/jsx-runtime";
4981
+ import { jsx as jsx50 } from "react/jsx-runtime";
4730
4982
  var displayTextVariants = cva9(
4731
4983
  "tracking-normal font-normal leading-none text-brand-dark font-serif italic",
4732
4984
  {
@@ -4749,7 +5001,7 @@ function DisplayHeading({
4749
5001
  ...props
4750
5002
  }) {
4751
5003
  const Comp = asChild ? Slot7 : "h1";
4752
- return /* @__PURE__ */ jsx48(
5004
+ return /* @__PURE__ */ jsx50(
4753
5005
  Comp,
4754
5006
  {
4755
5007
  "data-slot": "h1",
@@ -4778,7 +5030,7 @@ function Body({
4778
5030
  ...props
4779
5031
  }) {
4780
5032
  const Comp = asChild ? Slot7 : "p";
4781
- return /* @__PURE__ */ jsx48(
5033
+ return /* @__PURE__ */ jsx50(
4782
5034
  Comp,
4783
5035
  {
4784
5036
  "data-slot": "h1",
@@ -4793,7 +5045,7 @@ function HeadingXL({
4793
5045
  ...props
4794
5046
  }) {
4795
5047
  const Comp = asChild ? Slot7 : "h1";
4796
- return /* @__PURE__ */ jsx48(
5048
+ return /* @__PURE__ */ jsx50(
4797
5049
  Comp,
4798
5050
  {
4799
5051
  "data-slot": "h1",
@@ -4811,7 +5063,7 @@ function HeadingL({
4811
5063
  ...props
4812
5064
  }) {
4813
5065
  const Comp = asChild ? Slot7 : "h2";
4814
- return /* @__PURE__ */ jsx48(
5066
+ return /* @__PURE__ */ jsx50(
4815
5067
  Comp,
4816
5068
  {
4817
5069
  "data-slot": "h2",
@@ -4829,7 +5081,7 @@ function HeadingM({
4829
5081
  ...props
4830
5082
  }) {
4831
5083
  const Comp = asChild ? Slot7 : "h3";
4832
- return /* @__PURE__ */ jsx48(
5084
+ return /* @__PURE__ */ jsx50(
4833
5085
  Comp,
4834
5086
  {
4835
5087
  "data-slot": "h3",
@@ -4847,7 +5099,7 @@ function HeadingS({
4847
5099
  ...props
4848
5100
  }) {
4849
5101
  const Comp = asChild ? Slot7 : "h4";
4850
- return /* @__PURE__ */ jsx48(
5102
+ return /* @__PURE__ */ jsx50(
4851
5103
  Comp,
4852
5104
  {
4853
5105
  "data-slot": "h4",
@@ -4865,7 +5117,7 @@ function HeadingXS({
4865
5117
  ...props
4866
5118
  }) {
4867
5119
  const Comp = asChild ? Slot7 : "h5";
4868
- return /* @__PURE__ */ jsx48(
5120
+ return /* @__PURE__ */ jsx50(
4869
5121
  Comp,
4870
5122
  {
4871
5123
  "data-slot": "h5",
@@ -4883,7 +5135,7 @@ function HeadingXXS({
4883
5135
  ...props
4884
5136
  }) {
4885
5137
  const Comp = asChild ? Slot7 : "h6";
4886
- return /* @__PURE__ */ jsx48(
5138
+ return /* @__PURE__ */ jsx50(
4887
5139
  Comp,
4888
5140
  {
4889
5141
  "data-slot": "h5",
@@ -4915,6 +5167,7 @@ export {
4915
5167
  AlertDialogTrigger,
4916
5168
  AlertTitle,
4917
5169
  AspectRatio,
5170
+ AutoResizeTextarea,
4918
5171
  Avatar,
4919
5172
  AvatarFallback,
4920
5173
  AvatarImage,
@@ -4976,6 +5229,7 @@ export {
4976
5229
  ContextMenuSubContent,
4977
5230
  ContextMenuSubTrigger,
4978
5231
  ContextMenuTrigger,
5232
+ DateInput,
4979
5233
  Dialog,
4980
5234
  DialogClose,
4981
5235
  DialogContent,