@customafk/lunas-ui 0.0.57 → 0.0.60

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 (541) hide show
  1. package/README.md +248 -99
  2. package/dist/{add-new-B9KK77jE.js → add-new-BrbEoynl.js} +1 -1
  3. package/dist/{add-new-B9KK77jE.js.map → add-new-BrbEoynl.js.map} +1 -1
  4. package/dist/{add-new-B9vW0r69.cjs → add-new-C9Gjd7QJ.cjs} +1 -1
  5. package/dist/{add-new-B9vW0r69.cjs.map → add-new-C9Gjd7QJ.cjs.map} +1 -1
  6. package/dist/alert-dialog-CnUUZRzI.js +2 -0
  7. package/dist/alert-dialog-CnUUZRzI.js.map +1 -0
  8. package/dist/{alert-dialog-Bc-61QzL.cjs → alert-dialog-csUZX4AP.cjs} +2 -2
  9. package/dist/alert-dialog-csUZX4AP.cjs.map +1 -0
  10. package/dist/{badge-1pcWNSLo.js → badge-gByXCsor.js} +2 -2
  11. package/dist/{badge-1pcWNSLo.js.map → badge-gByXCsor.js.map} +1 -1
  12. package/dist/{badge-xqIWOEbF.cjs → badge-i7tq2_AR.cjs} +2 -2
  13. package/dist/{badge-xqIWOEbF.cjs.map → badge-i7tq2_AR.cjs.map} +1 -1
  14. package/dist/{button-ChLnQHG9.d.ts → button-BHhyePyp.d.ts} +3 -3
  15. package/dist/button-ChpGfVjG.cjs.map +1 -1
  16. package/dist/button-DL_i4AVi.js.map +1 -1
  17. package/dist/{calendar-rpgciCA-.cjs → calendar-DtHmsN1p.cjs} +2 -2
  18. package/dist/calendar-DtHmsN1p.cjs.map +1 -0
  19. package/dist/{calendar-CB_hTeGT.js → calendar-aC4BQig6.js} +2 -2
  20. package/dist/calendar-aC4BQig6.js.map +1 -0
  21. package/dist/cards/simple-card.cjs +1 -1
  22. package/dist/cards/simple-card.cjs.map +1 -1
  23. package/dist/cards/simple-card.d.cts +0 -1
  24. package/dist/cards/simple-card.d.ts +0 -1
  25. package/dist/cards/simple-card.js +1 -1
  26. package/dist/cards/simple-card.js.map +1 -1
  27. package/dist/command-B3A4F1pB.js.map +1 -1
  28. package/dist/{command-CQ0BKof5.d.ts → command-C6YVs0fB.d.ts} +12 -12
  29. package/dist/command-D5rQByNQ.cjs.map +1 -1
  30. package/dist/{command-BkU08119.d.cts → command-Duxn64SV.d.cts} +12 -12
  31. package/dist/data-display/country.cjs +1 -1
  32. package/dist/data-display/country.cjs.map +1 -1
  33. package/dist/data-display/country.d.cts +0 -1
  34. package/dist/data-display/country.d.ts +1 -2
  35. package/dist/data-display/country.js +1 -1
  36. package/dist/data-display/country.js.map +1 -1
  37. package/dist/data-display/data-list.cjs +1 -1
  38. package/dist/data-display/data-list.js +1 -1
  39. package/dist/data-display/date-tooltip.cjs +1 -1
  40. package/dist/data-display/date-tooltip.js +1 -1
  41. package/dist/data-display/date.cjs +1 -1
  42. package/dist/data-display/date.d.cts +0 -2
  43. package/dist/data-display/date.d.ts +0 -2
  44. package/dist/data-display/date.js +1 -1
  45. package/dist/data-display/empty.cjs +1 -1
  46. package/dist/data-display/empty.d.ts +2 -2
  47. package/dist/data-display/empty.js +1 -1
  48. package/dist/data-display/name.cjs +1 -1
  49. package/dist/data-display/name.cjs.map +1 -1
  50. package/dist/data-display/name.d.cts +0 -2
  51. package/dist/data-display/name.d.ts +0 -2
  52. package/dist/data-display/name.js +1 -1
  53. package/dist/data-display/name.js.map +1 -1
  54. package/dist/data-display/phone-number.cjs +1 -1
  55. package/dist/data-display/phone-number.js +1 -1
  56. package/dist/data-display/role-badge.cjs +1 -1
  57. package/dist/data-display/role-badge.cjs.map +1 -1
  58. package/dist/data-display/role-badge.d.cts +0 -1
  59. package/dist/data-display/role-badge.d.ts +1 -2
  60. package/dist/data-display/role-badge.js +1 -1
  61. package/dist/data-display/role-badge.js.map +1 -1
  62. package/dist/data-display/statistic.cjs +1 -1
  63. package/dist/data-display/statistic.cjs.map +1 -1
  64. package/dist/data-display/statistic.d.cts +4 -4
  65. package/dist/data-display/statistic.d.ts +4 -4
  66. package/dist/data-display/statistic.js +1 -1
  67. package/dist/data-display/statistic.js.map +1 -1
  68. package/dist/date-Cbx2drzh.js +2 -0
  69. package/dist/date-Cbx2drzh.js.map +1 -0
  70. package/dist/date-qVDm6BT3.cjs +2 -0
  71. package/dist/date-qVDm6BT3.cjs.map +1 -0
  72. package/dist/dialog-BEJ3krbY.js.map +1 -1
  73. package/dist/{dialog-Dt7Z19tQ.d.ts → dialog-Dra_FGdL.d.ts} +12 -12
  74. package/dist/dialog-E5OYibMU.cjs.map +1 -1
  75. package/dist/{dialog-DBHKJa6T.d.cts → dialog-uj9sAbgt.d.cts} +12 -12
  76. package/dist/dialogs/confirm-dialog.cjs +1 -1
  77. package/dist/dialogs/confirm-dialog.js +1 -1
  78. package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
  79. package/dist/dialogs/detail-dialog/component/sidebar.d.cts +27 -28
  80. package/dist/dialogs/detail-dialog/component/sidebar.d.ts +4 -5
  81. package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
  82. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  83. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  84. package/dist/dialogs/detail-dialog/index.js +1 -1
  85. package/dist/dialogs/detail-dialog/index.js.map +1 -1
  86. package/dist/dialogs/error-dialog.cjs +1 -1
  87. package/dist/dialogs/error-dialog.d.cts +0 -2
  88. package/dist/dialogs/error-dialog.d.ts +0 -2
  89. package/dist/dialogs/error-dialog.js +1 -1
  90. package/dist/dialogs/form-dialog.cjs +1 -1
  91. package/dist/dialogs/form-dialog.cjs.map +1 -1
  92. package/dist/dialogs/form-dialog.d.cts +2 -2
  93. package/dist/dialogs/form-dialog.d.ts +2 -2
  94. package/dist/dialogs/form-dialog.js +1 -1
  95. package/dist/dialogs/form-dialog.js.map +1 -1
  96. package/dist/dialogs/loading-dialog.cjs +1 -1
  97. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  98. package/dist/dialogs/loading-dialog.d.cts +0 -2
  99. package/dist/dialogs/loading-dialog.d.ts +0 -2
  100. package/dist/dialogs/loading-dialog.js +1 -1
  101. package/dist/dialogs/loading-dialog.js.map +1 -1
  102. package/dist/dropdown-menu-BF9QbIfo.js.map +1 -1
  103. package/dist/dropdown-menu-CIldv8D7.cjs.map +1 -1
  104. package/dist/error-dialog-Be_eV-D7.js +2 -0
  105. package/dist/error-dialog-Be_eV-D7.js.map +1 -0
  106. package/dist/error-dialog-CsZ9SHEm.cjs +2 -0
  107. package/dist/error-dialog-CsZ9SHEm.cjs.map +1 -0
  108. package/dist/{flex-uJ4bFSYt.js → flex-D_GSLR10.js} +2 -2
  109. package/dist/{flex-uJ4bFSYt.js.map → flex-D_GSLR10.js.map} +1 -1
  110. package/dist/{flex-DHnsdjKn.cjs → flex-DaTrJCBr.cjs} +2 -2
  111. package/dist/{flex-DHnsdjKn.cjs.map → flex-DaTrJCBr.cjs.map} +1 -1
  112. package/dist/form-Dcd2HzUB.cjs +2 -0
  113. package/dist/form-Dcd2HzUB.cjs.map +1 -0
  114. package/dist/form-RRTCXIG6.js +2 -0
  115. package/dist/form-RRTCXIG6.js.map +1 -0
  116. package/dist/form-wrapper-CjFQKRzY.cjs +2 -0
  117. package/dist/form-wrapper-CjFQKRzY.cjs.map +1 -0
  118. package/dist/form-wrapper-D-KkrCiZ.js +2 -0
  119. package/dist/form-wrapper-D-KkrCiZ.js.map +1 -0
  120. package/dist/forms/combobox-field.cjs +1 -1
  121. package/dist/forms/combobox-field.cjs.map +1 -1
  122. package/dist/forms/combobox-field.d.cts +2 -2
  123. package/dist/forms/combobox-field.d.ts +2 -2
  124. package/dist/forms/combobox-field.js +1 -1
  125. package/dist/forms/combobox-field.js.map +1 -1
  126. package/dist/forms/date-field.cjs +1 -1
  127. package/dist/forms/date-field.cjs.map +1 -1
  128. package/dist/forms/date-field.d.cts +2 -2
  129. package/dist/forms/date-field.d.ts +2 -2
  130. package/dist/forms/date-field.js +1 -1
  131. package/dist/forms/date-field.js.map +1 -1
  132. package/dist/forms/form-wrapper.cjs +1 -1
  133. package/dist/forms/form-wrapper.d.cts +2 -3
  134. package/dist/forms/form-wrapper.d.ts +2 -3
  135. package/dist/forms/form-wrapper.js +1 -1
  136. package/dist/forms/multi-select-field.cjs +1 -1
  137. package/dist/forms/multi-select-field.cjs.map +1 -1
  138. package/dist/forms/multi-select-field.d.cts +2 -2
  139. package/dist/forms/multi-select-field.js +1 -1
  140. package/dist/forms/multi-select-field.js.map +1 -1
  141. package/dist/forms/number-field.cjs +1 -1
  142. package/dist/forms/number-field.cjs.map +1 -1
  143. package/dist/forms/number-field.d.cts +2 -2
  144. package/dist/forms/number-field.d.ts +2 -2
  145. package/dist/forms/number-field.js +1 -1
  146. package/dist/forms/number-field.js.map +1 -1
  147. package/dist/forms/password-field.cjs +1 -1
  148. package/dist/forms/password-field.cjs.map +1 -1
  149. package/dist/forms/password-field.d.cts +2 -2
  150. package/dist/forms/password-field.d.ts +2 -2
  151. package/dist/forms/password-field.js +1 -1
  152. package/dist/forms/password-field.js.map +1 -1
  153. package/dist/forms/select-field.cjs +1 -1
  154. package/dist/forms/select-field.cjs.map +1 -1
  155. package/dist/forms/select-field.d.cts +2 -2
  156. package/dist/forms/select-field.d.ts +2 -2
  157. package/dist/forms/select-field.js +1 -1
  158. package/dist/forms/select-field.js.map +1 -1
  159. package/dist/forms/switch-field.cjs +1 -1
  160. package/dist/forms/switch-field.cjs.map +1 -1
  161. package/dist/forms/switch-field.d.cts +2 -2
  162. package/dist/forms/switch-field.d.ts +2 -2
  163. package/dist/forms/switch-field.js +1 -1
  164. package/dist/forms/switch-field.js.map +1 -1
  165. package/dist/forms/text-field.cjs +1 -1
  166. package/dist/forms/text-field.cjs.map +1 -1
  167. package/dist/forms/text-field.d.cts +2 -2
  168. package/dist/forms/text-field.d.ts +2 -2
  169. package/dist/forms/text-field.js +1 -1
  170. package/dist/forms/text-field.js.map +1 -1
  171. package/dist/forms/textarea-field.cjs +1 -1
  172. package/dist/forms/textarea-field.d.cts +2 -2
  173. package/dist/forms/textarea-field.d.ts +2 -2
  174. package/dist/forms/textarea-field.js +1 -1
  175. package/dist/{input-BQYGZywO.d.cts → input-6yLVoluZ.d.cts} +3 -3
  176. package/dist/{input-OWyLq45f.js → input-B2PP82lE.js} +2 -2
  177. package/dist/input-B2PP82lE.js.map +1 -0
  178. package/dist/{input-B8bT3wuo.cjs → input-DQF8Uxmk.cjs} +2 -2
  179. package/dist/input-DQF8Uxmk.cjs.map +1 -0
  180. package/dist/{input-B8FXpdwz.d.ts → input-MftSrRAM.d.ts} +3 -3
  181. package/dist/label-BpefWj7m.js +2 -0
  182. package/dist/{label-BQ52Pjw-.js.map → label-BpefWj7m.js.map} +1 -1
  183. package/dist/label-BvHMsK0O.cjs +2 -0
  184. package/dist/{label-3eYQRRYp.cjs.map → label-BvHMsK0O.cjs.map} +1 -1
  185. package/dist/layouts/app-layout/index.cjs +1 -1
  186. package/dist/layouts/app-layout/index.cjs.map +1 -1
  187. package/dist/layouts/app-layout/index.d.cts +25 -25
  188. package/dist/layouts/app-layout/index.d.ts +26 -26
  189. package/dist/layouts/app-layout/index.js +1 -1
  190. package/dist/layouts/app-layout/index.js.map +1 -1
  191. package/dist/layouts/flex.cjs +1 -1
  192. package/dist/layouts/flex.d.cts +2 -2
  193. package/dist/layouts/flex.d.ts +2 -2
  194. package/dist/layouts/flex.js +1 -1
  195. package/dist/{multi-select-DoV9aD32.cjs → multi-select-Ch4hJ1ZJ.cjs} +2 -2
  196. package/dist/multi-select-Ch4hJ1ZJ.cjs.map +1 -0
  197. package/dist/multi-select-l55hOOtW.js +2 -0
  198. package/dist/multi-select-l55hOOtW.js.map +1 -0
  199. package/dist/paragraph-BsEYXIR3.cjs.map +1 -1
  200. package/dist/paragraph-D4klQX4h.js.map +1 -1
  201. package/dist/popover-BAGWkHPy.js.map +1 -1
  202. package/dist/popover-sgf8XI5P.cjs.map +1 -1
  203. package/dist/progress-CMMXIQct.js +2 -0
  204. package/dist/{progress-DPisovgi.js.map → progress-CMMXIQct.js.map} +1 -1
  205. package/dist/progress-IkXemE6u.cjs +2 -0
  206. package/dist/{progress-MyGITZ3w.cjs.map → progress-IkXemE6u.cjs.map} +1 -1
  207. package/dist/{refresh-By25Z7zj.cjs → refresh-CAScDb8R.cjs} +1 -1
  208. package/dist/{refresh-By25Z7zj.cjs.map → refresh-CAScDb8R.cjs.map} +1 -1
  209. package/dist/{refresh-CMzmHeMf.js → refresh-D4LYYQln.js} +1 -1
  210. package/dist/{refresh-CMzmHeMf.js.map → refresh-D4LYYQln.js.map} +1 -1
  211. package/dist/scroll-area-CPQoJKt1.js.map +1 -1
  212. package/dist/scroll-area-D7O1NyZn.cjs.map +1 -1
  213. package/dist/{search-input-BmAoqcee.cjs → search-input-B1eWzWZj.cjs} +2 -2
  214. package/dist/{search-input-BmAoqcee.cjs.map → search-input-B1eWzWZj.cjs.map} +1 -1
  215. package/dist/{search-input-Ba8aUECr.js → search-input-BZtDbdjl.js} +2 -2
  216. package/dist/{search-input-Ba8aUECr.js.map → search-input-BZtDbdjl.js.map} +1 -1
  217. package/dist/select-C7na5CE5.cjs +2 -0
  218. package/dist/select-C7na5CE5.cjs.map +1 -0
  219. package/dist/select-VpccO3h2.js +2 -0
  220. package/dist/select-VpccO3h2.js.map +1 -0
  221. package/dist/{separator-DJ-8s4B1.d.cts → separator-C0YKWxkk.d.cts} +3 -3
  222. package/dist/{separator-CJHYnmH1.d.ts → separator-D6-cZUiB.d.ts} +3 -3
  223. package/dist/{separator-Bp3QE0oo.js → separator-DW2rRXaF.js} +1 -1
  224. package/dist/{separator-Bp3QE0oo.js.map → separator-DW2rRXaF.js.map} +1 -1
  225. package/dist/{separator-CECnaAdc.cjs → separator-DbcVW13X.cjs} +1 -1
  226. package/dist/{separator-CECnaAdc.cjs.map → separator-DbcVW13X.cjs.map} +1 -1
  227. package/dist/{sheet-CvstHEA7.cjs → sheet-BoPRwRzk.cjs} +1 -1
  228. package/dist/sheet-BoPRwRzk.cjs.map +1 -0
  229. package/dist/{sheet-B2CNJMzu.js → sheet-CJscm87z.js} +1 -1
  230. package/dist/sheet-CJscm87z.js.map +1 -0
  231. package/dist/sidebar-BCsgl6i1.cjs +2 -0
  232. package/dist/sidebar-BCsgl6i1.cjs.map +1 -0
  233. package/dist/sidebar-BEgx0ScE.js +2 -0
  234. package/dist/sidebar-BEgx0ScE.js.map +1 -0
  235. package/dist/{skeleton-DcRggqJa.cjs → skeleton-1syVaGRv.cjs} +1 -1
  236. package/dist/{skeleton-DcRggqJa.cjs.map → skeleton-1syVaGRv.cjs.map} +1 -1
  237. package/dist/{skeleton-BSWmwJUf.js → skeleton-D_7tekGk.js} +1 -1
  238. package/dist/{skeleton-BSWmwJUf.js.map → skeleton-D_7tekGk.js.map} +1 -1
  239. package/dist/{switch-FHFPaOds.js → switch-DxMWudiz.js} +2 -2
  240. package/dist/{switch-FHFPaOds.js.map → switch-DxMWudiz.js.map} +1 -1
  241. package/dist/{switch-ozERHRm5.cjs → switch-fR9s61cJ.cjs} +2 -2
  242. package/dist/{switch-ozERHRm5.cjs.map → switch-fR9s61cJ.cjs.map} +1 -1
  243. package/dist/table/index.cjs +1 -1
  244. package/dist/table/index.cjs.map +1 -1
  245. package/dist/table/index.d.cts +2 -2
  246. package/dist/table/index.d.ts +2 -2
  247. package/dist/table/index.js +1 -1
  248. package/dist/table/index.js.map +1 -1
  249. package/dist/{table-Dgk7z91H.cjs → table-DxHSASjm.cjs} +2 -2
  250. package/dist/{table-Dgk7z91H.cjs.map → table-DxHSASjm.cjs.map} +1 -1
  251. package/dist/{table-goPaI3yw.js → table-DxiQX7c8.js} +2 -2
  252. package/dist/{table-goPaI3yw.js.map → table-DxiQX7c8.js.map} +1 -1
  253. package/dist/{textarea-DSJO-BLA.js → textarea-BZu5g3z6.js} +2 -2
  254. package/dist/textarea-BZu5g3z6.js.map +1 -0
  255. package/dist/{textarea-CtdlfMIV.cjs → textarea-qcxhp2mg.cjs} +2 -2
  256. package/dist/textarea-qcxhp2mg.cjs.map +1 -0
  257. package/dist/title-DONX1fR6.cjs.map +1 -1
  258. package/dist/title-itXqz0us.js.map +1 -1
  259. package/dist/{toggle-06cycHir.js → toggle-Biu3ZQOw.js} +2 -2
  260. package/dist/{toggle-06cycHir.js.map → toggle-Biu3ZQOw.js.map} +1 -1
  261. package/dist/{toggle-D5tumZ8L.d.cts → toggle-BxWWejw5.d.ts} +4 -4
  262. package/dist/{toggle-BIHM3COb.cjs → toggle-C50tM61w.cjs} +2 -2
  263. package/dist/{toggle-BIHM3COb.cjs.map → toggle-C50tM61w.cjs.map} +1 -1
  264. package/dist/{toggle-Dd0rFKhT.d.ts → toggle-DvJddJPj.d.cts} +4 -4
  265. package/dist/tooltip-B7S7TrMj.js +2 -0
  266. package/dist/{tooltip-Ba2AdN_7.js.map → tooltip-B7S7TrMj.js.map} +1 -1
  267. package/dist/{tooltip-DRqQqSFW.cjs → tooltip-BX3D74kN.cjs} +2 -2
  268. package/dist/{tooltip-DRqQqSFW.cjs.map → tooltip-BX3D74kN.cjs.map} +1 -1
  269. package/dist/{tooltip-BnRE0jV2.d.ts → tooltip-CcNSIS_A.d.ts} +6 -6
  270. package/dist/{tooltip-Dkh_dieJ.d.cts → tooltip-Ccg2G_fB.d.cts} +6 -6
  271. package/dist/types-BN8HhYHR.cjs.map +1 -1
  272. package/dist/types-DDfAVYxf.js.map +1 -1
  273. package/dist/{types-CmcNT14g.d.ts → types-engjL0nN.d.ts} +1 -1
  274. package/dist/typography/paragraph.d.cts +2 -2
  275. package/dist/typography/paragraph.d.ts +2 -2
  276. package/dist/typography/title.d.cts +2 -2
  277. package/dist/typography/title.d.ts +2 -2
  278. package/dist/ui/alert-dialog.cjs +1 -1
  279. package/dist/ui/alert-dialog.d.cts +12 -12
  280. package/dist/ui/alert-dialog.d.ts +12 -12
  281. package/dist/ui/alert-dialog.js +1 -1
  282. package/dist/ui/alert.cjs +1 -1
  283. package/dist/ui/alert.cjs.map +1 -1
  284. package/dist/ui/alert.d.ts +6 -6
  285. package/dist/ui/alert.js +1 -1
  286. package/dist/ui/alert.js.map +1 -1
  287. package/dist/ui/aspect-ratio.cjs +1 -1
  288. package/dist/ui/aspect-ratio.cjs.map +1 -1
  289. package/dist/ui/aspect-ratio.d.cts +2 -2
  290. package/dist/ui/aspect-ratio.d.ts +2 -2
  291. package/dist/ui/aspect-ratio.js +1 -1
  292. package/dist/ui/aspect-ratio.js.map +1 -1
  293. package/dist/ui/avatar.cjs +1 -1
  294. package/dist/ui/avatar.cjs.map +1 -1
  295. package/dist/ui/avatar.d.cts +4 -4
  296. package/dist/ui/avatar.d.ts +4 -4
  297. package/dist/ui/avatar.js +1 -1
  298. package/dist/ui/avatar.js.map +1 -1
  299. package/dist/ui/badge.cjs +1 -1
  300. package/dist/ui/badge.d.cts +2 -2
  301. package/dist/ui/badge.d.ts +4 -4
  302. package/dist/ui/badge.js +1 -1
  303. package/dist/ui/breadcrumb.cjs +1 -1
  304. package/dist/ui/breadcrumb.cjs.map +1 -1
  305. package/dist/ui/breadcrumb.d.cts +8 -8
  306. package/dist/ui/breadcrumb.d.ts +8 -8
  307. package/dist/ui/breadcrumb.js +1 -1
  308. package/dist/ui/breadcrumb.js.map +1 -1
  309. package/dist/ui/button.d.ts +1 -1
  310. package/dist/ui/buttons/add-new.cjs +1 -1
  311. package/dist/ui/buttons/add-new.js +1 -1
  312. package/dist/ui/buttons/refresh.cjs +1 -1
  313. package/dist/ui/buttons/refresh.js +1 -1
  314. package/dist/ui/buttons/upload-image.cjs +1 -1
  315. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  316. package/dist/ui/buttons/upload-image.js +1 -1
  317. package/dist/ui/buttons/upload-image.js.map +1 -1
  318. package/dist/ui/calendar.cjs +1 -1
  319. package/dist/ui/calendar.d.cts +3 -3
  320. package/dist/ui/calendar.d.ts +4 -4
  321. package/dist/ui/calendar.js +1 -1
  322. package/dist/ui/card.d.cts +8 -8
  323. package/dist/ui/card.d.ts +8 -8
  324. package/dist/ui/carousel.cjs +1 -1
  325. package/dist/ui/carousel.cjs.map +1 -1
  326. package/dist/ui/carousel.d.cts +6 -6
  327. package/dist/ui/carousel.d.ts +7 -7
  328. package/dist/ui/carousel.js +1 -1
  329. package/dist/ui/carousel.js.map +1 -1
  330. package/dist/ui/collapsible.cjs +1 -1
  331. package/dist/ui/collapsible.cjs.map +1 -1
  332. package/dist/ui/collapsible.d.cts +4 -4
  333. package/dist/ui/collapsible.d.ts +4 -4
  334. package/dist/ui/collapsible.js +1 -1
  335. package/dist/ui/collapsible.js.map +1 -1
  336. package/dist/ui/command.d.cts +2 -2
  337. package/dist/ui/command.d.ts +2 -2
  338. package/dist/ui/context-menu.cjs +1 -1
  339. package/dist/ui/context-menu.cjs.map +1 -1
  340. package/dist/ui/context-menu.d.cts +16 -16
  341. package/dist/ui/context-menu.d.ts +16 -16
  342. package/dist/ui/context-menu.js +1 -1
  343. package/dist/ui/context-menu.js.map +1 -1
  344. package/dist/ui/dialog.d.cts +1 -1
  345. package/dist/ui/dialog.d.ts +1 -1
  346. package/dist/ui/dropdown-menu.d.cts +16 -16
  347. package/dist/ui/dropdown-menu.d.ts +16 -16
  348. package/dist/ui/file-uploader.cjs +2 -2
  349. package/dist/ui/file-uploader.cjs.map +1 -1
  350. package/dist/ui/file-uploader.d.cts +2 -2
  351. package/dist/ui/file-uploader.d.ts +2 -2
  352. package/dist/ui/file-uploader.js +2 -2
  353. package/dist/ui/file-uploader.js.map +1 -1
  354. package/dist/ui/form.cjs +1 -1
  355. package/dist/ui/form.d.cts +7 -7
  356. package/dist/ui/form.d.ts +7 -7
  357. package/dist/ui/form.js +1 -1
  358. package/dist/ui/hover-card.cjs +1 -1
  359. package/dist/ui/hover-card.cjs.map +1 -1
  360. package/dist/ui/hover-card.d.cts +4 -4
  361. package/dist/ui/hover-card.d.ts +4 -4
  362. package/dist/ui/hover-card.js +1 -1
  363. package/dist/ui/hover-card.js.map +1 -1
  364. package/dist/ui/image.cjs +2 -0
  365. package/dist/ui/image.cjs.map +1 -0
  366. package/dist/ui/image.d.cts +14 -0
  367. package/dist/ui/image.d.ts +14 -0
  368. package/dist/ui/image.js +2 -0
  369. package/dist/ui/image.js.map +1 -0
  370. package/dist/ui/input-otp.cjs +1 -1
  371. package/dist/ui/input-otp.cjs.map +1 -1
  372. package/dist/ui/input-otp.d.cts +5 -5
  373. package/dist/ui/input-otp.d.ts +5 -5
  374. package/dist/ui/input-otp.js +1 -1
  375. package/dist/ui/input-otp.js.map +1 -1
  376. package/dist/ui/input.cjs +1 -1
  377. package/dist/ui/input.d.cts +1 -1
  378. package/dist/ui/input.d.ts +1 -1
  379. package/dist/ui/input.js +1 -1
  380. package/dist/ui/inputs/search-input.cjs +1 -1
  381. package/dist/ui/inputs/search-input.d.cts +3 -3
  382. package/dist/ui/inputs/search-input.d.ts +3 -3
  383. package/dist/ui/inputs/search-input.js +1 -1
  384. package/dist/ui/label.cjs +1 -1
  385. package/dist/ui/label.d.cts +2 -2
  386. package/dist/ui/label.d.ts +2 -2
  387. package/dist/ui/label.js +1 -1
  388. package/dist/ui/menubar.cjs +1 -1
  389. package/dist/ui/menubar.cjs.map +1 -1
  390. package/dist/ui/menubar.d.cts +17 -17
  391. package/dist/ui/menubar.d.ts +17 -17
  392. package/dist/ui/menubar.js +1 -1
  393. package/dist/ui/menubar.js.map +1 -1
  394. package/dist/ui/multi-select.cjs +1 -1
  395. package/dist/ui/multi-select.d.cts +2 -2
  396. package/dist/ui/multi-select.d.ts +2 -2
  397. package/dist/ui/multi-select.js +1 -1
  398. package/dist/ui/navigation-menu.cjs.map +1 -1
  399. package/dist/ui/navigation-menu.d.cts +9 -9
  400. package/dist/ui/navigation-menu.d.ts +9 -9
  401. package/dist/ui/navigation-menu.js.map +1 -1
  402. package/dist/ui/pagination.cjs +1 -1
  403. package/dist/ui/pagination.cjs.map +1 -1
  404. package/dist/ui/pagination.d.cts +8 -8
  405. package/dist/ui/pagination.d.ts +9 -9
  406. package/dist/ui/pagination.js +1 -1
  407. package/dist/ui/pagination.js.map +1 -1
  408. package/dist/ui/popover.d.cts +5 -5
  409. package/dist/ui/popover.d.ts +5 -5
  410. package/dist/ui/progress.cjs +1 -1
  411. package/dist/ui/progress.d.cts +2 -2
  412. package/dist/ui/progress.d.ts +2 -2
  413. package/dist/ui/progress.js +1 -1
  414. package/dist/ui/radio-group.cjs +1 -1
  415. package/dist/ui/radio-group.cjs.map +1 -1
  416. package/dist/ui/radio-group.d.cts +3 -3
  417. package/dist/ui/radio-group.d.ts +3 -3
  418. package/dist/ui/radio-group.js +1 -1
  419. package/dist/ui/radio-group.js.map +1 -1
  420. package/dist/ui/resizable.cjs +1 -1
  421. package/dist/ui/resizable.cjs.map +1 -1
  422. package/dist/ui/resizable.d.cts +4 -4
  423. package/dist/ui/resizable.d.ts +4 -4
  424. package/dist/ui/resizable.js +1 -1
  425. package/dist/ui/resizable.js.map +1 -1
  426. package/dist/ui/scroll-area.d.cts +3 -3
  427. package/dist/ui/scroll-area.d.ts +3 -3
  428. package/dist/ui/select.cjs +1 -1
  429. package/dist/ui/select.d.cts +11 -11
  430. package/dist/ui/select.d.ts +11 -11
  431. package/dist/ui/select.js +1 -1
  432. package/dist/ui/separator.cjs +1 -1
  433. package/dist/ui/separator.d.cts +1 -1
  434. package/dist/ui/separator.d.ts +1 -1
  435. package/dist/ui/separator.js +1 -1
  436. package/dist/ui/sheet.cjs +1 -1
  437. package/dist/ui/sheet.d.cts +9 -9
  438. package/dist/ui/sheet.d.ts +9 -9
  439. package/dist/ui/sheet.js +1 -1
  440. package/dist/ui/sidebar.cjs +2 -1
  441. package/dist/ui/sidebar.cjs.map +1 -0
  442. package/dist/ui/sidebar.d.cts +29 -29
  443. package/dist/ui/sidebar.d.ts +30 -30
  444. package/dist/ui/sidebar.js +2 -1
  445. package/dist/ui/sidebar.js.map +1 -0
  446. package/dist/ui/skeleton.cjs +1 -1
  447. package/dist/ui/skeleton.d.cts +2 -2
  448. package/dist/ui/skeleton.d.ts +2 -2
  449. package/dist/ui/skeleton.js +1 -1
  450. package/dist/ui/slider.cjs +1 -1
  451. package/dist/ui/slider.cjs.map +1 -1
  452. package/dist/ui/slider.d.cts +2 -2
  453. package/dist/ui/slider.d.ts +2 -2
  454. package/dist/ui/slider.js +1 -1
  455. package/dist/ui/slider.js.map +1 -1
  456. package/dist/ui/sonner.d.cts +2 -2
  457. package/dist/ui/sonner.d.ts +2 -2
  458. package/dist/ui/switch.cjs +1 -1
  459. package/dist/ui/switch.d.cts +2 -2
  460. package/dist/ui/switch.d.ts +2 -2
  461. package/dist/ui/switch.js +1 -1
  462. package/dist/ui/table.cjs +1 -1
  463. package/dist/ui/table.d.cts +9 -9
  464. package/dist/ui/table.d.ts +9 -9
  465. package/dist/ui/table.js +1 -1
  466. package/dist/ui/tabs.cjs.map +1 -1
  467. package/dist/ui/tabs.d.cts +5 -5
  468. package/dist/ui/tabs.d.ts +5 -5
  469. package/dist/ui/tabs.js.map +1 -1
  470. package/dist/ui/textarea.cjs +1 -1
  471. package/dist/ui/textarea.d.cts +2 -2
  472. package/dist/ui/textarea.d.ts +2 -2
  473. package/dist/ui/textarea.js +1 -1
  474. package/dist/ui/toggle-group.cjs +1 -1
  475. package/dist/ui/toggle-group.cjs.map +1 -1
  476. package/dist/ui/toggle-group.d.cts +4 -4
  477. package/dist/ui/toggle-group.d.ts +4 -4
  478. package/dist/ui/toggle-group.js +1 -1
  479. package/dist/ui/toggle-group.js.map +1 -1
  480. package/dist/ui/toggle.cjs +1 -1
  481. package/dist/ui/toggle.d.cts +1 -1
  482. package/dist/ui/toggle.d.ts +1 -1
  483. package/dist/ui/toggle.js +1 -1
  484. package/dist/ui/tooltip.cjs +1 -1
  485. package/dist/ui/tooltip.d.cts +1 -1
  486. package/dist/ui/tooltip.d.ts +1 -1
  487. package/dist/ui/tooltip.js +1 -1
  488. package/package.json +15 -5
  489. package/dist/alert-dialog-Bc-61QzL.cjs.map +0 -1
  490. package/dist/alert-dialog-kpuqvmVo.js +0 -2
  491. package/dist/alert-dialog-kpuqvmVo.js.map +0 -1
  492. package/dist/calendar-CB_hTeGT.js.map +0 -1
  493. package/dist/calendar-rpgciCA-.cjs.map +0 -1
  494. package/dist/date-D7i-nFOS.js +0 -2
  495. package/dist/date-D7i-nFOS.js.map +0 -1
  496. package/dist/date-DevNulgp.cjs +0 -2
  497. package/dist/date-DevNulgp.cjs.map +0 -1
  498. package/dist/error-dialog-DvTlwpSn.cjs +0 -2
  499. package/dist/error-dialog-DvTlwpSn.cjs.map +0 -1
  500. package/dist/error-dialog-e9mFaOuG.js +0 -2
  501. package/dist/error-dialog-e9mFaOuG.js.map +0 -1
  502. package/dist/form-BzvxUv0a.js +0 -2
  503. package/dist/form-BzvxUv0a.js.map +0 -1
  504. package/dist/form-CXu8t0VS.cjs +0 -2
  505. package/dist/form-CXu8t0VS.cjs.map +0 -1
  506. package/dist/form-wrapper-CZKtb1j5.cjs +0 -2
  507. package/dist/form-wrapper-CZKtb1j5.cjs.map +0 -1
  508. package/dist/form-wrapper-Cks4xmCV.js +0 -2
  509. package/dist/form-wrapper-Cks4xmCV.js.map +0 -1
  510. package/dist/input-B8bT3wuo.cjs.map +0 -1
  511. package/dist/input-OWyLq45f.js.map +0 -1
  512. package/dist/label-3eYQRRYp.cjs +0 -2
  513. package/dist/label-BQ52Pjw-.js +0 -2
  514. package/dist/layouts/main/index.cjs +0 -2
  515. package/dist/layouts/main/index.cjs.map +0 -1
  516. package/dist/layouts/main/index.d.cts +0 -17
  517. package/dist/layouts/main/index.d.ts +0 -17
  518. package/dist/layouts/main/index.js +0 -2
  519. package/dist/layouts/main/index.js.map +0 -1
  520. package/dist/multi-select-DkEzuDXi.js +0 -2
  521. package/dist/multi-select-DkEzuDXi.js.map +0 -1
  522. package/dist/multi-select-DoV9aD32.cjs.map +0 -1
  523. package/dist/progress-DPisovgi.js +0 -2
  524. package/dist/progress-MyGITZ3w.cjs +0 -2
  525. package/dist/select-BjTQmEN7.js +0 -2
  526. package/dist/select-BjTQmEN7.js.map +0 -1
  527. package/dist/select-BlPiYiG_.cjs +0 -2
  528. package/dist/select-BlPiYiG_.cjs.map +0 -1
  529. package/dist/sheet-B2CNJMzu.js.map +0 -1
  530. package/dist/sheet-CvstHEA7.cjs.map +0 -1
  531. package/dist/sidebar-BDefeoUz.js +0 -2
  532. package/dist/sidebar-BDefeoUz.js.map +0 -1
  533. package/dist/sidebar-C6MoqLW4.cjs +0 -2
  534. package/dist/sidebar-C6MoqLW4.cjs.map +0 -1
  535. package/dist/sidebar-CoAMlkou.js +0 -2
  536. package/dist/sidebar-CoAMlkou.js.map +0 -1
  537. package/dist/sidebar-Dzl9-lVV.cjs +0 -2
  538. package/dist/sidebar-Dzl9-lVV.cjs.map +0 -1
  539. package/dist/textarea-CtdlfMIV.cjs.map +0 -1
  540. package/dist/textarea-DSJO-BLA.js.map +0 -1
  541. package/dist/tooltip-Ba2AdN_7.js +0 -2
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`react`)),n=e.__toESM(require(`@customafk/react-toolkit/utils`)),r=e.__toESM(require(`react/jsx-runtime`)),i=e.__toESM(require(`radix-ui`));function a({className:e,...t}){return(0,r.jsx)(i.Switch.Root,{"data-slot":`switch`,className:(0,n.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),...t,children:(0,r.jsx)(i.Switch.Thumb,{"data-slot":`switch-thumb`,className:(0,n.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 a}});
2
- //# sourceMappingURL=switch-ozERHRm5.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`@customafk/react-toolkit/utils`)),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`react`)),i=e.__toESM(require(`radix-ui`));function a({className:e,...r}){return(0,n.jsx)(i.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),...r,children:(0,n.jsx)(i.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 a}});
2
+ //# sourceMappingURL=switch-fR9s61cJ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-ozERHRm5.cjs","names":["SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { Switch as SwitchPrimitive } from 'radix-ui'\n\nimport { cn } from '@customafk/react-toolkit/utils'\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":"wMAMA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA"}
1
+ {"version":3,"file":"switch-fR9s61cJ.cjs","names":["SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\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":"wMAMA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA"}
@@ -1,2 +1,2 @@
1
- const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../flex-DHnsdjKn.cjs`);require(`../paragraph-BsEYXIR3.cjs`);const n=require(`../button-ChpGfVjG.cjs`);require(`../input-B8bT3wuo.cjs`);const r=require(`../select-BlPiYiG_.cjs`),i=require(`../dropdown-menu-CIldv8D7.cjs`);require(`../scroll-area-D7O1NyZn.cjs`);const a=require(`../table-Dgk7z91H.cjs`),o=require(`../search-input-BmAoqcee.cjs`),s=require(`../add-new-B9vW0r69.cjs`),c=require(`../refresh-By25Z7zj.cjs`),l=e.__toESM(require(`react`)),u=e.__toESM(require(`@customafk/react-toolkit/utils`)),d=e.__toESM(require(`react/jsx-runtime`)),f=e.__toESM(require(`lucide-react`)),p=e.__toESM(require(`@tanstack/react-table`)),m=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},h=({column:e})=>{let t=e.getIsSorted(),n={asc:(0,d.jsx)(f.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,d.jsx)(f.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},g=({column:e})=>{let t=e.columnDef.header;return e.getCanPin()?e.getIsPinned()?(0,d.jsx)(n.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${t} column`,title:`Unpin ${t} column`,onClick:()=>e.pin(!1),children:(0,d.jsx)(f.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,d.jsxs)(i.DropdownMenu,{children:[(0,d.jsx)(i.DropdownMenuTrigger,{asChild:!0,children:(0,d.jsx)(n.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${t} column`,title:`Pin options for ${t} column`,children:(0,d.jsx)(f.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,d.jsxs)(i.DropdownMenuContent,{align:`end`,children:[(0,d.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`left`),children:[(0,d.jsx)(f.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,d.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`right`),children:[(0,d.jsx)(f.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},_=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return(0,d.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&(0,d.jsxs)(`div`,{className:(0,u.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[(0,d.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,d.jsx)(h,{column:t})]}),!e.isPlaceholder&&(0,d.jsx)(g,{column:t})]})},v=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return(0,d.jsxs)(a.Table,{className:(0,u.cn)(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[(0,d.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,d.jsx)(a.TableRow,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,d.jsx)(a.TableHead,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,u.cn)(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...m(e.column)},children:(0,d.jsx)(_,{header:e})},e.id)})},e.id))}),(0,d.jsx)(a.TableBody,{className:(0,u.cn)(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?(0,d.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,d.jsx)(a.TableCell,{children:`loading...`})}):(0,d.jsx)(l.default.Fragment,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>(0,d.jsx)(a.TableRow,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,d.jsx)(a.TableCell,{style:{...m(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,u.cn)(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):(0,d.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,d.jsx)(a.TableCell,{children:(0,d.jsxs)(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[(0,d.jsx)(f.PackagePlusIcon,{size:48,strokeWidth:2}),(0,d.jsx)(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})};function y({filteredSelectedRowsLength:e,filteredRowsLength:t,pageSize:i,setPageSize:a,pageIndex:o=0,setPageIndex:s,previousPage:c,nextPage:l,canPreviousPage:u,canNextPage:p,pageCount:m=1}){"use no memo";return(0,d.jsxs)(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[(0,d.jsxs)(`div`,{className:`text-text-positive flex-1 text-sm`,children:[e,` of `,t,` row(s) selected.`]}),(0,d.jsxs)(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[(0,d.jsxs)(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[(0,d.jsx)(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),(0,d.jsxs)(r.Select,{value:`${i}`,onValueChange:e=>{a?.(Number(e))},children:[(0,d.jsx)(r.SelectTrigger,{className:`h-8 w-18`,children:(0,d.jsx)(r.SelectValue,{placeholder:i})}),(0,d.jsx)(r.SelectContent,{side:`top`,children:[10,20,30,40,50].map(e=>(0,d.jsx)(r.SelectItem,{value:`${e}`,children:e},e))})]}),(0,d.jsxs)(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,o+1,` of `,m]})]}),(0,d.jsxs)(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[(0,d.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:()=>s?.(0),disabled:!u,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to first page`}),(0,d.jsx)(f.ChevronsLeft,{})]}),(0,d.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:c,disabled:!u,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to previous page`}),(0,d.jsx)(f.ChevronLeft,{})]}),(0,d.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:l,disabled:!p,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to next page`}),(0,d.jsx)(f.ChevronRight,{})]}),(0,d.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:()=>{s?.(m-1)},disabled:!p,children:[(0,d.jsx)(`span`,{className:`sr-only`,children:`Go to last page`}),(0,d.jsx)(f.ChevronsRight,{})]})]})]})]})}const b=({onAdd:e,onRefresh:n})=>(0,d.jsxs)(t.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,d.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,d.jsx)(o.SearchInput,{placeholder:`Search...`})}),(0,d.jsxs)(t.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,d.jsx)(s.AddNewBtn,{onClick:e}),(0,d.jsx)(c.RefreshBtn,{onClick:n})]})]});function x({data:e,totalCount:n,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:u}){"use no memo";let[f,m]=l.default.useState({}),[h,g]=l.default.useState([]),[_,x]=l.default.useState([]),[S,C]=l.default.useState({}),w=l.default.useMemo(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:i,rowCount:n,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getPaginationRowModel:(0,p.getPaginationRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:f,sorting:h,columnVisibility:S,columnFilters:_,...a?{pagination:a}:{}},onRowSelectionChange:m,onSortingChange:g,onColumnVisibilityChange:C,onColumnFiltersChange:x,...u?{onPaginationChange:u}:{}});return(0,d.jsxs)(t.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,d.jsx)(b,{onAdd:o,onRefresh:s}),(0,d.jsxs)(t.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[(0,d.jsx)(v,{table:T,isLoading:r,onClickRow:c}),(0,d.jsx)(y,{pageSize:T.getState().pagination.pageSize,setPageSize:T.setPageSize,filteredSelectedRowsLength:T.getFilteredSelectedRowModel().rows.length,filteredRowsLength:T.getFilteredRowModel().rows.length,pageIndex:T.getState().pagination.pageIndex,setPageIndex:T.setPageIndex,previousPage:T.previousPage,nextPage:T.nextPage,canPreviousPage:T.getCanPreviousPage(),canNextPage:T.getCanNextPage(),pageCount:T.getPageCount()})]})]})}exports.Table=x;
1
+ const e=require(`../chunk-CUT6urMc.cjs`),t=require(`../flex-DaTrJCBr.cjs`);require(`../paragraph-BsEYXIR3.cjs`);const n=require(`../button-ChpGfVjG.cjs`);require(`../input-DQF8Uxmk.cjs`);const r=require(`../select-C7na5CE5.cjs`),i=require(`../dropdown-menu-CIldv8D7.cjs`);require(`../scroll-area-D7O1NyZn.cjs`);const a=require(`../table-DxHSASjm.cjs`),o=require(`../add-new-C9Gjd7QJ.cjs`),s=require(`../refresh-CAScDb8R.cjs`),c=require(`../search-input-B1eWzWZj.cjs`),l=e.__toESM(require(`@customafk/react-toolkit/utils`)),u=e.__toESM(require(`react/jsx-runtime`)),d=e.__toESM(require(`react`)),f=e.__toESM(require(`lucide-react`)),p=e.__toESM(require(`@tanstack/react-table`)),m=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},h=({column:e})=>{let t=e.getIsSorted(),n={asc:(0,u.jsx)(f.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,u.jsx)(f.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},g=({column:e})=>{let t=e.columnDef.header;return e.getCanPin()?e.getIsPinned()?(0,u.jsx)(n.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${t} column`,title:`Unpin ${t} column`,onClick:()=>e.pin(!1),children:(0,u.jsx)(f.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,u.jsxs)(i.DropdownMenu,{children:[(0,u.jsx)(i.DropdownMenuTrigger,{asChild:!0,children:(0,u.jsx)(n.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${t} column`,title:`Pin options for ${t} column`,children:(0,u.jsx)(f.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,u.jsxs)(i.DropdownMenuContent,{align:`end`,children:[(0,u.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`left`),children:[(0,u.jsx)(f.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,u.jsxs)(i.DropdownMenuItem,{onClick:()=>e.pin(`right`),children:[(0,u.jsx)(f.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},_=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return(0,u.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&(0,u.jsxs)(`div`,{className:(0,l.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[(0,u.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,u.jsx)(h,{column:t})]}),!e.isPlaceholder&&(0,u.jsx)(g,{column:t})]})},v=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return(0,u.jsxs)(a.Table,{className:(0,l.cn)(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[(0,u.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,u.jsx)(a.TableRow,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,u.jsx)(a.TableHead,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,l.cn)(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...m(e.column)},children:(0,u.jsx)(_,{header:e})},e.id)})},e.id))}),(0,u.jsx)(a.TableBody,{className:(0,l.cn)(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?(0,u.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,u.jsx)(a.TableCell,{children:`loading...`})}):(0,u.jsx)(d.default.Fragment,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>(0,u.jsx)(a.TableRow,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return(0,u.jsx)(a.TableCell,{style:{...m(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:(0,l.cn)(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):(0,u.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,u.jsx)(a.TableCell,{children:(0,u.jsxs)(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[(0,u.jsx)(f.PackagePlusIcon,{size:48,strokeWidth:2}),(0,u.jsx)(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})},y=({onAdd:e,onRefresh:n})=>(0,u.jsxs)(t.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,u.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,u.jsx)(c.SearchInput,{placeholder:`Search...`})}),(0,u.jsxs)(t.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,u.jsx)(o.AddNewBtn,{onClick:e}),(0,u.jsx)(s.RefreshBtn,{onClick:n})]})]});function b({filteredSelectedRowsLength:e,filteredRowsLength:t,pageSize:i,setPageSize:a,pageIndex:o=0,setPageIndex:s,previousPage:c,nextPage:l,canPreviousPage:d,canNextPage:p,pageCount:m=1}){"use no memo";return(0,u.jsxs)(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[(0,u.jsxs)(`div`,{className:`text-text-positive flex-1 text-sm`,children:[e,` of `,t,` row(s) selected.`]}),(0,u.jsxs)(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[(0,u.jsxs)(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[(0,u.jsx)(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),(0,u.jsxs)(r.Select,{value:`${i}`,onValueChange:e=>{a?.(Number(e))},children:[(0,u.jsx)(r.SelectTrigger,{className:`h-8 w-18`,children:(0,u.jsx)(r.SelectValue,{placeholder:i})}),(0,u.jsx)(r.SelectContent,{side:`top`,children:[10,20,30,40,50].map(e=>(0,u.jsx)(r.SelectItem,{value:`${e}`,children:e},e))})]}),(0,u.jsxs)(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,o+1,` of `,m]})]}),(0,u.jsxs)(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[(0,u.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:()=>s?.(0),disabled:!d,children:[(0,u.jsx)(`span`,{className:`sr-only`,children:`Go to first page`}),(0,u.jsx)(f.ChevronsLeft,{})]}),(0,u.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:c,disabled:!d,children:[(0,u.jsx)(`span`,{className:`sr-only`,children:`Go to previous page`}),(0,u.jsx)(f.ChevronLeft,{})]}),(0,u.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:l,disabled:!p,children:[(0,u.jsx)(`span`,{className:`sr-only`,children:`Go to next page`}),(0,u.jsx)(f.ChevronRight,{})]}),(0,u.jsxs)(n.Button,{variant:`outline`,color:`muted`,onClick:()=>{s?.(m-1)},disabled:!p,children:[(0,u.jsx)(`span`,{className:`sr-only`,children:`Go to last page`}),(0,u.jsx)(f.ChevronsRight,{})]})]})]})]})}function x({data:e,totalCount:n,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[f,m]=d.default.useState({}),[h,g]=d.default.useState([]),[_,x]=d.default.useState([]),[S,C]=d.default.useState({}),w=d.default.useMemo(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:i,rowCount:n,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getPaginationRowModel:(0,p.getPaginationRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:f,sorting:h,columnVisibility:S,columnFilters:_,...a?{pagination:a}:{}},onRowSelectionChange:m,onSortingChange:g,onColumnVisibilityChange:C,onColumnFiltersChange:x,...l?{onPaginationChange:l}:{}});return(0,u.jsxs)(t.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,u.jsx)(y,{onAdd:o,onRefresh:s}),(0,u.jsxs)(t.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[(0,u.jsx)(v,{table:T,isLoading:r,onClickRow:c}),(0,u.jsx)(b,{pageSize:T.getState().pagination.pageSize,setPageSize:T.setPageSize,filteredSelectedRowsLength:T.getFilteredSelectedRowModel().rows.length,filteredRowsLength:T.getFilteredRowModel().rows.length,pageIndex:T.getState().pagination.pageIndex,setPageIndex:T.setPageIndex,previousPage:T.previousPage,nextPage:T.nextPage,canPreviousPage:T.getCanPreviousPage(),canNextPage:T.getCanNextPage(),pageCount:T.getPageCount()})]})]})}exports.Table=x;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","React","PackagePlusIcon","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","pageSize","Button","ChevronsLeft","ChevronLeft","ChevronRight","ChevronsRight","DataTableHeader: React.FC<Props>","Flex","SearchInput","AddNewBtn","RefreshBtn","React","Flex"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-pagination.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import React from 'react'\nimport { type Column, flexRender, type Header, type Table as ReactTable } from '@tanstack/react-table'\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, PackagePlusIcon, PinOffIcon } from 'lucide-react'\n\nimport { cn } from '@customafk/react-toolkit/utils'\nimport type { AnyEntity } from '@/types'\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, TableHead, TableHeader, TableRow } from '@/components/ui/table'\n\n// Helper function to compute pinning styles for columns\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 = ({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted()\n\n const icons = {\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 return sortDirection ? icons[sortDirection] : null\n}\n\nconst PinControls = ({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = column.columnDef.header as string\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={() => column.pin(false)}\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={() => column.pin('left')}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.pin('right')}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nconst HeaderContent = ({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n column.getToggleSortingHandler()?.(e)\n }\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n {!header.isPlaceholder && (\n <div\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n onClick={column.getToggleSortingHandler()}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n )}\n {!header.isPlaceholder && <PinControls column={column} />}\n </div>\n )\n}\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>\n columnsLength?: number\n isLoading?: boolean\n onClickRow?: (id: string) => void\n}\n\nexport const DataTable = ({ table, isLoading, onClickRow }: DataTableProps) => {\n 'use no memo'\n\n return (\n <Table\n className={cn(\n '!w-full',\n 'table-fixed 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 '[&_tr]:border-none',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr:not(:last-child)_td]:border-b-border-weak',\n '[&_tfoot_td]:border-t',\n )}\n style={{\n width: table.getTotalSize(),\n }}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\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 return (\n <TableHead\n key={header.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'relative 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 {...{\n colSpan: header.colSpan,\n style: {\n width: header.getSize(),\n maxWidth: header.getSize(),\n ...getPinningStyles(header.column),\n },\n }}\n >\n <HeaderContent header={header} />\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody className={cn(isLoading && 'h-36', table.getRowModel().rows?.length === 0 && 'h-48')}>\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 <React.Fragment>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && 'selected'}\n className=\"cursor-pointer border-none focus:outline-none\"\n onClick={() => onClickRow?.(row?.id || row.original?.id?.toString() || row.original?.uuid || undefined)}\n >\n {row.getVisibleCells().map((cell) => {\n const { column } = cell\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n return (\n <TableCell\n key={cell.id}\n style={{\n ...getPinningStyles(column),\n width: cell.column.getSize(),\n maxWidth: cell.column.getSize(),\n }}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'overflow-hidden py-2.5',\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 'data-pinned:bg-background/90',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>\n <div className=\"text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base\">\n <PackagePlusIcon size={48} strokeWidth={2} />\n <p>Thêm dữ liệu để hiển thị</p>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n )}\n </TableBody>\n </Table>\n )\n}\n","import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface DataTablePaginationProps {\n filteredSelectedRowsLength?: number\n filteredRowsLength?: number\n\n pageSize?: number\n setPageSize?: (size: number) => void\n\n pageIndex?: number\n setPageIndex?: (index: number) => void\n\n previousPage?: () => void\n nextPage?: () => void\n\n canPreviousPage?: boolean\n canNextPage?: boolean\n\n pageCount?: number\n}\n\nexport function DataTablePagination<TData>({\n filteredSelectedRowsLength,\n filteredRowsLength,\n pageSize,\n setPageSize,\n pageIndex = 0,\n setPageIndex,\n previousPage,\n nextPage,\n canPreviousPage,\n canNextPage,\n pageCount = 1,\n}: DataTablePaginationProps) {\n 'use no memo'\n return (\n <div className=\"mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row\">\n <div className=\"text-text-positive flex-1 text-sm\">\n {filteredSelectedRowsLength} of {filteredRowsLength} row(s) selected.\n </div>\n\n <div className=\"flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4\">\n <div className=\"flex items-center space-x-2 sm:space-x-4\">\n <p className=\"sr-only text-sm font-medium sm:not-sr-only sm:mr-4\">Rows per page</p>\n <Select\n value={`${pageSize}`}\n onValueChange={(value) => {\n setPageSize?.(Number(value))\n }}\n >\n <SelectTrigger className=\"h-8 w-18\">\n <SelectValue placeholder={pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <div className=\"flex items-center justify-center text-sm font-medium\">\n Page {pageIndex + 1} of {pageCount}\n </div>\n </div>\n\n <div className=\"flex w-full justify-end space-x-2 *:size-9 *:p-0\">\n <Button variant=\"outline\" color=\"muted\" onClick={() => setPageIndex?.(0)} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={previousPage} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={nextPage} disabled={!canNextPage}>\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n color=\"muted\"\n onClick={() => {\n setPageIndex?.(pageCount - 1)\n }}\n disabled={!canNextPage}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n","import { Flex } from '@/components/layouts/flex'\nimport { SearchInput } from '@/components/ui/inputs/search-input'\nimport { AddNewBtn } from '@/components/ui/buttons/add-new'\nimport { RefreshBtn } from '@/components/ui/buttons/refresh'\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 React from 'react'\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n type VisibilityState,\n} from '@tanstack/react-table'\n\nimport { DataTable } from './data-table'\nimport { DataTablePagination } from './data-table-pagination'\nimport { Flex } from '../layouts/flex'\nimport { DataTableHeader } from './data-table-header'\n\ntype Props<T> = {\n data: T[]\n totalCount?: number\n isLoading?: boolean\n columns: ColumnDef<T>[]\n pagination?: PaginationState\n onAdd?: () => void\n onRefresh?: () => void\n onClickRow?: (id: string) => void\n onPaginationChange?: React.Dispatch<React.SetStateAction<PaginationState>>\n}\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n columns,\n pagination,\n onAdd,\n onRefresh,\n onClickRow,\n onPaginationChange,\n}: Props<T>) {\n 'use no memo'\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n\n const initialState = React.useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n pagination: { pageIndex: 0, pageSize: 20 },\n }),\n [],\n )\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n manualPagination: true,\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\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 ...(pagination ? { pagination } : {}),\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n ...(onPaginationChange ? { onPaginationChange } : {}),\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 table={table} isLoading={isLoading} onClickRow={onClickRow} />\n <DataTablePagination\n pageSize={table.getState().pagination.pageSize}\n setPageSize={table.setPageSize}\n filteredSelectedRowsLength={table.getFilteredSelectedRowModel().rows.length}\n filteredRowsLength={table.getFilteredRowModel().rows.length}\n pageIndex={table.getState().pagination.pageIndex}\n setPageIndex={table.setPageIndex}\n previousPage={table.previousPage}\n nextPage={table.nextPage}\n canPreviousPage={table.getCanPreviousPage()}\n canNextPage={table.getCanNextPage()}\n pageCount={table.getPageCount()}\n />\n </Flex>\n </Flex>\n )\n}\n"],"mappings":"sqBAaM,EAAoB,GAAmD,CAC3E,IAAM,EAAW,EAAO,cACxB,MAAO,CACL,KAAM,IAAa,OAAS,GAAG,EAAO,SAAS,QAAQ,IAAM,IAAA,GAC7D,MAAO,IAAa,QAAU,GAAG,EAAO,SAAS,SAAS,IAAM,IAAA,GAChE,SAAU,EAAW,SAAW,WAChC,MAAO,EAAO,UACd,OAAQ,EAAW,EAAI,IAIrB,GAAoB,CAAE,YAA4C,CACtE,IAAM,EAAgB,EAAO,cAEvB,EAAQ,CACZ,KAAK,EAAA,EAAA,KAACA,EAAAA,UAAAA,CAAU,UAAU,sBAAsB,KAAM,GAAI,YAAa,EAAG,cAAY,SACtF,MAAM,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,UAAU,sBAAsB,KAAM,GAAI,YAAa,EAAG,cAAY,UAG3F,OAAO,EAAgB,EAAM,GAAiB,MAG1C,GAAe,CAAE,YAA4C,CACjE,IAAM,EAAe,EAAO,UAAU,OAoBtC,OAlBK,EAAO,YAER,EAAO,eAEP,EAAA,EAAA,KAACwB,EAAAA,OAAAA,CACC,KAAK,OACL,QAAQ,QACR,MAAM,YACN,UAAU,mEACV,aAAY,SAAS,EAAa,SAClC,MAAO,SAAS,EAAa,SAC7B,YAAe,EAAO,IAAI,cAE1B,EAAA,EAAA,KAACtB,EAAAA,WAAAA,CAAW,UAAU,aAAa,KAAM,GAAI,cAAY,YAM7D,EAAA,EAAA,MAACC,EAAAA,aAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,oBAAAA,CAAoB,QAAA,aACnB,EAAA,EAAA,KAACoB,EAAAA,OAAAA,CACC,KAAK,OACL,QAAQ,QACR,MAAM,YACN,UAAU,qBACV,aAAY,mBAAmB,EAAa,SAC5C,MAAO,mBAAmB,EAAa,mBAEvC,EAAA,EAAA,KAACnB,EAAAA,aAAAA,CAAa,UAAU,aAAa,KAAM,GAAI,cAAY,cAG/D,EAAA,EAAA,MAACC,EAAAA,oBAAAA,CAAoB,MAAM,iBACzB,EAAA,EAAA,MAACC,EAAAA,iBAAAA,CAAiB,YAAe,EAAO,IAAI,mBAC1C,EAAA,EAAA,KAACC,EAAAA,oBAAAA,CAAoB,KAAM,GAAI,UAAU,aAAa,cAAY,SAAS,oBAG7E,EAAA,EAAA,MAACD,EAAAA,iBAAAA,CAAiB,YAAe,EAAO,IAAI,oBAC1C,EAAA,EAAA,KAACE,EAAAA,qBAAAA,CAAqB,KAAM,GAAI,UAAU,aAAa,cAAY,SAAS,0BAtCpD,MA8C5B,GAAiB,CAAE,YAAqD,CAC5E,GAAM,CAAE,UAAW,EAEb,EAAc,GAA2B,CACzC,EAAO,eAAiB,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACzD,EAAE,iBACF,EAAO,4BAA4B,KAIvC,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,6DACZ,CAAC,EAAO,gBACP,EAAA,EAAA,MAAC,MAAA,CACC,WAAA,EAAA,EAAA,IAAc,EAAO,cAAgB,6EACrC,QAAS,EAAO,0BAChB,UAAW,EACX,SAAU,EAAO,aAAe,EAAI,IAAA,cAEpC,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,qCAAuB,EAAO,UAAU,OAAQ,EAAO,iBACvE,EAAA,EAAA,KAAC,EAAA,CAAyB,cAG7B,CAAC,EAAO,gBAAiB,EAAA,EAAA,KAAC,EAAA,CAAoB,eAYxC,GAAa,CAAE,QAAO,YAAW,gBAAiC,CAC7E,cAEA,OACE,EAAA,EAAA,MAACC,EAAAA,MAAAA,CACC,WAAA,EAAA,EAAA,IACE,UACA,+CACA,4BACA,4BACA,kBACA,8BACA,qBACA,sCACA,kDACA,yBAEF,MAAO,CACL,MAAO,EAAM,2BAGf,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,UAAU,8CACpB,EAAM,kBAAkB,IAAK,IAC5B,EAAA,EAAA,KAACC,EAAAA,SAAAA,CAAAA,SACE,EAAY,QAAQ,IAAK,GAAW,CACnC,GAAM,CAAE,UAAW,EACb,EAAW,EAAO,cAClB,EAAmB,IAAa,QAAU,EAAO,gBAAgB,QACjE,EAAqB,IAAa,SAAW,EAAO,iBAAiB,SAC3E,OACE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAEC,cAAa,GAAY,IAAA,GACzB,gBAAe,EAAmB,OAAS,EAAqB,QAAU,IAAA,GAC1E,WAAA,EAAA,EAAA,IACE,yCACA,+BACA,4BACA,wCACA,qDACA,wFACA,qEACA,qDACA,+EACA,wDAGA,QAAS,EAAO,QAChB,MAAO,CACL,MAAO,EAAO,UACd,SAAU,EAAO,UACjB,GAAG,EAAiB,EAAO,mBAI/B,EAAA,EAAA,KAAC,EAAA,CAAsB,YAxBlB,EAAO,OARL,EAAY,QAwC/B,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,WAAA,EAAA,EAAA,IAAc,GAAa,OAAQ,EAAM,cAAc,MAAM,SAAW,GAAK,iBACrF,GACC,EAAA,EAAA,KAACF,EAAAA,SAAAA,CAAS,UAAU,wEAClB,EAAA,EAAA,KAACG,EAAAA,UAAAA,CAAAA,SAAU,kBAGb,EAAA,EAAA,KAACmB,EAAAA,QAAM,SAAA,CAAA,SACJ,EAAM,cAAc,MAAM,OACzB,EAAM,cAAc,KAAK,IAAK,IAC5B,EAAA,EAAA,KAACtB,EAAAA,SAAAA,CAEC,aAAY,EAAI,iBAAmB,WACnC,UAAU,gDACV,YAAe,IAAa,GAAK,IAAM,EAAI,UAAU,IAAI,YAAc,EAAI,UAAU,MAAQ,IAAA,aAE5F,EAAI,kBAAkB,IAAK,GAAS,CACnC,GAAM,CAAE,UAAW,EACb,EAAW,EAAO,cAClB,EAAmB,IAAa,QAAU,EAAO,gBAAgB,QACjE,EAAqB,IAAa,SAAW,EAAO,iBAAiB,SAC3E,OACE,EAAA,EAAA,KAACG,EAAAA,UAAAA,CAEC,MAAO,CACL,GAAG,EAAiB,GACpB,MAAO,EAAK,OAAO,UACnB,SAAU,EAAK,OAAO,WAExB,cAAa,GAAY,IAAA,GACzB,gBAAe,EAAmB,OAAS,EAAqB,QAAU,IAAA,GAC1E,WAAA,EAAA,EAAA,IACE,yBACA,qDACA,qDACA,uDACA,0DAGU,EAAK,OAAO,UAAU,KAAM,EAAK,eAhBxC,EAAK,OAZX,EAAI,MAmCb,EAAA,EAAA,KAACH,EAAAA,SAAAA,CAAS,UAAU,wEAClB,EAAA,EAAA,KAACG,EAAAA,UAAAA,CAAAA,UACC,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,yGACb,EAAA,EAAA,KAACE,EAAAA,gBAAAA,CAAgB,KAAM,GAAI,YAAa,KACxC,EAAA,EAAA,KAAC,IAAA,CAAA,SAAE,4CC/MvB,SAAgB,EAA2B,CACzC,6BACA,qBACA,WACA,cACA,YAAY,EACZ,eACA,eACA,WACA,kBACA,cACA,YAAY,GACe,CAC3B,cACA,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,+FACb,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,8CACZ,EAA2B,OAAK,EAAmB,wBAGtD,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,wFACb,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,sDACb,EAAA,EAAA,KAAC,IAAA,CAAE,UAAU,8DAAqD,mBAClE,EAAA,EAAA,MAACC,EAAAA,OAAAA,CACC,MAAO,GAAG,IACV,cAAgB,GAAU,CACxB,IAAc,OAAO,gBAGvB,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,UAAU,qBACvB,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,YAAa,OAE5B,EAAA,EAAA,KAACC,EAAAA,cAAAA,CAAc,KAAK,eACjB,CAAC,GAAI,GAAI,GAAI,GAAI,IAAI,IAAK,IACzB,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAA0B,MAAO,GAAGC,aAClCA,GADcA,UAMvB,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,iEAAuD,QAC9D,EAAY,EAAE,OAAK,SAI7B,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,MAACC,EAAAA,OAAAA,CAAO,QAAQ,UAAU,MAAM,QAAQ,YAAe,IAAe,GAAI,SAAU,CAAC,aACnF,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,sBAC1B,EAAA,EAAA,KAACC,EAAAA,aAAAA,QAEH,EAAA,EAAA,MAACD,EAAAA,OAAAA,CAAO,QAAQ,UAAU,MAAM,QAAQ,QAAS,EAAc,SAAU,CAAC,aACxE,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,yBAC1B,EAAA,EAAA,KAACE,EAAAA,YAAAA,QAEH,EAAA,EAAA,MAACF,EAAAA,OAAAA,CAAO,QAAQ,UAAU,MAAM,QAAQ,QAAS,EAAU,SAAU,CAAC,aACpE,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,qBAC1B,EAAA,EAAA,KAACG,EAAAA,aAAAA,QAEH,EAAA,EAAA,MAACH,EAAAA,OAAAA,CACC,QAAQ,UACR,MAAM,QACN,YAAe,CACb,IAAe,EAAY,IAE7B,SAAU,CAAC,aAEX,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,mBAAU,qBAC1B,EAAA,EAAA,KAACI,EAAAA,cAAAA,gBCjFb,MAAaC,GAAoC,CAAE,QAAO,gBAEtD,EAAA,EAAA,MAACM,EAAAA,KAAAA,CAAK,QAAQ,UAAU,QAAQ,OAAO,MAAM,OAAO,UAAU,oBAC5D,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,0BACb,EAAA,EAAA,KAACJ,EAAAA,YAAAA,CAAY,YAAY,iBAE3B,EAAA,EAAA,MAACI,EAAAA,KAAAA,CAAK,KAAM,GAAO,UAAU,wBAC1B,CAAC,CAAC,IAAS,EAAA,EAAA,KAACH,EAAAA,UAAAA,CAAU,QAAS,KAChC,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,QAAS,UCe7B,SAAgB,EAAyC,CACvD,OACA,aACA,YACA,UACA,aACA,QACA,YACA,aACA,sBACW,CACX,cAEA,GAAM,CAAC,EAAc,GAAmBC,EAAAA,QAAM,SAA4B,IACpE,CAAC,EAAS,GAAcA,EAAAA,QAAM,SAAuB,IACrD,CAAC,EAAe,GAAoBA,EAAAA,QAAM,SAA6B,IACvE,CAAC,EAAkB,GAAuBA,EAAAA,QAAM,SAA0B,IAE1E,EAAeA,EAAAA,QAAM,aAClB,CACL,cAAe,CAAE,MAAO,CAAC,UAAW,SAAU,WAC9C,WAAY,CAAE,UAAW,EAAG,SAAU,MAExC,IAGI,GAAA,EAAA,EAAA,eAAyB,CAC7B,eACA,OACA,UACA,SAAU,EACV,iBAAkB,WAClB,iBAAkB,GAClB,qBAAsB,GACtB,wBAAyB,GACzB,iBAAA,EAAA,EAAA,mBACA,uBAAA,EAAA,EAAA,yBACA,mBAAA,EAAA,EAAA,qBACA,qBAAA,EAAA,EAAA,uBACA,oBAAA,EAAA,EAAA,sBACA,wBAAA,EAAA,EAAA,0BACA,SAAW,GAAS,EAAI,IAAkB,EAAI,KAC9C,MAAO,CACL,eACA,UACA,mBACA,gBACA,GAAI,EAAa,CAAE,cAAe,IAEpC,qBAAsB,EACtB,gBAAiB,EACjB,yBAA0B,EAC1B,sBAAuB,EACvB,GAAI,EAAqB,CAAE,sBAAuB,KAGpD,OACE,EAAA,EAAA,MAACC,EAAAA,KAAAA,CAAK,SAAA,GAAS,KAAM,GAAO,IAAI,KAAK,MAAM,QAAQ,UAAU,4CAC3D,EAAA,EAAA,KAAC,EAAA,CAAuB,QAAkB,eAC1C,EAAA,EAAA,MAACA,EAAAA,KAAAA,CAAK,QAAQ,OAAO,SAAA,GAAS,KAAM,GAAO,MAAM,OAAO,UAAU,uCAChE,EAAA,EAAA,KAAC,EAAA,CAAiB,QAAkB,YAAuB,gBAC3D,EAAA,EAAA,KAAC,EAAA,CACC,SAAU,EAAM,WAAW,WAAW,SACtC,YAAa,EAAM,YACnB,2BAA4B,EAAM,8BAA8B,KAAK,OACrE,mBAAoB,EAAM,sBAAsB,KAAK,OACrD,UAAW,EAAM,WAAW,WAAW,UACvC,aAAc,EAAM,aACpB,aAAc,EAAM,aACpB,SAAU,EAAM,SAChB,gBAAiB,EAAM,qBACvB,YAAa,EAAM,iBACnB,UAAW,EAAM"}
1
+ {"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","React","PackagePlusIcon","DataTableHeader: React.FC<Props>","Flex","SearchInput","AddNewBtn","RefreshBtn","Select","SelectTrigger","SelectValue","SelectContent","SelectItem","pageSize","Button","ChevronsLeft","ChevronLeft","ChevronRight","ChevronsRight","React","Flex"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/data-table-pagination.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { type Column, flexRender, type Header, type Table as ReactTable } from '@tanstack/react-table'\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, PackagePlusIcon, PinOffIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'\nimport type { AnyEntity } from '@/types'\n\n// Helper function to compute pinning styles for columns\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 = ({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted()\n\n const icons = {\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 return sortDirection ? icons[sortDirection] : null\n}\n\nconst PinControls = ({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = column.columnDef.header as string\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={() => column.pin(false)}\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={() => column.pin('left')}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.pin('right')}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nconst HeaderContent = ({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n column.getToggleSortingHandler()?.(e)\n }\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n {!header.isPlaceholder && (\n <div\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n onClick={column.getToggleSortingHandler()}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n )}\n {!header.isPlaceholder && <PinControls column={column} />}\n </div>\n )\n}\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>\n columnsLength?: number\n isLoading?: boolean\n onClickRow?: (id: string) => void\n}\n\nexport const DataTable = ({ table, isLoading, onClickRow }: DataTableProps) => {\n 'use no memo'\n\n return (\n <Table\n className={cn(\n '!w-full',\n 'table-fixed 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 '[&_tr]:border-none',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr:not(:last-child)_td]:border-b-border-weak',\n '[&_tfoot_td]:border-t',\n )}\n style={{\n width: table.getTotalSize(),\n }}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\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 return (\n <TableHead\n key={header.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'relative 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 {...{\n colSpan: header.colSpan,\n style: {\n width: header.getSize(),\n maxWidth: header.getSize(),\n ...getPinningStyles(header.column),\n },\n }}\n >\n <HeaderContent header={header} />\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody className={cn(isLoading && 'h-36', table.getRowModel().rows?.length === 0 && 'h-48')}>\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 <React.Fragment>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && 'selected'}\n className=\"cursor-pointer border-none focus:outline-none\"\n onClick={() => onClickRow?.(row?.id || row.original?.id?.toString() || row.original?.uuid || undefined)}\n >\n {row.getVisibleCells().map((cell) => {\n const { column } = cell\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n return (\n <TableCell\n key={cell.id}\n style={{\n ...getPinningStyles(column),\n width: cell.column.getSize(),\n maxWidth: cell.column.getSize(),\n }}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'overflow-hidden py-2.5',\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 'data-pinned:bg-background/90',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>\n <div className=\"text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base\">\n <PackagePlusIcon size={48} strokeWidth={2} />\n <p>Thêm dữ liệu để hiển thị</p>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n )}\n </TableBody>\n </Table>\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 { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface DataTablePaginationProps {\n filteredSelectedRowsLength?: number\n filteredRowsLength?: number\n\n pageSize?: number\n setPageSize?: (size: number) => void\n\n pageIndex?: number\n setPageIndex?: (index: number) => void\n\n previousPage?: () => void\n nextPage?: () => void\n\n canPreviousPage?: boolean\n canNextPage?: boolean\n\n pageCount?: number\n}\n\nexport function DataTablePagination({\n filteredSelectedRowsLength,\n filteredRowsLength,\n pageSize,\n setPageSize,\n pageIndex = 0,\n setPageIndex,\n previousPage,\n nextPage,\n canPreviousPage,\n canNextPage,\n pageCount = 1,\n}: DataTablePaginationProps) {\n 'use no memo'\n return (\n <div className=\"mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row\">\n <div className=\"text-text-positive flex-1 text-sm\">\n {filteredSelectedRowsLength} of {filteredRowsLength} row(s) selected.\n </div>\n\n <div className=\"flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4\">\n <div className=\"flex items-center space-x-2 sm:space-x-4\">\n <p className=\"sr-only text-sm font-medium sm:not-sr-only sm:mr-4\">Rows per page</p>\n <Select\n value={`${pageSize}`}\n onValueChange={(value) => {\n setPageSize?.(Number(value))\n }}\n >\n <SelectTrigger className=\"h-8 w-18\">\n <SelectValue placeholder={pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <div className=\"flex items-center justify-center text-sm font-medium\">\n Page {pageIndex + 1} of {pageCount}\n </div>\n </div>\n\n <div className=\"flex w-full justify-end space-x-2 *:size-9 *:p-0\">\n <Button variant=\"outline\" color=\"muted\" onClick={() => setPageIndex?.(0)} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={previousPage} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={nextPage} disabled={!canNextPage}>\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n color=\"muted\"\n onClick={() => {\n setPageIndex?.(pageCount - 1)\n }}\n disabled={!canNextPage}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n type VisibilityState,\n} from '@tanstack/react-table'\n\nimport { DataTable } from './data-table'\nimport { DataTableHeader } from './data-table-header'\nimport { DataTablePagination } from './data-table-pagination'\nimport { Flex } from '../layouts/flex'\n\ntype Props<T> = {\n data: T[]\n totalCount?: number\n isLoading?: boolean\n columns: ColumnDef<T>[]\n pagination?: PaginationState\n onAdd?: () => void\n onRefresh?: () => void\n onClickRow?: (id: string) => void\n onPaginationChange?: React.Dispatch<React.SetStateAction<PaginationState>>\n}\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n columns,\n pagination,\n onAdd,\n onRefresh,\n onClickRow,\n onPaginationChange,\n}: Props<T>) {\n 'use no memo'\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n\n const initialState = React.useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n pagination: { pageIndex: 0, pageSize: 20 },\n }),\n [],\n )\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n manualPagination: true,\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\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 ...(pagination ? { pagination } : {}),\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n ...(onPaginationChange ? { onPaginationChange } : {}),\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 table={table} isLoading={isLoading} onClickRow={onClickRow} />\n <DataTablePagination\n pageSize={table.getState().pagination.pageSize}\n setPageSize={table.setPageSize}\n filteredSelectedRowsLength={table.getFilteredSelectedRowModel().rows.length}\n filteredRowsLength={table.getFilteredRowModel().rows.length}\n pageIndex={table.getState().pagination.pageIndex}\n setPageIndex={table.setPageIndex}\n previousPage={table.previousPage}\n nextPage={table.nextPage}\n canPreviousPage={table.getCanPreviousPage()}\n canNextPage={table.getCanNextPage()}\n pageCount={table.getPageCount()}\n />\n </Flex>\n </Flex>\n )\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime176 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime7 from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import { ColumnDef, PaginationState } from "@tanstack/react-table";
4
4
 
