@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
@@ -2,257 +2,266 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
5
- import {
6
- CheckIcon,
7
- ChevronRightIcon,
8
- DotFilledIcon,
9
- } from "@radix-ui/react-icons";
5
+ import { CheckIcon, ChevronRightIcon, DotFilledIcon } from "@radix-ui/react-icons";
10
6
  import { cn } from "./utils";
11
7
 
12
8
  /* -----------------------------------------------------------------------------
13
9
  * Component: ContextMenu
14
10
  * -------------------------------------------------------------------------- */
15
11
 
12
+ type ContextMenuProps = React.ComponentProps<typeof ContextMenuPrimitive.Root>;
16
13
  const ContextMenu = ContextMenuPrimitive.Root;
17
14
 
18
15
  /* -----------------------------------------------------------------------------
19
16
  * Component: ContextMenuTrigger
20
17
  * -------------------------------------------------------------------------- */
21
18
 
19
+ type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Trigger>;
22
20
  const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
23
21
 
24
22
  /* -----------------------------------------------------------------------------
25
23
  * Component: ContextMenuGroup
26
24
  * -------------------------------------------------------------------------- */
27
25
 
26
+ type ContextMenuGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Group>;
28
27
  const ContextMenuGroup = ContextMenuPrimitive.Group;
29
28
 
30
29
  /* -----------------------------------------------------------------------------
31
30
  * Component: ContextMenuSub
32
31
  * -------------------------------------------------------------------------- */
33
32
 
33
+ type ContextMenuSubProps = React.ComponentProps<typeof ContextMenuPrimitive.Sub>;
34
34
  const ContextMenuSub = ContextMenuPrimitive.Sub;
35
35
 
36
36
  /* -----------------------------------------------------------------------------
37
37
  * Component: ContextMenuRadioGroup
38
38
  * -------------------------------------------------------------------------- */
39
39
 
40
+ type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioGroup>;
40
41
  const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
41
42
 
42
43
  /* -----------------------------------------------------------------------------
43
44
  * Component: ContextMenuSubTrigger
44
45
  * -------------------------------------------------------------------------- */
45
46
 
46
- const ContextMenuSubTrigger = React.forwardRef<
47
- React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,
48
- ContextMenuPrimitive.ContextMenuSubTriggerProps & {
49
- inset?: boolean;
50
- }
51
- >(({ className, inset, children, ...props }, ref) => (
52
- <ContextMenuPrimitive.SubTrigger
53
- ref={ref}
54
- className={cn(
55
- "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none",
56
- inset && "pl-8",
57
- className,
58
- )}
59
- {...props}
60
- >
61
- {children}
62
- <ChevronRightIcon className="ml-auto size-4" />
63
- </ContextMenuPrimitive.SubTrigger>
64
- ));
65
- ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
47
+ type ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;
66
48
 
67
- /* -----------------------------------------------------------------------------
68
- * Component: ContextMenuSubContent
69
- * -------------------------------------------------------------------------- */
49
+ interface ContextMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> {
50
+ inset?: boolean;
51
+ }
70
52
 
