@customafk/lunas-ui 0.0.64 → 0.0.65

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 (327) hide show
  1. package/dist/{add-new-Dw0uZWxo.js → add-new-BFDOXej7.js} +1 -1
  2. package/dist/{add-new-Dw0uZWxo.js.map → add-new-BFDOXej7.js.map} +1 -1
  3. package/dist/{add-new-C2dDiCV3.cjs → add-new-D3b8hc2C.cjs} +1 -1
  4. package/dist/{add-new-C2dDiCV3.cjs.map → add-new-D3b8hc2C.cjs.map} +1 -1
  5. package/dist/{alert-dialog-BOMy-TmT.js → alert-dialog-B5dXkMIF.js} +1 -1
  6. package/dist/{alert-dialog-BOMy-TmT.js.map → alert-dialog-B5dXkMIF.js.map} +1 -1
  7. package/dist/{alert-dialog-lwTxSl-r.cjs → alert-dialog-D-4wxqLK.cjs} +1 -1
  8. package/dist/{alert-dialog-lwTxSl-r.cjs.map → alert-dialog-D-4wxqLK.cjs.map} +1 -1
  9. package/dist/{avatar-BaNIRUku.cjs → avatar-Ch6Lx2oc.cjs} +1 -1
  10. package/dist/{avatar-BaNIRUku.cjs.map → avatar-Ch6Lx2oc.cjs.map} +1 -1
  11. package/dist/{avatar-DZU7feMQ.js → avatar-ClIgQDJO.js} +1 -1
  12. package/dist/{avatar-DZU7feMQ.js.map → avatar-ClIgQDJO.js.map} +1 -1
  13. package/dist/{button-CS4aajjP.d.ts → button-DUWg-QPz.d.ts} +5 -5
  14. package/dist/{button-De2032Bs.d.cts → button-st5plaQt.d.cts} +5 -5
  15. package/dist/{calendar-CUDdTiC-.cjs → calendar-B6F_Lppz.cjs} +1 -1
  16. package/dist/{calendar-CUDdTiC-.cjs.map → calendar-B6F_Lppz.cjs.map} +1 -1
  17. package/dist/{calendar-BZRNZdsJ.js → calendar-CXddeN7A.js} +1 -1
  18. package/dist/{calendar-BZRNZdsJ.js.map → calendar-CXddeN7A.js.map} +1 -1
  19. package/dist/cards/simple-card.d.cts +2 -2
  20. package/dist/cards/simple-card.d.ts +2 -2
  21. package/dist/{command-B9nlrxXh.cjs → command-BNYekOzL.cjs} +2 -2
  22. package/dist/{command-B9nlrxXh.cjs.map → command-BNYekOzL.cjs.map} +1 -1
  23. package/dist/{command-D7AHVkgQ.d.ts → command-CL9pytMx.d.cts} +12 -12
  24. package/dist/{command-DKD5gHi_.js → command-CyWyRcle.js} +2 -2
  25. package/dist/{command-DKD5gHi_.js.map → command-CyWyRcle.js.map} +1 -1
  26. package/dist/{command-Db5JViIx.d.cts → command-zikueR7l.d.ts} +12 -12
  27. package/dist/data-display/empty.d.cts +2 -2
  28. package/dist/data-display/statistic.d.cts +2 -2
  29. package/dist/data-display/statistic.d.ts +2 -2
  30. package/dist/data-display/user.cjs +2 -0
  31. package/dist/data-display/user.cjs.map +1 -0
  32. package/dist/data-display/user.d.cts +10 -0
  33. package/dist/data-display/user.d.ts +10 -0
  34. package/dist/data-display/user.js +2 -0
  35. package/dist/data-display/user.js.map +1 -0
  36. package/dist/{dialog-yE-2SRfz.d.ts → dialog-Dease_8R.d.ts} +12 -12
  37. package/dist/{dialog-CiqPVetj.d.cts → dialog-oAOedasX.d.cts} +12 -12
  38. package/dist/{dialog-DbI18XF9.js → dialog-pMHkBJ-w.js} +1 -1
  39. package/dist/{dialog-DbI18XF9.js.map → dialog-pMHkBJ-w.js.map} +1 -1
  40. package/dist/{dialog-CGrbU7PO.cjs → dialog-wX27mb8E.cjs} +1 -1
  41. package/dist/{dialog-CGrbU7PO.cjs.map → dialog-wX27mb8E.cjs.map} +1 -1
  42. package/dist/dialogs/confirm-dialog.cjs +1 -1
  43. package/dist/dialogs/confirm-dialog.js +1 -1
  44. package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
  45. package/dist/dialogs/detail-dialog/component/sidebar.d.cts +30 -30
  46. package/dist/dialogs/detail-dialog/component/sidebar.d.ts +30 -30
  47. package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
  48. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  49. package/dist/dialogs/detail-dialog/index.js +1 -1
  50. package/dist/dialogs/error-dialog.cjs +1 -1
  51. package/dist/dialogs/error-dialog.js +1 -1
  52. package/dist/dialogs/form-dialog.cjs +1 -1
  53. package/dist/dialogs/form-dialog.d.cts +2 -2
  54. package/dist/dialogs/form-dialog.d.ts +2 -2
  55. package/dist/dialogs/form-dialog.js +1 -1
  56. package/dist/dialogs/loading-dialog.cjs +1 -1
  57. package/dist/dialogs/loading-dialog.js +1 -1
  58. package/dist/{drawer-B7OJzlXZ.js → drawer-DnhgwetT.js} +1 -1
  59. package/dist/{drawer-B7OJzlXZ.js.map → drawer-DnhgwetT.js.map} +1 -1
  60. package/dist/{drawer-Dh9uXVnU.cjs → drawer-sRfKhXA3.cjs} +1 -1
  61. package/dist/{drawer-Dh9uXVnU.cjs.map → drawer-sRfKhXA3.cjs.map} +1 -1
  62. package/dist/{dropdown-menu-Cn96vqMy.js → dropdown-menu-Bj39Rmxd.js} +1 -1
  63. package/dist/{dropdown-menu-Cn96vqMy.js.map → dropdown-menu-Bj39Rmxd.js.map} +1 -1
  64. package/dist/{dropdown-menu-BtNJk8EZ.cjs → dropdown-menu-SNcBwTOA.cjs} +1 -1
  65. package/dist/{dropdown-menu-BtNJk8EZ.cjs.map → dropdown-menu-SNcBwTOA.cjs.map} +1 -1
  66. package/dist/{error-dialog-D3tnycqF.js → error-dialog-CphiTB4y.js} +2 -2
  67. package/dist/{error-dialog-D3tnycqF.js.map → error-dialog-CphiTB4y.js.map} +1 -1
  68. package/dist/{error-dialog-BkCaUR7F.cjs → error-dialog-DGg0x5xF.cjs} +2 -2
  69. package/dist/{error-dialog-BkCaUR7F.cjs.map → error-dialog-DGg0x5xF.cjs.map} +1 -1
  70. package/dist/{form-D-gDMD-J.js → form-B-KLKj5u.js} +2 -2
  71. package/dist/{form-D-gDMD-J.js.map → form-B-KLKj5u.js.map} +1 -1
  72. package/dist/{form-CaxhlWxK.cjs → form-CtpHZKmh.cjs} +2 -2
  73. package/dist/{form-CaxhlWxK.cjs.map → form-CtpHZKmh.cjs.map} +1 -1
  74. package/dist/{form-wrapper-BUkoh-c7.cjs → form-wrapper-C3pU1F5r.cjs} +2 -2
  75. package/dist/{form-wrapper-BUkoh-c7.cjs.map → form-wrapper-C3pU1F5r.cjs.map} +1 -1
  76. package/dist/{form-wrapper-BbScjpBv.js → form-wrapper-Deo8gKv5.js} +2 -2
  77. package/dist/{form-wrapper-BbScjpBv.js.map → form-wrapper-Deo8gKv5.js.map} +1 -1
  78. package/dist/forms/combobox-field.cjs +1 -1
  79. package/dist/forms/combobox-field.d.cts +2 -2
  80. package/dist/forms/combobox-field.d.ts +2 -2
  81. package/dist/forms/combobox-field.js +1 -1
  82. package/dist/forms/date-field.cjs +1 -1
  83. package/dist/forms/date-field.d.ts +2 -2
  84. package/dist/forms/date-field.js +1 -1
  85. package/dist/forms/form-wrapper.cjs +1 -1
  86. package/dist/forms/form-wrapper.d.cts +2 -2
  87. package/dist/forms/form-wrapper.d.ts +2 -2
  88. package/dist/forms/form-wrapper.js +1 -1
  89. package/dist/forms/multi-select-field.cjs +1 -1
  90. package/dist/forms/multi-select-field.d.cts +2 -2
  91. package/dist/forms/multi-select-field.d.ts +2 -2
  92. package/dist/forms/multi-select-field.js +1 -1
  93. package/dist/forms/number-field.cjs +1 -1
  94. package/dist/forms/number-field.d.cts +2 -2
  95. package/dist/forms/number-field.d.ts +2 -2
  96. package/dist/forms/number-field.js +1 -1
  97. package/dist/forms/password-field.cjs +1 -1
  98. package/dist/forms/password-field.d.cts +2 -2
  99. package/dist/forms/password-field.d.ts +2 -2
  100. package/dist/forms/password-field.js +1 -1
  101. package/dist/forms/select-field.cjs +1 -1
  102. package/dist/forms/select-field.d.cts +2 -2
  103. package/dist/forms/select-field.d.ts +2 -2
  104. package/dist/forms/select-field.js +1 -1
  105. package/dist/forms/switch-field.cjs +1 -1
  106. package/dist/forms/switch-field.d.cts +2 -2
  107. package/dist/forms/switch-field.d.ts +2 -2
  108. package/dist/forms/switch-field.js +1 -1
  109. package/dist/forms/text-field.cjs +1 -1
  110. package/dist/forms/text-field.d.cts +2 -2
  111. package/dist/forms/text-field.d.ts +2 -2
  112. package/dist/forms/text-field.js +1 -1
  113. package/dist/forms/textarea-field.cjs +1 -1
  114. package/dist/forms/textarea-field.d.cts +2 -2
  115. package/dist/forms/textarea-field.d.ts +2 -2
  116. package/dist/forms/textarea-field.js +1 -1
  117. package/dist/{input-BFZuwsER.js → input-BUYJ4_aj.js} +1 -1
  118. package/dist/{input-BFZuwsER.js.map → input-BUYJ4_aj.js.map} +1 -1
  119. package/dist/{input-BayoSfCE.d.cts → input-BXxtPvIa.d.cts} +3 -3
  120. package/dist/{input-BjiwI6EW.d.ts → input-DO3Z69kK.d.ts} +3 -3
  121. package/dist/{input-ERPHY3v4.cjs → input-DgtTVBtN.cjs} +1 -1
  122. package/dist/{input-ERPHY3v4.cjs.map → input-DgtTVBtN.cjs.map} +1 -1
  123. package/dist/{label-BBPPT0-L.cjs → label-BZqk7MPJ.cjs} +1 -1
  124. package/dist/{label-BBPPT0-L.cjs.map → label-BZqk7MPJ.cjs.map} +1 -1
  125. package/dist/{label-DdpIoRiG.js → label-HVpeECNr.js} +1 -1
  126. package/dist/{label-DdpIoRiG.js.map → label-HVpeECNr.js.map} +1 -1
  127. package/dist/layouts/app-layout/index.d.cts +28 -28
  128. package/dist/layouts/app-layout/index.d.ts +3 -3
  129. package/dist/layouts/flex.d.cts +4 -4
  130. package/dist/layouts/flex.d.ts +2 -2
  131. package/dist/layouts/service-layout/index.cjs +1 -1
  132. package/dist/layouts/service-layout/index.cjs.map +1 -1
  133. package/dist/layouts/service-layout/index.d.cts +15 -15
  134. package/dist/layouts/service-layout/index.d.ts +3 -3
  135. package/dist/layouts/service-layout/index.js +1 -1
  136. package/dist/layouts/service-layout/index.js.map +1 -1
  137. package/dist/{multi-select-BAXHYtlU.cjs → multi-select-DRKqFg1M.cjs} +2 -2
  138. package/dist/{multi-select-BAXHYtlU.cjs.map → multi-select-DRKqFg1M.cjs.map} +1 -1
  139. package/dist/{multi-select-oXuLHx0A.js → multi-select-DyhAPckx.js} +2 -2
  140. package/dist/{multi-select-oXuLHx0A.js.map → multi-select-DyhAPckx.js.map} +1 -1
  141. package/dist/{popover-ByL6Igxn.cjs → popover-Bi7GLJT5.cjs} +1 -1
  142. package/dist/{popover-ByL6Igxn.cjs.map → popover-Bi7GLJT5.cjs.map} +1 -1
  143. package/dist/{popover-DMt7GPSm.js → popover-CxOK3oy2.js} +1 -1
  144. package/dist/{popover-DMt7GPSm.js.map → popover-CxOK3oy2.js.map} +1 -1
  145. package/dist/{refresh-BVSXOk3A.cjs → refresh-CQyFVZx9.cjs} +1 -1
  146. package/dist/{refresh-BVSXOk3A.cjs.map → refresh-CQyFVZx9.cjs.map} +1 -1
  147. package/dist/{refresh-CHzDlf3i.js → refresh-CTcKzu_a.js} +1 -1
  148. package/dist/{refresh-CHzDlf3i.js.map → refresh-CTcKzu_a.js.map} +1 -1
  149. package/dist/{scroll-area-C4Mg89Qh.js → scroll-area-CqevC_nb.js} +1 -1
  150. package/dist/{scroll-area-C4Mg89Qh.js.map → scroll-area-CqevC_nb.js.map} +1 -1
  151. package/dist/{scroll-area-qPdEy4lg.cjs → scroll-area-Dgjr1n1T.cjs} +1 -1
  152. package/dist/{scroll-area-qPdEy4lg.cjs.map → scroll-area-Dgjr1n1T.cjs.map} +1 -1
  153. package/dist/{search-input-DWLfcXEU.cjs → search-input-BkhVqB3R.cjs} +2 -2
  154. package/dist/{search-input-DWLfcXEU.cjs.map → search-input-BkhVqB3R.cjs.map} +1 -1
  155. package/dist/{search-input-B_L6kaz-.js → search-input-DnYrPBeT.js} +2 -2
  156. package/dist/{search-input-B_L6kaz-.js.map → search-input-DnYrPBeT.js.map} +1 -1
  157. package/dist/{select-CijI0HX0.js → select-Cmq5a3Wg.js} +1 -1
  158. package/dist/{select-CijI0HX0.js.map → select-Cmq5a3Wg.js.map} +1 -1
  159. package/dist/{select-oxr4KoHx.cjs → select-DAE3Xg7g.cjs} +1 -1
  160. package/dist/{select-oxr4KoHx.cjs.map → select-DAE3Xg7g.cjs.map} +1 -1
  161. package/dist/{separator-BSmwGEtT.d.cts → separator-B-TIckT4.d.cts} +3 -3
  162. package/dist/{separator-zD-G3xIG.d.ts → separator-CO0oTpOK.d.ts} +3 -3
  163. package/dist/{sidebar-BxGyCuTJ.cjs → sidebar-CROF88rz.cjs} +2 -2
  164. package/dist/{sidebar-BxGyCuTJ.cjs.map → sidebar-CROF88rz.cjs.map} +1 -1
  165. package/dist/{sidebar-CMWETVDr.js → sidebar-CrStgrmq.js} +2 -2
  166. package/dist/{sidebar-CMWETVDr.js.map → sidebar-CrStgrmq.js.map} +1 -1
  167. package/dist/{switch-BPSKvrTw.cjs → switch-BnHSwQ5T.cjs} +1 -1
  168. package/dist/{switch-BPSKvrTw.cjs.map → switch-BnHSwQ5T.cjs.map} +1 -1
  169. package/dist/{switch-Crju8DJO.js → switch-iwm2-R_e.js} +1 -1
  170. package/dist/{switch-Crju8DJO.js.map → switch-iwm2-R_e.js.map} +1 -1
  171. package/dist/table/index.cjs +1 -1
  172. package/dist/table/index.d.cts +2 -2
  173. package/dist/table/index.d.ts +2 -2
  174. package/dist/table/index.js +1 -1
  175. package/dist/{table-CSvLRXlk.cjs → table-CuhHhpgi.cjs} +2 -2
  176. package/dist/{table-CSvLRXlk.cjs.map → table-CuhHhpgi.cjs.map} +1 -1
  177. package/dist/{table-DCmuhHSH.js → table-oROsZcz4.js} +2 -2
  178. package/dist/{table-DCmuhHSH.js.map → table-oROsZcz4.js.map} +1 -1
  179. package/dist/{textarea-BtACo9UF.cjs → textarea-DK_bNV0u.cjs} +1 -1
  180. package/dist/{textarea-BtACo9UF.cjs.map → textarea-DK_bNV0u.cjs.map} +1 -1
  181. package/dist/{textarea-BCZiUxv7.js → textarea-DbNqKCAi.js} +1 -1
  182. package/dist/{textarea-BCZiUxv7.js.map → textarea-DbNqKCAi.js.map} +1 -1
  183. package/dist/{title-sD8UJhwY.cjs → title-B51-Oj-Y.cjs} +1 -1
  184. package/dist/{title-sD8UJhwY.cjs.map → title-B51-Oj-Y.cjs.map} +1 -1
  185. package/dist/{title-CtD4oOTk.js → title-Cb4SosQb.js} +1 -1
  186. package/dist/{title-CtD4oOTk.js.map → title-Cb4SosQb.js.map} +1 -1
  187. package/dist/{toggle-CP8phE7Y.d.cts → toggle-BHyG321X.d.ts} +5 -5
  188. package/dist/{toggle-BtGh6fdx.d.ts → toggle-DdY6X9AI.d.cts} +4 -4
  189. package/dist/{tooltip-CamHYf1v.d.ts → tooltip-BURz5fQL.d.ts} +6 -6
  190. package/dist/{tooltip-DLNDOfBF.d.cts → tooltip-C0_WxGo5.d.cts} +6 -6
  191. package/dist/typography/paragraph.d.cts +2 -2
  192. package/dist/typography/paragraph.d.ts +2 -2
  193. package/dist/typography/title.cjs +1 -1
  194. package/dist/typography/title.d.cts +2 -2
  195. package/dist/typography/title.d.ts +2 -2
  196. package/dist/typography/title.js +1 -1
  197. package/dist/ui/alert-dialog.cjs +1 -1
  198. package/dist/ui/alert-dialog.d.cts +12 -12
  199. package/dist/ui/alert-dialog.d.ts +12 -12
  200. package/dist/ui/alert-dialog.js +1 -1
  201. package/dist/ui/alert.d.cts +4 -4
  202. package/dist/ui/alert.d.ts +6 -6
  203. package/dist/ui/aspect-ratio.d.cts +2 -2
  204. package/dist/ui/aspect-ratio.d.ts +2 -2
  205. package/dist/ui/avatar.cjs +1 -1
  206. package/dist/ui/avatar.d.cts +4 -4
  207. package/dist/ui/avatar.d.ts +4 -4
  208. package/dist/ui/avatar.js +1 -1
  209. package/dist/ui/badge.d.cts +4 -4
  210. package/dist/ui/badge.d.ts +4 -4
  211. package/dist/ui/breadcrumb.d.cts +8 -8
  212. package/dist/ui/breadcrumb.d.ts +8 -8
  213. package/dist/ui/button.d.cts +1 -1
  214. package/dist/ui/button.d.ts +1 -1
  215. package/dist/ui/buttons/add-new.cjs +1 -1
  216. package/dist/ui/buttons/add-new.js +1 -1
  217. package/dist/ui/buttons/refresh.cjs +1 -1
  218. package/dist/ui/buttons/refresh.js +1 -1
  219. package/dist/ui/calendar.cjs +1 -1
  220. package/dist/ui/calendar.d.cts +4 -4
  221. package/dist/ui/calendar.d.ts +4 -4
  222. package/dist/ui/calendar.js +1 -1
  223. package/dist/ui/card.d.cts +8 -8
  224. package/dist/ui/card.d.ts +8 -8
  225. package/dist/ui/carousel.d.cts +7 -7
  226. package/dist/ui/carousel.d.ts +7 -7
  227. package/dist/ui/collapsible.d.cts +4 -4
  228. package/dist/ui/collapsible.d.ts +4 -4
  229. package/dist/ui/command.cjs +1 -1
  230. package/dist/ui/command.d.cts +2 -2
  231. package/dist/ui/command.d.ts +2 -2
  232. package/dist/ui/command.js +1 -1
  233. package/dist/ui/context-menu.d.cts +16 -16
  234. package/dist/ui/context-menu.d.ts +16 -16
  235. package/dist/ui/dialog.cjs +1 -1
  236. package/dist/ui/dialog.d.cts +1 -1
  237. package/dist/ui/dialog.d.ts +1 -1
  238. package/dist/ui/dialog.js +1 -1
  239. package/dist/ui/dropdown-menu.cjs +1 -1
  240. package/dist/ui/dropdown-menu.d.cts +16 -16
  241. package/dist/ui/dropdown-menu.d.ts +16 -16
  242. package/dist/ui/dropdown-menu.js +1 -1
  243. package/dist/ui/file-uploader.d.cts +2 -2
  244. package/dist/ui/file-uploader.d.ts +2 -2
  245. package/dist/ui/form.cjs +1 -1
  246. package/dist/ui/form.d.cts +7 -7
  247. package/dist/ui/form.d.ts +7 -7
  248. package/dist/ui/form.js +1 -1
  249. package/dist/ui/hover-card.d.cts +4 -4
  250. package/dist/ui/hover-card.d.ts +4 -4
  251. package/dist/ui/input-otp.d.cts +5 -5
  252. package/dist/ui/input-otp.d.ts +5 -5
  253. package/dist/ui/input.cjs +1 -1
  254. package/dist/ui/input.d.cts +1 -1
  255. package/dist/ui/input.d.ts +1 -1
  256. package/dist/ui/input.js +1 -1
  257. package/dist/ui/inputs/search-input.cjs +1 -1
  258. package/dist/ui/inputs/search-input.d.cts +3 -3
  259. package/dist/ui/inputs/search-input.d.ts +3 -3
  260. package/dist/ui/inputs/search-input.js +1 -1
  261. package/dist/ui/label.cjs +1 -1
  262. package/dist/ui/label.d.cts +2 -2
  263. package/dist/ui/label.d.ts +2 -2
  264. package/dist/ui/label.js +1 -1
  265. package/dist/ui/menubar.d.cts +17 -17
  266. package/dist/ui/menubar.d.ts +17 -17
  267. package/dist/ui/multi-select.cjs +1 -1
  268. package/dist/ui/multi-select.d.cts +2 -2
  269. package/dist/ui/multi-select.d.ts +2 -2
  270. package/dist/ui/multi-select.js +1 -1
  271. package/dist/ui/navigation-menu.d.cts +11 -11
  272. package/dist/ui/navigation-menu.d.ts +11 -11
  273. package/dist/ui/pagination.d.cts +9 -9
  274. package/dist/ui/pagination.d.ts +9 -9
  275. package/dist/ui/popover.cjs +1 -1
  276. package/dist/ui/popover.d.cts +5 -5
  277. package/dist/ui/popover.d.ts +5 -5
  278. package/dist/ui/popover.js +1 -1
  279. package/dist/ui/progress.d.cts +2 -2
  280. package/dist/ui/progress.d.ts +2 -2
  281. package/dist/ui/radio-group.d.cts +3 -3
  282. package/dist/ui/radio-group.d.ts +3 -3
  283. package/dist/ui/resizable.d.cts +4 -4
  284. package/dist/ui/resizable.d.ts +4 -4
  285. package/dist/ui/scroll-area.cjs +1 -1
  286. package/dist/ui/scroll-area.d.cts +3 -3
  287. package/dist/ui/scroll-area.d.ts +3 -3
  288. package/dist/ui/scroll-area.js +1 -1
  289. package/dist/ui/select.cjs +1 -1
  290. package/dist/ui/select.d.cts +11 -11
  291. package/dist/ui/select.d.ts +11 -11
  292. package/dist/ui/select.js +1 -1
  293. package/dist/ui/separator.d.cts +1 -1
  294. package/dist/ui/separator.d.ts +1 -1
  295. package/dist/ui/sheet.d.cts +9 -9
  296. package/dist/ui/sheet.d.ts +9 -9
  297. package/dist/ui/sidebar.cjs +1 -1
  298. package/dist/ui/sidebar.d.cts +30 -30
  299. package/dist/ui/sidebar.d.ts +28 -28
  300. package/dist/ui/sidebar.js +1 -1
  301. package/dist/ui/skeleton.d.cts +2 -2
  302. package/dist/ui/skeleton.d.ts +2 -2
  303. package/dist/ui/slider.d.cts +2 -2
  304. package/dist/ui/slider.d.ts +2 -2
  305. package/dist/ui/sonner.d.cts +2 -2
  306. package/dist/ui/sonner.d.ts +2 -2
  307. package/dist/ui/switch.cjs +1 -1
  308. package/dist/ui/switch.d.cts +2 -2
  309. package/dist/ui/switch.d.ts +2 -2
  310. package/dist/ui/switch.js +1 -1
  311. package/dist/ui/table.cjs +1 -1
  312. package/dist/ui/table.d.cts +9 -9
  313. package/dist/ui/table.d.ts +9 -9
  314. package/dist/ui/table.js +1 -1
  315. package/dist/ui/tabs.d.cts +5 -5
  316. package/dist/ui/tabs.d.ts +5 -5
  317. package/dist/ui/textarea.cjs +1 -1
  318. package/dist/ui/textarea.d.cts +2 -2
  319. package/dist/ui/textarea.d.ts +2 -2
  320. package/dist/ui/textarea.js +1 -1
  321. package/dist/ui/toggle-group.d.cts +4 -4
  322. package/dist/ui/toggle-group.d.ts +4 -4
  323. package/dist/ui/toggle.d.cts +1 -1
  324. package/dist/ui/toggle.d.ts +1 -1
  325. package/dist/ui/tooltip.d.cts +1 -1
  326. package/dist/ui/tooltip.d.ts +1 -1
  327. package/package.json +6 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-BxGyCuTJ.cjs","names":["open","TooltipProvider","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","Button","MenuIcon","Input","Separator","SlotPrimitive","Tooltip","TooltipTrigger","TooltipContent","Skeleton"],"sources":["../packages/components/dialogs/detail-dialog/component/sidebar.tsx"],"sourcesContent":["'use client'\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport { useIsMobile } from '@customafk/react-toolkit/hooks/useMobile'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { MenuIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Separator } from '@/components/ui/separator'\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@/components/ui/sheet'\nimport { Skeleton } from '@/components/ui/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot as SlotPrimitive } from 'radix-ui'\n\nconst SIDEBAR_COOKIE_NAME = 'detai_dialog_sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'p'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper', 'has-data-[variant=inset]:bg-sidebar', 'flex min-h-svh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const { state, isMobile, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div data-slot=\"sidebar\" className={cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', className)} {...props}>\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'absolute inset-y-0 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'shadow-nav flex size-full flex-col',\n 'group-data-[variant=floating]:border-sidebar-border',\n 'group-data-[variant=floating]:rounded-lg',\n 'group-data-[variant=floating]:border',\n 'group-data-[variant=floating]:shadow-sm',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction DetailDialogSidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n color=\"secondary\"\n size=\"icon\"\n className={cn('size-10 rounded-full [&_svg]:!size-6', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <MenuIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction DetailDialogSidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex',\n 'after:absolute',\n 'after:inset-y-0',\n 'after:left-1/2 after:w-0.5',\n 'hover:after:bg-sidebar-border',\n 'group-data-[side=left]:-right-4',\n 'group-data-[side=right]:left-0',\n 'in-data-[side=left]:cursor-w-resize',\n 'in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize',\n '[[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n 'group-data-[collapsible=offcanvas]:translate-x-0',\n 'group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2',\n 'md:peer-data-[variant=inset]:ml-0',\n 'md:peer-data-[variant=inset]:rounded-xl',\n 'md:peer-data-[variant=inset]:shadow-sm',\n 'md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return <Input data-slot=\"sidebar-input\" data-sidebar=\"input\" className={cn('bg-background h-8 w-full shadow-none', className)} {...props} />\n}\n\nfunction DetailDialogSidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-header\" data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-footer\" data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return <Separator data-slot=\"sidebar-separator\" data-sidebar=\"separator\" className={cn('bg-sidebar-border mx-2 w-auto', className)} {...props} />\n}\n\nfunction DetailDialogSidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto', 'group-data-[collapsible=icon]:overflow-hidden', className)}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group\" data-sidebar=\"group\" className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarGroupLabel({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8',\n 'group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupAction({ className, asChild = false, ...props }: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute',\n 'after:-inset-2',\n 'md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group-content\" data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"sidebar-menu\" data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-item\" data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n}\n\nconst sidebarMenuButtonVariants = cva(\n [\n 'peer/menu-button',\n 'cursor-pointer',\n 'flex w-full items-center gap-2',\n 'overflow-hidden rounded-md p-2 outline-hidden',\n 'text-left truncate',\n 'transition-[color,width,height,padding]',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'group-has-data-[sidebar=menu-action]/menu-item:pr-8',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n 'data-[active=true]:bg-sidebar-primary-muted',\n 'data-[active=true]:font-medium',\n 'data-[active=true]:text-sidebar-primary',\n 'data-[state=open]:hover:bg-sidebar-accent',\n 'data-[state=open]:hover:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:size-8!',\n 'group-data-[collapsible=icon]:p-2!',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>span:last-child]:truncate',\n ],\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80',\n outline:\n '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))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction DetailDialogSidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n const { state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed'} {...tooltip} />\n </Tooltip>\n )\n}\n\nfunction DetailDialogSidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n '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',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover && 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n showOnHover && '$group-focus-within/menu-item:opacity-100',\n showOnHover && 'group-hover/menu-item:opacity-100',\n showOnHover && 'data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n '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',\n 'peer-hover/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div data-slot=\"sidebar-menu-skeleton\" data-sidebar=\"menu-skeleton\" className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)} {...props}>\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction DetailDialogSidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n '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',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-sub-item\" data-sidebar=\"menu-sub-item\" className={cn('group/menu-sub-item relative', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:hidden',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarGroup,\n DetailDialogSidebarGroupAction,\n DetailDialogSidebarGroupContent,\n DetailDialogSidebarGroupLabel,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuAction,\n DetailDialogSidebarMenuBadge,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarMenuSkeleton,\n DetailDialogSidebarMenuSub,\n DetailDialogSidebarMenuSubButton,\n DetailDialogSidebarMenuSubItem,\n DetailDialogSidebarRail,\n DetailDialogSidebarSeparator,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarInput,\n SidebarInset,\n SidebarProvider,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar-CROF88rz.cjs","names":["open","TooltipProvider","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","Button","MenuIcon","Input","Separator","SlotPrimitive","Tooltip","TooltipTrigger","TooltipContent","Skeleton"],"sources":["../packages/components/dialogs/detail-dialog/component/sidebar.tsx"],"sourcesContent":["'use client'\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport { useIsMobile } from '@customafk/react-toolkit/hooks/useMobile'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { MenuIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Separator } from '@/components/ui/separator'\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@/components/ui/sheet'\nimport { Skeleton } from '@/components/ui/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot as SlotPrimitive } from 'radix-ui'\n\nconst SIDEBAR_COOKIE_NAME = 'detai_dialog_sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'p'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper', 'has-data-[variant=inset]:bg-sidebar', 'flex min-h-svh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const { state, isMobile, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div data-slot=\"sidebar\" className={cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', className)} {...props}>\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'absolute inset-y-0 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'shadow-nav flex size-full flex-col',\n 'group-data-[variant=floating]:border-sidebar-border',\n 'group-data-[variant=floating]:rounded-lg',\n 'group-data-[variant=floating]:border',\n 'group-data-[variant=floating]:shadow-sm',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction DetailDialogSidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n color=\"secondary\"\n size=\"icon\"\n className={cn('size-10 rounded-full [&_svg]:!size-6', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <MenuIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction DetailDialogSidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex',\n 'after:absolute',\n 'after:inset-y-0',\n 'after:left-1/2 after:w-0.5',\n 'hover:after:bg-sidebar-border',\n 'group-data-[side=left]:-right-4',\n 'group-data-[side=right]:left-0',\n 'in-data-[side=left]:cursor-w-resize',\n 'in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize',\n '[[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n 'group-data-[collapsible=offcanvas]:translate-x-0',\n 'group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2',\n 'md:peer-data-[variant=inset]:ml-0',\n 'md:peer-data-[variant=inset]:rounded-xl',\n 'md:peer-data-[variant=inset]:shadow-sm',\n 'md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return <Input data-slot=\"sidebar-input\" data-sidebar=\"input\" className={cn('bg-background h-8 w-full shadow-none', className)} {...props} />\n}\n\nfunction DetailDialogSidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-header\" data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-footer\" data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return <Separator data-slot=\"sidebar-separator\" data-sidebar=\"separator\" className={cn('bg-sidebar-border mx-2 w-auto', className)} {...props} />\n}\n\nfunction DetailDialogSidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto', 'group-data-[collapsible=icon]:overflow-hidden', className)}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group\" data-sidebar=\"group\" className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarGroupLabel({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8',\n 'group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupAction({ className, asChild = false, ...props }: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute',\n 'after:-inset-2',\n 'md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group-content\" data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"sidebar-menu\" data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-item\" data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n}\n\nconst sidebarMenuButtonVariants = cva(\n [\n 'peer/menu-button',\n 'cursor-pointer',\n 'flex w-full items-center gap-2',\n 'overflow-hidden rounded-md p-2 outline-hidden',\n 'text-left truncate',\n 'transition-[color,width,height,padding]',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'group-has-data-[sidebar=menu-action]/menu-item:pr-8',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n 'data-[active=true]:bg-sidebar-primary-muted',\n 'data-[active=true]:font-medium',\n 'data-[active=true]:text-sidebar-primary',\n 'data-[state=open]:hover:bg-sidebar-accent',\n 'data-[state=open]:hover:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:size-8!',\n 'group-data-[collapsible=icon]:p-2!',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>span:last-child]:truncate',\n ],\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80',\n outline:\n '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))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction DetailDialogSidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n const { state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed'} {...tooltip} />\n </Tooltip>\n )\n}\n\nfunction DetailDialogSidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n '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',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover && 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n showOnHover && '$group-focus-within/menu-item:opacity-100',\n showOnHover && 'group-hover/menu-item:opacity-100',\n showOnHover && 'data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n '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',\n 'peer-hover/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div data-slot=\"sidebar-menu-skeleton\" data-sidebar=\"menu-skeleton\" className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)} {...props}>\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction DetailDialogSidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n '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',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-sub-item\" data-sidebar=\"menu-sub-item\" className={cn('group/menu-sub-item relative', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:hidden',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarGroup,\n DetailDialogSidebarGroupAction,\n DetailDialogSidebarGroupContent,\n DetailDialogSidebarGroupLabel,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuAction,\n DetailDialogSidebarMenuBadge,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarMenuSkeleton,\n DetailDialogSidebarMenuSub,\n DetailDialogSidebarMenuSubButton,\n DetailDialogSidebarMenuSubItem,\n DetailDialogSidebarRail,\n DetailDialogSidebarSeparator,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarInput,\n SidebarInset,\n SidebarProvider,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- 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-CTUSyCdh.js";import{Input as o}from"./input-BFZuwsER.js";import{Separator as s}from"./separator-DW2PaiUK.js";import{Sheet as c,SheetContent as l,SheetDescription as u,SheetHeader as d,SheetTitle as f}from"./sheet-BumlzKcW.js";import{MenuIcon 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{createContext as y,useCallback as b,useContext as x,useEffect as S,useMemo as C,useState as w}from"react";import{useIsMobile as T}from"@customafk/react-toolkit/hooks/useMobile";const E=y(null);function D(){let e=x(E);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function O({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:a,children:o,...s}){let c=T(),[l,u]=w(!1),[d,f]=w(e),p=t??d,h=b(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[n,p]),g=b(()=>c?u(e=>!e):h(e=>!e),[c,h]);S(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[g]);let v=p?`expanded`:`collapsed`,y=C(()=>({state:v,isMobile:c,toggleSidebar:g,open:p,setOpen:h,openMobile:l,setOpenMobile:u}),[v,p,h,l,u,g]);return _(E.Provider,{value:y,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 min-h-svh w-full`,r),...s,children:o})})})}function k({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a}){let{state:o,isMobile:s,openMobile:p,setOpenMobile:h}=D();return n===`none`?_(`div`,{"data-slot":`sidebar`,className:m(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):s?_(c,{open:p,onOpenChange:h,...a,children:v(l,{"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":`18rem`},side:e,children:[v(d,{className:`sr-only`,children:[_(f,{children:`Sidebar`}),_(u,{children:`Displays the mobile sidebar.`})]}),_(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):v(`div`,{className:`group peer text-sidebar-foreground hidden md:block`,"data-state":o,"data-collapsible":o===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[_(`div`,{"data-slot":`sidebar-gap`,className:m(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`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(`absolute inset-y-0 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`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))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,r),...a,children:_(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:m(`shadow-nav flex size-full flex-col`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function A({className:t,onClick:n,...r}){let{toggleSidebar:i}=D();return v(e,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`secondary`,size:`icon`,className:m(`size-10 rounded-full [&_svg]:!size-6`,t),onClick:e=>{n?.(e),i()},...r,children:[_(p,{}),_(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function j({className:e,...t}){let{toggleSidebar:n}=D();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-0.5`,`hover:after:bg-sidebar-border`,`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`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`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-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function M({className:e,...t}){return _(`main`,{"data-slot":`sidebar-inset`,className:m(`bg-background relative flex w-full flex-1 flex-col`,`md:peer-data-[variant=inset]:m-2`,`md:peer-data-[variant=inset]:ml-0`,`md:peer-data-[variant=inset]:rounded-xl`,`md:peer-data-[variant=inset]:shadow-sm`,`md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,e),...t})}function N({className:e,...t}){return _(o,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:m(`bg-background h-8 w-full shadow-none`,e),...t})}function P({className:e,...t}){return _(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:m(`flex flex-col gap-2 p-2`,e),...t})}function F({className:e,...t}){return _(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:m(`flex flex-col gap-2 p-2`,e),...t})}function I({className:e,...t}){return _(s,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:m(`bg-sidebar-border mx-2 w-auto`,e),...t})}function L({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 R({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 z({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(`text-sidebar-foreground/70 ring-sidebar-ring 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`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function B({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 absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`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 V({className:e,...t}){return _(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:m(`w-full text-sm`,e),...t})}function H({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 U({className:e,...t}){return _(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:m(`group/menu-item relative`,e),...t})}const W=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 G({asChild:e=!1,isActive:t=!1,variant:i=`default`,size:o=`default`,tooltip:s,className:c,...l}){let u=e?g.Slot:`button`,{state:d}=D(),f=_(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":o,"data-active":t,className:m(W({variant:i,size:o}),c),...l});return s?(typeof s==`string`&&(s={children:s}),v(n,{children:[_(a,{asChild:!0,children:f}),_(r,{side:`right`,align:`center`,hidden:d!==`collapsed`,...s})]})):f}function K({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 q({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 J({className:e,showIcon:n=!1,...r}){let i=C(()=>`${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 Y({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 X({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 Z({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`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>span:last-child]:truncate`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:hidden`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,r),...i})}export{L as DetailDialogSidebarContent,F as DetailDialogSidebarFooter,R as DetailDialogSidebarGroup,B as DetailDialogSidebarGroupAction,V as DetailDialogSidebarGroupContent,z as DetailDialogSidebarGroupLabel,P as DetailDialogSidebarHeader,H as DetailDialogSidebarMenu,K as DetailDialogSidebarMenuAction,q as DetailDialogSidebarMenuBadge,G as DetailDialogSidebarMenuButton,U as DetailDialogSidebarMenuItem,J as DetailDialogSidebarMenuSkeleton,Y as DetailDialogSidebarMenuSub,Z as DetailDialogSidebarMenuSubButton,X as DetailDialogSidebarMenuSubItem,j as DetailDialogSidebarRail,I as DetailDialogSidebarSeparator,A as DetailDialogSidebarTrigger,k as Sidebar,N as SidebarInput,M as SidebarInset,O as SidebarProvider,D as useSidebar};
2
- //# sourceMappingURL=sidebar-CMWETVDr.js.map
1
+ 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-CTUSyCdh.js";import{Input as o}from"./input-BUYJ4_aj.js";import{Separator as s}from"./separator-DW2PaiUK.js";import{Sheet as c,SheetContent as l,SheetDescription as u,SheetHeader as d,SheetTitle as f}from"./sheet-BumlzKcW.js";import{MenuIcon 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{createContext as y,useCallback as b,useContext as x,useEffect as S,useMemo as C,useState as w}from"react";import{useIsMobile as T}from"@customafk/react-toolkit/hooks/useMobile";const E=y(null);function D(){let e=x(E);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function O({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:a,children:o,...s}){let c=T(),[l,u]=w(!1),[d,f]=w(e),p=t??d,h=b(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[n,p]),g=b(()=>c?u(e=>!e):h(e=>!e),[c,h]);S(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[g]);let v=p?`expanded`:`collapsed`,y=C(()=>({state:v,isMobile:c,toggleSidebar:g,open:p,setOpen:h,openMobile:l,setOpenMobile:u}),[v,p,h,l,u,g]);return _(E.Provider,{value:y,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 min-h-svh w-full`,r),...s,children:o})})})}function k({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a}){let{state:o,isMobile:s,openMobile:p,setOpenMobile:h}=D();return n===`none`?_(`div`,{"data-slot":`sidebar`,className:m(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):s?_(c,{open:p,onOpenChange:h,...a,children:v(l,{"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":`18rem`},side:e,children:[v(d,{className:`sr-only`,children:[_(f,{children:`Sidebar`}),_(u,{children:`Displays the mobile sidebar.`})]}),_(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):v(`div`,{className:`group peer text-sidebar-foreground hidden md:block`,"data-state":o,"data-collapsible":o===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[_(`div`,{"data-slot":`sidebar-gap`,className:m(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`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(`absolute inset-y-0 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`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))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,r),...a,children:_(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:m(`shadow-nav flex size-full flex-col`,`group-data-[variant=floating]:border-sidebar-border`,`group-data-[variant=floating]:rounded-lg`,`group-data-[variant=floating]:border`,`group-data-[variant=floating]:shadow-sm`),children:i})})]})}function A({className:t,onClick:n,...r}){let{toggleSidebar:i}=D();return v(e,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`secondary`,size:`icon`,className:m(`size-10 rounded-full [&_svg]:!size-6`,t),onClick:e=>{n?.(e),i()},...r,children:[_(p,{}),_(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function j({className:e,...t}){let{toggleSidebar:n}=D();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-0.5`,`hover:after:bg-sidebar-border`,`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`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize`,`[[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`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-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})}function M({className:e,...t}){return _(`main`,{"data-slot":`sidebar-inset`,className:m(`bg-background relative flex w-full flex-1 flex-col`,`md:peer-data-[variant=inset]:m-2`,`md:peer-data-[variant=inset]:ml-0`,`md:peer-data-[variant=inset]:rounded-xl`,`md:peer-data-[variant=inset]:shadow-sm`,`md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,e),...t})}function N({className:e,...t}){return _(o,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:m(`bg-background h-8 w-full shadow-none`,e),...t})}function P({className:e,...t}){return _(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:m(`flex flex-col gap-2 p-2`,e),...t})}function F({className:e,...t}){return _(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:m(`flex flex-col gap-2 p-2`,e),...t})}function I({className:e,...t}){return _(s,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:m(`bg-sidebar-border mx-2 w-auto`,e),...t})}function L({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 R({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 z({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(`text-sidebar-foreground/70 ring-sidebar-ring 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`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8`,`group-data-[collapsible=icon]:opacity-0`,e),...n})}function B({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 absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,`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 V({className:e,...t}){return _(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:m(`w-full text-sm`,e),...t})}function H({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 U({className:e,...t}){return _(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:m(`group/menu-item relative`,e),...t})}const W=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 G({asChild:e=!1,isActive:t=!1,variant:i=`default`,size:o=`default`,tooltip:s,className:c,...l}){let u=e?g.Slot:`button`,{state:d}=D(),f=_(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":o,"data-active":t,className:m(W({variant:i,size:o}),c),...l});return s?(typeof s==`string`&&(s={children:s}),v(n,{children:[_(a,{asChild:!0,children:f}),_(r,{side:`right`,align:`center`,hidden:d!==`collapsed`,...s})]})):f}function K({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 q({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 J({className:e,showIcon:n=!1,...r}){let i=C(()=>`${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 Y({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 X({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 Z({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`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`focus-visible:ring-2`,`disabled:pointer-events-none`,`disabled:opacity-50`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`[&>span:last-child]:truncate`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent`,`data-[active=true]:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:hidden`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,r),...i})}export{L as DetailDialogSidebarContent,F as DetailDialogSidebarFooter,R as DetailDialogSidebarGroup,B as DetailDialogSidebarGroupAction,V as DetailDialogSidebarGroupContent,z as DetailDialogSidebarGroupLabel,P as DetailDialogSidebarHeader,H as DetailDialogSidebarMenu,K as DetailDialogSidebarMenuAction,q as DetailDialogSidebarMenuBadge,G as DetailDialogSidebarMenuButton,U as DetailDialogSidebarMenuItem,J as DetailDialogSidebarMenuSkeleton,Y as DetailDialogSidebarMenuSub,Z as DetailDialogSidebarMenuSubButton,X as DetailDialogSidebarMenuSubItem,j as DetailDialogSidebarRail,I as DetailDialogSidebarSeparator,A as DetailDialogSidebarTrigger,k as Sidebar,N as SidebarInput,M as SidebarInset,O as SidebarProvider,D as useSidebar};
2
+ //# sourceMappingURL=sidebar-CrStgrmq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar-CMWETVDr.js","names":["open","Separator","SlotPrimitive","Tooltip"],"sources":["../packages/components/dialogs/detail-dialog/component/sidebar.tsx"],"sourcesContent":["'use client'\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport { useIsMobile } from '@customafk/react-toolkit/hooks/useMobile'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { MenuIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Separator } from '@/components/ui/separator'\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@/components/ui/sheet'\nimport { Skeleton } from '@/components/ui/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot as SlotPrimitive } from 'radix-ui'\n\nconst SIDEBAR_COOKIE_NAME = 'detai_dialog_sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'p'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper', 'has-data-[variant=inset]:bg-sidebar', 'flex min-h-svh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const { state, isMobile, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div data-slot=\"sidebar\" className={cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', className)} {...props}>\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'absolute inset-y-0 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'shadow-nav flex size-full flex-col',\n 'group-data-[variant=floating]:border-sidebar-border',\n 'group-data-[variant=floating]:rounded-lg',\n 'group-data-[variant=floating]:border',\n 'group-data-[variant=floating]:shadow-sm',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction DetailDialogSidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n color=\"secondary\"\n size=\"icon\"\n className={cn('size-10 rounded-full [&_svg]:!size-6', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <MenuIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction DetailDialogSidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex',\n 'after:absolute',\n 'after:inset-y-0',\n 'after:left-1/2 after:w-0.5',\n 'hover:after:bg-sidebar-border',\n 'group-data-[side=left]:-right-4',\n 'group-data-[side=right]:left-0',\n 'in-data-[side=left]:cursor-w-resize',\n 'in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize',\n '[[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n 'group-data-[collapsible=offcanvas]:translate-x-0',\n 'group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2',\n 'md:peer-data-[variant=inset]:ml-0',\n 'md:peer-data-[variant=inset]:rounded-xl',\n 'md:peer-data-[variant=inset]:shadow-sm',\n 'md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return <Input data-slot=\"sidebar-input\" data-sidebar=\"input\" className={cn('bg-background h-8 w-full shadow-none', className)} {...props} />\n}\n\nfunction DetailDialogSidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-header\" data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-footer\" data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return <Separator data-slot=\"sidebar-separator\" data-sidebar=\"separator\" className={cn('bg-sidebar-border mx-2 w-auto', className)} {...props} />\n}\n\nfunction DetailDialogSidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto', 'group-data-[collapsible=icon]:overflow-hidden', className)}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group\" data-sidebar=\"group\" className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarGroupLabel({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8',\n 'group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupAction({ className, asChild = false, ...props }: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute',\n 'after:-inset-2',\n 'md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group-content\" data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"sidebar-menu\" data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-item\" data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n}\n\nconst sidebarMenuButtonVariants = cva(\n [\n 'peer/menu-button',\n 'cursor-pointer',\n 'flex w-full items-center gap-2',\n 'overflow-hidden rounded-md p-2 outline-hidden',\n 'text-left truncate',\n 'transition-[color,width,height,padding]',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'group-has-data-[sidebar=menu-action]/menu-item:pr-8',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n 'data-[active=true]:bg-sidebar-primary-muted',\n 'data-[active=true]:font-medium',\n 'data-[active=true]:text-sidebar-primary',\n 'data-[state=open]:hover:bg-sidebar-accent',\n 'data-[state=open]:hover:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:size-8!',\n 'group-data-[collapsible=icon]:p-2!',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>span:last-child]:truncate',\n ],\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80',\n outline:\n '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))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction DetailDialogSidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n const { state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed'} {...tooltip} />\n </Tooltip>\n )\n}\n\nfunction DetailDialogSidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n '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',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover && 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n showOnHover && '$group-focus-within/menu-item:opacity-100',\n showOnHover && 'group-hover/menu-item:opacity-100',\n showOnHover && 'data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n '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',\n 'peer-hover/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div data-slot=\"sidebar-menu-skeleton\" data-sidebar=\"menu-skeleton\" className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)} {...props}>\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction DetailDialogSidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n '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',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-sub-item\" data-sidebar=\"menu-sub-item\" className={cn('group/menu-sub-item relative', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:hidden',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarGroup,\n DetailDialogSidebarGroupAction,\n DetailDialogSidebarGroupContent,\n DetailDialogSidebarGroupLabel,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuAction,\n DetailDialogSidebarMenuBadge,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarMenuSkeleton,\n DetailDialogSidebarMenuSub,\n DetailDialogSidebarMenuSubButton,\n DetailDialogSidebarMenuSubItem,\n DetailDialogSidebarRail,\n DetailDialogSidebarSeparator,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarInput,\n SidebarInset,\n SidebarProvider,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar-CrStgrmq.js","names":["open","Separator","SlotPrimitive","Tooltip"],"sources":["../packages/components/dialogs/detail-dialog/component/sidebar.tsx"],"sourcesContent":["'use client'\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'\nimport { useIsMobile } from '@customafk/react-toolkit/hooks/useMobile'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { MenuIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Separator } from '@/components/ui/separator'\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@/components/ui/sheet'\nimport { Skeleton } from '@/components/ui/skeleton'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Slot as SlotPrimitive } from 'radix-ui'\n\nconst SIDEBAR_COOKIE_NAME = 'detai_dialog_sidebar_state'\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = '16rem'\nconst SIDEBAR_WIDTH_MOBILE = '18rem'\nconst SIDEBAR_WIDTH_ICON = '3rem'\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'p'\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed'\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = createContext<SidebarContextProps | null>(null)\n\nfunction useSidebar() {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.')\n }\n\n return context\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open],\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed'\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n isMobile,\n\n toggleSidebar,\n\n open,\n setOpen,\n\n openMobile,\n setOpenMobile,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn('group/sidebar-wrapper', 'has-data-[variant=inset]:bg-sidebar', 'flex min-h-svh w-full', className)}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right'\n variant?: 'sidebar' | 'floating' | 'inset'\n collapsible?: 'offcanvas' | 'icon' | 'none'\n}) {\n const { state, isMobile, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === 'none') {\n return (\n <div data-slot=\"sidebar\" className={cn('bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col', className)} {...props}>\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'absolute inset-y-0 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className={cn(\n 'shadow-nav flex size-full flex-col',\n 'group-data-[variant=floating]:border-sidebar-border',\n 'group-data-[variant=floating]:rounded-lg',\n 'group-data-[variant=floating]:border',\n 'group-data-[variant=floating]:shadow-sm',\n )}\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction DetailDialogSidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n color=\"secondary\"\n size=\"icon\"\n className={cn('size-10 rounded-full [&_svg]:!size-6', className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <MenuIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction DetailDialogSidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex',\n 'after:absolute',\n 'after:inset-y-0',\n 'after:left-1/2 after:w-0.5',\n 'hover:after:bg-sidebar-border',\n 'group-data-[side=left]:-right-4',\n 'group-data-[side=right]:left-0',\n 'in-data-[side=left]:cursor-w-resize',\n 'in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize',\n '[[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar',\n 'group-data-[collapsible=offcanvas]:translate-x-0',\n 'group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2',\n 'md:peer-data-[variant=inset]:ml-0',\n 'md:peer-data-[variant=inset]:rounded-xl',\n 'md:peer-data-[variant=inset]:shadow-sm',\n 'md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return <Input data-slot=\"sidebar-input\" data-sidebar=\"input\" className={cn('bg-background h-8 w-full shadow-none', className)} {...props} />\n}\n\nfunction DetailDialogSidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-header\" data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-footer\" data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return <Separator data-slot=\"sidebar-separator\" data-sidebar=\"separator\" className={cn('bg-sidebar-border mx-2 w-auto', className)} {...props} />\n}\n\nfunction DetailDialogSidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn('flex min-h-0 flex-1 flex-col gap-2 overflow-auto', 'group-data-[collapsible=icon]:overflow-hidden', className)}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group\" data-sidebar=\"group\" className={cn('relative flex w-full min-w-0 flex-col p-2', className)} {...props} />\n}\n\nfunction DetailDialogSidebarGroupLabel({ className, asChild = false, ...props }: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'div'\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8',\n 'group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupAction({ className, asChild = false, ...props }: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform',\n 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute',\n 'after:-inset-2',\n 'md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"sidebar-group-content\" data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return <ul data-slot=\"sidebar-menu\" data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-item\" data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n}\n\nconst sidebarMenuButtonVariants = cva(\n [\n 'peer/menu-button',\n 'cursor-pointer',\n 'flex w-full items-center gap-2',\n 'overflow-hidden rounded-md p-2 outline-hidden',\n 'text-left truncate',\n 'transition-[color,width,height,padding]',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'group-has-data-[sidebar=menu-action]/menu-item:pr-8',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n 'data-[active=true]:bg-sidebar-primary-muted',\n 'data-[active=true]:font-medium',\n 'data-[active=true]:text-sidebar-primary',\n 'data-[state=open]:hover:bg-sidebar-accent',\n 'data-[state=open]:hover:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:size-8!',\n 'group-data-[collapsible=icon]:p-2!',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>span:last-child]:truncate',\n ],\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80',\n outline:\n '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))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction DetailDialogSidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n const { state } = useSidebar()\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed'} {...tooltip} />\n </Tooltip>\n )\n}\n\nfunction DetailDialogSidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'button'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n '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',\n 'focus-visible:ring-2',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover && 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n showOnHover && '$group-focus-within/menu-item:opacity-100',\n showOnHover && 'group-hover/menu-item:opacity-100',\n showOnHover && 'data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n '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',\n 'peer-hover/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n }, [])\n\n return (\n <div data-slot=\"sidebar-menu-skeleton\" data-sidebar=\"menu-skeleton\" className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)} {...props}>\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nfunction DetailDialogSidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n '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',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DetailDialogSidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return <li data-slot=\"sidebar-menu-sub-item\" data-sidebar=\"menu-sub-item\" className={cn('group/menu-sub-item relative', className)} {...props} />\n}\n\nfunction DetailDialogSidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean\n size?: 'sm' | 'md'\n isActive?: boolean\n}) {\n const Comp = asChild ? SlotPrimitive.Slot : 'a'\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring',\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden',\n 'hover:bg-sidebar-accent',\n 'hover:text-sidebar-accent-foreground',\n 'active:bg-sidebar-accent',\n 'active:text-sidebar-accent-foreground',\n 'focus-visible:ring-2',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'aria-disabled:pointer-events-none',\n 'aria-disabled:opacity-50',\n '[&>span:last-child]:truncate',\n '[&>svg]:size-4',\n '[&>svg]:shrink-0',\n '[&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent',\n 'data-[active=true]:text-sidebar-accent-foreground',\n 'group-data-[collapsible=icon]:hidden',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DetailDialogSidebarContent,\n DetailDialogSidebarFooter,\n DetailDialogSidebarGroup,\n DetailDialogSidebarGroupAction,\n DetailDialogSidebarGroupContent,\n DetailDialogSidebarGroupLabel,\n DetailDialogSidebarHeader,\n DetailDialogSidebarMenu,\n DetailDialogSidebarMenuAction,\n DetailDialogSidebarMenuBadge,\n DetailDialogSidebarMenuButton,\n DetailDialogSidebarMenuItem,\n DetailDialogSidebarMenuSkeleton,\n DetailDialogSidebarMenuSub,\n DetailDialogSidebarMenuSubButton,\n DetailDialogSidebarMenuSubItem,\n DetailDialogSidebarRail,\n DetailDialogSidebarSeparator,\n DetailDialogSidebarTrigger,\n Sidebar,\n SidebarInput,\n SidebarInset,\n SidebarProvider,\n // eslint-disable-next-line react-refresh/only-export-components\n useSidebar,\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
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`));function i({className:e,...i}){return(0,r.jsx)(n.Switch.Root,{"data-slot":`switch`,className:(0,t.cn)(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...i,children:(0,r.jsx)(n.Switch.Thumb,{"data-slot":`switch-thumb`,className:(0,t.cn)(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}Object.defineProperty(exports,`Switch`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=switch-BPSKvrTw.cjs.map
2
+ //# sourceMappingURL=switch-BnHSwQ5T.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-BPSKvrTw.cjs","names":["SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Switch as SwitchPrimitive } from 'radix-ui'\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"mappings":"0KAKA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA"}
1
+ {"version":3,"file":"switch-BnHSwQ5T.cjs","names":["SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Switch as SwitchPrimitive } from 'radix-ui'\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"mappings":"0KAKA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA"}
@@ -1,2 +1,2 @@
1
1
  import{cn as e}from"@customafk/react-toolkit/utils";import{Switch as t}from"radix-ui";import{jsx as n}from"react/jsx-runtime";function r({className:r,...i}){return n(t.Root,{"data-slot":`switch`,className:e(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,r),...i,children:n(t.Thumb,{"data-slot":`switch-thumb`,className:e(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}export{r as Switch};
2
- //# sourceMappingURL=switch-Crju8DJO.js.map
2
+ //# sourceMappingURL=switch-iwm2-R_e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-Crju8DJO.js","names":["Switch","SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Switch as SwitchPrimitive } from 'radix-ui'\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"mappings":"8HAKA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAACC,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EACT,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,WAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,gBACA,4EACA,oDACA"}
1
+ {"version":3,"file":"switch-iwm2-R_e.js","names":["Switch","SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { Switch as SwitchPrimitive } from 'radix-ui'\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0',\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n"],"mappings":"8HAKA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAACC,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EACT,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,WAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,gBACA,4EACA,oDACA"}
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../button-119IIVCy.cjs`),n=require(`../flex-DMgD86BT.cjs`);require(`../paragraph-CI28eVP0.cjs`),require(`../input-ERPHY3v4.cjs`);const r=require(`../select-oxr4KoHx.cjs`),i=require(`../dropdown-menu-BtNJk8EZ.cjs`);require(`../scroll-area-qPdEy4lg.cjs`);const a=require(`../table-CSvLRXlk.cjs`),o=require(`../add-new-C2dDiCV3.cjs`),s=require(`../refresh-BVSXOk3A.cjs`),c=require(`../search-input-DWLfcXEU.cjs`),l=e.__toESM(require(`lucide-react`)),u=e.__toESM(require(`@customafk/react-toolkit/utils`)),d=e.__toESM(require(`react/jsx-runtime`)),f=e.__toESM(require(`react`)),p=e.__toESM(require(`@tanstack/react-table`)),m=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},h=({column:e})=>{let t=e.getIsSorted(),n={asc:(0,d.jsx)(l.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,d.jsx)(l.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},g=({column:e})=>{let n=e.columnDef.header;return e.getCanPin()?e.getIsPinned()?(0,d.jsx)(t.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:()=>e.pin(!1),children:(0,d.jsx)(l.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,d.jsxs)(i.DropdownMenu,{children:[(0,d.jsx)(i.DropdownMenuTrigger,{asChild:!0,children:(0,d.jsx)(t.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${n} column`,title:`Pin options for ${n} column`,children:(0,d.jsx)(l.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,d.jsxs)(i.DropdownMenuContent,{align:`end`,children:[(0,d.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`left`),children:[(0,d.jsx)(l.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,d.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`right`),children:[(0,d.jsx)(l.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},_=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&(0,d.jsxs)(`div`,{className:(0,u.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[(0,d.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,d.jsx)(h,{column:t})]}),!e.isPlaceholder&&(0,d.jsx)(g,{column:t})]})},v=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return(0,d.jsxs)(a.Table,{className:(0,u.cn)(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[(0,d.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,d.jsx)(a.TableRow,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,d.jsx)(a.TableHead,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,u.cn)(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...m(e.column)},children:(0,d.jsx)(_,{header:e})},e.id)})},e.id))}),(0,d.jsx)(a.TableBody,{className:(0,u.cn)(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?(0,d.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,d.jsx)(a.TableCell,{children:`loading...`})}):(0,d.jsx)(d.Fragment,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>(0,d.jsx)(a.TableRow,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,d.jsx)(a.TableCell,{style:{...m(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,u.cn)(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):(0,d.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,d.jsx)(a.TableCell,{children:(0,d.jsxs)(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[(0,d.jsx)(l.PackagePlusIcon,{size:48,strokeWidth:2}),(0,d.jsx)(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})},y=({onAdd:e,onRefresh:t})=>(0,d.jsxs)(n.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,d.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,d.jsx)(c.SearchInput,{placeholder:`Search...`})}),(0,d.jsxs)(n.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,d.jsx)(o.AddNewBtn,{onClick:e}),(0,d.jsx)(s.RefreshBtn,{onClick:t})]})]});function b({filteredSelectedRowsLength:e,filteredRowsLength:n,pageSize:i,setPageSize:a,pageIndex:o=0,setPageIndex:s,previousPage:c,nextPage:u,canPreviousPage:f,canNextPage:p,pageCount:m=1}){"use no memo";return(0,d.jsxs)(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[(0,d.jsxs)(`div`,{className:`text-text-positive flex-1 text-sm`,children:[e,` of `,n,` row(s) selected.`]}),(0,d.jsxs)(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[(0,d.jsx)(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),(0,d.jsxs)(r.Select,{value:`${i}`,onValueChange:e=>{a?.(Number(e))},children:[(0,d.jsx)(r.SelectTrigger,{className:`h-8 w-18`,children:(0,d.jsx)(r.SelectValue,{placeholder:i})}),(0,d.jsx)(r.SelectContent,{side:`top`,children:[10,20,30,40,50].map(e=>(0,d.jsx)(r.SelectItem,{value:`${e}`,children:e},e))})]}),(0,d.jsxs)(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,o+1,` of `,m]})]}),(0,d.jsxs)(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:()=>s?.(0),disabled:!f,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to first page`}),(0,d.jsx)(l.ChevronsLeft,{})]}),(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:c,disabled:!f,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to previous page`}),(0,d.jsx)(l.ChevronLeft,{})]}),(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:u,disabled:!p,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to next page`}),(0,d.jsx)(l.ChevronRight,{})]}),(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:()=>{s?.(m-1)},disabled:!p,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to last page`}),(0,d.jsx)(l.ChevronsRight,{})]})]})]})]})}function x({data:e,totalCount:t,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[u,m]=(0,f.useState)({}),[h,g]=(0,f.useState)([]),[_,x]=(0,f.useState)([]),[S,C]=(0,f.useState)({}),w=(0,f.useMemo)(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:i,rowCount:t,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getPaginationRowModel:(0,p.getPaginationRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:u,sorting:h,columnVisibility:S,columnFilters:_,...a?{pagination:a}:{}},onRowSelectionChange:m,onSortingChange:g,onColumnVisibilityChange:C,onColumnFiltersChange:x,...l?{onPaginationChange:l}:{}});return(0,d.jsxs)(n.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,d.jsx)(y,{onAdd:o,onRefresh:s}),(0,d.jsxs)(n.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[(0,d.jsx)(v,{table:T,isLoading:r,onClickRow:c}),(0,d.jsx)(b,{pageSize:T.getState().pagination.pageSize,setPageSize:T.setPageSize,filteredSelectedRowsLength:T.getFilteredSelectedRowModel().rows.length,filteredRowsLength:T.getFilteredRowModel().rows.length,pageIndex:T.getState().pagination.pageIndex,setPageIndex:T.setPageIndex,previousPage:T.previousPage,nextPage:T.nextPage,canPreviousPage:T.getCanPreviousPage(),canNextPage:T.getCanNextPage(),pageCount:T.getPageCount()})]})]})}exports.Table=x;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../button-119IIVCy.cjs`),n=require(`../flex-DMgD86BT.cjs`);require(`../paragraph-CI28eVP0.cjs`),require(`../input-DgtTVBtN.cjs`);const r=require(`../select-DAE3Xg7g.cjs`),i=require(`../dropdown-menu-SNcBwTOA.cjs`);require(`../scroll-area-Dgjr1n1T.cjs`);const a=require(`../table-CuhHhpgi.cjs`),o=require(`../add-new-D3b8hc2C.cjs`),s=require(`../refresh-CQyFVZx9.cjs`),c=require(`../search-input-BkhVqB3R.cjs`),l=e.__toESM(require(`lucide-react`)),u=e.__toESM(require(`@customafk/react-toolkit/utils`)),d=e.__toESM(require(`react/jsx-runtime`)),f=e.__toESM(require(`react`)),p=e.__toESM(require(`@tanstack/react-table`)),m=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},h=({column:e})=>{let t=e.getIsSorted(),n={asc:(0,d.jsx)(l.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,d.jsx)(l.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},g=({column:e})=>{let n=e.columnDef.header;return e.getCanPin()?e.getIsPinned()?(0,d.jsx)(t.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:()=>e.pin(!1),children:(0,d.jsx)(l.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,d.jsxs)(i.DropdownMenu,{children:[(0,d.jsx)(i.DropdownMenuTrigger,{asChild:!0,children:(0,d.jsx)(t.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${n} column`,title:`Pin options for ${n} column`,children:(0,d.jsx)(l.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,d.jsxs)(i.DropdownMenuContent,{align:`end`,children:[(0,d.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`left`),children:[(0,d.jsx)(l.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,d.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`right`),children:[(0,d.jsx)(l.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},_=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&(0,d.jsxs)(`div`,{className:(0,u.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[(0,d.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,d.jsx)(h,{column:t})]}),!e.isPlaceholder&&(0,d.jsx)(g,{column:t})]})},v=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return(0,d.jsxs)(a.Table,{className:(0,u.cn)(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[(0,d.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,d.jsx)(a.TableRow,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,d.jsx)(a.TableHead,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,u.cn)(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...m(e.column)},children:(0,d.jsx)(_,{header:e})},e.id)})},e.id))}),(0,d.jsx)(a.TableBody,{className:(0,u.cn)(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?(0,d.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,d.jsx)(a.TableCell,{children:`loading...`})}):(0,d.jsx)(d.Fragment,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>(0,d.jsx)(a.TableRow,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,d.jsx)(a.TableCell,{style:{...m(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,u.cn)(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):(0,d.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,d.jsx)(a.TableCell,{children:(0,d.jsxs)(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[(0,d.jsx)(l.PackagePlusIcon,{size:48,strokeWidth:2}),(0,d.jsx)(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})},y=({onAdd:e,onRefresh:t})=>(0,d.jsxs)(n.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,d.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,d.jsx)(c.SearchInput,{placeholder:`Search...`})}),(0,d.jsxs)(n.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,d.jsx)(o.AddNewBtn,{onClick:e}),(0,d.jsx)(s.RefreshBtn,{onClick:t})]})]});function b({filteredSelectedRowsLength:e,filteredRowsLength:n,pageSize:i,setPageSize:a,pageIndex:o=0,setPageIndex:s,previousPage:c,nextPage:u,canPreviousPage:f,canNextPage:p,pageCount:m=1}){"use no memo";return(0,d.jsxs)(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[(0,d.jsxs)(`div`,{className:`text-text-positive flex-1 text-sm`,children:[e,` of `,n,` row(s) selected.`]}),(0,d.jsxs)(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[(0,d.jsx)(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),(0,d.jsxs)(r.Select,{value:`${i}`,onValueChange:e=>{a?.(Number(e))},children:[(0,d.jsx)(r.SelectTrigger,{className:`h-8 w-18`,children:(0,d.jsx)(r.SelectValue,{placeholder:i})}),(0,d.jsx)(r.SelectContent,{side:`top`,children:[10,20,30,40,50].map(e=>(0,d.jsx)(r.SelectItem,{value:`${e}`,children:e},e))})]}),(0,d.jsxs)(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,o+1,` of `,m]})]}),(0,d.jsxs)(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:()=>s?.(0),disabled:!f,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to first page`}),(0,d.jsx)(l.ChevronsLeft,{})]}),(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:c,disabled:!f,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to previous page`}),(0,d.jsx)(l.ChevronLeft,{})]}),(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:u,disabled:!p,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to next page`}),(0,d.jsx)(l.ChevronRight,{})]}),(0,d.jsxs)(t.Button,{variant:`outline`,color:`muted`,onClick:()=>{s?.(m-1)},disabled:!p,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to last page`}),(0,d.jsx)(l.ChevronsRight,{})]})]})]})]})}function x({data:e,totalCount:t,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[u,m]=(0,f.useState)({}),[h,g]=(0,f.useState)([]),[_,x]=(0,f.useState)([]),[S,C]=(0,f.useState)({}),w=(0,f.useMemo)(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:i,rowCount:t,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getPaginationRowModel:(0,p.getPaginationRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:u,sorting:h,columnVisibility:S,columnFilters:_,...a?{pagination:a}:{}},onRowSelectionChange:m,onSortingChange:g,onColumnVisibilityChange:C,onColumnFiltersChange:x,...l?{onPaginationChange:l}:{}});return(0,d.jsxs)(n.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,d.jsx)(y,{onAdd:o,onRefresh:s}),(0,d.jsxs)(n.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[(0,d.jsx)(v,{table:T,isLoading:r,onClickRow:c}),(0,d.jsx)(b,{pageSize:T.getState().pagination.pageSize,setPageSize:T.setPageSize,filteredSelectedRowsLength:T.getFilteredSelectedRowModel().rows.length,filteredRowsLength:T.getFilteredRowModel().rows.length,pageIndex:T.getState().pagination.pageIndex,setPageIndex:T.setPageIndex,previousPage:T.previousPage,nextPage:T.nextPage,canPreviousPage:T.getCanPreviousPage(),canNextPage:T.getCanNextPage(),pageCount:T.getPageCount()})]})]})}exports.Table=x;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime11 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime39 from "react/jsx-runtime";
2
2
  import { ColumnDef, PaginationState } from "@tanstack/react-table";
