@codefast/ui 0.0.7 → 0.0.9

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 (385) hide show
  1. package/dist/accordion.d.mts +5 -1
  2. package/dist/accordion.d.ts +5 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/accordion.mjs.map +1 -1
  5. package/dist/alert-dialog.d.mts +12 -3
  6. package/dist/alert-dialog.d.ts +12 -3
  7. package/dist/alert-dialog.js +3 -3
  8. package/dist/alert-dialog.js.map +1 -1
  9. package/dist/alert-dialog.mjs +1 -1
  10. package/dist/alert-dialog.mjs.map +1 -1
  11. package/dist/alert.d.mts +10 -5
  12. package/dist/alert.d.ts +10 -5
  13. package/dist/alert.js +22 -18
  14. package/dist/alert.js.map +1 -1
  15. package/dist/alert.mjs +22 -18
  16. package/dist/alert.mjs.map +1 -1
  17. package/dist/aspect-ratio.d.mts +2 -1
  18. package/dist/aspect-ratio.d.ts +2 -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 +4 -1
  22. package/dist/avatar.d.ts +4 -1
  23. package/dist/avatar.js.map +1 -1
  24. package/dist/avatar.mjs.map +1 -1
  25. package/dist/badge.d.mts +5 -2
  26. package/dist/badge.d.ts +5 -2
  27. package/dist/badge.js +4 -4
  28. package/dist/badge.js.map +1 -1
  29. package/dist/badge.mjs +4 -4
  30. package/dist/badge.mjs.map +1 -1
  31. package/dist/blockquote.d.mts +8 -0
  32. package/dist/blockquote.d.ts +8 -0
  33. package/dist/blockquote.js +15 -0
  34. package/dist/blockquote.js.map +1 -0
  35. package/dist/blockquote.mjs +15 -0
  36. package/dist/blockquote.mjs.map +1 -0
  37. package/dist/box.d.mts +14 -0
  38. package/dist/box.d.ts +14 -0
  39. package/dist/box.js +15 -0
  40. package/dist/box.js.map +1 -0
  41. package/dist/box.mjs +15 -0
  42. package/dist/box.mjs.map +1 -0
  43. package/dist/breadcrumb.d.mts +18 -11
  44. package/dist/breadcrumb.d.ts +18 -11
  45. package/dist/breadcrumb.js +49 -39
  46. package/dist/breadcrumb.js.map +1 -1
  47. package/dist/breadcrumb.mjs +49 -39
  48. package/dist/breadcrumb.mjs.map +1 -1
  49. package/dist/button.d.mts +4 -3
  50. package/dist/button.d.ts +4 -3
  51. package/dist/button.js +2 -2
  52. package/dist/button.mjs +1 -1
  53. package/dist/calendar.d.mts +3 -2
  54. package/dist/calendar.d.ts +3 -2
  55. package/dist/calendar.js +3 -3
  56. package/dist/calendar.js.map +1 -1
  57. package/dist/calendar.mjs +1 -1
  58. package/dist/calendar.mjs.map +1 -1
  59. package/dist/card.d.mts +13 -7
  60. package/dist/card.d.ts +13 -7
  61. package/dist/card.js +47 -37
  62. package/dist/card.js.map +1 -1
  63. package/dist/card.mjs +47 -37
  64. package/dist/card.mjs.map +1 -1
  65. package/dist/carousel.d.mts +13 -8
  66. package/dist/carousel.d.ts +13 -8
  67. package/dist/carousel.js +63 -57
  68. package/dist/carousel.js.map +1 -1
  69. package/dist/carousel.mjs +62 -56
  70. package/dist/carousel.mjs.map +1 -1
  71. package/dist/checkbox.d.mts +2 -1
  72. package/dist/checkbox.d.ts +2 -1
  73. package/dist/checkbox.js.map +1 -1
  74. package/dist/checkbox.mjs.map +1 -1
  75. package/dist/{chunk-OCLLX7EY.js → chunk-3BDLWZ3W.js} +1 -1
  76. package/dist/chunk-3BDLWZ3W.js.map +1 -0
  77. package/dist/{chunk-2D7SRYKN.js → chunk-43YGVOCO.js} +1 -1
  78. package/dist/chunk-43YGVOCO.js.map +1 -0
  79. package/dist/{chunk-EIHWTXQ4.mjs → chunk-AJLEALVP.mjs} +1 -1
  80. package/dist/chunk-AJLEALVP.mjs.map +1 -0
  81. package/dist/{chunk-LDYBRDAY.js → chunk-D6NQEMTJ.js} +1 -1
  82. package/dist/chunk-D6NQEMTJ.js.map +1 -0
  83. package/dist/{chunk-KW5FJ62U.mjs → chunk-FATZHRHR.mjs} +1 -1
  84. package/dist/chunk-FATZHRHR.mjs.map +1 -0
  85. package/dist/{chunk-RTKEO347.js → chunk-GRKABVK4.js} +1 -1
  86. package/dist/chunk-GRKABVK4.js.map +1 -0
  87. package/dist/{chunk-U2WDUCW3.js → chunk-JOJW7BBY.js} +1 -1
  88. package/dist/{chunk-U2WDUCW3.js.map → chunk-JOJW7BBY.js.map} +1 -1
  89. package/dist/{chunk-ESWGFN3R.mjs → chunk-KV4VL2ZF.mjs} +1 -1
  90. package/dist/chunk-KV4VL2ZF.mjs.map +1 -0
  91. package/dist/{chunk-T52N6ZBP.mjs → chunk-MJDKD2K4.mjs} +1 -1
  92. package/dist/{chunk-T52N6ZBP.mjs.map → chunk-MJDKD2K4.mjs.map} +1 -1
  93. package/dist/{chunk-EDVCMWDT.mjs → chunk-NCEN3XBK.mjs} +1 -1
  94. package/dist/chunk-NCEN3XBK.mjs.map +1 -0
  95. package/dist/{chunk-PTD4AMHI.mjs → chunk-PIU627A3.mjs} +1 -1
  96. package/dist/chunk-PIU627A3.mjs.map +1 -0
  97. package/dist/{chunk-5GHZ6EXI.js → chunk-PKB2G726.js} +1 -1
  98. package/dist/{chunk-5GHZ6EXI.js.map → chunk-PKB2G726.js.map} +1 -1
  99. package/dist/code.d.mts +8 -0
  100. package/dist/code.d.ts +8 -0
  101. package/dist/code.js +15 -0
  102. package/dist/code.js.map +1 -0
  103. package/dist/code.mjs +15 -0
  104. package/dist/code.mjs.map +1 -0
  105. package/dist/collapsible.d.mts +4 -1
  106. package/dist/collapsible.d.ts +4 -1
  107. package/dist/collapsible.js.map +1 -1
  108. package/dist/collapsible.mjs.map +1 -1
  109. package/dist/command.d.mts +29 -18
  110. package/dist/command.d.ts +29 -18
  111. package/dist/command.js +6 -3
  112. package/dist/command.js.map +1 -1
  113. package/dist/command.mjs +5 -2
  114. package/dist/command.mjs.map +1 -1
  115. package/dist/container.d.mts +8 -0
  116. package/dist/container.d.ts +8 -0
  117. package/dist/container.js +19 -0
  118. package/dist/container.js.map +1 -0
  119. package/dist/container.mjs +19 -0
  120. package/dist/container.mjs.map +1 -0
  121. package/dist/context-menu.d.mts +26 -11
  122. package/dist/context-menu.d.ts +26 -11
  123. package/dist/context-menu.js.map +1 -1
  124. package/dist/context-menu.mjs.map +1 -1
  125. package/dist/data-table.d.mts +10 -7
  126. package/dist/data-table.d.ts +10 -7
  127. package/dist/data-table.js +25 -25
  128. package/dist/data-table.js.map +1 -1
  129. package/dist/data-table.mjs +3 -3
  130. package/dist/data-table.mjs.map +1 -1
  131. package/dist/dialog.d.mts +11 -3
  132. package/dist/dialog.d.ts +11 -3
  133. package/dist/dialog.js +2 -2
  134. package/dist/dialog.mjs +1 -1
  135. package/dist/drawer.d.mts +12 -4
  136. package/dist/drawer.d.ts +12 -4
  137. package/dist/drawer.js.map +1 -1
  138. package/dist/drawer.mjs.map +1 -1
  139. package/dist/dropdown-menu.d.mts +25 -11
  140. package/dist/dropdown-menu.d.ts +25 -11
  141. package/dist/dropdown-menu.js +2 -2
  142. package/dist/dropdown-menu.mjs +1 -1
  143. package/dist/em.d.mts +8 -0
  144. package/dist/em.d.ts +8 -0
  145. package/dist/em.js +15 -0
  146. package/dist/em.js.map +1 -0
  147. package/dist/em.mjs +15 -0
  148. package/dist/em.mjs.map +1 -0
  149. package/dist/form.d.mts +14 -6
  150. package/dist/form.d.ts +14 -6
  151. package/dist/form.js +26 -22
  152. package/dist/form.js.map +1 -1
  153. package/dist/form.mjs +25 -21
  154. package/dist/form.mjs.map +1 -1
  155. package/dist/heading.d.mts +9 -0
  156. package/dist/heading.d.ts +9 -0
  157. package/dist/heading.js +15 -0
  158. package/dist/heading.js.map +1 -0
  159. package/dist/heading.mjs +15 -0
  160. package/dist/heading.mjs.map +1 -0
  161. package/dist/hover-card.d.mts +4 -1
  162. package/dist/hover-card.d.ts +4 -1
  163. package/dist/hover-card.js.map +1 -1
  164. package/dist/hover-card.mjs.map +1 -1
  165. package/dist/input-otp.d.mts +12 -32
  166. package/dist/input-otp.d.ts +12 -32
  167. package/dist/input-otp.js +30 -22
  168. package/dist/input-otp.js.map +1 -1
  169. package/dist/input-otp.mjs +29 -21
  170. package/dist/input-otp.mjs.map +1 -1
  171. package/dist/input.d.mts +6 -3
  172. package/dist/input.d.ts +6 -3
  173. package/dist/input.js +13 -11
  174. package/dist/input.js.map +1 -1
  175. package/dist/input.mjs +13 -11
  176. package/dist/input.mjs.map +1 -1
  177. package/dist/kbd.d.mts +8 -0
  178. package/dist/kbd.d.ts +8 -0
  179. package/dist/kbd.js +29 -0
  180. package/dist/kbd.js.map +1 -0
  181. package/dist/kbd.mjs +29 -0
  182. package/dist/kbd.mjs.map +1 -0
  183. package/dist/label.d.mts +2 -1
  184. package/dist/label.d.ts +2 -1
  185. package/dist/label.js +2 -2
  186. package/dist/label.mjs +1 -1
  187. package/dist/menubar.d.mts +27 -12
  188. package/dist/menubar.d.ts +27 -12
  189. package/dist/menubar.js.map +1 -1
  190. package/dist/menubar.mjs.map +1 -1
  191. package/dist/navigation-menu.d.mts +9 -1
  192. package/dist/navigation-menu.d.ts +9 -1
  193. package/dist/navigation-menu.js.map +1 -1
  194. package/dist/navigation-menu.mjs.map +1 -1
  195. package/dist/pagination.d.mts +13 -7
  196. package/dist/pagination.d.ts +13 -7
  197. package/dist/pagination.js +5 -3
  198. package/dist/pagination.js.map +1 -1
  199. package/dist/pagination.mjs +4 -2
  200. package/dist/pagination.mjs.map +1 -1
  201. package/dist/popover.d.mts +6 -1
  202. package/dist/popover.d.ts +6 -1
  203. package/dist/popover.js.map +1 -1
  204. package/dist/popover.mjs.map +1 -1
  205. package/dist/pre.d.mts +8 -0
  206. package/dist/pre.d.ts +8 -0
  207. package/dist/pre.js +15 -0
  208. package/dist/pre.js.map +1 -0
  209. package/dist/pre.mjs +15 -0
  210. package/dist/pre.mjs.map +1 -0
  211. package/dist/progress.d.mts +2 -1
  212. package/dist/progress.d.ts +2 -1
  213. package/dist/progress.js +1 -1
  214. package/dist/progress.js.map +1 -1
  215. package/dist/progress.mjs +1 -1
  216. package/dist/progress.mjs.map +1 -1
  217. package/dist/quote.d.mts +8 -0
  218. package/dist/quote.d.ts +8 -0
  219. package/dist/quote.js +15 -0
  220. package/dist/quote.js.map +1 -0
  221. package/dist/quote.mjs +15 -0
  222. package/dist/quote.mjs.map +1 -0
  223. package/dist/radio-group.d.mts +3 -1
  224. package/dist/radio-group.d.ts +3 -1
  225. package/dist/radio-group.js.map +1 -1
  226. package/dist/radio-group.mjs.map +1 -1
  227. package/dist/resizable.d.mts +4 -4
  228. package/dist/resizable.d.ts +4 -4
  229. package/dist/resizable.js +1 -1
  230. package/dist/resizable.js.map +1 -1
  231. package/dist/resizable.mjs +1 -1
  232. package/dist/resizable.mjs.map +1 -1
  233. package/dist/scroll-area.d.mts +4 -2
  234. package/dist/scroll-area.d.ts +4 -2
  235. package/dist/scroll-area.js +6 -6
  236. package/dist/scroll-area.js.map +1 -1
  237. package/dist/scroll-area.mjs +6 -6
  238. package/dist/scroll-area.mjs.map +1 -1
  239. package/dist/section.d.mts +8 -0
  240. package/dist/section.d.ts +8 -0
  241. package/dist/section.js +15 -0
  242. package/dist/section.js.map +1 -0
  243. package/dist/section.mjs +15 -0
  244. package/dist/section.mjs.map +1 -0
  245. package/dist/select.d.mts +11 -1
  246. package/dist/select.d.ts +11 -1
  247. package/dist/select.js +2 -2
  248. package/dist/select.mjs +1 -1
  249. package/dist/separator.d.mts +2 -1
  250. package/dist/separator.d.ts +2 -1
  251. package/dist/separator.js.map +1 -1
  252. package/dist/separator.mjs.map +1 -1
  253. package/dist/sheet.d.mts +18 -8
  254. package/dist/sheet.d.ts +18 -8
  255. package/dist/sheet.js.map +1 -1
  256. package/dist/sheet.mjs.map +1 -1
  257. package/dist/skeleton.d.mts +3 -2
  258. package/dist/skeleton.d.ts +3 -2
  259. package/dist/skeleton.js +1 -4
  260. package/dist/skeleton.js.map +1 -1
  261. package/dist/skeleton.mjs +1 -4
  262. package/dist/skeleton.mjs.map +1 -1
  263. package/dist/slider.d.mts +2 -1
  264. package/dist/slider.d.ts +2 -1
  265. package/dist/slider.js.map +1 -1
  266. package/dist/slider.mjs.map +1 -1
  267. package/dist/sonner.d.mts +1 -1
  268. package/dist/sonner.d.ts +1 -1
  269. package/dist/sonner.js.map +1 -1
  270. package/dist/sonner.mjs.map +1 -1
  271. package/dist/strong.d.mts +8 -0
  272. package/dist/strong.d.ts +8 -0
  273. package/dist/strong.js +15 -0
  274. package/dist/strong.js.map +1 -0
  275. package/dist/strong.mjs +15 -0
  276. package/dist/strong.mjs.map +1 -0
  277. package/dist/styles.css +1 -1
  278. package/dist/styles.css.map +1 -1
  279. package/dist/switch.d.mts +2 -1
  280. package/dist/switch.d.ts +2 -1
  281. package/dist/switch.js.map +1 -1
  282. package/dist/switch.mjs.map +1 -1
  283. package/dist/table.d.mts +17 -9
  284. package/dist/table.d.ts +17 -9
  285. package/dist/table.js +75 -58
  286. package/dist/table.js.map +1 -1
  287. package/dist/table.mjs +75 -58
  288. package/dist/table.mjs.map +1 -1
  289. package/dist/tabs.d.mts +5 -1
  290. package/dist/tabs.d.ts +5 -1
  291. package/dist/tabs.js.map +1 -1
  292. package/dist/tabs.mjs.map +1 -1
  293. package/dist/text.d.mts +14 -0
  294. package/dist/text.d.ts +14 -0
  295. package/dist/text.js +15 -0
  296. package/dist/text.js.map +1 -0
  297. package/dist/text.mjs +15 -0
  298. package/dist/text.mjs.map +1 -0
  299. package/dist/textarea.d.mts +3 -2
  300. package/dist/textarea.d.ts +3 -2
  301. package/dist/textarea.js +15 -13
  302. package/dist/textarea.js.map +1 -1
  303. package/dist/textarea.mjs +15 -13
  304. package/dist/textarea.mjs.map +1 -1
  305. package/dist/toggle-group.d.mts +4 -2
  306. package/dist/toggle-group.d.ts +4 -2
  307. package/dist/toggle-group.js +2 -2
  308. package/dist/toggle-group.js.map +1 -1
  309. package/dist/toggle-group.mjs +1 -1
  310. package/dist/toggle-group.mjs.map +1 -1
  311. package/dist/toggle.d.mts +2 -1
  312. package/dist/toggle.d.ts +2 -1
  313. package/dist/toggle.js +2 -2
  314. package/dist/toggle.mjs +1 -1
  315. package/dist/tooltip.d.mts +6 -1
  316. package/dist/tooltip.d.ts +6 -1
  317. package/dist/tooltip.js.map +1 -1
  318. package/dist/tooltip.mjs.map +1 -1
  319. package/package.json +67 -7
  320. package/src/accordion.tsx +17 -4
  321. package/src/alert-dialog.tsx +26 -7
  322. package/src/alert.tsx +35 -25
  323. package/src/aspect-ratio.tsx +2 -1
  324. package/src/avatar.tsx +13 -3
  325. package/src/badge.tsx +10 -9
  326. package/src/blockquote.tsx +25 -0
  327. package/src/box.tsx +33 -0
  328. package/src/breadcrumb.tsx +70 -60
  329. package/src/button.tsx +4 -2
  330. package/src/calendar.tsx +3 -2
  331. package/src/card.tsx +59 -52
  332. package/src/carousel.tsx +76 -72
  333. package/src/checkbox.tsx +3 -2
  334. package/src/code.tsx +24 -0
  335. package/src/collapsible.tsx +11 -1
  336. package/src/command.tsx +47 -10
  337. package/src/container.tsx +25 -0
  338. package/src/context-menu.tsx +52 -16
  339. package/src/data-table.tsx +23 -11
  340. package/src/dialog.tsx +21 -5
  341. package/src/drawer.tsx +28 -6
  342. package/src/dropdown-menu.tsx +51 -15
  343. package/src/em.tsx +24 -0
  344. package/src/form.tsx +55 -38
  345. package/src/heading.tsx +25 -0
  346. package/src/hover-card.tsx +12 -2
  347. package/src/input-otp.tsx +45 -33
  348. package/src/input.tsx +17 -15
  349. package/src/kbd.tsx +34 -0
  350. package/src/label.tsx +3 -2
  351. package/src/menubar.tsx +48 -17
  352. package/src/navigation-menu.tsx +25 -5
  353. package/src/pagination.tsx +21 -9
  354. package/src/popover.tsx +18 -2
  355. package/src/pre.tsx +24 -0
  356. package/src/progress.tsx +4 -3
  357. package/src/quote.tsx +24 -0
  358. package/src/radio-group.tsx +10 -3
  359. package/src/resizable.tsx +2 -1
  360. package/src/scroll-area.tsx +18 -11
  361. package/src/section.tsx +24 -0
  362. package/src/select.tsx +27 -7
  363. package/src/separator.tsx +3 -2
  364. package/src/sheet.tsx +23 -5
  365. package/src/skeleton.tsx +3 -5
  366. package/src/slider.tsx +3 -2
  367. package/src/sonner.tsx +1 -1
  368. package/src/strong.tsx +24 -0
  369. package/src/switch.tsx +3 -2
  370. package/src/table.tsx +90 -78
  371. package/src/tabs.tsx +17 -4
  372. package/src/text.tsx +34 -0
  373. package/src/textarea.tsx +16 -16
  374. package/src/toggle-group.tsx +14 -4
  375. package/src/toggle.tsx +3 -2
  376. package/src/tooltip.tsx +12 -2
  377. package/dist/chunk-2D7SRYKN.js.map +0 -1
  378. package/dist/chunk-EDVCMWDT.mjs.map +0 -1
  379. package/dist/chunk-EIHWTXQ4.mjs.map +0 -1
  380. package/dist/chunk-ESWGFN3R.mjs.map +0 -1
  381. package/dist/chunk-KW5FJ62U.mjs.map +0 -1
  382. package/dist/chunk-LDYBRDAY.js.map +0 -1
  383. package/dist/chunk-OCLLX7EY.js.map +0 -1
  384. package/dist/chunk-PTD4AMHI.mjs.map +0 -1
  385. package/dist/chunk-RTKEO347.js.map +0 -1
