@codapet/design-system 0.3.4 → 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.d.mts +57 -32
- package/dist/index.mjs +983 -729
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -5
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
|
|
445
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
337
446
|
function Avatar({
|
|
338
447
|
className,
|
|
339
448
|
...props
|
|
340
449
|
}) {
|
|
341
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
534
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
426
535
|
function Breadcrumb({ ...props }) {
|
|
427
|
-
return /* @__PURE__ */
|
|
536
|
+
return /* @__PURE__ */ jsx10("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
|
|
428
537
|
}
|
|
429
538
|
function BreadcrumbList({ className, ...props }) {
|
|
430
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
511
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
757
|
+
return /* @__PURE__ */ jsx11(ChevronLeftIcon, { className: cn("size-4", className2), ...props2 });
|
|
649
758
|
}
|
|
650
759
|
if (orientation === "right") {
|
|
651
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
679
|
-
|
|
787
|
+
const ref = React10.useRef(null);
|
|
788
|
+
React10.useEffect(() => {
|
|
680
789
|
if (modifiers.focused) ref.current?.focus();
|
|
681
790
|
}, [modifiers.focused]);
|
|
682
|
-
return /* @__PURE__ */
|
|
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
|
|
814
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
706
815
|
function Card({ className, ...props }) {
|
|
707
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
791
|
-
var CarouselContext =
|
|
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 =
|
|
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] =
|
|
816
|
-
const [canScrollNext, setCanScrollNext] =
|
|
817
|
-
const onSelect =
|
|
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 =
|
|
931
|
+
const scrollPrev = React12.useCallback(() => {
|
|
823
932
|
api?.scrollPrev();
|
|
824
933
|
}, [api]);
|
|
825
|
-
const scrollNext =
|
|
934
|
+
const scrollNext = React12.useCallback(() => {
|
|
826
935
|
api?.scrollNext();
|
|
827
936
|
}, [api]);
|
|
828
|
-
const handleKeyDown =
|
|
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
|
-
|
|
949
|
+
React12.useEffect(() => {
|
|
841
950
|
if (!api || !setApi) return;
|
|
842
951
|
setApi(api);
|
|
843
952
|
}, [api, setApi]);
|
|
844
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
943
|
-
/* @__PURE__ */
|
|
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__ */
|
|
971
|
-
/* @__PURE__ */
|
|
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
|
|
1087
|
+
import * as React13 from "react";
|
|
979
1088
|
import * as RechartsPrimitive from "recharts";
|
|
980
|
-
import { Fragment, jsx as
|
|
1089
|
+
import { Fragment, jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
981
1090
|
var THEMES = { light: "", dark: ".dark" };
|
|
982
|
-
var ChartContext =
|
|
1091
|
+
var ChartContext = React13.createContext(null);
|
|
983
1092
|
function useChart() {
|
|
984
|
-
const context =
|
|
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 =
|
|
1106
|
+
const uniqueId = React13.useId();
|
|
998
1107
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
999
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
1011
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1244
|
+
/* @__PURE__ */ jsx14("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
1136
1245
|
] }),
|
|
1137
|
-
item.value && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1325
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1217
1326
|
function Checkbox({
|
|
1218
1327
|
className,
|
|
1219
1328
|
...props
|
|
1220
1329
|
}) {
|
|
1221
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1354
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1246
1355
|
function Collapsible({
|
|
1247
1356
|
...props
|
|
1248
1357
|
}) {
|
|
1249
|
-
return /* @__PURE__ */
|
|
1358
|
+
return /* @__PURE__ */ jsx16(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
|
|
1250
1359
|
}
|
|
1251
1360
|
function CollapsibleTrigger2({
|
|
1252
1361
|
...props
|
|
1253
1362
|
}) {
|
|
1254
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1392
|
+
import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1284
1393
|
function Dialog({
|
|
1285
1394
|
...props
|
|
1286
1395
|
}) {
|
|
1287
|
-
return /* @__PURE__ */
|
|
1396
|
+
return /* @__PURE__ */ jsx17(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
1288
1397
|
}
|
|
1289
1398
|
function DialogTrigger({
|
|
1290
1399
|
...props
|
|
1291
1400
|
}) {
|
|
1292
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1347
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1435
|
-
/* @__PURE__ */
|
|
1543
|
+
/* @__PURE__ */ jsx18(DialogTitle, { children: title }),
|
|
1544
|
+
/* @__PURE__ */ jsx18(DialogDescription, { children: description })
|
|
1436
1545
|
] }),
|
|
1437
|
-
/* @__PURE__ */
|
|
1546
|
+
/* @__PURE__ */ jsx18(
|
|
1438
1547
|
DialogContent,
|
|
1439
1548
|
{
|
|
1440
1549
|
className: cn("overflow-hidden p-0", className),
|
|
1441
1550
|
showCloseButton,
|
|
1442
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
1458
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1676
|
+
import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1568
1677
|
function ContextMenu({
|
|
1569
1678
|
...props
|
|
1570
1679
|
}) {
|
|
1571
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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/
|
|
1772
|
-
import "
|
|
1773
|
-
import {
|
|
1774
|
-
import
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
}
|
|
1778
|
-
|
|
1779
|
-
}
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
{
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
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
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2364
|
+
import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1895
2365
|
function DropdownMenu({
|
|
1896
2366
|
...props
|
|
1897
2367
|
}) {
|
|
1898
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
2589
|
+
import { cva as cva5 } from "class-variance-authority";
|
|
2120
2590
|
import "react";
|
|
2121
|
-
import { jsx as
|
|
2122
|
-
var labelTextVariants =
|
|
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__ */
|
|
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
|
|
2623
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
2154
2624
|
var Form = FormProvider;
|
|
2155
|
-
var FormFieldContext =
|
|
2625
|
+
var FormFieldContext = React24.createContext(
|
|
2156
2626
|
{}
|
|
2157
2627
|
);
|
|
2158
2628
|
var FormField = ({
|
|
2159
2629
|
...props
|
|
2160
2630
|
}) => {
|
|
2161
|
-
return /* @__PURE__ */
|
|
2631
|
+
return /* @__PURE__ */ jsx26(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx26(Controller, { ...props }) });
|
|
2162
2632
|
};
|
|
2163
2633
|
var useFormField = () => {
|
|
2164
|
-
const fieldContext =
|
|
2165
|
-
const itemContext =
|
|
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 =
|
|
2652
|
+
var FormItemContext = React24.createContext(
|
|
2183
2653
|
{}
|
|
2184
2654
|
);
|
|
2185
2655
|
function FormItem({ className, ...props }) {
|
|
2186
|
-
const id =
|
|
2187
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
2728
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
2259
2729
|
function HoverCard({
|
|
2260
2730
|
...props
|
|
2261
2731
|
}) {
|
|
2262
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
2798
|
+
const inputOTPContext = React26.useContext(OTPInputContext);
|
|
2461
2799
|
const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
|
|
2462
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3224
|
+
import { jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2887
3225
|
function Pagination({ className, ...props }) {
|
|
2888
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2951
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2969
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2987
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3365
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
3068
3366
|
function RadioGroup4({
|
|
3069
3367
|
className,
|
|
3070
3368
|
...props
|
|
3071
3369
|
}) {
|
|
3072
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3408
|
+
import { jsx as jsx34 } from "react/jsx-runtime";
|
|
3111
3409
|
function ResizablePanelGroup({
|
|
3112
3410
|
className,
|
|
3113
3411
|
...props
|
|
3114
3412
|
}) {
|
|
3115
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3176
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3511
|
+
import { jsx as jsx36, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3214
3512
|
function Select({
|
|
3215
3513
|
...props
|
|
3216
3514
|
}) {
|
|
3217
|
-
return /* @__PURE__ */
|
|
3515
|
+
return /* @__PURE__ */ jsx36(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
3218
3516
|
}
|
|
3219
3517
|
function SelectGroup({
|
|
3220
3518
|
...props
|
|
3221
3519
|
}) {
|
|
3222
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3271
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3315
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
3695
|
+
import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
3398
3696
|
function Sheet({ ...props }) {
|
|
3399
|
-
return /* @__PURE__ */
|
|
3697
|
+
return /* @__PURE__ */ jsx38(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
3400
3698
|
}
|
|
3401
3699
|
function SheetTrigger({
|
|
3402
3700
|
...props
|
|
3403
3701
|
}) {
|
|
3404
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3440
|
-
/* @__PURE__ */
|
|
3441
|
-
/* @__PURE__ */
|
|
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__ */
|
|
3457
|
-
/* @__PURE__ */
|
|
3458
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
3817
|
+
import { jsx as jsx39 } from "react/jsx-runtime";
|
|
3537
3818
|
function Skeleton({ className, ...props }) {
|
|
3538
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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 = "
|
|
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 =
|
|
3905
|
+
var SidebarContext = React39.createContext(null);
|
|
3608
3906
|
function useSidebar() {
|
|
3609
|
-
const context =
|
|
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] =
|
|
3626
|
-
const [_open, _setOpen] =
|
|
3923
|
+
const [openMobile, setOpenMobile] = React39.useState(false);
|
|
3924
|
+
const [_open, _setOpen] = React39.useState(defaultOpen);
|
|
3627
3925
|
const open = openProp ?? _open;
|
|
3628
|
-
const setOpen =
|
|
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 =
|
|
3938
|
+
const toggleSidebar = React39.useCallback(() => {
|
|
3641
3939
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
3642
3940
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
3643
|
-
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
3721
|
-
/* @__PURE__ */
|
|
3722
|
-
/* @__PURE__ */
|
|
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__ */
|
|
4022
|
+
/* @__PURE__ */ jsx41("div", { className: "flex h-full w-full flex-col", children })
|
|
3725
4023
|
]
|
|
3726
4024
|
}
|
|
3727
4025
|
) });
|
|
3728
4026
|
}
|
|
3729
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
3799
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
4046
|
-
/* @__PURE__ */
|
|
4047
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
4410
|
+
const width = React39.useMemo(() => {
|
|
4113
4411
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
4114
4412
|
}, []);
|
|
4115
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
4500
|
+
import * as React40 from "react";
|
|
4203
4501
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
4204
|
-
import { jsx as
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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] =
|
|
4572
|
+
const [matches, setMatches] = useState5(getMatches(query));
|
|
4272
4573
|
function handleChange() {
|
|
4273
4574
|
setMatches(getMatches(query));
|
|
4274
4575
|
}
|
|
4275
|
-
|
|
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
|
|
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__ */
|
|
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
|
|
4604
|
+
withCloseButton,
|
|
4605
|
+
showCloseButton,
|
|
4307
4606
|
...props
|
|
4308
4607
|
}) => {
|
|
4309
4608
|
const isMobile = useMediaQuery("(max-width: 600px)");
|
|
4310
|
-
return isMobile ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
4660
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
4367
4661
|
var Toaster = ({ ...props }) => {
|
|
4368
4662
|
const { theme = "system" } = useTheme();
|
|
4369
|
-
return /* @__PURE__ */
|
|
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
|
|
4681
|
+
import { jsx as jsx45 } from "react/jsx-runtime";
|
|
4388
4682
|
function Switch({
|
|
4389
4683
|
className,
|
|
4390
4684
|
...props
|
|
4391
4685
|
}) {
|
|
4392
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
4710
|
+
import { jsx as jsx46 } from "react/jsx-runtime";
|
|
4417
4711
|
function Table({ className, ...props }) {
|
|
4418
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
4817
|
+
import { jsx as jsx47 } from "react/jsx-runtime";
|
|
4524
4818
|
function Tabs({
|
|
4525
4819
|
className,
|
|
4526
4820
|
...props
|
|
4527
4821
|
}) {
|
|
4528
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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
|
|
4671
|
-
var ToggleGroupContext =
|
|
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__ */
|
|
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__ */
|
|
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 =
|
|
4705
|
-
return /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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,
|