@customafk/lunas-ui 0.1.93 → 0.1.94

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 (485) hide show
  1. package/dist/{avatar-DjCXs3FZ.mjs → avatar-DReNH6rV.mjs} +1 -1
  2. package/dist/{avatar-DjCXs3FZ.mjs.map → avatar-DReNH6rV.mjs.map} +1 -1
  3. package/dist/{avatar-dAu1c0bC.cjs → avatar-aVxo69zP.cjs} +1 -1
  4. package/dist/{avatar-dAu1c0bC.cjs.map → avatar-aVxo69zP.cjs.map} +1 -1
  5. package/dist/badge-B4Fa7-J3.mjs +2 -0
  6. package/dist/badge-B4Fa7-J3.mjs.map +1 -0
  7. package/dist/badge-cvLJyaCA.cjs +2 -0
  8. package/dist/badge-cvLJyaCA.cjs.map +1 -0
  9. package/dist/button-8Snjc8iT.cjs +2 -0
  10. package/dist/{button-BLYTfCyl.cjs.map → button-8Snjc8iT.cjs.map} +1 -1
  11. package/dist/{button-CFDexiLY.d.cts → button-CHTjm4n8.d.cts} +8 -8
  12. package/dist/button-C_yZHudZ.mjs +2 -0
  13. package/dist/{button-BlQN92Jt.mjs.map → button-C_yZHudZ.mjs.map} +1 -1
  14. package/dist/{button-CePXFHnA.d.mts → button-c61Vw1Ns.d.mts} +8 -8
  15. package/dist/{button.variants-Bo2vzQp5.cjs → button.variants-8QOIR433.cjs} +1 -1
  16. package/dist/{button.variants-Bo2vzQp5.cjs.map → button.variants-8QOIR433.cjs.map} +1 -1
  17. package/dist/{button.variants-DBOg9vCn.mjs → button.variants-CL2rLGYO.mjs} +1 -1
  18. package/dist/{button.variants-DBOg9vCn.mjs.map → button.variants-CL2rLGYO.mjs.map} +1 -1
  19. package/dist/calendar-DgLMLD8R.cjs +2 -0
  20. package/dist/calendar-DgLMLD8R.cjs.map +1 -0
  21. package/dist/calendar-e9Pu8pNj.mjs +2 -0
  22. package/dist/calendar-e9Pu8pNj.mjs.map +1 -0
  23. package/dist/cards/grid-product-card.cjs +1 -1
  24. package/dist/cards/grid-product-card.cjs.map +1 -1
  25. package/dist/cards/grid-product-card.mjs +1 -1
  26. package/dist/cards/grid-product-card.mjs.map +1 -1
  27. package/dist/cards/product-card.cjs +1 -1
  28. package/dist/cards/product-card.cjs.map +1 -1
  29. package/dist/cards/product-card.mjs +1 -1
  30. package/dist/cards/product-card.mjs.map +1 -1
  31. package/dist/cards/simple-card.cjs +1 -1
  32. package/dist/cards/simple-card.cjs.map +1 -1
  33. package/dist/cards/simple-card.d.mts +2 -2
  34. package/dist/cards/simple-card.mjs +1 -1
  35. package/dist/cards/simple-card.mjs.map +1 -1
  36. package/dist/checkbox-Bg2FiuQw.mjs +2 -0
  37. package/dist/checkbox-Bg2FiuQw.mjs.map +1 -0
  38. package/dist/checkbox-C0fSWwmD.cjs +2 -0
  39. package/dist/checkbox-C0fSWwmD.cjs.map +1 -0
  40. package/dist/{close-rM-Ao1Gf.cjs → close-D_Ge7gnP.cjs} +1 -1
  41. package/dist/{close-rM-Ao1Gf.cjs.map → close-D_Ge7gnP.cjs.map} +1 -1
  42. package/dist/{close-BSZehrQx.mjs → close-DfuHB7kq.mjs} +1 -1
  43. package/dist/{close-BSZehrQx.mjs.map → close-DfuHB7kq.mjs.map} +1 -1
  44. package/dist/{command-CzE8NTMm.cjs → command-BciJADha.cjs} +2 -2
  45. package/dist/{command-CzE8NTMm.cjs.map → command-BciJADha.cjs.map} +1 -1
  46. package/dist/{command-OYUOsPvN.mjs → command-DSvEsWG8.mjs} +2 -2
  47. package/dist/{command-OYUOsPvN.mjs.map → command-DSvEsWG8.mjs.map} +1 -1
  48. package/dist/data-display/country.cjs +1 -1
  49. package/dist/data-display/country.d.cts +1 -1
  50. package/dist/data-display/country.d.mts +1 -1
  51. package/dist/data-display/country.mjs +1 -1
  52. package/dist/data-display/data-list.cjs +1 -1
  53. package/dist/data-display/data-list.mjs +1 -1
  54. package/dist/data-display/date-tooltip.cjs +1 -1
  55. package/dist/data-display/date-tooltip.mjs +1 -1
  56. package/dist/data-display/date.cjs +1 -1
  57. package/dist/data-display/date.mjs +1 -1
  58. package/dist/data-display/empty.cjs +1 -1
  59. package/dist/data-display/empty.d.cts +2 -2
  60. package/dist/data-display/empty.mjs +1 -1
  61. package/dist/data-display/name.cjs +1 -1
  62. package/dist/data-display/name.mjs +1 -1
  63. package/dist/data-display/phone-number.cjs +1 -1
  64. package/dist/data-display/phone-number.mjs +1 -1
  65. package/dist/data-display/role-badge.cjs +1 -1
  66. package/dist/data-display/role-badge.d.cts +1 -1
  67. package/dist/data-display/role-badge.d.mts +1 -1
  68. package/dist/data-display/role-badge.mjs +1 -1
  69. package/dist/data-display/statistic.cjs +1 -1
  70. package/dist/data-display/statistic.d.cts +2 -2
  71. package/dist/data-display/statistic.d.mts +2 -2
  72. package/dist/data-display/statistic.mjs +1 -1
  73. package/dist/data-display/user.cjs +1 -1
  74. package/dist/data-display/user.mjs +1 -1
  75. package/dist/{date-Bznq86tY.mjs → date-CK7XBqG9.mjs} +2 -2
  76. package/dist/{date-Bznq86tY.mjs.map → date-CK7XBqG9.mjs.map} +1 -1
  77. package/dist/{date-CuRT4hmU.cjs → date-CTmoK8tv.cjs} +2 -2
  78. package/dist/{date-CuRT4hmU.cjs.map → date-CTmoK8tv.cjs.map} +1 -1
  79. package/dist/{dialog-DigNrfAO.d.mts → dialog-CyLgmqny.d.cts} +12 -12
  80. package/dist/dialog-D5TBBX99.cjs +2 -0
  81. package/dist/dialog-D5TBBX99.cjs.map +1 -0
  82. package/dist/dialog-DSvmcuYl.mjs +2 -0
  83. package/dist/dialog-DSvmcuYl.mjs.map +1 -0
  84. package/dist/{dialog-UWrYag-8.d.cts → dialog-DdkuhWsq.d.mts} +12 -12
  85. package/dist/dialogs/confirm-dialog.cjs +1 -1
  86. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  87. package/dist/dialogs/confirm-dialog.mjs +1 -1
  88. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  89. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  90. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +25 -25
  91. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +27 -27
  92. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  93. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  94. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  95. package/dist/dialogs/error-dialog.cjs +1 -1
  96. package/dist/dialogs/error-dialog.cjs.map +1 -1
  97. package/dist/dialogs/error-dialog.mjs +1 -1
  98. package/dist/dialogs/error-dialog.mjs.map +1 -1
  99. package/dist/dialogs/loading-dialog.cjs +1 -1
  100. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  101. package/dist/dialogs/loading-dialog.mjs +1 -1
  102. package/dist/dialogs/loading-dialog.mjs.map +1 -1
  103. package/dist/dist-BudM04oj.cjs +2 -0
  104. package/dist/{dist-BqoK5OAd.cjs.map → dist-BudM04oj.cjs.map} +1 -1
  105. package/dist/dist-CvmzZ_6C.mjs +2 -0
  106. package/dist/{dist-D2ydYRc4.mjs.map → dist-CvmzZ_6C.mjs.map} +1 -1
  107. package/dist/{dropdown-menu-BwcDzb4B.mjs → dropdown-menu-B8GUTfTp.mjs} +1 -1
  108. package/dist/{dropdown-menu-BwcDzb4B.mjs.map → dropdown-menu-B8GUTfTp.mjs.map} +1 -1
  109. package/dist/{dropdown-menu-5Zyw5t_J.cjs → dropdown-menu-BuyuU6uF.cjs} +1 -1
  110. package/dist/{dropdown-menu-5Zyw5t_J.cjs.map → dropdown-menu-BuyuU6uF.cjs.map} +1 -1
  111. package/dist/features/descriptions/index.cjs +1 -1
  112. package/dist/features/descriptions/index.d.cts +4 -4
  113. package/dist/features/descriptions/index.d.mts +4 -4
  114. package/dist/features/descriptions/index.mjs +1 -1
  115. package/dist/features/search-modal/index.cjs +1 -1
  116. package/dist/features/search-modal/index.cjs.map +1 -1
  117. package/dist/features/search-modal/index.d.cts +2 -2
  118. package/dist/features/search-modal/index.d.mts +2 -2
  119. package/dist/features/search-modal/index.mjs +1 -1
  120. package/dist/features/search-modal/index.mjs.map +1 -1
  121. package/dist/features/tables/index.cjs +1 -1
  122. package/dist/features/tables/index.cjs.map +1 -1
  123. package/dist/features/tables/index.d.cts +152 -31
  124. package/dist/features/tables/index.d.mts +152 -31
  125. package/dist/features/tables/index.mjs +1 -1
  126. package/dist/features/tables/index.mjs.map +1 -1
  127. package/dist/features/tanstack-form/index.cjs +1 -1
  128. package/dist/features/tanstack-form/index.cjs.map +1 -1
  129. package/dist/features/tanstack-form/index.d.cts +280 -280
  130. package/dist/features/tanstack-form/index.d.mts +280 -280
  131. package/dist/features/tanstack-form/index.mjs +1 -1
  132. package/dist/features/tanstack-form/index.mjs.map +1 -1
  133. package/dist/{flex-_tvOU0u1.mjs → flex-BP8sTi70.mjs} +2 -2
  134. package/dist/{flex-_tvOU0u1.mjs.map → flex-BP8sTi70.mjs.map} +1 -1
  135. package/dist/{flex-DGPQRbN6.cjs → flex-twCgWyx1.cjs} +2 -2
  136. package/dist/{flex-DGPQRbN6.cjs.map → flex-twCgWyx1.cjs.map} +1 -1
  137. package/dist/heading--VmdIi7C.mjs +2 -0
  138. package/dist/heading--VmdIi7C.mjs.map +1 -0
  139. package/dist/heading-BEm5CCSE.cjs +2 -0
  140. package/dist/heading-BEm5CCSE.cjs.map +1 -0
  141. package/dist/image-CS_Q0WA7.mjs +2 -0
  142. package/dist/{image-Dgxtk54D.mjs.map → image-CS_Q0WA7.mjs.map} +1 -1
  143. package/dist/image-DuFv8sPr.cjs +2 -0
  144. package/dist/{image-D2PTBG_7.cjs.map → image-DuFv8sPr.cjs.map} +1 -1
  145. package/dist/input-BFWWaN-v.cjs +2 -0
  146. package/dist/input-BFWWaN-v.cjs.map +1 -0
  147. package/dist/input-BMz2evzs.d.mts +25 -0
  148. package/dist/input-DBtIgQB6.mjs +2 -0
  149. package/dist/input-DBtIgQB6.mjs.map +1 -0
  150. package/dist/input-mGRGirZ_.d.cts +25 -0
  151. package/dist/{label-D6vHFlHX.cjs → label-BzfsTrVt.cjs} +1 -1
  152. package/dist/{label-D6vHFlHX.cjs.map → label-BzfsTrVt.cjs.map} +1 -1
  153. package/dist/{label-DW6shAXZ.mjs → label-Dqr8nxWi.mjs} +1 -1
  154. package/dist/{label-DW6shAXZ.mjs.map → label-Dqr8nxWi.mjs.map} +1 -1
  155. package/dist/layouts/cms-layout/index.cjs +1 -1
  156. package/dist/layouts/cms-layout/index.mjs +1 -1
  157. package/dist/layouts/flex.cjs +1 -1
  158. package/dist/layouts/flex.d.cts +5 -5
  159. package/dist/layouts/flex.d.mts +6 -6
  160. package/dist/layouts/flex.mjs +1 -1
  161. package/dist/layouts/payment-layout/index.cjs +1 -1
  162. package/dist/layouts/payment-layout/index.mjs +1 -1
  163. package/dist/pages/FeatureDeveloping.cjs +1 -1
  164. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  165. package/dist/pages/FeatureDeveloping.d.mts +2 -2
  166. package/dist/pages/FeatureDeveloping.mjs +1 -1
  167. package/dist/pages/FeatureFixing.cjs +1 -1
  168. package/dist/pages/FeatureFixing.d.cts +2 -2
  169. package/dist/pages/FeatureFixing.d.mts +2 -2
  170. package/dist/pages/FeatureFixing.mjs +1 -1
  171. package/dist/pages/NotAuthorized.cjs +1 -1
  172. package/dist/pages/NotAuthorized.d.cts +2 -2
  173. package/dist/pages/NotAuthorized.d.mts +2 -2
  174. package/dist/pages/NotAuthorized.mjs +1 -1
  175. package/dist/pages/NotFound.cjs +1 -1
  176. package/dist/pages/NotFound.d.cts +2 -2
  177. package/dist/pages/NotFound.d.mts +2 -2
  178. package/dist/pages/NotFound.mjs +1 -1
  179. package/dist/paragraph-4z_6Z5aj.cjs +2 -0
  180. package/dist/paragraph-4z_6Z5aj.cjs.map +1 -0
  181. package/dist/paragraph-BTJV4aeF.mjs +2 -0
  182. package/dist/paragraph-BTJV4aeF.mjs.map +1 -0
  183. package/dist/popover-BckwBuuD.mjs +2 -0
  184. package/dist/popover-BckwBuuD.mjs.map +1 -0
  185. package/dist/popover-DzDrgttC.cjs +2 -0
  186. package/dist/popover-DzDrgttC.cjs.map +1 -0
  187. package/dist/radio-group-CBhRsUjN.cjs +2 -0
  188. package/dist/radio-group-CBhRsUjN.cjs.map +1 -0
  189. package/dist/radio-group-Cem8O6BK.mjs +2 -0
  190. package/dist/radio-group-Cem8O6BK.mjs.map +1 -0
  191. package/dist/resizable-DXHfkbaz.mjs +2 -0
  192. package/dist/resizable-DXHfkbaz.mjs.map +1 -0
  193. package/dist/resizable-mlGS6Zto.cjs +2 -0
  194. package/dist/resizable-mlGS6Zto.cjs.map +1 -0
  195. package/dist/select-2CgwiefV.cjs +2 -0
  196. package/dist/select-2CgwiefV.cjs.map +1 -0
  197. package/dist/select-CivtMKTM.mjs +2 -0
  198. package/dist/select-CivtMKTM.mjs.map +1 -0
  199. package/dist/{separator-CWar33xc.mjs → separator-Bf0gymN4.mjs} +1 -1
  200. package/dist/{separator-CWar33xc.mjs.map → separator-Bf0gymN4.mjs.map} +1 -1
  201. package/dist/{separator-DSZyCT2g.cjs → separator-C3ip6sbh.cjs} +1 -1
  202. package/dist/{separator-DSZyCT2g.cjs.map → separator-C3ip6sbh.cjs.map} +1 -1
  203. package/dist/{sheet-CxHNvLcP.cjs → sheet-5MJRtrfG.cjs} +1 -1
  204. package/dist/{sheet-CxHNvLcP.cjs.map → sheet-5MJRtrfG.cjs.map} +1 -1
  205. package/dist/{sheet-CUfrx04D.mjs → sheet-oadGRiie.mjs} +1 -1
  206. package/dist/{sheet-CUfrx04D.mjs.map → sheet-oadGRiie.mjs.map} +1 -1
  207. package/dist/{skeleton-6MpPv0K3.mjs → skeleton-Ba6koCVf.mjs} +1 -1
  208. package/dist/{skeleton-6MpPv0K3.mjs.map → skeleton-Ba6koCVf.mjs.map} +1 -1
  209. package/dist/{skeleton-oQFT4xR2.cjs → skeleton-CHympz8k.cjs} +1 -1
  210. package/dist/{skeleton-oQFT4xR2.cjs.map → skeleton-CHympz8k.cjs.map} +1 -1
  211. package/dist/spinner-Chm_2fLr.cjs +2 -0
  212. package/dist/spinner-Chm_2fLr.cjs.map +1 -0
  213. package/dist/spinner-D1v3Bard.mjs +2 -0
  214. package/dist/spinner-D1v3Bard.mjs.map +1 -0
  215. package/dist/systems/google.cjs +1 -1
  216. package/dist/systems/google.mjs +1 -1
  217. package/dist/textarea-COQoSVSc.cjs +2 -0
  218. package/dist/textarea-COQoSVSc.cjs.map +1 -0
  219. package/dist/textarea-bLtmb71c.mjs +2 -0
  220. package/dist/textarea-bLtmb71c.mjs.map +1 -0
  221. package/dist/{tooltip-Dd1torAV.mjs → tooltip-B3dTcgcc.mjs} +1 -1
  222. package/dist/{tooltip-Dd1torAV.mjs.map → tooltip-B3dTcgcc.mjs.map} +1 -1
  223. package/dist/{tooltip-DMFoP_sB.cjs → tooltip-DC6i1A25.cjs} +1 -1
  224. package/dist/{tooltip-DMFoP_sB.cjs.map → tooltip-DC6i1A25.cjs.map} +1 -1
  225. package/dist/{types-DmtzpUIM.cjs → types-BD1t0Bj8.cjs} +1 -1
  226. package/dist/{types-BQMTFD_z.mjs.map → types-BD1t0Bj8.cjs.map} +1 -1
  227. package/dist/{types-Dl3D4kHZ.d.cts → types-Bd0JePtp.d.cts} +3 -2
  228. package/dist/{types-spXc_7Mh.d.mts → types-BpHcqlOI.d.mts} +3 -2
  229. package/dist/{types-BQMTFD_z.mjs → types-DBD4LOem.mjs} +1 -1
  230. package/dist/{types-DmtzpUIM.cjs.map → types-DBD4LOem.mjs.map} +1 -1
  231. package/dist/typography/paragraph.cjs +1 -1
  232. package/dist/typography/paragraph.d.cts +15 -3
  233. package/dist/typography/paragraph.d.mts +15 -3
  234. package/dist/typography/paragraph.mjs +1 -1
  235. package/dist/typography/title.cjs +1 -1
  236. package/dist/typography/title.d.cts +2 -2
  237. package/dist/typography/title.d.mts +2 -2
  238. package/dist/typography/title.mjs +1 -1
  239. package/dist/ui/alert-dialog.cjs +1 -1
  240. package/dist/ui/alert-dialog.cjs.map +1 -1
  241. package/dist/ui/alert-dialog.d.cts +12 -12
  242. package/dist/ui/alert-dialog.d.mts +12 -12
  243. package/dist/ui/alert-dialog.mjs +1 -1
  244. package/dist/ui/alert-dialog.mjs.map +1 -1
  245. package/dist/ui/alert.cjs +1 -1
  246. package/dist/ui/alert.d.cts +7 -7
  247. package/dist/ui/alert.d.mts +7 -7
  248. package/dist/ui/alert.mjs +1 -1
  249. package/dist/ui/aspect-ratio.d.cts +2 -2
  250. package/dist/ui/aspect-ratio.d.mts +2 -2
  251. package/dist/ui/avatar.cjs +1 -1
  252. package/dist/ui/avatar.d.mts +4 -4
  253. package/dist/ui/avatar.mjs +1 -1
  254. package/dist/ui/badge.cjs +1 -1
  255. package/dist/ui/badge.d.cts +6 -6
  256. package/dist/ui/badge.d.mts +4 -4
  257. package/dist/ui/badge.mjs +1 -1
  258. package/dist/ui/breadcrumb.cjs +1 -1
  259. package/dist/ui/breadcrumb.d.cts +8 -8
  260. package/dist/ui/breadcrumb.d.mts +8 -8
  261. package/dist/ui/breadcrumb.mjs +1 -1
  262. package/dist/ui/button-group.cjs +1 -1
  263. package/dist/ui/button-group.d.cts +6 -6
  264. package/dist/ui/button-group.d.mts +6 -6
  265. package/dist/ui/button-group.mjs +1 -1
  266. package/dist/ui/button.cjs +1 -1
  267. package/dist/ui/button.d.cts +1 -1
  268. package/dist/ui/button.d.mts +1 -1
  269. package/dist/ui/button.mjs +1 -1
  270. package/dist/ui/buttons/add-new.cjs +1 -1
  271. package/dist/ui/buttons/add-new.mjs +1 -1
  272. package/dist/ui/buttons/edit.cjs +1 -1
  273. package/dist/ui/buttons/edit.mjs +1 -1
  274. package/dist/ui/buttons/refresh.cjs +1 -1
  275. package/dist/ui/buttons/refresh.mjs +1 -1
  276. package/dist/ui/buttons/trash.cjs +1 -1
  277. package/dist/ui/buttons/trash.mjs +1 -1
  278. package/dist/ui/buttons/upload-image.cjs +1 -1
  279. package/dist/ui/buttons/upload-image.mjs +1 -1
  280. package/dist/ui/calendar.cjs +1 -2
  281. package/dist/ui/calendar.d.cts +4 -4
  282. package/dist/ui/calendar.d.mts +4 -4
  283. package/dist/ui/calendar.mjs +1 -2
  284. package/dist/ui/card.cjs +1 -1
  285. package/dist/ui/card.cjs.map +1 -1
  286. package/dist/ui/card.d.cts +8 -8
  287. package/dist/ui/card.d.mts +8 -8
  288. package/dist/ui/card.mjs +1 -1
  289. package/dist/ui/card.mjs.map +1 -1
  290. package/dist/ui/carousel.cjs +1 -1
  291. package/dist/ui/carousel.d.cts +7 -7
  292. package/dist/ui/carousel.d.mts +7 -7
  293. package/dist/ui/carousel.mjs +1 -1
  294. package/dist/ui/checkbox.cjs +1 -1
  295. package/dist/ui/checkbox.d.cts +2 -2
  296. package/dist/ui/checkbox.d.mts +2 -2
  297. package/dist/ui/checkbox.mjs +1 -1
  298. package/dist/ui/collapsible.d.cts +4 -4
  299. package/dist/ui/collapsible.d.mts +4 -4
  300. package/dist/ui/command.cjs +1 -1
  301. package/dist/ui/command.d.cts +11 -11
  302. package/dist/ui/command.d.mts +11 -11
  303. package/dist/ui/command.mjs +1 -1
  304. package/dist/ui/context-menu.d.cts +16 -16
  305. package/dist/ui/context-menu.d.mts +16 -16
  306. package/dist/ui/dialog.cjs +1 -1
  307. package/dist/ui/dialog.d.cts +1 -1
  308. package/dist/ui/dialog.d.mts +1 -1
  309. package/dist/ui/dialog.mjs +1 -1
  310. package/dist/ui/drawer.d.cts +11 -11
  311. package/dist/ui/drawer.d.mts +11 -11
  312. package/dist/ui/dropdown-menu.cjs +1 -1
  313. package/dist/ui/dropdown-menu.d.cts +16 -16
  314. package/dist/ui/dropdown-menu.d.mts +16 -16
  315. package/dist/ui/dropdown-menu.mjs +1 -1
  316. package/dist/ui/empty.cjs +1 -1
  317. package/dist/ui/empty.d.cts +9 -9
  318. package/dist/ui/empty.d.mts +9 -9
  319. package/dist/ui/empty.mjs +1 -1
  320. package/dist/ui/field.cjs +1 -1
  321. package/dist/ui/field.d.cts +13 -13
  322. package/dist/ui/field.d.mts +24 -24
  323. package/dist/ui/field.mjs +1 -1
  324. package/dist/ui/file-uploader.cjs +2 -2
  325. package/dist/ui/file-uploader.d.cts +2 -2
  326. package/dist/ui/file-uploader.d.mts +2 -2
  327. package/dist/ui/file-uploader.mjs +2 -2
  328. package/dist/ui/form.cjs +1 -1
  329. package/dist/ui/form.d.cts +11 -11
  330. package/dist/ui/form.d.mts +7 -7
  331. package/dist/ui/form.mjs +1 -1
  332. package/dist/ui/hover-card.d.cts +4 -4
  333. package/dist/ui/hover-card.d.mts +4 -4
  334. package/dist/ui/image.cjs +1 -1
  335. package/dist/ui/image.mjs +1 -1
  336. package/dist/ui/input-otp.cjs +1 -1
  337. package/dist/ui/input-otp.d.cts +5 -5
  338. package/dist/ui/input-otp.d.mts +5 -5
  339. package/dist/ui/input-otp.mjs +1 -1
  340. package/dist/ui/input.cjs +1 -1
  341. package/dist/ui/input.d.cts +2 -2
  342. package/dist/ui/input.d.mts +2 -2
  343. package/dist/ui/input.mjs +1 -1
  344. package/dist/ui/inputs/search-input.cjs +1 -1
  345. package/dist/ui/inputs/search-input.d.cts +3 -3
  346. package/dist/ui/inputs/search-input.d.mts +3 -3
  347. package/dist/ui/inputs/search-input.mjs +1 -1
  348. package/dist/ui/item.cjs +1 -1
  349. package/dist/ui/item.d.cts +15 -15
  350. package/dist/ui/item.d.mts +12 -12
  351. package/dist/ui/item.mjs +1 -1
  352. package/dist/ui/label.cjs +1 -1
  353. package/dist/ui/label.d.cts +2 -2
  354. package/dist/ui/label.d.mts +2 -2
  355. package/dist/ui/label.mjs +1 -1
  356. package/dist/ui/menubar.d.mts +17 -17
  357. package/dist/ui/multi-select.cjs +1 -1
  358. package/dist/ui/multi-select.cjs.map +1 -1
  359. package/dist/ui/multi-select.d.cts +2 -2
  360. package/dist/ui/multi-select.d.mts +3 -3
  361. package/dist/ui/multi-select.mjs +1 -1
  362. package/dist/ui/multi-select.mjs.map +1 -1
  363. package/dist/ui/navigation-menu.cjs +1 -1
  364. package/dist/ui/navigation-menu.d.cts +11 -11
  365. package/dist/ui/navigation-menu.d.mts +11 -11
  366. package/dist/ui/navigation-menu.mjs +1 -1
  367. package/dist/ui/pagination.cjs +1 -1
  368. package/dist/ui/pagination.d.cts +9 -9
  369. package/dist/ui/pagination.d.mts +9 -9
  370. package/dist/ui/pagination.mjs +1 -1
  371. package/dist/ui/popover.cjs +1 -2
  372. package/dist/ui/popover.d.cts +10 -6
  373. package/dist/ui/popover.d.mts +10 -6
  374. package/dist/ui/popover.mjs +1 -2
  375. package/dist/ui/progress.d.cts +2 -2
  376. package/dist/ui/progress.d.mts +2 -2
  377. package/dist/ui/radio-group.cjs +1 -2
  378. package/dist/ui/radio-group.d.cts +3 -3
  379. package/dist/ui/radio-group.d.mts +3 -3
  380. package/dist/ui/radio-group.mjs +1 -2
  381. package/dist/ui/resizable.cjs +1 -1
  382. package/dist/ui/resizable.d.cts +36 -14
  383. package/dist/ui/resizable.d.mts +36 -14
  384. package/dist/ui/resizable.mjs +1 -1
  385. package/dist/ui/scroll-area.cjs +1 -1
  386. package/dist/ui/scroll-area.d.cts +6 -6
  387. package/dist/ui/scroll-area.d.mts +6 -6
  388. package/dist/ui/scroll-area.mjs +1 -1
  389. package/dist/ui/select.cjs +1 -2
  390. package/dist/ui/select.d.cts +10 -18
  391. package/dist/ui/select.d.mts +10 -18
  392. package/dist/ui/select.mjs +1 -2
  393. package/dist/ui/separator.cjs +1 -1
  394. package/dist/ui/separator.d.cts +2 -2
  395. package/dist/ui/separator.d.mts +2 -2
  396. package/dist/ui/separator.mjs +1 -1
  397. package/dist/ui/sheet.cjs +1 -1
  398. package/dist/ui/sheet.d.cts +9 -9
  399. package/dist/ui/sheet.d.mts +9 -9
  400. package/dist/ui/sheet.mjs +1 -1
  401. package/dist/ui/sidebar.cjs +1 -1
  402. package/dist/ui/sidebar.d.cts +29 -29
  403. package/dist/ui/sidebar.d.mts +29 -29
  404. package/dist/ui/sidebar.mjs +1 -1
  405. package/dist/ui/skeleton.cjs +1 -1
  406. package/dist/ui/skeleton.d.cts +2 -2
  407. package/dist/ui/skeleton.d.mts +2 -2
  408. package/dist/ui/skeleton.mjs +1 -1
  409. package/dist/ui/slider.cjs +1 -1
  410. package/dist/ui/slider.d.cts +2 -2
  411. package/dist/ui/slider.d.mts +2 -2
  412. package/dist/ui/slider.mjs +1 -1
  413. package/dist/ui/sonner.d.cts +2 -2
  414. package/dist/ui/sonner.d.mts +2 -2
  415. package/dist/ui/spinner.cjs +1 -2
  416. package/dist/ui/spinner.d.cts +2 -2
  417. package/dist/ui/spinner.d.mts +2 -2
  418. package/dist/ui/spinner.mjs +1 -2
  419. package/dist/ui/switch.d.cts +2 -2
  420. package/dist/ui/switch.d.mts +2 -2
  421. package/dist/ui/table.cjs +1 -1
  422. package/dist/ui/table.d.cts +18 -18
  423. package/dist/ui/table.d.mts +18 -18
  424. package/dist/ui/table.mjs +1 -1
  425. package/dist/ui/tabs.d.cts +5 -5
  426. package/dist/ui/tabs.d.mts +5 -5
  427. package/dist/ui/textarea.cjs +1 -2
  428. package/dist/ui/textarea.d.cts +2 -2
  429. package/dist/ui/textarea.d.mts +2 -2
  430. package/dist/ui/textarea.mjs +1 -2
  431. package/dist/ui/toggle-group.cjs +1 -1
  432. package/dist/ui/toggle-group.d.mts +3 -3
  433. package/dist/ui/toggle-group.mjs +1 -1
  434. package/dist/ui/toggle.cjs +1 -1
  435. package/dist/ui/toggle.d.cts +3 -3
  436. package/dist/ui/toggle.d.mts +5 -5
  437. package/dist/ui/toggle.mjs +1 -1
  438. package/dist/ui/tooltip.cjs +1 -1
  439. package/dist/ui/tooltip.d.cts +5 -5
  440. package/dist/ui/tooltip.mjs +1 -1
  441. package/package.json +1 -1
  442. package/dist/badge-CJ-SG_OK.mjs +0 -2
  443. package/dist/badge-CJ-SG_OK.mjs.map +0 -1
  444. package/dist/badge-CsDmp3ys.cjs +0 -2
  445. package/dist/badge-CsDmp3ys.cjs.map +0 -1
  446. package/dist/button-BLYTfCyl.cjs +0 -2
  447. package/dist/button-BlQN92Jt.mjs +0 -2
  448. package/dist/checkbox-D4K3ZATY.mjs +0 -2
  449. package/dist/checkbox-D4K3ZATY.mjs.map +0 -1
  450. package/dist/checkbox-DDuYFG0R.cjs +0 -2
  451. package/dist/checkbox-DDuYFG0R.cjs.map +0 -1
  452. package/dist/dialog-XvFmavuI.mjs +0 -2
  453. package/dist/dialog-XvFmavuI.mjs.map +0 -1
  454. package/dist/dialog-aRCyqFr-.cjs +0 -2
  455. package/dist/dialog-aRCyqFr-.cjs.map +0 -1
  456. package/dist/dist-BqoK5OAd.cjs +0 -2
  457. package/dist/dist-D2ydYRc4.mjs +0 -2
  458. package/dist/image-D2PTBG_7.cjs +0 -2
  459. package/dist/image-Dgxtk54D.mjs +0 -2
  460. package/dist/input-B2Y92Ylo.d.cts +0 -27
  461. package/dist/input-B6-pu-dE.d.mts +0 -27
  462. package/dist/input-CqN74taK.mjs +0 -2
  463. package/dist/input-CqN74taK.mjs.map +0 -1
  464. package/dist/input-dAoEznUI.cjs +0 -2
  465. package/dist/input-dAoEznUI.cjs.map +0 -1
  466. package/dist/paragraph-B9_-MKH8.cjs +0 -2
  467. package/dist/paragraph-B9_-MKH8.cjs.map +0 -1
  468. package/dist/paragraph-C83yi9US.mjs +0 -2
  469. package/dist/paragraph-C83yi9US.mjs.map +0 -1
  470. package/dist/resizable-BS63Xwia.cjs +0 -2
  471. package/dist/resizable-BS63Xwia.cjs.map +0 -1
  472. package/dist/resizable-BfkKNflf.mjs +0 -2
  473. package/dist/resizable-BfkKNflf.mjs.map +0 -1
  474. package/dist/ui/calendar.cjs.map +0 -1
  475. package/dist/ui/calendar.mjs.map +0 -1
  476. package/dist/ui/popover.cjs.map +0 -1
  477. package/dist/ui/popover.mjs.map +0 -1
  478. package/dist/ui/radio-group.cjs.map +0 -1
  479. package/dist/ui/radio-group.mjs.map +0 -1
  480. package/dist/ui/select.cjs.map +0 -1
  481. package/dist/ui/select.mjs.map +0 -1
  482. package/dist/ui/spinner.cjs.map +0 -1
  483. package/dist/ui/spinner.mjs.map +0 -1
  484. package/dist/ui/textarea.cjs.map +0 -1
  485. package/dist/ui/textarea.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- import { t as Input } from "../input-B6-pu-dE.mjs";
