@arolariu/components 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/changelog.md +11 -0
  2. package/dist/components/ui/accordion.d.ts +4 -4
  3. package/dist/components/ui/accordion.d.ts.map +1 -1
  4. package/dist/components/ui/accordion.js +19 -27
  5. package/dist/components/ui/accordion.js.map +1 -1
  6. package/dist/components/ui/alert-dialog.d.ts +17 -11
  7. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  8. package/dist/components/ui/alert-dialog.js +38 -61
  9. package/dist/components/ui/alert-dialog.js.map +1 -1
  10. package/dist/components/ui/alert.d.ts +4 -5
  11. package/dist/components/ui/alert.d.ts.map +1 -1
  12. package/dist/components/ui/alert.js +17 -20
  13. package/dist/components/ui/alert.js.map +1 -1
  14. package/dist/components/ui/aspect-ratio.d.ts +1 -2
  15. package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
  16. package/dist/components/ui/aspect-ratio.js +1 -8
  17. package/dist/components/ui/aspect-ratio.js.map +1 -1
  18. package/dist/components/ui/avatar.d.ts +3 -3
  19. package/dist/components/ui/avatar.d.ts.map +1 -1
  20. package/dist/components/ui/avatar.js +16 -19
  21. package/dist/components/ui/avatar.js.map +1 -1
  22. package/dist/components/ui/badge.d.ts +3 -3
  23. package/dist/components/ui/badge.d.ts.map +1 -1
  24. package/dist/components/ui/badge.js +7 -10
  25. package/dist/components/ui/badge.js.map +1 -1
  26. package/dist/components/ui/breadcrumb.d.ts +16 -8
  27. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  28. package/dist/components/ui/breadcrumb.js +28 -35
  29. package/dist/components/ui/breadcrumb.js.map +1 -1
  30. package/dist/components/ui/button-group.d.ts +13 -0
  31. package/dist/components/ui/button-group.d.ts.map +1 -0
  32. package/dist/components/ui/button-group.js +47 -0
  33. package/dist/components/ui/button-group.js.map +1 -0
  34. package/dist/components/ui/button.d.ts +3 -2
  35. package/dist/components/ui/button.d.ts.map +1 -1
  36. package/dist/components/ui/button.js +15 -14
  37. package/dist/components/ui/button.js.map +1 -1
  38. package/dist/components/ui/calendar.d.ts.map +1 -1
  39. package/dist/components/ui/calendar.js +20 -20
  40. package/dist/components/ui/calendar.js.map +1 -1
  41. package/dist/components/ui/card.d.ts +7 -8
  42. package/dist/components/ui/card.d.ts.map +1 -1
  43. package/dist/components/ui/card.js +31 -44
  44. package/dist/components/ui/card.js.map +1 -1
  45. package/dist/components/ui/carousel.d.ts +5 -6
  46. package/dist/components/ui/carousel.d.ts.map +1 -1
  47. package/dist/components/ui/carousel.js +30 -21
  48. package/dist/components/ui/carousel.js.map +1 -1
  49. package/dist/components/ui/chart.d.ts +35 -27
  50. package/dist/components/ui/chart.d.ts.map +1 -1
  51. package/dist/components/ui/chart.js +28 -26
  52. package/dist/components/ui/chart.js.map +1 -1
  53. package/dist/components/ui/checkbox.d.ts +1 -1
  54. package/dist/components/ui/checkbox.d.ts.map +1 -1
  55. package/dist/components/ui/checkbox.js +10 -12
  56. package/dist/components/ui/checkbox.js.map +1 -1
  57. package/dist/components/ui/collapsible.d.ts +3 -4
  58. package/dist/components/ui/collapsible.d.ts.map +1 -1
  59. package/dist/components/ui/collapsible.js +3 -20
  60. package/dist/components/ui/collapsible.js.map +1 -1
  61. package/dist/components/ui/command.d.ts +78 -16
  62. package/dist/components/ui/command.d.ts.map +1 -1
  63. package/dist/components/ui/command.js +47 -72
  64. package/dist/components/ui/command.js.map +1 -1
  65. package/dist/components/ui/context-menu.d.ts +21 -19
  66. package/dist/components/ui/context-menu.d.ts.map +1 -1
  67. package/dist/components/ui/context-menu.js +57 -101
  68. package/dist/components/ui/context-menu.js.map +1 -1
  69. package/dist/components/ui/dialog.d.ts +16 -12
  70. package/dist/components/ui/dialog.d.ts.map +1 -1
  71. package/dist/components/ui/dialog.js +36 -64
  72. package/dist/components/ui/dialog.js.map +1 -1
  73. package/dist/components/ui/drawer.d.ts +19 -10
  74. package/dist/components/ui/drawer.d.ts.map +1 -1
  75. package/dist/components/ui/drawer.js +32 -57
  76. package/dist/components/ui/drawer.js.map +1 -1
  77. package/dist/components/ui/dropdown-menu.d.ts +21 -19
  78. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  79. package/dist/components/ui/dropdown-menu.js +64 -108
  80. package/dist/components/ui/dropdown-menu.js.map +1 -1
  81. package/dist/components/ui/dropdrawer.d.ts +1 -1
  82. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  83. package/dist/components/ui/dropdrawer.js +2 -5
  84. package/dist/components/ui/dropdrawer.js.map +1 -1
  85. package/dist/components/ui/empty.d.ts +13 -0
  86. package/dist/components/ui/empty.d.ts.map +1 -0
  87. package/dist/components/ui/empty.js +65 -0
  88. package/dist/components/ui/empty.js.map +1 -0
  89. package/dist/components/ui/field.d.ts +25 -0
  90. package/dist/components/ui/field.d.ts.map +1 -0
  91. package/dist/components/ui/field.js +135 -0
  92. package/dist/components/ui/field.js.map +1 -0
  93. package/dist/components/ui/form.d.ts +5 -6
  94. package/dist/components/ui/form.d.ts.map +1 -1
  95. package/dist/components/ui/form.js +28 -27
  96. package/dist/components/ui/form.js.map +1 -1
  97. package/dist/components/ui/hover-card.d.ts +3 -3
  98. package/dist/components/ui/hover-card.d.ts.map +1 -1
  99. package/dist/components/ui/hover-card.js +11 -25
  100. package/dist/components/ui/hover-card.js.map +1 -1
  101. package/dist/components/ui/input-group.d.ts +17 -0
  102. package/dist/components/ui/input-group.d.ts.map +1 -0
  103. package/dist/components/ui/input-group.js +91 -0
  104. package/dist/components/ui/input-group.js.map +1 -0
  105. package/dist/components/ui/input-otp.d.ts +30 -7
  106. package/dist/components/ui/input-otp.d.ts.map +1 -1
  107. package/dist/components/ui/input-otp.js +23 -26
  108. package/dist/components/ui/input-otp.js.map +1 -1
  109. package/dist/components/ui/input.d.ts +1 -1
  110. package/dist/components/ui/input.d.ts.map +1 -1
  111. package/dist/components/ui/input.js +6 -7
  112. package/dist/components/ui/input.js.map +1 -1
  113. package/dist/components/ui/item.d.ts +24 -0
  114. package/dist/components/ui/item.d.ts.map +1 -0
  115. package/dist/components/ui/item.js +122 -0
  116. package/dist/components/ui/item.js.map +1 -0
  117. package/dist/components/ui/kbd.d.ts +5 -0
  118. package/dist/components/ui/kbd.d.ts.map +1 -0
  119. package/dist/components/ui/kbd.js +21 -0
  120. package/dist/components/ui/kbd.js.map +1 -0
  121. package/dist/components/ui/label.d.ts +2 -1
  122. package/dist/components/ui/label.d.ts.map +1 -1
  123. package/dist/components/ui/label.js +8 -7
  124. package/dist/components/ui/label.js.map +1 -1
  125. package/dist/components/ui/menubar.d.ts +18 -16
  126. package/dist/components/ui/menubar.d.ts.map +1 -1
  127. package/dist/components/ui/menubar.js +73 -93
  128. package/dist/components/ui/menubar.js.map +1 -1
  129. package/dist/components/ui/navigation-menu.d.ts +8 -10
  130. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  131. package/dist/components/ui/navigation-menu.js +37 -55
  132. package/dist/components/ui/navigation-menu.js.map +1 -1
  133. package/dist/components/ui/pagination.d.ts +24 -9
  134. package/dist/components/ui/pagination.d.ts.map +1 -1
  135. package/dist/components/ui/pagination.js +33 -45
  136. package/dist/components/ui/pagination.js.map +1 -1
  137. package/dist/components/ui/popover.d.ts +4 -4
  138. package/dist/components/ui/popover.d.ts.map +1 -1
  139. package/dist/components/ui/popover.js +9 -25
  140. package/dist/components/ui/popover.js.map +1 -1
  141. package/dist/components/ui/progress.d.ts +1 -1
  142. package/dist/components/ui/progress.d.ts.map +1 -1
  143. package/dist/components/ui/progress.js +5 -7
  144. package/dist/components/ui/progress.js.map +1 -1
  145. package/dist/components/ui/radio-group.d.ts +2 -2
  146. package/dist/components/ui/radio-group.d.ts.map +1 -1
  147. package/dist/components/ui/radio-group.js +16 -19
  148. package/dist/components/ui/radio-group.js.map +1 -1
  149. package/dist/components/ui/resizable.d.ts +20 -5
  150. package/dist/components/ui/resizable.d.ts.map +1 -1
  151. package/dist/components/ui/resizable.js +9 -21
  152. package/dist/components/ui/resizable.js.map +1 -1
  153. package/dist/components/ui/scroll-area.d.ts +2 -2
  154. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  155. package/dist/components/ui/scroll-area.js +12 -16
  156. package/dist/components/ui/scroll-area.js.map +1 -1
  157. package/dist/components/ui/select.d.ts +10 -12
  158. package/dist/components/ui/select.d.ts.map +1 -1
  159. package/dist/components/ui/select.js +54 -77
  160. package/dist/components/ui/select.js.map +1 -1
  161. package/dist/components/ui/separator.d.ts +1 -1
  162. package/dist/components/ui/separator.d.ts.map +1 -1
  163. package/dist/components/ui/separator.js +6 -7
  164. package/dist/components/ui/separator.js.map +1 -1
  165. package/dist/components/ui/sheet.d.ts +23 -11
  166. package/dist/components/ui/sheet.d.ts.map +1 -1
  167. package/dist/components/ui/sheet.js +54 -66
  168. package/dist/components/ui/sheet.js.map +1 -1
  169. package/dist/components/ui/sidebar.d.ts +34 -38
  170. package/dist/components/ui/sidebar.d.ts.map +1 -1
  171. package/dist/components/ui/sidebar.js +113 -122
  172. package/dist/components/ui/sidebar.js.map +1 -1
  173. package/dist/components/ui/skeleton.d.ts +1 -1
  174. package/dist/components/ui/skeleton.d.ts.map +1 -1
  175. package/dist/components/ui/skeleton.js +1 -2
  176. package/dist/components/ui/skeleton.js.map +1 -1
  177. package/dist/components/ui/slider.d.ts +1 -1
  178. package/dist/components/ui/slider.d.ts.map +1 -1
  179. package/dist/components/ui/slider.js +11 -30
  180. package/dist/components/ui/slider.js.map +1 -1
  181. package/dist/components/ui/sonner.d.ts +4 -2
  182. package/dist/components/ui/sonner.d.ts.map +1 -1
  183. package/dist/components/ui/sonner.js +7 -4
  184. package/dist/components/ui/sonner.js.map +1 -1
  185. package/dist/components/ui/spinner.d.ts +4 -0
  186. package/dist/components/ui/spinner.d.ts.map +1 -0
  187. package/dist/components/ui/spinner.js +16 -0
  188. package/dist/components/ui/spinner.js.map +1 -0
  189. package/dist/components/ui/switch.d.ts +2 -2
  190. package/dist/components/ui/switch.d.ts.map +1 -1
  191. package/dist/components/ui/switch.js +7 -9
  192. package/dist/components/ui/switch.js.map +1 -1
  193. package/dist/components/ui/table.d.ts +8 -8
  194. package/dist/components/ui/table.d.ts.map +1 -1
  195. package/dist/components/ui/table.js +36 -45
  196. package/dist/components/ui/table.js.map +1 -1
  197. package/dist/components/ui/tabs.d.ts +4 -4
  198. package/dist/components/ui/tabs.d.ts.map +1 -1
  199. package/dist/components/ui/tabs.js +17 -26
  200. package/dist/components/ui/tabs.js.map +1 -1
  201. package/dist/components/ui/textarea.d.ts +1 -1
  202. package/dist/components/ui/textarea.d.ts.map +1 -1
  203. package/dist/components/ui/textarea.js +6 -7
  204. package/dist/components/ui/textarea.js.map +1 -1
  205. package/dist/components/ui/toggle-group.d.ts +8 -3
  206. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  207. package/dist/components/ui/toggle-group.js +11 -15
  208. package/dist/components/ui/toggle-group.js.map +1 -1
  209. package/dist/components/ui/toggle.d.ts +4 -1
  210. package/dist/components/ui/toggle.d.ts.map +1 -1
  211. package/dist/components/ui/toggle.js +7 -8
  212. package/dist/components/ui/toggle.js.map +1 -1
  213. package/dist/components/ui/tooltip.d.ts +4 -4
  214. package/dist/components/ui/tooltip.d.ts.map +1 -1
  215. package/dist/components/ui/tooltip.js +13 -38
  216. package/dist/components/ui/tooltip.js.map +1 -1
  217. package/dist/components/ui/typewriter.d.ts.map +1 -1
  218. package/dist/components/ui/typewriter.js +2 -6
  219. package/dist/components/ui/typewriter.js.map +1 -1
  220. package/dist/index.css +839 -1126
  221. package/dist/index.css.map +1 -1
  222. package/dist/index.d.ts +9 -3
  223. package/dist/index.d.ts.map +1 -1
  224. package/dist/index.js +9 -3
  225. package/package.json +37 -2
  226. package/src/components/ui/accordion.tsx +43 -44
  227. package/src/components/ui/alert-dialog.tsx +88 -99
  228. package/src/components/ui/alert.tsx +23 -25
  229. package/src/components/ui/aspect-ratio.tsx +1 -9
  230. package/src/components/ui/avatar.tsx +29 -24
  231. package/src/components/ui/badge.tsx +8 -16
  232. package/src/components/ui/breadcrumb.tsx +70 -73
  233. package/src/components/ui/button-group.tsx +69 -0
  234. package/src/components/ui/button.tsx +18 -24
  235. package/src/components/ui/calendar.tsx +20 -22
  236. package/src/components/ui/card.tsx +52 -71
  237. package/src/components/ui/carousel.tsx +145 -133
  238. package/src/components/ui/chart.tsx +173 -183
  239. package/src/components/ui/checkbox.tsx +18 -18
  240. package/src/components/ui/collapsible.tsx +3 -25
  241. package/src/components/ui/command.tsx +100 -99
  242. package/src/components/ui/context-menu.tsx +150 -193
  243. package/src/components/ui/dialog.tsx +75 -110
  244. package/src/components/ui/drawer.tsx +74 -102
  245. package/src/components/ui/dropdown-menu.tsx +153 -200
  246. package/src/components/ui/dropdrawer.tsx +0 -5
  247. package/src/components/ui/empty.tsx +86 -0
  248. package/src/components/ui/field.tsx +198 -0
  249. package/src/components/ui/form.tsx +47 -48
  250. package/src/components/ui/hover-card.tsx +18 -37
  251. package/src/components/ui/input-group.tsx +145 -0
  252. package/src/components/ui/input-otp.tsx +49 -59
  253. package/src/components/ui/input.tsx +5 -6
  254. package/src/components/ui/item.tsx +163 -0
  255. package/src/components/ui/kbd.tsx +31 -0
  256. package/src/components/ui/label.tsx +14 -12
  257. package/src/components/ui/menubar.tsx +178 -201
  258. package/src/components/ui/navigation-menu.tsx +85 -100
  259. package/src/components/ui/pagination.tsx +74 -85
  260. package/src/components/ui/popover.tsx +19 -38
  261. package/src/components/ui/progress.tsx +15 -14
  262. package/src/components/ui/radio-group.tsx +19 -13
  263. package/src/components/ui/resizable.tsx +23 -37
  264. package/src/components/ui/scroll-area.tsx +32 -35
  265. package/src/components/ui/select.tsx +112 -127
  266. package/src/components/ui/separator.tsx +17 -19
  267. package/src/components/ui/sheet.tsx +87 -108
  268. package/src/components/ui/sidebar.tsx +262 -271
  269. package/src/components/ui/skeleton.tsx +2 -3
  270. package/src/components/ui/slider.tsx +10 -36
  271. package/src/components/ui/sonner.tsx +15 -9
  272. package/src/components/ui/spinner.tsx +18 -0
  273. package/src/components/ui/switch.tsx +18 -17
  274. package/src/components/ui/table.tsx +66 -71
  275. package/src/components/ui/tabs.tsx +36 -36
  276. package/src/components/ui/textarea.tsx +5 -4
  277. package/src/components/ui/toggle-group.tsx +21 -34
  278. package/src/components/ui/toggle.tsx +14 -16
  279. package/src/components/ui/tooltip.tsx +19 -43
  280. package/src/components/ui/typewriter.tsx +3 -4
  281. package/src/index.css +6 -6
  282. package/src/index.ts +43 -4
