@customafk/lunas-ui 0.0.5 → 0.0.7

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 (657) hide show
  1. package/dist/add-new-BaABbnol.js +2 -0
  2. package/dist/add-new-BaABbnol.js.map +1 -0
  3. package/dist/add-new-DUoS_-n2.cjs +2 -0
  4. package/dist/add-new-DUoS_-n2.cjs.map +1 -0
  5. package/dist/alert-dialog-0KwdjY-6.js +2 -0
  6. package/dist/{alert-dialog.cjs.map → alert-dialog-0KwdjY-6.js.map} +1 -1
  7. package/dist/alert-dialog-D5ZqgIiC.cjs +2 -0
  8. package/dist/alert-dialog-D5ZqgIiC.cjs.map +1 -0
  9. package/dist/badge-CRXT2dH_.cjs +2 -0
  10. package/dist/badge-CRXT2dH_.cjs.map +1 -0
  11. package/dist/badge-D_qEoSL8.js +2 -0
  12. package/dist/badge-D_qEoSL8.js.map +1 -0
  13. package/dist/button-Bku3bKv9.js +2 -0
  14. package/dist/button-Bku3bKv9.js.map +1 -0
  15. package/dist/button-D_E_bNRb.d.ts +18 -0
  16. package/dist/button-Dzv_nos1.cjs +2 -0
  17. package/dist/button-Dzv_nos1.cjs.map +1 -0
  18. package/dist/button-YHI7I64h.d.cts +18 -0
  19. package/dist/{card.js → card-D8cxRC5y.js} +1 -1
  20. package/dist/card-D8cxRC5y.js.map +1 -0
  21. package/dist/{card.cjs → card-Dta5eW8u.cjs} +2 -2
  22. package/dist/card-Dta5eW8u.cjs.map +1 -0
  23. package/dist/cards/simple-card.cjs +2 -0
  24. package/dist/cards/simple-card.cjs.map +1 -0
  25. package/dist/cards/simple-card.d.cts +19 -0
  26. package/dist/cards/simple-card.d.ts +19 -0
  27. package/dist/cards/simple-card.js +2 -0
  28. package/dist/cards/simple-card.js.map +1 -0
  29. package/dist/{command-Bh1toPH-.cjs → command-CsntVmEz.cjs} +2 -2
  30. package/dist/{command-Bh1toPH-.cjs.map → command-CsntVmEz.cjs.map} +1 -1
  31. package/dist/{command-DEl_iWXo.js → command-_L9bD9a-.js} +2 -2
  32. package/dist/{command-DEl_iWXo.js.map → command-_L9bD9a-.js.map} +1 -1
  33. package/dist/data-display/country.cjs +2 -0
  34. package/dist/data-display/country.cjs.map +1 -0
  35. package/dist/data-display/country.d.cts +11 -0
  36. package/dist/data-display/country.d.ts +11 -0
  37. package/dist/data-display/country.js +2 -0
  38. package/dist/data-display/country.js.map +1 -0
  39. package/dist/data-display/data-list.cjs +2 -0
  40. package/dist/data-display/data-list.cjs.map +1 -0
  41. package/dist/data-display/data-list.d.cts +16 -0
  42. package/dist/data-display/data-list.d.ts +16 -0
  43. package/dist/data-display/data-list.js +2 -0
  44. package/dist/data-display/data-list.js.map +1 -0
  45. package/dist/data-display/date.cjs +1 -0
  46. package/dist/data-display/date.d.cts +15 -0
  47. package/dist/data-display/date.d.ts +15 -0
  48. package/dist/data-display/date.js +1 -0
  49. package/dist/data-display/empty.cjs +2 -0
  50. package/dist/data-display/empty.cjs.map +1 -0
  51. package/dist/data-display/empty.d.cts +5 -0
  52. package/dist/data-display/empty.d.ts +5 -0
  53. package/dist/data-display/empty.js +2 -0
  54. package/dist/data-display/empty.js.map +1 -0
  55. package/dist/data-display/name.cjs +2 -0
  56. package/dist/data-display/name.cjs.map +1 -0
  57. package/dist/data-display/name.d.cts +10 -0
  58. package/dist/data-display/name.d.ts +10 -0
  59. package/dist/data-display/name.js +2 -0
  60. package/dist/data-display/name.js.map +1 -0
  61. package/dist/data-display/phone-number.cjs +2 -0
  62. package/dist/data-display/phone-number.cjs.map +1 -0
  63. package/dist/data-display/phone-number.d.cts +7 -0
  64. package/dist/data-display/phone-number.d.ts +7 -0
  65. package/dist/data-display/phone-number.js +2 -0
  66. package/dist/data-display/phone-number.js.map +1 -0
  67. package/dist/data-display/role-badge.cjs +2 -0
  68. package/dist/data-display/role-badge.cjs.map +1 -0
  69. package/dist/data-display/role-badge.d.cts +11 -0
  70. package/dist/data-display/role-badge.d.ts +11 -0
  71. package/dist/data-display/role-badge.js +2 -0
  72. package/dist/data-display/role-badge.js.map +1 -0
  73. package/dist/data-display/statistic.cjs +2 -0
  74. package/dist/data-display/statistic.cjs.map +1 -0
  75. package/dist/data-display/statistic.d.cts +5 -0
  76. package/dist/data-display/statistic.d.ts +5 -0
  77. package/dist/data-display/statistic.js +2 -0
  78. package/dist/data-display/statistic.js.map +1 -0
  79. package/dist/date-BMq_DNsv.js +2 -0
  80. package/dist/date-BMq_DNsv.js.map +1 -0
  81. package/dist/date-nd8WkPlx.cjs +2 -0
  82. package/dist/date-nd8WkPlx.cjs.map +1 -0
  83. package/dist/{dialog-CgosQe5q.js → dialog-C4hf-Puw.js} +2 -2
  84. package/dist/{dialog-CgosQe5q.js.map → dialog-C4hf-Puw.js.map} +1 -1
  85. package/dist/{dialog-BylavpqI.d.ts → dialog-D3VF5qxy.d.cts} +11 -11
  86. package/dist/{dialog-Biy5wRCC.d.cts → dialog-MLCAvDJH.d.ts} +11 -11
  87. package/dist/{dialog-BRV1Ro1D.cjs → dialog-W-DmDMEE.cjs} +2 -2
  88. package/dist/{dialog-BRV1Ro1D.cjs.map → dialog-W-DmDMEE.cjs.map} +1 -1
  89. package/dist/dialogs/confirm-dialog.cjs +2 -0
  90. package/dist/dialogs/confirm-dialog.cjs.map +1 -0
  91. package/dist/dialogs/confirm-dialog.d.cts +13 -0
  92. package/dist/dialogs/confirm-dialog.d.ts +13 -0
  93. package/dist/dialogs/confirm-dialog.js +2 -0
  94. package/dist/dialogs/confirm-dialog.js.map +1 -0
  95. package/dist/dialogs/detail-dialog/index.cjs +2 -0
  96. package/dist/dialogs/detail-dialog/index.cjs.map +1 -0
  97. package/dist/dialogs/detail-dialog/index.d.cts +15 -0
  98. package/dist/dialogs/detail-dialog/index.d.ts +15 -0
  99. package/dist/dialogs/detail-dialog/index.js +2 -0
  100. package/dist/dialogs/detail-dialog/index.js.map +1 -0
  101. package/dist/dialogs/error-dialog.cjs +1 -0
  102. package/dist/dialogs/error-dialog.d.cts +13 -0
  103. package/dist/dialogs/error-dialog.d.ts +13 -0
  104. package/dist/dialogs/error-dialog.js +1 -0
  105. package/dist/dialogs/form-dialog.cjs +2 -0
  106. package/dist/dialogs/form-dialog.cjs.map +1 -0
  107. package/dist/dialogs/form-dialog.d.cts +35 -0
  108. package/dist/dialogs/form-dialog.d.ts +35 -0
  109. package/dist/dialogs/form-dialog.js +2 -0
  110. package/dist/dialogs/form-dialog.js.map +1 -0
  111. package/dist/dialogs/loading-dialog.cjs +2 -0
  112. package/dist/dialogs/loading-dialog.cjs.map +1 -0
  113. package/dist/dialogs/loading-dialog.d.cts +11 -0
  114. package/dist/dialogs/loading-dialog.d.ts +11 -0
  115. package/dist/dialogs/loading-dialog.js +2 -0
  116. package/dist/dialogs/loading-dialog.js.map +1 -0
  117. package/dist/dropdown-menu-Bv18S56o.cjs +2 -0
  118. package/dist/dropdown-menu-Bv18S56o.cjs.map +1 -0
  119. package/dist/dropdown-menu-jCQwh2rG.js +2 -0
  120. package/dist/dropdown-menu-jCQwh2rG.js.map +1 -0
  121. package/dist/error-dialog-D_4WL-Hj.js +2 -0
  122. package/dist/error-dialog-D_4WL-Hj.js.map +1 -0
  123. package/dist/error-dialog-DpQgL5Hy.cjs +2 -0
  124. package/dist/error-dialog-DpQgL5Hy.cjs.map +1 -0
  125. package/dist/flex-CNA_SId-.cjs +2 -0
  126. package/dist/flex-CNA_SId-.cjs.map +1 -0
  127. package/dist/flex-ILvQrYMJ.js +2 -0
  128. package/dist/flex-ILvQrYMJ.js.map +1 -0
  129. package/dist/form-CA4hhSV5.js +2 -0
  130. package/dist/form-CA4hhSV5.js.map +1 -0
  131. package/dist/form-CYZkgobJ.cjs +2 -0
  132. package/dist/form-CYZkgobJ.cjs.map +1 -0
  133. package/dist/form-wrapper-BYbwt1zC.cjs +2 -0
  134. package/dist/form-wrapper-BYbwt1zC.cjs.map +1 -0
  135. package/dist/form-wrapper-D-2Uz518.js +2 -0
  136. package/dist/form-wrapper-D-2Uz518.js.map +1 -0
  137. package/dist/forms/form-wrapper.cjs +1 -0
  138. package/dist/forms/form-wrapper.d.cts +24 -0
  139. package/dist/forms/form-wrapper.d.ts +24 -0
  140. package/dist/forms/form-wrapper.js +1 -0
  141. package/dist/{input-8iac_flR.d.ts → input-D0Phuz25.d.cts} +2 -2
  142. package/dist/{input-BROCl7ef.cjs → input-DXEBB91E.cjs} +1 -1
  143. package/dist/{input-BROCl7ef.cjs.map → input-DXEBB91E.cjs.map} +1 -1
  144. package/dist/{input-3pmkK3b5.js → input-FzKbxUq2.js} +1 -1
  145. package/dist/{input-3pmkK3b5.js.map → input-FzKbxUq2.js.map} +1 -1
  146. package/dist/{input-DsHkxcpM.d.cts → input-tHIKXxVS.d.ts} +2 -2
  147. package/dist/{label-BWUQswhZ.cjs → label-CunjD1rx.cjs} +2 -2
  148. package/dist/{label-BWUQswhZ.cjs.map → label-CunjD1rx.cjs.map} +1 -1
  149. package/dist/{label-Bunoo8Hy.js → label-Cxbctr6x.js} +2 -2
  150. package/dist/{label-Bunoo8Hy.js.map → label-Cxbctr6x.js.map} +1 -1
  151. package/dist/layouts/flex.cjs +1 -0
  152. package/dist/layouts/flex.d.cts +23 -0
  153. package/dist/layouts/flex.d.ts +23 -0
  154. package/dist/layouts/flex.js +1 -0
  155. package/dist/layouts/main/index.cjs +2 -0
  156. package/dist/layouts/main/index.cjs.map +1 -0
  157. package/dist/layouts/main/index.d.cts +7 -0
  158. package/dist/layouts/main/index.d.ts +7 -0
  159. package/dist/layouts/main/index.js +2 -0
  160. package/dist/layouts/main/index.js.map +1 -0
  161. package/dist/paragraph-Bey03JkA.js +2 -0
  162. package/dist/paragraph-Bey03JkA.js.map +1 -0
  163. package/dist/paragraph-ZxI8zxuf.cjs +2 -0
  164. package/dist/paragraph-ZxI8zxuf.cjs.map +1 -0
  165. package/dist/{progress-CBXP2lsp.cjs → progress-BnnOfAZN.cjs} +2 -2
  166. package/dist/{progress-CBXP2lsp.cjs.map → progress-BnnOfAZN.cjs.map} +1 -1
  167. package/dist/{progress-Djnu-m1x.js → progress-CBccqUUJ.js} +2 -2
  168. package/dist/{progress-Djnu-m1x.js.map → progress-CBccqUUJ.js.map} +1 -1
  169. package/dist/refresh-BHt_h3N_.js +2 -0
  170. package/dist/refresh-BHt_h3N_.js.map +1 -0
  171. package/dist/refresh-DrolZxuC.cjs +2 -0
  172. package/dist/refresh-DrolZxuC.cjs.map +1 -0
  173. package/dist/scroll-area-Bdb_LSFF.js +2 -0
  174. package/dist/scroll-area-Bdb_LSFF.js.map +1 -0
  175. package/dist/scroll-area-DWWpaz5j.cjs +2 -0
  176. package/dist/scroll-area-DWWpaz5j.cjs.map +1 -0
  177. package/dist/search-input-Bf4-FeWu.cjs +2 -0
  178. package/dist/search-input-Bf4-FeWu.cjs.map +1 -0
  179. package/dist/search-input-L2sq0eB0.js +2 -0
  180. package/dist/search-input-L2sq0eB0.js.map +1 -0
  181. package/dist/select-CWUsisI0.js +2 -0
  182. package/dist/select-CWUsisI0.js.map +1 -0
  183. package/dist/select-ZSyt5zCe.cjs +2 -0
  184. package/dist/select-ZSyt5zCe.cjs.map +1 -0
  185. package/dist/{separator-BPDcnSwd.d.ts → separator-2cwfp8qT.d.ts} +2 -2
  186. package/dist/{separator-BaoBlWkX.js → separator-BpsL0PlX.js} +2 -2
  187. package/dist/{separator-BaoBlWkX.js.map → separator-BpsL0PlX.js.map} +1 -1
  188. package/dist/{separator-BQnQELxf.d.cts → separator-COXs-I-Q.d.cts} +2 -2
  189. package/dist/{separator-9OOo_7TH.cjs → separator-DTB3sDNG.cjs} +2 -2
  190. package/dist/{separator-9OOo_7TH.cjs.map → separator-DTB3sDNG.cjs.map} +1 -1
  191. package/dist/{sheet-DOuBq08n.js → sheet-C8r2QGpq.js} +2 -2
  192. package/dist/{sheet-DOuBq08n.js.map → sheet-C8r2QGpq.js.map} +1 -1
  193. package/dist/{sheet-CiEiXosI.cjs → sheet-CCwbAaA6.cjs} +2 -2
  194. package/dist/{sheet-CiEiXosI.cjs.map → sheet-CCwbAaA6.cjs.map} +1 -1
  195. package/dist/sidebar-BLPMNltJ.cjs +2 -0
  196. package/dist/sidebar-BLPMNltJ.cjs.map +1 -0
  197. package/dist/sidebar-C166f_9B.js +2 -0
  198. package/dist/sidebar-C166f_9B.js.map +1 -0
  199. package/dist/{skeleton-Dk94cI3u.js → skeleton-DYmX0k94.js} +1 -1
  200. package/dist/{skeleton-Dk94cI3u.js.map → skeleton-DYmX0k94.js.map} +1 -1
  201. package/dist/{skeleton-6plHDAxf.cjs → skeleton-m3giaF4T.cjs} +1 -1
  202. package/dist/{skeleton-6plHDAxf.cjs.map → skeleton-m3giaF4T.cjs.map} +1 -1
  203. package/dist/table/index.cjs +2 -0
  204. package/dist/table/index.cjs.map +1 -0
  205. package/dist/table/index.d.cts +29 -0
  206. package/dist/table/index.d.ts +29 -0
  207. package/dist/table/index.js +2 -0
  208. package/dist/table/index.js.map +1 -0
  209. package/dist/table-BSeev7T0.cjs +2 -0
  210. package/dist/table-BSeev7T0.cjs.map +1 -0
  211. package/dist/table-BvA64mE8.js +2 -0
  212. package/dist/table-BvA64mE8.js.map +1 -0
  213. package/dist/title-DTkABsIG.js +2 -0
  214. package/dist/title-DTkABsIG.js.map +1 -0
  215. package/dist/title-xsPZpQpb.cjs +2 -0
  216. package/dist/title-xsPZpQpb.cjs.map +1 -0
  217. package/dist/toggle-BVkMTVAz.d.ts +15 -0
  218. package/dist/toggle-CW-ZnYMy.d.cts +15 -0
  219. package/dist/{toggle-Dp4zRN_S.cjs → toggle-CfL3GVe2.cjs} +2 -2
  220. package/dist/{toggle-Dp4zRN_S.cjs.map → toggle-CfL3GVe2.cjs.map} +1 -1
  221. package/dist/{toggle-BiWsAYlU.js → toggle-D_MDMruK.js} +2 -2
  222. package/dist/{toggle-BiWsAYlU.js.map → toggle-D_MDMruK.js.map} +1 -1
  223. package/dist/{tooltip-DD0V2FX5.cjs → tooltip-Beb-_EPp.cjs} +2 -2
  224. package/dist/{tooltip-DD0V2FX5.cjs.map → tooltip-Beb-_EPp.cjs.map} +1 -1
  225. package/dist/{tooltip-C1-JwUE1.d.ts → tooltip-Cjuu_Ld4.d.ts} +5 -5
  226. package/dist/{tooltip-CRUIRMCA.d.cts → tooltip-Dk4HsZVR.d.cts} +5 -5
  227. package/dist/{tooltip-CrBGwym3.js → tooltip-Dzyf5smh.js} +2 -2
  228. package/dist/{tooltip-CrBGwym3.js.map → tooltip-Dzyf5smh.js.map} +1 -1
  229. package/dist/types-B0V1F4Ml.d.cts +23 -0
  230. package/dist/types-CrbWxjnp.cjs +2 -0
  231. package/dist/types-CrbWxjnp.cjs.map +1 -0
  232. package/dist/types-DLrIc2fL.d.ts +23 -0
  233. package/dist/types-DaIHddx7.js +2 -0
  234. package/dist/types-DaIHddx7.js.map +1 -0
  235. package/dist/typography/paragraph.cjs +1 -0
  236. package/dist/typography/paragraph.d.cts +16 -0
  237. package/dist/typography/paragraph.d.ts +16 -0
  238. package/dist/typography/paragraph.js +1 -0
  239. package/dist/typography/title.cjs +1 -0
  240. package/dist/typography/title.d.cts +14 -0
  241. package/dist/typography/title.d.ts +14 -0
  242. package/dist/typography/title.js +1 -0
  243. package/dist/ui/alert-dialog.cjs +1 -0
  244. package/dist/{alert-dialog.d.cts → ui/alert-dialog.d.cts} +11 -11
  245. package/dist/{alert-dialog.d.ts → ui/alert-dialog.d.ts} +11 -11
  246. package/dist/ui/alert-dialog.js +1 -0
  247. package/dist/ui/alert.cjs +2 -0
  248. package/dist/ui/alert.cjs.map +1 -0
  249. package/dist/{alert.d.cts → ui/alert.d.cts} +4 -7
  250. package/dist/{alert.d.ts → ui/alert.d.ts} +4 -7
  251. package/dist/ui/alert.js +2 -0
  252. package/dist/ui/alert.js.map +1 -0
  253. package/dist/ui/aspect-ratio.cjs +2 -0
  254. package/dist/ui/aspect-ratio.cjs.map +1 -0
  255. package/dist/{aspect-ratio.d.cts → ui/aspect-ratio.d.cts} +1 -1
  256. package/dist/{aspect-ratio.d.ts → ui/aspect-ratio.d.ts} +1 -1
  257. package/dist/ui/aspect-ratio.js +2 -0
  258. package/dist/ui/aspect-ratio.js.map +1 -0
  259. package/dist/ui/avatar.cjs +2 -0
  260. package/dist/ui/avatar.cjs.map +1 -0
  261. package/dist/{avatar.d.cts → ui/avatar.d.cts} +3 -3
  262. package/dist/{avatar.d.ts → ui/avatar.d.ts} +3 -3
  263. package/dist/ui/avatar.js +2 -0
  264. package/dist/ui/avatar.js.map +1 -0
  265. package/dist/ui/badge.cjs +1 -0
  266. package/dist/ui/badge.d.cts +16 -0
  267. package/dist/ui/badge.d.ts +16 -0
  268. package/dist/ui/badge.js +1 -0
  269. package/dist/ui/breadcrumb.cjs +2 -0
  270. package/dist/ui/breadcrumb.cjs.map +1 -0
  271. package/dist/{breadcrumb.d.cts → ui/breadcrumb.d.cts} +7 -7
  272. package/dist/{breadcrumb.d.ts → ui/breadcrumb.d.ts} +7 -7
  273. package/dist/ui/breadcrumb.js +2 -0
  274. package/dist/ui/breadcrumb.js.map +1 -0
  275. package/dist/ui/button.cjs +1 -0
  276. package/dist/ui/button.d.cts +2 -0
  277. package/dist/ui/button.d.ts +2 -0
  278. package/dist/ui/button.js +1 -0
  279. package/dist/ui/buttons/add-new.cjs +1 -0
  280. package/dist/ui/buttons/add-new.d.cts +8 -0
  281. package/dist/ui/buttons/add-new.d.ts +8 -0
  282. package/dist/ui/buttons/add-new.js +1 -0
  283. package/dist/ui/buttons/refresh.cjs +1 -0
  284. package/dist/ui/buttons/refresh.d.cts +8 -0
  285. package/dist/ui/buttons/refresh.d.ts +8 -0
  286. package/dist/ui/buttons/refresh.js +1 -0
  287. package/dist/ui/calendar.cjs +2 -0
  288. package/dist/ui/calendar.cjs.map +1 -0
  289. package/dist/{calendar.d.cts → ui/calendar.d.cts} +3 -3
  290. package/dist/{calendar.d.ts → ui/calendar.d.ts} +3 -3
  291. package/dist/ui/calendar.js +2 -0
  292. package/dist/ui/calendar.js.map +1 -0
  293. package/dist/ui/card.cjs +1 -0
  294. package/dist/{card.d.cts → ui/card.d.cts} +7 -7
  295. package/dist/{card.d.ts → ui/card.d.ts} +7 -7
  296. package/dist/ui/card.js +1 -0
  297. package/dist/ui/carousel.cjs +2 -0
  298. package/dist/ui/carousel.cjs.map +1 -0
  299. package/dist/{carousel.d.cts → ui/carousel.d.cts} +6 -6
  300. package/dist/{carousel.d.ts → ui/carousel.d.ts} +6 -6
  301. package/dist/ui/carousel.js +2 -0
  302. package/dist/ui/carousel.js.map +1 -0
  303. package/dist/ui/collapsible.cjs +2 -0
  304. package/dist/ui/collapsible.cjs.map +1 -0
  305. package/dist/{collapsible.d.cts → ui/collapsible.d.cts} +3 -3
  306. package/dist/{collapsible.d.ts → ui/collapsible.d.ts} +3 -3
  307. package/dist/ui/collapsible.js +2 -0
  308. package/dist/ui/collapsible.js.map +1 -0
  309. package/dist/ui/command.cjs +1 -0
  310. package/dist/ui/command.d.cts +52 -0
  311. package/dist/ui/command.d.ts +52 -0
  312. package/dist/ui/command.js +1 -0
  313. package/dist/ui/context-menu.cjs +2 -0
  314. package/dist/ui/context-menu.cjs.map +1 -0
  315. package/dist/{context-menu.d.cts → ui/context-menu.d.cts} +15 -15
  316. package/dist/{context-menu.d.ts → ui/context-menu.d.ts} +15 -15
  317. package/dist/ui/context-menu.js +2 -0
  318. package/dist/ui/context-menu.js.map +1 -0
  319. package/dist/ui/dialog.cjs +1 -0
  320. package/dist/{dialog.d.cts → ui/dialog.d.cts} +1 -1
  321. package/dist/{dialog.d.ts → ui/dialog.d.ts} +1 -1
  322. package/dist/ui/dialog.js +1 -0
  323. package/dist/ui/dropdown-menu.cjs +1 -0
  324. package/dist/{dropdown-menu.d.cts → ui/dropdown-menu.d.cts} +15 -15
  325. package/dist/{dropdown-menu.d.ts → ui/dropdown-menu.d.ts} +15 -15
  326. package/dist/ui/dropdown-menu.js +1 -0
  327. package/dist/ui/file-uploader.cjs +3 -0
  328. package/dist/ui/file-uploader.cjs.map +1 -0
  329. package/dist/{file-uploader.d.cts → ui/file-uploader.d.cts} +1 -1
  330. package/dist/{file-uploader.d.ts → ui/file-uploader.d.ts} +1 -1
  331. package/dist/ui/file-uploader.js +3 -0
  332. package/dist/ui/file-uploader.js.map +1 -0
  333. package/dist/ui/form.cjs +1 -0
  334. package/dist/ui/form.d.cts +33 -0
  335. package/dist/ui/form.d.ts +33 -0
  336. package/dist/ui/form.js +1 -0
  337. package/dist/ui/hover-card.cjs +2 -0
  338. package/dist/ui/hover-card.cjs.map +1 -0
  339. package/dist/{hover-card.d.cts → ui/hover-card.d.cts} +3 -3
  340. package/dist/{hover-card.d.ts → ui/hover-card.d.ts} +3 -3
  341. package/dist/ui/hover-card.js +2 -0
  342. package/dist/ui/hover-card.js.map +1 -0
  343. package/dist/ui/input-otp.cjs +2 -0
  344. package/dist/ui/input-otp.cjs.map +1 -0
  345. package/dist/{input-otp.d.cts → ui/input-otp.d.cts} +4 -4
  346. package/dist/{input-otp.d.ts → ui/input-otp.d.ts} +4 -4
  347. package/dist/ui/input-otp.js +2 -0
  348. package/dist/ui/input-otp.js.map +1 -0
  349. package/dist/ui/input.cjs +1 -0
  350. package/dist/ui/input.d.cts +2 -0
  351. package/dist/ui/input.d.ts +2 -0
  352. package/dist/ui/input.js +1 -0
  353. package/dist/ui/inputs/search-input.cjs +1 -0
  354. package/dist/ui/inputs/search-input.d.cts +11 -0
  355. package/dist/ui/inputs/search-input.d.ts +11 -0
  356. package/dist/ui/inputs/search-input.js +1 -0
  357. package/dist/ui/label.cjs +1 -0
  358. package/dist/{label.d.cts → ui/label.d.cts} +1 -1
  359. package/dist/{label.d.ts → ui/label.d.ts} +1 -1
  360. package/dist/ui/label.js +1 -0
  361. package/dist/ui/menubar.cjs +2 -0
  362. package/dist/ui/menubar.cjs.map +1 -0
  363. package/dist/{menubar.d.cts → ui/menubar.d.cts} +16 -16
  364. package/dist/{menubar.d.ts → ui/menubar.d.ts} +16 -16
  365. package/dist/ui/menubar.js +2 -0
  366. package/dist/ui/menubar.js.map +1 -0
  367. package/dist/ui/multi-select.cjs +2 -0
  368. package/dist/ui/multi-select.cjs.map +1 -0
  369. package/dist/ui/multi-select.d.cts +21 -0
  370. package/dist/ui/multi-select.d.ts +21 -0
  371. package/dist/ui/multi-select.js +2 -0
  372. package/dist/ui/multi-select.js.map +1 -0
  373. package/dist/ui/navigation-menu.cjs +2 -0
  374. package/dist/ui/navigation-menu.cjs.map +1 -0
  375. package/dist/{navigation-menu.d.cts → ui/navigation-menu.d.cts} +9 -10
  376. package/dist/{navigation-menu.d.ts → ui/navigation-menu.d.ts} +9 -10
  377. package/dist/ui/navigation-menu.js +2 -0
  378. package/dist/ui/navigation-menu.js.map +1 -0
  379. package/dist/ui/pagination.cjs +2 -0
  380. package/dist/ui/pagination.cjs.map +1 -0
  381. package/dist/{pagination.d.cts → ui/pagination.d.cts} +8 -8
  382. package/dist/{pagination.d.ts → ui/pagination.d.ts} +8 -8
  383. package/dist/ui/pagination.js +2 -0
  384. package/dist/ui/pagination.js.map +1 -0
  385. package/dist/ui/popover.cjs +2 -0
  386. package/dist/ui/popover.cjs.map +1 -0
  387. package/dist/{popover.d.cts → ui/popover.d.cts} +4 -4
  388. package/dist/{popover.d.ts → ui/popover.d.ts} +4 -4
  389. package/dist/ui/popover.js +2 -0
  390. package/dist/ui/popover.js.map +1 -0
  391. package/dist/ui/progress.cjs +1 -0
  392. package/dist/{progress.d.cts → ui/progress.d.cts} +1 -1
  393. package/dist/{progress.d.ts → ui/progress.d.ts} +1 -1
  394. package/dist/ui/progress.js +1 -0
  395. package/dist/ui/radio-group.cjs +2 -0
  396. package/dist/ui/radio-group.cjs.map +1 -0
  397. package/dist/{radio-group.d.cts → ui/radio-group.d.cts} +2 -2
  398. package/dist/{radio-group.d.ts → ui/radio-group.d.ts} +2 -2
  399. package/dist/ui/radio-group.js +2 -0
  400. package/dist/ui/radio-group.js.map +1 -0
  401. package/dist/ui/resizable.cjs +2 -0
  402. package/dist/ui/resizable.cjs.map +1 -0
  403. package/dist/{resizable.d.cts → ui/resizable.d.cts} +3 -3
  404. package/dist/{resizable.d.ts → ui/resizable.d.ts} +3 -3
  405. package/dist/ui/resizable.js +2 -0
  406. package/dist/ui/resizable.js.map +1 -0
  407. package/dist/ui/scroll-area.cjs +1 -0
  408. package/dist/{scroll-area.d.cts → ui/scroll-area.d.cts} +2 -2
  409. package/dist/{scroll-area.d.ts → ui/scroll-area.d.ts} +2 -2
  410. package/dist/ui/scroll-area.js +1 -0
  411. package/dist/ui/select.cjs +1 -0
  412. package/dist/{select.d.cts → ui/select.d.cts} +10 -10
  413. package/dist/{select.d.ts → ui/select.d.ts} +10 -10
  414. package/dist/ui/select.js +1 -0
  415. package/dist/ui/separator.cjs +1 -0
  416. package/dist/ui/separator.d.cts +2 -0
  417. package/dist/ui/separator.d.ts +2 -0
  418. package/dist/ui/separator.js +1 -0
  419. package/dist/ui/sheet.cjs +1 -0
  420. package/dist/{sheet.d.cts → ui/sheet.d.cts} +8 -8
  421. package/dist/{sheet.d.ts → ui/sheet.d.ts} +8 -8
  422. package/dist/ui/sheet.js +1 -0
  423. package/dist/ui/sidebar.cjs +1 -0
  424. package/dist/{sidebar.d.cts → ui/sidebar.d.cts} +29 -42
  425. package/dist/{sidebar.d.ts → ui/sidebar.d.ts} +29 -42
  426. package/dist/ui/sidebar.js +1 -0
  427. package/dist/ui/skeleton.cjs +1 -0
  428. package/dist/{skeleton.d.cts → ui/skeleton.d.cts} +1 -1
  429. package/dist/{skeleton.d.ts → ui/skeleton.d.ts} +1 -1
  430. package/dist/ui/skeleton.js +1 -0
  431. package/dist/ui/slider.cjs +2 -0
  432. package/dist/ui/slider.cjs.map +1 -0
  433. package/dist/{slider.d.cts → ui/slider.d.cts} +1 -1
  434. package/dist/{slider.d.ts → ui/slider.d.ts} +1 -1
  435. package/dist/ui/slider.js +2 -0
  436. package/dist/ui/slider.js.map +1 -0
  437. package/dist/ui/sonner.cjs +2 -0
  438. package/dist/ui/sonner.cjs.map +1 -0
  439. package/dist/ui/sonner.d.cts +5 -0
  440. package/dist/ui/sonner.d.ts +5 -0
  441. package/dist/ui/sonner.js.map +1 -0
  442. package/dist/ui/switch.cjs +2 -0
  443. package/dist/ui/switch.cjs.map +1 -0
  444. package/dist/{switch.d.cts → ui/switch.d.cts} +1 -1
  445. package/dist/{switch.d.ts → ui/switch.d.ts} +1 -1
  446. package/dist/ui/switch.js +2 -0
  447. package/dist/ui/switch.js.map +1 -0
  448. package/dist/ui/table.cjs +1 -0
  449. package/dist/{table.d.cts → ui/table.d.cts} +8 -8
  450. package/dist/{table.d.ts → ui/table.d.ts} +8 -8
  451. package/dist/ui/table.js +1 -0
  452. package/dist/ui/tabs.cjs +2 -0
  453. package/dist/ui/tabs.cjs.map +1 -0
  454. package/dist/{tabs.d.cts → ui/tabs.d.cts} +4 -4
  455. package/dist/{tabs.d.ts → ui/tabs.d.ts} +4 -4
  456. package/dist/ui/tabs.js +2 -0
  457. package/dist/ui/tabs.js.map +1 -0
  458. package/dist/ui/textarea.cjs +2 -0
  459. package/dist/ui/textarea.cjs.map +1 -0
  460. package/dist/{textarea.d.cts → ui/textarea.d.cts} +1 -1
  461. package/dist/{textarea.d.ts → ui/textarea.d.ts} +1 -1
  462. package/dist/ui/textarea.js +2 -0
  463. package/dist/ui/textarea.js.map +1 -0
  464. package/dist/ui/toggle-group.cjs +2 -0
  465. package/dist/ui/toggle-group.cjs.map +1 -0
  466. package/dist/{toggle-group.d.cts → ui/toggle-group.d.cts} +4 -4
  467. package/dist/{toggle-group.d.ts → ui/toggle-group.d.ts} +4 -4
  468. package/dist/ui/toggle-group.js +2 -0
  469. package/dist/ui/toggle-group.js.map +1 -0
  470. package/dist/ui/toggle.cjs +1 -0
  471. package/dist/ui/toggle.d.cts +2 -0
  472. package/dist/ui/toggle.d.ts +2 -0
  473. package/dist/ui/toggle.js +1 -0
  474. package/dist/ui/tooltip.cjs +1 -0
  475. package/dist/{tooltip.d.cts → ui/tooltip.d.cts} +1 -1
  476. package/dist/{tooltip.d.ts → ui/tooltip.d.ts} +1 -1
  477. package/dist/ui/tooltip.js +1 -0
  478. package/package.json +228 -133
  479. package/dist/alert-dialog.cjs +0 -2
  480. package/dist/alert-dialog.js +0 -2
  481. package/dist/alert-dialog.js.map +0 -1
  482. package/dist/alert.cjs +0 -2
  483. package/dist/alert.cjs.map +0 -1
  484. package/dist/alert.js +0 -2
  485. package/dist/alert.js.map +0 -1
  486. package/dist/aspect-ratio.cjs +0 -2
  487. package/dist/aspect-ratio.cjs.map +0 -1
  488. package/dist/aspect-ratio.js +0 -2
  489. package/dist/aspect-ratio.js.map +0 -1
  490. package/dist/avatar.cjs +0 -2
  491. package/dist/avatar.cjs.map +0 -1
  492. package/dist/avatar.js +0 -2
  493. package/dist/avatar.js.map +0 -1
  494. package/dist/badge.cjs +0 -2
  495. package/dist/badge.cjs.map +0 -1
  496. package/dist/badge.d.cts +0 -21
  497. package/dist/badge.d.ts +0 -21
  498. package/dist/badge.js +0 -2
  499. package/dist/badge.js.map +0 -1
  500. package/dist/breadcrumb.cjs +0 -2
  501. package/dist/breadcrumb.cjs.map +0 -1
  502. package/dist/breadcrumb.js +0 -2
  503. package/dist/breadcrumb.js.map +0 -1
  504. package/dist/button-B7eGk6JD.d.cts +0 -21
  505. package/dist/button-C1iCV8GH.js +0 -2
  506. package/dist/button-C1iCV8GH.js.map +0 -1
  507. package/dist/button-CXoxOggw.cjs +0 -2
  508. package/dist/button-CXoxOggw.cjs.map +0 -1
  509. package/dist/button-DrAGGMHl.d.ts +0 -21
  510. package/dist/button.cjs +0 -1
  511. package/dist/button.d.cts +0 -2
  512. package/dist/button.d.ts +0 -2
  513. package/dist/button.js +0 -1
  514. package/dist/calendar.cjs +0 -2
  515. package/dist/calendar.cjs.map +0 -1
  516. package/dist/calendar.js +0 -2
  517. package/dist/calendar.js.map +0 -1
  518. package/dist/card.cjs.map +0 -1
  519. package/dist/card.js.map +0 -1
  520. package/dist/carousel.cjs +0 -2
  521. package/dist/carousel.cjs.map +0 -1
  522. package/dist/carousel.js +0 -2
  523. package/dist/carousel.js.map +0 -1
  524. package/dist/collapsible.cjs +0 -2
  525. package/dist/collapsible.cjs.map +0 -1
  526. package/dist/collapsible.js +0 -2
  527. package/dist/collapsible.js.map +0 -1
  528. package/dist/command-BgkG6sKW.d.ts +0 -52
  529. package/dist/command-C3VVCkM3.d.cts +0 -52
  530. package/dist/command.cjs +0 -1
  531. package/dist/command.d.cts +0 -3
  532. package/dist/command.d.ts +0 -3
  533. package/dist/command.js +0 -1
  534. package/dist/context-menu.cjs +0 -2
  535. package/dist/context-menu.cjs.map +0 -1
  536. package/dist/context-menu.js +0 -2
  537. package/dist/context-menu.js.map +0 -1
  538. package/dist/dialog.cjs +0 -1
  539. package/dist/dialog.js +0 -1
  540. package/dist/dropdown-menu.cjs +0 -2
  541. package/dist/dropdown-menu.cjs.map +0 -1
  542. package/dist/dropdown-menu.js +0 -2
  543. package/dist/dropdown-menu.js.map +0 -1
  544. package/dist/file-uploader.cjs +0 -3
  545. package/dist/file-uploader.cjs.map +0 -1
  546. package/dist/file-uploader.js +0 -3
  547. package/dist/file-uploader.js.map +0 -1
  548. package/dist/form.cjs +0 -2
  549. package/dist/form.cjs.map +0 -1
  550. package/dist/form.d.cts +0 -47
  551. package/dist/form.d.ts +0 -47
  552. package/dist/form.js +0 -2
  553. package/dist/form.js.map +0 -1
  554. package/dist/hover-card.cjs +0 -2
  555. package/dist/hover-card.cjs.map +0 -1
  556. package/dist/hover-card.js +0 -2
  557. package/dist/hover-card.js.map +0 -1
  558. package/dist/input-otp.cjs +0 -2
  559. package/dist/input-otp.cjs.map +0 -1
  560. package/dist/input-otp.js +0 -2
  561. package/dist/input-otp.js.map +0 -1
  562. package/dist/input.cjs +0 -1
  563. package/dist/input.d.cts +0 -2
  564. package/dist/input.d.ts +0 -2
  565. package/dist/input.js +0 -1
  566. package/dist/label.cjs +0 -1
  567. package/dist/label.js +0 -1
  568. package/dist/menubar.cjs +0 -2
  569. package/dist/menubar.cjs.map +0 -1
  570. package/dist/menubar.js +0 -2
  571. package/dist/menubar.js.map +0 -1
  572. package/dist/multi-select.cjs +0 -2
  573. package/dist/multi-select.cjs.map +0 -1
  574. package/dist/multi-select.d.cts +0 -81
  575. package/dist/multi-select.d.ts +0 -81
  576. package/dist/multi-select.js +0 -2
  577. package/dist/multi-select.js.map +0 -1
  578. package/dist/navigation-menu.cjs +0 -2
  579. package/dist/navigation-menu.cjs.map +0 -1
  580. package/dist/navigation-menu.js +0 -2
  581. package/dist/navigation-menu.js.map +0 -1
  582. package/dist/pagination.cjs +0 -2
  583. package/dist/pagination.cjs.map +0 -1
  584. package/dist/pagination.js +0 -2
  585. package/dist/pagination.js.map +0 -1
  586. package/dist/popover.cjs +0 -2
  587. package/dist/popover.cjs.map +0 -1
  588. package/dist/popover.js +0 -2
  589. package/dist/popover.js.map +0 -1
  590. package/dist/progress.cjs +0 -1
  591. package/dist/progress.js +0 -1
  592. package/dist/radio-group.cjs +0 -2
  593. package/dist/radio-group.cjs.map +0 -1
  594. package/dist/radio-group.js +0 -2
  595. package/dist/radio-group.js.map +0 -1
  596. package/dist/resizable.cjs +0 -2
  597. package/dist/resizable.cjs.map +0 -1
  598. package/dist/resizable.js +0 -2
  599. package/dist/resizable.js.map +0 -1
  600. package/dist/scroll-area.cjs +0 -2
  601. package/dist/scroll-area.cjs.map +0 -1
  602. package/dist/scroll-area.js +0 -2
  603. package/dist/scroll-area.js.map +0 -1
  604. package/dist/select.cjs +0 -2
  605. package/dist/select.cjs.map +0 -1
  606. package/dist/select.js +0 -2
  607. package/dist/select.js.map +0 -1
  608. package/dist/separator.cjs +0 -1
  609. package/dist/separator.d.cts +0 -2
  610. package/dist/separator.d.ts +0 -2
  611. package/dist/separator.js +0 -1
  612. package/dist/sheet.cjs +0 -1
  613. package/dist/sheet.js +0 -1
  614. package/dist/sidebar.cjs +0 -2
  615. package/dist/sidebar.cjs.map +0 -1
  616. package/dist/sidebar.js +0 -2
  617. package/dist/sidebar.js.map +0 -1
  618. package/dist/skeleton.cjs +0 -1
  619. package/dist/skeleton.js +0 -1
  620. package/dist/slider.cjs +0 -2
  621. package/dist/slider.cjs.map +0 -1
  622. package/dist/slider.js +0 -2
  623. package/dist/slider.js.map +0 -1
  624. package/dist/sonner.cjs +0 -2
  625. package/dist/sonner.cjs.map +0 -1
  626. package/dist/sonner.d.cts +0 -7
  627. package/dist/sonner.d.ts +0 -7
  628. package/dist/sonner.js.map +0 -1
  629. package/dist/switch.cjs +0 -2
  630. package/dist/switch.cjs.map +0 -1
  631. package/dist/switch.js +0 -2
  632. package/dist/switch.js.map +0 -1
  633. package/dist/table.cjs +0 -2
  634. package/dist/table.cjs.map +0 -1
  635. package/dist/table.js +0 -2
  636. package/dist/table.js.map +0 -1
  637. package/dist/tabs.cjs +0 -2
  638. package/dist/tabs.cjs.map +0 -1
  639. package/dist/tabs.js +0 -2
  640. package/dist/tabs.js.map +0 -1
  641. package/dist/textarea.cjs +0 -2
  642. package/dist/textarea.cjs.map +0 -1
  643. package/dist/textarea.js +0 -2
  644. package/dist/textarea.js.map +0 -1
  645. package/dist/toggle-BI0k1RKv.d.ts +0 -19
  646. package/dist/toggle-D7fc-kHq.d.cts +0 -19
  647. package/dist/toggle-group.cjs +0 -2
  648. package/dist/toggle-group.cjs.map +0 -1
  649. package/dist/toggle-group.js +0 -2
  650. package/dist/toggle-group.js.map +0 -1
  651. package/dist/toggle.cjs +0 -1
  652. package/dist/toggle.d.cts +0 -2
  653. package/dist/toggle.d.ts +0 -2
  654. package/dist/toggle.js +0 -1
  655. package/dist/tooltip.cjs +0 -1
  656. package/dist/tooltip.js +0 -1
  657. /package/dist/{sonner.js → ui/sonner.js} +0 -0