2
- export { Input };
1
+ import { n as InputVariantProps, r as inputVariants, t as Input } from "../input-BMz2evzs.mjs";
2
+ export { Input, InputVariantProps, inputVariants };
package/dist/ui/input.mjs CHANGED
@@ -1 +1 @@
1
- "use client";import{t as e}from"../input-CqN74taK.mjs";export{e as Input};
1
+ "use client";import{n as e,t}from"../input-DBtIgQB6.mjs";export{t as Input,e as inputVariants};
@@ -1,2 +1,2 @@
1
- const e=require(`../../chunk-Bmb41Sf3.cjs`),t=require(`../../input-dAoEznUI.cjs`);let n=require(`@customafk/react-toolkit/utils`),r=require(`react/jsx-runtime`),i=require(`lucide-react`);const a=({className:e,...a})=>(0,r.jsxs)(`div`,{className:`relative`,children:[(0,r.jsx)(t.t,{...a,type:`search`,className:(0,n.cn)(`ps-9 pe-9`,e)}),(0,r.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,r.jsx)(i.SearchIcon,{size:16})}),(0,r.jsx)(`button`,{className:`absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,r.jsx)(i.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]});exports.SearchInput=a;
1
+ const e=require(`../../chunk-Bmb41Sf3.cjs`),t=require(`../../input-BFWWaN-v.cjs`);let n=require(`@customafk/react-toolkit/utils`),r=require(`react/jsx-runtime`),i=require(`lucide-react`);const a=({className:e,...a})=>(0,r.jsxs)(`div`,{className:`relative`,children:[(0,r.jsx)(t.t,{...a,type:`search`,className:(0,n.cn)(`ps-9 pe-9`,e)}),(0,r.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,r.jsx)(i.SearchIcon,{size:16})}),(0,r.jsx)(`button`,{className:`absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,r.jsx)(i.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]});exports.SearchInput=a;
2
2
  //# sourceMappingURL=search-input.cjs.map
