@e-infra/design-system 0.0.6 → 0.0.8

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 (166) hide show
  1. package/README.md +54 -31
  2. package/dist/index.cjs.js +1601 -1861
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.es.js +1603 -1859
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/setup.css +247 -0
  7. package/dist/types/components/compounds/FeedbackForm.d.ts +41 -0
  8. package/dist/types/components/compounds/FeedbackForm.d.ts.map +1 -0
  9. package/dist/types/components/compounds/cookies_banner.d.ts +15 -0
  10. package/dist/types/components/compounds/cookies_banner.d.ts.map +1 -0
  11. package/dist/types/components/foundations/index.d.ts +2 -0
  12. package/dist/types/components/foundations/index.d.ts.map +1 -0
  13. package/dist/types/components/foundations/typography.d.ts +16 -0
  14. package/dist/types/components/foundations/typography.d.ts.map +1 -0
  15. package/dist/types/components/index.d.ts +43 -47
  16. package/dist/types/components/index.d.ts.map +1 -1
  17. package/dist/types/components/layout/content.d.ts +8 -0
  18. package/dist/types/components/layout/content.d.ts.map +1 -0
  19. package/dist/types/components/layout/footer.d.ts +14 -0
  20. package/dist/types/components/layout/footer.d.ts.map +1 -0
  21. package/dist/types/components/layout/header.d.ts +20 -0
  22. package/dist/types/components/layout/header.d.ts.map +1 -0
  23. package/dist/types/components/layout/index.d.ts +4 -0
  24. package/dist/types/components/layout/index.d.ts.map +1 -0
  25. package/dist/types/components/{ui → layout}/sidebar.d.ts +4 -4
  26. package/dist/types/components/layout/sidebar.d.ts.map +1 -0
  27. package/dist/types/components/primitives/accordion.d.ts.map +1 -0
  28. package/dist/types/components/primitives/alert-dialog.d.ts.map +1 -0
  29. package/dist/types/components/{ui → primitives}/alert.d.ts +1 -1
  30. package/dist/types/components/primitives/alert.d.ts.map +1 -0
  31. package/dist/types/components/primitives/aspect-ratio.d.ts.map +1 -0
  32. package/dist/types/components/primitives/avatar.d.ts.map +1 -0
  33. package/dist/types/components/{ui → primitives}/badge.d.ts +1 -1
  34. package/dist/types/components/primitives/badge.d.ts.map +1 -0
  35. package/dist/types/components/primitives/breadcrumb.d.ts.map +1 -0
  36. package/dist/types/components/{ui → primitives}/button.d.ts +1 -1
  37. package/dist/types/components/primitives/button.d.ts.map +1 -0
  38. package/dist/types/components/primitives/calendar.d.ts.map +1 -0
  39. package/dist/types/components/primitives/card.d.ts.map +1 -0
  40. package/dist/types/components/primitives/carousel.d.ts.map +1 -0
  41. package/dist/types/components/{ui → primitives}/chart.d.ts +29 -5
  42. package/dist/types/components/primitives/chart.d.ts.map +1 -0
  43. package/dist/types/components/primitives/checkbox.d.ts.map +1 -0
  44. package/dist/types/components/primitives/collapsible.d.ts.map +1 -0
  45. package/dist/types/components/primitives/command.d.ts.map +1 -0
  46. package/dist/types/components/{ui → primitives}/context-menu.d.ts +1 -1
  47. package/dist/types/components/primitives/context-menu.d.ts.map +1 -0
  48. package/dist/types/components/primitives/dialog.d.ts.map +1 -0
  49. package/dist/types/components/{ui → primitives}/dropdown-menu.d.ts +1 -1
  50. package/dist/types/components/primitives/dropdown-menu.d.ts.map +1 -0
  51. package/dist/types/components/primitives/form.d.ts.map +1 -0
  52. package/dist/types/components/primitives/input.d.ts.map +1 -0
  53. package/dist/types/components/primitives/label.d.ts.map +1 -0
  54. package/dist/types/components/{ui → primitives}/menubar.d.ts +1 -1
  55. package/dist/types/components/primitives/menubar.d.ts.map +1 -0
  56. package/dist/types/components/primitives/navigation-menu.d.ts.map +1 -0
  57. package/dist/types/components/primitives/pagination.d.ts.map +1 -0
  58. package/dist/types/components/primitives/panel.d.ts +9 -0
  59. package/dist/types/components/primitives/panel.d.ts.map +1 -0
  60. package/dist/types/components/primitives/popover.d.ts.map +1 -0
  61. package/dist/types/components/primitives/progress.d.ts.map +1 -0
  62. package/dist/types/components/primitives/radio-group.d.ts.map +1 -0
  63. package/dist/types/components/primitives/resizable.d.ts.map +1 -0
  64. package/dist/types/components/primitives/scroll-area.d.ts.map +1 -0
  65. package/dist/types/components/primitives/select.d.ts.map +1 -0
  66. package/dist/types/components/primitives/separator.d.ts.map +1 -0
  67. package/dist/types/components/primitives/sheet.d.ts.map +1 -0
  68. package/dist/types/components/primitives/skeleton.d.ts.map +1 -0
  69. package/dist/types/components/primitives/slider.d.ts.map +1 -0
  70. package/dist/types/components/primitives/sonner.d.ts.map +1 -0
  71. package/dist/types/components/primitives/stepper.d.ts.map +1 -0
  72. package/dist/types/components/primitives/switch.d.ts.map +1 -0
  73. package/dist/types/components/primitives/table.d.ts.map +1 -0
  74. package/dist/types/components/primitives/tabs.d.ts.map +1 -0
  75. package/dist/types/components/primitives/textarea.d.ts.map +1 -0
  76. package/dist/types/components/primitives/toggle-group.d.ts.map +1 -0
  77. package/dist/types/components/primitives/toggle.d.ts.map +1 -0
  78. package/dist/types/components/primitives/tooltip.d.ts.map +1 -0
  79. package/package.json +23 -12
  80. package/dist/style.css +0 -1
  81. package/dist/types/components/ui/accordion.d.ts.map +0 -1
  82. package/dist/types/components/ui/alert-dialog.d.ts.map +0 -1
  83. package/dist/types/components/ui/alert.d.ts.map +0 -1
  84. package/dist/types/components/ui/aspect-ratio.d.ts.map +0 -1
  85. package/dist/types/components/ui/avatar.d.ts.map +0 -1
  86. package/dist/types/components/ui/badge.d.ts.map +0 -1
  87. package/dist/types/components/ui/breadcrumb.d.ts.map +0 -1
  88. package/dist/types/components/ui/button.d.ts.map +0 -1
  89. package/dist/types/components/ui/calendar.d.ts.map +0 -1
  90. package/dist/types/components/ui/card.d.ts.map +0 -1
  91. package/dist/types/components/ui/carousel.d.ts.map +0 -1
  92. package/dist/types/components/ui/chart.d.ts.map +0 -1
  93. package/dist/types/components/ui/checkbox.d.ts.map +0 -1
  94. package/dist/types/components/ui/collapsible.d.ts.map +0 -1
  95. package/dist/types/components/ui/command.d.ts.map +0 -1
  96. package/dist/types/components/ui/context-menu.d.ts.map +0 -1
  97. package/dist/types/components/ui/dialog.d.ts.map +0 -1
  98. package/dist/types/components/ui/drawer.d.ts +0 -14
  99. package/dist/types/components/ui/drawer.d.ts.map +0 -1
  100. package/dist/types/components/ui/dropdown-menu.d.ts.map +0 -1
  101. package/dist/types/components/ui/form.d.ts.map +0 -1
  102. package/dist/types/components/ui/hover-card.d.ts +0 -7
  103. package/dist/types/components/ui/hover-card.d.ts.map +0 -1
  104. package/dist/types/components/ui/input-otp.d.ts +0 -12
  105. package/dist/types/components/ui/input-otp.d.ts.map +0 -1
  106. package/dist/types/components/ui/input.d.ts.map +0 -1
  107. package/dist/types/components/ui/label.d.ts.map +0 -1
  108. package/dist/types/components/ui/menubar.d.ts.map +0 -1
  109. package/dist/types/components/ui/navigation-menu.d.ts.map +0 -1
  110. package/dist/types/components/ui/pagination.d.ts.map +0 -1
  111. package/dist/types/components/ui/popover.d.ts.map +0 -1
  112. package/dist/types/components/ui/progress.d.ts.map +0 -1
  113. package/dist/types/components/ui/radio-group.d.ts.map +0 -1
  114. package/dist/types/components/ui/resizable.d.ts.map +0 -1
  115. package/dist/types/components/ui/scroll-area.d.ts.map +0 -1
  116. package/dist/types/components/ui/select.d.ts.map +0 -1
  117. package/dist/types/components/ui/separator.d.ts.map +0 -1
  118. package/dist/types/components/ui/sheet.d.ts.map +0 -1
  119. package/dist/types/components/ui/sidebar.d.ts.map +0 -1
  120. package/dist/types/components/ui/skeleton.d.ts.map +0 -1
  121. package/dist/types/components/ui/slider.d.ts.map +0 -1
  122. package/dist/types/components/ui/sonner.d.ts.map +0 -1
  123. package/dist/types/components/ui/stepper.d.ts.map +0 -1
  124. package/dist/types/components/ui/switch.d.ts.map +0 -1
  125. package/dist/types/components/ui/table.d.ts.map +0 -1
  126. package/dist/types/components/ui/tabs.d.ts.map +0 -1
  127. package/dist/types/components/ui/textarea.d.ts.map +0 -1
  128. package/dist/types/components/ui/toggle-group.d.ts.map +0 -1
  129. package/dist/types/components/ui/toggle.d.ts.map +0 -1
  130. package/dist/types/components/ui/tooltip.d.ts.map +0 -1
  131. /package/dist/types/components/{ui → primitives}/accordion.d.ts +0 -0
  132. /package/dist/types/components/{ui → primitives}/alert-dialog.d.ts +0 -0
  133. /package/dist/types/components/{ui → primitives}/aspect-ratio.d.ts +0 -0
  134. /package/dist/types/components/{ui → primitives}/avatar.d.ts +0 -0
  135. /package/dist/types/components/{ui → primitives}/breadcrumb.d.ts +0 -0
  136. /package/dist/types/components/{ui → primitives}/calendar.d.ts +0 -0
  137. /package/dist/types/components/{ui → primitives}/card.d.ts +0 -0
  138. /package/dist/types/components/{ui → primitives}/carousel.d.ts +0 -0
  139. /package/dist/types/components/{ui → primitives}/checkbox.d.ts +0 -0
  140. /package/dist/types/components/{ui → primitives}/collapsible.d.ts +0 -0
  141. /package/dist/types/components/{ui → primitives}/command.d.ts +0 -0
  142. /package/dist/types/components/{ui → primitives}/dialog.d.ts +0 -0
  143. /package/dist/types/components/{ui → primitives}/form.d.ts +0 -0
  144. /package/dist/types/components/{ui → primitives}/input.d.ts +0 -0
  145. /package/dist/types/components/{ui → primitives}/label.d.ts +0 -0
  146. /package/dist/types/components/{ui → primitives}/navigation-menu.d.ts +0 -0
  147. /package/dist/types/components/{ui → primitives}/pagination.d.ts +0 -0
  148. /package/dist/types/components/{ui → primitives}/popover.d.ts +0 -0
  149. /package/dist/types/components/{ui → primitives}/progress.d.ts +0 -0
  150. /package/dist/types/components/{ui → primitives}/radio-group.d.ts +0 -0
  151. /package/dist/types/components/{ui → primitives}/resizable.d.ts +0 -0
  152. /package/dist/types/components/{ui → primitives}/scroll-area.d.ts +0 -0
  153. /package/dist/types/components/{ui → primitives}/select.d.ts +0 -0
  154. /package/dist/types/components/{ui → primitives}/separator.d.ts +0 -0
  155. /package/dist/types/components/{ui → primitives}/sheet.d.ts +0 -0
  156. /package/dist/types/components/{ui → primitives}/skeleton.d.ts +0 -0
  157. /package/dist/types/components/{ui → primitives}/slider.d.ts +0 -0
  158. /package/dist/types/components/{ui → primitives}/sonner.d.ts +0 -0
  159. /package/dist/types/components/{ui → primitives}/stepper.d.ts +0 -0
  160. /package/dist/types/components/{ui → primitives}/switch.d.ts +0 -0
  161. /package/dist/types/components/{ui → primitives}/table.d.ts +0 -0
  162. /package/dist/types/components/{ui → primitives}/tabs.d.ts +0 -0
  163. /package/dist/types/components/{ui → primitives}/textarea.d.ts +0 -0
  164. /package/dist/types/components/{ui → primitives}/toggle-group.d.ts +0 -0
  165. /package/dist/types/components/{ui → primitives}/toggle.d.ts +0 -0
  166. /package/dist/types/components/{ui → primitives}/tooltip.d.ts +0 -0
package/dist/index.cjs.js CHANGED
@@ -14,24 +14,16 @@ const AspectRatioPrimitive = require("@radix-ui/react-aspect-ratio");
14
14
  const AvatarPrimitive = require("@radix-ui/react-avatar");
15
15
  const reactDayPicker = require("react-day-picker");
16
16
  const useEmblaCarousel = require("embla-carousel-react");
17
- const RechartsPrimitive = require("recharts");
18
17
  const CheckboxPrimitive = require("@radix-ui/react-checkbox");
19
18
  const CollapsiblePrimitive = require("@radix-ui/react-collapsible");
20
- const cmdk = require("cmdk");
21
19
  const DialogPrimitive = require("@radix-ui/react-dialog");
22
- const ContextMenuPrimitive = require("@radix-ui/react-context-menu");
23
- const vaul = require("vaul");
24
20
  const DropdownMenuPrimitive = require("@radix-ui/react-dropdown-menu");
25
21
  const reactHookForm = require("react-hook-form");
26
22
  const LabelPrimitive = require("@radix-ui/react-label");
27
- const HoverCardPrimitive = require("@radix-ui/react-hover-card");
28
- const inputOtp = require("input-otp");
29
23
  const MenubarPrimitive = require("@radix-ui/react-menubar");
30
24
  const NavigationMenuPrimitive = require("@radix-ui/react-navigation-menu");
31
- const PopoverPrimitive = require("@radix-ui/react-popover");
32
25
  const ProgressPrimitive = require("@radix-ui/react-progress");
33
26
  const RadioGroupPrimitive = require("@radix-ui/react-radio-group");
34
- const reactResizablePanels = require("react-resizable-panels");
35
27
  const ScrollAreaPrimitive = require("@radix-ui/react-scroll-area");
36
28
  const SelectPrimitive = require("@radix-ui/react-select");
37
29
  const SeparatorPrimitive = require("@radix-ui/react-separator");
@@ -64,17 +56,13 @@ const AccordionPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(A
64
56
  const AlertDialogPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AlertDialogPrimitive);
65
57
  const AspectRatioPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AspectRatioPrimitive);
66
58
  const AvatarPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(AvatarPrimitive);
67
- const RechartsPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(RechartsPrimitive);
68
59
  const CheckboxPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(CheckboxPrimitive);
69
60
  const CollapsiblePrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(CollapsiblePrimitive);
70
61
  const DialogPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(DialogPrimitive);
71
- const ContextMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ContextMenuPrimitive);
72
62
  const DropdownMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(DropdownMenuPrimitive);
73
63
  const LabelPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(LabelPrimitive);
74
- const HoverCardPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(HoverCardPrimitive);
75
64
  const MenubarPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(MenubarPrimitive);
76
65
  const NavigationMenuPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(NavigationMenuPrimitive);
77
- const PopoverPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(PopoverPrimitive);
78
66
  const ProgressPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ProgressPrimitive);
79
67
  const RadioGroupPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(RadioGroupPrimitive);
80
68
  const ScrollAreaPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(ScrollAreaPrimitive);