@@ -4,22 +4,22 @@ import { ContextMenu as ContextMenu$1 } from "radix-ui";
4
4
  //#region packages/components/ui/context-menu.d.ts
5
5
  declare function ContextMenu({
6
6
  ...props
7
- }: React.ComponentProps<typeof ContextMenu$1.Root>): React.JSX.Element;
7
+ }: React.ComponentProps<typeof ContextMenu$1.Root>): any;
8
8
  declare function ContextMenuTrigger({
9
9
  ...props
10
- }: React.ComponentProps<typeof ContextMenu$1.Trigger>): React.JSX.Element;
10
+ }: React.ComponentProps<typeof ContextMenu$1.Trigger>): any;
11
11
  declare function ContextMenuGroup({
12
12
  ...props
13
- }: React.ComponentProps<typeof ContextMenu$1.Group>): React.JSX.Element;
13
+ }: React.ComponentProps<typeof ContextMenu$1.Group>): any;
14
14
  declare function ContextMenuPortal({
15
15
  ...props
16
- }: React.ComponentProps<typeof ContextMenu$1.Portal>): React.JSX.Element;
16
+ }: React.ComponentProps<typeof ContextMenu$1.Portal>): any;
17
17
  declare function ContextMenuSub({
18
18
  ...props
19
- }: React.ComponentProps<typeof ContextMenu$1.Sub>): React.JSX.Element;
19
+ }: React.ComponentProps<typeof ContextMenu$1.Sub>): any;
20
20
  declare function ContextMenuRadioGroup({
21
21
  ...props
22
- }: React.ComponentProps<typeof ContextMenu$1.RadioGroup>): React.JSX.Element;
22
+ }: React.ComponentProps<typeof ContextMenu$1.RadioGroup>): any;
23
23
  declare function ContextMenuSubTrigger({
24
24
  className,
25
25
  inset,
@@ -27,15 +27,15 @@ declare function ContextMenuSubTrigger({
27
27
  ...props
28
28
  }: React.ComponentProps<typeof ContextMenu$1.SubTrigger> & {
29
29
  inset?: boolean;
30
- }): React.JSX.Element;
30
+ }): any;
31
31
  declare function ContextMenuSubContent({
32
32
  className,
33
33
  ...props
34
- }: React.ComponentProps<typeof ContextMenu$1.SubContent>): React.JSX.Element;
34
+ }: React.ComponentProps<typeof ContextMenu$1.SubContent>): any;
35
35
  declare function ContextMenuContent({
36
36
  className,
37
37
  ...props
38
- }: React.ComponentProps<typeof ContextMenu$1.Content>): React.JSX.Element;
38
+ }: React.ComponentProps<typeof ContextMenu$1.Content>): any;
39
39
  declare function ContextMenuItem({
40
40
  className,
41
41
  inset,
@@ -44,33 +44,33 @@ declare function ContextMenuItem({
44
44
  }: React.ComponentProps<typeof ContextMenu$1.Item> & {
45
45
  inset?: boolean;
46
46
  variant?: "default" | "destructive";
47
- }): React.JSX.Element;
47
+ }): any;
48
48
  declare function ContextMenuCheckboxItem({
49
49
  className,
50
50
  children,
51
51
  checked,
52
52
  ...props
53
- }: React.ComponentProps<typeof ContextMenu$1.CheckboxItem>): React.JSX.Element;
53
+ }: React.ComponentProps<typeof ContextMenu$1.CheckboxItem>): any;
54
54
  declare function ContextMenuRadioItem({
55
55
  className,
56
56
  children,
57
57
  ...props
58
- }: React.ComponentProps<typeof ContextMenu$1.RadioItem>): React.JSX.Element;
58
+ }: React.ComponentProps<typeof ContextMenu$1.RadioItem>): any;
59
59
  declare function ContextMenuLabel({
60
60
  className,
61
61
  inset,
62
62
  ...props
63
63
  }: React.ComponentProps<typeof ContextMenu$1.Label> & {
64
64
  inset?: boolean;
65
- }): React.JSX.Element;
65
+ }): any;
66
66
  declare function ContextMenuSeparator({
67
67
  className,
68
68
  ...props
69
- }: React.ComponentProps<typeof ContextMenu$1.Separator>): React.JSX.Element;
69
+ }: React.ComponentProps<typeof ContextMenu$1.Separator>): any;
70
70
  declare function ContextMenuShortcut({
71
71
  className,
72
72
  ...props
73
- }: React.ComponentProps<"span">): React.JSX.Element;
73
+ }: React.ComponentProps<"span">): any;
74
74
  //#endregion
