@codefast/ui 0.0.40 → 0.0.42

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 (387) hide show
  1. package/dist/{chunk-EVN2IB57.js → chunk-6EAQQBWG.js} +2 -2
  2. package/dist/chunk-6EAQQBWG.js.map +1 -0
  3. package/dist/{chunk-YR36SVVG.mjs → chunk-7HJV22OF.mjs} +1 -1
  4. package/dist/chunk-7HJV22OF.mjs.map +1 -0
  5. package/dist/{chunk-5WJB3UAO.js → chunk-CERSQE5J.js} +1 -1
  6. package/dist/chunk-CERSQE5J.js.map +1 -0
  7. package/dist/{chunk-UPZHCTQV.js → chunk-ELWITZPX.js} +2 -2
  8. package/dist/chunk-ELWITZPX.js.map +1 -0
  9. package/dist/{chunk-WLMYX3C7.mjs → chunk-GDMHMSJ2.mjs} +2 -2
  10. package/dist/chunk-GDMHMSJ2.mjs.map +1 -0
  11. package/dist/{chunk-UJJZZCAC.js → chunk-HQ4AUOQM.js} +1 -1
  12. package/dist/{chunk-UJJZZCAC.js.map → chunk-HQ4AUOQM.js.map} +1 -1
  13. package/dist/{chunk-HLXU3SQI.mjs → chunk-HWEFQSTC.mjs} +1 -1
  14. package/dist/chunk-HWEFQSTC.mjs.map +1 -0
  15. package/dist/{chunk-JTAXNFUM.mjs → chunk-HX5YKP4E.mjs} +2 -2
  16. package/dist/chunk-HX5YKP4E.mjs.map +1 -0
  17. package/dist/{chunk-PLX35IKX.mjs → chunk-I6QCJDIF.mjs} +1 -1
  18. package/dist/chunk-I6QCJDIF.mjs.map +1 -0
  19. package/dist/{chunk-466PAJCA.mjs → chunk-LEUB3C3L.mjs} +1 -1
  20. package/dist/chunk-LEUB3C3L.mjs.map +1 -0
  21. package/dist/{chunk-KJ77RPJ4.mjs → chunk-M5UKNISJ.mjs} +2 -2
  22. package/dist/chunk-M5UKNISJ.mjs.map +1 -0
  23. package/dist/{chunk-EYERINEJ.js → chunk-MZJL73RI.js} +1 -1
  24. package/dist/chunk-MZJL73RI.js.map +1 -0
  25. package/dist/{chunk-JCMRDCFT.js → chunk-NH6X3FON.js} +1 -1
  26. package/dist/{chunk-JCMRDCFT.js.map → chunk-NH6X3FON.js.map} +1 -1
  27. package/dist/{chunk-UDNWQQ3I.js → chunk-NSK74YTM.js} +2 -2
  28. package/dist/chunk-NSK74YTM.js.map +1 -0
  29. package/dist/{chunk-N6QGG4WS.mjs → chunk-P5AV3QU7.mjs} +2 -2
  30. package/dist/chunk-P5AV3QU7.mjs.map +1 -0
  31. package/dist/{chunk-GRQGCS7U.mjs → chunk-PWF46YXQ.mjs} +2 -2
  32. package/dist/chunk-PWF46YXQ.mjs.map +1 -0
  33. package/dist/{chunk-ZWGC5M4G.js → chunk-SCJ3W2VO.js} +2 -2
  34. package/dist/chunk-SCJ3W2VO.js.map +1 -0
  35. package/dist/{chunk-MSHUAEXI.js → chunk-SCPFGC2X.js} +2 -2
  36. package/dist/chunk-SCPFGC2X.js.map +1 -0
  37. package/dist/{chunk-JIHHUXA5.js → chunk-VXPAGNPJ.js} +2 -2
  38. package/dist/chunk-VXPAGNPJ.js.map +1 -0
  39. package/dist/{chunk-6B2PU2GG.mjs → chunk-WL65TBKJ.mjs} +2 -2
  40. package/dist/chunk-WL65TBKJ.mjs.map +1 -0
  41. package/dist/{chunk-4TJBMO2Y.mjs → chunk-WYYOCZNI.mjs} +2 -2
  42. package/dist/chunk-WYYOCZNI.mjs.map +1 -0
  43. package/dist/{chunk-FEE6PNWV.js → chunk-XM4Y2S5E.js} +2 -2
  44. package/dist/chunk-XM4Y2S5E.js.map +1 -0
  45. package/dist/{chunk-7PJR4WFR.mjs → chunk-ZEYIBYZP.mjs} +2 -2
  46. package/dist/chunk-ZEYIBYZP.mjs.map +1 -0
  47. package/dist/{chunk-AEWLL6A2.js → chunk-ZTEJNUH6.js} +2 -2
  48. package/dist/chunk-ZTEJNUH6.js.map +1 -0
  49. package/dist/lib/utils.js +1 -1
  50. package/dist/lib/utils.mjs +1 -1
  51. package/dist/plugin/animate.plugin.js +1 -1
  52. package/dist/plugin/animate.plugin.mjs +1 -1
  53. package/dist/plugin/base.plugin.js +1 -1
  54. package/dist/plugin/base.plugin.mjs +1 -1
  55. package/dist/plugin/perspective.plugin.js +1 -1
  56. package/dist/plugin/perspective.plugin.mjs +1 -1
  57. package/dist/react/accordion.js +1 -1
  58. package/dist/react/accordion.js.map +1 -1
  59. package/dist/react/accordion.mjs +1 -1
  60. package/dist/react/accordion.mjs.map +1 -1
  61. package/dist/react/alert-dialog.js +1 -1
  62. package/dist/react/alert-dialog.js.map +1 -1
  63. package/dist/react/alert-dialog.mjs +1 -1
  64. package/dist/react/alert-dialog.mjs.map +1 -1
  65. package/dist/react/alert.js +1 -1
  66. package/dist/react/alert.js.map +1 -1
  67. package/dist/react/alert.mjs +1 -1
  68. package/dist/react/alert.mjs.map +1 -1
  69. package/dist/react/aspect-ratio.js.map +1 -1
  70. package/dist/react/aspect-ratio.mjs.map +1 -1
  71. package/dist/react/avatar.js +1 -1
  72. package/dist/react/avatar.js.map +1 -1
  73. package/dist/react/avatar.mjs +1 -1
  74. package/dist/react/avatar.mjs.map +1 -1
  75. package/dist/react/badge.js +1 -1
  76. package/dist/react/badge.js.map +1 -1
  77. package/dist/react/badge.mjs +1 -1
  78. package/dist/react/badge.mjs.map +1 -1
  79. package/dist/react/blockquote.js.map +1 -1
  80. package/dist/react/blockquote.mjs.map +1 -1
  81. package/dist/react/box.d.mts +2 -2
  82. package/dist/react/box.d.ts +2 -2
  83. package/dist/react/box.js.map +1 -1
  84. package/dist/react/box.mjs.map +1 -1
  85. package/dist/react/breadcrumb.js +1 -1
  86. package/dist/react/breadcrumb.js.map +1 -1
  87. package/dist/react/breadcrumb.mjs +1 -1
  88. package/dist/react/breadcrumb.mjs.map +1 -1
  89. package/dist/react/button.js +1 -1
  90. package/dist/react/button.mjs +1 -1
  91. package/dist/react/calendar.js +1 -1
  92. package/dist/react/calendar.js.map +1 -1
  93. package/dist/react/calendar.mjs +1 -1
  94. package/dist/react/calendar.mjs.map +1 -1
  95. package/dist/react/card.js +1 -1
  96. package/dist/react/card.js.map +1 -1
  97. package/dist/react/card.mjs +1 -1
  98. package/dist/react/card.mjs.map +1 -1
  99. package/dist/react/carousel.d.mts +1 -1
  100. package/dist/react/carousel.d.ts +1 -1
  101. package/dist/react/carousel.js +1 -1
  102. package/dist/react/carousel.js.map +1 -1
  103. package/dist/react/carousel.mjs +1 -1
  104. package/dist/react/carousel.mjs.map +1 -1
  105. package/dist/react/checkbox-cards.js +1 -1
  106. package/dist/react/checkbox-cards.js.map +1 -1
  107. package/dist/react/checkbox-cards.mjs +1 -1
  108. package/dist/react/checkbox-cards.mjs.map +1 -1
  109. package/dist/react/checkbox-group.js +1 -1
  110. package/dist/react/checkbox-group.js.map +1 -1
  111. package/dist/react/checkbox-group.mjs +1 -1
  112. package/dist/react/checkbox-group.mjs.map +1 -1
  113. package/dist/react/checkbox-group.primitive.d.mts +8 -8
  114. package/dist/react/checkbox-group.primitive.d.ts +8 -8
  115. package/dist/react/checkbox-group.primitive.js +1 -1
  116. package/dist/react/checkbox-group.primitive.mjs +1 -1
  117. package/dist/react/checkbox.js +1 -1
  118. package/dist/react/checkbox.js.map +1 -1
  119. package/dist/react/checkbox.mjs +1 -1
  120. package/dist/react/checkbox.mjs.map +1 -1
  121. package/dist/react/code.js.map +1 -1
  122. package/dist/react/code.mjs.map +1 -1
  123. package/dist/react/collapsible.js +1 -1
  124. package/dist/react/collapsible.js.map +1 -1
  125. package/dist/react/collapsible.mjs +1 -1
  126. package/dist/react/collapsible.mjs.map +1 -1
  127. package/dist/react/command.js +1 -1
  128. package/dist/react/command.js.map +1 -1
  129. package/dist/react/command.mjs +1 -1
  130. package/dist/react/command.mjs.map +1 -1
  131. package/dist/react/container.js +1 -1
  132. package/dist/react/container.js.map +1 -1
  133. package/dist/react/container.mjs +1 -1
  134. package/dist/react/container.mjs.map +1 -1
  135. package/dist/react/context-menu.js +1 -1
  136. package/dist/react/context-menu.js.map +1 -1
  137. package/dist/react/context-menu.mjs +1 -1
  138. package/dist/react/context-menu.mjs.map +1 -1
  139. package/dist/react/data-table.d.mts +1 -1
  140. package/dist/react/data-table.d.ts +1 -1
  141. package/dist/react/data-table.js +1 -1
  142. package/dist/react/data-table.js.map +1 -1
  143. package/dist/react/data-table.mjs +1 -1
  144. package/dist/react/data-table.mjs.map +1 -1
  145. package/dist/react/dialog.js +1 -1
  146. package/dist/react/dialog.mjs +1 -1
  147. package/dist/react/drawer.js +1 -1
  148. package/dist/react/drawer.js.map +1 -1
  149. package/dist/react/drawer.mjs +1 -1
  150. package/dist/react/drawer.mjs.map +1 -1
  151. package/dist/react/dropdown-menu.js +1 -1
  152. package/dist/react/dropdown-menu.mjs +1 -1
  153. package/dist/react/em.js.map +1 -1
  154. package/dist/react/em.mjs.map +1 -1
  155. package/dist/react/form.js +1 -1
  156. package/dist/react/form.js.map +1 -1
  157. package/dist/react/form.mjs +1 -1
  158. package/dist/react/form.mjs.map +1 -1
  159. package/dist/react/heading.d.mts +1 -1
  160. package/dist/react/heading.d.ts +1 -1
  161. package/dist/react/heading.js.map +1 -1
  162. package/dist/react/heading.mjs.map +1 -1
  163. package/dist/react/hover-card.js +1 -1
  164. package/dist/react/hover-card.js.map +1 -1
  165. package/dist/react/hover-card.mjs +1 -1
  166. package/dist/react/hover-card.mjs.map +1 -1
  167. package/dist/react/input-otp.js +1 -1
  168. package/dist/react/input-otp.js.map +1 -1
  169. package/dist/react/input-otp.mjs +1 -1
  170. package/dist/react/input-otp.mjs.map +1 -1
  171. package/dist/react/input.js +1 -1
  172. package/dist/react/input.js.map +1 -1
  173. package/dist/react/input.mjs +1 -1
  174. package/dist/react/input.mjs.map +1 -1
  175. package/dist/react/kbd.js +1 -1
  176. package/dist/react/kbd.js.map +1 -1
  177. package/dist/react/kbd.mjs +1 -1
  178. package/dist/react/kbd.mjs.map +1 -1
  179. package/dist/react/label.js +1 -1
  180. package/dist/react/label.mjs +1 -1
  181. package/dist/react/menubar.js +1 -1
  182. package/dist/react/menubar.js.map +1 -1
  183. package/dist/react/menubar.mjs +1 -1
  184. package/dist/react/menubar.mjs.map +1 -1
  185. package/dist/react/navigation-menu.js +1 -1
  186. package/dist/react/navigation-menu.js.map +1 -1
  187. package/dist/react/navigation-menu.mjs +1 -1
  188. package/dist/react/navigation-menu.mjs.map +1 -1
  189. package/dist/react/pagination.d.mts +1 -1
  190. package/dist/react/pagination.d.ts +1 -1
  191. package/dist/react/pagination.js +1 -1
  192. package/dist/react/pagination.js.map +1 -1
  193. package/dist/react/pagination.mjs +1 -1
  194. package/dist/react/pagination.mjs.map +1 -1
  195. package/dist/react/popover.js +1 -1
  196. package/dist/react/popover.js.map +1 -1
  197. package/dist/react/popover.mjs +1 -1
  198. package/dist/react/popover.mjs.map +1 -1
  199. package/dist/react/pre.js.map +1 -1
  200. package/dist/react/pre.mjs.map +1 -1
  201. package/dist/react/progress.js +1 -1
  202. package/dist/react/progress.js.map +1 -1
  203. package/dist/react/progress.mjs +1 -1
  204. package/dist/react/progress.mjs.map +1 -1
  205. package/dist/react/quote.js.map +1 -1
  206. package/dist/react/quote.mjs.map +1 -1
  207. package/dist/react/radio-cards.js +1 -1
  208. package/dist/react/radio-cards.js.map +1 -1
  209. package/dist/react/radio-cards.mjs +1 -1
  210. package/dist/react/radio-cards.mjs.map +1 -1
  211. package/dist/react/radio-group.js +1 -1
  212. package/dist/react/radio-group.js.map +1 -1
  213. package/dist/react/radio-group.mjs +1 -1
  214. package/dist/react/radio-group.mjs.map +1 -1
  215. package/dist/react/radio.js +1 -1
  216. package/dist/react/radio.js.map +1 -1
  217. package/dist/react/radio.mjs +1 -1
  218. package/dist/react/radio.mjs.map +1 -1
  219. package/dist/react/resizable.js +1 -1
  220. package/dist/react/resizable.js.map +1 -1
  221. package/dist/react/resizable.mjs +1 -1
  222. package/dist/react/resizable.mjs.map +1 -1
  223. package/dist/react/scroll-area.js +1 -1
  224. package/dist/react/scroll-area.js.map +1 -1
  225. package/dist/react/scroll-area.mjs +1 -1
  226. package/dist/react/scroll-area.mjs.map +1 -1
  227. package/dist/react/section.js.map +1 -1
  228. package/dist/react/section.mjs.map +1 -1
  229. package/dist/react/select.js +1 -1
  230. package/dist/react/select.mjs +1 -1
  231. package/dist/react/separator.js +1 -1
  232. package/dist/react/separator.js.map +1 -1
  233. package/dist/react/separator.mjs +1 -1
  234. package/dist/react/separator.mjs.map +1 -1
  235. package/dist/react/sheet.js +1 -1
  236. package/dist/react/sheet.js.map +1 -1
  237. package/dist/react/sheet.mjs +1 -1
  238. package/dist/react/sheet.mjs.map +1 -1
  239. package/dist/react/skeleton.js +1 -1
  240. package/dist/react/skeleton.js.map +1 -1
  241. package/dist/react/skeleton.mjs +1 -1
  242. package/dist/react/skeleton.mjs.map +1 -1
  243. package/dist/react/slider.js +1 -1
  244. package/dist/react/slider.js.map +1 -1
  245. package/dist/react/slider.mjs +1 -1
  246. package/dist/react/slider.mjs.map +1 -1
  247. package/dist/react/sonner.js.map +1 -1
  248. package/dist/react/sonner.mjs.map +1 -1
  249. package/dist/react/spinner.js +1 -1
  250. package/dist/react/spinner.mjs +1 -1
  251. package/dist/react/strong.js.map +1 -1
  252. package/dist/react/strong.mjs.map +1 -1
  253. package/dist/react/switch.js +1 -1
  254. package/dist/react/switch.js.map +1 -1
  255. package/dist/react/switch.mjs +1 -1
  256. package/dist/react/switch.mjs.map +1 -1
  257. package/dist/react/table.js +1 -1
  258. package/dist/react/table.js.map +1 -1
  259. package/dist/react/table.mjs +1 -1
  260. package/dist/react/table.mjs.map +1 -1
  261. package/dist/react/tabs.js +1 -1
  262. package/dist/react/tabs.js.map +1 -1
  263. package/dist/react/tabs.mjs +1 -1
  264. package/dist/react/tabs.mjs.map +1 -1
  265. package/dist/react/text.d.mts +2 -2
  266. package/dist/react/text.d.ts +2 -2
  267. package/dist/react/text.js.map +1 -1
  268. package/dist/react/text.mjs.map +1 -1
  269. package/dist/react/textarea.js +1 -1
  270. package/dist/react/textarea.js.map +1 -1
  271. package/dist/react/textarea.mjs +1 -1
  272. package/dist/react/textarea.mjs.map +1 -1
  273. package/dist/react/toggle-group.js +1 -1
  274. package/dist/react/toggle-group.js.map +1 -1
  275. package/dist/react/toggle-group.mjs +1 -1
  276. package/dist/react/toggle-group.mjs.map +1 -1
  277. package/dist/react/toggle.js +1 -1
  278. package/dist/react/toggle.mjs +1 -1
  279. package/dist/react/tooltip.js +1 -1
  280. package/dist/react/tooltip.js.map +1 -1
  281. package/dist/react/tooltip.mjs +1 -1
  282. package/dist/react/tooltip.mjs.map +1 -1
  283. package/dist/styles.css +1 -1
  284. package/dist/styles.css.map +1 -1
  285. package/dist/tailwind.config.js +1 -1
  286. package/dist/tailwind.config.js.map +1 -1
  287. package/dist/tailwind.config.mjs +1 -1
  288. package/dist/tailwind.config.mjs.map +1 -1
  289. package/package.json +7 -7
  290. package/plugin/animate.plugin.ts +114 -111
  291. package/plugin/base.plugin.ts +10 -7
  292. package/plugin/perspective.plugin.ts +1 -1
  293. package/src/lib/utils.ts +2 -2
  294. package/src/react/accordion.tsx +65 -41
  295. package/src/react/alert-dialog.tsx +130 -62
  296. package/src/react/alert.tsx +50 -24
  297. package/src/react/aspect-ratio.tsx +6 -4
  298. package/src/react/avatar.tsx +47 -19
  299. package/src/react/badge.tsx +15 -10
  300. package/src/react/blockquote.tsx +11 -8
  301. package/src/react/box.tsx +11 -9
  302. package/src/react/breadcrumb.tsx +62 -29
  303. package/src/react/button.tsx +47 -31
  304. package/src/react/calendar.tsx +54 -37
  305. package/src/react/card.tsx +64 -30
  306. package/src/react/carousel.tsx +101 -43
  307. package/src/react/checkbox-cards.tsx +60 -33
  308. package/src/react/checkbox-group.primitive.tsx +93 -38
  309. package/src/react/checkbox-group.tsx +57 -34
  310. package/src/react/checkbox.tsx +24 -20
  311. package/src/react/code.tsx +9 -7
  312. package/src/react/collapsible.tsx +33 -23
  313. package/src/react/command.tsx +140 -75
  314. package/src/react/container.tsx +12 -8
  315. package/src/react/context-menu.tsx +228 -150
  316. package/src/react/data-table.tsx +51 -21
  317. package/src/react/dialog.tsx +95 -50
  318. package/src/react/drawer.tsx +96 -49
  319. package/src/react/dropdown-menu.tsx +199 -131
  320. package/src/react/em.tsx +9 -7
  321. package/src/react/form.tsx +96 -61
  322. package/src/react/heading.tsx +10 -8
  323. package/src/react/hover-card.tsx +42 -26
  324. package/src/react/input-otp.tsx +48 -37
  325. package/src/react/input.tsx +25 -15
  326. package/src/react/kbd.tsx +21 -19
  327. package/src/react/label.tsx +16 -14
  328. package/src/react/menubar.tsx +214 -135
  329. package/src/react/navigation-menu.tsx +153 -111
  330. package/src/react/pagination.tsx +59 -26
  331. package/src/react/popover.tsx +44 -29
  332. package/src/react/pre.tsx +9 -7
  333. package/src/react/progress.tsx +26 -19
  334. package/src/react/quote.tsx +9 -7
  335. package/src/react/radio-cards.tsx +32 -12
  336. package/src/react/radio-group.tsx +32 -12
  337. package/src/react/radio.tsx +24 -20
  338. package/src/react/resizable.tsx +13 -8
  339. package/src/react/scroll-area.tsx +56 -34
  340. package/src/react/section.tsx +9 -7
  341. package/src/react/select.tsx +167 -114
  342. package/src/react/separator.tsx +16 -7
  343. package/src/react/sheet.tsx +84 -34
  344. package/src/react/skeleton.tsx +8 -3
  345. package/src/react/slider.tsx +31 -24
  346. package/src/react/sonner.tsx +12 -10
  347. package/src/react/spinner.tsx +14 -9
  348. package/src/react/strong.tsx +9 -7
  349. package/src/react/switch.tsx +18 -16
  350. package/src/react/table.tsx +97 -52
  351. package/src/react/tabs.tsx +48 -38
  352. package/src/react/text.tsx +13 -10
  353. package/src/react/textarea.tsx +17 -15
  354. package/src/react/toggle-group.tsx +66 -23
  355. package/src/react/toggle.tsx +26 -18
  356. package/src/react/tooltip.tsx +43 -28
  357. package/tailwind.config.ts +62 -62
  358. package/dist/chunk-466PAJCA.mjs.map +0 -1
  359. package/dist/chunk-4TJBMO2Y.mjs.map +0 -1
  360. package/dist/chunk-5WJB3UAO.js.map +0 -1
  361. package/dist/chunk-6B2PU2GG.mjs.map +0 -1
  362. package/dist/chunk-7PJR4WFR.mjs.map +0 -1
  363. package/dist/chunk-AEWLL6A2.js.map +0 -1
  364. package/dist/chunk-EVN2IB57.js.map +0 -1
  365. package/dist/chunk-EYERINEJ.js.map +0 -1
  366. package/dist/chunk-FEE6PNWV.js.map +0 -1
  367. package/dist/chunk-GRQGCS7U.mjs.map +0 -1
  368. package/dist/chunk-HLXU3SQI.mjs.map +0 -1
  369. package/dist/chunk-JIHHUXA5.js.map +0 -1
  370. package/dist/chunk-JTAXNFUM.mjs.map +0 -1
  371. package/dist/chunk-KJ77RPJ4.mjs.map +0 -1
  372. package/dist/chunk-MSHUAEXI.js.map +0 -1
  373. package/dist/chunk-N6QGG4WS.mjs.map +0 -1
  374. package/dist/chunk-PLX35IKX.mjs.map +0 -1
  375. package/dist/chunk-UDNWQQ3I.js.map +0 -1
  376. package/dist/chunk-UPZHCTQV.js.map +0 -1
  377. package/dist/chunk-WLMYX3C7.mjs.map +0 -1
  378. package/dist/chunk-YR36SVVG.mjs.map +0 -1
  379. package/dist/chunk-ZWGC5M4G.js.map +0 -1
  380. package/dist/plugin/animate.plugin.d.mts +0 -9
  381. package/dist/plugin/animate.plugin.d.ts +0 -9
  382. package/dist/plugin/base.plugin.d.mts +0 -8
  383. package/dist/plugin/base.plugin.d.ts +0 -8
  384. package/dist/plugin/perspective.plugin.d.mts +0 -8
  385. package/dist/plugin/perspective.plugin.d.ts +0 -8
  386. package/dist/tailwind.config.d.mts +0 -5
  387. package/dist/tailwind.config.d.ts +0 -5
