@machinemetrics/mm-react-components 0.2.3-20 → 0.2.3-22

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 (159) hide show
  1. package/dist/components/shadcn/accordion.d.ts +8 -0
  2. package/dist/components/shadcn/accordion.d.ts.map +1 -0
  3. package/dist/components/shadcn/alert-dialog.d.ts +15 -0
  4. package/dist/components/shadcn/alert-dialog.d.ts.map +1 -0
  5. package/dist/components/shadcn/alert.d.ts +10 -0
  6. package/dist/components/shadcn/alert.d.ts.map +1 -0
  7. package/dist/components/shadcn/avatar.d.ts +7 -0
  8. package/dist/components/shadcn/avatar.d.ts.map +1 -0
  9. package/dist/components/shadcn/badge.d.ts +10 -0
  10. package/dist/components/shadcn/badge.d.ts.map +1 -0
  11. package/dist/components/shadcn/breadcrumb.d.ts +12 -0
  12. package/dist/components/shadcn/breadcrumb.d.ts.map +1 -0
  13. package/dist/components/shadcn/button.d.ts +11 -0
  14. package/dist/components/shadcn/button.d.ts.map +1 -0
  15. package/dist/components/shadcn/calendar.d.ts +9 -0
  16. package/dist/components/shadcn/calendar.d.ts.map +1 -0
  17. package/dist/components/shadcn/card.d.ts +10 -0
  18. package/dist/components/shadcn/card.d.ts.map +1 -0
  19. package/dist/components/shadcn/chart.d.ts +41 -0
  20. package/dist/components/shadcn/chart.d.ts.map +1 -0
  21. package/dist/components/shadcn/checkbox.d.ts +5 -0
  22. package/dist/components/shadcn/checkbox.d.ts.map +1 -0
  23. package/dist/components/shadcn/collapsible.d.ts +7 -0
  24. package/dist/components/shadcn/collapsible.d.ts.map +1 -0
  25. package/dist/components/shadcn/command.d.ts +19 -0
  26. package/dist/components/shadcn/command.d.ts.map +1 -0
  27. package/dist/components/shadcn/dialog.d.ts +16 -0
  28. package/dist/components/shadcn/dialog.d.ts.map +1 -0
  29. package/dist/components/shadcn/drawer.d.ts +14 -0
  30. package/dist/components/shadcn/drawer.d.ts.map +1 -0
  31. package/dist/components/shadcn/dropdown-menu.d.ts +26 -0
  32. package/dist/components/shadcn/dropdown-menu.d.ts.map +1 -0
  33. package/dist/components/shadcn/form.d.ts +25 -0
  34. package/dist/components/shadcn/form.d.ts.map +1 -0
  35. package/dist/components/shadcn/input.d.ts +4 -0
  36. package/dist/components/shadcn/input.d.ts.map +1 -0
  37. package/dist/components/shadcn/label.d.ts +5 -0
  38. package/dist/components/shadcn/label.d.ts.map +1 -0
  39. package/dist/components/shadcn/pagination.d.ts +14 -0
  40. package/dist/components/shadcn/pagination.d.ts.map +1 -0
  41. package/dist/components/shadcn/popover.d.ts +8 -0
  42. package/dist/components/shadcn/popover.d.ts.map +1 -0
  43. package/dist/components/shadcn/progress.d.ts +5 -0
  44. package/dist/components/shadcn/progress.d.ts.map +1 -0
  45. package/dist/components/shadcn/radio-group.d.ts +6 -0
  46. package/dist/components/shadcn/radio-group.d.ts.map +1 -0
  47. package/dist/components/shadcn/select.d.ts +16 -0
  48. package/dist/components/shadcn/select.d.ts.map +1 -0
  49. package/dist/components/shadcn/separator.d.ts +5 -0
  50. package/dist/components/shadcn/separator.d.ts.map +1 -0
  51. package/dist/components/shadcn/sheet.d.ts +14 -0
  52. package/dist/components/shadcn/sheet.d.ts.map +1 -0
  53. package/dist/components/shadcn/skeleton.d.ts +4 -0
  54. package/dist/components/shadcn/skeleton.d.ts.map +1 -0
  55. package/dist/components/shadcn/slider.d.ts +5 -0
  56. package/dist/components/shadcn/slider.d.ts.map +1 -0
  57. package/dist/components/shadcn/sonner.d.ts +4 -0
  58. package/dist/components/shadcn/sonner.d.ts.map +1 -0
  59. package/dist/components/shadcn/spinner.d.ts +4 -0
  60. package/dist/components/shadcn/spinner.d.ts.map +1 -0
  61. package/dist/components/shadcn/switch.d.ts +5 -0
  62. package/dist/components/shadcn/switch.d.ts.map +1 -0
  63. package/dist/components/shadcn/table.d.ts +11 -0
  64. package/dist/components/shadcn/table.d.ts.map +1 -0
  65. package/dist/components/shadcn/tabs.d.ts +8 -0
  66. package/dist/components/shadcn/tabs.d.ts.map +1 -0
  67. package/dist/components/shadcn/textarea.d.ts +4 -0
  68. package/dist/components/shadcn/textarea.d.ts.map +1 -0
  69. package/dist/components/shadcn/toggle.d.ts +10 -0
  70. package/dist/components/shadcn/toggle.d.ts.map +1 -0
  71. package/dist/components/shadcn/tooltip.d.ts +8 -0
  72. package/dist/components/shadcn/tooltip.d.ts.map +1 -0
  73. package/dist/components/ui/accordion.d.ts +5 -6
  74. package/dist/components/ui/accordion.d.ts.map +1 -1
  75. package/dist/components/ui/alert-dialog.d.ts +7 -11
  76. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  77. package/dist/components/ui/alert.d.ts +8 -5
  78. package/dist/components/ui/alert.d.ts.map +1 -1
  79. package/dist/components/ui/avatar.d.ts +1 -6
  80. package/dist/components/ui/avatar.d.ts.map +1 -1
  81. package/dist/components/ui/badge.d.ts +4 -3
  82. package/dist/components/ui/badge.d.ts.map +1 -1
  83. package/dist/components/ui/breadcrumb.d.ts +1 -11
  84. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  85. package/dist/components/ui/button.d.ts +6 -6
  86. package/dist/components/ui/button.d.ts.map +1 -1
  87. package/dist/components/ui/calendar.d.ts +1 -1
  88. package/dist/components/ui/calendar.d.ts.map +1 -1
  89. package/dist/components/ui/card.d.ts +1 -9
  90. package/dist/components/ui/card.d.ts.map +1 -1
  91. package/dist/components/ui/checkbox.d.ts +1 -1
  92. package/dist/components/ui/checkbox.d.ts.map +1 -1
  93. package/dist/components/ui/collapsible.d.ts +1 -6
  94. package/dist/components/ui/collapsible.d.ts.map +1 -1
  95. package/dist/components/ui/data-table/TableView.d.ts +1 -1
  96. package/dist/components/ui/data-table/TableView.d.ts.map +1 -1
  97. package/dist/components/ui/data-table/cards/ResponsiveTable.d.ts +1 -1
  98. package/dist/components/ui/data-table/cards/ResponsiveTable.d.ts.map +1 -1
  99. package/dist/components/ui/data-table/cards/RowCard.d.ts +2 -1
  100. package/dist/components/ui/data-table/cards/RowCard.d.ts.map +1 -1
  101. package/dist/components/ui/data-table/pagination.d.ts +3 -1
  102. package/dist/components/ui/data-table/pagination.d.ts.map +1 -1
  103. package/dist/components/ui/data-table/parts/BatchActionsToolbar.d.ts +2 -1
  104. package/dist/components/ui/data-table/parts/BatchActionsToolbar.d.ts.map +1 -1
  105. package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts +2 -1
  106. package/dist/components/ui/data-table/toolbar/DataTableToolbar.d.ts.map +1 -1
  107. package/dist/components/ui/data-table/types.d.ts +18 -2
  108. package/dist/components/ui/data-table/types.d.ts.map +1 -1
  109. package/dist/components/ui/data-table/useTableController.d.ts +13 -1
  110. package/dist/components/ui/data-table/useTableController.d.ts.map +1 -1
  111. package/dist/components/ui/dialog.d.ts +6 -10
  112. package/dist/components/ui/dialog.d.ts.map +1 -1
  113. package/dist/components/ui/drawer.d.ts +3 -11
  114. package/dist/components/ui/drawer.d.ts.map +1 -1
  115. package/dist/components/ui/dropdown-menu.d.ts +15 -23
  116. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  117. package/dist/components/ui/input.d.ts +3 -2
  118. package/dist/components/ui/input.d.ts.map +1 -1
  119. package/dist/components/ui/label.d.ts +1 -4
  120. package/dist/components/ui/label.d.ts.map +1 -1
  121. package/dist/components/ui/popover.d.ts +3 -5
  122. package/dist/components/ui/popover.d.ts.map +1 -1
  123. package/dist/components/ui/progress.d.ts +1 -1
  124. package/dist/components/ui/progress.d.ts.map +1 -1
  125. package/dist/components/ui/radio-group.d.ts +3 -3
  126. package/dist/components/ui/radio-group.d.ts.map +1 -1
  127. package/dist/components/ui/select.d.ts +6 -13
  128. package/dist/components/ui/select.d.ts.map +1 -1
  129. package/dist/components/ui/separator.d.ts +1 -4
  130. package/dist/components/ui/separator.d.ts.map +1 -1
  131. package/dist/components/ui/sheet.d.ts +12 -9
  132. package/dist/components/ui/sheet.d.ts.map +1 -1
  133. package/dist/components/ui/skeleton.d.ts +1 -3
  134. package/dist/components/ui/skeleton.d.ts.map +1 -1
  135. package/dist/components/ui/sonner.d.ts +1 -1
  136. package/dist/components/ui/sonner.d.ts.map +1 -1
  137. package/dist/components/ui/spinner.d.ts +1 -3
  138. package/dist/components/ui/spinner.d.ts.map +1 -1
  139. package/dist/components/ui/switch.d.ts +1 -1
  140. package/dist/components/ui/switch.d.ts.map +1 -1
  141. package/dist/components/ui/table.d.ts +4 -9
  142. package/dist/components/ui/table.d.ts.map +1 -1
  143. package/dist/components/ui/textarea.d.ts +1 -3
  144. package/dist/components/ui/textarea.d.ts.map +1 -1
  145. package/dist/components/ui/toggle.d.ts +1 -9
  146. package/dist/components/ui/toggle.d.ts.map +1 -1
  147. package/dist/components/ui/tooltip.d.ts +1 -7
  148. package/dist/components/ui/tooltip.d.ts.map +1 -1
  149. package/dist/index.d.ts +1 -1
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/lib/mm-react-components.css +1 -1
  152. package/dist/mm-react-components.es.js +927 -503
  153. package/dist/mm-react-components.es.js.map +1 -1
  154. package/dist/mm-react-components.umd.js +13 -12
  155. package/dist/mm-react-components.umd.js.map +1 -1
  156. package/dist/preview/DataTablePreview.d.ts.map +1 -1
  157. package/dist/preview/SheetPreview.d.ts.map +1 -1
  158. package/dist/themes/carbide.css +10 -0
  159. package/package.json +3 -3
@@ -3487,7 +3487,7 @@ const buttonVariants = cva(
3487
3487
  }
3488
3488
  }
3489
3489
  );