75
75
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
76
76
  //# sourceMappingURL=context-menu.d.cts.map
@@ -4,22 +4,22 @@ import { ContextMenu as ContextMenu$1 } from "radix-ui";
4
4
  //#region packages/components/ui/context-menu.d.ts
5
5
  declare function ContextMenu({
6
6
  ...props
7
- }: React.ComponentProps<typeof ContextMenu$1.Root>): React.JSX.Element;
7
+ }: React.ComponentProps<typeof ContextMenu$1.Root>): any;
8
8
  declare function ContextMenuTrigger({
9
9
  ...props
10
- }: React.ComponentProps<typeof ContextMenu$1.Trigger>): React.JSX.Element;
10
+ }: React.ComponentProps<typeof ContextMenu$1.Trigger>): any;
11
11
  declare function ContextMenuGroup({
12
12
  ...props
13
- }: React.ComponentProps<typeof ContextMenu$1.Group>): React.JSX.Element;
13
+ }: React.ComponentProps<typeof ContextMenu$1.Group>): any;
14
14
  declare function ContextMenuPortal({
15
15
  ...props
16
- }: React.ComponentProps<typeof ContextMenu$1.Portal>): React.JSX.Element;
16
+ }: React.ComponentProps<typeof ContextMenu$1.Portal>): any;
17
17
  declare function ContextMenuSub({
18
18
  ...props
19
- }: React.ComponentProps<typeof ContextMenu$1.Sub>): React.JSX.Element;
19
+ }: React.ComponentProps<typeof ContextMenu$1.Sub>): any;
20
20
  declare function ContextMenuRadioGroup({
21
21
  ...props
22
- }: React.ComponentProps<typeof ContextMenu$1.RadioGroup>): React.JSX.Element;
22
+ }: React.ComponentProps<typeof ContextMenu$1.RadioGroup>): any;
23
23
  declare function ContextMenuSubTrigger({
24
24
  className,
25
25
  inset,
@@ -27,15 +27,15 @@ declare function ContextMenuSubTrigger({
27
27
  ...props
28
28
  }: React.ComponentProps<typeof ContextMenu$1.SubTrigger> & {
29
29
  inset?: boolean;
30
- }): React.JSX.Element;
30
+ }): any;
31
31
  declare function ContextMenuSubContent({
32
32
  className,
33
33
  ...props
34
- }: React.ComponentProps<typeof ContextMenu$1.SubContent>): React.JSX.Element;
34
+ }: React.ComponentProps<typeof ContextMenu$1.SubContent>): any;
35
35
  declare function ContextMenuContent({
36
36
  className,
37
37
  ...props
38
- }: React.ComponentProps<typeof ContextMenu$1.Content>): React.JSX.Element;
38
+ }: React.ComponentProps<typeof ContextMenu$1.Content>): any;
39
39
  declare function ContextMenuItem({
40
40
  className,
41
41
  inset,
@@ -44,33 +44,33 @@ declare function ContextMenuItem({
44
44
  }: React.ComponentProps<typeof ContextMenu$1.Item> & {
45
45
  inset?: boolean;
46
46
  variant?: "default" | "destructive";
47
- }): React.JSX.Element;
47
+ }): any;
48
48
  declare function ContextMenuCheckboxItem({
49
49
  className,
50
50
  children,
51
51
  checked,
52
52
  ...props
53
- }: React.ComponentProps<typeof ContextMenu$1.CheckboxItem>): React.JSX.Element;
53
+ }: React.ComponentProps<typeof ContextMenu$1.CheckboxItem>): any;
54
54
  declare function ContextMenuRadioItem({
55
55
  className,
56
56
  children,
57
57
  ...props
58
- }: React.ComponentProps<typeof ContextMenu$1.RadioItem>): React.JSX.Element;
58
+ }: React.ComponentProps<typeof ContextMenu$1.RadioItem>): any;
59
59
  declare function ContextMenuLabel({
60
60
  className,
61
61
  inset,
62
62
  ...props
63
63
  }: React.ComponentProps<typeof ContextMenu$1.Label> & {
64
64
  inset?: boolean;
65
- }): React.JSX.Element;
65
+ }): any;
66
66
  declare function ContextMenuSeparator({
67
67
  className,
68
68
  ...props
69
- }: React.ComponentProps<typeof ContextMenu$1.Separator>): React.JSX.Element;
69
+ }: React.ComponentProps<typeof ContextMenu$1.Separator>): any;
70
70
  declare function ContextMenuShortcut({
71
71
  className,
72
72
  ...props
73
- }: React.ComponentProps<"span">): React.JSX.Element;
73
+ }: React.ComponentProps<"span">): any;
74
74
  //#endregion
