@codefast/ui 0.0.64 → 0.0.66

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 (276) hide show
  1. package/dist/{chunk-ZMF2SRE5.js → chunk-26W5NJTU.js} +1 -1
  2. package/dist/chunk-26W5NJTU.js.map +1 -0
  3. package/dist/chunk-3COHZ24E.cjs +2 -0
  4. package/dist/chunk-3COHZ24E.cjs.map +1 -0
  5. package/dist/chunk-4MTN7WZ2.cjs +2 -0
  6. package/dist/chunk-4MTN7WZ2.cjs.map +1 -0
  7. package/dist/chunk-5QETIFO4.js +2 -0
  8. package/dist/chunk-5QETIFO4.js.map +1 -0
  9. package/dist/{chunk-WECV77JD.cjs → chunk-5RJANBDJ.cjs} +1 -1
  10. package/dist/chunk-5RJANBDJ.cjs.map +1 -0
  11. package/dist/chunk-6UQKMUZG.cjs +2 -0
  12. package/dist/chunk-6UQKMUZG.cjs.map +1 -0
  13. package/dist/chunk-AVEDWLNQ.js +2 -0
  14. package/dist/chunk-AVEDWLNQ.js.map +1 -0
  15. package/dist/{chunk-YLE5XFEO.cjs → chunk-EW7DAPDC.cjs} +1 -1
  16. package/dist/chunk-EW7DAPDC.cjs.map +1 -0
  17. package/dist/chunk-HDHZESSG.js +2 -0
  18. package/dist/chunk-HDHZESSG.js.map +1 -0
  19. package/dist/{chunk-GCHNSK5O.cjs → chunk-JMM2MTPI.cjs} +1 -1
  20. package/dist/chunk-JMM2MTPI.cjs.map +1 -0
  21. package/dist/{chunk-WRO3QIWH.js → chunk-JNOLIDCD.js} +1 -1
  22. package/dist/chunk-JNOLIDCD.js.map +1 -0
  23. package/dist/{chunk-F5TIIJJJ.cjs → chunk-LOJBMYTH.cjs} +1 -1
  24. package/dist/chunk-LOJBMYTH.cjs.map +1 -0
  25. package/dist/{chunk-A5ILA637.js → chunk-RBP4PBCK.js} +1 -1
  26. package/dist/chunk-RBP4PBCK.js.map +1 -0
  27. package/dist/{chunk-L7IASKCH.js → chunk-RVGKUNXC.js} +1 -1
  28. package/dist/{chunk-L7IASKCH.js.map → chunk-RVGKUNXC.js.map} +1 -1
  29. package/dist/{chunk-72NPDP3X.cjs → chunk-T3G5USVY.cjs} +1 -1
  30. package/dist/chunk-T3G5USVY.cjs.map +1 -0
  31. package/dist/chunk-VDVLCSO4.js +2 -0
  32. package/dist/chunk-VDVLCSO4.js.map +1 -0
  33. package/dist/{chunk-2OBTJ7SD.cjs → chunk-WKKCZQNO.cjs} +2 -2
  34. package/dist/chunk-WKKCZQNO.cjs.map +1 -0
  35. package/dist/{chunk-FNQFZJUG.js → chunk-WQFHFTYS.js} +1 -1
  36. package/dist/chunk-WQFHFTYS.js.map +1 -0
  37. package/dist/react/accordion.cjs.map +1 -1
  38. package/dist/react/accordion.js.map +1 -1
  39. package/dist/react/alert-dialog.cjs +1 -1
  40. package/dist/react/alert-dialog.cjs.map +1 -1
  41. package/dist/react/alert-dialog.d.cts +3 -1
  42. package/dist/react/alert-dialog.d.ts +3 -1
  43. package/dist/react/alert-dialog.js +1 -1
  44. package/dist/react/alert-dialog.js.map +1 -1
  45. package/dist/react/alert.cjs.map +1 -1
  46. package/dist/react/alert.js.map +1 -1
  47. package/dist/react/avatar.cjs.map +1 -1
  48. package/dist/react/avatar.js.map +1 -1
  49. package/dist/react/blockquote.cjs.map +1 -1
  50. package/dist/react/blockquote.js.map +1 -1
  51. package/dist/react/box.cjs.map +1 -1
  52. package/dist/react/box.js.map +1 -1
  53. package/dist/react/breadcrumb.cjs +1 -1
  54. package/dist/react/breadcrumb.cjs.map +1 -1
  55. package/dist/react/breadcrumb.js +1 -1
  56. package/dist/react/breadcrumb.js.map +1 -1
  57. package/dist/react/button.cjs +1 -1
  58. package/dist/react/button.js +1 -1
  59. package/dist/react/calendar.cjs +1 -1
  60. package/dist/react/calendar.js +1 -1
  61. package/dist/react/card.cjs.map +1 -1
  62. package/dist/react/card.js.map +1 -1
  63. package/dist/react/carousel.cjs +1 -1
  64. package/dist/react/carousel.cjs.map +1 -1
  65. package/dist/react/carousel.js +1 -1
  66. package/dist/react/carousel.js.map +1 -1
  67. package/dist/react/checkbox-cards.cjs +1 -1
  68. package/dist/react/checkbox-cards.cjs.map +1 -1
  69. package/dist/react/checkbox-cards.js +1 -1
  70. package/dist/react/checkbox-cards.js.map +1 -1
  71. package/dist/react/checkbox-group.cjs +1 -1
  72. package/dist/react/checkbox-group.cjs.map +1 -1
  73. package/dist/react/checkbox-group.js +1 -1
  74. package/dist/react/checkbox-group.js.map +1 -1
  75. package/dist/react/checkbox-group.primitive.cjs +1 -1
  76. package/dist/react/checkbox-group.primitive.js +1 -1
  77. package/dist/react/checkbox.cjs +1 -1
  78. package/dist/react/checkbox.cjs.map +1 -1
  79. package/dist/react/checkbox.js +1 -1
  80. package/dist/react/checkbox.js.map +1 -1
  81. package/dist/react/code.cjs.map +1 -1
  82. package/dist/react/code.js.map +1 -1
  83. package/dist/react/collapsible.cjs.map +1 -1
  84. package/dist/react/collapsible.js.map +1 -1
  85. package/dist/react/command.cjs +1 -1
  86. package/dist/react/command.cjs.map +1 -1
  87. package/dist/react/command.js +1 -1
  88. package/dist/react/command.js.map +1 -1
  89. package/dist/react/container.cjs.map +1 -1
  90. package/dist/react/container.js.map +1 -1
  91. package/dist/react/context-menu.cjs.map +1 -1
  92. package/dist/react/context-menu.js.map +1 -1
  93. package/dist/react/data-table.cjs +1 -1
  94. package/dist/react/data-table.js +1 -1
  95. package/dist/react/dialog.cjs +1 -1
  96. package/dist/react/dialog.d.cts +1 -1
  97. package/dist/react/dialog.d.ts +1 -1
  98. package/dist/react/dialog.js +1 -1
  99. package/dist/react/drawer.cjs.map +1 -1
  100. package/dist/react/drawer.js.map +1 -1
  101. package/dist/react/dropdown-menu.cjs +1 -1
  102. package/dist/react/dropdown-menu.js +1 -1
  103. package/dist/react/em.cjs.map +1 -1
  104. package/dist/react/em.js.map +1 -1
  105. package/dist/react/form.cjs +1 -1
  106. package/dist/react/form.cjs.map +1 -1
  107. package/dist/react/form.js +1 -1
  108. package/dist/react/form.js.map +1 -1
  109. package/dist/react/heading.cjs.map +1 -1
  110. package/dist/react/heading.js.map +1 -1
  111. package/dist/react/hover-card.cjs.map +1 -1
  112. package/dist/react/hover-card.js.map +1 -1
  113. package/dist/react/input-otp.cjs +1 -1
  114. package/dist/react/input-otp.cjs.map +1 -1
  115. package/dist/react/input-otp.js +1 -1
  116. package/dist/react/input-otp.js.map +1 -1
  117. package/dist/react/input.cjs +1 -1
  118. package/dist/react/input.cjs.map +1 -1
  119. package/dist/react/input.d.cts +113 -34
  120. package/dist/react/input.d.ts +113 -34
  121. package/dist/react/input.js +1 -1
  122. package/dist/react/input.js.map +1 -1
  123. package/dist/react/kbd.cjs.map +1 -1
  124. package/dist/react/kbd.js.map +1 -1
  125. package/dist/react/label.cjs +1 -1
  126. package/dist/react/label.js +1 -1
  127. package/dist/react/menubar.cjs.map +1 -1
  128. package/dist/react/menubar.js.map +1 -1
  129. package/dist/react/navigation-menu.cjs.map +1 -1
  130. package/dist/react/navigation-menu.js.map +1 -1
  131. package/dist/react/pagination.cjs +1 -1
  132. package/dist/react/pagination.cjs.map +1 -1
  133. package/dist/react/pagination.js +1 -1
  134. package/dist/react/pagination.js.map +1 -1
  135. package/dist/react/popover.cjs.map +1 -1
  136. package/dist/react/popover.js.map +1 -1
  137. package/dist/react/pre.cjs.map +1 -1
  138. package/dist/react/pre.js.map +1 -1
  139. package/dist/react/progress.cjs.map +1 -1
  140. package/dist/react/progress.js.map +1 -1
  141. package/dist/react/quote.cjs.map +1 -1
  142. package/dist/react/quote.js.map +1 -1
  143. package/dist/react/radio-cards.cjs +1 -1
  144. package/dist/react/radio-cards.cjs.map +1 -1
  145. package/dist/react/radio-cards.js +1 -1
  146. package/dist/react/radio-cards.js.map +1 -1
  147. package/dist/react/radio-group.cjs.map +1 -1
  148. package/dist/react/radio-group.js.map +1 -1
  149. package/dist/react/radio.cjs.map +1 -1
  150. package/dist/react/radio.js.map +1 -1
  151. package/dist/react/scroll-area.cjs.map +1 -1
  152. package/dist/react/scroll-area.js.map +1 -1
  153. package/dist/react/section.cjs.map +1 -1
  154. package/dist/react/section.js.map +1 -1
  155. package/dist/react/select.cjs +1 -1
  156. package/dist/react/select.js +1 -1
  157. package/dist/react/separator.cjs.map +1 -1
  158. package/dist/react/separator.js.map +1 -1
  159. package/dist/react/sheet.cjs +1 -1
  160. package/dist/react/sheet.cjs.map +1 -1
  161. package/dist/react/sheet.js +1 -1
  162. package/dist/react/sheet.js.map +1 -1
  163. package/dist/react/slider.cjs.map +1 -1
  164. package/dist/react/slider.js.map +1 -1
  165. package/dist/react/spinner.cjs +1 -1
  166. package/dist/react/spinner.js +1 -1
  167. package/dist/react/strong.cjs.map +1 -1
  168. package/dist/react/strong.js.map +1 -1
  169. package/dist/react/switch.cjs +1 -1
  170. package/dist/react/switch.cjs.map +1 -1
  171. package/dist/react/switch.js +1 -1
  172. package/dist/react/switch.js.map +1 -1
  173. package/dist/react/table.cjs.map +1 -1
  174. package/dist/react/table.js.map +1 -1
  175. package/dist/react/tabs.cjs.map +1 -1
  176. package/dist/react/tabs.js.map +1 -1
  177. package/dist/react/text-input.cjs +2 -0
  178. package/dist/react/text-input.cjs.map +1 -0
  179. package/dist/react/text-input.d.cts +11 -0
  180. package/dist/react/text-input.d.ts +11 -0
  181. package/dist/react/text-input.js +2 -0
  182. package/dist/react/text-input.js.map +1 -0
  183. package/dist/react/text.cjs.map +1 -1
  184. package/dist/react/text.js.map +1 -1
  185. package/dist/react/textarea.cjs +1 -1
  186. package/dist/react/textarea.cjs.map +1 -1
  187. package/dist/react/textarea.js +1 -1
  188. package/dist/react/textarea.js.map +1 -1
  189. package/dist/react/toggle-group.cjs +1 -1
  190. package/dist/react/toggle-group.cjs.map +1 -1
  191. package/dist/react/toggle-group.js +1 -1
  192. package/dist/react/toggle-group.js.map +1 -1
  193. package/dist/react/toggle.cjs +1 -1
  194. package/dist/react/toggle.js +1 -1
  195. package/dist/react/tooltip.cjs.map +1 -1
  196. package/dist/react/tooltip.js.map +1 -1
  197. package/dist/styles.css +1 -1
  198. package/dist/styles.css.map +1 -1
  199. package/package.json +8 -2
  200. package/src/react/accordion.tsx +9 -7
  201. package/src/react/alert-dialog.tsx +55 -20
  202. package/src/react/alert.tsx +11 -9
  203. package/src/react/avatar.tsx +13 -11
  204. package/src/react/blockquote.tsx +2 -2
  205. package/src/react/box.tsx +2 -2
  206. package/src/react/breadcrumb.tsx +33 -27
  207. package/src/react/button.tsx +3 -4
  208. package/src/react/card.tsx +21 -15
  209. package/src/react/carousel.tsx +10 -10
  210. package/src/react/checkbox-cards.tsx +8 -6
  211. package/src/react/checkbox-group.primitive.tsx +12 -6
  212. package/src/react/checkbox-group.tsx +7 -5
  213. package/src/react/checkbox.tsx +3 -3
  214. package/src/react/code.tsx +2 -2
  215. package/src/react/collapsible.tsx +2 -2
  216. package/src/react/command.tsx +46 -36
  217. package/src/react/container.tsx +6 -4
  218. package/src/react/context-menu.tsx +22 -18
  219. package/src/react/dialog.tsx +13 -9
  220. package/src/react/drawer.tsx +10 -6
  221. package/src/react/dropdown-menu.tsx +20 -16
  222. package/src/react/em.tsx +2 -2
  223. package/src/react/form.tsx +38 -22
  224. package/src/react/heading.tsx +6 -4
  225. package/src/react/hover-card.tsx +7 -5
  226. package/src/react/input-otp.tsx +40 -34
  227. package/src/react/input.tsx +115 -12
  228. package/src/react/kbd.tsx +2 -2
  229. package/src/react/label.tsx +2 -2
  230. package/src/react/menubar.tsx +48 -42
  231. package/src/react/navigation-menu.tsx +12 -12
  232. package/src/react/pagination.tsx +5 -5
  233. package/src/react/popover.tsx +7 -5
  234. package/src/react/pre.tsx +2 -2
  235. package/src/react/progress.tsx +2 -2
  236. package/src/react/quote.tsx +2 -2
  237. package/src/react/radio-cards.tsx +16 -14
  238. package/src/react/radio-group.tsx +18 -16
  239. package/src/react/radio.tsx +16 -14
  240. package/src/react/scroll-area.tsx +4 -4
  241. package/src/react/section.tsx +2 -2
  242. package/src/react/select.tsx +32 -30
  243. package/src/react/separator.tsx +2 -2
  244. package/src/react/sheet.tsx +15 -7
  245. package/src/react/slider.tsx +2 -2
  246. package/src/react/spinner.tsx +2 -2
  247. package/src/react/strong.tsx +2 -2
  248. package/src/react/switch.tsx +3 -3
  249. package/src/react/table.tsx +23 -17
  250. package/src/react/tabs.tsx +6 -6
  251. package/src/react/text-input.tsx +36 -0
  252. package/src/react/text.tsx +2 -2
  253. package/src/react/textarea.tsx +3 -3
  254. package/src/react/toggle-group.tsx +7 -4
  255. package/src/react/toggle.tsx +2 -2
  256. package/src/react/tooltip.tsx +7 -5
  257. package/dist/chunk-2OBTJ7SD.cjs.map +0 -1
  258. package/dist/chunk-37XZ3LKY.cjs +0 -2
  259. package/dist/chunk-37XZ3LKY.cjs.map +0 -1
  260. package/dist/chunk-3OEPCFBF.cjs +0 -2
  261. package/dist/chunk-3OEPCFBF.cjs.map +0 -1
  262. package/dist/chunk-6AFJCDFU.js +0 -2
  263. package/dist/chunk-6AFJCDFU.js.map +0 -1
  264. package/dist/chunk-72NPDP3X.cjs.map +0 -1
  265. package/dist/chunk-7CHCTEST.js +0 -2
  266. package/dist/chunk-7CHCTEST.js.map +0 -1
  267. package/dist/chunk-A5ILA637.js.map +0 -1
  268. package/dist/chunk-F5TIIJJJ.cjs.map +0 -1
  269. package/dist/chunk-FNQFZJUG.js.map +0 -1
  270. package/dist/chunk-GCHNSK5O.cjs.map +0 -1
  271. package/dist/chunk-SHMTOJHM.js +0 -2
  272. package/dist/chunk-SHMTOJHM.js.map +0 -1
  273. package/dist/chunk-WECV77JD.cjs.map +0 -1
  274. package/dist/chunk-WRO3QIWH.js.map +0 -1
  275. package/dist/chunk-YLE5XFEO.cjs.map +0 -1
  276. package/dist/chunk-ZMF2SRE5.js.map +0 -1
