@codefast/ui 0.0.9 → 0.0.10

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 (427) hide show
  1. package/dist/accordion.d.mts +7 -7
  2. package/dist/accordion.d.ts +7 -7
  3. package/dist/accordion.js +42 -32
  4. package/dist/accordion.js.map +1 -1
  5. package/dist/accordion.mjs +42 -32
  6. package/dist/accordion.mjs.map +1 -1
  7. package/dist/alert-dialog.d.mts +12 -12
  8. package/dist/alert-dialog.d.ts +12 -12
  9. package/dist/alert-dialog.js +47 -75
  10. package/dist/alert-dialog.js.map +1 -1
  11. package/dist/alert-dialog.mjs +47 -75
  12. package/dist/alert-dialog.mjs.map +1 -1
  13. package/dist/alert.js +5 -30
  14. package/dist/alert.js.map +1 -1
  15. package/dist/alert.mjs +5 -30
  16. package/dist/alert.mjs.map +1 -1
  17. package/dist/aspect-ratio.d.mts +1 -1
  18. package/dist/aspect-ratio.d.ts +1 -1
  19. package/dist/aspect-ratio.js.map +1 -1
  20. package/dist/aspect-ratio.mjs.map +1 -1
  21. package/dist/avatar.d.mts +6 -6
  22. package/dist/avatar.d.ts +6 -6
  23. package/dist/avatar.js +3 -16
  24. package/dist/avatar.js.map +1 -1
  25. package/dist/avatar.mjs +3 -16
  26. package/dist/avatar.mjs.map +1 -1
  27. package/dist/badge.js +1 -5
  28. package/dist/badge.js.map +1 -1
  29. package/dist/badge.mjs +1 -5
  30. package/dist/badge.mjs.map +1 -1
  31. package/dist/blockquote.js +4 -6
  32. package/dist/blockquote.js.map +1 -1
  33. package/dist/blockquote.mjs +4 -6
  34. package/dist/blockquote.mjs.map +1 -1
  35. package/dist/box.js +4 -6
  36. package/dist/box.js.map +1 -1
  37. package/dist/box.mjs +4 -6
  38. package/dist/box.mjs.map +1 -1
  39. package/dist/breadcrumb.js +29 -66
  40. package/dist/breadcrumb.js.map +1 -1
  41. package/dist/breadcrumb.mjs +29 -66
  42. package/dist/breadcrumb.mjs.map +1 -1
  43. package/dist/button.d.mts +1 -0
  44. package/dist/button.d.ts +1 -0
  45. package/dist/button.js +3 -2
  46. package/dist/button.mjs +2 -1
  47. package/dist/calendar.js +7 -19
  48. package/dist/calendar.js.map +1 -1
  49. package/dist/calendar.mjs +6 -18
  50. package/dist/calendar.mjs.map +1 -1
  51. package/dist/card.js +8 -55
  52. package/dist/card.js.map +1 -1
  53. package/dist/card.mjs +8 -55
  54. package/dist/card.mjs.map +1 -1
  55. package/dist/carousel.js +58 -64
  56. package/dist/carousel.js.map +1 -1
  57. package/dist/carousel.mjs +57 -63
  58. package/dist/carousel.mjs.map +1 -1
  59. package/dist/checkbox-cards.d.mts +15 -0
  60. package/dist/checkbox-cards.d.ts +15 -0
  61. package/dist/checkbox-cards.js +56 -0
  62. package/dist/checkbox-cards.js.map +1 -0
  63. package/dist/checkbox-cards.mjs +56 -0
  64. package/dist/checkbox-cards.mjs.map +1 -0
  65. package/dist/checkbox-group.d.mts +13 -0
  66. package/dist/checkbox-group.d.ts +13 -0
  67. package/dist/checkbox-group.js +44 -0
  68. package/dist/checkbox-group.js.map +1 -0
  69. package/dist/checkbox-group.mjs +44 -0
  70. package/dist/checkbox-group.mjs.map +1 -0
  71. package/dist/checkbox-group.primitive.d.mts +38 -0
  72. package/dist/checkbox-group.primitive.d.ts +38 -0
  73. package/dist/checkbox-group.primitive.js +19 -0
  74. package/dist/checkbox-group.primitive.js.map +1 -0
  75. package/dist/checkbox-group.primitive.mjs +19 -0
  76. package/dist/checkbox-group.primitive.mjs.map +1 -0
  77. package/dist/checkbox.d.mts +2 -2
  78. package/dist/checkbox.d.ts +2 -2
  79. package/dist/checkbox.js +5 -1
  80. package/dist/checkbox.js.map +1 -1
  81. package/dist/checkbox.mjs +5 -1
  82. package/dist/checkbox.mjs.map +1 -1
  83. package/dist/chunk-3ZZ3SRTJ.js +148 -0
  84. package/dist/chunk-3ZZ3SRTJ.js.map +1 -0
  85. package/dist/chunk-5UHPKXF4.mjs +60 -0
  86. package/dist/chunk-5UHPKXF4.mjs.map +1 -0
  87. package/dist/chunk-EWS3N4OZ.mjs +148 -0
  88. package/dist/chunk-EWS3N4OZ.mjs.map +1 -0
  89. package/dist/{chunk-PIU627A3.mjs → chunk-FGI3JA75.mjs} +1 -1
  90. package/dist/chunk-FGI3JA75.mjs.map +1 -0
  91. package/dist/{chunk-GRKABVK4.js → chunk-IVYGBU4G.js} +1 -1
  92. package/dist/chunk-IVYGBU4G.js.map +1 -0
  93. package/dist/chunk-IXEJO7ZP.js +86 -0
  94. package/dist/chunk-IXEJO7ZP.js.map +1 -0
  95. package/dist/chunk-J6COVJTP.js +60 -0
  96. package/dist/chunk-J6COVJTP.js.map +1 -0
  97. package/dist/chunk-JULVZPCS.mjs +120 -0
  98. package/dist/chunk-JULVZPCS.mjs.map +1 -0
  99. package/dist/chunk-LNSEYAPJ.js +121 -0
  100. package/dist/chunk-LNSEYAPJ.js.map +1 -0
  101. package/dist/chunk-MOJNV3XZ.js +120 -0
  102. package/dist/chunk-MOJNV3XZ.js.map +1 -0
  103. package/dist/{chunk-JOJW7BBY.js → chunk-NEP3JDVQ.js} +31 -6
  104. package/dist/chunk-NEP3JDVQ.js.map +1 -0
  105. package/dist/chunk-OK63Q6EJ.mjs +121 -0
  106. package/dist/chunk-OK63Q6EJ.mjs.map +1 -0
  107. package/dist/{chunk-PKB2G726.js → chunk-ORAVN37L.js} +6 -10
  108. package/dist/chunk-ORAVN37L.js.map +1 -0
  109. package/dist/{chunk-MJDKD2K4.mjs → chunk-XCBBSHAK.mjs} +6 -10
  110. package/dist/chunk-XCBBSHAK.mjs.map +1 -0
  111. package/dist/chunk-XCKLBP2V.mjs +86 -0
  112. package/dist/chunk-XCKLBP2V.mjs.map +1 -0
  113. package/dist/chunk-XHZUPL2U.mjs +81 -0
  114. package/dist/chunk-XHZUPL2U.mjs.map +1 -0
  115. package/dist/code.js +4 -6
  116. package/dist/code.js.map +1 -1
  117. package/dist/code.mjs +4 -6
  118. package/dist/code.mjs.map +1 -1
  119. package/dist/collapsible.d.mts +3 -3
  120. package/dist/collapsible.d.ts +3 -3
  121. package/dist/collapsible.js.map +1 -1
  122. package/dist/collapsible.mjs.map +1 -1
  123. package/dist/command.d.mts +11 -10
  124. package/dist/command.d.ts +11 -10
  125. package/dist/command.js +10 -44
  126. package/dist/command.js.map +1 -1
  127. package/dist/command.mjs +10 -44
  128. package/dist/command.mjs.map +1 -1
  129. package/dist/container.js +4 -6
  130. package/dist/container.js.map +1 -1
  131. package/dist/container.mjs +4 -6
  132. package/dist/container.mjs.map +1 -1
  133. package/dist/context-menu.d.mts +18 -18
  134. package/dist/context-menu.d.ts +18 -18
  135. package/dist/context-menu.js +108 -124
  136. package/dist/context-menu.js.map +1 -1
  137. package/dist/context-menu.mjs +109 -125
  138. package/dist/context-menu.mjs.map +1 -1
  139. package/dist/data-table.d.mts +1 -1
  140. package/dist/data-table.d.ts +1 -1
  141. package/dist/data-table.js +131 -149
  142. package/dist/data-table.js.map +1 -1
  143. package/dist/data-table.mjs +120 -138
  144. package/dist/data-table.mjs.map +1 -1
  145. package/dist/dialog.d.mts +9 -9
  146. package/dist/dialog.d.ts +9 -9
  147. package/dist/dialog.js +2 -2
  148. package/dist/dialog.mjs +1 -1
  149. package/dist/drawer.d.mts +2 -2
  150. package/dist/drawer.d.ts +2 -2
  151. package/dist/drawer.js +30 -63
  152. package/dist/drawer.js.map +1 -1
  153. package/dist/drawer.mjs +30 -63
  154. package/dist/drawer.mjs.map +1 -1
  155. package/dist/dropdown-menu.d.mts +16 -16
  156. package/dist/dropdown-menu.d.ts +16 -16
  157. package/dist/dropdown-menu.js +2 -2
  158. package/dist/dropdown-menu.mjs +1 -1
  159. package/dist/em.js +4 -6
  160. package/dist/em.js.map +1 -1
  161. package/dist/em.mjs +4 -6
  162. package/dist/em.mjs.map +1 -1
  163. package/dist/form.js +23 -54
  164. package/dist/form.js.map +1 -1
  165. package/dist/form.mjs +23 -54
  166. package/dist/form.mjs.map +1 -1
  167. package/dist/heading.js +4 -6
  168. package/dist/heading.js.map +1 -1
  169. package/dist/heading.mjs +4 -6
  170. package/dist/heading.mjs.map +1 -1
  171. package/dist/hover-card.d.mts +4 -4
  172. package/dist/hover-card.d.ts +4 -4
  173. package/dist/hover-card.js +15 -13
  174. package/dist/hover-card.js.map +1 -1
  175. package/dist/hover-card.mjs +15 -13
  176. package/dist/hover-card.mjs.map +1 -1
  177. package/dist/input-otp.js +32 -37
  178. package/dist/input-otp.js.map +1 -1
  179. package/dist/input-otp.mjs +32 -37
  180. package/dist/input-otp.mjs.map +1 -1
  181. package/dist/input.js +10 -14
  182. package/dist/input.js.map +1 -1
  183. package/dist/input.mjs +10 -14
  184. package/dist/input.mjs.map +1 -1
  185. package/dist/kbd.js +14 -16
  186. package/dist/kbd.js.map +1 -1
  187. package/dist/kbd.mjs +14 -16
  188. package/dist/kbd.mjs.map +1 -1
  189. package/dist/label.d.mts +2 -2
  190. package/dist/label.d.ts +2 -2
  191. package/dist/label.js +2 -2
  192. package/dist/label.mjs +1 -1
  193. package/dist/menubar.d.mts +21 -21
  194. package/dist/menubar.d.ts +21 -21
  195. package/dist/menubar.js +73 -93
  196. package/dist/menubar.js.map +1 -1
  197. package/dist/menubar.mjs +74 -94
  198. package/dist/menubar.mjs.map +1 -1
  199. package/dist/navigation-menu.d.mts +16 -16
  200. package/dist/navigation-menu.d.ts +16 -16
  201. package/dist/navigation-menu.js +89 -93
  202. package/dist/navigation-menu.js.map +1 -1
  203. package/dist/navigation-menu.mjs +89 -93
  204. package/dist/navigation-menu.mjs.map +1 -1
  205. package/dist/pagination.js +19 -58
  206. package/dist/pagination.js.map +1 -1
  207. package/dist/pagination.mjs +19 -58
  208. package/dist/pagination.mjs.map +1 -1
  209. package/dist/popover.d.mts +7 -7
  210. package/dist/popover.d.ts +7 -7
  211. package/dist/popover.js +16 -21
  212. package/dist/popover.js.map +1 -1
  213. package/dist/popover.mjs +16 -21
  214. package/dist/popover.mjs.map +1 -1
  215. package/dist/pre.js +4 -6
  216. package/dist/pre.js.map +1 -1
  217. package/dist/pre.mjs +4 -6
  218. package/dist/pre.mjs.map +1 -1
  219. package/dist/progress.d.mts +2 -2
  220. package/dist/progress.d.ts +2 -2
  221. package/dist/progress.js +1 -4
  222. package/dist/progress.js.map +1 -1
  223. package/dist/progress.mjs +1 -4
  224. package/dist/progress.mjs.map +1 -1
  225. package/dist/quote.js +4 -6
  226. package/dist/quote.js.map +1 -1
  227. package/dist/quote.mjs +4 -6
  228. package/dist/quote.mjs.map +1 -1
  229. package/dist/radio-cards.d.mts +9 -0
  230. package/dist/radio-cards.d.ts +9 -0
  231. package/dist/radio-cards.js +36 -0
  232. package/dist/radio-cards.js.map +1 -0
  233. package/dist/radio-cards.mjs +36 -0
  234. package/dist/radio-cards.mjs.map +1 -0
  235. package/dist/radio-group.d.mts +4 -4
  236. package/dist/radio-group.d.ts +4 -4
  237. package/dist/radio-group.js +3 -9
  238. package/dist/radio-group.js.map +1 -1
  239. package/dist/radio-group.mjs +3 -9
  240. package/dist/radio-group.mjs.map +1 -1
  241. package/dist/radio.d.mts +8 -0
  242. package/dist/radio.d.ts +8 -0
  243. package/dist/radio.js +35 -0
  244. package/dist/radio.js.map +1 -0
  245. package/dist/radio.mjs +35 -0
  246. package/dist/radio.mjs.map +1 -0
  247. package/dist/resizable.d.mts +2 -2
  248. package/dist/resizable.d.ts +2 -2
  249. package/dist/resizable.js +3 -5
  250. package/dist/resizable.js.map +1 -1
  251. package/dist/resizable.mjs +3 -5
  252. package/dist/resizable.mjs.map +1 -1
  253. package/dist/scroll-area.d.mts +4 -4
  254. package/dist/scroll-area.d.ts +4 -4
  255. package/dist/scroll-area.js +23 -29
  256. package/dist/scroll-area.js.map +1 -1
  257. package/dist/scroll-area.mjs +23 -29
  258. package/dist/scroll-area.mjs.map +1 -1
  259. package/dist/section.js +4 -6
  260. package/dist/section.js.map +1 -1
  261. package/dist/section.mjs +4 -6
  262. package/dist/section.mjs.map +1 -1
  263. package/dist/select.d.mts +17 -17
  264. package/dist/select.d.ts +17 -17
  265. package/dist/select.js +2 -2
  266. package/dist/select.mjs +1 -1
  267. package/dist/separator.d.mts +2 -2
  268. package/dist/separator.d.ts +2 -2
  269. package/dist/separator.js +1 -5
  270. package/dist/separator.js.map +1 -1
  271. package/dist/separator.mjs +1 -5
  272. package/dist/separator.mjs.map +1 -1
  273. package/dist/sheet.d.mts +9 -9
  274. package/dist/sheet.d.ts +9 -9
  275. package/dist/sheet.js +35 -76
  276. package/dist/sheet.js.map +1 -1
  277. package/dist/sheet.mjs +35 -76
  278. package/dist/sheet.mjs.map +1 -1
  279. package/dist/skeleton.js +1 -7
  280. package/dist/skeleton.js.map +1 -1
  281. package/dist/skeleton.mjs +1 -7
  282. package/dist/skeleton.mjs.map +1 -1
  283. package/dist/slider.d.mts +2 -2
  284. package/dist/slider.d.ts +2 -2
  285. package/dist/slider.js +10 -5
  286. package/dist/slider.js.map +1 -1
  287. package/dist/slider.mjs +10 -5
  288. package/dist/slider.mjs.map +1 -1
  289. package/dist/sonner.js +1 -6
  290. package/dist/sonner.js.map +1 -1
  291. package/dist/sonner.mjs +1 -6
  292. package/dist/sonner.mjs.map +1 -1
  293. package/dist/spinner.d.mts +8 -0
  294. package/dist/spinner.d.ts +8 -0
  295. package/dist/spinner.js +8 -0
  296. package/dist/spinner.js.map +1 -0
  297. package/dist/spinner.mjs +8 -0
  298. package/dist/spinner.mjs.map +1 -0
  299. package/dist/strong.js +4 -6
  300. package/dist/strong.js.map +1 -1
  301. package/dist/strong.mjs +4 -6
  302. package/dist/strong.mjs.map +1 -1
  303. package/dist/styles.css +1 -1
  304. package/dist/styles.css.map +1 -1
  305. package/dist/switch.d.mts +2 -2
  306. package/dist/switch.d.ts +2 -2
  307. package/dist/switch.js +2 -1
  308. package/dist/switch.js.map +1 -1
  309. package/dist/switch.mjs +2 -1
  310. package/dist/switch.mjs.map +1 -1
  311. package/dist/table.js +22 -80
  312. package/dist/table.js.map +1 -1
  313. package/dist/table.mjs +22 -80
  314. package/dist/table.mjs.map +1 -1
  315. package/dist/tabs.d.mts +7 -7
  316. package/dist/tabs.d.ts +7 -7
  317. package/dist/tabs.js +4 -2
  318. package/dist/tabs.js.map +1 -1
  319. package/dist/tabs.mjs +4 -2
  320. package/dist/tabs.mjs.map +1 -1
  321. package/dist/text.js +4 -6
  322. package/dist/text.js.map +1 -1
  323. package/dist/text.mjs +4 -6
  324. package/dist/text.mjs.map +1 -1
  325. package/dist/textarea.js +14 -15
  326. package/dist/textarea.js.map +1 -1
  327. package/dist/textarea.mjs +14 -15
  328. package/dist/textarea.mjs.map +1 -1
  329. package/dist/toggle-group.d.mts +2 -2
  330. package/dist/toggle-group.d.ts +2 -2
  331. package/dist/toggle-group.js +41 -34
  332. package/dist/toggle-group.js.map +1 -1
  333. package/dist/toggle-group.mjs +40 -33
  334. package/dist/toggle-group.mjs.map +1 -1
  335. package/dist/toggle.d.mts +2 -2
  336. package/dist/toggle.d.ts +2 -2
  337. package/dist/toggle.js +2 -2
  338. package/dist/toggle.mjs +1 -1
  339. package/dist/tooltip.d.mts +7 -7
  340. package/dist/tooltip.d.ts +7 -7
  341. package/dist/tooltip.js +15 -20
  342. package/dist/tooltip.js.map +1 -1
  343. package/dist/tooltip.mjs +15 -20
  344. package/dist/tooltip.mjs.map +1 -1
  345. package/package.json +36 -5
  346. package/src/accordion.tsx +53 -43
  347. package/src/alert-dialog.tsx +73 -92
  348. package/src/alert.tsx +24 -41
  349. package/src/aspect-ratio.tsx +2 -1
  350. package/src/avatar.tsx +19 -36
  351. package/src/badge.tsx +3 -7
  352. package/src/blockquote.tsx +9 -8
  353. package/src/box.tsx +7 -6
  354. package/src/breadcrumb.tsx +52 -61
  355. package/src/button.tsx +41 -14
  356. package/src/calendar.tsx +6 -22
  357. package/src/card.tsx +40 -56
  358. package/src/carousel.tsx +95 -81
  359. package/src/checkbox-cards.tsx +68 -0
  360. package/src/checkbox-group.primitive.tsx +199 -0
  361. package/src/checkbox-group.tsx +57 -0
  362. package/src/checkbox.tsx +10 -6
  363. package/src/code.tsx +8 -6
  364. package/src/collapsible.tsx +4 -3
  365. package/src/command.tsx +53 -90
  366. package/src/container.tsx +8 -6
  367. package/src/context-menu.tsx +163 -175
  368. package/src/data-table.tsx +26 -43
  369. package/src/dialog.tsx +58 -77
  370. package/src/drawer.tsx +48 -78
  371. package/src/dropdown-menu.tsx +143 -154
  372. package/src/em.tsx +8 -6
  373. package/src/form.tsx +61 -86
  374. package/src/heading.tsx +8 -6
  375. package/src/hover-card.tsx +22 -20
  376. package/src/input-otp.tsx +50 -48
  377. package/src/input.tsx +14 -15
  378. package/src/kbd.tsx +18 -16
  379. package/src/label.tsx +5 -5
  380. package/src/menubar.tsx +133 -149
  381. package/src/navigation-menu.tsx +110 -114
  382. package/src/pagination.tsx +26 -48
  383. package/src/popover.tsx +29 -31
  384. package/src/pre.tsx +8 -6
  385. package/src/progress.tsx +6 -9
  386. package/src/quote.tsx +8 -6
  387. package/src/radio-cards.tsx +50 -0
  388. package/src/radio-group.tsx +14 -24
  389. package/src/radio.tsx +44 -0
  390. package/src/resizable.tsx +5 -7
  391. package/src/scroll-area.tsx +29 -40
  392. package/src/section.tsx +8 -6
  393. package/src/select.tsx +106 -115
  394. package/src/separator.tsx +7 -14
  395. package/src/sheet.tsx +50 -76
  396. package/src/skeleton.tsx +2 -6
  397. package/src/slider.tsx +12 -10
  398. package/src/sonner.tsx +3 -7
  399. package/src/spinner.tsx +75 -0
  400. package/src/strong.tsx +8 -6
  401. package/src/switch.tsx +7 -6
  402. package/src/table.tsx +60 -82
  403. package/src/tabs.tsx +20 -18
  404. package/src/text.tsx +8 -8
  405. package/src/textarea.tsx +16 -14
  406. package/src/toggle-group.tsx +59 -58
  407. package/src/toggle.tsx +11 -13
  408. package/src/tooltip.tsx +28 -30
  409. package/dist/chunk-3BDLWZ3W.js +0 -158
  410. package/dist/chunk-3BDLWZ3W.js.map +0 -1
  411. package/dist/chunk-43YGVOCO.js +0 -135
  412. package/dist/chunk-43YGVOCO.js.map +0 -1
  413. package/dist/chunk-AJLEALVP.mjs +0 -112
  414. package/dist/chunk-AJLEALVP.mjs.map +0 -1
  415. package/dist/chunk-D6NQEMTJ.js +0 -112
  416. package/dist/chunk-D6NQEMTJ.js.map +0 -1
  417. package/dist/chunk-FATZHRHR.mjs +0 -56
  418. package/dist/chunk-FATZHRHR.mjs.map +0 -1
  419. package/dist/chunk-GRKABVK4.js.map +0 -1
  420. package/dist/chunk-JOJW7BBY.js.map +0 -1
  421. package/dist/chunk-KV4VL2ZF.mjs +0 -135
  422. package/dist/chunk-KV4VL2ZF.mjs.map +0 -1
  423. package/dist/chunk-MJDKD2K4.mjs.map +0 -1
  424. package/dist/chunk-NCEN3XBK.mjs +0 -158
  425. package/dist/chunk-NCEN3XBK.mjs.map +0 -1
  426. package/dist/chunk-PIU627A3.mjs.map +0 -1
  427. package/dist/chunk-PKB2G726.js.map +0 -1