75
75
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
76
76
  //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1,2 @@
1
+ "use client";import{cn as e}from"../utils-D9AH0PUV.js";import t from"react";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{CheckIcon as i,ChevronRightIcon as a,CircleIcon as o}from"lucide-react";import{ContextMenu as s}from"radix-ui";function c({...e}){return n(s.Root,{"data-slot":`context-menu`,...e})}function l({...e}){return n(s.Trigger,{"data-slot":`context-menu-trigger`,...e})}function u({...e}){return n(s.Group,{"data-slot":`context-menu-group`,...e})}function d({...e}){return n(s.Portal,{"data-slot":`context-menu-portal`,...e})}function f({...e}){return n(s.Sub,{"data-slot":`context-menu-sub`,...e})}function p({...e}){return n(s.RadioGroup,{"data-slot":`context-menu-radio-group`,...e})}function m({className:t,inset:i,children:o,...c}){return r(s.SubTrigger,{"data-slot":`context-menu-sub-trigger`,"data-inset":i,className:e(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...c,children:[o,n(a,{className:`ml-auto`})]})}function h({className:t,...r}){return n(s.SubContent,{"data-slot":`context-menu-sub-content`,className:e(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,t),...r})}function g({className:t,...r}){return n(s.Portal,{children:n(s.Content,{"data-slot":`context-menu-content`,className:e(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md`,t),...r})})}function _({className:t,inset:r,variant:i=`default`,...a}){return n(s.Item,{"data-slot":`context-menu-item`,"data-inset":r,"data-variant":i,className:e(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),...a})}function v({className:t,children:a,checked:o,...c}){return r(s.CheckboxItem,{"data-slot":`context-menu-checkbox-item`,className:e(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t),checked:o,...c,children:[n(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:n(s.ItemIndicator,{children:n(i,{className:`size-4`})})}),a]})}function y({className:t,children:i,...a}){return r(s.RadioItem,{"data-slot":`context-menu-radio-item`,className:e(`relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none`,`focus:bg-accent`,`focus:text-accent-foreground`,`data-[disabled]:pointer-events-none`,`data-[disabled]:opacity-50`,`[&_svg]:pointer-events-none`,`[&_svg]:shrink-0`,`[&_svg:not([class*='size-'])]:size-4`,t),...a,children:[n(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:n(s.ItemIndicator,{children:n(o,{className:`size-2 fill-current`})})}),i]})}function b({className:t,inset:r,...i}){return n(s.Label,{"data-slot":`context-menu-label`,"data-inset":r,className:e(`text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,t),...i})}function x({className:t,...r}){return n(s.Separator,{"data-slot":`context-menu-separator`,className:e(`bg-border -mx-1 my-1 h-px`,t),...r})}function S({className:t,...r}){return n(`span`,{"data-slot":`context-menu-shortcut`,className:e(`text-muted-foreground ml-auto text-xs tracking-widest`,t),...r})}export{c as ContextMenu,v as ContextMenuCheckboxItem,g as ContextMenuContent,u as ContextMenuGroup,_ as ContextMenuItem,b as ContextMenuLabel,d as ContextMenuPortal,p as ContextMenuRadioGroup,y as ContextMenuRadioItem,x as ContextMenuSeparator,S as ContextMenuShortcut,f as ContextMenuSub,h as ContextMenuSubContent,m as ContextMenuSubTrigger,l as ContextMenuTrigger};
2
+ //# sourceMappingURL=context-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.js","names":["ContextMenuPrimitive"],"sources":["../../packages/components/ui/context-menu.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { ContextMenu as ContextMenuPrimitive } from \"radix-ui\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction ContextMenu({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />;\n}\n\nfunction ContextMenuTrigger({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {\n return (\n <ContextMenuPrimitive.Trigger data-slot=\"context-menu-trigger\" {...props} />\n );\n}\n\nfunction ContextMenuGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n );\n}\n\nfunction ContextMenuPortal({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n );\n}\n\nfunction ContextMenuSub({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {\n return <ContextMenuPrimitive.Sub data-slot=\"context-menu-sub\" {...props} />;\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n );\n}\n\nfunction ContextMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n data-slot=\"context-menu-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n data-slot=\"context-menu-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n );\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none\",\n \"focus:bg-accent\",\n \"focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none\",\n \"data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none\",\n \"[&_svg]:shrink-0\",\n \"[&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n );\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.Label\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"text-foreground px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuGroup,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuPortal,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n};\n"],"mappings":"oPAOA,SAAS,EAAY,CACnB,GAAG,EACoD,CAAE,CACzD,OAAO,EAACA,EAAqB,KAAA,CAAK,YAAU,eAAe,GAAI,GAChE,CAED,SAAS,EAAmB,CAC1B,GAAG,EACuD,CAAE,CAC5D,OACE,EAACA,EAAqB,QAAA,CAAQ,YAAU,uBAAuB,GAAI,GAEtE,CAED,SAAS,EAAiB,CACxB,GAAG,EACqD,CAAE,CAC1D,OACE,EAACA,EAAqB,MAAA,CAAM,YAAU,qBAAqB,GAAI,GAElE,CAED,SAAS,EAAkB,CACzB,GAAG,EACsD,CAAE,CAC3D,OACE,EAACA,EAAqB,OAAA,CAAO,YAAU,sBAAsB,GAAI,GAEpE,CAED,SAAS,EAAe,CACtB,GAAG,EACmD,CAAE,CACxD,OAAO,EAACA,EAAqB,IAAA,CAAI,YAAU,mBAAmB,GAAI,GACnE,CAED,SAAS,EAAsB,CAC7B,GAAG,EAC0D,CAAE,CAC/D,OACE,EAACA,EAAqB,WAAA,CACpB,YAAU,2BACV,GAAI,GAGT,CAED,SAAS,EAAsB,CAC7B,YACA,QACA,WACA,GAAG,EAGJ,CAAE,CACD,OACE,EAACA,EAAqB,WAAA,CACpB,YAAU,2BACV,aAAY,EACZ,UAAW,EACT,mTACA,GAEF,GAAI,YAEH,EACD,EAAC,EAAA,CAAiB,UAAU,UAAA,EAAA,EAGjC,CAED,SAAS,EAAsB,CAC7B,YACA,GAAG,EAC0D,CAAE,CAC/D,OACE,EAACA,EAAqB,WAAA,CACpB,YAAU,2BACV,UAAW,EACT,+eACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAmB,CAC1B,YACA,GAAG,EACuD,CAAE,CAC5D,OACE,EAACA,EAAqB,OAAA,CAAA,SACpB,EAACA,EAAqB,QAAA,CACpB,YAAU,uBACV,UAAW,EACT,ujBACA,GAEF,GAAI,KAIX,CAED,SAAS,EAAgB,CACvB,YACA,QACA,UAAU,UACV,GAAG,EAIJ,CAAE,CACD,OACE,EAACA,EAAqB,KAAA,CACpB,YAAU,oBACV,aAAY,EACZ,eAAc,EACd,UAAW,EACT,8mBACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAwB,CAC/B,YACA,WACA,UACA,GAAG,EAC4D,CAAE,CACjE,OACE,EAACA,EAAqB,aAAA,CACpB,YAAU,6BACV,UAAW,EACT,+SACA,GAEO,UACT,GAAI,YAEJ,EAAC,OAAA,CAAK,UAAU,yFACd,EAACA,EAAqB,cAAA,CAAA,SACpB,EAAC,EAAA,CAAU,UAAU,SAAA,EAAA,IAGxB,EAAA,EAGN,CAED,SAAS,EAAqB,CAC5B,YACA,WACA,GAAG,EACyD,CAAE,CAC9D,OACE,EAACA,EAAqB,UAAA,CACpB,YAAU,0BACV,UAAW,EACT,iHACA,kBACA,+BACA,sCACA,6BACA,8BACA,mBACA,uCACA,GAEF,GAAI,YAEJ,EAAC,OAAA,CAAK,UAAU,yFACd,EAACA,EAAqB,cAAA,CAAA,SACpB,EAAC,EAAA,CAAW,UAAU,sBAAA,EAAA,IAGzB,EAAA,EAGN,CAED,SAAS,EAAiB,CACxB,YACA,QACA,GAAG,EAGJ,CAAE,CACD,OACE,EAACA,EAAqB,MAAA,CACpB,YAAU,qBACV,aAAY,EACZ,UAAW,EACT,oEACA,GAEF,GAAI,GAGT,CAED,SAAS,EAAqB,CAC5B,YACA,GAAG,EACyD,CAAE,CAC9D,OACE,EAACA,EAAqB,UAAA,CACpB,YAAU,yBACV,UAAW,EAAG,4BAA6B,GAC3C,GAAI,GAGT,CAED,SAAS,EAAoB,CAC3B,YACA,GAAG,EAC0B,CAAE,CAC/B,OACE,EAAC,OAAA,CACC,YAAU,wBACV,UAAW,EACT,wDACA,GAEF,GAAI,GAGT"}
@@ -0,0 +1 @@
1
+ "use client";require(`../utils-BsjVK5EW.cjs`);const e=require(`../dialog-W-DmDMEE.cjs`);exports.Dialog=e.Dialog,exports.DialogClose=e.DialogClose,exports.DialogContent=e.DialogContent,exports.DialogDescription=e.DialogDescription,exports.DialogFooter=e.DialogFooter,exports.DialogHeader=e.DialogHeader,exports.DialogOverlay=e.DialogOverlay,exports.DialogPortal=e.DialogPortal,exports.DialogTitle=e.DialogTitle,exports.DialogTrigger=e.DialogTrigger;
@@ -1,2 +1,2 @@
1
- import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./dialog-Biy5wRCC.cjs";
1
+ import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "../dialog-D3VF5qxy.cjs";
2
2
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -1,2 +1,2 @@
1
- import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./dialog-BylavpqI.js";
1
+ import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "../dialog-MLCAvDJH.js";
2
2
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1 @@
1
+ "use client";import"../utils-D9AH0PUV.js";import{Dialog as e,DialogClose as t,DialogContent as n,DialogDescription as r,DialogFooter as i,DialogHeader as a,DialogOverlay as o,DialogPortal as s,DialogTitle as c,DialogTrigger as l}from"../dialog-C4hf-Puw.js";export{e as Dialog,t as DialogClose,n as DialogContent,r as DialogDescription,i as DialogFooter,a as DialogHeader,o as DialogOverlay,s as DialogPortal,c as DialogTitle,l as DialogTrigger};
@@ -0,0 +1 @@
1
+ "use client";require(`../utils-BsjVK5EW.cjs`);const e=require(`../dropdown-menu-Bv18S56o.cjs`);exports.DropdownMenu=e.DropdownMenu,exports.DropdownMenuCheckboxItem=e.DropdownMenuCheckboxItem,exports.DropdownMenuContent=e.DropdownMenuContent,exports.DropdownMenuGroup=e.DropdownMenuGroup,exports.DropdownMenuItem=e.DropdownMenuItem,exports.DropdownMenuLabel=e.DropdownMenuLabel,exports.DropdownMenuPortal=e.DropdownMenuPortal,exports.DropdownMenuRadioGroup=e.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=e.DropdownMenuRadioItem,exports.DropdownMenuSeparator=e.DropdownMenuSeparator,exports.DropdownMenuShortcut=e.DropdownMenuShortcut,exports.DropdownMenuSub=e.DropdownMenuSub,exports.DropdownMenuSubContent=e.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=e.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=e.DropdownMenuTrigger;
@@ -4,22 +4,22 @@ import { DropdownMenu as DropdownMenu$1 } from "radix-ui";
4
4
  //#region packages/components/ui/dropdown-menu.d.ts
5
5
  declare function DropdownMenu({
6
6
  ...props
7
- }: React.ComponentProps<typeof DropdownMenu$1.Root>): React.JSX.Element;
7
+ }: React.ComponentProps<typeof DropdownMenu$1.Root>): any;
8
8
  declare function DropdownMenuPortal({
9
9
  ...props
10
- }: React.ComponentProps<typeof DropdownMenu$1.Portal>): React.JSX.Element;
10
+ }: React.ComponentProps<typeof DropdownMenu$1.Portal>): any;
11
11
  declare function DropdownMenuTrigger({
12
12
  ...props
13
- }: React.ComponentProps<typeof DropdownMenu$1.Trigger>): React.JSX.Element;
13
+ }: React.ComponentProps<typeof DropdownMenu$1.Trigger>): any;
14
14
  declare function DropdownMenuContent({
15
15
  className,
16
16
  sideOffset,
17
17
  align,
18
18
  ...props
19
- }: React.ComponentProps<typeof DropdownMenu$1.Content>): React.JSX.Element;
19
+ }: React.ComponentProps<typeof DropdownMenu$1.Content>): any;
20
20
  declare function DropdownMenuGroup({
21
21
  ...props
22
- }: React.ComponentProps<typeof DropdownMenu$1.Group>): React.JSX.Element;
22
+ }: React.ComponentProps<typeof DropdownMenu$1.Group>): any;
23
23
  declare function DropdownMenuItem({
24
24
  className,
25
25
  inset,
@@ -28,39 +28,39 @@ declare function DropdownMenuItem({
28
28
  }: React.ComponentProps<typeof DropdownMenu$1.Item> & {
29
29
  inset?: boolean;
30
30
  variant?: "default" | "destructive";
31
- }): React.JSX.Element;
31
+ }): any;
32
32
  declare function DropdownMenuCheckboxItem({
33
33
  className,
34
34
  children,
35
35
  checked,
36
36
  ...props
37
- }: React.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): React.JSX.Element;
37
+ }: React.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): any;
38
38
  declare function DropdownMenuRadioGroup({
39
39
  ...props
40
- }: React.ComponentProps<typeof DropdownMenu$1.RadioGroup>): React.JSX.Element;
40
+ }: React.ComponentProps<typeof DropdownMenu$1.RadioGroup>): any;
41
41
  declare function DropdownMenuRadioItem({
42
42
  className,
43
43
  children,
44
44
  ...props
45
- }: React.ComponentProps<typeof DropdownMenu$1.RadioItem>): React.JSX.Element;
45
+ }: React.ComponentProps<typeof DropdownMenu$1.RadioItem>): any;
46
46
  declare function DropdownMenuLabel({
47
47
  className,
48
48
  inset,
49
49
  ...props
50
50
  }: React.ComponentProps<typeof DropdownMenu$1.Label> & {
51
51
  inset?: boolean;
52
- }): React.JSX.Element;
52
+ }): any;
53
53
  declare function DropdownMenuSeparator({
54
54
  className,
55
55
  ...props
56
- }: React.ComponentProps<typeof DropdownMenu$1.Separator>): React.JSX.Element;
56
+ }: React.ComponentProps<typeof DropdownMenu$1.Separator>): any;
57
57
  declare function DropdownMenuShortcut({
58
58
  className,
59
59
  ...props
60
- }: React.ComponentProps<"span">): React.JSX.Element;
60
+ }: React.ComponentProps<"span">): any;
61
61
  declare function DropdownMenuSub({
62
62
  ...props
63
- }: React.ComponentProps<typeof DropdownMenu$1.Sub>): React.JSX.Element;
63
+ }: React.ComponentProps<typeof DropdownMenu$1.Sub>): any;
64
64
  declare function DropdownMenuSubTrigger({
65
65
  className,
66
66
  inset,
@@ -68,11 +68,11 @@ declare function DropdownMenuSubTrigger({
68
68
  ...props
69
69
  }: React.ComponentProps<typeof DropdownMenu$1.SubTrigger> & {
70
70
  inset?: boolean;
71
- }): React.JSX.Element;
71
+ }): any;
72
72
  declare function DropdownMenuSubContent({
73
73
  className,
74
74
  ...props
75
- }: React.ComponentProps<typeof DropdownMenu$1.SubContent>): React.JSX.Element;
75
+ }: React.ComponentProps<typeof DropdownMenu$1.SubContent>): any;
76
76
  //#endregion