@@ -1,9 +1,13 @@
1
- "use client";
1
+ 'use client';
2
2
 
3
- import * as React from "react";
4
- import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
5
- import { CheckIcon, ChevronRightIcon, DotFilledIcon } from "@radix-ui/react-icons";
6
- import { cn } from "../lib/utils";
3
+ import * as React from 'react';
4
+ import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
5
+ import {
6
+ CheckIcon,
7
+ ChevronRightIcon,
8
+ DotFilledIcon,
9
+ } from '@radix-ui/react-icons';
10
+ import { cn } from '../lib/utils';
7
11
 
8
12
  /* -----------------------------------------------------------------------------
9
13
  * Component: ContextMenu
@@ -16,56 +20,70 @@ const ContextMenu = ContextMenuPrimitive.Root;
16
20
  * Component: ContextMenuTrigger
17
21
  * -------------------------------------------------------------------------- */
18
22
 
19
- type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Trigger>;
23
+ type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<
24
+ typeof ContextMenuPrimitive.Trigger
25
+ >;
20
26
  const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
21
27
 
22
28
  /* -----------------------------------------------------------------------------
23
29
  * Component: ContextMenuGroup
24
30
  * -------------------------------------------------------------------------- */
25
31
 
26
- type ContextMenuGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Group>;
32
+ type ContextMenuGroupProps = React.ComponentPropsWithoutRef<
33
+ typeof ContextMenuPrimitive.Group
34
+ >;
27
35
  const ContextMenuGroup = ContextMenuPrimitive.Group;