3490
- function Button$1({
3490
+ function Button$2({
3491
3491
  className,
3492
3492
  variant,
3493
3493
  size: size2,
@@ -3499,28 +3499,60 @@ function Button$1({
3499
3499
  Comp,
3500
3500
  {
3501
3501
  "data-slot": "button",
3502
- "data-variant": variant,
3503
- "data-size": size2,
3504
3502
  className: cn$1(buttonVariants({ variant, size: size2, className })),
3505
3503
  ...props
3506
3504
  }
3507
3505
  );
3508
3506
  }
3509
- function Input({ className, type, ...props }) {
3507
+ const Button$1 = React.forwardRef(({ className, variant, size: size2, ...props }, ref) => {
3508
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
3509
+ Button$2,
3510
+ {
3511
+ ref,
3512
+ className,
3513
+ variant,
3514
+ size: size2,
3515
+ "data-variant": variant,
3516
+ "data-size": size2,
3517
+ ...props
3518
+ }
3519
+ );
3520
+ });
3521
+ Button$1.displayName = "Button";
3522
+ function Input$1({ className, type, ...props }) {
3510
3523
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
3511
3524
  "input",
3512
3525
  {
3513
3526
  type,
3514
3527
  "data-slot": "input",
3515
3528
  className: cn$1(
3516
- "flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
3529
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3530
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
3531
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
3517
3532
  className
3518
3533
  ),
3519
- readOnly: props.onChange == null && props.defaultValue == null ? true : props.readOnly,
3520
3534
  ...props
3521
3535
  }
3522
3536
  );
3523
3537
  }
3538
+ const Input = React.forwardRef(
3539
+ ({ className, type, readOnly, onChange, defaultValue: defaultValue2, ...props }, ref) => {
3540
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
3541
+ Input$1,
3542
+ {
3543
+ ref,
3544
+ type,
3545
+ className: cn$1(
3546
+ "flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
3547
+ className
3548
+ ),
3549
+ readOnly: onChange == null && defaultValue2 == null ? true : readOnly,
3550
+ ...props
3551
+ }
3552
+ );
3553
+ }
3554
+ );
3555
+ Input.displayName = "Input";
3524
3556
  /**
3525
3557
  * @license lucide-react v0.544.0 - ISC
3526
3558
  *
@@ -3626,125 +3658,136 @@ const createLucideIcon = (iconName, iconNode) => {
3626
3658
  * This source code is licensed under the ISC license.
3627
3659
  * See the LICENSE file in the root directory of this source tree.
3628
3660
  */
3629
- const __iconNode$n = [
3661
+ const __iconNode$q = [
3630
3662
  ["path", { d: "M12 5v14", key: "s699le" }],
3631
3663
  ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
3632
3664
  ];
3633
- const ArrowDown = createLucideIcon("arrow-down", __iconNode$n);
3665
+ const ArrowDown = createLucideIcon("arrow-down", __iconNode$q);
3634
3666
  /**
3635
3667
  * @license lucide-react v0.544.0 - ISC
3636
3668
  *
3637
3669
  * This source code is licensed under the ISC license.
3638
3670
  * See the LICENSE file in the root directory of this source tree.
3639
3671
  */
3640
- const __iconNode$m = [
3672
+ const __iconNode$p = [
3641
3673
  ["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
3642
3674
  ["path", { d: "M19 12H5", key: "x3x0zl" }]
3643
3675
  ];
3644
- const ArrowLeft = createLucideIcon("arrow-left", __iconNode$m);
3676
+ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$p);
3645
3677
  /**
3646
3678
  * @license lucide-react v0.544.0 - ISC
3647
3679
  *
3648
3680
  * This source code is licensed under the ISC license.
3649
3681
  * See the LICENSE file in the root directory of this source tree.
3650
3682
  */
3651
- const __iconNode$l = [
3683
+ const __iconNode$o = [
3652
3684
  ["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
3653
3685
  ["path", { d: "M12 19V5", key: "x0mq9r" }]
3654
3686
  ];
3655
- const ArrowUp = createLucideIcon("arrow-up", __iconNode$l);
3687
+ const ArrowUp = createLucideIcon("arrow-up", __iconNode$o);
3656
3688
  /**
3657
3689
  * @license lucide-react v0.544.0 - ISC
3658
3690
  *
3659
3691
  * This source code is licensed under the ISC license.
3660
3692
  * See the LICENSE file in the root directory of this source tree.
3661
3693
  */
3662
- const __iconNode$k = [
3694
+ const __iconNode$n = [
3663
3695
  ["path", { d: "M8 2v4", key: "1cmpym" }],
3664
3696
  ["path", { d: "M16 2v4", key: "4m81vk" }],
3665
3697
  ["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
3666
3698
  ["path", { d: "M3 10h18", key: "8toen8" }]
3667
3699
  ];
3668
- const Calendar$1 = createLucideIcon("calendar", __iconNode$k);
3700
+ const Calendar$1 = createLucideIcon("calendar", __iconNode$n);
3669
3701
  /**
3670
3702
  * @license lucide-react v0.544.0 - ISC
3671
3703
  *
3672
3704
  * This source code is licensed under the ISC license.
3673
3705
  * See the LICENSE file in the root directory of this source tree.
3674
3706
  */
3675
- const __iconNode$j = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
3676
- const Check = createLucideIcon("check", __iconNode$j);
3707
+ const __iconNode$m = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
3708
+ const Check = createLucideIcon("check", __iconNode$m);
3677
3709
  /**
3678
3710
  * @license lucide-react v0.544.0 - ISC
3679
3711
  *
3680
3712
  * This source code is licensed under the ISC license.
3681
3713
  * See the LICENSE file in the root directory of this source tree.
3682
3714
  */
3683
- const __iconNode$i = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
3684
- const ChevronDown = createLucideIcon("chevron-down", __iconNode$i);
3715
+ const __iconNode$l = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
3716
+ const ChevronDown = createLucideIcon("chevron-down", __iconNode$l);
3685
3717
  /**
3686
3718
  * @license lucide-react v0.544.0 - ISC
3687
3719
  *
3688
3720
  * This source code is licensed under the ISC license.
3689
3721
  * See the LICENSE file in the root directory of this source tree.
3690
3722
  */
3691
- const __iconNode$h = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
3692
- const ChevronLeft = createLucideIcon("chevron-left", __iconNode$h);
3723
+ const __iconNode$k = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
3724
+ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$k);
3693
3725
  /**
3694
3726
  * @license lucide-react v0.544.0 - ISC
3695
3727
  *
3696
3728
  * This source code is licensed under the ISC license.
3697
3729
  * See the LICENSE file in the root directory of this source tree.
3698
3730
  */
3699
- const __iconNode$g = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
3700
- const ChevronRight = createLucideIcon("chevron-right", __iconNode$g);
3731
+ const __iconNode$j = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
3732
+ const ChevronRight = createLucideIcon("chevron-right", __iconNode$j);
3701
3733
  /**
3702
3734
  * @license lucide-react v0.544.0 - ISC
3703
3735
  *
3704
3736
  * This source code is licensed under the ISC license.
3705
3737
  * See the LICENSE file in the root directory of this source tree.
3706
3738
  */
3707
- const __iconNode$f = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
3708
- const ChevronUp = createLucideIcon("chevron-up", __iconNode$f);
3739
+ const __iconNode$i = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
3740
+ const ChevronUp = createLucideIcon("chevron-up", __iconNode$i);
3709
3741
  /**
3710
3742
  * @license lucide-react v0.544.0 - ISC
3711
3743
  *
3712
3744
  * This source code is licensed under the ISC license.
3713
3745
  * See the LICENSE file in the root directory of this source tree.
3714
3746
  */
3715
- const __iconNode$e = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
3716
- const Circle = createLucideIcon("circle", __iconNode$e);
3747
+ const __iconNode$h = [
3748
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3749
+ ["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
3750
+ ];
3751
+ const CircleCheck = createLucideIcon("circle-check", __iconNode$h);
3717
3752
  /**
3718
3753
  * @license lucide-react v0.544.0 - ISC
3719
3754
  *
3720
3755
  * This source code is licensed under the ISC license.
3721
3756
  * See the LICENSE file in the root directory of this source tree.
3722
3757
  */
3723
- const __iconNode$d = [
3758
+ const __iconNode$g = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
3759
+ const Circle = createLucideIcon("circle", __iconNode$g);
3760
+ /**
3761
+ * @license lucide-react v0.544.0 - ISC
3762
+ *
3763
+ * This source code is licensed under the ISC license.
3764
+ * See the LICENSE file in the root directory of this source tree.
3765
+ */
3766
+ const __iconNode$f = [
3724
3767
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
3725
3768
  ["path", { d: "M9 3v18", key: "fh3hqa" }],
3726
3769
  ["path", { d: "M15 3v18", key: "14nvp0" }]
3727
3770
  ];
3728
- const Columns3 = createLucideIcon("columns-3", __iconNode$d);
3771
+ const Columns3 = createLucideIcon("columns-3", __iconNode$f);
3729
3772
  /**
3730
3773
  * @license lucide-react v0.544.0 - ISC
3731
3774
  *
3732
3775
  * This source code is licensed under the ISC license.
3733
3776
  * See the LICENSE file in the root directory of this source tree.
3734
3777
  */
3735
- const __iconNode$c = [
3778
+ const __iconNode$e = [
3736
3779
  ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
3737
3780
  ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
3738
3781
  ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
3739
3782
  ];
3740
- const Ellipsis = createLucideIcon("ellipsis", __iconNode$c);
3783
+ const Ellipsis = createLucideIcon("ellipsis", __iconNode$e);
3741
3784
  /**
3742
3785
  * @license lucide-react v0.544.0 - ISC
3743
3786
  *
3744
3787
  * This source code is licensed under the ISC license.
3745
3788
  * See the LICENSE file in the root directory of this source tree.
3746
3789
  */
3747
- const __iconNode$b = [
3790
+ const __iconNode$d = [
3748
3791
  ["circle", { cx: "9", cy: "12", r: "1", key: "1vctgf" }],
3749
3792
  ["circle", { cx: "9", cy: "5", r: "1", key: "hp0tcf" }],
3750
3793
  ["circle", { cx: "9", cy: "19", r: "1", key: "fkjjf6" }],
@@ -3752,60 +3795,60 @@ const __iconNode$b = [
3752
3795
  ["circle", { cx: "15", cy: "5", r: "1", key: "19l28e" }],
3753
3796
  ["circle", { cx: "15", cy: "19", r: "1", key: "f4zoj3" }]
3754
3797
  ];
3755
- const GripVertical = createLucideIcon("grip-vertical", __iconNode$b);
3798
+ const GripVertical = createLucideIcon("grip-vertical", __iconNode$d);
3756
3799
  /**
3757
3800
  * @license lucide-react v0.544.0 - ISC
3758
3801
  *
3759
3802
  * This source code is licensed under the ISC license.
3760
3803
  * See the LICENSE file in the root directory of this source tree.
3761
3804
  */
3762
- const __iconNode$a = [
3805
+ const __iconNode$c = [
3763
3806
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
3764
3807
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
3765
3808
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
3766
3809
  ];
3767
- const Info = createLucideIcon("info", __iconNode$a);
3810
+ const Info = createLucideIcon("info", __iconNode$c);
3768
3811
  /**
3769
3812
  * @license lucide-react v0.544.0 - ISC
3770
3813
  *
3771
3814
  * This source code is licensed under the ISC license.
3772
3815
  * See the LICENSE file in the root directory of this source tree.
3773
3816
  */
3774
- const __iconNode$9 = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3775
- const LoaderCircle = createLucideIcon("loader-circle", __iconNode$9);
3817
+ const __iconNode$b = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
3818
+ const LoaderCircle = createLucideIcon("loader-circle", __iconNode$b);
3776
3819
  /**
3777
3820
  * @license lucide-react v0.544.0 - ISC
3778
3821
  *
3779
3822
  * This source code is licensed under the ISC license.
3780
3823
  * See the LICENSE file in the root directory of this source tree.
3781
3824
  */
3782
- const __iconNode$8 = [
3825
+ const __iconNode$a = [
3783
3826
  ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
3784
3827
  ["path", { d: "m21 3-7 7", key: "1l2asr" }],
3785
3828
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
3786
3829
  ["path", { d: "M9 21H3v-6", key: "wtvkvv" }]
3787
3830
  ];
3788
- const Maximize2 = createLucideIcon("maximize-2", __iconNode$8);
3831
+ const Maximize2 = createLucideIcon("maximize-2", __iconNode$a);
3789
3832
  /**
3790
3833
  * @license lucide-react v0.544.0 - ISC
3791
3834
  *
3792
3835
  * This source code is licensed under the ISC license.
3793
3836
  * See the LICENSE file in the root directory of this source tree.
3794
3837
  */
3795
- const __iconNode$7 = [
3838
+ const __iconNode$9 = [
3796
3839
  ["path", { d: "m14 10 7-7", key: "oa77jy" }],
3797
3840
  ["path", { d: "M20 10h-6V4", key: "mjg0md" }],
3798
3841
  ["path", { d: "m3 21 7-7", key: "tjx5ai" }],
3799
3842
  ["path", { d: "M4 14h6v6", key: "rmj7iw" }]
3800
3843
  ];
3801
- const Minimize2 = createLucideIcon("minimize-2", __iconNode$7);
3844
+ const Minimize2 = createLucideIcon("minimize-2", __iconNode$9);
3802
3845
  /**
3803
3846
  * @license lucide-react v0.544.0 - ISC
3804
3847
  *
3805
3848
  * This source code is licensed under the ISC license.
3806
3849
  * See the LICENSE file in the root directory of this source tree.
3807
3850
  */
3808
- const __iconNode$6 = [
3851
+ const __iconNode$8 = [
3809
3852
  [
3810
3853
  "path",
3811
3854
  {
@@ -3814,38 +3857,56 @@ const __iconNode$6 = [
3814
3857
  }
3815
3858
  ]
3816
3859
  ];
3817
- const Moon = createLucideIcon("moon", __iconNode$6);
3860
+ const Moon = createLucideIcon("moon", __iconNode$8);
3818
3861
  /**
3819
3862
  * @license lucide-react v0.544.0 - ISC
3820
3863
  *
3821
3864
  * This source code is licensed under the ISC license.
3822
3865
  * See the LICENSE file in the root directory of this source tree.
3823
3866
  */
3824
- const __iconNode$5 = [
3867
+ const __iconNode$7 = [
3868
+ ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
3869
+ [
3870
+ "path",
3871
+ {
3872
+ d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
3873
+ key: "2d38gg"
3874
+ }
3875
+ ],
3876
+ ["path", { d: "m9 9 6 6", key: "z0biqf" }]
3877
+ ];
3878
+ const OctagonX = createLucideIcon("octagon-x", __iconNode$7);
3879
+ /**
3880
+ * @license lucide-react v0.544.0 - ISC
3881
+ *
3882
+ * This source code is licensed under the ISC license.
3883
+ * See the LICENSE file in the root directory of this source tree.
3884
+ */
3885
+ const __iconNode$6 = [
3825
3886
  ["path", { d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8", key: "v9h5vc" }],
3826
3887
  ["path", { d: "M21 3v5h-5", key: "1q7to0" }],
3827
3888
  ["path", { d: "M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16", key: "3uifl3" }],
3828
3889
  ["path", { d: "M8 16H3v5", key: "1cv678" }]
3829
3890
  ];
3830
- const RefreshCw = createLucideIcon("refresh-cw", __iconNode$5);
3891
+ const RefreshCw = createLucideIcon("refresh-cw", __iconNode$6);
3831
3892
  /**
3832
3893
  * @license lucide-react v0.544.0 - ISC
3833
3894
  *
3834
3895
  * This source code is licensed under the ISC license.
3835
3896
  * See the LICENSE file in the root directory of this source tree.
3836
3897
  */
3837
- const __iconNode$4 = [
3898
+ const __iconNode$5 = [
3838
3899
  ["path", { d: "m21 21-4.34-4.34", key: "14j7rj" }],
3839
3900
  ["circle", { cx: "11", cy: "11", r: "8", key: "4ej97u" }]
3840
3901
  ];
3841
- const Search = createLucideIcon("search", __iconNode$4);
3902
+ const Search = createLucideIcon("search", __iconNode$5);
3842
3903
  /**
3843
3904
  * @license lucide-react v0.544.0 - ISC
3844
3905
  *
3845
3906
  * This source code is licensed under the ISC license.
3846
3907
  * See the LICENSE file in the root directory of this source tree.
3847
3908
  */
3848
- const __iconNode$3 = [
3909
+ const __iconNode$4 = [
3849
3910
  ["path", { d: "M10 5H3", key: "1qgfaw" }],
3850
3911
  ["path", { d: "M12 19H3", key: "yhmn1j" }],
3851
3912
  ["path", { d: "M14 3v4", key: "1sua03" }],
@@ -3856,14 +3917,14 @@ const __iconNode$3 = [
3856
3917
  ["path", { d: "M8 10v4", key: "tgpxqk" }],
3857
3918
  ["path", { d: "M8 12H3", key: "a7s4jb" }]
3858
3919
  ];
3859
- const SlidersHorizontal = createLucideIcon("sliders-horizontal", __iconNode$3);
3920
+ const SlidersHorizontal = createLucideIcon("sliders-horizontal", __iconNode$4);
3860
3921
  /**
3861
3922
  * @license lucide-react v0.544.0 - ISC
3862
3923
  *
3863
3924
  * This source code is licensed under the ISC license.
3864
3925
  * See the LICENSE file in the root directory of this source tree.
3865
3926
  */
3866
- const __iconNode$2 = [
3927
+ const __iconNode$3 = [
3867
3928
  ["circle", { cx: "12", cy: "12", r: "4", key: "4exip2" }],
3868
3929
  ["path", { d: "M12 2v2", key: "tus03m" }],
3869
3930
  ["path", { d: "M12 20v2", key: "1lh1kg" }],
@@ -3874,7 +3935,25 @@ const __iconNode$2 = [
3874
3935
  ["path", { d: "m6.34 17.66-1.41 1.41", key: "1m8zz5" }],
3875
3936
  ["path", { d: "m19.07 4.93-1.41 1.41", key: "1shlcs" }]
3876
3937
  ];
3877
- const Sun = createLucideIcon("sun", __iconNode$2);
3938
+ const Sun = createLucideIcon("sun", __iconNode$3);
3939
+ /**
3940
+ * @license lucide-react v0.544.0 - ISC
3941
+ *
3942
+ * This source code is licensed under the ISC license.
3943
+ * See the LICENSE file in the root directory of this source tree.
3944
+ */
3945
+ const __iconNode$2 = [
3946
+ [
3947
+ "path",
3948
+ {
3949
+ d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
3950
+ key: "wmoenq"
3951
+ }
3952
+ ],
3953
+ ["path", { d: "M12 9v4", key: "juzpu7" }],
3954
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
3955
+ ];
3956
+ const TriangleAlert = createLucideIcon("triangle-alert", __iconNode$2);
3878
3957
  /**
3879
3958
  * @license lucide-react v0.544.0 - ISC
3880
3959
  *
@@ -4597,13 +4676,11 @@ function isIndeterminate$1(checked) {
4597
4676
  function getState$6(checked) {
4598
4677
  return isIndeterminate$1(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
4599
4678
  }
4600
- function Checkbox({
4601
- className,
4602
- ...props
4603
- }) {
4679
+ const Checkbox = React.forwardRef(({ className, ...props }, ref) => {
4604
4680
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
4605
4681
  Checkbox$1,
4606
4682
  {
4683
+ ref,
4607
4684
  "data-slot": "checkbox",
4608
4685
  className: cn$1(
4609
4686
  "peer size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none disabled:cursor-not-allowed disabled:opacity-50",
@@ -4620,7 +4697,8 @@ function Checkbox({
4620
4697
  )
4621
4698
  }
4622
4699
  );
4623
- }
4700
+ });
4701
+ Checkbox.displayName = "Checkbox";
4624
4702
  function createCollection(name) {
4625
4703
  const PROVIDER_NAME2 = name + "CollectionProvider";
4626
4704
  const [createCollectionContext, createCollectionScope2] = createContextScope(PROVIDER_NAME2);
@@ -5193,13 +5271,11 @@ function RadioGroup$1({
5193
5271
  }
5194
5272
  );
5195
5273
  }
5196
- function RadioGroupItem({
5197
- className,
5198
- ...props
5199
- }) {
5274
+ const RadioGroupItem = React.forwardRef(({ className, ...props }, ref) => {
5200
5275
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
5201
5276
  Item2$2,
5202
5277
  {
5278
+ ref,
5203
5279
  "data-slot": "radio-group-item",
5204
5280
  className: cn$1(
5205
5281
  "aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none disabled:cursor-not-allowed disabled:opacity-50",
@@ -5216,7 +5292,8 @@ function RadioGroupItem({
5216
5292
  )
5217
5293
  }
5218
5294
  );
5219
- }
5295
+ });
5296
+ RadioGroupItem.displayName = "RadioGroupItem";
5220
5297
  const badgeVariants = cva(
5221
5298
  "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
5222
5299
  {
@@ -5233,22 +5310,19 @@ const badgeVariants = cva(
5233
5310
  }
5234
5311
  }
5235
5312
  );
5236
- function Badge({
5237
- className,
5238
- variant,
5239
- asChild = false,
5240
- ...props
5241
- }) {
5313
+ const Badge = React.forwardRef(({ className, variant, asChild = false, ...props }, ref) => {
5242
5314
  const Comp = asChild ? Slot$4 : "span";
5243
5315
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
5244
5316
  Comp,
5245
5317
  {
5318
+ ref,
5246
5319
  "data-slot": "badge",
5247
5320
  className: cn$1(badgeVariants({ variant }), className),
5248
5321
  ...props
5249
5322
  }
5250
5323
  );
5251
- }
5324
+ });
5325
+ Badge.displayName = "Badge";
5252
5326
  function clamp$1(value, [min2, max2]) {
5253
5327
  return Math.min(max2, Math.max(min2, value));
5254
5328
  }
@@ -9834,29 +9908,6 @@ function SelectValue({
9834
9908
  }) {
9835
9909
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Value, { "data-slot": "select-value", ...props });
9836
9910
  }
9837
- function SelectTrigger({
9838
- className,
9839
- size: size2 = "default",
9840
- children,
9841
- ...props
9842
- }) {
9843
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
9844
- Trigger$6,
9845
- {
9846
- "data-slot": "select-trigger",
9847
- "data-size": size2,
9848
- className: cn$1(
9849
- "flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-colors outline-none disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8",
9850
- className
9851
- ),
9852
- ...props,
9853
- children: [
9854
- children,
9855
- /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-4 opacity-50" }) })
9856
- ]
9857
- }
9858
- );
9859
- }
9860
9911
  function SelectContent({
9861
9912
  className,
9862
9913
  children,
@@ -9906,27 +9957,6 @@ function SelectLabel({
9906
9957
  }
9907
9958
  );
9908
9959
  }
9909
- function SelectItem({
9910
- className,
9911
- children,
9912
- ...props
9913
- }) {
9914
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(
9915
- Item$1,
9916
- {
9917
- "data-slot": "select-item",
9918
- className: cn$1(
9919
- "relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
9920
- className
9921
- ),
9922
- ...props,
9923
- children: [
9924
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemIndicator$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-4" }) }) }),
9925
- /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children })
9926
- ]
9927
- }
9928
- );
9929
- }
9930
9960
  function SelectSeparator({
9931
9961
  className,
9932
9962
  ...props
@@ -9974,6 +10004,45 @@ function SelectScrollDownButton({
9974
10004
  }
9975
10005
  );
9976
10006
  }
10007
+ const SelectTrigger = React.forwardRef(({ className, size: size2 = "default", children, ...props }, ref) => {
10008
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
10009
+ Trigger$6,
10010
+ {
10011
+ ref,
10012
+ "data-slot": "select-trigger",
10013
+ "data-size": size2,
10014
+ className: cn$1(
10015
+ "flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-colors outline-none disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8",
10016
+ className
10017
+ ),
10018
+ ...props,
10019
+ children: [
10020
+ children,
10021
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "size-4 opacity-50" }) })
10022
+ ]
10023
+ }
10024
+ );
10025
+ });
10026
+ SelectTrigger.displayName = "SelectTrigger";
10027
+ const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => {
10028
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
10029
+ Item$1,
10030
+ {
10031
+ ref,
10032
+ "data-slot": "select-item",
10033
+ className: cn$1(
10034
+ "relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
10035
+ className
10036
+ ),
10037
+ ...props,
10038
+ children: [
10039
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemIndicator$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-4" }) }) }),
10040
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ItemText, { children })
10041
+ ]
10042
+ }
10043
+ );
10044
+ });
10045
+ SelectItem.displayName = "SelectItem";
9977
10046
  var DIALOG_NAME = "Dialog";
9978
10047
  var [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);
9979
10048
  var [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);
@@ -10045,7 +10114,7 @@ var DialogPortal$1 = (props) => {
10045
10114
  };
10046
10115
  DialogPortal$1.displayName = PORTAL_NAME$5;
10047
10116
  var OVERLAY_NAME$1 = "DialogOverlay";
10048
- var DialogOverlay$1 = React.forwardRef(
10117
+ var DialogOverlay$2 = React.forwardRef(
10049
10118
  (props, forwardedRef) => {
10050
10119
  const portalContext = usePortalContext$3(OVERLAY_NAME$1, props.__scopeDialog);
10051
10120
  const { forceMount = portalContext.forceMount, ...overlayProps } = props;
@@ -10053,7 +10122,7 @@ var DialogOverlay$1 = React.forwardRef(
10053
10122
  return context.modal ? /* @__PURE__ */ jsxRuntimeExports.jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsxRuntimeExports.jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;
10054
10123
  }
10055
10124
  );
10056
- DialogOverlay$1.displayName = OVERLAY_NAME$1;
10125
+ DialogOverlay$2.displayName = OVERLAY_NAME$1;
10057
10126
  var Slot$2 = /* @__PURE__ */ createSlot("DialogOverlay.RemoveScroll");
10058
10127
  var DialogOverlayImpl = React.forwardRef(
10059
10128
  (props, forwardedRef) => {
@@ -10271,7 +10340,7 @@ var DescriptionWarning$1 = ({ contentRef, descriptionId }) => {
10271
10340
  var Root$9 = Dialog$1;
10272
10341
  var Trigger$5 = DialogTrigger$1;
10273
10342
  var Portal$4 = DialogPortal$1;
10274
- var Overlay$1 = DialogOverlay$1;
10343
+ var Overlay$1 = DialogOverlay$2;
10275
10344
  var Content$3 = DialogContent$1;
10276
10345
  var Title = DialogTitle$1;
10277
10346
  var Description = DialogDescription$1;
@@ -10289,18 +10358,62 @@ function SheetClose({
10289
10358
  }) {
10290
10359
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Close, { "data-slot": "sheet-close", ...props });
10291
10360
  }
10292
- function SheetPortal({
10361
+ function SheetHeader$1({ className, ...props }) {
10362
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10363
+ "div",
10364
+ {
10365
+ "data-slot": "sheet-header",
10366
+ className: cn$1("flex flex-col gap-1.5 p-4", className),
10367
+ ...props
10368
+ }
10369
+ );
10370
+ }
10371
+ function SheetFooter$1({ className, ...props }) {
10372
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10373
+ "div",
10374
+ {
10375
+ "data-slot": "sheet-footer",
10376
+ className: cn$1("mt-auto flex flex-col gap-2 p-4", className),
10377
+ ...props
10378
+ }
10379
+ );
10380
+ }
10381
+ function SheetTitle$1({
10382
+ className,
10293
10383
  ...props
10294
10384
  }) {
10295
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$4, { "data-slot": "sheet-portal", ...props });
10385
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10386
+ Title,
10387
+ {
10388
+ "data-slot": "sheet-title",
10389
+ className: cn$1("text-foreground font-semibold", className),
10390
+ ...props
10391
+ }
10392
+ );
10296
10393
  }
10297
- function SheetOverlay({
10394
+ function SheetDescription$1({
10298
10395
  className,
10299
10396
  ...props
10300
10397
  }) {
10398
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10399
+ Description,
10400
+ {
10401
+ "data-slot": "sheet-description",
10402
+ className: cn$1("text-muted-foreground text-sm", className),
10403
+ ...props
10404
+ }
10405
+ );
10406
+ }
10407
+ function SheetPortal({
10408
+ ...props
10409
+ }) {
10410
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal$4, { "data-slot": "sheet-portal", ...props });
10411
+ }
10412
+ const SheetOverlay = React.forwardRef(({ className, ...props }, ref) => {
10301
10413
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
10302
10414
  Overlay$1,
10303
10415
  {
10416
+ ref,
10304
10417
  "data-slot": "sheet-overlay",
10305
10418
  className: cn$1(
10306
10419
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
@@ -10309,11 +10422,14 @@ function SheetOverlay({
10309
10422
  ...props
10310
10423
  }
10311
10424
  );
10312
- }
10425
+ });
10426
+ SheetOverlay.displayName = "SheetOverlay";
10313
10427
  function SheetContent({
10314
10428
  className,
10315
10429
  children,
10316
10430
  side = "right",
10431
+ showCloseButton = true,
10432
+ closeButtonPosition = "corner",
10317
10433
  ...props
10318
10434
  }) {
10319
10435
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(SheetPortal, { children: [
@@ -10333,7 +10449,7 @@ function SheetContent({
10333
10449
  ...props,
10334
10450
  children: [
10335
10451
  children,
10336
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
10452
+ showCloseButton && closeButtonPosition === "corner" && /* @__PURE__ */ jsxRuntimeExports.jsxs(
10337
10453
  Close,
10338
10454
  {
10339
10455
  "data-slot": "sheet-close",
@@ -10349,49 +10465,79 @@ function SheetContent({
10349
10465
  )
10350
10466
  ] });
10351
10467
  }
10352
- function SheetHeader({ className, ...props }) {
10468
+ const SheetHeader = React.forwardRef((props, ref) => {
10469
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SheetHeader$1, { ref, ...props });
10470
+ });
10471
+ SheetHeader.displayName = "SheetHeader";
10472
+ const SheetFooter = React.forwardRef((props, ref) => {
10473
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SheetFooter$1, { ref, ...props });
10474
+ });
10475
+ SheetFooter.displayName = "SheetFooter";
10476
+ const SheetTitle = React.forwardRef(({ className, ...props }, ref) => {
10353
10477
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
10354
- "div",
10478
+ SheetTitle$1,
10355
10479
  {
10356
- "data-slot": "sheet-header",
10357
- className: cn$1("flex flex-col gap-1.5 p-4", className),
10480
+ ref,
10481
+ className: cn$1("text-base font-semibold", className),
10358
10482
  ...props
10359
10483
  }
10360
10484
  );
10361
- }
10362
- function SheetFooter({ className, ...props }) {
10485
+ });
10486
+ SheetTitle.displayName = "SheetTitle";
10487
+ const SheetDescription = React.forwardRef(({ className, ...props }, ref) => {
10488
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
10489
+ SheetDescription$1,
10490
+ {
10491
+ ref,
10492
+ className: cn$1("text-sm", className),
10493
+ ...props
10494
+ }
10495
+ );
10496
+ });
10497
+ SheetDescription.displayName = "SheetDescription";
10498
+ function SheetHeaderRow({ className, ...props }) {
10363
10499
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
10364
10500
  "div",
10365
10501
  {
10366
- "data-slot": "sheet-footer",
10367
- className: cn$1("mt-auto flex flex-col gap-2 p-4", className),
10502
+ "data-slot": "sheet-header-row",
10503
+ className: cn$1(
10504
+ "flex items-center justify-between gap-4 px-4 pt-4",
10505
+ className
10506
+ ),
10368
10507
  ...props
10369
10508
  }
10370
10509
  );
10371
10510
  }
10372
- function SheetTitle({
10511
+ function SheetHeaderActions({
10373
10512
  className,
10374
10513
  ...props
10375
10514
  }) {
10376
10515
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
10377
- Title,
10516
+ "div",
10378
10517
  {
10379
- "data-slot": "sheet-title",
10380
- className: cn$1("text-base font-semibold", className),
10518
+ "data-slot": "sheet-header-actions",
10519
+ className: cn$1("flex items-center gap-2", className),
10381
10520
  ...props
10382
10521
  }
10383
10522
  );
10384
10523
  }
10385
- function SheetDescription({
10524
+ function SheetCloseButton({
10386
10525
  className,
10387
10526
  ...props
10388
10527
  }) {
10389
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
10390
- Description,
10528
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
10529
+ Close,
10391
10530
  {
10392
- "data-slot": "sheet-description",
10393
- className: cn$1("text-sm", className),
10394
- ...props
10531
+ "data-slot": "sheet-close-button",
10532
+ className: cn$1(
10533
+ "rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none",
10534
+ className
10535
+ ),
10536
+ ...props,
10537
+ children: [
10538
+ /* @__PURE__ */ jsxRuntimeExports.jsx(X$1, { className: "size-4" }),
10539
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sr-only", children: "Close" })
10540
+ ]
10395
10541
  }
10396
10542
  );
10397
10543
  }
@@ -11418,13 +11564,11 @@ function getState$3(checked) {
11418
11564
  }
11419
11565
  var Root$8 = Switch$1;
11420
11566
  var Thumb$1 = SwitchThumb;
11421
- function Switch({
11422
- className,
11423
- ...props
11424
- }) {
11567
+ const Switch = React.forwardRef(({ className, ...props }, ref) => {
11425
11568
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
11426
11569
  Root$8,
11427
11570
  {
11571
+ ref,
11428
11572
  "data-slot": "switch",
11429
11573
  className: cn$1(
11430
11574
  "peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none disabled:cursor-not-allowed disabled:opacity-50",
@@ -11442,7 +11586,8 @@ function Switch({
11442
11586
  )
11443
11587
  }
11444
11588
  );
11445
- }
11589
+ });
11590
+ Switch.displayName = "Switch";
11446
11591
  var SELECTION_KEYS = ["Enter", " "];
11447
11592
  var FIRST_KEYS = ["ArrowDown", "PageUp", "Home"];
11448
11593
  var LAST_KEYS = ["ArrowUp", "PageDown", "End"];
@@ -12509,93 +12654,20 @@ var Separator2 = DropdownMenuSeparator$1;
12509
12654
  var Sub2 = DropdownMenuSub$1;
12510
12655
  var SubTrigger2 = DropdownMenuSubTrigger$1;
12511
12656
  var SubContent2 = DropdownMenuSubContent$1;
12512
- function DropdownMenu({
12513
- onOpenChange,
12514
- ...props
12515
- }) {
12516
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
12517
- Root2$3,
12518
- {
12519
- "data-slot": "dropdown-menu",
12520
- onOpenChange,
12521
- ...props
12522
- }
12523
- );
12524
- }
12525
12657
  function DropdownMenuPortal({
12526
12658
  ...props
12527
12659
  }) {
12528
12660
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal2$1, { "data-slot": "dropdown-menu-portal", ...props });
12529
12661
  }
12530
- function DropdownMenuTrigger({ ...props }, ref) {
12531
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
12532
- Trigger$2,
12533
- {
12534
- "data-slot": "dropdown-menu-trigger",
12535
- ref,
12536
- ...props
12537
- }
12538
- );
12539
- }
12540
- const DropdownMenuTriggerWithRef = React.forwardRef(DropdownMenuTrigger);
12541
- function DropdownMenuContent({
12542
- className,
12543
- sideOffset = 4,
12544
- triggerRef,
12545
- ...props
12546
- }) {
12547
- const [triggerWidth, setTriggerWidth] = React.useState(
12548
- void 0
12549
- );
12550
- React.useEffect(() => {
12551
- if (triggerRef?.current) {
12552
- setTriggerWidth(triggerRef.current.offsetWidth);
12553
- }
12554
- }, [triggerRef]);
12555
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal2$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
12556
- Content2$3,
12557
- {
12558
- "data-slot": "dropdown-menu-content",
12559
- sideOffset,
12560
- style: { minWidth: triggerWidth ? Math.max(triggerWidth, 128) : 128 },
12561
- className: cn$1(
12562
- "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 relative z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
12563
- className
12564
- ),
12565
- ...props
12566
- }
12567
- ) });
12568
- }
12569
12662
  function DropdownMenuGroup({
12570
12663
  ...props
12571
12664
  }) {
12572
12665
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Group2, { "data-slot": "dropdown-menu-group", ...props });
12573
12666
  }
12574
- function DropdownMenuItem({
12575
- className,
12576
- inset,
12577
- variant = "default",
12578
- ...props
12579
- }) {
12580
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
12581
- Item2,
12582
- {
12583
- "data-slot": "dropdown-menu-item",
12584
- "data-inset": inset,
12585
- "data-variant": variant,
12586
- className: cn$1(
12587
- "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8",
12588
- className
12589
- ),
12590
- ...props
12591
- }
12592
- );
12593
- }
12594
12667
  function DropdownMenuCheckboxItem({
12595
12668
  className,
12596
12669
  children,
12597
12670
  checked,
12598
- onSelect,
12599
12671
  ...props
12600
12672
  }) {
12601
12673
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -12603,17 +12675,13 @@ function DropdownMenuCheckboxItem({
12603
12675
  {
12604
12676
  "data-slot": "dropdown-menu-checkbox-item",
12605
12677
  className: cn$1(
12606
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
12678
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
12607
12679
  className
12608
12680
  ),
12609
12681
  checked,
12610
- onSelect: (event) => {
12611
- event.preventDefault();
12612
- if (onSelect) onSelect(event);
12613
- },
12614
12682
  ...props,
12615
12683
  children: [
12616
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "pointer-events-none absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemIndicator2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-4" }) }) }),
12684
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ItemIndicator2, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Check, { className: "size-4" }) }) }),
12617
12685
  children
12618
12686
  ]
12619
12687
  }
@@ -12640,7 +12708,7 @@ function DropdownMenuRadioItem({
12640
12708
  {
12641
12709
  "data-slot": "dropdown-menu-radio-item",
12642
12710
  className: cn$1(
12643
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
12711
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
12644
12712
  className
12645
12713
  ),
12646
12714
  ...props,
@@ -12715,7 +12783,7 @@ function DropdownMenuSubTrigger({
12715
12783
  "data-slot": "dropdown-menu-sub-trigger",
12716
12784
  "data-inset": inset,
12717
12785
  className: cn$1(
12718
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
12786
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
12719
12787
  className
12720
12788
  ),
12721
12789
  ...props,
@@ -12726,13 +12794,77 @@ function DropdownMenuSubTrigger({
12726
12794
  }
12727
12795
  );
12728
12796
  }
12729
- function DropdownMenuSubContent({
12730
- className,
12797
+ function DropdownMenu({
12798
+ onOpenChange,
12731
12799
  ...props
12732
12800
  }) {
12801
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
12802
+ Root2$3,
12803
+ {
12804
+ "data-slot": "dropdown-menu",
12805
+ onOpenChange,
12806
+ ...props
12807
+ }
12808
+ );
12809
+ }
12810
+ const DropdownMenuTrigger = React.forwardRef((props, ref) => {
12811
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
12812
+ Trigger$2,
12813
+ {
12814
+ ref,
12815
+ "data-slot": "dropdown-menu-trigger",
12816
+ ...props
12817
+ }
12818
+ );
12819
+ });
12820
+ DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
12821
+ const DropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, triggerRef, ...props }, ref) => {
12822
+ const [triggerWidth, setTriggerWidth] = React.useState(
12823
+ void 0
12824
+ );
12825
+ React.useEffect(() => {
12826
+ if (triggerRef?.current) {
12827
+ setTriggerWidth(triggerRef.current.offsetWidth);
12828
+ }
12829
+ }, [triggerRef]);
12830
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal2$1, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
12831
+ Content2$3,
12832
+ {
12833
+ ref,
12834
+ "data-slot": "dropdown-menu-content",
12835
+ sideOffset,
12836
+ style: { minWidth: triggerWidth ? Math.max(triggerWidth, 128) : 128 },
12837
+ className: cn$1(
12838
+ "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 relative z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
12839
+ className
12840
+ ),
12841
+ ...props
12842
+ }
12843
+ ) });
12844
+ });
12845
+ DropdownMenuContent.displayName = "DropdownMenuContent";
12846
+ const DropdownMenuItem = React.forwardRef(({ className, inset, variant = "default", ...props }, ref) => {
12847
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
12848
+ Item2,
12849
+ {
12850
+ ref,
12851
+ "data-slot": "dropdown-menu-item",
12852
+ "data-inset": inset,
12853
+ "data-variant": variant,
12854
+ className: cn$1(
12855
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8",
12856
+ className
12857
+ ),
12858
+ ...props
12859
+ }
12860
+ );
12861
+ });
12862
+ DropdownMenuItem.displayName = "DropdownMenuItem";
12863
+ const DropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => {
12733
12864
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
12734
12865
  SubContent2,
12735
12866
  {
12867
+ ref,
12736
12868
  "data-slot": "dropdown-menu-sub-content",
12737
12869
  className: cn$1(
12738
12870
  "bg-popover border dark:bg-[var(--overlay-bg)] dark:border-[var(--overlay-border)] text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md p-1 shadow-lg",
@@ -12741,7 +12873,8 @@ function DropdownMenuSubContent({
12741
12873
  ...props
12742
12874
  }
12743
12875
  );
12744
- }
12876
+ });
12877
+ DropdownMenuSubContent.displayName = "DropdownMenuSubContent";
12745
12878
  const millisecondsInWeek = 6048e5;
12746
12879
  const millisecondsInDay = 864e5;
12747
12880
  const millisecondsInMinute = 6e4;
@@ -12982,6 +13115,21 @@ function startOfYear(date, options) {
12982
13115
  date_.setHours(0, 0, 0, 0);
12983
13116
  return date_;
12984
13117
  }
13118
+ function eachYearOfInterval(interval, options) {
13119
+ const { start, end } = normalizeInterval(options?.in, interval);
13120
+ let reversed = +start > +end;
13121
+ const endTime = reversed ? +start : +end;
13122
+ const date = reversed ? end : start;
13123
+ date.setHours(0, 0, 0, 0);
13124
+ date.setMonth(0, 1);
13125
+ let step = 1;
13126
+ const dates = [];
13127
+ while (+date <= endTime) {
13128
+ dates.push(constructFrom(start, date));
13129
+ date.setFullYear(date.getFullYear() + step);
13130
+ }
13131
+ return reversed ? dates.reverse() : dates;
13132
+ }
12985
13133
  function endOfWeek(date, options) {
12986
13134
  const defaultOptions2 = getDefaultOptions();
12987
13135
  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions2.weekStartsOn ?? defaultOptions2.locale?.options?.weekStartsOn ?? 0;
@@ -14808,7 +14956,7 @@ const PageHeader = React__default.memo(
14808
14956
  if (hasOverflowActions) {
14809
14957
  inlineActions.push(
14810
14958
  /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
14811
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTriggerWithRef, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { variant: "outline", size: "default", children: [
14959
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(Button$1, { variant: "outline", size: "default", children: [
14812
14960
  "Actions",
14813
14961
  /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronDown, { className: "ml-2 h-4 w-4" })
14814
14962
  ] }) }),
@@ -14991,7 +15139,7 @@ const PageHeader = React__default.memo(
14991
15139
  const renderMenu = (items, dataAttr, className) => {
14992
15140
  if (items.length === 0) return null;
14993
15141
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { "data-page-header": dataAttr, className, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
14994
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTriggerWithRef, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { variant: "outline", size: "icon", className: "shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Ellipsis, { className: "h-4 w-4" }) }) }),
15142
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { variant: "outline", size: "icon", className: "shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Ellipsis, { className: "h-4 w-4" }) }) }),
14995
15143
  /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuContent, { align: "end", className: "w-56 space-y-1", children: items })
14996
15144
  ] }) });
14997
15145
  };
@@ -15131,7 +15279,7 @@ function DialogClose({
15131
15279
  }) {
15132
15280
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Close, { "data-slot": "dialog-close", ...props });
15133
15281
  }
15134
- function DialogOverlay({
15282
+ function DialogOverlay$1({
15135
15283
  className,
15136
15284
  ...props
15137
15285
  }) {
@@ -15140,48 +15288,13 @@ function DialogOverlay({
15140
15288
  {
15141
15289
  "data-slot": "dialog-overlay",
15142
15290
  className: cn$1(
15143
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
15291
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
15144
15292
  className
15145
15293
  ),
15146
15294
  ...props
15147
15295
  }
15148
15296
  );
15149
15297
  }
15150
- function DialogContent({
15151
- className,
15152
- children,
15153
- showCloseButton = true,
15154
- ...props
15155
- }) {
15156
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
15157
- /* @__PURE__ */ jsxRuntimeExports.jsx(DialogOverlay, {}),
15158
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
15159
- Content$3,
15160
- {
15161
- "data-slot": "dialog-content",
15162
- className: cn$1(
15163
- "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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg outline-none",
15164
- className
15165
- ),
15166
- ...props,
15167
- children: [
15168
- children,
15169
- showCloseButton && /* @__PURE__ */ jsxRuntimeExports.jsxs(
15170
- Close,
15171
- {
15172
- "data-slot": "dialog-close",
15173
- className: "absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
15174
- children: [
15175
- /* @__PURE__ */ jsxRuntimeExports.jsx(X$1, {}),
15176
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sr-only", children: "Close" })
15177
- ]
15178
- }
15179
- )
15180
- ]
15181
- }
15182
- )
15183
- ] });
15184
- }
15185
15298
  function DialogHeader({ className, ...props }) {
15186
15299
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
15187
15300
  "div",
@@ -15218,19 +15331,68 @@ function DialogTitle({
15218
15331
  }
15219
15332
  );
15220
15333
  }
15221
- function DialogDescription({
15334
+ const DialogOverlay = React.forwardRef(({ className, ...props }, ref) => {
15335
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
15336
+ Overlay$1,
15337
+ {
15338
+ ref,
15339
+ "data-slot": "dialog-overlay",
15340
+ className: cn$1(
15341
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
15342
+ className
15343
+ ),
15344
+ ...props
15345
+ }
15346
+ );
15347
+ });
15348
+ DialogOverlay.displayName = DialogOverlay$1.name || "DialogOverlay";
15349
+ function DialogContent({
15222
15350
  className,
15351
+ children,
15352
+ showCloseButton = true,
15223
15353
  ...props
15224
15354
  }) {
15355
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(DialogPortal, { children: [
15356
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DialogOverlay, {}),
15357
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
15358
+ Content$3,
15359
+ {
15360
+ "data-slot": "dialog-content",
15361
+ className: cn$1(
15362
+ "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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg outline-none",
15363
+ className
15364
+ ),
15365
+ ...props,
15366
+ children: [
15367
+ children,
15368
+ showCloseButton && /* @__PURE__ */ jsxRuntimeExports.jsxs(
15369
+ Close,
15370
+ {
15371
+ "data-slot": "dialog-close",
15372
+ className: "absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
15373
+ children: [
15374
+ /* @__PURE__ */ jsxRuntimeExports.jsx(X$1, {}),
15375
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sr-only", children: "Close" })
15376
+ ]
15377
+ }
15378
+ )
15379
+ ]
15380
+ }
15381
+ )
15382
+ ] });
15383
+ }
15384
+ const DialogDescription = React.forwardRef(({ className, ...props }, ref) => {
15225
15385
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
15226
15386
  Description,
15227
15387
  {
15388
+ ref,
15228
15389
  "data-slot": "dialog-description",
15229
15390
  className: cn$1("text-sm", className),
15230
15391
  ...props
15231
15392
  }
15232
15393
  );
15233
- }
15394
+ });
15395
+ DialogDescription.displayName = Description.displayName;
15234
15396
  function __insertCSS$1(code) {
15235
15397
  if (typeof document == "undefined") return;
15236
15398
  let head = document.head || document.getElementsByTagName("head")[0];
@@ -16699,7 +16861,9 @@ const Drawer$1 = {
16699
16861
  Title,
16700
16862
  Description
16701
16863
  };
16702
- function Drawer({ ...props }) {
16864
+ function Drawer({
16865
+ ...props
16866
+ }) {
16703
16867
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer$1.Root, { "data-slot": "drawer", ...props });
16704
16868
  }
16705
16869
  function DrawerTrigger({
@@ -16707,59 +16871,25 @@ function DrawerTrigger({
16707
16871
  }) {
16708
16872
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer$1.Trigger, { "data-slot": "drawer-trigger", ...props });
16709
16873
  }
16710
- function DrawerClose({
16711
- ...props
16712
- }) {
16713
- return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer$1.Close, { "data-slot": "drawer-close", ...props });
16714
- }
16715
16874
  function DrawerPortal({
16716
16875
  ...props
16717
16876
  }) {
16718
16877
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer$1.Portal, { "data-slot": "drawer-portal", ...props });
16719
16878
  }
16720
- function DrawerOverlay({
16721
- className,
16722
- ...props
16723
- }) {
16724
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
16725
- Drawer$1.Overlay,
16726
- {
16727
- "data-slot": "drawer-overlay",
16728
- className: cn$1(
16729
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
16730
- className
16731
- ),
16732
- ...props
16733
- }
16734
- );
16735
- }
16736
- function DrawerContent({
16737
- className,
16738
- children,
16879
+ function DrawerClose({
16739
16880
  ...props
16740
16881
  }) {
16741
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(DrawerPortal, { children: [
16742
- /* @__PURE__ */ jsxRuntimeExports.jsx(DrawerOverlay, {}),
16743
- /* @__PURE__ */ jsxRuntimeExports.jsx(
16744
- Drawer$1.Content,
16745
- {
16746
- "data-slot": "drawer-content",
16747
- className: cn$1(
16748
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom fixed inset-x-0 bottom-0 z-50 mt-24 flex max-h-[85vh] w-full flex-col gap-4 rounded-t-lg border p-6 shadow-lg outline-none duration-200",
16749
- className
16750
- ),
16751
- ...props,
16752
- children
16753
- }
16754
- )
16755
- ] });
16882
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Drawer$1.Close, { "data-slot": "drawer-close", ...props });
16756
16883
  }
16757
16884
  function DrawerHeader({ className, ...props }) {
16758
16885
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
16759
16886
  "div",
16760
16887
  {
16761
16888
  "data-slot": "drawer-header",
16762
- className: cn$1("flex flex-col gap-2 text-left", className),
16889
+ className: cn$1(
16890
+ "flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",
16891
+ className
16892
+ ),
16763
16893
  ...props
16764
16894
  }
16765
16895
  );
@@ -16769,7 +16899,7 @@ function DrawerFooter({ className, ...props }) {
16769
16899
  "div",
16770
16900
  {
16771
16901
  "data-slot": "drawer-footer",
16772
- className: cn$1("mt-auto flex flex-col gap-2", className),
16902
+ className: cn$1("mt-auto flex flex-col gap-2 p-4", className),
16773
16903
  ...props
16774
16904
  }
16775
16905
  );
@@ -16782,7 +16912,7 @@ function DrawerTitle({
16782
16912
  Drawer$1.Title,
16783
16913
  {
16784
16914
  "data-slot": "drawer-title",
16785
- className: cn$1("text-lg leading-none font-semibold", className),
16915
+ className: cn$1("text-foreground font-semibold", className),
16786
16916
  ...props
16787
16917
  }
16788
16918
  );
@@ -16795,11 +16925,47 @@ function DrawerDescription({
16795
16925
  Drawer$1.Description,
16796
16926
  {
16797
16927
  "data-slot": "drawer-description",
16798
- className: cn$1("text-sm", className),
16928
+ className: cn$1("text-muted-foreground text-sm", className),
16799
16929
  ...props
16800
16930
  }
16801
16931
  );
16802
16932
  }
16933
+ const DrawerOverlay = React.forwardRef(({ className, ...props }, ref) => {
16934
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
16935
+ Drawer$1.Overlay,
16936
+ {
16937
+ ref,
16938
+ "data-slot": "drawer-overlay",
16939
+ className: cn$1(
16940
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
16941
+ className
16942
+ ),
16943
+ ...props
16944
+ }
16945
+ );
16946
+ });
16947
+ DrawerOverlay.displayName = "DrawerOverlay";
16948
+ function DrawerContent({
16949
+ className,
16950
+ children,
16951
+ ...props
16952
+ }) {
16953
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(Drawer$1.Portal, { children: [
16954
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DrawerOverlay, {}),
16955
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
16956
+ Drawer$1.Content,
16957
+ {
16958
+ "data-slot": "drawer-content",
16959
+ className: cn$1(
16960
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:slide-in-from-bottom data-[state=closed]:slide-out-to-bottom fixed inset-x-0 bottom-0 z-50 mt-24 flex max-h-[85vh] w-full flex-col gap-4 rounded-t-lg border p-6 shadow-lg outline-none duration-200",
16961
+ className
16962
+ ),
16963
+ ...props,
16964
+ children
16965
+ }
16966
+ )
16967
+ ] });
16968
+ }
16803
16969
  function DrawerHandle({
16804
16970
  className,
16805
16971
  ...props
@@ -16830,16 +16996,6 @@ function Table({ className, ...props }) {
16830
16996
  }
16831
16997
  );
16832
16998
  }
16833
- function TableHeader$1({ className, ...props }) {
16834
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
16835
- "thead",
16836
- {
16837
- "data-slot": "table-header",
16838
- className: cn$1("[&_tr]:border-b", className),
16839
- ...props
16840
- }
16841
- );
16842
- }
16843
16999
  function TableBody$1({ className, ...props }) {
16844
17000
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
16845
17001
  "tbody",
@@ -16863,26 +17019,13 @@ function TableFooter({ className, ...props }) {
16863
17019
  }
16864
17020
  );
16865
17021
  }
16866
- function TableRow({ className, ...props }) {
16867
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
16868
- "tr",
16869
- {
16870
- "data-slot": "table-row",
16871
- className: cn$1(
16872
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
16873
- className
16874
- ),
16875
- ...props
16876
- }
16877
- );
16878
- }
16879
17022
  function TableHead$1({ className, ...props }) {
16880
17023
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
16881
17024
  "th",
16882
17025
  {
16883
17026
  "data-slot": "table-head",
16884
17027
  className: cn$1(
16885
- "text-foreground h-10 px-2 text-left align-middle text-xs font-semibold whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px] [&_button]:text-xs [&_button]:font-semibold [&_[data-slot='button']]:text-xs [&_[data-slot='button']]:font-semibold",
17028
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
16886
17029
  className
16887
17030
  ),
16888
17031
  ...props
@@ -16895,7 +17038,7 @@ function TableCell({ className, ...props }) {
16895
17038
  {
16896
17039
  "data-slot": "table-cell",
16897
17040
  className: cn$1(
16898
- "p-2 align-middle whitespace-nowrap text-xs font-normal [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
17041
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
16899
17042
  className
16900
17043
  ),
16901
17044
  ...props
@@ -16915,6 +17058,33 @@ function TableCaption({
16915
17058
  }
16916
17059
  );
16917
17060
  }
17061
+ const TableHeader$1 = React.forwardRef(({ className, ...props }, ref) => {
17062
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
17063
+ "thead",
17064
+ {
17065
+ ref,
17066
+ "data-slot": "table-header",
17067
+ className: cn$1("[&_tr]:border-b", className),
17068
+ ...props
17069
+ }
17070
+ );
17071
+ });
17072
+ TableHeader$1.displayName = "TableHeader";
17073
+ const TableRow = React.forwardRef(({ className, ...props }, ref) => {
17074
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
17075
+ "tr",
17076
+ {
17077
+ ref,
17078
+ "data-slot": "table-row",
17079
+ className: cn$1(
17080
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
17081
+ className
17082
+ ),
17083
+ ...props
17084
+ }
17085
+ );
17086
+ });
17087
+ TableRow.displayName = "TableRow";
16918
17088
  function Skeleton({ className, ...props }) {
16919
17089
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
16920
17090
  "div",
@@ -17953,6 +18123,18 @@ class DateLib {
17953
18123
  this.eachMonthOfInterval = (interval) => {
17954
18124
  return this.overrides?.eachMonthOfInterval ? this.overrides.eachMonthOfInterval(interval) : eachMonthOfInterval(interval);
17955
18125
  };
18126
+ this.eachYearOfInterval = (interval) => {
18127
+ const years = this.overrides?.eachYearOfInterval ? this.overrides.eachYearOfInterval(interval) : eachYearOfInterval(interval);
18128
+ const uniqueYears = new Set(years.map((d) => this.getYear(d)));
18129
+ if (uniqueYears.size === years.length) {
18130
+ return years;
18131
+ }
18132
+ const yearsArray = [];
18133
+ uniqueYears.forEach((y) => {
18134
+ yearsArray.push(new Date(y, 0, 1));
18135
+ });
18136
+ return yearsArray;
18137
+ };
17956
18138
  this.endOfBroadcastWeek = (date) => {
17957
18139
  return this.overrides?.endOfBroadcastWeek ? this.overrides.endOfBroadcastWeek(date) : endOfBroadcastWeek(date, this);
17958
18140
  };
@@ -18691,21 +18873,16 @@ function getYearOptions(navStart, navEnd, formatters2, dateLib, reverse = false)
18691
18873
  return void 0;
18692
18874
  if (!navEnd)
18693
18875
  return void 0;
18694
- const { startOfYear: startOfYear2, endOfYear: endOfYear2, addYears: addYears2, getYear: getYear2, isBefore: isBefore2, isSameYear: isSameYear2 } = dateLib;
18876
+ const { startOfYear: startOfYear2, endOfYear: endOfYear2, eachYearOfInterval: eachYearOfInterval2, getYear: getYear2 } = dateLib;
18695
18877
  const firstNavYear = startOfYear2(navStart);
18696
18878
  const lastNavYear = endOfYear2(navEnd);
18697
- const years = [];
18698
- let year = firstNavYear;
18699
- while (isBefore2(year, lastNavYear) || isSameYear2(year, lastNavYear)) {
18700
- years.push(year);
18701
- year = addYears2(year, 1);
18702
- }
18879
+ const years = eachYearOfInterval2({ start: firstNavYear, end: lastNavYear });
18703
18880
  if (reverse)
18704
18881
  years.reverse();
18705
- return years.map((year2) => {
18706
- const label = formatters2.formatYearDropdown(year2, dateLib);
18882
+ return years.map((year) => {
18883
+ const label = formatters2.formatYearDropdown(year, dateLib);
18707
18884
  return {
18708
- value: getYear2(year2),
18885
+ value: getYear2(year),
18709
18886
  label,
18710
18887
  disabled: false
18711
18888
  };
@@ -19214,6 +19391,12 @@ function useFocus(props, calendar, getModifiers, isSelected, dateLib) {
19214
19391
  const nextFocus = getNextFocus(moveBy, moveDir, focusedDay, calendar.navStart, calendar.navEnd, props, dateLib);
19215
19392
  if (!nextFocus)
19216
19393
  return;
19394
+ if (props.disableNavigation) {
19395
+ const isNextInCalendar = calendar.days.some((day) => day.isEqualTo(nextFocus));
19396
+ if (!isNextInCalendar) {
19397
+ return;
19398
+ }
19399
+ }
19217
19400
  calendar.goToDay(nextFocus);
19218
19401
  setFocused(nextFocus);
19219
19402
  };
@@ -19749,7 +19932,7 @@ function Calendar({
19749
19932
  {
19750
19933
  showOutsideDays,
19751
19934
  className: cn$1(
19752
- "group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
19935
+ "bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
19753
19936
  String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
19754
19937
  String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
19755
19938
  className
@@ -19880,7 +20063,7 @@ function CalendarDayButton({
19880
20063
  if (modifiers.focused) ref.current?.focus();
19881
20064
  }, [modifiers.focused]);
19882
20065
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
19883
- Button$1,
20066
+ Button$2,
19884
20067
  {
19885
20068
  ref,
19886
20069
  variant: "ghost",
@@ -20186,15 +20369,11 @@ function PopoverTrigger({
20186
20369
  }) {
20187
20370
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Trigger$1, { "data-slot": "popover-trigger", ...props });
20188
20371
  }
20189
- function PopoverContent({
20190
- className,
20191
- align = "center",
20192
- sideOffset = 4,
20193
- ...props
20194
- }) {
20372
+ const PopoverContent = React.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => {
20195
20373
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
20196
20374
  Content2$2,
20197
20375
  {
20376
+ ref,
20198
20377
  "data-slot": "popover-content",
20199
20378
  align,
20200
20379
  sideOffset,
@@ -20205,7 +20384,8 @@ function PopoverContent({
20205
20384
  ...props
20206
20385
  }
20207
20386
  ) });
20208
- }
20387
+ });
20388
+ PopoverContent.displayName = "PopoverContent";
20209
20389
  function DatePicker({
20210
20390
  label,
20211
20391
  placeholder = "Select date",
@@ -24494,7 +24674,9 @@ function DataTablePagination({
24494
24674
  table,
24495
24675
  pageSizeOptions = [25, 50, 100, 250],
24496
24676
  className,
24497
- compact: compact2 = false
24677
+ compact: compact2 = false,
24678
+ onPageChange,
24679
+ onPageSizeChange
24498
24680
  }) {
24499
24681
  const state = table.getState();
24500
24682
  const pageSize = state.pagination?.pageSize ?? 25;
@@ -24534,6 +24716,12 @@ function DataTablePagination({
24534
24716
  const size2 = Number(value);
24535
24717
  table.setPageIndex(0);
24536
24718
  table.setPageSize(size2);
24719
+ if (onPageSizeChange) {
24720
+ onPageSizeChange(size2);
24721
+ }
24722
+ if (onPageChange) {
24723
+ onPageChange(0);
24724
+ }
24537
24725
  },
24538
24726
  children: [
24539
24727
  /* @__PURE__ */ jsxRuntimeExports.jsx(SelectTrigger, { className: "h-9 w-20", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SelectValue, {}) }),
@@ -24551,7 +24739,12 @@ function DataTablePagination({
24551
24739
  {
24552
24740
  variant: "outline",
24553
24741
  className: "h-9 rounded-md px-3",
24554
- onClick: () => table.previousPage(),
24742
+ onClick: () => {
24743
+ table.previousPage();
24744
+ if (onPageChange) {
24745
+ onPageChange(table.getState().pagination?.pageIndex ?? 0);
24746
+ }
24747
+ },
24555
24748
  disabled: !canPrev,
24556
24749
  "data-slot": "previous",
24557
24750
  children: "Previous"
@@ -24581,7 +24774,12 @@ function DataTablePagination({
24581
24774
  {
24582
24775
  variant: "outline",
24583
24776
  className: "h-9 rounded-md px-3",
24584
- onClick: () => table.nextPage(),
24777
+ onClick: () => {
24778
+ table.nextPage();
24779
+ if (onPageChange) {
24780
+ onPageChange(table.getState().pagination?.pageIndex ?? 0);
24781
+ }
24782
+ },
24585
24783
  disabled: !canNext,
24586
24784
  "data-slot": "next",
24587
24785
  children: "Next"
@@ -24708,7 +24906,7 @@ function ColumnVisibilityMenu({
24708
24906
  [order, table]
24709
24907
  );
24710
24908
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
24711
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTriggerWithRef, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
24909
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
24712
24910
  Button$1,
24713
24911
  {
24714
24912
  variant: "outline",
@@ -25517,40 +25715,42 @@ var Header = AccordionHeader;
25517
25715
  var Trigger2$1 = AccordionTrigger$1;
25518
25716
  var Content2$1 = AccordionContent$1;
25519
25717
  function Accordion({
25718
+ ...props
25719
+ }) {
25720
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Root2$1, { "data-slot": "accordion", ...props });
25721
+ }
25722
+ function AccordionContent({
25520
25723
  className,
25724
+ children,
25521
25725
  ...props
25522
25726
  }) {
25523
25727
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
25524
- Root2$1,
25728
+ Content2$1,
25525
25729
  {
25526
- "data-slot": "accordion",
25527
- className: cn$1(className),
25528
- ...props
25730
+ "data-slot": "accordion-content",
25731
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
25732
+ ...props,
25733
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn$1("pt-0 pb-4", className), children })
25529
25734
  }
25530
25735
  );
25531
25736
  }
25532
- function AccordionItem({
25533
- className,
25534
- ...props
25535
- }) {
25737
+ const AccordionItem = React.forwardRef(({ className, ...props }, ref) => {
25536
25738
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
25537
25739
  Item,
25538
25740
  {
25741
+ ref,
25539
25742
  "data-slot": "accordion-item",
25540
25743
  className: cn$1("last:border-b-0", className),
25541
25744
  ...props
25542
25745
  }
25543
25746
  );
25544
- }
25545
- function AccordionTrigger({
25546
- className,
25547
- children,
25548
- indicatorClassName,
25549
- ...props
25550
- }) {
25747
+ });
25748
+ AccordionItem.displayName = "AccordionItem";
25749
+ const AccordionTrigger = React.forwardRef(({ className, children, indicatorClassName, ...props }, ref) => {
25551
25750
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Header, { className: "flex", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
25552
25751
  Trigger2$1,
25553
25752
  {
25753
+ ref,
25554
25754
  "data-slot": "accordion-trigger",
25555
25755
  className: cn$1(
25556
25756
  "flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
@@ -25571,22 +25771,8 @@ function AccordionTrigger({
25571
25771
  ]
25572
25772
  }
25573
25773
  ) });
25574
- }
25575
- function AccordionContent({
25576
- className,
25577
- children,
25578
- ...props
25579
- }) {
25580
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
25581
- Content2$1,
25582
- {
25583
- "data-slot": "accordion-content",
25584
- className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
25585
- ...props,
25586
- children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: cn$1("pt-0 pb-4", className), children })
25587
- }
25588
- );
25589
- }
25774
+ });
25775
+ AccordionTrigger.displayName = "AccordionTrigger";
25590
25776
  function FilterMenu({
25591
25777
  filters,
25592
25778
  onClearAll,
@@ -25633,7 +25819,7 @@ function FilterMenu({
25633
25819
  );
25634
25820
  if (!filters.length) return null;
25635
25821
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
25636
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTriggerWithRef, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
25822
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
25637
25823
  Button$1,
25638
25824
  {
25639
25825
  variant: "outline",
@@ -25917,7 +26103,7 @@ function SortMenu({ table }) {
25917
26103
  const buttonLabel = currentSort ? `Sort by ${activeLabel}` : "Sort";
25918
26104
  const SortIcon = currentDirection === "asc" ? ArrowUp : ArrowDown;
25919
26105
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(DropdownMenu, { children: [
25920
- /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTriggerWithRef, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
26106
+ /* @__PURE__ */ jsxRuntimeExports.jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
25921
26107
  Button$1,
25922
26108
  {
25923
26109
  variant: "outline",
@@ -25980,6 +26166,7 @@ function DataTableToolbar({
25980
26166
  columnRegistry,
25981
26167
  onResetColumns,
25982
26168
  onExport,
26169
+ onExportComplete,
25983
26170
  options
25984
26171
  }) {
25985
26172
  const registeredFilters = useColumnFilters(table, columnRegistry);
@@ -25998,6 +26185,9 @@ function DataTableToolbar({
25998
26185
  const handleExport = React.useCallback(() => {
25999
26186
  if (onExport) {
26000
26187
  onExport();
26188
+ if (onExportComplete) {
26189
+ onExportComplete(table.getFilteredRowModel().rows.length);
26190
+ }
26001
26191
  return;
26002
26192
  }
26003
26193
  const headers = table.getVisibleLeafColumns().map((col) => col.id);
@@ -26015,7 +26205,10 @@ function DataTableToolbar({
26015
26205
  a2.download = "data.csv";
26016
26206
  a2.click();
26017
26207
  URL.revokeObjectURL(url);
26018
- }, [onExport, table]);
26208
+ if (onExportComplete) {
26209
+ onExportComplete(rows.length);
26210
+ }
26211
+ }, [onExport, onExportComplete, table]);
26019
26212
  const clearAllFilters = React.useCallback(() => {
26020
26213
  registeredFilters.forEach((filter) => {
26021
26214
  filter.column.setFilterValue(void 0);
@@ -26067,7 +26260,7 @@ function DataTableToolbar({
26067
26260
  event.preventDefault();
26068
26261
  event.stopPropagation();
26069
26262
  const value = event.currentTarget.value.trim();
26070
- if (opts.onSearchSubmit && value) {
26263
+ if (opts.onSearchSubmit) {
26071
26264
  opts.onSearchSubmit(value);
26072
26265
  }
26073
26266
  }
@@ -26105,12 +26298,18 @@ function DataTableToolbar({
26105
26298
  ) : null
26106
26299
  ] })
26107
26300
  ] }),
26108
- typeof opts.belowControls === "function" ? opts.belowControls({
26109
- globalFilter,
26110
- onSearchChange: opts.onSearchChange,
26111
- onSearchSubmit: opts.onSearchSubmit,
26112
- loading
26113
- }) : opts.belowControls ?? null
26301
+ (() => {
26302
+ if (typeof opts.belowControls === "function") {
26303
+ return opts.belowControls({
26304
+ globalFilter,
26305
+ onSearchChange: opts.onSearchChange,
26306
+ onSearchSubmit: opts.onSearchSubmit,
26307
+ loading
26308
+ });
26309
+ } else {
26310
+ return opts.belowControls ?? null;
26311
+ }
26312
+ })()
26114
26313
  ] });
26115
26314
  }
26116
26315
  /**
@@ -29257,7 +29456,22 @@ function useBreakpoint(query = QUERY) {
29257
29456
  return matches;
29258
29457
  }
29259
29458
  function useTableController(options) {
29260
- const { columns, data, columnRegistry, initialState: initialState2, tableId } = options;
29459
+ const {
29460
+ columns,
29461
+ data,
29462
+ columnRegistry,
29463
+ initialState: initialState2,
29464
+ tableId,
29465
+ disableGlobalFilter,
29466
+ onRowSelectionChange,
29467
+ onSortingChange,
29468
+ onPaginationChange,
29469
+ onColumnVisibilityChange,
29470
+ onColumnOrderChange,
29471
+ onBatchAction,
29472
+ onRowClick,
29473
+ onExportComplete
29474
+ } = options;
29261
29475
  const storageKey = tableId ? `mmrc:table:${tableId}` : void 0;
29262
29476
  const persistedState = React.useMemo(() => {
29263
29477
  if (!storageKey) return null;
@@ -29311,6 +29525,57 @@ function useTableController(options) {
29311
29525
  pageIndex: 0,
29312
29526
  pageSize: 25
29313
29527
  });
29528
+ const wrappedSetRowSelection = React.useCallback(
29529
+ (updater) => {
29530
+ const newSelection = typeof updater === "function" ? updater(rowSelection) : updater;
29531
+ setRowSelection(newSelection);
29532
+ if (onRowSelectionChange) {
29533
+ const selectedRows = data.filter((_, index2) => newSelection[index2]);
29534
+ onRowSelectionChange(selectedRows, newSelection);
29535
+ }
29536
+ },
29537
+ [rowSelection, setRowSelection, onRowSelectionChange, data]
29538
+ );
29539
+ const wrappedSetSorting = React.useCallback(
29540
+ (updater) => {
29541
+ const newSorting = typeof updater === "function" ? updater(sorting) : updater;
29542
+ setSorting(newSorting);
29543
+ if (onSortingChange) {
29544
+ onSortingChange(newSorting);
29545
+ }
29546
+ },
29547
+ [sorting, setSorting, onSortingChange]
29548
+ );
29549
+ const wrappedSetPagination = React.useCallback(
29550
+ (updater) => {
29551
+ const newPagination = typeof updater === "function" ? updater(pagination) : updater;
29552
+ setPagination(newPagination);
29553
+ if (onPaginationChange) {
29554
+ onPaginationChange(newPagination.pageIndex, newPagination.pageSize);
29555
+ }
29556
+ },
29557
+ [pagination, setPagination, onPaginationChange]
29558
+ );
29559
+ const wrappedSetColumnVisibility = React.useCallback(
29560
+ (updater) => {
29561
+ const newVisibility = typeof updater === "function" ? updater(columnVisibility) : updater;
29562
+ setColumnVisibility(newVisibility);
29563
+ if (onColumnVisibilityChange) {
29564
+ onColumnVisibilityChange(newVisibility);
29565
+ }
29566
+ },
29567
+ [columnVisibility, setColumnVisibility, onColumnVisibilityChange]
29568
+ );
29569
+ const wrappedSetColumnOrder = React.useCallback(
29570
+ (updater) => {
29571
+ const newOrder = typeof updater === "function" ? updater(columnOrder) : updater;
29572
+ setColumnOrder(newOrder);
29573
+ if (onColumnOrderChange) {
29574
+ onColumnOrderChange(newOrder);
29575
+ }
29576
+ },
29577
+ [columnOrder, setColumnOrder, onColumnOrderChange]
29578
+ );
29314
29579
  React.useEffect(() => {
29315
29580
  if (!storageKey) return;
29316
29581
  try {
@@ -29338,16 +29603,17 @@ function useTableController(options) {
29338
29603
  enableRowSelection: true,
29339
29604
  enableColumnResizing: true,
29340
29605
  enableColumnPinning: true,
29341
- onRowSelectionChange: setRowSelection,
29342
- onSortingChange: setSorting,
29343
- onColumnVisibilityChange: setColumnVisibility,
29344
- onColumnOrderChange: setColumnOrder,
29606
+ enableGlobalFilter: !disableGlobalFilter,
29607
+ onRowSelectionChange: wrappedSetRowSelection,
29608
+ onSortingChange: wrappedSetSorting,
29609
+ onColumnVisibilityChange: wrappedSetColumnVisibility,
29610
+ onColumnOrderChange: wrappedSetColumnOrder,
29345
29611
  onGlobalFilterChange: setGlobalFilter,
29346
29612
  onColumnPinningChange: setColumnPinning,
29347
- onPaginationChange: setPagination,
29613
+ onPaginationChange: wrappedSetPagination,
29348
29614
  getCoreRowModel: getCoreRowModel(),
29349
29615
  getSortedRowModel: getSortedRowModel(),
29350
- getFilteredRowModel: getFilteredRowModel(),
29616
+ getFilteredRowModel: disableGlobalFilter ? getCoreRowModel() : getFilteredRowModel(),
29351
29617
  getPaginationRowModel: getPaginationRowModel(),
29352
29618
  getFacetedRowModel: getFacetedRowModel(),
29353
29619
  getFacetedUniqueValues: getFacetedUniqueValues(),
@@ -29421,7 +29687,11 @@ function useTableController(options) {
29421
29687
  setGlobalFilter,
29422
29688
  pagination,
29423
29689
  setPagination,
29424
- handleResetColumns
29690
+ handleResetColumns,
29691
+ // Event callbacks for child components
29692
+ onBatchAction,
29693
+ onRowClick,
29694
+ onExportComplete
29425
29695
  };
29426
29696
  }
29427
29697
  function exportTableToCSV(table, filename = "data.csv") {
@@ -29818,7 +30088,8 @@ function TableBody({
29818
30088
  }
29819
30089
  function BatchActionsToolbar({
29820
30090
  selectedCount,
29821
- onDeleteSelected
30091
+ onDeleteSelected,
30092
+ onBatchAction
29822
30093
  }) {
29823
30094
  if (selectedCount <= 0) return null;
29824
30095
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 mb-2 px-1", children: [
@@ -29832,6 +30103,10 @@ function BatchActionsToolbar({
29832
30103
  variant: "destructive",
29833
30104
  size: "sm",
29834
30105
  onClick: () => {
30106
+ if (onBatchAction) {
30107
+ onBatchAction("delete", []);
30108
+ return;
30109
+ }
29835
30110
  if (onDeleteSelected) {
29836
30111
  onDeleteSelected(selectedCount);
29837
30112
  return;
@@ -29859,7 +30134,15 @@ function DataTable({
29859
30134
  tableId,
29860
30135
  toolbar,
29861
30136
  emptyState,
29862
- forceEmptyState
30137
+ forceEmptyState,
30138
+ onRowSelectionChange,
30139
+ onSortingChange,
30140
+ onPaginationChange,
30141
+ onColumnVisibilityChange,
30142
+ onColumnOrderChange,
30143
+ onBatchAction,
30144
+ onRowClick,
30145
+ onExportComplete
29863
30146
  }) {
29864
30147
  const debug2 = (..._args) => {
29865
30148
  return;
@@ -29869,13 +30152,24 @@ function DataTable({
29869
30152
  resolvedColumns,
29870
30153
  globalFilter,
29871
30154
  setGlobalFilter,
29872
- handleResetColumns
30155
+ handleResetColumns,
30156
+ onBatchAction: controllerOnBatchAction,
30157
+ onExportComplete: controllerOnExportComplete
29873
30158
  } = useTableController({
29874
30159
  columns,
29875
30160
  data,
29876
30161
  columnRegistry,
29877
30162
  initialState: initialState2,
29878
- tableId
30163
+ tableId,
30164
+ disableGlobalFilter: toolbar?.disableGlobalFilter,
30165
+ onRowSelectionChange,
30166
+ onSortingChange,
30167
+ onPaginationChange,
30168
+ onColumnVisibilityChange,
30169
+ onColumnOrderChange,
30170
+ onBatchAction,
30171
+ onRowClick,
30172
+ onExportComplete
29879
30173
  });
29880
30174
  const [isDragging, setIsDragging] = React.useState(false);
29881
30175
  const [activeColumnId, setActiveColumnId] = React.useState(
@@ -29981,13 +30275,18 @@ function DataTable({
29981
30275
  onResetColumns: handleResetColumns,
29982
30276
  columnRegistry,
29983
30277
  onExport: () => exportTableToCSV(table),
30278
+ onExportComplete: controllerOnExportComplete,
29984
30279
  options: toolbar
29985
30280
  }
29986
30281
  ),
29987
30282
  table.getFilteredSelectedRowModel().rows.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx(
29988
30283
  BatchActionsToolbar,
29989
30284
  {
29990
- selectedCount: table.getFilteredSelectedRowModel().rows.length
30285
+ selectedCount: table.getFilteredSelectedRowModel().rows.length,
30286
+ onBatchAction: controllerOnBatchAction ? (action) => {
30287
+ const selectedRows = table.getFilteredSelectedRowModel().rows.map((row) => row.original);
30288
+ controllerOnBatchAction(action, selectedRows);
30289
+ } : void 0
29991
30290
  }
29992
30291
  ),
29993
30292
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -30059,7 +30358,20 @@ function DataTable({
30059
30358
  )
30060
30359
  }
30061
30360
  ),
30062
- isForcedEmpty ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border bg-[var(--tablehead-bg)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(DataTablePagination, { table }) })
30361
+ isForcedEmpty ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "border-t border-border bg-[var(--tablehead-bg)]", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
30362
+ DataTablePagination,
30363
+ {
30364
+ table,
30365
+ onPageChange: onPaginationChange ? (pageIndex) => onPaginationChange(
30366
+ pageIndex,
30367
+ table.getState().pagination?.pageSize ?? 25
30368
+ ) : void 0,
30369
+ onPageSizeChange: onPaginationChange ? (pageSize) => onPaginationChange(
30370
+ table.getState().pagination?.pageIndex ?? 0,
30371
+ pageSize
30372
+ ) : void 0
30373
+ }
30374
+ ) })
30063
30375
  ] });
30064
30376
  }
30065
30377
  const ALIGNMENT_PRESETS = {
@@ -30591,7 +30903,8 @@ function getDisplayLabel(descriptor) {
30591
30903
  function RowCard({
30592
30904
  row,
30593
30905
  columnRegistry,
30594
- className
30906
+ className,
30907
+ onRowClick
30595
30908
  }) {
30596
30909
  const visibleCells = row.getVisibleCells();
30597
30910
  const cellMap = new Map(visibleCells.map((cell) => [cell.column.id, cell]));
@@ -30661,14 +30974,18 @@ function RowCard({
30661
30974
  const hasActions = actionItems.length > 0;
30662
30975
  const [showActions, setShowActions] = React.useState(false);
30663
30976
  function handleCardClick(event) {
30664
- if (!hasActions) return;
30665
30977
  const target = event.target;
30666
30978
  if (!target) return;
30667
30979
  const interactive = target.closest(
30668
30980
  'a,button,input,select,textarea,label,[role=checkbox],[data-slot="table-action-trigger"]'
30669
30981
  );
30670
30982
  if (interactive) return;
30671
- setShowActions((prev) => !prev);
30983
+ if (onRowClick) {
30984
+ onRowClick(row.original, row.index);
30985
+ }
30986
+ if (hasActions) {
30987
+ setShowActions((prev) => !prev);
30988
+ }
30672
30989
  }
30673
30990
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
30674
30991
  "div",
@@ -30693,12 +31010,14 @@ function RowCard({
30693
31010
  return parts.join(" — ") || "Row";
30694
31011
  })(),
30695
31012
  "data-slot": "row-card",
30696
- tabIndex: hasActions ? 0 : void 0,
30697
- onClick: hasActions ? handleCardClick : void 0,
30698
- onKeyDown: hasActions ? (e) => {
31013
+ tabIndex: hasActions || onRowClick ? 0 : void 0,
31014
+ onClick: hasActions || onRowClick ? handleCardClick : void 0,
31015
+ onKeyDown: hasActions || onRowClick ? (e) => {
30699
31016
  if (e.key === "Enter" || e.key === " ") {
30700
31017
  e.preventDefault();
30701
- setShowActions((prev) => !prev);
31018
+ handleCardClick(
31019
+ e
31020
+ );
30702
31021
  }
30703
31022
  } : void 0,
30704
31023
  "aria-expanded": hasActions ? showActions : void 0,
@@ -31710,7 +32029,15 @@ function ResponsiveTable({
31710
32029
  tableId,
31711
32030
  toolbarOptions,
31712
32031
  emptyState,
31713
- forceEmptyState
32032
+ forceEmptyState,
32033
+ onRowSelectionChange,
32034
+ onSortingChange,
32035
+ onPaginationChange,
32036
+ onColumnVisibilityChange,
32037
+ onColumnOrderChange,
32038
+ onBatchAction,
32039
+ onRowClick,
32040
+ onExportComplete
31714
32041
  }) {
31715
32042
  const isMobile = useBreakpoint(breakpoint);
31716
32043
  if (!isMobile) {
@@ -31725,7 +32052,15 @@ function ResponsiveTable({
31725
32052
  tableId,
31726
32053
  toolbar: toolbarOptions,
31727
32054
  emptyState,
31728
- forceEmptyState
32055
+ forceEmptyState,
32056
+ onRowSelectionChange,
32057
+ onSortingChange,
32058
+ onPaginationChange,
32059
+ onColumnVisibilityChange,
32060
+ onColumnOrderChange,
32061
+ onBatchAction,
32062
+ onRowClick,
32063
+ onExportComplete
31729
32064
  }
31730
32065
  ) });
31731
32066
  }
@@ -31743,7 +32078,15 @@ function ResponsiveTable({
31743
32078
  overscan,
31744
32079
  toolbarOptions,
31745
32080
  emptyState,
31746
- forceEmptyState
32081
+ forceEmptyState,
32082
+ onRowSelectionChange,
32083
+ onSortingChange,
32084
+ onPaginationChange,
32085
+ onColumnVisibilityChange,
32086
+ onColumnOrderChange,
32087
+ onBatchAction,
32088
+ onRowClick,
32089
+ onExportComplete
31747
32090
  }
31748
32091
  ) });
31749
32092
  }
@@ -31759,14 +32102,30 @@ function MobileTableInternal({
31759
32102
  overscan = 8,
31760
32103
  toolbarOptions,
31761
32104
  emptyState,
31762
- forceEmptyState
32105
+ forceEmptyState,
32106
+ onRowSelectionChange,
32107
+ onSortingChange,
32108
+ onPaginationChange,
32109
+ onColumnVisibilityChange,
32110
+ onColumnOrderChange,
32111
+ onBatchAction,
32112
+ onRowClick,
32113
+ onExportComplete
31763
32114
  }) {
31764
32115
  const { table, globalFilter, setGlobalFilter, handleResetColumns } = useTableController({
31765
32116
  columns,
31766
32117
  data,
31767
32118
  columnRegistry,
31768
32119
  initialState: initialState2,
31769
- tableId
32120
+ tableId,
32121
+ onRowSelectionChange,
32122
+ onSortingChange,
32123
+ onPaginationChange,
32124
+ onColumnVisibilityChange,
32125
+ onColumnOrderChange,
32126
+ onBatchAction,
32127
+ onRowClick,
32128
+ onExportComplete
31770
32129
  });
31771
32130
  const parentRef = React.useRef(null);
31772
32131
  const rows = table.getRowModel().rows;
@@ -31823,7 +32182,8 @@ function MobileTableInternal({
31823
32182
  {
31824
32183
  row,
31825
32184
  columnRegistry,
31826
- className: "mmc-row-card--item w-full"
32185
+ className: "mmc-row-card--item w-full",
32186
+ onRowClick
31827
32187
  },
31828
32188
  row.id
31829
32189
  ));
@@ -31846,7 +32206,8 @@ function MobileTableInternal({
31846
32206
  {
31847
32207
  row,
31848
32208
  columnRegistry,
31849
- className: "mmc-row-card--item w-full"
32209
+ className: "mmc-row-card--item w-full",
32210
+ onRowClick
31850
32211
  }
31851
32212
  )
31852
32213
  },
@@ -32001,15 +32362,12 @@ Defaulting to \`null\`.`;
32001
32362
  }
32002
32363
  var Root$2 = Progress$1;
32003
32364
  var Indicator = ProgressIndicator;
32004
- function Progress({
32005
- className,
32006
- value,
32007
- ...props
32008
- }) {
32365
+ const Progress = React.forwardRef(({ className, value, ...props }, ref) => {
32009
32366
  const clamped = typeof value === "number" ? Math.max(0, Math.min(100, value)) : void 0;
32010
32367
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
32011
32368
  Root$2,
32012
32369
  {
32370
+ ref,
32013
32371
  "data-slot": "progress",
32014
32372
  role: "progressbar",
32015
32373
  "aria-valuemin": 0,
@@ -32031,7 +32389,8 @@ function Progress({
32031
32389
  )
32032
32390
  }
32033
32391
  );
32034
- }
32392
+ });
32393
+ Progress.displayName = "Progress";
32035
32394
  var propTypes = { exports: {} };
32036
32395
  var reactIs$1 = { exports: {} };
32037
32396
  var reactIs_production_min$1 = {};
@@ -41488,35 +41847,6 @@ function getPayloadConfigFromPayload(config, payload, key) {
41488
41847
  }
41489
41848
  return configLabelKey in config ? config[configLabelKey] : config[key];
41490
41849
  }
41491
- const alertVariants = cva(
41492
- "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
41493
- {
41494
- variants: {
41495
- variant: {
41496
- default: "bg-card text-card-foreground",
41497
- destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
41498
- }
41499
- },
41500
- defaultVariants: {
41501
- variant: "default"
41502
- }
41503
- }
41504
- );
41505
- function Alert({
41506
- className,
41507
- variant,
41508
- ...props
41509
- }) {
41510
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
41511
- "div",
41512
- {
41513
- "data-slot": "alert",
41514
- role: "alert",
41515
- className: cn$1(alertVariants({ variant }), className),
41516
- ...props
41517
- }
41518
- );
41519
- }
41520
41850
  function AlertTitle({ className, ...props }) {
41521
41851
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
41522
41852
  "div",
@@ -41546,6 +41876,35 @@ function AlertDescription({
41546
41876
  }
41547
41877
  );
41548
41878
  }
41879
+ const alertVariants = cva(
41880
+ "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
41881
+ {
41882
+ variants: {
41883
+ variant: {
41884
+ default: "bg-card text-card-foreground",
41885
+ destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",
41886
+ success: "text-green-600 bg-card border-green-200 [&>svg]:text-current *:data-[slot=alert-description]:text-green-600/90",
41887
+ warning: "text-yellow-600 bg-card border-yellow-200 [&>svg]:text-current *:data-[slot=alert-description]:text-yellow-600/90"
41888
+ }
41889
+ },
41890
+ defaultVariants: {
41891
+ variant: "default"
41892
+ }
41893
+ }
41894
+ );
41895
+ const Alert = React.forwardRef(({ className, variant, ...props }, ref) => {
41896
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
41897
+ "div",
41898
+ {
41899
+ ref,
41900
+ "data-slot": "alert",
41901
+ role: "alert",
41902
+ className: cn$1(alertVariants({ variant }), className),
41903
+ ...props
41904
+ }
41905
+ );
41906
+ });
41907
+ Alert.displayName = "Alert";
41549
41908
  var ROOT_NAME = "AlertDialog";
41550
41909
  var [createAlertDialogContext] = createContextScope(ROOT_NAME, [
41551
41910
  createDialogScope
@@ -41574,14 +41933,14 @@ var AlertDialogPortal$1 = (props) => {
41574
41933
  };
41575
41934
  AlertDialogPortal$1.displayName = PORTAL_NAME;
41576
41935
  var OVERLAY_NAME = "AlertDialogOverlay";
41577
- var AlertDialogOverlay$1 = React.forwardRef(
41936
+ var AlertDialogOverlay$2 = React.forwardRef(
41578
41937
  (props, forwardedRef) => {
41579
41938
  const { __scopeAlertDialog, ...overlayProps } = props;
41580
41939
  const dialogScope = useDialogScope(__scopeAlertDialog);
41581
41940
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Overlay$1, { ...dialogScope, ...overlayProps, ref: forwardedRef });
41582
41941
  }
41583
41942
  );
41584
- AlertDialogOverlay$1.displayName = OVERLAY_NAME;
41943
+ AlertDialogOverlay$2.displayName = OVERLAY_NAME;
41585
41944
  var CONTENT_NAME = "AlertDialogContent";
41586
41945
  var [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);
41587
41946
  var Slottable = /* @__PURE__ */ createSlottable("AlertDialogContent");
@@ -41639,16 +41998,16 @@ var AlertDialogDescription$1 = React.forwardRef((props, forwardedRef) => {
41639
41998
  });
41640
41999
  AlertDialogDescription$1.displayName = DESCRIPTION_NAME;
41641
42000
  var ACTION_NAME = "AlertDialogAction";
41642
- var AlertDialogAction$1 = React.forwardRef(
42001
+ var AlertDialogAction$2 = React.forwardRef(
41643
42002
  (props, forwardedRef) => {
41644
42003
  const { __scopeAlertDialog, ...actionProps } = props;
41645
42004
  const dialogScope = useDialogScope(__scopeAlertDialog);
41646
42005
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Close, { ...dialogScope, ...actionProps, ref: forwardedRef });
41647
42006
  }
41648
42007
  );
41649
- AlertDialogAction$1.displayName = ACTION_NAME;
42008
+ AlertDialogAction$2.displayName = ACTION_NAME;
41650
42009
  var CANCEL_NAME = "AlertDialogCancel";
41651
- var AlertDialogCancel$1 = React.forwardRef(
42010
+ var AlertDialogCancel$2 = React.forwardRef(
41652
42011
  (props, forwardedRef) => {
41653
42012
  const { __scopeAlertDialog, ...cancelProps } = props;
41654
42013
  const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);
@@ -41657,7 +42016,7 @@ var AlertDialogCancel$1 = React.forwardRef(
41657
42016
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Close, { ...dialogScope, ...cancelProps, ref });
41658
42017
  }
41659
42018
  );
41660
- AlertDialogCancel$1.displayName = CANCEL_NAME;
42019
+ AlertDialogCancel$2.displayName = CANCEL_NAME;
41661
42020
  var DescriptionWarning = ({ contentRef }) => {
41662
42021
  const MESSAGE = `\`${CONTENT_NAME}\` requires a description for the component to be accessible for screen reader users.
41663
42022
 
@@ -41677,10 +42036,10 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert-
41677
42036
  var Root2 = AlertDialog$1;
41678
42037
  var Trigger2 = AlertDialogTrigger$1;
41679
42038
  var Portal2 = AlertDialogPortal$1;
41680
- var Overlay2 = AlertDialogOverlay$1;
42039
+ var Overlay2 = AlertDialogOverlay$2;
41681
42040
  var Content2 = AlertDialogContent$1;
41682
- var Action = AlertDialogAction$1;
41683
- var Cancel = AlertDialogCancel$1;
42041
+ var Action = AlertDialogAction$2;
42042
+ var Cancel = AlertDialogCancel$2;
41684
42043
  var Title2 = AlertDialogTitle$1;
41685
42044
  var Description2 = AlertDialogDescription$1;
41686
42045
  function AlertDialog({
@@ -41698,7 +42057,7 @@ function AlertDialogPortal({
41698
42057
  }) {
41699
42058
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Portal2, { "data-slot": "alert-dialog-portal", ...props });
41700
42059
  }
41701
- function AlertDialogOverlay({
42060
+ function AlertDialogOverlay$1({
41702
42061
  className,
41703
42062
  ...props
41704
42063
  }) {
@@ -41714,25 +42073,6 @@ function AlertDialogOverlay({
41714
42073
  }
41715
42074
  );
41716
42075
  }
41717
- function AlertDialogContent({
41718
- className,
41719
- ...props
41720
- }) {
41721
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDialogPortal, { children: [
41722
- /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDialogOverlay, {}),
41723
- /* @__PURE__ */ jsxRuntimeExports.jsx(
41724
- Content2,
41725
- {
41726
- "data-slot": "alert-dialog-content",
41727
- className: cn$1(
41728
- "bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
41729
- className
41730
- ),
41731
- ...props
41732
- }
41733
- )
41734
- ] });
41735
- }
41736
42076
  function AlertDialogHeader({
41737
42077
  className,
41738
42078
  ...props
@@ -41775,43 +42115,98 @@ function AlertDialogTitle({
41775
42115
  }
41776
42116
  );
41777
42117
  }
41778
- function AlertDialogDescription({
42118
+ function AlertDialogAction$1({
41779
42119
  className,
41780
42120
  ...props
41781
42121
  }) {
41782
42122
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
41783
- Description2,
42123
+ Action,
41784
42124
  {
41785
- "data-slot": "alert-dialog-description",
41786
- className: cn$1("text-muted-foreground text-sm", className),
42125
+ className: cn$1(buttonVariants(), className),
41787
42126
  ...props
41788
42127
  }
41789
42128
  );
41790
42129
  }
41791
- function AlertDialogAction({
42130
+ function AlertDialogCancel$1({
41792
42131
  className,
41793
42132
  ...props
41794
42133
  }) {
41795
42134
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
41796
- Action,
42135
+ Cancel,
41797
42136
  {
41798
- className: cn$1(buttonVariants(), className),
42137
+ className: cn$1(buttonVariants({ variant: "outline" }), className),
41799
42138
  ...props
41800
42139
  }
41801
42140
  );
41802
42141
  }
41803
- function AlertDialogCancel({
42142
+ const AlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => {
42143
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
42144
+ Overlay2,
42145
+ {
42146
+ ref,
42147
+ "data-slot": "alert-dialog-overlay",
42148
+ className: cn$1(
42149
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50",
42150
+ className
42151
+ ),
42152
+ ...props
42153
+ }
42154
+ );
42155
+ });
42156
+ AlertDialogOverlay.displayName = AlertDialogOverlay$1.name || "AlertDialogOverlay";
42157
+ function AlertDialogContent({
41804
42158
  className,
41805
42159
  ...props
41806
42160
  }) {
42161
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(AlertDialogPortal, { children: [
42162
+ /* @__PURE__ */ jsxRuntimeExports.jsx(AlertDialogOverlay, {}),
42163
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
42164
+ Content2,
42165
+ {
42166
+ "data-slot": "alert-dialog-content",
42167
+ className: cn$1(
42168
+ "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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
42169
+ className
42170
+ ),
42171
+ ...props
42172
+ }
42173
+ )
42174
+ ] });
42175
+ }
42176
+ const AlertDialogAction = React.forwardRef(({ className, ...props }, ref) => {
42177
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
42178
+ Action,
42179
+ {
42180
+ ref,
42181
+ className: cn$1(buttonVariants(), className),
42182
+ ...props
42183
+ }
42184
+ );
42185
+ });
42186
+ AlertDialogAction.displayName = AlertDialogAction$1.name || "AlertDialogAction";
42187
+ const AlertDialogCancel = React.forwardRef(({ className, ...props }, ref) => {
41807
42188
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
41808
42189
  Cancel,
41809
42190
  {
42191
+ ref,
41810
42192
  className: cn$1(buttonVariants({ variant: "outline" }), className),
41811
42193
  ...props
41812
42194
  }
41813
42195
  );
41814
- }
42196
+ });
42197
+ AlertDialogCancel.displayName = AlertDialogCancel$1.name || "AlertDialogCancel";
42198
+ const AlertDialogDescription = React.forwardRef(({ className, ...props }, ref) => {
42199
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
42200
+ Description2,
42201
+ {
42202
+ ref,
42203
+ "data-slot": "alert-dialog-description",
42204
+ className: cn$1("text-sm", className),
42205
+ ...props
42206
+ }
42207
+ );
42208
+ });
42209
+ AlertDialogDescription.displayName = Description2.displayName;
41815
42210
  function Textarea({ className, ...props }) {
41816
42211
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
41817
42212
  "textarea",
@@ -43108,7 +43503,7 @@ function assignOffset(defaultOffset, mobileOffset) {
43108
43503
  });
43109
43504
  return styles;
43110
43505
  }
43111
- const Toaster$1 = /* @__PURE__ */ React__default.forwardRef(function Toaster(props, ref) {
43506
+ const Toaster$2 = /* @__PURE__ */ React__default.forwardRef(function Toaster(props, ref) {
43112
43507
  const { id, invert, position = "bottom-right", hotkey = [
43113
43508
  "altKey",
43114
43509
  "KeyT"
@@ -43361,6 +43756,30 @@ const Toaster$1 = /* @__PURE__ */ React__default.forwardRef(function Toaster(pro
43361
43756
  }))
43362
43757
  );
43363
43758
  });
43759
+ const Toaster$1 = ({ ...props }) => {
43760
+ const { theme = "system" } = z();
43761
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
43762
+ Toaster$2,
43763
+ {
43764
+ theme,
43765
+ className: "toaster group",
43766
+ icons: {
43767
+ success: /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheck, { className: "size-4" }),
43768
+ info: /* @__PURE__ */ jsxRuntimeExports.jsx(Info, { className: "size-4" }),
43769
+ warning: /* @__PURE__ */ jsxRuntimeExports.jsx(TriangleAlert, { className: "size-4" }),
43770
+ error: /* @__PURE__ */ jsxRuntimeExports.jsx(OctagonX, { className: "size-4" }),
43771
+ loading: /* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "size-4 animate-spin" })
43772
+ },
43773
+ style: {
43774
+ "--normal-bg": "var(--popover)",
43775
+ "--normal-text": "var(--popover-foreground)",
43776
+ "--normal-border": "var(--border)",
43777
+ "--border-radius": "var(--radius)"
43778
+ },
43779
+ ...props
43780
+ }
43781
+ );
43782
+ };
43364
43783
  const Toaster2 = ({ ...props }) => {
43365
43784
  const { theme = "system" } = z();
43366
43785
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -43368,10 +43787,12 @@ const Toaster2 = ({ ...props }) => {
43368
43787
  {
43369
43788
  theme,
43370
43789
  className: "toaster group",
43790
+ icons: void 0,
43371
43791
  style: {
43372
43792
  "--normal-bg": "var(--popover)",
43373
43793
  "--normal-text": "var(--popover-foreground)",
43374
43794
  "--normal-border": "var(--border)"
43795
+ // Note: --border-radius removed compared to base
43375
43796
  },
43376
43797
  ...props
43377
43798
  }
@@ -44904,7 +45325,7 @@ export {
44904
45325
  DropdownMenuSub,
44905
45326
  DropdownMenuSubContent,
44906
45327
  DropdownMenuSubTrigger,
44907
- DropdownMenuTriggerWithRef as DropdownMenuTrigger,
45328
+ DropdownMenuTrigger,
44908
45329
  Dropzone,
44909
45330
  DropzoneContent,
44910
45331
  DropzoneEmptyState,
@@ -44949,10 +45370,13 @@ export {
44949
45370
  Separator,
44950
45371
  Sheet,
44951
45372
  SheetClose,
45373
+ SheetCloseButton,
44952
45374
  SheetContent,
44953
45375
  SheetDescription,
44954
45376
  SheetFooter,
44955
45377
  SheetHeader,
45378
+ SheetHeaderActions,
45379
+ SheetHeaderRow,
44956
45380
  SheetTitle,
44957
45381
  SheetTrigger,
44958
45382
  SimplePagination,