77
77
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
78
78
  //# sourceMappingURL=dropdown-menu.d.cts.map
@@ -4,22 +4,22 @@ import { DropdownMenu as DropdownMenu$1 } from "radix-ui";
4
4
  //#region packages/components/ui/dropdown-menu.d.ts
5
5
  declare function DropdownMenu({
6
6
  ...props
7
- }: React.ComponentProps<typeof DropdownMenu$1.Root>): React.JSX.Element;
7
+ }: React.ComponentProps<typeof DropdownMenu$1.Root>): any;
8
8
  declare function DropdownMenuPortal({
9
9
  ...props
10
- }: React.ComponentProps<typeof DropdownMenu$1.Portal>): React.JSX.Element;
10
+ }: React.ComponentProps<typeof DropdownMenu$1.Portal>): any;
11
11
  declare function DropdownMenuTrigger({
12
12
  ...props
13
- }: React.ComponentProps<typeof DropdownMenu$1.Trigger>): React.JSX.Element;
13
+ }: React.ComponentProps<typeof DropdownMenu$1.Trigger>): any;
14
14
  declare function DropdownMenuContent({
15
15
  className,
16
16
  sideOffset,
17
17
  align,
18
18
  ...props
19
- }: React.ComponentProps<typeof DropdownMenu$1.Content>): React.JSX.Element;
19
+ }: React.ComponentProps<typeof DropdownMenu$1.Content>): any;
20
20
  declare function DropdownMenuGroup({
21
21
  ...props
22
- }: React.ComponentProps<typeof DropdownMenu$1.Group>): React.JSX.Element;
22
+ }: React.ComponentProps<typeof DropdownMenu$1.Group>): any;
23
23
  declare function DropdownMenuItem({
24
24
  className,
25
25
  inset,
@@ -28,39 +28,39 @@ declare function DropdownMenuItem({
28
28
  }: React.ComponentProps<typeof DropdownMenu$1.Item> & {
29
29
  inset?: boolean;
30
30
  variant?: "default" | "destructive";
31
- }): React.JSX.Element;
31
+ }): any;
32
32
  declare function DropdownMenuCheckboxItem({
33
33
  className,
34
34
  children,
35
35
  checked,
36
36
  ...props
37
- }: React.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): React.JSX.Element;
37
+ }: React.ComponentProps<typeof DropdownMenu$1.CheckboxItem>): any;
38
38
  declare function DropdownMenuRadioGroup({
39
39
  ...props
40
- }: React.ComponentProps<typeof DropdownMenu$1.RadioGroup>): React.JSX.Element;
40
+ }: React.ComponentProps<typeof DropdownMenu$1.RadioGroup>): any;
41
41
  declare function DropdownMenuRadioItem({
42
42
  className,
43
43
  children,
44
44
  ...props
45
- }: React.ComponentProps<typeof DropdownMenu$1.RadioItem>): React.JSX.Element;
45
+ }: React.ComponentProps<typeof DropdownMenu$1.RadioItem>): any;
46
46
  declare function DropdownMenuLabel({
47
47
  className,
48
48
  inset,
49
49
  ...props
50
50
  }: React.ComponentProps<typeof DropdownMenu$1.Label> & {
51
51
  inset?: boolean;
52
- }): React.JSX.Element;
52
+ }): any;
53
53
  declare function DropdownMenuSeparator({
54
54
  className,
55
55
  ...props
56
- }: React.ComponentProps<typeof DropdownMenu$1.Separator>): React.JSX.Element;
56
+ }: React.ComponentProps<typeof DropdownMenu$1.Separator>): any;
57
57
  declare function DropdownMenuShortcut({
58
58
  className,
59
59
  ...props
60
- }: React.ComponentProps<"span">): React.JSX.Element;
60
+ }: React.ComponentProps<"span">): any;
61
61
  declare function DropdownMenuSub({
62
62
  ...props
63
- }: React.ComponentProps<typeof DropdownMenu$1.Sub>): React.JSX.Element;
63
+ }: React.ComponentProps<typeof DropdownMenu$1.Sub>): any;
64
64
  declare function DropdownMenuSubTrigger({
65
65
  className,
66
66
  inset,
@@ -68,11 +68,11 @@ declare function DropdownMenuSubTrigger({
68
68
  ...props
69
69
  }: React.ComponentProps<typeof DropdownMenu$1.SubTrigger> & {
70
70
  inset?: boolean;
71
- }): React.JSX.Element;
71
+ }): any;
72
72
  declare function DropdownMenuSubContent({
73
73
  className,
74
74
  ...props
75
- }: React.ComponentProps<typeof DropdownMenu$1.SubContent>): React.JSX.Element;
75
+ }: React.ComponentProps<typeof DropdownMenu$1.SubContent>): any;
76
76
  //#endregion
77
77
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
78
78
  //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ "use client";import"../utils-D9AH0PUV.js";import{DropdownMenu as e,DropdownMenuCheckboxItem as t,DropdownMenuContent as n,DropdownMenuGroup as r,DropdownMenuItem as i,DropdownMenuLabel as a,DropdownMenuPortal as o,DropdownMenuRadioGroup as s,DropdownMenuRadioItem as c,DropdownMenuSeparator as l,DropdownMenuShortcut as u,DropdownMenuSub as d,DropdownMenuSubContent as f,DropdownMenuSubTrigger as p,DropdownMenuTrigger as m}from"../dropdown-menu-jCQwh2rG.js";export{e as DropdownMenu,t as DropdownMenuCheckboxItem,n as DropdownMenuContent,r as DropdownMenuGroup,i as DropdownMenuItem,a as DropdownMenuLabel,o as DropdownMenuPortal,s as DropdownMenuRadioGroup,c as DropdownMenuRadioItem,l as DropdownMenuSeparator,u as DropdownMenuShortcut,d as DropdownMenuSub,f as DropdownMenuSubContent,p as DropdownMenuSubTrigger,m as DropdownMenuTrigger};
