@codefast/ui 0.0.8 → 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 (459) hide show
  1. package/dist/accordion.d.mts +8 -4
  2. package/dist/accordion.d.ts +8 -4
  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 +17 -8
  8. package/dist/alert-dialog.d.ts +17 -8
  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.d.mts +10 -5
  14. package/dist/alert.d.ts +10 -5
  15. package/dist/alert.js +5 -26
  16. package/dist/alert.js.map +1 -1
  17. package/dist/alert.mjs +5 -26
  18. package/dist/alert.mjs.map +1 -1
  19. package/dist/aspect-ratio.d.mts +2 -1
  20. package/dist/aspect-ratio.d.ts +2 -1
  21. package/dist/aspect-ratio.js.map +1 -1
  22. package/dist/aspect-ratio.mjs.map +1 -1
  23. package/dist/avatar.d.mts +7 -4
  24. package/dist/avatar.d.ts +7 -4
  25. package/dist/avatar.js +3 -16
  26. package/dist/avatar.js.map +1 -1
  27. package/dist/avatar.mjs +3 -16
  28. package/dist/avatar.mjs.map +1 -1
  29. package/dist/badge.d.mts +5 -2
  30. package/dist/badge.d.ts +5 -2
  31. package/dist/badge.js +1 -5
  32. package/dist/badge.js.map +1 -1
  33. package/dist/badge.mjs +1 -5
  34. package/dist/badge.mjs.map +1 -1
  35. package/dist/blockquote.d.mts +5 -4
  36. package/dist/blockquote.d.ts +5 -4
  37. package/dist/blockquote.js.map +1 -1
  38. package/dist/blockquote.mjs.map +1 -1
  39. package/dist/box.d.mts +1 -1
  40. package/dist/box.d.ts +1 -1
  41. package/dist/box.js +4 -6
  42. package/dist/box.js.map +1 -1
  43. package/dist/box.mjs +4 -6
  44. package/dist/box.mjs.map +1 -1
  45. package/dist/breadcrumb.d.mts +18 -11
  46. package/dist/breadcrumb.d.ts +18 -11
  47. package/dist/breadcrumb.js +12 -39
  48. package/dist/breadcrumb.js.map +1 -1
  49. package/dist/breadcrumb.mjs +12 -39
  50. package/dist/breadcrumb.mjs.map +1 -1
  51. package/dist/button.d.mts +4 -2
  52. package/dist/button.d.ts +4 -2
  53. package/dist/button.js +3 -2
  54. package/dist/button.mjs +2 -1
  55. package/dist/calendar.d.mts +3 -2
  56. package/dist/calendar.d.ts +3 -2
  57. package/dist/calendar.js +7 -19
  58. package/dist/calendar.js.map +1 -1
  59. package/dist/calendar.mjs +6 -18
  60. package/dist/calendar.mjs.map +1 -1
  61. package/dist/card.d.mts +13 -7
  62. package/dist/card.d.ts +13 -7
  63. package/dist/card.js +7 -44
  64. package/dist/card.js.map +1 -1
  65. package/dist/card.mjs +7 -44
  66. package/dist/card.mjs.map +1 -1
  67. package/dist/carousel.d.mts +13 -8
  68. package/dist/carousel.d.ts +13 -8
  69. package/dist/carousel.js +104 -104
  70. package/dist/carousel.js.map +1 -1
  71. package/dist/carousel.mjs +104 -104
  72. package/dist/carousel.mjs.map +1 -1
  73. package/dist/checkbox-cards.d.mts +15 -0
  74. package/dist/checkbox-cards.d.ts +15 -0
  75. package/dist/checkbox-cards.js +56 -0
  76. package/dist/checkbox-cards.js.map +1 -0
  77. package/dist/checkbox-cards.mjs +56 -0
  78. package/dist/checkbox-cards.mjs.map +1 -0
  79. package/dist/checkbox-group.d.mts +13 -0
  80. package/dist/checkbox-group.d.ts +13 -0
  81. package/dist/checkbox-group.js +44 -0
  82. package/dist/checkbox-group.js.map +1 -0
  83. package/dist/checkbox-group.mjs +44 -0
  84. package/dist/checkbox-group.mjs.map +1 -0
  85. package/dist/checkbox-group.primitive.d.mts +38 -0
  86. package/dist/checkbox-group.primitive.d.ts +38 -0
  87. package/dist/checkbox-group.primitive.js +19 -0
  88. package/dist/checkbox-group.primitive.js.map +1 -0
  89. package/dist/checkbox-group.primitive.mjs +19 -0
  90. package/dist/checkbox-group.primitive.mjs.map +1 -0
  91. package/dist/checkbox.d.mts +3 -2
  92. package/dist/checkbox.d.ts +3 -2
  93. package/dist/checkbox.js +5 -1
  94. package/dist/checkbox.js.map +1 -1
  95. package/dist/checkbox.mjs +5 -1
  96. package/dist/checkbox.mjs.map +1 -1
  97. package/dist/chunk-3ZZ3SRTJ.js +148 -0
  98. package/dist/chunk-3ZZ3SRTJ.js.map +1 -0
  99. package/dist/chunk-5UHPKXF4.mjs +60 -0
  100. package/dist/chunk-5UHPKXF4.mjs.map +1 -0
  101. package/dist/chunk-EWS3N4OZ.mjs +148 -0
  102. package/dist/chunk-EWS3N4OZ.mjs.map +1 -0
  103. package/dist/{chunk-PTD4AMHI.mjs → chunk-FGI3JA75.mjs} +1 -1
  104. package/dist/chunk-FGI3JA75.mjs.map +1 -0
  105. package/dist/{chunk-RTKEO347.js → chunk-IVYGBU4G.js} +1 -1
  106. package/dist/chunk-IVYGBU4G.js.map +1 -0
  107. package/dist/chunk-IXEJO7ZP.js +86 -0
  108. package/dist/chunk-IXEJO7ZP.js.map +1 -0
  109. package/dist/chunk-J6COVJTP.js +60 -0
  110. package/dist/chunk-J6COVJTP.js.map +1 -0
  111. package/dist/chunk-JULVZPCS.mjs +120 -0
  112. package/dist/chunk-JULVZPCS.mjs.map +1 -0
  113. package/dist/chunk-LNSEYAPJ.js +121 -0
  114. package/dist/chunk-LNSEYAPJ.js.map +1 -0
  115. package/dist/chunk-MOJNV3XZ.js +120 -0
  116. package/dist/chunk-MOJNV3XZ.js.map +1 -0
  117. package/dist/{chunk-U2WDUCW3.js → chunk-NEP3JDVQ.js} +31 -6
  118. package/dist/chunk-NEP3JDVQ.js.map +1 -0
  119. package/dist/chunk-OK63Q6EJ.mjs +121 -0
  120. package/dist/chunk-OK63Q6EJ.mjs.map +1 -0
  121. package/dist/{chunk-5GHZ6EXI.js → chunk-ORAVN37L.js} +6 -10
  122. package/dist/chunk-ORAVN37L.js.map +1 -0
  123. package/dist/{chunk-T52N6ZBP.mjs → chunk-XCBBSHAK.mjs} +6 -10
  124. package/dist/chunk-XCBBSHAK.mjs.map +1 -0
  125. package/dist/chunk-XCKLBP2V.mjs +86 -0
  126. package/dist/chunk-XCKLBP2V.mjs.map +1 -0
  127. package/dist/chunk-XHZUPL2U.mjs +81 -0
  128. package/dist/chunk-XHZUPL2U.mjs.map +1 -0
  129. package/dist/code.d.mts +5 -4
  130. package/dist/code.d.ts +5 -4
  131. package/dist/code.js.map +1 -1
  132. package/dist/code.mjs.map +1 -1
  133. package/dist/collapsible.d.mts +4 -1
  134. package/dist/collapsible.d.ts +4 -1
  135. package/dist/collapsible.js.map +1 -1
  136. package/dist/collapsible.mjs.map +1 -1
  137. package/dist/command.d.mts +24 -12
  138. package/dist/command.d.ts +24 -12
  139. package/dist/command.js +9 -40
  140. package/dist/command.js.map +1 -1
  141. package/dist/command.mjs +9 -40
  142. package/dist/command.mjs.map +1 -1
  143. package/dist/container.d.mts +5 -4
  144. package/dist/container.d.ts +5 -4
  145. package/dist/container.js.map +1 -1
  146. package/dist/container.mjs.map +1 -1
  147. package/dist/context-menu.d.mts +31 -16
  148. package/dist/context-menu.d.ts +31 -16
  149. package/dist/context-menu.js +108 -124
  150. package/dist/context-menu.js.map +1 -1
  151. package/dist/context-menu.mjs +109 -125
  152. package/dist/context-menu.mjs.map +1 -1
  153. package/dist/data-table.d.mts +10 -7
  154. package/dist/data-table.d.ts +10 -7
  155. package/dist/data-table.js +131 -149
  156. package/dist/data-table.js.map +1 -1
  157. package/dist/data-table.mjs +120 -138
  158. package/dist/data-table.mjs.map +1 -1
  159. package/dist/dialog.d.mts +14 -6
  160. package/dist/dialog.d.ts +14 -6
  161. package/dist/dialog.js +2 -2
  162. package/dist/dialog.mjs +1 -1
  163. package/dist/drawer.d.mts +12 -4
  164. package/dist/drawer.d.ts +12 -4
  165. package/dist/drawer.js +30 -63
  166. package/dist/drawer.js.map +1 -1
  167. package/dist/drawer.mjs +30 -63
  168. package/dist/drawer.mjs.map +1 -1
  169. package/dist/dropdown-menu.d.mts +29 -15
  170. package/dist/dropdown-menu.d.ts +29 -15
  171. package/dist/dropdown-menu.js +2 -2
  172. package/dist/dropdown-menu.mjs +1 -1
  173. package/dist/em.d.mts +5 -4
  174. package/dist/em.d.ts +5 -4
  175. package/dist/em.js.map +1 -1
  176. package/dist/em.mjs.map +1 -1
  177. package/dist/form.d.mts +14 -6
  178. package/dist/form.d.ts +14 -6
  179. package/dist/form.js +13 -40
  180. package/dist/form.js.map +1 -1
  181. package/dist/form.mjs +13 -40
  182. package/dist/form.mjs.map +1 -1
  183. package/dist/heading.d.mts +6 -5
  184. package/dist/heading.d.ts +6 -5
  185. package/dist/heading.js.map +1 -1
  186. package/dist/heading.mjs.map +1 -1
  187. package/dist/hover-card.d.mts +5 -2
  188. package/dist/hover-card.d.ts +5 -2
  189. package/dist/hover-card.js +15 -13
  190. package/dist/hover-card.js.map +1 -1
  191. package/dist/hover-card.mjs +15 -13
  192. package/dist/hover-card.mjs.map +1 -1
  193. package/dist/input-otp.d.mts +12 -32
  194. package/dist/input-otp.d.ts +12 -32
  195. package/dist/input-otp.js +16 -13
  196. package/dist/input-otp.js.map +1 -1
  197. package/dist/input-otp.mjs +15 -12
  198. package/dist/input-otp.mjs.map +1 -1
  199. package/dist/input.d.mts +6 -3
  200. package/dist/input.d.ts +6 -3
  201. package/dist/input.js +8 -10
  202. package/dist/input.js.map +1 -1
  203. package/dist/input.mjs +8 -10
  204. package/dist/input.mjs.map +1 -1
  205. package/dist/kbd.d.mts +5 -4
  206. package/dist/kbd.d.ts +5 -4
  207. package/dist/kbd.js.map +1 -1
  208. package/dist/kbd.mjs.map +1 -1
  209. package/dist/label.d.mts +3 -2
  210. package/dist/label.d.ts +3 -2
  211. package/dist/label.js +2 -2
  212. package/dist/label.mjs +1 -1
  213. package/dist/menubar.d.mts +32 -17
  214. package/dist/menubar.d.ts +32 -17
  215. package/dist/menubar.js +73 -93
  216. package/dist/menubar.js.map +1 -1
  217. package/dist/menubar.mjs +74 -94
  218. package/dist/menubar.mjs.map +1 -1
  219. package/dist/navigation-menu.d.mts +16 -8
  220. package/dist/navigation-menu.d.ts +16 -8
  221. package/dist/navigation-menu.js +89 -93
  222. package/dist/navigation-menu.js.map +1 -1
  223. package/dist/navigation-menu.mjs +89 -93
  224. package/dist/navigation-menu.mjs.map +1 -1
  225. package/dist/pagination.d.mts +13 -7
  226. package/dist/pagination.d.ts +13 -7
  227. package/dist/pagination.js +18 -55
  228. package/dist/pagination.js.map +1 -1
  229. package/dist/pagination.mjs +18 -55
  230. package/dist/pagination.mjs.map +1 -1
  231. package/dist/popover.d.mts +8 -3
  232. package/dist/popover.d.ts +8 -3
  233. package/dist/popover.js +16 -21
  234. package/dist/popover.js.map +1 -1
  235. package/dist/popover.mjs +16 -21
  236. package/dist/popover.mjs.map +1 -1
  237. package/dist/pre.d.mts +5 -4
  238. package/dist/pre.d.ts +5 -4
  239. package/dist/pre.js.map +1 -1
  240. package/dist/pre.mjs.map +1 -1
  241. package/dist/progress.d.mts +3 -2
  242. package/dist/progress.d.ts +3 -2
  243. package/dist/progress.js +2 -5
  244. package/dist/progress.js.map +1 -1
  245. package/dist/progress.mjs +2 -5
  246. package/dist/progress.mjs.map +1 -1
  247. package/dist/quote.d.mts +5 -4
  248. package/dist/quote.d.ts +5 -4
  249. package/dist/quote.js.map +1 -1
  250. package/dist/quote.mjs.map +1 -1
  251. package/dist/radio-cards.d.mts +9 -0
  252. package/dist/radio-cards.d.ts +9 -0
  253. package/dist/radio-cards.js +36 -0
  254. package/dist/radio-cards.js.map +1 -0
  255. package/dist/radio-cards.mjs +36 -0
  256. package/dist/radio-cards.mjs.map +1 -0
  257. package/dist/radio-group.d.mts +5 -3
  258. package/dist/radio-group.d.ts +5 -3
  259. package/dist/radio-group.js +3 -9
  260. package/dist/radio-group.js.map +1 -1
  261. package/dist/radio-group.mjs +3 -9
  262. package/dist/radio-group.mjs.map +1 -1
  263. package/dist/radio.d.mts +8 -0
  264. package/dist/radio.d.ts +8 -0
  265. package/dist/radio.js +35 -0
  266. package/dist/radio.js.map +1 -0
  267. package/dist/radio.mjs +35 -0
  268. package/dist/radio.mjs.map +1 -0
  269. package/dist/resizable.d.mts +6 -6
  270. package/dist/resizable.d.ts +6 -6
  271. package/dist/resizable.js +4 -6
  272. package/dist/resizable.js.map +1 -1
  273. package/dist/resizable.mjs +4 -6
  274. package/dist/resizable.mjs.map +1 -1
  275. package/dist/scroll-area.d.mts +5 -3
  276. package/dist/scroll-area.d.ts +5 -3
  277. package/dist/scroll-area.js +25 -31
  278. package/dist/scroll-area.js.map +1 -1
  279. package/dist/scroll-area.mjs +25 -31
  280. package/dist/scroll-area.mjs.map +1 -1
  281. package/dist/section.d.mts +5 -4
  282. package/dist/section.d.ts +5 -4
  283. package/dist/section.js.map +1 -1
  284. package/dist/section.mjs.map +1 -1
  285. package/dist/select.d.mts +18 -8
  286. package/dist/select.d.ts +18 -8
  287. package/dist/select.js +2 -2
  288. package/dist/select.mjs +1 -1
  289. package/dist/separator.d.mts +3 -2
  290. package/dist/separator.d.ts +3 -2
  291. package/dist/separator.js +1 -5
  292. package/dist/separator.js.map +1 -1
  293. package/dist/separator.mjs +1 -5
  294. package/dist/separator.mjs.map +1 -1
  295. package/dist/sheet.d.mts +20 -10
  296. package/dist/sheet.d.ts +20 -10
  297. package/dist/sheet.js +35 -76
  298. package/dist/sheet.js.map +1 -1
  299. package/dist/sheet.mjs +35 -76
  300. package/dist/sheet.mjs.map +1 -1
  301. package/dist/skeleton.d.mts +3 -2
  302. package/dist/skeleton.d.ts +3 -2
  303. package/dist/skeleton.js +2 -11
  304. package/dist/skeleton.js.map +1 -1
  305. package/dist/skeleton.mjs +2 -11
  306. package/dist/skeleton.mjs.map +1 -1
  307. package/dist/slider.d.mts +3 -2
  308. package/dist/slider.d.ts +3 -2
  309. package/dist/slider.js +10 -5
  310. package/dist/slider.js.map +1 -1
  311. package/dist/slider.mjs +10 -5
  312. package/dist/slider.mjs.map +1 -1
  313. package/dist/sonner.d.mts +1 -1
  314. package/dist/sonner.d.ts +1 -1
  315. package/dist/sonner.js +1 -6
  316. package/dist/sonner.js.map +1 -1
  317. package/dist/sonner.mjs +1 -6
  318. package/dist/sonner.mjs.map +1 -1
  319. package/dist/spinner.d.mts +8 -0
  320. package/dist/spinner.d.ts +8 -0
  321. package/dist/spinner.js +8 -0
  322. package/dist/spinner.js.map +1 -0
  323. package/dist/spinner.mjs +8 -0
  324. package/dist/spinner.mjs.map +1 -0
  325. package/dist/strong.d.mts +5 -4
  326. package/dist/strong.d.ts +5 -4
  327. package/dist/strong.js.map +1 -1
  328. package/dist/strong.mjs.map +1 -1
  329. package/dist/styles.css +1 -1
  330. package/dist/styles.css.map +1 -1
  331. package/dist/switch.d.mts +3 -2
  332. package/dist/switch.d.ts +3 -2
  333. package/dist/switch.js +2 -1
  334. package/dist/switch.js.map +1 -1
  335. package/dist/switch.mjs +2 -1
  336. package/dist/switch.mjs.map +1 -1
  337. package/dist/table.d.mts +17 -9
  338. package/dist/table.d.ts +17 -9
  339. package/dist/table.js +6 -47
  340. package/dist/table.js.map +1 -1
  341. package/dist/table.mjs +6 -47
  342. package/dist/table.mjs.map +1 -1
  343. package/dist/tabs.d.mts +8 -4
  344. package/dist/tabs.d.ts +8 -4
  345. package/dist/tabs.js +4 -2
  346. package/dist/tabs.js.map +1 -1
  347. package/dist/tabs.mjs +4 -2
  348. package/dist/tabs.mjs.map +1 -1
  349. package/dist/text.d.mts +1 -1
  350. package/dist/text.d.ts +1 -1
  351. package/dist/text.js +4 -6
  352. package/dist/text.js.map +1 -1
  353. package/dist/text.mjs +4 -6
  354. package/dist/text.mjs.map +1 -1
  355. package/dist/textarea.d.mts +3 -2
  356. package/dist/textarea.d.ts +3 -2
  357. package/dist/textarea.js +2 -1
  358. package/dist/textarea.js.map +1 -1
  359. package/dist/textarea.mjs +2 -1
  360. package/dist/textarea.mjs.map +1 -1
  361. package/dist/toggle-group.d.mts +5 -3
  362. package/dist/toggle-group.d.ts +5 -3
  363. package/dist/toggle-group.js +41 -34
  364. package/dist/toggle-group.js.map +1 -1
  365. package/dist/toggle-group.mjs +40 -33
  366. package/dist/toggle-group.mjs.map +1 -1
  367. package/dist/toggle.d.mts +3 -2
  368. package/dist/toggle.d.ts +3 -2
  369. package/dist/toggle.js +2 -2
  370. package/dist/toggle.mjs +1 -1
  371. package/dist/tooltip.d.mts +8 -3
  372. package/dist/tooltip.d.ts +8 -3
  373. package/dist/tooltip.js +15 -20
  374. package/dist/tooltip.js.map +1 -1
  375. package/dist/tooltip.mjs +15 -20
  376. package/dist/tooltip.mjs.map +1 -1
  377. package/package.json +40 -9
  378. package/src/accordion.tsx +63 -40
  379. package/src/alert-dialog.tsx +84 -84
  380. package/src/alert.tsx +25 -32
  381. package/src/aspect-ratio.tsx +3 -1
  382. package/src/avatar.tsx +19 -26
  383. package/src/badge.tsx +8 -9
  384. package/src/blockquote.tsx +9 -7
  385. package/src/box.tsx +8 -7
  386. package/src/breadcrumb.tsx +55 -54
  387. package/src/button.tsx +44 -15
  388. package/src/calendar.tsx +8 -23
  389. package/src/card.tsx +44 -53
  390. package/src/carousel.tsx +152 -134
  391. package/src/checkbox-cards.tsx +68 -0
  392. package/src/checkbox-group.primitive.tsx +199 -0
  393. package/src/checkbox-group.tsx +57 -0
  394. package/src/checkbox.tsx +11 -6
  395. package/src/code.tsx +9 -5
  396. package/src/collapsible.tsx +12 -1
  397. package/src/command.tsx +65 -65
  398. package/src/container.tsx +9 -7
  399. package/src/context-menu.tsx +184 -160
  400. package/src/data-table.tsx +43 -48
  401. package/src/dialog.tsx +68 -71
  402. package/src/drawer.tsx +59 -67
  403. package/src/dropdown-menu.tsx +164 -139
  404. package/src/em.tsx +9 -5
  405. package/src/form.tsx +61 -69
  406. package/src/heading.tsx +10 -8
  407. package/src/hover-card.tsx +30 -18
  408. package/src/input-otp.tsx +40 -26
  409. package/src/input.tsx +16 -15
  410. package/src/kbd.tsx +9 -5
  411. package/src/label.tsx +6 -5
  412. package/src/menubar.tsx +154 -139
  413. package/src/navigation-menu.tsx +118 -102
  414. package/src/pagination.tsx +39 -49
  415. package/src/popover.tsx +41 -27
  416. package/src/pre.tsx +9 -5
  417. package/src/progress.tsx +8 -10
  418. package/src/quote.tsx +9 -5
  419. package/src/radio-cards.tsx +50 -0
  420. package/src/radio-group.tsx +14 -17
  421. package/src/radio.tsx +44 -0
  422. package/src/resizable.tsx +7 -8
  423. package/src/scroll-area.tsx +33 -37
  424. package/src/section.tsx +9 -7
  425. package/src/select.tsx +116 -105
  426. package/src/separator.tsx +8 -14
  427. package/src/sheet.tsx +62 -70
  428. package/src/skeleton.tsx +5 -11
  429. package/src/slider.tsx +13 -10
  430. package/src/sonner.tsx +4 -8
  431. package/src/spinner.tsx +75 -0
  432. package/src/strong.tsx +9 -5
  433. package/src/switch.tsx +8 -6
  434. package/src/table.tsx +54 -64
  435. package/src/tabs.tsx +30 -15
  436. package/src/text.tsx +9 -9
  437. package/src/textarea.tsx +8 -6
  438. package/src/toggle-group.tsx +59 -48
  439. package/src/toggle.tsx +12 -13
  440. package/src/tooltip.tsx +33 -25
  441. package/dist/chunk-2D7SRYKN.js +0 -135
  442. package/dist/chunk-2D7SRYKN.js.map +0 -1
  443. package/dist/chunk-5GHZ6EXI.js.map +0 -1
  444. package/dist/chunk-EDVCMWDT.mjs +0 -158
  445. package/dist/chunk-EDVCMWDT.mjs.map +0 -1
  446. package/dist/chunk-EIHWTXQ4.mjs +0 -112
  447. package/dist/chunk-EIHWTXQ4.mjs.map +0 -1
  448. package/dist/chunk-ESWGFN3R.mjs +0 -135
  449. package/dist/chunk-ESWGFN3R.mjs.map +0 -1
  450. package/dist/chunk-KW5FJ62U.mjs +0 -56
  451. package/dist/chunk-KW5FJ62U.mjs.map +0 -1
  452. package/dist/chunk-LDYBRDAY.js +0 -112
  453. package/dist/chunk-LDYBRDAY.js.map +0 -1
  454. package/dist/chunk-OCLLX7EY.js +0 -158
  455. package/dist/chunk-OCLLX7EY.js.map +0 -1
  456. package/dist/chunk-PTD4AMHI.mjs.map +0 -1
  457. package/dist/chunk-RTKEO347.js.map +0 -1
  458. package/dist/chunk-T52N6ZBP.mjs.map +0 -1
  459. package/dist/chunk-U2WDUCW3.js.map +0 -1