@@ -6,10 +6,11 @@ import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
6
6
  * Component: AspectRatio
7
7
  * -------------------------------------------------------------------------- */
8
8
 
9
+ type AspectRatioProps = AspectRatioPrimitive.AspectRatioProps;
9
10
  const AspectRatio = AspectRatioPrimitive.Root;
10
11
 
11
12
  /* -----------------------------------------------------------------------------
12
13
  * Exports
13
14
  * -------------------------------------------------------------------------- */
14
15
 
15
- export { AspectRatio };
16
+ export { AspectRatio, type AspectRatioProps };
package/src/avatar.tsx CHANGED
@@ -8,6 +8,7 @@ import { cn } from "./utils";
8
8
  * Component: Avatar
9
9
  * -------------------------------------------------------------------------- */
10
10
 
11
+ type AvatarProps = AvatarPrimitive.AvatarProps;
11
12
  const Avatar = React.forwardRef<
12
13
  React.ElementRef<typeof AvatarPrimitive.Root>,
13
14
  AvatarPrimitive.AvatarProps
@@ -27,9 +28,10 @@ Avatar.displayName = AvatarPrimitive.Root.displayName;
27
28
  * Component: AvatarImage
28
29
  * -------------------------------------------------------------------------- */
29
30
 
31
+ type AvatarImageProps = AvatarPrimitive.AvatarImageProps;
30
32
  const AvatarImage = React.forwardRef<