@@ -0,0 +1,3 @@
1
+ "use client";const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../utils-BsjVK5EW.cjs`),n=require(`../button-Dzv_nos1.cjs`),r=require(`../progress-BnnOfAZN.cjs`),i=e.__toESM(require(`react`)),a=e.__toESM(require(`react/jsx-runtime`)),o=e.__toESM(require(`lucide-react`)),s=e.__toESM(require(`react-dropzone`)),c=e.__toESM(require(`sonner`));function l(e){let t=i.default.useRef(e);return i.default.useEffect(()=>{t.current=e}),i.default.useMemo(()=>((...e)=>t.current?.(...e)),[])}function u({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,a]=d({defaultProp:t,onChange:n}),o=e!==void 0,s=o?e:r,c=l(n),u=i.default.useCallback(t=>{if(o){let n=t,r=typeof t==`function`?n(e):t;r!==e&&c(r)}else a(t)},[o,e,a,c]);return[s,u]}function d({defaultProp:e,onChange:t}){let n=i.default.useState(e),[r]=n,a=i.default.useRef(r),o=l(t);return i.default.useEffect(()=>{a.current!==r&&(o(r),a.current=r)},[r,a,o]),n}function f(e){let{value:n,onValueChange:r,onUpload:l,progresses:d,accept:f={"image/*":[]},maxSize:h=1024*1024*2,maxFileCount:g=1,multiple:_=!1,disabled:v=!1,showText:y=!0,iconSize:b,className:x,...S}=e,[C,w]=u({prop:n,onChange:r}),T=i.default.useCallback((e,t)=>{if(!_&&g===1&&e.length>1){c.toast.error(`Cannot upload more than 1 file at a time`);return}if((C?.length??0)+e.length>g){c.toast.error(`Cannot upload more than ${g} files`);return}let n=e.map(e=>Object.assign(e,{preview:URL.createObjectURL(e)})),r=C?[...C,...n]:n;if(w(r),t.length>0&&t.forEach(({file:e})=>{c.toast.error(`File ${e.name} was rejected`)}),l&&r.length>0&&r.length<=g){let e=r.length>0?`${r.length} files`:`file`;l(r).then(()=>{w([]),(0,c.toast)(`${e} uploaded`)})}},[C,g,_,l,w]);function E(e){if(!C)return;m(C[e])&&URL.revokeObjectURL(C[e].preview);let t=C.filter((t,n)=>n!==e);w(t),r?.(t)}i.default.useEffect(()=>()=>{C&&C.forEach(e=>{m(e)&&URL.revokeObjectURL(e.preview)})},[]);let D=v||(C?.length??0)>=g;return(0,a.jsxs)(`div`,{className:`relative flex w-full flex-col gap-6`,children:[(0,a.jsx)(s.default,{onDrop:T,accept:f,maxSize:h,maxFiles:g,multiple:g>1||_,disabled:D,children:({getRootProps:e,getInputProps:n,isDragActive:r})=>(0,a.jsxs)(`div`,{...e(),className:t.cn(`group`,`border-muted-foreground/25`,`hover:bg-muted/25`,`relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition`,`ring-offset-background`,`focus-visible:ring-ring`,`focus-visible:ring-2`,`focus-visible:ring-offset-2`,`focus-visible:outline-hidden`,r&&`border-muted-foreground/50`,D&&`pointer-events-none opacity-60`,x),...S,children:[(0,a.jsx)(`input`,{...n()}),r?(0,a.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[(0,a.jsx)(`div`,{className:`rounded-full border border-dashed p-3`,children:(0,a.jsx)(o.Upload,{className:`text-muted-foreground size-7`,"aria-hidden":`true`})}),(0,a.jsx)(`p`,{className:`text-muted-foreground font-medium`,children:`Drop the files here`})]}):(0,a.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[(0,a.jsx)(`div`,{className:`rounded-full border border-dashed p-3`,children:(0,a.jsx)(o.Upload,{size:b||24,className:`text-muted-foreground`,"aria-hidden":`true`})}),y&&(0,a.jsxs)(`div`,{className:`flex flex-col gap-px`,children:[(0,a.jsxs)(`p`,{className:`text-muted-foreground text-xs font-medium`,children:[`Drag `,`'n'`,` drop files here, or click to select files`]}),(0,a.jsxs)(`p`,{className:`text-muted-foreground/70 text-xs`,children:[`You can upload`,g>1?` ${g===1/0?`multiple`:g}
2
+ files (up to ${t.formatBytes(h)} each)`:` a file with ${t.formatBytes(h)}`]})]})]})]})}),C?.length?(0,a.jsxs)(`div`,{className:`h-fit w-full overflow-y-auto`,children:[(0,a.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2.5`,children:[(0,a.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,a.jsx)(o.Image,{className:`text-muted-foreground size-4`,"aria-hidden":`true`}),(0,a.jsxs)(`p`,{className:`text-sm`,children:[`Ảnh đã tải lên (`,C.length,`)`]})]}),(0,a.jsxs)(`button`,{className:`hover:text-muted-foreground text-muted-foreground/60 flex cursor-pointer items-center gap-1 transition-colors duration-200`,onClick:()=>{C&&(C.forEach(e=>{m(e)&&URL.revokeObjectURL(e.preview)}),w([]),r?.([]))},children:[(0,a.jsx)(o.Trash2,{size:16,"aria-hidden":`true`}),(0,a.jsx)(`p`,{className:`text-sm`,children:`Xóa tất cả`})]})]}),(0,a.jsx)(`div`,{className:`flex flex-col gap-2.5`,children:C?.map((e,t)=>(0,a.jsx)(p,{file:e,onRemove:()=>E(t),progress:d?.[e.name]},t))})]}):null]})}function p({file:e,progress:i,onRemove:s}){return(0,a.jsxs)(`div`,{className:`border-border/40 hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs`,children:[(0,a.jsxs)(`div`,{className:`flex flex-1 gap-2.5`,children:[m(e)?(0,a.jsx)(h,{file:e}):null,(0,a.jsxs)(`div`,{className:`flex w-full flex-col gap-2`,children:[(0,a.jsxs)(`div`,{className:`flex flex-col gap-y-0.5`,children:[(0,a.jsx)(`p`,{className:`text-accent-foreground line-clamp-1 text-sm`,children:e.name}),(0,a.jsx)(`p`,{className:`text-muted-foreground text-xs`,children:t.formatBytes(e.size)})]}),i?(0,a.jsx)(r.Progress,{value:i}):null]})]}),(0,a.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,a.jsxs)(n.Button,{type:`button`,variant:`ghost`,size:`icon`,className:`size-7`,onClick:s,children:[(0,a.jsx)(o.Trash2,{size:16,className:`text-muted-foreground/60`,"aria-hidden":`true`}),(0,a.jsx)(`span`,{className:`sr-only`,children:`Remove file`})]})})]})}function m(e){return`preview`in e&&typeof e.preview==`string`}function h({file:e}){return e.type.startsWith(`image/`)?(0,a.jsx)(`img`,{src:e.preview,className:`border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm`}):(0,a.jsx)(o.FileText,{className:`text-muted-foreground size-10 border`,"aria-hidden":`true`})}exports.FileUploader=f;
3
+ //# sourceMappingURL=file-uploader.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-uploader.cjs","names":["React","setValue: React.Dispatch<React.SetStateAction<T | undefined>>","React","value","React","Dropzone","cn","Upload","formatBytes","Image","Trash2","Progress","Button","FileText"],"sources":["../../packages/hooks/use-callback-ref.ts","../../packages/hooks/use-controllable-state.ts","../../packages/components/ui/file-uploader.tsx"],"sourcesContent":["import React from \"react\";\n\n/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/use-callback-ref/src/useCallbackRef.tsx\n */\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: never[]) => unknown>(\n callback: T | undefined,\n): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(\n () => ((...args) => callbackRef.current?.(...args)) as T,\n [],\n );\n}\n\nexport { useCallbackRef };\n","import React from \"react\";\n\nimport { useCallbackRef } from \"./use-callback-ref\";\n\n/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx\n */\n\ntype UseControllableStateParams<T> = {\n prop?: T | undefined;\n defaultProp?: T | undefined;\n onChange?: (state: T) => void;\n};\n\ntype SetStateFn<T> = (prevState?: T) => T;\n\nfunction useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {},\n}: UseControllableStateParams<T>) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange,\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n\n const setValue: React.Dispatch<React.SetStateAction<T | undefined>> =\n React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue as SetStateFn<T>;\n const value =\n typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value as T);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange],\n );\n\n return [value, setValue] as const;\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, \"prop\">) {\n const uncontrolledState = React.useState<T | undefined>(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n\n return uncontrolledState;\n}\n\nexport { useControllableState };\n","\"use client\";\nimport React from \"react\";\nimport { FileText, Image, Trash2, Upload } from \"lucide-react\";\nimport Dropzone, {\n type DropzoneProps,\n type FileRejection,\n} from \"react-dropzone\";\nimport { toast } from \"sonner\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { useControllableState } from \"@/hooks/use-controllable-state\";\nimport { cn, formatBytes } from \"@/lib/utils\";\n\ninterface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Value of the uploader.\n * @type File[]\n * @default undefined\n * @example value={files}\n */\n value?: File[];\n\n /**\n * Function to be called when the value changes.\n * @type (files: File[]) => void\n * @default undefined\n * @example onValueChange={(files) => setFiles(files)}\n */\n onValueChange?: (files: File[]) => void;\n\n /**\n * Function to be called when files are uploaded.\n * @type (files: File[]) => Promise<void>\n * @default undefined\n * @example onUpload={(files) => uploadFiles(files)}\n */\n onUpload?: (files: File[]) => Promise<void>;\n\n /**\n * Progress of the uploaded files.\n * @type Record<string, number> | undefined\n * @default undefined\n * @example progresses={{ \"file1.png\": 50 }}\n */\n progresses?: Record<string, number>;\n\n /**\n * Accepted file types for the uploader.\n * @type { [key: string]: string[]}\n * @default\n * ```ts\n * { \"image/*\": [] }\n * ```\n * @example accept={[\"image/png\", \"image/jpeg\"]}\n */\n accept?: DropzoneProps[\"accept\"];\n\n /**\n * Maximum file size for the uploader.\n * @type number | undefined\n * @default 1024 * 1024 * 2 // 2MB\n * @example maxSize={1024 * 1024 * 2} // 2MB\n */\n maxSize?: DropzoneProps[\"maxSize\"];\n\n /**\n * Maximum number of files for the uploader.\n * @type number | undefined\n * @default 1\n * @example maxFileCount={4}\n */\n maxFileCount?: DropzoneProps[\"maxFiles\"];\n\n /**\n * Whether the uploader should accept multiple files.\n * @type boolean\n * @default false\n * @example multiple\n */\n multiple?: boolean;\n\n /**\n * Whether the uploader is disabled.\n * @type boolean\n * @default false\n * @example disabled\n */\n disabled?: boolean;\n\n showText?: boolean;\n iconSize?: number;\n}\n\nexport function FileUploader(props: FileUploaderProps) {\n const {\n value: valueProp,\n onValueChange,\n onUpload,\n progresses,\n accept = {\n \"image/*\": [],\n },\n maxSize = 1024 * 1024 * 2,\n maxFileCount = 1,\n multiple = false,\n disabled = false,\n showText = true,\n iconSize,\n className,\n ...dropzoneProps\n } = props;\n\n const [files, setFiles] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n });\n\n const onDrop = React.useCallback(\n (acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n if (!multiple && maxFileCount === 1 && acceptedFiles.length > 1) {\n toast.error(\"Cannot upload more than 1 file at a time\");\n\n return;\n }\n\n if ((files?.length ?? 0) + acceptedFiles.length > maxFileCount) {\n toast.error(`Cannot upload more than ${maxFileCount} files`);\n return;\n }\n\n const newFiles = acceptedFiles.map((file) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n );\n\n const updatedFiles = files ? [...files, ...newFiles] : newFiles;\n\n setFiles(updatedFiles);\n\n if (rejectedFiles.length > 0) {\n rejectedFiles.forEach(({ file }) => {\n toast.error(`File ${file.name} was rejected`);\n });\n }\n\n if (\n onUpload &&\n updatedFiles.length > 0 &&\n updatedFiles.length <= maxFileCount\n ) {\n const target =\n updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`;\n\n onUpload(updatedFiles).then(() => {\n setFiles([]);\n toast(`${target} uploaded`);\n });\n }\n },\n\n [files, maxFileCount, multiple, onUpload, setFiles],\n );\n\n function onRemove(index: number) {\n if (!files) return;\n\n if (isFileWithPreview(files[index])) {\n URL.revokeObjectURL(files[index].preview);\n }\n\n const newFiles = files.filter((_, i) => i !== index);\n setFiles(newFiles);\n onValueChange?.(newFiles);\n }\n\n // Revoke preview url when component unmounts\n React.useEffect(() => {\n return () => {\n if (!files) return;\n files.forEach((file) => {\n if (isFileWithPreview(file)) {\n URL.revokeObjectURL(file.preview);\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const isDisabled = disabled || (files?.length ?? 0) >= maxFileCount;\n\n return (\n <div className=\"relative flex w-full flex-col gap-6\">\n <Dropzone\n onDrop={onDrop}\n accept={accept}\n maxSize={maxSize}\n maxFiles={maxFileCount}\n multiple={maxFileCount > 1 || multiple}\n disabled={isDisabled}\n >\n {({ getRootProps, getInputProps, isDragActive }) => (\n <div\n {...getRootProps()}\n className={cn(\n \"group\",\n \"border-muted-foreground/25\",\n \"hover:bg-muted/25\",\n \"relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition\",\n \"ring-offset-background\",\n \"focus-visible:ring-ring\",\n \"focus-visible:ring-2\",\n \"focus-visible:ring-offset-2\",\n \"focus-visible:outline-hidden\",\n isDragActive && \"border-muted-foreground/50\",\n isDisabled && \"pointer-events-none opacity-60\",\n className,\n )}\n {...dropzoneProps}\n >\n <input {...getInputProps()} />\n {isDragActive ? (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload\n className=\"text-muted-foreground size-7\"\n aria-hidden=\"true\"\n />\n </div>\n <p className=\"text-muted-foreground font-medium\">\n Drop the files here\n </p>\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload\n size={iconSize || 24}\n className=\"text-muted-foreground\"\n aria-hidden=\"true\"\n />\n </div>\n {showText && (\n <div className=\"flex flex-col gap-px\">\n <p className=\"text-muted-foreground text-xs font-medium\">\n Drag {`'n'`} drop files here, or click to select files\n </p>\n <p className=\"text-muted-foreground/70 text-xs\">\n You can upload\n {maxFileCount > 1\n ? ` ${maxFileCount === Infinity ? \"multiple\" : maxFileCount}\n files (up to ${formatBytes(maxSize)} each)`\n : ` a file with ${formatBytes(maxSize)}`}\n </p>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Dropzone>\n {files?.length ? (\n <div className=\"h-fit w-full overflow-y-auto\">\n <div className=\"flex items-center justify-between px-3 py-2.5\">\n <div className=\"flex items-center gap-1\">\n <Image\n className=\"text-muted-foreground size-4\"\n aria-hidden=\"true\"\n />\n <p className=\"text-sm\">Ảnh đã tải lên ({files.length})</p>\n </div>\n <button\n className=\"hover:text-muted-foreground text-muted-foreground/60 flex cursor-pointer items-center gap-1 transition-colors duration-200\"\n onClick={() => {\n if (!files) return;\n files.forEach((file) => {\n if (!isFileWithPreview(file)) return;\n URL.revokeObjectURL(file.preview);\n });\n setFiles([]);\n onValueChange?.([]);\n }}\n >\n <Trash2 size={16} aria-hidden=\"true\" />\n <p className=\"text-sm\">Xóa tất cả</p>\n </button>\n </div>\n <div className=\"flex flex-col gap-2.5\">\n {files?.map((file, index) => (\n <FileCard\n key={index}\n file={file}\n onRemove={() => onRemove(index)}\n progress={progresses?.[file.name]}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\ninterface FileCardProps {\n file: File;\n onRemove: () => void;\n progress?: number;\n}\n\nfunction FileCard({ file, progress, onRemove }: FileCardProps) {\n return (\n <div className=\"border-border/40 hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs\">\n <div className=\"flex flex-1 gap-2.5\">\n {isFileWithPreview(file) ? <FilePreview file={file} /> : null}\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex flex-col gap-y-0.5\">\n <p className=\"text-accent-foreground line-clamp-1 text-sm\">\n {file.name}\n </p>\n <p className=\"text-muted-foreground text-xs\">\n {formatBytes(file.size)}\n </p>\n </div>\n {progress ? <Progress value={progress} /> : null}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7\"\n onClick={onRemove}\n >\n <Trash2\n size={16}\n className=\"text-muted-foreground/60\"\n aria-hidden=\"true\"\n />\n <span className=\"sr-only\">Remove file</span>\n </Button>\n </div>\n </div>\n );\n}\n\nfunction isFileWithPreview(file: File): file is File & { preview: string } {\n return \"preview\" in file && typeof file.preview === \"string\";\n}\n\ninterface FilePreviewProps {\n file: File & { preview: string };\n}\n\nfunction FilePreview({ file }: FilePreviewProps) {\n if (file.type.startsWith(\"image/\")) {\n return (\n <img\n src={file.preview}\n className=\"border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm\"\n />\n );\n }\n\n return (\n <FileText\n className=\"text-muted-foreground size-10 border\"\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":"sVAUA,SAAS,EACP,EACG,CACH,IAAM,EAAcI,EAAAA,QAAM,OAAO,GAOjC,OALA,EAAA,QAAM,cAAgB,CACpB,EAAY,QAAU,CACvB,GAGMA,EAAAA,QAAM,cACH,GAAG,IAAS,EAAY,UAAU,GAAG,IAC7C,EAAE,CAEL,CCRD,SAAS,EAAwB,CAC/B,OACA,cACA,eAAiB,CAAE,EACW,CAAE,CAChC,GAAM,CAAC,EAAkB,EAAoB,CAAG,EAAqB,CACnE,cACA,WACD,EACK,EAAe,IAAS,IAAA,GACxB,EAAQ,EAAe,EAAO,EAC9B,EAAe,EAAe,GAE9BH,EACJG,EAAAA,QAAM,YACH,GAAc,CACb,GAAI,EAAc,CAChB,IAAM,EAAS,EACTD,EACJ,OAAO,GAAc,WAAa,EAAO,GAAQ,EAC/CA,IAAU,GAAM,EAAaA,EAClC,MACC,EAAoB,EAEvB,EACD,CAAC,EAAc,EAAM,EAAqB,EAAa,EAG3D,MAAO,CAAC,EAAO,EAAS,AACzB,CAED,SAAS,EAAwB,CAC/B,cACA,WAC4C,CAAE,CAC9C,IAAM,EAAoBC,EAAAA,QAAM,SAAwB,GAClD,CAAC,EAAM,CAAG,EACV,EAAeA,EAAAA,QAAM,OAAO,GAC5B,EAAe,EAAe,GASpC,OAPA,EAAA,QAAM,cAAgB,CAChB,EAAa,UAAY,IAC3B,EAAa,GACb,EAAa,QAAU,EAE1B,EAAE,CAAC,EAAO,EAAc,EAAa,EAE/B,CACR,CC8BD,SAAgB,EAAa,EAA0B,CACrD,GAAM,CACJ,MAAO,EACP,gBACA,WACA,aACA,SAAS,CACP,UAAW,EAAE,CACd,CACD,UAAU,KAAO,KAAO,EACxB,eAAe,EACf,WAAW,GACX,WAAW,GACX,WAAW,GACX,WACA,YACA,GAAG,EACJ,CAAG,EAEE,CAAC,EAAO,EAAS,CAAG,EAAqB,CAC7C,KAAM,EACN,SAAU,EACX,EAEK,EAASA,EAAAA,QAAM,aAClB,EAAuB,IAAmC,CACzD,GAAI,CAAC,GAAY,IAAiB,GAAK,EAAc,OAAS,EAAG,CAC/D,EAAA,MAAM,MAAM,4CAEZ,MACD,CAED,IAAK,GAAO,QAAU,GAAK,EAAc,OAAS,EAAc,CAC9D,EAAA,MAAM,MAAM,2BAA2B,EAAa,SACpD,MACD,CAED,IAAM,EAAW,EAAc,IAAK,GAClC,OAAO,OAAO,EAAM,CAClB,QAAS,IAAI,gBAAgB,GAC9B,GAGG,EAAe,EAAQ,CAAC,GAAG,EAAO,GAAG,EAAS,CAAG,EAUvD,GARA,EAAS,GAEL,EAAc,OAAS,GACzB,EAAc,SAAS,CAAE,OAAM,GAAK,CAClC,EAAA,MAAM,MAAM,QAAQ,EAAK,KAAK,eAC/B,GAID,GACA,EAAa,OAAS,GACtB,EAAa,QAAU,EACvB,CACA,IAAM,EACJ,EAAa,OAAS,EAAI,GAAG,EAAa,OAAO,QAAU,OAE7D,EAAS,GAAc,SAAW,CAChC,EAAS,EAAE,GACX,EAAA,EAAA,OAAM,GAAG,EAAO,WACjB,EACF,CACF,EAED,CAAC,EAAO,EAAc,EAAU,EAAU,EAAS,EAGrD,SAAS,EAAS,EAAe,CAC/B,GAAI,CAAC,EAAO,OAER,EAAkB,EAAM,KAC1B,IAAI,gBAAgB,EAAM,GAAO,SAGnC,IAAM,EAAW,EAAM,QAAQ,EAAG,IAAM,IAAM,GAC9C,EAAS,GACT,IAAgB,EACjB,CAGD,EAAA,QAAM,kBACS,CACN,GACL,EAAM,QAAS,GAAS,CAClB,EAAkB,IACpB,IAAI,gBAAgB,EAAK,QAE5B,EACF,EAEA,EAAE,EAEL,IAAM,EAAa,IAAa,GAAO,QAAU,IAAM,EAEvD,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,iDACb,EAAA,EAAA,KAACC,EAAAA,QAAAA,CACS,SACA,SACC,UACT,SAAU,EACV,SAAU,EAAe,GAAK,EAC9B,SAAU,YAER,CAAE,eAAc,gBAAe,eAAc,IAC7C,EAAA,EAAA,MAAC,MAAA,CACC,GAAI,IACJ,UAAWC,EAAAA,GACT,QACA,6BACA,oBACA,mIACA,yBACA,0BACA,uBACA,8BACA,+BACA,GAAgB,6BAChB,GAAc,iCACd,GAEF,GAAI,aAEJ,EAAA,EAAA,KAAC,QAAA,CAAM,GAAI,IAAA,EACV,GACC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,qEACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kDACb,EAAA,EAAA,KAACC,EAAAA,OAAAA,CACC,UAAU,+BACV,cAAY,YAGhB,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,6CAAoC,4BAKnD,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,qEACb,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,kDACb,EAAA,EAAA,KAACA,EAAAA,OAAAA,CACC,KAAM,GAAY,GAClB,UAAU,wBACV,cAAY,WAGf,IACC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,kCACb,EAAA,EAAA,MAAC,IAAA,CAAE,UAAU,sDAA4C,QACjD,MAAM,iDAEd,EAAA,EAAA,MAAC,IAAA,CAAE,UAAU,6CAAmC,iBAE7C,EAAe,EACZ,IAAI,IAAiB,IAAW,WAAa,EAAa;qCAC/CC,EAAAA,YAAY,GAAS,QAChC,gBAAgBA,EAAAA,YAAY,KAAA,cAS/C,GAAO,QACN,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,0CACb,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,2DACb,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,qCACb,EAAA,EAAA,KAACC,EAAAA,MAAAA,CACC,UAAU,+BACV,cAAY,UAEd,EAAA,EAAA,MAAC,IAAA,CAAE,UAAU,oBAAU,mBAAiB,EAAM,OAAO,WAEvD,EAAA,EAAA,MAAC,SAAA,CACC,UAAU,6HACV,YAAe,CACR,IACL,EAAM,QAAS,GAAS,CACjB,EAAkB,IACvB,IAAI,gBAAgB,EAAK,QAC1B,GACD,EAAS,EAAE,EACX,IAAgB,EAAE,EACnB,aAED,EAAA,EAAA,KAACC,EAAAA,OAAAA,CAAO,KAAM,GAAI,cAAY,UAC9B,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,mBAAU,sBAG3B,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,iCACZ,GAAO,KAAK,EAAM,KACjB,EAAA,EAAA,KAAC,EAAA,CAEO,OACN,aAAgB,EAAS,GACzB,SAAU,IAAa,EAAK,OAHvB,SAQX,KAAA,EAGT,CAQD,SAAS,EAAS,CAAE,OAAM,WAAU,WAAyB,CAAE,CAC7D,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,8HACb,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,gCACZ,EAAkB,IAAQ,EAAA,EAAA,KAAC,EAAA,CAAkB,OAAA,EAAW,MACzD,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,wCACb,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,qCACb,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,uDACV,EAAK,QAER,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,yCACVF,EAAAA,YAAY,EAAK,WAGrB,GAAW,EAAA,EAAA,KAACG,EAAAA,SAAAA,CAAS,MAAO,EAAA,EAAe,KAAA,OAGhD,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,oCACb,EAAA,EAAA,MAACC,EAAAA,OAAAA,CACC,KAAK,SACL,QAAQ,QACR,KAAK,OACL,UAAU,SACV,QAAS,aAET,EAAA,EAAA,KAACF,EAAAA,OAAAA,CACC,KAAM,GACN,UAAU,2BACV,cAAY,UAEd,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,uBAKnC,CAED,SAAS,EAAkB,EAAgD,CACzE,MAAO,YAAa,GAAQ,OAAO,EAAK,SAAY,QACrD,CAMD,SAAS,EAAY,CAAE,OAAwB,CAAE,CAU/C,OATI,EAAK,KAAK,WAAW,WAErB,EAAA,EAAA,KAAC,MAAA,CACC,IAAK,EAAK,QACV,UAAU,mGAMd,EAAA,EAAA,KAACG,EAAAA,SAAAA,CACC,UAAU,uCACV,cAAY,QAGjB"}
@@ -72,7 +72,7 @@ interface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {
72
72
  showText?: boolean;
73
73
  iconSize?: number;
74
74
  }