28
36
 
29
37
  /* -----------------------------------------------------------------------------
30
38
  * Component: ContextMenuSub
31
39
  * -------------------------------------------------------------------------- */
32
40
 
33
- type ContextMenuSubProps = React.ComponentProps<typeof ContextMenuPrimitive.Sub>;
41
+ type ContextMenuSubProps = React.ComponentProps<
42
+ typeof ContextMenuPrimitive.Sub
43
+ >;
34
44
  const ContextMenuSub = ContextMenuPrimitive.Sub;
35
45
 
36
46
  /* -----------------------------------------------------------------------------
37
47
  * Component: ContextMenuRadioGroup
38
48
  * -------------------------------------------------------------------------- */
39
49
 
40
- type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioGroup>;
50
+ type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<
51
+ typeof ContextMenuPrimitive.RadioGroup
52
+ >;
41
53
  const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
42
54
 
43
55
  /* -----------------------------------------------------------------------------
44
56
  * Component: ContextMenuSubTrigger
45
57
  * -------------------------------------------------------------------------- */
46
58
 
47
- type ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;
59
+ type ContextMenuSubTriggerElement = React.ElementRef<
60
+ typeof ContextMenuPrimitive.SubTrigger
61
+ >;
48
62
 
49
- interface ContextMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> {
63
+ interface ContextMenuSubTriggerProps
64
+ extends React.ComponentPropsWithoutRef<
65
+ typeof ContextMenuPrimitive.SubTrigger
66
+ > {
50
67
  inset?: boolean;
51
68
  }
52
69
 
53
- const ContextMenuSubTrigger = React.forwardRef<ContextMenuSubTriggerElement, ContextMenuSubTriggerProps>(
54
- ({ children, className, inset, ...props }, ref) => (
55
- <ContextMenuPrimitive.SubTrigger
56
- ref={ref}
57
- className={cn(
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",
60
- className,
61
- )}
62
- {...props}
63
- >
64
- {children}
65
- <ChevronRightIcon className="ml-auto size-4" />
66
- </ContextMenuPrimitive.SubTrigger>
67
- ),
68
- );
70
+ const ContextMenuSubTrigger = React.forwardRef<
71
+ ContextMenuSubTriggerElement,
72
+ ContextMenuSubTriggerProps
73
+ >(({ children, className, inset, ...props }, ref) => (
74
+ <ContextMenuPrimitive.SubTrigger
75
+ ref={ref}
76
+ className={cn(
77
+ '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',
78
+ inset && 'pl-8',
79
+ className,
80
+ )}
81
+ {...props}
82
+ >
83
+ {children}
84
+ <ChevronRightIcon className="ml-auto size-4" />
85
+ </ContextMenuPrimitive.SubTrigger>
86
+ ));
69
87
 
70
88
  ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
71
89
 
@@ -73,23 +91,28 @@ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
73
91
  * Component: ContextMenuSubContent
74
92
  * -------------------------------------------------------------------------- */
75
93
 
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 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 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-32 rounded-md border p-1 shadow-md",
86
- className,
87
- )}
88
- {...props}
89
- />
90
- </ContextMenuPrimitive.Portal>
91
- ),
92
- );
94
+ type ContextMenuSubContentElement = React.ElementRef<
95
+ typeof ContextMenuPrimitive.SubContent
96
+ >;
97
+ type ContextMenuSubContentProps = React.ComponentPropsWithoutRef<
98
+ typeof ContextMenuPrimitive.SubContent
99
+ >;
100
+
101
+ const ContextMenuSubContent = React.forwardRef<
102
+ ContextMenuSubContentElement,
103
+ ContextMenuSubContentProps
104
+ >(({ className, ...props }, ref) => (
105
+ <ContextMenuPrimitive.Portal>
106
+ <ContextMenuPrimitive.SubContent
107
+ ref={ref}
108
+ className={cn(
109
+ 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in 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 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-32 rounded-md border p-1 shadow-md',
110
+ className,
111
+ )}
112
+ {...props}
113
+ />
114
+ </ContextMenuPrimitive.Portal>
115
+ ));
93
116
 