71
- const ContextMenuSubContent = React.forwardRef<
72
- React.ElementRef<typeof ContextMenuPrimitive.SubContent>,
73
- ContextMenuPrimitive.ContextMenuSubContentProps
74
- >(({ className, ...props }, ref) => (
75
- <ContextMenuPrimitive.Portal>
76
- <ContextMenuPrimitive.SubContent
53
+ const ContextMenuSubTrigger = React.forwardRef<ContextMenuSubTriggerElement, ContextMenuSubTriggerProps>(
54
+ ({ className, inset, children, ...props }, ref) => (
55
+ <ContextMenuPrimitive.SubTrigger
77
56
  ref={ref}
78
57
  className={cn(
79
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
58
+ "focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none",
59
+ inset && "pl-8",
80
60
  className,
81
61
  )}
82
62
  {...props}
83
- />
84
- </ContextMenuPrimitive.Portal>
85
- ));
63
+ >
64
+ {children}
65
+ <ChevronRightIcon className="ml-auto size-4" />
66
+ </ContextMenuPrimitive.SubTrigger>
67
+ ),
68
+ );
69
+
70
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
71
+
72
+ /* -----------------------------------------------------------------------------
73
+ * Component: ContextMenuSubContent
74
+ * -------------------------------------------------------------------------- */
75
+
76
+ type ContextMenuSubContentElement = React.ElementRef<typeof ContextMenuPrimitive.SubContent>;
77
+ type ContextMenuSubContentProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>;
78
+
79
+ const ContextMenuSubContent = React.forwardRef<ContextMenuSubContentElement, ContextMenuSubContentProps>(
80
+ ({ className, ...props }, ref) => (
81
+ <ContextMenuPrimitive.Portal>
82
+ <ContextMenuPrimitive.SubContent
83
+ ref={ref}
84
+ className={cn(
85
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
86
+ className,
87
+ )}
88
+ {...props}
89
+ />
90
+ </ContextMenuPrimitive.Portal>
91
+ ),
92
+ );
93
+
86
94
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
87
95
 
88
96
  /* -----------------------------------------------------------------------------
89
97
  * Component: ContextMenuContent
90
98
  * -------------------------------------------------------------------------- */
91
99
 
92
- const ContextMenuContent = React.forwardRef<
93
- React.ElementRef<typeof ContextMenuPrimitive.Content>,
94
- ContextMenuPrimitive.ContextMenuContentProps
95
- >(({ className, ...props }, ref) => (
96
- <ContextMenuPrimitive.Portal>
97
- <ContextMenuPrimitive.Content
100
+ type ContextMenuContentElement = React.ElementRef<typeof ContextMenuPrimitive.Content>;
101
+ type ContextMenuContentProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>;
102
+
103
+ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(
104
+ ({ className, ...props }, ref) => (
105
+ <ContextMenuPrimitive.Portal>
106
+ <ContextMenuPrimitive.Content
107
+ ref={ref}
108
+ className={cn(
109
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
110
+ className,
111
+ )}
112
+ {...props}
113
+ />
114
+ </ContextMenuPrimitive.Portal>
115
+ ),
116
+ );
117
+
118
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
119
+
120
+ /* -----------------------------------------------------------------------------
121
+ * Component: ContextMenuItem
122
+ * -------------------------------------------------------------------------- */
123
+
124
+ type ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;
125
+
126
+ interface ContextMenuItemProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
127
+ inset?: boolean;
128
+ }
129
+
130
+ const ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(
131
+ ({ className, inset, ...props }, ref) => (
132
+ <ContextMenuPrimitive.Item
98
133
  ref={ref}
99
134
  className={cn(
100
- "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 z-50 min-w-[8rem] rounded-md border p-1 shadow-md focus:outline-none",
135
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
136
+ inset && "pl-8",
101
137
  className,
102
138
  )}
103
139
  {...props}
104
140
  />
105
- </ContextMenuPrimitive.Portal>
106
- ));
107
- ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
141
+ ),
142
+ );
108
143
 
109
- /* -----------------------------------------------------------------------------
110
- * Component: ContextMenuItem
111
- * -------------------------------------------------------------------------- */
112
-
113
- const ContextMenuItem = React.forwardRef<
114
- React.ElementRef<typeof ContextMenuPrimitive.Item>,
115
- ContextMenuPrimitive.ContextMenuItemProps & {
116
- inset?: boolean;
117
- }
118
- >(({ className, inset, ...props }, ref) => (
119
- <ContextMenuPrimitive.Item
120
- ref={ref}
121
- className={cn(
122
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
123
- inset && "pl-8",
124
- className,
125
- )}
126
- {...props}
127
- />
128
- ));
129
144
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
130
145
 
131
146
  /* -----------------------------------------------------------------------------
132
147
  * Component: ContextMenuCheckboxItem
133
148
  * -------------------------------------------------------------------------- */
134
149
 