@@ -148,8 +136,10 @@ const alertVariants = classVarianceAuthority.cva(
148
136
  {
149
137
  variants: {
150
138
  variant: {
151
- default: "bg-card text-card-foreground",
152
- destructive: "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"
139
+ default: "bg-tertiary/50 border-tertiary text-panel-foreground",
140
+ success: "bg-success/50 border-success text-success-foreground [&>svg]:text-success-foreground",
141
+ warning: "bg-warning/50 border-warning text-warning-foreground [&>svg]:text-warning-foreground",
142
+ error: "text-error-foreground bg-error/50 border-error [&>svg]:text-current *:data-[slot=alert-description]:text-error-foreground"
153
143
  }
154
144
  },
155
145
  defaultVariants: {
@@ -202,16 +192,21 @@ function AlertDescription({
202
192
  );
203
193
  }
204
194
  const buttonVariants = classVarianceAuthority.cva(
205
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-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",
195
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-500 cursor-pointer hover:scale-105 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error",
206
196
  {
207
197
  variants: {
208
198
  variant: {
209
199
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
210
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
211
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
212
200
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
213
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
214
- link: "text-primary underline-offset-4 hover:underline"
201
+ tertiary: "bg-tertiary text-tertiary-foreground hover:bg-tertiary/80",
202
+ info: "bg-info text-info-foreground hover:bg-info/90 focus-visible:ring-info/20 dark:focus-visible:ring-info/40",
203
+ success: "bg-success text-success-foreground hover:bg-success/90 focus-visible:ring-success/20 dark:focus-visible:ring-success/40",
204
+ warning: "bg-warning text-warning-foreground hover:bg-warning/90 focus-visible:ring-warning/20 dark:focus-visible:ring-warning/40",
205
+ error: "bg-error text-error-foreground hover:bg-error/90 focus-visible:ring-error/20 dark:focus-visible:ring-error/40 dark:bg-error/60",
206
+ outline: "border bg-background shadow-xs hover:bg-tertiary hover:text-tertiary-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
207
+ ghost: "hover:bg-tertiary hover:text-tertiary-foreground dark:hover:bg-tertiary/50",
208
+ link: "text-primary underline-offset-4 hover:underline",
209
+ "animated-underline": "relative text-tertiary-foreground bg-transparent hover:scale-100 after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-0 after:bg-tertiary-foreground after:transition-all after:duration-300 hover:after:w-full"
215
210
  },
216
211
  size: {
217
212
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
@@ -427,14 +422,14 @@ function AvatarFallback({
427
422
  );
428
423
  }
429
424
  const badgeVariants = classVarianceAuthority.cva(
430
- "inline-flex items-center justify-center rounded-full 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",
425
+ "inline-flex items-center justify-center rounded-full 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-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error transition-[color,box-shadow] overflow-hidden",
431
426
  {
432
427
  variants: {
433
428
  variant: {
434
429
  default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
435
430
  secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
436
- destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
437
- outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
431
+ error: "border-transparent bg-error text-white [a&]:hover:bg-error/90 focus-visible:ring-error/20 dark:focus-visible:ring-error/40 dark:bg-error/60",
432
+ outline: "text-foreground [a&]:hover:bg-tertiary [a&]:hover:text-tertiary-foreground"
438
433
  }
439
434
  },
440
435
  defaultVariants: {
@@ -637,13 +632,13 @@ function Calendar({
637
632
  defaultClassNames.day
638
633
  ),
639
634
  range_start: cn(
640
- "rounded-l-md bg-accent",
635
+ "rounded-l-md bg-tertiary",
641
636
  defaultClassNames.range_start
642
637
  ),
643
638
  range_middle: cn("rounded-none", defaultClassNames.range_middle),
644
- range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
639
+ range_end: cn("rounded-r-md bg-tertiary", defaultClassNames.range_end),
645
640
  today: cn(
646
- "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
641
+ "bg-tertiary text-tertiary-foreground rounded-md data-[selected=true]:rounded-none",
647
642
  defaultClassNames.today
648
643
  ),
649
644
  outside: cn(
@@ -717,7 +712,7 @@ function CalendarDayButton({
717
712
  "data-range-end": modifiers.range_end,
718
713
  "data-range-middle": modifiers.range_middle,
719
714
  className: cn(
720
- "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
715
+ "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-tertiary data-[range-middle=true]:text-tertiary-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-tertiary-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
721
716
  defaultClassNames.day,
722
717
  className
723
718
  ),
@@ -731,7 +726,7 @@ function Card({ className, ...props }) {
731
726
  {
732
727
  "data-slot": "card",
733
728
  className: cn(
734
- "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
729
+ "bg-card text-card-foreground flex flex-col gap-6 rounded border py-6 shadow-sm hover:bg-primary/12 transition-all duration-500 hover:scale-102",
735
730
  className
736
731
  ),
737
732
  ...props
@@ -989,236 +984,6 @@ function CarouselNext({
989
984
  }
990
985
  );
991
986
  }
992
- const THEMES = { light: "", dark: ".dark" };
993
- const ChartContext = React__namespace.createContext(null);
994
- function useChart() {
995
- const context = React__namespace.useContext(ChartContext);
996
- if (!context) {
997
- throw new Error("useChart must be used within a <ChartContainer />");
998
- }
999
- return context;
1000
- }
1001
- function ChartContainer({
1002
- id,
1003
- className,
1004
- children,
1005
- config,
1006
- ...props
1007
- }) {
1008
- const uniqueId = React__namespace.useId();
1009
- const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
1010
- return /* @__PURE__ */ jsxRuntime.jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxRuntime.jsxs(
1011
- "div",
1012
- {
1013
- "data-slot": "chart",
1014
- "data-chart": chartId,
1015
- className: cn(
1016
- "[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
1017
- className
1018
- ),
1019
- ...props,
1020
- children: [
1021
- /* @__PURE__ */ jsxRuntime.jsx(ChartStyle, { id: chartId, config }),
1022
- /* @__PURE__ */ jsxRuntime.jsx(RechartsPrimitive__namespace.ResponsiveContainer, { children })
1023
- ]
1024
- }
1025
- ) });
1026
- }
1027
- const ChartStyle = ({ id, config }) => {
1028
- const colorConfig = Object.entries(config).filter(
1029
- ([, config2]) => config2.theme || config2.color
1030
- );
1031
- if (!colorConfig.length) {
1032
- return null;
1033
- }
1034
- return /* @__PURE__ */ jsxRuntime.jsx(
1035
- "style",
1036
- {
1037
- dangerouslySetInnerHTML: {
1038
- __html: Object.entries(THEMES).map(
1039
- ([theme, prefix]) => `
1040
- ${prefix} [data-chart=${id}] {
1041
- ${colorConfig.map(([key, itemConfig]) => {
1042
- const color = itemConfig.theme?.[theme] || itemConfig.color;
1043
- return color ? ` --color-${key}: ${color};` : null;
1044
- }).join("\n")}
1045
- }
1046
- `
1047
- ).join("\n")
1048
- }
1049
- }
1050
- );
1051
- };
1052
- const ChartTooltip = RechartsPrimitive__namespace.Tooltip;
1053
- function ChartTooltipContent({
1054
- active,
1055
- payload,
1056
- className,
1057
- indicator = "dot",
1058
- hideLabel = false,
1059
- hideIndicator = false,
1060
- label,
1061
- labelFormatter,
1062
- labelClassName,
1063
- formatter,
1064
- color,
1065
- nameKey,
1066
- labelKey
1067
- }) {
1068
- const { config } = useChart();
1069
- const tooltipLabel = React__namespace.useMemo(() => {
1070
- if (hideLabel || !payload?.length) {
1071
- return null;
1072
- }
1073
- const [item] = payload;
1074
- const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
1075
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1076
- const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
1077
- if (labelFormatter) {
1078
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
1079
- }
1080
- if (!value) {
1081
- return null;
1082
- }
1083
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium", labelClassName), children: value });
1084
- }, [
1085
- label,
1086
- labelFormatter,
1087
- payload,
1088
- hideLabel,
1089
- labelClassName,
1090
- config,
1091
- labelKey
1092
- ]);
1093
- if (!active || !payload?.length) {
1094
- return null;
1095
- }
1096
- const nestLabel = payload.length === 1 && indicator !== "dot";
1097
- return /* @__PURE__ */ jsxRuntime.jsxs(
1098
- "div",
1099
- {
1100
- className: cn(
1101
- "border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
1102
- className
1103
- ),
1104
- children: [
1105
- !nestLabel ? tooltipLabel : null,
1106
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-1.5", children: payload.filter((item) => item.type !== "none").map((item, index) => {
1107
- const key = `${nameKey || item.name || item.dataKey || "value"}`;
1108
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1109
- const indicatorColor = color || item.payload.fill || item.color;
1110
- return /* @__PURE__ */ jsxRuntime.jsx(
1111
- "div",
1112
- {
1113
- className: cn(
1114
- "[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
1115
- indicator === "dot" && "items-center"
1116
- ),
1117
- children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1118
- itemConfig?.icon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsxRuntime.jsx(
1119
- "div",
1120
- {
1121
- className: cn(
1122
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
1123
- {
1124
- "h-2.5 w-2.5": indicator === "dot",
1125
- "w-1": indicator === "line",
1126
- "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
1127
- "my-0.5": nestLabel && indicator === "dashed"
1128
- }
1129
- ),
1130
- style: {
1131
- "--color-bg": indicatorColor,
1132
- "--color-border": indicatorColor
1133
- }
1134
- }
1135
- ),
1136
- /* @__PURE__ */ jsxRuntime.jsxs(
1137
- "div",
1138
- {
1139
- className: cn(
1140
- "flex flex-1 justify-between leading-none",
1141
- nestLabel ? "items-end" : "items-center"
1142
- ),
1143
- children: [
1144
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
1145
- nestLabel ? tooltipLabel : null,
1146
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
1147
- ] }),
1148
- item.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
1149
- ]
1150
- }
1151
- )
1152
- ] })
1153
- },
1154
- item.dataKey
1155
- );
1156
- }) })
1157
- ]
1158
- }
1159
- );
1160
- }
1161
- const ChartLegend = RechartsPrimitive__namespace.Legend;
1162
- function ChartLegendContent({
1163
- className,
1164
- hideIcon = false,
1165
- payload,
1166
- verticalAlign = "bottom",
1167
- nameKey
1168
- }) {
1169
- const { config } = useChart();
1170
- if (!payload?.length) {
1171
- return null;
1172
- }
1173
- return /* @__PURE__ */ jsxRuntime.jsx(
1174
- "div",
1175
- {
1176
- className: cn(
1177
- "flex items-center justify-center gap-4",
1178
- verticalAlign === "top" ? "pb-3" : "pt-3",
1179
- className
1180
- ),
1181
- children: payload.filter((item) => item.type !== "none").map((item) => {
1182
- const key = `${nameKey || item.dataKey || "value"}`;
1183
- const itemConfig = getPayloadConfigFromPayload(config, item, key);
1184
- return /* @__PURE__ */ jsxRuntime.jsxs(
1185
- "div",
1186
- {
1187
- className: cn(
1188
- "[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
1189
- ),
1190
- children: [
1191
- itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsxRuntime.jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsxRuntime.jsx(
1192
- "div",
1193
- {
1194
- className: "h-2 w-2 shrink-0 rounded-[2px]",
1195
- style: {
1196
- backgroundColor: item.color
1197
- }
1198
- }
1199
- ),
1200
- itemConfig?.label
1201
- ]
1202
- },
1203
- item.value
1204
- );
1205
- })
1206
- }
1207
- );
1208
- }
1209
- function getPayloadConfigFromPayload(config, payload, key) {
1210
- if (typeof payload !== "object" || payload === null) {
1211
- return void 0;
1212
- }
1213
- const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
1214
- let configLabelKey = key;
1215
- if (key in payload && typeof payload[key] === "string") {
1216
- configLabelKey = payload[key];
1217
- } else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
1218
- configLabelKey = payloadPayload[key];
1219
- }
1220
- return configLabelKey in config ? config[configLabelKey] : config[key];
1221
- }
1222
987
  function Checkbox({
1223
988
  className,
1224
989
  ...props
@@ -1228,7 +993,7 @@ function Checkbox({
1228
993
  {
1229
994
  "data-slot": "checkbox",
1230
995
  className: cn(
1231
- "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
996
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
1232
997
  className
1233
998
  ),
1234
999
  ...props,
@@ -1329,7 +1094,7 @@ function DialogContent({
1329
1094
  DialogPrimitive__namespace.Close,
1330
1095
  {
1331
1096
  "data-slot": "dialog-close",
1332
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1097
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-tertiary data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1333
1098
  children: [
1334
1099
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
1335
1100
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
@@ -1390,603 +1155,495 @@ function DialogDescription({
1390
1155
  }
1391
1156
  );
1392
1157
  }
1393
- function Command({
1394
- className,
1395
- ...props
1396
- }) {
1397
- return /* @__PURE__ */ jsxRuntime.jsx(
1398
- cmdk.Command,
1399
- {
1400
- "data-slot": "command",
1401
- className: cn(
1402
- "bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
1403
- className
1404
- ),
1405
- ...props
1406
- }
1407
- );
1408
- }
1409
- function CommandDialog({
1410
- title = "Command Palette",
1411
- description = "Search for a command to run...",
1412
- children,
1413
- className,
1414
- showCloseButton = true,
1415
- ...props
1416
- }) {
1417
- return /* @__PURE__ */ jsxRuntime.jsxs(Dialog, { ...props, children: [
1418
- /* @__PURE__ */ jsxRuntime.jsxs(DialogHeader, { className: "sr-only", children: [
1419
- /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: title }),
1420
- /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { children: description })
1421
- ] }),
1422
- /* @__PURE__ */ jsxRuntime.jsx(
1423
- DialogContent,
1424
- {
1425
- className: cn("overflow-hidden p-0", className),
1426
- showCloseButton,
1427
- children: /* @__PURE__ */ jsxRuntime.jsx(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
1428
- }
1429
- )
1430
- ] });
1431
- }
1432
- function CommandInput({
1433
- className,
1158
+ function DropdownMenu({
1434
1159
  ...props
1435
1160
  }) {
1436
- return /* @__PURE__ */ jsxRuntime.jsxs(
1437
- "div",
1438
- {
1439
- "data-slot": "command-input-wrapper",
1440
- className: "flex h-9 items-center gap-2 border-b px-3",
1441
- children: [
1442
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: "size-4 shrink-0 opacity-50" }),
1443
- /* @__PURE__ */ jsxRuntime.jsx(
1444
- cmdk.Command.Input,
1445
- {
1446
- "data-slot": "command-input",
1447
- className: cn(
1448
- "placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
1449
- className
1450
- ),
1451
- ...props
1452
- }
1453
- )
1454
- ]
1455
- }
1456
- );
1161
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Root, { "data-slot": "dropdown-menu", ...props });
1457
1162
  }
1458
- function CommandList({
1459
- className,
1163
+ function DropdownMenuPortal({
1460
1164
  ...props
1461
1165
  }) {
1462
- return /* @__PURE__ */ jsxRuntime.jsx(
1463
- cmdk.Command.List,
1464
- {
1465
- "data-slot": "command-list",
1466
- className: cn(
1467
- "max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",
1468
- className
1469
- ),
1470
- ...props
1471
- }
1472
- );
1166
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1473
1167
  }
1474
- function CommandEmpty({
1168
+ function DropdownMenuTrigger({
1475
1169
  ...props
1476
1170
  }) {
1477
1171
  return /* @__PURE__ */ jsxRuntime.jsx(
1478
- cmdk.Command.Empty,
1172
+ DropdownMenuPrimitive__namespace.Trigger,
1479
1173
  {
1480
- "data-slot": "command-empty",
1481
- className: "py-6 text-center text-sm",
1174
+ "data-slot": "dropdown-menu-trigger",
1482
1175
  ...props
1483
1176
  }
1484
1177
  );
1485
1178
  }
1486
- function CommandGroup({
1179
+ function DropdownMenuContent({
1487
1180
  className,
1181
+ sideOffset = 4,
1488
1182
  ...props
1489
1183
  }) {
1490
- return /* @__PURE__ */ jsxRuntime.jsx(
1491
- cmdk.Command.Group,
1184
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1185
+ DropdownMenuPrimitive__namespace.Content,
1492
1186
  {
1493
- "data-slot": "command-group",
1187
+ "data-slot": "dropdown-menu-content",
1188
+ sideOffset,
1494
1189
  className: cn(
1495
- "text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
1190
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 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",
1496
1191
  className
1497
1192
  ),
1498
1193
  ...props
1499
1194
  }
1500
- );
1195
+ ) });
1501
1196
  }
1502
- function CommandSeparator({
1503
- className,
1197
+ function DropdownMenuGroup({
1504
1198
  ...props
1505
1199
  }) {
1506
- return /* @__PURE__ */ jsxRuntime.jsx(
1507
- cmdk.Command.Separator,
1508
- {
1509
- "data-slot": "command-separator",
1510
- className: cn("bg-border -mx-1 h-px", className),
1511
- ...props
1512
- }
1513
- );
1200
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
1514
1201
  }
1515
- function CommandItem({
1202
+ function DropdownMenuItem({
1516
1203
  className,
1204
+ inset,
1205
+ variant = "default",
1517
1206
  ...props
1518
1207
  }) {
1519
1208
  return /* @__PURE__ */ jsxRuntime.jsx(
1520
- cmdk.Command.Item,
1209
+ DropdownMenuPrimitive__namespace.Item,
1521
1210
  {
1522
- "data-slot": "command-item",
1211
+ "data-slot": "dropdown-menu-item",
1212
+ "data-inset": inset,
1213
+ "data-variant": variant,
1523
1214
  className: cn(
1524
- "data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1215
+ "focus:bg-tertiary focus:text-tertiary-foreground data-[variant=error]:text-error data-[variant=error]:focus:bg-error/10 dark:data-[variant=error]:focus:bg-error/20 data-[variant=error]:focus:text-error data-[variant=error]:*:[svg]:!text-error [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1525
1216
  className
1526
1217
  ),
1527
1218
  ...props
1528
1219
  }
1529
1220
  );
1530
1221
  }
1531
- function CommandShortcut({
1222
+ function DropdownMenuCheckboxItem({
1532
1223
  className,
1224
+ children,
1225
+ checked,
1533
1226
  ...props
1534
1227
  }) {
1535
- return /* @__PURE__ */ jsxRuntime.jsx(
1536
- "span",
1228
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1229
+ DropdownMenuPrimitive__namespace.CheckboxItem,
1537
1230
  {
1538
- "data-slot": "command-shortcut",
1231
+ "data-slot": "dropdown-menu-checkbox-item",
1539
1232
  className: cn(
1540
- "text-muted-foreground ml-auto text-xs tracking-widest",
1233
+ "focus:bg-tertiary focus:text-tertiary-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",
1541
1234
  className
1542
1235
  ),
1543
- ...props
1236
+ checked,
1237
+ ...props,
1238
+ children: [
1239
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
1240
+ children
1241
+ ]
1544
1242
  }
1545
1243
  );
1546
1244
  }
1547
- function ContextMenu({
1548
- ...props
1549
- }) {
1550
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Root, { "data-slot": "context-menu", ...props });
1551
- }
1552
- function ContextMenuTrigger({
1553
- ...props
1554
- }) {
1555
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Trigger, { "data-slot": "context-menu-trigger", ...props });
1556
- }
1557
- function ContextMenuGroup({
1558
- ...props
1559
- }) {
1560
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Group, { "data-slot": "context-menu-group", ...props });
1561
- }
1562
- function ContextMenuPortal({
1563
- ...props
1564
- }) {
1565
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { "data-slot": "context-menu-portal", ...props });
1566
- }
1567
- function ContextMenuSub({
1568
- ...props
1569
- }) {
1570
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Sub, { "data-slot": "context-menu-sub", ...props });
1571
- }
1572
- function ContextMenuRadioGroup({
1245
+ function DropdownMenuRadioGroup({
1573
1246
  ...props
1574
1247
  }) {
1575
1248
  return /* @__PURE__ */ jsxRuntime.jsx(
1576
- ContextMenuPrimitive__namespace.RadioGroup,
1249
+ DropdownMenuPrimitive__namespace.RadioGroup,
1577
1250
  {
1578
- "data-slot": "context-menu-radio-group",
1251
+ "data-slot": "dropdown-menu-radio-group",
1579
1252
  ...props
1580
1253
  }
1581
1254
  );
1582
1255
  }
1583
- function ContextMenuSubTrigger({
1256
+ function DropdownMenuRadioItem({
1584
1257
  className,
1585
- inset,
1586
1258
  children,
1587
1259
  ...props
1588
1260
  }) {
1589
1261
  return /* @__PURE__ */ jsxRuntime.jsxs(
1590
- ContextMenuPrimitive__namespace.SubTrigger,
1262
+ DropdownMenuPrimitive__namespace.RadioItem,
1591
1263
  {
1592
- "data-slot": "context-menu-sub-trigger",
1593
- "data-inset": inset,
1264
+ "data-slot": "dropdown-menu-radio-item",
1594
1265
  className: cn(
1595
- "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 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",
1266
+ "focus:bg-tertiary focus:text-tertiary-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",
1596
1267
  className
1597
1268
  ),
1598
1269
  ...props,
1599
1270
  children: [
1600
- children,
1601
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto" })
1271
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
1272
+ children
1602
1273
  ]
1603
1274
  }
1604
1275
  );
1605
1276
  }
1606
- function ContextMenuSubContent({
1277
+ function DropdownMenuLabel({
1607
1278
  className,
1279
+ inset,
1608
1280
  ...props
1609
1281
  }) {
1610
1282
  return /* @__PURE__ */ jsxRuntime.jsx(
1611
- ContextMenuPrimitive__namespace.SubContent,
1283
+ DropdownMenuPrimitive__namespace.Label,
1612
1284
  {
1613
- "data-slot": "context-menu-sub-content",
1285
+ "data-slot": "dropdown-menu-label",
1286
+ "data-inset": inset,
1614
1287
  className: cn(
1615
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1288
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
1616
1289
  className
1617
1290
  ),
1618
1291
  ...props
1619
1292
  }
1620
1293
  );
1621
1294
  }
1622
- function ContextMenuContent({
1295
+ function DropdownMenuSeparator({
1623
1296
  className,
1624
1297
  ...props
1625
1298
  }) {
1626
- return /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1627
- ContextMenuPrimitive__namespace.Content,
1299
+ return /* @__PURE__ */ jsxRuntime.jsx(
1300
+ DropdownMenuPrimitive__namespace.Separator,
1628
1301
  {
1629
- "data-slot": "context-menu-content",
1630
- className: cn(
1631
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
1632
- className
1633
- ),
1302
+ "data-slot": "dropdown-menu-separator",
1303
+ className: cn("bg-border -mx-1 my-1 h-px", className),
1634
1304
  ...props
1635
1305
  }
1636
- ) });
1306
+ );
1637
1307
  }
1638
- function ContextMenuItem({
1308
+ function DropdownMenuShortcut({
1639
1309
  className,
1640
- inset,
1641
- variant = "default",
1642
1310
  ...props
1643
1311
  }) {
1644
1312
  return /* @__PURE__ */ jsxRuntime.jsx(
1645
- ContextMenuPrimitive__namespace.Item,
1313
+ "span",
1646
1314
  {
1647
- "data-slot": "context-menu-item",
1648
- "data-inset": inset,
1649
- "data-variant": variant,
1315
+ "data-slot": "dropdown-menu-shortcut",
1650
1316
  className: cn(
1651
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1317
+ "text-muted-foreground ml-auto text-xs tracking-widest",
1652
1318
  className
1653
1319
  ),
1654
1320
  ...props
1655
1321
  }
1656
1322
  );
1657
1323
  }
1658
- function ContextMenuCheckboxItem({
1659
- className,
1660
- children,
1661
- checked,
1324
+ function DropdownMenuSub({
1662
1325
  ...props
1663
1326
  }) {
1664
- return /* @__PURE__ */ jsxRuntime.jsxs(
1665
- ContextMenuPrimitive__namespace.CheckboxItem,
1666
- {
1667
- "data-slot": "context-menu-checkbox-item",
1668
- className: cn(
1669
- "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",
1670
- className
1671
- ),
1672
- checked,
1673
- ...props,
1674
- children: [
1675
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
1676
- children
1677
- ]
1678
- }
1679
- );
1327
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1680
1328
  }
1681
- function ContextMenuRadioItem({
1329
+ function DropdownMenuSubTrigger({
1682
1330
  className,
1331
+ inset,
1683
1332
  children,
1684
1333
  ...props
1685
1334
  }) {
1686
1335
  return /* @__PURE__ */ jsxRuntime.jsxs(
1687
- ContextMenuPrimitive__namespace.RadioItem,
1336
+ DropdownMenuPrimitive__namespace.SubTrigger,
1688
1337
  {
1689
- "data-slot": "context-menu-radio-item",
1338
+ "data-slot": "dropdown-menu-sub-trigger",
1339
+ "data-inset": inset,
1690
1340
  className: cn(
1691
- "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",
1341
+ "focus:bg-tertiary focus:text-tertiary-foreground data-[state=open]:bg-tertiary data-[state=open]:text-tertiary-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",
1692
1342
  className
1693
1343
  ),
1694
1344
  ...props,
1695
1345
  children: [
1696
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(ContextMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
1697
- children
1346
+ children,
1347
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto size-4" })
1698
1348
  ]
1699
1349
  }
1700
1350
  );
1701
1351
  }
1702
- function ContextMenuLabel({
1352
+ function DropdownMenuSubContent({
1703
1353
  className,
1704
- inset,
1705
1354
  ...props
1706
1355
  }) {
1707
1356
  return /* @__PURE__ */ jsxRuntime.jsx(
1708
- ContextMenuPrimitive__namespace.Label,
1357
+ DropdownMenuPrimitive__namespace.SubContent,
1709
1358
  {
1710
- "data-slot": "context-menu-label",
1711
- "data-inset": inset,
1359
+ "data-slot": "dropdown-menu-sub-content",
1712
1360
  className: cn(
1713
- "text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
1361
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1714
1362
  className
1715
1363
  ),
1716
1364
  ...props
1717
1365
  }
1718
1366
  );
1719
1367
  }
1720
- function ContextMenuSeparator({
1368
+ function Label({
1721
1369
  className,
1722
1370
  ...props
1723
1371
  }) {
1724
1372
  return /* @__PURE__ */ jsxRuntime.jsx(
1725
- ContextMenuPrimitive__namespace.Separator,
1726
- {
1727
- "data-slot": "context-menu-separator",
1728
- className: cn("bg-border -mx-1 my-1 h-px", className),
1729
- ...props
1730
- }
1731
- );
1732
- }
1733
- function ContextMenuShortcut({
1734
- className,
1735
- ...props
1736
- }) {
1737
- return /* @__PURE__ */ jsxRuntime.jsx(
1738
- "span",
1373
+ LabelPrimitive__namespace.Root,
1739
1374
  {
1740
- "data-slot": "context-menu-shortcut",
1375
+ "data-slot": "label",
1741
1376
  className: cn(
1742
- "text-muted-foreground ml-auto text-xs tracking-widest",
1377
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1743
1378
  className
1744
1379
  ),
1745
1380
  ...props
1746
1381
  }
1747
1382
  );
1748
1383
  }
1749
- function Drawer({
1750
- ...props
1751
- }) {
1752
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Root, { "data-slot": "drawer", ...props });
1753
- }
1754
- function DrawerTrigger({
1755
- ...props
1756
- }) {
1757
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Trigger, { "data-slot": "drawer-trigger", ...props });
1758
- }
1759
- function DrawerPortal({
1760
- ...props
1761
- }) {
1762
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Portal, { "data-slot": "drawer-portal", ...props });
1763
- }
1764
- function DrawerClose({
1384
+ const Form = reactHookForm.FormProvider;
1385
+ const FormFieldContext = React__namespace.createContext(
1386
+ {}
1387
+ );
1388
+ const FormField = ({
1765
1389
  ...props
1766
- }) {
1767
- return /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Close, { "data-slot": "drawer-close", ...props });
1390
+ }) => {
1391
+ return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, { ...props }) });
1392
+ };
1393
+ const useFormField = () => {
1394
+ const fieldContext = React__namespace.useContext(FormFieldContext);
1395
+ const itemContext = React__namespace.useContext(FormItemContext);
1396
+ const { getFieldState } = reactHookForm.useFormContext();
1397
+ const formState = reactHookForm.useFormState({ name: fieldContext.name });
1398
+ const fieldState = getFieldState(fieldContext.name, formState);
1399
+ if (!fieldContext) {
1400
+ throw new Error("useFormField should be used within <FormField>");
1401
+ }
1402
+ const { id } = itemContext;
1403
+ return {
1404
+ id,
1405
+ name: fieldContext.name,
1406
+ formItemId: `${id}-form-item`,
1407
+ formDescriptionId: `${id}-form-item-description`,
1408
+ formMessageId: `${id}-form-item-message`,
1409
+ ...fieldState
1410
+ };
1411
+ };
1412
+ const FormItemContext = React__namespace.createContext(
1413
+ {}
1414
+ );
1415
+ function FormItem({ className, ...props }) {
1416
+ const id = React__namespace.useId();
1417
+ return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
1418
+ "div",
1419
+ {
1420
+ "data-slot": "form-item",
1421
+ className: cn("grid gap-2", className),
1422
+ ...props
1423
+ }
1424
+ ) });
1768
1425
  }
1769
- function DrawerOverlay({
1426
+ function FormLabel({
1770
1427
  className,
1771
1428
  ...props
1772
1429
  }) {
1430
+ const { error, formItemId } = useFormField();
1773
1431
  return /* @__PURE__ */ jsxRuntime.jsx(
1774
- vaul.Drawer.Overlay,
1432
+ Label,
1775
1433
  {
1776
- "data-slot": "drawer-overlay",
1777
- className: cn(
1778
- "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",
1779
- className
1780
- ),
1434
+ "data-slot": "form-label",
1435
+ "data-error": !!error,
1436
+ className: cn("data-[error=true]:text-error", className),
1437
+ htmlFor: formItemId,
1781
1438
  ...props
1782
1439
  }
1783
1440
  );
1784
1441
  }
1785
- function DrawerContent({
1786
- className,
1787
- children,
1788
- ...props
1789
- }) {
1790
- return /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { "data-slot": "drawer-portal", children: [
1791
- /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
1792
- /* @__PURE__ */ jsxRuntime.jsxs(
1793
- vaul.Drawer.Content,
1794
- {
1795
- "data-slot": "drawer-content",
1796
- className: cn(
1797
- "group/drawer-content bg-background fixed z-50 flex h-auto flex-col",
1798
- "data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b",
1799
- "data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t",
1800
- "data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm",
1801
- "data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm",
1802
- className
1803
- ),
1804
- ...props,
1805
- children: [
1806
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }),
1807
- children
1808
- ]
1809
- }
1810
- )
1811
- ] });
1812
- }
1813
- function DrawerHeader({ className, ...props }) {
1442
+ function FormControl({ ...props }) {
1443
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
1814
1444
  return /* @__PURE__ */ jsxRuntime.jsx(
1815
- "div",
1445
+ reactSlot.Slot,
1816
1446
  {
1817
- "data-slot": "drawer-header",
1818
- className: cn(
1819
- "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",
1820
- className
1821
- ),
1447
+ "data-slot": "form-control",
1448
+ id: formItemId,
1449
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
1450
+ "aria-invalid": !!error,
1822
1451
  ...props
1823
1452
  }
1824
1453
  );
1825
1454
  }
1826
- function DrawerFooter({ className, ...props }) {
1455
+ function FormDescription({ className, ...props }) {
1456
+ const { formDescriptionId } = useFormField();
1827
1457
  return /* @__PURE__ */ jsxRuntime.jsx(
1828
- "div",
1458
+ "p",
1829
1459
  {
1830
- "data-slot": "drawer-footer",
1831
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
1460
+ "data-slot": "form-description",
1461
+ id: formDescriptionId,
1462
+ className: cn("text-muted-foreground text-sm", className),
1832
1463
  ...props
1833
1464
  }
1834
1465
  );
1835
1466
  }
1836
- function DrawerTitle({
1837
- className,
1838
- ...props
1839
- }) {
1467
+ function FormMessage({ className, ...props }) {
1468
+ const { error, formMessageId } = useFormField();
1469
+ const body = error ? String(error?.message ?? "") : props.children;
1470
+ if (!body) {
1471
+ return null;
1472
+ }
1840
1473
  return /* @__PURE__ */ jsxRuntime.jsx(
1841
- vaul.Drawer.Title,
1474
+ "p",
1842
1475
  {
1843
- "data-slot": "drawer-title",
1844
- className: cn("text-foreground font-semibold", className),
1476
+ "data-slot": "form-message",
1477
+ id: formMessageId,
1478
+ className: cn("text-error text-sm", className),
1479
+ ...props,
1480
+ children: body
1481
+ }
1482
+ );
1483
+ }
1484
+ function Input({ className, type, ...props }) {
1485
+ return /* @__PURE__ */ jsxRuntime.jsx(
1486
+ "input",
1487
+ {
1488
+ type,
1489
+ "data-slot": "input",
1490
+ className: cn(
1491
+ "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",
1492
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
1493
+ "aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error",
1494
+ className
1495
+ ),
1845
1496
  ...props
1846
1497
  }
1847
1498
  );
1848
1499
  }
1849
- function DrawerDescription({
1500
+ function Menubar({
1850
1501
  className,
1851
1502
  ...props
1852
1503
  }) {
1853
1504
  return /* @__PURE__ */ jsxRuntime.jsx(
1854
- vaul.Drawer.Description,
1505
+ MenubarPrimitive__namespace.Root,
1855
1506
  {
1856
- "data-slot": "drawer-description",
1857
- className: cn("text-muted-foreground text-sm", className),
1507
+ "data-slot": "menubar",
1508
+ className: cn(
1509
+ "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
1510
+ className
1511
+ ),
1858
1512
  ...props
1859
1513
  }
1860
1514
  );
1861
1515
  }
1862
- function DropdownMenu({
1516
+ function MenubarMenu({
1863
1517
  ...props
1864
1518
  }) {
1865
- return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Root, { "data-slot": "dropdown-menu", ...props });
1519
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Menu, { "data-slot": "menubar-menu", ...props });
1866
1520
  }
1867
- function DropdownMenuPortal({
1521
+ function MenubarGroup({
1868
1522
  ...props
1869
1523
  }) {
1870
- return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { "data-slot": "dropdown-menu-portal", ...props });
1524
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Group, { "data-slot": "menubar-group", ...props });
1871
1525
  }
1872
- function DropdownMenuTrigger({
1526
+ function MenubarPortal({
1527
+ ...props
1528
+ }) {
1529
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { "data-slot": "menubar-portal", ...props });
1530
+ }
1531
+ function MenubarRadioGroup({
1532
+ ...props
1533
+ }) {
1534
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
1535
+ }
1536
+ function MenubarTrigger({
1537
+ className,
1873
1538
  ...props
1874
1539
  }) {
1875
1540
  return /* @__PURE__ */ jsxRuntime.jsx(
1876
- DropdownMenuPrimitive__namespace.Trigger,
1541
+ MenubarPrimitive__namespace.Trigger,
1877
1542
  {
1878
- "data-slot": "dropdown-menu-trigger",
1543
+ "data-slot": "menubar-trigger",
1544
+ className: cn(
1545
+ "focus:bg-tertiary focus:text-tertiary-foreground data-[state=open]:bg-tertiary data-[state=open]:text-tertiary-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
1546
+ className
1547
+ ),
1879
1548
  ...props
1880
1549
  }
1881
1550
  );
1882
1551
  }
1883
- function DropdownMenuContent({
1552
+ function MenubarContent({
1884
1553
  className,
1885
- sideOffset = 4,
1554
+ align = "start",
1555
+ alignOffset = -4,
1556
+ sideOffset = 8,
1886
1557
  ...props
1887
1558
  }) {
1888
- return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1889
- DropdownMenuPrimitive__namespace.Content,
1559
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
1560
+ MenubarPrimitive__namespace.Content,
1890
1561
  {
1891
- "data-slot": "dropdown-menu-content",
1562
+ "data-slot": "menubar-content",
1563
+ align,
1564
+ alignOffset,
1892
1565
  sideOffset,
1893
1566
  className: cn(
1894
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 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",
1567
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",
1895
1568
  className
1896
1569
  ),
1897
1570
  ...props
1898
1571
  }
1899
1572
  ) });
1900
1573
  }
1901
- function DropdownMenuGroup({
1902
- ...props
1903
- }) {
1904
- return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Group, { "data-slot": "dropdown-menu-group", ...props });
1905
- }
1906
- function DropdownMenuItem({
1574
+ function MenubarItem({
1907
1575
  className,
1908
1576
  inset,
1909
1577
  variant = "default",
1910
1578
  ...props
1911
1579
  }) {
1912
1580
  return /* @__PURE__ */ jsxRuntime.jsx(
1913
- DropdownMenuPrimitive__namespace.Item,
1581
+ MenubarPrimitive__namespace.Item,
1914
1582
  {
1915
- "data-slot": "dropdown-menu-item",
1583
+ "data-slot": "menubar-item",
1916
1584
  "data-inset": inset,
1917
1585
  "data-variant": variant,
1918
1586
  className: cn(
1919
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1587
+ "focus:bg-tertiary focus:text-tertiary-foreground data-[variant=error]:text-error data-[variant=error]:focus:bg-error/10 dark:data-[variant=error]:focus:bg-error/20 data-[variant=error]:focus:text-error data-[variant=error]:*:[svg]:!text-error [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1920
1588
  className
1921
1589
  ),
1922
1590
  ...props
1923
1591
  }
1924
1592
  );
1925
1593
  }
1926
- function DropdownMenuCheckboxItem({
1594
+ function MenubarCheckboxItem({
1927
1595
  className,
1928
1596
  children,
1929
1597
  checked,
1930
1598
  ...props
1931
1599
  }) {
1932
1600
  return /* @__PURE__ */ jsxRuntime.jsxs(
1933
- DropdownMenuPrimitive__namespace.CheckboxItem,
1601
+ MenubarPrimitive__namespace.CheckboxItem,
1934
1602
  {
1935
- "data-slot": "dropdown-menu-checkbox-item",
1603
+ "data-slot": "menubar-checkbox-item",
1936
1604
  className: cn(
1937
- "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",
1605
+ "focus:bg-tertiary focus:text-tertiary-foreground relative flex cursor-default items-center gap-2 rounded-xs 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",
1938
1606
  className
1939
1607
  ),
1940
1608
  checked,
1941
1609
  ...props,
1942
1610
  children: [
1943
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
1611
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
1944
1612
  children
1945
1613
  ]
1946
1614
  }
1947
1615
  );
1948
1616
  }
1949
- function DropdownMenuRadioGroup({
1950
- ...props
1951
- }) {
1952
- return /* @__PURE__ */ jsxRuntime.jsx(
1953
- DropdownMenuPrimitive__namespace.RadioGroup,
1954
- {
1955
- "data-slot": "dropdown-menu-radio-group",
1956
- ...props
1957
- }
1958
- );
1959
- }
1960
- function DropdownMenuRadioItem({
1617
+ function MenubarRadioItem({
1961
1618
  className,
1962
1619
  children,
1963
1620
  ...props
1964
1621
  }) {
1965
1622
  return /* @__PURE__ */ jsxRuntime.jsxs(
1966
- DropdownMenuPrimitive__namespace.RadioItem,
1623
+ MenubarPrimitive__namespace.RadioItem,
1967
1624
  {
1968
- "data-slot": "dropdown-menu-radio-item",
1625
+ "data-slot": "menubar-radio-item",
1969
1626
  className: cn(
1970
- "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",
1627
+ "focus:bg-tertiary focus:text-tertiary-foreground relative flex cursor-default items-center gap-2 rounded-xs 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",
1971
1628
  className
1972
1629
  ),
1973
1630
  ...props,
1974
1631
  children: [
1975
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
1632
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
1976
1633
  children
1977
1634
  ]
1978
1635
  }
1979
1636
  );
1980
1637
  }
1981
- function DropdownMenuLabel({
1638
+ function MenubarLabel({
1982
1639
  className,
1983
1640
  inset,
1984
1641
  ...props
1985
1642
  }) {
1986
1643
  return /* @__PURE__ */ jsxRuntime.jsx(
1987
- DropdownMenuPrimitive__namespace.Label,
1644
+ MenubarPrimitive__namespace.Label,
1988
1645
  {
1989
- "data-slot": "dropdown-menu-label",
1646
+ "data-slot": "menubar-label",
1990
1647
  "data-inset": inset,
1991
1648
  className: cn(
1992
1649
  "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
@@ -1996,27 +1653,27 @@ function DropdownMenuLabel({
1996
1653
  }
1997
1654
  );
1998
1655
  }
1999
- function DropdownMenuSeparator({
1656
+ function MenubarSeparator({
2000
1657
  className,
2001
1658
  ...props
2002
1659
  }) {
2003
1660
  return /* @__PURE__ */ jsxRuntime.jsx(
2004
- DropdownMenuPrimitive__namespace.Separator,
1661
+ MenubarPrimitive__namespace.Separator,
2005
1662
  {
2006
- "data-slot": "dropdown-menu-separator",
1663
+ "data-slot": "menubar-separator",
2007
1664
  className: cn("bg-border -mx-1 my-1 h-px", className),
2008
1665
  ...props
2009
1666
  }
2010
1667
  );
2011
1668
  }
2012
- function DropdownMenuShortcut({
1669
+ function MenubarShortcut({
2013
1670
  className,
2014
1671
  ...props
2015
1672
  }) {
2016
1673
  return /* @__PURE__ */ jsxRuntime.jsx(
2017
1674
  "span",
2018
1675
  {
2019
- "data-slot": "dropdown-menu-shortcut",
1676
+ "data-slot": "menubar-shortcut",
2020
1677
  className: cn(
2021
1678
  "text-muted-foreground ml-auto text-xs tracking-widest",
2022
1679
  className
@@ -2025,1329 +1682,709 @@ function DropdownMenuShortcut({
2025
1682
  }
2026
1683
  );
2027
1684
  }
2028
- function DropdownMenuSub({
1685
+ function MenubarSub({
2029
1686
  ...props
2030
1687
  }) {
2031
- return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Sub, { "data-slot": "dropdown-menu-sub", ...props });
1688
+ return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
2032
1689
  }
2033
- function DropdownMenuSubTrigger({
1690
+ function MenubarSubTrigger({
2034
1691
  className,
2035
1692
  inset,
2036
1693
  children,
2037
1694
  ...props
2038
1695
  }) {
2039
1696
  return /* @__PURE__ */ jsxRuntime.jsxs(
2040
- DropdownMenuPrimitive__namespace.SubTrigger,
1697
+ MenubarPrimitive__namespace.SubTrigger,
2041
1698
  {
2042
- "data-slot": "dropdown-menu-sub-trigger",
1699
+ "data-slot": "menubar-sub-trigger",
2043
1700
  "data-inset": inset,
2044
1701
  className: cn(
2045
- "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",
1702
+ "focus:bg-tertiary focus:text-tertiary-foreground data-[state=open]:bg-tertiary data-[state=open]:text-tertiary-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8",
2046
1703
  className
2047
1704
  ),
2048
1705
  ...props,
2049
1706
  children: [
2050
1707
  children,
2051
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto size-4" })
1708
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
2052
1709
  ]
2053
1710
  }
2054
1711
  );
2055
1712
  }
2056
- function DropdownMenuSubContent({
1713
+ function MenubarSubContent({
2057
1714
  className,
2058
1715
  ...props
2059
1716
  }) {
2060
1717
  return /* @__PURE__ */ jsxRuntime.jsx(
2061
- DropdownMenuPrimitive__namespace.SubContent,
1718
+ MenubarPrimitive__namespace.SubContent,
2062
1719
  {
2063
- "data-slot": "dropdown-menu-sub-content",
1720
+ "data-slot": "menubar-sub-content",
2064
1721
  className: cn(
2065
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
1722
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
2066
1723
  className
2067
1724
  ),
2068
1725
  ...props
2069
1726
  }
2070
1727
  );
2071
1728
  }
2072
- function Label({
1729
+ function NavigationMenu({
2073
1730
  className,
1731
+ children,
1732
+ viewport = true,
2074
1733
  ...props
2075
1734
  }) {
2076
- return /* @__PURE__ */ jsxRuntime.jsx(
2077
- LabelPrimitive__namespace.Root,
1735
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1736
+ NavigationMenuPrimitive__namespace.Root,
2078
1737
  {
2079
- "data-slot": "label",
1738
+ "data-slot": "navigation-menu",
1739
+ "data-viewport": viewport,
2080
1740
  className: cn(
2081
- "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
1741
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
2082
1742
  className
2083
1743
  ),
2084
- ...props
1744
+ ...props,
1745
+ children: [
1746
+ children,
1747
+ viewport && /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
1748
+ ]
2085
1749
  }
2086
1750
  );
2087
1751
  }
2088
- const Form = reactHookForm.FormProvider;
2089
- const FormFieldContext = React__namespace.createContext(
2090
- {}
2091
- );
2092
- const FormField = ({
1752
+ function NavigationMenuList({
1753
+ className,
2093
1754
  ...props
2094
- }) => {
2095
- return /* @__PURE__ */ jsxRuntime.jsx(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsxRuntime.jsx(reactHookForm.Controller, { ...props }) });
2096
- };
2097
- const useFormField = () => {
2098
- const fieldContext = React__namespace.useContext(FormFieldContext);
2099
- const itemContext = React__namespace.useContext(FormItemContext);
2100
- const { getFieldState } = reactHookForm.useFormContext();
2101
- const formState = reactHookForm.useFormState({ name: fieldContext.name });
2102
- const fieldState = getFieldState(fieldContext.name, formState);
2103
- if (!fieldContext) {
2104
- throw new Error("useFormField should be used within <FormField>");
2105
- }
2106
- const { id } = itemContext;
2107
- return {
2108
- id,
2109
- name: fieldContext.name,
2110
- formItemId: `${id}-form-item`,
2111
- formDescriptionId: `${id}-form-item-description`,
2112
- formMessageId: `${id}-form-item-message`,
2113
- ...fieldState
2114
- };
2115
- };
2116
- const FormItemContext = React__namespace.createContext(
2117
- {}
2118
- );
2119
- function FormItem({ className, ...props }) {
2120
- const id = React__namespace.useId();
2121
- return /* @__PURE__ */ jsxRuntime.jsx(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsxRuntime.jsx(
2122
- "div",
1755
+ }) {
1756
+ return /* @__PURE__ */ jsxRuntime.jsx(
1757
+ NavigationMenuPrimitive__namespace.List,
2123
1758
  {
2124
- "data-slot": "form-item",
2125
- className: cn("grid gap-2", className),
1759
+ "data-slot": "navigation-menu-list",
1760
+ className: cn(
1761
+ "group flex flex-1 list-none items-center justify-center gap-1",
1762
+ className
1763
+ ),
2126
1764
  ...props
2127
1765
  }
2128
- ) });
1766
+ );
2129
1767
  }
2130
- function FormLabel({
1768
+ function NavigationMenuItem({
2131
1769
  className,
2132
1770
  ...props
2133
1771
  }) {
2134
- const { error, formItemId } = useFormField();
2135
1772
  return /* @__PURE__ */ jsxRuntime.jsx(
2136
- Label,
1773
+ NavigationMenuPrimitive__namespace.Item,
2137
1774
  {
2138
- "data-slot": "form-label",
2139
- "data-error": !!error,
2140
- className: cn("data-[error=true]:text-destructive", className),
2141
- htmlFor: formItemId,
1775
+ "data-slot": "navigation-menu-item",
1776
+ className: cn(
1777
+ "relative after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-0 after:bg-tertiary-foreground after:transition-all after:duration-300 hover:after:w-full hover:text-tertiary-foreground transition-colors",
1778
+ className
1779
+ ),
2142
1780
  ...props
2143
1781
  }
2144
1782
  );
2145
1783
  }
2146
- function FormControl({ ...props }) {
2147
- const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
2148
- return /* @__PURE__ */ jsxRuntime.jsx(
2149
- reactSlot.Slot,
1784
+ const navigationMenuTriggerStyle = classVarianceAuthority.cva(
1785
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium disabled:pointer-events-none disabled:opacity-50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1786
+ );
1787
+ function NavigationMenuTrigger({
1788
+ className,
1789
+ children,
1790
+ ...props
1791
+ }) {
1792
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1793
+ NavigationMenuPrimitive__namespace.Trigger,
2150
1794
  {
2151
- "data-slot": "form-control",
2152
- id: formItemId,
2153
- "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
2154
- "aria-invalid": !!error,
2155
- ...props
1795
+ "data-slot": "navigation-menu-trigger",
1796
+ className: cn(navigationMenuTriggerStyle(), "group", className),
1797
+ ...props,
1798
+ children: [
1799
+ children,
1800
+ " ",
1801
+ /* @__PURE__ */ jsxRuntime.jsx(
1802
+ lucideReact.ChevronDownIcon,
1803
+ {
1804
+ className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
1805
+ "aria-hidden": "true"
1806
+ }
1807
+ )
1808
+ ]
2156
1809
  }
2157
1810
  );
2158
1811
  }
2159
- function FormDescription({ className, ...props }) {
2160
- const { formDescriptionId } = useFormField();
1812
+ function NavigationMenuContent({
1813
+ className,
1814
+ ...props
1815
+ }) {
2161
1816
  return /* @__PURE__ */ jsxRuntime.jsx(
2162
- "p",
1817
+ NavigationMenuPrimitive__namespace.Content,
2163
1818
  {
2164
- "data-slot": "form-description",
2165
- id: formDescriptionId,
2166
- className: cn("text-muted-foreground text-sm", className),
1819
+ "data-slot": "navigation-menu-content",
1820
+ className: cn(
1821
+ "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
1822
+ "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
1823
+ className
1824
+ ),
2167
1825
  ...props
2168
1826
  }
2169
1827
  );
2170
1828
  }
2171
- function FormMessage({ className, ...props }) {
2172
- const { error, formMessageId } = useFormField();
2173
- const body = error ? String(error?.message ?? "") : props.children;
2174
- if (!body) {
2175
- return null;
2176
- }
1829
+ function NavigationMenuViewport({
1830
+ className,
1831
+ ...props
1832
+ }) {
2177
1833
  return /* @__PURE__ */ jsxRuntime.jsx(
2178
- "p",
1834
+ "div",
2179
1835
  {
2180
- "data-slot": "form-message",
2181
- id: formMessageId,
2182
- className: cn("text-destructive text-sm", className),
2183
- ...props,
2184
- children: body
1836
+ className: cn(
1837
+ "absolute top-full left-0 isolate z-50 flex justify-center"
1838
+ ),
1839
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1840
+ NavigationMenuPrimitive__namespace.Viewport,
1841
+ {
1842
+ "data-slot": "navigation-menu-viewport",
1843
+ className: cn(
1844
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
1845
+ className
1846
+ ),
1847
+ ...props
1848
+ }
1849
+ )
2185
1850
  }
2186
1851
  );
2187
1852
  }
2188
- function HoverCard({
2189
- ...props
2190
- }) {
2191
- return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Root, { "data-slot": "hover-card", ...props });
2192
- }
2193
- function HoverCardTrigger({
2194
- ...props
2195
- }) {
2196
- return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Trigger, { "data-slot": "hover-card-trigger", ...props });
2197
- }
2198
- function HoverCardContent({
1853
+ function NavigationMenuLink({
2199
1854
  className,
2200
- align = "center",
2201
- sideOffset = 4,
2202
1855
  ...props
2203
1856
  }) {
2204
- return /* @__PURE__ */ jsxRuntime.jsx(HoverCardPrimitive__namespace.Portal, { "data-slot": "hover-card-portal", children: /* @__PURE__ */ jsxRuntime.jsx(
2205
- HoverCardPrimitive__namespace.Content,
1857
+ return /* @__PURE__ */ jsxRuntime.jsx(
1858
+ NavigationMenuPrimitive__namespace.Link,
2206
1859
  {
2207
- "data-slot": "hover-card-content",
2208
- align,
2209
- sideOffset,
1860
+ "data-slot": "navigation-menu-link",
2210
1861
  className: cn(
2211
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
1862
+ "relative data-[active=true]:bg-tertiary/50 data-[active=true]:text-tertiary-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4 after:absolute after:bottom-0 after:left-0 after:h-[2px] after:w-0 after:bg-tertiary-foreground after:transition-all after:duration-300 hover:after:w-full",
2212
1863
  className
2213
1864
  ),
2214
1865
  ...props
2215
1866
  }
2216
- ) });
1867
+ );
2217
1868
  }
2218
- function Input({ className, type, ...props }) {
1869
+ function NavigationMenuIndicator({
1870
+ className,
1871
+ ...props
1872
+ }) {
2219
1873
  return /* @__PURE__ */ jsxRuntime.jsx(
2220
- "input",
1874
+ NavigationMenuPrimitive__namespace.Indicator,
2221
1875
  {
2222
- type,
2223
- "data-slot": "input",
1876
+ "data-slot": "navigation-menu-indicator",
2224
1877
  className: cn(
2225
- "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",
2226
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
2227
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
1878
+ "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
2228
1879
  className
2229
1880
  ),
2230
- ...props
1881
+ ...props,
1882
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
2231
1883
  }
2232
1884
  );
2233
1885
  }
2234
- function InputOTP({
1886
+ function Progress({
2235
1887
  className,
2236
- containerClassName,
1888
+ value,
2237
1889
  ...props
2238
1890
  }) {
2239
1891
  return /* @__PURE__ */ jsxRuntime.jsx(
2240
- inputOtp.OTPInput,
1892
+ ProgressPrimitive__namespace.Root,
2241
1893
  {
2242
- "data-slot": "input-otp",
2243
- containerClassName: cn(
2244
- "flex items-center gap-2 has-disabled:opacity-50",
2245
- containerClassName
1894
+ "data-slot": "progress",
1895
+ className: cn(
1896
+ "bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
1897
+ className
2246
1898
  ),
2247
- className: cn("disabled:cursor-not-allowed", className),
2248
- ...props
1899
+ ...props,
1900
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1901
+ ProgressPrimitive__namespace.Indicator,
1902
+ {
1903
+ "data-slot": "progress-indicator",
1904
+ className: "bg-primary h-full w-full flex-1 transition-all",
1905
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
1906
+ }
1907
+ )
2249
1908
  }
2250
1909
  );
2251
1910
  }
2252
- function InputOTPGroup({ className, ...props }) {
1911
+ function RadioGroup({
1912
+ className,
1913
+ ...props
1914
+ }) {
2253
1915
  return /* @__PURE__ */ jsxRuntime.jsx(
2254
- "div",
1916
+ RadioGroupPrimitive__namespace.Root,
2255
1917
  {
2256
- "data-slot": "input-otp-group",
2257
- className: cn("flex items-center", className),
1918
+ "data-slot": "radio-group",
1919
+ className: cn("grid gap-3", className),
2258
1920
  ...props
2259
1921
  }
2260
1922
  );
2261
1923
  }
2262
- function InputOTPSlot({
2263
- index,
1924
+ function RadioGroupItem({
2264
1925
  className,
2265
1926
  ...props
2266
1927
  }) {
2267
- const inputOTPContext = React__namespace.useContext(inputOtp.OTPInputContext);
2268
- const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};
2269
- return /* @__PURE__ */ jsxRuntime.jsxs(
2270
- "div",
1928
+ return /* @__PURE__ */ jsxRuntime.jsx(
1929
+ RadioGroupPrimitive__namespace.Item,
2271
1930
  {
2272
- "data-slot": "input-otp-slot",
2273
- "data-active": isActive,
1931
+ "data-slot": "radio-group-item",
2274
1932
  className: cn(
2275
- "data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]",
1933
+ "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
2276
1934
  className
2277
1935
  ),
2278
1936
  ...props,
2279
- children: [
2280
- char,
2281
- hasFakeCaret && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "animate-caret-blink bg-foreground h-4 w-px duration-1000" }) })
2282
- ]
1937
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1938
+ RadioGroupPrimitive__namespace.Indicator,
1939
+ {
1940
+ "data-slot": "radio-group-indicator",
1941
+ className: "relative flex items-center justify-center",
1942
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
1943
+ }
1944
+ )
2283
1945
  }
2284
1946
  );
2285
1947
  }
2286
- function InputOTPSeparator({ ...props }) {
2287
- return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "input-otp-separator", role: "separator", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MinusIcon, {}) });
2288
- }
2289
- function Menubar({
1948
+ function ScrollArea({
2290
1949
  className,
1950
+ children,
2291
1951
  ...props
2292
1952
  }) {
2293
- return /* @__PURE__ */ jsxRuntime.jsx(
2294
- MenubarPrimitive__namespace.Root,
1953
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1954
+ ScrollAreaPrimitive__namespace.Root,
2295
1955
  {
2296
- "data-slot": "menubar",
2297
- className: cn(
2298
- "bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs",
2299
- className
2300
- ),
2301
- ...props
1956
+ "data-slot": "scroll-area",
1957
+ className: cn("relative", className),
1958
+ ...props,
1959
+ children: [
1960
+ /* @__PURE__ */ jsxRuntime.jsx(
1961
+ ScrollAreaPrimitive__namespace.Viewport,
1962
+ {
1963
+ "data-slot": "scroll-area-viewport",
1964
+ className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
1965
+ children
1966
+ }
1967
+ ),
1968
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
1969
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
1970
+ ]
2302
1971
  }
2303
1972
  );
2304
1973
  }
2305
- function MenubarMenu({
1974
+ function ScrollBar({
1975
+ className,
1976
+ orientation = "vertical",
2306
1977
  ...props
2307
1978
  }) {
2308
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Menu, { "data-slot": "menubar-menu", ...props });
1979
+ return /* @__PURE__ */ jsxRuntime.jsx(
1980
+ ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
1981
+ {
1982
+ "data-slot": "scroll-area-scrollbar",
1983
+ orientation,
1984
+ className: cn(
1985
+ "flex touch-none p-px transition-colors select-none",
1986
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
1987
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
1988
+ className
1989
+ ),
1990
+ ...props,
1991
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1992
+ ScrollAreaPrimitive__namespace.ScrollAreaThumb,
1993
+ {
1994
+ "data-slot": "scroll-area-thumb",
1995
+ className: "bg-border relative flex-1 rounded-full"
1996
+ }
1997
+ )
1998
+ }
1999
+ );
2309
2000
  }
2310
- function MenubarGroup({
2001
+ function Select({
2311
2002
  ...props
2312
2003
  }) {
2313
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Group, { "data-slot": "menubar-group", ...props });
2004
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
2314
2005
  }
2315
- function MenubarPortal({
2006
+ function SelectGroup({
2316
2007
  ...props
2317
2008
  }) {
2318
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Portal, { "data-slot": "menubar-portal", ...props });
2009
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
2319
2010
  }
2320
- function MenubarRadioGroup({
2011
+ function SelectValue({
2321
2012
  ...props
2322
2013
  }) {
2323
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.RadioGroup, { "data-slot": "menubar-radio-group", ...props });
2014
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
2324
2015
  }
2325
- function MenubarTrigger({
2016
+ function SelectTrigger({
2326
2017
  className,
2018
+ size = "default",
2019
+ children,
2327
2020
  ...props
2328
2021
  }) {
2329
- return /* @__PURE__ */ jsxRuntime.jsx(
2330
- MenubarPrimitive__namespace.Trigger,
2022
+ return /* @__PURE__ */ jsxRuntime.jsxs(
2023
+ SelectPrimitive__namespace.Trigger,
2331
2024
  {
2332
- "data-slot": "menubar-trigger",
2025
+ "data-slot": "select-trigger",
2026
+ "data-size": size,
2333
2027
  className: cn(
2334
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none",
2028
+ "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error dark:bg-input/30 dark:hover:bg-input/50 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-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2335
2029
  className
2336
2030
  ),
2337
- ...props
2031
+ ...props,
2032
+ children: [
2033
+ children,
2034
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4 opacity-50" }) })
2035
+ ]
2338
2036
  }
2339
2037
  );
2340
2038
  }
2341
- function MenubarContent({
2039
+ function SelectContent({
2342
2040
  className,
2343
- align = "start",
2344
- alignOffset = -4,
2345
- sideOffset = 8,
2041
+ children,
2042
+ position = "item-aligned",
2043
+ align = "center",
2346
2044
  ...props
2347
2045
  }) {
2348
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2349
- MenubarPrimitive__namespace.Content,
2046
+ return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
2047
+ SelectPrimitive__namespace.Content,
2350
2048
  {
2351
- "data-slot": "menubar-content",
2352
- align,
2353
- alignOffset,
2354
- sideOffset,
2049
+ "data-slot": "select-content",
2355
2050
  className: cn(
2356
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md",
2051
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
2052
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
2357
2053
  className
2358
2054
  ),
2359
- ...props
2055
+ position,
2056
+ align,
2057
+ ...props,
2058
+ children: [
2059
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
2060
+ /* @__PURE__ */ jsxRuntime.jsx(
2061
+ SelectPrimitive__namespace.Viewport,
2062
+ {
2063
+ className: cn(
2064
+ "p-1",
2065
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
2066
+ ),
2067
+ children
2068
+ }
2069
+ ),
2070
+ /* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
2071
+ ]
2360
2072
  }
2361
2073
  ) });
2362
2074
  }
2363
- function MenubarItem({
2075
+ function SelectLabel({
2364
2076
  className,
2365
- inset,
2366
- variant = "default",
2367
2077
  ...props
2368
2078
  }) {
2369
2079
  return /* @__PURE__ */ jsxRuntime.jsx(
2370
- MenubarPrimitive__namespace.Item,
2080
+ SelectPrimitive__namespace.Label,
2371
2081
  {
2372
- "data-slot": "menubar-item",
2373
- "data-inset": inset,
2374
- "data-variant": variant,
2375
- className: cn(
2376
- "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2377
- className
2378
- ),
2082
+ "data-slot": "select-label",
2083
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
2379
2084
  ...props
2380
2085
  }
2381
2086
  );
2382
2087
  }
2383
- function MenubarCheckboxItem({
2088
+ function SelectItem({
2384
2089
  className,
2385
2090
  children,
2386
- checked,
2387
2091
  ...props
2388
2092
  }) {
2389
2093
  return /* @__PURE__ */ jsxRuntime.jsxs(
2390
- MenubarPrimitive__namespace.CheckboxItem,
2094
+ SelectPrimitive__namespace.Item,
2391
2095
  {
2392
- "data-slot": "menubar-checkbox-item",
2096
+ "data-slot": "select-item",
2393
2097
  className: cn(
2394
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs 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",
2098
+ "focus:bg-tertiary focus:text-tertiary-foreground [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
2395
2099
  className
2396
2100
  ),
2397
- checked,
2398
2101
  ...props,
2399
2102
  children: [
2400
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
2401
- children
2103
+ /* @__PURE__ */ jsxRuntime.jsx(
2104
+ "span",
2105
+ {
2106
+ "data-slot": "select-item-indicator",
2107
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
2108
+ children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) })
2109
+ }
2110
+ ),
2111
+ /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
2402
2112
  ]
2403
2113
  }
2404
2114
  );
2405
2115
  }
2406
- function MenubarRadioItem({
2116
+ function SelectSeparator({
2407
2117
  className,
2408
- children,
2409
2118
  ...props
2410
2119
  }) {
2411
- return /* @__PURE__ */ jsxRuntime.jsxs(
2412
- MenubarPrimitive__namespace.RadioItem,
2120
+ return /* @__PURE__ */ jsxRuntime.jsx(
2121
+ SelectPrimitive__namespace.Separator,
2413
2122
  {
2414
- "data-slot": "menubar-radio-item",
2415
- className: cn(
2416
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs 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",
2417
- className
2418
- ),
2419
- ...props,
2420
- children: [
2421
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "size-2 fill-current" }) }) }),
2422
- children
2423
- ]
2123
+ "data-slot": "select-separator",
2124
+ className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
2125
+ ...props
2424
2126
  }
2425
2127
  );
2426
2128
  }
2427
- function MenubarLabel({
2129
+ function SelectScrollUpButton({
2428
2130
  className,
2429
- inset,
2430
2131
  ...props
2431
2132
  }) {
2432
2133
  return /* @__PURE__ */ jsxRuntime.jsx(
2433
- MenubarPrimitive__namespace.Label,
2134
+ SelectPrimitive__namespace.ScrollUpButton,
2434
2135
  {
2435
- "data-slot": "menubar-label",
2436
- "data-inset": inset,
2136
+ "data-slot": "select-scroll-up-button",
2437
2137
  className: cn(
2438
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
2138
+ "flex cursor-default items-center justify-center py-1",
2439
2139
  className
2440
2140
  ),
2441
- ...props
2141
+ ...props,
2142
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { className: "size-4" })
2442
2143
  }
2443
2144
  );
2444
2145
  }
2445
- function MenubarSeparator({
2146
+ function SelectScrollDownButton({
2446
2147
  className,
2447
2148
  ...props
2448
2149
  }) {
2449
2150
  return /* @__PURE__ */ jsxRuntime.jsx(
2450
- MenubarPrimitive__namespace.Separator,
2151
+ SelectPrimitive__namespace.ScrollDownButton,
2451
2152
  {
2452
- "data-slot": "menubar-separator",
2453
- className: cn("bg-border -mx-1 my-1 h-px", className),
2454
- ...props
2153
+ "data-slot": "select-scroll-down-button",
2154
+ className: cn(
2155
+ "flex cursor-default items-center justify-center py-1",
2156
+ className
2157
+ ),
2158
+ ...props,
2159
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" })
2455
2160
  }
2456
2161
  );
2457
2162
  }
2458
- function MenubarShortcut({
2163
+ function Separator({
2459
2164
  className,
2165
+ orientation = "horizontal",
2166
+ decorative = true,
2460
2167
  ...props
2461
2168
  }) {
2462
2169
  return /* @__PURE__ */ jsxRuntime.jsx(
2463
- "span",
2170
+ SeparatorPrimitive__namespace.Root,
2464
2171
  {
2465
- "data-slot": "menubar-shortcut",
2172
+ "data-slot": "separator",
2173
+ decorative,
2174
+ orientation,
2466
2175
  className: cn(
2467
- "text-muted-foreground ml-auto text-xs tracking-widest",
2176
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
2468
2177
  className
2469
2178
  ),
2470
2179
  ...props
2471
2180
  }
2472
2181
  );
2473
2182
  }
2474
- function MenubarSub({
2183
+ function Sheet({ ...props }) {
2184
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "sheet", ...props });
2185
+ }
2186
+ function SheetTrigger({
2475
2187
  ...props
2476
2188
  }) {
2477
- return /* @__PURE__ */ jsxRuntime.jsx(MenubarPrimitive__namespace.Sub, { "data-slot": "menubar-sub", ...props });
2189
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { "data-slot": "sheet-trigger", ...props });
2478
2190
  }
2479
- function MenubarSubTrigger({
2480
- className,
2481
- inset,
2482
- children,
2191
+ function SheetClose({
2483
2192
  ...props
2484
2193
  }) {
2485
- return /* @__PURE__ */ jsxRuntime.jsxs(
2486
- MenubarPrimitive__namespace.SubTrigger,
2487
- {
2488
- "data-slot": "menubar-sub-trigger",
2489
- "data-inset": inset,
2490
- className: cn(
2491
- "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-none select-none data-[inset]:pl-8",
2492
- className
2493
- ),
2494
- ...props,
2495
- children: [
2496
- children,
2497
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, { className: "ml-auto h-4 w-4" })
2498
- ]
2499
- }
2500
- );
2194
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { "data-slot": "sheet-close", ...props });
2501
2195
  }
2502
- function MenubarSubContent({
2196
+ function SheetPortal({
2197
+ ...props
2198
+ }) {
2199
+ return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "sheet-portal", ...props });
2200
+ }
2201
+ function SheetOverlay({
2503
2202
  className,
2504
2203
  ...props
2505
2204
  }) {
2506
2205
  return /* @__PURE__ */ jsxRuntime.jsx(
2507
- MenubarPrimitive__namespace.SubContent,
2206
+ DialogPrimitive__namespace.Overlay,
2508
2207
  {
2509
- "data-slot": "menubar-sub-content",
2208
+ "data-slot": "sheet-overlay",
2510
2209
  className: cn(
2511
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
2210
+ "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",
2512
2211
  className
2513
2212
  ),
2514
2213
  ...props
2515
2214
  }
2516
2215
  );
2517
2216
  }
2518
- function NavigationMenu({
2217
+ function SheetContent({
2519
2218
  className,
2520
2219
  children,
2521
- viewport = true,
2220
+ side = "right",
2522
2221
  ...props
2523
2222
  }) {
2524
- return /* @__PURE__ */ jsxRuntime.jsxs(
2525
- NavigationMenuPrimitive__namespace.Root,
2526
- {
2527
- "data-slot": "navigation-menu",
2528
- "data-viewport": viewport,
2529
- className: cn(
2530
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
2531
- className
2532
- ),
2533
- ...props,
2534
- children: [
2535
- children,
2536
- viewport && /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuViewport, {})
2537
- ]
2538
- }
2539
- );
2223
+ return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
2224
+ /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
2225
+ /* @__PURE__ */ jsxRuntime.jsxs(
2226
+ DialogPrimitive__namespace.Content,
2227
+ {
2228
+ "data-slot": "sheet-content",
2229
+ className: cn(
2230
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
2231
+ side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
2232
+ side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
2233
+ side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
2234
+ side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
2235
+ className
2236
+ ),
2237
+ ...props,
2238
+ children: [
2239
+ children,
2240
+ /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
2241
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "size-4" }),
2242
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
2243
+ ] })
2244
+ ]
2245
+ }
2246
+ )
2247
+ ] });
2540
2248
  }
2541
- function NavigationMenuList({
2542
- className,
2543
- ...props
2544
- }) {
2249
+ function SheetHeader({ className, ...props }) {
2545
2250
  return /* @__PURE__ */ jsxRuntime.jsx(
2546
- NavigationMenuPrimitive__namespace.List,
2251
+ "div",
2547
2252
  {
2548
- "data-slot": "navigation-menu-list",
2549
- className: cn(
2550
- "group flex flex-1 list-none items-center justify-center gap-1",
2551
- className
2552
- ),
2253
+ "data-slot": "sheet-header",
2254
+ className: cn("flex flex-col gap-1.5 p-4", className),
2553
2255
  ...props
2554
2256
  }
2555
2257
  );
2556
2258
  }
2557
- function NavigationMenuItem({
2558
- className,
2559
- ...props
2560
- }) {
2259
+ function SheetFooter({ className, ...props }) {
2561
2260
  return /* @__PURE__ */ jsxRuntime.jsx(
2562
- NavigationMenuPrimitive__namespace.Item,
2261
+ "div",
2563
2262
  {
2564
- "data-slot": "navigation-menu-item",
2565
- className: cn("relative", className),
2263
+ "data-slot": "sheet-footer",
2264
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
2566
2265
  ...props
2567
2266
  }
2568
2267
  );
2569
2268
  }
2570
- const navigationMenuTriggerStyle = classVarianceAuthority.cva(
2571
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
2572
- );
2573
- function NavigationMenuTrigger({
2574
- className,
2575
- children,
2576
- ...props
2577
- }) {
2578
- return /* @__PURE__ */ jsxRuntime.jsxs(
2579
- NavigationMenuPrimitive__namespace.Trigger,
2580
- {
2581
- "data-slot": "navigation-menu-trigger",
2582
- className: cn(navigationMenuTriggerStyle(), "group", className),
2583
- ...props,
2584
- children: [
2585
- children,
2586
- " ",
2587
- /* @__PURE__ */ jsxRuntime.jsx(
2588
- lucideReact.ChevronDownIcon,
2589
- {
2590
- className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
2591
- "aria-hidden": "true"
2592
- }
2593
- )
2594
- ]
2595
- }
2596
- );
2597
- }
2598
- function NavigationMenuContent({
2269
+ function SheetTitle({
2599
2270
  className,
2600
2271
  ...props
2601
2272
  }) {
2602
2273
  return /* @__PURE__ */ jsxRuntime.jsx(
2603
- NavigationMenuPrimitive__namespace.Content,
2274
+ DialogPrimitive__namespace.Title,
2604
2275
  {
2605
- "data-slot": "navigation-menu-content",
2606
- className: cn(
2607
- "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
2608
- "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
2609
- className
2610
- ),
2276
+ "data-slot": "sheet-title",
2277
+ className: cn("text-foreground font-semibold", className),
2611
2278
  ...props
2612
2279
  }
2613
2280
  );
2614
2281
  }
2615
- function NavigationMenuViewport({
2616
- className,
2617
- ...props
2618
- }) {
2619
- return /* @__PURE__ */ jsxRuntime.jsx(
2620
- "div",
2621
- {
2622
- className: cn(
2623
- "absolute top-full left-0 isolate z-50 flex justify-center"
2624
- ),
2625
- children: /* @__PURE__ */ jsxRuntime.jsx(
2626
- NavigationMenuPrimitive__namespace.Viewport,
2627
- {
2628
- "data-slot": "navigation-menu-viewport",
2629
- className: cn(
2630
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
2631
- className
2632
- ),
2633
- ...props
2634
- }
2635
- )
2636
- }
2637
- );
2638
- }
2639
- function NavigationMenuLink({
2282
+ function SheetDescription({
2640
2283
  className,
2641
2284
  ...props
2642
2285
  }) {
2643
2286
  return /* @__PURE__ */ jsxRuntime.jsx(
2644
- NavigationMenuPrimitive__namespace.Link,
2287
+ DialogPrimitive__namespace.Description,
2645
2288
  {
2646
- "data-slot": "navigation-menu-link",
2647
- className: cn(
2648
- "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
2649
- className
2650
- ),
2289
+ "data-slot": "sheet-description",
2290
+ className: cn("text-muted-foreground text-sm", className),
2651
2291
  ...props
2652
2292
  }
2653
2293
  );
2654
2294
  }
2655
- function NavigationMenuIndicator({
2656
- className,
2657
- ...props
2658
- }) {
2659
- return /* @__PURE__ */ jsxRuntime.jsx(
2660
- NavigationMenuPrimitive__namespace.Indicator,
2661
- {
2662
- "data-slot": "navigation-menu-indicator",
2663
- className: cn(
2664
- "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
2665
- className
2666
- ),
2667
- ...props,
2668
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" })
2669
- }
2670
- );
2671
- }
2672
- function Pagination({ className, ...props }) {
2673
- return /* @__PURE__ */ jsxRuntime.jsx(
2674
- "nav",
2675
- {
2676
- role: "navigation",
2677
- "aria-label": "pagination",
2678
- "data-slot": "pagination",
2679
- className: cn("mx-auto flex w-full justify-center", className),
2680
- ...props
2681
- }
2295
+ const MOBILE_BREAKPOINT = 768;
2296
+ function useIsMobile() {
2297
+ const [isMobile, setIsMobile] = React__namespace.useState(
2298
+ void 0
2682
2299
  );
2300
+ React__namespace.useEffect(() => {
2301
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
2302
+ const onChange = () => {
2303
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
2304
+ };
2305
+ mql.addEventListener("change", onChange);
2306
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
2307
+ return () => mql.removeEventListener("change", onChange);
2308
+ }, []);
2309
+ return !!isMobile;
2683
2310
  }
2684
- function PaginationContent({
2685
- className,
2686
- ...props
2687
- }) {
2311
+ function Skeleton({ className, ...props }) {
2688
2312
  return /* @__PURE__ */ jsxRuntime.jsx(
2689
- "ul",
2313
+ "div",
2690
2314
  {
2691
- "data-slot": "pagination-content",
2692
- className: cn("flex flex-row items-center gap-1", className),
2315
+ "data-slot": "skeleton",
2316
+ className: cn("bg-secondary animate-pulse rounded-md", className),
2693
2317
  ...props
2694
2318
  }
2695
2319
  );
2696
2320
  }
2697
- function PaginationItem({ ...props }) {
2698
- return /* @__PURE__ */ jsxRuntime.jsx("li", { "data-slot": "pagination-item", ...props });
2699
- }
2700
- function PaginationLink({
2701
- className,
2702
- isActive,
2703
- size = "icon",
2321
+ function TooltipProvider({
2322
+ delayDuration = 0,
2704
2323
  ...props
2705
2324
  }) {
2706
2325
  return /* @__PURE__ */ jsxRuntime.jsx(
2707
- "a",
2326
+ TooltipPrimitive__namespace.Provider,
2708
2327
  {
2709
- "aria-current": isActive ? "page" : void 0,
2710
- "data-slot": "pagination-link",
2711
- "data-active": isActive,
2712
- className: cn(
2713
- buttonVariants({
2714
- variant: isActive ? "outline" : "ghost",
2715
- size
2716
- }),
2717
- className
2718
- ),
2328
+ "data-slot": "tooltip-provider",
2329
+ delayDuration,
2719
2330
  ...props
2720
2331
  }
2721
2332
  );
2722
2333
  }
2723
- function PaginationPrevious({
2724
- className,
2334
+ function Tooltip({
2725
2335
  ...props
2726
2336
  }) {
2727
- return /* @__PURE__ */ jsxRuntime.jsxs(
2728
- PaginationLink,
2729
- {
2730
- "aria-label": "Go to previous page",
2731
- size: "default",
2732
- className: cn("gap-1 px-2.5 sm:pl-2.5", className),
2733
- ...props,
2734
- children: [
2735
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeftIcon, {}),
2736
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Previous" })
2737
- ]
2738
- }
2739
- );
2337
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { "data-slot": "tooltip", ...props }) });
2740
2338
  }
2741
- function PaginationNext({
2742
- className,
2339
+ function TooltipTrigger({
2743
2340
  ...props
2744
2341
  }) {
2745
- return /* @__PURE__ */ jsxRuntime.jsxs(
2746
- PaginationLink,
2747
- {
2748
- "aria-label": "Go to next page",
2749
- size: "default",
2750
- className: cn("gap-1 px-2.5 sm:pr-2.5", className),
2751
- ...props,
2752
- children: [
2753
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "hidden sm:block", children: "Next" }),
2754
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRightIcon, {})
2755
- ]
2756
- }
2757
- );
2342
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { "data-slot": "tooltip-trigger", ...props });
2758
2343
  }
2759
- function PaginationEllipsis({
2344
+ function TooltipContent({
2760
2345
  className,
2346
+ sideOffset = 0,
2347
+ children,
2761
2348
  ...props
2762
2349
  }) {
2763
- return /* @__PURE__ */ jsxRuntime.jsxs(
2764
- "span",
2350
+ return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
2351
+ TooltipPrimitive__namespace.Content,
2765
2352
  {
2766
- "aria-hidden": true,
2767
- "data-slot": "pagination-ellipsis",
2768
- className: cn("flex size-9 items-center justify-center", className),
2353
+ "data-slot": "tooltip-content",
2354
+ sideOffset,
2355
+ className: cn(
2356
+ "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
2357
+ className
2358
+ ),
2769
2359
  ...props,
2770
2360
  children: [
2771
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontalIcon, { className: "size-4" }),
2772
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More pages" })
2361
+ children,
2362
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
2773
2363
  ]
2774
2364
  }
2775
- );
2776
- }
2777
- function Popover({
2778
- ...props
2779
- }) {
2780
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Root, { "data-slot": "popover", ...props });
2365
+ ) });
2781
2366
  }
2782
- function PopoverTrigger({
2783
- ...props
2784
- }) {
2785
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { "data-slot": "popover-trigger", ...props });
2367
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
2368
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
2369
+ const SIDEBAR_WIDTH = "16rem";
2370
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
2371
+ const SIDEBAR_WIDTH_ICON = "3rem";
2372
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
2373
+ const SidebarContext = React__namespace.createContext(null);
2374
+ function useSidebar() {
2375
+ const context = React__namespace.useContext(SidebarContext);
2376
+ if (!context) {
2377
+ throw new Error("useSidebar must be used within a SidebarProvider.");
2378
+ }
2379
+ return context;
2786
2380
  }
2787
- function PopoverContent({
2381
+ function SidebarProvider({
2382
+ defaultOpen = true,
2383
+ open: openProp,
2384
+ onOpenChange: setOpenProp,
2788
2385
  className,
2789
- align = "center",
2790
- sideOffset = 4,
2791
- ...props
2792
- }) {
2793
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
2794
- PopoverPrimitive__namespace.Content,
2795
- {
2796
- "data-slot": "popover-content",
2797
- align,
2798
- sideOffset,
2799
- className: cn(
2800
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
2801
- className
2802
- ),
2803
- ...props
2804
- }
2805
- ) });
2806
- }
2807
- function PopoverAnchor({
2808
- ...props
2809
- }) {
2810
- return /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Anchor, { "data-slot": "popover-anchor", ...props });
2811
- }
2812
- function Progress({
2813
- className,
2814
- value,
2815
- ...props
2816
- }) {
2817
- return /* @__PURE__ */ jsxRuntime.jsx(
2818
- ProgressPrimitive__namespace.Root,
2819
- {
2820
- "data-slot": "progress",
2821
- className: cn(
2822
- "bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
2823
- className
2824
- ),
2825
- ...props,
2826
- children: /* @__PURE__ */ jsxRuntime.jsx(
2827
- ProgressPrimitive__namespace.Indicator,
2828
- {
2829
- "data-slot": "progress-indicator",
2830
- className: "bg-primary h-full w-full flex-1 transition-all",
2831
- style: { transform: `translateX(-${100 - (value || 0)}%)` }
2832
- }
2833
- )
2834
- }
2835
- );
2836
- }
2837
- function RadioGroup({
2838
- className,
2839
- ...props
2840
- }) {
2841
- return /* @__PURE__ */ jsxRuntime.jsx(
2842
- RadioGroupPrimitive__namespace.Root,
2843
- {
2844
- "data-slot": "radio-group",
2845
- className: cn("grid gap-3", className),
2846
- ...props
2847
- }
2848
- );
2849
- }
2850
- function RadioGroupItem({
2851
- className,
2852
- ...props
2853
- }) {
2854
- return /* @__PURE__ */ jsxRuntime.jsx(
2855
- RadioGroupPrimitive__namespace.Item,
2856
- {
2857
- "data-slot": "radio-group-item",
2858
- className: cn(
2859
- "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
2860
- className
2861
- ),
2862
- ...props,
2863
- children: /* @__PURE__ */ jsxRuntime.jsx(
2864
- RadioGroupPrimitive__namespace.Indicator,
2865
- {
2866
- "data-slot": "radio-group-indicator",
2867
- className: "relative flex items-center justify-center",
2868
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleIcon, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
2869
- }
2870
- )
2871
- }
2872
- );
2873
- }
2874
- function ResizablePanelGroup({
2875
- className,
2876
- ...props
2877
- }) {
2878
- return /* @__PURE__ */ jsxRuntime.jsx(
2879
- reactResizablePanels.Group,
2880
- {
2881
- "data-slot": "resizable-panel-group",
2882
- className: cn(
2883
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
2884
- className
2885
- ),
2886
- ...props
2887
- }
2888
- );
2889
- }
2890
- function ResizablePanel({ ...props }) {
2891
- return /* @__PURE__ */ jsxRuntime.jsx(reactResizablePanels.Panel, { "data-slot": "resizable-panel", ...props });
2892
- }
2893
- function ResizableHandle({
2894
- withHandle,
2895
- className,
2896
- ...props
2897
- }) {
2898
- return /* @__PURE__ */ jsxRuntime.jsx(
2899
- reactResizablePanels.Separator,
2900
- {
2901
- "data-slot": "resizable-handle",
2902
- className: cn(
2903
- "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
2904
- className
2905
- ),
2906
- ...props,
2907
- children: withHandle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.GripVerticalIcon, { className: "size-2.5" }) })
2908
- }
2909
- );
2910
- }
2911
- function ScrollArea({
2912
- className,
2913
- children,
2914
- ...props
2915
- }) {
2916
- return /* @__PURE__ */ jsxRuntime.jsxs(
2917
- ScrollAreaPrimitive__namespace.Root,
2918
- {
2919
- "data-slot": "scroll-area",
2920
- className: cn("relative", className),
2921
- ...props,
2922
- children: [
2923
- /* @__PURE__ */ jsxRuntime.jsx(
2924
- ScrollAreaPrimitive__namespace.Viewport,
2925
- {
2926
- "data-slot": "scroll-area-viewport",
2927
- className: "focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",
2928
- children
2929
- }
2930
- ),
2931
- /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
2932
- /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
2933
- ]
2934
- }
2935
- );
2936
- }
2937
- function ScrollBar({
2938
- className,
2939
- orientation = "vertical",
2940
- ...props
2941
- }) {
2942
- return /* @__PURE__ */ jsxRuntime.jsx(
2943
- ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
2944
- {
2945
- "data-slot": "scroll-area-scrollbar",
2946
- orientation,
2947
- className: cn(
2948
- "flex touch-none p-px transition-colors select-none",
2949
- orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent",
2950
- orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent",
2951
- className
2952
- ),
2953
- ...props,
2954
- children: /* @__PURE__ */ jsxRuntime.jsx(
2955
- ScrollAreaPrimitive__namespace.ScrollAreaThumb,
2956
- {
2957
- "data-slot": "scroll-area-thumb",
2958
- className: "bg-border relative flex-1 rounded-full"
2959
- }
2960
- )
2961
- }
2962
- );
2963
- }
2964
- function Select({
2965
- ...props
2966
- }) {
2967
- return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
2968
- }
2969
- function SelectGroup({
2970
- ...props
2971
- }) {
2972
- return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
2973
- }
2974
- function SelectValue({
2975
- ...props
2976
- }) {
2977
- return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
2978
- }
2979
- function SelectTrigger({
2980
- className,
2981
- size = "default",
2982
- children,
2983
- ...props
2984
- }) {
2985
- return /* @__PURE__ */ jsxRuntime.jsxs(
2986
- SelectPrimitive__namespace.Trigger,
2987
- {
2988
- "data-slot": "select-trigger",
2989
- "data-size": size,
2990
- className: cn(
2991
- "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 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-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
2992
- className
2993
- ),
2994
- ...props,
2995
- children: [
2996
- children,
2997
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4 opacity-50" }) })
2998
- ]
2999
- }
3000
- );
3001
- }
3002
- function SelectContent({
3003
- className,
3004
- children,
3005
- position = "item-aligned",
3006
- align = "center",
3007
- ...props
3008
- }) {
3009
- return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3010
- SelectPrimitive__namespace.Content,
3011
- {
3012
- "data-slot": "select-content",
3013
- className: cn(
3014
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
3015
- position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
3016
- className
3017
- ),
3018
- position,
3019
- align,
3020
- ...props,
3021
- children: [
3022
- /* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
3023
- /* @__PURE__ */ jsxRuntime.jsx(
3024
- SelectPrimitive__namespace.Viewport,
3025
- {
3026
- className: cn(
3027
- "p-1",
3028
- position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
3029
- ),
3030
- children
3031
- }
3032
- ),
3033
- /* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
3034
- ]
3035
- }
3036
- ) });
3037
- }
3038
- function SelectLabel({
3039
- className,
3040
- ...props
3041
- }) {
3042
- return /* @__PURE__ */ jsxRuntime.jsx(
3043
- SelectPrimitive__namespace.Label,
3044
- {
3045
- "data-slot": "select-label",
3046
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
3047
- ...props
3048
- }
3049
- );
3050
- }
3051
- function SelectItem({
3052
- className,
3053
- children,
3054
- ...props
3055
- }) {
3056
- return /* @__PURE__ */ jsxRuntime.jsxs(
3057
- SelectPrimitive__namespace.Item,
3058
- {
3059
- "data-slot": "select-item",
3060
- className: cn(
3061
- "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
3062
- className
3063
- ),
3064
- ...props,
3065
- children: [
3066
- /* @__PURE__ */ jsxRuntime.jsx(
3067
- "span",
3068
- {
3069
- "data-slot": "select-item-indicator",
3070
- className: "absolute right-2 flex size-3.5 items-center justify-center",
3071
- children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) })
3072
- }
3073
- ),
3074
- /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
3075
- ]
3076
- }
3077
- );
3078
- }
3079
- function SelectSeparator({
3080
- className,
3081
- ...props
3082
- }) {
3083
- return /* @__PURE__ */ jsxRuntime.jsx(
3084
- SelectPrimitive__namespace.Separator,
3085
- {
3086
- "data-slot": "select-separator",
3087
- className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
3088
- ...props
3089
- }
3090
- );
3091
- }
3092
- function SelectScrollUpButton({
3093
- className,
3094
- ...props
3095
- }) {
3096
- return /* @__PURE__ */ jsxRuntime.jsx(
3097
- SelectPrimitive__namespace.ScrollUpButton,
3098
- {
3099
- "data-slot": "select-scroll-up-button",
3100
- className: cn(
3101
- "flex cursor-default items-center justify-center py-1",
3102
- className
3103
- ),
3104
- ...props,
3105
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { className: "size-4" })
3106
- }
3107
- );
3108
- }
3109
- function SelectScrollDownButton({
3110
- className,
3111
- ...props
3112
- }) {
3113
- return /* @__PURE__ */ jsxRuntime.jsx(
3114
- SelectPrimitive__namespace.ScrollDownButton,
3115
- {
3116
- "data-slot": "select-scroll-down-button",
3117
- className: cn(
3118
- "flex cursor-default items-center justify-center py-1",
3119
- className
3120
- ),
3121
- ...props,
3122
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" })
3123
- }
3124
- );
3125
- }
3126
- function Separator({
3127
- className,
3128
- orientation = "horizontal",
3129
- decorative = true,
3130
- ...props
3131
- }) {
3132
- return /* @__PURE__ */ jsxRuntime.jsx(
3133
- SeparatorPrimitive__namespace.Root,
3134
- {
3135
- "data-slot": "separator",
3136
- decorative,
3137
- orientation,
3138
- className: cn(
3139
- "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
3140
- className
3141
- ),
3142
- ...props
3143
- }
3144
- );
3145
- }
3146
- function Sheet({ ...props }) {
3147
- return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Root, { "data-slot": "sheet", ...props });
3148
- }
3149
- function SheetTrigger({
3150
- ...props
3151
- }) {
3152
- return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Trigger, { "data-slot": "sheet-trigger", ...props });
3153
- }
3154
- function SheetClose({
3155
- ...props
3156
- }) {
3157
- return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Close, { "data-slot": "sheet-close", ...props });
3158
- }
3159
- function SheetPortal({
3160
- ...props
3161
- }) {
3162
- return /* @__PURE__ */ jsxRuntime.jsx(DialogPrimitive__namespace.Portal, { "data-slot": "sheet-portal", ...props });
3163
- }
3164
- function SheetOverlay({
3165
- className,
3166
- ...props
3167
- }) {
3168
- return /* @__PURE__ */ jsxRuntime.jsx(
3169
- DialogPrimitive__namespace.Overlay,
3170
- {
3171
- "data-slot": "sheet-overlay",
3172
- className: cn(
3173
- "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",
3174
- className
3175
- ),
3176
- ...props
3177
- }
3178
- );
3179
- }
3180
- function SheetContent({
3181
- className,
3182
- children,
3183
- side = "right",
3184
- ...props
3185
- }) {
3186
- return /* @__PURE__ */ jsxRuntime.jsxs(SheetPortal, { children: [
3187
- /* @__PURE__ */ jsxRuntime.jsx(SheetOverlay, {}),
3188
- /* @__PURE__ */ jsxRuntime.jsxs(
3189
- DialogPrimitive__namespace.Content,
3190
- {
3191
- "data-slot": "sheet-content",
3192
- className: cn(
3193
- "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
3194
- side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
3195
- side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
3196
- side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
3197
- side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
3198
- className
3199
- ),
3200
- ...props,
3201
- children: [
3202
- children,
3203
- /* @__PURE__ */ jsxRuntime.jsxs(DialogPrimitive__namespace.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
3204
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, { className: "size-4" }),
3205
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
3206
- ] })
3207
- ]
3208
- }
3209
- )
3210
- ] });
3211
- }
3212
- function SheetHeader({ className, ...props }) {
3213
- return /* @__PURE__ */ jsxRuntime.jsx(
3214
- "div",
3215
- {
3216
- "data-slot": "sheet-header",
3217
- className: cn("flex flex-col gap-1.5 p-4", className),
3218
- ...props
3219
- }
3220
- );
3221
- }
3222
- function SheetFooter({ className, ...props }) {
3223
- return /* @__PURE__ */ jsxRuntime.jsx(
3224
- "div",
3225
- {
3226
- "data-slot": "sheet-footer",
3227
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
3228
- ...props
3229
- }
3230
- );
3231
- }
3232
- function SheetTitle({
3233
- className,
3234
- ...props
3235
- }) {
3236
- return /* @__PURE__ */ jsxRuntime.jsx(
3237
- DialogPrimitive__namespace.Title,
3238
- {
3239
- "data-slot": "sheet-title",
3240
- className: cn("text-foreground font-semibold", className),
3241
- ...props
3242
- }
3243
- );
3244
- }
3245
- function SheetDescription({
3246
- className,
3247
- ...props
3248
- }) {
3249
- return /* @__PURE__ */ jsxRuntime.jsx(
3250
- DialogPrimitive__namespace.Description,
3251
- {
3252
- "data-slot": "sheet-description",
3253
- className: cn("text-muted-foreground text-sm", className),
3254
- ...props
3255
- }
3256
- );
3257
- }
3258
- const MOBILE_BREAKPOINT = 768;
3259
- function useIsMobile() {
3260
- const [isMobile, setIsMobile] = React__namespace.useState(
3261
- void 0
3262
- );
3263
- React__namespace.useEffect(() => {
3264
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
3265
- const onChange = () => {
3266
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3267
- };
3268
- mql.addEventListener("change", onChange);
3269
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
3270
- return () => mql.removeEventListener("change", onChange);
3271
- }, []);
3272
- return !!isMobile;
3273
- }
3274
- function Skeleton({ className, ...props }) {
3275
- return /* @__PURE__ */ jsxRuntime.jsx(
3276
- "div",
3277
- {
3278
- "data-slot": "skeleton",
3279
- className: cn("bg-accent animate-pulse rounded-md", className),
3280
- ...props
3281
- }
3282
- );
3283
- }
3284
- function TooltipProvider({
3285
- delayDuration = 0,
3286
- ...props
3287
- }) {
3288
- return /* @__PURE__ */ jsxRuntime.jsx(
3289
- TooltipPrimitive__namespace.Provider,
3290
- {
3291
- "data-slot": "tooltip-provider",
3292
- delayDuration,
3293
- ...props
3294
- }
3295
- );
3296
- }
3297
- function Tooltip({
3298
- ...props
3299
- }) {
3300
- return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Root, { "data-slot": "tooltip", ...props }) });
3301
- }
3302
- function TooltipTrigger({
3303
- ...props
3304
- }) {
3305
- return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { "data-slot": "tooltip-trigger", ...props });
3306
- }
3307
- function TooltipContent({
3308
- className,
3309
- sideOffset = 0,
3310
- children,
3311
- ...props
3312
- }) {
3313
- return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3314
- TooltipPrimitive__namespace.Content,
3315
- {
3316
- "data-slot": "tooltip-content",
3317
- sideOffset,
3318
- className: cn(
3319
- "bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
3320
- className
3321
- ),
3322
- ...props,
3323
- children: [
3324
- children,
3325
- /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Arrow, { className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
3326
- ]
3327
- }
3328
- ) });
3329
- }
3330
- const SIDEBAR_COOKIE_NAME = "sidebar_state";
3331
- const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
3332
- const SIDEBAR_WIDTH = "16rem";
3333
- const SIDEBAR_WIDTH_MOBILE = "18rem";
3334
- const SIDEBAR_WIDTH_ICON = "3rem";
3335
- const SIDEBAR_KEYBOARD_SHORTCUT = "b";
3336
- const SidebarContext = React__namespace.createContext(null);
3337
- function useSidebar() {
3338
- const context = React__namespace.useContext(SidebarContext);
3339
- if (!context) {
3340
- throw new Error("useSidebar must be used within a SidebarProvider.");
3341
- }
3342
- return context;
3343
- }
3344
- function SidebarProvider({
3345
- defaultOpen = true,
3346
- open: openProp,
3347
- onOpenChange: setOpenProp,
3348
- className,
3349
- style,
3350
- children,
2386
+ style,
2387
+ children,
3351
2388
  ...props
3352
2389
  }) {
3353
2390
  const isMobile = useIsMobile();
@@ -3675,7 +2712,7 @@ function SidebarGroupAction({
3675
2712
  "data-slot": "sidebar-group-action",
3676
2713
  "data-sidebar": "group-action",
3677
2714
  className: cn(
3678
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
2715
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
3679
2716
  // Increases the hit area of the button on mobile.
3680
2717
  "after:absolute after:-inset-2 md:after:hidden",
3681
2718
  "group-data-[collapsible=icon]:hidden",
@@ -3722,12 +2759,12 @@ function SidebarMenuItem({ className, ...props }) {
3722
2759
  );
3723
2760
  }
3724
2761
  const sidebarMenuButtonVariants = classVarianceAuthority.cva(
3725
- "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
2762
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground focus-visible:ring-2 active:bg-sidebar-tertiary active:text-sidebar-tertiary-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-tertiary data-[active=true]:font-medium data-[active=true]:text-sidebar-tertiary-foreground data-[state=open]:hover:bg-sidebar-tertiary data-[state=open]:hover:text-sidebar-tertiary-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
3726
2763
  {
3727
2764
  variants: {
3728
2765
  variant: {
3729
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
3730
- outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
2766
+ default: "hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground",
2767
+ outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-tertiary))]"
3731
2768
  },
3732
2769
  size: {
3733
2770
  default: "h-8 text-sm",
@@ -3797,14 +2834,14 @@ function SidebarMenuAction({
3797
2834
  "data-slot": "sidebar-menu-action",
3798
2835
  "data-sidebar": "menu-action",
3799
2836
  className: cn(
3800
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
2837
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground peer-hover/menu-button:text-sidebar-tertiary-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
3801
2838
  // Increases the hit area of the button on mobile.
3802
2839
  "after:absolute after:-inset-2 md:after:hidden",
3803
2840
  "peer-data-[size=sm]/menu-button:top-1",
3804
2841
  "peer-data-[size=default]/menu-button:top-1.5",
3805
2842
  "peer-data-[size=lg]/menu-button:top-2.5",
3806
2843
  "group-data-[collapsible=icon]:hidden",
3807
- showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
2844
+ showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-tertiary-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
3808
2845
  className
3809
2846
  ),
3810
2847
  ...props
@@ -3822,7 +2859,7 @@ function SidebarMenuBadge({
3822
2859
  "data-sidebar": "menu-badge",
3823
2860
  className: cn(
3824
2861
  "text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none",
3825
- "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
2862
+ "peer-hover/menu-button:text-sidebar-tertiary-foreground peer-data-[active=true]/menu-button:text-sidebar-tertiary-foreground",
3826
2863
  "peer-data-[size=sm]/menu-button:top-1",
3827
2864
  "peer-data-[size=default]/menu-button:top-1.5",
3828
2865
  "peer-data-[size=lg]/menu-button:top-2.5",
@@ -3838,7 +2875,9 @@ function SidebarMenuSkeleton({
3838
2875
  showIcon = false,
3839
2876
  ...props
3840
2877
  }) {
3841
- const [width] = React__namespace.useState(() => `${Math.floor(Math.random() * 40) + 50}%`);
2878
+ const widthRef = React__namespace.useState(
2879
+ () => `${Math.floor(Math.random() * 40) + 50}%`
2880
+ )[0];
3842
2881
  return /* @__PURE__ */ jsxRuntime.jsxs(
3843
2882
  "div",
3844
2883
  {
@@ -3860,7 +2899,7 @@ function SidebarMenuSkeleton({
3860
2899
  className: "h-4 max-w-(--skeleton-width) flex-1",
3861
2900
  "data-sidebar": "menu-skeleton-text",
3862
2901
  style: {
3863
- "--skeleton-width": width
2902
+ "--skeleton-width": widthRef
3864
2903
  }
3865
2904
  }
3866
2905
  )
@@ -3913,8 +2952,8 @@ function SidebarMenuSubButton({
3913
2952
  "data-size": size,
3914
2953
  "data-active": isActive,
3915
2954
  className: cn(
3916
- "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
3917
- "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
2955
+ "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-tertiary hover:text-sidebar-tertiary-foreground active:bg-sidebar-tertiary active:text-sidebar-tertiary-foreground [&>svg]:text-sidebar-tertiary-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
2956
+ "data-[active=true]:bg-sidebar-tertiary data-[active=true]:text-sidebar-tertiary-foreground",
3918
2957
  size === "sm" && "text-xs",
3919
2958
  size === "md" && "text-sm",
3920
2959
  "group-data-[collapsible=icon]:hidden",
@@ -4000,6 +3039,11 @@ const Toaster = ({ ...props }) => {
4000
3039
  "--normal-border": "var(--border)",
4001
3040
  "--border-radius": "var(--radius)"
4002
3041
  },
3042
+ toastOptions: {
3043
+ classNames: {
3044
+ description: "!text-popover-foreground"
3045
+ }
3046
+ },
4003
3047
  ...props
4004
3048
  }
4005
3049
  );
@@ -4149,321 +3193,1052 @@ function StepperHeader({ steps, className }) {
4149
3193
  ] })
4150
3194
  ] }) });
4151
3195
  }
4152
- function StepperContent({ children, className }) {
4153
- const { currentStep } = useStepper();
4154
- const steps = React__namespace.Children.toArray(children);
4155
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-4", className), children: steps[currentStep] || null });
3196
+ function StepperContent({ children, className }) {
3197
+ const { currentStep } = useStepper();
3198
+ const steps = React__namespace.Children.toArray(children);
3199
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-4", className), children: steps[currentStep] || null });
3200
+ }
3201
+ function StepperFooter({
3202
+ children,
3203
+ className,
3204
+ showDefaultButtons = true,
3205
+ nextLabel = "Next",
3206
+ previousLabel = "Previous",
3207
+ finishLabel = "Finish",
3208
+ onFinish
3209
+ }) {
3210
+ const { currentStep, totalSteps, nextStep, previousStep } = useStepper();
3211
+ const isFirstStep = currentStep === 0;
3212
+ const isLastStep = currentStep === totalSteps - 1;
3213
+ if (children) {
3214
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 flex justify-between", className), children });
3215
+ }
3216
+ if (!showDefaultButtons) return null;
3217
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-8 flex justify-between", className), children: [
3218
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", onClick: previousStep, disabled: isFirstStep, children: previousLabel }),
3219
+ isLastStep ? /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: onFinish, children: finishLabel }) : /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: nextStep, children: nextLabel })
3220
+ ] });
3221
+ }
3222
+ function Switch({
3223
+ className,
3224
+ ...props
3225
+ }) {
3226
+ return /* @__PURE__ */ jsxRuntime.jsx(
3227
+ SwitchPrimitive__namespace.Root,
3228
+ {
3229
+ "data-slot": "switch",
3230
+ className: cn(
3231
+ "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
3232
+ className
3233
+ ),
3234
+ ...props,
3235
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3236
+ SwitchPrimitive__namespace.Thumb,
3237
+ {
3238
+ "data-slot": "switch-thumb",
3239
+ className: cn(
3240
+ "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
3241
+ )
3242
+ }
3243
+ )
3244
+ }
3245
+ );
3246
+ }
3247
+ function Table({ className, ...props }) {
3248
+ return /* @__PURE__ */ jsxRuntime.jsx(
3249
+ "div",
3250
+ {
3251
+ "data-slot": "table-container",
3252
+ className: "relative w-full overflow-x-auto",
3253
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3254
+ "table",
3255
+ {
3256
+ "data-slot": "table",
3257
+ className: cn("w-full caption-bottom text-sm", className),
3258
+ ...props
3259
+ }
3260
+ )
3261
+ }
3262
+ );
3263
+ }
3264
+ function TableHeader({ className, ...props }) {
3265
+ return /* @__PURE__ */ jsxRuntime.jsx(
3266
+ "thead",
3267
+ {
3268
+ "data-slot": "table-header",
3269
+ className: cn("[&_tr]:border-b", className),
3270
+ ...props
3271
+ }
3272
+ );
3273
+ }
3274
+ function TableBody({ className, ...props }) {
3275
+ return /* @__PURE__ */ jsxRuntime.jsx(
3276
+ "tbody",
3277
+ {
3278
+ "data-slot": "table-body",
3279
+ className: cn("[&_tr:last-child]:border-0", className),
3280
+ ...props
3281
+ }
3282
+ );
3283
+ }
3284
+ function TableFooter({ className, ...props }) {
3285
+ return /* @__PURE__ */ jsxRuntime.jsx(
3286
+ "tfoot",
3287
+ {
3288
+ "data-slot": "table-footer",
3289
+ className: cn(
3290
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
3291
+ className
3292
+ ),
3293
+ ...props
3294
+ }
3295
+ );
3296
+ }
3297
+ function TableRow({ className, ...props }) {
3298
+ return /* @__PURE__ */ jsxRuntime.jsx(
3299
+ "tr",
3300
+ {
3301
+ "data-slot": "table-row",
3302
+ className: cn(
3303
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
3304
+ className
3305
+ ),
3306
+ ...props
3307
+ }
3308
+ );
3309
+ }
3310
+ function TableHead({ className, ...props }) {
3311
+ return /* @__PURE__ */ jsxRuntime.jsx(
3312
+ "th",
3313
+ {
3314
+ "data-slot": "table-head",
3315
+ className: cn(
3316
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
3317
+ className
3318
+ ),
3319
+ ...props
3320
+ }
3321
+ );
3322
+ }
3323
+ function TableCell({ className, ...props }) {
3324
+ return /* @__PURE__ */ jsxRuntime.jsx(
3325
+ "td",
3326
+ {
3327
+ "data-slot": "table-cell",
3328
+ className: cn(
3329
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
3330
+ className
3331
+ ),
3332
+ ...props
3333
+ }
3334
+ );
3335
+ }
3336
+ function TableCaption({
3337
+ className,
3338
+ ...props
3339
+ }) {
3340
+ return /* @__PURE__ */ jsxRuntime.jsx(
3341
+ "caption",
3342
+ {
3343
+ "data-slot": "table-caption",
3344
+ className: cn("text-muted-foreground mt-4 text-sm", className),
3345
+ ...props
3346
+ }
3347
+ );
3348
+ }
3349
+ function Tabs({
3350
+ className,
3351
+ ...props
3352
+ }) {
3353
+ return /* @__PURE__ */ jsxRuntime.jsx(
3354
+ TabsPrimitive__namespace.Root,
3355
+ {
3356
+ "data-slot": "tabs",
3357
+ className: cn("flex flex-col gap-2", className),
3358
+ ...props
3359
+ }
3360
+ );
4156
3361
  }
4157
- function StepperFooter({
4158
- children,
3362
+ function TabsList({
4159
3363
  className,
4160
- showDefaultButtons = true,
4161
- nextLabel = "Next",
4162
- previousLabel = "Previous",
4163
- finishLabel = "Finish",
4164
- onFinish
3364
+ ...props
4165
3365
  }) {
4166
- const { currentStep, totalSteps, nextStep, previousStep } = useStepper();
4167
- const isFirstStep = currentStep === 0;
4168
- const isLastStep = currentStep === totalSteps - 1;
4169
- if (children) {
4170
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 flex justify-between", className), children });
4171
- }
4172
- if (!showDefaultButtons) return null;
4173
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-8 flex justify-between", className), children: [
4174
- /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", onClick: previousStep, disabled: isFirstStep, children: previousLabel }),
4175
- isLastStep ? /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: onFinish, children: finishLabel }) : /* @__PURE__ */ jsxRuntime.jsx(Button, { onClick: nextStep, children: nextLabel })
4176
- ] });
3366
+ return /* @__PURE__ */ jsxRuntime.jsx(
3367
+ TabsPrimitive__namespace.List,
3368
+ {
3369
+ "data-slot": "tabs-list",
3370
+ className: cn(
3371
+ "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
3372
+ className
3373
+ ),
3374
+ ...props
3375
+ }
3376
+ );
4177
3377
  }
4178
- function Switch({
3378
+ function TabsTrigger({
4179
3379
  className,
4180
3380
  ...props
4181
3381
  }) {
4182
3382
  return /* @__PURE__ */ jsxRuntime.jsx(
4183
- SwitchPrimitive__namespace.Root,
3383
+ TabsPrimitive__namespace.Trigger,
4184
3384
  {
4185
- "data-slot": "switch",
3385
+ "data-slot": "tabs-trigger",
4186
3386
  className: cn(
4187
- "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
3387
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4188
3388
  className
4189
3389
  ),
4190
- ...props,
4191
- children: /* @__PURE__ */ jsxRuntime.jsx(
4192
- SwitchPrimitive__namespace.Thumb,
4193
- {
4194
- "data-slot": "switch-thumb",
4195
- className: cn(
4196
- "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
4197
- )
4198
- }
4199
- )
3390
+ ...props
4200
3391
  }
4201
3392
  );
4202
3393
  }
4203
- function Table({ className, ...props }) {
3394
+ function TabsContent({
3395
+ className,
3396
+ ...props
3397
+ }) {
4204
3398
  return /* @__PURE__ */ jsxRuntime.jsx(
4205
- "div",
3399
+ TabsPrimitive__namespace.Content,
4206
3400
  {
4207
- "data-slot": "table-container",
4208
- className: "relative w-full overflow-x-auto",
4209
- children: /* @__PURE__ */ jsxRuntime.jsx(
4210
- "table",
4211
- {
4212
- "data-slot": "table",
4213
- className: cn("w-full caption-bottom text-sm", className),
4214
- ...props
4215
- }
4216
- )
3401
+ "data-slot": "tabs-content",
3402
+ className: cn("flex-1 outline-none", className),
3403
+ ...props
4217
3404
  }
4218
3405
  );
4219
3406
  }
4220
- function TableHeader({ className, ...props }) {
3407
+ function Textarea({ className, ...props }) {
4221
3408
  return /* @__PURE__ */ jsxRuntime.jsx(
4222
- "thead",
3409
+ "textarea",
4223
3410
  {
4224
- "data-slot": "table-header",
4225
- className: cn("[&_tr]:border-b", className),
3411
+ "data-slot": "textarea",
3412
+ className: cn(
3413
+ "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
3414
+ className
3415
+ ),
4226
3416
  ...props
4227
3417
  }
4228
3418
  );
4229
3419
  }
4230
- function TableBody({ className, ...props }) {
3420
+ const toggleVariants = classVarianceAuthority.cva(
3421
+ "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-tertiary data-[state=on]:text-tertiary-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-error/20 dark:aria-invalid:ring-error/40 aria-invalid:border-error whitespace-nowrap",
3422
+ {
3423
+ variants: {
3424
+ variant: {
3425
+ default: "bg-transparent",
3426
+ outline: "border border-input bg-transparent shadow-xs hover:bg-tertiary hover:text-tertiary-foreground"
3427
+ },
3428
+ size: {
3429
+ default: "h-9 px-2 min-w-9",
3430
+ sm: "h-8 px-1.5 min-w-8",
3431
+ lg: "h-10 px-2.5 min-w-10"
3432
+ }
3433
+ },
3434
+ defaultVariants: {
3435
+ variant: "default",
3436
+ size: "default"
3437
+ }
3438
+ }
3439
+ );
3440
+ function Toggle({
3441
+ className,
3442
+ variant,
3443
+ size,
3444
+ ...props
3445
+ }) {
4231
3446
  return /* @__PURE__ */ jsxRuntime.jsx(
4232
- "tbody",
3447
+ TogglePrimitive__namespace.Root,
4233
3448
  {
4234
- "data-slot": "table-body",
4235
- className: cn("[&_tr:last-child]:border-0", className),
3449
+ "data-slot": "toggle",
3450
+ className: cn(toggleVariants({ variant, size, className })),
4236
3451
  ...props
4237
3452
  }
4238
3453
  );
4239
3454
  }
4240
- function TableFooter({ className, ...props }) {
3455
+ const ToggleGroupContext = React__namespace.createContext({
3456
+ size: "default",
3457
+ variant: "default",
3458
+ spacing: 0
3459
+ });
3460
+ function ToggleGroup({
3461
+ className,
3462
+ variant,
3463
+ size,
3464
+ spacing = 0,
3465
+ children,
3466
+ ...props
3467
+ }) {
4241
3468
  return /* @__PURE__ */ jsxRuntime.jsx(
4242
- "tfoot",
3469
+ ToggleGroupPrimitive__namespace.Root,
4243
3470
  {
4244
- "data-slot": "table-footer",
3471
+ "data-slot": "toggle-group",
3472
+ "data-variant": variant,
3473
+ "data-size": size,
3474
+ "data-spacing": spacing,
3475
+ style: { "--gap": spacing },
4245
3476
  className: cn(
4246
- "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
3477
+ "group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",
3478
+ className
3479
+ ),
3480
+ ...props,
3481
+ children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children })
3482
+ }
3483
+ );
3484
+ }
3485
+ function ToggleGroupItem({
3486
+ className,
3487
+ children,
3488
+ variant,
3489
+ size,
3490
+ ...props
3491
+ }) {
3492
+ const context = React__namespace.useContext(ToggleGroupContext);
3493
+ return /* @__PURE__ */ jsxRuntime.jsx(
3494
+ ToggleGroupPrimitive__namespace.Item,
3495
+ {
3496
+ "data-slot": "toggle-group-item",
3497
+ "data-variant": context.variant || variant,
3498
+ "data-size": context.size || size,
3499
+ "data-spacing": context.spacing,
3500
+ className: cn(
3501
+ toggleVariants({
3502
+ variant: context.variant || variant,
3503
+ size: context.size || size
3504
+ }),
3505
+ "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10",
3506
+ "data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",
3507
+ className
3508
+ ),
3509
+ ...props,
3510
+ children
3511
+ }
3512
+ );
3513
+ }
3514
+ function Panel({ className, ...props }) {
3515
+ return /* @__PURE__ */ jsxRuntime.jsx(
3516
+ "div",
3517
+ {
3518
+ "data-slot": "panel",
3519
+ className: cn(
3520
+ "bg-panel text-foreground rounded-xl border p-6 shadow-sm",
4247
3521
  className
4248
3522
  ),
4249
3523
  ...props
4250
3524
  }
4251
3525
  );
4252
3526
  }
4253
- function TableRow({ className, ...props }) {
3527
+ function PanelHeader({ className, ...props }) {
4254
3528
  return /* @__PURE__ */ jsxRuntime.jsx(
4255
- "tr",
3529
+ "div",
4256
3530
  {
4257
- "data-slot": "table-row",
3531
+ "data-slot": "panel-header",
4258
3532
  className: cn(
4259
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
3533
+ "@container/panel-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 has-data-[slot=panel-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
4260
3534
  className
4261
3535
  ),
4262
3536
  ...props
4263
3537
  }
4264
3538
  );
4265
3539
  }
4266
- function TableHead({ className, ...props }) {
3540
+ function PanelTitle({ className, ...props }) {
3541
+ return /* @__PURE__ */ jsxRuntime.jsx(
3542
+ "div",
3543
+ {
3544
+ "data-slot": "panel-title",
3545
+ className: cn("text-xl leading-none font-semibold", className),
3546
+ ...props
3547
+ }
3548
+ );
3549
+ }
3550
+ function PanelDescription({
3551
+ className,
3552
+ ...props
3553
+ }) {
3554
+ return /* @__PURE__ */ jsxRuntime.jsx(
3555
+ "div",
3556
+ {
3557
+ "data-slot": "panel-description",
3558
+ className: cn("text-muted-foreground text-sm", className),
3559
+ ...props
3560
+ }
3561
+ );
3562
+ }
3563
+ function PanelContent({ className, ...props }) {
3564
+ return /* @__PURE__ */ jsxRuntime.jsx(
3565
+ "div",
3566
+ {
3567
+ "data-slot": "panel-content",
3568
+ className: cn("pt-6 text-base", className),
3569
+ ...props
3570
+ }
3571
+ );
3572
+ }
3573
+ function PanelFooter({ className, ...props }) {
3574
+ return /* @__PURE__ */ jsxRuntime.jsx(
3575
+ "div",
3576
+ {
3577
+ "data-slot": "panel-footer",
3578
+ className: cn("flex items-center pt-6", className),
3579
+ ...props
3580
+ }
3581
+ );
3582
+ }
3583
+ const H1 = React__namespace.forwardRef(function H12({ className, ...props }, ref) {
3584
+ return /* @__PURE__ */ jsxRuntime.jsx(
3585
+ "h1",
3586
+ {
3587
+ ref,
3588
+ className: cn("text-4xl font-bold tracking-tight", className),
3589
+ ...props
3590
+ }
3591
+ );
3592
+ });
3593
+ const H2 = React__namespace.forwardRef(function H22({ className, ...props }, ref) {
3594
+ return /* @__PURE__ */ jsxRuntime.jsx(
3595
+ "h2",
3596
+ {
3597
+ ref,
3598
+ className: cn("text-3xl font-semibold tracking-tight", className),
3599
+ ...props
3600
+ }
3601
+ );
3602
+ });
3603
+ function H3({
3604
+ className,
3605
+ ...props
3606
+ }) {
3607
+ return /* @__PURE__ */ jsxRuntime.jsx(
3608
+ "h3",
3609
+ {
3610
+ className: cn("text-2xl font-semibold tracking-tight", className),
3611
+ ...props
3612
+ }
3613
+ );
3614
+ }
3615
+ function H4({
3616
+ className,
3617
+ ...props
3618
+ }) {
3619
+ return /* @__PURE__ */ jsxRuntime.jsx("h4", { className: cn("text-xl font-semibold", className), ...props });
3620
+ }
3621
+ function P({
3622
+ className,
3623
+ ...props
3624
+ }) {
3625
+ return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-base leading-7", className), ...props });
3626
+ }
3627
+ function Lead({
3628
+ className,
3629
+ ...props
3630
+ }) {
4267
3631
  return /* @__PURE__ */ jsxRuntime.jsx(
4268
- "th",
3632
+ "p",
4269
3633
  {
4270
- "data-slot": "table-head",
4271
- className: cn(
4272
- "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
4273
- className
4274
- ),
3634
+ className: cn("text-lg leading-8 text-muted-foreground", className),
4275
3635
  ...props
4276
3636
  }
4277
3637
  );
4278
3638
  }
4279
- function TableCell({ className, ...props }) {
3639
+ function Strong({
3640
+ className,
3641
+ ...props
3642
+ }) {
4280
3643
  return /* @__PURE__ */ jsxRuntime.jsx(
4281
- "td",
3644
+ "p",
4282
3645
  {
4283
- "data-slot": "table-cell",
4284
- className: cn(
4285
- "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
4286
- className
4287
- ),
3646
+ className: cn("text-base font-semibold leading-7", className),
4288
3647
  ...props
4289
3648
  }
4290
3649
  );
4291
3650
  }
4292
- function TableCaption({
3651
+ function Small({
4293
3652
  className,
4294
3653
  ...props
4295
3654
  }) {
4296
3655
  return /* @__PURE__ */ jsxRuntime.jsx(
4297
- "caption",
3656
+ "p",
4298
3657
  {
4299
- "data-slot": "table-caption",
4300
- className: cn("text-muted-foreground mt-4 text-sm", className),
3658
+ className: cn("text-sm text-muted-foreground leading-6", className),
4301
3659
  ...props
4302
3660
  }
4303
3661
  );
4304
3662
  }
4305
- function Tabs({
3663
+ function Muted({
4306
3664
  className,
4307
3665
  ...props
4308
3666
  }) {
4309
3667
  return /* @__PURE__ */ jsxRuntime.jsx(
4310
- TabsPrimitive__namespace.Root,
3668
+ "p",
4311
3669
  {
4312
- "data-slot": "tabs",
4313
- className: cn("flex flex-col gap-2", className),
3670
+ className: cn("text-xs text-muted-foreground leading-5", className),
4314
3671
  ...props
4315
3672
  }
4316
3673
  );
4317
3674
  }
4318
- function TabsList({
3675
+ function Code({
4319
3676
  className,
4320
3677
  ...props
4321
3678
  }) {
4322
3679
  return /* @__PURE__ */ jsxRuntime.jsx(
4323
- TabsPrimitive__namespace.List,
3680
+ "code",
4324
3681
  {
4325
- "data-slot": "tabs-list",
4326
- className: cn(
4327
- "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
4328
- className
4329
- ),
3682
+ className: cn("text-sm font-mono bg-muted px-2 py-1 rounded", className),
4330
3683
  ...props
4331
3684
  }
4332
3685
  );
4333
3686
  }
4334
- function TabsTrigger({
3687
+ function Link({
4335
3688
  className,
4336
3689
  ...props
4337
3690
  }) {
4338
3691
  return /* @__PURE__ */ jsxRuntime.jsx(
4339
- TabsPrimitive__namespace.Trigger,
3692
+ "a",
4340
3693
  {
4341
- "data-slot": "tabs-trigger",
4342
- className: cn(
4343
- "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4344
- className
4345
- ),
3694
+ className: cn("text-primary underline hover:no-underline", className),
4346
3695
  ...props
4347
3696
  }
4348
3697
  );
4349
3698
  }
4350
- function TabsContent({
3699
+ function Blockquote({
4351
3700
  className,
4352
3701
  ...props
4353
3702
  }) {
4354
3703
  return /* @__PURE__ */ jsxRuntime.jsx(
4355
- TabsPrimitive__namespace.Content,
3704
+ "blockquote",
4356
3705
  {
4357
- "data-slot": "tabs-content",
4358
- className: cn("flex-1 outline-none", className),
3706
+ className: cn("border-l-4 border-primary pl-4 italic", className),
4359
3707
  ...props
4360
3708
  }
4361
3709
  );
4362
3710
  }
4363
- function Textarea({ className, ...props }) {
3711
+ function List({
3712
+ className,
3713
+ ...props
3714
+ }) {
4364
3715
  return /* @__PURE__ */ jsxRuntime.jsx(
4365
- "textarea",
3716
+ "ul",
4366
3717
  {
4367
- "data-slot": "textarea",
4368
- className: cn(
4369
- "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
4370
- className
4371
- ),
3718
+ className: cn("list-disc list-inside space-y-2", className),
4372
3719
  ...props
4373
3720
  }
4374
3721
  );
4375
3722
  }
4376
- const toggleVariants = classVarianceAuthority.cva(
4377
- "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap",
4378
- {
4379
- variants: {
4380
- variant: {
4381
- default: "bg-transparent",
4382
- outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
4383
- },
4384
- size: {
4385
- default: "h-9 px-2 min-w-9",
4386
- sm: "h-8 px-1.5 min-w-8",
4387
- lg: "h-10 px-2.5 min-w-10"
4388
- }
4389
- },
4390
- defaultVariants: {
4391
- variant: "default",
4392
- size: "default"
4393
- }
4394
- }
4395
- );
4396
- function Toggle({
3723
+ function OrderedList({
4397
3724
  className,
4398
- variant,
4399
- size,
4400
3725
  ...props
4401
3726
  }) {
4402
3727
  return /* @__PURE__ */ jsxRuntime.jsx(
4403
- TogglePrimitive__namespace.Root,
3728
+ "ol",
4404
3729
  {
4405
- "data-slot": "toggle",
4406
- className: cn(toggleVariants({ variant, size, className })),
3730
+ className: cn("list-decimal list-inside space-y-2", className),
4407
3731
  ...props
4408
3732
  }
4409
3733
  );
4410
3734
  }
4411
- const ToggleGroupContext = React__namespace.createContext({
4412
- size: "default",
4413
- variant: "default",
4414
- spacing: 0
3735
+ const ContentContainer = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
3736
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-8 py-8 px-4", className), ...props, children });
4415
3737
  });
4416
- function ToggleGroup({
4417
- className,
4418
- variant,
4419
- size,
4420
- spacing = 0,
3738
+ ContentContainer.displayName = "Content";
3739
+ const ContentHeading = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
3740
+ return /* @__PURE__ */ jsxRuntime.jsx(H1, { ref, className, ...props, children });
3741
+ });
3742
+ ContentHeading.displayName = "Content.Heading";
3743
+ const ContentSubheading = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
3744
+ return /* @__PURE__ */ jsxRuntime.jsx(H2, { ref, className, ...props, children });
3745
+ });
3746
+ ContentSubheading.displayName = "Content.Subheading";
3747
+ const ContentBody = React__namespace.forwardRef(({ className, children, ...props }, ref) => {
3748
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("space-y-4", className), ...props, children });
3749
+ });
3750
+ ContentBody.displayName = "Content.Body";
3751
+ const Content = Object.assign(ContentContainer, {
3752
+ Heading: ContentHeading,
3753
+ Subheading: ContentSubheading,
3754
+ Body: ContentBody
3755
+ });
3756
+ function ContentExample() {
3757
+ return /* @__PURE__ */ jsxRuntime.jsxs(Content, { children: [
3758
+ /* @__PURE__ */ jsxRuntime.jsx(Content.Heading, { children: "Welcome to Our Platform" }),
3759
+ /* @__PURE__ */ jsxRuntime.jsx(Content.Subheading, { children: "Getting Started" }),
3760
+ /* @__PURE__ */ jsxRuntime.jsxs(Content.Body, { children: [
3761
+ /* @__PURE__ */ jsxRuntime.jsx(P, { children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat." }),
3762
+ /* @__PURE__ */ jsxRuntime.jsx(P, { children: "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." })
3763
+ ] }),
3764
+ /* @__PURE__ */ jsxRuntime.jsx(Content.Subheading, { children: "Features Overview" }),
3765
+ /* @__PURE__ */ jsxRuntime.jsxs(Content.Body, { children: [
3766
+ /* @__PURE__ */ jsxRuntime.jsx(P, { children: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo." }),
3767
+ /* @__PURE__ */ jsxRuntime.jsx(P, { children: "Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt." })
3768
+ ] })
3769
+ ] });
3770
+ }
3771
+ const eInfraLogoDefault = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACPEAAAUeCAYAAAAVIja8AAAACXBIWXMAAAsSAAALEgHS3X78AAAgAElEQVR4nOzdz3HbWLrG4TNTs29nYC2xM24EVgajLVZWR2BNBC1HMOoIWlpxeeUMqAguuONSzkCKwFOYPryX12N36w/AFySfpwqlarfLBg/AlX/1fX/5+vVrAQAAAAAAAAAAcv7q7AEAAAAAAAAAIEvEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAAAAAAgDARDwAAAAAAAAAAhIl4AAAAAAAAAAAgTMQDAAAAAAAAAABhIh4AAAAAAAAAAAgT8QAAAAAAAAAAQJiIBwAAAAAAAAAAwkQ8AAAAAAAAAAAQJuIBAAAAAAAAAIAwEQ8AAAAAAAAAAISJeAAAAAAAAAAAIEzEAwAAAAAAAAAAYSIeAAAAAAAAAAAIE/EAAAAAAAAAAECYiAcAAAAAAAAAAMJEPAAAAAAAAAAAECbiAQAAAAAAAACAMBEPAAAAAAAAAACEiXgAAAAAAAAAACBMxAMAAAAAAAAAAGEiHgAAAAAAAAAACBPxAAAAAAAAAABAmIgHAAAAAAAAAADCRDwAAAAAAAAAABAm4gEAAAAA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gJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQEziAQAAAAAAAACAmMQDAAAAAAAAAAAxiQcAAAAAAAAAAGISDwAAAAAAAAAAxCQeAAAAAAAAAACISTwAAAAAAAAAABCTeAAAAAAAAAAAICbxAAAAAAAAAABATOIBAAAAAAAAAICYxAMAAAAAAAAAADGJBwAAAAAAAAAAYhIPAAAAAAAAAADEJB4AAAAAAAAAAIhJPAAAAAAAAAAAEJN4AAAAAAAAAAAgJvEAAAAAAAAAAEBM4gEAAAAAAAAAgJjEAwAAAAAAAAAAMYkHAAAAAAAAAABiEg8AAAAAAAAAAMQkHgAAAAAAAAAAiEk8AAAAAAAAAAAQk3gAAAAAAAAAACAm8QAAAAAAAAAAQGnbAZodrzfBqpZpAAAAAElFTkSuQmCC";
3772
+ function resolveLogoSrc$1(logo) {
3773
+ return typeof logo === "string" ? logo : logo.src;
3774
+ }
3775
+ function Header({
4421
3776
  children,
4422
- ...props
3777
+ className,
3778
+ variant = "navigation",
3779
+ navigationItems = [],
3780
+ logo = eInfraLogoDefault,
3781
+ logoAlt = "e-INFRA Logo"
4423
3782
  }) {
4424
3783
  return /* @__PURE__ */ jsxRuntime.jsx(
4425
- ToggleGroupPrimitive__namespace.Root,
3784
+ "header",
4426
3785
  {
4427
- "data-slot": "toggle-group",
4428
- "data-variant": variant,
4429
- "data-size": size,
4430
- "data-spacing": spacing,
4431
- style: { "--gap": spacing },
4432
3786
  className: cn(
4433
- "group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs",
3787
+ "sticky top-0 z-50 w-full bg-background/95 shadow-lg shadow-secondary/20 backdrop-blur supports-backdrop-filter:bg-background/60",
4434
3788
  className
4435
3789
  ),
4436
- ...props,
4437
- children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing }, children })
3790
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
3791
+ "div",
3792
+ {
3793
+ className: cn(
3794
+ "flex h-16 items-center justify-between px-4 mx-auto",
3795
+ variant === "navigation" && "container"
3796
+ ),
3797
+ children: [
3798
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
3799
+ variant === "sidebar" && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelRight, {}),
3800
+ /* @__PURE__ */ jsxRuntime.jsx("a", { href: "/", className: "flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
3801
+ "img",
3802
+ {
3803
+ src: resolveLogoSrc$1(logo),
3804
+ alt: logoAlt,
3805
+ className: "h-20 w-auto"
3806
+ }
3807
+ ) }),
3808
+ variant === "navigation" && navigationItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: navigationItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { href: item.href, children: item.label }) }, item.href)) }) }) })
3809
+ ] }),
3810
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2", children })
3811
+ ]
3812
+ }
3813
+ )
4438
3814
  }
4439
3815
  );
4440
3816
  }
4441
- function ToggleGroupItem({
3817
+ const Version = Date.now();
3818
+ function resolveLogoSrc(logo) {
3819
+ return typeof logo === "string" ? logo : logo.src;
3820
+ }
3821
+ const RedirectListItem = ({ href, text }) => {
3822
+ return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs("a", { href, className: "text-fd-primary flex items-center gap-2", children: [
3823
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoveRight, { className: "pt-[3px]" }),
3824
+ text
3825
+ ] }) });
3826
+ };
3827
+ const Footer = ({
3828
+ logo = eInfraLogoDefault,
3829
+ logoAlt = "e-INFRA CZ Logo"
3830
+ }) => {
3831
+ return /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: "flex flex-col mt-0 items-center px-5 bg-gray-100 border-t border-gray-300 pb-5", children: [
3832
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row justify-between items-center md:items-start max-w-[1100px] w-full mx-auto", children: [
3833
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 px-6 mt-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
3834
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold mb-3", children: "e-INFRA CZ" }),
3835
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { children: /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-fd-muted-foreground", children: [
3836
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "CERIT-SC" }),
3837
+ ",",
3838
+ " ",
3839
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "CESNET" }),
3840
+ ", and",
3841
+ " ",
3842
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "IT4Innovations" }),
3843
+ " are the three",
3844
+ " ",
3845
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "e-infrastructures" }),
3846
+ " ",
3847
+ "that constitute the national",
3848
+ " ",
3849
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "whitespace-nowrap", children: "e-INFRA CZ" }),
3850
+ " research infrastructure."
3851
+ ] }) }) })
3852
+ ] }) }),
3853
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:block w-px bg-gray-300 self-stretch my-8" }),
3854
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 px-6 mt-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
3855
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold mb-2", children: "General information" }),
3856
+ /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "inline-flex flex-col items-center md:items-start", children: [
3857
+ /* @__PURE__ */ jsxRuntime.jsx(
3858
+ RedirectListItem,
3859
+ {
3860
+ href: "https://blog.e-infra.cz/",
3861
+ text: "e-INFRA CZ Blog"
3862
+ }
3863
+ ),
3864
+ /* @__PURE__ */ jsxRuntime.jsx(
3865
+ RedirectListItem,
3866
+ {
3867
+ href: "https://e-infra.cz/",
3868
+ text: "e-INFRA CZ Website"
3869
+ }
3870
+ )
3871
+ ] })
3872
+ ] }) }),
3873
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:block w-px bg-gray-300 self-stretch my-8" }),
3874
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 px-6 mt-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
3875
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "font-semibold mb-2", children: "e-INFRA CZ Support" }),
3876
+ /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "inline-flex flex-col items-center md:items-start", children: [
3877
+ /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-2", children: [
3878
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "w-4 pt-[2px] h-4 text-fd-primary" }),
3879
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-fd-muted-foreground", children: "Available non-stop" })
3880
+ ] }),
3881
+ /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex pt-[2px] items-center gap-2", children: [
3882
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mail, { className: "w-4 h-4 text-fd-primary" }),
3883
+ /* @__PURE__ */ jsxRuntime.jsx(
3884
+ "a",
3885
+ {
3886
+ href: "mailto:support@e-infra.cz",
3887
+ className: "text-fd-primary hover:underline",
3888
+ children: "support@e-infra.cz"
3889
+ }
3890
+ )
3891
+ ] }),
3892
+ /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex pt-[2px] items-center gap-2", children: [
3893
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "w-4 h-4 text-fd-primary" }),
3894
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-fd-muted-foreground", children: "+420 234 680 222" })
3895
+ ] })
3896
+ ] })
3897
+ ] }) })
3898
+ ] }),
3899
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center items-center mt-4 max-w-[1100px] w-full mx-auto", children: /* @__PURE__ */ jsxRuntime.jsx("img", { src: resolveLogoSrc(logo), alt: logoAlt, className: "h-22 w-auto" }) }),
3900
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row justify-center md:justify-between items-center max-w-[1100px] w-full mx-auto", children: [
3901
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-center md:justify-start gap-1", children: [
3902
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-fd-muted-foreground", children: "Copyright © 2025 e-INFRA CZ" }),
3903
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-fd-muted-foreground px-1 pb-[1px]", children: "|" }),
3904
+ /* @__PURE__ */ jsxRuntime.jsx(
3905
+ "a",
3906
+ {
3907
+ href: "https://www.e-infra.cz/en/personal-data-processing",
3908
+ className: "text-sm text-fd-primary hover:underline",
3909
+ children: "Privacy Policy"
3910
+ }
3911
+ )
3912
+ ] }),
3913
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center md:justify-end gap-1 pt-4 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-fd-muted-foreground", children: [
3914
+ "Version: ",
3915
+ new Date(Version).toLocaleDateString("cs-CS")
3916
+ ] }) })
3917
+ ] })
3918
+ ] });
3919
+ };
3920
+ function FeedbackButton({
3921
+ onClick,
3922
+ position = "bottom-right"
3923
+ }) {
3924
+ return /* @__PURE__ */ jsxRuntime.jsxs(
3925
+ "button",
3926
+ {
3927
+ onClick,
3928
+ type: "button",
3929
+ className: cn(
3930
+ "group fixed z-50 px-3.5 flex items-center justify-center bg-primary hover:bg-primary-700 text-white rounded-full shadow-lg transition-all duration-300 cursor-pointer w-12 h-12 hover:w-44 overflow-hidden",
3931
+ position === "bottom-right" ? "bottom-6 right-6" : "bottom-6 left-6"
3932
+ ),
3933
+ "aria-label": "Leave feedback",
3934
+ children: [
3935
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "overflow-hidden whitespace-nowrap text-sm font-medium opacity-0 group-hover:opacity-100 transition-opacity duration-300", children: "Leave feedback?" }),
3936
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageCircle, { className: "ms-auto w-5 h-5 shrink-0" })
3937
+ ]
3938
+ }
3939
+ );
3940
+ }
3941
+ function FeedbackModal({
3942
+ isOpen,
3943
+ onClose,
3944
+ onSubmit,
3945
+ title = "Leave us Feedback",
3946
+ description = "Help us improve by sharing your experience.",
3947
+ satisfactionLabel = "Were you satisfied?",
3948
+ recommendationsLabel = "Do you have any recommendations for improving? If you are open to follow-up, please leave your contact details.",
3949
+ recommendationsPlaceholder = "Share your thoughts...",
3950
+ submitButtonText = "Submit Feedback",
3951
+ successMessage = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-success", children: [
3952
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckCircle2, { className: "w-5 h-5" }),
3953
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: "Thank you for your feedback!" })
3954
+ ] }),
3955
+ autoCloseOnSuccess = true,
3956
+ autoCloseDelay = 3e3
3957
+ }) {
3958
+ const [satisfaction, setSatisfaction] = React__namespace.useState(
3959
+ null
3960
+ );
3961
+ const [recommendations, setRecommendations] = React__namespace.useState("");
3962
+ const [isSubmitting, setIsSubmitting] = React__namespace.useState(false);
3963
+ const [submitStatus, setSubmitStatus] = React__namespace.useState("idle");
3964
+ const [errorMessage, setErrorMessage] = React__namespace.useState("");
3965
+ const [progress, setProgress] = React__namespace.useState(0);
3966
+ const progressIntervalRef = React__namespace.useRef(null);
3967
+ React__namespace.useEffect(() => {
3968
+ if (!isOpen) {
3969
+ setSatisfaction(null);
3970
+ setRecommendations("");
3971
+ setSubmitStatus("idle");
3972
+ setErrorMessage("");
3973
+ setProgress(0);
3974
+ if (progressIntervalRef.current) {
3975
+ clearInterval(progressIntervalRef.current);
3976
+ progressIntervalRef.current = null;
3977
+ }
3978
+ }
3979
+ }, [isOpen]);
3980
+ const handleSubmit = async () => {
3981
+ setIsSubmitting(true);
3982
+ setSubmitStatus("idle");
3983
+ setErrorMessage("");
3984
+ try {
3985
+ const result = await onSubmit?.({
3986
+ satisfaction: satisfaction || void 0,
3987
+ recommendations: recommendations || void 0
3988
+ });
3989
+ if (result?.success) {
3990
+ setSubmitStatus("success");
3991
+ if (autoCloseOnSuccess) {
3992
+ setProgress(0);
3993
+ const updateInterval = 50;
3994
+ const progressIncrement = 100 / (autoCloseDelay / updateInterval);
3995
+ progressIntervalRef.current = setInterval(() => {
3996
+ setProgress((prevProgress) => {
3997
+ const newProgress = prevProgress + progressIncrement;
3998
+ if (newProgress >= 100) {
3999
+ clearInterval(progressIntervalRef.current ?? void 0);
4000
+ requestAnimationFrame(() => onClose());
4001
+ return 100;
4002
+ }
4003
+ return newProgress;
4004
+ });
4005
+ }, updateInterval);
4006
+ }
4007
+ } else {
4008
+ setSubmitStatus("error");
4009
+ setErrorMessage(result?.message || "Failed to submit feedback");
4010
+ }
4011
+ } catch (error) {
4012
+ setSubmitStatus("error");
4013
+ setErrorMessage(
4014
+ error instanceof Error ? error.message : "An unexpected error occurred"
4015
+ );
4016
+ } finally {
4017
+ setIsSubmitting(false);
4018
+ }
4019
+ };
4020
+ React__namespace.useEffect(() => {
4021
+ return () => {
4022
+ if (progressIntervalRef.current) {
4023
+ clearInterval(progressIntervalRef.current);
4024
+ }
4025
+ };
4026
+ }, []);
4027
+ if (!isOpen) {
4028
+ return null;
4029
+ }
4030
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "fixed inset-0 z-50 flex items-end sm:items-center justify-center sm:justify-end sm:bottom-3 sm:right-3 sm:inset-auto", children: [
4031
+ /* @__PURE__ */ jsxRuntime.jsx(
4032
+ "div",
4033
+ {
4034
+ className: "fixed inset-0 bg-black/50 sm:hidden",
4035
+ onClick: onClose,
4036
+ "aria-hidden": "true"
4037
+ }
4038
+ ),
4039
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full sm:w-96 bg-card border-t sm:border border-border shadow-lg sm:rounded-2xl overflow-hidden animate-slideUp", children: [
4040
+ /* @__PURE__ */ jsxRuntime.jsx(
4041
+ Button,
4042
+ {
4043
+ onClick: onClose,
4044
+ variant: "ghost",
4045
+ size: "icon-sm",
4046
+ className: "absolute top-3 right-3 rounded-full",
4047
+ "aria-label": "Close",
4048
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "w-4 h-4" })
4049
+ }
4050
+ ),
4051
+ submitStatus === "success" && autoCloseOnSuccess && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 left-0 right-0 h-1 bg-muted overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
4052
+ "div",
4053
+ {
4054
+ className: "h-full bg-primary transition-all duration-50 ease-linear",
4055
+ style: { width: `${progress}%` }
4056
+ }
4057
+ ) }),
4058
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6", children: [
4059
+ /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-semibold text-foreground mb-1", children: title }),
4060
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-4", children: description }),
4061
+ submitStatus === "success" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "py-4", children: successMessage }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
4062
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4063
+ /* @__PURE__ */ jsxRuntime.jsx(Small, { className: "block mb-4", children: satisfactionLabel }),
4064
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-2", children: [
4065
+ /* @__PURE__ */ jsxRuntime.jsx(
4066
+ Button,
4067
+ {
4068
+ type: "button",
4069
+ variant: satisfaction === "yes" ? "default" : "secondary",
4070
+ size: "sm",
4071
+ onClick: () => setSatisfaction("yes"),
4072
+ children: "Yes"
4073
+ }
4074
+ ),
4075
+ /* @__PURE__ */ jsxRuntime.jsx(
4076
+ Button,
4077
+ {
4078
+ type: "button",
4079
+ variant: satisfaction === "no" ? "default" : "secondary",
4080
+ size: "sm",
4081
+ onClick: () => setSatisfaction("no"),
4082
+ children: "No"
4083
+ }
4084
+ )
4085
+ ] })
4086
+ ] }),
4087
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
4088
+ /* @__PURE__ */ jsxRuntime.jsx(Small, { className: "block mb-4", children: recommendationsLabel }),
4089
+ /* @__PURE__ */ jsxRuntime.jsx(
4090
+ Textarea,
4091
+ {
4092
+ value: recommendations,
4093
+ onChange: (e) => setRecommendations(e.target.value),
4094
+ rows: 4,
4095
+ placeholder: recommendationsPlaceholder
4096
+ }
4097
+ )
4098
+ ] }),
4099
+ submitStatus === "error" && /* @__PURE__ */ jsxRuntime.jsxs(Alert, { variant: "error", children: [
4100
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "h-4 w-4" }),
4101
+ /* @__PURE__ */ jsxRuntime.jsxs(AlertDescription, { children: [
4102
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: "Failed to submit feedback" }),
4103
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: errorMessage })
4104
+ ] })
4105
+ ] })
4106
+ ] }),
4107
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: submitStatus !== "success" && /* @__PURE__ */ jsxRuntime.jsx(
4108
+ Button,
4109
+ {
4110
+ type: "button",
4111
+ onClick: handleSubmit,
4112
+ disabled: isSubmitting,
4113
+ className: "w-full sm:w-auto",
4114
+ children: isSubmitting ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4115
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "w-4 h-4 mr-2 animate-spin" }),
4116
+ "Submitting..."
4117
+ ] }) : submitButtonText
4118
+ }
4119
+ ) })
4120
+ ] })
4121
+ ] })
4122
+ ] });
4123
+ }
4124
+ function FeedbackForm({
4125
+ isOpen: controlledIsOpen,
4126
+ onOpen,
4127
+ onClose,
4128
+ onSubmit,
4129
+ title,
4130
+ description,
4131
+ satisfactionLabel,
4132
+ recommendationsLabel,
4133
+ recommendationsPlaceholder,
4134
+ submitButtonText,
4135
+ successMessage,
4136
+ showFeedbackButton = true,
4137
+ feedbackButtonPosition = "bottom-right",
4138
+ autoCloseOnSuccess,
4139
+ autoCloseDelay
4140
+ }) {
4141
+ const [internalIsOpen, setInternalIsOpen] = React__namespace.useState(false);
4142
+ const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
4143
+ const handleOpen = () => {
4144
+ if (controlledIsOpen === void 0) {
4145
+ setInternalIsOpen(true);
4146
+ }
4147
+ onOpen?.();
4148
+ };
4149
+ const handleClose = () => {
4150
+ if (controlledIsOpen === void 0) {
4151
+ setInternalIsOpen(false);
4152
+ }
4153
+ onClose?.();
4154
+ };
4155
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4156
+ showFeedbackButton && /* @__PURE__ */ jsxRuntime.jsx(
4157
+ FeedbackButton,
4158
+ {
4159
+ onClick: handleOpen,
4160
+ position: feedbackButtonPosition
4161
+ }
4162
+ ),
4163
+ /* @__PURE__ */ jsxRuntime.jsx(
4164
+ FeedbackModal,
4165
+ {
4166
+ isOpen,
4167
+ onClose: handleClose,
4168
+ onSubmit,
4169
+ title,
4170
+ description,
4171
+ satisfactionLabel,
4172
+ recommendationsLabel,
4173
+ recommendationsPlaceholder,
4174
+ submitButtonText,
4175
+ successMessage,
4176
+ autoCloseOnSuccess,
4177
+ autoCloseDelay
4178
+ }
4179
+ )
4180
+ ] });
4181
+ }
4182
+ const defaultMessage = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4183
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "We use cookies" }),
4184
+ " to improve your experience and analyze site usage. You can choose which cookies to accept.",
4185
+ " "
4186
+ ] });
4187
+ const defaultLearnMoreLink = /* @__PURE__ */ jsxRuntime.jsx(
4188
+ "a",
4189
+ {
4190
+ href: "/cookies",
4191
+ className: "text-primary hover:text-primary-600 underline font-medium transition-colors duration-200",
4192
+ children: "Learn more"
4193
+ }
4194
+ );
4195
+ function CookiesBanner({
4442
4196
  className,
4443
- children,
4444
- variant,
4445
- size,
4197
+ message = defaultMessage,
4198
+ learnMoreLink = defaultLearnMoreLink,
4199
+ onReject,
4200
+ onFunctional,
4201
+ onAccept,
4446
4202
  ...props
4447
4203
  }) {
4448
- const context = React__namespace.useContext(ToggleGroupContext);
4449
4204
  return /* @__PURE__ */ jsxRuntime.jsx(
4450
- ToggleGroupPrimitive__namespace.Item,
4205
+ "div",
4451
4206
  {
4452
- "data-slot": "toggle-group-item",
4453
- "data-variant": context.variant || variant,
4454
- "data-size": context.size || size,
4455
- "data-spacing": context.spacing,
4207
+ "data-slot": "cookies-banner",
4456
4208
  className: cn(
4457
- toggleVariants({
4458
- variant: context.variant || variant,
4459
- size: context.size || size
4460
- }),
4461
- "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10",
4462
- "data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l",
4209
+ "fixed bottom-0 left-0 right-0 bg-card border-t border-border shadow-lg z-50",
4463
4210
  className
4464
4211
  ),
4465
4212
  ...props,
4466
- children
4213
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container mx-auto px-4 py-4", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4", children: [
4214
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs(Small, { className: "text-foreground", children: [
4215
+ message,
4216
+ learnMoreLink
4217
+ ] }) }),
4218
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row gap-2 shrink-0", children: [
4219
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", type: "button", onClick: onReject, children: "Reject" }),
4220
+ /* @__PURE__ */ jsxRuntime.jsx(
4221
+ Button,
4222
+ {
4223
+ variant: "ghost",
4224
+ size: "sm",
4225
+ type: "button",
4226
+ onClick: onFunctional,
4227
+ children: "Only Functional"
4228
+ }
4229
+ ),
4230
+ /* @__PURE__ */ jsxRuntime.jsx(
4231
+ Button,
4232
+ {
4233
+ variant: "default",
4234
+ size: "sm",
4235
+ type: "button",
4236
+ onClick: onAccept,
4237
+ children: "Accept All"
4238
+ }
4239
+ )
4240
+ ] })
4241
+ ] }) })
4467
4242
  }