@@ -8,35 +8,29 @@ import { cn } from "./utils";
8
8
  * Component: RadioGroup
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type RadioGroupProps = RadioGroupPrimitive.RadioGroupProps;
12
- const RadioGroup = React.forwardRef<
13
- React.ElementRef<typeof RadioGroupPrimitive.Root>,
14
- RadioGroupProps
15
- >(({ className, ...props }, ref) => {
16
- return (
17
- <RadioGroupPrimitive.Root
18
- className={cn("grid gap-2", className)}
19
- {...props}
20
- ref={ref}
21
- />
22
- );
11
+ type RadioGroupElement = React.ElementRef<typeof RadioGroupPrimitive.Root>;
12
+ type RadioGroupProps = React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>;
13
+
14
+ const RadioGroup = React.forwardRef<RadioGroupElement, RadioGroupProps>(({ className, ...props }, ref) => {
15
+ return <RadioGroupPrimitive.Root className={cn("grid gap-2", className)} {...props} ref={ref} />;
23
16
  });
17
+
24
18
  RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
25
19
 
26
20
  /* -----------------------------------------------------------------------------
27
21
  * Component: RadioGroupItem
28
22
  * -------------------------------------------------------------------------- */
29
23
 
30
- type RadioGroupItemProps = RadioGroupPrimitive.RadioGroupItemProps;
31
- const RadioGroupItem = React.forwardRef<
32
- React.ElementRef<typeof RadioGroupPrimitive.Item>,
33
- RadioGroupItemProps
34
- >(({ className, ...props }, ref) => {
24
+ type RadioGroupItemElement = React.ElementRef<typeof RadioGroupPrimitive.Item>;
25
+ type RadioGroupItemProps = React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>;
26
+
27
+ const RadioGroupItem = React.forwardRef<RadioGroupItemElement, RadioGroupItemProps>(({ className, ...props }, ref) => {
35
28
  return (
36
29
  <RadioGroupPrimitive.Item
37
30
  ref={ref}
38
31
  className={cn(
39
- "border-compound text-compound-foreground focus-visible:ring-offset-background focus-visible:ring-ring aria-checked:border-primary group aspect-square size-4 rounded-full border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
32
+ "border-compound/70 hover:border-compound text-compound-foreground aria-checked:border-primary group peer aspect-square size-4 rounded-full border disabled:cursor-not-allowed disabled:opacity-50",
33
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
40
34
  className,
41
35
  )}
42
36
  {...props}
@@ -49,15 +43,11 @@ const RadioGroupItem = React.forwardRef<
49
43
  </RadioGroupPrimitive.Item>
50
44
  );
51
45
  });
46
+
52
47
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
53
48
 
54
49
  /* -----------------------------------------------------------------------------
55
50
  * Exports
56
51
  * -------------------------------------------------------------------------- */
57
52
 
58
- export {
59
- RadioGroup,
60
- RadioGroupItem,
61
- type RadioGroupProps,
62
- type RadioGroupItemProps,
63
- };
53
+ export { RadioGroup, RadioGroupItem, type RadioGroupProps, type RadioGroupItemProps };
package/src/radio.tsx ADDED
@@ -0,0 +1,44 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import { composeEventHandlers } from "@radix-ui/primitive";
5
+ import { cn } from "./utils";
6
+
7
+ /* -----------------------------------------------------------------------------
8
+ * Component: Radio
9
+ * -------------------------------------------------------------------------- */
10
+
11
+ type RadioElement = HTMLInputElement;
12
+
13
+ interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement> {
14
+ onValueChange?: (value: string) => void;
15
+ }
16
+
17
+ const Radio = React.forwardRef<RadioElement, RadioProps>(({ className, onValueChange, onChange, ...props }, ref) => {
18
+ return (
19
+ <input
20
+ ref={ref}
21
+ type="radio"
22
+ onChange={composeEventHandlers(onChange, (event) => onValueChange?.(event.currentTarget.value))}
23
+ className={cn(
24
+ "peer relative flex appearance-none items-center justify-center rounded-full",
25
+ "disabled:cursor-not-allowed disabled:opacity-50",
26
+ "before:border-compound/70 before:size-4 before:rounded-full before:border",
27
+ "hover:before:border-compound",
28
+ "checked:before:border-primary",
29
+ "checked:after:bg-primary checked:after:absolute checked:after:size-2.5 checked:after:rounded-full",
30
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
31
+ className,
32
+ )}
33
+ {...props}
34
+ />
35
+ );
36
+ });
37
+
38
+ Radio.displayName = "Radio";
39
+
40
+ /* -----------------------------------------------------------------------------
41
+ * Exports
42
+ * -------------------------------------------------------------------------- */
43
+
44
+ export { Radio };
package/src/resizable.tsx CHANGED
@@ -12,13 +12,10 @@ import { cn } from "./utils";
12
12
  function ResizablePanelGroup({
13
13
  className,
14
14
  ...props
15
- }: ResizablePrimitive.PanelGroupProps): React.JSX.Element {
15
+ }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>): React.JSX.Element {
16
16
  return (
17
17
  <ResizablePrimitive.PanelGroup
18
- className={cn(
19
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
20
- className,
21
- )}
18
+ className={cn("flex h-full w-full", "data-[panel-group-direction=vertical]:flex-col", className)}
22
19
  {...props}
23
20
  />
24
21
  );
@@ -38,13 +35,14 @@ function ResizableHandle({
38
35
  withHandle,
39
36
  className,
40
37
  ...props
41
- }: ResizablePrimitive.PanelResizeHandleProps & {
38
+ }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
42
39
  withHandle?: boolean;
43
40
  }): React.JSX.Element {
44
41
  return (
45
42
  <ResizablePrimitive.PanelResizeHandle
46
43
  className={cn(
47
- "bg-border focus-visible:ring-ring focus-visible:ring-offset-background 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:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
44
+ "bg-border 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 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
45
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
48
46
  className,
49
47
  )}
50
48
  {...props}
@@ -8,60 +8,49 @@ import { cn } from "./utils";
8
8
  * Component: ScrollArea
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type ScrollAreaProps = ScrollAreaPrimitive.ScrollAreaProps;
12
- const ScrollArea = React.forwardRef<
13
- React.ElementRef<typeof ScrollAreaPrimitive.Root>,
14
- ScrollAreaProps
15
- >(({ className, children, ...props }, ref) => (
16
- <ScrollAreaPrimitive.Root
17
- ref={ref}
18
- className={cn("relative overflow-hidden", className)}
19
- {...props}
20
- >
21
- <ScrollAreaPrimitive.Viewport className="size-full rounded-[inherit]">
22
- {children}
23
- </ScrollAreaPrimitive.Viewport>
11
+ type ScrollAreaElement = React.ElementRef<typeof ScrollAreaPrimitive.Root>;
12
+ type ScrollAreaProps = React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>;
13
+
14
+ const ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>(({ className, children, ...props }, ref) => (
15
+ <ScrollAreaPrimitive.Root ref={ref} className={cn("relative overflow-hidden", className)} {...props}>
16
+ <ScrollAreaPrimitive.Viewport className="size-full rounded-[inherit]">{children}</ScrollAreaPrimitive.Viewport>
24
17
  <ScrollAreaScrollbar orientation="vertical" />
25
18
  <ScrollAreaScrollbar orientation="horizontal" />
26
19
  <ScrollAreaPrimitive.Corner />
27
20
  </ScrollAreaPrimitive.Root>
28
21
  ));
22
+
29
23
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
30
24
 
31
25
  /* -----------------------------------------------------------------------------
32
26
  * Component: ScrollAreaScrollbar
33
27
  * -------------------------------------------------------------------------- */
34
28
 
35
- type ScrollAreaScrollbarProps = ScrollAreaPrimitive.ScrollAreaScrollbarProps;
36
- const ScrollAreaScrollbar = React.forwardRef<
37
- React.ElementRef<typeof ScrollAreaPrimitive.Scrollbar>,
38
- ScrollAreaScrollbarProps
39
- >(({ className, orientation = "vertical", ...props }, ref) => (
40
- <ScrollAreaPrimitive.Scrollbar
41
- ref={ref}
42
- orientation={orientation}
43
- className={cn(
44
- "flex touch-none select-none transition-colors",
45
- orientation === "vertical" &&
46
- "h-full w-2.5 border-l border-l-transparent p-px",
47
- orientation === "horizontal" &&
48
- "h-2.5 flex-col border-t border-t-transparent p-px",
49
- className,
50
- )}
51
- {...props}
52
- >
53
- <ScrollAreaPrimitive.ScrollAreaThumb className="bg-border relative flex-1 rounded-full" />
54
- </ScrollAreaPrimitive.Scrollbar>
55
- ));
29
+ type ScrollAreaScrollbarElement = React.ElementRef<typeof ScrollAreaPrimitive.Scrollbar>;
30
+ type ScrollAreaScrollbarProps = React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Scrollbar>;
31
+
32
+ const ScrollAreaScrollbar = React.forwardRef<ScrollAreaScrollbarElement, ScrollAreaScrollbarProps>(
33
+ ({ className, orientation = "vertical", ...props }, ref) => (
34
+ <ScrollAreaPrimitive.Scrollbar
35
+ ref={ref}
36
+ orientation={orientation}
37
+ className={cn(
38
+ "flex touch-none select-none transition-colors",
39
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-px",
40
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-px",
41
+ className,
42
+ )}
43
+ {...props}
44
+ >
45
+ <ScrollAreaPrimitive.ScrollAreaThumb className="bg-border relative flex-1 rounded-full" />
46
+ </ScrollAreaPrimitive.Scrollbar>
47
+ ),
48
+ );
49
+
56
50
  ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
57
51
 
58
52
  /* -----------------------------------------------------------------------------
59
53
  * Exports
60
54
  * -------------------------------------------------------------------------- */
61
55
 
62
- export {
63
- ScrollArea,
64
- ScrollAreaScrollbar,
65
- type ScrollAreaProps,
66
- type ScrollAreaScrollbarProps,
67
- };
56
+ export { ScrollArea, ScrollAreaScrollbar, type ScrollAreaProps, type ScrollAreaScrollbarProps };
package/src/section.tsx CHANGED
@@ -5,16 +5,18 @@ import { Slot } from "@radix-ui/react-slot";
5
5
  * Component: Section
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
+ type SectionElement = HTMLElement;
9
+
8
10
  interface SectionProps extends React.HTMLAttributes<HTMLElement> {
9
11
  asChild?: boolean;
10
12
  }
11
- const Section = React.forwardRef<HTMLElement, SectionProps>(
12
- ({ asChild, ...props }, ref) => {
13
- const Comp = asChild ? Slot : "section";
14
13
 
15
- return <Comp ref={ref} {...props} />;
16
- },
17
- );
14
+ const Section = React.forwardRef<SectionElement, SectionProps>(({ asChild, ...props }, ref) => {
15
+ const Comp = asChild ? Slot : "section";
16
+
17
+ return <Comp ref={ref} {...props} />;
18
+ });
19
+
18
20
  Section.displayName = "Section";
19
21
 
20
22
  /* -----------------------------------------------------------------------------
package/src/select.tsx CHANGED
@@ -1,12 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import * as React from "react";
4
- import {
5
- CaretSortIcon,
6
- CheckIcon,
7
- ChevronDownIcon,
8
- ChevronUpIcon,
9
- } from "@radix-ui/react-icons";
4
+ import { CaretSortIcon, CheckIcon, ChevronDownIcon, ChevronUpIcon } from "@radix-ui/react-icons";
10
5
  import * as SelectPrimitive from "@radix-ui/react-select";
11
6
  import { cn } from "./utils";
12
7
 
@@ -14,156 +9,153 @@ import { cn } from "./utils";
14
9
  * Component: Select
15
10
  * -------------------------------------------------------------------------- */
16
11
 
17
- type SelectProps = SelectPrimitive.SelectProps;
12
+ type SelectProps = React.ComponentProps<typeof SelectPrimitive.Root>;
18
13
  const Select = SelectPrimitive.Root;
19
14
 
20
15
  /* -----------------------------------------------------------------------------
21
16
  * Component: SelectGroup
22
17
  * -------------------------------------------------------------------------- */
23
18
 
24
- type SelectGroupProps = SelectPrimitive.SelectGroupProps;
19
+ type SelectGroupProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Group>;
25
20
  const SelectGroup = SelectPrimitive.Group;
26
21
 
27
22
  /* -----------------------------------------------------------------------------
28
23
  * Component: SelectValue
29
24
  * -------------------------------------------------------------------------- */
30
25
 
31
- type SelectValueProps = SelectPrimitive.SelectValueProps;
26
+ type SelectValueProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Value>;
32
27
  const SelectValue = SelectPrimitive.Value;
33
28
 
34
29
  /* -----------------------------------------------------------------------------
35
30
  * Component: SelectTrigger
36
31
  * -------------------------------------------------------------------------- */
37
32
 
38
- type SelectTriggerProps = SelectPrimitive.SelectTriggerProps;
39
- const SelectTrigger = React.forwardRef<
40
- React.ElementRef<typeof SelectPrimitive.Trigger>,
41
- SelectTriggerProps
42
- >(({ className, children, ...props }, ref) => (
43
- <SelectPrimitive.Trigger
44
- ref={ref}
45
- className={cn(
46
- "border-input placeholder:text-muted-foreground focus:ring-offset-background focus:ring-ring flex h-10 w-full items-center justify-between whitespace-nowrap rounded-md border bg-transparent px-3 text-sm shadow-sm focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
47
- className,
48
- )}
49
- {...props}
50
- >
51
- {children}
52
- <SelectPrimitive.Icon asChild>
53
- <CaretSortIcon className="size-4 opacity-50" />
54
- </SelectPrimitive.Icon>
55
- </SelectPrimitive.Trigger>
56
- ));
33
+ type SelectTriggerElement = React.ElementRef<typeof SelectPrimitive.Trigger>;
34
+ type SelectTriggerProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>;
35
+
36
+ const SelectTrigger = React.forwardRef<SelectTriggerElement, SelectTriggerProps>(
37
+ ({ className, children, ...props }, ref) => (
38
+ <SelectPrimitive.Trigger
39
+ ref={ref}
40
+ className={cn(
41
+ "border-input placeholder:text-muted-foreground flex h-10 w-full items-center justify-between whitespace-nowrap rounded-md border bg-transparent px-3 text-sm shadow-sm disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
42
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
43
+ className,
44
+ )}
45
+ {...props}
46
+ >
47
+ {children}
48
+ <SelectPrimitive.Icon asChild>
49
+ <CaretSortIcon className="size-4 opacity-50" />
50
+ </SelectPrimitive.Icon>
51
+ </SelectPrimitive.Trigger>
52
+ ),
53
+ );
54
+
57
55
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
58
56
 
59
57
  /* -----------------------------------------------------------------------------
60
58
  * Component: SelectScrollUpButton
61
59
  * -------------------------------------------------------------------------- */
62
60
 
63
- type SelectScrollUpButtonProps = SelectPrimitive.SelectScrollUpButtonProps;
64
- const SelectScrollUpButton = React.forwardRef<
65
- React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,
66
- SelectScrollUpButtonProps
67
- >(({ className, ...props }, ref) => (
68
- <SelectPrimitive.ScrollUpButton
69
- ref={ref}
70
- className={cn(
71
- "flex cursor-default items-center justify-center py-1",
72
- className,
73
- )}
74
- {...props}
75
- >
76
- <ChevronUpIcon />
77
- </SelectPrimitive.ScrollUpButton>
78
- ));
61
+ type SelectScrollUpButtonElement = React.ElementRef<typeof SelectPrimitive.ScrollUpButton>;
62
+ type SelectScrollUpButtonProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>;
63
+
64
+ const SelectScrollUpButton = React.forwardRef<SelectScrollUpButtonElement, SelectScrollUpButtonProps>(
65
+ ({ className, ...props }, ref) => (
66
+ <SelectPrimitive.ScrollUpButton
67
+ ref={ref}
68
+ className={cn("flex cursor-default items-center justify-center py-1", className)}
69
+ {...props}
70
+ >
71
+ <ChevronUpIcon />
72
+ </SelectPrimitive.ScrollUpButton>
73
+ ),
74
+ );
75
+
79
76
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
80
77
 
81
78
  /* -----------------------------------------------------------------------------
82
79
  * Component: SelectScrollDownButton
83
80
  * -------------------------------------------------------------------------- */
84
81
 
85
- type SelectScrollDownButtonProps = SelectPrimitive.SelectScrollDownButtonProps;
86
- const SelectScrollDownButton = React.forwardRef<
87
- React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,
88
- SelectScrollDownButtonProps
89
- >(({ className, ...props }, ref) => (
90
- <SelectPrimitive.ScrollDownButton
91
- ref={ref}
92
- className={cn(
93
- "flex cursor-default items-center justify-center py-1",
94
- className,
95
- )}
96
- {...props}
97
- >
98
- <ChevronDownIcon />
99
- </SelectPrimitive.ScrollDownButton>
100
- ));
101
- SelectScrollDownButton.displayName =
102
- SelectPrimitive.ScrollDownButton.displayName;
82
+ type SelectScrollDownButtonElement = React.ElementRef<typeof SelectPrimitive.ScrollDownButton>;
83
+ type SelectScrollDownButtonProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>;
84
+
85
+ const SelectScrollDownButton = React.forwardRef<SelectScrollDownButtonElement, SelectScrollDownButtonProps>(
86
+ ({ className, ...props }, ref) => (
87
+ <SelectPrimitive.ScrollDownButton
88
+ ref={ref}
89
+ className={cn("flex cursor-default items-center justify-center py-1", className)}
90
+ {...props}
91
+ >
92
+ <ChevronDownIcon />
93
+ </SelectPrimitive.ScrollDownButton>
94
+ ),
95
+ );
96
+
97
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
103
98
 
104
99
  /* -----------------------------------------------------------------------------
105
100
  * Component: SelectContent
106
101
  * -------------------------------------------------------------------------- */
107
102
 
108
- type SelectContentProps = SelectPrimitive.SelectContentProps;
109
- const SelectContent = React.forwardRef<
110
- React.ElementRef<typeof SelectPrimitive.Content>,
111
- SelectContentProps
112
- >(({ className, children, position = "popper", ...props }, ref) => (
113
- <SelectPrimitive.Portal>
114
- <SelectPrimitive.Content
115
- ref={ref}
116
- className={cn(
117
- "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-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",
118
- position === "popper" &&
119
- "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
120
- className,
121
- )}
122
- position={position}
123
- {...props}
124
- >
125
- <SelectScrollUpButton />
126
- <SelectPrimitive.Viewport
103
+ type SelectContentElement = React.ElementRef<typeof SelectPrimitive.Content>;
104
+ type SelectContentProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>;
105
+
106
+ const SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>(
107
+ ({ className, children, position = "popper", ...props }, ref) => (
108
+ <SelectPrimitive.Portal>
109
+ <SelectPrimitive.Content
110
+ ref={ref}
127
111
  className={cn(
128
- "p-1",
112
+ "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-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",
129
113
  position === "popper" &&
130
- "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]",
114
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
115
+ className,
131
116
  )}
117
+ position={position}
118
+ {...props}
132
119
  >
133
- {children}
134
- </SelectPrimitive.Viewport>
135
- <SelectScrollDownButton />
136
- </SelectPrimitive.Content>
137
- </SelectPrimitive.Portal>
138
- ));
120
+ <SelectScrollUpButton />
121
+ <SelectPrimitive.Viewport
122
+ className={cn(
123
+ "p-1",
124
+ position === "popper" &&
125
+ "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]",
126
+ )}
127
+ >
128
+ {children}
129
+ </SelectPrimitive.Viewport>
130
+ <SelectScrollDownButton />
131
+ </SelectPrimitive.Content>
132
+ </SelectPrimitive.Portal>
133
+ ),
134
+ );
135
+
139
136
  SelectContent.displayName = SelectPrimitive.Content.displayName;
140
137
 
141
138
  /* -----------------------------------------------------------------------------
142
139
  * Component: SelectLabel
143
140
  * -------------------------------------------------------------------------- */
144
141
 
145
- type SelectLabelProps = SelectPrimitive.SelectLabelProps;
146
- const SelectLabel = React.forwardRef<
147
- React.ElementRef<typeof SelectPrimitive.Label>,
148
- SelectLabelProps
149
- >(({ className, ...props }, ref) => (
150
- <SelectPrimitive.Label
151
- ref={ref}
152
- className={cn("px-2 py-1.5 text-sm font-semibold", className)}
153
- {...props}
154
- />
142
+ type SelectLabelElement = React.ElementRef<typeof SelectPrimitive.Label>;
143
+ type SelectLabelProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>;
144
+
145
+ const SelectLabel = React.forwardRef<SelectLabelElement, SelectLabelProps>(({ className, ...props }, ref) => (
146
+ <SelectPrimitive.Label ref={ref} className={cn("px-2 py-1.5 text-sm font-semibold", className)} {...props} />
155
147
  ));
148
+
156
149
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
157
150
 
158
151
  /* -----------------------------------------------------------------------------
159
152
  * Component: SelectItem
160
153
  * -------------------------------------------------------------------------- */
161
154
 
162
- type SelectItemProps = SelectPrimitive.SelectItemProps;
163
- const SelectItem = React.forwardRef<
164
- React.ElementRef<typeof SelectPrimitive.Item>,
165
- SelectItemProps
166
- >(({ className, children, ...props }, ref) => (
155
+ type SelectItemElement = React.ElementRef<typeof SelectPrimitive.Item>;
156
+ type SelectItemProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>;
157
+
158
+ const SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>(({ className, children, ...props }, ref) => (
167
159
  <SelectPrimitive.Item
168
160
  ref={ref}
169
161
  className={cn(
@@ -180,23 +172,22 @@ const SelectItem = React.forwardRef<
180
172
  <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>
181
173
  </SelectPrimitive.Item>
182
174
  ));
175
+
183
176
  SelectItem.displayName = SelectPrimitive.Item.displayName;
184
177
 
185
178
  /* -----------------------------------------------------------------------------
186
179
  * Component: SelectSeparator
187
180
  * -------------------------------------------------------------------------- */
188
181
 
189
- type SelectSeparatorProps = SelectPrimitive.SelectSeparatorProps;
190
- const SelectSeparator = React.forwardRef<
191
- React.ElementRef<typeof SelectPrimitive.Separator>,
192
- SelectSeparatorProps
193
- >(({ className, ...props }, ref) => (
194
- <SelectPrimitive.Separator
195
- ref={ref}
196
- className={cn("bg-muted -mx-1 my-1 h-px", className)}
197
- {...props}
198
- />
199
- ));
182
+ type SelectSeparatorElement = React.ElementRef<typeof SelectPrimitive.Separator>;
183
+ type SelectSeparatorProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>;
184
+
185
+ const SelectSeparator = React.forwardRef<SelectSeparatorElement, SelectSeparatorProps>(
186
+ ({ className, ...props }, ref) => (
187
+ <SelectPrimitive.Separator ref={ref} className={cn("bg-muted -mx-1 my-1 h-px", className)} {...props} />
188
+ ),
189
+ );
190
+
200
191
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
201
192
 
202
193
  /* -----------------------------------------------------------------------------
package/src/separator.tsx CHANGED
@@ -8,28 +8,21 @@ import { cn } from "./utils";
8
8
  * Component: Separator
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type SeparatorProps = SeparatorPrimitive.SeparatorProps;
12
- const Separator = React.forwardRef<
13
- React.ElementRef<typeof SeparatorPrimitive.Root>,
14
- SeparatorProps
15
- >(
16
- (
17
- { className, orientation = "horizontal", decorative = true, ...props },
18
- ref,
19
- ) => (
11
+ type SeparatorElement = React.ElementRef<typeof SeparatorPrimitive.Root>;
12
+ type SeparatorProps = React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>;
13
+
14
+ const Separator = React.forwardRef<SeparatorElement, SeparatorProps>(
15
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (
20
16
  <SeparatorPrimitive.Root
21
17
  ref={ref}
22
18
  decorative={decorative}
23
19
  orientation={orientation}
24
- className={cn(
25
- "bg-border shrink-0",
26
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
27
- className,
28
- )}
20
+ className={cn("bg-border shrink-0", orientation === "horizontal" ? "h-px w-full" : "h-full w-px", className)}
29
21
  {...props}
30
22
  />
31
23
  ),
32
24
  );
25
+
33
26
  Separator.displayName = SeparatorPrimitive.Root.displayName;
34
27
 
35
28
  /* -----------------------------------------------------------------------------