135
- const ContextMenuCheckboxItem = React.forwardRef<
136
- React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,
137
- ContextMenuPrimitive.ContextMenuCheckboxItemProps
138
- >(({ className, children, checked, ...props }, ref) => (
139
- <ContextMenuPrimitive.CheckboxItem
140
- ref={ref}
141
- className={cn(
142
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
143
- className,
144
- )}
145
- checked={checked}
146
- {...props}
147
- >
148
- <span className="absolute left-2 flex size-3.5 items-center justify-center">
149
- <ContextMenuPrimitive.ItemIndicator>
150
- <CheckIcon className="size-4" />
151
- </ContextMenuPrimitive.ItemIndicator>
152
- </span>
153
- {children}
154
- </ContextMenuPrimitive.CheckboxItem>
155
- ));
156
- ContextMenuCheckboxItem.displayName =
157
- ContextMenuPrimitive.CheckboxItem.displayName;
150
+ type ContextMenuCheckboxItemElement = React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>;
151
+ type ContextMenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>;
152
+
153
+ const ContextMenuCheckboxItem = React.forwardRef<ContextMenuCheckboxItemElement, ContextMenuCheckboxItemProps>(
154
+ ({ className, children, checked, ...props }, ref) => (
155
+ <ContextMenuPrimitive.CheckboxItem
156
+ ref={ref}
157
+ className={cn(
158
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
159
+ className,
160
+ )}
161
+ checked={checked}
162
+ {...props}
163
+ >
164
+ <span className="absolute left-2 flex size-3.5 items-center justify-center">
165
+ <ContextMenuPrimitive.ItemIndicator>
166
+ <CheckIcon className="size-4" />
167
+ </ContextMenuPrimitive.ItemIndicator>
168
+ </span>
169
+ {children}
170
+ </ContextMenuPrimitive.CheckboxItem>
171
+ ),
172
+ );
173
+
174
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
158
175
 
159
176
  /* -----------------------------------------------------------------------------
160
177
  * Component: ContextMenuRadioItem
161
178
  * -------------------------------------------------------------------------- */
162
179
 
163
- const ContextMenuRadioItem = React.forwardRef<
164
- React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,
165
- ContextMenuPrimitive.ContextMenuRadioItemProps
166
- >(({ className, children, ...props }, ref) => (
167
- <ContextMenuPrimitive.RadioItem
168
- ref={ref}
169
- className={cn(
170
- "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
171
- className,
172
- )}
173
- {...props}
174
- >
175
- <span className="absolute left-2 flex size-3.5 items-center justify-center">
176
- <ContextMenuPrimitive.ItemIndicator>
177
- <DotFilledIcon className="size-4 fill-current" />
178
- </ContextMenuPrimitive.ItemIndicator>
179
- </span>
180
- {children}
181
- </ContextMenuPrimitive.RadioItem>
182
- ));
180
+ type ContextMenuRadioItemElement = React.ElementRef<typeof ContextMenuPrimitive.RadioItem>;
181
+ type ContextMenuRadioItemProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>;
182
+
183
+ const ContextMenuRadioItem = React.forwardRef<ContextMenuRadioItemElement, ContextMenuRadioItemProps>(
184
+ ({ className, children, ...props }, ref) => (
185
+ <ContextMenuPrimitive.RadioItem
186
+ ref={ref}
187
+ className={cn(
188
+ "focus:bg-accent focus:text-accent-foreground relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50",
189
+ className,
190
+ )}
191
+ {...props}
192
+ >
193
+ <span className="absolute left-2 flex size-3.5 items-center justify-center">
194
+ <ContextMenuPrimitive.ItemIndicator>
195
+ <DotFilledIcon className="size-4 fill-current" />
196
+ </ContextMenuPrimitive.ItemIndicator>
197
+ </span>
198
+ {children}
199
+ </ContextMenuPrimitive.RadioItem>
200
+ ),
201
+ );
202
+
183
203
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
184
204
 
185
205
  /* -----------------------------------------------------------------------------
186
206
  * Component: ContextMenuLabel
187
207
  * -------------------------------------------------------------------------- */
188
208
 