4468
4243
  );
4469
4244
  }
@@ -4490,6 +4265,7 @@ exports.Avatar = Avatar;
4490
4265
  exports.AvatarFallback = AvatarFallback;
4491
4266
  exports.AvatarImage = AvatarImage;
4492
4267
  exports.Badge = Badge;
4268
+ exports.Blockquote = Blockquote;
4493
4269
  exports.Breadcrumb = Breadcrumb;
4494
4270
  exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
4495
4271
  exports.BreadcrumbItem = BreadcrumbItem;
@@ -4512,40 +4288,14 @@ exports.CarouselContent = CarouselContent;
4512
4288
  exports.CarouselItem = CarouselItem;
4513
4289
  exports.CarouselNext = CarouselNext;
4514
4290
  exports.CarouselPrevious = CarouselPrevious;
4515
- exports.ChartContainer = ChartContainer;
4516
- exports.ChartLegend = ChartLegend;
4517
- exports.ChartLegendContent = ChartLegendContent;
4518
- exports.ChartStyle = ChartStyle;
4519
- exports.ChartTooltip = ChartTooltip;
4520
- exports.ChartTooltipContent = ChartTooltipContent;
4521
4291
  exports.Checkbox = Checkbox;
4292
+ exports.Code = Code;
4522
4293
  exports.Collapsible = Collapsible;