@@ -1,12 +1,12 @@
1
- import { t as Input } from "../../input-B2Y92Ylo.cjs";
2
- import * as react_jsx_runtime74 from "react/jsx-runtime";
1
+ import { t as Input } from "../../input-mGRGirZ_.cjs";
2
+ import * as react_jsx_runtime30 from "react/jsx-runtime";
3
3
 
4
4
  //#region packages/components/ui/inputs/search-input.d.ts
5
5
  type Props = React.ComponentPropsWithoutRef<typeof Input>;
6
6
  declare const SearchInput: ({
7
7
  className,
8
8
  ...rest
9
- }: Props) => react_jsx_runtime74.JSX.Element;
9
+ }: Props) => react_jsx_runtime30.JSX.Element;
10
10
  //#endregion
11
11
  export { SearchInput };
12
12
  //# sourceMappingURL=search-input.d.cts.map
@@ -1,12 +1,12 @@
1
- import { t as Input } from "../../input-B6-pu-dE.mjs";
2
- import * as react_jsx_runtime148 from "react/jsx-runtime";
1
+ import { t as Input } from "../../input-BMz2evzs.mjs";
2
+ import * as react_jsx_runtime39 from "react/jsx-runtime";
3
3
 
4
4
  //#region packages/components/ui/inputs/search-input.d.ts
5
5
  type Props = React.ComponentPropsWithoutRef<typeof Input>;
6
6
  declare const SearchInput: ({
7
7
  className,
8
8
  ...rest
9
- }: Props) => react_jsx_runtime148.JSX.Element;
9
+ }: Props) => react_jsx_runtime39.JSX.Element;
10
10
  //#endregion
11
11
  export { SearchInput };
12
12
  //# sourceMappingURL=search-input.d.mts.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../../input-CqN74taK.mjs";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{ArrowRightIcon as i,SearchIcon as a}from"lucide-react";const o=({className:o,...s})=>r(`div`,{className:`relative`,children:[n(e,{...s,type:`search`,className:t(`ps-9 pe-9`,o)}),n(`div`,{className:`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:n(a,{size:16})}),n(`button`,{className:`absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:n(i,{size:16,"aria-hidden":`true`})})]});export{o as SearchInput};
1
+ import{t as e}from"../../input-DBtIgQB6.mjs";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{ArrowRightIcon as i,SearchIcon as a}from"lucide-react";const o=({className:o,...s})=>r(`div`,{className:`relative`,children:[n(e,{...s,type:`search`,className:t(`ps-9 pe-9`,o)}),n(`div`,{className:`pointer-events-none absolute inset-y-0 start-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:n(a,{size:16})}),n(`button`,{className:`absolute inset-y-0 end-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:n(i,{size:16,"aria-hidden":`true`})})]});export{o as SearchInput};
2
2
  //# sourceMappingURL=search-input.mjs.map
