@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
package/src/sheet.tsx CHANGED
@@ -33,55 +33,54 @@ type SheetVariantsProps = VariantProps<typeof sheetVariants>;
33
33
  * Component: Sheet
34
34
  * -------------------------------------------------------------------------- */
35
35
 
36
- type SheetProps = SheetPrimitive.DialogProps;
36
+ type SheetProps = React.ComponentProps<typeof SheetPrimitive.Root>;
37
37
  const Sheet = SheetPrimitive.Root;
38
38
 
39
39
  /* -----------------------------------------------------------------------------
40
40
  * Component: SheetTrigger
41
41
  * -------------------------------------------------------------------------- */
42
42
 
43
- type SheetTriggerProps = SheetPrimitive.DialogTriggerProps;
43
+ type SheetTriggerProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Trigger>;
44
44
  const SheetTrigger = SheetPrimitive.Trigger;
45
45
 
46
46
  /* -----------------------------------------------------------------------------
47
47
  * Component: SheetClose
48
48
  * -------------------------------------------------------------------------- */
49
49
 
50
- type SheetCloseProps = SheetPrimitive.DialogCloseProps;
50
+ type SheetCloseProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Close>;
51
51
  const SheetClose = SheetPrimitive.Close;
52
52
 
53
53
  /* -----------------------------------------------------------------------------
54
54
  * Component: SheetContent
55
55
  * -------------------------------------------------------------------------- */
56
56
 
57
- type SheetContentProps = SheetPrimitive.DialogContentProps & SheetVariantsProps;
58
- const SheetContent = React.forwardRef<
59
- React.ElementRef<typeof SheetPrimitive.Content>,
60
- SheetContentProps
61
- >(({ side = "right", className, children, ...props }, ref) => (
62
- <SheetPrimitive.Portal>
63
- <SheetPrimitive.Overlay
64
- className={cn(
65
- "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80",
66
- )}
67
- />
68
- <SheetPrimitive.Content
69
- ref={ref}
70
- className={cn(sheetVariants({ side }), className)}
71
- {...props}
72
- >
73
- {children}
74
- <SheetPrimitive.Close
57
+ type SheetContentElement = React.ElementRef<typeof SheetPrimitive.Content>;
58
+ type SheetContentProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content> & SheetVariantsProps;
59
+
60
+ const SheetContent = React.forwardRef<SheetContentElement, SheetContentProps>(
61
+ ({ side = "right", className, children, ...props }, ref) => (
62
+ <SheetPrimitive.Portal>
63
+ <SheetPrimitive.Overlay
75
64
  className={cn(
76
- "focus:ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none",
65
+ "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 fixed inset-0 z-50 bg-black/80",
77
66
  )}
78
- >
79
- <Cross2Icon className="size-4" />
80
- <span className="sr-only">Close</span>
81
- </SheetPrimitive.Close>
82
- </SheetPrimitive.Content>
83
- </SheetPrimitive.Portal>
84
- ));
67
+ />
68
+ <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>
69
+ {children}
70
+ <SheetPrimitive.Close
71
+ className={cn(
72
+ "data-[state=open]:bg-secondary absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none",
73
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
74
+ )}
75
+ >
76
+ <Cross2Icon className="size-4" />
77
+ <span className="sr-only">Close</span>
78
+ </SheetPrimitive.Close>
79
+ </SheetPrimitive.Content>
80
+ </SheetPrimitive.Portal>
81
+ ),
82
+ );
83
+
85
84
  SheetContent.displayName = SheetPrimitive.Content.displayName;
86
85
 
87
86
  /* -----------------------------------------------------------------------------
@@ -89,19 +88,9 @@ SheetContent.displayName = SheetPrimitive.Content.displayName;
89
88
  * -------------------------------------------------------------------------- */
90
89
 
91
90
  type SheetHeaderProps = React.HTMLAttributes<HTMLDivElement>;