4523
4294
  exports.CollapsibleContent = CollapsibleContent;
4524
4295
  exports.CollapsibleTrigger = CollapsibleTrigger;
4525
- exports.Command = Command;
4526
- exports.CommandDialog = CommandDialog;
4527
- exports.CommandEmpty = CommandEmpty;
4528
- exports.CommandGroup = CommandGroup;
4529
- exports.CommandInput = CommandInput;
4530
- exports.CommandItem = CommandItem;
4531
- exports.CommandList = CommandList;
4532
- exports.CommandSeparator = CommandSeparator;
4533
- exports.CommandShortcut = CommandShortcut;
4534
- exports.ContextMenu = ContextMenu;
4535
- exports.ContextMenuCheckboxItem = ContextMenuCheckboxItem;
4536
- exports.ContextMenuContent = ContextMenuContent;
4537
- exports.ContextMenuGroup = ContextMenuGroup;
4538
- exports.ContextMenuItem = ContextMenuItem;
4539
- exports.ContextMenuLabel = ContextMenuLabel;
4540
- exports.ContextMenuPortal = ContextMenuPortal;
4541
- exports.ContextMenuRadioGroup = ContextMenuRadioGroup;
4542
- exports.ContextMenuRadioItem = ContextMenuRadioItem;
4543
- exports.ContextMenuSeparator = ContextMenuSeparator;
4544
- exports.ContextMenuShortcut = ContextMenuShortcut;
4545
- exports.ContextMenuSub = ContextMenuSub;
4546
- exports.ContextMenuSubContent = ContextMenuSubContent;
4547
- exports.ContextMenuSubTrigger = ContextMenuSubTrigger;
4548
- exports.ContextMenuTrigger = ContextMenuTrigger;
4296
+ exports.Content = Content;
4297
+ exports.ContentExample = ContentExample;
4298
+ exports.CookiesBanner = CookiesBanner;
4549
4299
  exports.Dialog = Dialog;
