@customafk/lunas-ui 0.0.80 → 0.0.82

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 (691) hide show
  1. package/dist/{add-new-DfniMrHa.js → add-new-BFJvt2an.js} +2 -2
  2. package/dist/add-new-BFJvt2an.js.map +1 -0
  3. package/dist/add-new-Bt5QaeJs.cjs +2 -0
  4. package/dist/add-new-Bt5QaeJs.cjs.map +1 -0
  5. package/dist/alert-dialog-B-m2RVMu.cjs +2 -0
  6. package/dist/alert-dialog-B-m2RVMu.cjs.map +1 -0
  7. package/dist/{alert-dialog-UwGNuTYk.js → alert-dialog-DcQKEgVC.js} +1 -1
  8. package/dist/alert-dialog-DcQKEgVC.js.map +1 -0
  9. package/dist/avatar-DmMCBvb6.cjs +2 -0
  10. package/dist/avatar-DmMCBvb6.cjs.map +1 -0
  11. package/dist/avatar-iX5Jhj8E.js.map +1 -1
  12. package/dist/badge-AM9m3CFI.cjs +2 -0
  13. package/dist/badge-AM9m3CFI.cjs.map +1 -0
  14. package/dist/badge-tjlLdDGl.js.map +1 -1
  15. package/dist/button-BaLuKPtr.cjs +2 -0
  16. package/dist/button-BaLuKPtr.cjs.map +1 -0
  17. package/dist/{button-DhQJ9Ey8.js → button-CYsnwc1-.js} +2 -2
  18. package/dist/button-CYsnwc1-.js.map +1 -0
  19. package/dist/{button-CGIJb6H5.d.cts → button-D6hzitQh.d.cts} +6 -6
  20. package/dist/{button-BdYhnlA1.d.ts → button-DKcU4dim.d.ts} +6 -6
  21. package/dist/button-variants-DdVxfrSx.cjs +2 -0
  22. package/dist/button-variants-DdVxfrSx.cjs.map +1 -0
  23. package/dist/button-variants-Y1GTBayz.js.map +1 -1
  24. package/dist/calendar-C4zLgISS.cjs +2 -0
  25. package/dist/calendar-C4zLgISS.cjs.map +1 -0
  26. package/dist/{calendar-C2yGJ9AV.js → calendar-Dmq8I1ey.js} +2 -2
  27. package/dist/calendar-Dmq8I1ey.js.map +1 -0
  28. package/dist/card-CkKO-0o0.cjs +2 -0
  29. package/dist/card-CkKO-0o0.cjs.map +1 -0
  30. package/dist/card-DOv2mZU8.js.map +1 -1
  31. package/dist/cards/grid-product-card.cjs +1 -1
  32. package/dist/cards/grid-product-card.cjs.map +1 -1
  33. package/dist/cards/grid-product-card.js +1 -1
  34. package/dist/cards/grid-product-card.js.map +1 -1
  35. package/dist/cards/product-card.cjs +1 -1
  36. package/dist/cards/product-card.cjs.map +1 -1
  37. package/dist/cards/product-card.js +1 -1
  38. package/dist/cards/product-card.js.map +1 -1
  39. package/dist/cards/simple-card.cjs +1 -1
  40. package/dist/cards/simple-card.cjs.map +1 -1
  41. package/dist/cards/simple-card.js.map +1 -1
  42. package/dist/{command-BWvqtwPS.d.cts → command-BCHEIInv.d.cts} +12 -12
  43. package/dist/command-C13pL2M3.cjs +2 -0
  44. package/dist/command-C13pL2M3.cjs.map +1 -0
  45. package/dist/{command-B23xCgK_.d.ts → command-KnD1dAzj.d.ts} +12 -12
  46. package/dist/{command-DhSE6UaR.js → command-UXLmHGja.js} +2 -2
  47. package/dist/command-UXLmHGja.js.map +1 -0
  48. package/dist/data-display/country.cjs +1 -1
  49. package/dist/data-display/country.cjs.map +1 -1
  50. package/dist/data-display/country.d.ts +1 -1
  51. package/dist/data-display/country.js.map +1 -1
  52. package/dist/data-display/data-list.cjs +1 -1
  53. package/dist/data-display/data-list.cjs.map +1 -1
  54. package/dist/data-display/data-list.js.map +1 -1
  55. package/dist/data-display/date-tooltip.cjs +1 -1
  56. package/dist/data-display/date-tooltip.cjs.map +1 -1
  57. package/dist/data-display/date-tooltip.js +1 -1
  58. package/dist/data-display/date-tooltip.js.map +1 -1
  59. package/dist/data-display/date.cjs +1 -1
  60. package/dist/data-display/date.js +1 -1
  61. package/dist/data-display/empty.cjs +1 -1
  62. package/dist/data-display/empty.cjs.map +1 -1
  63. package/dist/data-display/empty.d.cts +2 -2
  64. package/dist/data-display/empty.js.map +1 -1
  65. package/dist/data-display/name.cjs +1 -1
  66. package/dist/data-display/name.cjs.map +1 -1
  67. package/dist/data-display/name.js.map +1 -1
  68. package/dist/data-display/phone-number.cjs +1 -1
  69. package/dist/data-display/phone-number.cjs.map +1 -1
  70. package/dist/data-display/phone-number.js.map +1 -1
  71. package/dist/data-display/role-badge.cjs +1 -1
  72. package/dist/data-display/role-badge.cjs.map +1 -1
  73. package/dist/data-display/role-badge.d.ts +1 -1
  74. package/dist/data-display/role-badge.js.map +1 -1
  75. package/dist/data-display/statistic.cjs +1 -1
  76. package/dist/data-display/statistic.cjs.map +1 -1
  77. package/dist/data-display/statistic.d.ts +2 -2
  78. package/dist/data-display/statistic.js +1 -1
  79. package/dist/data-display/statistic.js.map +1 -1
  80. package/dist/data-display/user.cjs +1 -1
  81. package/dist/data-display/user.cjs.map +1 -1
  82. package/dist/data-display/user.js.map +1 -1
  83. package/dist/date-BEyT-xKi.cjs +2 -0
  84. package/dist/date-BEyT-xKi.cjs.map +1 -0
  85. package/dist/{date-BuPl--Fc.js → date-CgzMwDPN.js} +2 -2
  86. package/dist/date-CgzMwDPN.js.map +1 -0
  87. package/dist/{dialog-B2LS2JLb.js → dialog-BAlJ18xi.js} +1 -1
  88. package/dist/dialog-BAlJ18xi.js.map +1 -0
  89. package/dist/dialog-BBODhbxh.cjs +2 -0
  90. package/dist/dialog-BBODhbxh.cjs.map +1 -0
  91. package/dist/{dialog-Dn2Q-QRw.d.ts → dialog-MCM90IpD.d.cts} +12 -12
  92. package/dist/{dialog-BFtz_6mv.d.cts → dialog-lKVaxcfs.d.ts} +12 -12
  93. package/dist/dialogs/confirm-dialog.cjs +1 -1
  94. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  95. package/dist/dialogs/confirm-dialog.js +1 -1
  96. package/dist/dialogs/confirm-dialog.js.map +1 -1
  97. package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
  98. package/dist/dialogs/detail-dialog/component/sidebar.d.cts +30 -30
  99. package/dist/dialogs/detail-dialog/component/sidebar.d.ts +30 -30
  100. package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
  101. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  102. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  103. package/dist/dialogs/detail-dialog/index.js +1 -1
  104. package/dist/dialogs/detail-dialog/index.js.map +1 -1
  105. package/dist/dialogs/error-dialog.cjs +1 -1
  106. package/dist/dialogs/error-dialog.js +1 -1
  107. package/dist/dialogs/form-dialog.cjs +1 -1
  108. package/dist/dialogs/form-dialog.cjs.map +1 -1
  109. package/dist/dialogs/form-dialog.d.cts +2 -2
  110. package/dist/dialogs/form-dialog.d.ts +2 -2
  111. package/dist/dialogs/form-dialog.js +1 -1
  112. package/dist/dialogs/form-dialog.js.map +1 -1
  113. package/dist/dialogs/loading-dialog.cjs +1 -1
  114. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  115. package/dist/dialogs/loading-dialog.js +1 -1
  116. package/dist/dialogs/loading-dialog.js.map +1 -1
  117. package/dist/{dist-CkzytVha.js → dist-BgkALM7U.js} +2 -2
  118. package/dist/{dist-CkzytVha.js.map → dist-BgkALM7U.js.map} +1 -1
  119. package/dist/dist-CAevLI5t.cjs +2 -0
  120. package/dist/{dist-D0uO1qIz.cjs.map → dist-CAevLI5t.cjs.map} +1 -1
  121. package/dist/drawer-70cz3SPB.cjs +2 -0
  122. package/dist/drawer-70cz3SPB.cjs.map +1 -0
  123. package/dist/{drawer-COD1n5aA.js → drawer-DRC3X2-U.js} +1 -1
  124. package/dist/drawer-DRC3X2-U.js.map +1 -0
  125. package/dist/dropdown-menu-Bb68Wd6J.cjs +2 -0
  126. package/dist/dropdown-menu-Bb68Wd6J.cjs.map +1 -0
  127. package/dist/{dropdown-menu-Brlye320.js → dropdown-menu-DtEPAmMV.js} +1 -1
  128. package/dist/dropdown-menu-DtEPAmMV.js.map +1 -0
  129. package/dist/{error-dialog-BF1VNZXk.js → error-dialog-BeYJOtSH.js} +2 -2
  130. package/dist/error-dialog-BeYJOtSH.js.map +1 -0
  131. package/dist/error-dialog-bra3vccX.cjs +2 -0
  132. package/dist/error-dialog-bra3vccX.cjs.map +1 -0
  133. package/dist/field-A43YZ5Wj.cjs +2 -0
  134. package/dist/field-A43YZ5Wj.cjs.map +1 -0
  135. package/dist/field-CGacT8J3.js +2 -0
  136. package/dist/field-CGacT8J3.js.map +1 -0
  137. package/dist/flex-B4klVEz9.cjs +2 -0
  138. package/dist/flex-B4klVEz9.cjs.map +1 -0
  139. package/dist/flex-D6XrXRQW.js.map +1 -1
  140. package/dist/form-B_tL9lO4.js +2 -0
  141. package/dist/form-B_tL9lO4.js.map +1 -0
  142. package/dist/form-DV9tQbiO.cjs +2 -0
  143. package/dist/form-DV9tQbiO.cjs.map +1 -0
  144. package/dist/form-wrapper-BKTvSrZY.js +2 -0
  145. package/dist/form-wrapper-BKTvSrZY.js.map +1 -0
  146. package/dist/form-wrapper-vue82rfg.cjs +2 -0
  147. package/dist/form-wrapper-vue82rfg.cjs.map +1 -0
  148. package/dist/forms/combobox-field.cjs +1 -1
  149. package/dist/forms/combobox-field.cjs.map +1 -1
  150. package/dist/forms/combobox-field.d.cts +2 -2
  151. package/dist/forms/combobox-field.d.ts +2 -2
  152. package/dist/forms/combobox-field.js +1 -1
  153. package/dist/forms/combobox-field.js.map +1 -1
  154. package/dist/forms/date-field.cjs +1 -1
  155. package/dist/forms/date-field.cjs.map +1 -1
  156. package/dist/forms/date-field.d.cts +2 -2
  157. package/dist/forms/date-field.d.ts +2 -2
  158. package/dist/forms/date-field.js +1 -1
  159. package/dist/forms/date-field.js.map +1 -1
  160. package/dist/forms/form-wrapper.cjs +1 -1
  161. package/dist/forms/form-wrapper.d.cts +6 -2
  162. package/dist/forms/form-wrapper.d.ts +6 -2
  163. package/dist/forms/form-wrapper.js +1 -1
  164. package/dist/forms/multi-select-field.cjs +1 -1
  165. package/dist/forms/multi-select-field.cjs.map +1 -1
  166. package/dist/forms/multi-select-field.d.cts +4 -2
  167. package/dist/forms/multi-select-field.d.ts +4 -2
  168. package/dist/forms/multi-select-field.js +1 -1
  169. package/dist/forms/multi-select-field.js.map +1 -1
  170. package/dist/forms/number-field.cjs +1 -1
  171. package/dist/forms/number-field.cjs.map +1 -1
  172. package/dist/forms/number-field.d.cts +2 -2
  173. package/dist/forms/number-field.d.ts +2 -2
  174. package/dist/forms/number-field.js +1 -1
  175. package/dist/forms/number-field.js.map +1 -1
  176. package/dist/forms/password-field.cjs +1 -1
  177. package/dist/forms/password-field.cjs.map +1 -1
  178. package/dist/forms/password-field.d.cts +2 -2
  179. package/dist/forms/password-field.d.ts +2 -2
  180. package/dist/forms/password-field.js +1 -1
  181. package/dist/forms/password-field.js.map +1 -1
  182. package/dist/forms/select-field.cjs +1 -1
  183. package/dist/forms/select-field.cjs.map +1 -1
  184. package/dist/forms/select-field.d.cts +2 -2
  185. package/dist/forms/select-field.d.ts +2 -2
  186. package/dist/forms/select-field.js +1 -1
  187. package/dist/forms/select-field.js.map +1 -1
  188. package/dist/forms/switch-field.cjs +1 -1
  189. package/dist/forms/switch-field.cjs.map +1 -1
  190. package/dist/forms/switch-field.d.cts +4 -2
  191. package/dist/forms/switch-field.d.ts +4 -2
  192. package/dist/forms/switch-field.js +1 -1
  193. package/dist/forms/switch-field.js.map +1 -1
  194. package/dist/forms/text-field.cjs +1 -1
  195. package/dist/forms/text-field.cjs.map +1 -1
  196. package/dist/forms/text-field.d.cts +2 -2
  197. package/dist/forms/text-field.d.ts +2 -2
  198. package/dist/forms/text-field.js +1 -1
  199. package/dist/forms/text-field.js.map +1 -1
  200. package/dist/forms/textarea-field.cjs +1 -1
  201. package/dist/forms/textarea-field.cjs.map +1 -1
  202. package/dist/forms/textarea-field.d.cts +2 -2
  203. package/dist/forms/textarea-field.d.ts +2 -2
  204. package/dist/forms/textarea-field.js +1 -1
  205. package/dist/forms/textarea-field.js.map +1 -1
  206. package/dist/image-C0mClPAY.cjs +2 -0
  207. package/dist/image-C0mClPAY.cjs.map +1 -0
  208. package/dist/image-CiQhTTyt.js.map +1 -1
  209. package/dist/{input-BtT8HfYE.js → input-BStypTnq.js} +1 -1
  210. package/dist/input-BStypTnq.js.map +1 -0
  211. package/dist/{input-CwuYXUPY.d.ts → input-BbxBfHG5.d.ts} +3 -3
  212. package/dist/input-D_tClptL.cjs +2 -0
  213. package/dist/input-D_tClptL.cjs.map +1 -0
  214. package/dist/{input-Kq2bOgsM.d.cts → input-EieQSty7.d.cts} +3 -3
  215. package/dist/label-Bfd7VFEe.d.cts +11 -0
  216. package/dist/label-CdrxlBJ8.js.map +1 -1
  217. package/dist/label-D6mAvVmw.cjs +2 -0
  218. package/dist/label-D6mAvVmw.cjs.map +1 -0
  219. package/dist/label-DlBHUp00.d.ts +11 -0
  220. package/dist/layouts/app-layout/index.cjs +1 -1
  221. package/dist/layouts/app-layout/index.cjs.map +1 -1
  222. package/dist/layouts/app-layout/index.d.cts +28 -28
  223. package/dist/layouts/app-layout/index.d.ts +28 -28
  224. package/dist/layouts/app-layout/index.js +1 -1
  225. package/dist/layouts/app-layout/index.js.map +1 -1
  226. package/dist/layouts/flex.cjs +1 -1
  227. package/dist/layouts/flex.d.cts +2 -2
  228. package/dist/layouts/grid.cjs +1 -1
  229. package/dist/layouts/grid.cjs.map +1 -1
  230. package/dist/layouts/grid.js.map +1 -1
  231. package/dist/layouts/service-layout/index.cjs +1 -1
  232. package/dist/layouts/service-layout/index.cjs.map +1 -1
  233. package/dist/layouts/service-layout/index.d.cts +15 -15
  234. package/dist/layouts/service-layout/index.d.ts +15 -15
  235. package/dist/layouts/service-layout/index.js +1 -1
  236. package/dist/layouts/service-layout/index.js.map +1 -1
  237. package/dist/multi-select-C66U77ON.js +2 -0
  238. package/dist/multi-select-C66U77ON.js.map +1 -0
  239. package/dist/multi-select-D38JwSYL.cjs +2 -0
  240. package/dist/multi-select-D38JwSYL.cjs.map +1 -0
  241. package/dist/paragraph-B9fp9JaI.js.map +1 -1
  242. package/dist/paragraph-Q7vk3BSp.cjs +2 -0
  243. package/dist/paragraph-Q7vk3BSp.cjs.map +1 -0
  244. package/dist/{popover-BJWOgxQ5.js → popover-BnzoeyDG.js} +1 -1
  245. package/dist/popover-BnzoeyDG.js.map +1 -0
  246. package/dist/popover-D6vyPDKA.cjs +2 -0
  247. package/dist/popover-D6vyPDKA.cjs.map +1 -0
  248. package/dist/progress-BUlcGaLz.cjs +2 -0
  249. package/dist/progress-BUlcGaLz.cjs.map +1 -0
  250. package/dist/{progress-DzBPViJg.js → progress-DwLEMPaO.js} +1 -1
  251. package/dist/progress-DwLEMPaO.js.map +1 -0
  252. package/dist/{refresh-BiOPtbhd.js → refresh-CMQ49ae4.js} +2 -2
  253. package/dist/refresh-CMQ49ae4.js.map +1 -0
  254. package/dist/refresh-CvvD6Ckf.cjs +2 -0
  255. package/dist/refresh-CvvD6Ckf.cjs.map +1 -0
  256. package/dist/scroll-area-C_MkdpKg.cjs +2 -0
  257. package/dist/scroll-area-C_MkdpKg.cjs.map +1 -0
  258. package/dist/{scroll-area-BJYI14s5.js → scroll-area-DFENklE1.js} +1 -1
  259. package/dist/scroll-area-DFENklE1.js.map +1 -0
  260. package/dist/{search-input--FQFzdW3.js → search-input-BI1RjMuQ.js} +2 -2
  261. package/dist/search-input-BI1RjMuQ.js.map +1 -0
  262. package/dist/search-input-ryU0Mvaa.cjs +2 -0
  263. package/dist/search-input-ryU0Mvaa.cjs.map +1 -0
  264. package/dist/{select-Di8fOKVF.js → select-B8sXsuUI.js} +1 -1
  265. package/dist/select-B8sXsuUI.js.map +1 -0
  266. package/dist/select-BD7dul2u.cjs +2 -0
  267. package/dist/select-BD7dul2u.cjs.map +1 -0
  268. package/dist/{separator-mZ8r56s2.d.cts → separator-BBWO-2XW.d.cts} +3 -3
  269. package/dist/{separator-C7HQ2ThL.js → separator-D17HxS2f.js} +1 -1
  270. package/dist/separator-D17HxS2f.js.map +1 -0
  271. package/dist/separator-DMMoR-d2.cjs +2 -0
  272. package/dist/separator-DMMoR-d2.cjs.map +1 -0
  273. package/dist/{separator-C4wU5Rr6.d.ts → separator-LYCmJYd5.d.ts} +3 -3
  274. package/dist/{sheet-E0gvN9Gp.js → sheet-BhyEuJtA.js} +1 -1
  275. package/dist/sheet-BhyEuJtA.js.map +1 -0
  276. package/dist/sheet-Bua5MlcG.cjs +2 -0
  277. package/dist/sheet-Bua5MlcG.cjs.map +1 -0
  278. package/dist/sidebar-BgMpq73J.cjs +2 -0
  279. package/dist/sidebar-BgMpq73J.cjs.map +1 -0
  280. package/dist/{sidebar-CBEPWmnf.js → sidebar-Bs42CUTZ.js} +2 -2
  281. package/dist/sidebar-Bs42CUTZ.js.map +1 -0
  282. package/dist/skeleton-BC2E_ohw.cjs +2 -0
  283. package/dist/skeleton-BC2E_ohw.cjs.map +1 -0
  284. package/dist/skeleton-ByN-MrQO.js.map +1 -1
  285. package/dist/{switch-C7foFKpS.js → switch-DwBg-iL4.js} +1 -1
  286. package/dist/switch-DwBg-iL4.js.map +1 -0
  287. package/dist/switch-o_YbWKw4.cjs +2 -0
  288. package/dist/switch-o_YbWKw4.cjs.map +1 -0
  289. package/dist/systems/google.cjs +1 -1
  290. package/dist/systems/google.cjs.map +1 -1
  291. package/dist/systems/google.js +1 -1
  292. package/dist/systems/google.js.map +1 -1
  293. package/dist/table/index.cjs +1 -1
  294. package/dist/table/index.cjs.map +1 -1
  295. package/dist/table/index.d.cts +2 -2
  296. package/dist/table/index.d.ts +2 -2
  297. package/dist/table/index.js +1 -1
  298. package/dist/table/index.js.map +1 -1
  299. package/dist/{table-CKNAm27W.js → table-Cd75vfQ4.js} +1 -1
  300. package/dist/table-Cd75vfQ4.js.map +1 -0
  301. package/dist/table-fp-VtGFA.cjs +2 -0
  302. package/dist/table-fp-VtGFA.cjs.map +1 -0
  303. package/dist/{tabs-D4uObFGW.js → tabs-BVCzl3vY.js} +1 -1
  304. package/dist/tabs-BVCzl3vY.js.map +1 -0
  305. package/dist/tabs-D7oadnxg.cjs +2 -0
  306. package/dist/tabs-D7oadnxg.cjs.map +1 -0
  307. package/dist/textarea-BHME8i5L.cjs +2 -0
  308. package/dist/textarea-BHME8i5L.cjs.map +1 -0
  309. package/dist/{textarea-n8OO0QsI.js → textarea-TGDtYde1.js} +1 -1
  310. package/dist/textarea-TGDtYde1.js.map +1 -0
  311. package/dist/title-Wrzpw9RM.cjs +2 -0
  312. package/dist/title-Wrzpw9RM.cjs.map +1 -0
  313. package/dist/{title-itXqz0us.js → title-Zqs6skyV.js} +1 -1
  314. package/dist/title-Zqs6skyV.js.map +1 -0
  315. package/dist/{toggle-DuNq0es1.js → toggle-AOoz4VtN.js} +1 -1
  316. package/dist/toggle-AOoz4VtN.js.map +1 -0
  317. package/dist/{toggle-DYeyKWVE.d.cts → toggle-Bhwgx-y_.d.cts} +5 -5
  318. package/dist/toggle-D252Z_vH.cjs +2 -0
  319. package/dist/toggle-D252Z_vH.cjs.map +1 -0
  320. package/dist/{toggle-DPTA8XO2.d.ts → toggle-DaTd0CKm.d.ts} +5 -5
  321. package/dist/{tooltip-DijjzZk1.d.cts → tooltip-B3mrjes6.d.cts} +6 -6
  322. package/dist/tooltip-BTrjCwd8.js.map +1 -1
  323. package/dist/{tooltip-Dt83PTkc.d.ts → tooltip-IMUjBDRr.d.ts} +6 -6
  324. package/dist/tooltip-uaF-pxx8.cjs +2 -0
  325. package/dist/tooltip-uaF-pxx8.cjs.map +1 -0
  326. package/dist/{types-BHVCAwAo.d.ts → types-BcE2RjTJ.d.ts} +1 -1
  327. package/dist/types-BiiGENwa.js.map +1 -1
  328. package/dist/types-D32qXHff.cjs.map +1 -1
  329. package/dist/typography/paragraph.cjs +1 -1
  330. package/dist/typography/paragraph.d.cts +2 -2
  331. package/dist/typography/paragraph.d.ts +2 -2
  332. package/dist/typography/title.cjs +1 -1
  333. package/dist/typography/title.d.cts +2 -2
  334. package/dist/typography/title.d.ts +2 -2
  335. package/dist/typography/title.js +1 -1
  336. package/dist/ui/alert-dialog.cjs +1 -1
  337. package/dist/ui/alert-dialog.d.cts +12 -12
  338. package/dist/ui/alert-dialog.d.ts +12 -12
  339. package/dist/ui/alert-dialog.js +1 -1
  340. package/dist/ui/alert.cjs +1 -1
  341. package/dist/ui/alert.cjs.map +1 -1
  342. package/dist/ui/alert.d.cts +6 -6
  343. package/dist/ui/alert.d.ts +6 -6
  344. package/dist/ui/alert.js.map +1 -1
  345. package/dist/ui/aspect-ratio.cjs +1 -1
  346. package/dist/ui/aspect-ratio.cjs.map +1 -1
  347. package/dist/ui/aspect-ratio.d.cts +2 -2
  348. package/dist/ui/aspect-ratio.d.ts +2 -2
  349. package/dist/ui/aspect-ratio.js.map +1 -1
  350. package/dist/ui/avatar.cjs +1 -1
  351. package/dist/ui/avatar.d.cts +4 -4
  352. package/dist/ui/avatar.d.ts +4 -4
  353. package/dist/ui/badge.cjs +1 -1
  354. package/dist/ui/badge.d.cts +2 -2
  355. package/dist/ui/badge.d.ts +4 -4
  356. package/dist/ui/breadcrumb.cjs +1 -1
  357. package/dist/ui/breadcrumb.cjs.map +1 -1
  358. package/dist/ui/breadcrumb.d.cts +8 -8
  359. package/dist/ui/breadcrumb.d.ts +8 -8
  360. package/dist/ui/breadcrumb.js +1 -1
  361. package/dist/ui/breadcrumb.js.map +1 -1
  362. package/dist/ui/button-group.cjs +2 -0
  363. package/dist/ui/button-group.cjs.map +1 -0
  364. package/dist/ui/button-group.d.cts +29 -0
  365. package/dist/ui/button-group.d.ts +29 -0
  366. package/dist/ui/button-group.js +2 -0
  367. package/dist/ui/button-group.js.map +1 -0
  368. package/dist/ui/button.cjs +1 -1
  369. package/dist/ui/button.d.cts +1 -1
  370. package/dist/ui/button.d.ts +1 -1
  371. package/dist/ui/button.js +1 -1
  372. package/dist/ui/buttons/add-new.cjs +1 -1
  373. package/dist/ui/buttons/add-new.js +1 -1
  374. package/dist/ui/buttons/edit.cjs +1 -1
  375. package/dist/ui/buttons/edit.cjs.map +1 -1
  376. package/dist/ui/buttons/edit.js +1 -1
  377. package/dist/ui/buttons/edit.js.map +1 -1
  378. package/dist/ui/buttons/refresh.cjs +1 -1
  379. package/dist/ui/buttons/refresh.js +1 -1
  380. package/dist/ui/buttons/trash.cjs +1 -1
  381. package/dist/ui/buttons/trash.cjs.map +1 -1
  382. package/dist/ui/buttons/trash.js +1 -1
  383. package/dist/ui/buttons/trash.js.map +1 -1
  384. package/dist/ui/buttons/upload-image.cjs +1 -1
  385. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  386. package/dist/ui/buttons/upload-image.js +1 -1
  387. package/dist/ui/buttons/upload-image.js.map +1 -1
  388. package/dist/ui/calendar.cjs +1 -1
  389. package/dist/ui/calendar.d.cts +4 -4
  390. package/dist/ui/calendar.d.ts +4 -4
  391. package/dist/ui/calendar.js +1 -1
  392. package/dist/ui/card.cjs +1 -1
  393. package/dist/ui/card.d.cts +8 -8
  394. package/dist/ui/card.d.ts +8 -8
  395. package/dist/ui/carousel.cjs +1 -1
  396. package/dist/ui/carousel.cjs.map +1 -1
  397. package/dist/ui/carousel.d.cts +7 -7
  398. package/dist/ui/carousel.d.ts +7 -7
  399. package/dist/ui/carousel.js +1 -1
  400. package/dist/ui/carousel.js.map +1 -1
  401. package/dist/ui/collapsible.cjs +1 -1
  402. package/dist/ui/collapsible.cjs.map +1 -1
  403. package/dist/ui/collapsible.d.cts +4 -4
  404. package/dist/ui/collapsible.d.ts +4 -4
  405. package/dist/ui/collapsible.js.map +1 -1
  406. package/dist/ui/command.cjs +1 -1
  407. package/dist/ui/command.d.cts +2 -2
  408. package/dist/ui/command.d.ts +2 -2
  409. package/dist/ui/command.js +1 -1
  410. package/dist/ui/context-menu.cjs +1 -1
  411. package/dist/ui/context-menu.cjs.map +1 -1
  412. package/dist/ui/context-menu.d.cts +16 -16
  413. package/dist/ui/context-menu.d.ts +16 -16
  414. package/dist/ui/context-menu.js.map +1 -1
  415. package/dist/ui/dialog.cjs +1 -1
  416. package/dist/ui/dialog.d.cts +1 -1
  417. package/dist/ui/dialog.d.ts +1 -1
  418. package/dist/ui/dialog.js +1 -1
  419. package/dist/ui/dropdown-menu.cjs +1 -1
  420. package/dist/ui/dropdown-menu.d.cts +16 -16
  421. package/dist/ui/dropdown-menu.d.ts +16 -16
  422. package/dist/ui/dropdown-menu.js +1 -1
  423. package/dist/ui/empty.cjs +2 -0
  424. package/dist/ui/empty.cjs.map +1 -0
  425. package/dist/ui/empty.d.cts +36 -0
  426. package/dist/ui/empty.d.ts +36 -0
  427. package/dist/ui/empty.js +2 -0
  428. package/dist/ui/empty.js.map +1 -0
  429. package/dist/ui/field.cjs +1 -0
  430. package/dist/ui/field.d.cts +65 -0
  431. package/dist/ui/field.d.ts +65 -0
  432. package/dist/ui/field.js +1 -0
  433. package/dist/ui/file-uploader.cjs +1 -1
  434. package/dist/ui/file-uploader.cjs.map +1 -1
  435. package/dist/ui/file-uploader.d.cts +2 -2
  436. package/dist/ui/file-uploader.d.ts +2 -2
  437. package/dist/ui/file-uploader.js +1 -1
  438. package/dist/ui/file-uploader.js.map +1 -1
  439. package/dist/ui/form.cjs +1 -1
  440. package/dist/ui/form.d.cts +7 -8
  441. package/dist/ui/form.d.ts +7 -8
  442. package/dist/ui/form.js +1 -1
  443. package/dist/ui/hover-card.cjs +1 -1
  444. package/dist/ui/hover-card.cjs.map +1 -1
  445. package/dist/ui/hover-card.d.cts +4 -4
  446. package/dist/ui/hover-card.d.ts +4 -4
  447. package/dist/ui/hover-card.js.map +1 -1
  448. package/dist/ui/image.cjs +1 -1
  449. package/dist/ui/input-otp.cjs +1 -1
  450. package/dist/ui/input-otp.cjs.map +1 -1
  451. package/dist/ui/input-otp.d.cts +5 -5
  452. package/dist/ui/input-otp.d.ts +5 -5
  453. package/dist/ui/input-otp.js +1 -1
  454. package/dist/ui/input-otp.js.map +1 -1
  455. package/dist/ui/input.cjs +1 -1
  456. package/dist/ui/input.d.cts +1 -1
  457. package/dist/ui/input.d.ts +1 -1
  458. package/dist/ui/input.js +1 -1
  459. package/dist/ui/inputs/search-input.cjs +1 -1
  460. package/dist/ui/inputs/search-input.d.cts +3 -3
  461. package/dist/ui/inputs/search-input.d.ts +3 -3
  462. package/dist/ui/inputs/search-input.js +1 -1
  463. package/dist/ui/item.cjs +2 -0
  464. package/dist/ui/item.cjs.map +1 -0
  465. package/dist/ui/item.d.cts +62 -0
  466. package/dist/ui/item.d.ts +62 -0
  467. package/dist/ui/item.js +2 -0
  468. package/dist/ui/item.js.map +1 -0
  469. package/dist/ui/label.cjs +1 -1
  470. package/dist/ui/label.d.cts +2 -11
  471. package/dist/ui/label.d.ts +2 -11
  472. package/dist/ui/menubar.cjs +1 -1
  473. package/dist/ui/menubar.cjs.map +1 -1
  474. package/dist/ui/menubar.d.cts +17 -17
  475. package/dist/ui/menubar.d.ts +17 -17
  476. package/dist/ui/menubar.js.map +1 -1
  477. package/dist/ui/multi-select.cjs +1 -1
  478. package/dist/ui/multi-select.d.cts +2 -2
  479. package/dist/ui/multi-select.d.ts +2 -2
  480. package/dist/ui/multi-select.js +1 -1
  481. package/dist/ui/navigation-menu.cjs +1 -1
  482. package/dist/ui/navigation-menu.cjs.map +1 -1
  483. package/dist/ui/navigation-menu.d.cts +11 -11
  484. package/dist/ui/navigation-menu.d.ts +11 -11
  485. package/dist/ui/navigation-menu.js.map +1 -1
  486. package/dist/ui/pagination.cjs +1 -1
  487. package/dist/ui/pagination.cjs.map +1 -1
  488. package/dist/ui/pagination.d.cts +9 -9
  489. package/dist/ui/pagination.d.ts +9 -9
  490. package/dist/ui/pagination.js +1 -1
  491. package/dist/ui/pagination.js.map +1 -1
  492. package/dist/ui/popover.cjs +1 -1
  493. package/dist/ui/popover.d.cts +5 -5
  494. package/dist/ui/popover.d.ts +5 -5
  495. package/dist/ui/popover.js +1 -1
  496. package/dist/ui/progress.cjs +1 -1
  497. package/dist/ui/progress.d.cts +2 -2
  498. package/dist/ui/progress.d.ts +2 -2
  499. package/dist/ui/progress.js +1 -1
  500. package/dist/ui/radio-group.cjs +1 -1
  501. package/dist/ui/radio-group.cjs.map +1 -1
  502. package/dist/ui/radio-group.d.cts +3 -3
  503. package/dist/ui/radio-group.d.ts +3 -3
  504. package/dist/ui/radio-group.js.map +1 -1
  505. package/dist/ui/resizable.cjs +1 -1
  506. package/dist/ui/resizable.cjs.map +1 -1
  507. package/dist/ui/resizable.d.cts +4 -4
  508. package/dist/ui/resizable.d.ts +4 -4
  509. package/dist/ui/resizable.js.map +1 -1
  510. package/dist/ui/scroll-area.cjs +1 -1
  511. package/dist/ui/scroll-area.d.cts +3 -3
  512. package/dist/ui/scroll-area.d.ts +3 -3
  513. package/dist/ui/scroll-area.js +1 -1
  514. package/dist/ui/select.cjs +1 -1
  515. package/dist/ui/select.d.cts +11 -11
  516. package/dist/ui/select.d.ts +11 -11
  517. package/dist/ui/select.js +1 -1
  518. package/dist/ui/separator.cjs +1 -1
  519. package/dist/ui/separator.d.cts +1 -1
  520. package/dist/ui/separator.d.ts +1 -1
  521. package/dist/ui/separator.js +1 -1
  522. package/dist/ui/sheet.cjs +1 -1
  523. package/dist/ui/sheet.d.cts +9 -9
  524. package/dist/ui/sheet.d.ts +9 -9
  525. package/dist/ui/sheet.js +1 -1
  526. package/dist/ui/sidebar.cjs +1 -1
  527. package/dist/ui/sidebar.cjs.map +1 -1
  528. package/dist/ui/sidebar.d.cts +30 -30
  529. package/dist/ui/sidebar.d.ts +30 -30
  530. package/dist/ui/sidebar.js +1 -1
  531. package/dist/ui/sidebar.js.map +1 -1
  532. package/dist/ui/skeleton.cjs +1 -1
  533. package/dist/ui/skeleton.d.cts +2 -2
  534. package/dist/ui/skeleton.d.ts +2 -2
  535. package/dist/ui/slider.cjs +1 -1
  536. package/dist/ui/slider.cjs.map +1 -1
  537. package/dist/ui/slider.d.cts +2 -2
  538. package/dist/ui/slider.d.ts +2 -2
  539. package/dist/ui/slider.js.map +1 -1
  540. package/dist/ui/sonner.cjs +1 -1
  541. package/dist/ui/sonner.cjs.map +1 -1
  542. package/dist/ui/sonner.d.cts +2 -2
  543. package/dist/ui/sonner.d.ts +2 -2
  544. package/dist/ui/sonner.js.map +1 -1
  545. package/dist/ui/spinner.cjs +2 -0
  546. package/dist/ui/spinner.cjs.map +1 -0
  547. package/dist/ui/spinner.d.cts +10 -0
  548. package/dist/ui/spinner.d.ts +10 -0
  549. package/dist/ui/spinner.js +2 -0
  550. package/dist/ui/spinner.js.map +1 -0
  551. package/dist/ui/switch.cjs +1 -1
  552. package/dist/ui/switch.d.cts +2 -2
  553. package/dist/ui/switch.d.ts +2 -2
  554. package/dist/ui/switch.js +1 -1
  555. package/dist/ui/table.cjs +1 -1
  556. package/dist/ui/table.d.cts +9 -9
  557. package/dist/ui/table.d.ts +9 -9
  558. package/dist/ui/table.js +1 -1
  559. package/dist/ui/tabs.cjs +1 -1
  560. package/dist/ui/tabs.d.cts +5 -5
  561. package/dist/ui/tabs.d.ts +5 -5
  562. package/dist/ui/tabs.js +1 -1
  563. package/dist/ui/textarea.cjs +1 -1
  564. package/dist/ui/textarea.d.cts +2 -2
  565. package/dist/ui/textarea.d.ts +2 -2
  566. package/dist/ui/textarea.js +1 -1
  567. package/dist/ui/toggle-group.cjs +1 -1
  568. package/dist/ui/toggle-group.cjs.map +1 -1
  569. package/dist/ui/toggle-group.d.cts +4 -4
  570. package/dist/ui/toggle-group.d.ts +4 -4
  571. package/dist/ui/toggle-group.js +1 -1
  572. package/dist/ui/toggle-group.js.map +1 -1
  573. package/dist/ui/toggle.cjs +1 -1
  574. package/dist/ui/toggle.d.cts +1 -1
  575. package/dist/ui/toggle.d.ts +1 -1
  576. package/dist/ui/toggle.js +1 -1
  577. package/dist/ui/tooltip.cjs +1 -1
  578. package/dist/ui/tooltip.d.cts +1 -1
  579. package/dist/ui/tooltip.d.ts +1 -1
  580. package/package.json +26 -14
  581. package/dist/add-new-DfniMrHa.js.map +0 -1
  582. package/dist/add-new-dgznne6n.cjs +0 -2
  583. package/dist/add-new-dgznne6n.cjs.map +0 -1
  584. package/dist/alert-dialog-BgEaBYoh.cjs +0 -2
  585. package/dist/alert-dialog-BgEaBYoh.cjs.map +0 -1
  586. package/dist/alert-dialog-UwGNuTYk.js.map +0 -1
  587. package/dist/avatar-B4pklWJt.cjs +0 -2
  588. package/dist/avatar-B4pklWJt.cjs.map +0 -1
  589. package/dist/badge-CsA-JCDX.cjs +0 -2
  590. package/dist/badge-CsA-JCDX.cjs.map +0 -1
  591. package/dist/button-CuV2l4ge.cjs +0 -2
  592. package/dist/button-CuV2l4ge.cjs.map +0 -1
  593. package/dist/button-DhQJ9Ey8.js.map +0 -1
  594. package/dist/button-variants-CCiseNSC.cjs +0 -2
  595. package/dist/button-variants-CCiseNSC.cjs.map +0 -1
  596. package/dist/calendar-C2yGJ9AV.js.map +0 -1
  597. package/dist/calendar-Fjm1d0mU.cjs +0 -2
  598. package/dist/calendar-Fjm1d0mU.cjs.map +0 -1
  599. package/dist/card-Pnxpehsp.cjs +0 -2
  600. package/dist/card-Pnxpehsp.cjs.map +0 -1
  601. package/dist/command-DHGZlBKd.cjs +0 -2
  602. package/dist/command-DHGZlBKd.cjs.map +0 -1
  603. package/dist/command-DhSE6UaR.js.map +0 -1
  604. package/dist/date-2wue8L-1.cjs +0 -2
  605. package/dist/date-2wue8L-1.cjs.map +0 -1
  606. package/dist/date-BuPl--Fc.js.map +0 -1
  607. package/dist/dialog-B2LS2JLb.js.map +0 -1
  608. package/dist/dialog-BSdn3QaW.cjs +0 -2
  609. package/dist/dialog-BSdn3QaW.cjs.map +0 -1
  610. package/dist/dist-D0uO1qIz.cjs +0 -2
  611. package/dist/drawer-COD1n5aA.js.map +0 -1
  612. package/dist/drawer-CsCzBHvx.cjs +0 -2
  613. package/dist/drawer-CsCzBHvx.cjs.map +0 -1
  614. package/dist/dropdown-menu-Brlye320.js.map +0 -1
  615. package/dist/dropdown-menu-DwI8o0uQ.cjs +0 -2
  616. package/dist/dropdown-menu-DwI8o0uQ.cjs.map +0 -1
  617. package/dist/error-dialog-BF1VNZXk.js.map +0 -1
  618. package/dist/error-dialog-C3b4fqAI.cjs +0 -2
  619. package/dist/error-dialog-C3b4fqAI.cjs.map +0 -1
  620. package/dist/flex-DS4mxjtf.cjs +0 -2
  621. package/dist/flex-DS4mxjtf.cjs.map +0 -1
  622. package/dist/form-BT1TbgK6.js +0 -2
  623. package/dist/form-BT1TbgK6.js.map +0 -1
  624. package/dist/form-DyH5iWq7.cjs +0 -2
  625. package/dist/form-DyH5iWq7.cjs.map +0 -1
  626. package/dist/form-wrapper-CI2iMUNJ.cjs +0 -2
  627. package/dist/form-wrapper-CI2iMUNJ.cjs.map +0 -1
  628. package/dist/form-wrapper-DaguHv9W.js +0 -2
  629. package/dist/form-wrapper-DaguHv9W.js.map +0 -1
  630. package/dist/image-j62jo7bK.cjs +0 -2
  631. package/dist/image-j62jo7bK.cjs.map +0 -1
  632. package/dist/input-BtT8HfYE.js.map +0 -1
  633. package/dist/input-DfGojpRF.cjs +0 -2
  634. package/dist/input-DfGojpRF.cjs.map +0 -1
  635. package/dist/label-CHNSlaoz.cjs +0 -2
  636. package/dist/label-CHNSlaoz.cjs.map +0 -1
  637. package/dist/multi-select-C0dFenI-.cjs +0 -2
  638. package/dist/multi-select-C0dFenI-.cjs.map +0 -1
  639. package/dist/multi-select-l0HITJuv.js +0 -2
  640. package/dist/multi-select-l0HITJuv.js.map +0 -1
  641. package/dist/paragraph-BLvW7xdo.cjs +0 -2
  642. package/dist/paragraph-BLvW7xdo.cjs.map +0 -1
  643. package/dist/popover-BJWOgxQ5.js.map +0 -1
  644. package/dist/popover-BrDe5Jb8.cjs +0 -2
  645. package/dist/popover-BrDe5Jb8.cjs.map +0 -1
  646. package/dist/progress-DzBPViJg.js.map +0 -1
  647. package/dist/progress-RnZp4jUA.cjs +0 -2
  648. package/dist/progress-RnZp4jUA.cjs.map +0 -1
  649. package/dist/refresh-BiOPtbhd.js.map +0 -1
  650. package/dist/refresh-DgFpv8mw.cjs +0 -2
  651. package/dist/refresh-DgFpv8mw.cjs.map +0 -1
  652. package/dist/scroll-area-BJYI14s5.js.map +0 -1
  653. package/dist/scroll-area-slD5Jekm.cjs +0 -2
  654. package/dist/scroll-area-slD5Jekm.cjs.map +0 -1
  655. package/dist/search-input--FQFzdW3.js.map +0 -1
  656. package/dist/search-input-DV8zjsMQ.cjs +0 -2
  657. package/dist/search-input-DV8zjsMQ.cjs.map +0 -1
  658. package/dist/select-Ce-YROpe.cjs +0 -2
  659. package/dist/select-Ce-YROpe.cjs.map +0 -1
  660. package/dist/select-Di8fOKVF.js.map +0 -1
  661. package/dist/separator-C7HQ2ThL.js.map +0 -1
  662. package/dist/separator-WF5zTNGS.cjs +0 -2
  663. package/dist/separator-WF5zTNGS.cjs.map +0 -1
  664. package/dist/sheet-E0gvN9Gp.js.map +0 -1
  665. package/dist/sheet-cjXJAfUE.cjs +0 -2
  666. package/dist/sheet-cjXJAfUE.cjs.map +0 -1
  667. package/dist/sidebar-B6s0ZZHA.cjs +0 -2
  668. package/dist/sidebar-B6s0ZZHA.cjs.map +0 -1
  669. package/dist/sidebar-CBEPWmnf.js.map +0 -1
  670. package/dist/skeleton-BA-3d3bn.cjs +0 -2
  671. package/dist/skeleton-BA-3d3bn.cjs.map +0 -1
  672. package/dist/switch-C7foFKpS.js.map +0 -1
  673. package/dist/switch-DOgkZVAD.cjs +0 -2
  674. package/dist/switch-DOgkZVAD.cjs.map +0 -1
  675. package/dist/table-CKNAm27W.js.map +0 -1
  676. package/dist/table-CzMEpN9D.cjs +0 -2
  677. package/dist/table-CzMEpN9D.cjs.map +0 -1
  678. package/dist/tabs-D4uObFGW.js.map +0 -1
  679. package/dist/tabs-MolLf09Q.cjs +0 -2
  680. package/dist/tabs-MolLf09Q.cjs.map +0 -1
  681. package/dist/textarea-Ewj89Eq3.cjs +0 -2
  682. package/dist/textarea-Ewj89Eq3.cjs.map +0 -1
  683. package/dist/textarea-n8OO0QsI.js.map +0 -1
  684. package/dist/title-DONX1fR6.cjs +0 -2
  685. package/dist/title-DONX1fR6.cjs.map +0 -1
  686. package/dist/title-itXqz0us.js.map +0 -1
  687. package/dist/toggle-D0B4Ba4H.cjs +0 -2
  688. package/dist/toggle-D0B4Ba4H.cjs.map +0 -1
  689. package/dist/toggle-DuNq0es1.js.map +0 -1
  690. package/dist/tooltip-DXvcPsvM.cjs +0 -2
  691. package/dist/tooltip-DXvcPsvM.cjs.map +0 -1
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./button-BaLuKPtr.cjs`),n=require(`./skeleton-BC2E_ohw.cjs`),r=require(`./tooltip-uaF-pxx8.cjs`),i=require(`./separator-DMMoR-d2.cjs`),a=require(`./input-D_tClptL.cjs`),o=require(`./sheet-Bua5MlcG.cjs`);let s=require(`lucide-react`);s=e.__toESM(s);let c=require(`@customafk/react-toolkit/utils`);c=e.__toESM(c);let l=require(`react`);l=e.__toESM(l);let u=require(`react/jsx-runtime`);u=e.__toESM(u);let d=require(`class-variance-authority`);d=e.__toESM(d);let f=require(`radix-ui`);f=e.__toESM(f);let p=require(`@customafk/react-toolkit/hooks/useMobile`);p=e.__toESM(p);const m=`detai_dialog_sidebar_state`,h=3600*24*7,g=`16rem`,_=`18rem`,v=`3rem`,y=`p`,b=(0,l.createContext)(null);function x(){let e=(0,l.useContext)(b);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function S({defaultOpen:e=!0,open:t,onOpenChange:n,className:i,style:a,children:o,...s}){let d=(0,p.useIsMobile)(),[f,m]=(0,l.useState)(!1),[h,g]=(0,l.useState)(e),_=t??h,v=(0,l.useCallback)(e=>{let t=typeof e==`function`?e(_):e;n?n(t):g(t),document.cookie=`detai_dialog_sidebar_state=${t}; path=/; max-age=604800`},[n,_]),y=(0,l.useCallback)(()=>d?m(e=>!e):v(e=>!e),[d,v]);(0,l.useEffect)(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y]);let x=_?`expanded`:`collapsed`,S=(0,l.useMemo)(()=>({state:x,isMobile:d,toggleSidebar:y,open:_,setOpen:v,openMobile:f,setOpenMobile:m}),[x,_,v,f,m,y]);return(0,u.jsx)(b.Provider,{value:S,children:(0,u.jsx)(r.TooltipProvider,{delayDuration:0,children:(0,u.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":`16rem`,"--sidebar-width-icon":`3rem`,...a},className:(0,c.cn)(`group/sidebar-wrapper`,`has-data-[variant=inset]:bg-sidebar`,`flex min-h-dvh w-full`,i),...s,children:o})})})}function C({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a}){let{state:s,isMobile:l,openMobile:d,setOpenMobile:f}=x();return n===`none`?(0,u.jsx)(`div`,{"data-slot":`sidebar`,className:(0,c.cn)(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):l?(0,u.jsx)(o.Sheet,{open:d,onOpenChange:f,...a,children:(0,u.jsxs)(o.SheetContent,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:{"--sidebar-width":`18rem`},side:e,children:[(0,u.jsxs)(o.SheetHeader,{className:`sr-only`,children:[(0,u.jsx)(o.SheetTitle,{children:`Sidebar`}),(0,u.jsx)(o.SheetDescription,{children:`Displays the mobile sidebar.`})]}),(0,u.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,u.jsxs)(`div`,{className:`group peer text-sidebar-foreground hidden md:block`,"data-state":s,"data-collapsible":s===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,u.jsx)(`div`,{"data-slot":`sidebar-gap`,className:(0,c.cn)(`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)`)}),(0,u.jsx)(`div`,{"data-slot":`sidebar-container`,className:(0,c.cn)(`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:(0,u.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:(0,c.cn)(`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 w({className:e,onClick:n,...r}){let{toggleSidebar:i}=x();return(0,u.jsxs)(t.Button,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,color:`secondary`,size:`icon`,className:(0,c.cn)(`size-10 rounded-full [&_svg]:!size-6`,e),onClick:e=>{n?.(e),i()},...r,children:[(0,u.jsx)(s.MenuIcon,{}),(0,u.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function T({className:e,...t}){let{toggleSidebar:n}=x();return(0,u.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:n,title:`Toggle Sidebar`,className:(0,c.cn)(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear sm:flex`,`after:absolute`,`after:inset-y-0`,`after:left-1/2 after:w-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 E({className:e,...t}){return(0,u.jsx)(`main`,{"data-slot":`sidebar-inset`,className:(0,c.cn)(`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 D({className:e,...t}){return(0,u.jsx)(a.Input,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:(0,c.cn)(`bg-background h-8 w-full shadow-none`,e),...t})}function O({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:(0,c.cn)(`flex flex-col gap-2 p-2`,e),...t})}function k({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:(0,c.cn)(`flex flex-col gap-2 p-2`,e),...t})}function A({className:e,...t}){return(0,u.jsx)(i.Separator,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:(0,c.cn)(`bg-sidebar-border mx-2 w-auto`,e),...t})}function j({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:(0,c.cn)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto`,`group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function M({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:(0,c.cn)(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function N({className:e,asChild:t=!1,...n}){let r=t?f.Slot.Slot:`div`;return(0,u.jsx)(r,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:(0,c.cn)(`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 P({className:e,asChild:t=!1,...n}){let r=t?f.Slot.Slot:`button`;return(0,u.jsx)(r,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:(0,c.cn)(`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 F({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:(0,c.cn)(`w-full text-sm`,e),...t})}function I({className:e,...t}){return(0,u.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:(0,c.cn)(`flex w-full min-w-0 flex-col gap-1`,e),...t})}function L({className:e,...t}){return(0,u.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:(0,c.cn)(`group/menu-item relative`,e),...t})}const R=(0,d.cva)([`peer/menu-button`,`cursor-pointer`,`flex w-full items-center gap-2`,`overflow-hidden rounded-md p-2 outline-hidden`,`text-left truncate`,`transition-[color,width,height,padding]`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`active:bg-sidebar-accent`,`active:text-sidebar-accent-foreground`,`disabled:pointer-events-none`,`disabled:opacity-50`,`group-has-data-[sidebar=menu-action]/menu-item:pr-8`,`aria-disabled:pointer-events-none`,`aria-disabled:opacity-50`,`data-[active=true]:bg-sidebar-primary-muted`,`data-[active=true]:font-medium`,`data-[active=true]:text-sidebar-primary`,`data-[state=open]:hover:bg-sidebar-accent`,`data-[state=open]:hover:text-sidebar-accent-foreground`,`group-data-[collapsible=icon]:size-8!`,`group-data-[collapsible=icon]:p-2!`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`[&>span:last-child]:truncate`],{variants:{variant:{default:`hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground/80`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function z({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:i=`default`,tooltip:a,className:o,...s}){let l=e?f.Slot.Slot:`button`,{state:d}=x(),p=(0,u.jsx)(l,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":i,"data-active":t,className:(0,c.cn)(R({variant:n,size:i}),o),...s});return a?(typeof a==`string`&&(a={children:a}),(0,u.jsxs)(r.Tooltip,{children:[(0,u.jsx)(r.TooltipTrigger,{asChild:!0,children:p}),(0,u.jsx)(r.TooltipContent,{side:`right`,align:`center`,hidden:d!==`collapsed`,...a})]})):p}function B({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?f.Slot.Slot:`button`;return(0,u.jsx)(i,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:(0,c.cn)(`text-sidebar-foreground ring-sidebar-ring`,`hover:bg-sidebar-accent`,`hover:text-sidebar-accent-foreground`,`peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform`,`focus-visible:ring-2`,`[&>svg]:size-4`,`[&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,n&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,n&&`$group-focus-within/menu-item:opacity-100`,n&&`group-hover/menu-item:opacity-100`,n&&`data-[state=open]:opacity-100 md:opacity-0`,e),...r})}function V({className:e,...t}){return(0,u.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:(0,c.cn)(`text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground`,`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function H({className:e,showIcon:t=!1,...r}){let i=(0,l.useMemo)(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,u.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:(0,c.cn)(`flex h-8 items-center gap-2 rounded-md px-2`,e),...r,children:[t&&(0,u.jsx)(n.Skeleton,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,u.jsx)(n.Skeleton,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})}function U({className:e,...t}){return(0,u.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:(0,c.cn)(`border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...t})}function W({className:e,...t}){return(0,u.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:(0,c.cn)(`group/menu-sub-item relative`,e),...t})}function G({asChild:e=!1,size:t=`md`,isActive:n=!1,className:r,...i}){let a=e?f.Slot.Slot:`a`;return(0,u.jsx)(a,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:(0,c.cn)(`text-sidebar-foreground ring-sidebar-ring`,`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden`,`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})}Object.defineProperty(exports,`DetailDialogSidebarContent`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`DetailDialogSidebarFooter`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`DetailDialogSidebarGroup`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`DetailDialogSidebarGroupAction`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`DetailDialogSidebarGroupContent`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`DetailDialogSidebarGroupLabel`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`DetailDialogSidebarHeader`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`DetailDialogSidebarMenu`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`DetailDialogSidebarMenuAction`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`DetailDialogSidebarMenuBadge`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`DetailDialogSidebarMenuButton`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`DetailDialogSidebarMenuItem`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`DetailDialogSidebarMenuSkeleton`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`DetailDialogSidebarMenuSub`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`DetailDialogSidebarMenuSubButton`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`DetailDialogSidebarMenuSubItem`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`DetailDialogSidebarRail`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`DetailDialogSidebarSeparator`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`DetailDialogSidebarTrigger`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`Sidebar`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`SidebarInput`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`SidebarInset`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`SidebarProvider`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`useSidebar`,{enumerable:!0,get:function(){return x}});
2
+ //# sourceMappingURL=sidebar-BgMpq73J.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-BgMpq73J.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-dvh 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-DhQJ9Ey8.js";import{Skeleton as t}from"./skeleton-ByN-MrQO.js";import{Tooltip as n,TooltipContent as r,TooltipProvider as i,TooltipTrigger as a}from"./tooltip-BTrjCwd8.js";import{Input as o}from"./input-BtT8HfYE.js";import{Separator as s}from"./separator-C7HQ2ThL.js";import{Sheet as c,SheetContent as l,SheetDescription as u,SheetHeader as d,SheetTitle as f}from"./sheet-E0gvN9Gp.js";import{MenuIcon as p}from"lucide-react";import{cn as m}from"@customafk/react-toolkit/utils";import{createContext as h,useCallback as g,useContext as _,useEffect as v,useMemo as y,useState as b}from"react";import{jsx as x,jsxs as S}from"react/jsx-runtime";import{cva as C}from"class-variance-authority";import{Slot as w}from"radix-ui";import{useIsMobile as T}from"@customafk/react-toolkit/hooks/useMobile";const E=h(null);function D(){let e=_(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]=b(!1),[d,f]=b(e),p=t??d,h=g(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(()=>c?u(e=>!e):h(e=>!e),[c,h]);v(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),_())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let S=p?`expanded`:`collapsed`,C=y(()=>({state:S,isMobile:c,toggleSidebar:_,open:p,setOpen:h,openMobile:l,setOpenMobile:u}),[S,p,h,l,u,_]);return x(E.Provider,{value:C,children:x(i,{delayDuration:0,children:x(`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-dvh 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`?x(`div`,{"data-slot":`sidebar`,className:m(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):s?x(c,{open:p,onOpenChange:h,...a,children:S(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:[S(d,{className:`sr-only`,children:[x(f,{children:`Sidebar`}),x(u,{children:`Displays the mobile sidebar.`})]}),x(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):S(`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:[x(`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)`)}),x(`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:x(`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 S(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:[x(p,{}),x(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function j({className:e,...t}){let{toggleSidebar:n}=D();return x(`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 x(`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 x(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 x(`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 x(`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 x(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 x(`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 x(`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?w.Slot:`div`;return x(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?w.Slot:`button`;return x(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 x(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:m(`w-full text-sm`,e),...t})}function H({className:e,...t}){return x(`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 x(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:m(`group/menu-item relative`,e),...t})}const W=C([`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?w.Slot:`button`,{state:d}=D(),f=x(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}),S(n,{children:[x(a,{asChild:!0,children:f}),x(r,{side:`right`,align:`center`,hidden:d!==`collapsed`,...s})]})):f}function K({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?w.Slot:`button`;return x(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 x(`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=y(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return S(`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&&x(t,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),x(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 x(`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 x(`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?w.Slot:`a`;return x(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-CBEPWmnf.js.map
1
+ import{Button as e}from"./button-CYsnwc1-.js";import{Skeleton as t}from"./skeleton-ByN-MrQO.js";import{Tooltip as n,TooltipContent as r,TooltipProvider as i,TooltipTrigger as a}from"./tooltip-BTrjCwd8.js";import{Separator as o}from"./separator-D17HxS2f.js";import{Input as s}from"./input-BStypTnq.js";import{Sheet as c,SheetContent as l,SheetDescription as u,SheetHeader as d,SheetTitle as f}from"./sheet-BhyEuJtA.js";import{MenuIcon as p}from"lucide-react";import{cn as m}from"@customafk/react-toolkit/utils";import{createContext as h,useCallback as g,useContext as _,useEffect as v,useMemo as y,useState as b}from"react";import{jsx as x,jsxs as S}from"react/jsx-runtime";import{cva as C}from"class-variance-authority";import{Slot as w}from"radix-ui";import{useIsMobile as T}from"@customafk/react-toolkit/hooks/useMobile";const E=h(null);function D(){let e=_(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]=b(!1),[d,f]=b(e),p=t??d,h=g(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(()=>c?u(e=>!e):h(e=>!e),[c,h]);v(()=>{let e=e=>{e.key===`p`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),_())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_]);let S=p?`expanded`:`collapsed`,C=y(()=>({state:S,isMobile:c,toggleSidebar:_,open:p,setOpen:h,openMobile:l,setOpenMobile:u}),[S,p,h,l,u,_]);return x(E.Provider,{value:C,children:x(i,{delayDuration:0,children:x(`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-dvh 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`?x(`div`,{"data-slot":`sidebar`,className:m(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,r),...a,children:i}):s?x(c,{open:p,onOpenChange:h,...a,children:S(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:[S(d,{className:`sr-only`,children:[x(f,{children:`Sidebar`}),x(u,{children:`Displays the mobile sidebar.`})]}),x(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):S(`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:[x(`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)`)}),x(`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:x(`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 S(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:[x(p,{}),x(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function j({className:e,...t}){let{toggleSidebar:n}=D();return x(`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 x(`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 x(s,{"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 x(`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 x(`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 x(o,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:m(`bg-sidebar-border mx-2 w-auto`,e),...t})}function L({className:e,...t}){return x(`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 x(`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?w.Slot:`div`;return x(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?w.Slot:`button`;return x(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 x(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:m(`w-full text-sm`,e),...t})}function H({className:e,...t}){return x(`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 x(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:m(`group/menu-item relative`,e),...t})}const W=C([`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?w.Slot:`button`,{state:d}=D(),f=x(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}),S(n,{children:[x(a,{asChild:!0,children:f}),x(r,{side:`right`,align:`center`,hidden:d!==`collapsed`,...s})]})):f}function K({className:e,asChild:t=!1,showOnHover:n=!1,...r}){let i=t?w.Slot:`button`;return x(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 x(`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=y(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return S(`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&&x(t,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),x(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 x(`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 x(`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?w.Slot:`a`;return x(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-Bs42CUTZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-Bs42CUTZ.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-dvh 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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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);function r({className:e,...r}){return(0,n.jsx)(`div`,{"data-slot":`skeleton`,className:(0,t.cn)(`bg-muted-muted animate-pulse rounded-md`,e),...r})}Object.defineProperty(exports,`Skeleton`,{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=skeleton-BC2E_ohw.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton-BC2E_ohw.cjs","names":[],"sources":["../packages/components/ui/skeleton.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted-muted animate-pulse rounded-md', className)} {...props} />;\n}\n\nexport { Skeleton };\n"],"mappings":"yJAGA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,OAAO,EAAA,EAAA,KAAC,MAAA,CAAI,YAAU,WAAW,WAAA,EAAA,EAAA,IAAc,0CAA2C,EAAU,CAAE,GAAI,GAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-ByN-MrQO.js","names":[],"sources":["../packages/components/ui/skeleton.tsx"],"sourcesContent":["'use client'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted-muted animate-pulse rounded-md', className)} {...props} />\n}\n\nexport { Skeleton }\n"],"mappings":"4FAGA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,OAAO,EAAC,MAAA,CAAI,YAAU,WAAW,UAAW,EAAG,0CAA2C,GAAY,GAAI"}
1
+ {"version":3,"file":"skeleton-ByN-MrQO.js","names":[],"sources":["../packages/components/ui/skeleton.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"skeleton\" className={cn('bg-muted-muted animate-pulse rounded-md', className)} {...props} />;\n}\n\nexport { Skeleton };\n"],"mappings":"4FAGA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAsC,CACtE,OAAO,EAAC,MAAA,CAAI,YAAU,WAAW,UAAW,EAAG,0CAA2C,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +1,2 @@
1
1
  import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{Switch as n}from"radix-ui";function r({className:r,...i}){return t(n.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:t(n.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-C7foFKpS.js.map
2
+ //# sourceMappingURL=switch-DwBg-iL4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-DwBg-iL4.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,EACD,CACD,GAAI,WAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`radix-ui`);r=e.__toESM(r);function i({className:e,...i}){return(0,n.jsx)(r.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,n.jsx)(r.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-o_YbWKw4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch-o_YbWKw4.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":"kMAKA,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,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../chunk-CUT6urMc.cjs`),t=e.__toESM(require(`react`)),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`@react-oauth/google`)),i=({isDisabled:e,onGoogleLoginSuccess:n})=>{let i=(0,t.useCallback)(async e=>{!e.clientId||!e.credential||!e.select_by||await n?.({clientId:e.clientId,credential:e.credential,select_by:e.select_by})},[n]);return(0,r.useGoogleOneTapLogin)({disabled:e,use_fedcm_for_prompt:!1,onSuccess:i}),null},a=({clientId:e,isDisabled:t,onGoogleLoginSuccess:a,children:o})=>(0,n.jsxs)(r.GoogleOAuthProvider,{clientId:e,children:[o,(0,n.jsx)(i,{isDisabled:t,onGoogleLoginSuccess:a})]});var o=a;exports.Google=i,exports.default=o;
1
+ Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../chunk-CUT6urMc.cjs`);let t=require(`react`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`@react-oauth/google`);r=e.__toESM(r);const i=({isDisabled:e,onGoogleLoginSuccess:n})=>{let i=(0,t.useCallback)(async e=>{!e.clientId||!e.credential||!e.select_by||await n?.({clientId:e.clientId,credential:e.credential,select_by:e.select_by})},[n]);return(0,r.useGoogleOneTapLogin)({disabled:e,use_fedcm_for_prompt:!1,onSuccess:i}),null},a=({clientId:e,isDisabled:t,onGoogleLoginSuccess:a,children:o})=>(0,n.jsxs)(r.GoogleOAuthProvider,{clientId:e,children:[o,(0,n.jsx)(i,{isDisabled:t,onGoogleLoginSuccess:a})]});var o=a;exports.Google=i,exports.default=o;
2
2
  //# sourceMappingURL=google.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.cjs","names":["Google: React.FC<GoogleProps>","ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>","GoogleOAuthProvider"],"sources":["../../packages/components/systems/google.tsx"],"sourcesContent":["import { useCallback } from 'react'\n\nimport { type CredentialResponse, GoogleOAuthProvider, useGoogleOneTapLogin } from '@react-oauth/google'\n\ntype GoogleProps = {\n isDisabled: boolean\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>\n}\nexport const Google: React.FC<GoogleProps> = ({ isDisabled, onGoogleLoginSuccess }) => {\n const handleSignIn = useCallback(\n async (response: CredentialResponse) => {\n if (!response.clientId || !response.credential || !response.select_by) return\n await onGoogleLoginSuccess?.({\n clientId: response.clientId,\n credential: response.credential,\n select_by: response.select_by,\n })\n },\n [onGoogleLoginSuccess],\n )\n useGoogleOneTapLogin({\n disabled: isDisabled,\n use_fedcm_for_prompt: false,\n onSuccess: handleSignIn,\n })\n return null\n}\n\ntype ReactOAuthProps = {\n clientId: string\n isDisabled: boolean\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>\n}\nconst ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>> = ({ clientId, isDisabled, onGoogleLoginSuccess, children }) => {\n return (\n <GoogleOAuthProvider clientId={clientId}>\n {children}\n <Google isDisabled={isDisabled} onGoogleLoginSuccess={onGoogleLoginSuccess} />\n </GoogleOAuthProvider>\n )\n}\n\nexport default ReactOAuth\n"],"mappings":"oNAQaA,GAAiC,CAAE,aAAY,0BAA2B,CACrF,IAAM,GAAA,EAAA,EAAA,aACJ,KAAO,IAAiC,CAClC,CAAC,EAAS,UAAY,CAAC,EAAS,YAAc,CAAC,EAAS,WAC5D,MAAM,IAAuB,CAC3B,SAAU,EAAS,SACnB,WAAY,EAAS,WACrB,UAAW,EAAS,aAGxB,CAAC,IAOH,OALA,EAAA,EAAA,sBAAqB,CACnB,SAAU,EACV,qBAAsB,GACtB,UAAW,IAEN,MAQHC,GAAkE,CAAE,WAAU,aAAY,uBAAsB,eAElH,EAAA,EAAA,MAACC,EAAAA,oBAAAA,CAA8B,qBAC5B,GACD,EAAA,EAAA,KAAC,EAAA,CAAmB,aAAkC,4BAK5D,IAAA,EAAe"}
1
+ {"version":3,"file":"google.cjs","names":["Google: React.FC<GoogleProps>","ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>","GoogleOAuthProvider"],"sources":["../../packages/components/systems/google.tsx"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { type CredentialResponse, GoogleOAuthProvider, useGoogleOneTapLogin } from '@react-oauth/google';\n\ntype GoogleProps = {\n isDisabled: boolean;\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;\n};\nexport const Google: React.FC<GoogleProps> = ({ isDisabled, onGoogleLoginSuccess }) => {\n const handleSignIn = useCallback(\n async (response: CredentialResponse) => {\n if (!response.clientId || !response.credential || !response.select_by) return;\n await onGoogleLoginSuccess?.({\n clientId: response.clientId,\n credential: response.credential,\n select_by: response.select_by,\n });\n },\n [onGoogleLoginSuccess]\n );\n useGoogleOneTapLogin({\n disabled: isDisabled,\n use_fedcm_for_prompt: false,\n onSuccess: handleSignIn,\n });\n return null;\n};\n\ntype ReactOAuthProps = {\n clientId: string;\n isDisabled: boolean;\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;\n};\nconst ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>> = ({ clientId, isDisabled, onGoogleLoginSuccess, children }) => {\n return (\n <GoogleOAuthProvider clientId={clientId}>\n {children}\n <Google isDisabled={isDisabled} onGoogleLoginSuccess={onGoogleLoginSuccess} />\n </GoogleOAuthProvider>\n );\n};\n\nexport default ReactOAuth;\n"],"mappings":"4OAQA,MAAaA,GAAiC,CAAE,aAAY,0BAA2B,CACrF,IAAM,GAAA,EAAA,EAAA,aACJ,KAAO,IAAiC,CAClC,CAAC,EAAS,UAAY,CAAC,EAAS,YAAc,CAAC,EAAS,WAC5D,MAAM,IAAuB,CAC3B,SAAU,EAAS,SACnB,WAAY,EAAS,WACrB,UAAW,EAAS,UACrB,CAAC,EAEJ,CAAC,EAAqB,CACvB,CAMD,OALA,EAAA,EAAA,sBAAqB,CACnB,SAAU,EACV,qBAAsB,GACtB,UAAW,EACZ,CAAC,CACK,MAQHC,GAAkE,CAAE,WAAU,aAAY,uBAAsB,eAElH,EAAA,EAAA,MAACC,EAAAA,oBAAAA,CAA8B,qBAC5B,GACD,EAAA,EAAA,KAAC,EAAA,CAAmB,aAAkC,wBAAwB,CAAA,EAC1D,CAI1B,IAAA,EAAe"}
@@ -1,2 +1,2 @@
1
- import{useCallback as e}from"react";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{GoogleOAuthProvider as r,useGoogleOneTapLogin as i}from"@react-oauth/google";const a=({isDisabled:t,onGoogleLoginSuccess:n})=>{let r=e(async e=>{!e.clientId||!e.credential||!e.select_by||await n?.({clientId:e.clientId,credential:e.credential,select_by:e.select_by})},[n]);return i({disabled:t,use_fedcm_for_prompt:!1,onSuccess:r}),null},o=({clientId:e,isDisabled:i,onGoogleLoginSuccess:o,children:s})=>n(r,{clientId:e,children:[s,t(a,{isDisabled:i,onGoogleLoginSuccess:o})]});var s=o;export{a as Google,s as default};
1
+ import{useCallback as e}from"react";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{GoogleOAuthProvider as r,useGoogleOneTapLogin as i}from"@react-oauth/google";const a=({isDisabled:t,onGoogleLoginSuccess:n})=>{let r=e(async e=>{!e.clientId||!e.credential||!e.select_by||await n?.({clientId:e.clientId,credential:e.credential,select_by:e.select_by})},[n]);return i({disabled:t,use_fedcm_for_prompt:!1,onSuccess:r}),null};var o=({clientId:e,isDisabled:i,onGoogleLoginSuccess:o,children:s})=>n(r,{clientId:e,children:[s,t(a,{isDisabled:i,onGoogleLoginSuccess:o})]});export{a as Google,o as default};
2
2
  //# sourceMappingURL=google.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.js","names":["Google: React.FC<GoogleProps>","ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>"],"sources":["../../packages/components/systems/google.tsx"],"sourcesContent":["import { useCallback } from 'react'\n\nimport { type CredentialResponse, GoogleOAuthProvider, useGoogleOneTapLogin } from '@react-oauth/google'\n\ntype GoogleProps = {\n isDisabled: boolean\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>\n}\nexport const Google: React.FC<GoogleProps> = ({ isDisabled, onGoogleLoginSuccess }) => {\n const handleSignIn = useCallback(\n async (response: CredentialResponse) => {\n if (!response.clientId || !response.credential || !response.select_by) return\n await onGoogleLoginSuccess?.({\n clientId: response.clientId,\n credential: response.credential,\n select_by: response.select_by,\n })\n },\n [onGoogleLoginSuccess],\n )\n useGoogleOneTapLogin({\n disabled: isDisabled,\n use_fedcm_for_prompt: false,\n onSuccess: handleSignIn,\n })\n return null\n}\n\ntype ReactOAuthProps = {\n clientId: string\n isDisabled: boolean\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>\n}\nconst ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>> = ({ clientId, isDisabled, onGoogleLoginSuccess, children }) => {\n return (\n <GoogleOAuthProvider clientId={clientId}>\n {children}\n <Google isDisabled={isDisabled} onGoogleLoginSuccess={onGoogleLoginSuccess} />\n </GoogleOAuthProvider>\n )\n}\n\nexport default ReactOAuth\n"],"mappings":"0KAQA,MAAaA,GAAiC,CAAE,aAAY,0BAA2B,CACrF,IAAM,EAAe,EACnB,KAAO,IAAiC,CAClC,CAAC,EAAS,UAAY,CAAC,EAAS,YAAc,CAAC,EAAS,WAC5D,MAAM,IAAuB,CAC3B,SAAU,EAAS,SACnB,WAAY,EAAS,WACrB,UAAW,EAAS,aAGxB,CAAC,IAOH,OALA,EAAqB,CACnB,SAAU,EACV,qBAAsB,GACtB,UAAW,IAEN,MAQHC,GAAkE,CAAE,WAAU,aAAY,uBAAsB,cAElH,EAAC,EAAA,CAA8B,qBAC5B,EACD,EAAC,EAAA,CAAmB,aAAkC,4BAK5D,IAAA,EAAe"}
1
+ {"version":3,"file":"google.js","names":["Google: React.FC<GoogleProps>","ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>"],"sources":["../../packages/components/systems/google.tsx"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { type CredentialResponse, GoogleOAuthProvider, useGoogleOneTapLogin } from '@react-oauth/google';\n\ntype GoogleProps = {\n isDisabled: boolean;\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;\n};\nexport const Google: React.FC<GoogleProps> = ({ isDisabled, onGoogleLoginSuccess }) => {\n const handleSignIn = useCallback(\n async (response: CredentialResponse) => {\n if (!response.clientId || !response.credential || !response.select_by) return;\n await onGoogleLoginSuccess?.({\n clientId: response.clientId,\n credential: response.credential,\n select_by: response.select_by,\n });\n },\n [onGoogleLoginSuccess]\n );\n useGoogleOneTapLogin({\n disabled: isDisabled,\n use_fedcm_for_prompt: false,\n onSuccess: handleSignIn,\n });\n return null;\n};\n\ntype ReactOAuthProps = {\n clientId: string;\n isDisabled: boolean;\n onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;\n};\nconst ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>> = ({ clientId, isDisabled, onGoogleLoginSuccess, children }) => {\n return (\n <GoogleOAuthProvider clientId={clientId}>\n {children}\n <Google isDisabled={isDisabled} onGoogleLoginSuccess={onGoogleLoginSuccess} />\n </GoogleOAuthProvider>\n );\n};\n\nexport default ReactOAuth;\n"],"mappings":"0KAQA,MAAaA,GAAiC,CAAE,aAAY,0BAA2B,CACrF,IAAM,EAAe,EACnB,KAAO,IAAiC,CAClC,CAAC,EAAS,UAAY,CAAC,EAAS,YAAc,CAAC,EAAS,WAC5D,MAAM,IAAuB,CAC3B,SAAU,EAAS,SACnB,WAAY,EAAS,WACrB,UAAW,EAAS,UACrB,CAAC,EAEJ,CAAC,EAAqB,CACvB,CAMD,OALA,EAAqB,CACnB,SAAU,EACV,qBAAsB,GACtB,UAAW,EACZ,CAAC,CACK,MAiBT,IAAA,GATwE,CAAE,WAAU,aAAY,uBAAsB,cAElH,EAAC,EAAA,CAA8B,qBAC5B,EACD,EAAC,EAAA,CAAmB,aAAkC,wBAAwB,CAAA,EAC1D"}
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`);require(`../dist-D0uO1qIz.cjs`),require(`../button-variants-CCiseNSC.cjs`);const t=require(`../button-CuV2l4ge.cjs`),n=require(`../flex-DS4mxjtf.cjs`);require(`../paragraph-BLvW7xdo.cjs`),require(`../input-DfGojpRF.cjs`);const r=require(`../dropdown-menu-DwI8o0uQ.cjs`),i=require(`../scroll-area-slD5Jekm.cjs`),a=require(`../table-CzMEpN9D.cjs`),o=require(`../add-new-dgznne6n.cjs`),s=require(`../refresh-DgFpv8mw.cjs`),c=require(`../search-input-DV8zjsMQ.cjs`),l=e.__toESM(require(`lucide-react`)),u=e.__toESM(require(`@customafk/react-toolkit/utils`)),d=e.__toESM(require(`react`)),f=e.__toESM(require(`react/jsx-runtime`)),p=e.__toESM(require(`@tanstack/react-table`)),m=e.__toESM(require(`@tanstack/react-virtual`)),h=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}},g=(0,d.memo)(({column:e})=>{let t=e.getIsSorted(),n=(0,d.useMemo)(()=>({asc:(0,f.jsx)(l.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,f.jsx)(l.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})}),[]);return t?n[t]:null});g.displayName=`SortingIndicator`;const _=(0,d.memo)(({column:e})=>{let n=typeof e.columnDef.header==`string`?e.columnDef.header:`Column`,i=(0,d.useCallback)(()=>e.pin(!1),[e]),a=(0,d.useCallback)(()=>e.pin(`left`),[e]),o=(0,d.useCallback)(()=>e.pin(`right`),[e]);return e.getCanPin()?e.getIsPinned()?(0,f.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:i,children:(0,f.jsx)(l.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,f.jsxs)(r.DropdownMenu,{children:[(0,f.jsx)(r.DropdownMenuTrigger,{asChild:!0,children:(0,f.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,f.jsx)(l.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,f.jsxs)(r.DropdownMenuContent,{align:`end`,children:[(0,f.jsxs)(r.DropdownMenuItem,{onClick:a,children:[(0,f.jsx)(l.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,f.jsxs)(r.DropdownMenuItem,{onClick:o,children:[(0,f.jsx)(l.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null});_.displayName=`PinControls`;const v=(0,d.memo)(({header:e})=>{let{column:t}=e,n=(0,d.useCallback)(e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))},[t]),r=t.getToggleSortingHandler();return e.isPlaceholder?(0,f.jsx)(`div`,{className:`flex items-center justify-between gap-2 truncate`}):(0,f.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[(0,f.jsxs)(`div`,{className:(0,u.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:r,onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,role:t.getCanSort()?`button`:void 0,children:[(0,f.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,f.jsx)(g,{column:t})]}),(0,f.jsx)(_,{column:t})]})});v.displayName=`HeaderContent`;const y=(0,d.memo)(({row:e,measureElement:t,virtualRow:n,onClickRow:r})=>{let i=(0,d.useCallback)(()=>{r&&r(e.id)},[e.id,r]);return(0,f.jsx)(a.TableRow,{"data-index":n.index,ref:e=>t(e),className:`absolute flex w-full cursor-pointer focus:outline-none`,style:{transform:`translateY(${n.start}px)`},onClick:i,tabIndex:r?0:void 0,role:r?`button`:void 0,children:e.getVisibleCells().map(e=>{let t=e.column.getIsPinned(),n=t===`left`&&e.column.getIsLastColumn(`left`),r=t===`right`&&e.column.getIsFirstColumn(`right`);return(0,f.jsx)(a.TableCell,{"data-pinned":t||void 0,"data-last-col":n?`left`:r?`right`:void 0,style:{...h(e.column),width:e.column.getSize()},className:(0,u.cn)(`flex overflow-hidden py-2.5`,`data-pinned:bg-background/90`,`[&[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`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})})});y.displayName=`DataTableRow`;const b=({table:e,isLoading:t,isFetching:n,allowFetchMore:r=!0,onClickRow:o,onFetchNextPage:s})=>{let c=(0,d.useRef)(null),{rows:p}=e.getRowModel(),g=(0,m.useVirtualizer)({count:p.length,getScrollElement:()=>c.current,estimateSize:()=>37,measureElement:e=>e?.getBoundingClientRect().height??void 0,overscan:5}),_=(0,d.useCallback)(e=>{if(!e)return;let{scrollHeight:t,scrollTop:i,clientHeight:a}=e;t-i-a<500&&!n&&r&&s?.()},[r,n,s]),b=(0,d.useCallback)(e=>{_(e.currentTarget)},[_]);return(0,d.useEffect)(()=>{let e=setTimeout(()=>{_(c.current)},100);return()=>clearTimeout(e)},[_]),(0,f.jsxs)(i.ScrollArea,{ref:c,className:`border-border-weak bg-background relative w-full overflow-auto rounded-lg border`,onScroll:b,children:[(0,f.jsxs)(a.Table,{className:(0,u.cn)(`!w-full`,`grid`,`border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tfoot_td]:border-t`),children:[(0,f.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,f.jsx)(a.TableRow,{className:`flex w-full border-none`,children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`),o=n||void 0,s=r?`left`:i?`right`:void 0,c={width:e.getSize(),...h(e.column)};return(0,f.jsx)(a.TableHead,{"data-pinned":o,"data-last-col":s,className:(0,u.cn)(`relative flex 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:c,children:(0,f.jsx)(v,{header:e})},e.id)})},e.id))}),(0,f.jsx)(a.TableBody,{style:{height:`${g.getTotalSize()}px`},className:(0,u.cn)(`relative grid w-full`,t&&`h-36`,p?.length===0&&`h-48`),children:t?(0,f.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,f.jsx)(a.TableCell,{children:`loading...`})}):(0,f.jsx)(f.Fragment,{children:g.getVirtualItems().map(e=>{let t=p[e.index],n=t?.id||(t.original&&`id`in t.original?String(t.original.id):null)||(t.original&&`uuid`in t.original?String(t.original.uuid):null);return(0,f.jsx)(y,{id:n??String(e.index),row:t,measureElement:g.measureElement,virtualRow:e,onClickRow:o},n??e.index)})})}),n&&(0,f.jsx)(a.TableFooter,{children:(0,f.jsx)(`div`,{className:`flex w-full justify-center py-2`,children:(0,f.jsx)(l.LoaderIcon,{size:16,className:`animate-spin`,"aria-label":`Loading more data`})})})]}),(0,f.jsx)(i.ScrollBar,{orientation:`horizontal`})]})},x=({onAdd:e,onRefresh:t})=>(0,f.jsxs)(n.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,f.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,f.jsx)(c.SearchInput,{placeholder:`Search...`})}),(0,f.jsxs)(n.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,f.jsx)(o.AddNewBtn,{onClick:e}),(0,f.jsx)(s.RefreshBtn,{onClick:t})]})]});function S({data:e,totalCount:t,isLoading:r,isFetching:i,allowLoadMore:a,columns:o,onAdd:s,onRefresh:c,onClickRow:l,onFetchNextPage:u}){"use no memo";let[m,h]=(0,d.useState)({}),[g,_]=(0,d.useState)([]),[v,y]=(0,d.useState)([]),[S,C]=(0,d.useState)({}),w=(0,d.useMemo)(()=>({columnPinning:{right:[`actions`,`update`,`delete`]}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:o,rowCount:t,columnResizeMode:`onChange`,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:m,sorting:g,columnVisibility:S,columnFilters:v},onRowSelectionChange:h,onSortingChange:_,onColumnVisibilityChange:C,onColumnFiltersChange:y});return(0,f.jsxs)(n.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,f.jsx)(x,{onAdd:s,onRefresh:c}),(0,f.jsx)(n.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:(0,f.jsx)(b,{table:T,isLoading:r,isFetching:i,allowFetchMore:a,onClickRow:l,onFetchNextPage:u})})]})}exports.Table=S;
1
+ const e=require(`../chunk-CUT6urMc.cjs`);require(`../dist-CAevLI5t.cjs`),require(`../button-variants-DdVxfrSx.cjs`);const t=require(`../button-BaLuKPtr.cjs`),n=require(`../flex-B4klVEz9.cjs`);require(`../paragraph-Q7vk3BSp.cjs`),require(`../input-D_tClptL.cjs`);const r=require(`../dropdown-menu-Bb68Wd6J.cjs`),i=require(`../scroll-area-C_MkdpKg.cjs`),a=require(`../table-fp-VtGFA.cjs`),o=require(`../add-new-Bt5QaeJs.cjs`),s=require(`../refresh-CvvD6Ckf.cjs`),c=require(`../search-input-ryU0Mvaa.cjs`);let l=require(`lucide-react`);l=e.__toESM(l);let u=require(`@customafk/react-toolkit/utils`);u=e.__toESM(u);let d=require(`react`);d=e.__toESM(d);let f=require(`react/jsx-runtime`);f=e.__toESM(f);let p=require(`@tanstack/react-table`);p=e.__toESM(p);let m=require(`@tanstack/react-virtual`);m=e.__toESM(m);const h=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}},g=(0,d.memo)(({column:e})=>{let t=e.getIsSorted(),n=(0,d.useMemo)(()=>({asc:(0,f.jsx)(l.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,f.jsx)(l.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})}),[]);return t?n[t]:null});g.displayName=`SortingIndicator`;const _=(0,d.memo)(({column:e})=>{let n=typeof e.columnDef.header==`string`?e.columnDef.header:`Column`,i=(0,d.useCallback)(()=>e.pin(!1),[e]),a=(0,d.useCallback)(()=>e.pin(`left`),[e]),o=(0,d.useCallback)(()=>e.pin(`right`),[e]);return e.getCanPin()?e.getIsPinned()?(0,f.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:i,children:(0,f.jsx)(l.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,f.jsxs)(r.DropdownMenu,{children:[(0,f.jsx)(r.DropdownMenuTrigger,{asChild:!0,children:(0,f.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,f.jsx)(l.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,f.jsxs)(r.DropdownMenuContent,{align:`end`,children:[(0,f.jsxs)(r.DropdownMenuItem,{onClick:a,children:[(0,f.jsx)(l.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,f.jsxs)(r.DropdownMenuItem,{onClick:o,children:[(0,f.jsx)(l.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null});_.displayName=`PinControls`;const v=(0,d.memo)(({header:e})=>{let{column:t}=e,n=(0,d.useCallback)(e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))},[t]),r=t.getToggleSortingHandler();return e.isPlaceholder?(0,f.jsx)(`div`,{className:`flex items-center justify-between gap-2 truncate`}):(0,f.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[(0,f.jsxs)(`div`,{onClick:r,onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,role:t.getCanSort()?`button`:void 0,className:(0,u.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),children:[(0,f.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,f.jsx)(g,{column:t})]}),(0,f.jsx)(_,{column:t})]})});v.displayName=`HeaderContent`;const y=(0,d.memo)(({row:e,measureElement:t,virtualRow:n,onClickRow:r})=>{let i=(0,d.useCallback)(()=>{r&&r(e.id)},[e.id,r]);return(0,f.jsx)(a.TableRow,{"data-index":n.index,ref:e=>t(e),className:`absolute flex w-full cursor-pointer focus:outline-none`,style:{transform:`translateY(${n.start}px)`},onClick:i,tabIndex:r?0:void 0,role:r?`button`:void 0,children:e.getVisibleCells().map(e=>{let t=e.column.getIsPinned(),n=t===`left`&&e.column.getIsLastColumn(`left`),r=t===`right`&&e.column.getIsFirstColumn(`right`);return(0,f.jsx)(a.TableCell,{"data-pinned":t||void 0,"data-last-col":n?`left`:r?`right`:void 0,style:{...h(e.column),width:e.column.getSize()},className:(0,u.cn)(`flex overflow-hidden py-2.5`,`data-pinned:bg-background/90`,`[&[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`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})})});y.displayName=`DataTableRow`;const b=({table:e,isLoading:t,isFetching:n,allowFetchMore:r=!0,onClickRow:o,onFetchNextPage:s})=>{let c=(0,d.useRef)(null),{rows:p}=e.getRowModel(),g=(0,m.useVirtualizer)({count:p.length,getScrollElement:()=>c.current,estimateSize:()=>37,measureElement:e=>e?.getBoundingClientRect().height??void 0,overscan:5}),_=(0,d.useCallback)(e=>{if(!e)return;let{scrollHeight:t,scrollTop:i,clientHeight:a}=e;t-i-a<500&&!n&&r&&s?.()},[r,n,s]),b=(0,d.useCallback)(e=>{_(e.currentTarget)},[_]);return(0,d.useEffect)(()=>{let e=setTimeout(()=>{_(c.current)},100);return()=>clearTimeout(e)},[_]),(0,f.jsxs)(i.ScrollArea,{ref:c,className:`border-border-weak bg-background relative w-full overflow-auto rounded-lg border`,onScroll:b,children:[(0,f.jsxs)(a.Table,{className:(0,u.cn)(`!w-full`,`grid`,`border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tfoot_td]:border-t`),children:[(0,f.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,f.jsx)(a.TableRow,{className:`flex w-full border-none`,children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`),o=n||void 0,s=r?`left`:i?`right`:void 0,c={width:e.getSize(),...h(e.column)};return(0,f.jsx)(a.TableHead,{"data-pinned":o,"data-last-col":s,className:(0,u.cn)(`relative flex 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:c,children:(0,f.jsx)(v,{header:e})},e.id)})},e.id))}),(0,f.jsx)(a.TableBody,{style:{height:`${g.getTotalSize()}px`},className:(0,u.cn)(`relative grid w-full`,t&&`h-36`,p?.length===0&&`h-48`),children:t?(0,f.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,f.jsx)(a.TableCell,{children:`loading...`})}):(0,f.jsx)(f.Fragment,{children:g.getVirtualItems().map(e=>{let t=p[e.index],n=t?.id||(t.original&&`id`in t.original?String(t.original.id):null)||(t.original&&`uuid`in t.original?String(t.original.uuid):null);return(0,f.jsx)(y,{id:n??String(e.index),row:t,measureElement:g.measureElement,virtualRow:e,onClickRow:o},n??e.index)})})}),n&&(0,f.jsx)(a.TableFooter,{children:(0,f.jsx)(`div`,{className:`flex w-full justify-center py-2`,children:(0,f.jsx)(l.LoaderIcon,{size:16,className:`animate-spin`,"aria-label":`Loading more data`})})})]}),(0,f.jsx)(i.ScrollBar,{orientation:`horizontal`})]})},x=({onAdd:e,onRefresh:t})=>(0,f.jsxs)(n.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,f.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,f.jsx)(c.SearchInput,{placeholder:`Search...`})}),(0,f.jsxs)(n.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,f.jsx)(o.AddNewBtn,{onClick:e}),(0,f.jsx)(s.RefreshBtn,{onClick:t})]})]});function S({data:e,totalCount:t,isLoading:r,isFetching:i,allowLoadMore:a,columns:o,onAdd:s,onRefresh:c,onClickRow:l,onFetchNextPage:u}){"use no memo";let[m,h]=(0,d.useState)({}),[g,_]=(0,d.useState)([]),[v,y]=(0,d.useState)([]),[S,C]=(0,d.useState)({}),w=(0,d.useMemo)(()=>({columnPinning:{right:[`actions`,`update`,`delete`]}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:o,rowCount:t,columnResizeMode:`onChange`,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:m,sorting:g,columnVisibility:S,columnFilters:v},onRowSelectionChange:h,onSortingChange:_,onColumnVisibilityChange:C,onColumnFiltersChange:y});return(0,f.jsxs)(n.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,f.jsx)(x,{onAdd:s,onRefresh:c}),(0,f.jsx)(n.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:(0,f.jsx)(b,{table:T,isLoading:r,isFetching:i,allowFetchMore:a,onClickRow:l,onFetchNextPage:u})})]})}exports.Table=S;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","TableRow","TableCell","ScrollArea","Table","TableHeader","TableHead","TableBody","TableFooter","LoaderIcon","ScrollBar","DataTableHeader: React.FC<Props>","Flex","SearchInput","AddNewBtn","RefreshBtn","Flex"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { type Column, flexRender, type Header, type Row, type Table as ReactTable } from '@tanstack/react-table'\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, LoaderIcon, PinOffIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'\nimport { ScrollArea, ScrollBar } from '@/components/ui/scroll-area'\nimport { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '@/components/ui/table'\nimport type { AnyEntity } from '@/types'\nimport { useVirtualizer, type VirtualItem } from '@tanstack/react-virtual'\n\n/**\n * Computes styles for pinned columns\n * @param column Table column\n * @returns CSS styles for pinned columns\n */\nconst getPinningStyles = (column: Column<AnyEntity>): React.CSSProperties => {\n const isPinned = column.getIsPinned()\n return {\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 1 : 0,\n }\n}\n\nconst SortingIndicator = memo(({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted()\n\n const icons = useMemo(\n () => ({\n asc: <ChevronUp className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n desc: <ChevronDown className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n }),\n [],\n )\n\n return sortDirection ? icons[sortDirection] : null\n})\n\nSortingIndicator.displayName = 'SortingIndicator'\n\nconst PinControls = memo(({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = typeof column.columnDef.header === 'string' ? column.columnDef.header : 'Column'\n\n const handleUnpin = useCallback(() => column.pin(false), [column])\n const handlePinLeft = useCallback(() => column.pin('left'), [column])\n const handlePinRight = useCallback(() => column.pin('right'), [column])\n\n if (!column.getCanPin()) return null\n\n if (column.getIsPinned()) {\n return (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none\"\n aria-label={`Unpin ${columnHeader} column`}\n title={`Unpin ${columnHeader} column`}\n onClick={handleUnpin}\n >\n <PinOffIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n )\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"size-7 shadow-none\"\n aria-label={`Pin options for ${columnHeader} column`}\n title={`Pin options for ${columnHeader} column`}\n >\n <EllipsisIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={handlePinLeft}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handlePinRight}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n})\n\nPinControls.displayName = 'PinControls'\n\nconst HeaderContent = memo(({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header\n\n const handleSort = useCallback(\n (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n column.getToggleSortingHandler()?.(e)\n }\n },\n [column],\n )\n\n const toggleSortHandler = column.getToggleSortingHandler()\n\n if (header.isPlaceholder) {\n return <div className=\"flex items-center justify-between gap-2 truncate\" />\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n <div\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n onClick={toggleSortHandler}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n role={column.getCanSort() ? 'button' : undefined}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n <PinControls column={column} />\n </div>\n )\n})\n\nHeaderContent.displayName = 'HeaderContent'\n\ntype DataTableRowProps = {\n id: string\n row: Row<AnyEntity>\n measureElement: (element?: HTMLTableRowElement | null | undefined) => void\n virtualRow: VirtualItem\n onClickRow?: (id: string) => void\n}\nconst DataTableRow = memo(({ row, measureElement, virtualRow, onClickRow }: DataTableRowProps) => {\n const handleClick = useCallback(() => {\n if (!onClickRow) return\n onClickRow(row.id)\n }, [row.id, onClickRow])\n return (\n <TableRow\n data-index={virtualRow.index}\n ref={(node) => measureElement(node)}\n className=\"absolute flex w-full cursor-pointer focus:outline-none\"\n style={{\n transform: `translateY(${virtualRow.start}px)`,\n }}\n onClick={handleClick}\n tabIndex={onClickRow ? 0 : undefined}\n role={onClickRow ? 'button' : undefined}\n >\n {row.getVisibleCells().map((cell) => {\n const isPinned = cell.column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && cell.column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && cell.column.getIsFirstColumn('right')\n\n return (\n <TableCell\n key={cell.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n style={{\n ...getPinningStyles(cell.column),\n width: cell.column.getSize(),\n }}\n className={cn(\n 'flex overflow-hidden py-2.5',\n 'data-pinned:bg-background/90',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right][data-last-col=right]]:border-l',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n </TableRow>\n )\n})\nDataTableRow.displayName = 'DataTableRow'\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>\n columnsLength?: number\n isLoading?: boolean\n isFetching?: boolean\n allowFetchMore?: boolean\n onClickRow?: (id: string) => void\n onFetchNextPage?: () => void\n}\n\nexport const DataTable = ({ table, isLoading, isFetching, allowFetchMore = true, onClickRow, onFetchNextPage }: DataTableProps) => {\n // 'use no memo'\n\n const tableContainerRef = useRef<HTMLDivElement>(null)\n\n const { rows } = table.getRowModel()\n\n // Configure virtualization for performance with large datasets\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n getScrollElement: () => tableContainerRef.current,\n estimateSize: () => 37, // estimated row height\n measureElement: (element) => element?.getBoundingClientRect().height ?? undefined,\n overscan: 5, // Render additional rows beyond viewport for smoother scrolling\n })\n\n // Fetch more data when user approaches bottom of table\n const fetchMoreOnBottomReached = useCallback(\n (refEl: HTMLDivElement | null) => {\n if (!refEl) return\n const { scrollHeight, scrollTop, clientHeight } = refEl\n // Threshold of 120px from bottom to trigger load more\n if (scrollHeight - scrollTop - clientHeight < 500 && !isFetching && allowFetchMore) {\n onFetchNextPage?.()\n }\n },\n [allowFetchMore, isFetching, onFetchNextPage],\n )\n\n // Handle scroll events to check if more data should be loaded\n const handleScroll = useCallback(\n (ev: React.UIEvent<HTMLDivElement>) => {\n fetchMoreOnBottomReached(ev.currentTarget)\n },\n [fetchMoreOnBottomReached],\n )\n\n // Check for more data on mount and when dependencies change\n useEffect(() => {\n const timer = setTimeout(() => {\n fetchMoreOnBottomReached(tableContainerRef.current)\n }, 100)\n return () => clearTimeout(timer)\n }, [fetchMoreOnBottomReached])\n\n return (\n <ScrollArea ref={tableContainerRef} className=\"border-border-weak bg-background relative w-full overflow-auto rounded-lg border\" onScroll={handleScroll}>\n <Table\n className={cn(\n '!w-full',\n 'grid',\n 'border-separate border-spacing-0',\n '[&_td]:border-border-weak',\n '[&_th]:border-border-weak',\n '[&_th]:border-b',\n '[&_th]:border-b-border-weak',\n '[&_tfoot_td]:border-t',\n )}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"flex w-full border-none\">\n {headerGroup.headers.map((header) => {\n const { column } = header\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n const pinningState = isPinned || undefined\n const lastColState = isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined\n\n const headerStyles = {\n width: header.getSize(),\n ...getPinningStyles(header.column),\n }\n\n return (\n <TableHead\n key={header.id}\n data-pinned={pinningState}\n data-last-col={lastColState}\n className={cn(\n 'relative flex h-9 font-semibold select-none',\n 'data-pinned:backdrop-blur-xs',\n 'data-pinned:bg-muted-weak',\n '[&>.cursor-col-resize]:last:opacity-0',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=right][data-last-col=right]]:border-l',\n )}\n colSpan={header.colSpan}\n style={headerStyles}\n >\n <HeaderContent header={header} />\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n className={cn('relative grid w-full', isLoading && 'h-36', rows?.length === 0 && 'h-48')}\n >\n {isLoading ? (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>loading...</TableCell>\n </TableRow>\n ) : (\n <>\n {rowVirtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index]\n const rowId =\n row?.id ||\n (row.original && 'id' in row.original ? String(row.original.id) : null) ||\n (row.original && 'uuid' in row.original ? String(row.original.uuid) : null)\n return (\n <DataTableRow\n key={rowId ?? virtualRow.index}\n id={rowId ?? String(virtualRow.index)}\n row={row}\n measureElement={rowVirtualizer.measureElement}\n virtualRow={virtualRow}\n onClickRow={onClickRow}\n />\n )\n })}\n </>\n )}\n </TableBody>\n {isFetching && (\n <TableFooter>\n <div className=\"flex w-full justify-center py-2\">\n <LoaderIcon size={16} className=\"animate-spin\" aria-label=\"Loading more data\" />\n </div>\n </TableFooter>\n )}\n </Table>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n )\n}\n","import { Flex } from '@/components/layouts/flex'\nimport { AddNewBtn } from '@/components/ui/buttons/add-new'\nimport { RefreshBtn } from '@/components/ui/buttons/refresh'\nimport { SearchInput } from '@/components/ui/inputs/search-input'\n\ntype Props = {\n onAdd?: () => void\n onRefresh?: () => void\n}\n\nexport const DataTableHeader: React.FC<Props> = ({ onAdd, onRefresh }) => {\n return (\n <Flex justify=\"between\" padding=\"none\" width=\"full\" className=\"flex-0\">\n <div className=\"max-sm:flex-1\">\n <SearchInput placeholder=\"Search...\" />\n </div>\n <Flex wrap={false} className=\"flex-0 px-0\">\n {!!onAdd && <AddNewBtn onClick={onAdd} />}\n <RefreshBtn onClick={onRefresh} />\n </Flex>\n </Flex>\n )\n}\n","import { useMemo, useState } from 'react'\n\nimport type { ColumnDef, ColumnFiltersState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table'\nimport { getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table'\n\nimport { DataTable } from './data-table'\nimport { DataTableHeader } from './data-table-header'\nimport { Flex } from '../layouts/flex'\n\ntype Props<T> = {\n data: T[]\n totalCount?: number\n isLoading?: boolean\n isFetching?: boolean\n allowLoadMore?: boolean\n columns: ColumnDef<T>[]\n onAdd?: () => void\n onRefresh?: () => void\n onClickRow?: (id: string) => void\n onFetchNextPage?: () => void\n}\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n isFetching,\n allowLoadMore,\n columns,\n onAdd,\n onRefresh,\n onClickRow,\n onFetchNextPage,\n}: Props<T>) {\n 'use no memo'\n\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({})\n const [sorting, setSorting] = useState<SortingState>([])\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})\n\n const initialState = useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n }),\n [],\n )\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: (row) => (row.id as string) || (row.uuid as string),\n state: {\n rowSelection,\n sorting,\n columnVisibility,\n columnFilters,\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n })\n\n return (\n <Flex vertical wrap={false} gap=\"sm\" align=\"start\" className=\"size-full overflow-y-auto pt-1\">\n <DataTableHeader onAdd={onAdd} onRefresh={onRefresh} />\n <Flex padding=\"none\" vertical wrap={false} width=\"full\" className=\"flex-1 overflow-auto pb-4\">\n <DataTable\n table={table}\n isLoading={isLoading}\n isFetching={isFetching}\n allowFetchMore={allowLoadMore}\n onClickRow={onClickRow}\n onFetchNextPage={onFetchNextPage}\n />\n </Flex>\n </Flex>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","TableRow","TableCell","ScrollArea","Table","TableHeader","TableHead","TableBody","TableFooter","LoaderIcon","ScrollBar","DataTableHeader: React.FC<Props>","Flex","SearchInput","AddNewBtn","RefreshBtn","Flex"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { type Column, flexRender, type Header, type Table as ReactTable, type Row } from '@tanstack/react-table';\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, LoaderIcon, PinOffIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { useVirtualizer, type VirtualItem } from '@tanstack/react-virtual';\nimport { Button } from '@/components/ui/button';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { ScrollArea, ScrollBar } from '@/components/ui/scroll-area';\nimport { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '@/components/ui/table';\nimport type { AnyEntity } from '@/types';\n\n/**\n * Computes styles for pinned columns\n * @param column Table column\n * @returns CSS styles for pinned columns\n */\nconst getPinningStyles = (column: Column<AnyEntity>): React.CSSProperties => {\n const isPinned = column.getIsPinned();\n return {\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 1 : 0,\n };\n};\n\nconst SortingIndicator = memo(({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted();\n\n const icons = useMemo(\n () => ({\n asc: <ChevronUp className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n desc: <ChevronDown className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n }),\n []\n );\n\n return sortDirection ? icons[sortDirection] : null;\n});\n\nSortingIndicator.displayName = 'SortingIndicator';\n\nconst PinControls = memo(({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = typeof column.columnDef.header === 'string' ? column.columnDef.header : 'Column';\n\n const handleUnpin = useCallback(() => column.pin(false), [column]);\n const handlePinLeft = useCallback(() => column.pin('left'), [column]);\n const handlePinRight = useCallback(() => column.pin('right'), [column]);\n\n if (!column.getCanPin()) return null;\n\n if (column.getIsPinned()) {\n return (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none\"\n aria-label={`Unpin ${columnHeader} column`}\n title={`Unpin ${columnHeader} column`}\n onClick={handleUnpin}\n >\n <PinOffIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"size-7 shadow-none\"\n aria-label={`Pin options for ${columnHeader} column`}\n title={`Pin options for ${columnHeader} column`}\n >\n <EllipsisIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={handlePinLeft}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handlePinRight}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n});\n\nPinControls.displayName = 'PinControls';\n\nconst HeaderContent = memo(({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header;\n\n const handleSort = useCallback(\n (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n column.getToggleSortingHandler()?.(e);\n }\n },\n [column]\n );\n\n const toggleSortHandler = column.getToggleSortingHandler();\n\n if (header.isPlaceholder) {\n return <div className=\"flex items-center justify-between gap-2 truncate\" />;\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n <div\n onClick={toggleSortHandler}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n role={column.getCanSort() ? 'button' : undefined}\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n <PinControls column={column} />\n </div>\n );\n});\n\nHeaderContent.displayName = 'HeaderContent';\n\ntype DataTableRowProps = {\n id: string;\n row: Row<AnyEntity>;\n measureElement: (element?: HTMLTableRowElement | null | undefined) => void;\n virtualRow: VirtualItem;\n onClickRow?: (id: string) => void;\n};\nconst DataTableRow = memo(({ row, measureElement, virtualRow, onClickRow }: DataTableRowProps) => {\n const handleClick = useCallback(() => {\n if (!onClickRow) return;\n onClickRow(row.id);\n }, [row.id, onClickRow]);\n return (\n <TableRow\n data-index={virtualRow.index}\n ref={node => measureElement(node)}\n className=\"absolute flex w-full cursor-pointer focus:outline-none\"\n style={{\n transform: `translateY(${virtualRow.start}px)`,\n }}\n onClick={handleClick}\n tabIndex={onClickRow ? 0 : undefined}\n role={onClickRow ? 'button' : undefined}\n >\n {row.getVisibleCells().map(cell => {\n const isPinned = cell.column.getIsPinned();\n const isLastLeftPinned = isPinned === 'left' && cell.column.getIsLastColumn('left');\n const isFirstRightPinned = isPinned === 'right' && cell.column.getIsFirstColumn('right');\n\n return (\n <TableCell\n key={cell.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n style={{\n ...getPinningStyles(cell.column),\n width: cell.column.getSize(),\n }}\n className={cn(\n 'flex overflow-hidden py-2.5',\n 'data-pinned:bg-background/90',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right][data-last-col=right]]:border-l'\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n );\n })}\n </TableRow>\n );\n});\nDataTableRow.displayName = 'DataTableRow';\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>;\n columnsLength?: number;\n isLoading?: boolean;\n isFetching?: boolean;\n allowFetchMore?: boolean;\n onClickRow?: (id: string) => void;\n onFetchNextPage?: () => void;\n}\n\nexport const DataTable = ({ table, isLoading, isFetching, allowFetchMore = true, onClickRow, onFetchNextPage }: DataTableProps) => {\n // 'use no memo'\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const { rows } = table.getRowModel();\n\n // Configure virtualization for performance with large datasets\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n getScrollElement: () => tableContainerRef.current,\n estimateSize: () => 37, // estimated row height\n measureElement: element => element?.getBoundingClientRect().height ?? undefined,\n overscan: 5, // Render additional rows beyond viewport for smoother scrolling\n });\n\n // Fetch more data when user approaches bottom of table\n const fetchMoreOnBottomReached = useCallback(\n (refEl: HTMLDivElement | null) => {\n if (!refEl) return;\n const { scrollHeight, scrollTop, clientHeight } = refEl;\n // Threshold of 120px from bottom to trigger load more\n if (scrollHeight - scrollTop - clientHeight < 500 && !isFetching && allowFetchMore) {\n onFetchNextPage?.();\n }\n },\n [allowFetchMore, isFetching, onFetchNextPage]\n );\n\n // Handle scroll events to check if more data should be loaded\n const handleScroll = useCallback(\n (ev: React.UIEvent<HTMLDivElement>) => {\n fetchMoreOnBottomReached(ev.currentTarget);\n },\n [fetchMoreOnBottomReached]\n );\n\n // Check for more data on mount and when dependencies change\n useEffect(() => {\n const timer = setTimeout(() => {\n fetchMoreOnBottomReached(tableContainerRef.current);\n }, 100);\n return () => clearTimeout(timer);\n }, [fetchMoreOnBottomReached]);\n\n return (\n <ScrollArea ref={tableContainerRef} className=\"border-border-weak bg-background relative w-full overflow-auto rounded-lg border\" onScroll={handleScroll}>\n <Table\n className={cn(\n '!w-full',\n 'grid',\n 'border-separate border-spacing-0',\n '[&_td]:border-border-weak',\n '[&_th]:border-border-weak',\n '[&_th]:border-b',\n '[&_th]:border-b-border-weak',\n '[&_tfoot_td]:border-t'\n )}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id} className=\"flex w-full border-none\">\n {headerGroup.headers.map(header => {\n const { column } = header;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right');\n const pinningState = isPinned || undefined;\n const lastColState = isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined;\n\n const headerStyles = {\n width: header.getSize(),\n ...getPinningStyles(header.column),\n };\n\n return (\n <TableHead\n key={header.id}\n data-pinned={pinningState}\n data-last-col={lastColState}\n className={cn(\n 'relative flex h-9 font-semibold select-none',\n 'data-pinned:backdrop-blur-xs',\n 'data-pinned:bg-muted-weak',\n '[&>.cursor-col-resize]:last:opacity-0',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=right][data-last-col=right]]:border-l'\n )}\n colSpan={header.colSpan}\n style={headerStyles}\n >\n <HeaderContent header={header} />\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n className={cn('relative grid w-full', isLoading && 'h-36', rows?.length === 0 && 'h-48')}\n >\n {isLoading ? (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>loading...</TableCell>\n </TableRow>\n ) : (\n <>\n {rowVirtualizer.getVirtualItems().map(virtualRow => {\n const row = rows[virtualRow.index];\n const rowId =\n row?.id ||\n (row.original && 'id' in row.original ? String(row.original.id) : null) ||\n (row.original && 'uuid' in row.original ? String(row.original.uuid) : null);\n return (\n <DataTableRow\n key={rowId ?? virtualRow.index}\n id={rowId ?? String(virtualRow.index)}\n row={row}\n measureElement={rowVirtualizer.measureElement}\n virtualRow={virtualRow}\n onClickRow={onClickRow}\n />\n );\n })}\n </>\n )}\n </TableBody>\n {isFetching && (\n <TableFooter>\n <div className=\"flex w-full justify-center py-2\">\n <LoaderIcon size={16} className=\"animate-spin\" aria-label=\"Loading more data\" />\n </div>\n </TableFooter>\n )}\n </Table>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n};\n","import { Flex } from '@/components/layouts/flex';\nimport { AddNewBtn } from '@/components/ui/buttons/add-new';\nimport { RefreshBtn } from '@/components/ui/buttons/refresh';\nimport { SearchInput } from '@/components/ui/inputs/search-input';\n\ntype Props = {\n onAdd?: () => void;\n onRefresh?: () => void;\n};\n\nexport const DataTableHeader: React.FC<Props> = ({ onAdd, onRefresh }) => {\n return (\n <Flex justify=\"between\" padding=\"none\" width=\"full\" className=\"flex-0\">\n <div className=\"max-sm:flex-1\">\n <SearchInput placeholder=\"Search...\" />\n </div>\n <Flex wrap={false} className=\"flex-0 px-0\">\n {!!onAdd && <AddNewBtn onClick={onAdd} />}\n <RefreshBtn onClick={onRefresh} />\n </Flex>\n </Flex>\n );\n};\n","import { useMemo, useState } from 'react';\n\nimport type { ColumnDef, ColumnFiltersState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table';\nimport { getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';\n\nimport { DataTable } from './data-table';\nimport { DataTableHeader } from './data-table-header';\nimport { Flex } from '../layouts/flex';\n\ntype Props<T> = {\n data: T[];\n totalCount?: number;\n isLoading?: boolean;\n isFetching?: boolean;\n allowLoadMore?: boolean;\n columns: ColumnDef<T>[];\n onAdd?: () => void;\n onRefresh?: () => void;\n onClickRow?: (id: string) => void;\n onFetchNextPage?: () => void;\n};\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n isFetching,\n allowLoadMore,\n columns,\n onAdd,\n onRefresh,\n onClickRow,\n onFetchNextPage,\n}: Props<T>) {\n 'use no memo';\n\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n\n const initialState = useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n }),\n []\n );\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: row => (row.id as string) || (row.uuid as string),\n state: {\n rowSelection,\n sorting,\n columnVisibility,\n columnFilters,\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n });\n\n return (\n <Flex vertical wrap={false} gap=\"sm\" align=\"start\" className=\"size-full overflow-y-auto pt-1\">\n <DataTableHeader onAdd={onAdd} onRefresh={onRefresh} />\n <Flex padding=\"none\" vertical wrap={false} width=\"full\" className=\"flex-1 overflow-auto pb-4\">\n <DataTable\n table={table}\n isLoading={isLoading}\n isFetching={isFetching}\n allowFetchMore={allowLoadMore}\n onClickRow={onClickRow}\n onFetchNextPage={onFetchNextPage}\n />\n </Flex>\n </Flex>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime23 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime14 from "react/jsx-runtime";
2
2
  import { ColumnDef } from "@tanstack/react-table";
3
3
 
4
4
  //#region packages/components/table/index.d.ts
@@ -25,7 +25,7 @@ declare function Table<T extends Record<string, unknown>>({
25
25
  onRefresh,
26
26
  onClickRow,
27
27
  onFetchNextPage
28
- }: Props<T>): react_jsx_runtime23.JSX.Element;
28
+ }: Props<T>): react_jsx_runtime14.JSX.Element;
29
29
  //#endregion
30
30
  export { Table };
31
31
  //# sourceMappingURL=index.d.cts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime30 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime14 from "react/jsx-runtime";
2
2
  import { ColumnDef } from "@tanstack/react-table";
3
3
 
4
4
  //#region packages/components/table/index.d.ts
@@ -25,7 +25,7 @@ declare function Table<T extends Record<string, unknown>>({
25
25
  onRefresh,
26
26
  onClickRow,
27
27
  onFetchNextPage
28
- }: Props<T>): react_jsx_runtime30.JSX.Element;
28
+ }: Props<T>): react_jsx_runtime14.JSX.Element;
29
29
  //#endregion
30
30
  export { Table };
31
31
  //# sourceMappingURL=index.d.ts.map