92
- function SheetHeader({
93
- className,
94
- ...props
95
- }: SheetHeaderProps): React.JSX.Element {
96
- return (
97
- <div
98
- className={cn(
99
- "flex flex-col space-y-2 text-center sm:text-left",
100
- className,
101
- )}
102
- {...props}
103
- />
104
- );
91
+
92
+ function SheetHeader({ className, ...props }: SheetHeaderProps): React.JSX.Element {
93
+ return <div className={cn("flex flex-col space-y-2 text-center sm:text-left", className)} {...props} />;
105
94
  }
106
95
 
107
96
  /* -----------------------------------------------------------------------------
@@ -109,54 +98,39 @@ function SheetHeader({
109
98
  * -------------------------------------------------------------------------- */
110
99
 
111
100
  type SheetFooterProps = React.HTMLAttributes<HTMLDivElement>;
112
- function SheetFooter({
113
- className,
114
- ...props
115
- }: SheetFooterProps): React.JSX.Element {
116
- return (
117
- <div
118
- className={cn(
119
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
120
- className,
121
- )}
122
- {...props}
123
- />
124
- );
101
+
102
+ function SheetFooter({ className, ...props }: SheetFooterProps): React.JSX.Element {
103
+ return <div className={cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className)} {...props} />;
125
104
  }
105
+
126
106
  SheetFooter.displayName = "SheetFooter";
127
107
 
128
108
  /* -----------------------------------------------------------------------------
129
109
  * Component: SheetTitle
130
110
  * -------------------------------------------------------------------------- */
131
111
 
132
- type SheetTitleProps = SheetPrimitive.DialogTitleProps;
133
- const SheetTitle = React.forwardRef<
134
- React.ElementRef<typeof SheetPrimitive.Title>,
135
- SheetTitleProps
136
- >(({ className, ...props }, ref) => (
137
- <SheetPrimitive.Title
138
- ref={ref}
139
- className={cn("text-foreground text-lg font-semibold", className)}
140
- {...props}
141
- />
112
+ type SheetTitleElement = React.ElementRef<typeof SheetPrimitive.Title>;
113
+ type SheetTitleProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>;
114
+
115
+ const SheetTitle = React.forwardRef<SheetTitleElement, SheetTitleProps>(({ className, ...props }, ref) => (
116
+ <SheetPrimitive.Title ref={ref} className={cn("text-foreground text-lg font-semibold", className)} {...props} />
142
117
  ));
118
+
143
119
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
144
120
 
145
121
  /* -----------------------------------------------------------------------------
146
122
  * Component: SheetDescription
147
123
  * -------------------------------------------------------------------------- */
148
124
 
149
- type SheetDescriptionProps = SheetPrimitive.DialogDescriptionProps;
150
- const SheetDescription = React.forwardRef<
151
- React.ElementRef<typeof SheetPrimitive.Description>,
152
- SheetDescriptionProps
153
- >(({ className, ...props }, ref) => (
154
- <SheetPrimitive.Description
155
- ref={ref}
156
- className={cn("text-muted-foreground text-sm", className)}
157
- {...props}
158
- />
159
- ));
125
+ type SheetDescriptionElement = React.ElementRef<typeof SheetPrimitive.Description>;
126
+ type SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>;
127
+
128
+ const SheetDescription = React.forwardRef<SheetDescriptionElement, SheetDescriptionProps>(
129
+ ({ className, ...props }, ref) => (
130
+ <SheetPrimitive.Description ref={ref} className={cn("text-muted-foreground text-sm", className)} {...props} />
131
+ ),
132
+ );
133
+
160
134
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
161
135
 
162
136
  /* -----------------------------------------------------------------------------
package/src/skeleton.tsx CHANGED
@@ -6,13 +6,9 @@ import { cn } from "./utils";
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
8
  type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;
9
+
9
10
  function Skeleton({ className, ...props }: SkeletonProps): React.JSX.Element {
10
- return (
11
- <div
12
- className={cn("bg-primary/10 animate-pulse rounded-md", className)}
13
- {...props}
14
- />
15
- );
11
+ return <div className={cn("bg-primary/10 animate-pulse rounded-md", className)} {...props} />;
16
12
  }
17
13
 
18
14
  /* -----------------------------------------------------------------------------
package/src/slider.tsx CHANGED
@@ -8,25 +8,27 @@ import { cn } from "./utils";
8
8
  * Component: Slider
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type SliderProps = SliderPrimitive.SliderProps;
12
- const Slider = React.forwardRef<
13
- React.ElementRef<typeof SliderPrimitive.Root>,
14
- SliderProps
15
- >(({ className, ...props }, ref) => (
11
+ type SliderElement = React.ElementRef<typeof SliderPrimitive.Root>;
12
+ type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>;
13
+
14
+ const Slider = React.forwardRef<SliderElement, SliderProps>(({ className, ...props }, ref) => (
16
15
  <SliderPrimitive.Root
17
16
  ref={ref}
18
- className={cn(
19
- "relative flex w-full touch-none select-none items-center",
20
- className,
21
- )}
17
+ className={cn("relative flex w-full touch-none select-none items-center", className)}
22
18
  {...props}
23
19
  >
24
20
  <SliderPrimitive.Track className="bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full">
25
21
  <SliderPrimitive.Range className="bg-primary absolute h-full" />
26
22
  </SliderPrimitive.Track>
27
- <SliderPrimitive.Thumb className="border-primary/50 bg-background focus-visible:ring-ring focus-visible:ring-offset-background block size-4 rounded-full border shadow transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" />
23
+ <SliderPrimitive.Thumb
24
+ className={cn(
25
+ "border-primary/50 bg-background block size-4 rounded-full border shadow transition-colors disabled:pointer-events-none disabled:opacity-50",
26
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
27
+ )}
28
+ />
28
29
  </SliderPrimitive.Root>
29
30
  ));
31
+
30
32
  Slider.displayName = SliderPrimitive.Root.displayName;
31
33
 
32
34
  /* -----------------------------------------------------------------------------
package/src/sonner.tsx CHANGED
@@ -3,7 +3,6 @@
3
3
  import * as React from "react";
4
4
  import { useTheme } from "next-themes";
5
5
  import { toast, Toaster as Sonner } from "sonner";
6
- import { cn } from "./utils";
7
6
 
8
7
  /* -----------------------------------------------------------------------------
9
8
  * Component: Sonner
@@ -21,14 +20,11 @@ function Toaster({ ...props }: ToasterProps): React.JSX.Element {
21
20
  className="toaster group"
22
21
  toastOptions={{
23
22
  classNames: {
24
- toast: cn(
23
+ toast:
25
24
  "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
26
- ),
27
25
  description: "group-[.toast]:text-muted-foreground",
28
- actionButton:
29
- "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
30
- cancelButton:
31
- "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
26
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
27
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
32
28
  },
33
29
  }}
34
30
  {...props}
@@ -0,0 +1,75 @@
1
+ import * as React from "react";
2
+ import { cn } from "./utils";
3
+
4
+ /* -----------------------------------------------------------------------------
5
+ * Component: Spinner
6
+ * -------------------------------------------------------------------------- */
7
+
8
+ const spinnerCount = 8;
9
+
10
+ type SpinnerElement = HTMLSpanElement;
11
+
12
+ interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {
13
+ loading?: boolean;
14
+ }
15
+
16
+ const Spinner = React.forwardRef<SpinnerElement, SpinnerProps>(
17
+ ({ className, loading = true, children, ...props }, ref) => {
18
+ if (!loading) {
19
+ return children;
20
+ }
21
+
22
+ const spinner = (
23
+ <span
24
+ ref={ref}
25
+ className={cn("relative flex size-4 items-center justify-center opacity-60", className)}
26
+ {...props}
27
+ >
28
+ {Array.from({ length: spinnerCount }, (_, i) => (
29
+ <span
30
+ key={i}
31
+ className={cn(
32
+ "absolute h-full rotate-[var(--spinner-rotate)]",
33
+ "before:fade-out-25 before:animate-out before:repeat-infinite before:block before:h-1/3 before:w-full before:rounded-full before:bg-current before:[animation-delay:var(--spinner-delay)] before:[animation-duration:var(--spinner-duration)]",
34
+ )}
35
+ style={
36
+ {
37
+ width: `${(100 / spinnerCount).toString()}%`,
38
+ "--spinner-delay": `-${((spinnerCount - i) * 100).toString()}ms`,
39
+ "--spinner-rotate": `${((360 / spinnerCount) * i).toString()}deg`,
40
+ "--spinner-duration": `${(spinnerCount * 100).toString()}ms`,
41
+ } as React.CSSProperties
42
+ }
43
+ />
44
+ ))}
45
+ </span>
46
+ );
47
+
48
+ if (children === undefined) {
49
+ return spinner;
50
+ }
51
+
52
+ return (
53
+ <span className="relative">
54
+ <span
55
+ aria-hidden
56
+ className="invisible contents"
57
+ // Workaround to use `inert` until https://github.com/facebook/react/pull/24730 is merged.
58
+ {...{ inert: "" }}
59
+ >
60
+ {children}
61
+ </span>
62
+
63
+ <span className="absolute inset-0 flex items-center justify-center">{spinner}</span>
64
+ </span>
65
+ );
66
+ },
67
+ );
68
+
69
+ Spinner.displayName = "Spinner";
70
+
71
+ /* -----------------------------------------------------------------------------
72
+ * Exports
73
+ * -------------------------------------------------------------------------- */
74
+
75
+ export { Spinner, type SpinnerProps };
package/src/strong.tsx CHANGED
@@ -5,16 +5,18 @@ import { Slot } from "@radix-ui/react-slot";
5
5
  * Component: Strong
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
+ type StrongElement = HTMLElement;
9
+
8
10
  interface StrongProps extends React.HTMLAttributes<HTMLElement> {
9
11
  asChild?: boolean;
10
12
  }
11
- const Strong = React.forwardRef<HTMLElement, StrongProps>(
12
- ({ asChild, ...props }, ref) => {
13
- const Comp = asChild ? Slot : "strong";
14
13
 
15
- return <Comp ref={ref} {...props} />;
16
- },
17
- );
14
+ const Strong = React.forwardRef<StrongElement, StrongProps>(({ asChild, ...props }, ref) => {
15
+ const Comp = asChild ? Slot : "strong";
16
+
17
+ return <Comp ref={ref} {...props} />;
18
+ });
19
+
18
20
  Strong.displayName = "Strong";
19
21
 
20
22
  /* -----------------------------------------------------------------------------
package/src/switch.tsx CHANGED
@@ -8,14 +8,14 @@ import { cn } from "./utils";
8
8
  * Component: Switch
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- type SwitchProps = SwitchPrimitives.SwitchProps;
12
- const Switch = React.forwardRef<
13
- React.ElementRef<typeof SwitchPrimitives.Root>,
14
- SwitchProps
15
- >(({ className, ...props }, ref) => (
11
+ type SwitchElement = React.ElementRef<typeof SwitchPrimitives.Root>;
12
+ type SwitchProps = React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>;
13
+
14
+ const Switch = React.forwardRef<SwitchElement, SwitchProps>(({ className, ...props }, ref) => (
16
15
  <SwitchPrimitives.Root
17
16
  className={cn(
18
- "focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
17
+ "data-[state=checked]:bg-primary data-[state=unchecked]:bg-input peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50",
18
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
19
19
  className,
20
20
  )}
21
21
  {...props}
@@ -24,6 +24,7 @@ const Switch = React.forwardRef<
24
24
  <SwitchPrimitives.Thumb className="bg-background pointer-events-none block size-4 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0" />
25
25
  </SwitchPrimitives.Root>
26
26
  ));
27
+
27
28
  Switch.displayName = SwitchPrimitives.Root.displayName;
28
29
 
29
30
  /* -----------------------------------------------------------------------------
package/src/table.tsx CHANGED
@@ -5,139 +5,117 @@ import { cn } from "./utils";
5
5
  * Component: Table
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
+ type TableElement = HTMLTableElement;
8
9
  type TableProps = React.HTMLAttributes<HTMLTableElement>;
9
- const Table = React.forwardRef<HTMLTableElement, TableProps>(
10
- ({ className, ...props }, ref) => (
11
- <div className="relative w-full overflow-auto">
12
- <table
13
- ref={ref}
14
- className={cn("w-full caption-bottom text-sm", className)}
15
- {...props}
16
- />
17
- </div>
18
- ),
19
- );
10
+
11
+ const Table = React.forwardRef<TableElement, TableProps>(({ className, ...props }, ref) => (
12
+ <div className="relative w-full overflow-auto">
13
+ <table ref={ref} className={cn("w-full caption-bottom text-sm", className)} {...props} />
14
+ </div>
15
+ ));
16
+
20
17
  Table.displayName = "Table";
21
18
 
22
19
  /* -----------------------------------------------------------------------------
23
20
  * Component: TableHeader
24
21
  * -------------------------------------------------------------------------- */
25
22
 
23
+ type TableHeaderElement = HTMLTableSectionElement;
26
24
  type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;
27
- const TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(
28
- ({ className, ...props }, ref) => (
29
- <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
30
- ),
31
- );
25
+
26
+ const TableHeader = React.forwardRef<TableHeaderElement, TableHeaderProps>(({ className, ...props }, ref) => (
27
+ <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
28
+ ));
29
+
32
30
  TableHeader.displayName = "TableHeader";
33
31
 
34
32
  /* -----------------------------------------------------------------------------
35
33
  * Component: TableBody
36
34
  * -------------------------------------------------------------------------- */
37
35
 
36
+ type TableBodyElement = HTMLTableSectionElement;
38
37
  type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;
39
- const TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(
40
- ({ className, ...props }, ref) => (
41
- <tbody
42
- ref={ref}
43
- className={cn("[&_tr:last-child]:border-0", className)}
44
- {...props}
45
- />
46
- ),
47
- );
38
+
39
+ const TableBody = React.forwardRef<TableBodyElement, TableBodyProps>(({ className, ...props }, ref) => (
40
+ <tbody ref={ref} className={cn("[&_tr:last-child]:border-0", className)} {...props} />
41
+ ));
42
+
48
43
  TableBody.displayName = "TableBody";
49
44
 
50
45
  /* -----------------------------------------------------------------------------
51
46
  * Component: TableFooter
52
47
  * -------------------------------------------------------------------------- */
53
48
 
49
+ type TableFooterElement = HTMLTableSectionElement;
54
50
  type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;
55
- const TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(
56
- ({ className, ...props }, ref) => (
57
- <tfoot
58
- ref={ref}
59
- className={cn(
60
- "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
61
- className,
62
- )}
63
- {...props}
64
- />
65
- ),
66
- );
51
+
52
+ const TableFooter = React.forwardRef<TableFooterElement, TableFooterProps>(({ className, ...props }, ref) => (
53
+ <tfoot ref={ref} className={cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className)} {...props} />
54
+ ));
55
+
67
56
  TableFooter.displayName = "TableFooter";
68
57
 
69
58
  /* -----------------------------------------------------------------------------
70
59
  * Component: TableRow
71
60
  * -------------------------------------------------------------------------- */
72
61
 
62
+ type TableRowElement = HTMLTableRowElement;
73
63
  type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;
74
- const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(
75
- ({ className, ...props }, ref) => (
76
- <tr
77
- ref={ref}
78
- className={cn(
79
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
80
- className,
81
- )}
82
- {...props}
83
- />
84
- ),
85
- );
64
+
65
+ const TableRow = React.forwardRef<TableRowElement, TableRowProps>(({ className, ...props }, ref) => (
66
+ <tr
67
+ ref={ref}
68
+ className={cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className)}
69
+ {...props}
70
+ />
71
+ ));
72
+
86
73
  TableRow.displayName = "TableRow";
87
74
 
88
75
  /* -----------------------------------------------------------------------------
89
76
  * Component: TableHead
90
77
  * -------------------------------------------------------------------------- */
91
78
 
79
+ type TableHeadElement = HTMLTableCellElement;
92
80
  type TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement>;
93
- const TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(
94
- ({ className, ...props }, ref) => (
95
- <th
96
- ref={ref}
97
- className={cn(
98
- "text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0",
99
- className,
100
- )}
101
- {...props}
102
- />
103
- ),
104
- );
81
+
82
+ const TableHead = React.forwardRef<TableHeadElement, TableHeadProps>(({ className, ...props }, ref) => (
83
+ <th
84
+ ref={ref}
85
+ className={cn(
86
+ "text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0",
87
+ className,
88
+ )}
89
+ {...props}
90
+ />
91
+ ));
92
+
105
93
  TableHead.displayName = "TableHead";
106
94
 
107
95
  /* -----------------------------------------------------------------------------
108
96
  * Component: TableCell
109
97
  * -------------------------------------------------------------------------- */
110
98
 
99
+ type TableCellElement = HTMLTableCellElement;
111
100
  type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;
112
- const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(
113
- ({ className, ...props }, ref) => (
114
- <td
115
- ref={ref}
116
- className={cn(
117
- "p-4 align-middle [&:has([role=checkbox])]:pr-0",
118
- className,
119
- )}
120
- {...props}
121
- />
122
- ),
123
- );
101
+
102
+ const TableCell = React.forwardRef<TableCellElement, TableCellProps>(({ className, ...props }, ref) => (
103
+ <td ref={ref} className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)} {...props} />
104
+ ));
105
+
124
106
  TableCell.displayName = "TableCell";
125
107
 
126
108
  /* -----------------------------------------------------------------------------
127
109
  * Component: TableCaption
128
110
  * -------------------------------------------------------------------------- */
129
111
 
112
+ type TableCaptionElement = HTMLTableCaptionElement;
130
113
  type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;
131
- const TableCaption = React.forwardRef<
132
- HTMLTableCaptionElement,
133
- TableCaptionProps
134
- >(({ className, ...props }, ref) => (
135
- <caption
136
- ref={ref}
137
- className={cn("text-muted-foreground mt-4 text-sm", className)}
138
- {...props}
139
- />
114
+
115
+ const TableCaption = React.forwardRef<TableCaptionElement, TableCaptionProps>(({ className, ...props }, ref) => (
116
+ <caption ref={ref} className={cn("text-muted-foreground mt-4 text-sm", className)} {...props} />
140
117
  ));
118
+
141
119
  TableCaption.displayName = "TableCaption";
142
120
 
143
121
  /* -----------------------------------------------------------------------------