94
117
  ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
95
118
 
@@ -97,23 +120,28 @@ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
97
120
  * Component: ContextMenuContent
98
121
  * -------------------------------------------------------------------------- */
99
122
 
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 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-32 rounded-md border p-1 shadow-md",
110
- className,
111
- )}
112
- {...props}
113
- />
114
- </ContextMenuPrimitive.Portal>
115
- ),
116
- );
123
+ type ContextMenuContentElement = React.ElementRef<
124
+ typeof ContextMenuPrimitive.Content
125
+ >;
126
+ type ContextMenuContentProps = React.ComponentPropsWithoutRef<
127
+ typeof ContextMenuPrimitive.Content
128
+ >;
129
+
130
+ const ContextMenuContent = React.forwardRef<
131
+ ContextMenuContentElement,
132
+ ContextMenuContentProps
133
+ >(({ className, ...props }, ref) => (
134
+ <ContextMenuPrimitive.Portal>
135
+ <ContextMenuPrimitive.Content
136
+ ref={ref}
137
+ className={cn(
138
+ 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in 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-32 rounded-md border p-1 shadow-md',
139
+ className,
140
+ )}
141
+ {...props}
142
+ />
143
+ </ContextMenuPrimitive.Portal>
144
+ ));
117
145
 
118
146
  ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
