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