@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
package/src/carousel.tsx CHANGED
@@ -6,7 +6,7 @@ import useEmblaCarousel, {
6
6
  } from "embla-carousel-react";
7
7
  import { ArrowLeftIcon, ArrowRightIcon } from "@radix-ui/react-icons";
8
8
  import { cn } from "./utils";
9
- import { Button } from "./button";
9
+ import { Button, type ButtonProps } from "./button";
10
10
 
11
11
  /* -----------------------------------------------------------------------------
12
12
  * Context: Carousel
@@ -17,7 +17,7 @@ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
17
17
  type CarouselOptions = UseCarouselParameters[0];
18
18
  type CarouselPlugin = UseCarouselParameters[1];
19
19
 
20
- interface CarouselProps {
20
+ interface BaseCarouselProps {
21
21
  opts?: CarouselOptions;
22
22
  plugins?: CarouselPlugin;
23
23
  orientation?: "horizontal" | "vertical";
@@ -31,7 +31,7 @@ type CarouselContextProps = {
31
31
  scrollNext: () => void;
32
32
  canScrollPrev: boolean;
33
33
  canScrollNext: boolean;
34
- } & CarouselProps;
34
+ } & BaseCarouselProps;
35
35
 
36
36
  const CarouselContext = React.createContext<CarouselContextProps | null>(null);
37
37
 
@@ -49,10 +49,8 @@ function useCarousel(): CarouselContextProps {
49
49
  * Component: Carousel
50
50
  * -------------------------------------------------------------------------- */
51
51
 