119
147
 
@@ -121,25 +149,29 @@ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
121
149
  * Component: ContextMenuItem
122
150
  * -------------------------------------------------------------------------- */
123
151
 
124
- type ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;
152
+ type ContextMenuItemElement = React.ElementRef<
153
+ typeof ContextMenuPrimitive.Item
154
+ >;
125
155
 
126
- interface ContextMenuItemProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
156
+ interface ContextMenuItemProps
157
+ extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
127
158
  inset?: boolean;
128
159
  }
129
160
 
130
- const ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(
131
- ({ className, inset, ...props }, ref) => (
132
- <ContextMenuPrimitive.Item
133
- ref={ref}
134
- className={cn(
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",
137
- className,
138
- )}
139
- {...props}
140
- />
141
- ),
142
- );
161
+ const ContextMenuItem = React.forwardRef<
162
+ ContextMenuItemElement,
163
+ ContextMenuItemProps
164
+ >(({ className, inset, ...props }, ref) => (
165
+ <ContextMenuPrimitive.Item
166
+ ref={ref}
167
+ className={cn(
168
+ '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',
169
+ inset && 'pl-8',
170
+ className,
171
+ )}
172
+ {...props}
173
+ />
174
+ ));
143
175
 
144
176
  ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
145
177
 
@@ -147,58 +179,69 @@ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
147
179
  * Component: ContextMenuCheckboxItem