75
- declare function FileUploader(props: FileUploaderProps): React.JSX.Element;
75
+ declare function FileUploader(props: FileUploaderProps): any;
76
76
  //#endregion
77
77
  export { FileUploader };
78
78
  //# sourceMappingURL=file-uploader.d.cts.map
@@ -72,7 +72,7 @@ interface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {
72
72
  showText?: boolean;
73
73
  iconSize?: number;
74
74
  }
75
- declare function FileUploader(props: FileUploaderProps): React.JSX.Element;
75
+ declare function FileUploader(props: FileUploaderProps): any;
76
76
  //#endregion
77
77
  export { FileUploader };
78
78
  //# sourceMappingURL=file-uploader.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use client";import{cn as e,formatBytes as t}from"../utils-D9AH0PUV.js";import{Button as n}from"../button-Bku3bKv9.js";import{Progress as r}from"../progress-CBccqUUJ.js";import i from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{FileText as s,Image as c,Trash2 as l,Upload as u}from"lucide-react";import d from"react-dropzone";import{toast as f}from"sonner";function p(e){let t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>((...e)=>t.current?.(...e)),[])}function m({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,a]=h({defaultProp:t,onChange:n}),o=e!==void 0,s=o?e:r,c=p(n),l=i.useCallback(t=>{if(o){let n=t,r=typeof t==`function`?n(e):t;r!==e&&c(r)}else a(t)},[o,e,a,c]);return[s,l]}function h({defaultProp:e,onChange:t}){let n=i.useState(e),[r]=n,a=i.useRef(r),o=p(t);return i.useEffect(()=>{a.current!==r&&(o(r),a.current=r)},[r,a,o]),n}function g(n){let{value:r,onValueChange:s,onUpload:p,progresses:h,accept:g={"image/*":[]},maxSize:y=1024*1024*2,maxFileCount:b=1,multiple:x=!1,disabled:S=!1,showText:C=!0,iconSize:w,className:T,...E}=n,[D,O]=m({prop:r,onChange:s}),k=i.useCallback((e,t)=>{if(!x&&b===1&&e.length>1){f.error(`Cannot upload more than 1 file at a time`);return}if((D?.length??0)+e.length>b){f.error(`Cannot upload more than ${b} files`);return}let n=e.map(e=>Object.assign(e,{preview:URL.createObjectURL(e)})),r=D?[...D,...n]:n;if(O(r),t.length>0&&t.forEach(({file:e})=>{f.error(`File ${e.name} was rejected`)}),p&&r.length>0&&r.length<=b){let e=r.length>0?`${r.length} files`:`file`;p(r).then(()=>{O([]),f(`${e} uploaded`)})}},[D,b,x,p,O]);function A(e){if(!D)return;v(D[e])&&URL.revokeObjectURL(D[e].preview);let t=D.filter((t,n)=>n!==e);O(t),s?.(t)}i.useEffect(()=>()=>{D&&D.forEach(e=>{v(e)&&URL.revokeObjectURL(e.preview)})},[]);let j=S||(D?.length??0)>=b;return o(`div`,{className:`relative flex w-full flex-col gap-6`,children:[a(d,{onDrop:k,accept:g,maxSize:y,maxFiles:b,multiple:b>1||x,disabled:j,children:({getRootProps:n,getInputProps:r,isDragActive:i})=>o(`div`,{...n(),className:e(`group`,`border-muted-foreground/25`,`hover:bg-muted/25`,`relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition`,`ring-offset-background`,`focus-visible:ring-ring`,`focus-visible:ring-2`,`focus-visible:ring-offset-2`,`focus-visible:outline-hidden`,i&&`border-muted-foreground/50`,j&&`pointer-events-none opacity-60`,T),...E,children:[a(`input`,{...r()}),i?o(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[a(`div`,{className:`rounded-full border border-dashed p-3`,children:a(u,{className:`text-muted-foreground size-7`,"aria-hidden":`true`})}),a(`p`,{className:`text-muted-foreground font-medium`,children:`Drop the files here`})]}):o(`div`,{className:`flex flex-col items-center justify-center gap-4 sm:px-5`,children:[a(`div`,{className:`rounded-full border border-dashed p-3`,children:a(u,{size:w||24,className:`text-muted-foreground`,"aria-hidden":`true`})}),C&&o(`div`,{className:`flex flex-col gap-px`,children:[o(`p`,{className:`text-muted-foreground text-xs font-medium`,children:[`Drag `,`'n'`,` drop files here, or click to select files`]}),o(`p`,{className:`text-muted-foreground/70 text-xs`,children:[`You can upload`,b>1?` ${b===1/0?`multiple`:b}