package/src/separator.tsx CHANGED
@@ -8,31 +8,25 @@ import { cn } from "./utils";
8
8
  * Component: Separator
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- const Separator = React.forwardRef<
12
- React.ElementRef<typeof SeparatorPrimitive.Root>,
13
- SeparatorPrimitive.SeparatorProps
14
- >(
15
- (
16
- { className, orientation = "horizontal", decorative = true, ...props },
17
- ref,
18
- ) => (
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) => (
19
16
  <SeparatorPrimitive.Root
20
17
  ref={ref}
21
18
  decorative={decorative}
22
19
  orientation={orientation}
23
- className={cn(
24
- "bg-border shrink-0",
25
- orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
26
- className,
27
- )}
20
+ className={cn("bg-border shrink-0", orientation === "horizontal" ? "h-px w-full" : "h-full w-px", className)}
28
21
  {...props}
29
22
  />
30
23
  ),
31
24
  );
25
+
32
26
  Separator.displayName = SeparatorPrimitive.Root.displayName;
33
27
 
34
28
  /* -----------------------------------------------------------------------------
35
29
  * Exports
36
30
  * -------------------------------------------------------------------------- */
37
31
 
38
- export { Separator };
32
+ export { Separator, type SeparatorProps };
package/src/sheet.tsx CHANGED
@@ -27,126 +27,110 @@ const sheetVariants = cva({
27
27
  },
28
28
  });