148
180
  * -------------------------------------------------------------------------- */
149
181
 
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
- ({ children, className, 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;
182
+ type ContextMenuCheckboxItemElement = React.ElementRef<
183
+ typeof ContextMenuPrimitive.CheckboxItem
184
+ >;
185
+ type ContextMenuCheckboxItemProps = React.ComponentPropsWithoutRef<
186
+ typeof ContextMenuPrimitive.CheckboxItem
187
+ >;
188
+
189
+ const ContextMenuCheckboxItem = React.forwardRef<
190
+ ContextMenuCheckboxItemElement,
191
+ ContextMenuCheckboxItemProps
192
+ >(({ children, className, checked, ...props }, ref) => (
193
+ <ContextMenuPrimitive.CheckboxItem
194
+ ref={ref}
195
+ className={cn(
196
+ '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',
197
+ className,
198
+ )}
199
+ checked={checked}
200
+ {...props}
201
+ >
202
+ <span className="absolute left-2 flex size-3.5 items-center justify-center">
203
+ <ContextMenuPrimitive.ItemIndicator>
204
+ <CheckIcon className="size-4" />
205
+ </ContextMenuPrimitive.ItemIndicator>
206
+ </span>
207
+ {children}
208
+ </ContextMenuPrimitive.CheckboxItem>
209
+ ));
210
+
211
+ ContextMenuCheckboxItem.displayName =
212
+ ContextMenuPrimitive.CheckboxItem.displayName;
175
213
 
176
214
  /* -----------------------------------------------------------------------------
177
215
  * Component: ContextMenuRadioItem
178
216
  * -------------------------------------------------------------------------- */
179
217
 
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
- ({ children, className, ...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
- );
218
+ type ContextMenuRadioItemElement = React.ElementRef<
219
+ typeof ContextMenuPrimitive.RadioItem
220
+ >;
221
+ type ContextMenuRadioItemProps = React.ComponentPropsWithoutRef<
222
+ typeof ContextMenuPrimitive.RadioItem
223
+ >;
224
+
225
+ const ContextMenuRadioItem = React.forwardRef<
226
+ ContextMenuRadioItemElement,
227
+ ContextMenuRadioItemProps
228
+ >(({ children, className, ...props }, ref) => (
229
+ <ContextMenuPrimitive.RadioItem
230
+ ref={ref}
231
+ className={cn(
232
+ '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',
233
+ className,
234
+ )}
235
+ {...props}
236
+ >
237
+ <span className="absolute left-2 flex size-3.5 items-center justify-center">
238
+ <ContextMenuPrimitive.ItemIndicator>
239
+ <DotFilledIcon className="size-4 fill-current" />
240
+ </ContextMenuPrimitive.ItemIndicator>
241
+ </span>
242
+ {children}
243
+ </ContextMenuPrimitive.RadioItem>
244
+ ));
202
245
 
203
246
  ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
204
247
 
@@ -206,21 +249,29 @@ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
206
249
  * Component: ContextMenuLabel
207
250
  * -------------------------------------------------------------------------- */
208
251
 
209
- type ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;
252
+ type ContextMenuLabelElement = React.ElementRef<
253
+ typeof ContextMenuPrimitive.Label
254
+ >;
210
255
 
211
- interface ContextMenuLabelProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
256
+ interface ContextMenuLabelProps
257
+ extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
212
258
  inset?: boolean;
213
259
  }
214
260
 
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
- );
261
+ const ContextMenuLabel = React.forwardRef<
262
+ ContextMenuLabelElement,
263
+ ContextMenuLabelProps
264
+ >(({ className, inset, ...props }, ref) => (
265
+ <ContextMenuPrimitive.Label
266
+ ref={ref}
267
+ className={cn(
268
+ 'text-foreground px-2 py-1.5 text-sm font-semibold',
269
+ inset && 'pl-8',
270
+ className,
271
+ )}
272
+ {...props}
273
+ />
274
+ ));
224
275
 
225
276
  ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
226
277
 
@@ -228,14 +279,23 @@ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
228
279
  * Component: ContextMenuSeparator
229
280
  * -------------------------------------------------------------------------- */
230
281
 
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
- );
282
+ type ContextMenuSeparatorElement = React.ElementRef<
283
+ typeof ContextMenuPrimitive.Separator
284
+ >;
285
+ type ContextMenuSeparatorProps = React.ComponentPropsWithoutRef<
286
+ typeof ContextMenuPrimitive.Separator
287
+ >;
288
+
289
+ const ContextMenuSeparator = React.forwardRef<
290
+ ContextMenuSeparatorElement,
291
+ ContextMenuSeparatorProps
292
+ >(({ className, ...props }, ref) => (
293
+ <ContextMenuPrimitive.Separator
294
+ ref={ref}
295
+ className={cn('bg-border -mx-1 my-1 h-px', className)}
296
+ {...props}
297
+ />
298
+ ));
239
299
 