189
- const ContextMenuLabel = React.forwardRef<
190
- React.ElementRef<typeof ContextMenuPrimitive.Label>,
191
- ContextMenuPrimitive.ContextMenuLabelProps & {
192
- inset?: boolean;
193
- }
194
- >(({ className, inset, ...props }, ref) => (
195
- <ContextMenuPrimitive.Label
196
- ref={ref}
197
- className={cn(
198
- "text-foreground px-2 py-1.5 text-sm font-semibold",
199
- inset && "pl-8",
200
- className,
201
- )}
202
- {...props}
203
- />
204
- ));
209
+ type ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;
210
+
211
+ interface ContextMenuLabelProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
212
+ inset?: boolean;
213
+ }
214
+
215
+ const ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(
216
+ ({ className, inset, ...props }, ref) => (
217
+ <ContextMenuPrimitive.Label
218
+ ref={ref}
219
+ className={cn("text-foreground px-2 py-1.5 text-sm font-semibold", inset && "pl-8", className)}
220
+ {...props}
221
+ />
222
+ ),
223
+ );
224
+
205
225
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
206
226
 
207
227
  /* -----------------------------------------------------------------------------
208
228
  * Component: ContextMenuSeparator
209
229
  * -------------------------------------------------------------------------- */
210
230
 
211
- const ContextMenuSeparator = React.forwardRef<
212
- React.ElementRef<typeof ContextMenuPrimitive.Separator>,
213
- ContextMenuPrimitive.ContextMenuSeparatorProps
214
- >(({ className, ...props }, ref) => (
215
- <ContextMenuPrimitive.Separator
216
- ref={ref}
217
- className={cn("bg-border -mx-1 my-1 h-px", className)}
218
- {...props}
219
- />
220
- ));
231
+ type ContextMenuSeparatorElement = React.ElementRef<typeof ContextMenuPrimitive.Separator>;
232
+ type ContextMenuSeparatorProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>;
233
+
234
+ const ContextMenuSeparator = React.forwardRef<ContextMenuSeparatorElement, ContextMenuSeparatorProps>(
235
+ ({ className, ...props }, ref) => (
236
+ <ContextMenuPrimitive.Separator ref={ref} className={cn("bg-border -mx-1 my-1 h-px", className)} {...props} />
237
+ ),
238
+ );
239
+
221
240
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
222
241
 
223
242
  /* -----------------------------------------------------------------------------
224
243
  * Component: ContextMenuShortcut
225
244
  * -------------------------------------------------------------------------- */
226
245
 