29
29
 
30
+ type SheetVariantsProps = VariantProps<typeof sheetVariants>;
31
+
30
32
  /* -----------------------------------------------------------------------------
31
33
  * Component: Sheet
32
34
  * -------------------------------------------------------------------------- */
33
35
 
36
+ type SheetProps = React.ComponentProps<typeof SheetPrimitive.Root>;
34
37
  const Sheet = SheetPrimitive.Root;
35
38
 
36
39
  /* -----------------------------------------------------------------------------
37
40
  * Component: SheetTrigger
38
41
  * -------------------------------------------------------------------------- */
39
42
 
43
+ type SheetTriggerProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Trigger>;
40
44
  const SheetTrigger = SheetPrimitive.Trigger;
41
45
 
42
46
  /* -----------------------------------------------------------------------------
43
47
  * Component: SheetClose
44
48
  * -------------------------------------------------------------------------- */
45
49
 
50
+ type SheetCloseProps = React.ComponentPropsWithoutRef<typeof SheetPrimitive.Close>;
46
51
  const SheetClose = SheetPrimitive.Close;
47
52
 
48
53
  /* -----------------------------------------------------------------------------
49
54
  * Component: SheetContent
50
55
  * -------------------------------------------------------------------------- */
51
56
 
52
- const SheetContent = React.forwardRef<
53
- React.ElementRef<typeof SheetPrimitive.Content>,
54
- SheetPrimitive.DialogContentProps & VariantProps<typeof sheetVariants>
55
- >(({ side = "right", className, children, ...props }, ref) => (
56
- <SheetPrimitive.Portal>
57
- <SheetPrimitive.Overlay
58
- className={cn(
59
- "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",
60
- )}
61
- />
62
- <SheetPrimitive.Content
63
- ref={ref}
64
- className={cn(sheetVariants({ side }), className)}
65
- {...props}
66
- >
67
- {children}
68
- <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
69
64
  className={cn(
70
- "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",
71
66
  )}
72
- >
73
- <Cross2Icon className="size-4" />
74
- <span className="sr-only">Close</span>
75
- </SheetPrimitive.Close>
76
- </SheetPrimitive.Content>
77
- </SheetPrimitive.Portal>
78
- ));
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
+
79
84
  SheetContent.displayName = SheetPrimitive.Content.displayName;