240
300
  ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
241
301
 
@@ -245,22 +305,40 @@ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
245
305
 
246
306
  type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
247
307
 
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} />;
308
+ function ContextMenuShortcut({
309
+ className,
310
+ ...props
311
+ }: ContextMenuShortcutProps): React.JSX.Element {
312
+ return (
313
+ <span
314
+ className={cn(
315
+ 'text-muted-foreground ml-auto text-xs tracking-widest',
316
+ className,
317
+ )}
318
+ {...props}
319
+ />
320
+ );
250
321
  }
251
322
 
252
323
  /* -----------------------------------------------------------------------------
253
324
  * Component: ContextMenuArrow
254
325
  * -------------------------------------------------------------------------- */
255
326
 
256
- type ContextMenuArrowElement = React.ElementRef<typeof ContextMenuPrimitive.Arrow>;
327
+ type ContextMenuArrowElement = React.ElementRef<
328
+ typeof ContextMenuPrimitive.Arrow
329
+ >;
257
330
  type ContextMenuArrowProps = ContextMenuPrimitive.ContextMenuArrowProps;
258
331
 
259
- const ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(
260
- ({ className, ...props }, ref) => (
261
- <ContextMenuPrimitive.Arrow ref={ref} className={cn("fill-popover", className)} {...props} />
262
- ),
263
- );
332
+ const ContextMenuArrow = React.forwardRef<
333
+ ContextMenuArrowElement,
334
+ ContextMenuArrowProps
335
+ >(({ className, ...props }, ref) => (
336
+ <ContextMenuPrimitive.Arrow
337
+ ref={ref}
338
+ className={cn('fill-popover', className)}
339
+ {...props}
340
+ />
341
+ ));
264
342
 
265
343
  ContextMenuArrow.displayName = ContextMenuPrimitive.Arrow.displayName;
266
344
 
@@ -1,7 +1,7 @@
1
- "use client";
1
+ 'use client';
2
2
 