2
+ files (up to ${t(y)} each)`:` a file with ${t(y)}`]})]})]})]})}),D?.length?o(`div`,{className:`h-fit w-full overflow-y-auto`,children:[o(`div`,{className:`flex items-center justify-between px-3 py-2.5`,children:[o(`div`,{className:`flex items-center gap-1`,children:[a(c,{className:`text-muted-foreground size-4`,"aria-hidden":`true`}),o(`p`,{className:`text-sm`,children:[`Ảnh đã tải lên (`,D.length,`)`]})]}),o(`button`,{className:`hover:text-muted-foreground text-muted-foreground/60 flex cursor-pointer items-center gap-1 transition-colors duration-200`,onClick:()=>{D&&(D.forEach(e=>{v(e)&&URL.revokeObjectURL(e.preview)}),O([]),s?.([]))},children:[a(l,{size:16,"aria-hidden":`true`}),a(`p`,{className:`text-sm`,children:`Xóa tất cả`})]})]}),a(`div`,{className:`flex flex-col gap-2.5`,children:D?.map((e,t)=>a(_,{file:e,onRemove:()=>A(t),progress:h?.[e.name]},t))})]}):null]})}function _({file:e,progress:i,onRemove:s}){return o(`div`,{className:`border-border/40 hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs`,children:[o(`div`,{className:`flex flex-1 gap-2.5`,children:[v(e)?a(y,{file:e}):null,o(`div`,{className:`flex w-full flex-col gap-2`,children:[o(`div`,{className:`flex flex-col gap-y-0.5`,children:[a(`p`,{className:`text-accent-foreground line-clamp-1 text-sm`,children:e.name}),a(`p`,{className:`text-muted-foreground text-xs`,children:t(e.size)})]}),i?a(r,{value:i}):null]})]}),a(`div`,{className:`flex items-center gap-2`,children:o(n,{type:`button`,variant:`ghost`,size:`icon`,className:`size-7`,onClick:s,children:[a(l,{size:16,className:`text-muted-foreground/60`,"aria-hidden":`true`}),a(`span`,{className:`sr-only`,children:`Remove file`})]})})]})}function v(e){return`preview`in e&&typeof e.preview==`string`}function y({file:e}){return e.type.startsWith(`image/`)?a(`img`,{src:e.preview,className:`border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm`}):a(s,{className:`text-muted-foreground size-10 border`,"aria-hidden":`true`})}export{g as FileUploader};
3
+ //# sourceMappingURL=file-uploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-uploader.js","names":["setValue: React.Dispatch<React.SetStateAction<T | undefined>>","value"],"sources":["../../packages/hooks/use-callback-ref.ts","../../packages/hooks/use-controllable-state.ts","../../packages/components/ui/file-uploader.tsx"],"sourcesContent":["import React from \"react\";\n\n/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/use-callback-ref/src/useCallbackRef.tsx\n */\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: never[]) => unknown>(\n callback: T | undefined,\n): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(\n () => ((...args) => callbackRef.current?.(...args)) as T,\n [],\n );\n}\n\nexport { useCallbackRef };\n","import React from \"react\";\n\nimport { useCallbackRef } from \"./use-callback-ref\";\n\n/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/use-controllable-state/src/useControllableState.tsx\n */\n\ntype UseControllableStateParams<T> = {\n prop?: T | undefined;\n defaultProp?: T | undefined;\n onChange?: (state: T) => void;\n};\n\ntype SetStateFn<T> = (prevState?: T) => T;\n\nfunction useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {},\n}: UseControllableStateParams<T>) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n defaultProp,\n onChange,\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n\n const setValue: React.Dispatch<React.SetStateAction<T | undefined>> =\n React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue as SetStateFn<T>;\n const value =\n typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value !== prop) handleChange(value as T);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange],\n );\n\n return [value, setValue] as const;\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, \"prop\">) {\n const uncontrolledState = React.useState<T | undefined>(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value as T);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n\n return uncontrolledState;\n}\n\nexport { useControllableState };\n","\"use client\";\nimport React from \"react\";\nimport { FileText, Image, Trash2, Upload } from \"lucide-react\";\nimport Dropzone, {\n type DropzoneProps,\n type FileRejection,\n} from \"react-dropzone\";\nimport { toast } from \"sonner\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { useControllableState } from \"@/hooks/use-controllable-state\";\nimport { cn, formatBytes } from \"@/lib/utils\";\n\ninterface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Value of the uploader.\n * @type File[]\n * @default undefined\n * @example value={files}\n */\n value?: File[];\n\n /**\n * Function to be called when the value changes.\n * @type (files: File[]) => void\n * @default undefined\n * @example onValueChange={(files) => setFiles(files)}\n */\n onValueChange?: (files: File[]) => void;\n\n /**\n * Function to be called when files are uploaded.\n * @type (files: File[]) => Promise<void>\n * @default undefined\n * @example onUpload={(files) => uploadFiles(files)}\n */\n onUpload?: (files: File[]) => Promise<void>;\n\n /**\n * Progress of the uploaded files.\n * @type Record<string, number> | undefined\n * @default undefined\n * @example progresses={{ \"file1.png\": 50 }}\n */\n progresses?: Record<string, number>;\n\n /**\n * Accepted file types for the uploader.\n * @type { [key: string]: string[]}\n * @default\n * ```ts\n * { \"image/*\": [] }\n * ```\n * @example accept={[\"image/png\", \"image/jpeg\"]}\n */\n accept?: DropzoneProps[\"accept\"];\n\n /**\n * Maximum file size for the uploader.\n * @type number | undefined\n * @default 1024 * 1024 * 2 // 2MB\n * @example maxSize={1024 * 1024 * 2} // 2MB\n */\n maxSize?: DropzoneProps[\"maxSize\"];\n\n /**\n * Maximum number of files for the uploader.\n * @type number | undefined\n * @default 1\n * @example maxFileCount={4}\n */\n maxFileCount?: DropzoneProps[\"maxFiles\"];\n\n /**\n * Whether the uploader should accept multiple files.\n * @type boolean\n * @default false\n * @example multiple\n */\n multiple?: boolean;\n\n /**\n * Whether the uploader is disabled.\n * @type boolean\n * @default false\n * @example disabled\n */\n disabled?: boolean;\n\n showText?: boolean;\n iconSize?: number;\n}\n\nexport function FileUploader(props: FileUploaderProps) {\n const {\n value: valueProp,\n onValueChange,\n onUpload,\n progresses,\n accept = {\n \"image/*\": [],\n },\n maxSize = 1024 * 1024 * 2,\n maxFileCount = 1,\n multiple = false,\n disabled = false,\n showText = true,\n iconSize,\n className,\n ...dropzoneProps\n } = props;\n\n const [files, setFiles] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n });\n\n const onDrop = React.useCallback(\n (acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n if (!multiple && maxFileCount === 1 && acceptedFiles.length > 1) {\n toast.error(\"Cannot upload more than 1 file at a time\");\n\n return;\n }\n\n if ((files?.length ?? 0) + acceptedFiles.length > maxFileCount) {\n toast.error(`Cannot upload more than ${maxFileCount} files`);\n return;\n }\n\n const newFiles = acceptedFiles.map((file) =>\n Object.assign(file, {\n preview: URL.createObjectURL(file),\n }),\n );\n\n const updatedFiles = files ? [...files, ...newFiles] : newFiles;\n\n setFiles(updatedFiles);\n\n if (rejectedFiles.length > 0) {\n rejectedFiles.forEach(({ file }) => {\n toast.error(`File ${file.name} was rejected`);\n });\n }\n\n if (\n onUpload &&\n updatedFiles.length > 0 &&\n updatedFiles.length <= maxFileCount\n ) {\n const target =\n updatedFiles.length > 0 ? `${updatedFiles.length} files` : `file`;\n\n onUpload(updatedFiles).then(() => {\n setFiles([]);\n toast(`${target} uploaded`);\n });\n }\n },\n\n [files, maxFileCount, multiple, onUpload, setFiles],\n );\n\n function onRemove(index: number) {\n if (!files) return;\n\n if (isFileWithPreview(files[index])) {\n URL.revokeObjectURL(files[index].preview);\n }\n\n const newFiles = files.filter((_, i) => i !== index);\n setFiles(newFiles);\n onValueChange?.(newFiles);\n }\n\n // Revoke preview url when component unmounts\n React.useEffect(() => {\n return () => {\n if (!files) return;\n files.forEach((file) => {\n if (isFileWithPreview(file)) {\n URL.revokeObjectURL(file.preview);\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const isDisabled = disabled || (files?.length ?? 0) >= maxFileCount;\n\n return (\n <div className=\"relative flex w-full flex-col gap-6\">\n <Dropzone\n onDrop={onDrop}\n accept={accept}\n maxSize={maxSize}\n maxFiles={maxFileCount}\n multiple={maxFileCount > 1 || multiple}\n disabled={isDisabled}\n >\n {({ getRootProps, getInputProps, isDragActive }) => (\n <div\n {...getRootProps()}\n className={cn(\n \"group\",\n \"border-muted-foreground/25\",\n \"hover:bg-muted/25\",\n \"relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition\",\n \"ring-offset-background\",\n \"focus-visible:ring-ring\",\n \"focus-visible:ring-2\",\n \"focus-visible:ring-offset-2\",\n \"focus-visible:outline-hidden\",\n isDragActive && \"border-muted-foreground/50\",\n isDisabled && \"pointer-events-none opacity-60\",\n className,\n )}\n {...dropzoneProps}\n >\n <input {...getInputProps()} />\n {isDragActive ? (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload\n className=\"text-muted-foreground size-7\"\n aria-hidden=\"true\"\n />\n </div>\n <p className=\"text-muted-foreground font-medium\">\n Drop the files here\n </p>\n </div>\n ) : (\n <div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n <div className=\"rounded-full border border-dashed p-3\">\n <Upload\n size={iconSize || 24}\n className=\"text-muted-foreground\"\n aria-hidden=\"true\"\n />\n </div>\n {showText && (\n <div className=\"flex flex-col gap-px\">\n <p className=\"text-muted-foreground text-xs font-medium\">\n Drag {`'n'`} drop files here, or click to select files\n </p>\n <p className=\"text-muted-foreground/70 text-xs\">\n You can upload\n {maxFileCount > 1\n ? ` ${maxFileCount === Infinity ? \"multiple\" : maxFileCount}\n files (up to ${formatBytes(maxSize)} each)`\n : ` a file with ${formatBytes(maxSize)}`}\n </p>\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Dropzone>\n {files?.length ? (\n <div className=\"h-fit w-full overflow-y-auto\">\n <div className=\"flex items-center justify-between px-3 py-2.5\">\n <div className=\"flex items-center gap-1\">\n <Image\n className=\"text-muted-foreground size-4\"\n aria-hidden=\"true\"\n />\n <p className=\"text-sm\">Ảnh đã tải lên ({files.length})</p>\n </div>\n <button\n className=\"hover:text-muted-foreground text-muted-foreground/60 flex cursor-pointer items-center gap-1 transition-colors duration-200\"\n onClick={() => {\n if (!files) return;\n files.forEach((file) => {\n if (!isFileWithPreview(file)) return;\n URL.revokeObjectURL(file.preview);\n });\n setFiles([]);\n onValueChange?.([]);\n }}\n >\n <Trash2 size={16} aria-hidden=\"true\" />\n <p className=\"text-sm\">Xóa tất cả</p>\n </button>\n </div>\n <div className=\"flex flex-col gap-2.5\">\n {files?.map((file, index) => (\n <FileCard\n key={index}\n file={file}\n onRemove={() => onRemove(index)}\n progress={progresses?.[file.name]}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\ninterface FileCardProps {\n file: File;\n onRemove: () => void;\n progress?: number;\n}\n\nfunction FileCard({ file, progress, onRemove }: FileCardProps) {\n return (\n <div className=\"border-border/40 hover:border-border relative flex items-center gap-4 rounded-md border py-2 pr-3 pl-2 shadow-xs\">\n <div className=\"flex flex-1 gap-2.5\">\n {isFileWithPreview(file) ? <FilePreview file={file} /> : null}\n <div className=\"flex w-full flex-col gap-2\">\n <div className=\"flex flex-col gap-y-0.5\">\n <p className=\"text-accent-foreground line-clamp-1 text-sm\">\n {file.name}\n </p>\n <p className=\"text-muted-foreground text-xs\">\n {formatBytes(file.size)}\n </p>\n </div>\n {progress ? <Progress value={progress} /> : null}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-7\"\n onClick={onRemove}\n >\n <Trash2\n size={16}\n className=\"text-muted-foreground/60\"\n aria-hidden=\"true\"\n />\n <span className=\"sr-only\">Remove file</span>\n </Button>\n </div>\n </div>\n );\n}\n\nfunction isFileWithPreview(file: File): file is File & { preview: string } {\n return \"preview\" in file && typeof file.preview === \"string\";\n}\n\ninterface FilePreviewProps {\n file: File & { preview: string };\n}\n\nfunction FilePreview({ file }: FilePreviewProps) {\n if (file.type.startsWith(\"image/\")) {\n return (\n <img\n src={file.preview}\n className=\"border-border aspect-square size-10 shrink-0 rounded border object-cover object-top shadow-sm\"\n />\n );\n }\n\n return (\n <FileText\n className=\"text-muted-foreground size-10 border\"\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ "use client";require(`../utils-BsjVK5EW.cjs`),require(`../label-CunjD1rx.cjs`);const e=require(`../form-CYZkgobJ.cjs`);exports.Form=e.Form,exports.FormControl=e.FormControl,exports.FormDescription=e.FormDescription,exports.FormField=e.FormField,exports.FormItem=e.FormItem,exports.FormLabel=e.FormLabel,exports.FormMessage=e.FormMessage,exports.useFormField=e.useFormField;
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+ import { ControllerProps, FieldPath, FieldValues } from "react-hook-form";
3
+ import { Label, Slot } from "radix-ui";
4
+
5
+ //#region packages/components/ui/form.d.ts
6
+ declare const Form: any;
7
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
8
+ ...props
9
+ }: ControllerProps<TFieldValues, TName>) => any;
10
+ declare const useFormField: () => any;
11
+ declare function FormItem({
12
+ className,
13
+ ...props
14
+ }: React.ComponentProps<"div">): any;
15
+ declare function FormLabel({
16
+ className,
17
+ ...props
18
+ }: React.ComponentProps<typeof Label.Root>): any;
19
+ declare function FormControl({
20
+ ...props
21
+ }: React.ComponentProps<typeof Slot.Slot>): any;
22
+ declare function FormDescription({
23
+ className,
24
+ ...props
25
+ }: React.ComponentProps<"p">): any;
26
+ declare function FormMessage({
27
+ className,
28
+ children,
29
+ ...props
30
+ }: React.ComponentProps<"p">): any;
31
+ //#endregion
32
+ export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField };
33
+ //# sourceMappingURL=form.d.cts.map