package/dist/ui/item.cjs CHANGED
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../dist-BqoK5OAd.cjs`),n=require(`../separator-DSZyCT2g.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`react/jsx-runtime`),a=require(`class-variance-authority`);function o({className:e,...t}){return(0,i.jsx)(`div`,{role:`list`,"data-slot":`item-group`,className:(0,r.cn)(`group/item-group flex flex-col`,e),...t})}function s({className:e,...t}){return(0,i.jsx)(n.t,{"data-slot":`item-separator`,orientation:`horizontal`,className:(0,r.cn)(`my-0`,e),...t})}const c=(0,a.cva)(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-primary-strong focus-visible:ring-primary-weak focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted-weak`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}});function l({className:e,variant:n=`default`,size:a=`default`,asChild:o=!1,...s}){return(0,i.jsx)(o?t.t:`div`,{"data-slot":`item`,"data-variant":n,"data-size":a,className:(0,r.cn)(c({variant:n,size:a,className:e})),...s})}const u=(0,a.cva)(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});function d({className:e,variant:t=`default`,...n}){return(0,i.jsx)(`div`,{"data-slot":`item-media`,"data-variant":t,className:(0,r.cn)(u({variant:t,className:e})),...n})}function f({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`item-content`,className:(0,r.cn)(`flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none`,e),...t})}function p({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`item-title`,className:(0,r.cn)(`flex w-fit items-center gap-2 text-sm leading-snug font-medium`,e),...t})}function m({className:e,...t}){return(0,i.jsx)(`p`,{"data-slot":`item-description`,className:(0,r.cn)(`text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t})}function h({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`item-actions`,className:(0,r.cn)(`flex items-center gap-2`,e),...t})}function g({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`item-header`,className:(0,r.cn)(`flex basis-full items-center justify-between gap-2`,e),...t})}function _({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`item-footer`,className:(0,r.cn)(`flex basis-full items-center justify-between gap-2`,e),...t})}exports.Item=l,exports.ItemActions=h,exports.ItemContent=f,exports.ItemDescription=m,exports.ItemFooter=_,exports.ItemGroup=o,exports.ItemHeader=g,exports.ItemMedia=d,exports.ItemSeparator=s,exports.ItemTitle=p;
1
+ const e=require(`../chunk-Bmb41Sf3.cjs`),t=require(`../dist-BudM04oj.cjs`),n=require(`../separator-C3ip6sbh.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`class-variance-authority`),a=require(`react/jsx-runtime`);function o({className:e,...t}){return(0,a.jsx)(`div`,{role:`list`,"data-slot":`item-group`,className:(0,r.cn)(`group/item-group flex flex-col`,e),...t})}function s({className:e,...t}){return(0,a.jsx)(n.t,{"data-slot":`item-separator`,orientation:`horizontal`,className:(0,r.cn)(`my-0`,e),...t})}const c=(0,i.cva)(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-primary-strong focus-visible:ring-primary-weak focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted-weak`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}});function l({className:e,variant:n=`default`,size:i=`default`,asChild:o=!1,...s}){return(0,a.jsx)(o?t.t:`div`,{"data-slot":`item`,"data-variant":n,"data-size":i,className:(0,r.cn)(c({variant:n,size:i,className:e})),...s})}const u=(0,i.cva)(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});function d({className:e,variant:t=`default`,...n}){return(0,a.jsx)(`div`,{"data-slot":`item-media`,"data-variant":t,className:(0,r.cn)(u({variant:t,className:e})),...n})}function f({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`item-content`,className:(0,r.cn)(`flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none`,e),...t})}function p({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`item-title`,className:(0,r.cn)(`flex w-fit items-center gap-2 text-sm leading-snug font-medium`,e),...t})}function m({className:e,...t}){return(0,a.jsx)(`p`,{"data-slot":`item-description`,className:(0,r.cn)(`text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t})}function h({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`item-actions`,className:(0,r.cn)(`flex items-center gap-2`,e),...t})}function g({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`item-header`,className:(0,r.cn)(`flex basis-full items-center justify-between gap-2`,e),...t})}function _({className:e,...t}){return(0,a.jsx)(`div`,{"data-slot":`item-footer`,className:(0,r.cn)(`flex basis-full items-center justify-between gap-2`,e),...t})}exports.Item=l,exports.ItemActions=h,exports.ItemContent=f,exports.ItemDescription=m,exports.ItemFooter=_,exports.ItemGroup=o,exports.ItemHeader=g,exports.ItemMedia=d,exports.ItemSeparator=s,exports.ItemTitle=p;
2
2
  //# sourceMappingURL=item.cjs.map
@@ -1,21 +1,21 @@
1
1
  import { Separator } from "./separator.cjs";
2
- import * as react_jsx_runtime172 from "react/jsx-runtime";
3
- import * as class_variance_authority_types5 from "class-variance-authority/types";
2
+ import * as react_jsx_runtime99 from "react/jsx-runtime";
3
+ import * as class_variance_authority_types3 from "class-variance-authority/types";
4
4
  import { VariantProps } from "class-variance-authority";
5
5
 
6
6
  //#region packages/components/ui/item.d.ts
7
7
  declare function ItemGroup({
8
8
  className,
9
9
  ...props
10
- }: React.ComponentProps<'div'>): react_jsx_runtime172.JSX.Element;
10
+ }: React.ComponentProps<'div'>): react_jsx_runtime99.JSX.Element;
11
11
  declare function ItemSeparator({
12
12
  className,
13
13
  ...props
14
- }: React.ComponentProps<typeof Separator>): react_jsx_runtime172.JSX.Element;
14
+ }: React.ComponentProps<typeof Separator>): react_jsx_runtime99.JSX.Element;
15
15
  declare const itemVariants: (props?: ({
16
16
  variant?: "muted" | "default" | "outline" | null | undefined;
17
17
  size?: "sm" | "default" | null | undefined;
18
- } & class_variance_authority_types5.ClassProp) | undefined) => string;
18
+ } & class_variance_authority_types3.ClassProp) | undefined) => string;
19
19
  declare function Item({
20
20
  className,
21
21
  variant,
@@ -24,39 +24,39 @@ declare function Item({
24
24
  ...props
25
25
  }: React.ComponentProps<'div'> & VariantProps<typeof itemVariants> & {
26
26
  asChild?: boolean;
27
- }): react_jsx_runtime172.JSX.Element;
27
+ }): react_jsx_runtime99.JSX.Element;
28
28
  declare const itemMediaVariants: (props?: ({
29
- variant?: "default" | "icon" | "image" | null | undefined;
30
- } & class_variance_authority_types5.ClassProp) | undefined) => string;
29
+ variant?: "default" | "image" | "icon" | null | undefined;
30
+ } & class_variance_authority_types3.ClassProp) | undefined) => string;
31
31
  declare function ItemMedia({
32
32
  className,
33
33
  variant,
34
34
  ...props
35
- }: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>): react_jsx_runtime172.JSX.Element;
35
+ }: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>): react_jsx_runtime99.JSX.Element;
36
36
  declare function ItemContent({
37
37
  className,
38
38
  ...props
39
- }: React.ComponentProps<'div'>): react_jsx_runtime172.JSX.Element;
39
+ }: React.ComponentProps<'div'>): react_jsx_runtime99.JSX.Element;
40
40
  declare function ItemTitle({
41
41
  className,
42
42
  ...props
43
- }: React.ComponentProps<'div'>): react_jsx_runtime172.JSX.Element;
43
+ }: React.ComponentProps<'div'>): react_jsx_runtime99.JSX.Element;
44
44
  declare function ItemDescription({
45
45
  className,
46
46
  ...props
47
- }: React.ComponentProps<'p'>): react_jsx_runtime172.JSX.Element;
47
+ }: React.ComponentProps<'p'>): react_jsx_runtime99.JSX.Element;
48
48
  declare function ItemActions({
49
49
  className,
50
50
  ...props
51
- }: React.ComponentProps<'div'>): react_jsx_runtime172.JSX.Element;
51
+ }: React.ComponentProps<'div'>): react_jsx_runtime99.JSX.Element;
52
52
  declare function ItemHeader({
53
53
  className,
54
54
  ...props
55
- }: React.ComponentProps<'div'>): react_jsx_runtime172.JSX.Element;
55
+ }: React.ComponentProps<'div'>): react_jsx_runtime99.JSX.Element;
56
56
  declare function ItemFooter({
57
57
  className,
58
58
  ...props
59
- }: React.ComponentProps<'div'>): react_jsx_runtime172.JSX.Element;
59
+ }: React.ComponentProps<'div'>): react_jsx_runtime99.JSX.Element;
60
60
  //#endregion
61
61
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
62
62
  //# sourceMappingURL=item.d.cts.map
@@ -1,17 +1,17 @@
1
1
  import { Separator } from "./separator.mjs";
2
- import * as react_jsx_runtime162 from "react/jsx-runtime";
3
2
  import { VariantProps } from "class-variance-authority";
3
+ import * as react_jsx_runtime72 from "react/jsx-runtime";
4
4
  import * as class_variance_authority_types4 from "class-variance-authority/types";
5
5
 
6
6
  //#region packages/components/ui/item.d.ts
7
7
  declare function ItemGroup({
8
8
  className,
9
9
  ...props
10
- }: React.ComponentProps<'div'>): react_jsx_runtime162.JSX.Element;
10
+ }: React.ComponentProps<'div'>): react_jsx_runtime72.JSX.Element;
11
11
  declare function ItemSeparator({
12
12
  className,
13
13
  ...props
14
- }: React.ComponentProps<typeof Separator>): react_jsx_runtime162.JSX.Element;
14
+ }: React.ComponentProps<typeof Separator>): react_jsx_runtime72.JSX.Element;
15
15
  declare const itemVariants: (props?: ({
16
16
  variant?: "muted" | "default" | "outline" | null | undefined;
17
17
  size?: "sm" | "default" | null | undefined;
@@ -24,39 +24,39 @@ declare function Item({
24
24
  ...props
25
25
  }: React.ComponentProps<'div'> & VariantProps<typeof itemVariants> & {
26
26
  asChild?: boolean;
27
- }): react_jsx_runtime162.JSX.Element;
27
+ }): react_jsx_runtime72.JSX.Element;
28
28
  declare const itemMediaVariants: (props?: ({
29
- variant?: "default" | "icon" | "image" | null | undefined;
29
+ variant?: "default" | "image" | "icon" | null | undefined;
30
30
  } & class_variance_authority_types4.ClassProp) | undefined) => string;
31
31
  declare function ItemMedia({
32
32
  className,
33
33
  variant,
34
34
  ...props
35
- }: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>): react_jsx_runtime162.JSX.Element;
35
+ }: React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>): react_jsx_runtime72.JSX.Element;
36
36
  declare function ItemContent({
37
37
  className,
38
38
  ...props
39
- }: React.ComponentProps<'div'>): react_jsx_runtime162.JSX.Element;
39
+ }: React.ComponentProps<'div'>): react_jsx_runtime72.JSX.Element;
40
40
  declare function ItemTitle({
41
41
  className,
42
42
  ...props
43
- }: React.ComponentProps<'div'>): react_jsx_runtime162.JSX.Element;
43
+ }: React.ComponentProps<'div'>): react_jsx_runtime72.JSX.Element;
44
44
  declare function ItemDescription({
45
45
  className,
46
46
  ...props
47
- }: React.ComponentProps<'p'>): react_jsx_runtime162.JSX.Element;
47
+ }: React.ComponentProps<'p'>): react_jsx_runtime72.JSX.Element;
48
48
  declare function ItemActions({
49
49
  className,
50
50
  ...props
51
- }: React.ComponentProps<'div'>): react_jsx_runtime162.JSX.Element;
51
+ }: React.ComponentProps<'div'>): react_jsx_runtime72.JSX.Element;
52
52
  declare function ItemHeader({
53
53
  className,
54
54
  ...props
55
- }: React.ComponentProps<'div'>): react_jsx_runtime162.JSX.Element;
55
+ }: React.ComponentProps<'div'>): react_jsx_runtime72.JSX.Element;
56
56
  declare function ItemFooter({
57
57
  className,
58
58
  ...props
59
- }: React.ComponentProps<'div'>): react_jsx_runtime162.JSX.Element;
59
+ }: React.ComponentProps<'div'>): react_jsx_runtime72.JSX.Element;
60
60
  //#endregion
61
61
  export { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle };
62
62
  //# sourceMappingURL=item.d.mts.map
package/dist/ui/item.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{t as e}from"../dist-D2ydYRc4.mjs";import{t}from"../separator-CWar33xc.mjs";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r}from"react/jsx-runtime";import{cva as i}from"class-variance-authority";function a({className:e,...t}){return r(`div`,{role:`list`,"data-slot":`item-group`,className:n(`group/item-group flex flex-col`,e),...t})}function o({className:e,...i}){return r(t,{"data-slot":`item-separator`,orientation:`horizontal`,className:n(`my-0`,e),...i})}const s=i(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-primary-strong focus-visible:ring-primary-weak focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted-weak`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}});function c({className:t,variant:i=`default`,size:a=`default`,asChild:o=!1,...c}){return r(o?e:`div`,{"data-slot":`item`,"data-variant":i,"data-size":a,className:n(s({variant:i,size:a,className:t})),...c})}const l=i(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});function u({className:e,variant:t=`default`,...i}){return r(`div`,{"data-slot":`item-media`,"data-variant":t,className:n(l({variant:t,className:e})),...i})}function d({className:e,...t}){return r(`div`,{"data-slot":`item-content`,className:n(`flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none`,e),...t})}function f({className:e,...t}){return r(`div`,{"data-slot":`item-title`,className:n(`flex w-fit items-center gap-2 text-sm leading-snug font-medium`,e),...t})}function p({className:e,...t}){return r(`p`,{"data-slot":`item-description`,className:n(`text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t})}function m({className:e,...t}){return r(`div`,{"data-slot":`item-actions`,className:n(`flex items-center gap-2`,e),...t})}function h({className:e,...t}){return r(`div`,{"data-slot":`item-header`,className:n(`flex basis-full items-center justify-between gap-2`,e),...t})}function g({className:e,...t}){return r(`div`,{"data-slot":`item-footer`,className:n(`flex basis-full items-center justify-between gap-2`,e),...t})}export{c as Item,m as ItemActions,d as ItemContent,p as ItemDescription,g as ItemFooter,a as ItemGroup,h as ItemHeader,u as ItemMedia,o as ItemSeparator,f as ItemTitle};
1
+ import{t as e}from"../dist-CvmzZ_6C.mjs";import{t}from"../separator-Bf0gymN4.mjs";import{cn as n}from"@customafk/react-toolkit/utils";import{cva as r}from"class-variance-authority";import{jsx as i}from"react/jsx-runtime";function a({className:e,...t}){return i(`div`,{role:`list`,"data-slot":`item-group`,className:n(`group/item-group flex flex-col`,e),...t})}function o({className:e,...r}){return i(t,{"data-slot":`item-separator`,orientation:`horizontal`,className:n(`my-0`,e),...r})}const s=r(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-primary-strong focus-visible:ring-primary-weak focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted-weak`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}});function c({className:t,variant:r=`default`,size:a=`default`,asChild:o=!1,...c}){return i(o?e:`div`,{"data-slot":`item`,"data-variant":r,"data-size":a,className:n(s({variant:r,size:a,className:t})),...c})}const l=r(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});function u({className:e,variant:t=`default`,...r}){return i(`div`,{"data-slot":`item-media`,"data-variant":t,className:n(l({variant:t,className:e})),...r})}function d({className:e,...t}){return i(`div`,{"data-slot":`item-content`,className:n(`flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none`,e),...t})}function f({className:e,...t}){return i(`div`,{"data-slot":`item-title`,className:n(`flex w-fit items-center gap-2 text-sm leading-snug font-medium`,e),...t})}function p({className:e,...t}){return i(`p`,{"data-slot":`item-description`,className:n(`text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance`,`[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4`,e),...t})}function m({className:e,...t}){return i(`div`,{"data-slot":`item-actions`,className:n(`flex items-center gap-2`,e),...t})}function h({className:e,...t}){return i(`div`,{"data-slot":`item-header`,className:n(`flex basis-full items-center justify-between gap-2`,e),...t})}function g({className:e,...t}){return i(`div`,{"data-slot":`item-footer`,className:n(`flex basis-full items-center justify-between gap-2`,e),...t})}export{c as Item,m as ItemActions,d as ItemContent,p as ItemDescription,g as ItemFooter,a as ItemGroup,h as ItemHeader,u as ItemMedia,o as ItemSeparator,f as ItemTitle};
2
2
  //# sourceMappingURL=item.mjs.map
package/dist/ui/label.cjs CHANGED
@@ -1 +1 @@
1
- "use client";const e=require(`../label-D6vHFlHX.cjs`);exports.Label=e.t;
1
+ "use client";const e=require(`../label-BzfsTrVt.cjs`);exports.Label=e.t;
@@ -1,11 +1,11 @@
1
- import * as react_jsx_runtime171 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime141 from "react/jsx-runtime";
2
2
  import { Label as Label$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/label.d.ts
5
5
  declare function Label({
6
6
  className,
7
7
  ...props
8
- }: React.ComponentProps<typeof Label$1.Root>): react_jsx_runtime171.JSX.Element;
8
+ }: React.ComponentProps<typeof Label$1.Root>): react_jsx_runtime141.JSX.Element;
9
9
  //#endregion
10
10
  export { Label };
11
11
  //# sourceMappingURL=label.d.cts.map
@@ -1,11 +1,11 @@
1
- import * as react_jsx_runtime136 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime83 from "react/jsx-runtime";
2
2
  import { Label as Label$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/label.d.ts
5
5
  declare function Label({
6
6
  className,
7
7
  ...props
8
- }: React.ComponentProps<typeof Label$1.Root>): react_jsx_runtime136.JSX.Element;
8
+ }: React.ComponentProps<typeof Label$1.Root>): react_jsx_runtime83.JSX.Element;
9
9
  //#endregion
10
10
  export { Label };
11
11
  //# sourceMappingURL=label.d.mts.map
package/dist/ui/label.mjs CHANGED
@@ -1 +1 @@
1
- "use client";import{t as e}from"../label-DW6shAXZ.mjs";export{e as Label};
1
+ "use client";import{t as e}from"../label-Dqr8nxWi.mjs";export{e as Label};
@@ -1,34 +1,34 @@
1
- import * as react_jsx_runtime188 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime214 from "react/jsx-runtime";
2
2
  import { Menubar as Menubar$1 } from "radix-ui";
3
3
 
4
4
  //#region packages/components/ui/menubar.d.ts