31
33
  React.ElementRef<typeof AvatarPrimitive.Image>,
32
- AvatarPrimitive.AvatarImageProps
34
+ AvatarImageProps
33
35
  >(({ className, ...props }, ref) => (
34
36
  <AvatarPrimitive.Image
35
37
  ref={ref}
@@ -43,9 +45,10 @@ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
43
45
  * Component: AvatarFallback
44
46
  * -------------------------------------------------------------------------- */
45
47
 
48
+ type AvatarFallbackProps = AvatarPrimitive.AvatarFallbackProps;
46
49
  const AvatarFallback = React.forwardRef<
47
50
  React.ElementRef<typeof AvatarPrimitive.Fallback>,
48
- AvatarPrimitive.AvatarFallbackProps
51
+ AvatarFallbackProps
49
52
  >(({ className, ...props }, ref) => (
50
53
  <AvatarPrimitive.Fallback
51
54
  ref={ref}
@@ -62,4 +65,11 @@ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
62
65
  * Exports
63
66
  * -------------------------------------------------------------------------- */
64
67
 
65
- export { Avatar, AvatarImage, AvatarFallback };
68
+ export {
69
+ Avatar,
70
+ AvatarImage,
71
+ AvatarFallback,
72
+ type AvatarProps,
73
+ type AvatarImageProps,
74
+ type AvatarFallbackProps,
75
+ };
package/src/badge.tsx CHANGED
@@ -1,3 +1,4 @@
1
+ import * as React from "react";
1
2
  import { type VariantProps } from "cva";
2
3
  import { cva } from "./utils";
3
4
 
@@ -6,15 +7,13 @@ import { cva } from "./utils";
6
7
  * -------------------------------------------------------------------------- */
7
8
 
8
9
  const badgeVariants = cva({
9
- base: "focus:ring-ring focus:ring-offset-background inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2",
10
+ base: "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors",
10
11
  variants: {
11
12
  variant: {
12
- default:
13
- "bg-primary text-primary-foreground hover:bg-primary/80 border-transparent shadow",
14
- secondary:
15
- "bg-secondary text-secondary-foreground hover:bg-secondary/80 border-transparent",
13
+ default: "bg-primary text-primary-foreground border-transparent shadow",
14
+ secondary: "bg-secondary text-secondary-foreground border-transparent",
16
15
  destructive:
17
- "bg-destructive text-destructive-foreground hover:bg-destructive/80 border-transparent shadow",
16
+ "bg-destructive text-destructive-foreground border-transparent shadow",
18
17
  outline: "text-foreground",
19
18
  },
20
19
  },
@@ -23,16 +22,18 @@ const badgeVariants = cva({
23
22
  },
24
23
  });
25
24
 
25
+ type BadgeVariantsProps = VariantProps<typeof badgeVariants>;
26
+
26
27
  /* -----------------------------------------------------------------------------
27
28
  * Component: Badge
28
29
  * -------------------------------------------------------------------------- */
29
30
 
31
+ type BadgeProps = React.HTMLAttributes<HTMLDivElement> & BadgeVariantsProps;
30
32
  function Badge({
31
33
  className,
32
34
  variant,
33
35
  ...props
34
- }: React.HTMLAttributes<HTMLDivElement> &
35
- VariantProps<typeof badgeVariants>): React.JSX.Element {
36
+ }: BadgeProps): React.JSX.Element {
36
37
  return <div className={badgeVariants({ variant, className })} {...props} />;
37
38
  }
38
39
 
@@ -40,4 +41,4 @@ function Badge({
40
41
  * Exports
41
42
  * -------------------------------------------------------------------------- */
42
43
 
43
- export { Badge };
44
+ export { Badge, type BadgeProps };
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+
4
+ /* -----------------------------------------------------------------------------
5
+ * Component: Blockquote
6
+ * -------------------------------------------------------------------------- */
7
+
8
+ interface BlockquoteProps
9
+ extends React.BlockquoteHTMLAttributes<HTMLQuoteElement> {
10
+ asChild?: boolean;
11
+ }
12
+ const Blockquote = React.forwardRef<HTMLQuoteElement, BlockquoteProps>(
13
+ ({ asChild, ...props }, ref) => {
14
+ const Comp = asChild ? Slot : "blockquote";
15
+
16
+ return <Comp ref={ref} {...props} />;
17
+ },
18
+ );
19
+ Blockquote.displayName = "Blockquote";
20
+
21
+ /* -----------------------------------------------------------------------------
22
+ * Exports
23
+ * -------------------------------------------------------------------------- */
24
+
25
+ export { Blockquote, type BlockquoteProps };
package/src/box.tsx ADDED
@@ -0,0 +1,33 @@
1
+ import * as React from "react";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+
4
+ /* -----------------------------------------------------------------------------
5
+ * Component: Box
6
+ * -------------------------------------------------------------------------- */
7
+
8
+ interface BoxDivProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ as?: "div";
10
+ }
11
+
12
+ interface BoxSpanProps extends React.HTMLAttributes<HTMLSpanElement> {
13
+ as: "span";
14
+ }
15
+
16
+ type BoxProps = (BoxDivProps | BoxSpanProps) & {
17
+ asChild?: boolean;
18
+ };
19
+
20
+ const Box = React.forwardRef<HTMLDivElement, BoxProps>(
21
+ ({ as: Tag = "div", asChild, ...props }, ref) => {
22
+ const Comp = asChild ? Slot : Tag;
23
+
24
+ return <Comp ref={ref} {...props} />;
25
+ },
26
+ );
27
+ Box.displayName = "Box";
28
+
29
+ /* -----------------------------------------------------------------------------
30
+ * Exports
31
+ * -------------------------------------------------------------------------- */
32
+
33
+ export { Box, type BoxProps };
@@ -7,99 +7,101 @@ import { cn } from "./utils";
7
7
  * Component: Breadcrumb
8
8
  * -------------------------------------------------------------------------- */
9
9
 
10
- const Breadcrumb = React.forwardRef<
11
- HTMLElement,
12
- React.HTMLAttributes<HTMLElement> & {
13
- separator?: React.ReactNode;
14
- }
15
- >(({ ...props }, ref) => <nav ref={ref} aria-label="breadcrumb" {...props} />);
10
+ interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {
11
+ separator?: React.ReactNode;
12
+ }
13
+ const Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(
14
+ ({ ...props }, ref) => <nav ref={ref} aria-label="breadcrumb" {...props} />,
15
+ );
16
16
  Breadcrumb.displayName = "Breadcrumb";
17
17
 
18
18
  /* -----------------------------------------------------------------------------
19
19
  * Component: BreadcrumbList
20
20
  * -------------------------------------------------------------------------- */
21
21
 
22
- const BreadcrumbList = React.forwardRef<
23
- HTMLOListElement,
24
- React.OlHTMLAttributes<HTMLOListElement>
25
- >(({ className, ...props }, ref) => (
26
- <ol
27
- ref={ref}
28
- className={cn(
29
- "text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5",
30
- className,
31
- )}
32
- {...props}
33
- />
34
- ));
22
+ type BreadcrumbListProps = React.OlHTMLAttributes<HTMLOListElement>;
23
+ const BreadcrumbList = React.forwardRef<HTMLOListElement, BreadcrumbListProps>(
24
+ ({ className, ...props }, ref) => (
25
+ <ol
26
+ ref={ref}
27
+ className={cn(
28
+ "text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2.5",
29
+ className,
30
+ )}
31
+ {...props}
32
+ />
33
+ ),
34
+ );
35
35
  BreadcrumbList.displayName = "BreadcrumbList";
36
36
 
37
37
  /* -----------------------------------------------------------------------------
38
38
  * Component: BreadcrumbItem
39
39
  * -------------------------------------------------------------------------- */
40
40
 
41
- const BreadcrumbItem = React.forwardRef<
42
- HTMLLIElement,
43
- React.LiHTMLAttributes<HTMLLIElement>
44
- >(({ className, ...props }, ref) => (
45
- <li
46
- ref={ref}
47
- className={cn("inline-flex items-center gap-1.5", className)}
48
- {...props}
49
- />
50
- ));
41
+ type BreadcrumbItemProps = React.LiHTMLAttributes<HTMLLIElement>;
42
+ const BreadcrumbItem = React.forwardRef<HTMLLIElement, BreadcrumbItemProps>(
43
+ ({ className, ...props }, ref) => (
44
+ <li
45
+ ref={ref}
46
+ className={cn("inline-flex items-center gap-1.5", className)}
47
+ {...props}
48
+ />
49
+ ),
50
+ );
51
51
  BreadcrumbItem.displayName = "BreadcrumbItem";
52
52
 
53
53
  /* -----------------------------------------------------------------------------
54
54
  * Component: BreadcrumbLink
55
55
  * -------------------------------------------------------------------------- */
56
56
 
57
- const BreadcrumbLink = React.forwardRef<
58
- HTMLAnchorElement,
59
- React.AnchorHTMLAttributes<HTMLAnchorElement> & {
60
- asChild?: boolean;
61
- }
62
- >(({ asChild, className, ...props }, ref) => {
63
- const Comp = asChild ? Slot : "a";
64
-
65
- return (
66
- <Comp
67
- ref={ref}
68
- className={cn("hover:text-foreground transition-colors", className)}
69
- {...props}
70
- />
71
- );
72
- });
57
+ interface BreadcrumbLinkProps
58
+ extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
59
+ asChild?: boolean;
60
+ }
61
+ const BreadcrumbLink = React.forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(
62
+ ({ asChild, className, ...props }, ref) => {
63
+ const Comp = asChild ? Slot : "a";
64
+
65
+ return (
66
+ <Comp
67
+ ref={ref}
68
+ className={cn("hover:text-foreground transition-colors", className)}
69
+ {...props}
70
+ />
71
+ );
72
+ },
73
+ );
73
74
  BreadcrumbLink.displayName = "BreadcrumbLink";
74
75
 
75
76
  /* -----------------------------------------------------------------------------
76
77
  * Component: BreadcrumbPage
77
78
  * -------------------------------------------------------------------------- */
78
79
 
79
- const BreadcrumbPage = React.forwardRef<
80
- HTMLSpanElement,
81
- React.HTMLAttributes<HTMLSpanElement>
82
- >(({ className, ...props }, ref) => (
83
- <span
84
- ref={ref}
85
- role="link"
86
- aria-disabled="true"
87
- aria-current="page"
88
- className={cn("text-foreground font-normal", className)}
89
- {...props}
90
- />
91
- ));
80
+ type BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;
81
+ const BreadcrumbPage = React.forwardRef<HTMLSpanElement, BreadcrumbPageProps>(
82
+ ({ className, ...props }, ref) => (
83
+ <span
84
+ ref={ref}
85
+ role="link"
86
+ aria-disabled="true"
87
+ aria-current="page"
88
+ className={cn("text-foreground font-normal", className)}
89
+ {...props}
90
+ />
91
+ ),
92
+ );
92
93
  BreadcrumbPage.displayName = "BreadcrumbPage";
93
94
 
94
95
  /* -----------------------------------------------------------------------------
95
96
  * Component: BreadcrumbSeparator
96
97
  * -------------------------------------------------------------------------- */
97
98
 
99
+ type BreadcrumbSeparatorProps = React.LiHTMLAttributes<HTMLLIElement>;
98
100
  function BreadcrumbSeparator({
99
101
  children,
100
102
  className,
101
103
  ...props
102
- }: React.LiHTMLAttributes<HTMLLIElement>): React.JSX.Element {
104
+ }: BreadcrumbSeparatorProps): React.JSX.Element {
103
105
  return (
104
106
  <li
105
107
  role="presentation"
@@ -116,10 +118,11 @@ function BreadcrumbSeparator({
116
118
  * Component: BreadcrumbEllipsis
117
119
  * -------------------------------------------------------------------------- */
118
120
 
121
+ type BreadcrumbEllipsisProps = React.HTMLAttributes<HTMLSpanElement>;
119
122
  function BreadcrumbEllipsis({
120
123
  className,
121
124
  ...props
122
- }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element {
125
+ }: BreadcrumbEllipsisProps): React.JSX.Element {
123
126
  return (
124
127
  <span
125
128
  role="presentation"
@@ -145,4 +148,11 @@ export {
145
148
  BreadcrumbPage,
146
149
  BreadcrumbSeparator,
147
150
  BreadcrumbEllipsis,
151
+ type BreadcrumbProps,
152
+ type BreadcrumbListProps,
153
+ type BreadcrumbItemProps,
154
+ type BreadcrumbLinkProps,
155
+ type BreadcrumbPageProps,
156
+ type BreadcrumbSeparatorProps,
157
+ type BreadcrumbEllipsisProps,
148
158
  };
package/src/button.tsx CHANGED
@@ -38,13 +38,15 @@ const buttonVariants = cva({
38
38
  },
39
39
  });
40
40
 
41
+ type ButtonVariantsProps = VariantProps<typeof buttonVariants>;
42
+
41
43
  /* -----------------------------------------------------------------------------
42
44
  * Component: Button
43
45
  * -------------------------------------------------------------------------- */
44
46
 
45
47
  interface ButtonProps
46
48
  extends React.ButtonHTMLAttributes<HTMLButtonElement>,
47
- VariantProps<typeof buttonVariants> {
49
+ ButtonVariantsProps {
48
50
  asChild?: boolean;
49
51
  }
50
52
 
@@ -68,4 +70,4 @@ Button.displayName = "Button";
68
70
  * Exports
69
71
  * -------------------------------------------------------------------------- */
70
72
 
71
- export { Button, buttonVariants, type ButtonProps };
73
+ export { Button, buttonVariants, type ButtonProps, type ButtonVariantsProps };
package/src/calendar.tsx CHANGED
@@ -29,12 +29,13 @@ function ChevronRight({
29
29
  return <ChevronRightIcon className="size-4" {...props} />;
30
30
  }
31
31
 
32
+ type CalendarProps = DayPickerProps;
32
33
  function Calendar({
33
34
  className,
34
35
  classNames,
35
36
  showOutsideDays = true,
36
37
  ...props
37
- }: DayPickerProps): React.JSX.Element {
38
+ }: CalendarProps): React.JSX.Element {
38
39
  return (
39
40
  <DayPicker
40
41
  showOutsideDays={showOutsideDays}
@@ -91,4 +92,4 @@ function Calendar({
91
92
  * Exports
92
93
  * -------------------------------------------------------------------------- */
93
94
 
94
- export { Calendar, type DateRange };
95
+ export { Calendar, type CalendarProps, type DateRange };
package/src/card.tsx CHANGED
@@ -5,62 +5,63 @@ import { cn } from "./utils";
5
5
  * Component: Card
6
6
  * -------------------------------------------------------------------------- */
7
7
 
8
- const Card = React.forwardRef<
9
- HTMLDivElement,
10
- React.HTMLAttributes<HTMLDivElement>
11
- >(({ className, ...props }, ref) => (
12
- <div
13
- ref={ref}
14
- className={cn(
15
- "bg-card text-card-foreground rounded-lg border shadow-sm",
16
- className,
17
- )}
18
- {...props}
19
- />
20
- ));
8
+ type CardProps = React.HTMLAttributes<HTMLDivElement>;
9
+ const Card = React.forwardRef<HTMLDivElement, CardProps>(
10
+ ({ className, ...props }, ref) => (
11
+ <div
12
+ ref={ref}
13
+ className={cn(
14
+ "bg-card text-card-foreground rounded-lg border shadow-sm",
15
+ className,
16
+ )}
17
+ {...props}
18
+ />
19
+ ),
20
+ );
21
21
  Card.displayName = "Card";
22
22
 
23
23
  /* -----------------------------------------------------------------------------
24
24
  * Component: CardHeader
25
25
  * -------------------------------------------------------------------------- */
26
26
 
27
- const CardHeader = React.forwardRef<
28
- HTMLDivElement,
29
- React.HTMLAttributes<HTMLDivElement>
30
- >(({ className, ...props }, ref) => (
31
- <div
32
- ref={ref}
33
- className={cn("flex flex-col space-y-1.5 p-6", className)}
34
- {...props}
35
- />
36
- ));
27
+ type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;
28
+ const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(
29
+ ({ className, ...props }, ref) => (
30
+ <div
31
+ ref={ref}
32
+ className={cn("flex flex-col space-y-1.5 p-6", className)}
33
+ {...props}
34
+ />
35
+ ),
36
+ );
37
37
  CardHeader.displayName = "CardHeader";
38
38
 
39
39
  /* -----------------------------------------------------------------------------
40
40
  * Component: CardTitle
41
41
  * -------------------------------------------------------------------------- */
42
42
 
43
- const CardTitle = React.forwardRef<
44
- HTMLParagraphElement,
45
- React.HTMLAttributes<HTMLHeadingElement>
46
- >(({ className, children, ...props }, ref) => (
47
- <h3
48
- ref={ref}
49
- className={cn("font-semibold leading-none tracking-tight", className)}
50
- {...props}
51
- >
52
- {children}
53
- </h3>
54
- ));
43
+ type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;
44
+ const CardTitle = React.forwardRef<HTMLParagraphElement, CardTitleProps>(
45
+ ({ className, children, ...props }, ref) => (
46
+ <h3
47
+ ref={ref}
48
+ className={cn("font-semibold leading-none tracking-tight", className)}
49
+ {...props}
50
+ >
51
+ {children}
52
+ </h3>
53
+ ),
54
+ );
55
55
  CardTitle.displayName = "CardTitle";
56
56
 
57
57
  /* -----------------------------------------------------------------------------
58
58
  * Component: CardDescription
59
59
  * -------------------------------------------------------------------------- */
60
60
 
61
+ type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;
61
62
  const CardDescription = React.forwardRef<
62
63
  HTMLParagraphElement,
63
- React.HTMLAttributes<HTMLParagraphElement>
64
+ CardDescriptionProps
64
65
  >(({ className, ...props }, ref) => (
65
66
  <p
66
67
  ref={ref}
@@ -74,28 +75,28 @@ CardDescription.displayName = "CardDescription";
74
75
  * Component: CardContent
75
76
  * -------------------------------------------------------------------------- */
76
77
 
77
- const CardContent = React.forwardRef<
78
- HTMLDivElement,
79
- React.HTMLAttributes<HTMLDivElement>
80
- >(({ className, ...props }, ref) => (
81
- <div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
82
- ));
78
+ type CardContentProps = React.HTMLAttributes<HTMLDivElement>;
79
+ const CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(
80
+ ({ className, ...props }, ref) => (
81
+ <div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
82
+ ),
83
+ );
83
84
  CardContent.displayName = "CardContent";
84
85
 
85
86
  /* -----------------------------------------------------------------------------
86
87
  * Component: CardFooter
87
88
  * -------------------------------------------------------------------------- */
88
89
 
89
- const CardFooter = React.forwardRef<
90
- HTMLDivElement,
91
- React.HTMLAttributes<HTMLDivElement>
92
- >(({ className, ...props }, ref) => (
93
- <div
94
- ref={ref}
95
- className={cn("flex items-center p-6 pt-0", className)}
96
- {...props}
97
- />
98
- ));
90
+ type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;
91
+ const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(
92
+ ({ className, ...props }, ref) => (
93
+ <div
94
+ ref={ref}
95
+ className={cn("flex items-center p-6 pt-0", className)}
96
+ {...props}
97
+ />
98
+ ),
99
+ );
99
100
  CardFooter.displayName = "CardFooter";
100
101
 
101
102
  /* -----------------------------------------------------------------------------
@@ -109,4 +110,10 @@ export {
109
110
  CardTitle,
110
111
  CardDescription,
111
112
  CardContent,
113
+ type CardProps,
114
+ type CardHeaderProps,
115
+ type CardFooterProps,
116
+ type CardTitleProps,
117
+ type CardDescriptionProps,
118
+ type CardContentProps,
112
119
  };