@@ -27,17 +27,18 @@ type AlertDialogContentElement = React.ElementRef<typeof AlertDialogPrimitive.Co
27
27
  type AlertDialogContentProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>;
28
28
 
29
29
  const AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(
30
- ({ className, ...props }, ref) => (
30
+ ({ className, ...props }, forwardedRef) => (
31
31
  <AlertDialogPrimitive.Portal>
32
- <AlertDialogPrimitive.Overlay className="data-[state=open]:animate-duration-200 data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out fixed inset-0 z-50 bg-black/80" />
33
- <AlertDialogPrimitive.Content
34
- ref={ref}
35
- className={cn(
36
- 'bg-background data-[state=open]:animate-in data-[state=open]:animate-duration-200 data-[state=open]:fade-in data-[state=open]:zoom-in-95 data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg',
37
- className,
38
- )}
39
- {...props}
40
- />
32
+ <AlertDialogPrimitive.Overlay className="data-[state=open]:animate-duration-200 data-[state=closed]:animate-duration-200 data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out fixed inset-0 z-50 grid place-items-center overflow-auto bg-black/80 p-4 sm:pb-12 sm:pt-8">
33
+ <AlertDialogPrimitive.Content
34
+ ref={forwardedRef}
35
+ className={cn(
36
+ 'bg-background data-[state=open]:animate-in data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95 data-[state=open]:animate-duration-200 data-[state=closed]:animate-duration-200 data-[state=open]:fade-in data-[state=closed]:animate-out data-[state=closed]:fade-out relative z-50 flex w-full max-w-lg flex-col rounded-lg border shadow-lg',
37
+ className,
38
+ )}
39
+ {...props}
40
+ />
41
+ </AlertDialogPrimitive.Overlay>
41
42
  </AlertDialogPrimitive.Portal>
42
43
  ),
43
44
  );
@@ -51,7 +52,22 @@ AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
51
52
  type AlertDialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;
52
53
 
53
54
  function AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps): React.JSX.Element {
54
- return <div className={cn('flex flex-col space-y-2 text-center', 'sm:text-left', className)} {...props} />;
55
+ return (
56
+ <div
57
+ className={cn('flex shrink-0 flex-col gap-1.5 px-6 pb-4 pt-6 text-center sm:text-left', className)}
58
+ {...props}
59
+ />
60
+ );
61
+ }
62
+
63
+ /* -----------------------------------------------------------------------------
64
+ * Component: DialogBody
65
+ * -------------------------------------------------------------------------- */
66
+
67
+ type AlertDialogBodyProps = React.HTMLAttributes<HTMLDivElement>;
68
+
69
+ function AlertDialogBody({ className, ...props }: AlertDialogBodyProps): React.JSX.Element {
70
+ return <main className={cn('overflow-auto px-6 py-2', className)} {...props} />;
55
71
  }
