@customafk/lunas-ui 0.0.60 → 0.0.61

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 (495) hide show
  1. package/dist/add-new-LGex5x9J.cjs +2 -0
  2. package/dist/{add-new-C9Gjd7QJ.cjs.map → add-new-LGex5x9J.cjs.map} +1 -1
  3. package/dist/add-new-VnpqRAAB.js +2 -0
  4. package/dist/{add-new-BrbEoynl.js.map → add-new-VnpqRAAB.js.map} +1 -1
  5. package/dist/{alert-dialog-csUZX4AP.cjs → alert-dialog-7AEaiJxA.cjs} +2 -2
  6. package/dist/{alert-dialog-csUZX4AP.cjs.map → alert-dialog-7AEaiJxA.cjs.map} +1 -1
  7. package/dist/alert-dialog-B8Whrlfq.js +2 -0
  8. package/dist/{alert-dialog-CnUUZRzI.js.map → alert-dialog-B8Whrlfq.js.map} +1 -1
  9. package/dist/{badge-gByXCsor.js → badge-8wMMxROk.js} +2 -2
  10. package/dist/{badge-gByXCsor.js.map → badge-8wMMxROk.js.map} +1 -1
  11. package/dist/{badge-i7tq2_AR.cjs → badge-BnFraaZ1.cjs} +2 -2
  12. package/dist/{badge-i7tq2_AR.cjs.map → badge-BnFraaZ1.cjs.map} +1 -1
  13. package/dist/{button-ChpGfVjG.cjs → button-119IIVCy.cjs} +2 -2
  14. package/dist/{button-ChpGfVjG.cjs.map → button-119IIVCy.cjs.map} +1 -1
  15. package/dist/{button-QTiWGKzL.d.cts → button-CiiRwPo0.d.cts} +3 -3
  16. package/dist/{button-DL_i4AVi.js → button-CvQQTSka.js} +2 -2
  17. package/dist/{button-DL_i4AVi.js.map → button-CvQQTSka.js.map} +1 -1
  18. package/dist/{button-BHhyePyp.d.ts → button-tIBg0Orc.d.ts} +3 -3
  19. package/dist/calendar-BgoGbit6.js +2 -0
  20. package/dist/{calendar-aC4BQig6.js.map → calendar-BgoGbit6.js.map} +1 -1
  21. package/dist/calendar-CrtbhiDy.cjs +2 -0
  22. package/dist/{calendar-DtHmsN1p.cjs.map → calendar-CrtbhiDy.cjs.map} +1 -1
  23. package/dist/{card-jtQVsG4Y.js → card-BFYPY2aR.js} +1 -1
  24. package/dist/{card-jtQVsG4Y.js.map → card-BFYPY2aR.js.map} +1 -1
  25. package/dist/{card-BNMBjSC_.cjs → card-RJvu27Ck.cjs} +1 -1
  26. package/dist/{card-BNMBjSC_.cjs.map → card-RJvu27Ck.cjs.map} +1 -1
  27. package/dist/cards/grid-product-card.cjs +2 -0
  28. package/dist/cards/grid-product-card.cjs.map +1 -0
  29. package/dist/cards/grid-product-card.d.cts +14 -0
  30. package/dist/cards/grid-product-card.d.ts +14 -0
  31. package/dist/cards/grid-product-card.js +2 -0
  32. package/dist/cards/grid-product-card.js.map +1 -0
  33. package/dist/cards/product-card.cjs +2 -0
  34. package/dist/cards/product-card.cjs.map +1 -0
  35. package/dist/cards/product-card.d.cts +14 -0
  36. package/dist/cards/product-card.d.ts +14 -0
  37. package/dist/cards/product-card.js +2 -0
  38. package/dist/cards/product-card.js.map +1 -0
  39. package/dist/cards/simple-card.cjs +1 -1
  40. package/dist/cards/simple-card.js +1 -1
  41. package/dist/{command-C6YVs0fB.d.ts → command-C3v9zAXg.d.ts} +12 -12
  42. package/dist/{command-D5rQByNQ.cjs → command-COUM-XfY.cjs} +2 -2
  43. package/dist/{command-D5rQByNQ.cjs.map → command-COUM-XfY.cjs.map} +1 -1
  44. package/dist/{command-B3A4F1pB.js → command-DNfCX3KZ.js} +2 -2
  45. package/dist/{command-B3A4F1pB.js.map → command-DNfCX3KZ.js.map} +1 -1
  46. package/dist/{command-Duxn64SV.d.cts → command-tdSE_rEO.d.cts} +12 -12
  47. package/dist/data-display/country.cjs +1 -1
  48. package/dist/data-display/country.d.ts +1 -1
  49. package/dist/data-display/country.js +1 -1
  50. package/dist/data-display/data-list.cjs +1 -1
  51. package/dist/data-display/data-list.js +1 -1
  52. package/dist/data-display/date-tooltip.cjs +1 -1
  53. package/dist/data-display/date-tooltip.js +1 -1
  54. package/dist/data-display/date.cjs +1 -1
  55. package/dist/data-display/date.js +1 -1
  56. package/dist/data-display/empty.cjs +1 -1
  57. package/dist/data-display/empty.js +1 -1
  58. package/dist/data-display/name.cjs +1 -1
  59. package/dist/data-display/name.cjs.map +1 -1
  60. package/dist/data-display/name.js +1 -1
  61. package/dist/data-display/name.js.map +1 -1
  62. package/dist/data-display/phone-number.cjs +1 -1
  63. package/dist/data-display/phone-number.js +1 -1
  64. package/dist/data-display/role-badge.cjs +1 -1
  65. package/dist/data-display/role-badge.d.ts +1 -1
  66. package/dist/data-display/role-badge.js +1 -1
  67. package/dist/data-display/statistic.cjs +1 -1
  68. package/dist/data-display/statistic.d.ts +2 -2
  69. package/dist/data-display/statistic.js +1 -1
  70. package/dist/{date-Cbx2drzh.js → date-DWxL795U.js} +1 -1
  71. package/dist/{date-Cbx2drzh.js.map → date-DWxL795U.js.map} +1 -1
  72. package/dist/{date-qVDm6BT3.cjs → date-wo9LyN6l.cjs} +1 -1
  73. package/dist/{date-qVDm6BT3.cjs.map → date-wo9LyN6l.cjs.map} +1 -1
  74. package/dist/{dialog-uj9sAbgt.d.cts → dialog-B10MbJD8.d.ts} +12 -12
  75. package/dist/dialog-CGrbU7PO.cjs +2 -0
  76. package/dist/{dialog-E5OYibMU.cjs.map → dialog-CGrbU7PO.cjs.map} +1 -1
  77. package/dist/{dialog-Dra_FGdL.d.ts → dialog-CIrv1yaX.d.cts} +12 -12
  78. package/dist/dialog-DbI18XF9.js +2 -0
  79. package/dist/{dialog-BEJ3krbY.js.map → dialog-DbI18XF9.js.map} +1 -1
  80. package/dist/dialogs/confirm-dialog.cjs +1 -1
  81. package/dist/dialogs/confirm-dialog.js +1 -1
  82. package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
  83. package/dist/dialogs/detail-dialog/component/sidebar.d.cts +4 -4
  84. package/dist/dialogs/detail-dialog/component/sidebar.d.ts +5 -5
  85. package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
  86. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  87. package/dist/dialogs/detail-dialog/index.js +1 -1
  88. package/dist/dialogs/error-dialog.cjs +1 -1
  89. package/dist/dialogs/error-dialog.js +1 -1
  90. package/dist/dialogs/form-dialog.cjs +1 -1
  91. package/dist/dialogs/form-dialog.d.cts +2 -2
  92. package/dist/dialogs/form-dialog.d.ts +2 -2
  93. package/dist/dialogs/form-dialog.js +1 -1
  94. package/dist/dialogs/loading-dialog.cjs +1 -1
  95. package/dist/dialogs/loading-dialog.js +1 -1
  96. package/dist/dropdown-menu-B06fE_Uj.js +2 -0
  97. package/dist/{dropdown-menu-BF9QbIfo.js.map → dropdown-menu-B06fE_Uj.js.map} +1 -1
  98. package/dist/{dropdown-menu-CIldv8D7.cjs → dropdown-menu-BupXTsCa.cjs} +2 -2
  99. package/dist/{dropdown-menu-CIldv8D7.cjs.map → dropdown-menu-BupXTsCa.cjs.map} +1 -1
  100. package/dist/error-dialog-COyyui94.cjs +2 -0
  101. package/dist/{error-dialog-CsZ9SHEm.cjs.map → error-dialog-COyyui94.cjs.map} +1 -1
  102. package/dist/error-dialog-YlSsQqiT.js +2 -0
  103. package/dist/{error-dialog-Be_eV-D7.js.map → error-dialog-YlSsQqiT.js.map} +1 -1
  104. package/dist/{flex-D_GSLR10.js → flex-BxBmZCWh.js} +2 -2
  105. package/dist/{flex-D_GSLR10.js.map → flex-BxBmZCWh.js.map} +1 -1
  106. package/dist/{flex-DaTrJCBr.cjs → flex-C-4TxUDe.cjs} +2 -2
  107. package/dist/{flex-DaTrJCBr.cjs.map → flex-C-4TxUDe.cjs.map} +1 -1
  108. package/dist/form-B0fOiANW.js +2 -0
  109. package/dist/{form-RRTCXIG6.js.map → form-B0fOiANW.js.map} +1 -1
  110. package/dist/form-DAwCSzSe.cjs +2 -0
  111. package/dist/{form-Dcd2HzUB.cjs.map → form-DAwCSzSe.cjs.map} +1 -1
  112. package/dist/form-wrapper-C4OO_eLu.js +2 -0
  113. package/dist/{form-wrapper-D-KkrCiZ.js.map → form-wrapper-C4OO_eLu.js.map} +1 -1
  114. package/dist/form-wrapper-D0-p7R15.cjs +2 -0
  115. package/dist/{form-wrapper-CjFQKRzY.cjs.map → form-wrapper-D0-p7R15.cjs.map} +1 -1
  116. package/dist/forms/combobox-field.cjs +1 -1
  117. package/dist/forms/combobox-field.d.cts +2 -2
  118. package/dist/forms/combobox-field.d.ts +2 -2
  119. package/dist/forms/combobox-field.js +1 -1
  120. package/dist/forms/date-field.cjs +1 -1
  121. package/dist/forms/date-field.d.cts +2 -2
  122. package/dist/forms/date-field.d.ts +2 -2
  123. package/dist/forms/date-field.js +1 -1
  124. package/dist/forms/form-wrapper.cjs +1 -1
  125. package/dist/forms/form-wrapper.d.cts +2 -2
  126. package/dist/forms/form-wrapper.d.ts +2 -2
  127. package/dist/forms/form-wrapper.js +1 -1
  128. package/dist/forms/multi-select-field.cjs +1 -1
  129. package/dist/forms/multi-select-field.d.cts +2 -2
  130. package/dist/forms/multi-select-field.d.ts +2 -2
  131. package/dist/forms/multi-select-field.js +1 -1
  132. package/dist/forms/number-field.cjs +1 -1
  133. package/dist/forms/number-field.d.cts +2 -2
  134. package/dist/forms/number-field.d.ts +2 -2
  135. package/dist/forms/number-field.js +1 -1
  136. package/dist/forms/password-field.cjs +1 -1
  137. package/dist/forms/password-field.d.cts +2 -2
  138. package/dist/forms/password-field.d.ts +2 -2
  139. package/dist/forms/password-field.js +1 -1
  140. package/dist/forms/select-field.cjs +1 -1
  141. package/dist/forms/select-field.d.cts +2 -2
  142. package/dist/forms/select-field.d.ts +2 -2
  143. package/dist/forms/select-field.js +1 -1
  144. package/dist/forms/switch-field.cjs +1 -1
  145. package/dist/forms/switch-field.d.cts +2 -2
  146. package/dist/forms/switch-field.d.ts +2 -2
  147. package/dist/forms/switch-field.js +1 -1
  148. package/dist/forms/text-field.cjs +1 -1
  149. package/dist/forms/text-field.d.cts +2 -2
  150. package/dist/forms/text-field.d.ts +2 -2
  151. package/dist/forms/text-field.js +1 -1
  152. package/dist/forms/textarea-field.cjs +1 -1
  153. package/dist/forms/textarea-field.d.cts +2 -2
  154. package/dist/forms/textarea-field.d.ts +2 -2
  155. package/dist/forms/textarea-field.js +1 -1
  156. package/dist/image-BdTzYp1S.js +2 -0
  157. package/dist/image-BdTzYp1S.js.map +1 -0
  158. package/dist/image-Cm4vJeHx.cjs +2 -0
  159. package/dist/image-Cm4vJeHx.cjs.map +1 -0
  160. package/dist/{input-DQF8Uxmk.cjs → input-Bt7b3-NW.cjs} +1 -1
  161. package/dist/{input-DQF8Uxmk.cjs.map → input-Bt7b3-NW.cjs.map} +1 -1
  162. package/dist/{input-6yLVoluZ.d.cts → input-Btkk-D-H.d.cts} +3 -3
  163. package/dist/{input-MftSrRAM.d.ts → input-CyBgjNII.d.ts} +3 -3
  164. package/dist/{input-B2PP82lE.js → input-i5Nm0R1X.js} +1 -1
  165. package/dist/{input-B2PP82lE.js.map → input-i5Nm0R1X.js.map} +1 -1
  166. package/dist/{label-BvHMsK0O.cjs → label-BbuMrcie.cjs} +2 -2
  167. package/dist/{label-BvHMsK0O.cjs.map → label-BbuMrcie.cjs.map} +1 -1
  168. package/dist/label-CyaoUND0.js +2 -0
  169. package/dist/{label-BpefWj7m.js.map → label-CyaoUND0.js.map} +1 -1
  170. package/dist/layouts/app-layout/index.cjs +1 -1
  171. package/dist/layouts/app-layout/index.d.cts +3 -3
  172. package/dist/layouts/app-layout/index.d.ts +4 -4
  173. package/dist/layouts/app-layout/index.js +1 -1
  174. package/dist/layouts/flex.cjs +1 -1
  175. package/dist/layouts/flex.d.cts +2 -2
  176. package/dist/layouts/flex.d.ts +3 -3
  177. package/dist/layouts/flex.js +1 -1
  178. package/dist/{multi-select-Ch4hJ1ZJ.cjs → multi-select-C8kzA628.cjs} +2 -2
  179. package/dist/{multi-select-Ch4hJ1ZJ.cjs.map → multi-select-C8kzA628.cjs.map} +1 -1
  180. package/dist/{multi-select-l55hOOtW.js → multi-select-CaBcDGi6.js} +2 -2
  181. package/dist/{multi-select-l55hOOtW.js.map → multi-select-CaBcDGi6.js.map} +1 -1
  182. package/dist/paragraph-BwSskqDY.js +2 -0
  183. package/dist/{paragraph-D4klQX4h.js.map → paragraph-BwSskqDY.js.map} +1 -1
  184. package/dist/{paragraph-BsEYXIR3.cjs → paragraph-CI28eVP0.cjs} +2 -2
  185. package/dist/{paragraph-BsEYXIR3.cjs.map → paragraph-CI28eVP0.cjs.map} +1 -1
  186. package/dist/{popover-sgf8XI5P.cjs → popover-BsF6vWTX.cjs} +2 -2
  187. package/dist/{popover-sgf8XI5P.cjs.map → popover-BsF6vWTX.cjs.map} +1 -1
  188. package/dist/{popover-BAGWkHPy.js → popover-CT9ZjjNA.js} +2 -2
  189. package/dist/{popover-BAGWkHPy.js.map → popover-CT9ZjjNA.js.map} +1 -1
  190. package/dist/progress-BhSNuH1w.cjs +2 -0
  191. package/dist/{progress-IkXemE6u.cjs.map → progress-BhSNuH1w.cjs.map} +1 -1
  192. package/dist/progress-PzPWivBh.js +2 -0
  193. package/dist/{progress-CMMXIQct.js.map → progress-PzPWivBh.js.map} +1 -1
  194. package/dist/refresh-B2wYinm5.cjs +2 -0
  195. package/dist/{refresh-CAScDb8R.cjs.map → refresh-B2wYinm5.cjs.map} +1 -1
  196. package/dist/refresh-BMR_jPST.js +2 -0
  197. package/dist/{refresh-D4LYYQln.js.map → refresh-BMR_jPST.js.map} +1 -1
  198. package/dist/{scroll-area-D7O1NyZn.cjs → scroll-area-CbABlDpy.cjs} +2 -2
  199. package/dist/{scroll-area-D7O1NyZn.cjs.map → scroll-area-CbABlDpy.cjs.map} +1 -1
  200. package/dist/scroll-area-F3yESo8d.js +2 -0
  201. package/dist/{scroll-area-CPQoJKt1.js.map → scroll-area-F3yESo8d.js.map} +1 -1
  202. package/dist/{search-input-B1eWzWZj.cjs → search-input-BsnMUPtZ.cjs} +2 -2
  203. package/dist/{search-input-B1eWzWZj.cjs.map → search-input-BsnMUPtZ.cjs.map} +1 -1
  204. package/dist/search-input-tivZy8LE.js +2 -0
  205. package/dist/{search-input-BZtDbdjl.js.map → search-input-tivZy8LE.js.map} +1 -1
  206. package/dist/{select-C7na5CE5.cjs → select-S75hVYoR.cjs} +2 -2
  207. package/dist/{select-C7na5CE5.cjs.map → select-S75hVYoR.cjs.map} +1 -1
  208. package/dist/select-_oIGH0ax.js +2 -0
  209. package/dist/{select-VpccO3h2.js.map → select-_oIGH0ax.js.map} +1 -1
  210. package/dist/{separator-D6-cZUiB.d.ts → separator-B-yN9e9m.d.ts} +3 -3
  211. package/dist/{separator-DW2rRXaF.js → separator-CxCq7NYP.js} +2 -2
  212. package/dist/{separator-DW2rRXaF.js.map → separator-CxCq7NYP.js.map} +1 -1
  213. package/dist/{separator-C0YKWxkk.d.cts → separator-de4423bu.d.cts} +3 -3
  214. package/dist/{separator-DbcVW13X.cjs → separator-hulDSW7B.cjs} +2 -2
  215. package/dist/{separator-DbcVW13X.cjs.map → separator-hulDSW7B.cjs.map} +1 -1
  216. package/dist/{sheet-BoPRwRzk.cjs → sheet-D8iW1o50.cjs} +2 -2
  217. package/dist/{sheet-BoPRwRzk.cjs.map → sheet-D8iW1o50.cjs.map} +1 -1
  218. package/dist/sheet-amjZQ7nX.js +2 -0
  219. package/dist/{sheet-CJscm87z.js.map → sheet-amjZQ7nX.js.map} +1 -1
  220. package/dist/{sidebar-BCsgl6i1.cjs → sidebar-BwIH2lFJ.cjs} +2 -2
  221. package/dist/{sidebar-BCsgl6i1.cjs.map → sidebar-BwIH2lFJ.cjs.map} +1 -1
  222. package/dist/{sidebar-BEgx0ScE.js → sidebar-Cf5tv_x0.js} +2 -2
  223. package/dist/{sidebar-BEgx0ScE.js.map → sidebar-Cf5tv_x0.js.map} +1 -1
  224. package/dist/{skeleton-1syVaGRv.cjs → skeleton-CmGSyYRm.cjs} +1 -1
  225. package/dist/{skeleton-1syVaGRv.cjs.map → skeleton-CmGSyYRm.cjs.map} +1 -1
  226. package/dist/{skeleton-D_7tekGk.js → skeleton-DFF0w4en.js} +1 -1
  227. package/dist/{skeleton-D_7tekGk.js.map → skeleton-DFF0w4en.js.map} +1 -1
  228. package/dist/{switch-fR9s61cJ.cjs → switch-BN4ghEjT.cjs} +2 -2
  229. package/dist/{switch-fR9s61cJ.cjs.map → switch-BN4ghEjT.cjs.map} +1 -1
  230. package/dist/{switch-DxMWudiz.js → switch-BeQqTAw4.js} +2 -2
  231. package/dist/{switch-DxMWudiz.js.map → switch-BeQqTAw4.js.map} +1 -1
  232. package/dist/table/index.cjs +1 -1
  233. package/dist/table/index.cjs.map +1 -1
  234. package/dist/table/index.d.cts +2 -2
  235. package/dist/table/index.d.ts +2 -2
  236. package/dist/table/index.js +1 -1
  237. package/dist/{table-DxHSASjm.cjs → table-Bz4GB66J.cjs} +2 -2
  238. package/dist/{table-DxHSASjm.cjs.map → table-Bz4GB66J.cjs.map} +1 -1
  239. package/dist/{table-DxiQX7c8.js → table-Fby8ksbK.js} +2 -2
  240. package/dist/{table-DxiQX7c8.js.map → table-Fby8ksbK.js.map} +1 -1
  241. package/dist/{textarea-qcxhp2mg.cjs → textarea-CWLU6cai.cjs} +1 -1
  242. package/dist/{textarea-qcxhp2mg.cjs.map → textarea-CWLU6cai.cjs.map} +1 -1
  243. package/dist/{textarea-BZu5g3z6.js → textarea-S2APrJU-.js} +1 -1
  244. package/dist/{textarea-BZu5g3z6.js.map → textarea-S2APrJU-.js.map} +1 -1
  245. package/dist/{title-DONX1fR6.cjs → title-DMOj1cgG.cjs} +2 -2
  246. package/dist/{title-DONX1fR6.cjs.map → title-DMOj1cgG.cjs.map} +1 -1
  247. package/dist/title-DiaFg5B5.js +2 -0
  248. package/dist/{title-itXqz0us.js.map → title-DiaFg5B5.js.map} +1 -1
  249. package/dist/{toggle-C50tM61w.cjs → toggle-BrHo4W70.cjs} +2 -2
  250. package/dist/{toggle-C50tM61w.cjs.map → toggle-BrHo4W70.cjs.map} +1 -1
  251. package/dist/{toggle-Biu3ZQOw.js → toggle-DCZ9RTZZ.js} +2 -2
  252. package/dist/{toggle-Biu3ZQOw.js.map → toggle-DCZ9RTZZ.js.map} +1 -1
  253. package/dist/{toggle-BxWWejw5.d.ts → toggle-SBkrA8Qk.d.ts} +6 -6
  254. package/dist/{tooltip-Ccg2G_fB.d.cts → tooltip-C30oHuY9.d.ts} +7 -7
  255. package/dist/tooltip-CN8vvmWA.js +2 -0
  256. package/dist/{tooltip-B7S7TrMj.js.map → tooltip-CN8vvmWA.js.map} +1 -1
  257. package/dist/{tooltip-CcNSIS_A.d.ts → tooltip-DE_eohyj.d.cts} +1 -1
  258. package/dist/tooltip-meYt4lxB.cjs +2 -0
  259. package/dist/{tooltip-BX3D74kN.cjs.map → tooltip-meYt4lxB.cjs.map} +1 -1
  260. package/dist/{types-DDfAVYxf.js → types-Cgr_eoPF.js} +1 -1
  261. package/dist/{types-DDfAVYxf.js.map → types-Cgr_eoPF.js.map} +1 -1
  262. package/dist/{types-engjL0nN.d.ts → types-CmcNT14g.d.ts} +1 -1
  263. package/dist/{types-BN8HhYHR.cjs → types-DMNCf28U.cjs} +1 -1
  264. package/dist/{types-BN8HhYHR.cjs.map → types-DMNCf28U.cjs.map} +1 -1
  265. package/dist/typography/paragraph.cjs +1 -1
  266. package/dist/typography/paragraph.d.cts +2 -2
  267. package/dist/typography/paragraph.d.ts +2 -2
  268. package/dist/typography/paragraph.js +1 -1
  269. package/dist/typography/title.cjs +1 -1
  270. package/dist/typography/title.d.cts +2 -2
  271. package/dist/typography/title.d.ts +2 -2
  272. package/dist/typography/title.js +1 -1
  273. package/dist/ui/alert-dialog.cjs +1 -1
  274. package/dist/ui/alert-dialog.d.cts +12 -12
  275. package/dist/ui/alert-dialog.d.ts +13 -13
  276. package/dist/ui/alert-dialog.js +1 -1
  277. package/dist/ui/alert.cjs +1 -1
  278. package/dist/ui/alert.d.cts +6 -6
  279. package/dist/ui/alert.d.ts +5 -5
  280. package/dist/ui/alert.js +1 -1
  281. package/dist/ui/aspect-ratio.cjs +1 -1
  282. package/dist/ui/aspect-ratio.d.cts +2 -2
  283. package/dist/ui/aspect-ratio.d.ts +3 -3
  284. package/dist/ui/aspect-ratio.js +1 -1
  285. package/dist/ui/avatar.cjs +1 -1
  286. package/dist/ui/avatar.d.cts +4 -4
  287. package/dist/ui/avatar.d.ts +5 -5
  288. package/dist/ui/avatar.js +1 -1
  289. package/dist/ui/badge.cjs +1 -1
  290. package/dist/ui/badge.d.cts +4 -4
  291. package/dist/ui/badge.d.ts +3 -3
  292. package/dist/ui/badge.js +1 -1
  293. package/dist/ui/breadcrumb.cjs +1 -1
  294. package/dist/ui/breadcrumb.d.cts +8 -8
  295. package/dist/ui/breadcrumb.d.ts +8 -8
  296. package/dist/ui/breadcrumb.js +1 -1
  297. package/dist/ui/button.cjs +1 -1
  298. package/dist/ui/button.d.cts +1 -1
  299. package/dist/ui/button.d.ts +1 -1
  300. package/dist/ui/button.js +1 -1
  301. package/dist/ui/buttons/add-new.cjs +1 -1
  302. package/dist/ui/buttons/add-new.js +1 -1
  303. package/dist/ui/buttons/edit.cjs +1 -1
  304. package/dist/ui/buttons/edit.js +1 -1
  305. package/dist/ui/buttons/refresh.cjs +1 -1
  306. package/dist/ui/buttons/refresh.js +1 -1
  307. package/dist/ui/buttons/trash.cjs +1 -1
  308. package/dist/ui/buttons/trash.js +1 -1
  309. package/dist/ui/buttons/upload-image.cjs +1 -1
  310. package/dist/ui/buttons/upload-image.js +1 -1
  311. package/dist/ui/calendar.cjs +1 -1
  312. package/dist/ui/calendar.d.cts +4 -4
  313. package/dist/ui/calendar.d.ts +4 -4
  314. package/dist/ui/calendar.js +1 -1
  315. package/dist/ui/card.cjs +1 -1
  316. package/dist/ui/card.d.cts +8 -8
  317. package/dist/ui/card.d.ts +8 -8
  318. package/dist/ui/card.js +1 -1
  319. package/dist/ui/carousel.cjs +1 -1
  320. package/dist/ui/carousel.d.cts +7 -7
  321. package/dist/ui/carousel.d.ts +7 -7
  322. package/dist/ui/carousel.js +1 -1
  323. package/dist/ui/collapsible.cjs +1 -1
  324. package/dist/ui/collapsible.d.cts +4 -4
  325. package/dist/ui/collapsible.d.ts +5 -5
  326. package/dist/ui/collapsible.js +1 -1
  327. package/dist/ui/command.cjs +1 -1
  328. package/dist/ui/command.d.cts +2 -2
  329. package/dist/ui/command.d.ts +2 -2
  330. package/dist/ui/command.js +1 -1
  331. package/dist/ui/context-menu.cjs +1 -1
  332. package/dist/ui/context-menu.d.cts +16 -16
  333. package/dist/ui/context-menu.d.ts +17 -17
  334. package/dist/ui/context-menu.js +1 -1
  335. package/dist/ui/dialog.cjs +1 -1
  336. package/dist/ui/dialog.d.cts +1 -1
  337. package/dist/ui/dialog.d.ts +1 -1
  338. package/dist/ui/dialog.js +1 -1
  339. package/dist/ui/dropdown-menu.cjs +1 -1
  340. package/dist/ui/dropdown-menu.d.cts +16 -16
  341. package/dist/ui/dropdown-menu.d.ts +16 -16
  342. package/dist/ui/dropdown-menu.js +1 -1
  343. package/dist/ui/file-uploader.cjs +2 -2
  344. package/dist/ui/file-uploader.d.cts +2 -2
  345. package/dist/ui/file-uploader.d.ts +2 -2
  346. package/dist/ui/file-uploader.js +2 -2
  347. package/dist/ui/form.cjs +1 -1
  348. package/dist/ui/form.d.cts +7 -7
  349. package/dist/ui/form.d.ts +8 -8
  350. package/dist/ui/form.js +1 -1
  351. package/dist/ui/hover-card.cjs +1 -1
  352. package/dist/ui/hover-card.d.cts +4 -4
  353. package/dist/ui/hover-card.d.ts +5 -5
  354. package/dist/ui/hover-card.js +1 -1
  355. package/dist/ui/image.cjs +1 -2
  356. package/dist/ui/image.d.cts +1 -0
  357. package/dist/ui/image.d.ts +1 -0
  358. package/dist/ui/image.js +1 -2
  359. package/dist/ui/input-otp.cjs +1 -1
  360. package/dist/ui/input-otp.d.cts +5 -5
  361. package/dist/ui/input-otp.d.ts +5 -5
  362. package/dist/ui/input-otp.js +1 -1
  363. package/dist/ui/input.cjs +1 -1
  364. package/dist/ui/input.d.cts +1 -1
  365. package/dist/ui/input.d.ts +1 -1
  366. package/dist/ui/input.js +1 -1
  367. package/dist/ui/inputs/search-input.cjs +1 -1
  368. package/dist/ui/inputs/search-input.d.cts +1 -1
  369. package/dist/ui/inputs/search-input.d.ts +1 -1
  370. package/dist/ui/inputs/search-input.js +1 -1
  371. package/dist/ui/label.cjs +1 -1
  372. package/dist/ui/label.d.cts +2 -2
  373. package/dist/ui/label.d.ts +3 -3
  374. package/dist/ui/label.js +1 -1
  375. package/dist/ui/menubar.cjs +1 -1
  376. package/dist/ui/menubar.d.cts +17 -17
  377. package/dist/ui/menubar.d.ts +18 -18
  378. package/dist/ui/menubar.js +1 -1
  379. package/dist/ui/multi-select.cjs +1 -1
  380. package/dist/ui/multi-select.d.cts +2 -2
  381. package/dist/ui/multi-select.d.ts +2 -2
  382. package/dist/ui/multi-select.js +1 -1
  383. package/dist/ui/navigation-menu.cjs +1 -1
  384. package/dist/ui/navigation-menu.d.cts +9 -9
  385. package/dist/ui/navigation-menu.d.ts +9 -9
  386. package/dist/ui/navigation-menu.js +1 -1
  387. package/dist/ui/pagination.cjs +1 -1
  388. package/dist/ui/pagination.d.cts +9 -9
  389. package/dist/ui/pagination.d.ts +9 -9
  390. package/dist/ui/pagination.js +1 -1
  391. package/dist/ui/popover.cjs +1 -1
  392. package/dist/ui/popover.d.cts +5 -5
  393. package/dist/ui/popover.d.ts +5 -5
  394. package/dist/ui/popover.js +1 -1
  395. package/dist/ui/progress.cjs +1 -1
  396. package/dist/ui/progress.d.cts +2 -2
  397. package/dist/ui/progress.d.ts +3 -3
  398. package/dist/ui/progress.js +1 -1
  399. package/dist/ui/radio-group.cjs +1 -1
  400. package/dist/ui/radio-group.d.cts +3 -3
  401. package/dist/ui/radio-group.d.ts +4 -4
  402. package/dist/ui/radio-group.js +1 -1
  403. package/dist/ui/resizable.cjs +1 -1
  404. package/dist/ui/resizable.d.cts +4 -4
  405. package/dist/ui/resizable.d.ts +4 -4
  406. package/dist/ui/resizable.js +1 -1
  407. package/dist/ui/scroll-area.cjs +1 -1
  408. package/dist/ui/scroll-area.d.cts +3 -3
  409. package/dist/ui/scroll-area.d.ts +3 -3
  410. package/dist/ui/scroll-area.js +1 -1
  411. package/dist/ui/select.cjs +1 -1
  412. package/dist/ui/select.d.cts +11 -11
  413. package/dist/ui/select.d.ts +11 -11
  414. package/dist/ui/select.js +1 -1
  415. package/dist/ui/separator.cjs +1 -1
  416. package/dist/ui/separator.d.cts +1 -1
  417. package/dist/ui/separator.d.ts +1 -1
  418. package/dist/ui/separator.js +1 -1
  419. package/dist/ui/sheet.cjs +1 -1
  420. package/dist/ui/sheet.d.cts +9 -9
  421. package/dist/ui/sheet.d.ts +9 -9
  422. package/dist/ui/sheet.js +1 -1
  423. package/dist/ui/sidebar.cjs +1 -1
  424. package/dist/ui/sidebar.d.cts +28 -28
  425. package/dist/ui/sidebar.d.ts +31 -31
  426. package/dist/ui/sidebar.js +1 -1
  427. package/dist/ui/skeleton.cjs +1 -1
  428. package/dist/ui/skeleton.d.cts +2 -2
  429. package/dist/ui/skeleton.d.ts +2 -2
  430. package/dist/ui/skeleton.js +1 -1
  431. package/dist/ui/slider.cjs +1 -1
  432. package/dist/ui/slider.d.cts +2 -2
  433. package/dist/ui/slider.d.ts +3 -3
  434. package/dist/ui/slider.js +1 -1
  435. package/dist/ui/sonner.cjs +1 -1
  436. package/dist/ui/sonner.d.cts +2 -2
  437. package/dist/ui/sonner.d.ts +2 -2
  438. package/dist/ui/sonner.js +1 -1
  439. package/dist/ui/switch.cjs +1 -1
  440. package/dist/ui/switch.d.cts +2 -2
  441. package/dist/ui/switch.d.ts +3 -3
  442. package/dist/ui/switch.js +1 -1
  443. package/dist/ui/table.cjs +1 -1
  444. package/dist/ui/table.d.cts +9 -9
  445. package/dist/ui/table.d.ts +9 -9
  446. package/dist/ui/table.js +1 -1
  447. package/dist/ui/tabs.cjs +1 -1
  448. package/dist/ui/tabs.d.cts +5 -5
  449. package/dist/ui/tabs.d.ts +5 -5
  450. package/dist/ui/tabs.js +1 -1
  451. package/dist/ui/textarea.cjs +1 -1
  452. package/dist/ui/textarea.d.cts +2 -2
  453. package/dist/ui/textarea.d.ts +2 -2
  454. package/dist/ui/textarea.js +1 -1
  455. package/dist/ui/toggle-group.cjs +1 -1
  456. package/dist/ui/toggle-group.d.cts +3 -3
  457. package/dist/ui/toggle-group.d.ts +5 -5
  458. package/dist/ui/toggle-group.js +1 -1
  459. package/dist/ui/toggle.cjs +1 -1
  460. package/dist/ui/toggle.d.ts +1 -1
  461. package/dist/ui/toggle.js +1 -1
  462. package/dist/ui/tooltip.cjs +1 -1
  463. package/dist/ui/tooltip.d.cts +1 -1
  464. package/dist/ui/tooltip.d.ts +1 -1
  465. package/dist/ui/tooltip.js +1 -1
  466. package/package.json +9 -1
  467. package/dist/add-new-BrbEoynl.js +0 -2
  468. package/dist/add-new-C9Gjd7QJ.cjs +0 -2
  469. package/dist/alert-dialog-CnUUZRzI.js +0 -2
  470. package/dist/calendar-DtHmsN1p.cjs +0 -2
  471. package/dist/calendar-aC4BQig6.js +0 -2
  472. package/dist/dialog-BEJ3krbY.js +0 -2
  473. package/dist/dialog-E5OYibMU.cjs +0 -2
  474. package/dist/dropdown-menu-BF9QbIfo.js +0 -2
  475. package/dist/error-dialog-Be_eV-D7.js +0 -2
  476. package/dist/error-dialog-CsZ9SHEm.cjs +0 -2
  477. package/dist/form-Dcd2HzUB.cjs +0 -2
  478. package/dist/form-RRTCXIG6.js +0 -2
  479. package/dist/form-wrapper-CjFQKRzY.cjs +0 -2
  480. package/dist/form-wrapper-D-KkrCiZ.js +0 -2
  481. package/dist/label-BpefWj7m.js +0 -2
  482. package/dist/paragraph-D4klQX4h.js +0 -2
  483. package/dist/progress-CMMXIQct.js +0 -2
  484. package/dist/progress-IkXemE6u.cjs +0 -2
  485. package/dist/refresh-CAScDb8R.cjs +0 -2
  486. package/dist/refresh-D4LYYQln.js +0 -2
  487. package/dist/scroll-area-CPQoJKt1.js +0 -2
  488. package/dist/search-input-BZtDbdjl.js +0 -2
  489. package/dist/select-VpccO3h2.js +0 -2
  490. package/dist/sheet-CJscm87z.js +0 -2
  491. package/dist/title-itXqz0us.js +0 -2
  492. package/dist/tooltip-B7S7TrMj.js +0 -2
  493. package/dist/tooltip-BX3D74kN.cjs +0 -2
  494. package/dist/ui/image.cjs.map +0 -1
  495. package/dist/ui/image.js.map +0 -1
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`@customafk/react-toolkit/utils`)),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`react`)),i=e.__toESM(require(`radix-ui`));function a({className:e,...r}){return(0,n.jsx)(i.Label.Root,{"data-slot":`label`,className:(0,t.cn)(`text-text-positive`,`flex items-center gap-2`,`text-sm leading-none font-medium select-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,e),...r})}Object.defineProperty(exports,`Label`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=label-BvHMsK0O.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`@customafk/react-toolkit/utils`)),n=e.__toESM(require(`radix-ui`)),r=e.__toESM(require(`react/jsx-runtime`)),i=e.__toESM(require(`react`));function a({className:e,...i}){return(0,r.jsx)(n.Label.Root,{"data-slot":`label`,className:(0,t.cn)(`text-text-positive`,`flex items-center gap-2`,`text-sm leading-none font-medium select-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,e),...i})}Object.defineProperty(exports,`Label`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=label-BbuMrcie.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"label-BvHMsK0O.cjs","names":["LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Label as LabelPrimitive } from 'radix-ui'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'text-sm leading-none font-medium select-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"mappings":"wMAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAAA,EAAA,KAACA,EAAAA,MAAe,KAAA,CACd,YAAU,QACV,WAAA,EAAA,EAAA,IACE,qBACA,0BACA,+CACA,iDACA,wCACA,mCACA,2BACA,GAEF,GAAI"}
1
+ {"version":3,"file":"label-BbuMrcie.cjs","names":["LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Label as LabelPrimitive } from 'radix-ui'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'text-sm leading-none font-medium select-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"mappings":"wMAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAAA,EAAA,KAACA,EAAAA,MAAe,KAAA,CACd,YAAU,QACV,WAAA,EAAA,EAAA,IACE,qBACA,0BACA,+CACA,iDACA,wCACA,mCACA,2BACA,GAEF,GAAI"}
@@ -0,0 +1,2 @@
1
+ import{cn as e}from"@customafk/react-toolkit/utils";import{Label as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";import r from"react";function i({className:r,...i}){return n(t.Root,{"data-slot":`label`,className:e(`text-text-positive`,`flex items-center gap-2`,`text-sm leading-none font-medium select-none`,`group-data-[disabled=true]:pointer-events-none`,`group-data-[disabled=true]:opacity-50`,`peer-disabled:cursor-not-allowed`,`peer-disabled:opacity-50`,r),...i})}export{i as Label};
2
+ //# sourceMappingURL=label-CyaoUND0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"label-BpefWj7m.js","names":["Label","LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Label as LabelPrimitive } from 'radix-ui'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'text-sm leading-none font-medium select-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"mappings":"kJAMA,SAASA,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAACC,EAAe,KAAA,CACd,YAAU,QACV,UAAW,EACT,qBACA,0BACA,+CACA,iDACA,wCACA,mCACA,2BACA,GAEF,GAAI"}
1
+ {"version":3,"file":"label-CyaoUND0.js","names":["Label","LabelPrimitive"],"sources":["../packages/components/ui/label.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Label as LabelPrimitive } from 'radix-ui'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'text-text-positive',\n 'flex items-center gap-2',\n 'text-sm leading-none font-medium select-none',\n 'group-data-[disabled=true]:pointer-events-none',\n 'group-data-[disabled=true]:opacity-50',\n 'peer-disabled:cursor-not-allowed',\n 'peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"mappings":"kJAMA,SAASA,EAAM,CAAE,YAAW,GAAG,GAA2D,CACxF,OACE,EAACC,EAAe,KAAA,CACd,YAAU,QACV,UAAW,EACT,qBACA,0BACA,+CACA,iDACA,wCACA,mCACA,2BACA,GAEF,GAAI"}
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../../chunk-CUT6urMc.cjs`),t=require(`../../tooltip-BX3D74kN.cjs`),n=require(`../../button-ChpGfVjG.cjs`),r=require(`../../skeleton-1syVaGRv.cjs`),i=require(`../../separator-DbcVW13X.cjs`),a=require(`../../sheet-BoPRwRzk.cjs`),o=e.__toESM(require(`@customafk/react-toolkit/utils`)),s=e.__toESM(require(`react/jsx-runtime`)),c=e.__toESM(require(`react`)),l=e.__toESM(require(`class-variance-authority`)),u=e.__toESM(require(`radix-ui`)),d=e.__toESM(require(`lucide-react`)),f=e.__toESM(require(`@customafk/react-toolkit/hooks/useMobile`)),p=`sidebar_state`,m=3600*24*7,h=`16rem`,g=`16rem`,_=`3rem`,v=`b`,y=c.default.createContext(null);function b(){let e=c.default.useContext(y);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function x({defaultOpen:e=!0,open:n,onOpenChange:r,className:i,style:a,children:l,...u}){let d=(0,f.useIsMobile)(),[p,m]=c.default.useState(!1),[h,g]=c.default.useState(e),_=n??h,v=c.default.useCallback(e=>{let t=typeof e==`function`?e(_):e;r?r(t):g(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[r,_]),b=c.default.useCallback(()=>d?m(e=>!e):v(e=>!e),[d,v,m]);c.default.useEffect(()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]);let x=_?`expanded`:`collapsed`,S=c.default.useMemo(()=>({state:x,isMobile:d,toggleSidebar:b,open:_,setOpen:v,openMobile:p,setOpenMobile:m}),[x,_,v,d,p,m,b]);return(0,s.jsx)(y.Provider,{value:S,children:(0,s.jsx)(t.TooltipProvider,{delayDuration:0,children:(0,s.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:(0,o.cn)(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex h-svh w-full`,i),...u,children:l})})})}function S({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...c}){let{isMobile:l,state:u,openMobile:f,setOpenMobile:p}=b();return n===`none`?(0,s.jsx)(`aside`,{"data-slot":`sidebar`,className:(0,o.cn)(`bg-sidebar`,`text-sidebar-foreground`,`flex h-full w-(--sidebar-width) flex-col`,r),...c,children:i}):l?(0,s.jsx)(a.Sheet,{open:f,onOpenChange:p,...c,children:(0,s.jsxs)(a.SheetContent,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:{"--sidebar-width":`16rem`},side:e,children:[(0,s.jsxs)(a.SheetHeader,{className:`sr-only`,children:[(0,s.jsx)(a.SheetTitle,{children:`Sidebar`}),(0,s.jsx)(a.SheetDescription,{children:`Displays the mobile sidebar.`})]}),(0,s.jsxs)(`div`,{className:`flex size-full flex-col`,children:[(0,s.jsxs)(`div`,{className:`border-border-weak flex items-center gap-x-2 border-b p-2 pr-4`,children:[(0,s.jsx)(C,{}),(0,s.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground ml-2 flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,s.jsx)(d.ShoppingCartIcon,{size:20})}),(0,s.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,s.jsx)(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),(0,s.jsx)(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),i]})]})}):(0,s.jsxs)(`aside`,{className:`group peer text-sidebar-foreground bg-card hidden md:block`,"data-state":u,"data-collapsible":u===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,s.jsx)(`div`,{"data-slot":`sidebar-gap`,className:(0,o.cn)(`relative`,`bg-transparent`,`transition-[width] duration-200 ease-linear`,`h-(--header-height) w-(--sidebar-width)`,`sm:h-[calc(var(--header-height) + 0.5rem)]`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,s.jsx)(`div`,{"data-slot":`sidebar-container`,className:(0,o.cn)(`hidden md:flex`,`shadow-nav fixed inset-y-0 top-14 z-10`,`h-[calc(100svh-3.5rem)] w-(--sidebar-width)`,`transition-[left,right,width] duration-200 ease-linear`,e===`left`&&`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`,e===`right`&&`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...c,children:(0,s.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:(0,o.cn)(`flex size-full flex-col`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function C({className:e,onClick:t,...r}){let{toggleSidebar:i}=b();return(0,s.jsxs)(n.Button,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:(0,o.cn)(`size-10 rounded-full`,e),onClick:e=>{t?.(e),i()},...r,children:[(0,s.jsx)(d.MenuIcon,{className:`!size-6`}),(0,s.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function w({className:e,...t}){let{toggleSidebar:n}=b();return(0,s.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:(0,o.cn)(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`hover:after:bg-sidebar-border`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function T({className:e,children:t,...n}){return(0,s.jsxs)(`main`,{"data-slot":`sidebar-inset`,className:(0,o.cn)(`relative flex w-full flex-1 flex-col`,e),...n,children:[(0,s.jsx)(`div`,{className:`h-(--header-height) w-full sm:h-[calc(var(--header-height)_+_0.5rem)]`}),(0,s.jsx)(`div`,{className:(0,o.cn)(`flex-1 inset-shadow-sm`),children:t})]})}function E({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...t})}function D({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:(0,o.cn)(`flex flex-col gap-2 p-2`,e),...t})}function O({className:e,...t}){return(0,s.jsx)(i.Separator,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:(0,o.cn)(`bg-sidebar-border mx-2 w-auto`,e),...t})}function k({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:(0,o.cn)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function A({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:(0,o.cn)(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function j({className:e,asChild:t=!1,...n}){let r=t?u.Slot.Slot:`div`;return(0,s.jsx)(r,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:(0,o.cn)(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2`,`text-sidebar-foreground/70`,`ring-sidebar-ring`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function M({className:e,asChild:t=!1,...n}){let r=t?u.Slot.Slot:`button`;return(0,s.jsx)(r,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function N({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:(0,o.cn)(`w-full text-sm`,e),...t})}function P({className:e,...t}){return(0,s.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:(0,o.cn)(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function F({className:e,...t}){return(0,s.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:(0,o.cn)(`group/menu-item relative`,e),...t})}const I=(0,l.cva)([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`text-left truncate`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-medium`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function L({asChild:e=!1,isActive:n=!1,variant:r=`default`,size:i=`default`,tooltip:a,className:c,...l}){let d=e?u.Slot.Slot:`button`,{isMobile:f,state:p}=b(),m=(0,s.jsx)(d,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":n,className:(0,o.cn)(I({variant:r,size:i}),c),...l});return a?(typeof a==`string`&&(a={children:a}),(0,s.jsxs)(t.Tooltip,{children:[(0,s.jsx)(t.TooltipTrigger,{asChild:!0,children:m}),(0,s.jsx)(t.TooltipContent,{side:`right`,align:`center`,hidden:p!==`collapsed`||f,...a})]})):m}function R({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?u.Slot.Slot:`button`;return(0,s.jsx)(i,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:(0,o.cn)(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function z({className:e,...t}){return(0,s.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:(0,o.cn)(`text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function B({className:e,showIcon:t=!1,...n}){let i=c.default.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,s.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:(0,o.cn)(`flex h-8 items-center gap-2 rounded-md px-2`,e),...n,children:[t&&(0,s.jsx)(r.Skeleton,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,s.jsx)(r.Skeleton,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function V({className:e,...t}){return(0,s.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:(0,o.cn)(`border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,...t}){return(0,s.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:(0,o.cn)(`group/menu-sub-item relative`,e),...t})}function U({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){let a=e?u.Slot.Slot:`a`;return(0,s.jsx)(a,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:(0,o.cn)(`text-sidebar-foreground`,`ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`focus-visible:ring-2`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`[&>span:last-child]:truncate`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,`group-data-[collapsible=icon]:hidden`,r),...i})}const W=({children:e})=>(0,s.jsx)(x,{children:e}),G=({children:e})=>(0,s.jsxs)(`header`,{className:(0,o.cn)(`bg-card`,`h-(--header-height)`,`sm:h-[calc(var(--header-height)_+_0.5rem)]`,`sm:px-4 sm:pr-6`,`absolute inset-x-0 top-0 z-20 gap-2 px-2 pr-4.5`,`shadow-nav flex items-center`,`transition-[width,height] ease-linear`,`group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)`,`sm:group-has-data-[collapsible=icon]/sidebar-wrapper:h-[calc(var(--header-height)_+_0.5rem)]`),children:[(0,s.jsx)(C,{}),(0,s.jsxs)(`div`,{className:`flex gap-x-2 sm:ml-2.5`,children:[(0,s.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,s.jsx)(d.ShoppingCartIcon,{size:20})}),(0,s.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,s.jsx)(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),(0,s.jsx)(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),(0,s.jsx)(`div`,{className:`flex flex-1 items-center justify-end`,children:e})]}),K=({children:e,...t})=>(0,s.jsx)(S,{variant:`inset`,collapsible:`icon`,...t,children:e}),q=({children:e})=>(0,s.jsx)(T,{children:(0,s.jsx)(`section`,{className:`relative size-full`,children:(0,s.jsx)(`div`,{className:`absolute inset-0 flex flex-col`,children:e})})}),J=({className:e,children:t})=>(0,s.jsx)(`div`,{"data-slot":`main-header`,className:(0,o.cn)(`flex-0 snap-start`,e),children:t}),Y=({className:e,children:t})=>(0,s.jsx)(`div`,{"data-slot":`main-content`,className:(0,o.cn)(`flex w-full flex-1 snap-y flex-col gap-4 overflow-y-auto px-2 sm:px-4`,e),children:t}),X=({className:e,children:t})=>(0,s.jsx)(`div`,{"data-slot":`main-footer`,className:(0,o.cn)(`border-border-weak hidden w-full flex-0 border-t pt-2 sm:flex`,e),children:t}),Z=({children:e,className:t})=>(0,s.jsx)(`div`,{"data-slot":`main-group`,className:(0,o.cn)(`flex size-full flex-col gap-4`,t),children:e}),Q=({className:e,children:t})=>(0,s.jsx)(`div`,{"data-slot":`main-group-content`,className:(0,o.cn)(`bg-card shadow-card size-full max-w-5xl flex-1 snap-start snap-always scroll-mt-4 rounded-md p-4`,e),children:t});exports.AppLayoutHeader=G,exports.AppLayoutMain=q,exports.AppLayoutMainContent=Y,exports.AppLayoutMainFooter=X,exports.AppLayoutMainGroup=Z,exports.AppLayoutMainGroupContent=Q,exports.AppLayoutMainHeader=J,exports.AppLayoutSidebar=K,exports.AppLayoutSidebarContent=k,exports.AppLayoutSidebarFooter=D,exports.AppLayoutSidebarGroup=A,exports.AppLayoutSidebarGroupAction=M,exports.AppLayoutSidebarGroupContent=N,exports.AppLayoutSidebarGroupLabel=j,exports.AppLayoutSidebarHeader=E,exports.AppLayoutSidebarInset=T,exports.AppLayoutSidebarMenu=P,exports.AppLayoutSidebarMenuAction=R,exports.AppLayoutSidebarMenuBadge=z,exports.AppLayoutSidebarMenuButton=L,exports.AppLayoutSidebarMenuItem=F,exports.AppLayoutSidebarMenuSkeleton=B,exports.AppLayoutSidebarMenuSub=V,exports.AppLayoutSidebarMenuSubButton=U,exports.AppLayoutSidebarMenuSubItem=H,exports.AppLayoutSidebarRail=w,exports.AppLayoutSidebarSeparator=O,exports.AppLayoutSidebarTrigger=C,exports.AppLayoutWrapper=W,exports.Sidebar=S,exports.SidebarProvider=x,exports.useSidebar=b;
1
+ "use client";const e=require(`../../chunk-CUT6urMc.cjs`),t=require(`../../button-119IIVCy.cjs`),n=require(`../../skeleton-CmGSyYRm.cjs`),r=require(`../../tooltip-meYt4lxB.cjs`),i=require(`../../separator-hulDSW7B.cjs`),a=require(`../../sheet-D8iW1o50.cjs`),o=e.__toESM(require(`lucide-react`)),s=e.__toESM(require(`@customafk/react-toolkit/utils`)),c=e.__toESM(require(`class-variance-authority`)),l=e.__toESM(require(`radix-ui`)),u=e.__toESM(require(`react/jsx-runtime`)),d=e.__toESM(require(`react`)),f=e.__toESM(require(`@customafk/react-toolkit/hooks/useMobile`)),p=`sidebar_state`,m=3600*24*7,h=`16rem`,g=`16rem`,_=`3rem`,v=`b`,y=d.default.createContext(null);function b(){let e=d.default.useContext(y);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function x({defaultOpen:e=!0,open:t,onOpenChange:n,className:i,style:a,children:o,...c}){let l=(0,f.useIsMobile)(),[p,m]=d.default.useState(!1),[h,g]=d.default.useState(e),_=t??h,v=d.default.useCallback(e=>{let t=typeof e==`function`?e(_):e;n?n(t):g(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[n,_]),b=d.default.useCallback(()=>l?m(e=>!e):v(e=>!e),[l,v,m]);d.default.useEffect(()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b]);let x=_?`expanded`:`collapsed`,S=d.default.useMemo(()=>({state:x,isMobile:l,toggleSidebar:b,open:_,setOpen:v,openMobile:p,setOpenMobile:m}),[x,_,v,l,p,m,b]);return(0,u.jsx)(y.Provider,{value:S,children:(0,u.jsx)(r.TooltipProvider,{delayDuration:0,children:(0,u.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:(0,s.cn)(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex h-svh w-full`,i),...c,children:o})})})}function S({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...c}){let{isMobile:l,state:d,openMobile:f,setOpenMobile:p}=b();return n===`none`?(0,u.jsx)(`aside`,{"data-slot":`sidebar`,className:(0,s.cn)(`bg-sidebar`,`text-sidebar-foreground`,`flex h-full w-(--sidebar-width) flex-col`,r),...c,children:i}):l?(0,u.jsx)(a.Sheet,{open:f,onOpenChange:p,...c,children:(0,u.jsxs)(a.SheetContent,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:{"--sidebar-width":`16rem`},side:e,children:[(0,u.jsxs)(a.SheetHeader,{className:`sr-only`,children:[(0,u.jsx)(a.SheetTitle,{children:`Sidebar`}),(0,u.jsx)(a.SheetDescription,{children:`Displays the mobile sidebar.`})]}),(0,u.jsxs)(`div`,{className:`flex size-full flex-col`,children:[(0,u.jsxs)(`div`,{className:`border-border-weak flex items-center gap-x-2 border-b p-2 pr-4`,children:[(0,u.jsx)(C,{}),(0,u.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground ml-2 flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,u.jsx)(o.ShoppingCartIcon,{size:20})}),(0,u.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,u.jsx)(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),(0,u.jsx)(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),i]})]})}):(0,u.jsxs)(`aside`,{className:`group peer text-sidebar-foreground bg-card hidden md:block`,"data-state":d,"data-collapsible":d===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,u.jsx)(`div`,{"data-slot":`sidebar-gap`,className:(0,s.cn)(`relative`,`bg-transparent`,`transition-[width] duration-200 ease-linear`,`h-(--header-height) w-(--sidebar-width)`,`sm:h-[calc(var(--header-height) + 0.5rem)]`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,u.jsx)(`div`,{"data-slot":`sidebar-container`,className:(0,s.cn)(`hidden md:flex`,`shadow-nav fixed inset-y-0 top-14 z-10`,`h-[calc(100svh-3.5rem)] w-(--sidebar-width)`,`transition-[left,right,width] duration-200 ease-linear`,e===`left`&&`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`,e===`right`&&`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...c,children:(0,u.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:(0,s.cn)(`flex size-full flex-col`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function C({className:e,onClick:n,...r}){let{toggleSidebar:i}=b();return(0,u.jsxs)(t.Button,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:(0,s.cn)(`size-10 rounded-full`,e),onClick:e=>{n?.(e),i()},...r,children:[(0,u.jsx)(o.MenuIcon,{className:`!size-6`}),(0,u.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function w({className:e,...t}){let{toggleSidebar:n}=b();return(0,u.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:(0,s.cn)(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`hover:after:bg-sidebar-border`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function T({className:e,children:t,...n}){return(0,u.jsxs)(`main`,{"data-slot":`sidebar-inset`,className:(0,s.cn)(`relative flex w-full flex-1 flex-col`,e),...n,children:[(0,u.jsx)(`div`,{className:`h-(--header-height) w-full sm:h-[calc(var(--header-height)_+_0.5rem)]`}),(0,u.jsx)(`div`,{className:(0,s.cn)(`flex-1 inset-shadow-sm`),children:t})]})}function E({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:(0,s.cn)(`flex flex-col gap-2 p-2`,e),...t})}function D({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:(0,s.cn)(`flex flex-col gap-2 p-2`,e),...t})}function O({className:e,...t}){return(0,u.jsx)(i.Separator,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:(0,s.cn)(`bg-sidebar-border mx-2 w-auto`,e),...t})}function k({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:(0,s.cn)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function A({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:(0,s.cn)(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function j({className:e,asChild:t=!1,...n}){let r=t?l.Slot.Slot:`div`;return(0,u.jsx)(r,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:(0,s.cn)(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2`,`text-sidebar-foreground/70`,`ring-sidebar-ring`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function M({className:e,asChild:t=!1,...n}){let r=t?l.Slot.Slot:`button`;return(0,u.jsx)(r,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:(0,s.cn)(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function N({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:(0,s.cn)(`w-full text-sm`,e),...t})}function P({className:e,...t}){return(0,u.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:(0,s.cn)(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function F({className:e,...t}){return(0,u.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:(0,s.cn)(`group/menu-item relative`,e),...t})}const I=(0,c.cva)([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`text-left truncate`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-medium`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function L({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:i=`default`,tooltip:a,className:o,...c}){let d=e?l.Slot.Slot:`button`,{isMobile:f,state:p}=b(),m=(0,u.jsx)(d,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":t,className:(0,s.cn)(I({variant:n,size:i}),o),...c});return a?(typeof a==`string`&&(a={children:a}),(0,u.jsxs)(r.Tooltip,{children:[(0,u.jsx)(r.TooltipTrigger,{asChild:!0,children:m}),(0,u.jsx)(r.TooltipContent,{side:`right`,align:`center`,hidden:p!==`collapsed`||f,...a})]})):m}function R({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?l.Slot.Slot:`button`;return(0,u.jsx)(i,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:(0,s.cn)(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function z({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:(0,s.cn)(`text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function B({className:e,showIcon:t=!1,...r}){let i=d.default.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,u.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:(0,s.cn)(`flex h-8 items-center gap-2 rounded-md px-2`,e),...r,children:[t&&(0,u.jsx)(n.Skeleton,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,u.jsx)(n.Skeleton,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function V({className:e,...t}){return(0,u.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:(0,s.cn)(`border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,...t}){return(0,u.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:(0,s.cn)(`group/menu-sub-item relative`,e),...t})}function U({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){let a=e?l.Slot.Slot:`a`;return(0,u.jsx)(a,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:(0,s.cn)(`text-sidebar-foreground`,`ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`focus-visible:ring-2`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`[&>span:last-child]:truncate`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,`group-data-[collapsible=icon]:hidden`,r),...i})}const W=({children:e})=>(0,u.jsx)(x,{children:e}),G=({children:e})=>(0,u.jsxs)(`header`,{className:(0,s.cn)(`bg-card`,`h-(--header-height)`,`sm:h-[calc(var(--header-height)_+_0.5rem)]`,`sm:px-4 sm:pr-6`,`absolute inset-x-0 top-0 z-20 gap-2 px-2 pr-4.5`,`shadow-nav flex items-center`,`transition-[width,height] ease-linear`,`group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)`,`sm:group-has-data-[collapsible=icon]/sidebar-wrapper:h-[calc(var(--header-height)_+_0.5rem)]`),children:[(0,u.jsx)(C,{}),(0,u.jsxs)(`div`,{className:`flex gap-x-2 sm:ml-2.5`,children:[(0,u.jsx)(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:(0,u.jsx)(o.ShoppingCartIcon,{size:20})}),(0,u.jsxs)(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[(0,u.jsx)(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),(0,u.jsx)(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),(0,u.jsx)(`div`,{className:`flex flex-1 items-center justify-end`,children:e})]}),K=({children:e,...t})=>(0,u.jsx)(S,{variant:`inset`,collapsible:`icon`,...t,children:e}),q=({children:e})=>(0,u.jsx)(T,{children:(0,u.jsx)(`section`,{className:`relative size-full`,children:(0,u.jsx)(`div`,{className:`absolute inset-0 flex flex-col`,children:e})})}),J=({className:e,children:t})=>(0,u.jsx)(`div`,{"data-slot":`main-header`,className:(0,s.cn)(`flex-0 snap-start`,e),children:t}),Y=({className:e,children:t})=>(0,u.jsx)(`div`,{"data-slot":`main-content`,className:(0,s.cn)(`flex w-full flex-1 snap-y flex-col gap-4 overflow-y-auto px-2 sm:px-4`,e),children:t}),X=({className:e,children:t})=>(0,u.jsx)(`div`,{"data-slot":`main-footer`,className:(0,s.cn)(`border-border-weak hidden w-full flex-0 border-t pt-2 sm:flex`,e),children:t}),Z=({children:e,className:t})=>(0,u.jsx)(`div`,{"data-slot":`main-group`,className:(0,s.cn)(`flex size-full flex-col gap-4`,t),children:e}),Q=({className:e,children:t})=>(0,u.jsx)(`div`,{"data-slot":`main-group-content`,className:(0,s.cn)(`bg-card shadow-card size-full max-w-5xl flex-1 snap-start snap-always scroll-mt-4 rounded-md p-4`,e),children:t});exports.AppLayoutHeader=G,exports.AppLayoutMain=q,exports.AppLayoutMainContent=Y,exports.AppLayoutMainFooter=X,exports.AppLayoutMainGroup=Z,exports.AppLayoutMainGroupContent=Q,exports.AppLayoutMainHeader=J,exports.AppLayoutSidebar=K,exports.AppLayoutSidebarContent=k,exports.AppLayoutSidebarFooter=D,exports.AppLayoutSidebarGroup=A,exports.AppLayoutSidebarGroupAction=M,exports.AppLayoutSidebarGroupContent=N,exports.AppLayoutSidebarGroupLabel=j,exports.AppLayoutSidebarHeader=E,exports.AppLayoutSidebarInset=T,exports.AppLayoutSidebarMenu=P,exports.AppLayoutSidebarMenuAction=R,exports.AppLayoutSidebarMenuBadge=z,exports.AppLayoutSidebarMenuButton=L,exports.AppLayoutSidebarMenuItem=F,exports.AppLayoutSidebarMenuSkeleton=B,exports.AppLayoutSidebarMenuSub=V,exports.AppLayoutSidebarMenuSubButton=U,exports.AppLayoutSidebarMenuSubItem=H,exports.AppLayoutSidebarRail=w,exports.AppLayoutSidebarSeparator=O,exports.AppLayoutSidebarTrigger=C,exports.AppLayoutWrapper=W,exports.Sidebar=S,exports.SidebarProvider=x,exports.useSidebar=b;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,6 @@
1
- import { Button } from "../../button-QTiWGKzL.cjs";
2
- import { Separator } from "../../separator-C0YKWxkk.cjs";
3
- import { TooltipContent } from "../../tooltip-Ccg2G_fB.cjs";
1
+ import { Button } from "../../button-CiiRwPo0.cjs";
2
+ import { Separator } from "../../separator-de4423bu.cjs";
3
+ import { TooltipContent } from "../../tooltip-DE_eohyj.cjs";
4
4
  import * as react_jsx_runtime259 from "react/jsx-runtime";
5
5
  import React$1 from "react";
6
6
  import * as class_variance_authority_types7 from "class-variance-authority/types";
@@ -1,9 +1,9 @@
1
- import { Button } from "../../button-BHhyePyp.js";
2
- import { Separator } from "../../separator-D6-cZUiB.js";
3
- import { TooltipContent } from "../../tooltip-CcNSIS_A.js";
1
+ import { Button } from "../../button-tIBg0Orc.js";
2
+ import { Separator } from "../../separator-B-yN9e9m.js";
3
+ import { TooltipContent } from "../../tooltip-C30oHuY9.js";
4
+ import { VariantProps } from "class-variance-authority";
4
5
  import * as react_jsx_runtime259 from "react/jsx-runtime";
5
6
  import React$1 from "react";
6
- import { VariantProps } from "class-variance-authority";
7
7
  import * as class_variance_authority_types7 from "class-variance-authority/types";
8
8
 
9
9
  //#region packages/components/layouts/app-layout/sidebar.d.ts
@@ -1,2 +1,2 @@
1
- "use client";import{Tooltip as e,TooltipContent as t,TooltipProvider as n,TooltipTrigger as r}from"../../tooltip-B7S7TrMj.js";import{Button as i}from"../../button-DL_i4AVi.js";import{Skeleton as a}from"../../skeleton-D_7tekGk.js";import{Separator as o}from"../../separator-DW2rRXaF.js";import{Sheet as s,SheetContent as c,SheetDescription as l,SheetHeader as u,SheetTitle as d}from"../../sheet-CJscm87z.js";import{cn as f}from"@customafk/react-toolkit/utils";import{jsx as p,jsxs as m}from"react/jsx-runtime";import h from"react";import{cva as g}from"class-variance-authority";import{Slot as _}from"radix-ui";import{MenuIcon as v,ShoppingCartIcon as y}from"lucide-react";import{useIsMobile as b}from"@customafk/react-toolkit/hooks/useMobile";const x=h.createContext(null);function S(){let e=h.useContext(x);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function C({defaultOpen:e=!0,open:t,onOpenChange:r,className:i,style:a,children:o,...s}){let c=b(),[l,u]=h.useState(!1),[d,m]=h.useState(e),g=t??d,_=h.useCallback(e=>{let t=typeof e==`function`?e(g):e;r?r(t):m(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[r,g]),v=h.useCallback(()=>c?u(e=>!e):_(e=>!e),[c,_,u]);h.useEffect(()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[v]);let y=g?`expanded`:`collapsed`,S=h.useMemo(()=>({state:y,isMobile:c,toggleSidebar:v,open:g,setOpen:_,openMobile:l,setOpenMobile:u}),[y,g,_,c,l,u,v]);return p(x.Provider,{value:S,children:p(n,{delayDuration:0,children:p(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:f(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex h-svh w-full`,i),...s,children:o})})})}function w({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a}){let{isMobile:o,state:h,openMobile:g,setOpenMobile:_}=S();return n===`none`?p(`aside`,{"data-slot":`sidebar`,className:f(`bg-sidebar`,`text-sidebar-foreground`,`flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):o?p(s,{open:g,onOpenChange:_,...a,children:m(c,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:{"--sidebar-width":`16rem`},side:e,children:[m(u,{className:`sr-only`,children:[p(d,{children:`Sidebar`}),p(l,{children:`Displays the mobile sidebar.`})]}),m(`div`,{className:`flex size-full flex-col`,children:[m(`div`,{className:`border-border-weak flex items-center gap-x-2 border-b p-2 pr-4`,children:[p(T,{}),p(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground ml-2 flex aspect-square size-8 items-center justify-center rounded-lg`,children:p(y,{size:20})}),m(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[p(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),p(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),i]})]})}):m(`aside`,{className:`group peer text-sidebar-foreground bg-card hidden md:block`,"data-state":h,"data-collapsible":h===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[p(`div`,{"data-slot":`sidebar-gap`,className:f(`relative`,`bg-transparent`,`transition-[width] duration-200 ease-linear`,`h-(--header-height) w-(--sidebar-width)`,`sm:h-[calc(var(--header-height) + 0.5rem)]`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),p(`div`,{"data-slot":`sidebar-container`,className:f(`hidden md:flex`,`shadow-nav fixed inset-y-0 top-14 z-10`,`h-[calc(100svh-3.5rem)] w-(--sidebar-width)`,`transition-[left,right,width] duration-200 ease-linear`,e===`left`&&`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`,e===`right`&&`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...a,children:p(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:f(`flex size-full flex-col`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function T({className:e,onClick:t,...n}){let{toggleSidebar:r}=S();return m(i,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:f(`size-10 rounded-full`,e),onClick:e=>{t?.(e),r()},...n,children:[p(v,{className:`!size-6`}),p(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function E({className:e,...t}){let{toggleSidebar:n}=S();return p(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:f(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`hover:after:bg-sidebar-border`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function D({className:e,children:t,...n}){return m(`main`,{"data-slot":`sidebar-inset`,className:f(`relative flex w-full flex-1 flex-col`,e),...n,children:[p(`div`,{className:`h-(--header-height) w-full sm:h-[calc(var(--header-height)_+_0.5rem)]`}),p(`div`,{className:f(`flex-1 inset-shadow-sm`),children:t})]})}function O({className:e,...t}){return p(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:f(`flex flex-col gap-2 p-2`,e),...t})}function k({className:e,...t}){return p(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:f(`flex flex-col gap-2 p-2`,e),...t})}function A({className:e,...t}){return p(o,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:f(`bg-sidebar-border mx-2 w-auto`,e),...t})}function j({className:e,...t}){return p(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:f(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function M({className:e,...t}){return p(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:f(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function N({className:e,asChild:t=!1,...n}){let r=t?_.Slot:`div`;return p(r,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:f(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2`,`text-sidebar-foreground/70`,`ring-sidebar-ring`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function P({className:e,asChild:t=!1,...n}){let r=t?_.Slot:`button`;return p(r,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:f(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function F({className:e,...t}){return p(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:f(`w-full text-sm`,e),...t})}function I({className:e,...t}){return p(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:f(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function L({className:e,...t}){return p(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:f(`group/menu-item relative`,e),...t})}const R=g([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`text-left truncate`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-medium`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function z({asChild:n=!1,isActive:i=!1,variant:a=`default`,size:o=`default`,tooltip:s,className:c,...l}){let u=n?_.Slot:`button`,{isMobile:d,state:h}=S(),g=p(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":o,"data-active":i,className:f(R({variant:a,size:o}),c),...l});return s?(typeof s==`string`&&(s={children:s}),m(e,{children:[p(r,{asChild:!0,children:g}),p(t,{side:`right`,align:`center`,hidden:h!==`collapsed`||d,...s})]})):g}function B({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?_.Slot:`button`;return p(i,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:f(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function V({className:e,...t}){return p(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:f(`text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,showIcon:t=!1,...n}){let r=h.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return m(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:f(`flex h-8 items-center gap-2 rounded-md px-2`,e),...n,children:[t&&p(a,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),p(a,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":r}})]})}function U({className:e,...t}){return p(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:f(`border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function W({className:e,...t}){return p(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:f(`group/menu-sub-item relative`,e),...t})}function G({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){let a=e?_.Slot:`a`;return p(a,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:f(`text-sidebar-foreground`,`ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`focus-visible:ring-2`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`[&>span:last-child]:truncate`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,`group-data-[collapsible=icon]:hidden`,r),...i})}const K=({children:e})=>p(C,{children:e}),q=({children:e})=>m(`header`,{className:f(`bg-card`,`h-(--header-height)`,`sm:h-[calc(var(--header-height)_+_0.5rem)]`,`sm:px-4 sm:pr-6`,`absolute inset-x-0 top-0 z-20 gap-2 px-2 pr-4.5`,`shadow-nav flex items-center`,`transition-[width,height] ease-linear`,`group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)`,`sm:group-has-data-[collapsible=icon]/sidebar-wrapper:h-[calc(var(--header-height)_+_0.5rem)]`),children:[p(T,{}),m(`div`,{className:`flex gap-x-2 sm:ml-2.5`,children:[p(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:p(y,{size:20})}),m(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[p(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),p(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),p(`div`,{className:`flex flex-1 items-center justify-end`,children:e})]}),J=({children:e,...t})=>p(w,{variant:`inset`,collapsible:`icon`,...t,children:e}),Y=({children:e})=>p(D,{children:p(`section`,{className:`relative size-full`,children:p(`div`,{className:`absolute inset-0 flex flex-col`,children:e})})}),X=({className:e,children:t})=>p(`div`,{"data-slot":`main-header`,className:f(`flex-0 snap-start`,e),children:t}),Z=({className:e,children:t})=>p(`div`,{"data-slot":`main-content`,className:f(`flex w-full flex-1 snap-y flex-col gap-4 overflow-y-auto px-2 sm:px-4`,e),children:t}),Q=({className:e,children:t})=>p(`div`,{"data-slot":`main-footer`,className:f(`border-border-weak hidden w-full flex-0 border-t pt-2 sm:flex`,e),children:t}),$=({children:e,className:t})=>p(`div`,{"data-slot":`main-group`,className:f(`flex size-full flex-col gap-4`,t),children:e}),ee=({className:e,children:t})=>p(`div`,{"data-slot":`main-group-content`,className:f(`bg-card shadow-card size-full max-w-5xl flex-1 snap-start snap-always scroll-mt-4 rounded-md p-4`,e),children:t});export{q as AppLayoutHeader,Y as AppLayoutMain,Z as AppLayoutMainContent,Q as AppLayoutMainFooter,$ as AppLayoutMainGroup,ee as AppLayoutMainGroupContent,X as AppLayoutMainHeader,J as AppLayoutSidebar,j as AppLayoutSidebarContent,k as AppLayoutSidebarFooter,M as AppLayoutSidebarGroup,P as AppLayoutSidebarGroupAction,F as AppLayoutSidebarGroupContent,N as AppLayoutSidebarGroupLabel,O as AppLayoutSidebarHeader,D as AppLayoutSidebarInset,I as AppLayoutSidebarMenu,B as AppLayoutSidebarMenuAction,V as AppLayoutSidebarMenuBadge,z as AppLayoutSidebarMenuButton,L as AppLayoutSidebarMenuItem,H as AppLayoutSidebarMenuSkeleton,U as AppLayoutSidebarMenuSub,G as AppLayoutSidebarMenuSubButton,W as AppLayoutSidebarMenuSubItem,E as AppLayoutSidebarRail,A as AppLayoutSidebarSeparator,T as AppLayoutSidebarTrigger,K as AppLayoutWrapper,w as Sidebar,C as SidebarProvider,S as useSidebar};
1
+ "use client";import{Button as e}from"../../button-CvQQTSka.js";import{Skeleton as t}from"../../skeleton-DFF0w4en.js";import{Tooltip as n,TooltipContent as r,TooltipProvider as i,TooltipTrigger as a}from"../../tooltip-CN8vvmWA.js";import{Separator as o}from"../../separator-CxCq7NYP.js";import{Sheet as s,SheetContent as c,SheetDescription as l,SheetHeader as u,SheetTitle as d}from"../../sheet-amjZQ7nX.js";import{MenuIcon as f,ShoppingCartIcon as p}from"lucide-react";import{cn as m}from"@customafk/react-toolkit/utils";import{cva as h}from"class-variance-authority";import{Slot as g}from"radix-ui";import{jsx as _,jsxs as v}from"react/jsx-runtime";import y from"react";import{useIsMobile as b}from"@customafk/react-toolkit/hooks/useMobile";const x=y.createContext(null);function S(){let e=y.useContext(x);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function C({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:a,children:o,...s}){let c=b(),[l,u]=y.useState(!1),[d,f]=y.useState(e),p=t??d,h=y.useCallback(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[n,p]),g=y.useCallback(()=>c?u(e=>!e):h(e=>!e),[c,h,u]);y.useEffect(()=>{let e=e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[g]);let v=p?`expanded`:`collapsed`,S=y.useMemo(()=>({state:v,isMobile:c,toggleSidebar:g,open:p,setOpen:h,openMobile:l,setOpenMobile:u}),[v,p,h,c,l,u,g]);return _(x.Provider,{value:S,children:_(i,{delayDuration:0,children:_(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:m(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex h-svh w-full`,r),...s,children:o})})})}function w({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a}){let{isMobile:o,state:f,openMobile:h,setOpenMobile:g}=S();return n===`none`?_(`aside`,{"data-slot":`sidebar`,className:m(`bg-sidebar`,`text-sidebar-foreground`,`flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):o?_(s,{open:h,onOpenChange:g,...a,children:v(c,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:{"--sidebar-width":`16rem`},side:e,children:[v(u,{className:`sr-only`,children:[_(d,{children:`Sidebar`}),_(l,{children:`Displays the mobile sidebar.`})]}),v(`div`,{className:`flex size-full flex-col`,children:[v(`div`,{className:`border-border-weak flex items-center gap-x-2 border-b p-2 pr-4`,children:[_(T,{}),_(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground ml-2 flex aspect-square size-8 items-center justify-center rounded-lg`,children:_(p,{size:20})}),v(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[_(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),_(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),i]})]})}):v(`aside`,{className:`group peer text-sidebar-foreground bg-card hidden md:block`,"data-state":f,"data-collapsible":f===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[_(`div`,{"data-slot":`sidebar-gap`,className:m(`relative`,`bg-transparent`,`transition-[width] duration-200 ease-linear`,`h-(--header-height) w-(--sidebar-width)`,`sm:h-[calc(var(--header-height) + 0.5rem)]`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),_(`div`,{"data-slot":`sidebar-container`,className:m(`hidden md:flex`,`shadow-nav fixed inset-y-0 top-14 z-10`,`h-[calc(100svh-3.5rem)] w-(--sidebar-width)`,`transition-[left,right,width] duration-200 ease-linear`,e===`left`&&`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`,e===`right`&&`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...a,children:_(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:m(`flex size-full flex-col`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function T({className:t,onClick:n,...r}){let{toggleSidebar:i}=S();return v(e,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`muted`,size:`icon`,className:m(`size-10 rounded-full`,t),onClick:e=>{n?.(e),i()},...r,children:[_(f,{className:`!size-6`}),_(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function E({className:e,...t}){let{toggleSidebar:n}=S();return _(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:m(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]`,`group-data-[side=left]:-right-4`,`group-data-[side=right]:left-0`,`in-data-[side=left]:cursor-w-resize`,`in-data-[side=right]:cursor-e-resize`,`hover:after:bg-sidebar-border`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar`,`group-data-[collapsible=offcanvas]:translate-x-0`,`group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function D({className:e,children:t,...n}){return v(`main`,{"data-slot":`sidebar-inset`,className:m(`relative flex w-full flex-1 flex-col`,e),...n,children:[_(`div`,{className:`h-(--header-height) w-full sm:h-[calc(var(--header-height)_+_0.5rem)]`}),_(`div`,{className:m(`flex-1 inset-shadow-sm`),children:t})]})}function O({className:e,...t}){return _(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:m(`flex flex-col gap-2 p-2`,e),...t})}function k({className:e,...t}){return _(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:m(`flex flex-col gap-2 p-2`,e),...t})}function A({className:e,...t}){return _(o,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:m(`bg-sidebar-border mx-2 w-auto`,e),...t})}function j({className:e,...t}){return _(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:m(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function M({className:e,...t}){return _(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:m(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function N({className:e,asChild:t=!1,...n}){let r=t?g.Slot:`div`;return _(r,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:m(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2`,`text-sidebar-foreground/70`,`ring-sidebar-ring`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function P({className:e,asChild:t=!1,...n}){let r=t?g.Slot:`button`;return _(r,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:m(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...n})}function F({className:e,...t}){return _(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:m(`w-full text-sm`,e),...t})}function I({className:e,...t}){return _(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:m(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function L({className:e,...t}){return _(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:m(`group/menu-item relative`,e),...t})}const R=h([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`text-left truncate`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-medium`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function z({asChild:e=!1,isActive:t=!1,variant:i=`default`,size:o=`default`,tooltip:s,className:c,...l}){let u=e?g.Slot:`button`,{isMobile:d,state:f}=S(),p=_(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":o,"data-active":t,className:m(R({variant:i,size:o}),c),...l});return s?(typeof s==`string`&&(s={children:s}),v(n,{children:[_(a,{asChild:!0,children:p}),_(r,{side:`right`,align:`center`,hidden:f!==`collapsed`||d,...s})]})):p}function B({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?g.Slot:`button`;return _(i,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:m(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function V({className:e,...t}){return _(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:m(`text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,showIcon:n=!1,...r}){let i=y.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return v(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:m(`flex h-8 items-center gap-2 rounded-md px-2`,e),...r,children:[n&&_(t,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),_(t,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function U({className:e,...t}){return _(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:m(`border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function W({className:e,...t}){return _(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:m(`group/menu-sub-item relative`,e),...t})}function G({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){let a=e?g.Slot:`a`;return _(a,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:m(`text-sidebar-foreground`,`ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`focus-visible:ring-2`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`[&>span:last-child]:truncate`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,`group-data-[collapsible=icon]:hidden`,r),...i})}const K=({children:e})=>_(C,{children:e}),q=({children:e})=>v(`header`,{className:m(`bg-card`,`h-(--header-height)`,`sm:h-[calc(var(--header-height)_+_0.5rem)]`,`sm:px-4 sm:pr-6`,`absolute inset-x-0 top-0 z-20 gap-2 px-2 pr-4.5`,`shadow-nav flex items-center`,`transition-[width,height] ease-linear`,`group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)`,`sm:group-has-data-[collapsible=icon]/sidebar-wrapper:h-[calc(var(--header-height)_+_0.5rem)]`),children:[_(T,{}),v(`div`,{className:`flex gap-x-2 sm:ml-2.5`,children:[_(`div`,{className:`bg-sidebar-primary text-sidebar-primary-foreground flex aspect-square size-8 items-center justify-center rounded-lg`,children:_(p,{size:20})}),v(`div`,{className:`grid flex-1 text-left text-sm leading-tight`,children:[_(`span`,{className:`truncate font-medium`,children:`Lunas Store`}),_(`span`,{className:`truncate text-xs`,children:`Established 2023`})]})]}),_(`div`,{className:`flex flex-1 items-center justify-end`,children:e})]}),J=({children:e,...t})=>_(w,{variant:`inset`,collapsible:`icon`,...t,children:e}),Y=({children:e})=>_(D,{children:_(`section`,{className:`relative size-full`,children:_(`div`,{className:`absolute inset-0 flex flex-col`,children:e})})}),X=({className:e,children:t})=>_(`div`,{"data-slot":`main-header`,className:m(`flex-0 snap-start`,e),children:t}),Z=({className:e,children:t})=>_(`div`,{"data-slot":`main-content`,className:m(`flex w-full flex-1 snap-y flex-col gap-4 overflow-y-auto px-2 sm:px-4`,e),children:t}),Q=({className:e,children:t})=>_(`div`,{"data-slot":`main-footer`,className:m(`border-border-weak hidden w-full flex-0 border-t pt-2 sm:flex`,e),children:t}),$=({children:e,className:t})=>_(`div`,{"data-slot":`main-group`,className:m(`flex size-full flex-col gap-4`,t),children:e}),ee=({className:e,children:t})=>_(`div`,{"data-slot":`main-group-content`,className:m(`bg-card shadow-card size-full max-w-5xl flex-1 snap-start snap-always scroll-mt-4 rounded-md p-4`,e),children:t});export{q as AppLayoutHeader,Y as AppLayoutMain,Z as AppLayoutMainContent,Q as AppLayoutMainFooter,$ as AppLayoutMainGroup,ee as AppLayoutMainGroupContent,X as AppLayoutMainHeader,J as AppLayoutSidebar,j as AppLayoutSidebarContent,k as AppLayoutSidebarFooter,M as AppLayoutSidebarGroup,P as AppLayoutSidebarGroupAction,F as AppLayoutSidebarGroupContent,N as AppLayoutSidebarGroupLabel,O as AppLayoutSidebarHeader,D as AppLayoutSidebarInset,I as AppLayoutSidebarMenu,B as AppLayoutSidebarMenuAction,V as AppLayoutSidebarMenuBadge,z as AppLayoutSidebarMenuButton,L as AppLayoutSidebarMenuItem,H as AppLayoutSidebarMenuSkeleton,U as AppLayoutSidebarMenuSub,G as AppLayoutSidebarMenuSubButton,W as AppLayoutSidebarMenuSubItem,E as AppLayoutSidebarRail,A as AppLayoutSidebarSeparator,T as AppLayoutSidebarTrigger,K as AppLayoutWrapper,w as Sidebar,C as SidebarProvider,S as useSidebar};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- "use client";const e=require(`../flex-DaTrJCBr.cjs`);exports.Flex=e.Flex;
1
+ "use client";const e=require(`../flex-C-4TxUDe.cjs`);exports.Flex=e.Flex;
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime21 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import * as class_variance_authority_types0 from "class-variance-authority/types";
4
4
  import { VariantProps } from "class-variance-authority";
@@ -28,7 +28,7 @@ declare const Flex: ({
28
28
  align,
29
29
  className,
30
30
  children
31
- }: React.PropsWithChildren<Props>) => react_jsx_runtime21.JSX.Element;
31
+ }: React.PropsWithChildren<Props>) => react_jsx_runtime8.JSX.Element;
32
32
  //#endregion
33
33
  export { Flex };
34
34
  //# sourceMappingURL=flex.d.cts.map
@@ -1,6 +1,6 @@
1
- import * as react_jsx_runtime8 from "react/jsx-runtime";
2
- import React from "react";
3
1
  import { VariantProps } from "class-variance-authority";
2
+ import * as react_jsx_runtime13 from "react/jsx-runtime";
3
+ import React from "react";
4
4
  import * as class_variance_authority_types0 from "class-variance-authority/types";
5
5
 
6
6
  //#region packages/components/layouts/flex.d.ts
@@ -28,7 +28,7 @@ declare const Flex: ({
28
28
  align,
29
29
  className,
30
30
  children
31
- }: React.PropsWithChildren<Props>) => react_jsx_runtime8.JSX.Element;
31
+ }: React.PropsWithChildren<Props>) => react_jsx_runtime13.JSX.Element;
32
32
  //#endregion
33
33
  export { Flex };
34
34
  //# sourceMappingURL=flex.d.ts.map
@@ -1 +1 @@
1
- "use client";import{Flex as e}from"../flex-D_GSLR10.js";export{e as Flex};
1
+ "use client";import{Flex as e}from"../flex-BxBmZCWh.js";export{e as Flex};
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./button-ChpGfVjG.cjs`),n=require(`./command-D5rQByNQ.cjs`),r=e.__toESM(require(`@customafk/react-toolkit/utils`)),i=e.__toESM(require(`react/jsx-runtime`)),a=e.__toESM(require(`react`)),o=e.__toESM(require(`lucide-react`)),s=e.__toESM(require(`cmdk`));function c(e,t){let[n,r]=a.default.useState(e);return a.default.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=a.default.forwardRef(({className:e,...t},n)=>{let a=(0,s.useCommandState)(e=>e.filtered.count===0);return a?(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=a.default.forwardRef(({value:e,onChange:p,placeholder:m,defaultOptions:h=[],options:g,delay:_,onSearch:v,onSearchSync:y,loadingIndicator:b,emptyIndicator:x,maxSelected:S=9007199254740991,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=a.default.useRef(null),R=a.default.useRef(null),[z,B]=a.default.useState(!1),[V,H]=a.default.useState(!1),[U,W]=a.default.useState(!1),[G,K]=a.default.useState(e||[]),[q,J]=a.default.useState(l(h,E)),[Y,X]=a.default.useState(``),Z=c(Y,_||500);a.default.useImperativeHandle(I,()=>({selectedValue:[...G],input:L.current,focus:()=>L?.current?.focus(),reset:()=>K([])}),[G]);let Q=a.default.useCallback(e=>{R.current&&!R.current.contains(e.target)&&L.current&&!L.current.contains(e.target)&&(B(!1),L.current.blur())},[]),$=a.default.useCallback(e=>{let t=G.filter(t=>t.value!==e.value);K(t),p?.(t)},[p,G]),ee=a.default.useCallback(e=>{let t=L.current;if(t){if((e.key===`Delete`||e.key===`Backspace`)&&t.value===``&&G.length>0){let e=G[G.length-1];e.fixed||$(G[G.length-1])}e.key===`Escape`&&t.blur()}},[$,G]);a.default.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]),a.default.useEffect(()=>{e&&K(e)},[e]),a.default.useEffect(()=>{if(!g||v)return;let e=l(g||[],E);JSON.stringify(e)!==JSON.stringify(q)&&J(e)},[h,g,E,v,q]),a.default.useEffect(()=>{let e=()=>{let e=y?.(Z);J(l(e||[],E))},t=async()=>{!y||!z||(j&&e(),Z&&e())};t()},[Z,E,z,j]),a.default.useEffect(()=>{let e=async()=>{W(!0);let e=await v?.(Z);J(l(e||[],E)),W(!1)},t=async()=>{!v||!z||(j&&await e(),Z&&await e())};t()},[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.CommandItem,{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=a.default.useCallback(()=>{if(x)return v&&!A&&Object.keys(q).length===0?(0,i.jsx)(n.CommandItem,{value:`-`,disabled:!0,children:x}):(0,i.jsx)(f,{children:x})},[A,x,v,q]),re=a.default.useMemo(()=>u(q,G),[q,G]),ie=a.default.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.Command,{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)(o.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)(o.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.CommandList,{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.CommandSeparator,{}),(0,i.jsx)(n.CommandGroup,{children:(0,i.jsxs)(t.Button,{type:`button`,variant:`ghost`,className:`w-full font-normal [&_div]:justify-start`,onClick:F,children:[(0,i.jsx)(o.PlusIcon,{size:14,className:`opacity-60`,"aria-hidden":`true`}),`Thêm mới`]})})]}),U?b:(0,i.jsxs)(a.default.Fragment,{children:[ne(),te(),!k&&(0,i.jsx)(n.CommandItem,{value:`-`,className:`hidden`}),Object.entries(re).map(([e,t])=>(0,i.jsx)(n.CommandGroup,{heading:e,className:`h-full overflow-auto`,children:t.map(e=>(0,i.jsx)(n.CommandItem,{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`,Object.defineProperty(exports,`MultipleSelector`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`useDebounce`,{enumerable:!0,get:function(){return c}});
2
- //# sourceMappingURL=multi-select-Ch4hJ1ZJ.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./button-119IIVCy.cjs`),n=require(`./command-COUM-XfY.cjs`),r=e.__toESM(require(`lucide-react`)),i=e.__toESM(require(`@customafk/react-toolkit/utils`)),a=e.__toESM(require(`react/jsx-runtime`)),o=e.__toESM(require(`react`)),s=e.__toESM(require(`cmdk`));function c(e,t){let[n,r]=o.default.useState(e);return o.default.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=o.default.forwardRef(({className:e,...t},n)=>{let r=(0,s.useCommandState)(e=>e.filtered.count===0);return r?(0,a.jsx)(`div`,{ref:n,className:(0,i.cn)(`px-2 py-4 text-center text-sm`,e),"cmdk-empty":``,role:`presentation`,...t}):null});f.displayName=`CommandEmpty`;const p=o.default.forwardRef(({value:e,onChange:p,placeholder:m,defaultOptions:h=[],options:g,delay:_,onSearch:v,onSearchSync:y,loadingIndicator:b,emptyIndicator:x,maxSelected:S=9007199254740991,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=o.default.useRef(null),R=o.default.useRef(null),[z,B]=o.default.useState(!1),[V,H]=o.default.useState(!1),[U,W]=o.default.useState(!1),[G,K]=o.default.useState(e||[]),[q,J]=o.default.useState(l(h,E)),[Y,X]=o.default.useState(``),Z=c(Y,_||500);o.default.useImperativeHandle(I,()=>({selectedValue:[...G],input:L.current,focus:()=>L?.current?.focus(),reset:()=>K([])}),[G]);let Q=o.default.useCallback(e=>{R.current&&!R.current.contains(e.target)&&L.current&&!L.current.contains(e.target)&&(B(!1),L.current.blur())},[]),$=o.default.useCallback(e=>{let t=G.filter(t=>t.value!==e.value);K(t),p?.(t)},[p,G]),ee=o.default.useCallback(e=>{let t=L.current;if(t){if((e.key===`Delete`||e.key===`Backspace`)&&t.value===``&&G.length>0){let e=G[G.length-1];e.fixed||$(G[G.length-1])}e.key===`Escape`&&t.blur()}},[$,G]);o.default.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]),o.default.useEffect(()=>{e&&K(e)},[e]),o.default.useEffect(()=>{if(!g||v)return;let e=l(g||[],E);JSON.stringify(e)!==JSON.stringify(q)&&J(e)},[h,g,E,v,q]),o.default.useEffect(()=>{let e=()=>{let e=y?.(Z);J(l(e||[],E))},t=async()=>{!y||!z||(j&&e(),Z&&e())};t()},[Z,E,z,j]),o.default.useEffect(()=>{let e=async()=>{W(!0);let e=await v?.(Z);J(l(e||[],E)),W(!1)},t=async()=>{!v||!z||(j&&await e(),Z&&await e())};t()},[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.CommandItem,{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=o.default.useCallback(()=>{if(x)return v&&!A&&Object.keys(q).length===0?(0,a.jsx)(n.CommandItem,{value:`-`,disabled:!0,children:x}):(0,a.jsx)(f,{children:x})},[A,x,v,q]),re=o.default.useMemo(()=>u(q,G),[q,G]),ie=o.default.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.Command,{ref:R,...M,onKeyDown:e=>{ee(e),M?.onKeyDown?.(e)},className:(0,i.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,i.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,i.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,i.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)(r.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,i.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,i.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)(r.X,{size:16,strokeWidth:2,"aria-hidden":`true`})})]})}),(0,a.jsx)(`div`,{className:`relative`,children:(0,a.jsx)(`div`,{className:(0,i.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.CommandList,{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.CommandSeparator,{}),(0,a.jsx)(n.CommandGroup,{children:(0,a.jsxs)(t.Button,{type:`button`,variant:`ghost`,className:`w-full font-normal [&_div]:justify-start`,onClick:F,children:[(0,a.jsx)(r.PlusIcon,{size:14,className:`opacity-60`,"aria-hidden":`true`}),`Thêm mới`]})})]}),U?b:(0,a.jsxs)(o.default.Fragment,{children:[ne(),te(),!k&&(0,a.jsx)(n.CommandItem,{value:`-`,className:`hidden`}),Object.entries(re).map(([e,t])=>(0,a.jsx)(n.CommandGroup,{heading:e,className:`h-full overflow-auto`,children:t.map(e=>(0,a.jsx)(n.CommandItem,{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,i.cn)(`cursor-pointer`,e.disable&&`cursor-not-allowed opacity-50`),children:e.label},e.value))},e))]})]})})})]})});p.displayName=`MultipleSelector`,Object.defineProperty(exports,`MultipleSelector`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`useDebounce`,{enumerable:!0,get:function(){return c}});
2
+ //# sourceMappingURL=multi-select-C8kzA628.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-select-Ch4hJ1ZJ.cjs","names":["React","groupOption: GroupOption","CommandItem","value","Command","X","CommandPrimitive","CommandList","CommandSeparator","CommandGroup","Button","PlusIcon"],"sources":["../packages/components/ui/multi-select.tsx"],"sourcesContent":["'use client'\nimport React 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] = React.useState<T>(value)\n\n React.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 = React.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 = React.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 = React.useRef<HTMLInputElement>(null)\n const dropdownRef = React.useRef<HTMLDivElement>(null) // Added this\n\n const [open, setOpen] = React.useState(false)\n const [onScrollbar, setOnScrollbar] = React.useState(false)\n const [isLoading, setIsLoading] = React.useState(false)\n\n const [selected, setSelected] = React.useState<Option[]>(value || [])\n const [options, setOptions] = React.useState<GroupOption>(transToGroupOption(arrayDefaultOptions, groupBy))\n const [inputValue, setInputValue] = React.useState('')\n\n const debouncedSearchTerm = useDebounce(inputValue, delay || 500)\n\n React.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 = React.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 = React.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 = React.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 React.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 React.useEffect(() => {\n if (value) {\n setSelected(value)\n }\n }, [value])\n\n React.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 React.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 React.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 = React.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 = React.useMemo<GroupOption>(() => removePickedOption(options, selected), [options, selected])\n\n /** Avoid Creatable Selector freezing or lagging when paste a long string. */\n const commandFilter = React.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 <React.Fragment>\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 </React.Fragment>\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-C8kzA628.cjs","names":["React","groupOption: GroupOption","CommandItem","value","Command","X","CommandPrimitive","CommandList","CommandSeparator","CommandGroup","Button","PlusIcon"],"sources":["../packages/components/ui/multi-select.tsx"],"sourcesContent":["'use client'\nimport React 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] = React.useState<T>(value)\n\n React.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 = React.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 = React.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 = React.useRef<HTMLInputElement>(null)\n const dropdownRef = React.useRef<HTMLDivElement>(null) // Added this\n\n const [open, setOpen] = React.useState(false)\n const [onScrollbar, setOnScrollbar] = React.useState(false)\n const [isLoading, setIsLoading] = React.useState(false)\n\n const [selected, setSelected] = React.useState<Option[]>(value || [])\n const [options, setOptions] = React.useState<GroupOption>(transToGroupOption(arrayDefaultOptions, groupBy))\n const [inputValue, setInputValue] = React.useState('')\n\n const debouncedSearchTerm = useDebounce(inputValue, delay || 500)\n\n React.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 = React.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 = React.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 = React.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 React.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 React.useEffect(() => {\n if (value) {\n setSelected(value)\n }\n }, [value])\n\n React.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 React.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 React.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 = React.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 = React.useMemo<GroupOption>(() => removePickedOption(options, selected), [options, selected])\n\n /** Avoid Creatable Selector freezing or lagging when paste a long string. */\n const commandFilter = React.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 <React.Fragment>\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 </React.Fragment>\n )}\n </CommandList>\n )}\n </div>\n </div>\n </Command>\n )\n },\n)\n\nMultipleSelector.displayName = 'MultipleSelector'\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Button as e}from"./button-DL_i4AVi.js";import{Command as t,CommandGroup as n,CommandItem as r,CommandList as i,CommandSeparator as ee}from"./command-B3A4F1pB.js";import{cn as a}from"@customafk/react-toolkit/utils";import{Fragment as te,jsx as o,jsxs as s}from"react/jsx-runtime";import c from"react";import{PlusIcon as l,X as u}from"lucide-react";import{Command as ne,useCommandState as d}from"cmdk";function f(e,t){let[n,r]=c.useState(e);return c.useEffect(()=>{let n=setTimeout(()=>r(e),t||500);return()=>{clearTimeout(n)}},[e,t]),n}function p(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 re(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 ie(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 m=c.forwardRef(({className:e,...t},n)=>{let r=d(e=>e.filtered.count===0);return r?o(`div`,{ref:n,className:a(`px-2 py-4 text-center text-sm`,e),"cmdk-empty":``,role:`presentation`,...t}):null});m.displayName=`CommandEmpty`;const h=c.forwardRef(({value:d,onChange:h,placeholder:ae,defaultOptions:g=[],options:_,delay:oe,onSearch:v,onSearchSync:y,loadingIndicator:b,emptyIndicator:x,maxSelected:S=9007199254740991,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},se)=>{let I=c.useRef(null),L=c.useRef(null),[R,z]=c.useState(!1),[B,V]=c.useState(!1),[H,U]=c.useState(!1),[W,G]=c.useState(d||[]),[K,q]=c.useState(p(g,E)),[J,Y]=c.useState(``),X=f(J,oe||500);c.useImperativeHandle(se,()=>({selectedValue:[...W],input:I.current,focus:()=>I?.current?.focus(),reset:()=>G([])}),[W]);let Z=c.useCallback(e=>{L.current&&!L.current.contains(e.target)&&I.current&&!I.current.contains(e.target)&&(z(!1),I.current.blur())},[]),Q=c.useCallback(e=>{let t=W.filter(t=>t.value!==e.value);G(t),h?.(t)},[h,W]),$=c.useCallback(e=>{let t=I.current;if(t){if((e.key===`Delete`||e.key===`Backspace`)&&t.value===``&&W.length>0){let e=W[W.length-1];e.fixed||Q(W[W.length-1])}e.key===`Escape`&&t.blur()}},[Q,W]);c.useEffect(()=>(R?(document.addEventListener(`mousedown`,Z),document.addEventListener(`touchend`,Z)):(document.removeEventListener(`mousedown`,Z),document.removeEventListener(`touchend`,Z)),()=>{document.removeEventListener(`mousedown`,Z),document.removeEventListener(`touchend`,Z)}),[R]),c.useEffect(()=>{d&&G(d)},[d]),c.useEffect(()=>{if(!_||v)return;let e=p(_||[],E);JSON.stringify(e)!==JSON.stringify(K)&&q(e)},[g,_,E,v,K]),c.useEffect(()=>{let e=()=>{let e=y?.(X);q(p(e||[],E))},t=async()=>{!y||!R||(j&&e(),X&&e())};t()},[X,E,R,j]),c.useEffect(()=>{let e=async()=>{U(!0);let e=await v?.(X);q(p(e||[],E)),U(!1)},t=async()=>{!v||!R||(j&&await e(),X&&await e())};t()},[X,E,R,j]);let ce=()=>{if(!A||ie(K,[{value:J,label:J}])||W.find(e=>e.value===J))return;let e=o(r,{value:J,className:`cursor-pointer`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:e=>{if(W.length>=S){C?.(W.length);return}Y(``);let t=[...W,{value:e,label:e}];G(t),h?.(t)},children:`Create "${J}"`});if(!v&&J.length>0||v&&X.length>0&&!H)return e},le=c.useCallback(()=>{if(x)return v&&!A&&Object.keys(K).length===0?o(r,{value:`-`,disabled:!0,children:x}):o(m,{children:x})},[A,x,v,K]),ue=c.useMemo(()=>re(K,W),[K,W]),de=c.useCallback(()=>{if(M?.filter)return M.filter;if(A)return(e,t)=>e.toLowerCase().includes(t.toLowerCase())?1:-1},[A,M?.filter]);return s(t,{ref:L,...M,onKeyDown:e=>{$(e),M?.onKeyDown?.(e)},className:a(`h-auto overflow-visible bg-transparent`,M?.className),shouldFilter:M?.shouldFilter===void 0?!v:M.shouldFilter,filter:de(),children:[o(`div`,{className:a(`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`,W.length!==0&&`p-1`,!T&&W.length!==0&&`cursor-text`,!P&&`pe-9`,D),onClick:()=>{T||I?.current?.focus()},children:s(`div`,{className:`flex flex-wrap gap-1`,children:[W.map(e=>s(`div`,{className:a(`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,o(`button`,{type:`button`,disabled:T||e.fixed,className:a(`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`&&Q(e)},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:()=>Q(e),"aria-label":`Remove`,children:o(u,{size:14,strokeWidth:2,"aria-hidden":`true`})})]},e.value)),o(ne.Input,{...N,ref:I,value:J,disabled:T,onValueChange:e=>{Y(e),N?.onValueChange?.(e)},onBlur:e=>{B||z(!1),N?.onBlur?.(e)},onFocus:e=>{z(!0),j&&v?.(X),N?.onFocus?.(e)},placeholder:w&&W.length!==0?``:ae,className:a(`placeholder:text-text-positive-muted flex-1 bg-transparent outline-hidden`,`disabled:placeholder:text-transparent`,{"w-full":w,"px-3 py-2":W.length===0,"ml-1":W.length!==0},N?.className)}),o(`button`,{type:`button`,onClick:()=>{G(W.filter(e=>e.fixed)),h?.(W.filter(e=>e.fixed))},className:a(`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||W.length<1||W.filter(({fixed:e})=>e).length===W.length)&&`hidden`),"aria-label":`Clear all`,children:o(u,{size:16,strokeWidth:2,"aria-hidden":`true`})})]})}),o(`div`,{className:`relative`,children:o(`div`,{className:a(`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`,!R&&`hidden`),"data-state":R?`open`:`closed`,children:R&&s(i,{className:`shadow-lg outline-hidden`,onMouseLeave:()=>{V(!1)},onMouseEnter:()=>{V(!0)},onMouseUp:()=>{I?.current?.focus()},children:[F&&s(te,{children:[o(ee,{}),o(n,{children:s(e,{type:`button`,variant:`ghost`,className:`w-full font-normal [&_div]:justify-start`,onClick:F,children:[o(l,{size:14,className:`opacity-60`,"aria-hidden":`true`}),`Thêm mới`]})})]}),H?b:s(c.Fragment,{children:[le(),ce(),!k&&o(r,{value:`-`,className:`hidden`}),Object.entries(ue).map(([e,t])=>o(n,{heading:e,className:`h-full overflow-auto`,children:t.map(e=>o(r,{value:e.value,disabled:e.disable,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:()=>{if(W.length>=S){C?.(W.length);return}let t=[...W,e];Y(``),G(t),h?.(t)},className:a(`cursor-pointer`,e.disable&&`cursor-not-allowed opacity-50`),children:e.label},e.value))},e))]})]})})})]})});h.displayName=`MultipleSelector`;export{h as MultipleSelector,f as useDebounce};
2
- //# sourceMappingURL=multi-select-l55hOOtW.js.map
1
+ import{Button as e}from"./button-CvQQTSka.js";import{Command as t,CommandGroup as n,CommandItem as r,CommandList as ee,CommandSeparator as te}from"./command-DNfCX3KZ.js";import{PlusIcon as i,X as a}from"lucide-react";import{cn as o}from"@customafk/react-toolkit/utils";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import u from"react";import{Command as ne,useCommandState as d}from"cmdk";function f(e,t){let[n,r]=u.useState(e);return u.useEffect(()=>{let n=setTimeout(()=>r(e),t||500);return()=>{clearTimeout(n)}},[e,t]),n}function p(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 re(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 ie(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 m=u.forwardRef(({className:e,...t},n)=>{let r=d(e=>e.filtered.count===0);return r?c(`div`,{ref:n,className:o(`px-2 py-4 text-center text-sm`,e),"cmdk-empty":``,role:`presentation`,...t}):null});m.displayName=`CommandEmpty`;const h=u.forwardRef(({value:d,onChange:h,placeholder:ae,defaultOptions:g=[],options:_,delay:oe,onSearch:v,onSearchSync:y,loadingIndicator:b,emptyIndicator:x,maxSelected:S=9007199254740991,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},se)=>{let I=u.useRef(null),L=u.useRef(null),[R,z]=u.useState(!1),[B,V]=u.useState(!1),[H,U]=u.useState(!1),[W,G]=u.useState(d||[]),[K,q]=u.useState(p(g,E)),[J,Y]=u.useState(``),X=f(J,oe||500);u.useImperativeHandle(se,()=>({selectedValue:[...W],input:I.current,focus:()=>I?.current?.focus(),reset:()=>G([])}),[W]);let Z=u.useCallback(e=>{L.current&&!L.current.contains(e.target)&&I.current&&!I.current.contains(e.target)&&(z(!1),I.current.blur())},[]),Q=u.useCallback(e=>{let t=W.filter(t=>t.value!==e.value);G(t),h?.(t)},[h,W]),$=u.useCallback(e=>{let t=I.current;if(t){if((e.key===`Delete`||e.key===`Backspace`)&&t.value===``&&W.length>0){let e=W[W.length-1];e.fixed||Q(W[W.length-1])}e.key===`Escape`&&t.blur()}},[Q,W]);u.useEffect(()=>(R?(document.addEventListener(`mousedown`,Z),document.addEventListener(`touchend`,Z)):(document.removeEventListener(`mousedown`,Z),document.removeEventListener(`touchend`,Z)),()=>{document.removeEventListener(`mousedown`,Z),document.removeEventListener(`touchend`,Z)}),[R]),u.useEffect(()=>{d&&G(d)},[d]),u.useEffect(()=>{if(!_||v)return;let e=p(_||[],E);JSON.stringify(e)!==JSON.stringify(K)&&q(e)},[g,_,E,v,K]),u.useEffect(()=>{let e=()=>{let e=y?.(X);q(p(e||[],E))},t=async()=>{!y||!R||(j&&e(),X&&e())};t()},[X,E,R,j]),u.useEffect(()=>{let e=async()=>{U(!0);let e=await v?.(X);q(p(e||[],E)),U(!1)},t=async()=>{!v||!R||(j&&await e(),X&&await e())};t()},[X,E,R,j]);let ce=()=>{if(!A||ie(K,[{value:J,label:J}])||W.find(e=>e.value===J))return;let e=c(r,{value:J,className:`cursor-pointer`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:e=>{if(W.length>=S){C?.(W.length);return}Y(``);let t=[...W,{value:e,label:e}];G(t),h?.(t)},children:`Create "${J}"`});if(!v&&J.length>0||v&&X.length>0&&!H)return e},le=u.useCallback(()=>{if(x)return v&&!A&&Object.keys(K).length===0?c(r,{value:`-`,disabled:!0,children:x}):c(m,{children:x})},[A,x,v,K]),ue=u.useMemo(()=>re(K,W),[K,W]),de=u.useCallback(()=>{if(M?.filter)return M.filter;if(A)return(e,t)=>e.toLowerCase().includes(t.toLowerCase())?1:-1},[A,M?.filter]);return l(t,{ref:L,...M,onKeyDown:e=>{$(e),M?.onKeyDown?.(e)},className:o(`h-auto overflow-visible bg-transparent`,M?.className),shouldFilter:M?.shouldFilter===void 0?!v:M.shouldFilter,filter:de(),children:[c(`div`,{className:o(`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`,W.length!==0&&`p-1`,!T&&W.length!==0&&`cursor-text`,!P&&`pe-9`,D),onClick:()=>{T||I?.current?.focus()},children:l(`div`,{className:`flex flex-wrap gap-1`,children:[W.map(e=>l(`div`,{className:o(`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,c(`button`,{type:`button`,disabled:T||e.fixed,className:o(`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`&&Q(e)},onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:()=>Q(e),"aria-label":`Remove`,children:c(a,{size:14,strokeWidth:2,"aria-hidden":`true`})})]},e.value)),c(ne.Input,{...N,ref:I,value:J,disabled:T,onValueChange:e=>{Y(e),N?.onValueChange?.(e)},onBlur:e=>{B||z(!1),N?.onBlur?.(e)},onFocus:e=>{z(!0),j&&v?.(X),N?.onFocus?.(e)},placeholder:w&&W.length!==0?``:ae,className:o(`placeholder:text-text-positive-muted flex-1 bg-transparent outline-hidden`,`disabled:placeholder:text-transparent`,{"w-full":w,"px-3 py-2":W.length===0,"ml-1":W.length!==0},N?.className)}),c(`button`,{type:`button`,onClick:()=>{G(W.filter(e=>e.fixed)),h?.(W.filter(e=>e.fixed))},className:o(`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||W.length<1||W.filter(({fixed:e})=>e).length===W.length)&&`hidden`),"aria-label":`Clear all`,children:c(a,{size:16,strokeWidth:2,"aria-hidden":`true`})})]})}),c(`div`,{className:`relative`,children:c(`div`,{className:o(`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`,!R&&`hidden`),"data-state":R?`open`:`closed`,children:R&&l(ee,{className:`shadow-lg outline-hidden`,onMouseLeave:()=>{V(!1)},onMouseEnter:()=>{V(!0)},onMouseUp:()=>{I?.current?.focus()},children:[F&&l(s,{children:[c(te,{}),c(n,{children:l(e,{type:`button`,variant:`ghost`,className:`w-full font-normal [&_div]:justify-start`,onClick:F,children:[c(i,{size:14,className:`opacity-60`,"aria-hidden":`true`}),`Thêm mới`]})})]}),H?b:l(u.Fragment,{children:[le(),ce(),!k&&c(r,{value:`-`,className:`hidden`}),Object.entries(ue).map(([e,t])=>c(n,{heading:e,className:`h-full overflow-auto`,children:t.map(e=>c(r,{value:e.value,disabled:e.disable,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onSelect:()=>{if(W.length>=S){C?.(W.length);return}let t=[...W,e];Y(``),G(t),h?.(t)},className:o(`cursor-pointer`,e.disable&&`cursor-not-allowed opacity-50`),children:e.label},e.value))},e))]})]})})})]})});h.displayName=`MultipleSelector`;export{h as MultipleSelector,f as useDebounce};
2
+ //# sourceMappingURL=multi-select-CaBcDGi6.js.map