5
5
  declare function Menubar({
6
6
  className,
7
7
  ...props
8
- }: React.ComponentProps<typeof Menubar$1.Root>): react_jsx_runtime188.JSX.Element;
8
+ }: React.ComponentProps<typeof Menubar$1.Root>): react_jsx_runtime214.JSX.Element;
9
9
  declare function MenubarMenu({
10
10
  ...props
11
- }: React.ComponentProps<typeof Menubar$1.Menu>): react_jsx_runtime188.JSX.Element;
11
+ }: React.ComponentProps<typeof Menubar$1.Menu>): react_jsx_runtime214.JSX.Element;
12
12
  declare function MenubarGroup({
13
13
  ...props
14
- }: React.ComponentProps<typeof Menubar$1.Group>): react_jsx_runtime188.JSX.Element;
14
+ }: React.ComponentProps<typeof Menubar$1.Group>): react_jsx_runtime214.JSX.Element;
15
15
  declare function MenubarPortal({
16
16
  ...props
17
- }: React.ComponentProps<typeof Menubar$1.Portal>): react_jsx_runtime188.JSX.Element;
17
+ }: React.ComponentProps<typeof Menubar$1.Portal>): react_jsx_runtime214.JSX.Element;
18
18
  declare function MenubarRadioGroup({
19
19
  ...props
20
- }: React.ComponentProps<typeof Menubar$1.RadioGroup>): react_jsx_runtime188.JSX.Element;
20
+ }: React.ComponentProps<typeof Menubar$1.RadioGroup>): react_jsx_runtime214.JSX.Element;
21
21
  declare function MenubarTrigger({
22
22
  className,
23
23
  ...props
24
- }: React.ComponentProps<typeof Menubar$1.Trigger>): react_jsx_runtime188.JSX.Element;
24
+ }: React.ComponentProps<typeof Menubar$1.Trigger>): react_jsx_runtime214.JSX.Element;
25
25
  declare function MenubarContent({
26
26
  className,
27
27
  align,
28
28
  alignOffset,
29
29
  sideOffset,
30
30
  ...props
31
- }: React.ComponentProps<typeof Menubar$1.Content>): react_jsx_runtime188.JSX.Element;
31
+ }: React.ComponentProps<typeof Menubar$1.Content>): react_jsx_runtime214.JSX.Element;
32
32
  declare function MenubarItem({
33
33
  className,
34
34
  inset,
@@ -37,36 +37,36 @@ declare function MenubarItem({
37
37
  }: React.ComponentProps<typeof Menubar$1.Item> & {
38
38
  inset?: boolean;
39
39
  variant?: 'default' | 'destructive';
40
- }): react_jsx_runtime188.JSX.Element;
40
+ }): react_jsx_runtime214.JSX.Element;
41
41
  declare function MenubarCheckboxItem({
42
42
  className,
43
43
  children,
44
44
  checked,
45
45
  ...props
46
- }: React.ComponentProps<typeof Menubar$1.CheckboxItem>): react_jsx_runtime188.JSX.Element;
46
+ }: React.ComponentProps<typeof Menubar$1.CheckboxItem>): react_jsx_runtime214.JSX.Element;
47
47
  declare function MenubarRadioItem({
48
48
  className,
49
49
  children,
50
50
  ...props
51
- }: React.ComponentProps<typeof Menubar$1.RadioItem>): react_jsx_runtime188.JSX.Element;
51
+ }: React.ComponentProps<typeof Menubar$1.RadioItem>): react_jsx_runtime214.JSX.Element;
52
52
  declare function MenubarLabel({
53
53
  className,
54
54
  inset,
55
55
  ...props
56
56
  }: React.ComponentProps<typeof Menubar$1.Label> & {
57
57
  inset?: boolean;
58
- }): react_jsx_runtime188.JSX.Element;
58
+ }): react_jsx_runtime214.JSX.Element;
59
59
  declare function MenubarSeparator({
60
60
  className,
61
61
  ...props
62
- }: React.ComponentProps<typeof Menubar$1.Separator>): react_jsx_runtime188.JSX.Element;
62
+ }: React.ComponentProps<typeof Menubar$1.Separator>): react_jsx_runtime214.JSX.Element;
63
63
  declare function MenubarShortcut({
64
64
  className,
65
65
  ...props
66
- }: React.ComponentProps<'span'>): react_jsx_runtime188.JSX.Element;
66
+ }: React.ComponentProps<'span'>): react_jsx_runtime214.JSX.Element;
67
67
  declare function MenubarSub({
68
68
  ...props
69
- }: React.ComponentProps<typeof Menubar$1.Sub>): react_jsx_runtime188.JSX.Element;
69
+ }: React.ComponentProps<typeof Menubar$1.Sub>): react_jsx_runtime214.JSX.Element;
70
70
  declare function MenubarSubTrigger({
71
71
  className,
72
72
  inset,
@@ -74,11 +74,11 @@ declare function MenubarSubTrigger({
74
74
  ...props
75
75
  }: React.ComponentProps<typeof Menubar$1.SubTrigger> & {
76
76
  inset?: boolean;
77
- }): react_jsx_runtime188.JSX.Element;
77
+ }): react_jsx_runtime214.JSX.Element;
78
78
  declare function MenubarSubContent({
79
79
  className,
80
80
  ...props
81
- }: React.ComponentProps<typeof Menubar$1.SubContent>): react_jsx_runtime188.JSX.Element;
81
+ }: React.ComponentProps<typeof Menubar$1.SubContent>): react_jsx_runtime214.JSX.Element;
82
82
  //#endregion
83
83
  export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
