@yuva-devlab/ui 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/common.css +158 -0
  2. package/dist/components/accordion/accordion.css +49 -0
  3. package/dist/components/alert/alert.css +41 -0
  4. package/dist/components/alert-dialog/alert-dialog.css +78 -0
  5. package/dist/components/avatar/avatar.css +26 -0
  6. package/dist/components/badge/badge.css +76 -0
  7. package/dist/components/breadcrumb/breadcrumb.css +63 -0
  8. package/dist/components/button/button.css +106 -0
  9. package/dist/components/card/card.css +30 -0
  10. package/dist/components/carousel/carousel.css +67 -0
  11. package/dist/components/chart/chart.css +38 -0
  12. package/dist/components/checkbox/checkbox.css +27 -0
  13. package/dist/components/command/command.css +125 -0
  14. package/dist/components/context-menu/context-menu.css +19 -0
  15. package/dist/components/date-picker/date-picker.css +30 -0
  16. package/dist/components/dialog/dialog.css +78 -0
  17. package/dist/components/drawer/drawer.css +64 -0
  18. package/dist/components/dropdown-menu/dropdown-menu.css +82 -0
  19. package/dist/components/form/form.css +17 -0
  20. package/dist/components/hover-card/hover-card.css +23 -0
  21. package/dist/components/input/input.css +89 -0
  22. package/dist/components/input-otp/input-otp.css +70 -0
  23. package/dist/components/label/label.css +9 -0
  24. package/dist/components/loading-state/loading-state.css +26 -0
  25. package/dist/components/menubar/menubar.css +36 -0
  26. package/dist/components/navigation-menu/navigation-menu.css +137 -0
  27. package/dist/components/pagination/pagination.css +43 -0
  28. package/dist/components/panel/panel.css +24 -0
  29. package/dist/components/popover/popover.css +17 -0
  30. package/dist/components/progress/progress.css +15 -0
  31. package/dist/components/radio-group/radio-group.css +37 -0
  32. package/dist/components/resizable/resizable.css +67 -0
  33. package/dist/components/scroll-area/scroll-area.css +32 -0
  34. package/dist/components/searchable-select/searchable-select.css +128 -0
  35. package/dist/components/select/select.css +97 -0
  36. package/dist/components/separator/separator.css +14 -0
  37. package/dist/components/sheet/sheet.css +83 -0
  38. package/dist/components/sidebar/sidebar.css +18 -0
  39. package/dist/components/skeleton/skeleton.css +5 -0
  40. package/dist/components/slider/slider.css +37 -0
  41. package/dist/components/sonner/sonner.css +25 -0
  42. package/dist/components/status-badge/status-badge.css +53 -0
  43. package/dist/components/status-chip/status-chip.css +44 -0
  44. package/dist/components/switch/switch.css +45 -0
  45. package/dist/components/table/table.css +46 -0
  46. package/dist/components/tabs/tabs.css +46 -0
  47. package/dist/components/textarea/textarea.css +30 -0
  48. package/dist/components/toggle/toggle.css +91 -0
  49. package/dist/components/tooltip/tooltip.css +17 -0
  50. package/dist/components.css +2523 -0
  51. package/dist/index.cjs +1445 -1833
  52. package/dist/index.cjs.map +1 -1
  53. package/dist/index.d.cts +1786 -202
  54. package/dist/index.d.ts +1786 -202
  55. package/dist/index.js +1440 -1833
  56. package/dist/index.js.map +1 -1
  57. package/dist/preset.css +6 -157
  58. package/dist/root.css +1 -0
  59. package/dist/styles/common.css +158 -0
  60. package/dist/styles/components.css +2523 -0
  61. package/dist/styles/preset.css +6 -157
  62. package/dist/styles/root.css +1 -0
  63. package/dist/styles/styles.css +17 -5
  64. package/dist/styles/themes/finai.css +1 -114
  65. package/dist/styles/themes/orchestrai.css +1 -75
  66. package/dist/styles.css +17 -5
  67. package/dist/themes/finai.css +1 -114
  68. package/dist/themes/orchestrai.css +1 -75
  69. package/package.json +10 -5
package/dist/index.cjs CHANGED
@@ -195,7 +195,7 @@ __export(index_exports, {
195
195
  PaginationLink: () => PaginationLink,
196
196
  PaginationNext: () => PaginationNext,
197
197
  PaginationPrevious: () => PaginationPrevious,
198
- Panel: () => Panel2,
198
+ Panel: () => Panel,
199
199
  Popover: () => Popover,
200
200
  PopoverAnchor: () => PopoverAnchor,
201
201
  PopoverContent: () => PopoverContent,
@@ -255,6 +255,7 @@ __export(index_exports, {
255
255
  SidebarTrigger: () => SidebarTrigger,
256
256
  Skeleton: () => Skeleton,
257
257
  Slider: () => Slider,
258
+ StatusBadge: () => StatusBadge,
258
259
  StatusChip: () => StatusChip,
259
260
  Switch: () => Switch,
260
261
  Table: () => Table,
@@ -279,12 +280,16 @@ __export(index_exports, {
279
280
  TooltipContent: () => TooltipContent,
280
281
  TooltipProvider: () => TooltipProvider,
281
282
  TooltipTrigger: () => TooltipTrigger,
283
+ alertVariants: () => alertVariants,
282
284
  badgeVariants: () => badgeVariants,
283
285
  buttonVariants: () => buttonVariants,
284
286
  cn: () => cn,
287
+ labelVariants: () => labelVariants,
285
288
  navigationMenuTriggerStyle: () => navigationMenuTriggerStyle,
289
+ sheetVariants: () => sheetVariants,
286
290
  toast: () => import_sonner.toast,
287
291
  toggleVariants: () => toggleVariants,
292
+ useCarousel: () => useCarousel,
288
293
  useConfig: () => useConfig,
289
294
  useFormField: () => useFormField,
290
295
  useIsMobile: () => useIsMobile,
@@ -405,7 +410,7 @@ function useIsMobile() {
405
410
  return !!isMobile;
406
411
  }
407
412
 
408
- // src/components/accordion.tsx
413
+ // src/components/accordion/accordion.tsx
409
414
  var React3 = __toESM(require("react"), 1);
410
415
  var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"), 1);
411
416
  var import_lucide_react = require("lucide-react");
@@ -415,23 +420,20 @@ var AccordionItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PU
415
420
  AccordionPrimitive.Item,
416
421
  {
417
422
  ref,
418
- className: cn("border-b", className),
423
+ className: cn("dl-accordion-item", className),
419
424
  ...props
420
425
  }
421
426
  ));
422
427
  AccordionItem.displayName = "AccordionItem";
423
- var AccordionTrigger = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
428
+ var AccordionTrigger = React3.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(AccordionPrimitive.Header, { className: "dl-accordion-header", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
424
429
  AccordionPrimitive.Trigger,
425
430
  {
426
431
  ref,
427
- className: cn(
428
- "flex flex-1 items-center justify-between py-4 text-sm font-medium cursor-pointer transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",
429
- className
430
- ),
432
+ className: cn("dl-accordion-trigger", className),
431
433
  ...props,
432
434
  children: [
433
435
  children,
434
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.ChevronDown, { className: "shrink-0 text-muted-foreground transition-transform duration-200 size-4" })
436
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.ChevronDown, { "aria-hidden": "true" })
435
437
  ]
436
438
  }
437
439
  ) }));
@@ -440,51 +442,79 @@ var AccordionContent = React3.forwardRef(({ className, children, ...props }, ref
440
442
  AccordionPrimitive.Content,
441
443
  {
442
444
  ref,
443
- className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
445
+ className: "dl-accordion-content",
444
446
  ...props,
445
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: cn("pb-4 pt-0", className), children })
447
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: cn("dl-accordion-content__inner", className), children })
446
448
  }
447
449
  ));
448
450
  AccordionContent.displayName = AccordionPrimitive.Content.displayName;
449
451
 
450
- // src/components/alert-dialog.tsx
451
- var React5 = __toESM(require("react"), 1);
452
- var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
453
-
454
- // src/components/button.tsx
452
+ // src/components/alert/alert.tsx
455
453
  var React4 = __toESM(require("react"), 1);
456
- var import_react_slot = require("@radix-ui/react-slot");
457
454
  var import_class_variance_authority = require("class-variance-authority");
458
455
  var import_jsx_runtime3 = require("react/jsx-runtime");
459
- var buttonVariants = (0, import_class_variance_authority.cva)(
460
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
461
- {
462
- variants: {
463
- variant: {
464
- default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
465
- destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
466
- outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
467
- secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
468
- ghost: "hover:bg-accent hover:text-accent-foreground",
469
- link: "text-primary underline-offset-4 hover:underline"
470
- },
471
- size: {
472
- default: "h-9 px-4 py-2",
473
- sm: "h-8 rounded-md px-3 text-xs",
474
- lg: "h-10 rounded-md px-8",
475
- icon: "size-9"
476
- }
477
- },
478
- defaultVariants: {
479
- variant: "default",
480
- size: "default"
456
+ var alertVariants = (0, import_class_variance_authority.cva)("dl-alert", {
457
+ variants: {
458
+ variant: {
459
+ default: "dl-alert--default",
460
+ destructive: "dl-alert--destructive"
481
461
  }
462
+ },
463
+ defaultVariants: {
464
+ variant: "default"
482
465
  }
466
+ });
467
+ var Alert = React4.forwardRef(
468
+ ({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
469
+ "div",
470
+ {
471
+ ref,
472
+ role: "alert",
473
+ className: cn(alertVariants({ variant }), className),
474
+ ...props
475
+ }
476
+ )
483
477
  );
484
- var Button = React4.forwardRef(
478
+ Alert.displayName = "Alert";
479
+ var AlertTitle = React4.forwardRef(
480
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h5", { ref, className: cn("dl-alert__title", className), ...props })
481
+ );
482
+ AlertTitle.displayName = "AlertTitle";
483
+ var AlertDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { ref, className: cn("dl-alert__desc", className), ...props }));
484
+ AlertDescription.displayName = "AlertDescription";
485
+
486
+ // src/components/alert-dialog/alert-dialog.tsx
487
+ var React6 = __toESM(require("react"), 1);
488
+ var AlertDialogPrimitive = __toESM(require("@radix-ui/react-alert-dialog"), 1);
489
+
490
+ // src/components/button/button.tsx
491
+ var React5 = __toESM(require("react"), 1);
492
+ var import_react_slot = require("@radix-ui/react-slot");
493
+ var import_class_variance_authority2 = require("class-variance-authority");
494
+ var import_jsx_runtime4 = require("react/jsx-runtime");
495
+ var buttonVariants = (0, import_class_variance_authority2.cva)("dl-btn", {
496
+ variants: {
497
+ variant: {
498
+ default: "dl-btn--default",
499
+ destructive: "dl-btn--destructive",
500
+ outline: "dl-btn--outline",
501
+ secondary: "dl-btn--secondary",
502
+ ghost: "dl-btn--ghost",
503
+ link: "dl-btn--link"
504
+ },
505
+ size: {
506
+ default: "dl-btn--md",
507
+ sm: "dl-btn--sm",
508
+ lg: "dl-btn--lg",
509
+ icon: "dl-btn--icon"
510
+ }
511
+ },
512
+ defaultVariants: { variant: "default", size: "default" }
513
+ });
514
+ var Button = React5.forwardRef(
485
515
  ({ className, variant, size, asChild = false, ...props }, ref) => {
486
516
  const Comp = asChild ? import_react_slot.Slot : "button";
487
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
517
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
488
518
  Comp,
489
519
  {
490
520
  className: cn(buttonVariants({ variant, size, className })),
@@ -496,33 +526,27 @@ var Button = React4.forwardRef(
496
526
  );
497
527
  Button.displayName = "Button";
498
528
 
499
- // src/components/alert-dialog.tsx
500
- var import_jsx_runtime4 = require("react/jsx-runtime");
529
+ // src/components/alert-dialog/alert-dialog.tsx
530
+ var import_jsx_runtime5 = require("react/jsx-runtime");
501
531
  var AlertDialog = AlertDialogPrimitive.Root;
502
532
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
503
533
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
504
- var AlertDialogOverlay = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
534
+ var AlertDialogOverlay = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
505
535
  AlertDialogPrimitive.Overlay,
506
536
  {
507
- className: cn(
508
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
509
- className
510
- ),
537
+ className: cn("dl-alert-dialog-overlay", className),
511
538
  ...props,
512
539
  ref
513
540
  }
514
541
  ));
515
542
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
516
- var AlertDialogContent = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(AlertDialogPortal, { children: [
517
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(AlertDialogOverlay, {}),
518
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
543
+ var AlertDialogContent = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(AlertDialogPortal, { children: [
544
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(AlertDialogOverlay, {}),
545
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
519
546
  AlertDialogPrimitive.Content,
520
547
  {
521
548
  ref,
522
- className: cn(
523
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 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 sm:rounded-lg translate-[-50%]",
524
- className
525
- ),
549
+ className: cn("dl-alert-dialog-content", className),
526
550
  ...props
527
551
  }
528
552
  )
@@ -531,50 +555,32 @@ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
531
555
  var AlertDialogHeader = ({
532
556
  className,
533
557
  ...props
534
- }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
535
- "div",
536
- {
537
- className: cn(
538
- "flex flex-col space-y-2 text-center sm:text-left",
539
- className
540
- ),
541
- ...props
542
- }
543
- );
558
+ }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: cn("dl-alert-dialog-header", className), ...props });
544
559
  AlertDialogHeader.displayName = "AlertDialogHeader";
545
560
  var AlertDialogFooter = ({
546
561
  className,
547
562
  ...props
548
- }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
549
- "div",
550
- {
551
- className: cn(
552
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
553
- className
554
- ),
555
- ...props
556
- }
557
- );
563
+ }) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: cn("dl-alert-dialog-footer", className), ...props });
558
564
  AlertDialogFooter.displayName = "AlertDialogFooter";
559
- var AlertDialogTitle = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
565
+ var AlertDialogTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
560
566
  AlertDialogPrimitive.Title,
561
567
  {
562
568
  ref,
563
- className: cn("text-lg font-semibold", className),
569
+ className: cn("dl-alert-dialog-title", className),
564
570
  ...props
565
571
  }
566
572
  ));
567
573
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
568
- var AlertDialogDescription = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
574
+ var AlertDialogDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
569
575
  AlertDialogPrimitive.Description,
570
576
  {
571
577
  ref,
572
- className: cn("text-sm text-muted-foreground", className),
578
+ className: cn("dl-alert-dialog-desc", className),
573
579
  ...props
574
580
  }
575
581
  ));
576
582
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
577
- var AlertDialogAction = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
583
+ var AlertDialogAction = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
578
584
  AlertDialogPrimitive.Action,