56
72
 
57
73
  /* -----------------------------------------------------------------------------
@@ -61,7 +77,12 @@ function AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps): Rea
61
77
  type AlertDialogFooterProps = React.HTMLAttributes<HTMLDivElement>;
62
78
 
63
79
  function AlertDialogFooter({ className, ...props }: AlertDialogFooterProps): React.JSX.Element {
64
- return <div className={cn('flex flex-col-reverse gap-2', 'sm:flex-row sm:justify-end', className)} {...props} />;
80
+ return (
81
+ <div
82
+ className={cn('flex shrink-0 flex-col-reverse gap-2 px-6 pb-6 pt-4 sm:flex-row sm:justify-end', className)}
83
+ {...props}
84
+ />
85
+ );
65
86
  }
66
87
 
67
88
  /* -----------------------------------------------------------------------------
@@ -72,8 +93,12 @@ type AlertDialogTitleElement = React.ElementRef<typeof AlertDialogPrimitive.Titl
72
93
  type AlertDialogTitleProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>;
73
94
 
74
95
  const AlertDialogTitle = React.forwardRef<AlertDialogTitleElement, AlertDialogTitleProps>(
75
- ({ className, ...props }, ref) => (
76
- <AlertDialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold', className)} {...props} />
96
+ ({ className, ...props }, forwardedRef) => (
97
+ <AlertDialogPrimitive.Title
98
+ ref={forwardedRef}
99
+ className={cn('text-lg font-semibold leading-none tracking-tight', className)}
100
+ {...props}
101
+ />
77
102
  ),
78
103
  );
79
104
 
@@ -87,8 +112,12 @@ type AlertDialogDescriptionElement = React.ElementRef<typeof AlertDialogPrimitiv
87
112
  type AlertDialogDescriptionProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>;
88
113
 
89
114
  const AlertDialogDescription = React.forwardRef<AlertDialogDescriptionElement, AlertDialogDescriptionProps>(
90
- ({ className, ...props }, ref) => (
91
- <AlertDialogPrimitive.Description ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />
115
+ ({ className, ...props }, forwardedRef) => (
116
+ <AlertDialogPrimitive.Description
117
+ ref={forwardedRef}
118
+ className={cn('text-muted-foreground text-sm', className)}
119
+ {...props}
120
+ />
92
121
  ),
93
122
  );
94
123
 
@@ -102,8 +131,8 @@ type AlertDialogActionElement = React.ElementRef<typeof AlertDialogPrimitive.Act
102
131
  type AlertDialogActionProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>;
103
132
 
104
133
  const AlertDialogAction = React.forwardRef<AlertDialogActionElement, AlertDialogActionProps>(
105
- ({ className, ...props }, ref) => (
106
- <AlertDialogPrimitive.Action ref={ref} className={buttonVariants({ className })} {...props} />
134
+ ({ className, ...props }, forwardedRef) => (
135
+ <AlertDialogPrimitive.Action ref={forwardedRef} className={buttonVariants({ className })} {...props} />
107
136
  ),
108
137
  );
109
138
 
@@ -117,8 +146,12 @@ type AlertDialogCancelElement = React.ElementRef<typeof AlertDialogPrimitive.Can
117
146
  type AlertDialogCancelProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>;
118
147
 
119
148
  const AlertDialogCancel = React.forwardRef<AlertDialogCancelElement, AlertDialogCancelProps>(
120
- ({ className, ...props }, ref) => (
121
- <AlertDialogPrimitive.Cancel ref={ref} className={buttonVariants({ variant: 'outline', className })} {...props} />
149
+ ({ className, ...props }, forwardedRef) => (
150
+ <AlertDialogPrimitive.Cancel
151
+ ref={forwardedRef}
152
+ className={buttonVariants({ variant: 'outline', className })}
153
+ {...props}
154
+ />
122
155
  ),
123
156
  );
124
157
 
@@ -133,6 +166,7 @@ export {
133
166
  AlertDialogTrigger,
134
167
  AlertDialogContent,
135
168
  AlertDialogHeader,
169
+ AlertDialogBody,
136
170
  AlertDialogFooter,
137
171
  AlertDialogTitle,
138
172
  AlertDialogDescription,
@@ -142,6 +176,7 @@ export {
142
176
  type AlertDialogTriggerProps,
143
177
  type AlertDialogContentProps,
144
178
  type AlertDialogHeaderProps,
179
+ type AlertDialogBodyProps,
145
180
  type AlertDialogFooterProps,
146
181
  type AlertDialogTitleProps,
147
182
  type AlertDialogDescriptionProps,
@@ -28,8 +28,8 @@ type AlertVariantsProps = VariantProps<typeof alertVariants>;
28
28
  type AlertElement = HTMLDivElement;
29
29
  type AlertProps = React.HTMLAttributes<HTMLDivElement> & AlertVariantsProps;
30
30
 
31
- const Alert = React.forwardRef<AlertElement, AlertProps>(({ className, variant, ...props }, ref) => (
32
- <div ref={ref} className={alertVariants({ variant, className })} role="alert" {...props} />
31
+ const Alert = React.forwardRef<AlertElement, AlertProps>(({ className, variant, ...props }, forwardedRef) => (
32
+ <div ref={forwardedRef} className={alertVariants({ variant, className })} role="alert" {...props} />
33
33
  ));
34
34
 
35
35
  Alert.displayName = 'Alert';
@@ -41,11 +41,13 @@ Alert.displayName = 'Alert';
41
41
  type AlertTitleElement = HTMLHeadingElement;
42
42
  type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;
43
43
 
44
- const AlertTitle = React.forwardRef<AlertTitleElement, AlertTitleProps>(({ children, className, ...props }, ref) => (
45
- <h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props}>
46
- {children}
47
- </h5>
48
- ));
44
+ const AlertTitle = React.forwardRef<AlertTitleElement, AlertTitleProps>(
45
+ ({ children, className, ...props }, forwardedRef) => (
46
+ <h5 ref={forwardedRef} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props}>
47
+ {children}
48
+ </h5>
49
+ ),
50
+ );
49
51
 
50
52
  AlertTitle.displayName = 'AlertTitle';
51
53
 
@@ -57,8 +59,8 @@ type AlertDescriptionElement = HTMLDivElement;
57
59
  type AlertDescriptionProps = React.HTMLAttributes<HTMLDivElement>;
58
60
 
59
61
  const AlertDescription = React.forwardRef<AlertDescriptionElement, AlertDescriptionProps>(
60
- ({ className, ...props }, ref) => (
61
- <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />
62
+ ({ className, ...props }, forwardedRef) => (
63
+ <div ref={forwardedRef} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />
62
64
  ),
63
65
  );
64
66
 
@@ -11,9 +11,9 @@ import { cn } from '../lib/utils';
11
11
  type AvatarElement = React.ElementRef<typeof AvatarPrimitive.Root>;
12
12
  type AvatarProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>;
13
13
 
14
- const Avatar = React.forwardRef<AvatarElement, AvatarProps>(({ className, ...props }, ref) => (
14
+ const Avatar = React.forwardRef<AvatarElement, AvatarProps>(({ className, ...props }, forwardedRef) => (
15
15
  <AvatarPrimitive.Root
16
- ref={ref}
16
+ ref={forwardedRef}
17
17
  className={cn('relative flex size-10 shrink-0 overflow-hidden rounded-full', className)}
18
18
  {...props}
19
19
  />
@@ -28,8 +28,8 @@ Avatar.displayName = AvatarPrimitive.Root.displayName;
28
28
  type AvatarImageElement = React.ElementRef<typeof AvatarPrimitive.Image>;
29
29
  type AvatarImageProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>;
30
30
 
31
- const AvatarImage = React.forwardRef<AvatarImageElement, AvatarImageProps>(({ className, ...props }, ref) => (
32
- <AvatarPrimitive.Image ref={ref} className={cn('aspect-square size-full', className)} {...props} />
31
+ const AvatarImage = React.forwardRef<AvatarImageElement, AvatarImageProps>(({ className, ...props }, forwardedRef) => (
32
+ <AvatarPrimitive.Image ref={forwardedRef} className={cn('aspect-square size-full', className)} {...props} />
33
33
  ));
34
34
 
35
35
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
@@ -41,13 +41,15 @@ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
41
41
  type AvatarFallbackElement = React.ElementRef<typeof AvatarPrimitive.Fallback>;
42
42
  type AvatarFallbackProps = React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>;
43
43
 
44
- const AvatarFallback = React.forwardRef<AvatarFallbackElement, AvatarFallbackProps>(({ className, ...props }, ref) => (
45
- <AvatarPrimitive.Fallback
46
- ref={ref}
47
- className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}
48
- {...props}
49
- />
50
- ));
44
+ const AvatarFallback = React.forwardRef<AvatarFallbackElement, AvatarFallbackProps>(
45
+ ({ className, ...props }, forwardedRef) => (
46
+ <AvatarPrimitive.Fallback
47
+ ref={forwardedRef}
48
+ className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}
49
+ {...props}
50
+ />
51
+ ),
52
+ );
51
53
 
52
54
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
53
55
 
@@ -11,10 +11,10 @@ interface BlockquoteProps extends React.BlockquoteHTMLAttributes<HTMLQuoteElemen
11
11
  asChild?: boolean;
12
12
  }
13
13
 
14
- const Blockquote = React.forwardRef<BlockquoteElement, BlockquoteProps>(({ asChild, ...props }, ref) => {
14
+ const Blockquote = React.forwardRef<BlockquoteElement, BlockquoteProps>(({ asChild, ...props }, forwardedRef) => {
15
15
  const Component = asChild ? Slot : 'blockquote';
16
16
 
17
- return <Component ref={ref} {...props} />;
17
+ return <Component ref={forwardedRef} {...props} />;
18
18
  });
19
19
 
20
20
  Blockquote.displayName = 'Blockquote';
package/src/react/box.tsx CHANGED
@@ -19,10 +19,10 @@ type BoxProps = (BoxDivProps | BoxSpanProps) & {
19
19
  asChild?: boolean;
20
20
  };
21
21
 
22
- const Box = React.forwardRef<BoxElement, BoxProps>(({ as: Tag = 'div', asChild, ...props }, ref) => {
22
+ const Box = React.forwardRef<BoxElement, BoxProps>(({ as: Tag = 'div', asChild, ...props }, forwardedRef) => {
23
23
  const Component = asChild ? Slot : Tag;
24
24
 
25
- return <Component ref={ref} {...props} />;
25
+ return <Component ref={forwardedRef} {...props} />;
26
26
  });
27
27
 
28
28
  Box.displayName = 'Box';
@@ -13,8 +13,8 @@ interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
13
13
  separator?: React.ReactNode;
14
14
  }
15
15
 
16
- const Breadcrumb = React.forwardRef<BreadcrumbElement, BreadcrumbProps>(({ ...props }, ref) => (
17
- <nav ref={ref} aria-label="breadcrumb" {...props} />
16
+ const Breadcrumb = React.forwardRef<BreadcrumbElement, BreadcrumbProps>(({ ...props }, forwardedRef) => (
17
+ <nav ref={forwardedRef} aria-label="breadcrumb" {...props} />
18
18
  ));
19
19
 
20
20
  Breadcrumb.displayName = 'Breadcrumb';
@@ -26,16 +26,18 @@ Breadcrumb.displayName = 'Breadcrumb';
26
26
  type BreadcrumbListElement = HTMLOListElement;
27
27
  type BreadcrumbListProps = React.OlHTMLAttributes<HTMLOListElement>;
28
28
 
29
- const BreadcrumbList = React.forwardRef<BreadcrumbListElement, BreadcrumbListProps>(({ className, ...props }, ref) => (
30
- <ol
31
- ref={ref}
32
- className={cn(
33
- 'text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5',
34
- className,
35
- )}
36
- {...props}
37
- />
38
- ));
29
+ const BreadcrumbList = React.forwardRef<BreadcrumbListElement, BreadcrumbListProps>(
30
+ ({ className, ...props }, forwardedRef) => (
31
+ <ol
32
+ ref={forwardedRef}
33
+ className={cn(
34
+ 'text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5',
35
+ className,
36
+ )}
37
+ {...props}
38
+ />
39
+ ),
40
+ );
39
41
 
40
42
  BreadcrumbList.displayName = 'BreadcrumbList';
41
43
 
@@ -46,9 +48,11 @@ BreadcrumbList.displayName = 'BreadcrumbList';
46
48
  type BreadcrumbItemElement = HTMLLIElement;
47
49
  type BreadcrumbItemProps = React.LiHTMLAttributes<HTMLLIElement>;
48
50
 
49
- const BreadcrumbItem = React.forwardRef<BreadcrumbItemElement, BreadcrumbItemProps>(({ className, ...props }, ref) => (
50
- <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />
51
- ));
51
+ const BreadcrumbItem = React.forwardRef<BreadcrumbItemElement, BreadcrumbItemProps>(
52
+ ({ className, ...props }, forwardedRef) => (
53
+ <li ref={forwardedRef} className={cn('inline-flex items-center gap-1.5', className)} {...props} />
54
+ ),
55
+ );
52
56
 
53
57
  BreadcrumbItem.displayName = 'BreadcrumbItem';
54
58
 
@@ -63,10 +67,10 @@ interface BreadcrumbLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorEleme
63
67
  }
64
68
 
65
69
  const BreadcrumbLink = React.forwardRef<BreadcrumbLinkElement, BreadcrumbLinkProps>(
66
- ({ asChild, className, ...props }, ref) => {
70
+ ({ asChild, className, ...props }, forwardedRef) => {
67
71
  const Component = asChild ? Slot : 'a';
68
72
 
69
- return <Component ref={ref} className={cn('transition', 'hover:text-foreground', className)} {...props} />;
73
+ return <Component ref={forwardedRef} className={cn('hover:text-foreground transition', className)} {...props} />;
70
74
  },
71
75
  );
72
76
 
@@ -79,16 +83,18 @@ BreadcrumbLink.displayName = 'BreadcrumbLink';
79
83
  type BreadcrumbPageElement = HTMLSpanElement;
80
84
  type BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;
81
85
 
82
- const BreadcrumbPage = React.forwardRef<BreadcrumbPageElement, BreadcrumbPageProps>(({ className, ...props }, ref) => (
83
- <span
84
- ref={ref}
85
- aria-current="page"
86
- aria-disabled="true"
87
- className={cn('text-foreground font-normal', className)}
88
- role="link"
89
- {...props}
90
- />
91
- ));
86
+ const BreadcrumbPage = React.forwardRef<BreadcrumbPageElement, BreadcrumbPageProps>(
87
+ ({ className, ...props }, forwardedRef) => (
88
+ <span
89
+ ref={forwardedRef}
90
+ aria-current="page"
91
+ aria-disabled="true"
92
+ className={cn('text-foreground font-normal', className)}
93
+ role="link"
94
+ {...props}
95
+ />
96
+ ),
97
+ );
92
98
 
93
99
  BreadcrumbPage.displayName = 'BreadcrumbPage';
94
100
 
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import { Fragment } from 'react';
3
2
  import { Slot } from '@radix-ui/react-slot';
4
3
  import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
5
4
  import { tv, type VariantProps } from 'tailwind-variants';
@@ -55,14 +54,14 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, But
55
54
  }
56
55
 
57
56
  const Button = React.forwardRef<ButtonElement, ButtonProps>(
58
- ({ children, className, variant, size, loading = false, asChild = false, ...props }, ref) => {
57
+ ({ children, className, variant, size, loading = false, asChild = false, ...props }, forwardedRef) => {
59
58
  const Component = asChild ? Slot : 'button';
60
- const ComponentLoading = asChild ? 'span' : Fragment;
59
+ const ComponentLoading = asChild ? 'span' : React.Fragment;
61
60
  const disabled = loading || props.disabled;
62
61
 
63
62
  return (
64
63
  <Component
65
- ref={ref}
64
+ ref={forwardedRef}
66
65
  className={buttonVariants({ variant, size, loading, className })}
67
66
  type={asChild ? undefined : 'button'}
68
67
  {...props}
@@ -8,8 +8,12 @@ import { cn } from '../lib/utils';
8
8
  type CardElement = HTMLDivElement;
9
9
  type CardProps = React.HTMLAttributes<HTMLDivElement>;
10
10
 
11
- const Card = React.forwardRef<CardElement, CardProps>(({ className, ...props }, ref) => (
12
- <div ref={ref} className={cn('bg-card text-card-foreground rounded-lg border shadow-sm', className)} {...props} />
11
+ const Card = React.forwardRef<CardElement, CardProps>(({ className, ...props }, forwardedRef) => (
12
+ <div
13
+ ref={forwardedRef}
14
+ className={cn('bg-card text-card-foreground rounded-lg border shadow-sm', className)}
15
+ {...props}
16
+ />
13
17
  ));
14
18
 
15
19
  Card.displayName = 'Card';
@@ -21,8 +25,8 @@ Card.displayName = 'Card';
21
25
  type CardHeaderElement = HTMLDivElement;
22
26
  type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;
23
27
 
24
- const CardHeader = React.forwardRef<CardHeaderElement, CardHeaderProps>(({ className, ...props }, ref) => (
25
- <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />
28
+ const CardHeader = React.forwardRef<CardHeaderElement, CardHeaderProps>(({ className, ...props }, forwardedRef) => (
29
+ <div ref={forwardedRef} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />
26
30
  ));
27
31
 
28
32
  CardHeader.displayName = 'CardHeader';
@@ -34,11 +38,13 @@ CardHeader.displayName = 'CardHeader';
34
38
  type CardTitleElement = HTMLParagraphElement;
35
39
  type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;
36
40
 
37
- const CardTitle = React.forwardRef<CardTitleElement, CardTitleProps>(({ children, className, ...props }, ref) => (
38
- <h3 ref={ref} className={cn('font-semibold leading-none tracking-tight', className)} {...props}>
39
- {children}
40
- </h3>
41
- ));
41
+ const CardTitle = React.forwardRef<CardTitleElement, CardTitleProps>(
42
+ ({ children, className, ...props }, forwardedRef) => (
43
+ <h3 ref={forwardedRef} className={cn('font-semibold leading-none tracking-tight', className)} {...props}>
44
+ {children}
45
+ </h3>
46
+ ),
47
+ );
42
48
 
43
49
  CardTitle.displayName = 'CardTitle';
44
50
 
@@ -50,8 +56,8 @@ type CardDescriptionElement = HTMLParagraphElement;
50
56
  type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;
51
57
 
52
58
  const CardDescription = React.forwardRef<CardDescriptionElement, CardDescriptionProps>(
53
- ({ className, ...props }, ref) => (
54
- <p ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />
59
+ ({ className, ...props }, forwardedRef) => (
60
+ <p ref={forwardedRef} className={cn('text-muted-foreground text-sm', className)} {...props} />
55
61
  ),
56
62
  );
57
63
 
@@ -64,8 +70,8 @@ CardDescription.displayName = 'CardDescription';
64
70
  type CardContentElement = HTMLDivElement;
65
71
  type CardContentProps = React.HTMLAttributes<HTMLDivElement>;
66
72
 
67
- const CardContent = React.forwardRef<CardContentElement, CardContentProps>(({ className, ...props }, ref) => (
68
- <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />
73
+ const CardContent = React.forwardRef<CardContentElement, CardContentProps>(({ className, ...props }, forwardedRef) => (
74
+ <div ref={forwardedRef} className={cn('p-6 pt-0', className)} {...props} />
69
75
  ));
70
76
 
71
77
  CardContent.displayName = 'CardContent';
@@ -77,8 +83,8 @@ CardContent.displayName = 'CardContent';
77
83
  type CardFooterElement = HTMLDivElement;
78
84
  type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;
79
85
 
80
- const CardFooter = React.forwardRef<CardFooterElement, CardFooterProps>(({ className, ...props }, ref) => (
81
- <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />
86
+ const CardFooter = React.forwardRef<CardFooterElement, CardFooterProps>(({ className, ...props }, forwardedRef) => (
87
+ <div ref={forwardedRef} className={cn('flex items-center p-6 pt-0', className)} {...props} />
82
88
  ));
83
89
 
84
90
  CardFooter.displayName = 'CardFooter';
@@ -50,7 +50,7 @@ type CarouselProps = React.HTMLAttributes<HTMLDivElement> & BaseCarouselProps;
50
50
  const Carousel = React.forwardRef<CarouselElement, CarouselProps>(
51
51
  (
52
52
  { __scopeCarousel, children, orientation, opts, setApi, plugins, className, ...props }: ScopedProps<CarouselProps>,
53
- ref,
53
+ forwardedRef,
54
54
  ) => {
55
55
  const [carouselRef, api] = useEmblaCarousel(
56
56
  {
@@ -128,7 +128,7 @@ const Carousel = React.forwardRef<CarouselElement, CarouselProps>(
128
128
  scrollPrev={scrollPrev}
129
129
  >
130
130
  <div
131
- ref={ref}
131
+ ref={forwardedRef}
132
132
  aria-roledescription="carousel"
133
133
  className={cn('relative', className)}
134
134
  role="region"
@@ -154,13 +154,13 @@ type CarouselContentElement = HTMLDivElement;
154
154
  type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;
155
155
 
156
156
  const CarouselContent = React.forwardRef<CarouselContentElement, CarouselContentProps>(
157
- ({ __scopeCarousel, className, ...props }: ScopedProps<CarouselContentProps>, ref) => {
157
+ ({ __scopeCarousel, className, ...props }: ScopedProps<CarouselContentProps>, forwardedRef) => {
158
158
  const { carouselRef, orientation } = useCarouselContext(CAROUSEL_CONTENT_NAME, __scopeCarousel);
159
159
 
160
160
  return (
161
161
  <div ref={carouselRef} className="overflow-hidden">
162
162
  <div
163
- ref={ref}
163
+ ref={forwardedRef}
164
164
  className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}
165
165
  {...props}
166
166
  />
@@ -181,12 +181,12 @@ type CarouselItemElement = HTMLDivElement;
181
181
  type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;
182
182
 
183
183
  const CarouselItem = React.forwardRef<CarouselItemElement, CarouselItemProps>(
184
- ({ __scopeCarousel, className, ...props }: ScopedProps<CarouselItemProps>, ref) => {
184
+ ({ __scopeCarousel, className, ...props }: ScopedProps<CarouselItemProps>, forwardedRef) => {
185
185
  const { orientation } = useCarouselContext(CAROUSEL_ITEM_NAME, __scopeCarousel);
186
186
 
187
187
  return (
188
188
  <div
189
- ref={ref}
189
+ ref={forwardedRef}
190
190
  aria-roledescription="slide"
191
191
  className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)}
192
192
  role="group"
@@ -210,13 +210,13 @@ type CarouselPreviousProps = ButtonProps;
210
210
  const CarouselPrevious = React.forwardRef<CarouselPreviousElement, CarouselPreviousProps>(
211
211
  (
212
212
  { __scopeCarousel, className, variant = 'outline', size = 'icon', ...props }: ScopedProps<CarouselPreviousProps>,
213
- ref,
213
+ forwardedRef,
214
214
  ) => {
215
215
  const { orientation, scrollPrev, canScrollPrev } = useCarouselContext(CAROUSEL_PREVIOUS_NAME, __scopeCarousel);
216
216
 
217
217
  return (
218
218
  <Button
219
- ref={ref}
219
+ ref={forwardedRef}
220
220
  className={cn(
221
221
  'absolute size-8 rounded-full',
222
222
  orientation === 'horizontal'
@@ -251,13 +251,13 @@ type CarouselNextProps = ButtonProps;
251
251
  const CarouselNext = React.forwardRef<CarouselNextElement, CarouselNextProps>(
252
252
  (
253
253
  { __scopeCarousel, className, variant = 'outline', size = 'icon', ...props }: ScopedProps<CarouselNextProps>,
254
- ref,
254
+ forwardedRef,
255
255
  ) => {
256
256
  const { orientation, scrollNext, canScrollNext } = useCarouselContext(CAROUSEL_NEXT_NAME, __scopeCarousel);
257
257
 
258
258
  return (
259
259
  <Button
260
- ref={ref}
260
+ ref={forwardedRef}
261
261
  className={cn(
262
262
  'absolute size-8 rounded-full',
263
263
  orientation === 'horizontal'
@@ -12,9 +12,11 @@ import * as CheckboxGroupPrimitive from './checkbox-group.primitive';
12
12
  type CheckboxCardsElement = React.ElementRef<typeof CheckboxGroupPrimitive.Root>;
13
13
  type CheckboxCardsProps = React.ComponentPropsWithoutRef<typeof CheckboxGroupPrimitive.Root>;
14
14
 
15
- const CheckboxCards = React.forwardRef<CheckboxCardsElement, CheckboxCardsProps>(({ className, ...props }, ref) => {
16
- return <CheckboxGroupPrimitive.Root className={cn('grid gap-2', className)} {...props} ref={ref} />;
17
- });
15
+ const CheckboxCards = React.forwardRef<CheckboxCardsElement, CheckboxCardsProps>(
16
+ ({ className, ...props }, forwardedRef) => {
17
+ return <CheckboxGroupPrimitive.Root className={cn('grid gap-2', className)} {...props} ref={forwardedRef} />;
18
+ },
19
+ );
18
20
 
19
21
  CheckboxCards.displayName = CheckboxGroupPrimitive.Root.displayName;
20
22
 
@@ -29,14 +31,14 @@ interface CheckboxCardsItemProps extends React.ComponentPropsWithoutRef<typeof C
29
31
  }
30
32
 
31
33
  const CheckboxCardsItem = React.forwardRef<CheckboxCardsItemElement, CheckboxCardsItemProps>(
32
- ({ children, className, checkboxClassName, ...props }, ref) => {
34
+ ({ children, className, checkboxClassName, ...props }, forwardedRef) => {
33
35
  return (
34
36
  <label className={cn('flex items-center justify-center gap-4 rounded-md border p-4', className)}>
35
37
  {children}
36
38
  <CheckboxGroupPrimitive.Item
37
- ref={ref}
39
+ ref={forwardedRef}
38
40
  className={cn(
39
- 'border-input aria-checked:border-primary aria-checked:bg-primary aria-checked:text-primary-foreground peer flex size-4 shrink-0 cursor-pointer rounded-sm border shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50',
41
+ 'border-input aria-checked:border-primary aria-checked:bg-primary aria-checked:text-primary-foreground peer flex size-4 shrink-0 cursor-pointer rounded-sm border shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:cursor-default disabled:opacity-50',
40
42
  checkboxClassName,
41
43
  )}
42
44
  {...props}
@@ -65,7 +65,7 @@ const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>
65
65
  onValueChange,
66
66
  ...props
67
67
  }: ScopedProps<CheckboxGroupProps>,
68
- ref,
68
+ forwardedRef,
69
69
  ) => {
70
70
  const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
71
71
  const direction = useDirection(dir);
@@ -101,7 +101,13 @@ const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>
101
101
  >
102
102
  <RovingFocusGroup.Root asChild {...rovingFocusGroupScope} dir={direction} loop={loop} orientation={orientation}>
103
103
  {/* eslint-disable-next-line react/jsx-pascal-case -- radix-ui */}