84
84
  //# sourceMappingURL=menubar.d.mts.map
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../button.variants-Bo2vzQp5.cjs`);const t=require(`../button-BLYTfCyl.cjs`);require(`../close-rM-Ao1Gf.cjs`),require(`../dialog-aRCyqFr-.cjs`);const n=require(`../command-CzE8NTMm.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`react/jsx-runtime`),a=require(`lucide-react`),o=require(`react`),s=require(`cmdk`);function c(e,t){let[n,r]=(0,o.useState)(e);return(0,o.useEffect)(()=>{let n=setTimeout(()=>r(e),t||500);return()=>{clearTimeout(n)}},[e,t]),n}function l(e,t){if(e.length===0)return{};if(!t)return{"":e};let n={};return e.forEach(e=>{let r=e[t]||``;n[r]||(n[r]=[]),n[r].push(e)}),n}function u(e,t){let n=JSON.parse(JSON.stringify(e));for(let[e,r]of Object.entries(n))n[e]=r.filter(e=>!t.find(t=>t.value===e.value));return n}function d(e,t){for(let[,n]of Object.entries(e))if(n.some(e=>t.find(t=>t.value===e.value)))return!0;return!1}const f=(0,o.forwardRef)(({className:e,...t},n)=>(0,s.useCommandState)(e=>e.filtered.count===0)?(0,i.jsx)(`div`,{ref:n,className:(0,r.cn)(`px-2 py-4 text-center text-sm`,e),"cmdk-empty":``,role:`presentation`,...t}):null);f.displayName=`CommandEmpty`;const p=(0,o.forwardRef)(({value:e,onChange:p,placeholder:m,defaultOptions:h=[],options:g,delay:_,onSearch:v,onSearchSync:y,loadingIndicator:b,emptyIndicator:x,maxSelected:S=2**53-1,onMaxSelected:C,hidePlaceholderWhenSelected:w,disabled:T,groupBy:E,className:D,badgeClassName:O,selectFirstItem:k=!0,creatable:A=!1,triggerSearchOnFocus:j=!1,commandProps:M,inputProps:N,hideClearAllButton:P=!1,onAddNewItem:F},I)=>{let L=(0,o.useRef)(null),R=(0,o.useRef)(null),[z,B]=(0,o.useState)(!1),[V,H]=(0,o.useState)(!1),[U,W]=(0,o.useState)(!1),[G,K]=(0,o.useState)(e||[]),[q,J]=(0,o.useState)(l(h,E)),[Y,X]=(0,o.useState)(``),Z=c(Y,_||500);(0,o.useImperativeHandle)(I,()=>({selectedValue:[...G],input:L.current,focus:()=>L?.current?.focus(),reset:()=>K([])}),[G]);let Q=(0,o.useCallback)(e=>{R.current&&!R.current.contains(e.target)&&L.current&&!L.current.contains(e.target)&&(B(!1),L.current.blur())},[]),$=(0,o.useCallback)(e=>{let t=G.filter(t=>t.value!==e.value);K(t),p?.(t)},[p,G]),ee=(0,o.useCallback)(e=>{let t=L.current;t&&((e.key===`Delete`||e.key===`Backspace`)&&t.value===``&&G.length>0&&(G[G.length-1].fixed||$(G[G.length-1])),e.key===`Escape`&&t.blur())},[$,G]);(0,o.useEffect)(()=>(z?(document.addEventListener(`mousedown`,Q),document.addEventListener(`touchend`,Q)):(document.removeEventListener(`mousedown`,Q),document.removeEventListener(`touchend`,Q)),()=>{document.removeEventListener(`mousedown`,Q),document.removeEventListener(`touchend`,Q)}),[z]),(0,o.useEffect)(()=>{e&&K(e)},[e]),(0,o.useEffect)(()=>{if(!g||v)return;let e=l(g||[],E);JSON.stringify(e)!==JSON.stringify(q)&&J(e)},[h,g,E,v,q]),(0,o.useEffect)(()=>{let e=()=>{let e=y?.(Z);J(l(e||[],E))};(async()=>{!y||!z||(j&&e(),Z&&e())})()},[Z,E,z,j]),(0,o.useEffect)(()=>{let e=async()=>{W(!0),J(l(await v?.(Z)||[],E)),W(!1)};(async()=>{!v||!z||(j&&await e(),Z&&await e())})()},[Z,E,z,j]);let te=()=>{if(!A||d(q,[{value:Y,label:Y}])||G.find(e=>e.value===Y))return;let e=(0,i.jsx)(n.o,{value:Y,className:`cursor-pointer`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:e=>{if(G.length>=S){C?.(G.length);return}X(``);let t=[...G,{value:e,label:e}];K(t),p?.(t)},children:`Create "${Y}"`});if(!v&&Y.length>0||v&&Z.length>0&&!U)return e},ne=(0,o.useCallback)(()=>{if(x)return v&&!A&&Object.keys(q).length===0?(0,i.jsx)(n.o,{value:`-`,disabled:!0,children:x}):(0,i.jsx)(f,{children:x})},[A,x,v,q]),re=(0,o.useMemo)(()=>u(q,G),[q,G]),ie=(0,o.useCallback)(()=>{if(M?.filter)return M.filter;if(A)return(e,t)=>e.toLowerCase().includes(t.toLowerCase())?1:-1},[A,M?.filter]);return(0,i.jsxs)(n.t,{ref:R,...M,onKeyDown:e=>{ee(e),M?.onKeyDown?.(e)},className:(0,r.cn)(`h-auto overflow-visible bg-transparent`,M?.className),shouldFilter:M?.shouldFilter===void 0?!v:M.shouldFilter,filter:ie(),children:[(0,i.jsx)(`div`,{className:(0,r.cn)(`border-border-weak relative rounded-md border text-sm transition-shadow`,`focus-within:border-primary`,`focus-within:ring-primary-weak`,`focus-within:ring-4`,`focus-within:outline-hidden`,`has-disabled:bg-muted`,`has-disabled:text-muted-foreground`,G.length!==0&&`p-1`,!T&&G.length!==0&&`cursor-text`,!P&&`pe-9`,D),onClick:()=>{T||L?.current?.focus()},children:(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[G.map(e=>(0,i.jsxs)(`div`,{className:(0,r.cn)(`animate-fadeIn`,`bg-background`,`hover:bg-background`,`border-border-weak border border-solid`,`text-text-positive-weak relative inline-flex h-7 cursor-default items-center rounded-md ps-2 pe-7 pl-2 text-xs font-medium transition-all`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-fixed:pe-2`,O),"data-fixed":e.fixed,"data-disabled":T||void 0,children:[e.label,(0,i.jsx)(`button`,{type:`button`,disabled:T||e.fixed,className:(0,r.cn)(`text-text-positive-muted absolute -inset-y-px -end-px flex size-7 items-center justify-center rounded-e-lg border border-transparent p-0 outline-0 transition-colors`,`hover:text-foreground`,`focus-visible:outline`,`focus-visible:outline-2`,`focus-visible:outline-primary-weak`,`disabled:hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`),onKeyDown:t=>{t.key===`Enter`&&$(e)},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:()=>$(e),"aria-label":`Remove`,children:(0,i.jsx)(a.X,{size:14,strokeWidth:2,"aria-hidden":`true`})})]},e.value)),(0,i.jsx)(s.Command.Input,{...N,ref:L,value:Y,disabled:T,onValueChange:e=>{X(e),N?.onValueChange?.(e)},onBlur:e=>{V||B(!1),N?.onBlur?.(e)},onFocus:e=>{B(!0),j&&v?.(Z),N?.onFocus?.(e)},placeholder:w&&G.length!==0?``:m,className:(0,r.cn)(`placeholder:text-text-positive-muted flex-1 bg-transparent outline-hidden`,`disabled:placeholder:text-transparent`,{"w-full":w,"px-3 py-2":G.length===0,"ml-1":G.length!==0},N?.className)}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>{K(G.filter(e=>e.fixed)),p?.(G.filter(e=>e.fixed))},className:(0,r.cn)(`text-muted-foreground/80`,`absolute end-0 top-0 flex size-9 items-center justify-center rounded-lg border border-transparent transition-colors`,`focus-visible:outline-2`,`hover:text-text-positive`,`focus-visible:outline-primary-weak`,(P||T||G.length<1||G.filter(({fixed:e})=>e).length===G.length)&&`hidden`),"aria-label":`Clear all`,children:(0,i.jsx)(a.X,{size:16,strokeWidth:2,"aria-hidden":`true`})})]})}),(0,i.jsx)(`div`,{className:`relative`,children:(0,i.jsx)(`div`,{className:(0,r.cn)(`shadow-dropdown absolute top-2 z-10 w-full overflow-hidden rounded-lg`,`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`,!z&&`hidden`),"data-state":z?`open`:`closed`,children:z&&(0,i.jsxs)(n.s,{className:`shadow-lg outline-hidden`,onMouseLeave:()=>{H(!1)},onMouseEnter:()=>{H(!0)},onMouseUp:()=>{L?.current?.focus()},children:[F&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.c,{}),(0,i.jsx)(n.i,{children:(0,i.jsxs)(t.t,{type:`button`,variant:`ghost`,className:`w-full font-normal [&_div]:justify-start`,onClick:F,children:[(0,i.jsx)(a.PlusIcon,{size:14,className:`opacity-60`,"aria-hidden":`true`}),`Thêm mới`]})})]}),U?b:(0,i.jsxs)(i.Fragment,{children:[ne(),te(),!k&&(0,i.jsx)(n.o,{value:`-`,className:`hidden`}),Object.entries(re).map(([e,t])=>(0,i.jsx)(n.i,{heading:e,className:`h-full overflow-auto`,children:t.map(e=>(0,i.jsx)(n.o,{value:e.value,disabled:e.disable,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:()=>{if(G.length>=S){C?.(G.length);return}let t=[...G,e];X(``),K(t),p?.(t)},className:(0,r.cn)(`cursor-pointer`,e.disable&&`cursor-not-allowed opacity-50`),children:e.label},e.value))},e))]})]})})})]})});p.displayName=`MultipleSelector`,exports.MultipleSelector=p,exports.useDebounce=c;
1
+ "use client";const e=require(`../chunk-Bmb41Sf3.cjs`);require(`../heading-BEm5CCSE.cjs`),require(`../paragraph-4z_6Z5aj.cjs`),require(`../button.variants-8QOIR433.cjs`);const t=require(`../button-8Snjc8iT.cjs`);require(`../close-D_Ge7gnP.cjs`),require(`../dialog-D5TBBX99.cjs`);const n=require(`../command-BciJADha.cjs`);let r=require(`@customafk/react-toolkit/utils`),i=require(`react`),a=require(`react/jsx-runtime`),o=require(`lucide-react`),s=require(`cmdk`);function c(e,t){let[n,r]=(0,i.useState)(e);return(0,i.useEffect)(()=>{let n=setTimeout(()=>r(e),t||500);return()=>{clearTimeout(n)}},[e,t]),n}function l(e,t){if(e.length===0)return{};if(!t)return{"":e};let n={};return e.forEach(e=>{let r=e[t]||``;n[r]||(n[r]=[]),n[r].push(e)}),n}function u(e,t){let n=JSON.parse(JSON.stringify(e));for(let[e,r]of Object.entries(n))n[e]=r.filter(e=>!t.find(t=>t.value===e.value));return n}function d(e,t){for(let[,n]of Object.entries(e))if(n.some(e=>t.find(t=>t.value===e.value)))return!0;return!1}const f=(0,i.forwardRef)(({className:e,...t},n)=>(0,s.useCommandState)(e=>e.filtered.count===0)?(0,a.jsx)(`div`,{ref:n,className:(0,r.cn)(`px-2 py-4 text-center text-sm`,e),"cmdk-empty":``,role:`presentation`,...t}):null);f.displayName=`CommandEmpty`;const p=(0,i.forwardRef)(({value:e,onChange:p,placeholder:m,defaultOptions:h=[],options:g,delay:_,onSearch:v,onSearchSync:y,loadingIndicator:b,emptyIndicator:x,maxSelected:S=2**53-1,onMaxSelected:C,hidePlaceholderWhenSelected:w,disabled:T,groupBy:E,className:D,badgeClassName:O,selectFirstItem:k=!0,creatable:A=!1,triggerSearchOnFocus:j=!1,commandProps:M,inputProps:N,hideClearAllButton:P=!1,onAddNewItem:F},I)=>{let L=(0,i.useRef)(null),R=(0,i.useRef)(null),[z,B]=(0,i.useState)(!1),[V,H]=(0,i.useState)(!1),[U,W]=(0,i.useState)(!1),[G,K]=(0,i.useState)(e||[]),[q,J]=(0,i.useState)(l(h,E)),[Y,X]=(0,i.useState)(``),Z=c(Y,_||500);(0,i.useImperativeHandle)(I,()=>({selectedValue:[...G],input:L.current,focus:()=>L?.current?.focus(),reset:()=>K([])}),[G]);let Q=(0,i.useCallback)(e=>{R.current&&!R.current.contains(e.target)&&L.current&&!L.current.contains(e.target)&&(B(!1),L.current.blur())},[]),$=(0,i.useCallback)(e=>{let t=G.filter(t=>t.value!==e.value);K(t),p?.(t)},[p,G]),ee=(0,i.useCallback)(e=>{let t=L.current;t&&((e.key===`Delete`||e.key===`Backspace`)&&t.value===``&&G.length>0&&(G[G.length-1].fixed||$(G[G.length-1])),e.key===`Escape`&&t.blur())},[$,G]);(0,i.useEffect)(()=>(z?(document.addEventListener(`mousedown`,Q),document.addEventListener(`touchend`,Q)):(document.removeEventListener(`mousedown`,Q),document.removeEventListener(`touchend`,Q)),()=>{document.removeEventListener(`mousedown`,Q),document.removeEventListener(`touchend`,Q)}),[z]),(0,i.useEffect)(()=>{e&&K(e)},[e]),(0,i.useEffect)(()=>{if(!g||v)return;let e=l(g||[],E);JSON.stringify(e)!==JSON.stringify(q)&&J(e)},[h,g,E,v,q]),(0,i.useEffect)(()=>{let e=()=>{let e=y?.(Z);J(l(e||[],E))};(async()=>{!y||!z||(j&&e(),Z&&e())})()},[Z,E,z,j]),(0,i.useEffect)(()=>{let e=async()=>{W(!0),J(l(await v?.(Z)||[],E)),W(!1)};(async()=>{!v||!z||(j&&await e(),Z&&await e())})()},[Z,E,z,j]);let te=()=>{if(!A||d(q,[{value:Y,label:Y}])||G.find(e=>e.value===Y))return;let e=(0,a.jsx)(n.o,{value:Y,className:`cursor-pointer`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:e=>{if(G.length>=S){C?.(G.length);return}X(``);let t=[...G,{value:e,label:e}];K(t),p?.(t)},children:`Create "${Y}"`});if(!v&&Y.length>0||v&&Z.length>0&&!U)return e},ne=(0,i.useCallback)(()=>{if(x)return v&&!A&&Object.keys(q).length===0?(0,a.jsx)(n.o,{value:`-`,disabled:!0,children:x}):(0,a.jsx)(f,{children:x})},[A,x,v,q]),re=(0,i.useMemo)(()=>u(q,G),[q,G]),ie=(0,i.useCallback)(()=>{if(M?.filter)return M.filter;if(A)return(e,t)=>e.toLowerCase().includes(t.toLowerCase())?1:-1},[A,M?.filter]);return(0,a.jsxs)(n.t,{ref:R,...M,onKeyDown:e=>{ee(e),M?.onKeyDown?.(e)},className:(0,r.cn)(`h-auto overflow-visible bg-transparent`,M?.className),shouldFilter:M?.shouldFilter===void 0?!v:M.shouldFilter,filter:ie(),children:[(0,a.jsx)(`div`,{className:(0,r.cn)(`border-border-weak relative rounded-md border text-sm transition-shadow`,`focus-within:border-primary`,`focus-within:ring-primary-weak`,`focus-within:ring-4`,`focus-within:outline-hidden`,`has-disabled:bg-muted`,`has-disabled:text-muted-foreground`,G.length!==0&&`p-1`,!T&&G.length!==0&&`cursor-text`,!P&&`pe-9`,D),onClick:()=>{T||L?.current?.focus()},children:(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[G.map(e=>(0,a.jsxs)(`div`,{className:(0,r.cn)(`animate-fadeIn`,`bg-background`,`hover:bg-background`,`border-border-weak border border-solid`,`text-text-positive-weak relative inline-flex h-7 cursor-default items-center rounded-md ps-2 pe-7 pl-2 text-xs font-medium transition-all`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-fixed:pe-2`,O),"data-fixed":e.fixed,"data-disabled":T||void 0,children:[e.label,(0,a.jsx)(`button`,{type:`button`,disabled:T||e.fixed,className:(0,r.cn)(`text-text-positive-muted absolute -inset-y-px -end-px flex size-7 items-center justify-center rounded-e-lg border border-transparent p-0 outline-0 transition-colors`,`hover:text-foreground`,`focus-visible:outline`,`focus-visible:outline-2`,`focus-visible:outline-primary-weak`,`disabled:hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`),onKeyDown:t=>{t.key===`Enter`&&$(e)},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:()=>$(e),"aria-label":`Remove`,children:(0,a.jsx)(o.X,{size:14,strokeWidth:2,"aria-hidden":`true`})})]},e.value)),(0,a.jsx)(s.Command.Input,{...N,ref:L,value:Y,disabled:T,onValueChange:e=>{X(e),N?.onValueChange?.(e)},onBlur:e=>{V||B(!1),N?.onBlur?.(e)},onFocus:e=>{B(!0),j&&v?.(Z),N?.onFocus?.(e)},placeholder:w&&G.length!==0?``:m,className:(0,r.cn)(`placeholder:text-text-positive-muted flex-1 bg-transparent outline-hidden`,`disabled:placeholder:text-transparent`,{"w-full":w,"px-3 py-2":G.length===0,"ml-1":G.length!==0},N?.className)}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>{K(G.filter(e=>e.fixed)),p?.(G.filter(e=>e.fixed))},className:(0,r.cn)(`text-muted-foreground/80`,`absolute end-0 top-0 flex size-9 items-center justify-center rounded-lg border border-transparent transition-colors`,`focus-visible:outline-2`,`hover:text-text-positive`,`focus-visible:outline-primary-weak`,(P||T||G.length<1||G.filter(({fixed:e})=>e).length===G.length)&&`hidden`),"aria-label":`Clear all`,children:(0,a.jsx)(o.X,{size:16,strokeWidth:2,"aria-hidden":`true`})})]})}),(0,a.jsx)(`div`,{className:`relative`,children:(0,a.jsx)(`div`,{className:(0,r.cn)(`shadow-dropdown absolute top-2 z-10 w-full overflow-hidden rounded-lg`,`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`,!z&&`hidden`),"data-state":z?`open`:`closed`,children:z&&(0,a.jsxs)(n.s,{className:`shadow-lg outline-hidden`,onMouseLeave:()=>{H(!1)},onMouseEnter:()=>{H(!0)},onMouseUp:()=>{L?.current?.focus()},children:[F&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.c,{}),(0,a.jsx)(n.i,{children:(0,a.jsxs)(t.t,{type:`button`,variant:`ghost`,className:`w-full font-normal [&_div]:justify-start`,onClick:F,children:[(0,a.jsx)(o.PlusIcon,{size:14,className:`opacity-60`,"aria-hidden":`true`}),`Thêm mới`]})})]}),U?b:(0,a.jsxs)(a.Fragment,{children:[ne(),te(),!k&&(0,a.jsx)(n.o,{value:`-`,className:`hidden`}),Object.entries(re).map(([e,t])=>(0,a.jsx)(n.i,{heading:e,className:`h-full overflow-auto`,children:t.map(e=>(0,a.jsx)(n.o,{value:e.value,disabled:e.disable,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:()=>{if(G.length>=S){C?.(G.length);return}let t=[...G,e];X(``),K(t),p?.(t)},className:(0,r.cn)(`cursor-pointer`,e.disable&&`cursor-not-allowed opacity-50`),children:e.label},e.value))},e))]})]})})})]})});p.displayName=`MultipleSelector`,exports.MultipleSelector=p,exports.useDebounce=c;
2
2
  //# sourceMappingURL=multi-select.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select.cjs","names":["groupOption: GroupOption","CommandItem","value","Command","X","CommandPrimitive","CommandList","CommandSeparator","CommandGroup","Button","PlusIcon"],"sources":["../../packages/components/ui/multi-select.tsx"],"sourcesContent":["'use client';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { PlusIcon, X } from 'lucide-react';\n\nimport { Button } from '@/components/ui/button';\nimport { Command, CommandGroup, CommandItem, CommandList, CommandSeparator } from '@/components/ui/command';\n\nimport { Command as CommandPrimitive, useCommandState } from 'cmdk';\n\nexport interface Option {\n value: string;\n label: string;\n disable?: boolean;\n /** fixed option that can&lsquo;t be removed. */\n fixed?: boolean;\n /** Group the options by providing key. */\n [key: string]: string | boolean | undefined;\n}\ninterface GroupOption {\n [key: string]: Option[];\n}\n\ninterface MultipleSelectorProps {\n value?: Option[];\n defaultOptions?: Option[];\n /** manually controlled options */\n options?: Option[];\n placeholder?: string;\n /** Loading component. */\n loadingIndicator?: React.ReactNode;\n /** Empty component. */\n emptyIndicator?: React.ReactNode;\n /** Debounce time for async search. Only work with `onSearch`. */\n delay?: number;\n /**\n * Only work with `onSearch` prop. Trigger search when `onFocus`.\n * For example, when user click on the input, it will trigger the search to get initial options.\n **/\n triggerSearchOnFocus?: boolean;\n /** async search */\n onSearch?: (value: string) => Promise<Option[]>;\n /**\n * sync search. This search will not showing loadingIndicator.\n * The rest props are the same as async search.\n * i.e.: creatable, groupBy, delay.\n **/\n onSearchSync?: (value: string) => Option[];\n onChange?: (options: Option[]) => void;\n /** Limit the maximum number of selected options. */\n maxSelected?: number;\n /** When the number of selected options exceeds the limit, the onMaxSelected will be called. */\n onMaxSelected?: (maxLimit: number) => void;\n /** Hide the placeholder when there are options selected. */\n hidePlaceholderWhenSelected?: boolean;\n disabled?: boolean;\n /** Group the options base on provided key. */\n groupBy?: string;\n className?: string;\n badgeClassName?: string;\n /**\n * First item selected is a default behavior by cmdk. That is why the default is true.\n * This is a workaround solution by add a dummy item.\n *\n * @reference: https://github.com/pacocoursey/cmdk/issues/171\n */\n selectFirstItem?: boolean;\n /** Allow user to create option when there is no option matched. */\n creatable?: boolean;\n /** Props of `Command` */\n commandProps?: React.ComponentPropsWithoutRef<typeof Command>;\n /** Props of `CommandInput` */\n inputProps?: Omit<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>, 'value' | 'placeholder' | 'disabled'>;\n /** hide the clear all button. */\n hideClearAllButton?: boolean;\n\n /** Add new item event for select with search */\n onAddNewItem?: () => void;\n}\n\nexport interface MultipleSelectorRef {\n selectedValue: Option[];\n input: HTMLInputElement;\n focus: () => void;\n reset: () => void;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useDebounce<T>(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\nfunction transToGroupOption(options: Option[], groupBy?: string) {\n if (options.length === 0) {\n return {};\n }\n if (!groupBy) {\n return {\n '': options,\n };\n }\n\n const groupOption: GroupOption = {};\n options.forEach(option => {\n const key = (option[groupBy] as string) || '';\n if (!groupOption[key]) {\n groupOption[key] = [];\n }\n groupOption[key].push(option);\n });\n return groupOption;\n}\n\nfunction removePickedOption(groupOption: GroupOption, picked: Option[]) {\n const cloneOption = JSON.parse(JSON.stringify(groupOption)) as GroupOption;\n\n for (const [key, value] of Object.entries(cloneOption)) {\n cloneOption[key] = value.filter(val => !picked.find(p => p.value === val.value));\n }\n return cloneOption;\n}\n\nfunction isOptionsExist(groupOption: GroupOption, targetOption: Option[]) {\n for (const [, value] of Object.entries(groupOption)) {\n if (value.some(option => targetOption.find(p => p.value === option.value))) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The `CommandEmpty` of shadcn/ui will cause the cmdk empty not rendering correctly.\n * So we create one and copy the `Empty` implementation from `cmdk`.\n *\n * @reference: https://github.com/hsuanyi-chou/shadcn-ui-expansions/issues/34#issuecomment-1949561607\n **/\nconst CommandEmpty = forwardRef<HTMLDivElement, React.ComponentProps<typeof CommandPrimitive.Empty>>(({ className, ...props }, forwardedRef) => {\n const render = useCommandState(state => state.filtered.count === 0);\n\n if (!render) return null;\n\n return <div ref={forwardedRef} className={cn('px-2 py-4 text-center text-sm', className)} cmdk-empty=\"\" role=\"presentation\" {...props} />;\n});\n\nCommandEmpty.displayName = 'CommandEmpty';\n\nexport const MultipleSelector = forwardRef<MultipleSelectorRef, MultipleSelectorProps>(\n (\n {\n value,\n onChange,\n placeholder,\n defaultOptions: arrayDefaultOptions = [],\n options: arrayOptions,\n delay,\n onSearch,\n onSearchSync,\n loadingIndicator: LoadingIndicator,\n emptyIndicator,\n maxSelected = Number.MAX_SAFE_INTEGER,\n onMaxSelected,\n hidePlaceholderWhenSelected,\n disabled,\n groupBy,\n className,\n badgeClassName,\n selectFirstItem = true,\n creatable = false,\n triggerSearchOnFocus = false,\n commandProps,\n inputProps,\n hideClearAllButton = false,\n onAddNewItem,\n }: MultipleSelectorProps,\n ref: React.Ref<MultipleSelectorRef>\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null); // Added this\n\n const [open, setOpen] = useState(false);\n const [onScrollbar, setOnScrollbar] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const [selected, setSelected] = useState<Option[]>(value || []);\n const [options, setOptions] = useState<GroupOption>(transToGroupOption(arrayDefaultOptions, groupBy));\n const [inputValue, setInputValue] = useState('');\n\n const debouncedSearchTerm = useDebounce(inputValue, delay || 500);\n\n useImperativeHandle(\n ref,\n () => ({\n selectedValue: [...selected],\n input: inputRef.current as HTMLInputElement,\n focus: () => inputRef?.current?.focus(),\n reset: () => setSelected([]),\n }),\n [selected]\n );\n\n const handleClickOutside = useCallback((event: MouseEvent | TouchEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node) && inputRef.current && !inputRef.current.contains(event.target as Node)) {\n setOpen(false);\n inputRef.current.blur();\n }\n }, []);\n\n const handleUnselect = useCallback(\n (option: Option) => {\n const newOptions = selected.filter(s => s.value !== option.value);\n setSelected(newOptions);\n onChange?.(newOptions);\n },\n [onChange, selected]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const input = inputRef.current;\n if (!input) return;\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (input.value === '' && selected.length > 0) {\n const lastSelectOption = selected[selected.length - 1];\n // If last item is fixed, we should not remove it.\n if (!lastSelectOption.fixed) {\n handleUnselect(selected[selected.length - 1]);\n }\n }\n }\n\n // This is not a default behavior of the <input /> field\n if (e.key === 'Escape') {\n input.blur();\n }\n },\n [handleUnselect, selected]\n );\n\n useEffect(() => {\n if (open) {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('touchend', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('touchend', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('touchend', handleClickOutside);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n useEffect(() => {\n if (value) {\n setSelected(value);\n }\n }, [value]);\n\n useEffect(() => {\n /** If `onSearch` is provided, do not trigger options updated. */\n if (!arrayOptions || onSearch) {\n return;\n }\n const newOption = transToGroupOption(arrayOptions || [], groupBy);\n if (JSON.stringify(newOption) !== JSON.stringify(options)) {\n setOptions(newOption);\n }\n }, [arrayDefaultOptions, arrayOptions, groupBy, onSearch, options]);\n\n useEffect(() => {\n /** sync search */\n\n const doSearchSync = () => {\n const res = onSearchSync?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n };\n\n const exec = async () => {\n if (!onSearchSync || !open) return;\n\n if (triggerSearchOnFocus) {\n doSearchSync();\n }\n\n if (debouncedSearchTerm) {\n doSearchSync();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n useEffect(() => {\n /** async search */\n\n const doSearch = async () => {\n setIsLoading(true);\n const res = await onSearch?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n setIsLoading(false);\n };\n\n const exec = async () => {\n if (!onSearch || !open) return;\n\n if (triggerSearchOnFocus) {\n await doSearch();\n }\n\n if (debouncedSearchTerm) {\n await doSearch();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n const CreatableItem = () => {\n if (!creatable) return undefined;\n if (isOptionsExist(options, [{ value: inputValue, label: inputValue }]) || selected.find(s => s.value === inputValue)) {\n return undefined;\n }\n\n const Item = (\n <CommandItem\n value={inputValue}\n className=\"cursor-pointer\"\n onMouseDown={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={(value: string) => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n setInputValue('');\n const newOptions = [...selected, { value, label: value }];\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n >\n {`Create \"${inputValue}\"`}\n </CommandItem>\n );\n\n // For normal creatable\n if (!onSearch && inputValue.length > 0) {\n return Item;\n }\n\n // For async search creatable. avoid showing creatable item before loading at first.\n if (onSearch && debouncedSearchTerm.length > 0 && !isLoading) {\n return Item;\n }\n\n return undefined;\n };\n\n const EmptyItem = useCallback(() => {\n if (!emptyIndicator) return undefined;\n\n // For async search that showing emptyIndicator\n if (onSearch && !creatable && Object.keys(options).length === 0) {\n return (\n <CommandItem value=\"-\" disabled>\n {emptyIndicator}\n </CommandItem>\n );\n }\n\n return <CommandEmpty>{emptyIndicator}</CommandEmpty>;\n }, [creatable, emptyIndicator, onSearch, options]);\n\n const selectables = useMemo<GroupOption>(() => removePickedOption(options, selected), [options, selected]);\n\n /** Avoid Creatable Selector freezing or lagging when paste a long string. */\n const commandFilter = useCallback(() => {\n if (commandProps?.filter) {\n return commandProps.filter;\n }\n\n if (creatable) {\n return (value: string, search: string) => {\n return value.toLowerCase().includes(search.toLowerCase()) ? 1 : -1;\n };\n }\n // Using default filter in `cmdk`. We don&lsquo;t have to provide it.\n return undefined;\n }, [creatable, commandProps?.filter]);\n\n return (\n <Command\n ref={dropdownRef}\n {...commandProps}\n onKeyDown={e => {\n handleKeyDown(e);\n commandProps?.onKeyDown?.(e);\n }}\n className={cn('h-auto overflow-visible bg-transparent', commandProps?.className)}\n shouldFilter={commandProps?.shouldFilter !== undefined ? commandProps.shouldFilter : !onSearch} // When onSearch is provided, we don&lsquo;t want to filter the options. You can still override it.\n filter={commandFilter()}\n >\n <div\n className={cn(\n 'border-border-weak relative rounded-md border text-sm transition-shadow',\n 'focus-within:border-primary',\n 'focus-within:ring-primary-weak',\n 'focus-within:ring-4',\n 'focus-within:outline-hidden',\n 'has-disabled:bg-muted',\n 'has-disabled:text-muted-foreground',\n selected.length !== 0 && 'p-1',\n !disabled && selected.length !== 0 && 'cursor-text',\n !hideClearAllButton && 'pe-9',\n className\n )}\n onClick={() => {\n if (disabled) return;\n inputRef?.current?.focus();\n }}\n >\n <div className=\"flex flex-wrap gap-1\">\n {selected.map(option => {\n return (\n <div\n key={option.value}\n className={cn(\n 'animate-fadeIn',\n 'bg-background',\n 'hover:bg-background',\n 'border-border-weak border border-solid',\n 'text-text-positive-weak relative inline-flex h-7 cursor-default items-center rounded-md ps-2 pe-7 pl-2 text-xs font-medium transition-all',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-fixed:pe-2',\n badgeClassName\n )}\n data-fixed={option.fixed}\n data-disabled={disabled || undefined}\n >\n {option.label}\n <button\n type=\"button\"\n disabled={disabled || option.fixed}\n className={cn(\n 'text-text-positive-muted absolute -inset-y-px -end-px flex size-7 items-center justify-center rounded-e-lg border border-transparent p-0 outline-0 transition-colors',\n 'hover:text-foreground',\n 'focus-visible:outline',\n 'focus-visible:outline-2',\n 'focus-visible:outline-primary-weak',\n 'disabled:hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50'\n )}\n onKeyDown={e => {\n if (e.key !== 'Enter') return;\n handleUnselect(option);\n }}\n onMouseDown={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n aria-label=\"Remove\"\n >\n <X size={14} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n );\n })}\n {/* Avoid having the \"Search\" Icon */}\n <CommandPrimitive.Input\n {...inputProps}\n ref={inputRef}\n value={inputValue}\n disabled={disabled}\n onValueChange={value => {\n setInputValue(value);\n inputProps?.onValueChange?.(value);\n }}\n onBlur={event => {\n if (!onScrollbar) {\n setOpen(false);\n }\n inputProps?.onBlur?.(event);\n }}\n onFocus={event => {\n setOpen(true);\n if (triggerSearchOnFocus) {\n onSearch?.(debouncedSearchTerm);\n }\n inputProps?.onFocus?.(event);\n }}\n placeholder={hidePlaceholderWhenSelected && selected.length !== 0 ? '' : placeholder}\n className={cn(\n 'placeholder:text-text-positive-muted flex-1 bg-transparent outline-hidden',\n 'disabled:placeholder:text-transparent',\n {\n 'w-full': hidePlaceholderWhenSelected,\n 'px-3 py-2': selected.length === 0,\n 'ml-1': selected.length !== 0,\n },\n inputProps?.className\n )}\n />\n <button\n type=\"button\"\n onClick={() => {\n setSelected(selected.filter(s => s.fixed));\n onChange?.(selected.filter(s => s.fixed));\n }}\n className={cn(\n 'text-muted-foreground/80',\n 'absolute end-0 top-0 flex size-9 items-center justify-center rounded-lg border border-transparent transition-colors',\n 'focus-visible:outline-2',\n 'hover:text-text-positive',\n 'focus-visible:outline-primary-weak',\n (hideClearAllButton || disabled || selected.length < 1 || selected.filter(({ fixed }) => fixed).length === selected.length) && 'hidden'\n )}\n aria-label=\"Clear all\"\n >\n <X size={16} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n <div className=\"relative\">\n <div\n className={cn(\n 'shadow-dropdown absolute top-2 z-10 w-full overflow-hidden rounded-lg',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95',\n 'data-[state=open]:zoom-in-95',\n !open && 'hidden'\n )}\n data-state={open ? 'open' : 'closed'}\n >\n {open && (\n <CommandList\n className=\"shadow-lg outline-hidden\"\n onMouseLeave={() => {\n setOnScrollbar(false);\n }}\n onMouseEnter={() => {\n setOnScrollbar(true);\n }}\n onMouseUp={() => {\n inputRef?.current?.focus();\n }}\n >\n {onAddNewItem && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <Button type=\"button\" variant=\"ghost\" className=\"w-full font-normal [&_div]:justify-start\" onClick={onAddNewItem}>\n <PlusIcon size={14} className=\"opacity-60\" aria-hidden=\"true\" />\n Thêm mới\n </Button>\n </CommandGroup>\n </>\n )}\n {isLoading ? (\n LoadingIndicator\n ) : (\n <>\n {EmptyItem()}\n {CreatableItem()}\n {!selectFirstItem && <CommandItem value=\"-\" className=\"hidden\" />}\n {Object.entries(selectables).map(([key, dropdowns]) => (\n <CommandGroup key={key} heading={key} className=\"h-full overflow-auto\">\n {dropdowns.map(option => {\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={option.disable}\n onMouseDown={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n const newOptions = [...selected, option];\n setInputValue('');\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n className={cn('cursor-pointer', option.disable && 'cursor-not-allowed opacity-50')}\n >\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n ))}\n </>\n )}\n </CommandList>\n )}\n </div>\n </div>\n </Command>\n );\n }\n);\n\nMultipleSelector.displayName = 'MultipleSelector';\n"],"mappings":"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"}