4550
4300
  exports.DialogClose = DialogClose;
4551
4301
  exports.DialogContent = DialogContent;
@@ -4556,16 +4306,6 @@ exports.DialogOverlay = DialogOverlay;
4556
4306
  exports.DialogPortal = DialogPortal;
4557
4307
  exports.DialogTitle = DialogTitle;
4558
4308
  exports.DialogTrigger = DialogTrigger;
4559
- exports.Drawer = Drawer;
4560
- exports.DrawerClose = DrawerClose;
4561
- exports.DrawerContent = DrawerContent;
4562
- exports.DrawerDescription = DrawerDescription;
4563
- exports.DrawerFooter = DrawerFooter;
4564
- exports.DrawerHeader = DrawerHeader;
4565
- exports.DrawerOverlay = DrawerOverlay;
4566
- exports.DrawerPortal = DrawerPortal;
4567
- exports.DrawerTitle = DrawerTitle;
4568
- exports.DrawerTrigger = DrawerTrigger;
4569
4309
  exports.DropdownMenu = DropdownMenu;
4570
4310
  exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
4571
4311
  exports.DropdownMenuContent = DropdownMenuContent;
@@ -4581,6 +4321,8 @@ exports.DropdownMenuSub = DropdownMenuSub;
4581
4321
  exports.DropdownMenuSubContent = DropdownMenuSubContent;