579
585
  {
580
586
  ref,
@@ -583,72 +589,21 @@ var AlertDialogAction = React5.forwardRef(({ className, ...props }, ref) => /* @
583
589
  }
584
590
  ));
585
591
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
586
- var AlertDialogCancel = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
592
+ var AlertDialogCancel = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
587
593
  AlertDialogPrimitive.Cancel,
588
594
  {
589
595
  ref,
590
- className: cn(
591
- buttonVariants({ variant: "outline" }),
592
- "mt-2 sm:mt-0",
593
- className
594
- ),
596
+ className: cn(buttonVariants({ variant: "outline" }), className),
595
597
  ...props
596
598
  }
597
599
  ));
598
600
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
599
601
 
600
- // src/components/alert.tsx
601
- var React6 = __toESM(require("react"), 1);
602
- var import_class_variance_authority2 = require("class-variance-authority");
603
- var import_jsx_runtime5 = require("react/jsx-runtime");
604
- var alertVariants = (0, import_class_variance_authority2.cva)(
605
- "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
606
- {
607
- variants: {
608
- variant: {
609
- default: "bg-background text-foreground",
610
- destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
611
- }
612
- },
613
- defaultVariants: {
614
- variant: "default"
615
- }
616
- }
617
- );
618
- var Alert = React6.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
619
- "div",
620
- {
621
- ref,
622
- role: "alert",
623
- className: cn(alertVariants({ variant }), className),
624
- ...props
625
- }
626
- ));
627
- Alert.displayName = "Alert";
628
- var AlertTitle = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
629
- "h5",
630
- {
631
- ref,
632
- className: cn("mb-1 font-medium leading-none tracking-tight", className),
633
- ...props
634
- }
635
- ));
636
- AlertTitle.displayName = "AlertTitle";
637
- var AlertDescription = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
638
- "div",
639
- {
640
- ref,
641
- className: cn("text-sm [&_p]:leading-relaxed", className),
642
- ...props
643
- }
644
- ));
645
- AlertDescription.displayName = "AlertDescription";
646
-
647
- // src/components/aspect-ratio.tsx
602
+ // src/components/aspect-ratio/aspect-ratio.tsx
648
603
  var AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"), 1);
649
604
  var AspectRatio = AspectRatioPrimitive.Root;
650
605
 
651
- // src/components/avatar.tsx
606
+ // src/components/avatar/avatar.tsx
652
607
  var React7 = __toESM(require("react"), 1);
653
608
  var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
654
609
  var import_jsx_runtime6 = require("react/jsx-runtime");
@@ -656,10 +611,7 @@ var Avatar = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
656
611
  AvatarPrimitive.Root,
657
612
  {
658
613
  ref,
659
- className: cn(
660
- "relative flex shrink-0 overflow-hidden rounded-full size-10",
661
- className
662
- ),
614
+ className: cn("dl-avatar", className),
663
615
  ...props
664
616
  }
665
617
  ));
@@ -668,7 +620,7 @@ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE
668
620
  AvatarPrimitive.Image,
669
621
  {
670
622
  ref,
671
- className: cn("aspect-square size-full", className),
623
+ className: cn("dl-avatar__img", className),
672
624
  ...props
673
625
  }
674
626
  ));
@@ -677,92 +629,77 @@ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__P
677
629
  AvatarPrimitive.Fallback,
678
630
  {
679
631
  ref,
680
- className: cn(
681
- "flex items-center justify-center rounded-full bg-muted size-full",
682
- className
683
- ),
632
+ className: cn("dl-avatar__fallback", className),
684
633
  ...props
685
634
  }
686
635
  ));
687
636
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
688
637
 
689
- // src/components/badge.tsx
638
+ // src/components/badge/badge.tsx
690
639
  var import_class_variance_authority3 = require("class-variance-authority");
691
640
  var import_jsx_runtime7 = require("react/jsx-runtime");
692
- var badgeVariants = (0, import_class_variance_authority3.cva)(
693
- "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
694
- {
695
- variants: {
696
- variant: {
697
- default: "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",
698
- secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
699
- destructive: "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",
700
- outline: "text-foreground"
701
- }
702
- },
703
- defaultVariants: {
704
- variant: "default"
641
+ var badgeVariants = (0, import_class_variance_authority3.cva)("dl-badge", {
642
+ variants: {
643
+ variant: {
644
+ default: "dl-badge--default",
645
+ secondary: "dl-badge--secondary",
646
+ destructive: "dl-badge--destructive",
647
+ success: "dl-badge--success",
648
+ warning: "dl-badge--warning",
649
+ info: "dl-badge--info",
650
+ outline: "dl-badge--outline"
705
651
  }
706
- }
707
- );
652
+ },
653
+ defaultVariants: { variant: "default" }
654
+ });
708
655
  function Badge({ className, variant, ...props }) {
709
656
  return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
710
657
  }
711
658
 
712
- // src/components/breadcrumb.tsx
659
+ // src/components/breadcrumb/breadcrumb.tsx
713
660
  var React8 = __toESM(require("react"), 1);
714
661
  var import_react_slot2 = require("@radix-ui/react-slot");
715
662
  var import_lucide_react2 = require("lucide-react");
716
663
  var import_jsx_runtime8 = require("react/jsx-runtime");
717
- var Breadcrumb = React8.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
664
+ var Breadcrumb = React8.forwardRef(
665
+ ({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props })
666
+ );
718
667
  Breadcrumb.displayName = "Breadcrumb";
719
- var BreadcrumbList = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
720
- "ol",
721
- {
722
- ref,
723
- className: cn(
724
- "flex flex-wrap items-center gap-1.5 wrap-break-word text-sm text-muted-foreground sm:gap-2.5",
725
- className
726
- ),
727
- ...props
728
- }
729
- ));
668
+ var BreadcrumbList = React8.forwardRef(
669
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ol", { ref, className: cn("dl-breadcrumb-list", className), ...props })
670
+ );
730
671
  BreadcrumbList.displayName = "BreadcrumbList";
731
- var BreadcrumbItem = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
732
- "li",
733
- {
734
- ref,
735
- className: cn("inline-flex items-center gap-1.5", className),
736
- ...props
737
- }
738
- ));
672
+ var BreadcrumbItem = React8.forwardRef(
673
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { ref, className: cn("dl-breadcrumb-item", className), ...props })
674
+ );
739
675
  BreadcrumbItem.displayName = "BreadcrumbItem";
740
- var BreadcrumbLink = React8.forwardRef(({ asChild, className, ...props }, ref) => {
741
- const Comp = asChild ? import_react_slot2.Slot : "a";
742
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
743
- Comp,
676
+ var BreadcrumbLink = React8.forwardRef(
677
+ ({ asChild, className, ...props }, ref) => {
678
+ const Comp = asChild ? import_react_slot2.Slot : "a";
679
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
680
+ Comp,
681
+ {
682
+ ref,
683
+ className: cn("dl-breadcrumb-link", className),
684
+ ...props
685
+ }
686
+ );
687
+ }
688
+ );
689
+ BreadcrumbLink.displayName = "BreadcrumbLink";
690
+ var BreadcrumbPage = React8.forwardRef(
691
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
692
+ "span",
744
693
  {
745
694
  ref,
746
- className: cn(
747
- "cursor-pointer transition-colors hover:text-foreground",
748
- className
749
- ),
695
+ role: "link",
696
+ "aria-disabled": "true",
697
+ "aria-current": "page",
698
+ className: cn("dl-breadcrumb-page", className),
750
699
  ...props
751
700
  }
752
- );
753
- });
754
- BreadcrumbLink.displayName = "BreadcrumbLink";
755
- var BreadcrumbPage = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
756
- "span",
757
- {
758
- ref,
759
- role: "link",
760
- "aria-disabled": "true",
761
- "aria-current": "page",
762
- className: cn("font-normal text-foreground", className),
763
- ...props
764
- }
765
- ));
701
+ )
702
+ );
766
703
  BreadcrumbPage.displayName = "BreadcrumbPage";
767
704
  var BreadcrumbSeparator = ({
768
705
  children,
@@ -773,7 +710,8 @@ var BreadcrumbSeparator = ({
773
710
  {
774
711
  role: "presentation",
775
712
  "aria-hidden": "true",
776
- className: cn("[&>svg]:size-3.5", className),
713
+ "data-slot": "breadcrumb-separator",
714
+ className: cn("dl-breadcrumb-separator", className),
777
715
  ...props,
778
716
  children: children ?? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react2.ChevronRight, {})
779
717
  }
@@ -787,17 +725,17 @@ var BreadcrumbEllipsis = ({
787
725
  {
788
726
  role: "presentation",
789
727
  "aria-hidden": "true",
790
- className: cn("flex items-center justify-center size-9", className),
728
+ className: cn("dl-breadcrumb-ellipsis", className),
791
729
  ...props,
792
730
  children: [
793
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react2.MoreHorizontal, { className: "size-4" }),
731
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_lucide_react2.MoreHorizontal, {}),
794
732
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: "sr-only", children: "More" })
795
733
  ]
796
734
  }
797
735
  );
798
- BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
736
+ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
799
737
 
800
- // src/components/calendar.tsx
738
+ // src/components/calendar/calendar.tsx
801
739
  var React9 = __toESM(require("react"), 1);
802
740
  var import_lucide_react3 = require("lucide-react");
803
741
  var import_react_day_picker = require("react-day-picker");
@@ -979,61 +917,33 @@ function CalendarDayButton({
979
917
  );
980
918
  }
981
919
 
982
- // src/components/card.tsx
920
+ // src/components/card/card.tsx
983
921
  var React10 = __toESM(require("react"), 1);
984
922
  var import_jsx_runtime10 = require("react/jsx-runtime");
985
- var Card = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
986
- "div",
987
- {
988
- ref,
989
- className: cn(
990
- "rounded-xl border bg-card text-card-foreground shadow",
991
- className
992
- ),
993
- ...props
994
- }
995
- ));
923
+ var Card = React10.forwardRef(
924
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cn("dl-card", className), ...props })
925
+ );
996
926
  Card.displayName = "Card";
997
- var CardHeader = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
998
- "div",
999
- {
1000
- ref,
1001
- className: cn("flex flex-col space-y-1.5 p-6", className),
1002
- ...props
1003
- }
1004
- ));
927
+ var CardHeader = React10.forwardRef(
928
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cn("dl-card__header", className), ...props })
929
+ );
1005
930
  CardHeader.displayName = "CardHeader";
1006
- var CardTitle = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1007
- "div",
1008
- {
1009
- ref,
1010
- className: cn("font-semibold leading-none tracking-tight", className),
1011
- ...props
1012
- }
1013
- ));
931
+ var CardTitle = React10.forwardRef(
932
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("h3", { ref, className: cn("dl-card__title", className), ...props })
933
+ );
1014
934
  CardTitle.displayName = "CardTitle";
1015
- var CardDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1016
- "div",
1017
- {
1018
- ref,
1019
- className: cn("text-sm text-muted-foreground", className),
1020
- ...props
1021
- }
1022
- ));
935
+ var CardDescription = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { ref, className: cn("dl-card__desc", className), ...props }));
1023
936
  CardDescription.displayName = "CardDescription";
1024
- var CardContent = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cn("p-6 pt-0", className), ...props }));
937
+ var CardContent = React10.forwardRef(
938
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cn("dl-card__content", className), ...props })
939
+ );
1025
940
  CardContent.displayName = "CardContent";
1026
- var CardFooter = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1027
- "div",
1028
- {
1029
- ref,
1030
- className: cn("flex items-center p-6 pt-0", className),
1031
- ...props
1032
- }
1033
- ));
941
+ var CardFooter = React10.forwardRef(
942
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref, className: cn("dl-card__footer", className), ...props })
943
+ );
1034
944
  CardFooter.displayName = "CardFooter";
1035
945
 
1036
- // src/components/carousel.tsx
946
+ // src/components/carousel/carousel.tsx
1037
947
  var React11 = __toESM(require("react"), 1);
1038
948
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
1039
949
  var import_lucide_react4 = require("lucide-react");
@@ -1057,27 +967,18 @@ var Carousel = React11.forwardRef(
1057
967
  ...props
1058
968
  }, ref) => {
1059
969
  const [carouselRef, api] = (0, import_embla_carousel_react.default)(
1060
- {
1061
- ...opts,
1062
- axis: orientation === "horizontal" ? "x" : "y"
1063
- },
970
+ { ...opts, axis: orientation === "horizontal" ? "x" : "y" },
1064
971
  plugins
1065
972
  );
1066
973
  const [canScrollPrev, setCanScrollPrev] = React11.useState(false);
1067
974
  const [canScrollNext, setCanScrollNext] = React11.useState(false);
1068
- const onSelect = React11.useCallback((api2) => {
1069
- if (!api2) {
1070
- return;
1071
- }
1072
- setCanScrollPrev(api2.canScrollPrev());
1073
- setCanScrollNext(api2.canScrollNext());
975
+ const onSelect = React11.useCallback((emblaApi) => {
976
+ if (!emblaApi) return;
977
+ setCanScrollPrev(emblaApi.canScrollPrev());
978
+ setCanScrollNext(emblaApi.canScrollNext());
1074
979
  }, []);
1075
- const scrollPrev = React11.useCallback(() => {
1076
- api?.scrollPrev();
1077
- }, [api]);
1078
- const scrollNext = React11.useCallback(() => {
1079
- api?.scrollNext();
1080
- }, [api]);
980
+ const scrollPrev = React11.useCallback(() => api?.scrollPrev(), [api]);
981
+ const scrollNext = React11.useCallback(() => api?.scrollNext(), [api]);
1081
982
  const handleKeyDown = React11.useCallback(
1082
983
  (event) => {
1083
984
  if (event.key === "ArrowLeft") {
@@ -1091,15 +992,11 @@ var Carousel = React11.forwardRef(
1091
992
  [scrollPrev, scrollNext]
1092
993
  );
1093
994
  React11.useEffect(() => {
1094
- if (!api || !setApi) {
1095
- return;
1096
- }
995
+ if (!api || !setApi) return;
1097
996
  setApi(api);
1098
997
  }, [api, setApi]);
1099
998
  React11.useEffect(() => {
1100
- if (!api) {
1101
- return;
1102
- }
999
+ if (!api) return;
1103
1000
  onSelect(api);
1104
1001
  api.on("reInit", onSelect);
1105
1002
  api.on("select", onSelect);
@@ -1125,7 +1022,7 @@ var Carousel = React11.forwardRef(
1125
1022
  {
1126
1023
  ref,
1127
1024
  onKeyDownCapture: handleKeyDown,
1128
- className: cn("relative", className),
1025
+ className: cn("dl-carousel", className),
1129
1026
  role: "region",
1130
1027
  "aria-roledescription": "carousel",
1131
1028
  ...props,
@@ -1137,39 +1034,43 @@ var Carousel = React11.forwardRef(
1137
1034
  }
1138
1035
  );
1139
1036
  Carousel.displayName = "Carousel";
1140
- var CarouselContent = React11.forwardRef(({ className, ...props }, ref) => {
1141
- const { carouselRef, orientation } = useCarousel();
1142
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1143
- "div",
1144
- {
1145
- ref,
1146
- className: cn(
1147
- "flex",
1148
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
1149
- className
1150
- ),
1151
- ...props
1152
- }
1153
- ) });
1154
- });
1037
+ var CarouselContent = React11.forwardRef(
1038
+ ({ className, ...props }, ref) => {
1039
+ const { carouselRef, orientation } = useCarousel();
1040
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { ref: carouselRef, className: "dl-carousel-viewport", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1041
+ "div",
1042
+ {
1043
+ ref,
1044
+ className: cn(
1045
+ "dl-carousel-track",
1046
+ orientation === "horizontal" ? "dl-carousel-track--horizontal" : "dl-carousel-track--vertical",
1047
+ className
1048
+ ),
1049
+ ...props
1050
+ }
1051
+ ) });
1052
+ }
1053
+ );
1155
1054
  CarouselContent.displayName = "CarouselContent";
1156
- var CarouselItem = React11.forwardRef(({ className, ...props }, ref) => {
1157
- const { orientation } = useCarousel();
1158
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1159
- "div",
1160
- {
1161
- ref,
1162
- role: "group",
1163
- "aria-roledescription": "slide",
1164
- className: cn(
1165
- "min-w-0 shrink-0 grow-0 basis-full",
1166
- orientation === "horizontal" ? "pl-4" : "pt-4",
1167
- className
1168
- ),
1169
- ...props
1170
- }
1171
- );
1172
- });
1055
+ var CarouselItem = React11.forwardRef(
1056
+ ({ className, ...props }, ref) => {
1057
+ const { orientation } = useCarousel();
1058
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1059
+ "div",
1060
+ {
1061
+ ref,
1062
+ role: "group",
1063
+ "aria-roledescription": "slide",
1064
+ className: cn(
1065
+ "dl-carousel-item",
1066
+ orientation === "horizontal" ? "dl-carousel-item--horizontal" : "dl-carousel-item--vertical",
1067
+ className
1068
+ ),
1069
+ ...props
1070
+ }
1071
+ );
1072
+ }
1073
+ );
1173
1074
  CarouselItem.displayName = "CarouselItem";
1174
1075
  var CarouselPrevious = React11.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
1175
1076
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
@@ -1180,47 +1081,49 @@ var CarouselPrevious = React11.forwardRef(({ className, variant = "outline", siz
1180
1081
  variant,
1181
1082
  size,
1182
1083
  className: cn(
1183
- "absolute rounded-full size-8",
1184
- orientation === "horizontal" ? "-left-12 top-1/2 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
1084
+ "dl-carousel-btn",
1085
+ orientation === "horizontal" ? "dl-carousel-btn--prev-horizontal" : "dl-carousel-btn--prev-vertical",
1185
1086
  className
1186
1087
  ),
1187
1088
  disabled: !canScrollPrev,
1188
1089
  onClick: scrollPrev,
1189
1090
  ...props,
1190
1091
  children: [
1191
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react4.ArrowLeft, { className: "size-4" }),
1092
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react4.ArrowLeft, {}),
1192
1093
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "Previous slide" })
1193
1094
  ]
1194
1095
  }
1195
1096
  );
1196
1097
  });
1197
1098
  CarouselPrevious.displayName = "CarouselPrevious";
1198
- var CarouselNext = React11.forwardRef(({ className, variant = "outline", size = "icon", ...props }, ref) => {
1199
- const { orientation, scrollNext, canScrollNext } = useCarousel();
1200
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1201
- Button,
1202
- {
1203
- ref,
1204
- variant,
1205
- size,
1206
- className: cn(
1207
- "absolute rounded-full size-8",
1208
- orientation === "horizontal" ? "-right-12 top-1/2 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
1209
- className
1210
- ),
1211
- disabled: !canScrollNext,
1212
- onClick: scrollNext,
1213
- ...props,
1214
- children: [
1215
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react4.ArrowRight, { className: "size-4" }),
1216
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "Next slide" })
1217
- ]
1218
- }
1219
- );
1220
- });
1221
- CarouselNext.displayName = "CarouselNext";
1099
+ var CarouselNext = React11.forwardRef(
1100
+ ({ className, variant = "outline", size = "icon", ...props }, ref) => {
1101
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
1102
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1103
+ Button,
1104
+ {
1105
+ ref,
1106
+ variant,
1107
+ size,
1108
+ className: cn(
1109
+ "dl-carousel-btn",
1110
+ orientation === "horizontal" ? "dl-carousel-btn--next-horizontal" : "dl-carousel-btn--next-vertical",
1111
+ className
1112
+ ),
1113
+ disabled: !canScrollNext,
1114
+ onClick: scrollNext,
1115
+ ...props,
1116
+ children: [
1117
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react4.ArrowRight, {}),
1118
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "sr-only", children: "Next slide" })
1119
+ ]
1120
+ }
1121
+ );
1122
+ }
1123
+ );
1124
+ CarouselNext.displayName = "CarouselNext";
1222
1125
 
1223
- // src/components/chart.tsx
1126
+ // src/components/chart/chart.tsx
1224
1127
  var React12 = __toESM(require("react"), 1);
1225
1128
  var RechartsPrimitive = __toESM(require("recharts"), 1);
1226
1129
  var import_jsx_runtime12 = require("react/jsx-runtime");
@@ -1233,26 +1136,25 @@ function useChart() {
1233
1136
  }
1234
1137
  return context;
1235
1138
  }
1236
- var ChartContainer = React12.forwardRef(({ id, className, children, config, ...props }, ref) => {
1237
- const uniqueId = React12.useId();
1238
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
1239
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1240
- "div",
1241
- {
1242
- "data-chart": chartId,
1243
- ref,
1244
- className: cn(
1245
- "flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-layer]:outline-none",
1246
- className
1247
- ),
1248
- ...props,
1249
- children: [
1250
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartStyle, { id: chartId, config }),
1251
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
1252
- ]
1253
- }
1254
- ) });
1255
- });
1139
+ var ChartContainer = React12.forwardRef(
1140
+ ({ id, className, children, config, ...props }, ref) => {
1141
+ const uniqueId = React12.useId();
1142
+ const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
1143
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1144
+ "div",
1145
+ {
1146
+ "data-chart": chartId,
1147
+ ref,
1148
+ className: cn("dl-chart-container", className),
1149
+ ...props,
1150
+ children: [
1151
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChartStyle, { id: chartId, config }),
1152
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
1153
+ ]
1154
+ }
1155
+ ) });
1156
+ }
1157
+ );
1256
1158
  ChartContainer.displayName = "Chart";
1257
1159
  var ChartStyle = ({ id, config }) => {
1258
1160
  const colorConfig = Object.entries(config).filter(
@@ -1325,70 +1227,60 @@ var ChartTooltipContent = React12.forwardRef(
1325
1227
  return null;
1326
1228
  }
1327
1229
  const nestLabel = payload.length === 1 && indicator !== "dot";
1328
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1329
- "div",
1330
- {
1331
- ref,
1332
- className: cn(
1333
- "grid min-w-32 items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",
1334
- className
1335
- ),
1336
- children: [
1337
- !nestLabel ? tooltipLabel : null,
1338
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1339
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
1340
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1341
- const indicatorColor = color || item.payload.fill || item.color;
1342
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1343
- "div",
1344
- {
1345
- className: cn(
1346
- "flex flex-wrap items-stretch gap-2 [&>svg]:text-muted-foreground [&>svg]:size-2.5",
1347
- indicator === "dot" && "items-center"
1348
- ),
1349
- children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1350
- itemConfig?.icon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1351
- "div",
1230
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { ref, className: cn("dl-chart-tooltip", className), children: [
1231
+ !nestLabel ? tooltipLabel : null,
1232
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1233
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
1234
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
1235
+ const indicatorColor = color || item.payload.fill || item.color;
1236
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1237
+ "div",
1238
+ {
1239
+ className: cn(
1240
+ "flex flex-wrap items-stretch gap-2 [&>svg]:text-muted-foreground [&>svg]:size-2.5",
1241
+ indicator === "dot" && "items-center"
1242
+ ),
1243
+ children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
1244
+ itemConfig?.icon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1245
+ "div",
1246
+ {
1247
+ className: cn(
1248
+ "shrink-0 rounded-xs border-border bg-(--color-bg)",
1352
1249
  {
1353
- className: cn(
1354
- "shrink-0 rounded-xs border-border bg-(--color-bg)",
1355
- {
1356
- "h-2.5 w-2.5": indicator === "dot",
1357
- "w-1": indicator === "line",
1358
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
1359
- "my-0.5": nestLabel && indicator === "dashed"
1360
- }
1361
- ),
1362
- style: {
1363
- "--color-bg": indicatorColor,
1364
- "--color-border": indicatorColor
1365
- }
1250
+ "h-2.5 w-2.5": indicator === "dot",
1251
+ "w-1": indicator === "line",
1252
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
1253
+ "my-0.5": nestLabel && indicator === "dashed"
1366
1254
  }
1367
1255
  ),
1368
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1369
- "div",
1370
- {
1371
- className: cn(
1372
- "flex flex-1 justify-between leading-none",
1373
- nestLabel ? "items-end" : "items-center"
1374
- ),
1375
- children: [
1376
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "grid gap-1.5", children: [
1377
- nestLabel ? tooltipLabel : null,
1378
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1379
- ] }),
1380
- item.value && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
1381
- ]
1382
- }
1383
- )
1384
- ] })
1385
- },
1386
- item.dataKey
1387
- );
1388
- }) })
1389
- ]
1390
- }
1391
- );
1256
+ style: {
1257
+ "--color-bg": indicatorColor,
1258
+ "--color-border": indicatorColor
1259
+ }
1260
+ }
1261
+ ),
1262
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1263
+ "div",
1264
+ {
1265
+ className: cn(
1266
+ "flex flex-1 justify-between leading-none",
1267
+ nestLabel ? "items-end" : "items-center"
1268
+ ),
1269
+ children: [
1270
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "grid gap-1.5", children: [
1271
+ nestLabel ? tooltipLabel : null,
1272
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1273
+ ] }),
1274
+ item.value && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
1275
+ ]
1276
+ }
1277
+ )
1278
+ ] })
1279
+ },
1280
+ item.dataKey
1281
+ );
1282
+ }) })
1283
+ ] });
1392
1284
  }
1393
1285
  );
1394
1286
  ChartTooltipContent.displayName = "ChartTooltip";
@@ -1404,7 +1296,7 @@ var ChartLegendContent = React12.forwardRef(
1404
1296
  {
1405
1297
  ref,
1406
1298
  className: cn(
1407
- "flex items-center justify-center gap-4",
1299
+ "dl-chart-legend",
1408
1300
  verticalAlign === "top" ? "pb-3" : "pt-3",
1409
1301
  className
1410
1302
  ),
@@ -1452,7 +1344,7 @@ function getPayloadConfigFromPayload(config, payload, key) {
1452
1344
  return configLabelKey in config ? config[configLabelKey] : config[key];
1453
1345
  }
1454
1346
 
1455
- // src/components/checkbox.tsx
1347
+ // src/components/checkbox/checkbox.tsx
1456
1348
  var React13 = __toESM(require("react"), 1);
1457
1349
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
1458
1350
  var import_lucide_react5 = require("lucide-react");
@@ -1461,34 +1353,25 @@ var Checkbox = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1461
1353
  CheckboxPrimitive.Root,
1462
1354
  {
1463
1355
  ref,
1464
- className: cn(
1465
- "grid place-content-center peer shrink-0 rounded-sm border border-primary shadow cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground size-4",
1466
- className
1467
- ),
1356
+ className: cn("dl-checkbox", className),
1468
1357
  ...props,
1469
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1470
- CheckboxPrimitive.Indicator,
1471
- {
1472
- className: cn("grid place-content-center text-current"),
1473
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react5.Check, { className: "size-4" })
1474
- }
1475
- )
1358
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CheckboxPrimitive.Indicator, { className: "grid place-content-center text-current", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_lucide_react5.Check, { style: { width: "0.75rem", height: "0.75rem" } }) })
1476
1359
  }
1477
1360
  ));
1478
1361
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
1479
1362
 
1480
- // src/components/collapsible.tsx
1363
+ // src/components/collapsible/collapsible.tsx
1481
1364
  var CollapsiblePrimitive = __toESM(require("@radix-ui/react-collapsible"), 1);
1482
1365
  var Collapsible = CollapsiblePrimitive.Root;
1483
1366
  var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
1484
1367
  var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
1485
1368
 
1486
- // src/components/command.tsx
1369
+ // src/components/command/command.tsx
1487
1370
  var React15 = __toESM(require("react"), 1);
1488
1371
  var import_cmdk = require("cmdk");
1489
1372
  var import_lucide_react7 = require("lucide-react");
1490
1373
 
1491
- // src/components/dialog.tsx
1374
+ // src/components/dialog/dialog.tsx
1492
1375
  var React14 = __toESM(require("react"), 1);
1493
1376
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
1494
1377
  var import_lucide_react6 = require("lucide-react");
@@ -1501,10 +1384,7 @@ var DialogOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__P
1501
1384
  DialogPrimitive.Overlay,
1502
1385
  {
1503
1386
  ref,
1504
- className: cn(
1505
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1506
- className
1507
- ),
1387
+ className: cn("dl-dialog-overlay", className),
1508
1388
  ...props
1509
1389
  }
1510
1390
  ));
@@ -1515,16 +1395,25 @@ var DialogContent = React14.forwardRef(({ className, children, ...props }, ref)
1515
1395
  DialogPrimitive.Content,
1516
1396
  {
1517
1397
  ref,
1518
- className: cn(
1519
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 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 sm:rounded-lg translate-[-50%]",
1520
- className
1521
- ),
1398
+ className: cn("dl-dialog-content", className),
1522
1399
  ...props,
1523
1400
  children: [
1524
1401
  children,
1525
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background cursor-pointer transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
1526
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.X, { className: "size-4" }),
1527
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "sr-only", children: "Close" })
1402
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(DialogPrimitive.Close, { className: "dl-dialog-close", children: [
1403
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_lucide_react6.X, { style: { width: "1rem", height: "1rem" } }),
1404
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1405
+ "span",
1406
+ {
1407
+ style: {
1408
+ position: "absolute",
1409
+ width: 1,
1410
+ height: 1,
1411
+ overflow: "hidden",
1412
+ clip: "rect(0,0,0,0)"
1413
+ },
1414
+ children: "Close"
1415
+ }
1416
+ )
1528
1417
  ] })
1529
1418
  ]
1530
1419
  }
@@ -1534,39 +1423,18 @@ DialogContent.displayName = DialogPrimitive.Content.displayName;
1534
1423
  var DialogHeader = ({
1535
1424
  className,
1536
1425
  ...props
1537
- }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1538
- "div",
1539
- {
1540
- className: cn(
1541
- "flex flex-col space-y-1.5 text-center sm:text-left",
1542
- className
1543
- ),
1544
- ...props
1545
- }
1546
- );
1426
+ }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: cn("dl-dialog__header", className), ...props });
1547
1427
  DialogHeader.displayName = "DialogHeader";
1548
1428
  var DialogFooter = ({
1549
1429
  className,
1550
1430
  ...props
1551
- }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1552
- "div",
1553
- {
1554
- className: cn(
1555
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
1556
- className
1557
- ),
1558
- ...props
1559
- }
1560
- );
1431
+ }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: cn("dl-dialog__footer", className), ...props });
1561
1432
  DialogFooter.displayName = "DialogFooter";
1562
1433
  var DialogTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1563
1434
  DialogPrimitive.Title,
1564
1435
  {
1565
1436
  ref,
1566
- className: cn(
1567
- "text-lg font-semibold leading-none tracking-tight",
1568
- className
1569
- ),
1437
+ className: cn("dl-dialog__title", className),
1570
1438
  ...props
1571
1439
  }
1572
1440
  ));
@@ -1575,39 +1443,33 @@ var DialogDescription = React14.forwardRef(({ className, ...props }, ref) => /*
1575
1443
  DialogPrimitive.Description,
1576
1444
  {
1577
1445
  ref,
1578
- className: cn("text-sm text-muted-foreground", className),
1446
+ className: cn("dl-dialog__desc", className),
1579
1447
  ...props
1580
1448
  }
1581
1449
  ));
1582
1450
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
1583
1451
 
1584
- // src/components/command.tsx
1452
+ // src/components/command/command.tsx
1585
1453
  var import_jsx_runtime15 = require("react/jsx-runtime");
1586
1454
  var Command = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1587
1455
  import_cmdk.Command,
1588
1456
  {
1589
1457
  ref,
1590
- className: cn(
1591
- "flex flex-col overflow-hidden rounded-md bg-popover text-popover-foreground size-full",
1592
- className
1593
- ),
1458
+ className: cn("dl-command", className),
1594
1459
  ...props
1595
1460
  }
1596
1461
  ));
1597
1462
  Command.displayName = import_cmdk.Command.displayName;
1598
1463
  var CommandDialog = ({ children, ...props }) => {
1599
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogContent, { className: "overflow-hidden p-0", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Command, { className: "**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 **:[[cmdk-item]]:py-3 [&_[cmdk-input-wrapper]_svg]:size-5", children }) }) });
1464
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DialogContent, { className: "dl-command-dialog-content", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Command, { children }) }) });
1600
1465
  };
1601
- var CommandInput = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
1602
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react7.Search, { className: "mr-2 shrink-0 opacity-50 size-4" }),
1466
+ var CommandInput = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "dl-command-input-wrapper", "cmdk-input-wrapper": "", children: [
1467
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_lucide_react7.Search, { className: "dl-command-input-icon" }),
1603
1468
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1604
1469
  import_cmdk.Command.Input,
1605
1470
  {
1606
1471
  ref,
1607
- className: cn(
1608
- "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
1609
- className
1610
- ),
1472
+ className: cn("dl-command-input", className),
1611
1473
  ...props
1612
1474
  }
1613
1475
  )
@@ -1617,28 +1479,18 @@ var CommandList = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
1617
1479
  import_cmdk.Command.List,
1618
1480
  {
1619
1481
  ref,
1620
- className: cn("max-h-75 overflow-y-auto overflow-x-hidden", className),
1482
+ className: cn("dl-command-list", className),
1621
1483
  ...props
1622
1484
  }
1623
1485
  ));
1624
1486
  CommandList.displayName = import_cmdk.Command.List.displayName;
1625
- var CommandEmpty = React15.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1626
- import_cmdk.Command.Empty,
1627
- {
1628
- ref,
1629
- className: "py-6 text-center text-sm",
1630
- ...props
1631
- }
1632
- ));
1487
+ var CommandEmpty = React15.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_cmdk.Command.Empty, { ref, className: "dl-command-empty", ...props }));
1633
1488
  CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
1634
1489
  var CommandGroup = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1635
1490
  import_cmdk.Command.Group,
1636
1491
  {
1637
1492
  ref,
1638
- className: cn(
1639
- "overflow-hidden p-1 **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",
1640
- className
1641
- ),
1493
+ className: cn("dl-command-group", className),
1642
1494
  ...props
1643
1495
  }
1644
1496
  ));
@@ -1647,7 +1499,7 @@ var CommandSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @
1647
1499
  import_cmdk.Command.Separator,
1648
1500
  {
1649
1501
  ref,
1650
- className: cn("-mx-1 h-px bg-border", className),
1502
+ className: cn("dl-command-separator", className),
1651
1503
  ...props
1652
1504
  }
1653
1505
  ));
@@ -1656,146 +1508,142 @@ var CommandItem = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
1656
1508
  import_cmdk.Command.Item,
1657
1509
  {
1658
1510
  ref,
1659
- className: cn(
1660
- "relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0",
1661
- className
1662
- ),
1511
+ className: cn("dl-command-item", className),
1663
1512
  ...props
1664
1513
  }
1665
1514
  ));
1666
1515
  CommandItem.displayName = import_cmdk.Command.Item.displayName;
1667
- var CommandShortcut = ({
1668
- className,
1669
- ...props
1670
- }) => {
1671
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1672
- "span",
1673
- {
1674
- className: cn(
1675
- "ml-auto text-xs tracking-widest text-muted-foreground",
1676
- className
1677
- ),
1678
- ...props
1679
- }
1680
- );
1516
+ var CommandShortcut = ({ className, ...props }) => {
1517
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: cn("dl-command-shortcut", className), ...props });
1681
1518
  };
1682
1519
  CommandShortcut.displayName = "CommandShortcut";
1683
1520
 
1684
- // src/components/context-menu.tsx
1521
+ // src/components/confirm-dialog/confirm-dialog.tsx
1522
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1523
+ function ConfirmDialog({
1524
+ open,
1525
+ onOpenChange,
1526
+ title,
1527
+ description,
1528
+ onConfirm,
1529
+ confirmText = "Confirm",
1530
+ cancelText = "Cancel",
1531
+ destructive = false
1532
+ }) {
1533
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AlertDialogContent, { children: [
1534
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AlertDialogHeader, { children: [
1535
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialogTitle, { children: title }),
1536
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialogDescription, { children: description })
1537
+ ] }),
1538
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(AlertDialogFooter, { children: [
1539
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AlertDialogCancel, { children: cancelText }),
1540
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1541
+ AlertDialogAction,
1542
+ {
1543
+ onClick: onConfirm,
1544
+ className: destructive ? "dl-btn--destructive" : "",
1545
+ children: confirmText
1546
+ }
1547
+ )
1548
+ ] })
1549
+ ] }) });
1550
+ }
1551
+
1552
+ // src/components/context-menu/context-menu.tsx
1685
1553
  var React16 = __toESM(require("react"), 1);
1686
1554
  var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
1687
1555
  var import_lucide_react8 = require("lucide-react");
1688
- var import_jsx_runtime16 = require("react/jsx-runtime");
1556
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1689
1557
  var ContextMenu = ContextMenuPrimitive.Root;
1690
1558
  var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
1691
1559
  var ContextMenuGroup = ContextMenuPrimitive.Group;
1692
1560
  var ContextMenuPortal = ContextMenuPrimitive.Portal;
1693
1561
  var ContextMenuSub = ContextMenuPrimitive.Sub;
1694
1562
  var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
1695
- var ContextMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1563
+ var ContextMenuSubTrigger = React16.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1696
1564
  ContextMenuPrimitive.SubTrigger,
1697
1565
  {
1698
1566
  ref,
1699
1567
  className: cn(
1700
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground",
1568
+ "dl-menu-item dl-menu-sub-trigger",
1701
1569
  inset && "pl-8",
1702
1570
  className
1703
1571
  ),
1704
1572
  ...props,
1705
1573
  children: [
1706
1574
  children,
1707
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.ChevronRight, { className: "ml-auto size-4" })
1575
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react8.ChevronRight, { className: "ml-auto size-4" })
1708
1576
  ]
1709
1577
  }
1710
1578
  ));
1711
1579
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
1712
- var ContextMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1580
+ var ContextMenuSubContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1713
1581
  ContextMenuPrimitive.SubContent,
1714
1582
  {
1715
1583
  ref,
1716
- className: cn(
1717
- "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-(--radix-context-menu-content-transform-origin)",
1718
- className
1719
- ),
1584
+ className: cn("dl-menu-content", className),
1720
1585
  ...props
1721
1586
  }
1722
1587
  ));
1723
1588
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
1724
- var ContextMenuContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1589
+ var ContextMenuContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1725
1590
  ContextMenuPrimitive.Content,
1726
1591
  {
1727
1592
  ref,
1728
- className: cn(
1729
- "z-50 max-h-(--radix-context-menu-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 origin-(--radix-context-menu-content-transform-origin)",
1730
- className
1731
- ),
1593
+ className: cn("dl-context-menu-content", className),
1732
1594
  ...props
1733
1595
  }
1734
1596
  ) }));
1735
1597
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
1736
- var ContextMenuItem = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1598
+ var ContextMenuItem = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1737
1599
  ContextMenuPrimitive.Item,
1738
1600
  {
1739
1601
  ref,
1740
- className: cn(
1741
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1742
- inset && "pl-8",
1743
- className
1744
- ),
1602
+ className: cn("dl-menu-item", inset && "pl-8", className),
1745
1603
  ...props
1746
1604
  }
1747
1605
  ));
1748
1606
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
1749
- var ContextMenuCheckboxItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1607
+ var ContextMenuCheckboxItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1750
1608
  ContextMenuPrimitive.CheckboxItem,
1751
1609
  {
1752
1610
  ref,
1753
- className: cn(
1754
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1755
- className
1756
- ),
1611
+ className: cn("dl-menu-item dl-menu-checkbox-item", className),
1757
1612
  ...props,
1758
1613
  children: [
1759
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.Check, { className: "size-4" }) }) }),
1614
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "dl-menu-checkbox-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react8.Check, { className: "size-4" }) }) }),
1760
1615
  children
1761
1616
  ]
1762
1617
  }
1763
1618
  ));
1764
1619
  ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
1765
- var ContextMenuRadioItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1620
+ var ContextMenuRadioItem = React16.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1766
1621
  ContextMenuPrimitive.RadioItem,
1767
1622
  {
1768
1623
  ref,
1769
- className: cn(
1770
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1771
- className
1772
- ),
1624
+ className: cn("dl-menu-item dl-menu-radio-item", className),
1773
1625
  ...props,
1774
1626
  children: [
1775
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_lucide_react8.Circle, { className: "fill-current size-4" }) }) }),
1627
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "dl-menu-radio-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_lucide_react8.Circle, { className: "fill-current size-2" }) }) }),
1776
1628
  children
1777
1629
  ]
1778
1630
  }
1779
1631
  ));
1780
1632
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
1781
- var ContextMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1633
+ var ContextMenuLabel = React16.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1782
1634
  ContextMenuPrimitive.Label,
1783
1635
  {
1784
1636
  ref,
1785
- className: cn(
1786
- "px-2 py-1.5 text-sm font-semibold text-foreground",
1787
- inset && "pl-8",
1788
- className
1789
- ),
1637
+ className: cn("dl-menu-label", inset && "pl-8", className),
1790
1638
  ...props
1791
1639
  }
1792
1640
  ));
1793
1641
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
1794
- var ContextMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1642
+ var ContextMenuSeparator = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1795
1643
  ContextMenuPrimitive.Separator,
1796
1644
  {
1797
1645
  ref,
1798
- className: cn("-mx-1 my-1 h-px bg-border", className),
1646
+ className: cn("dl-menu-separator", className),
1799
1647
  ...props
1800
1648
  }
1801
1649
  ));
@@ -1804,27 +1652,93 @@ var ContextMenuShortcut = ({
1804
1652
  className,
1805
1653
  ...props
1806
1654
  }) => {
1807
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1808
- "span",
1809
- {
1810
- className: cn(
1811
- "ml-auto text-xs tracking-widest text-muted-foreground",
1812
- className
1813
- ),
1814
- ...props
1815
- }
1816
- );
1655
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: cn("dl-menu-shortcut", className), ...props });
1817
1656
  };
1818
1657
  ContextMenuShortcut.displayName = "ContextMenuShortcut";
1819
1658
 
1820
- // src/components/drawer.tsx
1659
+ // src/components/date-picker/date-picker.tsx
1660
+ var React18 = __toESM(require("react"), 1);
1661
+ var import_date_fns = require("date-fns");
1662
+ var import_lucide_react9 = require("lucide-react");
1663
+
1664
+ // src/components/popover/popover.tsx
1821
1665
  var React17 = __toESM(require("react"), 1);
1666
+ var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
1667
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1668
+ var Popover = PopoverPrimitive.Root;
1669
+ var PopoverTrigger = PopoverPrimitive.Trigger;
1670
+ var PopoverAnchor = PopoverPrimitive.Anchor;
1671
+ var PopoverContent = React17.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1672
+ PopoverPrimitive.Content,
1673
+ {
1674
+ ref,
1675
+ align,
1676
+ sideOffset,
1677
+ className: cn("dl-popover", className),
1678
+ ...props
1679
+ }
1680
+ ) }));
1681
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1682
+
1683
+ // src/components/date-picker/date-picker.tsx
1684
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1685
+ function DatePicker({
1686
+ value,
1687
+ onChange,
1688
+ placeholder = "Pick a date",
1689
+ className,
1690
+ disabled
1691
+ }) {
1692
+ const date = React18.useMemo(() => {
1693
+ if (!value) return void 0;
1694
+ const parts = value.split("-");
1695
+ if (parts.length !== 3) {
1696
+ const d = new Date(value);
1697
+ return isNaN(d.getTime()) ? void 0 : d;
1698
+ }
1699
+ const year = parseInt(parts[0], 10);
1700
+ const month = parseInt(parts[1], 10) - 1;
1701
+ const day = parseInt(parts[2], 10);
1702
+ return new Date(year, month, day, 12, 0, 0);
1703
+ }, [value]);
1704
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Popover, { children: [
1705
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1706
+ Button,
1707
+ {
1708
+ variant: "outline",
1709
+ type: "button",
1710
+ disabled,
1711
+ className: cn(
1712
+ "dl-date-picker-trigger",
1713
+ !value && "dl-date-picker-trigger--placeholder",
1714
+ className
1715
+ ),
1716
+ children: [
1717
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react9.Calendar, { className: "dl-date-picker-icon" }),
1718
+ date && !isNaN(date.getTime()) ? (0, import_date_fns.format)(date, "PPP") : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: placeholder })
1719
+ ]
1720
+ }
1721
+ ) }),
1722
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PopoverContent, { className: "dl-date-picker-content", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1723
+ Calendar,
1724
+ {
1725
+ mode: "single",
1726
+ selected: date,
1727
+ onSelect: (selectedDate) => onChange?.(selectedDate ? (0, import_date_fns.format)(selectedDate, "yyyy-MM-dd") : ""),
1728
+ initialFocus: true
1729
+ }
1730
+ ) })
1731
+ ] });
1732
+ }
1733
+
1734
+ // src/components/drawer/drawer.tsx
1735
+ var React19 = __toESM(require("react"), 1);
1822
1736
  var import_vaul = require("vaul");
1823
- var import_jsx_runtime17 = require("react/jsx-runtime");
1737
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1824
1738
  var Drawer = ({
1825
1739
  shouldScaleBackground = true,
1826
1740
  ...props
1827
- }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1741
+ }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1828
1742
  import_vaul.Drawer.Root,
1829
1743
  {
1830
1744
  shouldScaleBackground,
@@ -1835,28 +1749,25 @@ Drawer.displayName = "Drawer";
1835
1749
  var DrawerTrigger = import_vaul.Drawer.Trigger;
1836
1750
  var DrawerPortal = import_vaul.Drawer.Portal;
1837
1751
  var DrawerClose = import_vaul.Drawer.Close;
1838
- var DrawerOverlay = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1752
+ var DrawerOverlay = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1839
1753
  import_vaul.Drawer.Overlay,
1840
1754
  {
1841
1755
  ref,
1842
- className: cn("fixed inset-0 z-50 bg-black/80", className),
1756
+ className: cn("dl-drawer-overlay", className),
1843
1757
  ...props
1844
1758
  }
1845
1759
  ));
1846
1760
  DrawerOverlay.displayName = import_vaul.Drawer.Overlay.displayName;
1847
- var DrawerContent = React17.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(DrawerPortal, { children: [
1848
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(DrawerOverlay, {}),
1849
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1761
+ var DrawerContent = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(DrawerPortal, { children: [
1762
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DrawerOverlay, {}),
1763
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1850
1764
  import_vaul.Drawer.Content,
1851
1765
  {
1852
1766
  ref,
1853
- className: cn(
1854
- "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background",
1855
- className
1856
- ),
1767
+ className: cn("dl-drawer-content", className),
1857
1768
  ...props,
1858
1769
  children: [
1859
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "mx-auto mt-4 h-2 w-25 rounded-full bg-muted" }),
1770
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "dl-drawer-handle" }),
1860
1771
  children
1861
1772
  ]
1862
1773
  }
@@ -1866,164 +1777,138 @@ DrawerContent.displayName = "DrawerContent";
1866
1777
  var DrawerHeader = ({
1867
1778
  className,
1868
1779
  ...props
1869
- }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1870
- "div",
1871
- {
1872
- className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
1873
- ...props
1874
- }
1875
- );
1780
+ }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: cn("dl-drawer-header", className), ...props });
1876
1781
  DrawerHeader.displayName = "DrawerHeader";
1877
1782
  var DrawerFooter = ({
1878
1783
  className,
1879
1784
  ...props
1880
- }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1881
- "div",
1882
- {
1883
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
1884
- ...props
1885
- }
1886
- );
1785
+ }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: cn("dl-drawer-footer", className), ...props });
1887
1786
  DrawerFooter.displayName = "DrawerFooter";
1888
- var DrawerTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1787
+ var DrawerTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1889
1788
  import_vaul.Drawer.Title,
1890
1789
  {
1891
1790
  ref,
1892
- className: cn(
1893
- "text-lg font-semibold leading-none tracking-tight",
1894
- className
1895
- ),
1791
+ className: cn("dl-drawer-title", className),
1896
1792
  ...props
1897
1793
  }
1898
1794
  ));
1899
1795
  DrawerTitle.displayName = import_vaul.Drawer.Title.displayName;
1900
- var DrawerDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1796
+ var DrawerDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1901
1797
  import_vaul.Drawer.Description,
1902
1798
  {
1903
1799
  ref,
1904
- className: cn("text-sm text-muted-foreground", className),
1800
+ className: cn("dl-drawer-desc", className),
1905
1801
  ...props
1906
1802
  }
1907
1803
  ));
1908
1804
  DrawerDescription.displayName = import_vaul.Drawer.Description.displayName;
1909
1805
 
1910
- // src/components/dropdown-menu.tsx
1911
- var React18 = __toESM(require("react"), 1);
1806
+ // src/components/dropdown-menu/dropdown-menu.tsx
1807
+ var React20 = __toESM(require("react"), 1);
1912
1808
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
1913
- var import_lucide_react9 = require("lucide-react");
1914
- var import_jsx_runtime18 = require("react/jsx-runtime");
1809
+ var import_lucide_react10 = require("lucide-react");
1810
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1915
1811
  var DropdownMenu = DropdownMenuPrimitive.Root;
1916
1812
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
1917
1813
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
1918
1814
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
1919
1815
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
1920
1816
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
1921
- var DropdownMenuSubTrigger = React18.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1817
+ var DropdownMenuSubTrigger = React20.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1922
1818
  DropdownMenuPrimitive.SubTrigger,
1923
1819
  {
1924
1820
  ref,
1925
1821
  className: cn(
1926
- "flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
1822
+ "dl-menu-item dl-menu-sub-trigger",
1927
1823
  inset && "pl-8",
1928
1824
  className
1929
1825
  ),
1930
1826
  ...props,
1931
1827
  children: [
1932
1828
  children,
1933
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react9.ChevronRight, { className: "ml-auto" })
1829
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1830
+ import_lucide_react10.ChevronRight,
1831
+ {
1832
+ style: { marginLeft: "auto", width: "1rem", height: "1rem" }
1833
+ }
1834
+ )
1934
1835
  ]
1935
1836
  }
1936
1837
  ));
1937
1838
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
1938
- var DropdownMenuSubContent = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1839
+ var DropdownMenuSubContent = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1939
1840
  DropdownMenuPrimitive.SubContent,
1940
1841
  {
1941
1842
  ref,
1942
- className: cn(
1943
- "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-(--radix-dropdown-menu-content-transform-origin)",
1944
- className
1945
- ),
1843
+ className: cn("dl-menu-content", className),
1946
1844
  ...props
1947
1845
  }
1948
1846
  ));
1949
1847
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
1950
- var DropdownMenuContent = React18.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1848
+ var DropdownMenuContent = React20.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1951
1849
  DropdownMenuPrimitive.Content,
1952
1850
  {
1953
1851
  ref,
1954
1852
  sideOffset,
1955
- className: cn(
1956
- "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
1957
- "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 origin-(--radix-dropdown-menu-content-transform-origin)",
1958
- className
1959
- ),
1853
+ className: cn("dl-menu-content", className),
1960
1854
  ...props
1961
1855
  }
1962
1856
  ) }));
1963
1857
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
1964
- var DropdownMenuItem = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1858
+ var DropdownMenuItem = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1965
1859
  DropdownMenuPrimitive.Item,
1966
1860
  {
1967
1861
  ref,
1968
- className: cn(
1969
- "relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",
1970
- inset && "pl-8",
1971
- className
1972
- ),
1862
+ className: cn("dl-menu-item", inset && "pl-8", className),
1973
1863
  ...props
1974
1864
  }
1975
1865
  ));
1976
1866
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
1977
- var DropdownMenuCheckboxItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1867
+ var DropdownMenuCheckboxItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1978
1868
  DropdownMenuPrimitive.CheckboxItem,
1979
1869
  {
1980
1870
  ref,
1981
- className: cn(
1982
- "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1983
- className
1984
- ),
1871
+ className: cn("dl-menu-item dl-menu-checkbox-item", className),
1985
1872
  ...props,
1986
1873
  children: [
1987
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react9.Check, { className: "size-4" }) }) }),
1874
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "dl-menu-checkbox-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react10.Check, { style: { width: "1rem", height: "1rem" } }) }) }),
1988
1875
  children
1989
1876
  ]
1990
1877
  }
1991
1878
  ));
1992
1879
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
1993
- var DropdownMenuRadioItem = React18.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1880
+ var DropdownMenuRadioItem = React20.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
1994
1881
  DropdownMenuPrimitive.RadioItem,
1995
1882
  {
1996
1883
  ref,
1997
- className: cn(
1998
- "relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
1999
- className
2000
- ),
1884
+ className: cn("dl-menu-item dl-menu-radio-item", className),
2001
1885
  ...props,
2002
1886
  children: [
2003
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_lucide_react9.Circle, { className: "fill-current size-2" }) }) }),
1887
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "dl-menu-radio-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1888
+ import_lucide_react10.Circle,
1889
+ {
1890
+ style: { width: "0.5rem", height: "0.5rem", fill: "currentColor" }
1891
+ }
1892
+ ) }) }),
2004
1893
  children
2005
1894
  ]
2006
1895
  }
2007
1896
  ));
2008
1897
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
2009
- var DropdownMenuLabel = React18.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1898
+ var DropdownMenuLabel = React20.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2010
1899
  DropdownMenuPrimitive.Label,
2011
1900
  {
2012
1901
  ref,
2013
- className: cn(
2014
- "px-2 py-1.5 text-sm font-semibold",
2015
- inset && "pl-8",
2016
- className
2017
- ),
1902
+ className: cn("dl-menu-label", inset && "pl-8", className),
2018
1903
  ...props
2019
1904
  }
2020
1905
  ));
2021
1906
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
2022
- var DropdownMenuSeparator = React18.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1907
+ var DropdownMenuSeparator = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2023
1908
  DropdownMenuPrimitive.Separator,
2024
1909
  {
2025
1910
  ref,
2026
- className: cn("-mx-1 my-1 h-px bg-muted", className),
1911
+ className: cn("dl-menu-separator", className),
2027
1912
  ...props
2028
1913
  }
2029
1914
  ));
@@ -2032,30 +1917,22 @@ var DropdownMenuShortcut = ({
2032
1917
  className,
2033
1918
  ...props
2034
1919
  }) => {
2035
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2036
- "span",
2037
- {
2038
- className: cn("ml-auto text-xs tracking-widest opacity-60", className),
2039
- ...props
2040
- }
2041
- );
1920
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: cn("dl-menu-shortcut", className), ...props });
2042
1921
  };
2043
1922
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
2044
1923
 
2045
- // src/components/form.tsx
2046
- var React20 = __toESM(require("react"), 1);
1924
+ // src/components/form/form.tsx
1925
+ var React22 = __toESM(require("react"), 1);
2047
1926
  var import_react_slot3 = require("@radix-ui/react-slot");
2048
1927
  var import_react_hook_form = require("react-hook-form");
2049
1928
 
2050
- // src/components/label.tsx
2051
- var React19 = __toESM(require("react"), 1);
1929
+ // src/components/label/label.tsx
1930
+ var React21 = __toESM(require("react"), 1);
2052
1931
  var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
2053
1932
  var import_class_variance_authority4 = require("class-variance-authority");
2054
- var import_jsx_runtime19 = require("react/jsx-runtime");
2055
- var labelVariants = (0, import_class_variance_authority4.cva)(
2056
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
2057
- );
2058
- var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1933
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1934
+ var labelVariants = (0, import_class_variance_authority4.cva)("dl-label");
1935
+ var Label3 = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2059
1936
  LabelPrimitive.Root,
2060
1937
  {
2061
1938
  ref,
@@ -2065,20 +1942,20 @@ var Label3 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
2065
1942
  ));
2066
1943
  Label3.displayName = LabelPrimitive.Root.displayName;
2067
1944
 
2068
- // src/components/form.tsx
2069
- var import_jsx_runtime20 = require("react/jsx-runtime");
1945
+ // src/components/form/form.tsx
1946
+ var import_jsx_runtime23 = require("react/jsx-runtime");
2070
1947
  var Form = import_react_hook_form.FormProvider;
2071
- var FormFieldContext = React20.createContext(
1948
+ var FormFieldContext = React22.createContext(
2072
1949
  null
2073
1950
  );
2074
1951
  var FormField = ({
2075
1952
  ...props
2076
1953
  }) => {
2077
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_react_hook_form.Controller, { ...props }) });
1954
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_react_hook_form.Controller, { ...props }) });
2078
1955
  };
2079
1956
  var useFormField = () => {
2080
- const fieldContext = React20.useContext(FormFieldContext);
2081
- const itemContext = React20.useContext(FormItemContext);
1957
+ const fieldContext = React22.useContext(FormFieldContext);
1958
+ const itemContext = React22.useContext(FormItemContext);
2082
1959
  const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
2083
1960
  if (!fieldContext) {
2084
1961
  throw new Error("useFormField should be used within <FormField>");
@@ -2097,28 +1974,28 @@ var useFormField = () => {
2097
1974
  ...fieldState
2098
1975
  };
2099
1976
  };
2100
- var FormItemContext = React20.createContext(null);
2101
- var FormItem = React20.forwardRef(({ className, ...props }, ref) => {
2102
- const id = React20.useId();
2103
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { ref, className: cn("space-y-2", className), ...props }) });
1977
+ var FormItemContext = React22.createContext(null);
1978
+ var FormItem = React22.forwardRef(({ className, ...props }, ref) => {
1979
+ const id = React22.useId();
1980
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { ref, className: cn("dl-form-item", className), ...props }) });
2104
1981
  });
2105
1982
  FormItem.displayName = "FormItem";
2106
- var FormLabel = React20.forwardRef(({ className, ...props }, ref) => {
1983
+ var FormLabel = React22.forwardRef(({ className, ...props }, ref) => {
2107
1984
  const { error, formItemId } = useFormField();
2108
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1985
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2109
1986
  Label3,
2110
1987
  {
2111
1988
  ref,
2112
- className: cn(error && "text-destructive", className),
1989
+ className: cn(error && "dl-form-label--error", className),
2113
1990
  htmlFor: formItemId,
2114
1991
  ...props
2115
1992
  }
2116
1993
  );
2117
1994
  });
2118
1995
  FormLabel.displayName = "FormLabel";
2119
- var FormControl = React20.forwardRef(({ ...props }, ref) => {
1996
+ var FormControl = React22.forwardRef(({ ...props }, ref) => {
2120
1997
  const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2121
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1998
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2122
1999
  import_react_slot3.Slot,
2123
2000
  {
2124
2001
  ref,
@@ -2130,31 +2007,31 @@ var FormControl = React20.forwardRef(({ ...props }, ref) => {
2130
2007
  );
2131
2008
  });
2132
2009
  FormControl.displayName = "FormControl";
2133
- var FormDescription = React20.forwardRef(({ className, ...props }, ref) => {
2010
+ var FormDescription = React22.forwardRef(({ className, ...props }, ref) => {
2134
2011
  const { formDescriptionId } = useFormField();
2135
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2012
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2136
2013
  "p",
2137
2014
  {
2138
2015
  ref,
2139
2016
  id: formDescriptionId,
2140
- className: cn("text-[0.8rem] text-muted-foreground", className),
2017
+ className: cn("dl-form-desc", className),
2141
2018
  ...props
2142
2019
  }
2143
2020
  );
2144
2021
  });
2145
2022
  FormDescription.displayName = "FormDescription";
2146
- var FormMessage = React20.forwardRef(({ className, children, ...props }, ref) => {
2023
+ var FormMessage = React22.forwardRef(({ className, children, ...props }, ref) => {
2147
2024
  const { error, formMessageId } = useFormField();
2148
2025
  const body = error ? String(error?.message ?? "") : children;
2149
2026
  if (!body) {
2150
2027
  return null;
2151
2028
  }
2152
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2029
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2153
2030
  "p",
2154
2031
  {
2155
2032
  ref,
2156
2033
  id: formMessageId,
2157
- className: cn("text-[0.8rem] font-medium text-destructive", className),
2034
+ className: cn("dl-form-error", className),
2158
2035
  ...props,
2159
2036
  children: body
2160
2037
  }
@@ -2162,408 +2039,387 @@ var FormMessage = React20.forwardRef(({ className, children, ...props }, ref) =>
2162
2039
  });
2163
2040
  FormMessage.displayName = "FormMessage";
2164
2041
 
2165
- // src/components/hover-card.tsx
2166
- var React21 = __toESM(require("react"), 1);
2042
+ // src/components/hover-card/hover-card.tsx
2043
+ var React23 = __toESM(require("react"), 1);
2167
2044
  var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
2168
- var import_jsx_runtime21 = require("react/jsx-runtime");
2045
+ var import_jsx_runtime24 = require("react/jsx-runtime");
2169
2046
  var HoverCard = HoverCardPrimitive.Root;
2170
2047
  var HoverCardTrigger = HoverCardPrimitive.Trigger;
2171
- var HoverCardContent = React21.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2048
+ var HoverCardContent = React23.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2172
2049
  HoverCardPrimitive.Content,
2173
2050
  {
2174
2051
  ref,
2175
2052
  align,
2176
2053
  sideOffset,
2177
- className: cn(
2178
- "z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-(--radix-hover-card-content-transform-origin)",
2179
- className
2180
- ),
2054
+ className: cn("dl-hover-card", className),
2181
2055
  ...props
2182
2056
  }
2183
2057
  ));
2184
2058
  HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
2185
2059
 
2186
- // src/components/input-otp.tsx
2187
- var React22 = __toESM(require("react"), 1);
2060
+ // src/components/input/input.tsx
2061
+ var React24 = __toESM(require("react"), 1);
2062
+ var import_jsx_runtime25 = require("react/jsx-runtime");
2063
+ var Input = React24.forwardRef(
2064
+ ({ className, type, startIcon, endIcon, ...props }, ref) => {
2065
+ const inputEl = /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2066
+ "input",
2067
+ {
2068
+ type,
2069
+ className: cn(
2070
+ "dl-input",
2071
+ startIcon && "dl-input--has-start-icon",
2072
+ endIcon && "dl-input--has-end-icon",
2073
+ className
2074
+ ),
2075
+ ref,
2076
+ ...props
2077
+ }
2078
+ );
2079
+ if (!startIcon && !endIcon) {
2080
+ return inputEl;
2081
+ }
2082
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "dl-input-wrapper", children: [
2083
+ startIcon && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "dl-input-icon dl-input-icon--start", children: startIcon }),
2084
+ inputEl,
2085
+ endIcon && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "dl-input-icon dl-input-icon--end", children: endIcon })
2086
+ ] });
2087
+ }
2088
+ );
2089
+ Input.displayName = "Input";
2090
+
2091
+ // src/components/input-otp/input-otp.tsx
2092
+ var React25 = __toESM(require("react"), 1);
2188
2093
  var import_input_otp = require("input-otp");
2189
- var import_lucide_react10 = require("lucide-react");
2190
- var import_jsx_runtime22 = require("react/jsx-runtime");
2191
- var InputOTP = React22.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2094
+ var import_lucide_react11 = require("lucide-react");
2095
+ var import_jsx_runtime26 = require("react/jsx-runtime");
2096
+ var InputOTP = React25.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2192
2097
  import_input_otp.OTPInput,
2193
2098
  {
2194
2099
  ref,
2195
- containerClassName: cn(
2196
- "flex items-center gap-2 has-disabled:opacity-50",
2197
- containerClassName
2198
- ),
2199
- className: cn("disabled:cursor-not-allowed", className),
2100
+ containerClassName: cn("dl-input-otp-container", containerClassName),
2101
+ className: cn("dl-input-otp", className),
2200
2102
  ...props
2201
2103
  }
2202
2104
  ));
2203
2105
  InputOTP.displayName = "InputOTP";
2204
- var InputOTPGroup = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, className: cn("flex items-center", className), ...props }));
2106
+ var InputOTPGroup = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { ref, className: cn("dl-input-otp-group", className), ...props }));
2205
2107
  InputOTPGroup.displayName = "InputOTPGroup";
2206
- var InputOTPSlot = React22.forwardRef(({ index, className, ...props }, ref) => {
2207
- const inputOTPContext = React22.useContext(import_input_otp.OTPInputContext);
2108
+ var InputOTPSlot = React25.forwardRef(({ index, className, ...props }, ref) => {
2109
+ const inputOTPContext = React25.useContext(import_input_otp.OTPInputContext);
2208
2110
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] ?? {
2209
2111
  char: null,
2210
2112
  hasFakeCaret: false,
2211
2113
  isActive: false
2212
2114
  };
2213
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
2115
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2214
2116
  "div",
2215
2117
  {
2216
2118
  ref,
2217
2119
  className: cn(
2218
- "relative flex items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md size-9",
2219
- isActive && "z-10 ring-1 ring-ring",
2120
+ "dl-input-otp-slot",
2121
+ isActive && "dl-input-otp-slot--active",
2220
2122
  className
2221
2123
  ),
2222
2124
  ...props,
2223
2125
  children: [
2224
2126
  char,
2225
- hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
2127
+ hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "dl-input-otp-caret", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "dl-input-otp-caret__line" }) })
2226
2128
  ]
2227
2129
  }
2228
2130
  );
2229
2131
  });
2230
2132
  InputOTPSlot.displayName = "InputOTPSlot";
2231
- var InputOTPSeparator = React22.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_lucide_react10.Minus, {}) }));
2133
+ var InputOTPSeparator = React25.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react11.Minus, {}) }));
2232
2134
  InputOTPSeparator.displayName = "InputOTPSeparator";
2233
2135
 
2234
- // src/components/input.tsx
2235
- var React23 = __toESM(require("react"), 1);
2236
- var import_jsx_runtime23 = require("react/jsx-runtime");
2237
- var Input = React23.forwardRef(
2238
- ({ className, type, ...props }, ref) => {
2239
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2240
- "input",
2241
- {
2242
- type,
2243
- className: cn(
2244
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:font-medium file:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
2245
- className
2246
- ),
2247
- ref,
2248
- ...props
2249
- }
2250
- );
2251
- }
2252
- );
2253
- Input.displayName = "Input";
2136
+ // src/components/skeleton/skeleton.tsx
2137
+ var import_jsx_runtime27 = require("react/jsx-runtime");
2138
+ function Skeleton({ className, ...props }) {
2139
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: cn("dl-skeleton", className), ...props });
2140
+ }
2254
2141
 
2255
- // src/components/menubar.tsx
2256
- var React24 = __toESM(require("react"), 1);
2257
- var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
2258
- var import_lucide_react11 = require("lucide-react");
2259
- var import_jsx_runtime24 = require("react/jsx-runtime");
2260
- function MenubarMenu({
2142
+ // src/components/loading-state/loading-state.tsx
2143
+ var import_jsx_runtime28 = require("react/jsx-runtime");
2144
+ function LoadingState({
2145
+ rows = 3,
2146
+ message,
2147
+ className,
2261
2148
  ...props
2262
2149
  }) {
2263
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.Menu, { ...props });
2150
+ if (message) {
2151
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: cn("dl-loading", className), ...props, children: [
2152
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2153
+ "svg",
2154
+ {
2155
+ xmlns: "http://www.w3.org/2000/svg",
2156
+ width: "24",
2157
+ height: "24",
2158
+ viewBox: "0 0 24 24",
2159
+ fill: "none",
2160
+ stroke: "currentColor",
2161
+ strokeWidth: "2",
2162
+ strokeLinecap: "round",
2163
+ strokeLinejoin: "round",
2164
+ children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
2165
+ }
2166
+ ),
2167
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { children: message })
2168
+ ] });
2169
+ }
2170
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: cn("dl-loading-skeleton", className), ...props, children: [
2171
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Skeleton, { style: { height: "2rem", width: "33.333%" } }),
2172
+ /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { className: "dl-loading-skeleton__list", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2173
+ Skeleton,
2174
+ {
2175
+ style: {
2176
+ height: "4rem",
2177
+ width: "100%",
2178
+ borderRadius: "var(--radius-lg, 0.75rem)"
2179
+ }
2180
+ },
2181
+ i
2182
+ )) })
2183
+ ] });
2264
2184
  }
2265
- function MenubarGroup({
2266
- ...props
2267
- }) {
2268
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.Group, { ...props });
2185
+
2186
+ // src/components/menubar/menubar.tsx
2187
+ var React26 = __toESM(require("react"), 1);
2188
+ var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
2189
+ var import_lucide_react12 = require("lucide-react");
2190
+ var import_jsx_runtime29 = require("react/jsx-runtime");
2191
+ function MenubarMenu(props) {
2192
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.Menu, { ...props });
2269
2193
  }
2270
- function MenubarPortal({
2271
- ...props
2272
- }) {
2273
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.Portal, { ...props });
2194
+ function MenubarGroup(props) {
2195
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.Group, { ...props });
2274
2196
  }
2275
- function MenubarRadioGroup({
2276
- ...props
2277
- }) {
2278
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.RadioGroup, { ...props });
2197
+ function MenubarPortal(props) {
2198
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.Portal, { ...props });
2279
2199
  }
2280
- function MenubarSub({
2281
- ...props
2282
- }) {
2283
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
2200
+ function MenubarRadioGroup(props) {
2201
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.RadioGroup, { ...props });
2202
+ }
2203
+ function MenubarSub(props) {
2204
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
2284
2205
  }
2285
- var Menubar = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2206
+ var Menubar = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2286
2207
  MenubarPrimitive.Root,
2287
2208
  {
2288
2209
  ref,
2289
- className: cn(
2290
- "flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm",
2291
- className
2292
- ),
2210
+ className: cn("dl-menubar", className),
2293
2211
  ...props
2294
2212
  }
2295
2213
  ));
2296
2214
  Menubar.displayName = MenubarPrimitive.Root.displayName;
2297
- var MenubarTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2215
+ var MenubarTrigger = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2298
2216
  MenubarPrimitive.Trigger,
2299
2217
  {
2300
2218
  ref,
2301
- className: cn(
2302
- "flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
2303
- className
2304
- ),
2219
+ className: cn("dl-menubar-trigger", className),
2305
2220
  ...props
2306
2221
  }
2307
2222
  ));
2308
2223
  MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
2309
- var MenubarSubTrigger = React24.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2224
+ var MenubarSubTrigger = React26.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2310
2225
  MenubarPrimitive.SubTrigger,
2311
2226
  {
2312
2227
  ref,
2313
2228
  className: cn(
2314
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
2229
+ "dl-menu-item dl-menu-sub-trigger",
2315
2230
  inset && "pl-8",
2316
2231
  className
2317
2232
  ),
2318
2233
  ...props,
2319
2234
  children: [
2320
2235
  children,
2321
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.ChevronRight, { className: "ml-auto size-4" })
2236
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react12.ChevronRight, { className: "ml-auto size-4" })
2322
2237
  ]
2323
2238
  }
2324
2239
  ));
2325
2240
  MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
2326
- var MenubarSubContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2241
+ var MenubarSubContent = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2327
2242
  MenubarPrimitive.SubContent,
2328
2243
  {
2329
2244
  ref,
2330
- className: cn(
2331
- "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-(--radix-menubar-content-transform-origin)",
2332
- className
2333
- ),
2245
+ className: cn("dl-menu-content", className),
2334
2246
  ...props
2335
2247
  }
2336
2248
  ));
2337
2249
  MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
2338
- var MenubarContent = React24.forwardRef(
2339
- ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2250
+ var MenubarContent = React26.forwardRef(
2251
+ ({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2340
2252
  MenubarPrimitive.Content,
2341
2253
  {
2342
2254
  ref,
2343
2255
  align,
2344
2256
  alignOffset,
2345
2257
  sideOffset,
2346
- className: cn(
2347
- "z-50 min-w-48 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in 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 origin-(--radix-menubar-content-transform-origin)",
2348
- className
2349
- ),
2258
+ className: cn("dl-menu-content", className),
2350
2259
  ...props
2351
2260
  }
2352
2261
  ) })
2353
2262
  );
2354
2263
  MenubarContent.displayName = MenubarPrimitive.Content.displayName;
2355
- var MenubarItem = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2264
+ var MenubarItem = React26.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2356
2265
  MenubarPrimitive.Item,
2357
2266
  {
2358
2267
  ref,
2359
- className: cn(
2360
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2361
- inset && "pl-8",
2362
- className
2363
- ),
2268
+ className: cn("dl-menu-item", inset && "pl-8", className),
2364
2269
  ...props
2365
2270
  }
2366
2271
  ));
2367
2272
  MenubarItem.displayName = MenubarPrimitive.Item.displayName;
2368
- var MenubarCheckboxItem = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2273
+ var MenubarCheckboxItem = React26.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2369
2274
  MenubarPrimitive.CheckboxItem,
2370
2275
  {
2371
2276
  ref,
2372
- className: cn(
2373
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2374
- className
2375
- ),
2277
+ className: cn("dl-menu-item dl-menu-checkbox-item", className),
2278
+ checked,
2376
2279
  ...props,
2377
2280
  children: [
2378
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.Check, { className: "size-4" }) }) }),
2281
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "dl-menu-checkbox-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react12.Check, { className: "size-4" }) }) }),
2379
2282
  children
2380
2283
  ]
2381
2284
  }
2382
2285
  ));
2383
2286
  MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
2384
- var MenubarRadioItem = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
2287
+ var MenubarRadioItem = React26.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
2385
2288
  MenubarPrimitive.RadioItem,
2386
2289
  {
2387
2290
  ref,
2388
- className: cn(
2389
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2390
- className
2391
- ),
2291
+ className: cn("dl-menu-item dl-menu-radio-item", className),
2392
2292
  ...props,
2393
2293
  children: [
2394
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute left-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_lucide_react11.Circle, { className: "fill-current size-4" }) }) }),
2294
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "dl-menu-radio-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react12.Circle, { className: "fill-current size-2" }) }) }),
2395
2295
  children
2396
2296
  ]
2397
2297
  }
2398
2298
  ));
2399
2299
  MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
2400
- var MenubarLabel = React24.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2300
+ var MenubarLabel = React26.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2401
2301
  MenubarPrimitive.Label,
2402
2302
  {
2403
2303
  ref,
2404
- className: cn(
2405
- "px-2 py-1.5 text-sm font-semibold",
2406
- inset && "pl-8",
2407
- className
2408
- ),
2304
+ className: cn("dl-menu-label", inset && "pl-8", className),
2409
2305
  ...props
2410
2306
  }
2411
2307
  ));
2412
2308
  MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
2413
- var MenubarSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2309
+ var MenubarSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2414
2310
  MenubarPrimitive.Separator,
2415
2311
  {
2416
2312
  ref,
2417
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2313
+ className: cn("dl-menu-separator", className),
2418
2314
  ...props
2419
2315
  }
2420
2316
  ));
2421
2317
  MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
2422
- var MenubarShortcut = ({
2423
- className,
2424
- ...props
2425
- }) => {
2426
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
2427
- "span",
2428
- {
2429
- className: cn(
2430
- "ml-auto text-xs tracking-widest text-muted-foreground",
2431
- className
2432
- ),
2433
- ...props
2434
- }
2435
- );
2318
+ var MenubarShortcut = ({ className, ...props }) => {
2319
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: cn("dl-menu-shortcut", className), ...props });
2436
2320
  };
2437
- MenubarShortcut.displayname = "MenubarShortcut";
2321
+ MenubarShortcut.displayName = "MenubarShortcut";
2438
2322
 
2439
- // src/components/navigation-menu.tsx
2440
- var React25 = __toESM(require("react"), 1);
2323
+ // src/components/navigation-menu/navigation-menu.tsx
2324
+ var React27 = __toESM(require("react"), 1);
2441
2325
  var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"), 1);
2442
2326
  var import_class_variance_authority5 = require("class-variance-authority");
2443
- var import_lucide_react12 = require("lucide-react");
2444
- var import_jsx_runtime25 = require("react/jsx-runtime");
2445
- var NavigationMenu = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2327
+ var import_lucide_react13 = require("lucide-react");
2328
+ var import_jsx_runtime30 = require("react/jsx-runtime");
2329
+ var NavigationMenu = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
2446
2330
  NavigationMenuPrimitive.Root,
2447
2331
  {
2448
2332
  ref,
2449
- className: cn(
2450
- "relative z-10 flex max-w-max flex-1 items-center justify-center",
2451
- className
2452
- ),
2333
+ className: cn("dl-navigation-menu", className),
2453
2334
  ...props,
2454
2335
  children: [
2455
2336
  children,
2456
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(NavigationMenuViewport, {})
2337
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(NavigationMenuViewport, {})
2457
2338
  ]
2458
2339
  }
2459
2340
  ));
2460
2341
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
2461
- var NavigationMenuList = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2342
+ var NavigationMenuList = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2462
2343
  NavigationMenuPrimitive.List,
2463
2344
  {
2464
2345
  ref,
2465
- className: cn(
2466
- "group flex flex-1 list-none items-center justify-center space-x-1",
2467
- className
2468
- ),
2346
+ className: cn("dl-navigation-menu-list", className),
2469
2347
  ...props
2470
2348
  }
2471
2349
  ));
2472
2350
  NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
2473
2351
  var NavigationMenuItem = NavigationMenuPrimitive.Item;
2474
- var navigationMenuTriggerStyle = (0, import_class_variance_authority5.cva)(
2475
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium cursor-pointer transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent"
2476
- );
2477
- var NavigationMenuTrigger = React25.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2352
+ var navigationMenuTriggerStyle = (0, import_class_variance_authority5.cva)("dl-navigation-menu-trigger");
2353
+ var NavigationMenuTrigger = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
2478
2354
  NavigationMenuPrimitive.Trigger,
2479
2355
  {
2480
2356
  ref,
2481
- className: cn(navigationMenuTriggerStyle(), "group", className),
2357
+ className: cn(navigationMenuTriggerStyle(), className),
2482
2358
  ...props,
2483
2359
  children: [
2484
2360
  children,
2485
2361
  " ",
2486
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2487
- import_lucide_react12.ChevronDown,
2488
- {
2489
- className: "relative top-px ml-1 transition duration-300 group-data-[state=open]:rotate-180 size-3",
2490
- "aria-hidden": "true"
2491
- }
2492
- )
2362
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react13.ChevronDown, { className: "dl-navigation-menu-chevron", "aria-hidden": "true" })
2493
2363
  ]
2494
2364
  }
2495
2365
  ));
2496
2366
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
2497
- var NavigationMenuContent = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2367
+ var NavigationMenuContent = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2498
2368
  NavigationMenuPrimitive.Content,
2499
2369
  {
2500
2370
  ref,
2501
- className: cn(
2502
- "left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",
2503
- className
2504
- ),
2371
+ className: cn("dl-navigation-menu-content", className),
2505
2372
  ...props
2506
2373
  }
2507
2374
  ));
2508
2375
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
2509
2376
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
2510
- var NavigationMenuViewport = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2377
+ var NavigationMenuViewport = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "dl-navigation-menu-viewport-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2511
2378
  NavigationMenuPrimitive.Viewport,
2512
2379
  {
2513
- className: cn(
2514
- "origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-(--radix-navigation-menu-viewport-width)",
2515
- className
2516
- ),
2380
+ className: cn("dl-navigation-menu-viewport", className),
2517
2381
  ref,
2518
2382
  ...props
2519
2383
  }
2520
2384
  ) }));
2521
2385
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
2522
- var NavigationMenuIndicator = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2386
+ var NavigationMenuIndicator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2523
2387
  NavigationMenuPrimitive.Indicator,
2524
2388
  {
2525
2389
  ref,
2526
- className: cn(
2527
- "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
2528
- className
2529
- ),
2390
+ className: cn("dl-navigation-menu-indicator", className),
2530
2391
  ...props,
2531
- children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "relative top-[60%] rotate-45 rounded-tl-sm bg-border shadow-md size-2" })
2392
+ children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "dl-navigation-menu-indicator__arrow" })
2532
2393
  }
2533
2394
  ));
2534
2395
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
2535
2396
 
2536
- // src/components/pagination.tsx
2537
- var React26 = __toESM(require("react"), 1);
2538
- var import_lucide_react13 = require("lucide-react");
2539
- var import_jsx_runtime26 = require("react/jsx-runtime");
2540
- var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2397
+ // src/components/pagination/pagination.tsx
2398
+ var React28 = __toESM(require("react"), 1);
2399
+ var import_lucide_react14 = require("lucide-react");
2400
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2401
+ var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2541
2402
  "nav",
2542
2403
  {
2543
2404
  role: "navigation",
2544
2405
  "aria-label": "pagination",
2545
- className: cn("mx-auto flex w-full justify-center", className),
2406
+ className: cn("dl-pagination", className),
2546
2407
  ...props
2547
2408
  }
2548
2409
  );
2549
2410
  Pagination.displayName = "Pagination";
2550
- var PaginationContent = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2551
- "ul",
2552
- {
2553
- ref,
2554
- className: cn("flex flex-row items-center gap-1", className),
2555
- ...props
2556
- }
2557
- ));
2411
+ var PaginationContent = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("ul", { ref, className: cn("dl-pagination-content", className), ...props }));
2558
2412
  PaginationContent.displayName = "PaginationContent";
2559
- var PaginationItem = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("li", { ref, className: cn("", className), ...props }));
2413
+ var PaginationItem = React28.forwardRef(
2414
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("li", { ref, className: cn("dl-pagination-item", className), ...props })
2415
+ );
2560
2416
  PaginationItem.displayName = "PaginationItem";
2561
2417
  var PaginationLink = ({
2562
2418
  className,
2563
2419
  isActive,
2564
2420
  size = "icon",
2565
2421
  ...props
2566
- }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2422
+ }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2567
2423
  "a",
2568
2424
  {
2569
2425
  "aria-current": isActive ? "page" : void 0,
@@ -2581,33 +2437,30 @@ PaginationLink.displayName = "PaginationLink";
2581
2437
  var PaginationPrevious = ({
2582
2438
  className,
2583
2439
  ...props
2584
- }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2440
+ }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2585
2441
  PaginationLink,
2586
2442
  {
2587
2443
  "aria-label": "Go to previous page",
2588
2444
  size: "default",
2589
- className: cn("gap-1 pl-2.5", className),
2445
+ className: cn("dl-pagination-prev", className),
2590
2446
  ...props,
2591
2447
  children: [
2592
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react13.ChevronLeft, { className: "size-4" }),
2593
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Previous" })
2448
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react14.ChevronLeft, { className: "size-4" }),
2449
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { children: "Previous" })
2594
2450
  ]
2595
2451
  }
2596
2452
  );
2597
2453
  PaginationPrevious.displayName = "PaginationPrevious";
2598
- var PaginationNext = ({
2599
- className,
2600
- ...props
2601
- }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2454
+ var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2602
2455
  PaginationLink,
2603
2456
  {
2604
2457
  "aria-label": "Go to next page",
2605
2458
  size: "default",
2606
- className: cn("gap-1 pr-2.5", className),
2459
+ className: cn("dl-pagination-next", className),
2607
2460
  ...props,
2608
2461
  children: [
2609
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Next" }),
2610
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react13.ChevronRight, { className: "size-4" })
2462
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { children: "Next" }),
2463
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react14.ChevronRight, { className: "size-4" })
2611
2464
  ]
2612
2465
  }
2613
2466
  );
@@ -2615,59 +2468,50 @@ PaginationNext.displayName = "PaginationNext";
2615
2468
  var PaginationEllipsis = ({
2616
2469
  className,
2617
2470
  ...props
2618
- }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2471
+ }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2619
2472
  "span",
2620
2473
  {
2621
2474
  "aria-hidden": true,
2622
- className: cn("flex items-center justify-center size-9", className),
2475
+ className: cn("dl-pagination-ellipsis", className),
2623
2476
  ...props,
2624
2477
  children: [
2625
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_lucide_react13.MoreHorizontal, { className: "size-4" }),
2626
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "sr-only", children: "More pages" })
2478
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react14.MoreHorizontal, {}),
2479
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "sr-only", children: "More pages" })
2627
2480
  ]
2628
2481
  }
2629
2482
  );
2630
2483
  PaginationEllipsis.displayName = "PaginationEllipsis";
2631
2484
 
2632
- // src/components/popover.tsx
2633
- var React27 = __toESM(require("react"), 1);
2634
- var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
2635
- var import_jsx_runtime27 = require("react/jsx-runtime");
2636
- var Popover = PopoverPrimitive.Root;
2637
- var PopoverTrigger = PopoverPrimitive.Trigger;
2638
- var PopoverAnchor = PopoverPrimitive.Anchor;
2639
- var PopoverContent = React27.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2640
- PopoverPrimitive.Content,
2641
- {
2642
- ref,
2643
- align,
2644
- sideOffset,
2645
- className: cn(
2646
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-(--radix-popover-content-transform-origin)",
2647
- className
2648
- ),
2649
- ...props
2485
+ // src/components/panel/panel.tsx
2486
+ var React29 = __toESM(require("react"), 1);
2487
+ var import_jsx_runtime32 = require("react/jsx-runtime");
2488
+ var Panel = React29.forwardRef(
2489
+ ({ title, meta, children, className, ...props }, ref) => {
2490
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("section", { ref, className: cn("dl-panel", className), ...props, children: [
2491
+ title ? /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "dl-panel__header", children: [
2492
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h2", { className: "dl-panel__title", children: title }),
2493
+ meta ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "dl-panel__meta", children: meta }) : null
2494
+ ] }) : null,
2495
+ children
2496
+ ] });
2650
2497
  }
2651
- ) }));
2652
- PopoverContent.displayName = PopoverPrimitive.Content.displayName;
2498
+ );
2499
+ Panel.displayName = "Panel";
2653
2500
 
2654
- // src/components/progress.tsx
2655
- var React28 = __toESM(require("react"), 1);
2501
+ // src/components/progress/progress.tsx
2502
+ var React30 = __toESM(require("react"), 1);
2656
2503
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
2657
- var import_jsx_runtime28 = require("react/jsx-runtime");
2658
- var Progress = React28.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2504
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2505
+ var Progress = React30.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2659
2506
  ProgressPrimitive.Root,
2660
2507
  {
2661
2508
  ref,
2662
- className: cn(
2663
- "relative h-2 w-full overflow-hidden rounded-full bg-primary/20",
2664
- className
2665
- ),
2509
+ className: cn("dl-progress", className),
2666
2510
  ...props,
2667
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
2511
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2668
2512
  ProgressPrimitive.Indicator,
2669
2513
  {
2670
- className: "flex-1 bg-primary transition-all size-full",
2514
+ className: "dl-progress__indicator",
2671
2515
  style: { transform: `translateX(-${100 - (value || 0)}%)` }
2672
2516
  }
2673
2517
  )
@@ -2675,292 +2519,440 @@ var Progress = React28.forwardRef(({ className, value, ...props }, ref) => /* @_
2675
2519
  ));
2676
2520
  Progress.displayName = ProgressPrimitive.Root.displayName;
2677
2521
 
2678
- // src/components/radio-group.tsx
2679
- var React29 = __toESM(require("react"), 1);
2522
+ // src/components/radio-group/radio-group.tsx
2523
+ var React31 = __toESM(require("react"), 1);
2680
2524
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
2681
- var import_lucide_react14 = require("lucide-react");
2682
- var import_jsx_runtime29 = require("react/jsx-runtime");
2683
- var RadioGroup4 = React29.forwardRef(({ className, ...props }, ref) => {
2684
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2525
+ var import_lucide_react15 = require("lucide-react");
2526
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2527
+ var RadioGroup4 = React31.forwardRef(({ className, ...props }, ref) => {
2528
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2685
2529
  RadioGroupPrimitive.Root,
2686
2530
  {
2687
- className: cn("grid gap-2", className),
2531
+ className: cn("dl-radio-group", className),
2688
2532
  ...props,
2689
2533
  ref
2690
2534
  }
2691
2535
  );
2692
2536
  });
2693
2537
  RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
2694
- var RadioGroupItem = React29.forwardRef(({ className, ...props }, ref) => {
2695
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
2538
+ var RadioGroupItem = React31.forwardRef(({ className, ...props }, ref) => {
2539
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2696
2540
  RadioGroupPrimitive.Item,
2697
2541
  {
2698
2542
  ref,
2699
- className: cn(
2700
- "aspect-square rounded-full border border-primary text-primary shadow cursor-pointer focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 size-4",
2701
- className
2702
- ),
2543
+ className: cn("dl-radio-item", className),
2703
2544
  ...props,
2704
- children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_lucide_react14.Circle, { className: "fill-primary size-3.5" }) })
2545
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(RadioGroupPrimitive.Indicator, { className: "dl-radio-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react15.Circle, { "aria-hidden": "true" }) })
2705
2546
  }
2706
2547
  );
2707
2548
  });
2708
2549
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
2709
2550
 
2710
- // src/components/resizable.tsx
2711
- var import_lucide_react15 = require("lucide-react");
2551
+ // src/components/resizable/resizable.tsx
2552
+ var import_lucide_react16 = require("lucide-react");
2712
2553
  var import_react_resizable_panels = require("react-resizable-panels");
2713
- var import_jsx_runtime30 = require("react/jsx-runtime");
2554
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2714
2555
  var ResizablePanelGroup = ({
2715
2556
  className,
2716
2557
  ...props
2717
- }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2718
- import_react_resizable_panels.Group,
2719
- {
2720
- className: cn(
2721
- "flex data-[panel-group-direction=vertical]:flex-col size-full",
2722
- className
2723
- ),
2724
- ...props
2725
- }
2726
- );
2558
+ }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_resizable_panels.Group, { className: cn("dl-resizable-group", className), ...props });
2727
2559
  var ResizablePanel = import_react_resizable_panels.Panel;
2728
2560
  var ResizableHandle = ({
2729
2561
  withHandle,
2730
2562
  className,
2731
2563
  ...props
2732
- }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2733
- import_react_resizable_panels.Separator,
2734
- {
2735
- className: cn(
2736
- "relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
2737
- className
2738
- ),
2739
- ...props,
2740
- children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react15.GripVertical, { className: "size-2.5" }) })
2741
- }
2742
- );
2564
+ }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_react_resizable_panels.Separator, { className: cn("dl-resizable-handle", className), ...props, children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "dl-resizable-grip", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_lucide_react16.GripVertical, {}) }) });
2743
2565
 
2744
- // src/components/scroll-area.tsx
2745
- var React30 = __toESM(require("react"), 1);
2566
+ // src/components/scroll-area/scroll-area.tsx
2567
+ var React32 = __toESM(require("react"), 1);
2746
2568
  var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
2747
- var import_jsx_runtime31 = require("react/jsx-runtime");
2748
- var ScrollArea = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2569
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2570
+ var ScrollArea = React32.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
2749
2571
  ScrollAreaPrimitive.Root,
2750
2572
  {
2751
2573
  ref,
2752
- className: cn("relative overflow-hidden", className),
2574
+ className: cn("dl-scroll-area", className),
2753
2575
  ...props,
2754
2576
  children: [
2755
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ScrollAreaPrimitive.Viewport, { className: "rounded-[inherit] size-full", children }),
2756
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ScrollBar, {}),
2757
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ScrollAreaPrimitive.Corner, {})
2577
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ScrollAreaPrimitive.Viewport, { className: "dl-scroll-area__viewport", children }),
2578
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ScrollBar, {}),
2579
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ScrollAreaPrimitive.Corner, {})
2758
2580
  ]
2759
2581
  }
2760
2582
  ));
2761
2583
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
2762
- var ScrollBar = React30.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2584
+ var ScrollBar = React32.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2763
2585
  ScrollAreaPrimitive.ScrollAreaScrollbar,
2764
2586
  {
2765
2587
  ref,
2766
2588
  orientation,
2767
- className: cn(
2768
- "flex touch-none select-none transition-colors",
2769
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-px",
2770
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-px",
2771
- className
2772
- ),
2589
+ className: cn("dl-scroll-area__bar", className),
2773
2590
  ...props,
2774
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
2591
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ScrollAreaPrimitive.ScrollAreaThumb, { className: "dl-scroll-area__thumb" })
2775
2592
  }
2776
2593
  ));
2777
2594
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
2778
2595
 
2779
- // src/components/select.tsx
2780
- var React31 = __toESM(require("react"), 1);
2596
+ // src/components/searchable-select/searchable-select.tsx
2597
+ var React33 = __toESM(require("react"), 1);
2598
+ var import_lucide_react17 = require("lucide-react");
2599
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2600
+ function SearchableSelect({
2601
+ options,
2602
+ value,
2603
+ onChange,
2604
+ placeholder = "Select an option...",
2605
+ searchPlaceholder = "Search...",
2606
+ onAddNew,
2607
+ addNewLabel = "Add new",
2608
+ disabled = false,
2609
+ className,
2610
+ id
2611
+ }) {
2612
+ const [open, setOpen] = React33.useState(false);
2613
+ const [search, setSearch] = React33.useState("");
2614
+ const [highlightedIndex, setHighlightedIndex] = React33.useState(0);
2615
+ const listRef = React33.useRef(null);
2616
+ const selectedOption = React33.useMemo(() => {
2617
+ return options.find((opt) => opt.value === value);
2618
+ }, [options, value]);
2619
+ const filteredOptions = React33.useMemo(() => {
2620
+ if (!search.trim()) return options;
2621
+ const q = search.toLowerCase();
2622
+ return options.filter(
2623
+ (opt) => opt.label.toLowerCase().includes(q) || opt.group && opt.group.toLowerCase().includes(q)
2624
+ );
2625
+ }, [options, search]);
2626
+ const handleOpenChange = (newOpen) => {
2627
+ setOpen(newOpen);
2628
+ if (newOpen) {
2629
+ const idx = filteredOptions.findIndex((opt) => opt.value === value);
2630
+ setHighlightedIndex(idx >= 0 ? idx : 0);
2631
+ } else {
2632
+ setSearch("");
2633
+ }
2634
+ };
2635
+ const handleSearchChange = (q) => {
2636
+ setSearch(q);
2637
+ setHighlightedIndex(0);
2638
+ };
2639
+ React33.useEffect(() => {
2640
+ if (open && listRef.current) {
2641
+ const activeEl = listRef.current.querySelector(
2642
+ "[data-highlighted='true']"
2643
+ );
2644
+ if (activeEl) {
2645
+ activeEl.scrollIntoView({ block: "nearest" });
2646
+ }
2647
+ }
2648
+ }, [highlightedIndex, open]);
2649
+ const groupedOptions = React33.useMemo(() => {
2650
+ const hasGroups = filteredOptions.some((opt) => opt.group);
2651
+ if (!hasGroups) return { Default: filteredOptions };
2652
+ return filteredOptions.reduce(
2653
+ (acc, opt) => {
2654
+ const g = opt.group || "Other";
2655
+ if (!acc[g]) acc[g] = [];
2656
+ acc[g].push(opt);
2657
+ return acc;
2658
+ },
2659
+ {}
2660
+ );
2661
+ }, [filteredOptions]);
2662
+ const handleSelect = (val) => {
2663
+ onChange?.(val);
2664
+ setOpen(false);
2665
+ setSearch("");
2666
+ };
2667
+ const handleAddNew = () => {
2668
+ onAddNew?.(search.trim());
2669
+ setOpen(false);
2670
+ setSearch("");
2671
+ };
2672
+ const handleKeyDown = (e) => {
2673
+ if (!open) {
2674
+ if (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") {
2675
+ e.preventDefault();
2676
+ handleOpenChange(true);
2677
+ }
2678
+ return;
2679
+ }
2680
+ switch (e.key) {
2681
+ case "ArrowDown":
2682
+ e.preventDefault();
2683
+ setHighlightedIndex(
2684
+ (p) => p < filteredOptions.length - 1 ? p + 1 : p
2685
+ );
2686
+ break;
2687
+ case "ArrowUp":
2688
+ e.preventDefault();
2689
+ setHighlightedIndex((p) => p > 0 ? p - 1 : 0);
2690
+ break;
2691
+ case "Enter":
2692
+ e.preventDefault();
2693
+ if (filteredOptions.length > 0 && filteredOptions[highlightedIndex]) {
2694
+ handleSelect(filteredOptions[highlightedIndex].value);
2695
+ } else if (onAddNew && search.trim()) {
2696
+ handleAddNew();
2697
+ }
2698
+ break;
2699
+ case "Escape":
2700
+ case "Tab":
2701
+ e.preventDefault();
2702
+ handleOpenChange(false);
2703
+ break;
2704
+ }
2705
+ };
2706
+ let currentIndex = 0;
2707
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Popover, { open, onOpenChange: handleOpenChange, children: [
2708
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2709
+ Button,
2710
+ {
2711
+ id,
2712
+ variant: "outline",
2713
+ role: "combobox",
2714
+ "aria-expanded": open,
2715
+ disabled,
2716
+ onKeyDown: handleKeyDown,
2717
+ className: cn(
2718
+ "dl-searchable-select-trigger",
2719
+ !selectedOption && "dl-searchable-select-trigger--placeholder",
2720
+ className
2721
+ ),
2722
+ children: [
2723
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "truncate", children: selectedOption ? selectedOption.label : placeholder }),
2724
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.ChevronDown, { className: "dl-select-icon" })
2725
+ ]
2726
+ }
2727
+ ) }),
2728
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2729
+ PopoverContent,
2730
+ {
2731
+ align: "start",
2732
+ className: "dl-searchable-select-content",
2733
+ onKeyDown: handleKeyDown,
2734
+ children: [
2735
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "dl-searchable-select-search", children: [
2736
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.Search, { className: "dl-searchable-select-search-icon" }),
2737
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2738
+ Input,
2739
+ {
2740
+ placeholder: searchPlaceholder,
2741
+ value: search,
2742
+ onChange: (e) => handleSearchChange(e.target.value),
2743
+ className: "dl-searchable-select-search-input",
2744
+ autoFocus: true
2745
+ }
2746
+ )
2747
+ ] }),
2748
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2749
+ "div",
2750
+ {
2751
+ ref: listRef,
2752
+ onWheel: (e) => e.stopPropagation(),
2753
+ className: "dl-searchable-select-list",
2754
+ children: Object.keys(groupedOptions).length === 0 || filteredOptions.length === 0 && !onAddNew ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "dl-searchable-select-empty", children: "No matching options found." }) : Object.entries(groupedOptions).map(([groupName, groupOpts]) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "py-1", children: [
2755
+ groupName !== "Default" && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "dl-searchable-select-group-header", children: groupName }),
2756
+ groupOpts.map((option) => {
2757
+ const isSelected = option.value === value;
2758
+ const itemIndex = currentIndex++;
2759
+ const isHighlighted = itemIndex === highlightedIndex;
2760
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2761
+ "div",
2762
+ {
2763
+ "data-highlighted": isHighlighted,
2764
+ onClick: () => handleSelect(option.value),
2765
+ onMouseEnter: () => setHighlightedIndex(itemIndex),
2766
+ className: cn(
2767
+ "dl-searchable-select-item",
2768
+ isHighlighted && "dl-searchable-select-item--highlighted",
2769
+ isSelected && !isHighlighted && "dl-searchable-select-item--selected"
2770
+ ),
2771
+ children: [
2772
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "flex-1 truncate", children: option.label }),
2773
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.Check, { className: "dl-select-check" })
2774
+ ]
2775
+ },
2776
+ option.value
2777
+ );
2778
+ })
2779
+ ] }, groupName))
2780
+ }
2781
+ ),
2782
+ onAddNew && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "dl-searchable-select-add", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2783
+ "button",
2784
+ {
2785
+ type: "button",
2786
+ onClick: handleAddNew,
2787
+ className: "dl-searchable-select-add-btn",
2788
+ children: [
2789
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react17.Plus, { className: "size-3.5 shrink-0" }),
2790
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "truncate", children: search.trim() ? `${addNewLabel} "${search.trim()}"` : addNewLabel })
2791
+ ]
2792
+ }
2793
+ ) })
2794
+ ]
2795
+ }
2796
+ )
2797
+ ] });
2798
+ }
2799
+
2800
+ // src/components/select/select.tsx
2801
+ var React34 = __toESM(require("react"), 1);
2781
2802
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
2782
- var import_lucide_react16 = require("lucide-react");
2783
- var import_jsx_runtime32 = require("react/jsx-runtime");
2803
+ var import_lucide_react18 = require("lucide-react");
2804
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2784
2805
  var Select = SelectPrimitive.Root;
2785
2806
  var SelectGroup = SelectPrimitive.Group;
2786
2807
  var SelectValue = SelectPrimitive.Value;
2787
- var SelectTrigger = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2808
+ var SelectTrigger = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2788
2809
  SelectPrimitive.Trigger,
2789
2810
  {
2790
2811
  ref,
2791
- className: cn(
2792
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background cursor-pointer data-placeholder:text-muted-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 [&>span]:line-clamp-1",
2793
- className
2794
- ),
2812
+ className: cn("dl-select-trigger", className),
2795
2813
  ...props,
2796
2814
  children: [
2797
2815
  children,
2798
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react16.ChevronDown, { className: "opacity-50 size-4" }) })
2816
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2817
+ import_lucide_react18.ChevronDown,
2818
+ {
2819
+ style: { opacity: 0.5, width: "0.75rem", height: "0.75rem" }
2820
+ }
2821
+ ) })
2799
2822
  ]
2800
2823
  }
2801
2824
  ));
2802
2825
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
2803
- var SelectScrollUpButton = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2826
+ var SelectScrollUpButton = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2804
2827
  SelectPrimitive.ScrollUpButton,
2805
2828
  {
2806
2829
  ref,
2807
- className: cn(
2808
- "flex cursor-default items-center justify-center py-1",
2809
- className
2810
- ),
2830
+ className: cn("dl-select-scroll-btn", className),
2811
2831
  ...props,
2812
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react16.ChevronUp, { className: "size-4" })
2832
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react18.ChevronUp, { style: { width: "1rem", height: "1rem" } })
2813
2833
  }
2814
2834
  ));
2815
2835
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
2816
- var SelectScrollDownButton = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2836
+ var SelectScrollDownButton = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2817
2837
  SelectPrimitive.ScrollDownButton,
2818
2838
  {
2819
2839
  ref,
2820
- className: cn(
2821
- "flex cursor-default items-center justify-center py-1",
2822
- className
2823
- ),
2840
+ className: cn("dl-select-scroll-btn", className),
2824
2841
  ...props,
2825
- children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react16.ChevronDown, { className: "size-4" })
2842
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react18.ChevronDown, { style: { width: "1rem", height: "1rem" } })
2826
2843
  }
2827
2844
  ));
2828
2845
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
2829
- var SelectContent = React31.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2846
+ var SelectContent = React34.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2830
2847
  SelectPrimitive.Content,
2831
2848
  {
2832
2849
  ref,
2833
- className: cn(
2834
- "relative z-50 max-h-(--radix-select-content-available-height) min-w-32 overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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 origin-(--radix-select-content-transform-origin)",
2835
- position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1",
2836
- className
2837
- ),
2850
+ className: cn("dl-select-content", className),
2838
2851
  position,
2839
2852
  ...props,
2840
2853
  children: [
2841
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SelectScrollUpButton, {}),
2842
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2843
- SelectPrimitive.Viewport,
2844
- {
2845
- className: cn(
2846
- "p-1",
2847
- position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
2848
- ),
2849
- children
2850
- }
2851
- ),
2852
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SelectScrollDownButton, {})
2854
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectScrollUpButton, {}),
2855
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectPrimitive.Viewport, { className: "dl-select-viewport", children }),
2856
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectScrollDownButton, {})
2853
2857
  ]
2854
2858
  }
2855
2859
  ) }));
2856
2860
  SelectContent.displayName = SelectPrimitive.Content.displayName;
2857
- var SelectLabel = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2861
+ var SelectLabel = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2858
2862
  SelectPrimitive.Label,
2859
2863
  {
2860
2864
  ref,
2861
- className: cn("px-2 py-1.5 text-sm font-semibold", className),
2865
+ className: cn("dl-select-label", className),
2862
2866
  ...props
2863
2867
  }
2864
2868
  ));
2865
2869
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
2866
- var SelectItem = React31.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2870
+ var SelectItem = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2867
2871
  SelectPrimitive.Item,
2868
2872
  {
2869
2873
  ref,
2870
- className: cn(
2871
- "relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
2872
- className
2873
- ),
2874
+ className: cn("dl-select-item", className),
2874
2875
  ...props,
2875
2876
  children: [
2876
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "absolute right-2 flex items-center justify-center size-3.5", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_lucide_react16.Check, { className: "size-4" }) }) }),
2877
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(SelectPrimitive.ItemText, { children })
2877
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "dl-select-item__indicator", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_lucide_react18.Check, { style: { width: "0.75rem", height: "0.75rem" } }) }) }),
2878
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectPrimitive.ItemText, { children })
2878
2879
  ]
2879
2880
  }
2880
2881
  ));
2881
2882
  SelectItem.displayName = SelectPrimitive.Item.displayName;
2882
- var SelectSeparator = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2883
+ var SelectSeparator = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2883
2884
  SelectPrimitive.Separator,
2884
2885
  {
2885
2886
  ref,
2886
- className: cn("-mx-1 my-1 h-px bg-muted", className),
2887
+ className: cn("dl-select-separator", className),
2887
2888
  ...props
2888
2889
  }
2889
2890
  ));
2890
2891
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
2891
2892
 
2892
- // src/components/separator.tsx
2893
- var React32 = __toESM(require("react"), 1);
2893
+ // src/components/separator/separator.tsx
2894
+ var React35 = __toESM(require("react"), 1);
2894
2895
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
2895
- var import_jsx_runtime33 = require("react/jsx-runtime");
2896
- var Separator6 = React32.forwardRef(
2897
- ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2896
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2897
+ var Separator6 = React35.forwardRef(
2898
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
2898
2899
  SeparatorPrimitive.Root,
2899
2900
  {
2900
2901
  ref,
2901
2902
  decorative,
2902
2903
  orientation,
2903
- className: cn(
2904
- "shrink-0 bg-border",
2905
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
2906
- className
2907
- ),
2904
+ className: cn("dl-separator", className),
2908
2905
  ...props
2909
2906
  }
2910
2907
  )
2911
2908
  );
2912
2909
  Separator6.displayName = SeparatorPrimitive.Root.displayName;
2913
2910
 
2914
- // src/components/sheet.tsx
2915
- var React33 = __toESM(require("react"), 1);
2911
+ // src/components/sheet/sheet.tsx
2912
+ var React36 = __toESM(require("react"), 1);
2916
2913
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
2917
2914
  var import_class_variance_authority6 = require("class-variance-authority");
2918
- var import_lucide_react17 = require("lucide-react");
2919
- var import_jsx_runtime34 = require("react/jsx-runtime");
2915
+ var import_lucide_react19 = require("lucide-react");
2916
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2920
2917
  var Sheet = SheetPrimitive.Root;
2921
2918
  var SheetTrigger = SheetPrimitive.Trigger;
2922
2919
  var SheetClose = SheetPrimitive.Close;
2923
2920
  var SheetPortal = SheetPrimitive.Portal;
2924
- var SheetOverlay = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2921
+ var SheetOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2925
2922
  SheetPrimitive.Overlay,
2926
2923
  {
2927
- className: cn(
2928
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
2929
- className
2930
- ),
2924
+ className: cn("dl-dialog-overlay", className),
2931
2925
  ...props,
2932
2926
  ref
2933
2927
  }
2934
2928
  ));
2935
2929
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
2936
- var sheetVariants = (0, import_class_variance_authority6.cva)(
2937
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
2938
- {
2939
- variants: {
2940
- side: {
2941
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
2942
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
2943
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
2944
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
2945
- }
2946
- },
2947
- defaultVariants: {
2948
- side: "right"
2930
+ var sheetVariants = (0, import_class_variance_authority6.cva)("dl-sheet-content", {
2931
+ variants: {
2932
+ side: {
2933
+ top: "dl-sheet-content--top",
2934
+ bottom: "dl-sheet-content--bottom",
2935
+ left: "dl-sheet-content--left",
2936
+ right: "dl-sheet-content--right"
2949
2937
  }
2938
+ },
2939
+ defaultVariants: {
2940
+ side: "right"
2950
2941
  }
2951
- );
2952
- var SheetContent = React33.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(SheetPortal, { children: [
2953
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(SheetOverlay, {}),
2954
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
2942
+ });
2943
+ var SheetContent = React36.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(SheetPortal, { children: [
2944
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(SheetOverlay, {}),
2945
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2955
2946
  SheetPrimitive.Content,
2956
2947
  {
2957
2948
  ref,
2958
2949
  className: cn(sheetVariants({ side }), className),
2950
+ "data-side": side,
2959
2951
  ...props,
2960
2952
  children: [
2961
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background cursor-pointer transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary", children: [
2962
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_lucide_react17.X, { className: "size-4" }),
2963
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "sr-only", children: "Close" })
2953
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(SheetPrimitive.Close, { className: "dl-sheet-close", children: [
2954
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react19.X, { style: { width: "1rem", height: "1rem" } }),
2955
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "sr-only", children: "Close" })
2964
2956
  ] }),
2965
2957
  children
2966
2958
  ]
@@ -2971,109 +2963,73 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
2971
2963
  var SheetHeader = ({
2972
2964
  className,
2973
2965
  ...props
2974
- }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2975
- "div",
2976
- {
2977
- className: cn(
2978
- "flex flex-col space-y-2 text-center sm:text-left",
2979
- className
2980
- ),
2981
- ...props
2982
- }
2983
- );
2966
+ }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("dl-sheet__header", className), ...props });
2984
2967
  SheetHeader.displayName = "SheetHeader";
2985
2968
  var SheetFooter = ({
2986
2969
  className,
2987
2970
  ...props
2988
- }) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2989
- "div",
2990
- {
2991
- className: cn(
2992
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
2993
- className
2994
- ),
2995
- ...props
2996
- }
2997
- );
2971
+ }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("dl-sheet__footer", className), ...props });
2998
2972
  SheetFooter.displayName = "SheetFooter";
2999
- var SheetTitle = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2973
+ var SheetTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3000
2974
  SheetPrimitive.Title,
3001
2975
  {
3002
2976
  ref,
3003
- className: cn("text-lg font-semibold text-foreground", className),
2977
+ className: cn("dl-sheet__title", className),
3004
2978
  ...props
3005
2979
  }
3006
2980
  ));
3007
2981
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
3008
- var SheetDescription = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2982
+ var SheetDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3009
2983
  SheetPrimitive.Description,
3010
2984
  {
3011
2985
  ref,
3012
- className: cn("text-sm text-muted-foreground", className),
2986
+ className: cn("dl-sheet__desc", className),
3013
2987
  ...props
3014
2988
  }
3015
2989
  ));
3016
2990
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
3017
2991
 
3018
- // src/components/sidebar.tsx
3019
- var React35 = __toESM(require("react"), 1);
2992
+ // src/components/sidebar/sidebar.tsx
2993
+ var React38 = __toESM(require("react"), 1);
3020
2994
  var import_react_slot4 = require("@radix-ui/react-slot");
3021
2995
  var import_class_variance_authority7 = require("class-variance-authority");
3022
- var import_lucide_react18 = require("lucide-react");
3023
-
3024
- // src/components/skeleton.tsx
3025
- var import_jsx_runtime35 = require("react/jsx-runtime");
3026
- function Skeleton({
3027
- className,
3028
- ...props
3029
- }) {
3030
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3031
- "div",
3032
- {
3033
- className: cn("animate-pulse rounded-md bg-primary/10", className),
3034
- ...props
3035
- }
3036
- );
3037
- }
2996
+ var import_lucide_react20 = require("lucide-react");
3038
2997
 
3039
- // src/components/tooltip.tsx
3040
- var React34 = __toESM(require("react"), 1);
2998
+ // src/components/tooltip/tooltip.tsx
2999
+ var React37 = __toESM(require("react"), 1);
3041
3000
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
3042
- var import_jsx_runtime36 = require("react/jsx-runtime");
3001
+ var import_jsx_runtime41 = require("react/jsx-runtime");
3043
3002
  var TooltipProvider = TooltipPrimitive.Provider;
3044
3003
  var Tooltip2 = TooltipPrimitive.Root;
3045
3004
  var TooltipTrigger = TooltipPrimitive.Trigger;
3046
- var TooltipContent = React34.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3005
+ var TooltipContent = React37.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3047
3006
  TooltipPrimitive.Content,
3048
3007
  {
3049
3008
  ref,
3050
3009
  sideOffset,
3051
- className: cn(
3052
- "z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-(--radix-tooltip-content-transform-origin)",
3053
- className
3054
- ),
3010
+ className: cn("dl-tooltip", className),
3055
3011
  ...props
3056
3012
  }
3057
3013
  ) }));
3058
3014
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3059
3015
 
3060
- // src/components/sidebar.tsx
3061
- var import_jsx_runtime37 = require("react/jsx-runtime");
3016
+ // src/components/sidebar/sidebar.tsx
3017
+ var import_jsx_runtime42 = require("react/jsx-runtime");
3062
3018
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
3063
3019
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
3064
3020
  var SIDEBAR_WIDTH = "16rem";
3065
3021
  var SIDEBAR_WIDTH_MOBILE = "18rem";
3066
3022
  var SIDEBAR_WIDTH_ICON = "3rem";
3067
3023
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
3068
- var SidebarContext = React35.createContext(null);
3024
+ var SidebarContext = React38.createContext(null);
3069
3025
  function useSidebar() {
3070
- const context = React35.useContext(SidebarContext);
3026
+ const context = React38.useContext(SidebarContext);
3071
3027
  if (!context) {
3072
3028
  throw new Error("useSidebar must be used within a SidebarProvider.");
3073
3029
  }
3074
3030
  return context;
3075
3031
  }
3076
- var SidebarProvider = React35.forwardRef(
3032
+ var SidebarProvider = React38.forwardRef(
3077
3033
  ({
3078
3034
  defaultOpen = true,
3079
3035
  open: openProp,
@@ -3084,10 +3040,10 @@ var SidebarProvider = React35.forwardRef(
3084
3040
  ...props
3085
3041
  }, ref) => {
3086
3042
  const isMobile = useIsMobile();
3087
- const [openMobile, setOpenMobile] = React35.useState(false);
3088
- const [_open, _setOpen] = React35.useState(defaultOpen);
3043
+ const [openMobile, setOpenMobile] = React38.useState(false);
3044
+ const [_open, _setOpen] = React38.useState(defaultOpen);
3089
3045
  const open = openProp ?? _open;
3090
- const setOpen = React35.useCallback(
3046
+ const setOpen = React38.useCallback(
3091
3047
  (value) => {
3092
3048
  const openState = typeof value === "function" ? value(open) : value;
3093
3049
  if (setOpenProp) {
@@ -3099,10 +3055,10 @@ var SidebarProvider = React35.forwardRef(
3099
3055
  },
3100
3056
  [setOpenProp, open]
3101
3057
  );
3102
- const toggleSidebar = React35.useCallback(() => {
3058
+ const toggleSidebar = React38.useCallback(() => {
3103
3059
  return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
3104
3060
  }, [isMobile, setOpen, setOpenMobile]);
3105
- React35.useEffect(() => {
3061
+ React38.useEffect(() => {
3106
3062
  const handleKeyDown = (event) => {
3107
3063
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
3108
3064
  event.preventDefault();
@@ -3113,7 +3069,7 @@ var SidebarProvider = React35.forwardRef(
3113
3069
  return () => window.removeEventListener("keydown", handleKeyDown);
3114
3070
  }, [toggleSidebar]);
3115
3071
  const state = open ? "expanded" : "collapsed";
3116
- const contextValue = React35.useMemo(
3072
+ const contextValue = React38.useMemo(
3117
3073
  () => ({
3118
3074
  state,
3119
3075
  open,
@@ -3133,7 +3089,7 @@ var SidebarProvider = React35.forwardRef(
3133
3089
  toggleSidebar
3134
3090
  ]
3135
3091
  );
3136
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3092
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3137
3093
  "div",
3138
3094
  {
3139
3095
  style: {
@@ -3153,7 +3109,7 @@ var SidebarProvider = React35.forwardRef(
3153
3109
  }
3154
3110
  );
3155
3111
  SidebarProvider.displayName = "SidebarProvider";
3156
- var Sidebar = React35.forwardRef(
3112
+ var Sidebar = React38.forwardRef(
3157
3113
  ({
3158
3114
  side = "left",
3159
3115
  variant = "sidebar",
@@ -3164,7 +3120,7 @@ var Sidebar = React35.forwardRef(
3164
3120
  }, ref) => {
3165
3121
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
3166
3122
  if (collapsible === "none") {
3167
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3123
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3168
3124
  "div",
3169
3125
  {
3170
3126
  className: cn(
@@ -3178,7 +3134,7 @@ var Sidebar = React35.forwardRef(
3178
3134
  );
3179
3135
  }
3180
3136
  if (isMobile) {
3181
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3137
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3182
3138
  SheetContent,
3183
3139
  {
3184
3140
  "data-sidebar": "sidebar",
@@ -3189,16 +3145,16 @@ var Sidebar = React35.forwardRef(
3189
3145
  },
3190
3146
  side,
3191
3147
  children: [
3192
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(SheetHeader, { className: "sr-only", children: [
3193
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SheetTitle, { children: "Sidebar" }),
3194
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
3148
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(SheetHeader, { className: "sr-only", children: [
3149
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SheetTitle, { children: "Sidebar" }),
3150
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
3195
3151
  ] }),
3196
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col size-full", children })
3152
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "flex flex-col size-full", children })
3197
3153
  ]
3198
3154
  }
3199
3155
  ) });
3200
3156
  }
3201
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3157
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3202
3158
  "div",
3203
3159
  {
3204
3160
  ref,
@@ -3208,7 +3164,7 @@ var Sidebar = React35.forwardRef(
3208
3164
  "data-variant": variant,
3209
3165
  "data-side": side,
3210
3166
  children: [
3211
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3167
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3212
3168
  "div",
3213
3169
  {
3214
3170
  className: cn(
@@ -3219,7 +3175,7 @@ var Sidebar = React35.forwardRef(
3219
3175
  )
3220
3176
  }
3221
3177
  ),
3222
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3178
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3223
3179
  "div",
3224
3180
  {
3225
3181
  className: cn(
@@ -3230,7 +3186,7 @@ var Sidebar = React35.forwardRef(
3230
3186
  className
3231
3187
  ),
3232
3188
  ...props,
3233
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3189
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3234
3190
  "div",
3235
3191
  {
3236
3192
  "data-sidebar": "sidebar",
@@ -3246,9 +3202,9 @@ var Sidebar = React35.forwardRef(
3246
3202
  }
3247
3203
  );
3248
3204
  Sidebar.displayName = "Sidebar";
3249
- var SidebarTrigger = React35.forwardRef(({ className, onClick, ...props }, ref) => {
3205
+ var SidebarTrigger = React38.forwardRef(({ className, onClick, ...props }, ref) => {
3250
3206
  const { toggleSidebar } = useSidebar();
3251
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3207
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3252
3208
  Button,
3253
3209
  {
3254
3210
  ref,
@@ -3262,94 +3218,99 @@ var SidebarTrigger = React35.forwardRef(({ className, onClick, ...props }, ref)
3262
3218
  },
3263
3219
  ...props,
3264
3220
  children: [
3265
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_lucide_react18.PanelLeft, {}),
3266
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
3221
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react20.PanelLeft, {}),
3222
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
3267
3223
  ]
3268
3224
  }
3269
3225
  );
3270
3226
  });
3271
3227
  SidebarTrigger.displayName = "SidebarTrigger";
3272
- var SidebarRail = React35.forwardRef(({ className, ...props }, ref) => {
3273
- const { toggleSidebar } = useSidebar();
3274
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3275
- "button",
3276
- {
3277
- ref,
3278
- "data-sidebar": "rail",
3279
- "aria-label": "Toggle Sidebar",
3280
- tabIndex: -1,
3281
- onClick: toggleSidebar,
3282
- title: "Toggle Sidebar",
3283
- className: cn(
3284
- "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
3285
- "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
3286
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
3287
- "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
3288
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
3289
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
3290
- className
3291
- ),
3292
- ...props
3293
- }
3294
- );
3295
- });
3228
+ var SidebarRail = React38.forwardRef(
3229
+ ({ className, ...props }, ref) => {
3230
+ const { toggleSidebar } = useSidebar();
3231
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3232
+ "button",
3233
+ {
3234
+ ref,
3235
+ "data-sidebar": "rail",
3236
+ "aria-label": "Toggle Sidebar",
3237
+ tabIndex: -1,
3238
+ onClick: toggleSidebar,
3239
+ title: "Toggle Sidebar",
3240
+ className: cn(
3241
+ "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex",
3242
+ "in-data-[side=right]:cursor-e-resize",
3243
+ "[[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
3244
+ "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar",
3245
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
3246
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
3247
+ className
3248
+ ),
3249
+ ...props
3250
+ }
3251
+ );
3252
+ }
3253
+ );
3296
3254
  SidebarRail.displayName = "SidebarRail";
3297
- var SidebarInset = React35.forwardRef(({ className, ...props }, ref) => {
3298
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3299
- "main",
3300
- {
3301
- ref,
3302
- className: cn(
3303
- "relative flex w-full flex-1 flex-col bg-background",
3304
- "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
3305
- className
3306
- ),
3307
- ...props
3308
- }
3309
- );
3310
- });
3255
+ var SidebarInset = React38.forwardRef(
3256
+ ({ className, ...props }, ref) => {
3257
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3258
+ "main",
3259
+ {
3260
+ ref,
3261
+ className: cn(
3262
+ "relative flex w-full flex-1 flex-col bg-background",
3263
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
3264
+ className
3265
+ ),
3266
+ ...props
3267
+ }
3268
+ );
3269
+ }
3270
+ );
3311
3271
  SidebarInset.displayName = "SidebarInset";
3312
- var SidebarInput = React35.forwardRef(({ className, ...props }, ref) => {
3313
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3272
+ var SidebarInput = React38.forwardRef(({ className, ...props }, ref) => {
3273
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3314
3274
  Input,
3315
3275
  {
3316
3276
  ref,
3317
3277
  "data-sidebar": "input",
3318
- className: cn(
3319
- "h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",
3320
- className
3321
- ),
3278
+ className: cn("dl-sidebar-input", className),
3322
3279
  ...props
3323
3280
  }
3324
3281
  );
3325
3282
  });
3326
3283
  SidebarInput.displayName = "SidebarInput";
3327
- var SidebarHeader = React35.forwardRef(({ className, ...props }, ref) => {
3328
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3329
- "div",
3330
- {
3331
- ref,
3332
- "data-sidebar": "header",
3333
- className: cn("flex flex-col gap-2 p-2", className),
3334
- ...props
3335
- }
3336
- );
3337
- });
3284
+ var SidebarHeader = React38.forwardRef(
3285
+ ({ className, ...props }, ref) => {
3286
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3287
+ "div",
3288
+ {
3289
+ ref,
3290
+ "data-sidebar": "header",
3291
+ className: cn("flex flex-col gap-2 p-2", className),
3292
+ ...props
3293
+ }
3294
+ );
3295
+ }
3296
+ );
3338
3297
  SidebarHeader.displayName = "SidebarHeader";
3339
- var SidebarFooter = React35.forwardRef(({ className, ...props }, ref) => {
3340
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3341
- "div",
3342
- {
3343
- ref,
3344
- "data-sidebar": "footer",
3345
- className: cn("flex flex-col gap-2 p-2", className),
3346
- ...props
3347
- }
3348
- );
3349
- });
3298
+ var SidebarFooter = React38.forwardRef(
3299
+ ({ className, ...props }, ref) => {
3300
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3301
+ "div",
3302
+ {
3303
+ ref,
3304
+ "data-sidebar": "footer",
3305
+ className: cn("flex flex-col gap-2 p-2", className),
3306
+ ...props
3307
+ }
3308
+ );
3309
+ }
3310
+ );
3350
3311
  SidebarFooter.displayName = "SidebarFooter";
3351
- var SidebarSeparator = React35.forwardRef(({ className, ...props }, ref) => {
3352
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3312
+ var SidebarSeparator = React38.forwardRef(({ className, ...props }, ref) => {
3313
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3353
3314
  Separator6,
3354
3315
  {
3355
3316
  ref,
@@ -3360,42 +3321,46 @@ var SidebarSeparator = React35.forwardRef(({ className, ...props }, ref) => {
3360
3321
  );
3361
3322
  });
3362
3323
  SidebarSeparator.displayName = "SidebarSeparator";
3363
- var SidebarContent = React35.forwardRef(({ className, ...props }, ref) => {
3364
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3365
- "div",
3366
- {
3367
- ref,
3368
- "data-sidebar": "content",
3369
- className: cn(
3370
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
3371
- className
3372
- ),
3373
- ...props
3374
- }
3375
- );
3376
- });
3324
+ var SidebarContent = React38.forwardRef(
3325
+ ({ className, ...props }, ref) => {
3326
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3327
+ "div",
3328
+ {
3329
+ ref,
3330
+ "data-sidebar": "content",
3331
+ className: cn(
3332
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto",
3333
+ className
3334
+ ),
3335
+ ...props
3336
+ }
3337
+ );
3338
+ }
3339
+ );
3377
3340
  SidebarContent.displayName = "SidebarContent";
3378
- var SidebarGroup = React35.forwardRef(({ className, ...props }, ref) => {
3379
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3380
- "div",
3381
- {
3382
- ref,
3383
- "data-sidebar": "group",
3384
- className: cn("relative flex w-full min-w-0 flex-col p-2", className),
3385
- ...props
3386
- }
3387
- );
3388
- });
3341
+ var SidebarGroup = React38.forwardRef(
3342
+ ({ className, ...props }, ref) => {
3343
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3344
+ "div",
3345
+ {
3346
+ ref,
3347
+ "data-sidebar": "group",
3348
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
3349
+ ...props
3350
+ }
3351
+ );
3352
+ }
3353
+ );
3389
3354
  SidebarGroup.displayName = "SidebarGroup";
3390
- var SidebarGroupLabel = React35.forwardRef(({ className, asChild = false, ...props }, ref) => {
3355
+ var SidebarGroupLabel = React38.forwardRef(({ className, asChild = false, ...props }, ref) => {
3391
3356
  const Comp = asChild ? import_react_slot4.Slot : "div";
3392
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3357
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3393
3358
  Comp,
3394
3359
  {
3395
3360
  ref,
3396
3361
  "data-sidebar": "group-label",
3397
3362
  className: cn(
3398
- "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
3363
+ "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4",
3399
3364
  "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
3400
3365
  className
3401
3366
  ),
@@ -3404,9 +3369,9 @@ var SidebarGroupLabel = React35.forwardRef(({ className, asChild = false, ...pro
3404
3369
  );
3405
3370
  });
3406
3371
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
3407
- var SidebarGroupAction = React35.forwardRef(({ className, asChild = false, ...props }, ref) => {
3372
+ var SidebarGroupAction = React38.forwardRef(({ className, asChild = false, ...props }, ref) => {
3408
3373
  const Comp = asChild ? import_react_slot4.Slot : "button";
3409
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3374
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3410
3375
  Comp,
3411
3376
  {
3412
3377
  ref,
@@ -3423,7 +3388,7 @@ var SidebarGroupAction = React35.forwardRef(({ className, asChild = false, ...pr
3423
3388
  );
3424
3389
  });
3425
3390
  SidebarGroupAction.displayName = "SidebarGroupAction";
3426
- var SidebarGroupContent = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3391
+ var SidebarGroupContent = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3427
3392
  "div",
3428
3393
  {
3429
3394
  ref,
@@ -3433,25 +3398,29 @@ var SidebarGroupContent = React35.forwardRef(({ className, ...props }, ref) => /
3433
3398
  }
3434
3399
  ));
3435
3400
  SidebarGroupContent.displayName = "SidebarGroupContent";
3436
- var SidebarMenu = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3437
- "ul",
3438
- {
3439
- ref,
3440
- "data-sidebar": "menu",
3441
- className: cn("flex w-full min-w-0 flex-col gap-1", className),
3442
- ...props
3443
- }
3444
- ));
3401
+ var SidebarMenu = React38.forwardRef(
3402
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3403
+ "ul",
3404
+ {
3405
+ ref,
3406
+ "data-sidebar": "menu",
3407
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
3408
+ ...props
3409
+ }
3410
+ )
3411
+ );
3445
3412
  SidebarMenu.displayName = "SidebarMenu";
3446
- var SidebarMenuItem = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3447
- "li",
3448
- {
3449
- ref,
3450
- "data-sidebar": "menu-item",
3451
- className: cn("group/menu-item relative", className),
3452
- ...props
3453
- }
3454
- ));
3413
+ var SidebarMenuItem = React38.forwardRef(
3414
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3415
+ "li",
3416
+ {
3417
+ ref,
3418
+ "data-sidebar": "menu-item",
3419
+ className: cn("group/menu-item relative", className),
3420
+ ...props
3421
+ }
3422
+ )
3423
+ );
3455
3424
  SidebarMenuItem.displayName = "SidebarMenuItem";
3456
3425
  var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
3457
3426
  "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring cursor-pointer transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
@@ -3473,7 +3442,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
3473
3442
  }
3474
3443
  }
3475
3444
  );
3476
- var SidebarMenuButton = React35.forwardRef(
3445
+ var SidebarMenuButton = React38.forwardRef(
3477
3446
  ({
3478
3447
  asChild = false,
3479
3448
  isActive = false,
@@ -3485,7 +3454,7 @@ var SidebarMenuButton = React35.forwardRef(
3485
3454
  }, ref) => {
3486
3455
  const Comp = asChild ? import_react_slot4.Slot : "button";
3487
3456
  const { isMobile, state } = useSidebar();
3488
- const button = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3457
+ const button = /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3489
3458
  Comp,
3490
3459
  {
3491
3460
  ref,
@@ -3504,9 +3473,9 @@ var SidebarMenuButton = React35.forwardRef(
3504
3473
  children: tooltip
3505
3474
  };
3506
3475
  }
3507
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Tooltip2, { children: [
3508
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(TooltipTrigger, { asChild: true, children: button }),
3509
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3476
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Tooltip2, { children: [
3477
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipTrigger, { asChild: true, children: button }),
3478
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3510
3479
  TooltipContent,
3511
3480
  {
3512
3481
  side: "right",
@@ -3519,9 +3488,9 @@ var SidebarMenuButton = React35.forwardRef(
3519
3488
  }
3520
3489
  );
3521
3490
  SidebarMenuButton.displayName = "SidebarMenuButton";
3522
- var SidebarMenuAction = React35.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
3491
+ var SidebarMenuAction = React38.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
3523
3492
  const Comp = asChild ? import_react_slot4.Slot : "button";
3524
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3493
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3525
3494
  Comp,
3526
3495
  {
3527
3496
  ref,
@@ -3534,7 +3503,7 @@ var SidebarMenuAction = React35.forwardRef(({ className, asChild = false, showOn
3534
3503
  "peer-data-[size=default]/menu-button:top-1.5",
3535
3504
  "peer-data-[size=lg]/menu-button:top-2.5",
3536
3505
  "group-data-[collapsible=icon]:hidden",
3537
- showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
3506
+ showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",
3538
3507
  className
3539
3508
  ),
3540
3509
  ...props
@@ -3542,7 +3511,7 @@ var SidebarMenuAction = React35.forwardRef(({ className, asChild = false, showOn
3542
3511
  );
3543
3512
  });
3544
3513
  SidebarMenuAction.displayName = "SidebarMenuAction";
3545
- var SidebarMenuBadge = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3514
+ var SidebarMenuBadge = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3546
3515
  "div",
3547
3516
  {
3548
3517
  ref,
@@ -3560,11 +3529,11 @@ var SidebarMenuBadge = React35.forwardRef(({ className, ...props }, ref) => /* @
3560
3529
  }
3561
3530
  ));
3562
3531
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
3563
- var SidebarMenuSkeleton = React35.forwardRef(({ className, showIcon = false, ...props }, ref) => {
3564
- const width = React35.useMemo(() => {
3532
+ var SidebarMenuSkeleton = React38.forwardRef(({ className, showIcon = false, ...props }, ref) => {
3533
+ const width = React38.useMemo(() => {
3565
3534
  return `${Math.floor(Math.random() * 40) + 50}%`;
3566
3535
  }, []);
3567
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
3536
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3568
3537
  "div",
3569
3538
  {
3570
3539
  ref,
@@ -3572,14 +3541,14 @@ var SidebarMenuSkeleton = React35.forwardRef(({ className, showIcon = false, ...
3572
3541
  className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
3573
3542
  ...props,
3574
3543
  children: [
3575
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3544
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3576
3545
  Skeleton,
3577
3546
  {
3578
3547
  className: "size-4 rounded-md",
3579
3548
  "data-sidebar": "menu-skeleton-icon"
3580
3549
  }
3581
3550
  ),
3582
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3551
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3583
3552
  Skeleton,
3584
3553
  {
3585
3554
  className: "h-4 max-w-(--skeleton-width) flex-1",
@@ -3594,25 +3563,27 @@ var SidebarMenuSkeleton = React35.forwardRef(({ className, showIcon = false, ...
3594
3563
  );
3595
3564
  });
3596
3565
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
3597
- var SidebarMenuSub = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3598
- "ul",
3599
- {
3600
- ref,
3601
- "data-sidebar": "menu-sub",
3602
- className: cn(
3603
- "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
3604
- "group-data-[collapsible=icon]:hidden",
3605
- className
3606
- ),
3607
- ...props
3608
- }
3609
- ));
3566
+ var SidebarMenuSub = React38.forwardRef(
3567
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3568
+ "ul",
3569
+ {
3570
+ ref,
3571
+ "data-sidebar": "menu-sub",
3572
+ className: cn(
3573
+ "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
3574
+ "group-data-[collapsible=icon]:hidden",
3575
+ className
3576
+ ),
3577
+ ...props
3578
+ }
3579
+ )
3580
+ );
3610
3581
  SidebarMenuSub.displayName = "SidebarMenuSub";
3611
- var SidebarMenuSubItem = React35.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { ref, ...props }));
3582
+ var SidebarMenuSubItem = React38.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("li", { ref, ...props }));
3612
3583
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
3613
- var SidebarMenuSubButton = React35.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
3584
+ var SidebarMenuSubButton = React38.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
3614
3585
  const Comp = asChild ? import_react_slot4.Slot : "a";
3615
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3586
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3616
3587
  Comp,
3617
3588
  {
3618
3589
  ref,
@@ -3620,7 +3591,7 @@ var SidebarMenuSubButton = React35.forwardRef(({ asChild = false, size = "md", i
3620
3591
  "data-size": size,
3621
3592
  "data-active": isActive,
3622
3593
  className: cn(
3623
- "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
3594
+ "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
3624
3595
  "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
3625
3596
  size === "sm" && "text-xs",
3626
3597
  size === "md" && "text-sm",
@@ -3633,41 +3604,38 @@ var SidebarMenuSubButton = React35.forwardRef(({ asChild = false, size = "md", i
3633
3604
  });
3634
3605
  SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
3635
3606
 
3636
- // src/components/slider.tsx
3637
- var React36 = __toESM(require("react"), 1);
3607
+ // src/components/slider/slider.tsx
3608
+ var React39 = __toESM(require("react"), 1);
3638
3609
  var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
3639
- var import_jsx_runtime38 = require("react/jsx-runtime");
3640
- var Slider = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
3610
+ var import_jsx_runtime43 = require("react/jsx-runtime");
3611
+ var Slider = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
3641
3612
  SliderPrimitive.Root,
3642
3613
  {
3643
3614
  ref,
3644
- className: cn(
3645
- "relative flex w-full touch-none select-none items-center",
3646
- className
3647
- ),
3615
+ className: cn("dl-slider", className),
3648
3616
  ...props,
3649
3617
  children: [
3650
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
3651
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SliderPrimitive.Thumb, { className: "block rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 size-4" })
3618
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SliderPrimitive.Track, { className: "dl-slider__track", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SliderPrimitive.Range, { className: "dl-slider__range" }) }),
3619
+ /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(SliderPrimitive.Thumb, { className: "dl-slider__thumb" })
3652
3620
  ]
3653
3621
  }
3654
3622
  ));
3655
3623
  Slider.displayName = SliderPrimitive.Root.displayName;
3656
3624
 
3657
- // src/components/sonner.tsx
3625
+ // src/components/sonner/sonner.tsx
3658
3626
  var import_sonner = require("sonner");
3659
- var import_jsx_runtime39 = require("react/jsx-runtime");
3627
+ var import_jsx_runtime44 = require("react/jsx-runtime");
3660
3628
  var Toaster = ({ ...props }) => {
3661
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3629
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3662
3630
  import_sonner.Toaster,
3663
3631
  {
3664
- className: "toaster group",
3632
+ className: "dl-toaster",
3665
3633
  toastOptions: {
3666
3634
  classNames: {
3667
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
3668
- description: "group-[.toast]:text-muted-foreground",
3669
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
3670
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
3635
+ toast: "dl-toast",
3636
+ description: "dl-toast__desc",
3637
+ actionButton: "dl-toast__action",
3638
+ cancelButton: "dl-toast__cancel"
3671
3639
  }
3672
3640
  },
3673
3641
  ...props
@@ -3675,202 +3643,211 @@ var Toaster = ({ ...props }) => {
3675
3643
  );
3676
3644
  };
3677
3645
 
3678
- // src/components/switch.tsx
3679
- var React37 = __toESM(require("react"), 1);
3646
+ // src/components/status-badge/status-badge.tsx
3647
+ var React40 = __toESM(require("react"), 1);
3648
+ var import_jsx_runtime45 = require("react/jsx-runtime");
3649
+ var statusCategoryMap = {
3650
+ Completed: "dl-status-badge--success",
3651
+ COMPLETED: "dl-status-badge--success",
3652
+ Operational: "dl-status-badge--success",
3653
+ OPERATIONAL: "dl-status-badge--success",
3654
+ Active: "dl-status-badge--success",
3655
+ ACTIVE: "dl-status-badge--success",
3656
+ ONLINE: "dl-status-badge--success",
3657
+ "In Progress": "dl-status-badge--info",
3658
+ RUNNING: "dl-status-badge--info",
3659
+ "Needs Approval": "dl-status-badge--warning",
3660
+ Degraded: "dl-status-badge--warning",
3661
+ PAUSED: "dl-status-badge--warning",
3662
+ Failed: "dl-status-badge--destructive",
3663
+ FAILED: "dl-status-badge--destructive",
3664
+ Offline: "dl-status-badge--muted",
3665
+ DISABLED: "dl-status-badge--muted",
3666
+ IDLE: "dl-status-badge--muted"
3667
+ };
3668
+ var StatusBadge = React40.forwardRef(
3669
+ ({ status, className, ...props }, ref) => {
3670
+ const normalizedStatus = status?.trim() ?? "";
3671
+ const colorClass = statusCategoryMap[normalizedStatus] ?? "dl-status-badge--muted";
3672
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
3673
+ "span",
3674
+ {
3675
+ ref,
3676
+ className: cn("dl-status-badge", colorClass, className),
3677
+ ...props,
3678
+ children: [
3679
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "dl-status-badge__dot" }),
3680
+ normalizedStatus
3681
+ ]
3682
+ }
3683
+ );
3684
+ }
3685
+ );
3686
+ StatusBadge.displayName = "StatusBadge";
3687
+
3688
+ // src/components/status-chip/status-chip.tsx
3689
+ var React41 = __toESM(require("react"), 1);
3690
+ var import_jsx_runtime46 = require("react/jsx-runtime");
3691
+ var statusToneMap = {
3692
+ active: "dl-status-chip--primary",
3693
+ running: "dl-status-chip--primary",
3694
+ completed: "dl-status-chip--muted",
3695
+ done: "dl-status-chip--muted",
3696
+ indexed: "dl-status-chip--primary",
3697
+ enabled: "dl-status-chip--primary",
3698
+ available: "dl-status-chip--primary",
3699
+ published: "dl-status-chip--primary",
3700
+ ok: "dl-status-chip--primary",
3701
+ waiting: "dl-status-chip--warning",
3702
+ paused: "dl-status-chip--warning",
3703
+ processing: "dl-status-chip--warning",
3704
+ degraded: "dl-status-chip--warning",
3705
+ warn: "dl-status-chip--warning",
3706
+ "requires-approval": "dl-status-chip--warning",
3707
+ draft: "dl-status-chip--warning",
3708
+ failed: "dl-status-chip--destructive",
3709
+ error: "dl-status-chip--destructive",
3710
+ offline: "dl-status-chip--destructive"
3711
+ };
3712
+ var StatusChip = React41.forwardRef(
3713
+ ({ status, className, ...props }, ref) => {
3714
+ const toneClass = statusToneMap[status] ?? "dl-status-chip--muted";
3715
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
3716
+ "span",
3717
+ {
3718
+ ref,
3719
+ className: cn("dl-status-chip", toneClass, className),
3720
+ ...props,
3721
+ children: [
3722
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "dl-status-chip__dot" }),
3723
+ status
3724
+ ]
3725
+ }
3726
+ );
3727
+ }
3728
+ );
3729
+ StatusChip.displayName = "StatusChip";
3730
+
3731
+ // src/components/switch/switch.tsx
3732
+ var React42 = __toESM(require("react"), 1);
3680
3733
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
3681
- var import_jsx_runtime40 = require("react/jsx-runtime");
3682
- var Switch = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3734
+ var import_jsx_runtime47 = require("react/jsx-runtime");
3735
+ var Switch = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
3683
3736
  SwitchPrimitives.Root,
3684
3737
  {
3685
- className: cn(
3686
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
3687
- className
3688
- ),
3738
+ className: cn("dl-switch", className),
3689
3739
  ...props,
3690
3740
  ref,
3691
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
3692
- SwitchPrimitives.Thumb,
3693
- {
3694
- className: cn(
3695
- "pointer-events-none block rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0 size-4"
3696
- )
3697
- }
3698
- )
3741
+ children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SwitchPrimitives.Thumb, { className: "dl-switch__thumb" })
3699
3742
  }
3700
3743
  ));
3701
3744
  Switch.displayName = SwitchPrimitives.Root.displayName;
3702
3745
 
3703
- // src/components/table.tsx
3704
- var React38 = __toESM(require("react"), 1);
3705
- var import_jsx_runtime41 = require("react/jsx-runtime");
3706
- var Table = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3707
- "table",
3708
- {
3709
- ref,
3710
- className: cn("w-full caption-bottom text-sm", className),
3711
- ...props
3712
- }
3713
- ) }));
3746
+ // src/components/table/table.tsx
3747
+ var React43 = __toESM(require("react"), 1);
3748
+ var import_jsx_runtime48 = require("react/jsx-runtime");
3749
+ var Table = React43.forwardRef(
3750
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "dl-table-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("table", { ref, className: cn("dl-table", className), ...props }) })
3751
+ );
3714
3752
  Table.displayName = "Table";
3715
- var TableHeader = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
3753
+ var TableHeader = React43.forwardRef(
3754
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("thead", { ref, className: cn("dl-table__head", className), ...props })
3755
+ );
3716
3756
  TableHeader.displayName = "TableHeader";
3717
- var TableBody = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3718
- "tbody",
3757
+ var TableBody = React43.forwardRef(
3758
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tbody", { ref, className: cn("dl-table__body", className), ...props })
3759
+ );
3760
+ TableBody.displayName = "TableBody";
3761
+ var TableFooter = React43.forwardRef(
3762
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tfoot", { ref, className: cn("dl-table__foot", className), ...props })
3763
+ );
3764
+ TableFooter.displayName = "TableFooter";
3765
+ var TableRow = React43.forwardRef(
3766
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("tr", { ref, className: cn("dl-table__row", className), ...props })
3767
+ );
3768
+ TableRow.displayName = "TableRow";
3769
+ var TableHead = React43.forwardRef(
3770
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("th", { ref, className: cn("dl-table__head-cell", className), ...props })
3771
+ );
3772
+ TableHead.displayName = "TableHead";
3773
+ var TableCell = React43.forwardRef(
3774
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("td", { ref, className: cn("dl-table__cell", className), ...props })
3775
+ );
3776
+ TableCell.displayName = "TableCell";
3777
+ var TableCaption = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
3778
+ "caption",
3719
3779
  {
3720
3780
  ref,
3721
- className: cn("[&_tr:last-child]:border-0", className),
3722
- ...props
3723
- }
3724
- ));
3725
- TableBody.displayName = "TableBody";
3726
- var TableFooter = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3727
- "tfoot",
3728
- {
3729
- ref,
3730
- className: cn(
3731
- "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
3732
- className
3733
- ),
3734
- ...props
3735
- }
3736
- ));
3737
- TableFooter.displayName = "TableFooter";
3738
- var TableRow = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3739
- "tr",
3740
- {
3741
- ref,
3742
- className: cn(
3743
- "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
3744
- className
3745
- ),
3746
- ...props
3747
- }
3748
- ));
3749
- TableRow.displayName = "TableRow";
3750
- var TableHead = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3751
- "th",
3752
- {
3753
- ref,
3754
- className: cn(
3755
- "h-10 px-2 text-left align-middle font-medium text-muted-foreground has-[[role=checkbox]]:pr-0 *:[[role=checkbox]]:translate-y-[2px]",
3756
- className
3757
- ),
3758
- ...props
3759
- }
3760
- ));
3761
- TableHead.displayName = "TableHead";
3762
- var TableCell = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3763
- "td",
3764
- {
3765
- ref,
3766
- className: cn(
3767
- "p-2 align-middle has-[[role=checkbox]]:pr-0 *:[[role=checkbox]]:translate-y-[2px]",
3768
- className
3769
- ),
3770
- ...props
3771
- }
3772
- ));
3773
- TableCell.displayName = "TableCell";
3774
- var TableCaption = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3775
- "caption",
3776
- {
3777
- ref,
3778
- className: cn("mt-4 text-sm text-muted-foreground", className),
3781
+ className: cn("dl-table__caption", className),
3779
3782
  ...props
3780
3783
  }
3781
3784
  ));
3782
3785
  TableCaption.displayName = "TableCaption";
3783
3786
 
3784
- // src/components/tabs.tsx
3785
- var React39 = __toESM(require("react"), 1);
3787
+ // src/components/tabs/tabs.tsx
3788
+ var React44 = __toESM(require("react"), 1);
3786
3789
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
3787
- var import_jsx_runtime42 = require("react/jsx-runtime");
3790
+ var import_jsx_runtime49 = require("react/jsx-runtime");
3788
3791
  var Tabs = TabsPrimitive.Root;
3789
- var TabsList = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3792
+ var TabsList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3790
3793
  TabsPrimitive.List,
3791
3794
  {
3792
3795
  ref,
3793
- className: cn(
3794
- "inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",
3795
- className
3796
- ),
3796
+ className: cn("dl-tabs-list", className),
3797
3797
  ...props
3798
3798
  }
3799
3799
  ));
3800
3800
  TabsList.displayName = TabsPrimitive.List.displayName;
3801
- var TabsTrigger = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3801
+ var TabsTrigger = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3802
3802
  TabsPrimitive.Trigger,
3803
3803
  {
3804
3804
  ref,
3805
- className: cn(
3806
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background cursor-pointer transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
3807
- className
3808
- ),
3805
+ className: cn("dl-tabs-trigger", className),
3809
3806
  ...props
3810
3807
  }
3811
3808
  ));
3812
3809
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
3813
- var TabsContent = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3810
+ var TabsContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
3814
3811
  TabsPrimitive.Content,
3815
3812
  {
3816
3813
  ref,
3817
- className: cn(
3818
- "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
3819
- className
3820
- ),
3814
+ className: cn("dl-tabs-content", className),
3821
3815
  ...props
3822
3816
  }
3823
3817
  ));
3824
3818
  TabsContent.displayName = TabsPrimitive.Content.displayName;
3825
3819
 
3826
- // src/components/textarea.tsx
3827
- var React40 = __toESM(require("react"), 1);
3828
- var import_jsx_runtime43 = require("react/jsx-runtime");
3829
- var Textarea = React40.forwardRef(({ className, ...props }, ref) => {
3830
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
3831
- "textarea",
3832
- {
3833
- className: cn(
3834
- "flex min-h-15 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3835
- className
3836
- ),
3837
- ref,
3838
- ...props
3839
- }
3840
- );
3841
- });
3820
+ // src/components/textarea/textarea.tsx
3821
+ var React45 = __toESM(require("react"), 1);
3822
+ var import_jsx_runtime50 = require("react/jsx-runtime");
3823
+ var Textarea = React45.forwardRef(
3824
+ ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("textarea", { className: cn("dl-textarea", className), ref, ...props })
3825
+ );
3842
3826
  Textarea.displayName = "Textarea";
3843
3827
 
3844
- // src/components/toggle-group.tsx
3845
- var React42 = __toESM(require("react"), 1);
3846
- var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
3847
-
3848
- // src/components/toggle.tsx
3849
- var React41 = __toESM(require("react"), 1);
3828
+ // src/components/toggle/toggle.tsx
3829
+ var React46 = __toESM(require("react"), 1);
3850
3830
  var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
3851
3831
  var import_class_variance_authority8 = require("class-variance-authority");
3852
- var import_jsx_runtime44 = require("react/jsx-runtime");
3853
- var toggleVariants = (0, import_class_variance_authority8.cva)(
3854
- "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium cursor-pointer transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
3855
- {
3856
- variants: {
3857
- variant: {
3858
- default: "bg-transparent",
3859
- outline: "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"
3860
- },
3861
- size: {
3862
- default: "h-9 px-2 min-w-9",
3863
- sm: "h-8 px-1.5 min-w-8",
3864
- lg: "h-10 px-2.5 min-w-10"
3865
- }
3832
+ var import_jsx_runtime51 = require("react/jsx-runtime");
3833
+ var toggleVariants = (0, import_class_variance_authority8.cva)("dl-toggle", {
3834
+ variants: {
3835
+ variant: {
3836
+ default: "dl-toggle--variant-default",
3837
+ outline: "dl-toggle--variant-outline"
3866
3838
  },
3867
- defaultVariants: {
3868
- variant: "default",
3869
- size: "default"
3839
+ size: {
3840
+ default: "dl-toggle--size-default",
3841
+ sm: "dl-toggle--size-sm",
3842
+ lg: "dl-toggle--size-lg"
3870
3843
  }
3844
+ },
3845
+ defaultVariants: {
3846
+ variant: "default",
3847
+ size: "default"
3871
3848
  }
3872
- );
3873
- var Toggle = React41.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
3849
+ });
3850
+ var Toggle = React46.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
3874
3851
  TogglePrimitive.Root,
3875
3852
  {
3876
3853
  ref,
@@ -3880,25 +3857,27 @@ var Toggle = React41.forwardRef(({ className, variant, size, ...props }, ref) =>
3880
3857
  ));
3881
3858
  Toggle.displayName = TogglePrimitive.Root.displayName;
3882
3859
 
3883
- // src/components/toggle-group.tsx
3884
- var import_jsx_runtime45 = require("react/jsx-runtime");
3885
- var ToggleGroupContext = React42.createContext({
3860
+ // src/components/toggle-group/toggle-group.tsx
3861
+ var React47 = __toESM(require("react"), 1);
3862
+ var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
3863
+ var import_jsx_runtime52 = require("react/jsx-runtime");
3864
+ var ToggleGroupContext = React47.createContext({
3886
3865
  size: "default",
3887
3866
  variant: "default"
3888
3867
  });
3889
- var ToggleGroup = React42.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3868
+ var ToggleGroup = React47.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3890
3869
  ToggleGroupPrimitive.Root,
3891
3870
  {
3892
3871
  ref,
3893
- className: cn("flex items-center justify-center gap-1", className),
3872
+ className: cn("dl-toggle-group", className),
3894
3873
  ...props,
3895
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
3874
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
3896
3875
  }
3897
3876
  ));
3898
3877
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
3899
- var ToggleGroupItem = React42.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3900
- const context = React42.useContext(ToggleGroupContext);
3901
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
3878
+ var ToggleGroupItem = React47.forwardRef(({ className, children, variant, size, ...props }, ref) => {
3879
+ const context = React47.useContext(ToggleGroupContext);
3880
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
3902
3881
  ToggleGroupPrimitive.Item,
3903
3882
  {
3904
3883
  ref,
@@ -3915,378 +3894,6 @@ var ToggleGroupItem = React42.forwardRef(({ className, children, variant, size,
3915
3894
  );
3916
3895
  });
3917
3896
  ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
3918
-
3919
- // src/components/panel.tsx
3920
- var React43 = __toESM(require("react"), 1);
3921
- var import_jsx_runtime46 = require("react/jsx-runtime");
3922
- var Panel2 = React43.forwardRef(
3923
- ({ title, meta, children, className, ...props }, ref) => {
3924
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
3925
- "section",
3926
- {
3927
- ref,
3928
- className: cn("rounded-lg border border-border bg-card p-4", className),
3929
- ...props,
3930
- children: [
3931
- title ? /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "mb-3 flex items-center gap-2", children: [
3932
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("h2", { className: "font-display text-sm font-semibold", children: title }),
3933
- meta ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "ml-auto font-mono text-[10px] text-muted-foreground", children: meta }) : null
3934
- ] }) : null,
3935
- children
3936
- ]
3937
- }
3938
- );
3939
- }
3940
- );
3941
- Panel2.displayName = "Panel";
3942
-
3943
- // src/components/status-chip.tsx
3944
- var React44 = __toESM(require("react"), 1);
3945
- var import_jsx_runtime47 = require("react/jsx-runtime");
3946
- var statusTone = {
3947
- active: "border-primary/30 bg-primary/10 text-primary",
3948
- running: "border-primary/30 bg-primary/10 text-primary",
3949
- completed: "border-border bg-secondary text-muted-foreground",
3950
- done: "border-border bg-secondary text-muted-foreground",
3951
- indexed: "border-primary/30 bg-primary/10 text-primary",
3952
- enabled: "border-primary/30 bg-primary/10 text-primary",
3953
- available: "border-primary/30 bg-primary/10 text-primary",
3954
- published: "border-primary/30 bg-primary/10 text-primary",
3955
- ok: "border-primary/30 bg-primary/10 text-primary",
3956
- waiting: "border-warning/35 bg-warning/10 text-warning",
3957
- paused: "border-warning/35 bg-warning/10 text-warning",
3958
- processing: "border-warning/35 bg-warning/10 text-warning",
3959
- degraded: "border-warning/35 bg-warning/10 text-warning",
3960
- warn: "border-warning/35 bg-warning/10 text-warning",
3961
- "requires-approval": "border-warning/35 bg-warning/10 text-warning",
3962
- draft: "border-warning/35 bg-warning/10 text-warning",
3963
- failed: "border-destructive/35 bg-destructive/10 text-destructive",
3964
- error: "border-destructive/35 bg-destructive/10 text-destructive",
3965
- offline: "border-destructive/35 bg-destructive/10 text-destructive"
3966
- };
3967
- var StatusChip = React44.forwardRef(
3968
- ({ status, className, ...props }, ref) => {
3969
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
3970
- "span",
3971
- {
3972
- ref,
3973
- className: cn(
3974
- "inline-flex items-center gap-1.5 rounded-md border px-2 py-0.5 font-mono text-[10px]",
3975
- statusTone[status] ?? "border-border bg-secondary text-muted-foreground",
3976
- className
3977
- ),
3978
- ...props,
3979
- children: [
3980
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "size-1.5 rounded-full bg-current" }),
3981
- status
3982
- ]
3983
- }
3984
- );
3985
- }
3986
- );
3987
- StatusChip.displayName = "StatusChip";
3988
-
3989
- // src/components/date-picker.tsx
3990
- var React45 = __toESM(require("react"), 1);
3991
- var import_date_fns = require("date-fns");
3992
- var import_lucide_react19 = require("lucide-react");
3993
- var import_jsx_runtime48 = require("react/jsx-runtime");
3994
- function DatePicker({
3995
- value,
3996
- onChange,
3997
- placeholder = "Pick a date",
3998
- className,
3999
- disabled
4000
- }) {
4001
- const date = React45.useMemo(() => {
4002
- if (!value) return void 0;
4003
- const parts = value.split("-");
4004
- if (parts.length !== 3) {
4005
- const d = new Date(value);
4006
- return isNaN(d.getTime()) ? void 0 : d;
4007
- }
4008
- const year = parseInt(parts[0], 10);
4009
- const month = parseInt(parts[1], 10) - 1;
4010
- const day = parseInt(parts[2], 10);
4011
- return new Date(year, month, day, 12, 0, 0);
4012
- }, [value]);
4013
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Popover, { children: [
4014
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
4015
- Button,
4016
- {
4017
- variant: "outline",
4018
- type: "button",
4019
- disabled,
4020
- className: cn(
4021
- "border-border/80 bg-secondary/40 hover:bg-secondary/60 hover:text-foreground h-9 w-full justify-start text-left font-normal",
4022
- !value && "text-muted-foreground",
4023
- className
4024
- ),
4025
- children: [
4026
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react19.Calendar, { className: "mr-2 size-4" }),
4027
- date && !isNaN(date.getTime()) ? (0, import_date_fns.format)(date, "PPP") : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { children: placeholder })
4028
- ]
4029
- }
4030
- ) }),
4031
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4032
- Calendar,
4033
- {
4034
- mode: "single",
4035
- selected: date,
4036
- onSelect: (selectedDate) => onChange?.(selectedDate ? (0, import_date_fns.format)(selectedDate, "yyyy-MM-dd") : ""),
4037
- initialFocus: true
4038
- }
4039
- ) })
4040
- ] });
4041
- }
4042
-
4043
- // src/components/searchable-select.tsx
4044
- var React46 = __toESM(require("react"), 1);
4045
- var import_lucide_react20 = require("lucide-react");
4046
- var import_jsx_runtime49 = require("react/jsx-runtime");
4047
- function SearchableSelect({
4048
- options,
4049
- value,
4050
- onChange,
4051
- placeholder = "Select an option...",
4052
- searchPlaceholder = "Search...",
4053
- onAddNew,
4054
- addNewLabel = "Add new",
4055
- disabled = false,
4056
- className,
4057
- id
4058
- }) {
4059
- const [open, setOpen] = React46.useState(false);
4060
- const [search, setSearch] = React46.useState("");
4061
- const [highlightedIndex, setHighlightedIndex] = React46.useState(0);
4062
- const listRef = React46.useRef(null);
4063
- const selectedOption = React46.useMemo(() => {
4064
- return options.find((opt) => opt.value === value);
4065
- }, [options, value]);
4066
- const filteredOptions = React46.useMemo(() => {
4067
- if (!search.trim()) return options;
4068
- const q = search.toLowerCase();
4069
- return options.filter(
4070
- (opt) => opt.label.toLowerCase().includes(q) || opt.group && opt.group.toLowerCase().includes(q)
4071
- );
4072
- }, [options, search]);
4073
- const handleOpenChange = (newOpen) => {
4074
- setOpen(newOpen);
4075
- if (newOpen) {
4076
- const idx = filteredOptions.findIndex((opt) => opt.value === value);
4077
- setHighlightedIndex(idx >= 0 ? idx : 0);
4078
- } else {
4079
- setSearch("");
4080
- }
4081
- };
4082
- const handleSearchChange = (newSearch) => {
4083
- setSearch(newSearch);
4084
- setHighlightedIndex(0);
4085
- };
4086
- React46.useEffect(() => {
4087
- if (open && listRef.current) {
4088
- const activeEl = listRef.current.querySelector(
4089
- "[data-highlighted='true']"
4090
- );
4091
- if (activeEl) {
4092
- activeEl.scrollIntoView({ block: "nearest" });
4093
- }
4094
- }
4095
- }, [highlightedIndex, open]);
4096
- const groupedOptions = React46.useMemo(() => {
4097
- const hasGroups = filteredOptions.some((opt) => opt.group);
4098
- if (!hasGroups) return { Default: filteredOptions };
4099
- return filteredOptions.reduce(
4100
- (acc, opt) => {
4101
- const g = opt.group || "Other";
4102
- if (!acc[g]) acc[g] = [];
4103
- acc[g].push(opt);
4104
- return acc;
4105
- },
4106
- {}
4107
- );
4108
- }, [filteredOptions]);
4109
- const handleSelect = (val) => {
4110
- onChange?.(val);
4111
- setOpen(false);
4112
- setSearch("");
4113
- };
4114
- const handleAddNew = () => {
4115
- onAddNew?.(search.trim());
4116
- setOpen(false);
4117
- setSearch("");
4118
- };
4119
- const handleKeyDown = (e) => {
4120
- if (!open) {
4121
- if (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") {
4122
- e.preventDefault();
4123
- handleOpenChange(true);
4124
- }
4125
- return;
4126
- }
4127
- switch (e.key) {
4128
- case "ArrowDown":
4129
- e.preventDefault();
4130
- setHighlightedIndex(
4131
- (prev) => prev < filteredOptions.length - 1 ? prev + 1 : prev
4132
- );
4133
- break;
4134
- case "ArrowUp":
4135
- e.preventDefault();
4136
- setHighlightedIndex((prev) => prev > 0 ? prev - 1 : 0);
4137
- break;
4138
- case "Enter":
4139
- e.preventDefault();
4140
- if (filteredOptions.length > 0 && filteredOptions[highlightedIndex]) {
4141
- handleSelect(filteredOptions[highlightedIndex].value);
4142
- } else if (onAddNew && search.trim()) {
4143
- handleAddNew();
4144
- }
4145
- break;
4146
- case "Escape":
4147
- case "Tab":
4148
- e.preventDefault();
4149
- handleOpenChange(false);
4150
- break;
4151
- }
4152
- };
4153
- let currentIndex = 0;
4154
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Popover, { open, onOpenChange: handleOpenChange, children: [
4155
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4156
- Button,
4157
- {
4158
- id,
4159
- variant: "outline",
4160
- role: "combobox",
4161
- "aria-expanded": open,
4162
- disabled,
4163
- onKeyDown: handleKeyDown,
4164
- className: cn(
4165
- "bg-background border-input hover:bg-accent/50 h-9 w-full justify-between px-3 text-left font-normal",
4166
- !selectedOption && "text-muted-foreground",
4167
- className
4168
- ),
4169
- children: [
4170
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "truncate", children: selectedOption ? selectedOption.label : placeholder }),
4171
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.ChevronDown, { className: "ml-2 size-4 shrink-0 opacity-50" })
4172
- ]
4173
- }
4174
- ) }),
4175
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4176
- PopoverContent,
4177
- {
4178
- align: "start",
4179
- className: "border-border bg-popover w-(--radix-popover-trigger-width) min-w-55 border p-0 shadow-lg",
4180
- onKeyDown: handleKeyDown,
4181
- children: [
4182
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "border-border flex items-center gap-2 border-b p-2", children: [
4183
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Search, { className: "text-muted-foreground size-4 shrink-0 opacity-50" }),
4184
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4185
- Input,
4186
- {
4187
- placeholder: searchPlaceholder,
4188
- value: search,
4189
- onChange: (e) => handleSearchChange(e.target.value),
4190
- className: "h-8 border-none bg-transparent px-1 text-sm focus-visible:ring-0 focus-visible:ring-offset-0",
4191
- autoFocus: true
4192
- }
4193
- )
4194
- ] }),
4195
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4196
- "div",
4197
- {
4198
- ref: listRef,
4199
- onWheel: (e) => e.stopPropagation(),
4200
- className: "max-h-60 overflow-y-auto overscroll-contain p-1 text-sm",
4201
- children: Object.keys(groupedOptions).length === 0 || filteredOptions.length === 0 && !onAddNew ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "text-muted-foreground py-6 text-center text-xs", children: "No matching options found." }) : Object.entries(groupedOptions).map(([groupName, groupOpts]) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "py-1", children: [
4202
- groupName !== "Default" && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "text-muted-foreground/70 px-2 py-1 text-[10px] font-bold tracking-wider uppercase", children: groupName }),
4203
- groupOpts.map((option) => {
4204
- const isSelected = option.value === value;
4205
- const itemIndex = currentIndex++;
4206
- const isHighlighted = itemIndex === highlightedIndex;
4207
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4208
- "div",
4209
- {
4210
- "data-highlighted": isHighlighted,
4211
- onClick: () => handleSelect(option.value),
4212
- onMouseEnter: () => setHighlightedIndex(itemIndex),
4213
- className: cn(
4214
- "relative flex cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-sm transition-colors outline-none select-none",
4215
- isHighlighted && "bg-accent text-accent-foreground font-medium",
4216
- isSelected && !isHighlighted && "bg-accent/40 text-accent-foreground font-medium"
4217
- ),
4218
- children: [
4219
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "flex-1 truncate", children: option.label }),
4220
- isSelected && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Check, { className: "text-primary ml-2 size-4 shrink-0" })
4221
- ]
4222
- },
4223
- option.value
4224
- );
4225
- })
4226
- ] }, groupName))
4227
- }
4228
- ),
4229
- onAddNew && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "border-border bg-muted/30 border-t p-1", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4230
- "button",
4231
- {
4232
- type: "button",
4233
- onClick: handleAddNew,
4234
- className: "text-primary hover:bg-primary/10 flex w-full items-center gap-2 rounded-sm px-2.5 py-2 text-xs font-semibold transition-colors",
4235
- children: [
4236
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react20.Plus, { className: "size-3.5 shrink-0" }),
4237
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "truncate", children: search.trim() ? `${addNewLabel} "${search.trim()}"` : `${addNewLabel}` })
4238
- ]
4239
- }
4240
- ) })
4241
- ]
4242
- }
4243
- )
4244
- ] });
4245
- }
4246
-
4247
- // src/components/confirm-dialog.tsx
4248
- var import_jsx_runtime50 = require("react/jsx-runtime");
4249
- function ConfirmDialog({
4250
- open,
4251
- onOpenChange,
4252
- title,
4253
- description,
4254
- onConfirm,
4255
- confirmText = "Confirm",
4256
- cancelText = "Cancel",
4257
- destructive = false
4258
- }) {
4259
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AlertDialog, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(AlertDialogContent, { children: [
4260
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(AlertDialogHeader, { children: [
4261
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AlertDialogTitle, { children: title }),
4262
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AlertDialogDescription, { children: description })
4263
- ] }),
4264
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(AlertDialogFooter, { children: [
4265
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(AlertDialogCancel, { children: cancelText }),
4266
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4267
- AlertDialogAction,
4268
- {
4269
- onClick: onConfirm,
4270
- className: destructive ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : "",
4271
- children: confirmText
4272
- }
4273
- )
4274
- ] })
4275
- ] }) });
4276
- }
4277
-
4278
- // src/components/loading-state.tsx
4279
- var import_jsx_runtime51 = require("react/jsx-runtime");
4280
- function LoadingState({
4281
- rows = 3,
4282
- className,
4283
- ...props
4284
- }) {
4285
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: cn("w-full space-y-4 p-2", className), ...props, children: [
4286
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Skeleton, { className: "h-8 w-1/3" }),
4287
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "space-y-2", children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Skeleton, { className: "h-16 w-full rounded-xl" }, i)) })
4288
- ] });
4289
- }
4290
3897
  // Annotate the CommonJS export names for ESM import in node:
4291
3898
  0 && (module.exports = {
4292
3899
  Accordion,
@@ -4513,6 +4120,7 @@ function LoadingState({
4513
4120
  SidebarTrigger,
4514
4121
  Skeleton,
4515
4122
  Slider,
4123
+ StatusBadge,
4516
4124
  StatusChip,
4517
4125
  Switch,
4518
4126
  Table,
@@ -4537,12 +4145,16 @@ function LoadingState({
4537
4145
  TooltipContent,
4538
4146
  TooltipProvider,
4539
4147
  TooltipTrigger,
4148
+ alertVariants,
4540
4149
  badgeVariants,
4541
4150
  buttonVariants,
4542
4151
  cn,
4152
+ labelVariants,
4543
4153
  navigationMenuTriggerStyle,
4154
+ sheetVariants,
4544
4155
  toast,
4545
4156
  toggleVariants,
4157
+ useCarousel,
4546
4158
  useConfig,
4547
4159
  useFormField,
4548
4160
  useIsMobile,