1
+ {"version":3,"file":"multi-select.cjs","names":["groupOption: GroupOption","CommandItem","value","Command","X","CommandPrimitive","CommandList","CommandSeparator","CommandGroup","Button","PlusIcon"],"sources":["../../packages/components/ui/multi-select.tsx"],"sourcesContent":["'use client';\nimport { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { PlusIcon, X } from 'lucide-react';\n\nimport { Button } from '@/components/ui/button';\nimport { Command, CommandGroup, CommandItem, CommandList, CommandSeparator } from '@/components/ui/command';\n\nimport { Command as CommandPrimitive, useCommandState } from 'cmdk';\n\nexport interface Option {\n value: string;\n label: string;\n disable?: boolean;\n /** fixed option that can&lsquo;t be removed. */\n fixed?: boolean;\n /** Group the options by providing key. */\n [key: string]: string | boolean | undefined;\n}\ninterface GroupOption {\n [key: string]: Option[];\n}\n\ninterface MultipleSelectorProps {\n value?: Option[];\n defaultOptions?: Option[];\n /** manually controlled options */\n options?: Option[];\n placeholder?: string;\n /** Loading component. */\n loadingIndicator?: React.ReactNode;\n /** Empty component. */\n emptyIndicator?: React.ReactNode;\n /** Debounce time for async search. Only work with `onSearch`. */\n delay?: number;\n /**\n * Only work with `onSearch` prop. Trigger search when `onFocus`.\n * For example, when user click on the input, it will trigger the search to get initial options.\n **/\n triggerSearchOnFocus?: boolean;\n /** async search */\n onSearch?: (value: string) => Promise<Option[]>;\n /**\n * sync search. This search will not showing loadingIndicator.\n * The rest props are the same as async search.\n * i.e.: creatable, groupBy, delay.\n **/\n onSearchSync?: (value: string) => Option[];\n onChange?: (options: Option[]) => void;\n /** Limit the maximum number of selected options. */\n maxSelected?: number;\n /** When the number of selected options exceeds the limit, the onMaxSelected will be called. */\n onMaxSelected?: (maxLimit: number) => void;\n /** Hide the placeholder when there are options selected. */\n hidePlaceholderWhenSelected?: boolean;\n disabled?: boolean;\n /** Group the options base on provided key. */\n groupBy?: string;\n className?: string;\n badgeClassName?: string;\n /**\n * First item selected is a default behavior by cmdk. That is why the default is true.\n * This is a workaround solution by add a dummy item.\n *\n * @reference: https://github.com/pacocoursey/cmdk/issues/171\n */\n selectFirstItem?: boolean;\n /** Allow user to create option when there is no option matched. */\n creatable?: boolean;\n /** Props of `Command` */\n commandProps?: React.ComponentPropsWithoutRef<typeof Command>;\n /** Props of `CommandInput` */\n inputProps?: Omit<React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>, 'value' | 'placeholder' | 'disabled'>;\n /** hide the clear all button. */\n hideClearAllButton?: boolean;\n\n /** Add new item event for select with search */\n onAddNewItem?: () => void;\n}\n\nexport interface MultipleSelectorRef {\n selectedValue: Option[];\n input: HTMLInputElement;\n focus: () => void;\n reset: () => void;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useDebounce<T>(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\nfunction transToGroupOption(options: Option[], groupBy?: string) {\n if (options.length === 0) {\n return {};\n }\n if (!groupBy) {\n return {\n '': options,\n };\n }\n\n const groupOption: GroupOption = {};\n options.forEach(option => {\n const key = (option[groupBy] as string) || '';\n if (!groupOption[key]) {\n groupOption[key] = [];\n }\n groupOption[key].push(option);\n });\n return groupOption;\n}\n\nfunction removePickedOption(groupOption: GroupOption, picked: Option[]) {\n const cloneOption = JSON.parse(JSON.stringify(groupOption)) as GroupOption;\n\n for (const [key, value] of Object.entries(cloneOption)) {\n cloneOption[key] = value.filter(val => !picked.find(p => p.value === val.value));\n }\n return cloneOption;\n}\n\nfunction isOptionsExist(groupOption: GroupOption, targetOption: Option[]) {\n for (const [, value] of Object.entries(groupOption)) {\n if (value.some(option => targetOption.find(p => p.value === option.value))) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The `CommandEmpty` of shadcn/ui will cause the cmdk empty not rendering correctly.\n * So we create one and copy the `Empty` implementation from `cmdk`.\n *\n * @reference: https://github.com/hsuanyi-chou/shadcn-ui-expansions/issues/34#issuecomment-1949561607\n **/\nconst CommandEmpty = forwardRef<HTMLDivElement, React.ComponentProps<typeof CommandPrimitive.Empty>>(({ className, ...props }, forwardedRef) => {\n const render = useCommandState(state => state.filtered.count === 0);\n\n if (!render) return null;\n\n return <div ref={forwardedRef} className={cn('px-2 py-4 text-center text-sm', className)} cmdk-empty=\"\" role=\"presentation\" {...props} />;\n});\n\nCommandEmpty.displayName = 'CommandEmpty';\n\nexport const MultipleSelector = forwardRef<MultipleSelectorRef, MultipleSelectorProps>(\n (\n {\n value,\n onChange,\n placeholder,\n defaultOptions: arrayDefaultOptions = [],\n options: arrayOptions,\n delay,\n onSearch,\n onSearchSync,\n loadingIndicator: LoadingIndicator,\n emptyIndicator,\n maxSelected = Number.MAX_SAFE_INTEGER,\n onMaxSelected,\n hidePlaceholderWhenSelected,\n disabled,\n groupBy,\n className,\n badgeClassName,\n selectFirstItem = true,\n creatable = false,\n triggerSearchOnFocus = false,\n commandProps,\n inputProps,\n hideClearAllButton = false,\n onAddNewItem,\n }: MultipleSelectorProps,\n ref: React.Ref<MultipleSelectorRef>\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null); // Added this\n\n const [open, setOpen] = useState(false);\n const [onScrollbar, setOnScrollbar] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const [selected, setSelected] = useState<Option[]>(value || []);\n const [options, setOptions] = useState<GroupOption>(transToGroupOption(arrayDefaultOptions, groupBy));\n const [inputValue, setInputValue] = useState('');\n\n const debouncedSearchTerm = useDebounce(inputValue, delay || 500);\n\n useImperativeHandle(\n ref,\n () => ({\n selectedValue: [...selected],\n input: inputRef.current as HTMLInputElement,\n focus: () => inputRef?.current?.focus(),\n reset: () => setSelected([]),\n }),\n [selected]\n );\n\n const handleClickOutside = useCallback((event: MouseEvent | TouchEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node) && inputRef.current && !inputRef.current.contains(event.target as Node)) {\n setOpen(false);\n inputRef.current.blur();\n }\n }, []);\n\n const handleUnselect = useCallback(\n (option: Option) => {\n const newOptions = selected.filter(s => s.value !== option.value);\n setSelected(newOptions);\n onChange?.(newOptions);\n },\n [onChange, selected]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const input = inputRef.current;\n if (!input) return;\n\n if (e.key === 'Delete' || e.key === 'Backspace') {\n if (input.value === '' && selected.length > 0) {\n const lastSelectOption = selected[selected.length - 1];\n // If last item is fixed, we should not remove it.\n if (!lastSelectOption.fixed) {\n handleUnselect(selected[selected.length - 1]);\n }\n }\n }\n\n // This is not a default behavior of the <input /> field\n if (e.key === 'Escape') {\n input.blur();\n }\n },\n [handleUnselect, selected]\n );\n\n useEffect(() => {\n if (open) {\n document.addEventListener('mousedown', handleClickOutside);\n document.addEventListener('touchend', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('touchend', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('touchend', handleClickOutside);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n useEffect(() => {\n if (value) {\n setSelected(value);\n }\n }, [value]);\n\n useEffect(() => {\n /** If `onSearch` is provided, do not trigger options updated. */\n if (!arrayOptions || onSearch) {\n return;\n }\n const newOption = transToGroupOption(arrayOptions || [], groupBy);\n if (JSON.stringify(newOption) !== JSON.stringify(options)) {\n setOptions(newOption);\n }\n }, [arrayDefaultOptions, arrayOptions, groupBy, onSearch, options]);\n\n useEffect(() => {\n /** sync search */\n\n const doSearchSync = () => {\n const res = onSearchSync?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n };\n\n const exec = async () => {\n if (!onSearchSync || !open) return;\n\n if (triggerSearchOnFocus) {\n doSearchSync();\n }\n\n if (debouncedSearchTerm) {\n doSearchSync();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n useEffect(() => {\n /** async search */\n\n const doSearch = async () => {\n setIsLoading(true);\n const res = await onSearch?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n setIsLoading(false);\n };\n\n const exec = async () => {\n if (!onSearch || !open) return;\n\n if (triggerSearchOnFocus) {\n await doSearch();\n }\n\n if (debouncedSearchTerm) {\n await doSearch();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n const CreatableItem = () => {\n if (!creatable) return undefined;\n if (isOptionsExist(options, [{ value: inputValue, label: inputValue }]) || selected.find(s => s.value === inputValue)) {\n return undefined;\n }\n\n const Item = (\n <CommandItem\n value={inputValue}\n className=\"cursor-pointer\"\n onMouseDown={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={(value: string) => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n setInputValue('');\n const newOptions = [...selected, { value, label: value }];\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n >\n {`Create \"${inputValue}\"`}\n </CommandItem>\n );\n\n // For normal creatable\n if (!onSearch && inputValue.length > 0) {\n return Item;\n }\n\n // For async search creatable. avoid showing creatable item before loading at first.\n if (onSearch && debouncedSearchTerm.length > 0 && !isLoading) {\n return Item;\n }\n\n return undefined;\n };\n\n const EmptyItem = useCallback(() => {\n if (!emptyIndicator) return undefined;\n\n // For async search that showing emptyIndicator\n if (onSearch && !creatable && Object.keys(options).length === 0) {\n return (\n <CommandItem value=\"-\" disabled>\n {emptyIndicator}\n </CommandItem>\n );\n }\n\n return <CommandEmpty>{emptyIndicator}</CommandEmpty>;\n }, [creatable, emptyIndicator, onSearch, options]);\n\n const selectables = useMemo<GroupOption>(() => removePickedOption(options, selected), [options, selected]);\n\n /** Avoid Creatable Selector freezing or lagging when paste a long string. */\n const commandFilter = useCallback(() => {\n if (commandProps?.filter) {\n return commandProps.filter;\n }\n\n if (creatable) {\n return (value: string, search: string) => {\n return value.toLowerCase().includes(search.toLowerCase()) ? 1 : -1;\n };\n }\n // Using default filter in `cmdk`. We don&lsquo;t have to provide it.\n return undefined;\n }, [creatable, commandProps?.filter]);\n\n return (\n <Command\n ref={dropdownRef}\n {...commandProps}\n onKeyDown={e => {\n handleKeyDown(e);\n commandProps?.onKeyDown?.(e);\n }}\n className={cn('h-auto overflow-visible bg-transparent', commandProps?.className)}\n shouldFilter={commandProps?.shouldFilter !== undefined ? commandProps.shouldFilter : !onSearch} // When onSearch is provided, we don&lsquo;t want to filter the options. You can still override it.\n filter={commandFilter()}\n >\n <div\n className={cn(\n 'border-border-weak relative rounded-md border text-sm transition-shadow',\n 'focus-within:border-primary',\n 'focus-within:ring-primary-weak',\n 'focus-within:ring-4',\n 'focus-within:outline-hidden',\n 'has-disabled:bg-muted',\n 'has-disabled:text-muted-foreground',\n selected.length !== 0 && 'p-1',\n !disabled && selected.length !== 0 && 'cursor-text',\n !hideClearAllButton && 'pe-9',\n className\n )}\n onClick={() => {\n if (disabled) return;\n inputRef?.current?.focus();\n }}\n >\n <div className=\"flex flex-wrap gap-1\">\n {selected.map(option => {\n return (\n <div\n key={option.value}\n className={cn(\n 'animate-fadeIn',\n 'bg-background',\n 'hover:bg-background',\n 'border-border-weak border border-solid',\n 'text-text-positive-weak relative inline-flex h-7 cursor-default items-center rounded-md ps-2 pe-7 pl-2 text-xs font-medium transition-all',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-fixed:pe-2',\n badgeClassName\n )}\n data-fixed={option.fixed}\n data-disabled={disabled || undefined}\n >\n {option.label}\n <button\n type=\"button\"\n disabled={disabled || option.fixed}\n className={cn(\n 'text-text-positive-muted absolute -inset-y-px -end-px flex size-7 items-center justify-center rounded-e-lg border border-transparent p-0 outline-0 transition-colors',\n 'hover:text-foreground',\n 'focus-visible:outline',\n 'focus-visible:outline-2',\n 'focus-visible:outline-primary-weak',\n 'disabled:hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50'\n )}\n onKeyDown={e => {\n if (e.key !== 'Enter') return;\n handleUnselect(option);\n }}\n onMouseDown={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n aria-label=\"Remove\"\n >\n <X size={14} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n );\n })}\n {/* Avoid having the \"Search\" Icon */}\n <CommandPrimitive.Input\n {...inputProps}\n ref={inputRef}\n value={inputValue}\n disabled={disabled}\n onValueChange={value => {\n setInputValue(value);\n inputProps?.onValueChange?.(value);\n }}\n onBlur={event => {\n if (!onScrollbar) {\n setOpen(false);\n }\n inputProps?.onBlur?.(event);\n }}\n onFocus={event => {\n setOpen(true);\n if (triggerSearchOnFocus) {\n onSearch?.(debouncedSearchTerm);\n }\n inputProps?.onFocus?.(event);\n }}\n placeholder={hidePlaceholderWhenSelected && selected.length !== 0 ? '' : placeholder}\n className={cn(\n 'placeholder:text-text-positive-muted flex-1 bg-transparent outline-hidden',\n 'disabled:placeholder:text-transparent',\n {\n 'w-full': hidePlaceholderWhenSelected,\n 'px-3 py-2': selected.length === 0,\n 'ml-1': selected.length !== 0,\n },\n inputProps?.className\n )}\n />\n <button\n type=\"button\"\n onClick={() => {\n setSelected(selected.filter(s => s.fixed));\n onChange?.(selected.filter(s => s.fixed));\n }}\n className={cn(\n 'text-muted-foreground/80',\n 'absolute end-0 top-0 flex size-9 items-center justify-center rounded-lg border border-transparent transition-colors',\n 'focus-visible:outline-2',\n 'hover:text-text-positive',\n 'focus-visible:outline-primary-weak',\n (hideClearAllButton || disabled || selected.length < 1 || selected.filter(({ fixed }) => fixed).length === selected.length) && 'hidden'\n )}\n aria-label=\"Clear all\"\n >\n <X size={16} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n <div className=\"relative\">\n <div\n className={cn(\n 'shadow-dropdown absolute top-2 z-10 w-full overflow-hidden rounded-lg',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95',\n 'data-[state=open]:zoom-in-95',\n !open && 'hidden'\n )}\n data-state={open ? 'open' : 'closed'}\n >\n {open && (\n <CommandList\n className=\"shadow-lg outline-hidden\"\n onMouseLeave={() => {\n setOnScrollbar(false);\n }}\n onMouseEnter={() => {\n setOnScrollbar(true);\n }}\n onMouseUp={() => {\n inputRef?.current?.focus();\n }}\n >\n {onAddNewItem && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <Button type=\"button\" variant=\"ghost\" className=\"w-full font-normal [&_div]:justify-start\" onClick={onAddNewItem}>\n <PlusIcon size={14} className=\"opacity-60\" aria-hidden=\"true\" />\n Thêm mới\n </Button>\n </CommandGroup>\n </>\n )}\n {isLoading ? (\n LoadingIndicator\n ) : (\n <>\n {EmptyItem()}\n {CreatableItem()}\n {!selectFirstItem && <CommandItem value=\"-\" className=\"hidden\" />}\n {Object.entries(selectables).map(([key, dropdowns]) => (\n <CommandGroup key={key} heading={key} className=\"h-full overflow-auto\">\n {dropdowns.map(option => {\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={option.disable}\n onMouseDown={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n const newOptions = [...selected, option];\n setInputValue('');\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n className={cn('cursor-pointer', option.disable && 'cursor-not-allowed opacity-50')}\n >\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n ))}\n </>\n )}\n </CommandList>\n )}\n </div>\n </div>\n </Command>\n );\n }\n);\n\nMultipleSelector.displayName = 'MultipleSelector';\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Command as Command$1 } from "./command.cjs";
2
- import * as react14 from "react";
2
+ import * as react26 from "react";
3
3
  import { Command } from "cmdk";
4
4
 
5
5
  //#region packages/components/ui/multi-select.d.ts
@@ -74,7 +74,7 @@ interface MultipleSelectorRef {
74
74
  reset: () => void;
75
75
  }
76
76
  declare function useDebounce<T>(value: T, delay?: number): T;
77
- declare const MultipleSelector: react14.ForwardRefExoticComponent<MultipleSelectorProps & react14.RefAttributes<MultipleSelectorRef>>;
77
+ declare const MultipleSelector: react26.ForwardRefExoticComponent<MultipleSelectorProps & react26.RefAttributes<MultipleSelectorRef>>;
78
78
  //#endregion
79
79
  export { MultipleSelector, MultipleSelectorRef, Option, useDebounce };
80
80
  //# sourceMappingURL=multi-select.d.cts.map