104
- <Primitive.div ref={ref} data-disabled={disabled ? '' : undefined} dir={direction} role="group" {...props} />
104
+ <Primitive.div
105
+ ref={forwardedRef}
106
+ data-disabled={disabled ? '' : undefined}
107
+ dir={direction}
108
+ role="group"
109
+ {...props}
110
+ />
105
111
  </RovingFocusGroup.Root>
106
112
  </CheckboxGroupProvider>
107
113
  );
@@ -127,7 +133,7 @@ interface CheckboxGroupItemProps
127
133
  }
128
134
 
129
135
  const CheckboxGroupItem = React.forwardRef<CheckboxGroupItemElement, CheckboxGroupItemProps>(
130
- ({ __scopeCheckboxGroup, disabled, ...props }: ScopedProps<CheckboxGroupItemProps>, ref) => {
136
+ ({ __scopeCheckboxGroup, disabled, ...props }: ScopedProps<CheckboxGroupItemProps>, forwardedRef) => {
131
137
  const context = useCheckboxGroupContext(ITEM_NAME, __scopeCheckboxGroup);
132
138
  const isDisabled = context.disabled || disabled;
133
139
  const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
@@ -137,7 +143,7 @@ const CheckboxGroupItem = React.forwardRef<CheckboxGroupItemElement, CheckboxGro
137
143
  return (
138
144
  <RovingFocusGroup.Item asChild {...rovingFocusGroupScope} active={checked} focusable={!isDisabled}>
139
145
  <CheckboxPrimitive.Root
140
- ref={ref}
146
+ ref={forwardedRef}
141
147
  checked={checked}
142
148
  disabled={isDisabled}
143
149
  name={context.name}
@@ -169,10 +175,10 @@ type CheckboxGroupIndicatorElement = React.ElementRef<typeof CheckboxPrimitive.I
169
175
  type CheckboxGroupIndicatorProps = React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Indicator>;
170
176
 
171
177
  const CheckboxGroupIndicator = React.forwardRef<CheckboxGroupIndicatorElement, CheckboxGroupIndicatorProps>(
172
- ({ __scopeCheckboxGroup, ...props }: ScopedProps<CheckboxGroupIndicatorProps>, ref) => {
178
+ ({ __scopeCheckboxGroup, ...props }: ScopedProps<CheckboxGroupIndicatorProps>, forwardedRef) => {
173
179
  const checkboxScope = useCheckboxScope(__scopeCheckboxGroup);
174
180
 
175
- return <CheckboxPrimitive.Indicator ref={ref} {...checkboxScope} {...props} />;
181
+ return <CheckboxPrimitive.Indicator ref={forwardedRef} {...checkboxScope} {...props} />;
176
182
  },
177
183
  );
178
184
 
@@ -12,9 +12,11 @@ import * as CheckboxGroupPrimitive from './checkbox-group.primitive';
12
12
  type CheckboxGroupElement = React.ElementRef<typeof CheckboxGroupPrimitive.Root>;
13
13
  type CheckboxGroupProps = React.ComponentPropsWithoutRef<typeof CheckboxGroupPrimitive.Root>;
14
14
 
15
- const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>(({ className, ...props }, ref) => {
16
- return <CheckboxGroupPrimitive.Root ref={ref} className={cn('grid gap-2', className)} {...props} />;
17
- });
15
+ const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>(
16
+ ({ className, ...props }, forwardedRef) => {
17
+ return <CheckboxGroupPrimitive.Root ref={forwardedRef} className={cn('grid gap-2', className)} {...props} />;
18
+ },
19
+ );
18
20
 
19
21
  CheckboxGroup.displayName = 'CheckboxGroup';
20
22
 
@@ -26,10 +28,10 @@ type CheckboxGroupItemElement = React.ElementRef<typeof CheckboxGroupPrimitive.I
26
28
  type CheckboxGroupItemProps = React.ComponentPropsWithoutRef<typeof CheckboxGroupPrimitive.Item>;
27
29
 
28
30
  const CheckboxGroupItem = React.forwardRef<CheckboxGroupItemElement, CheckboxGroupItemProps>(
29
- ({ className, ...props }, ref) => {
31
+ ({ className, ...props }, forwardedRef) => {
30
32
  return (
31
33
  <CheckboxGroupPrimitive.Item
32
- ref={ref}
34
+ ref={forwardedRef}
33
35
  className={cn(
34
36
  'border-input hover:border-primary aria-checked:border-primary aria-checked:bg-primary aria-checked:text-primary-foreground peer flex size-4 shrink-0 rounded-sm border shadow-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50',
35
37
  className,