@@ -1,131 +1,96 @@
1
1
  "use client";
2
2
 
3
3
  import * as DialogPrimitive from "@radix-ui/react-dialog";
4
- import {XIcon} from "lucide-react";
4
+ import {X} from "lucide-react";
5
5
  import * as React from "react";
6
6
 
7
7
  import {cn} from "@/lib/utilities";
8
8
 
9
- function Dialog({...props}: React.ComponentProps<typeof DialogPrimitive.Root>) {
10
- return (
11
- <DialogPrimitive.Root
12
- data-slot='dialog'
13
- {...props}
14
- />
15
- );
16
- }
9
+ const Dialog = DialogPrimitive.Root;
17
10
 
18
- function DialogTrigger({...props}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
19
- return (
20
- <DialogPrimitive.Trigger
21
- data-slot='dialog-trigger'
22
- {...props}
23
- />
24
- );
25
- }
11
+ const DialogTrigger = DialogPrimitive.Trigger;
26
12
 
27
- function DialogPortal({...props}: React.ComponentProps<typeof DialogPrimitive.Portal>) {
28
- return (
29
- <DialogPrimitive.Portal
30
- data-slot='dialog-portal'
31
- {...props}
32
- />
33
- );
34
- }
13
+ const DialogPortal = DialogPrimitive.Portal;
35
14
 