52
- const Carousel = React.forwardRef<
53
- HTMLDivElement,
54
- React.HTMLAttributes<HTMLDivElement> & CarouselProps
55
- >(
52
+ type CarouselProps = React.HTMLAttributes<HTMLDivElement> & BaseCarouselProps;
53
+ const Carousel = React.forwardRef<HTMLDivElement, CarouselProps>(
56
54
  (
57
55
  { orientation, opts, setApi, plugins, className, children, ...props },
58
56
  ref,
@@ -153,61 +151,62 @@ Carousel.displayName = "Carousel";
153
151
  * Component: CarouselContent
154
152
  * -------------------------------------------------------------------------- */
155
153
 
156
- const CarouselContent = React.forwardRef<
157
- HTMLDivElement,
158
- React.HTMLAttributes<HTMLDivElement>
159
- >(({ className, ...props }, ref) => {
160
- const { carouselRef, orientation } = useCarousel();
154
+ type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;
155
+ const CarouselContent = React.forwardRef<HTMLDivElement, CarouselContentProps>(
156
+ ({ className, ...props }, ref) => {
157
+ const { carouselRef, orientation } = useCarousel();
161
158
 
162
- return (
163
- <div ref={carouselRef} className="overflow-hidden">
164
- <div
165
- ref={ref}
166
- className={cn(
167
- "flex",
168
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
169
- className,
170
- )}
171
- {...props}
172
- />
173
- </div>
174
- );
175
- });
159
+ return (
160
+ <div ref={carouselRef} className="overflow-hidden">
161
+ <div
162
+ ref={ref}
163
+ className={cn(
164
+ "flex",
165
+ orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
166
+ className,
167
+ )}
168
+ {...props}
169
+ />
170
+ </div>
171
+ );
172
+ },
173
+ );
176
174
  CarouselContent.displayName = "CarouselContent";
177
175
 
178
176
  /* -----------------------------------------------------------------------------
179
177
  * Component: CarouselItem
180
178
  * -------------------------------------------------------------------------- */
181
179
 
182
- const CarouselItem = React.forwardRef<
183
- HTMLDivElement,
184
- React.HTMLAttributes<HTMLDivElement>
185
- >(({ className, ...props }, ref) => {
186
- const { orientation } = useCarousel();
180
+ type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;
181
+ const CarouselItem = React.forwardRef<HTMLDivElement, CarouselItemProps>(
182
+ ({ className, ...props }, ref) => {
183
+ const { orientation } = useCarousel();
187
184
 
188
- return (
189
- <div
190
- ref={ref}
191
- role="group"
192
- aria-roledescription="slide"
193
- className={cn(
194
- "min-w-0 shrink-0 grow-0 basis-full",
195
- orientation === "horizontal" ? "pl-4" : "pt-4",
196
- className,
197
- )}
198
- {...props}
199
- />
200
- );
201
- });
185
+ return (
186
+ <div
187
+ ref={ref}
188
+ role="group"
189
+ aria-roledescription="slide"
190
+ className={cn(
191
+ "min-w-0 shrink-0 grow-0 basis-full",
192
+ orientation === "horizontal" ? "pl-4" : "pt-4",
193
+ className,
194
+ )}
195
+ {...props}
196
+ />
197
+ );
198
+ },
199
+ );
202
200
  CarouselItem.displayName = "CarouselItem";
203
201
 
204
202
  /* -----------------------------------------------------------------------------
205
203
  * Component: CarouselPrevious
206
204
  * -------------------------------------------------------------------------- */
207
205
 
206
+ type CarouselPreviousProps = ButtonProps;
208
207
  const CarouselPrevious = React.forwardRef<
209
208
  HTMLButtonElement,
210
- React.ComponentProps<typeof Button>
209
+ CarouselPreviousProps
211
210
  >(({ className, variant = "outline", size = "icon", ...props }, ref) => {
212
211
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
213
212
 
@@ -238,33 +237,33 @@ CarouselPrevious.displayName = "CarouselPrevious";
238
237
  * Component: CarouselNext
239
238
  * -------------------------------------------------------------------------- */
240
239
 
241
- const CarouselNext = React.forwardRef<
242
- HTMLButtonElement,
243
- React.ComponentProps<typeof Button>
244
- >(({ className, variant = "outline", size = "icon", ...props }, ref) => {
245
- const { orientation, scrollNext, canScrollNext } = useCarousel();
240
+ type CarouselNextProps = ButtonProps;
241
+ const CarouselNext = React.forwardRef<HTMLButtonElement, CarouselNextProps>(
242
+ ({ className, variant = "outline", size = "icon", ...props }, ref) => {
243
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
246
244
 
247
- return (
248
- <Button
249
- ref={ref}
250
- variant={variant}
251
- size={size}
252
- className={cn(
253
- "absolute size-8 rounded-full",
254
- orientation === "horizontal"
255
- ? "-right-12 top-1/2 -translate-y-1/2"
256
- : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
257
- className,
258
- )}
259
- disabled={!canScrollNext}
260
- onClick={scrollNext}
261
- {...props}
262
- >
263
- <ArrowRightIcon className="size-4" />
264
- <span className="sr-only">Next slide</span>
265
- </Button>
266
- );
267
- });
245
+ return (
246
+ <Button
247
+ ref={ref}
248
+ variant={variant}
249
+ size={size}
250
+ className={cn(
251
+ "absolute size-8 rounded-full",
252
+ orientation === "horizontal"
253
+ ? "-right-12 top-1/2 -translate-y-1/2"
254
+ : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
255
+ className,
256
+ )}
257
+ disabled={!canScrollNext}
258
+ onClick={scrollNext}
259
+ {...props}
260
+ >
261
+ <ArrowRightIcon className="size-4" />
262
+ <span className="sr-only">Next slide</span>
263
+ </Button>
264
+ );
265
+ },
266
+ );
268
267
  CarouselNext.displayName = "CarouselNext";
269
268
 
270
269
  /* -----------------------------------------------------------------------------
@@ -278,4 +277,9 @@ export {
278
277
  CarouselItem,
279
278
  CarouselPrevious,
280
279
  CarouselNext,
280
+ type CarouselProps,
281
+ type CarouselContentProps,
282
+ type CarouselItemProps,
283
+ type CarouselPreviousProps,
284
+ type CarouselNextProps,
281
285
  };
package/src/checkbox.tsx CHANGED
@@ -9,9 +9,10 @@ import { cn } from "./utils";
9
9
  * Component: Checkbox
10
10
  * -------------------------------------------------------------------------- */
11
11
 
12
+ type CheckboxProps = CheckboxPrimitive.CheckboxProps;
12
13
  const Checkbox = React.forwardRef<
13
14
  React.ElementRef<typeof CheckboxPrimitive.Root>,
14
- CheckboxPrimitive.CheckboxProps
15
+ CheckboxProps
15
16
  >(({ className, ...props }, ref) => (
16
17
  <CheckboxPrimitive.Root
17
18
  ref={ref}
@@ -32,4 +33,4 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
32
33
  * Exports
33
34
  * -------------------------------------------------------------------------- */
34
35
 
35
- export { Checkbox };
36
+ export { Checkbox, type CheckboxProps };
package/src/code.tsx ADDED
@@ -0,0 +1,24 @@
1
+ import * as React from "react";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+
4
+ /* -----------------------------------------------------------------------------
5
+ * Component: Code
6
+ * -------------------------------------------------------------------------- */
7
+
8
+ interface CodeProps extends React.HTMLAttributes<HTMLElement> {
9
+ asChild?: boolean;
10
+ }
11
+ const Code = React.forwardRef<HTMLElement, CodeProps>(
12
+ ({ asChild, ...props }, ref) => {
13
+ const Comp = asChild ? Slot : "code";
14
+
15
+ return <Comp ref={ref} {...props} />;
16
+ },
17
+ );
18
+ Code.displayName = "Code";
19
+
20
+ /* -----------------------------------------------------------------------------
21
+ * Exports
22
+ * -------------------------------------------------------------------------- */
23
+
24
+ export { Code, type CodeProps };
@@ -6,22 +6,32 @@ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
6
6
  * Component: Collapsible
7
7
  * -------------------------------------------------------------------------- */
8
8
 
9
+ type CollapsibleProps = CollapsiblePrimitive.CollapsibleProps;
9
10
  const Collapsible = CollapsiblePrimitive.Root;
10
11
 
11
12
  /* -----------------------------------------------------------------------------
12
13
  * Component: CollapsibleTrigger
13
14
  * -------------------------------------------------------------------------- */
14
15
 
16
+ type CollapsibleTriggerProps = CollapsiblePrimitive.CollapsibleTriggerProps;
15
17
  const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
16
18
 
17
19
  /* -----------------------------------------------------------------------------
18
20
  * Component: CollapsibleContent
19
21
  * -------------------------------------------------------------------------- */
20
22
 
23
+ type CollapsibleContentProps = CollapsiblePrimitive.CollapsibleContentProps;
21
24
  const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
22
25
 
23
26
  /* -----------------------------------------------------------------------------
24
27
  * Exports
25
28
  * -------------------------------------------------------------------------- */
26
29
 
27
- export { Collapsible, CollapsibleTrigger, CollapsibleContent };
30
+ export {
31
+ Collapsible,
32
+ CollapsibleTrigger,
33
+ CollapsibleContent,
34
+ type CollapsibleProps,
35
+ type CollapsibleTriggerProps,
36
+ type CollapsibleContentProps,
37
+ };
package/src/command.tsx CHANGED
@@ -11,9 +11,10 @@ import { Dialog, DialogContent } from "./dialog";
11
11
  * Component: Command
12
12
  * -------------------------------------------------------------------------- */
13
13
 
14
+ type CommandProps = React.ComponentPropsWithoutRef<typeof CommandPrimitive>;
14
15
  const Command = React.forwardRef<
15
16
  React.ElementRef<typeof CommandPrimitive>,
16
- React.ComponentPropsWithoutRef<typeof CommandPrimitive>
17
+ CommandProps
17
18
  >(({ className, ...props }, ref) => (
18
19
  <CommandPrimitive
19
20
  ref={ref}
@@ -30,7 +31,11 @@ Command.displayName = CommandPrimitive.displayName;
30
31
  * Component: CommandDialog
31
32
  * -------------------------------------------------------------------------- */
32
33
 
33
- function CommandDialog({ children, ...props }: DialogProps): React.JSX.Element {
34
+ type CommandDialogProps = DialogProps;
35
+ function CommandDialog({
36
+ children,
37
+ ...props
38
+ }: CommandDialogProps): React.JSX.Element {
34
39
  return (
35
40
  <Dialog {...props}>
36
41
  <DialogContent className="overflow-hidden p-0">
@@ -46,9 +51,12 @@ function CommandDialog({ children, ...props }: DialogProps): React.JSX.Element {
46
51
  * Component: CommandInput
47
52
  * -------------------------------------------------------------------------- */
48
53
 
54
+ type CommandInputProps = React.ComponentPropsWithoutRef<
55
+ typeof CommandPrimitive.Input
56
+ >;
49
57
  const CommandInput = React.forwardRef<
50
58
  React.ElementRef<typeof CommandPrimitive.Input>,
51
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>
59
+ CommandInputProps
52
60
  >(({ className, ...props }, ref) => (
53
61
  <div className="flex items-center gap-2 border-b px-3" cmdk-input-wrapper="">
54
62
  <MagnifyingGlassIcon className="size-4 shrink-0 opacity-50" />
@@ -68,9 +76,12 @@ CommandInput.displayName = CommandPrimitive.Input.displayName;
68
76
  * Component: CommandList
69
77
  * -------------------------------------------------------------------------- */
70
78
 
79
+ type CommandListProps = React.ComponentPropsWithoutRef<
80
+ typeof CommandPrimitive.List
81
+ >;
71
82
  const CommandList = React.forwardRef<
72
83
  React.ElementRef<typeof CommandPrimitive.List>,
73
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>
84
+ CommandListProps
74
85
  >(({ className, ...props }, ref) => (
75
86
  <CommandPrimitive.List
76
87
  ref={ref}
@@ -84,9 +95,12 @@ CommandList.displayName = CommandPrimitive.List.displayName;
84
95
  * Component: CommandEmpty
85
96
  * -------------------------------------------------------------------------- */
86
97
 
98
+ type CommandEmptyProps = React.ComponentPropsWithoutRef<
99
+ typeof CommandPrimitive.Empty
100
+ >;
87
101
  const CommandEmpty = React.forwardRef<
88
102
  React.ElementRef<typeof CommandPrimitive.Empty>,
89
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>
103
+ CommandEmptyProps
90
104
  >((props, ref) => (
91
105
  <CommandPrimitive.Empty
92
106
  ref={ref}
@@ -100,9 +114,12 @@ CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
100
114
  * Component: CommandGroup
101
115
  * -------------------------------------------------------------------------- */
102
116
 
117
+ type CommandGroupProps = React.ComponentPropsWithoutRef<
118
+ typeof CommandPrimitive.Group
119
+ >;
103
120
  const CommandGroup = React.forwardRef<
104
121
  React.ElementRef<typeof CommandPrimitive.Group>,
105
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>
122
+ CommandGroupProps
106
123
  >(({ className, ...props }, ref) => (
107
124
  <CommandPrimitive.Group
108
125
  ref={ref}
@@ -119,9 +136,12 @@ CommandGroup.displayName = CommandPrimitive.Group.displayName;
119
136
  * Component: CommandSeparator
120
137
  * -------------------------------------------------------------------------- */
121
138
 
139
+ type CommandSeparatorProps = React.ComponentPropsWithoutRef<
140
+ typeof CommandPrimitive.Separator
141
+ >;
122
142
  const CommandSeparator = React.forwardRef<
123
143
  React.ElementRef<typeof CommandPrimitive.Separator>,
124
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>
144
+ CommandSeparatorProps
125
145
  >(({ className, ...props }, ref) => (
126
146
  <CommandPrimitive.Separator
127
147
  ref={ref}
@@ -135,9 +155,12 @@ CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
135
155
  * Component: CommandItem
136
156
  * -------------------------------------------------------------------------- */
137
157
 
158
+ type CommandItemProps = React.ComponentPropsWithoutRef<
159
+ typeof CommandPrimitive.Item
160
+ >;
138
161
  const CommandItem = React.forwardRef<
139
162
  React.ElementRef<typeof CommandPrimitive.Item>,
140
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>
163
+ CommandItemProps
141
164
  >(({ className, ...props }, ref) => (
142
165
  <CommandPrimitive.Item
143
166
  ref={ref}
@@ -154,9 +177,12 @@ CommandItem.displayName = CommandPrimitive.Item.displayName;
154
177
  * Component: CommandLoading
155
178
  * -------------------------------------------------------------------------- */
156
179
 
180
+ type CommandLoadingProps = React.ComponentPropsWithoutRef<
181
+ typeof CommandPrimitive.Loading
182
+ >;
157
183
  const CommandLoading = React.forwardRef<
158
184
  React.ElementRef<typeof CommandPrimitive.Loading>,
159
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Loading>
185
+ CommandLoadingProps
160
186
  >(({ className, ...props }, ref) => (
161
187
  <CommandPrimitive.Loading
162
188
  ref={ref}
@@ -170,10 +196,11 @@ CommandLoading.displayName = CommandPrimitive.Loading.displayName;
170
196
  * Component: CommandShortcut
171
197
  * -------------------------------------------------------------------------- */
172
198
 
199
+ type CommandShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
173
200
  function CommandShortcut({
174
201
  className,
175
202
  ...props
176
- }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element {
203
+ }: CommandShortcutProps): React.JSX.Element {
177
204
  return (
178
205
  <span
179
206
  className={cn(
@@ -200,4 +227,14 @@ export {
200
227
  CommandLoading,
201
228
  CommandShortcut,
202
229
  CommandSeparator,
230
+ type CommandProps,
231
+ type CommandDialogProps,
232
+ type CommandInputProps,
233
+ type CommandListProps,
234
+ type CommandEmptyProps,
235
+ type CommandGroupProps,
236
+ type CommandItemProps,
237
+ type CommandLoadingProps,
238
+ type CommandShortcutProps,
239
+ type CommandSeparatorProps,
203
240
  };
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ import { Slot } from "@radix-ui/react-slot";
3
+ import { cn } from "./utils";
4
+
5
+ /* -----------------------------------------------------------------------------
6
+ * Component: Container
7
+ * -------------------------------------------------------------------------- */
8
+
9
+ interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ asChild?: boolean;
11
+ }
12
+ const Container = React.forwardRef<HTMLDivElement, ContainerProps>(
13
+ ({ className, asChild, ...props }, ref) => {
14
+ const Comp = asChild ? Slot : "div";
15
+
16
+ return <Comp ref={ref} className={cn("container", className)} {...props} />;
17
+ },
18
+ );
19
+ Container.displayName = "Container";
20
+
21
+ /* -----------------------------------------------------------------------------
22
+ * Exports
23
+ * -------------------------------------------------------------------------- */
24
+
25
+ export { Container, type ContainerProps };
@@ -13,41 +13,49 @@ import { cn } from "./utils";
13
13
  * Component: ContextMenu
14
14
  * -------------------------------------------------------------------------- */
15
15
 
16
+ type ContextMenuProps = ContextMenuPrimitive.ContextMenuProps;
16
17
  const ContextMenu = ContextMenuPrimitive.Root;
17
18
 
18
19
  /* -----------------------------------------------------------------------------
19
20
  * Component: ContextMenuTrigger
20
21
  * -------------------------------------------------------------------------- */
21
22
 
23
+ type ContextMenuTriggerProps = ContextMenuPrimitive.ContextMenuTriggerProps;
22
24
  const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
23
25
 
24
26
  /* -----------------------------------------------------------------------------
25
27
  * Component: ContextMenuGroup
26
28
  * -------------------------------------------------------------------------- */
27
29
 
30
+ type ContextMenuGroupProps = ContextMenuPrimitive.ContextMenuGroupProps;
28
31
  const ContextMenuGroup = ContextMenuPrimitive.Group;
29
32
 
30
33
  /* -----------------------------------------------------------------------------
31
34
  * Component: ContextMenuSub
32
35
  * -------------------------------------------------------------------------- */
33
36
 
37
+ type ContextMenuSubProps = ContextMenuPrimitive.ContextMenuSubProps;
34
38
  const ContextMenuSub = ContextMenuPrimitive.Sub;
35
39
 
36
40
  /* -----------------------------------------------------------------------------
37
41
  * Component: ContextMenuRadioGroup
38
42
  * -------------------------------------------------------------------------- */
39
43
 
44
+ type ContextMenuRadioGroupProps =
45
+ ContextMenuPrimitive.ContextMenuRadioGroupProps;
40
46
  const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
41
47
 
42
48
  /* -----------------------------------------------------------------------------
43
49
  * Component: ContextMenuSubTrigger
44
50
  * -------------------------------------------------------------------------- */
45
51
 
52
+ interface ContextMenuSubTriggerProps
53
+ extends ContextMenuPrimitive.ContextMenuSubTriggerProps {
54
+ inset?: boolean;
55
+ }
46
56
  const ContextMenuSubTrigger = React.forwardRef<
47
57
  React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,
48
- ContextMenuPrimitive.ContextMenuSubTriggerProps & {
49
- inset?: boolean;
50
- }
58
+ ContextMenuSubTriggerProps
51
59
  >(({ className, inset, children, ...props }, ref) => (
52
60
  <ContextMenuPrimitive.SubTrigger
53
61
  ref={ref}
@@ -68,9 +76,11 @@ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
68
76
  * Component: ContextMenuSubContent
69
77
  * -------------------------------------------------------------------------- */
70
78
 
79
+ type ContextMenuSubContentProps =
80
+ ContextMenuPrimitive.ContextMenuSubContentProps;
71
81
  const ContextMenuSubContent = React.forwardRef<
72
82
  React.ElementRef<typeof ContextMenuPrimitive.SubContent>,
73
- ContextMenuPrimitive.ContextMenuSubContentProps
83
+ ContextMenuSubContentProps
74
84
  >(({ className, ...props }, ref) => (
75
85
  <ContextMenuPrimitive.Portal>
76
86
  <ContextMenuPrimitive.SubContent
@@ -89,9 +99,10 @@ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
89
99
  * Component: ContextMenuContent
90
100
  * -------------------------------------------------------------------------- */
91
101
 
102
+ type ContextMenuContentProps = ContextMenuPrimitive.ContextMenuContentProps;
92
103
  const ContextMenuContent = React.forwardRef<
93
104
  React.ElementRef<typeof ContextMenuPrimitive.Content>,
94
- ContextMenuPrimitive.ContextMenuContentProps
105
+ ContextMenuContentProps
95
106
  >(({ className, ...props }, ref) => (
96
107
  <ContextMenuPrimitive.Portal>
97
108
  <ContextMenuPrimitive.Content
@@ -110,11 +121,13 @@ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
110
121
  * Component: ContextMenuItem
111
122
  * -------------------------------------------------------------------------- */
112
123
 
124
+ interface ContextMenuItemProps
125
+ extends ContextMenuPrimitive.ContextMenuItemProps {
126
+ inset?: boolean;
127
+ }
113
128
  const ContextMenuItem = React.forwardRef<
114
129
  React.ElementRef<typeof ContextMenuPrimitive.Item>,
115
- ContextMenuPrimitive.ContextMenuItemProps & {
116
- inset?: boolean;
117
- }
130
+ ContextMenuItemProps
118
131
  >(({ className, inset, ...props }, ref) => (
119
132
  <ContextMenuPrimitive.Item
120
133
  ref={ref}
@@ -132,9 +145,11 @@ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
132
145
  * Component: ContextMenuCheckboxItem
133
146
  * -------------------------------------------------------------------------- */
134
147
 
148
+ type ContextMenuCheckboxItemProps =
149
+ ContextMenuPrimitive.ContextMenuCheckboxItemProps;
135
150
  const ContextMenuCheckboxItem = React.forwardRef<
136
151
  React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,
137
- ContextMenuPrimitive.ContextMenuCheckboxItemProps
152
+ ContextMenuCheckboxItemProps
138
153
  >(({ className, children, checked, ...props }, ref) => (
139
154
  <ContextMenuPrimitive.CheckboxItem
140
155
  ref={ref}
@@ -160,9 +175,10 @@ ContextMenuCheckboxItem.displayName =
160
175
  * Component: ContextMenuRadioItem
161
176
  * -------------------------------------------------------------------------- */
162
177
 
178
+ type ContextMenuRadioItemProps = ContextMenuPrimitive.ContextMenuRadioItemProps;
163
179
  const ContextMenuRadioItem = React.forwardRef<
164
180
  React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,
165
- ContextMenuPrimitive.ContextMenuRadioItemProps
181
+ ContextMenuRadioItemProps
166
182
  >(({ className, children, ...props }, ref) => (
167
183
  <ContextMenuPrimitive.RadioItem
168
184
  ref={ref}
@@ -186,11 +202,13 @@ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
186
202
  * Component: ContextMenuLabel
187
203
  * -------------------------------------------------------------------------- */
188
204
 
205
+ interface ContextMenuLabelProps
206
+ extends ContextMenuPrimitive.ContextMenuLabelProps {
207
+ inset?: boolean;
208
+ }
189
209
  const ContextMenuLabel = React.forwardRef<
190
210
  React.ElementRef<typeof ContextMenuPrimitive.Label>,
191
- ContextMenuPrimitive.ContextMenuLabelProps & {
192
- inset?: boolean;
193
- }
211
+ ContextMenuLabelProps
194
212
  >(({ className, inset, ...props }, ref) => (
195
213
  <ContextMenuPrimitive.Label
196
214
  ref={ref}
@@ -208,9 +226,10 @@ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
208
226
  * Component: ContextMenuSeparator
209
227
  * -------------------------------------------------------------------------- */
210
228
 
229
+ type ContextMenuSeparatorProps = ContextMenuPrimitive.ContextMenuSeparatorProps;
211
230
  const ContextMenuSeparator = React.forwardRef<
212
231
  React.ElementRef<typeof ContextMenuPrimitive.Separator>,
213
- ContextMenuPrimitive.ContextMenuSeparatorProps
232
+ ContextMenuSeparatorProps
214
233
  >(({ className, ...props }, ref) => (
215
234
  <ContextMenuPrimitive.Separator
216
235
  ref={ref}
@@ -224,10 +243,11 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
224
243
  * Component: ContextMenuShortcut
225
244
  * -------------------------------------------------------------------------- */
226
245
 
246
+ type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
227
247
  function ContextMenuShortcut({
228
248
  className,
229
249
  ...props
230
- }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element {
250
+ }: ContextMenuShortcutProps): React.JSX.Element {
231
251
  return (
232
252
  <span
233
253
  className={cn(
@@ -243,9 +263,10 @@ function ContextMenuShortcut({
243
263
  * Component: ContextMenuArrow
244
264
  * -------------------------------------------------------------------------- */
245
265
 
266
+ type ContextMenuArrowProps = ContextMenuPrimitive.ContextMenuArrowProps;
246
267
  const ContextMenuArrow = React.forwardRef<
247
268
  React.ElementRef<typeof ContextMenuPrimitive.Arrow>,
248
- ContextMenuPrimitive.ContextMenuArrowProps
269
+ ContextMenuArrowProps
249
270
  >(({ className, ...props }, ref) => (
250
271
  <ContextMenuPrimitive.Arrow
251
272
  ref={ref}
@@ -275,4 +296,19 @@ export {
275
296
  ContextMenuSubTrigger,
276
297
  ContextMenuRadioGroup,
277
298
  ContextMenuArrow,
299
+ type ContextMenuProps,
300
+ type ContextMenuTriggerProps,
301
+ type ContextMenuContentProps,
302
+ type ContextMenuItemProps,
303
+ type ContextMenuCheckboxItemProps,
304
+ type ContextMenuRadioItemProps,
305
+ type ContextMenuLabelProps,
306
+ type ContextMenuSeparatorProps,
307
+ type ContextMenuShortcutProps,
308
+ type ContextMenuGroupProps,
309
+ type ContextMenuSubProps,
310
+ type ContextMenuSubContentProps,
311
+ type ContextMenuSubTriggerProps,
312
+ type ContextMenuRadioGroupProps,
313
+ type ContextMenuArrowProps,
278
314
  };