4582
4322
  exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
4583
4323
  exports.DropdownMenuTrigger = DropdownMenuTrigger;
4324
+ exports.FeedbackForm = FeedbackForm;
4325
+ exports.Footer = Footer;
4584
4326
  exports.Form = Form;
4585
4327
  exports.FormControl = FormControl;
4586
4328
  exports.FormDescription = FormDescription;
@@ -4588,15 +4330,16 @@ exports.FormField = FormField;
4588
4330
  exports.FormItem = FormItem;
4589
4331
  exports.FormLabel = FormLabel;
4590
4332
  exports.FormMessage = FormMessage;
4591
- exports.HoverCard = HoverCard;
4592
- exports.HoverCardContent = HoverCardContent;
4593
- exports.HoverCardTrigger = HoverCardTrigger;
4333
+ exports.H1 = H1;
4334
+ exports.H2 = H2;
4335
+ exports.H3 = H3;
4336
+ exports.H4 = H4;
4337
+ exports.Header = Header;
4594
4338
  exports.Input = Input;
4595
- exports.InputOTP = InputOTP;
4596
- exports.InputOTPGroup = InputOTPGroup;
4597
- exports.InputOTPSeparator = InputOTPSeparator;
4598
- exports.InputOTPSlot = InputOTPSlot;
4599
4339
  exports.Label = Label;
