@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
@@ -9,7 +9,7 @@ import { cn, cva } from "./utils";
9
9
  * Variant: NavigationMenu
10
10
  * -------------------------------------------------------------------------- */
11
11
 
12
- const navigationMenuTriggerStyle = cva({
12
+ const navigationMenuTriggerVariants = cva({
13
13
  base: "bg-background hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent/50 data-[active]:bg-accent/50 group inline-flex h-10 w-max items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors focus:outline-none disabled:pointer-events-none disabled:opacity-50",
14
14
  });
15
15
 
@@ -17,166 +17,162 @@ const navigationMenuTriggerStyle = cva({
17
17
  * Component: NavigationMenu
18
18
  * -------------------------------------------------------------------------- */
19
19
 
20
- type NavigationMenuProps = NavigationMenuPrimitive.NavigationMenuProps;
21
- const NavigationMenu = React.forwardRef<
22
- React.ElementRef<typeof NavigationMenuPrimitive.Root>,
23
- NavigationMenuProps
24
- >(({ className, children, ...props }, ref) => (
25
- <NavigationMenuPrimitive.Root
26
- ref={ref}
27
- className={cn(
28
- "relative z-10 flex max-w-max flex-1 items-center justify-center",
29
- className,
30
- )}
31
- {...props}
32
- >
33
- {children}
34
- <NavigationMenuViewport />
35
- </NavigationMenuPrimitive.Root>
36
- ));
20
+ type NavigationMenuElement = React.ElementRef<typeof NavigationMenuPrimitive.Root>;
21
+ type NavigationMenuProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>;
22
+
23
+ const NavigationMenu = React.forwardRef<NavigationMenuElement, NavigationMenuProps>(
24
+ ({ className, children, ...props }, ref) => (
25
+ <NavigationMenuPrimitive.Root
26
+ ref={ref}
27
+ className={cn("relative z-10 flex max-w-max flex-1 items-center justify-center", className)}
28
+ {...props}
29
+ >
30
+ {children}
31
+ <NavigationMenuViewport />
32
+ </NavigationMenuPrimitive.Root>
33
+ ),
34
+ );
35
+
37
36
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
38
37
 
39
38
  /* -----------------------------------------------------------------------------
40
39
  * Component: NavigationMenuList
41
40
  * -------------------------------------------------------------------------- */
42
41
 
43
- type NavigationMenuListProps = NavigationMenuPrimitive.NavigationMenuListProps;
44
- const NavigationMenuList = React.forwardRef<
45
- React.ElementRef<typeof NavigationMenuPrimitive.List>,
46
- NavigationMenuListProps
47
- >(({ className, ...props }, ref) => (
48
- <NavigationMenuPrimitive.List
49
- ref={ref}
50
- className={cn(
51
- "group flex flex-1 list-none items-center justify-center space-x-1",
52
- className,
53
- )}
54
- {...props}
55
- />
56
- ));
42
+ type NavigationMenuListElement = React.ElementRef<typeof NavigationMenuPrimitive.List>;
43
+ type NavigationMenuListProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>;
44
+
45
+ const NavigationMenuList = React.forwardRef<NavigationMenuListElement, NavigationMenuListProps>(
46
+ ({ className, ...props }, ref) => (
47
+ <NavigationMenuPrimitive.List
48
+ ref={ref}
49
+ className={cn("group flex flex-1 list-none items-center justify-center space-x-1", className)}
50
+ {...props}
51
+ />
52
+ ),
53
+ );
54
+
57
55
  NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
58
56
 
59
57
  /* -----------------------------------------------------------------------------
60
58
  * Component: NavigationMenuItem
61
59
  * -------------------------------------------------------------------------- */
62
60
 
63
- type NavigationMenuItemProps = NavigationMenuPrimitive.NavigationMenuItemProps;
61
+ type NavigationMenuItemProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Item>;
62
+
64
63
  const NavigationMenuItem = NavigationMenuPrimitive.Item;
65
64
 
66
65
  /* -----------------------------------------------------------------------------
67
66
  * Component: NavigationMenuContent
68
67
  * -------------------------------------------------------------------------- */
69
68
 
70
- type NavigationMenuTriggerProps =
71
- NavigationMenuPrimitive.NavigationMenuTriggerProps;
72
- const NavigationMenuTrigger = React.forwardRef<
73
- React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,
74
- NavigationMenuPrimitive.NavigationMenuTriggerProps
75
- >(({ className, children, ...props }, ref) => (
76
- <NavigationMenuPrimitive.Trigger
77
- ref={ref}
78
- className={navigationMenuTriggerStyle({
79
- className: ["group", className],
80
- })}
81
- {...props}
82
- >
83
- {children}{" "}
84
- <ChevronDownIcon
85
- className={cn(
86
- "relative top-px ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180",
87
- )}
88
- aria-hidden="true"
89
- />
90
- </NavigationMenuPrimitive.Trigger>
91
- ));
69
+ type NavigationMenuTriggerElement = React.ElementRef<typeof NavigationMenuPrimitive.Trigger>;
70
+ type NavigationMenuTriggerProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>;
71
+
72
+ const NavigationMenuTrigger = React.forwardRef<NavigationMenuTriggerElement, NavigationMenuTriggerProps>(
73
+ ({ className, children, ...props }, ref) => (
74
+ <NavigationMenuPrimitive.Trigger
75
+ ref={ref}
76
+ className={navigationMenuTriggerVariants({
77
+ className: ["group", className],
78
+ })}
79
+ {...props}
80
+ >
81
+ {children}{" "}
82
+ <ChevronDownIcon
83
+ className={cn("relative top-px ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180")}
84
+ aria-hidden="true"
85
+ />
86
+ </NavigationMenuPrimitive.Trigger>
87
+ ),
88
+ );
89
+
92
90
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
93
91
 
94
92
  /* -----------------------------------------------------------------------------
95
93
  * Component: NavigationMenuContent
96
94
  * -------------------------------------------------------------------------- */
97
95
 
98
- type NavigationMenuContentProps =
99
- NavigationMenuPrimitive.NavigationMenuContentProps;
100
- const NavigationMenuContent = React.forwardRef<
101
- React.ElementRef<typeof NavigationMenuPrimitive.Content>,
102
- NavigationMenuContentProps
103
- >(({ className, ...props }, ref) => (
104
- <NavigationMenuPrimitive.Content
105
- ref={ref}
106
- className={cn(
107
- "data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 left-0 top-0 w-full focus:outline-none md:absolute md:w-auto",
108
- className,
109
- )}
110
- {...props}
111
- />
112
- ));
96
+ type NavigationMenuContentElement = React.ElementRef<typeof NavigationMenuPrimitive.Content>;
97
+ type NavigationMenuContentProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>;
98
+
99
+ const NavigationMenuContent = React.forwardRef<NavigationMenuContentElement, NavigationMenuContentProps>(
100
+ ({ className, ...props }, ref) => (
101
+ <NavigationMenuPrimitive.Content
102
+ ref={ref}
103
+ className={cn(
104
+ "data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 left-0 top-0 w-full focus:outline-none md:absolute md:w-auto",
105
+ className,
106
+ )}
107
+ {...props}
108
+ />
109
+ ),
110
+ );
111
+
113
112
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
114
113
 
115
114
  /* -----------------------------------------------------------------------------
116
115
  * Component: NavigationMenuLink
117
116
  * -------------------------------------------------------------------------- */
118
117
 
119
- type NavigationMenuLinkProps = NavigationMenuPrimitive.NavigationMenuLinkProps;
118
+ type NavigationMenuLinkProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Link>;
119
+
120
120
  const NavigationMenuLink = NavigationMenuPrimitive.Link;
121
121
 
122
122
  /* -----------------------------------------------------------------------------
123
123
  * Component: NavigationMenuViewport
124
124
  * -------------------------------------------------------------------------- */
125
125
 
126
- type NavigationMenuViewportProps =
127
- NavigationMenuPrimitive.NavigationMenuViewportProps;
128
- const NavigationMenuViewport = React.forwardRef<
129
- React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,
130
- NavigationMenuViewportProps
131
- >(({ className, ...props }, ref) => (
132
- <div
133
- className={cn(
134
- "perspective-[2000px] absolute left-0 top-full flex justify-center",
135
- )}
136
- >
137
- <NavigationMenuPrimitive.Viewport
138
- className={cn(
139
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:zoom-in-90 data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full origin-[top_center] overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
140
- className,
141
- )}
142
- ref={ref}
143
- {...props}
144
- />
145
- </div>
146
- ));
147
- NavigationMenuViewport.displayName =
148
- NavigationMenuPrimitive.Viewport.displayName;
126
+ type NavigationMenuViewportElement = React.ElementRef<typeof NavigationMenuPrimitive.Viewport>;
127
+ type NavigationMenuViewportProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>;
128
+
129
+ const NavigationMenuViewport = React.forwardRef<NavigationMenuViewportElement, NavigationMenuViewportProps>(
130
+ ({ className, ...props }, ref) => (
131
+ <div className={cn("perspective-[2000px] absolute left-0 top-full flex justify-center")}>
132
+ <NavigationMenuPrimitive.Viewport
133
+ className={cn(
134
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:zoom-in-90 data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full origin-[top_center] overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
135
+ className,
136
+ )}
137
+ ref={ref}
138
+ {...props}
139
+ />
140
+ </div>
141
+ ),
142
+ );
143
+
144
+ NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
149
145
 
150
146
  /* -----------------------------------------------------------------------------
151
147
  * Component: NavigationMenuIndicator
152
148
  * -------------------------------------------------------------------------- */
153
149
 
154
- type NavigationMenuIndicatorProps =
155
- NavigationMenuPrimitive.NavigationMenuIndicatorProps;
156
- const NavigationMenuIndicator = React.forwardRef<
157
- React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,
158
- NavigationMenuIndicatorProps
159
- >(({ className, ...props }, ref) => (
160
- <NavigationMenuPrimitive.Indicator
161
- ref={ref}
162
- className={cn(
163
- "data-[state=visible]:animate-in data-[state=visible]:fade-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden transition",
164
- className,
165
- )}
166
- {...props}
167
- >
168
- <div className="bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" />
169
- </NavigationMenuPrimitive.Indicator>
170
- ));
171
- NavigationMenuIndicator.displayName =
172
- NavigationMenuPrimitive.Indicator.displayName;
150
+ type NavigationMenuIndicatorElement = React.ElementRef<typeof NavigationMenuPrimitive.Indicator>;
151
+ type NavigationMenuIndicatorProps = React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>;
152
+
153
+ const NavigationMenuIndicator = React.forwardRef<NavigationMenuIndicatorElement, NavigationMenuIndicatorProps>(
154
+ ({ className, ...props }, ref) => (
155
+ <NavigationMenuPrimitive.Indicator
156
+ ref={ref}
157
+ className={cn(
158
+ "data-[state=visible]:animate-in data-[state=visible]:fade-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden transition",
159
+ className,
160
+ )}
161
+ {...props}
162
+ >
163
+ <div className="bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md" />
164
+ </NavigationMenuPrimitive.Indicator>
165
+ ),
166
+ );
167
+
168
+ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
173
169
 
174
170
  /* -----------------------------------------------------------------------------
175
171
  * Exports
176
172
  * -------------------------------------------------------------------------- */
177
173
 
178
174
  export {
179
- navigationMenuTriggerStyle,
175
+ navigationMenuTriggerVariants,
180
176
  NavigationMenu,
181
177
  NavigationMenuList,
182
178
  NavigationMenuItem,
@@ -1,9 +1,5 @@
1
1
  import * as React from "react";
2
- import {
3
- ChevronLeftIcon,
4
- ChevronRightIcon,
5
- DotsHorizontalIcon,
6
- } from "@radix-ui/react-icons";
2
+ import { ChevronLeftIcon, ChevronRightIcon, DotsHorizontalIcon } from "@radix-ui/react-icons";
7
3
  import { cn } from "./utils";
8
4
  import { type ButtonProps, buttonVariants } from "./button";
9
5
 
@@ -12,10 +8,8 @@ import { type ButtonProps, buttonVariants } from "./button";
12
8
  * -------------------------------------------------------------------------- */
13
9
 
14
10
  type PaginationProps = React.HTMLAttributes<HTMLElement>;
15
- function Pagination({
16
- className,
17
- ...props
18
- }: PaginationProps): React.JSX.Element {
11
+
12
+ function Pagination({ className, ...props }: PaginationProps): React.JSX.Element {
19
13
  return (
20
14
  <nav
21
15
  role="navigation"
@@ -30,36 +24,35 @@ function Pagination({
30
24
  * Component: PaginationContent
31
25
  * -------------------------------------------------------------------------- */
32
26
 
27
+ type PaginationContentElement = HTMLUListElement;
33
28
  type PaginationContentProps = React.HTMLAttributes<HTMLUListElement>;
34
- const PaginationContent = React.forwardRef<
35
- HTMLUListElement,
36
- PaginationContentProps
37
- >(({ className, ...props }, ref) => (
38
- <ul
39
- ref={ref}
40
- className={cn("flex flex-row items-center gap-1", className)}
41
- {...props}
42
- />
43
- ));
29
+
30
+ const PaginationContent = React.forwardRef<PaginationContentElement, PaginationContentProps>(
31
+ ({ className, ...props }, ref) => (
32
+ <ul ref={ref} className={cn("flex flex-row items-center gap-1", className)} {...props} />
33
+ ),
34
+ );
35
+
44
36
  PaginationContent.displayName = "PaginationContent";
45
37
 
46
38
  /* -----------------------------------------------------------------------------
47
39
  * Component: PaginationItem
48
40
  * -------------------------------------------------------------------------- */
49
41
 
42
+ type PaginationItemElement = HTMLLIElement;
50
43
  type PaginationItemProps = React.LiHTMLAttributes<HTMLLIElement>;
51
- const PaginationItem = React.forwardRef<HTMLLIElement, PaginationItemProps>(
52
- (props, ref) => <li ref={ref} {...props} />,
53
- );
44
+
45
+ const PaginationItem = React.forwardRef<PaginationItemElement, PaginationItemProps>((props, ref) => (
46
+ <li ref={ref} {...props} />
47
+ ));
48
+
54
49
  PaginationItem.displayName = "PaginationItem";
55
50
 
56
51
  /* -----------------------------------------------------------------------------
57
52
  * Component: PaginationLink
58
53
  * -------------------------------------------------------------------------- */
59
54
 
60
- interface PaginationLinkProps
61
- extends React.AnchorHTMLAttributes<HTMLAnchorElement>,
62
- Pick<ButtonProps, "size"> {
55
+ interface PaginationLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement>, Pick<ButtonProps, "size"> {
63
56
  isActive?: boolean;
64
57
  }
65
58
 
@@ -90,10 +83,8 @@ function PaginationLink({
90
83
  * -------------------------------------------------------------------------- */
91
84
 
92
85
  type PaginationPreviousProps = PaginationLinkProps;
93
- function PaginationPrevious({
94
- className,
95
- ...props
96
- }: PaginationPreviousProps): React.JSX.Element {
86
+
87
+ function PaginationPrevious({ className, ...props }: PaginationPreviousProps): React.JSX.Element {
97
88
  return (
98
89
  <PaginationLink
99
90
  aria-label="Go to previous page"
@@ -112,17 +103,10 @@ function PaginationPrevious({
112
103
  * -------------------------------------------------------------------------- */
113
104
 
114
105
  type PaginationNextProps = PaginationLinkProps;
115
- function PaginationNext({
116
- className,
117
- ...props
118
- }: PaginationNextProps): React.JSX.Element {
106
+
107
+ function PaginationNext({ className, ...props }: PaginationNextProps): React.JSX.Element {
119
108
  return (
120
- <PaginationLink
121
- aria-label="Go to next page"
122
- size="default"
123
- className={cn("gap-1 pr-2.5", className)}
124
- {...props}
125
- >
109
+ <PaginationLink aria-label="Go to next page" size="default" className={cn("gap-1 pr-2.5", className)} {...props}>
126
110
  <span>Next</span>
127
111
  <ChevronRightIcon className="size-4" />
128
112
  </PaginationLink>
@@ -134,16 +118,10 @@ function PaginationNext({
134
118
  * -------------------------------------------------------------------------- */
135
119
 
136
120
  type PaginationEllipsisProps = React.HTMLAttributes<HTMLSpanElement>;
137
- function PaginationEllipsis({
138
- className,
139
- ...props
140
- }: PaginationEllipsisProps): React.JSX.Element {
121
+
122
+ function PaginationEllipsis({ className, ...props }: PaginationEllipsisProps): React.JSX.Element {
141
123
  return (
142
- <span
143
- aria-hidden
144
- className={cn("flex size-10 items-center justify-center", className)}
145
- {...props}
146
- >
124
+ <span aria-hidden className={cn("flex size-10 items-center justify-center", className)} {...props}>
147
125
  <DotsHorizontalIcon className="size-4" />
148
126
  <span className="sr-only">More pages</span>
149
127
  </span>
package/src/popover.tsx CHANGED
@@ -8,62 +8,60 @@ import { cn } from "./utils";
8
8
  * Component: Popover
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type PopoverProps = PopoverPrimitive.PopoverProps;
11
+ type PopoverProps = React.ComponentProps<typeof PopoverPrimitive.Root>;
12
12
  const Popover = PopoverPrimitive.Root;
13
13
 
14
14
  /* -----------------------------------------------------------------------------
15
15
  * Component: PopoverTrigger
16
16
  * -------------------------------------------------------------------------- */
17
17
 
18
- type PopoverTriggerProps = PopoverPrimitive.PopoverTriggerProps;
18
+ type PopoverTriggerProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>;
19
19
  const PopoverTrigger = PopoverPrimitive.Trigger;
20
20
 
21
21
  /* -----------------------------------------------------------------------------
22
22
  * Component: PopoverAnchor
23
23
  * -------------------------------------------------------------------------- */
24
24
 
25
- type PopoverAnchorProps = PopoverPrimitive.PopoverAnchorProps;
25
+ type PopoverAnchorProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor>;
26
26
  const PopoverAnchor = PopoverPrimitive.Anchor;
27
27
 
28
28
  /* -----------------------------------------------------------------------------
29
29
  * Component: PopoverContent
30
30
  * -------------------------------------------------------------------------- */
31
31
 
32
- type PopoverContentProps = PopoverPrimitive.PopoverContentProps;
33
- const PopoverContent = React.forwardRef<
34
- React.ElementRef<typeof PopoverPrimitive.Content>,
35
- PopoverPrimitive.PopoverContentProps
36
- >(({ className, align = "center", sideOffset = 4, ...props }, ref) => (
37
- <PopoverPrimitive.Portal>
38
- <PopoverPrimitive.Content
39
- ref={ref}
40
- align={align}
41
- sideOffset={sideOffset}
42
- className={cn(
43
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 z-50 min-w-[8rem] rounded-md border p-4 shadow-md focus:outline-none",
44
- className,
45
- )}
46
- {...props}
47
- />
48
- </PopoverPrimitive.Portal>
49
- ));
32
+ type PopoverContentElement = React.ElementRef<typeof PopoverPrimitive.Content>;
33
+ type PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>;
34
+
35
+ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentProps>(
36
+ ({ className, align = "center", sideOffset = 4, ...props }, ref) => (
37
+ <PopoverPrimitive.Portal>
38
+ <PopoverPrimitive.Content
39
+ ref={ref}
40
+ align={align}
41
+ sideOffset={sideOffset}
42
+ className={cn(
43
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 z-50 min-w-[8rem] rounded-md border p-4 shadow-md focus:outline-none",
44
+ className,
45
+ )}
46
+ {...props}
47
+ />
48
+ </PopoverPrimitive.Portal>
49
+ ),
50
+ );
51
+
50
52
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
51
53
 
52
54
  /* -----------------------------------------------------------------------------
53
55
  * Component: PopoverArrow
54
56
  * -------------------------------------------------------------------------- */
55
57
 
56
- type PopoverArrowProps = PopoverPrimitive.PopoverArrowProps;
57
- const PopoverArrow = React.forwardRef<
58
- React.ElementRef<typeof PopoverPrimitive.Arrow>,
59
- PopoverArrowProps
60
- >(({ className, ...props }, ref) => (
61
- <PopoverPrimitive.Arrow
62
- ref={ref}
63
- className={cn("fill-popover", className)}
64
- {...props}
65
- />
58
+ type PopoverArrowElement = React.ElementRef<typeof PopoverPrimitive.Arrow>;
59
+ type PopoverArrowProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Arrow>;
60
+
61
+ const PopoverArrow = React.forwardRef<PopoverArrowElement, PopoverArrowProps>(({ className, ...props }, ref) => (
62
+ <PopoverPrimitive.Arrow ref={ref} className={cn("fill-popover", className)} {...props} />
66
63
  ));
64
+
67
65
  PopoverArrow.displayName = PopoverPrimitive.Arrow.displayName;
68
66
 
69
67
  /* -----------------------------------------------------------------------------
package/src/pre.tsx CHANGED
@@ -5,16 +5,18 @@ import { Slot } from "@radix-ui/react-slot";
5
5
  * Component: Pre
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
+ type PreElement = HTMLPreElement;
9
+
8
10
  interface PreProps extends React.HTMLAttributes<HTMLPreElement> {
9
11
  asChild?: boolean;
10
12
  }
11
- const Pre = React.forwardRef<HTMLPreElement, PreProps>(
12
- ({ asChild, ...props }, ref) => {
13
- const Comp = asChild ? Slot : "pre";
14
13
 
15
- return <Comp ref={ref} {...props} />;
16
- },
17
- );
14
+ const Pre = React.forwardRef<PreElement, PreProps>(({ asChild, ...props }, ref) => {
15
+ const Comp = asChild ? Slot : "pre";
16
+
17
+ return <Comp ref={ref} {...props} />;
18
+ });
19
+
18
20
  Pre.displayName = "Pre";
19
21
 
20
22
  /* -----------------------------------------------------------------------------
package/src/progress.tsx CHANGED
@@ -8,17 +8,13 @@ import { cn } from "./utils";
8
8
  * Component: Progress
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type ProgressProps = ProgressPrimitive.ProgressProps;
12
- const Progress = React.forwardRef<
13
- React.ElementRef<typeof ProgressPrimitive.Root>,
14
- ProgressProps
15
- >(({ className, value, ...props }, ref) => (
11
+ type ProgressElement = React.ElementRef<typeof ProgressPrimitive.Root>;
12
+ type ProgressProps = React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>;
13
+
14
+ const Progress = React.forwardRef<ProgressElement, ProgressProps>(({ className, value, ...props }, ref) => (
16
15
  <ProgressPrimitive.Root
17
16
  ref={ref}
18
- className={cn(
19
- "bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",
20
- className,
21
- )}
17
+ className={cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className)}
22
18
  {...props}
23
19
  >
24
20
  <ProgressPrimitive.Indicator
@@ -29,6 +25,7 @@ const Progress = React.forwardRef<
29
25
  />
30
26
  </ProgressPrimitive.Root>
31
27
  ));
28
+
32
29
  Progress.displayName = ProgressPrimitive.Root.displayName;
33
30
 
34
31
  /* -----------------------------------------------------------------------------
package/src/quote.tsx CHANGED
@@ -5,16 +5,18 @@ import { Slot } from "@radix-ui/react-slot";
5
5
  * Component: Quote
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
+ type QuoteElement = HTMLQuoteElement;
9
+
8
10
  interface QuoteProps extends React.QuoteHTMLAttributes<HTMLQuoteElement> {
9
11
  asChild?: boolean;
10
12
  }
11
- const Quote = React.forwardRef<HTMLQuoteElement, QuoteProps>(
12
- ({ asChild, ...props }, ref) => {
13
- const Comp = asChild ? Slot : "q";
14
13
 
15
- return <Comp ref={ref} {...props} />;
16
- },
17
- );
14
+ const Quote = React.forwardRef<QuoteElement, QuoteProps>(({ asChild, ...props }, ref) => {
15
+ const Comp = asChild ? Slot : "q";
16
+
17
+ return <Comp ref={ref} {...props} />;
18
+ });
19
+
18
20
  Quote.displayName = "Quote";
19
21
 
20
22
  /* -----------------------------------------------------------------------------
@@ -0,0 +1,50 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
5
+ import { cn } from "./utils";
6
+
7
+ /* -----------------------------------------------------------------------------
8
+ * Component: RadioCards
9
+ * -------------------------------------------------------------------------- */
10
+
11
+ type RadioCardsElement = React.ElementRef<typeof RadioGroupPrimitive.Root>;
12
+ type RadioCardsProps = React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>;
13
+
14
+ const RadioCards = React.forwardRef<RadioCardsElement, RadioCardsProps>(({ className, ...props }, ref) => {
15
+ return <RadioGroupPrimitive.Root className={cn("grid gap-2", className)} {...props} ref={ref} />;
16
+ });
17
+
18
+ RadioCards.displayName = RadioGroupPrimitive.Root.displayName;
19
+
20
+ /* -----------------------------------------------------------------------------
21
+ * Component: RadioCardsItem
22
+ * -------------------------------------------------------------------------- */
23
+
24
+ type RadioCardsItemElement = React.ElementRef<typeof RadioGroupPrimitive.Item>;
25
+ type RadioCardsItemProps = React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>;
26
+
27
+ const RadioCardsItem = React.forwardRef<RadioCardsItemElement, RadioCardsItemProps>(({ className, ...props }, ref) => {
28
+ return (
29
+ <RadioGroupPrimitive.Item
30
+ ref={ref}
31
+ className={cn(
32
+ "border-compound/70 text-compound-foreground group peer flex cursor-default items-center justify-center rounded-md border p-4",
33
+ "hover:border-compound",
34
+ "aria-checked:border-primary",
35
+ "disabled:cursor-not-allowed disabled:opacity-50",
36
+ "focus-visible:bg-primary/10 focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
37
+ className,
38
+ )}
39
+ {...props}
40
+ />
41
+ );
42
+ });
43
+
44
+ RadioCardsItem.displayName = RadioGroupPrimitive.Item.displayName;
45
+
46
+ /* -----------------------------------------------------------------------------
47
+ * Exports
48
+ * -------------------------------------------------------------------------- */
49
+
50
+ export { RadioCards, RadioCardsItem, type RadioCardsProps, type RadioCardsItemProps };