80
85
 
81
86
  /* -----------------------------------------------------------------------------
82
87
  * Component: SheetHeader
83
88
  * -------------------------------------------------------------------------- */
84
89
 
85
- function SheetHeader({
86
- className,
87
- ...props
88
- }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element {
89
- return (
90
- <div
91
- className={cn(
92
- "flex flex-col space-y-2 text-center sm:text-left",
93
- className,
94
- )}
95
- {...props}
96
- />
97
- );
90
+ type SheetHeaderProps = React.HTMLAttributes<HTMLDivElement>;
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} />;
98
94
  }
99
95
 
100
96
  /* -----------------------------------------------------------------------------
101
97
  * Component: SheetFooter
102
98
  * -------------------------------------------------------------------------- */
103
99
 
104
- function SheetFooter({
105
- className,
106
- ...props
107
- }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element {
108
- return (
109
- <div
110
- className={cn(
111
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
112
- className,
113
- )}
114
- {...props}
115
- />
116
- );
100
+ type SheetFooterProps = React.HTMLAttributes<HTMLDivElement>;
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} />;
117
104
  }
105
+
118
106
  SheetFooter.displayName = "SheetFooter";
119
107
 
120
108
  /* -----------------------------------------------------------------------------
121
109
  * Component: SheetTitle
122
110
  * -------------------------------------------------------------------------- */