36
- function DialogClose({...props}: React.ComponentProps<typeof DialogPrimitive.Close>) {
37
- return (
38
- <DialogPrimitive.Close
39
- data-slot='dialog-close'
40
- {...props}
41
- />
42
- );
43
- }
15
+ const DialogClose = DialogPrimitive.Close;
44
16
 
45
- function DialogOverlay({className, ...props}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
46
- return (
47
- <DialogPrimitive.Overlay
48
- data-slot='dialog-overlay'
17
+ const DialogOverlay = React.forwardRef<
18
+ React.ElementRef<typeof DialogPrimitive.Overlay>,
19
+ React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>
20
+ >(({className, ...props}, ref) => (
21
+ <DialogPrimitive.Overlay
22
+ ref={ref}
23
+ className={cn(
24
+ "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/80",
25
+ className,
26
+ )}
27
+ {...props}
28
+ />
29
+ ));
30
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
31
+
32
+ const DialogContent = React.forwardRef<
33
+ React.ElementRef<typeof DialogPrimitive.Content>,
34
+ React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>
35
+ >(({className, children, ...props}, ref) => (
36
+ <DialogPortal>
37
+ <DialogOverlay />
38
+ <DialogPrimitive.Content
39
+ ref={ref}
49
40
  className={cn(
50
- "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",
41
+ "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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-neutral-200 bg-white p-6 shadow-lg duration-200 sm:rounded-lg dark:border-neutral-800 dark:bg-neutral-950",
51
42
  className,
52
43
  )}
53
- {...props}
54
- />
55
- );
56
- }
57
-
58
- function DialogContent({
59
- className,
60
- children,
61
- showCloseButton = true,
62
- ...props
63
- }: React.ComponentProps<typeof DialogPrimitive.Content> & {
64
- showCloseButton?: boolean;
65
- }) {
66
- return (
67
- <DialogPortal data-slot='dialog-portal'>
68
- <DialogOverlay />
69
- <DialogPrimitive.Content
70
- data-slot='dialog-content'
71
- className={cn(
72
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border border-neutral-200 bg-white p-6 shadow-lg duration-200 sm:max-w-lg dark:border-neutral-800 dark:bg-neutral-950",
73
- className,
74
- )}
75
- {...props}>
76
- {children}
77
- {Boolean(showCloseButton) && (
78
- <DialogPrimitive.Close
79
- data-slot='dialog-close'
80
- className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4">
81
- <XIcon />
82
- <span className='sr-only'>Close</span>
83
- </DialogPrimitive.Close>
84
- )}
85
- </DialogPrimitive.Content>
86
- </DialogPortal>
87
- );
88
- }
44
+ {...props}>
45
+ {children}
46
+ <DialogPrimitive.Close className='absolute top-4 right-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400'>
47
+ <X className='h-4 w-4' />
48
+ <span className='sr-only'>Close</span>
49
+ </DialogPrimitive.Close>
50
+ </DialogPrimitive.Content>
51
+ </DialogPortal>
52
+ ));
53
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
89
54
 