3
- import * as React from "react";
4
- import type * as ReactTable from "@tanstack/react-table";
3
+ import * as React from 'react';
4
+ import type * as ReactTable from '@tanstack/react-table';
5
5
  import {
6
6
  ArrowDownIcon,
7
7
  ArrowUpIcon,
@@ -12,8 +12,8 @@ import {
12
12
  DoubleArrowRightIcon,
13
13
  EyeNoneIcon,
14
14
  MixerHorizontalIcon,
15
- } from "@radix-ui/react-icons";
16
- import { cn } from "../lib/utils";
15
+ } from '@radix-ui/react-icons';
16
+ import { cn } from '../lib/utils';
17
17
  import {
18
18
  DropdownMenu,
19
19
  DropdownMenuCheckboxItem,
@@ -22,9 +22,15 @@ import {
22
22
  DropdownMenuLabel,
23
23
  DropdownMenuSeparator,
24
24
  DropdownMenuTrigger,
25
- } from "./dropdown-menu";
26
- import { Button } from "./button";
27
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select";
25
+ } from './dropdown-menu';
26
+ import { Button } from './button';
27
+ import {
28
+ Select,
29
+ SelectContent,
30
+ SelectItem,
31
+ SelectTrigger,
32
+ SelectValue,
33
+ } from './select';
28
34
 
29
35
  /* -----------------------------------------------------------------------------
30
36
  * Component: DataTableViewOptions
@@ -34,11 +40,17 @@ interface DataTableViewOptionsProps<TData> {
34
40
  table: ReactTable.Table<TData>;
35
41
  }
36
42
 
37
- function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {
43
+ function DataTableViewOptions<TData>({
44
+ table,
45
+ }: DataTableViewOptionsProps<TData>): React.JSX.Element {
38
46
  return (
39
47
  <DropdownMenu>
40
48
  <DropdownMenuTrigger asChild>
41
- <Button variant="outline" size="sm" className="ml-auto hidden h-8 lg:flex">
49
+ <Button
50
+ variant="outline"
51
+ size="sm"
52
+ className="ml-auto hidden h-8 lg:flex"
53
+ >
42
54
  <MixerHorizontalIcon className="mr-2 size-4" />
43
55
  View
44
56
  </Button>
@@ -48,7 +60,10 @@ function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>
48
60
  <DropdownMenuSeparator />
49
61
  {table
50
62
  .getAllColumns()
51
- .filter((column) => typeof column.accessorFn !== "undefined" && column.getCanHide())
63
+ .filter(
64
+ (column) =>
65
+ typeof column.accessorFn !== 'undefined' && column.getCanHide(),
66
+ )
52
67
  .map((column) => {
53
68
  return (
54
69
  <DropdownMenuCheckboxItem
@@ -72,7 +87,8 @@ function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>
72
87
  * Component: DataTablePagination
73
88
  * -------------------------------------------------------------------------- */
74
89
 
75
- interface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {
90
+ interface DataTablePaginationProps<TData>
91
+ extends React.HTMLAttributes<HTMLDivElement> {
76
92
  table: ReactTable.Table<TData>;
77
93
  }
78
94
 
@@ -82,9 +98,13 @@ function DataTablePagination<TData>({
82
98
  ...props
83
99
  }: DataTablePaginationProps<TData>): React.JSX.Element {
84
100
  return (
85
- <div className={cn("flex items-center justify-between px-2", className)} {...props}>
101
+ <div
102
+ className={cn('flex items-center justify-between px-2', className)}
103
+ {...props}
104
+ >
86
105
  <div className="text-muted-foreground flex-1 text-sm">
87
- {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.
106
+ {table.getFilteredSelectedRowModel().rows.length} of{' '}
107
+ {table.getFilteredRowModel().rows.length} row(s) selected.
88
108
  </div>
89
109
  <div className="flex items-center space-x-6 lg:space-x-8">
90
110
  <div className="flex items-center space-x-2">
@@ -108,7 +128,8 @@ function DataTablePagination<TData>({
108
128
  </Select>
109
129
  </div>
110
130
  <div className="flex w-28 items-center justify-center text-sm font-medium">
111
- Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}
131
+ Page {table.getState().pagination.pageIndex + 1} of{' '}
132
+ {table.getPageCount()}
112
133
  </div>
113
134
  <div className="flex items-center space-x-2">
114
135
  <Button
@@ -167,7 +188,8 @@ function DataTablePagination<TData>({
167
188
  * Component: DataTableColumnHeader
168
189
  * -------------------------------------------------------------------------- */
169
190
 
170
- interface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {
191
+ interface DataTableColumnHeaderProps<TData, TValue>
192
+ extends React.HTMLAttributes<HTMLDivElement> {
171
193
  column: ReactTable.Column<TData, TValue>;
172
194
  title: string;
173
195
  }
@@ -182,10 +204,14 @@ function DataTableColumnHeader<TData, TValue>({
182
204
  }
183
205
 
184
206
  return (
185
- <div className={cn("flex items-center space-x-2", className)}>
207
+ <div className={cn('flex items-center space-x-2', className)}>
186
208
  <DropdownMenu>
187
209
  <DropdownMenuTrigger asChild>
188
- <Button variant="ghost" size="xs" className="data-[state=open]:bg-accent -ml-3">
210
+ <Button
211
+ variant="ghost"
212
+ size="xs"
213
+ className="data-[state=open]:bg-accent -ml-3"
214
+ >
189
215
  <span>{title}</span>
190
216
  <SortIcon sorted={column.getIsSorted()} />
191
217
  </Button>
@@ -222,11 +248,15 @@ function DataTableColumnHeader<TData, TValue>({
222
248
  );
223
249
  }
224
250
 
225
- function SortIcon({ sorted }: { sorted: false | ReactTable.SortDirection }): React.JSX.Element {
251
+ function SortIcon({
252
+ sorted,
253
+ }: {
254
+ sorted: false | ReactTable.SortDirection;
255
+ }): React.JSX.Element {
226
256
  switch (sorted) {
227
- case "desc":
257
+ case 'desc':
228
258
  return <ArrowDownIcon className="ml-2 size-4" />;
229
- case "asc":
259
+ case 'asc':
230
260
  return <ArrowUpIcon className="ml-2 size-4" />;
231
261
  default:
232
262
  return <CaretSortIcon className="ml-2 size-4" />;