227
- function ContextMenuShortcut({
228
- className,
229
- ...props
230
- }: React.HTMLAttributes<HTMLSpanElement>): React.JSX.Element {
231
- return (
232
- <span
233
- className={cn(
234
- "text-muted-foreground ml-auto text-xs tracking-widest",
235
- className,
236
- )}
237
- {...props}
238
- />
239
- );
246
+ type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
247
+
248
+ function ContextMenuShortcut({ className, ...props }: ContextMenuShortcutProps): React.JSX.Element {
249
+ return <span className={cn("text-muted-foreground ml-auto text-xs tracking-widest", className)} {...props} />;
240
250
  }
241
251
 
242
252
  /* -----------------------------------------------------------------------------
243
253
  * Component: ContextMenuArrow
244
254
  * -------------------------------------------------------------------------- */
245
255
 
246
- const ContextMenuArrow = React.forwardRef<
247
- React.ElementRef<typeof ContextMenuPrimitive.Arrow>,
248
- ContextMenuPrimitive.ContextMenuArrowProps
249
- >(({ className, ...props }, ref) => (
250
- <ContextMenuPrimitive.Arrow
251
- ref={ref}
252
- className={cn("fill-popover", className)}
253
- {...props}
254
- />
255
- ));
256
+ type ContextMenuArrowElement = React.ElementRef<typeof ContextMenuPrimitive.Arrow>;
257
+ type ContextMenuArrowProps = ContextMenuPrimitive.ContextMenuArrowProps;
258
+
259
+ const ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(
260
+ ({ className, ...props }, ref) => (
261
+ <ContextMenuPrimitive.Arrow ref={ref} className={cn("fill-popover", className)} {...props} />
262
+ ),
263
+ );
264
+
256
265
  ContextMenuArrow.displayName = ContextMenuPrimitive.Arrow.displayName;
257
266
 
258
267
  /* -----------------------------------------------------------------------------
@@ -275,4 +284,19 @@ export {
275
284
  ContextMenuSubTrigger,
276
285
  ContextMenuRadioGroup,
277
286
  ContextMenuArrow,
287
+ type ContextMenuProps,
288
+ type ContextMenuTriggerProps,
289
+ type ContextMenuContentProps,
290
+ type ContextMenuItemProps,
291
+ type ContextMenuCheckboxItemProps,
292
+ type ContextMenuRadioItemProps,
293
+ type ContextMenuLabelProps,
294
+ type ContextMenuSeparatorProps,
295
+ type ContextMenuShortcutProps,
296
+ type ContextMenuGroupProps,
297
+ type ContextMenuSubProps,
298
+ type ContextMenuSubContentProps,
299
+ type ContextMenuSubTriggerProps,
300
+ type ContextMenuRadioGroupProps,
301
+ type ContextMenuArrowProps,
278
302
  };
@@ -2,6 +2,7 @@
2
2
 
3
3
  import * as React from "react";
4
4
  import type * as ReactTable from "@tanstack/react-table";
5
+ import { type SortDirection } from "@tanstack/react-table";
5
6
  import {
6
7
  ArrowDownIcon,
7
8
  ArrowUpIcon,
@@ -23,32 +24,22 @@ import {
23
24
  DropdownMenuTrigger,
24
25
  } from "./dropdown-menu";
25
26
  import { Button } from "./button";
26
- import {
27
- Select,
28
- SelectContent,
29
- SelectItem,
30
- SelectTrigger,
31
- SelectValue,
32
- } from "./select";
27
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select";
33
28
  import { cn } from "./utils";
34
29
 
35
30
  /* -----------------------------------------------------------------------------
36
31
  * Component: DataTableViewOptions
37
32
  * -------------------------------------------------------------------------- */
38
33
 
39
- function DataTableViewOptions<TData>({
40
- table,
41
- }: {
34
+ interface DataTableViewOptionsProps<TData> {
42
35
  table: ReactTable.Table<TData>;
43
- }): React.JSX.Element {
36
+ }
37
+
38
+ function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {
44
39
  return (
45
40
  <DropdownMenu>
46
41
  <DropdownMenuTrigger asChild>
47
- <Button
48
- variant="outline"
49
- size="sm"
50
- className="ml-auto hidden h-8 lg:flex"
51
- >
42
+ <Button variant="outline" size="sm" className="ml-auto hidden h-8 lg:flex">
52
43
  <MixerHorizontalIcon className="mr-2 size-4" />
53
44
  View
54
45
  </Button>
@@ -58,10 +49,7 @@ function DataTableViewOptions<TData>({
58
49
  <DropdownMenuSeparator />
59
50
  {table
60
51
  .getAllColumns()
61
- .filter(
62
- (column) =>
63
- typeof column.accessorFn !== "undefined" && column.getCanHide(),
64
- )
52
+ .filter((column) => typeof column.accessorFn !== "undefined" && column.getCanHide())
65
53
  .map((column) => {
66
54
  return (
67
55
  <DropdownMenuCheckboxItem
@@ -85,21 +73,19 @@ function DataTableViewOptions<TData>({
85
73
  * Component: DataTablePagination
86
74
  * -------------------------------------------------------------------------- */
87
75
 
76
+ interface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {
77
+ table: ReactTable.Table<TData>;
78
+ }
79
+
88
80
  function DataTablePagination<TData>({
89
81
  table,
90
82
  className,
91
83
  ...props
92
- }: React.HTMLAttributes<HTMLDivElement> & {
93
- table: ReactTable.Table<TData>;
94
- }): React.JSX.Element {
84
+ }: DataTablePaginationProps<TData>): React.JSX.Element {
95
85
  return (
96
- <div
97
- className={cn("flex items-center justify-between px-2", className)}
98
- {...props}
99
- >
86
+ <div className={cn("flex items-center justify-between px-2", className)} {...props}>
100
87
  <div className="text-muted-foreground flex-1 text-sm">
101
- {table.getFilteredSelectedRowModel().rows.length} of{" "}
102
- {table.getFilteredRowModel().rows.length} row(s) selected.
88
+ {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.
103
89
  </div>
104
90
  <div className="flex items-center space-x-6 lg:space-x-8">
105
91
  <div className="flex items-center space-x-2">
@@ -123,8 +109,7 @@ function DataTablePagination<TData>({
123
109
  </Select>
124
110
  </div>
125
111
  <div className="flex w-[100px] items-center justify-center text-sm font-medium">
126
- Page {table.getState().pagination.pageIndex + 1} of{" "}
127
- {table.getPageCount()}
112
+ Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}
128
113
  </div>
129
114
  <div className="flex items-center space-x-2">
130
115
  <Button
@@ -183,14 +168,16 @@ function DataTablePagination<TData>({
183
168
  * Component: DataTableColumnHeader
184
169
  * -------------------------------------------------------------------------- */
185
170
 
171
+ interface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {
172
+ column: ReactTable.Column<TData, TValue>;
173
+ title: string;
174
+ }
175
+
186
176
  function DataTableColumnHeader<TData, TValue>({
187
177
  column,
188
178
  title,
189
179
  className,
190
- }: React.HTMLAttributes<HTMLDivElement> & {
191
- column: ReactTable.Column<TData, TValue>;
192
- title: string;
193
- }): React.JSX.Element {
180
+ }: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {
194
181
  if (!column.getCanSort()) {
195
182
  return <div className={cn(className)}>{title}</div>;
196
183
  }
@@ -199,19 +186,9 @@ function DataTableColumnHeader<TData, TValue>({
199
186
  <div className={cn("flex items-center space-x-2", className)}>
200
187
  <DropdownMenu>
201
188
  <DropdownMenuTrigger asChild>
202
- <Button
203
- variant="ghost"
204
- size="xs"
205
- className="data-[state=open]:bg-accent -ml-3"
206
- >
189
+ <Button variant="ghost" size="xs" className="data-[state=open]:bg-accent -ml-3">
207
190
  <span>{title}</span>
208
- {column.getIsSorted() === "desc" ? (
209
- <ArrowDownIcon className="ml-2 size-4" />
210
- ) : column.getIsSorted() === "asc" ? (
211
- <ArrowUpIcon className="ml-2 size-4" />
212
- ) : (
213
- <CaretSortIcon className="ml-2 size-4" />
214
- )}
191
+ <SortIcon sorted={column.getIsSorted()} />
215
192
  </Button>
216
193
  </DropdownMenuTrigger>
217
194
  <DropdownMenuContent align="start">
@@ -246,10 +223,28 @@ function DataTableColumnHeader<TData, TValue>({
246
223
  );
247
224
  }
248
225
 
226
+ function SortIcon({ sorted }: { sorted: false | SortDirection }): React.JSX.Element {
227
+ switch (sorted) {
228
+ case "desc":
229
+ return <ArrowDownIcon className="ml-2 size-4" />;
230
+ case "asc":
231
+ return <ArrowUpIcon className="ml-2 size-4" />;
232
+ default:
233
+ return <CaretSortIcon className="ml-2 size-4" />;
234
+ }
235
+ }
236
+
249
237
  /* -----------------------------------------------------------------------------
250
238
  * Exports
251
239
  * -------------------------------------------------------------------------- */
252
240
 
253
- export { DataTableViewOptions, DataTablePagination, DataTableColumnHeader };
241
+ export {
242
+ DataTableViewOptions,
243
+ DataTablePagination,
244
+ DataTableColumnHeader,
245
+ type DataTableViewOptionsProps,
246
+ type DataTablePaginationProps,
247
+ type DataTableColumnHeaderProps,
248
+ };
254
249
 
255
250
  export * from "@tanstack/react-table";