123
111
 
124
- const SheetTitle = React.forwardRef<
125
- React.ElementRef<typeof SheetPrimitive.Title>,
126
- SheetPrimitive.DialogTitleProps
127
- >(({ className, ...props }, ref) => (
128
- <SheetPrimitive.Title
129
- ref={ref}
130
- className={cn("text-foreground text-lg font-semibold", className)}
131
- {...props}
132
- />
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} />
133
117
  ));
118
+
134
119
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
135
120
 
136
121
  /* -----------------------------------------------------------------------------
137
122
  * Component: SheetDescription
138
123
  * -------------------------------------------------------------------------- */
139
124
 
140
- const SheetDescription = React.forwardRef<
141
- React.ElementRef<typeof SheetPrimitive.Description>,
142
- SheetPrimitive.DialogDescriptionProps
143
- >(({ className, ...props }, ref) => (
144
- <SheetPrimitive.Description
145
- ref={ref}
146
- className={cn("text-muted-foreground text-sm", className)}
147
- {...props}
148
- />
149
- ));
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
+
150
134
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
151
135
 
152
136
  /* -----------------------------------------------------------------------------
@@ -162,4 +146,12 @@ export {
162
146
  SheetFooter,
163
147
  SheetTitle,
164
148
  SheetDescription,
149
+ type SheetProps,
150
+ type SheetTriggerProps,
151
+ type SheetCloseProps,
152
+ type SheetContentProps,
153
+ type SheetHeaderProps,
154
+ type SheetFooterProps,
155
+ type SheetTitleProps,
156
+ type SheetDescriptionProps,
165
157
  };
package/src/skeleton.tsx CHANGED
@@ -5,20 +5,14 @@ import { cn } from "./utils";
5
5
  * Component: Skeleton
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
- function Skeleton({
9
- className,
10
- ...props
11
- }: React.HTMLAttributes<HTMLDivElement>): React.JSX.Element {
12
- return (
13
- <div
14
- className={cn("bg-primary/10 animate-pulse rounded-md", className)}
15
- {...props}
16
- />
17
- );
8
+ type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;
9
+
10
+ function Skeleton({ className, ...props }: SkeletonProps): React.JSX.Element {
11
+ return <div className={cn("bg-primary/10 animate-pulse rounded-md", className)} {...props} />;
18
12
  }
19
13
 
20
14
  /* -----------------------------------------------------------------------------
21
15
  * Exports
22
16
  * -------------------------------------------------------------------------- */