3
3
 
4
4
  //#region packages/components/table/index.d.ts
@@ -23,7 +23,7 @@ declare function Table<T extends Record<string, unknown>>({
23
23
  onRefresh,
24
24
  onClickRow,
25
25
  onPaginationChange
26
- }: Props<T>): react_jsx_runtime11.JSX.Element;
26
+ }: Props<T>): react_jsx_runtime39.JSX.Element;
27
27
  //#endregion
28
28
  export { Table };
29
29
  //# sourceMappingURL=index.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime38 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime35 from "react/jsx-runtime";
2
2
  import { ColumnDef, PaginationState } from "@tanstack/react-table";
3
3
 
4
4
  //#region packages/components/table/index.d.ts
@@ -23,7 +23,7 @@ declare function Table<T extends Record<string, unknown>>({
23
23
  onRefresh,
24
24
  onClickRow,
25
25
  onPaginationChange
26
- }: Props<T>): react_jsx_runtime38.JSX.Element;
26
+ }: Props<T>): react_jsx_runtime35.JSX.Element;
27
27
  //#endregion
28
28
  export { Table };
29
29
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- import{Button as e}from"../button-CvQQTSka.js";import{Flex as t}from"../flex-BZHWRUkz.js";import"../paragraph-BwSskqDY.js";import"../input-BFZuwsER.js";import{Select as n,SelectContent as r,SelectItem as i,SelectTrigger as a,SelectValue as o}from"../select-CijI0HX0.js";import{DropdownMenu as s,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuTrigger as u}from"../dropdown-menu-Cn96vqMy.js";import"../scroll-area-C4Mg89Qh.js";import{Table as d,TableBody as f,TableCell as p,TableHead as m,TableHeader as h,TableRow as g}from"../table-DCmuhHSH.js";import{AddNewBtn as _}from"../add-new-Dw0uZWxo.js";import{RefreshBtn as v}from"../refresh-CHzDlf3i.js";import{SearchInput as y}from"../search-input-B_L6kaz-.js";import{ArrowLeftToLineIcon as b,ArrowRightToLineIcon as x,ChevronDown as S,ChevronLeft as C,ChevronRight as w,ChevronUp as T,ChevronsLeft as E,ChevronsRight as D,EllipsisIcon as O,PackagePlusIcon as k,PinOffIcon as A}from"lucide-react";import{cn as j}from"@customafk/react-toolkit/utils";import{Fragment as M,jsx as N,jsxs as P}from"react/jsx-runtime";import{useMemo as F,useState as I}from"react";import{flexRender as L,getCoreRowModel as R,getFacetedRowModel as z,getFacetedUniqueValues as B,getFilteredRowModel as V,getPaginationRowModel as H,getSortedRowModel as U,useReactTable as W}from"@tanstack/react-table";const G=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},K=({column:e})=>{let t=e.getIsSorted(),n={asc:N(T,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:N(S,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},q=({column:t})=>{let n=t.columnDef.header;return t.getCanPin()?t.getIsPinned()?N(e,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:()=>t.pin(!1),children:N(A,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):P(s,{children:[N(u,{asChild:!0,children:N(e,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${n} column`,title:`Pin options for ${n} column`,children:N(O,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),P(c,{align:`end`,children:[P(l,{onClick:()=>t.pin(`left`),children:[N(b,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),P(l,{onClick:()=>t.pin(`right`),children:[N(x,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},J=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return P(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&P(`div`,{className:j(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[N(`span`,{className:`truncate`,children:L(t.columnDef.header,e.getContext())}),N(K,{column:t})]}),!e.isPlaceholder&&N(q,{column:t})]})},Y=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return P(d,{className:j(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[N(h,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>N(g,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return N(m,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:j(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...G(e.column)},children:N(J,{header:e})},e.id)})},e.id))}),N(f,{className:j(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?N(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:N(p,{children:`loading...`})}):N(M,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>N(g,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return N(p,{style:{...G(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:j(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:L(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):N(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:N(p,{children:P(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[N(k,{size:48,strokeWidth:2}),N(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})},X=({onAdd:e,onRefresh:n})=>P(t,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[N(`div`,{className:`max-sm:flex-1`,children:N(y,{placeholder:`Search...`})}),P(t,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&N(_,{onClick:e}),N(v,{onClick:n})]})]});function Z({filteredSelectedRowsLength:t,filteredRowsLength:s,pageSize:c,setPageSize:l,pageIndex:u=0,setPageIndex:d,previousPage:f,nextPage:p,canPreviousPage:m,canNextPage:h,pageCount:g=1}){"use no memo";return P(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[P(`div`,{className:`text-text-positive flex-1 text-sm`,children:[t,` of `,s,` row(s) selected.`]}),P(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[P(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[N(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),P(n,{value:`${c}`,onValueChange:e=>{l?.(Number(e))},children:[N(a,{className:`h-8 w-18`,children:N(o,{placeholder:c})}),N(r,{side:`top`,children:[10,20,30,40,50].map(e=>N(i,{value:`${e}`,children:e},e))})]}),P(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,u+1,` of `,g]})]}),P(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[P(e,{variant:`outline`,color:`muted`,onClick:()=>d?.(0),disabled:!m,children:[N(`span`,{className:`sr-only`,children:`Go to first page`}),N(E,{})]}),P(e,{variant:`outline`,color:`muted`,onClick:f,disabled:!m,children:[N(`span`,{className:`sr-only`,children:`Go to previous page`}),N(C,{})]}),P(e,{variant:`outline`,color:`muted`,onClick:p,disabled:!h,children:[N(`span`,{className:`sr-only`,children:`Go to next page`}),N(w,{})]}),P(e,{variant:`outline`,color:`muted`,onClick:()=>{d?.(g-1)},disabled:!h,children:[N(`span`,{className:`sr-only`,children:`Go to last page`}),N(D,{})]})]})]})]})}function Q({data:e,totalCount:n,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[u,d]=I({}),[f,p]=I([]),[m,h]=I([]),[g,_]=I({}),v=F(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),y=W({initialState:v,data:e,columns:i,rowCount:n,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:R(),getPaginationRowModel:H(),getSortedRowModel:U(),getFilteredRowModel:V(),getFacetedRowModel:z(),getFacetedUniqueValues:B(),getRowId:e=>e.id||e.uuid,state:{rowSelection:u,sorting:f,columnVisibility:g,columnFilters:m,...a?{pagination:a}:{}},onRowSelectionChange:d,onSortingChange:p,onColumnVisibilityChange:_,onColumnFiltersChange:h,...l?{onPaginationChange:l}:{}});return P(t,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[N(X,{onAdd:o,onRefresh:s}),P(t,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[N(Y,{table:y,isLoading:r,onClickRow:c}),N(Z,{pageSize:y.getState().pagination.pageSize,setPageSize:y.setPageSize,filteredSelectedRowsLength:y.getFilteredSelectedRowModel().rows.length,filteredRowsLength:y.getFilteredRowModel().rows.length,pageIndex:y.getState().pagination.pageIndex,setPageIndex:y.setPageIndex,previousPage:y.previousPage,nextPage:y.nextPage,canPreviousPage:y.getCanPreviousPage(),canNextPage:y.getCanNextPage(),pageCount:y.getPageCount()})]})]})}export{Q as Table};
1
+ import{Button as e}from"../button-CvQQTSka.js";import{Flex as t}from"../flex-BZHWRUkz.js";import"../paragraph-BwSskqDY.js";import"../input-BUYJ4_aj.js";import{Select as n,SelectContent as r,SelectItem as i,SelectTrigger as a,SelectValue as o}from"../select-Cmq5a3Wg.js";import{DropdownMenu as s,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuTrigger as u}from"../dropdown-menu-Bj39Rmxd.js";import"../scroll-area-CqevC_nb.js";import{Table as d,TableBody as f,TableCell as p,TableHead as m,TableHeader as h,TableRow as g}from"../table-oROsZcz4.js";import{AddNewBtn as _}from"../add-new-BFDOXej7.js";import{RefreshBtn as v}from"../refresh-CTcKzu_a.js";import{SearchInput as y}from"../search-input-DnYrPBeT.js";import{ArrowLeftToLineIcon as b,ArrowRightToLineIcon as x,ChevronDown as S,ChevronLeft as C,ChevronRight as w,ChevronUp as T,ChevronsLeft as E,ChevronsRight as D,EllipsisIcon as O,PackagePlusIcon as k,PinOffIcon as A}from"lucide-react";import{cn as j}from"@customafk/react-toolkit/utils";import{Fragment as M,jsx as N,jsxs as P}from"react/jsx-runtime";import{useMemo as F,useState as I}from"react";import{flexRender as L,getCoreRowModel as R,getFacetedRowModel as z,getFacetedUniqueValues as B,getFilteredRowModel as V,getPaginationRowModel as H,getSortedRowModel as U,useReactTable as W}from"@tanstack/react-table";const G=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},K=({column:e})=>{let t=e.getIsSorted(),n={asc:N(T,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:N(S,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},q=({column:t})=>{let n=t.columnDef.header;return t.getCanPin()?t.getIsPinned()?N(e,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:()=>t.pin(!1),children:N(A,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):P(s,{children:[N(u,{asChild:!0,children:N(e,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${n} column`,title:`Pin options for ${n} column`,children:N(O,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),P(c,{align:`end`,children:[P(l,{onClick:()=>t.pin(`left`),children:[N(b,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),P(l,{onClick:()=>t.pin(`right`),children:[N(x,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},J=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return P(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&P(`div`,{className:j(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[N(`span`,{className:`truncate`,children:L(t.columnDef.header,e.getContext())}),N(K,{column:t})]}),!e.isPlaceholder&&N(q,{column:t})]})},Y=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return P(d,{className:j(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[N(h,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>N(g,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return N(m,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:j(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...G(e.column)},children:N(J,{header:e})},e.id)})},e.id))}),N(f,{className:j(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?N(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:N(p,{children:`loading...`})}):N(M,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>N(g,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return N(p,{style:{...G(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:j(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:L(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):N(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:N(p,{children:P(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[N(k,{size:48,strokeWidth:2}),N(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})},X=({onAdd:e,onRefresh:n})=>P(t,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[N(`div`,{className:`max-sm:flex-1`,children:N(y,{placeholder:`Search...`})}),P(t,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&N(_,{onClick:e}),N(v,{onClick:n})]})]});function Z({filteredSelectedRowsLength:t,filteredRowsLength:s,pageSize:c,setPageSize:l,pageIndex:u=0,setPageIndex:d,previousPage:f,nextPage:p,canPreviousPage:m,canNextPage:h,pageCount:g=1}){"use no memo";return P(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[P(`div`,{className:`text-text-positive flex-1 text-sm`,children:[t,` of `,s,` row(s) selected.`]}),P(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[P(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[N(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),P(n,{value:`${c}`,onValueChange:e=>{l?.(Number(e))},children:[N(a,{className:`h-8 w-18`,children:N(o,{placeholder:c})}),N(r,{side:`top`,children:[10,20,30,40,50].map(e=>N(i,{value:`${e}`,children:e},e))})]}),P(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,u+1,` of `,g]})]}),P(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[P(e,{variant:`outline`,color:`muted`,onClick:()=>d?.(0),disabled:!m,children:[N(`span`,{className:`sr-only`,children:`Go to first page`}),N(E,{})]}),P(e,{variant:`outline`,color:`muted`,onClick:f,disabled:!m,children:[N(`span`,{className:`sr-only`,children:`Go to previous page`}),N(C,{})]}),P(e,{variant:`outline`,color:`muted`,onClick:p,disabled:!h,children:[N(`span`,{className:`sr-only`,children:`Go to next page`}),N(w,{})]}),P(e,{variant:`outline`,color:`muted`,onClick:()=>{d?.(g-1)},disabled:!h,children:[N(`span`,{className:`sr-only`,children:`Go to last page`}),N(D,{})]})]})]})]})}function Q({data:e,totalCount:n,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[u,d]=I({}),[f,p]=I([]),[m,h]=I([]),[g,_]=I({}),v=F(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),y=W({initialState:v,data:e,columns:i,rowCount:n,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:R(),getPaginationRowModel:H(),getSortedRowModel:U(),getFilteredRowModel:V(),getFacetedRowModel:z(),getFacetedUniqueValues:B(),getRowId:e=>e.id||e.uuid,state:{rowSelection:u,sorting:f,columnVisibility:g,columnFilters:m,...a?{pagination:a}:{}},onRowSelectionChange:d,onSortingChange:p,onColumnVisibilityChange:_,onColumnFiltersChange:h,...l?{onPaginationChange:l}:{}});return P(t,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[N(X,{onAdd:o,onRefresh:s}),P(t,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[N(Y,{table:y,isLoading:r,onClickRow:c}),N(Z,{pageSize:y.getState().pagination.pageSize,setPageSize:y.setPageSize,filteredSelectedRowsLength:y.getFilteredSelectedRowModel().rows.length,filteredRowsLength:y.getFilteredRowModel().rows.length,pageIndex:y.getState().pagination.pageIndex,setPageIndex:y.setPageIndex,previousPage:y.previousPage,nextPage:y.nextPage,canPreviousPage:y.getCanPreviousPage(),canNextPage:y.getCanNextPage(),pageCount:y.getPageCount()})]})]})}export{Q as Table};
2
2
  //# sourceMappingURL=index.js.map