90
- function DialogHeader({className, ...props}: React.ComponentProps<"div">) {
91
- return (
92
- <div
93
- data-slot='dialog-header'
94
- className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
95
- {...props}
96
- />
97
- );
98
- }
55
+ const DialogHeader = ({className, ...props}: React.HTMLAttributes<HTMLDivElement>) => (
56
+ <div
57
+ className={cn("flex flex-col space-y-1.5 text-center sm:text-left", className)}
58
+ {...props}
59
+ />
60
+ );
61
+ DialogHeader.displayName = "DialogHeader";
99
62
 
100
- function DialogFooter({className, ...props}: React.ComponentProps<"div">) {
101
- return (
102
- <div
103
- data-slot='dialog-footer'
104
- className={cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className)}
105
- {...props}
106
- />
107
- );
108
- }
63
+ const DialogFooter = ({className, ...props}: React.HTMLAttributes<HTMLDivElement>) => (
64
+ <div
65
+ className={cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className)}
66
+ {...props}
67
+ />
68
+ );
69
+ DialogFooter.displayName = "DialogFooter";
109
70
 
110
- function DialogTitle({className, ...props}: React.ComponentProps<typeof DialogPrimitive.Title>) {
111
- return (
112
- <DialogPrimitive.Title
113
- data-slot='dialog-title'
114
- className={cn("text-lg leading-none font-semibold", className)}
115
- {...props}
116
- />
117
- );
118
- }
71
+ const DialogTitle = React.forwardRef<
72
+ React.ElementRef<typeof DialogPrimitive.Title>,
73
+ React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>
74
+ >(({className, ...props}, ref) => (
75
+ <DialogPrimitive.Title
76
+ ref={ref}
77
+ className={cn("text-lg leading-none font-semibold tracking-tight", className)}
78
+ {...props}
79
+ />
80
+ ));
81
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
119
82
 