23
17
 
24
- export { Skeleton };
18
+ export { Skeleton, type SkeletonProps };
package/src/slider.tsx CHANGED
@@ -8,28 +8,31 @@ import { cn } from "./utils";
8
8
  * Component: Slider
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- const Slider = React.forwardRef<
12
- React.ElementRef<typeof SliderPrimitive.Root>,
13
- SliderPrimitive.SliderProps
14
- >(({ 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) => (
15
15
  <SliderPrimitive.Root
16
16
  ref={ref}
17
- className={cn(
18
- "relative flex w-full touch-none select-none items-center",
19
- className,
20
- )}
17
+ className={cn("relative flex w-full touch-none select-none items-center", className)}
21
18
  {...props}
22
19
  >
23
20
  <SliderPrimitive.Track className="bg-primary/20 relative h-1.5 w-full grow overflow-hidden rounded-full">
24
21
  <SliderPrimitive.Range className="bg-primary absolute h-full" />
25
22
  </SliderPrimitive.Track>
26
- <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
+ />
27
29
  </SliderPrimitive.Root>
28
30
  ));
31
+
29
32
  Slider.displayName = SliderPrimitive.Root.displayName;
30
33
 
31
34
  /* -----------------------------------------------------------------------------
32
35
  * Exports
33
36
  * -------------------------------------------------------------------------- */
34
37
 
35
- export { Slider };
38
+ export { Slider, type SliderProps };
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}
@@ -40,4 +36,4 @@ function Toaster({ ...props }: ToasterProps): React.JSX.Element {
40
36
  * Exports
41
37
  * -------------------------------------------------------------------------- */
42
38
 
43
- export { Toaster, toast };
39
+ export { Toaster, toast, type ToasterProps };
@@ -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,18 +5,22 @@ import { Slot } from "@radix-ui/react-slot";
5
5
  * Component: Strong
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
- const Strong = React.forwardRef<
9
- HTMLElement,
10
- React.HTMLAttributes<HTMLElement> & { asChild?: boolean }
11
- >(({ asChild, ...props }, ref) => {
8
+ type StrongElement = HTMLElement;
9
+
10
+ interface StrongProps extends React.HTMLAttributes<HTMLElement> {
11
+ asChild?: boolean;
12
+ }
13
+
14
+ const Strong = React.forwardRef<StrongElement, StrongProps>(({ asChild, ...props }, ref) => {
12
15
  const Comp = asChild ? Slot : "strong";
13
16
 
14
17
  return <Comp ref={ref} {...props} />;
15
18
  });
19
+
16
20
  Strong.displayName = "Strong";
17
21
 
18
22
  /* -----------------------------------------------------------------------------
19
23
  * Exports
20
24
  * -------------------------------------------------------------------------- */
21
25
 
22
- export { Strong };
26
+ export { Strong, type StrongProps };
package/src/switch.tsx CHANGED
@@ -8,13 +8,14 @@ import { cn } from "./utils";
8
8
  * Component: Switch
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
- const Switch = React.forwardRef<
12
- React.ElementRef<typeof SwitchPrimitives.Root>,
13
- SwitchPrimitives.SwitchProps
14
- >(({ 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) => (
15
15
  <SwitchPrimitives.Root
16
16
  className={cn(
17
- "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",
18
19
  className,
19
20
  )}
20
21
  {...props}
@@ -23,10 +24,11 @@ const Switch = React.forwardRef<
23
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" />
24
25
  </SwitchPrimitives.Root>
25
26
  ));
27
+
26
28
  Switch.displayName = SwitchPrimitives.Root.displayName;
27
29
 
28
30
  /* -----------------------------------------------------------------------------
29
31
  * Exports
30
32
  * -------------------------------------------------------------------------- */
31
33
 
32
- export { Switch };
34
+ export { Switch, type SwitchProps };
package/src/table.tsx CHANGED
@@ -5,94 +5,81 @@ import { cn } from "./utils";
5
5
  * Component: Table
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
- const Table = React.forwardRef<
9
- HTMLTableElement,
10
- React.HTMLAttributes<HTMLTableElement>
11
- >(({ className, ...props }, ref) => (
8
+ type TableElement = HTMLTableElement;
9
+ type TableProps = React.HTMLAttributes<HTMLTableElement>;
10
+
11
+ const Table = React.forwardRef<TableElement, TableProps>(({ className, ...props }, ref) => (
12
12
  <div className="relative w-full overflow-auto">
13
- <table
14
- ref={ref}
15
- className={cn("w-full caption-bottom text-sm", className)}
16
- {...props}
17
- />
13
+ <table ref={ref} className={cn("w-full caption-bottom text-sm", className)} {...props} />
18
14
  </div>
19
15
  ));
16
+
20
17
  Table.displayName = "Table";
21
18
 
22
19
  /* -----------------------------------------------------------------------------
23
20
  * Component: TableHeader
24
21
  * -------------------------------------------------------------------------- */
25
22
 
26
- const TableHeader = React.forwardRef<
27
- HTMLTableSectionElement,
28
- React.HTMLAttributes<HTMLTableSectionElement>
29
- >(({ className, ...props }, ref) => (
23
+ type TableHeaderElement = HTMLTableSectionElement;
24
+ type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;
25
+
26
+ const TableHeader = React.forwardRef<TableHeaderElement, TableHeaderProps>(({ className, ...props }, ref) => (
30
27
  <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
31
28
  ));
29
+
32
30
  TableHeader.displayName = "TableHeader";
33
31
 
34
32
  /* -----------------------------------------------------------------------------
35
33
  * Component: TableBody
36
34
  * -------------------------------------------------------------------------- */
37
35
 
38
- const TableBody = React.forwardRef<
39
- HTMLTableSectionElement,
40
- React.HTMLAttributes<HTMLTableSectionElement>
41
- >(({ className, ...props }, ref) => (
42
- <tbody
43
- ref={ref}
44
- className={cn("[&_tr:last-child]:border-0", className)}
45
- {...props}
46
- />
36
+ type TableBodyElement = HTMLTableSectionElement;
37
+ type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;
38
+
39
+ const TableBody = React.forwardRef<TableBodyElement, TableBodyProps>(({ className, ...props }, ref) => (
40
+ <tbody ref={ref} className={cn("[&_tr:last-child]:border-0", className)} {...props} />
47
41
  ));
42
+
48
43
  TableBody.displayName = "TableBody";
49
44
 
50
45
  /* -----------------------------------------------------------------------------
51
46
  * Component: TableFooter
52
47
  * -------------------------------------------------------------------------- */
53
48
 
54
- const TableFooter = React.forwardRef<
55
- HTMLTableSectionElement,
56
- React.HTMLAttributes<HTMLTableSectionElement>
57
- >(({ className, ...props }, ref) => (
58
- <tfoot
59
- ref={ref}
60
- className={cn(
61
- "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
62
- className,
63
- )}
64
- {...props}
65
- />
49
+ type TableFooterElement = HTMLTableSectionElement;
50
+ type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;
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} />
66
54
  ));
55
+
67
56
  TableFooter.displayName = "TableFooter";
68
57
 
69
58
  /* -----------------------------------------------------------------------------
70
59
  * Component: TableRow
71
60
  * -------------------------------------------------------------------------- */
72
61
 
73
- const TableRow = React.forwardRef<
74
- HTMLTableRowElement,
75
- React.HTMLAttributes<HTMLTableRowElement>
76
- >(({ className, ...props }, ref) => (
62
+ type TableRowElement = HTMLTableRowElement;
63
+ type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;
64
+
65
+ const TableRow = React.forwardRef<TableRowElement, TableRowProps>(({ className, ...props }, ref) => (
77
66
  <tr
78
67
  ref={ref}
79
- className={cn(
80
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
81
- className,
82
- )}
68
+ className={cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className)}
83
69
  {...props}
84
70
  />
85
71
  ));
72
+
86
73
  TableRow.displayName = "TableRow";
87
74
 
88
75
  /* -----------------------------------------------------------------------------
89
76
  * Component: TableHead
90
77
  * -------------------------------------------------------------------------- */
91
78
 
92
- const TableHead = React.forwardRef<
93
- HTMLTableCellElement,
94
- React.ThHTMLAttributes<HTMLTableCellElement>
95
- >(({ className, ...props }, ref) => (
79
+ type TableHeadElement = HTMLTableCellElement;
80
+ type TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement>;
81
+
82
+ const TableHead = React.forwardRef<TableHeadElement, TableHeadProps>(({ className, ...props }, ref) => (
96
83
  <th
97
84
  ref={ref}
98
85
  className={cn(
@@ -102,38 +89,33 @@ const TableHead = React.forwardRef<
102
89
  {...props}
103
90
  />
104
91
  ));
92
+
105
93
  TableHead.displayName = "TableHead";
106
94
 
107
95
  /* -----------------------------------------------------------------------------
108
96
  * Component: TableCell
109
97
  * -------------------------------------------------------------------------- */
110
98
 
111
- const TableCell = React.forwardRef<
112
- HTMLTableCellElement,
113
- React.TdHTMLAttributes<HTMLTableCellElement>
114
- >(({ className, ...props }, ref) => (
115
- <td
116
- ref={ref}
117
- className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)}
118
- {...props}
119
- />
99
+ type TableCellElement = HTMLTableCellElement;
100
+ type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;
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} />
120
104
  ));
105
+
121
106
  TableCell.displayName = "TableCell";
122
107
 
123
108
  /* -----------------------------------------------------------------------------
124
109
  * Component: TableCaption
125
110
  * -------------------------------------------------------------------------- */
126
111
 
127
- const TableCaption = React.forwardRef<
128
- HTMLTableCaptionElement,
129
- React.HTMLAttributes<HTMLTableCaptionElement>
130
- >(({ className, ...props }, ref) => (
131
- <caption
132
- ref={ref}
133
- className={cn("text-muted-foreground mt-4 text-sm", className)}
134
- {...props}
135
- />
112
+ type TableCaptionElement = HTMLTableCaptionElement;
113
+ type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;
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} />
136
117
  ));
118
+
137
119
  TableCaption.displayName = "TableCaption";
138
120
 
139
121
  /* -----------------------------------------------------------------------------
@@ -149,4 +131,12 @@ export {
149
131
  TableRow,
150
132
  TableCell,
151
133
  TableCaption,
134
+ type TableProps,
135
+ type TableHeaderProps,
136
+ type TableBodyProps,
137
+ type TableFooterProps,
138
+ type TableHeadProps,
139
+ type TableRowProps,
140
+ type TableCellProps,
141
+ type TableCaptionProps,
152
142
  };