@@ -24,7 +24,7 @@ declare function Table<T extends Record<string, unknown>>({
24
24
  onRefresh,
25
25
  onClickRow,
26
26
  onPaginationChange
27
- }: Props<T>): react_jsx_runtime176.JSX.Element;
27
+ }: Props<T>): react_jsx_runtime7.JSX.Element;
28
28
  //#endregion
29
29
  export { Table };
30
30
  //# sourceMappingURL=index.d.cts.map
@@ -1,5 +1,5 @@
1
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
1
2
  import React from "react";
2
- import * as react_jsx_runtime30 from "react/jsx-runtime";
3
3
  import { ColumnDef, PaginationState } from "@tanstack/react-table";
4
4
 
5
5
  //#region packages/components/table/index.d.ts
@@ -24,7 +24,7 @@ declare function Table<T extends Record<string, unknown>>({
24
24
  onRefresh,
25
25
  onClickRow,
26
26
  onPaginationChange
27
- }: Props<T>): react_jsx_runtime30.JSX.Element;
27
+ }: Props<T>): react_jsx_runtime11.JSX.Element;
28
28
  //#endregion
29
29
  export { Table };
30
30
  //# sourceMappingURL=index.d.ts.map
@@ -1,2 +1,2 @@
1
- import{Flex as e}from"../flex-uJ4bFSYt.js";import"../paragraph-D4klQX4h.js";import{Button as t}from"../button-DL_i4AVi.js";import"../input-OWyLq45f.js";import{Select as n,SelectContent as r,SelectItem as i,SelectTrigger as a,SelectValue as o}from"../select-BjTQmEN7.js";import{DropdownMenu as s,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuTrigger as u}from"../dropdown-menu-BF9QbIfo.js";import"../scroll-area-CPQoJKt1.js";import{Table as d,TableBody as f,TableCell as p,TableHead as m,TableHeader as h,TableRow as g}from"../table-goPaI3yw.js";import{SearchInput as _}from"../search-input-Ba8aUECr.js";import{AddNewBtn as v}from"../add-new-B9KK77jE.js";import{RefreshBtn as y}from"../refresh-CMzmHeMf.js";import b from"react";import{cn as x}from"@customafk/react-toolkit/utils";import{jsx as S,jsxs as C}from"react/jsx-runtime";import{ArrowLeftToLineIcon as w,ArrowRightToLineIcon as T,ChevronDown as E,ChevronLeft as D,ChevronRight as O,ChevronUp as k,ChevronsLeft as A,ChevronsRight as j,EllipsisIcon as M,PackagePlusIcon as N,PinOffIcon as P}from"lucide-react";import{flexRender as F,getCoreRowModel as I,getFacetedRowModel as L,getFacetedUniqueValues as R,getFilteredRowModel as z,getPaginationRowModel as B,getSortedRowModel as V,useReactTable as H}from"@tanstack/react-table";const U=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}},W=({column:e})=>{let t=e.getIsSorted(),n={asc:S(k,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:S(E,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},G=({column:e})=>{let n=e.columnDef.header;return e.getCanPin()?e.getIsPinned()?S(t,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:()=>e.pin(!1),children:S(P,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):C(s,{children:[S(u,{asChild:!0,children:S(t,{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:S(M,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),C(c,{align:`end`,children:[C(l,{onClick:()=>e.pin(`left`),children:[S(w,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),C(l,{onClick:()=>e.pin(`right`),children:[S(T,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},K=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return C(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&C(`div`,{className:x(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[S(`span`,{className:`truncate`,children:F(t.columnDef.header,e.getContext())}),S(W,{column:t})]}),!e.isPlaceholder&&S(G,{column:t})]})},q=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return C(d,{className:x(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[S(h,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>S(g,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return S(m,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:x(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...U(e.column)},children:S(K,{header:e})},e.id)})},e.id))}),S(f,{className:x(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?S(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:S(p,{children:`loading...`})}):S(b.Fragment,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>S(g,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return S(p,{style:{...U(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:x(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:F(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):S(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:S(p,{children:C(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[S(N,{size:48,strokeWidth:2}),S(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})};function J({filteredSelectedRowsLength:e,filteredRowsLength:s,pageSize:c,setPageSize:l,pageIndex:u=0,setPageIndex:d,previousPage:f,nextPage:p,canPreviousPage:m,canNextPage:h,pageCount:g=1}){"use no memo";return C(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[C(`div`,{className:`text-text-positive flex-1 text-sm`,children:[e,` of `,s,` row(s) selected.`]}),C(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[C(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[S(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),C(n,{value:`${c}`,onValueChange:e=>{l?.(Number(e))},children:[S(a,{className:`h-8 w-18`,children:S(o,{placeholder:c})}),S(r,{side:`top`,children:[10,20,30,40,50].map(e=>S(i,{value:`${e}`,children:e},e))})]}),C(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,u+1,` of `,g]})]}),C(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[C(t,{variant:`outline`,color:`muted`,onClick:()=>d?.(0),disabled:!m,children:[S(`span`,{className:`sr-only`,children:`Go to first page`}),S(A,{})]}),C(t,{variant:`outline`,color:`muted`,onClick:f,disabled:!m,children:[S(`span`,{className:`sr-only`,children:`Go to previous page`}),S(D,{})]}),C(t,{variant:`outline`,color:`muted`,onClick:p,disabled:!h,children:[S(`span`,{className:`sr-only`,children:`Go to next page`}),S(O,{})]}),C(t,{variant:`outline`,color:`muted`,onClick:()=>{d?.(g-1)},disabled:!h,children:[S(`span`,{className:`sr-only`,children:`Go to last page`}),S(j,{})]})]})]})]})}const Y=({onAdd:t,onRefresh:n})=>C(e,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[S(`div`,{className:`max-sm:flex-1`,children:S(_,{placeholder:`Search...`})}),C(e,{wrap:!1,className:`flex-0 px-0`,children:[!!t&&S(v,{onClick:t}),S(y,{onClick:n})]})]});function X({data:t,totalCount:n,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[u,d]=b.useState({}),[f,p]=b.useState([]),[m,h]=b.useState([]),[g,_]=b.useState({}),v=b.useMemo(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),y=H({initialState:v,data:t,columns:i,rowCount:n,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:I(),getPaginationRowModel:B(),getSortedRowModel:V(),getFilteredRowModel:z(),getFacetedRowModel:L(),getFacetedUniqueValues:R(),getRowId:e=>e.id||e.uuid,state:{rowSelection:u,sorting:f,columnVisibility:g,columnFilters:m,...a?{pagination:a}:{}},onRowSelectionChange:d,onSortingChange:p,onColumnVisibilityChange:_,onColumnFiltersChange:h,...l?{onPaginationChange:l}:{}});return C(e,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[S(Y,{onAdd:o,onRefresh:s}),C(e,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[S(q,{table:y,isLoading:r,onClickRow:c}),S(J,{pageSize:y.getState().pagination.pageSize,setPageSize:y.setPageSize,filteredSelectedRowsLength:y.getFilteredSelectedRowModel().rows.length,filteredRowsLength:y.getFilteredRowModel().rows.length,pageIndex:y.getState().pagination.pageIndex,setPageIndex:y.setPageIndex,previousPage:y.previousPage,nextPage:y.nextPage,canPreviousPage:y.getCanPreviousPage(),canNextPage:y.getCanNextPage(),pageCount:y.getPageCount()})]})]})}export{X as Table};
1
+ import{Flex as e}from"../flex-D_GSLR10.js";import"../paragraph-D4klQX4h.js";import{Button as t}from"../button-DL_i4AVi.js";import"../input-B2PP82lE.js";import{Select as n,SelectContent as r,SelectItem as i,SelectTrigger as a,SelectValue as o}from"../select-VpccO3h2.js";import{DropdownMenu as s,DropdownMenuContent as c,DropdownMenuItem as l,DropdownMenuTrigger as u}from"../dropdown-menu-BF9QbIfo.js";import"../scroll-area-CPQoJKt1.js";import{Table as d,TableBody as f,TableCell as p,TableHead as m,TableHeader as h,TableRow as g}from"../table-DxiQX7c8.js";import{AddNewBtn as _}from"../add-new-BrbEoynl.js";import{RefreshBtn as v}from"../refresh-D4LYYQln.js";import{SearchInput as y}from"../search-input-BZtDbdjl.js";import{cn as b}from"@customafk/react-toolkit/utils";import{jsx as x,jsxs as S}from"react/jsx-runtime";import C from"react";import{ArrowLeftToLineIcon as w,ArrowRightToLineIcon as T,ChevronDown as E,ChevronLeft as D,ChevronRight as O,ChevronUp as k,ChevronsLeft as A,ChevronsRight as j,EllipsisIcon as M,PackagePlusIcon as N,PinOffIcon as P}from"lucide-react";import{flexRender as F,getCoreRowModel as I,getFacetedRowModel as L,getFacetedUniqueValues as R,getFilteredRowModel as z,getPaginationRowModel as B,getSortedRowModel as V,useReactTable as H}from"@tanstack/react-table";const U=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}},W=({column:e})=>{let t=e.getIsSorted(),n={asc:x(k,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:x(E,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})};return t?n[t]:null},G=({column:e})=>{let n=e.columnDef.header;return e.getCanPin()?e.getIsPinned()?x(t,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:()=>e.pin(!1),children:x(P,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):S(s,{children:[x(u,{asChild:!0,children:x(t,{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:x(M,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),S(c,{align:`end`,children:[S(l,{onClick:()=>e.pin(`left`),children:[x(w,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),S(l,{onClick:()=>e.pin(`right`),children:[x(T,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null},K=({header:e})=>{let{column:t}=e,n=e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))};return S(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[!e.isPlaceholder&&S(`div`,{className:b(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),onClick:t.getToggleSortingHandler(),onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,children:[x(`span`,{className:`truncate`,children:F(t.columnDef.header,e.getContext())}),x(W,{column:t})]}),!e.isPlaceholder&&x(G,{column:t})]})},q=({table:e,isLoading:t,onClickRow:n})=>{"use no memo";return S(d,{className:b(`!w-full`,`table-fixed border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tr]:border-none`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr:not(:last-child)_td]:border-b-border-weak`,`[&_tfoot_td]:border-t`),style:{width:e.getTotalSize()},children:[x(h,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>x(g,{children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return x(m,{"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:b(`relative h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:{width:e.getSize(),maxWidth:e.getSize(),...U(e.column)},children:x(K,{header:e})},e.id)})},e.id))}),x(f,{className:b(t&&`h-36`,e.getRowModel().rows?.length===0&&`h-48`),children:t?x(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:x(p,{children:`loading...`})}):x(C.Fragment,{children:e.getRowModel().rows?.length?e.getRowModel().rows.map(e=>x(g,{"data-state":e.getIsSelected()&&`selected`,className:`cursor-pointer border-none focus:outline-none`,onClick:()=>n?.(e?.id||e.original?.id?.toString()||e.original?.uuid||void 0),children:e.getVisibleCells().map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`);return x(p,{style:{...U(t),width:e.column.getSize(),maxWidth:e.column.getSize()},"data-pinned":n||void 0,"data-last-col":r?`left`:i?`right`:void 0,className:b(`overflow-hidden py-2.5`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`,`data-pinned:bg-background/90`),children:F(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)):x(g,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:x(p,{children:S(`div`,{className:`text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base`,children:[x(N,{size:48,strokeWidth:2}),x(`p`,{children:`Thêm dữ liệu để hiển thị`})]})})})})})]})},J=({onAdd:t,onRefresh:n})=>S(e,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[x(`div`,{className:`max-sm:flex-1`,children:x(y,{placeholder:`Search...`})}),S(e,{wrap:!1,className:`flex-0 px-0`,children:[!!t&&x(_,{onClick:t}),x(v,{onClick:n})]})]});function Y({filteredSelectedRowsLength:e,filteredRowsLength:s,pageSize:c,setPageSize:l,pageIndex:u=0,setPageIndex:d,previousPage:f,nextPage:p,canPreviousPage:m,canNextPage:h,pageCount:g=1}){"use no memo";return S(`div`,{className:`mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row`,children:[S(`div`,{className:`text-text-positive flex-1 text-sm`,children:[e,` of `,s,` row(s) selected.`]}),S(`div`,{className:`flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4`,children:[S(`div`,{className:`flex items-center space-x-2 sm:space-x-4`,children:[x(`p`,{className:`sr-only text-sm font-medium sm:not-sr-only sm:mr-4`,children:`Rows per page`}),S(n,{value:`${c}`,onValueChange:e=>{l?.(Number(e))},children:[x(a,{className:`h-8 w-18`,children:x(o,{placeholder:c})}),x(r,{side:`top`,children:[10,20,30,40,50].map(e=>x(i,{value:`${e}`,children:e},e))})]}),S(`div`,{className:`flex items-center justify-center text-sm font-medium`,children:[`Page `,u+1,` of `,g]})]}),S(`div`,{className:`flex w-full justify-end space-x-2 *:size-9 *:p-0`,children:[S(t,{variant:`outline`,color:`muted`,onClick:()=>d?.(0),disabled:!m,children:[x(`span`,{className:`sr-only`,children:`Go to first page`}),x(A,{})]}),S(t,{variant:`outline`,color:`muted`,onClick:f,disabled:!m,children:[x(`span`,{className:`sr-only`,children:`Go to previous page`}),x(D,{})]}),S(t,{variant:`outline`,color:`muted`,onClick:p,disabled:!h,children:[x(`span`,{className:`sr-only`,children:`Go to next page`}),x(O,{})]}),S(t,{variant:`outline`,color:`muted`,onClick:()=>{d?.(g-1)},disabled:!h,children:[x(`span`,{className:`sr-only`,children:`Go to last page`}),x(j,{})]})]})]})]})}function X({data:t,totalCount:n,isLoading:r,columns:i,pagination:a,onAdd:o,onRefresh:s,onClickRow:c,onPaginationChange:l}){"use no memo";let[u,d]=C.useState({}),[f,p]=C.useState([]),[m,h]=C.useState([]),[g,_]=C.useState({}),v=C.useMemo(()=>({columnPinning:{right:[`actions`,`update`,`delete`]},pagination:{pageIndex:0,pageSize:20}}),[]),y=H({initialState:v,data:t,columns:i,rowCount:n,columnResizeMode:`onChange`,manualPagination:!0,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:I(),getPaginationRowModel:B(),getSortedRowModel:V(),getFilteredRowModel:z(),getFacetedRowModel:L(),getFacetedUniqueValues:R(),getRowId:e=>e.id||e.uuid,state:{rowSelection:u,sorting:f,columnVisibility:g,columnFilters:m,...a?{pagination:a}:{}},onRowSelectionChange:d,onSortingChange:p,onColumnVisibilityChange:_,onColumnFiltersChange:h,...l?{onPaginationChange:l}:{}});return S(e,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[x(J,{onAdd:o,onRefresh:s}),S(e,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:[x(q,{table:y,isLoading:r,onClickRow:c}),x(Y,{pageSize:y.getState().pagination.pageSize,setPageSize:y.setPageSize,filteredSelectedRowsLength:y.getFilteredSelectedRowModel().rows.length,filteredRowsLength:y.getFilteredRowModel().rows.length,pageIndex:y.getState().pagination.pageIndex,setPageIndex:y.setPageIndex,previousPage:y.previousPage,nextPage:y.nextPage,canPreviousPage:y.getCanPreviousPage(),canNextPage:y.getCanNextPage(),pageCount:y.getPageCount()})]})]})}export{X as Table};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Table","pageSize","DataTableHeader: React.FC<Props>"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-pagination.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import React from 'react'\nimport { type Column, flexRender, type Header, type Table as ReactTable } from '@tanstack/react-table'\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, PackagePlusIcon, PinOffIcon } from 'lucide-react'\n\nimport { cn } from '@customafk/react-toolkit/utils'\nimport type { AnyEntity } from '@/types'\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, TableHead, TableHeader, TableRow } from '@/components/ui/table'\n\n// Helper function to compute pinning styles for columns\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 = ({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted()\n\n const icons = {\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 return sortDirection ? icons[sortDirection] : null\n}\n\nconst PinControls = ({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = column.columnDef.header as string\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={() => column.pin(false)}\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={() => column.pin('left')}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.pin('right')}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nconst HeaderContent = ({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n column.getToggleSortingHandler()?.(e)\n }\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n {!header.isPlaceholder && (\n <div\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n onClick={column.getToggleSortingHandler()}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n )}\n {!header.isPlaceholder && <PinControls column={column} />}\n </div>\n )\n}\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>\n columnsLength?: number\n isLoading?: boolean\n onClickRow?: (id: string) => void\n}\n\nexport const DataTable = ({ table, isLoading, onClickRow }: DataTableProps) => {\n 'use no memo'\n\n return (\n <Table\n className={cn(\n '!w-full',\n 'table-fixed 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 '[&_tr]:border-none',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr:not(:last-child)_td]:border-b-border-weak',\n '[&_tfoot_td]:border-t',\n )}\n style={{\n width: table.getTotalSize(),\n }}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\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 return (\n <TableHead\n key={header.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'relative 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 {...{\n colSpan: header.colSpan,\n style: {\n width: header.getSize(),\n maxWidth: header.getSize(),\n ...getPinningStyles(header.column),\n },\n }}\n >\n <HeaderContent header={header} />\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody className={cn(isLoading && 'h-36', table.getRowModel().rows?.length === 0 && 'h-48')}>\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 <React.Fragment>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && 'selected'}\n className=\"cursor-pointer border-none focus:outline-none\"\n onClick={() => onClickRow?.(row?.id || row.original?.id?.toString() || row.original?.uuid || undefined)}\n >\n {row.getVisibleCells().map((cell) => {\n const { column } = cell\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n return (\n <TableCell\n key={cell.id}\n style={{\n ...getPinningStyles(column),\n width: cell.column.getSize(),\n maxWidth: cell.column.getSize(),\n }}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'overflow-hidden py-2.5',\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 'data-pinned:bg-background/90',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>\n <div className=\"text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base\">\n <PackagePlusIcon size={48} strokeWidth={2} />\n <p>Thêm dữ liệu để hiển thị</p>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n )}\n </TableBody>\n </Table>\n )\n}\n","import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface DataTablePaginationProps {\n filteredSelectedRowsLength?: number\n filteredRowsLength?: number\n\n pageSize?: number\n setPageSize?: (size: number) => void\n\n pageIndex?: number\n setPageIndex?: (index: number) => void\n\n previousPage?: () => void\n nextPage?: () => void\n\n canPreviousPage?: boolean\n canNextPage?: boolean\n\n pageCount?: number\n}\n\nexport function DataTablePagination<TData>({\n filteredSelectedRowsLength,\n filteredRowsLength,\n pageSize,\n setPageSize,\n pageIndex = 0,\n setPageIndex,\n previousPage,\n nextPage,\n canPreviousPage,\n canNextPage,\n pageCount = 1,\n}: DataTablePaginationProps) {\n 'use no memo'\n return (\n <div className=\"mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row\">\n <div className=\"text-text-positive flex-1 text-sm\">\n {filteredSelectedRowsLength} of {filteredRowsLength} row(s) selected.\n </div>\n\n <div className=\"flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4\">\n <div className=\"flex items-center space-x-2 sm:space-x-4\">\n <p className=\"sr-only text-sm font-medium sm:not-sr-only sm:mr-4\">Rows per page</p>\n <Select\n value={`${pageSize}`}\n onValueChange={(value) => {\n setPageSize?.(Number(value))\n }}\n >\n <SelectTrigger className=\"h-8 w-18\">\n <SelectValue placeholder={pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <div className=\"flex items-center justify-center text-sm font-medium\">\n Page {pageIndex + 1} of {pageCount}\n </div>\n </div>\n\n <div className=\"flex w-full justify-end space-x-2 *:size-9 *:p-0\">\n <Button variant=\"outline\" color=\"muted\" onClick={() => setPageIndex?.(0)} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={previousPage} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={nextPage} disabled={!canNextPage}>\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n color=\"muted\"\n onClick={() => {\n setPageIndex?.(pageCount - 1)\n }}\n disabled={!canNextPage}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n","import { Flex } from '@/components/layouts/flex'\nimport { SearchInput } from '@/components/ui/inputs/search-input'\nimport { AddNewBtn } from '@/components/ui/buttons/add-new'\nimport { RefreshBtn } from '@/components/ui/buttons/refresh'\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 React from 'react'\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n type VisibilityState,\n} from '@tanstack/react-table'\n\nimport { DataTable } from './data-table'\nimport { DataTablePagination } from './data-table-pagination'\nimport { Flex } from '../layouts/flex'\nimport { DataTableHeader } from './data-table-header'\n\ntype Props<T> = {\n data: T[]\n totalCount?: number\n isLoading?: boolean\n columns: ColumnDef<T>[]\n pagination?: PaginationState\n onAdd?: () => void\n onRefresh?: () => void\n onClickRow?: (id: string) => void\n onPaginationChange?: React.Dispatch<React.SetStateAction<PaginationState>>\n}\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n columns,\n pagination,\n onAdd,\n onRefresh,\n onClickRow,\n onPaginationChange,\n}: Props<T>) {\n 'use no memo'\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n\n const initialState = React.useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n pagination: { pageIndex: 0, pageSize: 20 },\n }),\n [],\n )\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n manualPagination: true,\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\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 ...(pagination ? { pagination } : {}),\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n ...(onPaginationChange ? { onPaginationChange } : {}),\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 table={table} isLoading={isLoading} onClickRow={onClickRow} />\n <DataTablePagination\n pageSize={table.getState().pagination.pageSize}\n setPageSize={table.setPageSize}\n filteredSelectedRowsLength={table.getFilteredSelectedRowModel().rows.length}\n filteredRowsLength={table.getFilteredRowModel().rows.length}\n pageIndex={table.getState().pagination.pageIndex}\n setPageIndex={table.setPageIndex}\n previousPage={table.previousPage}\n nextPage={table.nextPage}\n canPreviousPage={table.getCanPreviousPage()}\n canNextPage={table.getCanNextPage()}\n pageCount={table.getPageCount()}\n />\n </Flex>\n </Flex>\n )\n}\n"],"mappings":"gxCAaA,MAAM,EAAoB,GAAmD,CAC3E,IAAM,EAAW,EAAO,cACxB,MAAO,CACL,KAAM,IAAa,OAAS,GAAG,EAAO,SAAS,QAAQ,IAAM,IAAA,GAC7D,MAAO,IAAa,QAAU,GAAG,EAAO,SAAS,SAAS,IAAM,IAAA,GAChE,SAAU,EAAW,SAAW,WAChC,MAAO,EAAO,UACd,OAAQ,EAAW,EAAI,IAIrB,GAAoB,CAAE,YAA4C,CACtE,IAAM,EAAgB,EAAO,cAEvB,EAAQ,CACZ,IAAK,EAAC,EAAA,CAAU,UAAU,sBAAsB,KAAM,GAAI,YAAa,EAAG,cAAY,SACtF,KAAM,EAAC,EAAA,CAAY,UAAU,sBAAsB,KAAM,GAAI,YAAa,EAAG,cAAY,UAG3F,OAAO,EAAgB,EAAM,GAAiB,MAG1C,GAAe,CAAE,YAA4C,CACjE,IAAM,EAAe,EAAO,UAAU,OAoBtC,OAlBK,EAAO,YAER,EAAO,cAEP,EAAC,EAAA,CACC,KAAK,OACL,QAAQ,QACR,MAAM,YACN,UAAU,mEACV,aAAY,SAAS,EAAa,SAClC,MAAO,SAAS,EAAa,SAC7B,YAAe,EAAO,IAAI,aAE1B,EAAC,EAAA,CAAW,UAAU,aAAa,KAAM,GAAI,cAAY,WAM7D,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAoB,QAAA,YACnB,EAAC,EAAA,CACC,KAAK,OACL,QAAQ,QACR,MAAM,YACN,UAAU,qBACV,aAAY,mBAAmB,EAAa,SAC5C,MAAO,mBAAmB,EAAa,kBAEvC,EAAC,EAAA,CAAa,UAAU,aAAa,KAAM,GAAI,cAAY,aAG/D,EAAC,EAAA,CAAoB,MAAM,gBACzB,EAAC,EAAA,CAAiB,YAAe,EAAO,IAAI,kBAC1C,EAAC,EAAA,CAAoB,KAAM,GAAI,UAAU,aAAa,cAAY,SAAS,mBAG7E,EAAC,EAAA,CAAiB,YAAe,EAAO,IAAI,mBAC1C,EAAC,EAAA,CAAqB,KAAM,GAAI,UAAU,aAAa,cAAY,SAAS,0BAtCpD,MA8C5B,GAAiB,CAAE,YAAqD,CAC5E,GAAM,CAAE,UAAW,EAEb,EAAc,GAA2B,CACzC,EAAO,eAAiB,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACzD,EAAE,iBACF,EAAO,4BAA4B,KAIvC,OACE,EAAC,MAAA,CAAI,UAAU,6DACZ,CAAC,EAAO,eACP,EAAC,MAAA,CACC,UAAW,EAAG,EAAO,cAAgB,6EACrC,QAAS,EAAO,0BAChB,UAAW,EACX,SAAU,EAAO,aAAe,EAAI,IAAA,aAEpC,EAAC,OAAA,CAAK,UAAU,oBAAY,EAAW,EAAO,UAAU,OAAQ,EAAO,gBACvE,EAAC,EAAA,CAAyB,cAG7B,CAAC,EAAO,eAAiB,EAAC,EAAA,CAAoB,eAYxC,GAAa,CAAE,QAAO,YAAW,gBAAiC,CAC7E,cAEA,OACE,EAACA,EAAAA,CACC,UAAW,EACT,UACA,+CACA,4BACA,4BACA,kBACA,8BACA,qBACA,sCACA,kDACA,yBAEF,MAAO,CACL,MAAO,EAAM,0BAGf,EAAC,EAAA,CAAY,UAAU,8CACpB,EAAM,kBAAkB,IAAK,GAC5B,EAAC,EAAA,CAAA,SACE,EAAY,QAAQ,IAAK,GAAW,CACnC,GAAM,CAAE,UAAW,EACb,EAAW,EAAO,cAClB,EAAmB,IAAa,QAAU,EAAO,gBAAgB,QACjE,EAAqB,IAAa,SAAW,EAAO,iBAAiB,SAC3E,OACE,EAAC,EAAA,CAEC,cAAa,GAAY,IAAA,GACzB,gBAAe,EAAmB,OAAS,EAAqB,QAAU,IAAA,GAC1E,UAAW,EACT,yCACA,+BACA,4BACA,wCACA,qDACA,wFACA,qEACA,qDACA,+EACA,wDAGA,QAAS,EAAO,QAChB,MAAO,CACL,MAAO,EAAO,UACd,SAAU,EAAO,UACjB,GAAG,EAAiB,EAAO,kBAI/B,EAAC,EAAA,CAAsB,YAxBlB,EAAO,OARL,EAAY,OAwC/B,EAAC,EAAA,CAAU,UAAW,EAAG,GAAa,OAAQ,EAAM,cAAc,MAAM,SAAW,GAAK,iBACrF,EACC,EAAC,EAAA,CAAS,UAAU,uEAClB,EAAC,EAAA,CAAA,SAAU,iBAGb,EAAC,EAAM,SAAA,CAAA,SACJ,EAAM,cAAc,MAAM,OACzB,EAAM,cAAc,KAAK,IAAK,GAC5B,EAAC,EAAA,CAEC,aAAY,EAAI,iBAAmB,WACnC,UAAU,gDACV,YAAe,IAAa,GAAK,IAAM,EAAI,UAAU,IAAI,YAAc,EAAI,UAAU,MAAQ,IAAA,aAE5F,EAAI,kBAAkB,IAAK,GAAS,CACnC,GAAM,CAAE,UAAW,EACb,EAAW,EAAO,cAClB,EAAmB,IAAa,QAAU,EAAO,gBAAgB,QACjE,EAAqB,IAAa,SAAW,EAAO,iBAAiB,SAC3E,OACE,EAAC,EAAA,CAEC,MAAO,CACL,GAAG,EAAiB,GACpB,MAAO,EAAK,OAAO,UACnB,SAAU,EAAK,OAAO,WAExB,cAAa,GAAY,IAAA,GACzB,gBAAe,EAAmB,OAAS,EAAqB,QAAU,IAAA,GAC1E,UAAW,EACT,yBACA,qDACA,qDACA,uDACA,yCAGD,EAAW,EAAK,OAAO,UAAU,KAAM,EAAK,eAhBxC,EAAK,OAZX,EAAI,KAmCb,EAAC,EAAA,CAAS,UAAU,uEAClB,EAAC,EAAA,CAAA,SACC,EAAC,MAAA,CAAI,UAAU,wGACb,EAAC,EAAA,CAAgB,KAAM,GAAI,YAAa,IACxC,EAAC,IAAA,CAAA,SAAE,4CC/MvB,SAAgB,EAA2B,CACzC,6BACA,qBACA,WACA,cACA,YAAY,EACZ,eACA,eACA,WACA,kBACA,cACA,YAAY,GACe,CAC3B,cACA,OACE,EAAC,MAAA,CAAI,UAAU,8FACb,EAAC,MAAA,CAAI,UAAU,8CACZ,EAA2B,OAAK,EAAmB,uBAGtD,EAAC,MAAA,CAAI,UAAU,uFACb,EAAC,MAAA,CAAI,UAAU,qDACb,EAAC,IAAA,CAAE,UAAU,8DAAqD,kBAClE,EAAC,EAAA,CACC,MAAO,GAAG,IACV,cAAgB,GAAU,CACxB,IAAc,OAAO,eAGvB,EAAC,EAAA,CAAc,UAAU,oBACvB,EAAC,EAAA,CAAY,YAAa,MAE5B,EAAC,EAAA,CAAc,KAAK,eACjB,CAAC,GAAI,GAAI,GAAI,GAAI,IAAI,IAAK,GACzB,EAAC,EAAA,CAA0B,MAAO,GAAGC,aAClCA,GADcA,SAMvB,EAAC,MAAA,CAAI,UAAU,iEAAuD,QAC9D,EAAY,EAAE,OAAK,QAI7B,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,EAAA,CAAO,QAAQ,UAAU,MAAM,QAAQ,YAAe,IAAe,GAAI,SAAU,CAAC,YACnF,EAAC,OAAA,CAAK,UAAU,mBAAU,qBAC1B,EAAC,EAAA,OAEH,EAAC,EAAA,CAAO,QAAQ,UAAU,MAAM,QAAQ,QAAS,EAAc,SAAU,CAAC,YACxE,EAAC,OAAA,CAAK,UAAU,mBAAU,wBAC1B,EAAC,EAAA,OAEH,EAAC,EAAA,CAAO,QAAQ,UAAU,MAAM,QAAQ,QAAS,EAAU,SAAU,CAAC,YACpE,EAAC,OAAA,CAAK,UAAU,mBAAU,oBAC1B,EAAC,EAAA,OAEH,EAAC,EAAA,CACC,QAAQ,UACR,MAAM,QACN,YAAe,CACb,IAAe,EAAY,IAE7B,SAAU,CAAC,YAEX,EAAC,OAAA,CAAK,UAAU,mBAAU,oBAC1B,EAAC,EAAA,gBCjFb,MAAaC,GAAoC,CAAE,QAAO,eAEtD,EAAC,EAAA,CAAK,QAAQ,UAAU,QAAQ,OAAO,MAAM,OAAO,UAAU,mBAC5D,EAAC,MAAA,CAAI,UAAU,yBACb,EAAC,EAAA,CAAY,YAAY,gBAE3B,EAAC,EAAA,CAAK,KAAM,GAAO,UAAU,wBAC1B,CAAC,CAAC,GAAS,EAAC,EAAA,CAAU,QAAS,IAChC,EAAC,EAAA,CAAW,QAAS,UCe7B,SAAgB,EAAyC,CACvD,OACA,aACA,YACA,UACA,aACA,QACA,YACA,aACA,sBACW,CACX,cAEA,GAAM,CAAC,EAAc,GAAmB,EAAM,SAA4B,IACpE,CAAC,EAAS,GAAc,EAAM,SAAuB,IACrD,CAAC,EAAe,GAAoB,EAAM,SAA6B,IACvE,CAAC,EAAkB,GAAuB,EAAM,SAA0B,IAE1E,EAAe,EAAM,aAClB,CACL,cAAe,CAAE,MAAO,CAAC,UAAW,SAAU,WAC9C,WAAY,CAAE,UAAW,EAAG,SAAU,MAExC,IAGI,EAAQ,EAAiB,CAC7B,eACA,OACA,UACA,SAAU,EACV,iBAAkB,WAClB,iBAAkB,GAClB,qBAAsB,GACtB,wBAAyB,GACzB,gBAAiB,IACjB,sBAAuB,IACvB,kBAAmB,IACnB,oBAAqB,IACrB,mBAAoB,IACpB,uBAAwB,IACxB,SAAW,GAAS,EAAI,IAAkB,EAAI,KAC9C,MAAO,CACL,eACA,UACA,mBACA,gBACA,GAAI,EAAa,CAAE,cAAe,IAEpC,qBAAsB,EACtB,gBAAiB,EACjB,yBAA0B,EAC1B,sBAAuB,EACvB,GAAI,EAAqB,CAAE,sBAAuB,KAGpD,OACE,EAAC,EAAA,CAAK,SAAA,GAAS,KAAM,GAAO,IAAI,KAAK,MAAM,QAAQ,UAAU,2CAC3D,EAAC,EAAA,CAAuB,QAAkB,cAC1C,EAAC,EAAA,CAAK,QAAQ,OAAO,SAAA,GAAS,KAAM,GAAO,MAAM,OAAO,UAAU,sCAChE,EAAC,EAAA,CAAiB,QAAkB,YAAuB,eAC3D,EAAC,EAAA,CACC,SAAU,EAAM,WAAW,WAAW,SACtC,YAAa,EAAM,YACnB,2BAA4B,EAAM,8BAA8B,KAAK,OACrE,mBAAoB,EAAM,sBAAsB,KAAK,OACrD,UAAW,EAAM,WAAW,WAAW,UACvC,aAAc,EAAM,aACpB,aAAc,EAAM,aACpB,SAAU,EAAM,SAChB,gBAAiB,EAAM,qBACvB,YAAa,EAAM,iBACnB,UAAW,EAAM"}
1
+ {"version":3,"file":"index.js","names":["Table","DataTableHeader: React.FC<Props>","pageSize"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/data-table-pagination.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { type Column, flexRender, type Header, type Table as ReactTable } from '@tanstack/react-table'\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, PackagePlusIcon, PinOffIcon } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'\nimport type { AnyEntity } from '@/types'\n\n// Helper function to compute pinning styles for columns\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 = ({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted()\n\n const icons = {\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 return sortDirection ? icons[sortDirection] : null\n}\n\nconst PinControls = ({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = column.columnDef.header as string\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={() => column.pin(false)}\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={() => column.pin('left')}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.pin('right')}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nconst HeaderContent = ({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header\n\n const handleSort = (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault()\n column.getToggleSortingHandler()?.(e)\n }\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n {!header.isPlaceholder && (\n <div\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n onClick={column.getToggleSortingHandler()}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n )}\n {!header.isPlaceholder && <PinControls column={column} />}\n </div>\n )\n}\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>\n columnsLength?: number\n isLoading?: boolean\n onClickRow?: (id: string) => void\n}\n\nexport const DataTable = ({ table, isLoading, onClickRow }: DataTableProps) => {\n 'use no memo'\n\n return (\n <Table\n className={cn(\n '!w-full',\n 'table-fixed 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 '[&_tr]:border-none',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr:not(:last-child)_td]:border-b-border-weak',\n '[&_tfoot_td]:border-t',\n )}\n style={{\n width: table.getTotalSize(),\n }}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\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 return (\n <TableHead\n key={header.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'relative 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 {...{\n colSpan: header.colSpan,\n style: {\n width: header.getSize(),\n maxWidth: header.getSize(),\n ...getPinningStyles(header.column),\n },\n }}\n >\n <HeaderContent header={header} />\n </TableHead>\n )\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody className={cn(isLoading && 'h-36', table.getRowModel().rows?.length === 0 && 'h-48')}>\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 <React.Fragment>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && 'selected'}\n className=\"cursor-pointer border-none focus:outline-none\"\n onClick={() => onClickRow?.(row?.id || row.original?.id?.toString() || row.original?.uuid || undefined)}\n >\n {row.getVisibleCells().map((cell) => {\n const { column } = cell\n const isPinned = column.getIsPinned()\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left')\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right')\n return (\n <TableCell\n key={cell.id}\n style={{\n ...getPinningStyles(column),\n width: cell.column.getSize(),\n maxWidth: cell.column.getSize(),\n }}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n className={cn(\n 'overflow-hidden py-2.5',\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 'data-pinned:bg-background/90',\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n )\n })}\n </TableRow>\n ))\n ) : (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>\n <div className=\"text-muted-foreground flex size-full flex-col items-center justify-center gap-y-8 text-base\">\n <PackagePlusIcon size={48} strokeWidth={2} />\n <p>Thêm dữ liệu để hiển thị</p>\n </div>\n </TableCell>\n </TableRow>\n )}\n </React.Fragment>\n )}\n </TableBody>\n </Table>\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 { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'\n\ninterface DataTablePaginationProps {\n filteredSelectedRowsLength?: number\n filteredRowsLength?: number\n\n pageSize?: number\n setPageSize?: (size: number) => void\n\n pageIndex?: number\n setPageIndex?: (index: number) => void\n\n previousPage?: () => void\n nextPage?: () => void\n\n canPreviousPage?: boolean\n canNextPage?: boolean\n\n pageCount?: number\n}\n\nexport function DataTablePagination({\n filteredSelectedRowsLength,\n filteredRowsLength,\n pageSize,\n setPageSize,\n pageIndex = 0,\n setPageIndex,\n previousPage,\n nextPage,\n canPreviousPage,\n canNextPage,\n pageCount = 1,\n}: DataTablePaginationProps) {\n 'use no memo'\n return (\n <div className=\"mt-4 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 px-2 sm:flex-row\">\n <div className=\"text-text-positive flex-1 text-sm\">\n {filteredSelectedRowsLength} of {filteredRowsLength} row(s) selected.\n </div>\n\n <div className=\"flex w-full flex-col flex-wrap items-start space-y-2 sm:w-fit sm:space-y-4\">\n <div className=\"flex items-center space-x-2 sm:space-x-4\">\n <p className=\"sr-only text-sm font-medium sm:not-sr-only sm:mr-4\">Rows per page</p>\n <Select\n value={`${pageSize}`}\n onValueChange={(value) => {\n setPageSize?.(Number(value))\n }}\n >\n <SelectTrigger className=\"h-8 w-18\">\n <SelectValue placeholder={pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {[10, 20, 30, 40, 50].map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <div className=\"flex items-center justify-center text-sm font-medium\">\n Page {pageIndex + 1} of {pageCount}\n </div>\n </div>\n\n <div className=\"flex w-full justify-end space-x-2 *:size-9 *:p-0\">\n <Button variant=\"outline\" color=\"muted\" onClick={() => setPageIndex?.(0)} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to first page</span>\n <ChevronsLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={previousPage} disabled={!canPreviousPage}>\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeft />\n </Button>\n <Button variant=\"outline\" color=\"muted\" onClick={nextPage} disabled={!canNextPage}>\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRight />\n </Button>\n <Button\n variant=\"outline\"\n color=\"muted\"\n onClick={() => {\n setPageIndex?.(pageCount - 1)\n }}\n disabled={!canNextPage}\n >\n <span className=\"sr-only\">Go to last page</span>\n <ChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n","import React from 'react'\n\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n type VisibilityState,\n} from '@tanstack/react-table'\n\nimport { DataTable } from './data-table'\nimport { DataTableHeader } from './data-table-header'\nimport { DataTablePagination } from './data-table-pagination'\nimport { Flex } from '../layouts/flex'\n\ntype Props<T> = {\n data: T[]\n totalCount?: number\n isLoading?: boolean\n columns: ColumnDef<T>[]\n pagination?: PaginationState\n onAdd?: () => void\n onRefresh?: () => void\n onClickRow?: (id: string) => void\n onPaginationChange?: React.Dispatch<React.SetStateAction<PaginationState>>\n}\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n columns,\n pagination,\n onAdd,\n onRefresh,\n onClickRow,\n onPaginationChange,\n}: Props<T>) {\n 'use no memo'\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n\n const initialState = React.useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n pagination: { pageIndex: 0, pageSize: 20 },\n }),\n [],\n )\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n manualPagination: true,\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\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 ...(pagination ? { pagination } : {}),\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n ...(onPaginationChange ? { onPaginationChange } : {}),\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 table={table} isLoading={isLoading} onClickRow={onClickRow} />\n <DataTablePagination\n pageSize={table.getState().pagination.pageSize}\n setPageSize={table.setPageSize}\n filteredSelectedRowsLength={table.getFilteredSelectedRowModel().rows.length}\n filteredRowsLength={table.getFilteredRowModel().rows.length}\n pageIndex={table.getState().pagination.pageIndex}\n setPageIndex={table.setPageIndex}\n previousPage={table.previousPage}\n nextPage={table.nextPage}\n canPreviousPage={table.getCanPreviousPage()}\n canNextPage={table.getCanNextPage()}\n pageCount={table.getPageCount()}\n />\n </Flex>\n </Flex>\n )\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./scroll-area-D7O1NyZn.cjs`),n=e.__toESM(require(`react`)),r=e.__toESM(require(`@customafk/react-toolkit/utils`)),i=e.__toESM(require(`react/jsx-runtime`));function a({className:e,...n}){return(0,i.jsxs)(t.ScrollArea,{"data-slot":`table-conatiner`,className:`border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border`,children:[(0,i.jsx)(`table`,{"data-slot":`table`,className:(0,r.cn)(`w-full caption-bottom text-sm`,e),...n}),(0,i.jsx)(t.ScrollBar,{orientation:`vertical`,className:`z-5 w-2`}),(0,i.jsx)(t.ScrollBar,{orientation:`horizontal`,className:`absolute right-0 bottom-0 left-0 h-2`})]})}function o({className:e,...t}){return(0,i.jsx)(`thead`,{"data-slot":`table-header`,className:(0,r.cn)(`bg-muted-muted border-border-weak`,`[&_tr]:border-b`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr_th:not(:last-child)]:border-r`,`[&_tr_th:not(:last-child)]:border-r-border-weak`,e),...t})}function s({className:e,...t}){return(0,i.jsx)(`tbody`,{"data-slot":`table-body`,className:(0,r.cn)(`[&_tr:last-child]:border-0`,e),...t})}function c({className:e,...t}){return(0,i.jsx)(`tfoot`,{"data-slot":`table-footer`,className:(0,r.cn)(`bg-accent-muted border-t font-medium [&>tr]:last:border-b-0`,e),...t})}function l({className:e,...t}){return(0,i.jsx)(`tr`,{"data-slot":`table-row`,className:(0,r.cn)(`hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors`,e),...t})}function u({className:e,...t}){return(0,i.jsx)(`th`,{"data-slot":`table-head`,className:(0,r.cn)(`text-text-positive-weak`,`h-10 px-2 text-left align-middle font-medium whitespace-nowrap`,`[&:has([role=checkbox])]:pr-0`,`[&>[role=checkbox]]:translate-y-0.5`,e),...t})}function d({className:e,...t}){return(0,i.jsx)(`td`,{"data-slot":`table-cell`,className:(0,r.cn)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5`,e),...t})}function f({className:e,...t}){return(0,i.jsx)(`caption`,{"data-slot":`table-caption`,className:(0,r.cn)(`text-text-positive-muted mt-4 text-sm`,e),...t})}Object.defineProperty(exports,`Table`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`TableBody`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`TableCaption`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`TableCell`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`TableFooter`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`TableHead`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`TableHeader`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`TableRow`,{enumerable:!0,get:function(){return l}});
2
- //# sourceMappingURL=table-Dgk7z91H.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=require(`./scroll-area-D7O1NyZn.cjs`),n=e.__toESM(require(`@customafk/react-toolkit/utils`)),r=e.__toESM(require(`react/jsx-runtime`)),i=e.__toESM(require(`react`));function a({className:e,...i}){return(0,r.jsxs)(t.ScrollArea,{"data-slot":`table-conatiner`,className:`border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border`,children:[(0,r.jsx)(`table`,{"data-slot":`table`,className:(0,n.cn)(`w-full caption-bottom text-sm`,e),...i}),(0,r.jsx)(t.ScrollBar,{orientation:`vertical`,className:`z-5 w-2`}),(0,r.jsx)(t.ScrollBar,{orientation:`horizontal`,className:`absolute right-0 bottom-0 left-0 h-2`})]})}function o({className:e,...t}){return(0,r.jsx)(`thead`,{"data-slot":`table-header`,className:(0,n.cn)(`bg-muted-muted border-border-weak`,`[&_tr]:border-b`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr_th:not(:last-child)]:border-r`,`[&_tr_th:not(:last-child)]:border-r-border-weak`,e),...t})}function s({className:e,...t}){return(0,r.jsx)(`tbody`,{"data-slot":`table-body`,className:(0,n.cn)(`[&_tr:last-child]:border-0`,e),...t})}function c({className:e,...t}){return(0,r.jsx)(`tfoot`,{"data-slot":`table-footer`,className:(0,n.cn)(`bg-accent-muted border-t font-medium [&>tr]:last:border-b-0`,e),...t})}function l({className:e,...t}){return(0,r.jsx)(`tr`,{"data-slot":`table-row`,className:(0,n.cn)(`hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors`,e),...t})}function u({className:e,...t}){return(0,r.jsx)(`th`,{"data-slot":`table-head`,className:(0,n.cn)(`text-text-positive-weak`,`h-10 px-2 text-left align-middle font-medium whitespace-nowrap`,`[&:has([role=checkbox])]:pr-0`,`[&>[role=checkbox]]:translate-y-0.5`,e),...t})}function d({className:e,...t}){return(0,r.jsx)(`td`,{"data-slot":`table-cell`,className:(0,n.cn)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5`,e),...t})}function f({className:e,...t}){return(0,r.jsx)(`caption`,{"data-slot":`table-caption`,className:(0,n.cn)(`text-text-positive-muted mt-4 text-sm`,e),...t})}Object.defineProperty(exports,`Table`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`TableBody`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`TableCaption`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`TableCell`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`TableFooter`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`TableHead`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`TableHeader`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`TableRow`,{enumerable:!0,get:function(){return l}});
2
+ //# sourceMappingURL=table-DxHSASjm.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-Dgk7z91H.cjs","names":["ScrollArea","ScrollBar"],"sources":["../packages/components/ui/table.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { cn } from '@customafk/react-toolkit/utils'\nimport { ScrollArea, ScrollBar } from './scroll-area'\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <ScrollArea data-slot=\"table-conatiner\" className=\"border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border\">\n <table data-slot=\"table\" className={cn('w-full caption-bottom text-sm', className)} {...props} />\n <ScrollBar orientation=\"vertical\" className=\"z-5 w-2\" />\n <ScrollBar orientation=\"horizontal\" className=\"absolute right-0 bottom-0 left-0 h-2\" />\n </ScrollArea>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\n 'bg-muted-muted border-border-weak',\n '[&_tr]:border-b',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr_th:not(:last-child)]:border-r',\n '[&_tr_th:not(:last-child)]:border-r-border-weak',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return <tbody data-slot=\"table-body\" className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return <tfoot data-slot=\"table-footer\" className={cn('bg-accent-muted border-t font-medium [&>tr]:last:border-b-0', className)} {...props} />\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn('hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors', className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'text-text-positive-weak',\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap',\n '[&:has([role=checkbox])]:pr-0',\n '[&>[role=checkbox]]:translate-y-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5', className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return <caption data-slot=\"table-caption\" className={cn('text-text-positive-muted mt-4 text-sm', className)} {...props} />\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow }\n"],"mappings":"+MAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAwC,CACrE,OACE,EAAA,EAAA,MAACA,EAAAA,WAAAA,CAAW,YAAU,kBAAkB,UAAU,gGAChD,EAAA,EAAA,KAAC,QAAA,CAAM,YAAU,QAAQ,WAAA,EAAA,EAAA,IAAc,gCAAiC,GAAY,GAAI,KACxF,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,YAAY,WAAW,UAAU,aAC5C,EAAA,EAAA,KAACA,EAAAA,UAAAA,CAAU,YAAY,aAAa,UAAU,4CAKpD,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,QAAA,CACC,YAAU,eACV,WAAA,EAAA,EAAA,IACE,oCACA,kBACA,sCACA,sCACA,kDACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAwC,CACzE,OAAO,EAAA,EAAA,KAAC,QAAA,CAAM,YAAU,aAAa,WAAA,EAAA,EAAA,IAAc,6BAA8B,GAAY,GAAI,IAGnG,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OAAO,EAAA,EAAA,KAAC,QAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,8DAA+D,GAAY,GAAI,IAGtI,SAAS,EAAS,CAAE,YAAW,GAAG,GAAqC,CACrE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,YACV,WAAA,EAAA,EAAA,IAAc,6HAA8H,GAC5I,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,aACV,WAAA,EAAA,EAAA,IACE,0BACA,iEACA,gCACA,sCACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,aACV,WAAA,EAAA,EAAA,IAAc,uGAAwG,GACtH,GAAI,IAKV,SAAS,EAAa,CAAE,YAAW,GAAG,GAA0C,CAC9E,OAAO,EAAA,EAAA,KAAC,UAAA,CAAQ,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,wCAAyC,GAAY,GAAI"}
1
+ {"version":3,"file":"table-DxHSASjm.cjs","names":["ScrollArea","ScrollBar"],"sources":["../packages/components/ui/table.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { ScrollArea, ScrollBar } from './scroll-area'\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <ScrollArea data-slot=\"table-conatiner\" className=\"border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border\">\n <table data-slot=\"table\" className={cn('w-full caption-bottom text-sm', className)} {...props} />\n <ScrollBar orientation=\"vertical\" className=\"z-5 w-2\" />\n <ScrollBar orientation=\"horizontal\" className=\"absolute right-0 bottom-0 left-0 h-2\" />\n </ScrollArea>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\n 'bg-muted-muted border-border-weak',\n '[&_tr]:border-b',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr_th:not(:last-child)]:border-r',\n '[&_tr_th:not(:last-child)]:border-r-border-weak',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return <tbody data-slot=\"table-body\" className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return <tfoot data-slot=\"table-footer\" className={cn('bg-accent-muted border-t font-medium [&>tr]:last:border-b-0', className)} {...props} />\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn('hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors', className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'text-text-positive-weak',\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap',\n '[&:has([role=checkbox])]:pr-0',\n '[&>[role=checkbox]]:translate-y-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5', className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return <caption data-slot=\"table-caption\" className={cn('text-text-positive-muted mt-4 text-sm', className)} {...props} />\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow }\n"],"mappings":"+MAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAwC,CACrE,OACE,EAAA,EAAA,MAACA,EAAAA,WAAAA,CAAW,YAAU,kBAAkB,UAAU,gGAChD,EAAA,EAAA,KAAC,QAAA,CAAM,YAAU,QAAQ,WAAA,EAAA,EAAA,IAAc,gCAAiC,GAAY,GAAI,KACxF,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,YAAY,WAAW,UAAU,aAC5C,EAAA,EAAA,KAACA,EAAAA,UAAAA,CAAU,YAAY,aAAa,UAAU,4CAKpD,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OACE,EAAA,EAAA,KAAC,QAAA,CACC,YAAU,eACV,WAAA,EAAA,EAAA,IACE,oCACA,kBACA,sCACA,sCACA,kDACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAwC,CACzE,OAAO,EAAA,EAAA,KAAC,QAAA,CAAM,YAAU,aAAa,WAAA,EAAA,EAAA,IAAc,6BAA8B,GAAY,GAAI,IAGnG,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OAAO,EAAA,EAAA,KAAC,QAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,8DAA+D,GAAY,GAAI,IAGtI,SAAS,EAAS,CAAE,YAAW,GAAG,GAAqC,CACrE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,YACV,WAAA,EAAA,EAAA,IAAc,6HAA8H,GAC5I,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,aACV,WAAA,EAAA,EAAA,IACE,0BACA,iEACA,gCACA,sCACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAA,EAAA,KAAC,KAAA,CACC,YAAU,aACV,WAAA,EAAA,EAAA,IAAc,uGAAwG,GACtH,GAAI,IAKV,SAAS,EAAa,CAAE,YAAW,GAAG,GAA0C,CAC9E,OAAO,EAAA,EAAA,KAAC,UAAA,CAAQ,YAAU,gBAAgB,WAAA,EAAA,EAAA,IAAc,wCAAyC,GAAY,GAAI"}
@@ -1,2 +1,2 @@
1
- import{ScrollArea as e,ScrollBar as t}from"./scroll-area-CPQoJKt1.js";import n from"react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o({className:n,...o}){return a(e,{"data-slot":`table-conatiner`,className:`border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border`,children:[i(`table`,{"data-slot":`table`,className:r(`w-full caption-bottom text-sm`,n),...o}),i(t,{orientation:`vertical`,className:`z-5 w-2`}),i(t,{orientation:`horizontal`,className:`absolute right-0 bottom-0 left-0 h-2`})]})}function s({className:e,...t}){return i(`thead`,{"data-slot":`table-header`,className:r(`bg-muted-muted border-border-weak`,`[&_tr]:border-b`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr_th:not(:last-child)]:border-r`,`[&_tr_th:not(:last-child)]:border-r-border-weak`,e),...t})}function c({className:e,...t}){return i(`tbody`,{"data-slot":`table-body`,className:r(`[&_tr:last-child]:border-0`,e),...t})}function l({className:e,...t}){return i(`tfoot`,{"data-slot":`table-footer`,className:r(`bg-accent-muted border-t font-medium [&>tr]:last:border-b-0`,e),...t})}function u({className:e,...t}){return i(`tr`,{"data-slot":`table-row`,className:r(`hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors`,e),...t})}function d({className:e,...t}){return i(`th`,{"data-slot":`table-head`,className:r(`text-text-positive-weak`,`h-10 px-2 text-left align-middle font-medium whitespace-nowrap`,`[&:has([role=checkbox])]:pr-0`,`[&>[role=checkbox]]:translate-y-0.5`,e),...t})}function f({className:e,...t}){return i(`td`,{"data-slot":`table-cell`,className:r(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5`,e),...t})}function p({className:e,...t}){return i(`caption`,{"data-slot":`table-caption`,className:r(`text-text-positive-muted mt-4 text-sm`,e),...t})}export{o as Table,c as TableBody,p as TableCaption,f as TableCell,l as TableFooter,d as TableHead,s as TableHeader,u as TableRow};
2
- //# sourceMappingURL=table-goPaI3yw.js.map
1
+ import{ScrollArea as e,ScrollBar as t}from"./scroll-area-CPQoJKt1.js";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";import a from"react";function o({className:a,...o}){return i(e,{"data-slot":`table-conatiner`,className:`border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border`,children:[r(`table`,{"data-slot":`table`,className:n(`w-full caption-bottom text-sm`,a),...o}),r(t,{orientation:`vertical`,className:`z-5 w-2`}),r(t,{orientation:`horizontal`,className:`absolute right-0 bottom-0 left-0 h-2`})]})}function s({className:e,...t}){return r(`thead`,{"data-slot":`table-header`,className:n(`bg-muted-muted border-border-weak`,`[&_tr]:border-b`,`[&_tr:not(:last-child)_td]:border-b`,`[&_tr_th:not(:last-child)]:border-r`,`[&_tr_th:not(:last-child)]:border-r-border-weak`,e),...t})}function c({className:e,...t}){return r(`tbody`,{"data-slot":`table-body`,className:n(`[&_tr:last-child]:border-0`,e),...t})}function l({className:e,...t}){return r(`tfoot`,{"data-slot":`table-footer`,className:n(`bg-accent-muted border-t font-medium [&>tr]:last:border-b-0`,e),...t})}function u({className:e,...t}){return r(`tr`,{"data-slot":`table-row`,className:n(`hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors`,e),...t})}function d({className:e,...t}){return r(`th`,{"data-slot":`table-head`,className:n(`text-text-positive-weak`,`h-10 px-2 text-left align-middle font-medium whitespace-nowrap`,`[&:has([role=checkbox])]:pr-0`,`[&>[role=checkbox]]:translate-y-0.5`,e),...t})}function f({className:e,...t}){return r(`td`,{"data-slot":`table-cell`,className:n(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5`,e),...t})}function p({className:e,...t}){return r(`caption`,{"data-slot":`table-caption`,className:n(`text-text-positive-muted mt-4 text-sm`,e),...t})}export{o as Table,c as TableBody,p as TableCaption,f as TableCell,l as TableFooter,d as TableHead,s as TableHeader,u as TableRow};
2
+ //# sourceMappingURL=table-DxiQX7c8.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-goPaI3yw.js","names":[],"sources":["../packages/components/ui/table.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { cn } from '@customafk/react-toolkit/utils'\nimport { ScrollArea, ScrollBar } from './scroll-area'\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <ScrollArea data-slot=\"table-conatiner\" className=\"border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border\">\n <table data-slot=\"table\" className={cn('w-full caption-bottom text-sm', className)} {...props} />\n <ScrollBar orientation=\"vertical\" className=\"z-5 w-2\" />\n <ScrollBar orientation=\"horizontal\" className=\"absolute right-0 bottom-0 left-0 h-2\" />\n </ScrollArea>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\n 'bg-muted-muted border-border-weak',\n '[&_tr]:border-b',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr_th:not(:last-child)]:border-r',\n '[&_tr_th:not(:last-child)]:border-r-border-weak',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return <tbody data-slot=\"table-body\" className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return <tfoot data-slot=\"table-footer\" className={cn('bg-accent-muted border-t font-medium [&>tr]:last:border-b-0', className)} {...props} />\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn('hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors', className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'text-text-positive-weak',\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap',\n '[&:has([role=checkbox])]:pr-0',\n '[&>[role=checkbox]]:translate-y-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5', className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return <caption data-slot=\"table-caption\" className={cn('text-text-positive-muted mt-4 text-sm', className)} {...props} />\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow }\n"],"mappings":"iMAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAwC,CACrE,OACE,EAAC,EAAA,CAAW,YAAU,kBAAkB,UAAU,+FAChD,EAAC,QAAA,CAAM,YAAU,QAAQ,UAAW,EAAG,gCAAiC,GAAY,GAAI,IACxF,EAAC,EAAA,CAAU,YAAY,WAAW,UAAU,YAC5C,EAAC,EAAA,CAAU,YAAY,aAAa,UAAU,4CAKpD,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OACE,EAAC,QAAA,CACC,YAAU,eACV,UAAW,EACT,oCACA,kBACA,sCACA,sCACA,kDACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAwC,CACzE,OAAO,EAAC,QAAA,CAAM,YAAU,aAAa,UAAW,EAAG,6BAA8B,GAAY,GAAI,IAGnG,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OAAO,EAAC,QAAA,CAAM,YAAU,eAAe,UAAW,EAAG,8DAA+D,GAAY,GAAI,IAGtI,SAAS,EAAS,CAAE,YAAW,GAAG,GAAqC,CACrE,OACE,EAAC,KAAA,CACC,YAAU,YACV,UAAW,EAAG,6HAA8H,GAC5I,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAC,KAAA,CACC,YAAU,aACV,UAAW,EACT,0BACA,iEACA,gCACA,sCACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAC,KAAA,CACC,YAAU,aACV,UAAW,EAAG,uGAAwG,GACtH,GAAI,IAKV,SAAS,EAAa,CAAE,YAAW,GAAG,GAA0C,CAC9E,OAAO,EAAC,UAAA,CAAQ,YAAU,gBAAgB,UAAW,EAAG,wCAAyC,GAAY,GAAI"}
1
+ {"version":3,"file":"table-DxiQX7c8.js","names":[],"sources":["../packages/components/ui/table.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { ScrollArea, ScrollBar } from './scroll-area'\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <ScrollArea data-slot=\"table-conatiner\" className=\"border-border-weak bg-background relative w-full overflow-x-auto rounded-lg border\">\n <table data-slot=\"table\" className={cn('w-full caption-bottom text-sm', className)} {...props} />\n <ScrollBar orientation=\"vertical\" className=\"z-5 w-2\" />\n <ScrollBar orientation=\"horizontal\" className=\"absolute right-0 bottom-0 left-0 h-2\" />\n </ScrollArea>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\n 'bg-muted-muted border-border-weak',\n '[&_tr]:border-b',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_tr_th:not(:last-child)]:border-r',\n '[&_tr_th:not(:last-child)]:border-r-border-weak',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return <tbody data-slot=\"table-body\" className={cn('[&_tr:last-child]:border-0', className)} {...props} />\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return <tfoot data-slot=\"table-footer\" className={cn('bg-accent-muted border-t font-medium [&>tr]:last:border-b-0', className)} {...props} />\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn('hover:bg-muted-muted/50 active:bg-muted-muted data-[state=selected]:bg-muted border-border-weak border-b transition-colors', className)}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'text-text-positive-weak',\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap',\n '[&:has([role=checkbox])]:pr-0',\n '[&>[role=checkbox]]:translate-y-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-0.5', className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return <caption data-slot=\"table-caption\" className={cn('text-text-positive-muted mt-4 text-sm', className)} {...props} />\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow }\n"],"mappings":"iMAMA,SAAS,EAAM,CAAE,YAAW,GAAG,GAAwC,CACrE,OACE,EAAC,EAAA,CAAW,YAAU,kBAAkB,UAAU,+FAChD,EAAC,QAAA,CAAM,YAAU,QAAQ,UAAW,EAAG,gCAAiC,GAAY,GAAI,IACxF,EAAC,EAAA,CAAU,YAAY,WAAW,UAAU,YAC5C,EAAC,EAAA,CAAU,YAAY,aAAa,UAAU,4CAKpD,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OACE,EAAC,QAAA,CACC,YAAU,eACV,UAAW,EACT,oCACA,kBACA,sCACA,sCACA,kDACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAwC,CACzE,OAAO,EAAC,QAAA,CAAM,YAAU,aAAa,UAAW,EAAG,6BAA8B,GAAY,GAAI,IAGnG,SAAS,EAAY,CAAE,YAAW,GAAG,GAAwC,CAC3E,OAAO,EAAC,QAAA,CAAM,YAAU,eAAe,UAAW,EAAG,8DAA+D,GAAY,GAAI,IAGtI,SAAS,EAAS,CAAE,YAAW,GAAG,GAAqC,CACrE,OACE,EAAC,KAAA,CACC,YAAU,YACV,UAAW,EAAG,6HAA8H,GAC5I,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAC,KAAA,CACC,YAAU,aACV,UAAW,EACT,0BACA,iEACA,gCACA,sCACA,GAEF,GAAI,IAKV,SAAS,EAAU,CAAE,YAAW,GAAG,GAAqC,CACtE,OACE,EAAC,KAAA,CACC,YAAU,aACV,UAAW,EAAG,uGAAwG,GACtH,GAAI,IAKV,SAAS,EAAa,CAAE,YAAW,GAAG,GAA0C,CAC9E,OAAO,EAAC,UAAA,CAAQ,YAAU,gBAAgB,UAAW,EAAG,wCAAyC,GAAY,GAAI"}
@@ -1,2 +1,2 @@
1
- import e from"react";import{cn as t}from"@customafk/react-toolkit/utils";import{jsx as n}from"react/jsx-runtime";function r({className:r,onChange:i,onValueChange:a,...o}){let s=e.useCallback(e=>{i?.(e),a?.(e.target.value)},[i,a]);return n(`textarea`,{"data-slot":`textarea`,className:t(`border-border-weak caret-primary`,`flex min-h-16 w-full bg-transparent px-3 py-2`,`field-sizing-content`,`shadow-input rounded-md border`,`text-sm transition-[color,border,box-shadow] outline-none`,`hover:border-border`,`placeholder:text-text-positive-muted`,`disabled:pointer-events-none`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`focus-visible:ring-4`,`focus-visible:ring-primary-weak`,`focus-visible:border-primary-strong`,`aria-invalid:ring-danger-muted`,`aria-invalid:border-danger-strong`,r),...o,onChange:s})}export{r as Textarea};
2
- //# sourceMappingURL=textarea-DSJO-BLA.js.map
1
+ import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import n from"react";function r({className:r,onChange:i,onValueChange:a,...o}){let s=n.useCallback(e=>{i?.(e),a?.(e.target.value)},[i,a]);return t(`textarea`,{"data-slot":`textarea`,className:e(`border-border-weak caret-primary`,`flex min-h-16 w-full bg-transparent px-3 py-2`,`field-sizing-content`,`shadow-input rounded-md border`,`text-sm transition-[color,border,box-shadow] outline-none`,`hover:border-border`,`placeholder:text-text-positive-muted`,`disabled:pointer-events-none`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`focus-visible:ring-4`,`focus-visible:ring-primary-weak`,`focus-visible:border-primary-strong`,`aria-invalid:ring-danger-muted`,`aria-invalid:border-danger-strong`,r),...o,onChange:s})}export{r as Textarea};
2
+ //# sourceMappingURL=textarea-BZu5g3z6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-BZu5g3z6.js","names":[],"sources":["../packages/components/ui/textarea.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nfunction Textarea({\n className,\n onChange,\n onValueChange,\n ...props\n}: React.ComponentProps<'textarea'> & {\n onValueChange?: (value: string) => void\n}) {\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange?.(e)\n onValueChange?.(e.target.value)\n },\n [onChange, onValueChange],\n )\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'border-border-weak caret-primary',\n 'flex min-h-16 w-full bg-transparent px-3 py-2',\n 'field-sizing-content',\n 'shadow-input rounded-md border',\n 'text-sm transition-[color,border,box-shadow] outline-none',\n 'hover:border-border',\n 'placeholder:text-text-positive-muted',\n 'disabled:pointer-events-none',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'focus-visible:ring-4',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:border-primary-strong',\n 'aria-invalid:ring-danger-muted',\n 'aria-invalid:border-danger-strong',\n className,\n )}\n {...props}\n onChange={handleChange}\n />\n )\n}\n\nexport { Textarea }\n"],"mappings":"iHAIA,SAAS,EAAS,CAChB,YACA,WACA,gBACA,GAAG,GAGF,CACD,IAAM,EAAe,EAAM,YACxB,GAA8C,CAC7C,IAAW,GACX,IAAgB,EAAE,OAAO,QAE3B,CAAC,EAAU,IAEb,OACE,EAAC,WAAA,CACC,YAAU,WACV,UAAW,EACT,mCACA,gDACA,uBACA,iCACA,4DACA,sBACA,uCACA,+BACA,8BACA,sBACA,uBACA,kCACA,sCACA,iCACA,oCACA,GAEF,GAAI,EACJ,SAAU"}
@@ -1,2 +1,2 @@
1
- const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`react`)),n=e.__toESM(require(`@customafk/react-toolkit/utils`)),r=e.__toESM(require(`react/jsx-runtime`));function i({className:e,onChange:i,onValueChange:a,...o}){let s=t.default.useCallback(e=>{i?.(e),a?.(e.target.value)},[i,a]);return(0,r.jsx)(`textarea`,{"data-slot":`textarea`,className:(0,n.cn)(`border-border-weak caret-primary`,`flex min-h-16 w-full bg-transparent px-3 py-2`,`field-sizing-content`,`shadow-input rounded-md border`,`text-sm transition-[color,border,box-shadow] outline-none`,`hover:border-border`,`placeholder:text-text-positive-muted`,`disabled:pointer-events-none`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`focus-visible:ring-4`,`focus-visible:ring-primary-weak`,`focus-visible:border-primary-strong`,`aria-invalid:ring-danger-muted`,`aria-invalid:border-danger-strong`,e),...o,onChange:s})}Object.defineProperty(exports,`Textarea`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=textarea-CtdlfMIV.cjs.map
1
+ const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`@customafk/react-toolkit/utils`)),n=e.__toESM(require(`react/jsx-runtime`)),r=e.__toESM(require(`react`));function i({className:e,onChange:i,onValueChange:a,...o}){let s=r.default.useCallback(e=>{i?.(e),a?.(e.target.value)},[i,a]);return(0,n.jsx)(`textarea`,{"data-slot":`textarea`,className:(0,t.cn)(`border-border-weak caret-primary`,`flex min-h-16 w-full bg-transparent px-3 py-2`,`field-sizing-content`,`shadow-input rounded-md border`,`text-sm transition-[color,border,box-shadow] outline-none`,`hover:border-border`,`placeholder:text-text-positive-muted`,`disabled:pointer-events-none`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`focus-visible:ring-4`,`focus-visible:ring-primary-weak`,`focus-visible:border-primary-strong`,`aria-invalid:ring-danger-muted`,`aria-invalid:border-danger-strong`,e),...o,onChange:s})}Object.defineProperty(exports,`Textarea`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=textarea-qcxhp2mg.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea-qcxhp2mg.cjs","names":["React"],"sources":["../packages/components/ui/textarea.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nfunction Textarea({\n className,\n onChange,\n onValueChange,\n ...props\n}: React.ComponentProps<'textarea'> & {\n onValueChange?: (value: string) => void\n}) {\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange?.(e)\n onValueChange?.(e.target.value)\n },\n [onChange, onValueChange],\n )\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n 'border-border-weak caret-primary',\n 'flex min-h-16 w-full bg-transparent px-3 py-2',\n 'field-sizing-content',\n 'shadow-input rounded-md border',\n 'text-sm transition-[color,border,box-shadow] outline-none',\n 'hover:border-border',\n 'placeholder:text-text-positive-muted',\n 'disabled:pointer-events-none',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'focus-visible:ring-4',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:border-primary-strong',\n 'aria-invalid:ring-danger-muted',\n 'aria-invalid:border-danger-strong',\n className,\n )}\n {...props}\n onChange={handleChange}\n />\n )\n}\n\nexport { Textarea }\n"],"mappings":"uKAIA,SAAS,EAAS,CAChB,YACA,WACA,gBACA,GAAG,GAGF,CACD,IAAM,EAAeA,EAAAA,QAAM,YACxB,GAA8C,CAC7C,IAAW,GACX,IAAgB,EAAE,OAAO,QAE3B,CAAC,EAAU,IAEb,OACE,EAAA,EAAA,KAAC,WAAA,CACC,YAAU,WACV,WAAA,EAAA,EAAA,IACE,mCACA,gDACA,uBACA,iCACA,4DACA,sBACA,uCACA,+BACA,8BACA,sBACA,uBACA,kCACA,sCACA,iCACA,oCACA,GAEF,GAAI,EACJ,SAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"title-DONX1fR6.cjs","names":[],"sources":["../packages/components/typography/title.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { cva } from 'class-variance-authority'\n\nimport { cn } from '@customafk/react-toolkit/utils'\n\nconst titleVariants = cva('scroll-m-20 text-text-positive-strong tracking-tight', {\n variants: {\n level: {\n 1: 'text-center text-4xl font-extrabold text-balance',\n 2: 'border-b pb-2 text-3xl font-semibold first:mt-0',\n 3: 'text-2xl font-semibold',\n 4: 'text-xl font-semibold',\n 5: 'text-lg font-semibold',\n 6: 'text-base font-semibold',\n },\n default: {\n level: 1,\n },\n },\n})\n\ntype Props = {\n level?: 1 | 2 | 3 | 4 | 5 | 6\n className?: string\n children?: React.ReactNode\n}\n\nexport const Title = ({ level = 1, className, children }: Props) => {\n const Comp = `h${level}` as keyof JSX.IntrinsicElements\n return <Comp className={cn(titleVariants({ level }), className)}>{children}</Comp>\n}\n"],"mappings":"0LAKM,GAAA,EAAA,EAAA,KAAoB,uDAAwD,CAChF,SAAU,CACR,MAAO,CACL,EAAG,mDACH,EAAG,kDACH,EAAG,yBACH,EAAG,wBACH,EAAG,wBACH,EAAG,2BAEL,QAAS,CACP,MAAO,MAWA,GAAS,CAAE,QAAQ,EAAG,YAAW,cAAsB,CAClE,IAAM,EAAO,IAAI,IACjB,OAAO,EAAA,EAAA,KAAC,EAAA,CAAK,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,UAAU,GAAa"}
1
+ {"version":3,"file":"title-DONX1fR6.cjs","names":[],"sources":["../packages/components/typography/title.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { cva } from 'class-variance-authority'\n\nconst titleVariants = cva('scroll-m-20 text-text-positive-strong tracking-tight', {\n variants: {\n level: {\n 1: 'text-center text-4xl font-extrabold text-balance',\n 2: 'border-b pb-2 text-3xl font-semibold first:mt-0',\n 3: 'text-2xl font-semibold',\n 4: 'text-xl font-semibold',\n 5: 'text-lg font-semibold',\n 6: 'text-base font-semibold',\n },\n default: {\n level: 1,\n },\n },\n})\n\ntype Props = {\n level?: 1 | 2 | 3 | 4 | 5 | 6\n className?: string\n children?: React.ReactNode\n}\n\nexport const Title = ({ level = 1, className, children }: Props) => {\n const Comp = `h${level}` as keyof JSX.IntrinsicElements\n return <Comp className={cn(titleVariants({ level }), className)}>{children}</Comp>\n}\n"],"mappings":"0LAKM,GAAA,EAAA,EAAA,KAAoB,uDAAwD,CAChF,SAAU,CACR,MAAO,CACL,EAAG,mDACH,EAAG,kDACH,EAAG,yBACH,EAAG,wBACH,EAAG,wBACH,EAAG,2BAEL,QAAS,CACP,MAAO,MAWA,GAAS,CAAE,QAAQ,EAAG,YAAW,cAAsB,CAClE,IAAM,EAAO,IAAI,IACjB,OAAO,EAAA,EAAA,KAAC,EAAA,CAAK,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,UAAU,GAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"title-itXqz0us.js","names":[],"sources":["../packages/components/typography/title.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { cva } from 'class-variance-authority'\n\nimport { cn } from '@customafk/react-toolkit/utils'\n\nconst titleVariants = cva('scroll-m-20 text-text-positive-strong tracking-tight', {\n variants: {\n level: {\n 1: 'text-center text-4xl font-extrabold text-balance',\n 2: 'border-b pb-2 text-3xl font-semibold first:mt-0',\n 3: 'text-2xl font-semibold',\n 4: 'text-xl font-semibold',\n 5: 'text-lg font-semibold',\n 6: 'text-base font-semibold',\n },\n default: {\n level: 1,\n },\n },\n})\n\ntype Props = {\n level?: 1 | 2 | 3 | 4 | 5 | 6\n className?: string\n children?: React.ReactNode\n}\n\nexport const Title = ({ level = 1, className, children }: Props) => {\n const Comp = `h${level}` as keyof JSX.IntrinsicElements\n return <Comp className={cn(titleVariants({ level }), className)}>{children}</Comp>\n}\n"],"mappings":"2IAKA,MAAM,EAAgB,EAAI,uDAAwD,CAChF,SAAU,CACR,MAAO,CACL,EAAG,mDACH,EAAG,kDACH,EAAG,yBACH,EAAG,wBACH,EAAG,wBACH,EAAG,2BAEL,QAAS,CACP,MAAO,MAWA,GAAS,CAAE,QAAQ,EAAG,YAAW,cAAsB,CAClE,IAAM,EAAO,IAAI,IACjB,OAAO,EAAC,EAAA,CAAK,UAAW,EAAG,EAAc,CAAE,UAAU,GAAa"}
1
+ {"version":3,"file":"title-itXqz0us.js","names":[],"sources":["../packages/components/typography/title.tsx"],"sourcesContent":["import type { JSX } from 'react'\nimport { cn } from '@customafk/react-toolkit/utils'\n\nimport { cva } from 'class-variance-authority'\n\nconst titleVariants = cva('scroll-m-20 text-text-positive-strong tracking-tight', {\n variants: {\n level: {\n 1: 'text-center text-4xl font-extrabold text-balance',\n 2: 'border-b pb-2 text-3xl font-semibold first:mt-0',\n 3: 'text-2xl font-semibold',\n 4: 'text-xl font-semibold',\n 5: 'text-lg font-semibold',\n 6: 'text-base font-semibold',\n },\n default: {\n level: 1,\n },\n },\n})\n\ntype Props = {\n level?: 1 | 2 | 3 | 4 | 5 | 6\n className?: string\n children?: React.ReactNode\n}\n\nexport const Title = ({ level = 1, className, children }: Props) => {\n const Comp = `h${level}` as keyof JSX.IntrinsicElements\n return <Comp className={cn(titleVariants({ level }), className)}>{children}</Comp>\n}\n"],"mappings":"2IAKA,MAAM,EAAgB,EAAI,uDAAwD,CAChF,SAAU,CACR,MAAO,CACL,EAAG,mDACH,EAAG,kDACH,EAAG,yBACH,EAAG,wBACH,EAAG,wBACH,EAAG,2BAEL,QAAS,CACP,MAAO,MAWA,GAAS,CAAE,QAAQ,EAAG,YAAW,cAAsB,CAClE,IAAM,EAAO,IAAI,IACjB,OAAO,EAAC,EAAA,CAAK,UAAW,EAAG,EAAc,CAAE,UAAU,GAAa"}