4340
+ exports.Lead = Lead;
4341
+ exports.Link = Link;
4342
+ exports.List = List;
4600
4343
  exports.Menubar = Menubar;
4601
4344
  exports.MenubarCheckboxItem = MenubarCheckboxItem;
4602
4345
  exports.MenubarContent = MenubarContent;
@@ -4613,6 +4356,7 @@ exports.MenubarSub = MenubarSub;
4613
4356
  exports.MenubarSubContent = MenubarSubContent;
4614
4357
  exports.MenubarSubTrigger = MenubarSubTrigger;
4615
4358
  exports.MenubarTrigger = MenubarTrigger;
4359
+ exports.Muted = Muted;
4616
4360
  exports.NavigationMenu = NavigationMenu;
4617
4361
  exports.NavigationMenuContent = NavigationMenuContent;
4618
4362
  exports.NavigationMenuIndicator = NavigationMenuIndicator;
@@ -4621,23 +4365,17 @@ exports.NavigationMenuLink = NavigationMenuLink;
4621
4365
  exports.NavigationMenuList = NavigationMenuList;
4622
4366
  exports.NavigationMenuTrigger = NavigationMenuTrigger;
4623
4367
  exports.NavigationMenuViewport = NavigationMenuViewport;
4624
- exports.Pagination = Pagination;
4625
- exports.PaginationContent = PaginationContent;
4626
- exports.PaginationEllipsis = PaginationEllipsis;
4627
- exports.PaginationItem = PaginationItem;
4628
- exports.PaginationLink = PaginationLink;
4629
- exports.PaginationNext = PaginationNext;
4630
- exports.PaginationPrevious = PaginationPrevious;
4631
- exports.Popover = Popover;
4632
- exports.PopoverAnchor = PopoverAnchor;
4633
- exports.PopoverContent = PopoverContent;
4634
- exports.PopoverTrigger = PopoverTrigger;
4368
+ exports.OrderedList = OrderedList;
4369
+ exports.P = P;
4370
+ exports.Panel = Panel;
4371
+ exports.PanelContent = PanelContent;
4372
+ exports.PanelDescription = PanelDescription;
4373
+ exports.PanelFooter = PanelFooter;
4374
+ exports.PanelHeader = PanelHeader;
4375
+ exports.PanelTitle = PanelTitle;
4635
4376
  exports.Progress = Progress;
4636
4377
  exports.RadioGroup = RadioGroup;
4637
4378
  exports.RadioGroupItem = RadioGroupItem;
4638
- exports.ResizableHandle = ResizableHandle;
4639
- exports.ResizablePanel = ResizablePanel;
4640
- exports.ResizablePanelGroup = ResizablePanelGroup;
4641
4379
  exports.ScrollArea = ScrollArea;
4642
4380
  exports.ScrollBar = ScrollBar;
4643
4381
  exports.Select = Select;
@@ -4684,10 +4422,12 @@ exports.SidebarSeparator = SidebarSeparator;
4684
4422
  exports.SidebarTrigger = SidebarTrigger;
4685
4423
  exports.Skeleton = Skeleton;
4686
4424
  exports.Slider = Slider;
4425
+ exports.Small = Small;
4687
4426
  exports.Stepper = Stepper;
4688
4427
  exports.StepperContent = StepperContent;
4689
4428
  exports.StepperFooter = StepperFooter;
4690
4429
  exports.StepperHeader = StepperHeader;
4430
+ exports.Strong = Strong;
4691
4431
  exports.Switch = Switch;
4692
4432
  exports.Table = Table;
4693
4433
  exports.TableBody = TableBody;