120
- function DialogDescription({className, ...props}: React.ComponentProps<typeof DialogPrimitive.Description>) {
121
- return (
122
- <DialogPrimitive.Description
123
- data-slot='dialog-description'
124
- className={cn("text-sm text-neutral-500 dark:text-neutral-400", className)}
125
- {...props}
126
- />
127
- );
128
- }
83
+ const DialogDescription = React.forwardRef<
84
+ React.ElementRef<typeof DialogPrimitive.Description>,
85
+ React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>
86
+ >(({className, ...props}, ref) => (
87
+ <DialogPrimitive.Description
88
+ ref={ref}
89
+ className={cn("text-sm text-neutral-500 dark:text-neutral-400", className)}
90
+ {...props}
91
+ />
92
+ ));
93
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
129
94
 
130
95
  export {
131
96
  Dialog,
@@ -5,119 +5,91 @@ import {Drawer as DrawerPrimitive} from "vaul";
5
5
 
6
6
  import {cn} from "@/lib/utilities";
7
7
 
8
- function Drawer({...props}: React.ComponentProps<typeof DrawerPrimitive.Root>) {
9
- return (
10
- <DrawerPrimitive.Root
11
- data-slot='drawer'
12
- {...props}
13
- />
14
- );
15
- }
8
+ const Drawer = ({shouldScaleBackground = true, ...props}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (
9
+ <DrawerPrimitive.Root
10
+ shouldScaleBackground={shouldScaleBackground}
11
+ {...props}
12
+ />
13
+ );
14
+ Drawer.displayName = "Drawer";
16
15
 
17
- function DrawerTrigger({...props}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {
18
- return (
19
- <DrawerPrimitive.Trigger
20
- data-slot='drawer-trigger'
21
- {...props}
22
- />
23
- );
24
- }
16
+ const DrawerTrigger = DrawerPrimitive.Trigger;
25
17
 
26
- function DrawerPortal({...props}: React.ComponentProps<typeof DrawerPrimitive.Portal>) {
27
- return (
28
- <DrawerPrimitive.Portal
29
- data-slot='drawer-portal'
30
- {...props}
31
- />
32
- );
33
- }
18
+ const DrawerPortal = DrawerPrimitive.Portal;
34
19
 
35
- function DrawerClose({...props}: React.ComponentProps<typeof DrawerPrimitive.Close>) {
36
- return (
37
- <DrawerPrimitive.Close
38
- data-slot='drawer-close'
39
- {...props}
40
- />
41
- );
42
- }
20
+ const DrawerClose = DrawerPrimitive.Close;
43
21
 
44
- function DrawerOverlay({className, ...props}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {
45
- return (
46
- <DrawerPrimitive.Overlay
47
- data-slot='drawer-overlay'
48
- className={cn(
49
- "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",
50
- className,
51
- )}
52
- {...props}
53
- />
54
- );
55
- }
22
+ const DrawerOverlay = React.forwardRef<
23
+ React.ElementRef<typeof DrawerPrimitive.Overlay>,
24
+ React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>
25
+ >(({className, ...props}, ref) => (
26
+ <DrawerPrimitive.Overlay
27
+ ref={ref}
28
+ className={cn("fixed inset-0 z-50 bg-black/80", className)}
29
+ {...props}
30
+ />
31
+ ));
32
+ DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
56
33
 
57
- function DrawerContent({className, children, ...props}: React.ComponentProps<typeof DrawerPrimitive.Content>) {
58
- return (
59
- <DrawerPortal data-slot='drawer-portal'>
60
- <DrawerOverlay />
61
- <DrawerPrimitive.Content
62
- data-slot='drawer-content'
63
- className={cn(
64
- "group/drawer-content fixed z-50 flex h-auto flex-col bg-white dark:bg-neutral-950",
65
- "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",
66
- "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",
67
- "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",
68
- "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",
69
- className,
70
- )}
71
- {...props}>
72
- <div className='mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-neutral-100 group-data-[vaul-drawer-direction=bottom]/drawer-content:block dark:bg-neutral-800' />
73
- {children}
74
- </DrawerPrimitive.Content>
75
- </DrawerPortal>
76
- );
77
- }
78
-
79
- function DrawerHeader({className, ...props}: React.ComponentProps<"div">) {
80
- return (
81
- <div
82
- data-slot='drawer-header'
34
+ const DrawerContent = React.forwardRef<
35
+ React.ElementRef<typeof DrawerPrimitive.Content>,
36
+ React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>
37
+ >(({className, children, ...props}, ref) => (
38
+ <DrawerPortal>
39
+ <DrawerOverlay />
40
+ <DrawerPrimitive.Content
41
+ ref={ref}
83
42
  className={cn(
84
- "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",
43
+ "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border border-neutral-200 bg-white dark:border-neutral-800 dark:bg-neutral-950",
85
44
  className,
86
45
  )}
87
- {...props}
88
- />
89
- );
90
- }
46
+ {...props}>
47
+ <div className='mx-auto mt-4 h-2 w-[100px] rounded-full bg-neutral-100 dark:bg-neutral-800' />
48
+ {children}
49
+ </DrawerPrimitive.Content>
50
+ </DrawerPortal>
51
+ ));
52
+ DrawerContent.displayName = "DrawerContent";
53
+
54
+ const DrawerHeader = ({className, ...props}: React.HTMLAttributes<HTMLDivElement>) => (
55
+ <div
56
+ className={cn("grid gap-1.5 p-4 text-center sm:text-left", className)}
57
+ {...props}
58
+ />
59
+ );
60
+ DrawerHeader.displayName = "DrawerHeader";
91
61
 
92
- function DrawerFooter({className, ...props}: React.ComponentProps<"div">) {
93
- return (
94
- <div
95
- data-slot='drawer-footer'
96
- className={cn("mt-auto flex flex-col gap-2 p-4", className)}
97
- {...props}
98
- />
99
- );
100
- }
62
+ const DrawerFooter = ({className, ...props}: React.HTMLAttributes<HTMLDivElement>) => (
63
+ <div
64
+ className={cn("mt-auto flex flex-col gap-2 p-4", className)}
65
+ {...props}
66
+ />
67
+ );
68
+ DrawerFooter.displayName = "DrawerFooter";
101
69
 
102
- function DrawerTitle({className, ...props}: React.ComponentProps<typeof DrawerPrimitive.Title>) {
103
- return (
104
- <DrawerPrimitive.Title
105
- data-slot='drawer-title'
106
- className={cn("font-semibold text-neutral-950 dark:text-neutral-50", className)}
107
- {...props}
108
- />
109
- );
110
- }
70
+ const DrawerTitle = React.forwardRef<
71
+ React.ElementRef<typeof DrawerPrimitive.Title>,
72
+ React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>
73
+ >(({className, ...props}, ref) => (
74
+ <DrawerPrimitive.Title
75
+ ref={ref}
76
+ className={cn("text-lg leading-none font-semibold tracking-tight", className)}
77
+ {...props}
78
+ />
79
+ ));
80
+ DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
111
81
 
112
- function DrawerDescription({className, ...props}: React.ComponentProps<typeof DrawerPrimitive.Description>) {
113
- return (
114
- <DrawerPrimitive.Description
115
- data-slot='drawer-description'
116
- className={cn("text-sm text-neutral-500 dark:text-neutral-400", className)}
117
- {...props}
118
- />
119
- );
120
- }
82
+ const DrawerDescription = React.forwardRef<
83
+ React.ElementRef<typeof DrawerPrimitive.Description>,
84
+ React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>
85
+ >(({className, ...props}, ref) => (
86
+ <DrawerPrimitive.Description
87
+ ref={ref}
88
+ className={cn("text-sm text-neutral-500 dark:text-neutral-400", className)}
89
+ {...props}
90
+ />
91
+ ));
92
+ DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
121
93
 
122
94
  export {
123
95
  Drawer,