@customafk/lunas-ui 0.2.65 → 0.2.66

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 (725) hide show
  1. package/dist/FeatureDeveloping-zuTTDIh_.d.cts +41 -0
  2. package/dist/FeatureDeveloping-zuTTDIh_.d.mts +41 -0
  3. package/dist/FeatureFixing-DYQlgHPk.d.cts +41 -0
  4. package/dist/FeatureFixing-DYQlgHPk.d.mts +41 -0
  5. package/dist/LoginPage-vMXvwtxf.d.cts +53 -0
  6. package/dist/LoginPage-vMXvwtxf.d.mts +53 -0
  7. package/dist/NotAuthorized-CZIQ6EaA.d.cts +41 -0
  8. package/dist/NotAuthorized-CZIQ6EaA.d.mts +41 -0
  9. package/dist/NotFound-CRSKxhV8.d.cts +41 -0
  10. package/dist/NotFound-CRSKxhV8.d.mts +41 -0
  11. package/dist/RegisterPage-BBtpEzvL.d.cts +50 -0
  12. package/dist/RegisterPage-BBtpEzvL.d.mts +50 -0
  13. package/dist/VerifyEmailPage-CsmIeYLu.d.cts +62 -0
  14. package/dist/VerifyEmailPage-CsmIeYLu.d.mts +62 -0
  15. package/dist/{action-submit-3kZ7JOop.cjs → action-submit-42PxGLsR.cjs} +2 -2
  16. package/dist/{action-submit-3kZ7JOop.cjs.map → action-submit-42PxGLsR.cjs.map} +1 -1
  17. package/dist/{action-submit-Dg5GvYz5.mjs → action-submit-SviPJW3i.mjs} +2 -2
  18. package/dist/{action-submit-Dg5GvYz5.mjs.map → action-submit-SviPJW3i.mjs.map} +1 -1
  19. package/dist/{actions-form-CE_enCgE.cjs → actions-form-Bo46j_dH.cjs} +2 -2
  20. package/dist/{actions-form-CE_enCgE.cjs.map → actions-form-Bo46j_dH.cjs.map} +1 -1
  21. package/dist/{actions-form-BL_B81Vg.mjs → actions-form-QdAsKwcQ.mjs} +2 -2
  22. package/dist/{actions-form-BL_B81Vg.mjs.map → actions-form-QdAsKwcQ.mjs.map} +1 -1
  23. package/dist/activity-heatmap-chart-DufvFndI.mjs +2 -0
  24. package/dist/activity-heatmap-chart-DufvFndI.mjs.map +1 -0
  25. package/dist/activity-heatmap-chart-gDcvIAK_.cjs +2 -0
  26. package/dist/activity-heatmap-chart-gDcvIAK_.cjs.map +1 -0
  27. package/dist/add-new-DkBwXh0Q.d.cts +16 -0
  28. package/dist/add-new-DkBwXh0Q.d.mts +16 -0
  29. package/dist/alert-dialog-Cdhz7jSj.d.cts +88 -0
  30. package/dist/alert-dialog-Cdhz7jSj.d.mts +88 -0
  31. package/dist/analysis-panel-DzsZKA9l.cjs +2 -0
  32. package/dist/analysis-panel-DzsZKA9l.cjs.map +1 -0
  33. package/dist/analysis-panel-ikcRtzG9.mjs +2 -0
  34. package/dist/analysis-panel-ikcRtzG9.mjs.map +1 -0
  35. package/dist/aspect-ratio-huscluwJ.d.cts +22 -0
  36. package/dist/aspect-ratio-huscluwJ.d.mts +22 -0
  37. package/dist/avatar-BpeFwSkQ.d.cts +33 -0
  38. package/dist/avatar-BpeFwSkQ.d.mts +33 -0
  39. package/dist/avatar-name-display-BrpnTqa_.mjs +2 -0
  40. package/dist/avatar-name-display-BrpnTqa_.mjs.map +1 -0
  41. package/dist/avatar-name-display-CLi1DJUs.cjs +2 -0
  42. package/dist/avatar-name-display-CLi1DJUs.cjs.map +1 -0
  43. package/dist/{badge-D0InQSvM.d.cts → badge-MRT40pxM.d.cts} +3 -3
  44. package/dist/{badge-D0InQSvM.d.mts → badge-MRT40pxM.d.mts} +3 -3
  45. package/dist/badge-display-9WXwgQgH.cjs +2 -0
  46. package/dist/badge-display-9WXwgQgH.cjs.map +1 -0
  47. package/dist/badge-display-Dx-dITLB.mjs +2 -0
  48. package/dist/badge-display-Dx-dITLB.mjs.map +1 -0
  49. package/dist/boolean-display-OVCtvzI1.mjs +2 -0
  50. package/dist/boolean-display-OVCtvzI1.mjs.map +1 -0
  51. package/dist/boolean-display-pmzYS-ND.cjs +2 -0
  52. package/dist/boolean-display-pmzYS-ND.cjs.map +1 -0
  53. package/dist/breadcrumb-CSpScKZm.d.cts +69 -0
  54. package/dist/breadcrumb-CSpScKZm.d.mts +69 -0
  55. package/dist/{button-DIqm3YRo.d.cts → button-Bk4Y6_9I.d.cts} +3 -3
  56. package/dist/{button-DIqm3YRo.d.mts → button-Bk4Y6_9I.d.mts} +3 -3
  57. package/dist/button-group-Cd5m5G3p.d.mts +48 -0
  58. package/dist/button-group-CiKhLVCg.d.cts +48 -0
  59. package/dist/calendar-DPKt7D3w.d.mts +43 -0
  60. package/dist/calendar-stv2bJv0.d.cts +43 -0
  61. package/dist/candlestick-chart-CiBiCU3y.mjs +2 -0
  62. package/dist/candlestick-chart-CiBiCU3y.mjs.map +1 -0
  63. package/dist/candlestick-chart-CqmRkfXj.cjs +2 -0
  64. package/dist/candlestick-chart-CqmRkfXj.cjs.map +1 -0
  65. package/dist/card-DOnx7RKz.d.cts +60 -0
  66. package/dist/card-DOnx7RKz.d.mts +60 -0
  67. package/dist/cards/grid-product-card.d.cts +2 -30
  68. package/dist/cards/grid-product-card.d.mts +2 -30
  69. package/dist/cards/product-card.d.cts +2 -30
  70. package/dist/cards/product-card.d.mts +2 -30
  71. package/dist/cards/simple-card.d.cts +2 -29
  72. package/dist/cards/simple-card.d.mts +2 -29
  73. package/dist/carousel-CV3IZ96x.d.mts +70 -0
  74. package/dist/carousel-c2XuzmYN.d.cts +70 -0
  75. package/dist/chart-sYFksFMk.d.cts +80 -0
  76. package/dist/chart-sYFksFMk.d.mts +80 -0
  77. package/dist/checkbox-XfLNnG0S.d.cts +24 -0
  78. package/dist/checkbox-XfLNnG0S.d.mts +24 -0
  79. package/dist/{checkbox-field-DdeohRmi.cjs → checkbox-field-B1vCz-Wf.cjs} +2 -2
  80. package/dist/{checkbox-field-DdeohRmi.cjs.map → checkbox-field-B1vCz-Wf.cjs.map} +1 -1
  81. package/dist/{checkbox-field-CRcfuDu1.mjs → checkbox-field-FqCe38_D.mjs} +2 -2
  82. package/dist/{checkbox-field-CRcfuDu1.mjs.map → checkbox-field-FqCe38_D.mjs.map} +1 -1
  83. package/dist/{cms-layout-SubgSF72.cjs → cms-layout-CGGJqbr0.cjs} +2 -2
  84. package/dist/{cms-layout-SubgSF72.cjs.map → cms-layout-CGGJqbr0.cjs.map} +1 -1
  85. package/dist/{cms-layout-CuF5ahpj.mjs → cms-layout-ePySxIQN.mjs} +2 -2
  86. package/dist/{cms-layout-CuF5ahpj.mjs.map → cms-layout-ePySxIQN.mjs.map} +1 -1
  87. package/dist/collapsible-liIHmFuw.d.cts +32 -0
  88. package/dist/collapsible-liIHmFuw.d.mts +32 -0
  89. package/dist/combobox-field-D6fiCcvU.mjs +2 -0
  90. package/dist/{combobox-field-BGChwajc.mjs.map → combobox-field-D6fiCcvU.mjs.map} +1 -1
  91. package/dist/{combobox-field-D9NdSih1.cjs → combobox-field-DLpH6J9H.cjs} +2 -2
  92. package/dist/{combobox-field-D9NdSih1.cjs.map → combobox-field-DLpH6J9H.cjs.map} +1 -1
  93. package/dist/command-Bb6SneVI.d.mts +87 -0
  94. package/dist/command-CHSJVU9o.d.cts +87 -0
  95. package/dist/confirm-dialog-B8Vu0z8S.d.cts +142 -0
  96. package/dist/confirm-dialog-B8Vu0z8S.d.mts +142 -0
  97. package/dist/context-menu-BOlGSuep.d.cts +123 -0
  98. package/dist/context-menu-BOlGSuep.d.mts +123 -0
  99. package/dist/conversion-funnel-chart-CW_zDfKS.mjs +2 -0
  100. package/dist/conversion-funnel-chart-CW_zDfKS.mjs.map +1 -0
  101. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs +2 -0
  102. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs.map +1 -0
  103. package/dist/correlation-scatter-chart-Djtt7NU7.mjs +2 -0
  104. package/dist/correlation-scatter-chart-Djtt7NU7.mjs.map +1 -0
  105. package/dist/correlation-scatter-chart-HF48YUIB.cjs +2 -0
  106. package/dist/correlation-scatter-chart-HF48YUIB.cjs.map +1 -0
  107. package/dist/country-C8QijcHF.d.mts +21 -0
  108. package/dist/country-CJIaO0I7.d.cts +21 -0
  109. package/dist/currency-display-B91H66HM.cjs +2 -0
  110. package/dist/currency-display-B91H66HM.cjs.map +1 -0
  111. package/dist/currency-display-BN1i8jnU.mjs +2 -0
  112. package/dist/currency-display-BN1i8jnU.mjs.map +1 -0
  113. package/dist/data-display/country.d.cts +2 -21
  114. package/dist/data-display/country.d.mts +2 -21
  115. package/dist/data-display/data-list.d.cts +2 -38
  116. package/dist/data-display/data-list.d.mts +2 -38
  117. package/dist/data-display/date-tooltip.d.cts +2 -18
  118. package/dist/data-display/date-tooltip.d.mts +2 -18
  119. package/dist/data-display/date.d.cts +2 -39
  120. package/dist/data-display/date.d.mts +2 -39
  121. package/dist/data-display/empty.d.cts +2 -19
  122. package/dist/data-display/empty.d.mts +2 -19
  123. package/dist/data-display/name.d.cts +2 -18
  124. package/dist/data-display/name.d.mts +2 -18
  125. package/dist/data-display/phone-number.d.cts +2 -18
  126. package/dist/data-display/phone-number.d.mts +2 -18
  127. package/dist/data-display/role-badge.d.cts +2 -21
  128. package/dist/data-display/role-badge.d.mts +2 -21
  129. package/dist/data-display/statistic.d.cts +2 -45
  130. package/dist/data-display/statistic.d.mts +2 -45
  131. package/dist/data-display/user.d.cts +2 -20
  132. package/dist/data-display/user.d.mts +2 -20
  133. package/dist/data-list-Cg510z2m.d.cts +38 -0
  134. package/dist/data-list-Cg510z2m.d.mts +38 -0
  135. package/dist/date-KANPBbN4.d.cts +39 -0
  136. package/dist/date-KANPBbN4.d.mts +39 -0
  137. package/dist/date-display-BWtvWDHK.mjs +2 -0
  138. package/dist/date-display-BWtvWDHK.mjs.map +1 -0
  139. package/dist/date-display-odcC9NcB.cjs +2 -0
  140. package/dist/date-display-odcC9NcB.cjs.map +1 -0
  141. package/dist/{date-field-Dm4ki1HS.mjs → date-field-Cxbrc0Vl.mjs} +2 -2
  142. package/dist/{date-field-Dm4ki1HS.mjs.map → date-field-Cxbrc0Vl.mjs.map} +1 -1
  143. package/dist/{date-field-BqAX4M_h.cjs → date-field-RvEB9F1r.cjs} +2 -2
  144. package/dist/{date-field-BqAX4M_h.cjs.map → date-field-RvEB9F1r.cjs.map} +1 -1
  145. package/dist/date-tooltip-DptxGOj_.d.cts +18 -0
  146. package/dist/date-tooltip-DptxGOj_.d.mts +18 -0
  147. package/dist/description-display-BubAcFan.mjs +2 -0
  148. package/dist/description-display-BubAcFan.mjs.map +1 -0
  149. package/dist/description-display-CKe0j3q-.cjs +2 -0
  150. package/dist/description-display-CKe0j3q-.cjs.map +1 -0
  151. package/dist/{dialog-form-ClWBZbUN.mjs → dialog-form-C0W5C0u9.mjs} +2 -2
  152. package/dist/{dialog-form-ClWBZbUN.mjs.map → dialog-form-C0W5C0u9.mjs.map} +1 -1
  153. package/dist/{dialog-form-DN-NlQFO.cjs → dialog-form-CkNCwzWG.cjs} +2 -2
  154. package/dist/{dialog-form-DN-NlQFO.cjs.map → dialog-form-CkNCwzWG.cjs.map} +1 -1
  155. package/dist/dialogs/confirm-dialog.d.cts +2 -142
  156. package/dist/dialogs/confirm-dialog.d.mts +2 -142
  157. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  158. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +1 -1
  159. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +50 -38
  160. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +50 -38
  161. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  162. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +1 -1
  163. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  164. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  165. package/dist/dialogs/detail-dialog/index.d.cts +2 -36
  166. package/dist/dialogs/detail-dialog/index.d.mts +2 -36
  167. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  168. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  169. package/dist/dialogs/error-dialog.d.cts +2 -22
  170. package/dist/dialogs/error-dialog.d.mts +2 -22
  171. package/dist/dialogs/loading-dialog.d.cts +2 -19
  172. package/dist/dialogs/loading-dialog.d.mts +2 -19
  173. package/dist/donut-chart-CsPPKy0G.cjs +2 -0
  174. package/dist/donut-chart-CsPPKy0G.cjs.map +1 -0
  175. package/dist/donut-chart-eKZjuzW0.mjs +2 -0
  176. package/dist/donut-chart-eKZjuzW0.mjs.map +1 -0
  177. package/dist/drawer-Dwx99ff3.d.cts +70 -0
  178. package/dist/drawer-Dwx99ff3.d.mts +70 -0
  179. package/dist/dropdown-menu-CcMccVns.d.cts +125 -0
  180. package/dist/dropdown-menu-CcMccVns.d.mts +125 -0
  181. package/dist/edit-button-0_FLZoT3.cjs +2 -0
  182. package/dist/edit-button-0_FLZoT3.cjs.map +1 -0
  183. package/dist/edit-button-DmMFMzG0.mjs +2 -0
  184. package/dist/edit-button-DmMFMzG0.mjs.map +1 -0
  185. package/dist/edit-qfS5kOtM.d.cts +16 -0
  186. package/dist/edit-qfS5kOtM.d.mts +16 -0
  187. package/dist/email-display-BLt60GQ1.cjs +2 -0
  188. package/dist/email-display-BLt60GQ1.cjs.map +1 -0
  189. package/dist/email-display-CMme47S9.mjs +2 -0
  190. package/dist/email-display-CMme47S9.mjs.map +1 -0
  191. package/dist/{email-field-lDd9ouFN.cjs → email-field-BErx3liY.cjs} +2 -2
  192. package/dist/{email-field-lDd9ouFN.cjs.map → email-field-BErx3liY.cjs.map} +1 -1
  193. package/dist/{email-field-DZNR_JbT.mjs → email-field-BtcdBWL4.mjs} +2 -2
  194. package/dist/{email-field-DZNR_JbT.mjs.map → email-field-BtcdBWL4.mjs.map} +1 -1
  195. package/dist/empty-CaNJjp05.d.cts +65 -0
  196. package/dist/empty-CaNJjp05.d.mts +65 -0
  197. package/dist/empty-ClQptIZH.d.cts +19 -0
  198. package/dist/empty-ClQptIZH.d.mts +19 -0
  199. package/dist/error-dialog-D4jOPhmw.d.cts +22 -0
  200. package/dist/error-dialog-D4jOPhmw.d.mts +22 -0
  201. package/dist/features/charts/index.cjs +1 -1
  202. package/dist/features/charts/index.cjs.map +1 -1
  203. package/dist/features/charts/index.d.cts +2 -904
  204. package/dist/features/charts/index.d.mts +2 -904
  205. package/dist/features/charts/index.mjs +1 -1
  206. package/dist/features/charts/index.mjs.map +1 -1
  207. package/dist/features/descriptions/index.cjs +1 -1
  208. package/dist/features/descriptions/index.cjs.map +1 -1
  209. package/dist/features/descriptions/index.d.cts +2 -231
  210. package/dist/features/descriptions/index.d.mts +2 -231
  211. package/dist/features/descriptions/index.mjs +1 -1
  212. package/dist/features/descriptions/index.mjs.map +1 -1
  213. package/dist/features/search-modal/index.d.cts +2 -14
  214. package/dist/features/search-modal/index.d.mts +2 -14
  215. package/dist/features/tables/index.cjs +1 -1
  216. package/dist/features/tables/index.d.cts +2 -2
  217. package/dist/features/tables/index.d.mts +2 -2
  218. package/dist/features/tables/index.mjs +1 -1
  219. package/dist/features/tanstack-form/index.cjs +1 -1
  220. package/dist/features/tanstack-form/index.mjs +1 -1
  221. package/dist/features/text-editor/index.cjs +1 -1
  222. package/dist/features/text-editor/index.d.cts +1 -1
  223. package/dist/features/text-editor/index.d.mts +1 -1
  224. package/dist/features/text-editor/index.mjs +1 -1
  225. package/dist/file-uploader-U64lH0zG.d.cts +101 -0
  226. package/dist/file-uploader-U64lH0zG.d.mts +101 -0
  227. package/dist/filter-CMzD5h0M.mjs +2 -0
  228. package/dist/filter-CMzD5h0M.mjs.map +1 -0
  229. package/dist/filter-Cmg6SHMu.cjs +2 -0
  230. package/dist/filter-Cmg6SHMu.cjs.map +1 -0
  231. package/dist/flex-CT71VV-I.d.cts +114 -0
  232. package/dist/flex-CT71VV-I.d.mts +114 -0
  233. package/dist/form-CMP15S4r.d.cts +109 -0
  234. package/dist/form-CMP15S4r.d.mts +109 -0
  235. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs +2 -0
  236. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs.map +1 -0
  237. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs +2 -0
  238. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs.map +1 -0
  239. package/dist/google-Bl-jBW8L.d.cts +48 -0
  240. package/dist/google-Bl-jBW8L.d.mts +48 -0
  241. package/dist/grid-i7Oz2Izf.d.cts +19 -0
  242. package/dist/grid-i7Oz2Izf.d.mts +19 -0
  243. package/dist/grid-product-card-bpADqDOQ.d.cts +30 -0
  244. package/dist/grid-product-card-bpADqDOQ.d.mts +30 -0
  245. package/dist/hover-card-Prwm-0Q4.d.cts +35 -0
  246. package/dist/hover-card-Prwm-0Q4.d.mts +35 -0
  247. package/dist/image-Cln0r7Eb.d.cts +27 -0
  248. package/dist/image-Cln0r7Eb.d.mts +27 -0
  249. package/dist/{index-C4isgHWG.d.cts → index-BRE7tL8d.d.cts} +121 -500
  250. package/dist/index-C2HFO3a9.d.mts +231 -0
  251. package/dist/index-C9eXmnvk.d.cts +36 -0
  252. package/dist/index-C9eXmnvk.d.mts +36 -0
  253. package/dist/index-CBntsHIg.d.cts +520 -0
  254. package/dist/index-CBntsHIg.d.mts +520 -0
  255. package/dist/{index-DOaKN0wJ.d.mts → index-D9bKlLiM.d.cts} +2 -22
  256. package/dist/{index-DOaKN0wJ.d.cts → index-D9bKlLiM.d.mts} +2 -22
  257. package/dist/index-DJiiPHPf.d.cts +59 -0
  258. package/dist/index-DJiiPHPf.d.mts +59 -0
  259. package/dist/index-DtIL69PB.d.cts +14 -0
  260. package/dist/index-DtIL69PB.d.mts +14 -0
  261. package/dist/{index-C8W56XKm.d.mts → index-DvoLzsh0.d.mts} +121 -500
  262. package/dist/index-fZChR7MS.d.cts +231 -0
  263. package/dist/index.cjs +1 -1
  264. package/dist/index.d.cts +91 -91
  265. package/dist/index.d.mts +91 -91
  266. package/dist/index.mjs +1 -1
  267. package/dist/indexed-performance-line-chart-CT79KOM6.cjs +2 -0
  268. package/dist/indexed-performance-line-chart-CT79KOM6.cjs.map +1 -0
  269. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs +2 -0
  270. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs.map +1 -0
  271. package/dist/{input-go3H4EQz.d.cts → input-BieGEIDf.d.cts} +2 -2
  272. package/dist/{input-go3H4EQz.d.mts → input-BieGEIDf.d.mts} +2 -2
  273. package/dist/input-otp-6hJfhBHX.d.cts +56 -0
  274. package/dist/input-otp-6hJfhBHX.d.mts +56 -0
  275. package/dist/item-DTR2f2CX.d.cts +99 -0
  276. package/dist/item-cIhkI3ZI.d.mts +99 -0
  277. package/dist/label-DPG_GY7h.d.cts +22 -0
  278. package/dist/label-DPG_GY7h.d.mts +22 -0
  279. package/dist/layouts/cms-layout/index.cjs +1 -1
  280. package/dist/layouts/cms-layout/index.mjs +1 -1
  281. package/dist/layouts/flex.d.cts +2 -114
  282. package/dist/layouts/flex.d.mts +2 -114
  283. package/dist/layouts/grid.d.cts +2 -19
  284. package/dist/layouts/grid.d.mts +2 -19
  285. package/dist/layouts/payment-layout/index.cjs +1 -1
  286. package/dist/layouts/payment-layout/index.d.cts +2 -59
  287. package/dist/layouts/payment-layout/index.d.mts +2 -59
  288. package/dist/layouts/payment-layout/index.mjs +1 -1
  289. package/dist/list-display-BuRCso6J.mjs +2 -0
  290. package/dist/list-display-BuRCso6J.mjs.map +1 -0
  291. package/dist/list-display-DEU6yFa9.cjs +2 -0
  292. package/dist/list-display-DEU6yFa9.cjs.map +1 -0
  293. package/dist/loading-dialog-C73EJx9s.d.cts +19 -0
  294. package/dist/loading-dialog-C73EJx9s.d.mts +19 -0
  295. package/dist/menubar-CFrn3S96.d.cts +133 -0
  296. package/dist/menubar-CFrn3S96.d.mts +133 -0
  297. package/dist/metric-radar-chart-6LTGQHsL.mjs +2 -0
  298. package/dist/metric-radar-chart-6LTGQHsL.mjs.map +1 -0
  299. package/dist/metric-radar-chart-DwgbXgJX.cjs +2 -0
  300. package/dist/metric-radar-chart-DwgbXgJX.cjs.map +1 -0
  301. package/dist/mirrored-bar-chart-BT7AYPJB.mjs +2 -0
  302. package/dist/mirrored-bar-chart-BT7AYPJB.mjs.map +1 -0
  303. package/dist/mirrored-bar-chart-BwjtExjh.cjs +2 -0
  304. package/dist/mirrored-bar-chart-BwjtExjh.cjs.map +1 -0
  305. package/dist/more-button-BKBcXz6E.mjs +2 -0
  306. package/dist/more-button-BKBcXz6E.mjs.map +1 -0
  307. package/dist/more-button-RYvZgYiu.cjs +2 -0
  308. package/dist/more-button-RYvZgYiu.cjs.map +1 -0
  309. package/dist/multi-select-BbiKgAYs.d.cts +116 -0
  310. package/dist/multi-select-BoBHt_Z9.d.mts +116 -0
  311. package/dist/name-7aoM5rAW.d.cts +18 -0
  312. package/dist/name-7aoM5rAW.d.mts +18 -0
  313. package/dist/name-display-B6X52ip_.cjs +2 -0
  314. package/dist/name-display-B6X52ip_.cjs.map +1 -0
  315. package/dist/name-display-DXMZ8Lug.mjs +2 -0
  316. package/dist/name-display-DXMZ8Lug.mjs.map +1 -0
  317. package/dist/navigation-menu-B1BY9Zll.d.cts +73 -0
  318. package/dist/navigation-menu-B1BY9Zll.d.mts +73 -0
  319. package/dist/{number-field-Baj9Yhiv.mjs → number-field-BjVjf6s4.mjs} +2 -2
  320. package/dist/{number-field-Baj9Yhiv.mjs.map → number-field-BjVjf6s4.mjs.map} +1 -1
  321. package/dist/{number-field-BqeSbMvE.cjs → number-field-DmKh7bbY.cjs} +2 -2
  322. package/dist/{number-field-BqeSbMvE.cjs.map → number-field-DmKh7bbY.cjs.map} +1 -1
  323. package/dist/orders-bar-chart-9RmtP6In.cjs +2 -0
  324. package/dist/orders-bar-chart-9RmtP6In.cjs.map +1 -0
  325. package/dist/orders-bar-chart-DQhJGmwY.mjs +2 -0
  326. package/dist/orders-bar-chart-DQhJGmwY.mjs.map +1 -0
  327. package/dist/pages/FeatureDeveloping.d.cts +2 -41
  328. package/dist/pages/FeatureDeveloping.d.mts +2 -41
  329. package/dist/pages/FeatureFixing.d.cts +2 -41
  330. package/dist/pages/FeatureFixing.d.mts +2 -41
  331. package/dist/pages/LoginPage.cjs +1 -1
  332. package/dist/pages/LoginPage.cjs.map +1 -1
  333. package/dist/pages/LoginPage.d.cts +2 -53
  334. package/dist/pages/LoginPage.d.mts +2 -53
  335. package/dist/pages/LoginPage.mjs +1 -1
  336. package/dist/pages/LoginPage.mjs.map +1 -1
  337. package/dist/pages/NotAuthorized.d.cts +2 -41
  338. package/dist/pages/NotAuthorized.d.mts +2 -41
  339. package/dist/pages/NotFound.d.cts +2 -41
  340. package/dist/pages/NotFound.d.mts +2 -41
  341. package/dist/pages/RegisterPage.cjs +1 -1
  342. package/dist/pages/RegisterPage.cjs.map +1 -1
  343. package/dist/pages/RegisterPage.d.cts +2 -50
  344. package/dist/pages/RegisterPage.d.mts +2 -50
  345. package/dist/pages/RegisterPage.mjs +1 -1
  346. package/dist/pages/RegisterPage.mjs.map +1 -1
  347. package/dist/pages/VerifyEmailPage.d.cts +2 -62
  348. package/dist/pages/VerifyEmailPage.d.mts +2 -62
  349. package/dist/pagination-B2fyP0J2.d.cts +64 -0
  350. package/dist/pagination-DY0PBCnI.d.mts +64 -0
  351. package/dist/paragraph-BTmvVS1S.d.mts +46 -0
  352. package/dist/paragraph-DbYYv0A0.d.cts +46 -0
  353. package/dist/{password-field-fzpU42sV.mjs → password-field-C5FsQUa8.mjs} +2 -2
  354. package/dist/{password-field-fzpU42sV.mjs.map → password-field-C5FsQUa8.mjs.map} +1 -1
  355. package/dist/{password-field-Cq0S949S.cjs → password-field-gHYDiXWY.cjs} +2 -2
  356. package/dist/{password-field-Cq0S949S.cjs.map → password-field-gHYDiXWY.cjs.map} +1 -1
  357. package/dist/payment-layout-Cb-Q8KD2.cjs +2 -0
  358. package/dist/{payment-layout-BLrXT-oc.cjs.map → payment-layout-Cb-Q8KD2.cjs.map} +1 -1
  359. package/dist/{payment-layout-Dsz6wYT1.mjs → payment-layout-DS5CEH1h.mjs} +2 -2
  360. package/dist/{payment-layout-Dsz6wYT1.mjs.map → payment-layout-DS5CEH1h.mjs.map} +1 -1
  361. package/dist/permalink-CZ3g9daG.mjs +2 -0
  362. package/dist/permalink-CZ3g9daG.mjs.map +1 -0
  363. package/dist/permalink-DeeEKhfc.cjs +2 -0
  364. package/dist/permalink-DeeEKhfc.cjs.map +1 -0
  365. package/dist/phone-number-6b_pkGI1.d.cts +18 -0
  366. package/dist/phone-number-6b_pkGI1.d.mts +18 -0
  367. package/dist/phone-number-C43z68gT.mjs +2 -0
  368. package/dist/phone-number-C43z68gT.mjs.map +1 -0
  369. package/dist/phone-number-DhThJwd6.cjs +2 -0
  370. package/dist/phone-number-DhThJwd6.cjs.map +1 -0
  371. package/dist/popover-CdOCi0xg.d.cts +50 -0
  372. package/dist/popover-CdOCi0xg.d.mts +50 -0
  373. package/dist/{popover-form-DNbBGWVF.mjs → popover-form-B2taDBAh.mjs} +2 -2
  374. package/dist/{popover-form-DNbBGWVF.mjs.map → popover-form-B2taDBAh.mjs.map} +1 -1
  375. package/dist/{popover-form-KLmew1Vd.cjs → popover-form-_hQQpfAB.cjs} +2 -2
  376. package/dist/{popover-form-KLmew1Vd.cjs.map → popover-form-_hQQpfAB.cjs.map} +1 -1
  377. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs +2 -0
  378. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs.map +1 -0
  379. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs +2 -0
  380. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs.map +1 -0
  381. package/dist/price-range-area-chart-BW6RQb_9.cjs +2 -0
  382. package/dist/price-range-area-chart-BW6RQb_9.cjs.map +1 -0
  383. package/dist/price-range-area-chart-Dy01mhWJ.mjs +2 -0
  384. package/dist/price-range-area-chart-Dy01mhWJ.mjs.map +1 -0
  385. package/dist/product-card-CvXLXbpV.d.cts +30 -0
  386. package/dist/product-card-CvXLXbpV.d.mts +30 -0
  387. package/dist/progress-Bp-5keO8.d.cts +21 -0
  388. package/dist/progress-Bp-5keO8.d.mts +21 -0
  389. package/dist/progress-display-Bp0xVhln.cjs +2 -0
  390. package/dist/progress-display-Bp0xVhln.cjs.map +1 -0
  391. package/dist/progress-display-DYj7vAe9.mjs +2 -0
  392. package/dist/progress-display-DYj7vAe9.mjs.map +1 -0
  393. package/dist/{radio-group-field-DjzD3i-f.cjs → radio-group-field-McpjpLW-.cjs} +2 -2
  394. package/dist/{radio-group-field-DjzD3i-f.cjs.map → radio-group-field-McpjpLW-.cjs.map} +1 -1
  395. package/dist/{radio-group-field-Ps8yHpnH.mjs → radio-group-field-ZqMrf9Dx.mjs} +2 -2
  396. package/dist/{radio-group-field-Ps8yHpnH.mjs.map → radio-group-field-ZqMrf9Dx.mjs.map} +1 -1
  397. package/dist/radio-group-ycQQrPGn.d.cts +35 -0
  398. package/dist/radio-group-ycQQrPGn.d.mts +35 -0
  399. package/dist/refresh-BiyrZAXL.d.cts +16 -0
  400. package/dist/refresh-BiyrZAXL.d.mts +16 -0
  401. package/dist/remove-button-B3qFw-M5.cjs +2 -0
  402. package/dist/remove-button-B3qFw-M5.cjs.map +1 -0
  403. package/dist/remove-button-Db5oSj4h.mjs +2 -0
  404. package/dist/remove-button-Db5oSj4h.mjs.map +1 -0
  405. package/dist/{resizable-BLfxHCf4.d.cts → resizable-CAyWR1At.d.cts} +2 -2
  406. package/dist/{resizable-BLfxHCf4.d.mts → resizable-CAyWR1At.d.mts} +2 -2
  407. package/dist/revenue-area-chart-BwzeTRzD.mjs +2 -0
  408. package/dist/revenue-area-chart-BwzeTRzD.mjs.map +1 -0
  409. package/dist/revenue-area-chart-w2FZCl_7.cjs +2 -0
  410. package/dist/revenue-area-chart-w2FZCl_7.cjs.map +1 -0
  411. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs +2 -0
  412. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs.map +1 -0
  413. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs +2 -0
  414. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs.map +1 -0
  415. package/dist/role-badge-Bl4Rimpk.d.mts +21 -0
  416. package/dist/role-badge-IdZW0tsN.d.cts +21 -0
  417. package/dist/sales-target-radial-chart-BFLxBT2m.mjs +2 -0
  418. package/dist/sales-target-radial-chart-BFLxBT2m.mjs.map +1 -0
  419. package/dist/sales-target-radial-chart-BoxSk7hW.cjs +2 -0
  420. package/dist/sales-target-radial-chart-BoxSk7hW.cjs.map +1 -0
  421. package/dist/sankey-flow-chart-CDUqIRMZ.cjs +2 -0
  422. package/dist/sankey-flow-chart-CDUqIRMZ.cjs.map +1 -0
  423. package/dist/sankey-flow-chart-bQ3Dffet.mjs +2 -0
  424. package/dist/sankey-flow-chart-bQ3Dffet.mjs.map +1 -0
  425. package/dist/scroll-area-PbkqIAaH.d.cts +35 -0
  426. package/dist/scroll-area-PbkqIAaH.d.mts +35 -0
  427. package/dist/search-input-Bq4enQzR.d.cts +27 -0
  428. package/dist/search-input-D51_mAY-.d.mts +27 -0
  429. package/dist/select-B5j4WvPM.d.cts +74 -0
  430. package/dist/select-B5j4WvPM.d.mts +74 -0
  431. package/dist/{select-field-B4eU65OI.cjs → select-field-DG8sQ5iN.cjs} +2 -2
  432. package/dist/{select-field-B4eU65OI.cjs.map → select-field-DG8sQ5iN.cjs.map} +1 -1
  433. package/dist/{select-field-D6Dw-Jwg.mjs → select-field-Kq5iQCRQ.mjs} +2 -2
  434. package/dist/{select-field-D6Dw-Jwg.mjs.map → select-field-Kq5iQCRQ.mjs.map} +1 -1
  435. package/dist/separator-D6_fMJtM.d.cts +32 -0
  436. package/dist/separator-D6_fMJtM.d.mts +32 -0
  437. package/dist/sheet-cHLLSvvt.d.cts +66 -0
  438. package/dist/sheet-cHLLSvvt.d.mts +66 -0
  439. package/dist/sidebar-core-Bh0dZXsm.mjs +2 -0
  440. package/dist/sidebar-core-Bh0dZXsm.mjs.map +1 -0
  441. package/dist/sidebar-core-DQE6ymo4.cjs +2 -0
  442. package/dist/sidebar-core-DQE6ymo4.cjs.map +1 -0
  443. package/dist/{simple-array-field-Bcs2pHdp.cjs → simple-array-field-4paKpxXk.cjs} +2 -2
  444. package/dist/{simple-array-field-Bcs2pHdp.cjs.map → simple-array-field-4paKpxXk.cjs.map} +1 -1
  445. package/dist/{simple-array-field-9oZ-Smzp.mjs → simple-array-field-C5XdemXa.mjs} +2 -2
  446. package/dist/{simple-array-field-9oZ-Smzp.mjs.map → simple-array-field-C5XdemXa.mjs.map} +1 -1
  447. package/dist/{simple-boolean-field-C-qq6Vlt.cjs → simple-boolean-field-B9T_fHk9.cjs} +2 -2
  448. package/dist/{simple-boolean-field-C-qq6Vlt.cjs.map → simple-boolean-field-B9T_fHk9.cjs.map} +1 -1
  449. package/dist/{simple-boolean-field-CkJUMxNU.mjs → simple-boolean-field-DpJ-fSQk.mjs} +2 -2
  450. package/dist/{simple-boolean-field-CkJUMxNU.mjs.map → simple-boolean-field-DpJ-fSQk.mjs.map} +1 -1
  451. package/dist/simple-card-6P377r4A.d.cts +29 -0
  452. package/dist/simple-card-6P377r4A.d.mts +29 -0
  453. package/dist/{simple-combobox-field-5dfMd49B.mjs → simple-combobox-field-Ch4SBHCH.mjs} +2 -2
  454. package/dist/{simple-combobox-field-5dfMd49B.mjs.map → simple-combobox-field-Ch4SBHCH.mjs.map} +1 -1
  455. package/dist/{simple-combobox-field-BtmQGEo5.cjs → simple-combobox-field-ChMKk7xp.cjs} +2 -2
  456. package/dist/{simple-combobox-field-BtmQGEo5.cjs.map → simple-combobox-field-ChMKk7xp.cjs.map} +1 -1
  457. package/dist/{simple-date-field-LVfNhVJi.cjs → simple-date-field-BGGlsHzG.cjs} +2 -2
  458. package/dist/{simple-date-field-LVfNhVJi.cjs.map → simple-date-field-BGGlsHzG.cjs.map} +1 -1
  459. package/dist/{simple-date-field-BXoLb496.mjs → simple-date-field-CVKqIrEs.mjs} +2 -2
  460. package/dist/{simple-date-field-BXoLb496.mjs.map → simple-date-field-CVKqIrEs.mjs.map} +1 -1
  461. package/dist/{simple-email-field-rZZIXu7S.mjs → simple-email-field-98w0846B.mjs} +2 -2
  462. package/dist/{simple-email-field-rZZIXu7S.mjs.map → simple-email-field-98w0846B.mjs.map} +1 -1
  463. package/dist/{simple-email-field-QVUrm8f7.cjs → simple-email-field-DYqCWprP.cjs} +2 -2
  464. package/dist/{simple-email-field-QVUrm8f7.cjs.map → simple-email-field-DYqCWprP.cjs.map} +1 -1
  465. package/dist/{simple-number-field-P9PTwcs4.cjs → simple-number-field-otvv2xq-.cjs} +2 -2
  466. package/dist/{simple-number-field-P9PTwcs4.cjs.map → simple-number-field-otvv2xq-.cjs.map} +1 -1
  467. package/dist/{simple-number-field-PJAyAOMO.mjs → simple-number-field-zF3oqS8d.mjs} +2 -2
  468. package/dist/{simple-number-field-PJAyAOMO.mjs.map → simple-number-field-zF3oqS8d.mjs.map} +1 -1
  469. package/dist/{simple-password-field-BEuFXAsk.mjs → simple-password-field-CuC10c70.mjs} +2 -2
  470. package/dist/{simple-password-field-BEuFXAsk.mjs.map → simple-password-field-CuC10c70.mjs.map} +1 -1
  471. package/dist/{simple-password-field-BW6YkfSP.cjs → simple-password-field-D2UMmghM.cjs} +2 -2
  472. package/dist/{simple-password-field-BW6YkfSP.cjs.map → simple-password-field-D2UMmghM.cjs.map} +1 -1
  473. package/dist/{simple-radio-group-field-BtQHJpOz.cjs → simple-radio-group-field-C2DDfIUs.cjs} +2 -2
  474. package/dist/{simple-radio-group-field-BtQHJpOz.cjs.map → simple-radio-group-field-C2DDfIUs.cjs.map} +1 -1
  475. package/dist/{simple-radio-group-field-DiYQfgts.mjs → simple-radio-group-field-CfziNlLf.mjs} +2 -2
  476. package/dist/{simple-radio-group-field-DiYQfgts.mjs.map → simple-radio-group-field-CfziNlLf.mjs.map} +1 -1
  477. package/dist/{simple-select-field--zJMLBUY.cjs → simple-select-field-CeNnXUHN.cjs} +2 -2
  478. package/dist/{simple-select-field--zJMLBUY.cjs.map → simple-select-field-CeNnXUHN.cjs.map} +1 -1
  479. package/dist/{simple-select-field-Df4DLsbi.mjs → simple-select-field-DIaxhi1-.mjs} +2 -2
  480. package/dist/{simple-select-field-Df4DLsbi.mjs.map → simple-select-field-DIaxhi1-.mjs.map} +1 -1
  481. package/dist/{simple-text-field-zAfkmlhc.mjs → simple-text-field-D8jyznSd.mjs} +2 -2
  482. package/dist/{simple-text-field-zAfkmlhc.mjs.map → simple-text-field-D8jyznSd.mjs.map} +1 -1
  483. package/dist/{simple-text-field-DVkuHrhF.cjs → simple-text-field-LYWVIAfQ.cjs} +2 -2
  484. package/dist/{simple-text-field-DVkuHrhF.cjs.map → simple-text-field-LYWVIAfQ.cjs.map} +1 -1
  485. package/dist/{simple-textarea-field-BaMK0feA.cjs → simple-textarea-field-DcEvaizE.cjs} +2 -2
  486. package/dist/{simple-textarea-field-BaMK0feA.cjs.map → simple-textarea-field-DcEvaizE.cjs.map} +1 -1
  487. package/dist/{simple-textarea-field-q9DeFByl.mjs → simple-textarea-field-p9qX_n7m.mjs} +2 -2
  488. package/dist/{simple-textarea-field-q9DeFByl.mjs.map → simple-textarea-field-p9qX_n7m.mjs.map} +1 -1
  489. package/dist/skeleton-Ct4sYEKk.d.cts +24 -0
  490. package/dist/skeleton-Ct4sYEKk.d.mts +24 -0
  491. package/dist/slider-DwR1MhR8.d.cts +24 -0
  492. package/dist/slider-DwR1MhR8.d.mts +24 -0
  493. package/dist/sonner-B6LxJMYT.d.mts +22 -0
  494. package/dist/sonner-BcNgR0GP.d.cts +22 -0
  495. package/dist/sparkline-chart-TbGzakUl.mjs +2 -0
  496. package/dist/sparkline-chart-TbGzakUl.mjs.map +1 -0
  497. package/dist/sparkline-chart-sPqaJHep.cjs +2 -0
  498. package/dist/sparkline-chart-sPqaJHep.cjs.map +1 -0
  499. package/dist/spinner-CXuqcoB5.d.cts +22 -0
  500. package/dist/spinner-CXuqcoB5.d.mts +22 -0
  501. package/dist/stacked-area-chart-DyxY96_l.cjs +2 -0
  502. package/dist/stacked-area-chart-DyxY96_l.cjs.map +1 -0
  503. package/dist/stacked-area-chart-UIWIxTmq.mjs +2 -0
  504. package/dist/stacked-area-chart-UIWIxTmq.mjs.map +1 -0
  505. package/dist/statistic-8zBJMdRa.d.cts +45 -0
  506. package/dist/statistic-8zBJMdRa.d.mts +45 -0
  507. package/dist/statistic-BUGIRhL9.cjs +2 -0
  508. package/dist/statistic-BUGIRhL9.cjs.map +1 -0
  509. package/dist/statistic-Ug9Zgi3N.mjs +2 -0
  510. package/dist/statistic-Ug9Zgi3N.mjs.map +1 -0
  511. package/dist/status-display-B-6KKttX.mjs +2 -0
  512. package/dist/status-display-B-6KKttX.mjs.map +1 -0
  513. package/dist/status-display-DkI9UwAu.cjs +2 -0
  514. package/dist/status-display-DkI9UwAu.cjs.map +1 -0
  515. package/dist/summary-bar-CZHeAORf.mjs +2 -0
  516. package/dist/summary-bar-CZHeAORf.mjs.map +1 -0
  517. package/dist/summary-bar-DTFVpBZn.cjs +2 -0
  518. package/dist/summary-bar-DTFVpBZn.cjs.map +1 -0
  519. package/dist/switch-9v4AYqJb.d.cts +24 -0
  520. package/dist/switch-9v4AYqJb.d.mts +24 -0
  521. package/dist/{switch-field-B8HVvc2f.mjs → switch-field-CIoNsRWN.mjs} +2 -2
  522. package/dist/{switch-field-B8HVvc2f.mjs.map → switch-field-CIoNsRWN.mjs.map} +1 -1
  523. package/dist/{switch-field-C1uNuuku.cjs → switch-field-n6a5SaEM.cjs} +2 -2
  524. package/dist/{switch-field-C1uNuuku.cjs.map → switch-field-n6a5SaEM.cjs.map} +1 -1
  525. package/dist/systems/google.d.cts +2 -48
  526. package/dist/systems/google.d.mts +2 -48
  527. package/dist/table-Dg2D0v87.d.cts +70 -0
  528. package/dist/table-Dg2D0v87.d.mts +70 -0
  529. package/dist/tables-7aC9WFs9.cjs +2 -0
  530. package/dist/tables-7aC9WFs9.cjs.map +1 -0
  531. package/dist/tables-UikqnT9q.mjs +2 -0
  532. package/dist/tables-UikqnT9q.mjs.map +1 -0
  533. package/dist/tabs-CJ6qZcFU.d.cts +42 -0
  534. package/dist/tabs-CJ6qZcFU.d.mts +42 -0
  535. package/dist/tanstack-form-CNrZQZhn.cjs +2 -0
  536. package/dist/tanstack-form-CNrZQZhn.cjs.map +1 -0
  537. package/dist/tanstack-form-PC9YNeeo.mjs +2 -0
  538. package/dist/tanstack-form-PC9YNeeo.mjs.map +1 -0
  539. package/dist/text-editor-BYE2-G5K.mjs +2 -0
  540. package/dist/text-editor-BYE2-G5K.mjs.map +1 -0
  541. package/dist/text-editor-CfQk5dIx.cjs +2 -0
  542. package/dist/text-editor-CfQk5dIx.cjs.map +1 -0
  543. package/dist/{text-editor-field-CcsR48Jw.mjs → text-editor-field-fso-sw29.mjs} +2 -2
  544. package/dist/{text-editor-field-CcsR48Jw.mjs.map → text-editor-field-fso-sw29.mjs.map} +1 -1
  545. package/dist/{text-editor-field-BBDgCPuc.cjs → text-editor-field-gas5r-xy.cjs} +2 -2
  546. package/dist/{text-editor-field-BBDgCPuc.cjs.map → text-editor-field-gas5r-xy.cjs.map} +1 -1
  547. package/dist/{text-field-qhiYvQKt.mjs → text-field-B67oTV62.mjs} +2 -2
  548. package/dist/{text-field-qhiYvQKt.mjs.map → text-field-B67oTV62.mjs.map} +1 -1
  549. package/dist/{text-field-BhC_ik5w.cjs → text-field-BMo-8rsq.cjs} +2 -2
  550. package/dist/{text-field-BhC_ik5w.cjs.map → text-field-BMo-8rsq.cjs.map} +1 -1
  551. package/dist/textarea-C8ZIZh-y.d.cts +26 -0
  552. package/dist/textarea-C8ZIZh-y.d.mts +26 -0
  553. package/dist/{textarea-field-C-7ZoUMz.cjs → textarea-field-BUGcITwp.cjs} +2 -2
  554. package/dist/{textarea-field-C-7ZoUMz.cjs.map → textarea-field-BUGcITwp.cjs.map} +1 -1
  555. package/dist/{textarea-field-DqDciVSB.mjs → textarea-field-D70rGYIk.mjs} +2 -2
  556. package/dist/{textarea-field-DqDciVSB.mjs.map → textarea-field-D70rGYIk.mjs.map} +1 -1
  557. package/dist/title-BT9guhSU.d.cts +41 -0
  558. package/dist/title-BT9guhSU.d.mts +41 -0
  559. package/dist/toggle-Bh4EazxT.d.cts +30 -0
  560. package/dist/toggle-Bh4EazxT.d.mts +30 -0
  561. package/dist/toggle-button-DNLtfjJC.mjs +2 -0
  562. package/dist/toggle-button-DNLtfjJC.mjs.map +1 -0
  563. package/dist/toggle-button-Dq78v8cH.cjs +2 -0
  564. package/dist/toggle-button-Dq78v8cH.cjs.map +1 -0
  565. package/dist/toggle-group-BpqkL1ds.d.cts +37 -0
  566. package/dist/toggle-group-DzNE38v5.d.mts +37 -0
  567. package/dist/tooltip-B-yLj6pe.mjs +4 -0
  568. package/dist/tooltip-B-yLj6pe.mjs.map +1 -0
  569. package/dist/tooltip-D4U-RhIu.d.cts +53 -0
  570. package/dist/tooltip-D4U-RhIu.d.mts +53 -0
  571. package/dist/tooltip-octglTPf.cjs +4 -0
  572. package/dist/tooltip-octglTPf.cjs.map +1 -0
  573. package/dist/top-products-bar-chart-5EJFSkeo.cjs +2 -0
  574. package/dist/top-products-bar-chart-5EJFSkeo.cjs.map +1 -0
  575. package/dist/top-products-bar-chart-CKYaOGWT.mjs +2 -0
  576. package/dist/top-products-bar-chart-CKYaOGWT.mjs.map +1 -0
  577. package/dist/trash-BfWSqlL4.d.cts +16 -0
  578. package/dist/trash-BfWSqlL4.d.mts +16 -0
  579. package/dist/typography/paragraph.d.cts +2 -46
  580. package/dist/typography/paragraph.d.mts +2 -46
  581. package/dist/typography/title.d.cts +2 -41
  582. package/dist/typography/title.d.mts +2 -41
  583. package/dist/ui/alert-dialog.d.cts +2 -88
  584. package/dist/ui/alert-dialog.d.mts +2 -88
  585. package/dist/ui/aspect-ratio.d.cts +2 -22
  586. package/dist/ui/aspect-ratio.d.mts +2 -22
  587. package/dist/ui/avatar.d.cts +2 -33
  588. package/dist/ui/avatar.d.mts +2 -33
  589. package/dist/ui/badge.d.cts +1 -1
  590. package/dist/ui/badge.d.mts +1 -1
  591. package/dist/ui/breadcrumb.d.cts +2 -69
  592. package/dist/ui/breadcrumb.d.mts +2 -69
  593. package/dist/ui/button-group.d.cts +2 -48
  594. package/dist/ui/button-group.d.mts +2 -48
  595. package/dist/ui/button.d.cts +1 -1
  596. package/dist/ui/button.d.mts +1 -1
  597. package/dist/ui/buttons/add-new.d.cts +2 -16
  598. package/dist/ui/buttons/add-new.d.mts +2 -16
  599. package/dist/ui/buttons/edit.d.cts +2 -16
  600. package/dist/ui/buttons/edit.d.mts +2 -16
  601. package/dist/ui/buttons/refresh.d.cts +2 -16
  602. package/dist/ui/buttons/refresh.d.mts +2 -16
  603. package/dist/ui/buttons/trash.d.cts +2 -16
  604. package/dist/ui/buttons/trash.d.mts +2 -16
  605. package/dist/ui/buttons/upload-image.d.cts +2 -23
  606. package/dist/ui/buttons/upload-image.d.mts +2 -23
  607. package/dist/ui/calendar.d.cts +2 -43
  608. package/dist/ui/calendar.d.mts +2 -43
  609. package/dist/ui/card.d.cts +2 -60
  610. package/dist/ui/card.d.mts +2 -60
  611. package/dist/ui/carousel.d.cts +2 -70
  612. package/dist/ui/carousel.d.mts +2 -70
  613. package/dist/ui/chart.d.cts +2 -80
  614. package/dist/ui/chart.d.mts +2 -80
  615. package/dist/ui/checkbox.d.cts +2 -24
  616. package/dist/ui/checkbox.d.mts +2 -24
  617. package/dist/ui/collapsible.d.cts +2 -32
  618. package/dist/ui/collapsible.d.mts +2 -32
  619. package/dist/ui/command.d.cts +2 -87
  620. package/dist/ui/command.d.mts +2 -87
  621. package/dist/ui/context-menu.d.cts +2 -123
  622. package/dist/ui/context-menu.d.mts +2 -123
  623. package/dist/ui/drawer.d.cts +2 -70
  624. package/dist/ui/drawer.d.mts +2 -70
  625. package/dist/ui/dropdown-menu.d.cts +2 -125
  626. package/dist/ui/dropdown-menu.d.mts +2 -125
  627. package/dist/ui/empty.d.cts +2 -65
  628. package/dist/ui/empty.d.mts +2 -65
  629. package/dist/ui/field.d.cts +1 -1
  630. package/dist/ui/field.d.mts +1 -1
  631. package/dist/ui/file-uploader.d.cts +2 -101
  632. package/dist/ui/file-uploader.d.mts +2 -101
  633. package/dist/ui/form.d.cts +2 -109
  634. package/dist/ui/form.d.mts +2 -109
  635. package/dist/ui/hover-card.d.cts +2 -35
  636. package/dist/ui/hover-card.d.mts +2 -35
  637. package/dist/ui/image.d.cts +2 -27
  638. package/dist/ui/image.d.mts +2 -27
  639. package/dist/ui/input-otp.d.cts +2 -56
  640. package/dist/ui/input-otp.d.mts +2 -56
  641. package/dist/ui/input.d.cts +1 -1
  642. package/dist/ui/input.d.mts +1 -1
  643. package/dist/ui/inputs/search-input.d.cts +2 -27
  644. package/dist/ui/inputs/search-input.d.mts +2 -27
  645. package/dist/ui/item.d.cts +2 -99
  646. package/dist/ui/item.d.mts +2 -99
  647. package/dist/ui/label.d.cts +2 -22
  648. package/dist/ui/label.d.mts +2 -22
  649. package/dist/ui/menubar.d.cts +2 -133
  650. package/dist/ui/menubar.d.mts +2 -133
  651. package/dist/ui/multi-select.d.cts +2 -116
  652. package/dist/ui/multi-select.d.mts +2 -116
  653. package/dist/ui/navigation-menu.d.cts +2 -73
  654. package/dist/ui/navigation-menu.d.mts +2 -73
  655. package/dist/ui/pagination.d.cts +2 -64
  656. package/dist/ui/pagination.d.mts +2 -64
  657. package/dist/ui/popover.d.cts +2 -50
  658. package/dist/ui/popover.d.mts +2 -50
  659. package/dist/ui/progress.d.cts +2 -21
  660. package/dist/ui/progress.d.mts +2 -21
  661. package/dist/ui/radio-group.d.cts +2 -35
  662. package/dist/ui/radio-group.d.mts +2 -35
  663. package/dist/ui/resizable.d.cts +1 -1
  664. package/dist/ui/resizable.d.mts +1 -1
  665. package/dist/ui/scroll-area.d.cts +2 -35
  666. package/dist/ui/scroll-area.d.mts +2 -35
  667. package/dist/ui/select.d.cts +2 -74
  668. package/dist/ui/select.d.mts +2 -74
  669. package/dist/ui/separator.d.cts +2 -32
  670. package/dist/ui/separator.d.mts +2 -32
  671. package/dist/ui/sheet.d.cts +2 -66
  672. package/dist/ui/sheet.d.mts +2 -66
  673. package/dist/ui/skeleton.d.cts +2 -24
  674. package/dist/ui/skeleton.d.mts +2 -24
  675. package/dist/ui/slider.d.cts +2 -24
  676. package/dist/ui/slider.d.mts +2 -24
  677. package/dist/ui/sonner.d.cts +2 -22
  678. package/dist/ui/sonner.d.mts +2 -22
  679. package/dist/ui/spinner.d.cts +2 -22
  680. package/dist/ui/spinner.d.mts +2 -22
  681. package/dist/ui/switch.d.cts +2 -24
  682. package/dist/ui/switch.d.mts +2 -24
  683. package/dist/ui/table.d.cts +2 -70
  684. package/dist/ui/table.d.mts +2 -70
  685. package/dist/ui/tabs.d.cts +2 -42
  686. package/dist/ui/tabs.d.mts +2 -42
  687. package/dist/ui/textarea.d.cts +2 -26
  688. package/dist/ui/textarea.d.mts +2 -26
  689. package/dist/ui/toggle-group.d.cts +2 -37
  690. package/dist/ui/toggle-group.d.mts +2 -37
  691. package/dist/ui/toggle.d.cts +2 -30
  692. package/dist/ui/toggle.d.mts +2 -30
  693. package/dist/ui/tooltip.d.cts +2 -53
  694. package/dist/ui/tooltip.d.mts +2 -53
  695. package/dist/upload-image-D4VZU3IA.d.cts +23 -0
  696. package/dist/upload-image-D4VZU3IA.d.mts +23 -0
  697. package/dist/user-BymzvsYp.mjs +2 -0
  698. package/dist/user-BymzvsYp.mjs.map +1 -0
  699. package/dist/user-CvesQf42.d.cts +20 -0
  700. package/dist/user-CvesQf42.d.mts +20 -0
  701. package/dist/user-Dn53Fu5q.cjs +2 -0
  702. package/dist/user-Dn53Fu5q.cjs.map +1 -0
  703. package/dist/volume-bar-chart-BRpC_8-X.mjs +2 -0
  704. package/dist/volume-bar-chart-BRpC_8-X.mjs.map +1 -0
  705. package/dist/volume-bar-chart-CRxZPZIn.cjs +2 -0
  706. package/dist/volume-bar-chart-CRxZPZIn.cjs.map +1 -0
  707. package/dist/waterfall-chart-CTB2f5eh.cjs +2 -0
  708. package/dist/waterfall-chart-CTB2f5eh.cjs.map +1 -0
  709. package/dist/waterfall-chart-DwetaJFJ.mjs +2 -0
  710. package/dist/waterfall-chart-DwetaJFJ.mjs.map +1 -0
  711. package/package.json +1 -1
  712. package/dist/combobox-field-BGChwajc.mjs +0 -2
  713. package/dist/payment-layout-BLrXT-oc.cjs +0 -2
  714. package/dist/tables-B0Jl8Osc.cjs +0 -4
  715. package/dist/tables-B0Jl8Osc.cjs.map +0 -1
  716. package/dist/tables-Cylalxey.mjs +0 -4
  717. package/dist/tables-Cylalxey.mjs.map +0 -1
  718. package/dist/tanstack-form-CM_Hb3JT.mjs +0 -2
  719. package/dist/tanstack-form-CM_Hb3JT.mjs.map +0 -1
  720. package/dist/tanstack-form-DS_ZvRl8.cjs +0 -2
  721. package/dist/tanstack-form-DS_ZvRl8.cjs.map +0 -1
  722. package/dist/text-editor-BQtIXOpM.mjs +0 -2
  723. package/dist/text-editor-BQtIXOpM.mjs.map +0 -1
  724. package/dist/text-editor-DJYQXXtP.cjs +0 -2
  725. package/dist/text-editor-DJYQXXtP.cjs.map +0 -1
@@ -1,48 +1,2 @@
1
- import { CredentialResponse } from "@react-oauth/google";
2
-
3
- //#region packages/components/systems/google.d.ts
4
- type GoogleProps = {
5
- /** When `true`, the Google One Tap prompt is suppressed and no login dialog is shown. */isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
6
- onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
7
- };
8
- /**
9
- * Headless component that activates Google One Tap login and forwards the credential response.
10
- *
11
- * Must be rendered inside a `GoogleOAuthProvider` (or use the default export {@link ReactOAuth}
12
- * which wraps this component automatically).
13
- *
14
- * @example
15
- * ```tsx
16
- * import { Google } from '@customafk/lunas-ui/systems/google';
17
- *
18
- * // Inside a GoogleOAuthProvider tree
19
- * <Google isDisabled={false} onGoogleLoginSuccess={(cred) => handleLogin(cred)} />
20
- * ```
21
- */
22
- declare const Google: React.FC<GoogleProps>;
23
- type ReactOAuthProps = {
24
- /** Google OAuth 2.0 client ID from the Google Cloud Console. */clientId: string; /** When `true`, the Google One Tap prompt is suppressed. */
25
- isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
26
- onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
27
- };
28
- /**
29
- * Convenience wrapper that provides the `GoogleOAuthProvider` context and mounts the {@link Google}
30
- * One Tap component in a single step.
31
- *
32
- * @example
33
- * ```tsx
34
- * import ReactOAuth from '@customafk/lunas-ui/systems/google';
35
- *
36
- * <ReactOAuth
37
- * clientId="YOUR_GOOGLE_CLIENT_ID"
38
- * isDisabled={false}
39
- * onGoogleLoginSuccess={(cred) => handleLogin(cred)}
40
- * >
41
- * <App />
42
- * </ReactOAuth>
43
- * ```
44
- */
45
- declare const ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>;
46
- //#endregion
47
- export { Google, ReactOAuth as default };
48
- //# sourceMappingURL=google.d.cts.map
1
+ import { n as ReactOAuth, t as Google } from "../google-Bl-jBW8L.cjs";
2
+ export { Google, ReactOAuth as default };
@@ -1,48 +1,2 @@
1
- import { CredentialResponse } from "@react-oauth/google";
2
-
3
- //#region packages/components/systems/google.d.ts
4
- type GoogleProps = {
5
- /** When `true`, the Google One Tap prompt is suppressed and no login dialog is shown. */isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
6
- onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
7
- };
8
- /**
9
- * Headless component that activates Google One Tap login and forwards the credential response.
10
- *
11
- * Must be rendered inside a `GoogleOAuthProvider` (or use the default export {@link ReactOAuth}
12
- * which wraps this component automatically).
13
- *
14
- * @example
15
- * ```tsx
16
- * import { Google } from '@customafk/lunas-ui/systems/google';
17
- *
18
- * // Inside a GoogleOAuthProvider tree
19
- * <Google isDisabled={false} onGoogleLoginSuccess={(cred) => handleLogin(cred)} />
20
- * ```
21
- */
22
- declare const Google: React.FC<GoogleProps>;
23
- type ReactOAuthProps = {
24
- /** Google OAuth 2.0 client ID from the Google Cloud Console. */clientId: string; /** When `true`, the Google One Tap prompt is suppressed. */
25
- isDisabled: boolean; /** Callback invoked with the verified `CredentialResponse` after a successful Google sign-in. */
26
- onGoogleLoginSuccess?: (params: CredentialResponse) => void | Promise<void>;
27
- };
28
- /**
29
- * Convenience wrapper that provides the `GoogleOAuthProvider` context and mounts the {@link Google}
30
- * One Tap component in a single step.
31
- *
32
- * @example
33
- * ```tsx
34
- * import ReactOAuth from '@customafk/lunas-ui/systems/google';
35
- *
36
- * <ReactOAuth
37
- * clientId="YOUR_GOOGLE_CLIENT_ID"
38
- * isDisabled={false}
39
- * onGoogleLoginSuccess={(cred) => handleLogin(cred)}
40
- * >
41
- * <App />
42
- * </ReactOAuth>
43
- * ```
44
- */
45
- declare const ReactOAuth: React.FC<React.PropsWithChildren<ReactOAuthProps>>;
46
- //#endregion
47
- export { Google, ReactOAuth as default };
48
- //# sourceMappingURL=google.d.mts.map
1
+ import { n as ReactOAuth, t as Google } from "../google-Bl-jBW8L.mjs";
2
+ export { Google, ReactOAuth as default };
@@ -0,0 +1,70 @@
1
+ //#region packages/components/ui/table.d.ts
2
+ /**
3
+ * Full-width semantic table with caption-bottom layout, intended to be composed with TableHeader, TableBody, and related sub-components.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * import {
8
+ * Table, TableHeader, TableBody, TableRow,
9
+ * TableHead, TableCell, TableCaption,
10
+ * } from '@customafk/lunas-ui/ui/table';
11
+ *
12
+ * <Table>
13
+ * <TableCaption>Invoice list</TableCaption>
14
+ * <TableHeader>
15
+ * <TableRow>
16
+ * <TableHead>Name</TableHead>
17
+ * <TableHead>Amount</TableHead>
18
+ * </TableRow>
19
+ * </TableHeader>
20
+ * <TableBody>
21
+ * <TableRow>
22
+ * <TableCell>Acme Corp</TableCell>
23
+ * <TableCell>$1,200</TableCell>
24
+ * </TableRow>
25
+ * </TableBody>
26
+ * </Table>
27
+ * ```
28
+ */
29
+ declare const Table: import("react").MemoExoticComponent<({
30
+ className,
31
+ ...props
32
+ }: React.ComponentProps<"table">) => import("react").JSX.Element>;
33
+ /** The `<thead>` element containing one or more header rows. */
34
+ declare const TableHeader: import("react").MemoExoticComponent<({
35
+ className,
36
+ ...props
37
+ }: React.ComponentProps<"thead">) => import("react").JSX.Element>;
38
+ /** The `<tbody>` element containing data rows with hover and selection styling. */
39
+ declare const TableBody: import("react").MemoExoticComponent<({
40
+ className,
41
+ ...props
42
+ }: React.ComponentProps<"tbody">) => import("react").JSX.Element>;
43
+ /** The `<tfoot>` element for summary or aggregate rows at the bottom of the table. */
44
+ declare const TableFooter: import("react").MemoExoticComponent<({
45
+ className,
46
+ ...props
47
+ }: React.ComponentProps<"tfoot">) => import("react").JSX.Element>;
48
+ /** A single `<tr>` row used inside TableHeader, TableBody, or TableFooter. */
49
+ declare const TableRow: import("react").MemoExoticComponent<({
50
+ className,
51
+ ...props
52
+ }: React.ComponentProps<"tr">) => import("react").JSX.Element>;
53
+ /** A `<th>` column header cell with medium-weight text and left alignment. */
54
+ declare const TableHead: import("react").MemoExoticComponent<({
55
+ className,
56
+ ...props
57
+ }: React.ComponentProps<"th">) => import("react").JSX.Element>;
58
+ /** A standard `<td>` data cell used inside a TableRow. */
59
+ declare const TableCell: import("react").MemoExoticComponent<({
60
+ className,
61
+ ...props
62
+ }: React.ComponentProps<"td">) => import("react").JSX.Element>;
63
+ /** An accessible `<caption>` element displayed below the table. */
64
+ declare const TableCaption: import("react").MemoExoticComponent<({
65
+ className,
66
+ ...props
67
+ }: React.ComponentProps<"caption">) => import("react").JSX.Element>;
68
+ //#endregion
69
+ export { TableFooter as a, TableRow as c, TableCell as i, TableBody as n, TableHead as o, TableCaption as r, TableHeader as s, Table as t };
70
+ //# sourceMappingURL=table-Dg2D0v87.d.cts.map
@@ -0,0 +1,70 @@
1
+ //#region packages/components/ui/table.d.ts
2
+ /**
3
+ * Full-width semantic table with caption-bottom layout, intended to be composed with TableHeader, TableBody, and related sub-components.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * import {
8
+ * Table, TableHeader, TableBody, TableRow,
9
+ * TableHead, TableCell, TableCaption,
10
+ * } from '@customafk/lunas-ui/ui/table';
11
+ *
12
+ * <Table>
13
+ * <TableCaption>Invoice list</TableCaption>
14
+ * <TableHeader>
15
+ * <TableRow>
16
+ * <TableHead>Name</TableHead>
17
+ * <TableHead>Amount</TableHead>
18
+ * </TableRow>
19
+ * </TableHeader>
20
+ * <TableBody>
21
+ * <TableRow>
22
+ * <TableCell>Acme Corp</TableCell>
23
+ * <TableCell>$1,200</TableCell>
24
+ * </TableRow>
25
+ * </TableBody>
26
+ * </Table>
27
+ * ```
28
+ */
29
+ declare const Table: import("react").MemoExoticComponent<({
30
+ className,
31
+ ...props
32
+ }: React.ComponentProps<"table">) => import("react").JSX.Element>;
33
+ /** The `<thead>` element containing one or more header rows. */
34
+ declare const TableHeader: import("react").MemoExoticComponent<({
35
+ className,
36
+ ...props
37
+ }: React.ComponentProps<"thead">) => import("react").JSX.Element>;
38
+ /** The `<tbody>` element containing data rows with hover and selection styling. */
39
+ declare const TableBody: import("react").MemoExoticComponent<({
40
+ className,
41
+ ...props
42
+ }: React.ComponentProps<"tbody">) => import("react").JSX.Element>;
43
+ /** The `<tfoot>` element for summary or aggregate rows at the bottom of the table. */
44
+ declare const TableFooter: import("react").MemoExoticComponent<({
45
+ className,
46
+ ...props
47
+ }: React.ComponentProps<"tfoot">) => import("react").JSX.Element>;
48
+ /** A single `<tr>` row used inside TableHeader, TableBody, or TableFooter. */
49
+ declare const TableRow: import("react").MemoExoticComponent<({
50
+ className,
51
+ ...props
52
+ }: React.ComponentProps<"tr">) => import("react").JSX.Element>;
53
+ /** A `<th>` column header cell with medium-weight text and left alignment. */
54
+ declare const TableHead: import("react").MemoExoticComponent<({
55
+ className,
56
+ ...props
57
+ }: React.ComponentProps<"th">) => import("react").JSX.Element>;
58
+ /** A standard `<td>` data cell used inside a TableRow. */
59
+ declare const TableCell: import("react").MemoExoticComponent<({
60
+ className,
61
+ ...props
62
+ }: React.ComponentProps<"td">) => import("react").JSX.Element>;
63
+ /** An accessible `<caption>` element displayed below the table. */
64
+ declare const TableCaption: import("react").MemoExoticComponent<({
65
+ className,
66
+ ...props
67
+ }: React.ComponentProps<"caption">) => import("react").JSX.Element>;
68
+ //#endregion
69
+ export { TableFooter as a, TableRow as c, TableCell as i, TableBody as n, TableHead as o, TableCaption as r, TableHeader as s, Table as t };
70
+ //# sourceMappingURL=table-Dg2D0v87.d.mts.map
@@ -0,0 +1,2 @@
1
+ const e=require("./data-display/statistic.cjs"),t=require("./ui/checkbox.cjs"),n=require("./ui/dropdown-menu.cjs"),r=require("./ui/spinner.cjs"),i=require("./ui/resizable.cjs");let a=require("lucide-react"),o=require("react"),s=require("@customafk/react-toolkit/utils"),c=require("class-variance-authority"),l=require("react/jsx-runtime"),u=require("@tanstack/react-table");const d=()=>(0,l.jsxs)(`div`,{className:`flex gap-0 text-text-positive-weak`,children:[(0,l.jsx)(a.MinusIcon,{size:16}),(0,l.jsx)(a.MinusIcon,{size:16})]}),f=(0,o.createContext)(null),p=()=>{let e=(0,o.use)(f);if(!e)throw Error(`useTableInnerWrapperContext must be used within a TableInnerWrapperProvider`);return e},m=(0,o.createContext)(null),h=()=>{let e=(0,o.use)(m);if(!e)throw Error(`useTableInnerTableContext must be used within a TableInnerTableProvider`);return e},g=(0,o.createContext)(null),_=()=>{let e=(0,o.use)(g);if(!e)throw Error(`useTableHeaderRowContext must be used within a TableHeaderRowProvider`);return e},v=(0,o.createContext)(null),y=()=>{let e=(0,o.use)(v);if(!e)throw Error(`useTableBodyContext must be used within a TableBodyProvider`);return e},b=(0,o.createContext)(null),x=()=>{let e=(0,o.use)(b);if(!e)throw Error(`useTableRowContext must be used within a TableRowProvider`);return e},ee=(0,o.createContext)(null),S=()=>{let e=(0,o.use)(ee);if(!e)throw Error(`useTableContext must be used within a TableProvider`);return e},te=(0,o.createContext)(null),ne=()=>{let e=(0,o.use)(te);if(!e)throw Error(`useUITableFilterContext must be used within a UITableProvider`);return e},re=(0,o.createContext)(null),C=()=>{let e=(0,o.use)(re);if(!e)throw Error(`useUITableAnalysisContext must be used within a UITableProvider`);return e},w=(0,c.cva)([`absolute right-2 z-10 p-0.5 opacity-0 bg-card`,`cursor-pointer rounded-full transition-all`,`text-text-positive-weak`,`[&>svg]:size-4`,`group-hover:opacity-100`,`hover:bg-muted-muted hover:text-text-positive`]),T=(0,c.cva)([`sticky left-0 flex flex-1 items-center justify-center bg-transparent text-text-positive-weak opacity-100`]),E=(0,c.cva)([`relative m-0 flex size-full flex-col flex-nowrap items-start justify-start gap-2`]),ie=(0,c.cva)([`relative w-full flex-1 min-h-0 overflow-auto border-b border-b-border border-l border-l-border`]),ae=(0,c.cva)([`grid w-full table-fixed caption-bottom border-collapse border-spacing-0 flex-col content-start`]),oe=(0,c.cva)([`sticky top-0 z-40 h-9 w-full`,`grid select-none bg-white`,`border-b border-b-border shadow`,`font-medium text-[13px] text-text-positive-weak`,`[&_tr:not(:last-child)_td]:border-b`,`[&_th]:inline-flex`,`[&_th]:bg-card`,`[&_th]:items-center`,`[&_th]:transition-all`,`[&_th]:duration-300`,`[&_th]:whitespace-nowrap`,`[&_th]:border-border`,`[&_th]:border-r`,`[&_th]:first:border-l-0`,`[&_tr_th:not([data-pinned=false])]:bg-card`]),D=(0,c.cva)([`flex`]),se=(0,c.cva)([`group flex`],{variants:{isPinned:{left:`sticky`,right:`sticky`,false:`relative`},isActions:{true:`border-r-0!`,false:``},isLastCell:{true:``,false:``},isFirstCell:{true:``,false:``},position:{start:`justify-start`,center:`justify-center`,end:`justify-end`}},compoundVariants:[{isPinned:`left`,isLastCell:!0,className:`border-r border-r-border`},{isPinned:`right`,isFirstCell:!0,className:`border-l border-l-border`}]}),O=(0,c.cva)([`relative w-full`,`[&_tr]:flex`,`[&_tr]:flex-none`,`[&_tr]:w-full`,`[&_tr]:cursor-pointer [&_tr]:focus:outline-none`,`[&_tr]:border-b [&_tr]:border-b-border`,`[&_td]:z-10`,`[&_td]:transition-all`,`[&_td]:flex`,`[&_td]:flex-none`,`[&_td]:overflow-hidden`,`[&_td]:whitespace-nowrap`,`[&_td]:px-4`,`[&_td]:py-2.5`,`[&_td]:align-middle`,`[&_td]:border-border`,`[&_td]:data-[selected=true]:bg-muted-muted!`,`[&_td]:data-[selected=true]:hover:bg-muted-muted!`,`[&_td>div]:inline-flex`,`[&_td>div]:items-center`,`[&_td>div]:w-full`,`[&_td:not([data-pinned=false])]:z-20`,`[&_td:not([data-pinned=false])]:sticky`,`[&_td:not([data-pinned=false])]:bg-muted-bg-subtle`]),k=(0,c.cva)([`group transition-colors hover:bg-muted-muted hover:[&_td]:bg-muted-muted! [&_td]:border-r [&_td]:border-r-border`]),A=(0,c.cva)([`group-hover:bg-muted-muted!`],{variants:{isPinned:{left:`sticky`,right:`sticky`,false:`relative`}},defaultVariants:{isPinned:void 0}}),j=(0,c.cva)([`sticky border-r-0! inset-y-0 right-0 z-30 flex items-center pr-4 group-hover:bg-muted-muted!`]),M=(0,c.cva)([`group-hover:bg-muted-muted!`],{variants:{isPinned:{left:``,right:``,false:``},isLastCell:{true:``,false:``},isFirstCell:{true:``,false:``}},compoundVariants:[{isPinned:`left`,isLastCell:!0,className:`border-r border-r-border`},{isPinned:`right`,isFirstCell:!0,className:`border-l border-l-border`}]}),N=(0,c.cva)([`overflow-x-hidden`],{variants:{position:{start:`justify-start`,center:`justify-center`,end:`justify-end`}},defaultVariants:{position:`start`}}),P=(0,c.cva)([`shrink-0 flex w-full justify-center border-t border-border-weak font-medium`]),F=(0,c.cva)([`flex w-full`,`text-[13px] font-medium text-text-positive-weak`]),I=(0,c.cva)([`flex flex-none items-center overflow-hidden whitespace-nowrap px-4 py-2`,`border-r border-r-border`],{variants:{isPinned:{left:`sticky z-20 bg-white`,right:`sticky z-20 bg-white`,false:`relative`},isFirstCell:{true:`border-l border-l-border`,false:``},isLastCell:{true:`border-r border-r-border`,false:``}}}),ce=(0,c.cva)([`flex cursor-pointer gap-x-0.5`],{variants:{state:{idle:`text-text-positive-weak hover:text-text-positive`,fetching:`cursor-not-allowed`,error:`text-danger hover:text-danger-strong`}},defaultVariants:{state:`idle`}}),L=(0,o.memo)(({className:e,children:t,...n})=>{let{isFetching:r,isRefetching:i,isEmpty:a}=y();return a||r||i?null:(0,l.jsx)(`tbody`,{slot:`table-body`,className:(0,s.cn)(O(),e),...n,children:t})});L.displayName=`UITableBody`;const R=(0,o.memo)(({isPinned:e=!1,isFirstCell:t=!1,isLastCell:n=!1,colId:r,position:i=`start`,column:a,getContext:s,...c})=>{let{innerTableId:d,table:f}=h(),p=(0,o.useRef)(null),m=(0,o.useRef)(null),g=(0,o.useMemo)(()=>{let t=a?.getStart(`left`);return e===`left`&&typeof t==`number`?`${t}px`:void 0},[e,a]),_=(0,o.useMemo)(()=>{let t=a?.getAfter(`right`);return e===`right`&&typeof t==`number`?`${t}px`:void 0},[e,a]),v=(0,o.useMemo)(()=>`calc(var(--col-${r}-size) * 1px)`,[r]),y=(0,o.useMemo)(()=>a?.columnDef.minSize?`calc(var(--col-${r}-minSize) * 1px)`:void 0,[r,a]),b=(0,o.useMemo)(()=>a?.columnDef.maxSize?`calc(var(--col-${r}-maxSize) * 1px)`:void 0,[r,a]),x=(0,o.useMemo)(()=>(0,u.flexRender)(a?.columnDef.cell,s()),[a,s]);return(0,o.useEffect)(()=>{p.current=document.querySelector(`table[id="${d}"]`)},[d]),(0,o.useEffect)(()=>{if(!m.current)return;let e=m.current.scrollWidth,t=a?.getSize();t!=null&&e>t&&p.current instanceof HTMLTableElement&&typeof r==`string`&&a?.columnDef.meta?.fitContent&&f.setColumnSizing(t=>({...t,[r]:e+32}))},[r,a,f]),(0,l.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":e,"data-lastcell":n||void 0,"data-firstcell":t||void 0,style:{left:g,right:_,width:v,minWidth:y,maxWidth:b},className:M({isPinned:e||void 0,isLastCell:n,isFirstCell:t}),...c,children:(0,l.jsx)(`div`,{ref:m,slot:`table-body-cell-inner`,className:N({position:i}),children:x})})});R.displayName=`UITableCell`;const z=(0,o.memo)(({column:e,getContext:t,className:n,...r})=>{let i=(0,o.useMemo)(()=>(0,u.flexRender)(e?.columnDef.cell,t()),[e,t]);return(0,l.jsx)(`td`,{"data-col":`actions`,className:j(),...r,children:i})});z.displayName=`UITableCellActions`;const B=(0,o.memo)(({isPinned:e,isSelected:n=!1,className:r,onToggleRowSelected:i,...a})=>{let c=(0,o.useCallback)(e=>{i?.(!!e)},[i]);return(0,l.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:(0,s.cn)(A({isPinned:e}),r),...a,children:(0,l.jsx)(`div`,{"data-slot":`table-cell-inner`,className:`flex! w-full! items-center justify-center bg-transparent text-center align-middle`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:(0,l.jsx)(t.Checkbox,{"aria-label":`Select Row`,checked:n,onCheckedChange:c})})})});B.displayName=`UITableCellSelect`;const V=(0,o.memo)(()=>{let{table:e,isFetching:t,isRefetching:n,loadingDisplayRow:r=3}=S();return!t&&!n?null:(0,l.jsx)(`tbody`,{className:(0,s.cn)(O(),`pointer-events-none`),children:Array.from({length:r}).map((t,n)=>(0,l.jsx)(`tr`,{"data-slot":`table-row`,"data-index":n,className:(0,s.cn)(k(),`animate-pulse relative!`),children:e.getAllColumns().map((t,r)=>{let i=t.getIsPinned(),a=t.getStart(`left`),o=t.getAfter(`right`);return t.id===`actions`?(0,l.jsx)(`td`,{"data-slot":`table-body-cell`,"data-col":t.id,"data-cell":r,style:{width:60},className:j(),children:(0,l.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})},`${t.id}-${r}`):t.id===`select`?(0,l.jsx)(`td`,{"data-slot":`table-body-cell`,"data-col":t.id,"data-cell":r,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:A({isPinned:`left`}),children:(0,l.jsx)(`div`,{className:`w-full flex justify-center`,children:(0,l.jsx)(`div`,{className:`size-4 bg-muted-muted rounded-full`})})},`${t.id}-${n}`):(0,l.jsx)(`td`,{"data-col":t.id,"data-cell":r,"data-selected":void 0,"data-lastcell":t.id===e.getAllColumns()[e.getAllColumns().length-1].id||void 0,"data-firstcell":t.id===e.getAllColumns()[0].id||void 0,style:{zIndex:i?20:0,left:i===`left`&&typeof a==`number`?`${a}px`:void 0,right:i===`right`&&typeof o==`number`?`${o}px`:void 0,width:`calc(var(--col-${t.id}-size) * 1px)`,minWidth:t.columnDef.minSize?`calc(var(--col-${t.id}-minSize) * 1px)`:void 0,maxWidth:t.columnDef.maxSize?`calc(var(--col-${t.id}-maxSize) * 1px)`:void 0},className:M({isPinned:t.getIsPinned(),isFirstCell:t.id===e.getRightHeaderGroups()[0]?.headers[0]?.id,isLastCell:t.id===e.getLeftHeaderGroups()[0]?.headers[e.getLeftHeaderGroups()[0].headers.length-1]?.id}),children:(0,l.jsx)(`div`,{className:N({position:t.columnDef.meta?.position??`start`}),children:(0,l.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})})},`${t.id}-${r}`)})},n))})}),H=(0,o.memo)(()=>{let{isEmpty:e,emptyDisplayHeight:t}=S();return e?(0,l.jsx)(l.Fragment,{children:e&&(0,l.jsx)(`div`,{className:T(),style:{minHeight:t??`24rem`},children:(0,l.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,l.jsx)(a.BoxIcon,{strokeWidth:1,size:48}),(0,l.jsx)(`p`,{children:`Không có dữ liệu`})]})})}):null});H.displayName=`UITableEmptyDisplay`;const U=(0,o.memo)(({className:e,children:t,...n})=>(0,l.jsx)(`div`,{slot:`table-footer`,className:(0,s.cn)(P(),e),...n,children:t}));U.displayName=`UITableFooter`;function le(e,t,n){switch(n){case`count`:return e;case`sum`:return t.reduce((e,t)=>e+t,0);case`avg`:return t.length===0?0:t.reduce((e,t)=>e+t,0)/t.length;case`min`:return t.length===0?0:Math.min(...t);case`max`:return t.length===0?0:Math.max(...t)}}function W(e,t){return e.map(e=>{let n=e.getValue(t);return typeof n==`string`?Number(n):typeof n==`number`?n:NaN}).filter(e=>!Number.isNaN(e))}const G=(0,o.memo)(()=>{let{table:t}=S(),{rowSelectionState:n}=y(),r=(0,o.useMemo)(()=>t.getHeaderGroups()[0]?.headers??[],[t.getHeaderGroups()]),i=(0,o.useMemo)(()=>r.some(e=>e.column.columnDef.meta?.aggregation),[r]),a=(0,o.useMemo)(()=>t.getSelectedRowModel().flatRows,[t,n]),c=(0,o.useMemo)(()=>t.getRowModel().rows,[t]),u=a.length>0?a:c,d=(0,o.useMemo)(()=>{let e={};for(let t of r){let n=t.column.columnDef.meta?.aggregation;if(!n)continue;let r=W(u,t.id);e[t.id]=le(u.length,r,n.type)}return e},[r,u]),f=t.getState().columnPinning,p=f.left??[],m=f.right??[],h=r.find(e=>m.includes(e.id))?.id,g=[...r].reverse().find(e=>p.includes(e.id))?.id;if(!i)return null;let _=a.length>0?`${a.length}`:`${c.length}`;return(0,l.jsx)(`div`,{slot:`table-footer-row`,className:F(),children:r.map(t=>{let n=t.id,r=p.includes(n)?`left`:m.includes(n)?`right`:!1,i=n===h,a=n===g,o=r===`left`?`${t.column.getStart(`left`)}px`:void 0,c=r===`right`?`${t.column.getAfter(`right`)}px`:void 0;if(n===`select`)return(0,l.jsx)(`div`,{slot:`table-footer-select`,"data-pinned":`left`,style:{left:`0px`,width:`60px`},className:(0,s.cn)(I({isPinned:`left`,isFirstCell:!1,isLastCell:!1}),`justify-center`),children:(0,l.jsx)(`span`,{className:`truncate text-[11px] items-center text-text-positive-weak`,children:_})},n);if(n===`actions`)return(0,l.jsx)(`div`,{slot:`table-footer-actions`,style:{width:`calc(var(--col-${n}-size) * 1px)`,right:`0px`},className:I({isPinned:!1,isFirstCell:!1,isLastCell:!1})},n);let u=t.column.columnDef.meta?.aggregation,f=d[n]??null;return(0,l.jsx)(`div`,{slot:`table-footer-cell`,"data-pinned":r,style:{left:o,right:c,width:`calc(var(--col-${n}-size) * 1px)`},className:I({isPinned:r||`left`,isFirstCell:i,isLastCell:a}),children:u&&f!==null?(0,l.jsx)(e.Statistic,{value:f,prefix:u.prefix,suffix:u.suffix,precision:u.precision,size:`sm`}):(0,l.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`})},n)})})});G.displayName=`UITableFooterRow`;const K=(0,o.memo)(({className:e,children:t,...n})=>(0,l.jsx)(`thead`,{slot:`table-head`,className:(0,s.cn)(oe(),e),...n,children:t}));K.displayName=`UITableHead`;const q=(0,o.memo)(({isPinned:e,onLeftPin:t,onRightPin:r,onUnpin:i,className:c})=>{let u=(0,o.useCallback)(()=>{t?.(`left`)},[t]),d=(0,o.useCallback)(()=>{r?.(`right`)},[r]),f=(0,o.useCallback)(()=>{i?.(!1)},[i]);return(0,l.jsxs)(n.DropdownMenu,{children:[(0,l.jsx)(n.DropdownMenuTrigger,{asChild:!0,children:(0,l.jsx)(`button`,{type:`button`,className:(0,s.cn)(w(),c),children:(0,l.jsx)(a.EllipsisVerticalIcon,{})})}),(0,l.jsx)(n.DropdownMenuContent,{align:`end`,className:`w-64 p-4`,children:(0,l.jsxs)(n.DropdownMenuGroup,{className:`*:data-[slot=dropdown-menu-item]:rounded-xs *:data-[slot=dropdown-menu-item]:p-2`,children:[(0,l.jsx)(o.Activity,{mode:e?`visible`:`hidden`,children:(0,l.jsxs)(n.DropdownMenuItem,{onClick:f,children:[!!e&&`Bỏ ghim`,(0,l.jsx)(n.DropdownMenuShortcut,{children:(0,l.jsx)(a.PinOffIcon,{className:`size-4`})})]})}),(0,l.jsxs)(o.Activity,{mode:e?`hidden`:`visible`,children:[(0,l.jsxs)(n.DropdownMenuItem,{onClick:u,children:[e?`Bỏ ghim`:`Ghim trái`,(0,l.jsx)(n.DropdownMenuShortcut,{children:(0,l.jsx)(a.MoveLeftIcon,{className:`size-4`})})]}),(0,l.jsxs)(n.DropdownMenuItem,{onClick:d,children:[e?`Bỏ ghim`:`Ghim phải`,(0,l.jsx)(n.DropdownMenuShortcut,{children:(0,l.jsx)(a.MoveRightIcon,{className:`size-4`})})]})]})]})})]})});q.displayName=`UITableHeadCellOption`;const J=(0,o.memo)(({isVisible:e=!0,isPinned:t=!1,isFirstCell:n=!1,isLastCell:r=!1,isOptionsVisible:i=!0,headerId:a,headerColumn:c,className:u,children:d,onColumnPin:f,onToggleVisibility:p,...m})=>{let h=c?.columnDef.meta?.position;return(0,l.jsxs)(`th`,{slot:`table-head-cell`,"data-pinned":t,"data-header":a,style:{zIndex:(0,o.useMemo)(()=>t?20:void 0,[t]),left:(0,o.useMemo)(()=>{let e=c?.getStart?.(`left`);return t===`left`&&typeof e==`number`?`${e}px`:void 0},[t,c]),right:(0,o.useMemo)(()=>{let e=c?.getAfter?.(`right`);return t===`right`&&typeof e==`number`?`${e}px`:void 0},[t,c]),width:(0,o.useMemo)(()=>`calc(var(--header-${a}-size) * 1px)`,[a]),minWidth:(0,o.useMemo)(()=>c?.columnDef.minSize?`calc(var(--col-${a}-minSize) * 1px)`:void 0,[a,c]),maxWidth:(0,o.useMemo)(()=>c?.columnDef.maxSize?`calc(var(--col-${a}-maxSize) * 1px)`:void 0,[a,c])},className:(0,s.cn)(se({isPinned:t||`false`,isActions:a===`actions`,isLastCell:r,isFirstCell:n,position:h}),u),...m,children:[(0,l.jsx)(`div`,{className:`truncate px-4`,children:d}),i&&(0,l.jsx)(q,{isPinned:t,isVisible:e,onLeftPin:f,onRightPin:f,onUnpin:f})]})});J.displayName=`UITableHeadCell`;const Y=(0,o.memo)(({isPinned:e,isAllRowsSelected:n,style:r,onToggleAllRowsSelected:i,...a})=>{let s=(0,o.useCallback)(e=>{i?.(!!e)},[i]);return(0,l.jsx)(`th`,{slot:`table-header-cell`,"data-pinned":!0,style:{left:0,zIndex:40,width:60,maxWidth:60},className:A({isPinned:e}),...a,children:(0,l.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:(0,l.jsx)(t.Checkbox,{"aria-label":`Select All Rows`,checked:n,onCheckedChange:s})})})});Y.displayName=`UITableHeadCellSelect`;const X=(0,o.memo)(({headerGroup:e,className:t,...n})=>{let{isAllRowsSelected:r,columnPinningState:i,leftPinnedHeaders:a,rightPinnedHeaders:o,onToggleAllRowsSelected:c}=_(),d=o[0]?.id,f=a[a.length-1]?.id;return(0,l.jsx)(`tr`,{slot:`table-head-row`,className:(0,s.cn)(D(),t),...n,children:e.headers.map((e,t)=>{let n=e.column.getIsVisible(),a=i.left?.includes(e.id)?`left`:i.right?.includes(e.id)?`right`:!1;return e.id===`select`?(0,l.jsx)(Y,{isPinned:a,isAllRowsSelected:r,onToggleAllRowsSelected:c},e.id):(0,l.jsx)(J,{isVisible:n,isPinned:a,isFirstCell:e.id===d,isLastCell:e.id===f,isOptionsVisible:![`select`,`actions`].includes(e.id),headerId:e.id,headerColumn:e.column,colSpan:e.colSpan,onColumnPin:e.column.pin,onToggleVisibility:e.column.toggleVisibility,children:(0,u.flexRender)(e.column.columnDef.header,e.getContext())},`${e.id}-${t}`)})})});X.displayName=`UITableHeadRow`;const Z=(0,o.memo)(({children:e,...t})=>{let{table:n,innerTableId:r,totalSize:i}=h(),a=(0,o.useRef)(null);return(0,o.useEffect)(()=>{if(!a.current)return;let e=n.getFlatHeaders(),t,r=new ResizeObserver(r=>{t!==void 0&&cancelAnimationFrame(t),t=requestAnimationFrame(()=>{let t=r[0];if(!t)return;let i=t.target;if(!(i instanceof HTMLTableElement))return;let a=t.contentRect.width,{left:o=[],right:s=[]}=n.getState().columnPinning,c=0,l=0,u=0,d=e.map(e=>{let{id:t}=e,n=t===`select`||t===`actions`,r=o.includes(t)||s.includes(t),i=e.getSize(),a=e.column.columnDef.maxSize;return n?(c+=60,{id:t,isFlex:!1,width:60}):r?(c+=i,{id:t,isFlex:!1,width:i}):e.column.columnDef.size||i!==150?(u+=i,{id:t,isFlex:!1,width:i}):(l++,{id:t,isFlex:!0,maxSize:a})}),f=a-c-u,p=l>0?Math.max(0,Math.floor(f/l)):0,m=i.closest(`[data-slot="table-scroll-host"]`);d.forEach(e=>{if(e.isFlex){let t=e.maxSize?Math.min(p,e.maxSize):p;i.style.setProperty(`--header-${e.id}-size`,`${t}`),i.style.setProperty(`--col-${e.id}-size`,`${t}`),m?.style.setProperty(`--col-${e.id}-size`,`${t}`),e.maxSize&&i.style.setProperty(`--col-${e.id}-maxSize`,`${e.maxSize}`)}else i.style.setProperty(`--header-${e.id}-size`,`${e.width}`),i.style.setProperty(`--col-${e.id}-size`,`${e.width}`),m?.style.setProperty(`--col-${e.id}-size`,`${e.width}`)})})});return r.observe(a.current),()=>{t!==void 0&&cancelAnimationFrame(t),r.disconnect()}},[n.getState().columnSizingInfo,n.getState().columnSizing,n.getState().columnPinning]),(0,l.jsx)(`table`,{id:r,ref:a,slot:`table-inner-table`,className:ae(),style:{minWidth:i},...t,children:e})});Z.displayName=`UITableInnerTable`;const Q=(0,o.memo)(({children:e,...t})=>{let{innerWrapperId:n}=p();return(0,l.jsx)(`div`,{id:n,slot:`table-inner-wrapper`,className:ie(),...t,children:e})});Q.displayName=`UITableInnerWrapper`;const ue=(0,o.memo)(({fetchMoreData:e})=>{let{innerWrapperId:t}=p(),[n,i]=(0,o.useState)(`idle`),[s,c]=(0,o.useState)(0),u=(0,o.useCallback)(async()=>{try{i(`fetching`),await e?.(),i(`idle`)}catch(e){console.error(`Error fetching more data:`,e),i(`error`)}},[e]);return(0,o.useEffect)(()=>{let e=document.querySelector(`div[id="${t}"]`);if(!e)return;let n=new ResizeObserver(e=>{c(e[0].contentRect.width)});return n.observe(e),()=>n.disconnect()},[t]),e?(0,l.jsx)(`tr`,{className:`sticky! left-0 h-10`,style:{width:s},children:(0,l.jsx)(`td`,{className:`absolute left-0 flex w-full items-center justify-center text-xs`,children:(0,l.jsxs)(`button`,{type:`button`,disabled:n===`fetching`,className:ce({state:n}),onClick:u,children:[n===`idle`&&(0,l.jsx)(a.ChevronDown,{className:`size-4`}),n===`fetching`&&(0,l.jsx)(r.Spinner,{className:`size-4 animate-spin`}),n===`error`&&(0,l.jsx)(a.AlertTriangle,{className:`size-4 text-danger`}),n===`idle`&&`Tải thêm`,n===`fetching`&&`Đang tải...`,n===`error`&&`Lỗi! Thử lại?`]})})}):null});ue.displayName=`UITableLoadMore`;const de=(0,o.memo)(({row:e,isSelected:t,rowIndex:n,children:r,...i})=>{let{keyOfClickRow:a,isAllRowsSelected:s,columnPinningState:c,leftPinnedHeaders:u,rightPinnedHeaders:d,onClickRow:f}=x(),p=(0,o.useMemo)(()=>c.left??[],[c]),m=(0,o.useMemo)(()=>c.right??[],[c]),h=(0,o.useMemo)(()=>d?.[0]?.id,[d]),g=(0,o.useMemo)(()=>u?.[u.length-1]?.id,[u]),_=(0,o.useMemo)(()=>e.getVisibleCells().some(e=>e.column.id===`select`),[e]),v=(0,o.useCallback)(t=>{if(f){let t=a?e.original?.[a]:void 0;f(n,typeof t==`string`||typeof t==`number`?t:void 0)}else _&&e.toggleSelected();t.preventDefault(),t.stopPropagation()},[a,f,e,n,_]);return(0,l.jsx)(`tr`,{slot:`table-row`,"data-index":n,className:k(),onClick:v,...i,children:e.getVisibleCells().map((e,r)=>{let i=p.includes(e.column.id),a=m.includes(e.column.id),o=i?`left`:a?`right`:!1;return e.column.id===`actions`?(0,l.jsx)(z,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,column:e.column,getContext:e.getContext},`${e.id}-${r}`):e.column.id===`select`?(0,l.jsx)(B,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:o,isSelected:s||t,onToggleRowSelected:e.row.toggleSelected},`${e.id}-${r}`):(0,l.jsx)(R,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:o,isFirstCell:e.column.id===h,isLastCell:e.column.id===g,colId:e.column.id,position:e.column.columnDef.meta?.position??`start`,column:e.column,getContext:e.getContext},`${e.id}-${r}`)})})});de.displayName=`UITableRow`;const fe=(0,o.memo)(({className:e,children:t,...n})=>(0,l.jsx)(`div`,{slot:`table-wrapper`,className:(0,s.cn)(E(),e),...n,children:t}));fe.displayName=`UITableWrapper`;const pe=({children:e})=>{let{table:t,fetchMoreData:n}=S(),{rowSelectionState:r}=y(),{rows:a}=t.getRowModel();return(0,l.jsxs)(i.ResizablePanelGroup,{direction:`horizontal`,style:{direction:t.options.columnResizeDirection},className:`relative flex w-full max-w-full flex-1 gap-1 overflow-auto border-t border-t-border border-r border-r-border p-0 text-sm`,children:[(0,l.jsx)(i.ResizablePanel,{"data-slot":`table-scroll-host`,className:`relative flex flex-col`,children:(0,l.jsxs)(Q,{children:[(0,l.jsxs)(Z,{children:[(0,l.jsx)(K,{children:t.getHeaderGroups().map(e=>(0,l.jsx)(X,{headerGroup:e},e.id))}),(0,l.jsxs)(L,{children:[a.map((e,t)=>(0,l.jsx)(de,{row:e,isSelected:r[e.id]===!0,rowIndex:t},e.id)),n&&(0,l.jsx)(ue,{fetchMoreData:n})]}),(0,l.jsx)(V,{})]}),(0,l.jsx)(H,{})]})}),e&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.ResizableHandle,{}),e]})]})};function me(e){switch(e){case`tag`:return{type:`tag`,values:[]};case`single-tag`:return{type:`single-tag`,value:null};case`date-range`:return{type:`date-range`};case`number`:return{type:`number`,operator:`eq`};case`text`:return{type:`text`,operator:`contains`,value:``};case`boolean`:return{type:`boolean`,value:null}}}const he=(0,o.memo)(({innerWrapperId:e,children:t})=>{let n=(0,o.useMemo)(()=>({innerWrapperId:e}),[e]);return(0,l.jsx)(f.Provider,{value:n,children:t})});he.displayName=`UITableInnerWrapperProvider`;const ge=(0,o.memo)(({table:e,innerTableId:t,totalSize:n,children:r})=>{let i=(0,o.useMemo)(()=>({table:e,innerTableId:t,totalSize:n}),[e,t,n]);return(0,l.jsx)(m.Provider,{value:i,children:r})});ge.displayName=`UITableInnerTableProvider`;const _e=(0,o.memo)(({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i,children:a})=>{let s=(0,o.useMemo)(()=>({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i}),[e,t,n,r,i]);return(0,l.jsx)(g.Provider,{value:s,children:a})});_e.displayName=`UITableHeadRowProvider`;const ve=(0,o.memo)(({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r,children:i})=>{let a=(0,o.useMemo)(()=>({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r}),[e,n,r]);return(0,l.jsx)(v.Provider,{value:a,children:i})});ve.displayName=`UITableBodyProvider`;const ye=(0,o.memo)(({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a,children:s})=>{let c=(0,o.useMemo)(()=>({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a}),[e,t,n,r,i,a]);return(0,l.jsx)(b.Provider,{value:c,children:s})});ye.displayName=`UITableRowProvider`;const be=({title:e,isFetching:t=!1,isRefetching:n=!1,isLoading:r=!1,loadingDisplayRow:i=3,data:a,columns:s,totalRows:c,leftPinnedColumns:d=[],rightPinnedColumns:f=[],keyOfClickRow:p,onClickRow:m,onRowSelection:h,onColumnPinning:g,fetchMoreData:_,emptyDisplayHeight:v,csvData:y,csvFileName:b,filterDefinitions:x=[],onFilterChange:S,summary:ne=[],onSummaryItemClick:C,showAnalysisPanel:w=!1,description:T,headerActions:E,children:ie})=>{let ae=(0,o.useId)(),oe=(0,o.useId)(),[D,se]=(0,o.useState)(!1),[O,k]=(0,o.useState)({}),[A,j]=(0,o.useState)({right:f,left:[`select`,...d]}),[M,N]=(0,o.useState)({}),[P,F]=(0,o.useState)([]),I=(0,o.useCallback)(e=>(k(e),h?.(e instanceof Function?e(O):e),e),[O,h]),ce=(0,o.useCallback)(e=>{j(e),g?.(e instanceof Function?e(A):e)},[A,g]),L=(0,o.useCallback)(e=>{let t=x.find(t=>t.id===e);if(!t)return;let n={id:`${e}-${crypto.randomUUID()}`,definitionId:e,value:me(t.type)};F(e=>{let t=[...e,n];return S?.(t),t})},[x,S]),R=(0,o.useCallback)(e=>{F(t=>{let n=t.filter(t=>t.id!==e);return S?.(n),n})},[S]),z=(0,o.useCallback)((e,t)=>{F(n=>{let r=n.map(n=>n.id===e?{...n,value:t}:n);return S?.(r),r})},[S]),B=(0,o.useMemo)(()=>({filterDefinitions:x,activeFilters:P,addFilter:L,removeFilter:R,updateFilter:z}),[x,P,L,R,z]),V=(0,u.useReactTable)({data:a,columns:s,state:{rowSelection:O,columnPinning:A,expanded:M},defaultColumn:{enableResizing:!1,size:void 0,minSize:void 0,maxSize:void 0},columnResizeMode:`onChange`,columnResizeDirection:`ltr`,enableColumnPinning:!0,enableRowSelection:!0,enableColumnResizing:!0,enableMultiRowSelection:!0,autoResetAll:!1,autoResetExpanded:!1,autoResetPageIndex:!1,getSubRows:e=>e.subRows,getCoreRowModel:(0,u.getCoreRowModel)(),getGroupedRowModel:(0,u.getGroupedRowModel)(),getExpandedRowModel:(0,u.getExpandedRowModel)(),onRowSelectionChange:I,onColumnPinningChange:ce,onExpandedChange:N}),H=(0,o.useMemo)(()=>{let{rows:e}=V.getRowModel();return e},[V.getRowModel().rows,V.getState().columnPinning]),U=(0,o.useMemo)(()=>!t&&!n&&H.length===0,[H,t,n]),le=(0,o.useMemo)(()=>({title:e,table:V,isEmpty:U,isFetching:t,isRefetching:n,isLoading:r,loadingDisplayRow:i,totalRows:c,fetchMoreData:_,emptyDisplayHeight:v,csvData:y,csvFileName:b,summary:ne,onSummaryItemClick:C,showAnalysisPanel:w,description:T,headerActions:E}),[e,V,U,n,t,r,i,c,_,v,V.getState().columnPinning,V.getState().expanded,y,b,ne,C,w,T,E]),W=(0,o.useMemo)(()=>V.getState(),[V.getState()]),G=(0,o.useMemo)(()=>V.getIsAllRowsSelected(),[V.getIsAllRowsSelected()]),K=(0,o.useMemo)(()=>W.rowSelection,[W.rowSelection]),q=(0,o.useMemo)(()=>W.columnPinning,[W.columnPinning]),J=(0,o.useMemo)(()=>V.getLeftHeaderGroups()[0]?.headers||[],[V.getState().columnPinning]),Y=(0,o.useMemo)(()=>V.getRightHeaderGroups()[0]?.headers||[],[V.getState().columnPinning]),X=(0,o.useMemo)(()=>V.getTotalSize(),[V.getTotalSize()]),Z=(0,o.useCallback)(()=>se(e=>!e),[]),Q=(0,o.useMemo)(()=>({isOpen:D,toggle:Z}),[D,Z]);return(0,l.jsx)(re.Provider,{value:Q,children:(0,l.jsx)(te.Provider,{value:B,children:(0,l.jsx)(ee.Provider,{value:le,children:(0,l.jsx)(he,{innerWrapperId:ae,children:(0,l.jsx)(ge,{table:V,innerTableId:oe,totalSize:X,children:(0,l.jsx)(_e,{isAllRowsSelected:G,columnPinningState:q,leftPinnedHeaders:J,rightPinnedHeaders:Y,onToggleAllRowsSelected:V.toggleAllRowsSelected,children:(0,l.jsx)(ve,{isFetching:t,isRefetching:n,isEmpty:U,rowSelectionState:K,children:(0,l.jsx)(ye,{keyOfClickRow:p,isAllRowsSelected:G,columnPinningState:q,leftPinnedHeaders:J,rightPinnedHeaders:Y,onClickRow:m,children:ie})})})})})})})})};function $(e){let t=(0,o.lazy)(e);return e=>(0,l.jsx)(o.Suspense,{fallback:null,children:(0,l.jsx)(t,{...e})})}const xe=$(()=>Promise.resolve().then(()=>require("./avatar-name-display-CLi1DJUs.cjs")).then(e=>({default:e.UITableAvatarNameDisplay}))),Se=$(()=>Promise.resolve().then(()=>require("./badge-display-9WXwgQgH.cjs")).then(e=>({default:e.UITableBadgeDisplay}))),Ce=$(()=>Promise.resolve().then(()=>require("./boolean-display-pmzYS-ND.cjs")).then(e=>({default:e.UITableBooleanDisplay}))),we=$(()=>Promise.resolve().then(()=>require("./currency-display-B91H66HM.cjs")).then(e=>({default:e.UITableCurrencyDisplay}))),Te=$(()=>Promise.resolve().then(()=>require("./date-display-odcC9NcB.cjs")).then(e=>({default:e.UITableDateDisplay}))),Ee=$(()=>Promise.resolve().then(()=>require("./description-display-CKe0j3q-.cjs")).then(e=>({default:e.UITableDescriptionDisplay}))),De=$(()=>Promise.resolve().then(()=>require("./edit-button-0_FLZoT3.cjs")).then(e=>({default:e.UITableEditButton}))),Oe=$(()=>Promise.resolve().then(()=>require("./email-display-BLt60GQ1.cjs")).then(e=>({default:e.UITableEmailDisplay}))),ke=$(()=>Promise.resolve().then(()=>require("./list-display-DEU6yFa9.cjs")).then(e=>({default:e.UITableListDisplay}))),Ae=$(()=>Promise.resolve().then(()=>require("./more-button-RYvZgYiu.cjs")).then(e=>({default:e.UITableMoreButton}))),je=$(()=>Promise.resolve().then(()=>require("./name-display-B6X52ip_.cjs")).then(e=>({default:e.UITableNameDisplay}))),Me=$(()=>Promise.resolve().then(()=>require("./permalink-DeeEKhfc.cjs")).then(e=>({default:e.UITablePermalink}))),Ne=$(()=>Promise.resolve().then(()=>require("./phone-number-DhThJwd6.cjs")).then(e=>({default:e.UITablePhoneNumberDisplay}))),Pe=$(()=>Promise.resolve().then(()=>require("./progress-display-Bp0xVhln.cjs")).then(e=>({default:e.UITableProgressDisplay}))),Fe=$(()=>Promise.resolve().then(()=>require("./remove-button-B3qFw-M5.cjs")).then(e=>({default:e.UITableRemoveButton}))),Ie=$(()=>Promise.resolve().then(()=>require("./statistic-BUGIRhL9.cjs")).then(e=>({default:e.UITableStatisticDisplay}))),Le=$(()=>Promise.resolve().then(()=>require("./status-display-DkI9UwAu.cjs")).then(e=>({default:e.UITableStatusDisplay}))),Re=$(()=>Promise.resolve().then(()=>require("./toggle-button-Dq78v8cH.cjs")).then(e=>({default:e.UITableToggleButton}))),ze=$(()=>Promise.resolve().then(()=>require("./user-Dn53Fu5q.cjs")).then(e=>({default:e.UITableUserDataDisplay}))),Be=$(()=>Promise.resolve().then(()=>require("./filter-Cmg6SHMu.cjs")).then(e=>({default:e.UITableFilter}))),Ve=$(()=>Promise.resolve().then(()=>require("./analysis-panel-DzsZKA9l.cjs")).then(e=>({default:e.UITableAnalysisPanel}))),He=$(()=>Promise.resolve().then(()=>require("./summary-bar-DTFVpBZn.cjs")).then(e=>({default:e.UITableSummaryBar}))),Ue=$(()=>Promise.resolve().then(()=>require("./tooltip-octglTPf.cjs")).then(e=>({default:e.UITableTooltip}))),We=$(()=>Promise.resolve().then(()=>require("./tooltip-octglTPf.cjs")).then(e=>({default:e.UITableTooltipFilter}))),Ge=$(()=>Promise.resolve().then(()=>require("./tooltip-octglTPf.cjs")).then(e=>({default:e.UITableTooltipActions})));Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"J",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"Y",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"q",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return U}});
2
+ //# sourceMappingURL=tables-7aC9WFs9.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables-7aC9WFs9.cjs","names":["MinusIcon","Checkbox","BoxIcon","Statistic","DropdownMenu","DropdownMenuTrigger","EllipsisVerticalIcon","DropdownMenuContent","DropdownMenuGroup","Activity","DropdownMenuItem","DropdownMenuShortcut","PinOffIcon","MoveLeftIcon","MoveRightIcon","Checkbox","ChevronDown","Spinner","AlertTriangle","ResizablePanelGroup","ResizablePanel","ResizableHandle","Suspense"],"sources":["../packages/components/features/tables/components/atoms/empty.tsx","../packages/components/features/tables/hooks/use-context.ts","../packages/components/features/tables/components/table.variants.ts","../packages/components/features/tables/components/commons/body.tsx","../packages/components/features/tables/components/commons/cell.tsx","../packages/components/features/tables/components/commons/cell-actions.tsx","../packages/components/features/tables/components/commons/cell-select.tsx","../packages/components/features/tables/components/commons/empty-display.tsx","../packages/components/features/tables/components/commons/footer.tsx","../packages/components/features/tables/components/commons/footer-row.tsx","../packages/components/features/tables/components/commons/head.tsx","../packages/components/features/tables/components/commons/head-cell-option.tsx","../packages/components/features/tables/components/commons/head-cell.tsx","../packages/components/features/tables/components/commons/head-cell-select.tsx","../packages/components/features/tables/components/commons/head-row.tsx","../packages/components/features/tables/components/commons/inner-table.tsx","../packages/components/features/tables/components/commons/inner-wrapper.tsx","../packages/components/features/tables/components/commons/load-more.tsx","../packages/components/features/tables/components/commons/row.tsx","../packages/components/features/tables/components/commons/wrapper.tsx","../packages/components/features/tables/components/table.tsx","../packages/components/features/tables/components/table/provider.tsx","../packages/components/features/tables/index.tsx"],"sourcesContent":["import { MinusIcon } from 'lucide-react';\n\n/**\n * Renders a double-dash placeholder used across table atom components to\n * indicate that a cell has no data to display.\n *\n * @example\n * import { UITableEmpty } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableEmpty />\n */\nexport const UITableEmpty: React.FC = () => {\n return (\n <div className=\"flex gap-0 text-text-positive-weak\">\n <MinusIcon size={16} />\n <MinusIcon size={16} />\n </div>\n );\n};\n","import { createContext, use } from 'react';\n\nimport type { AnyEntity } from '@/types';\nimport type {\n TTableAnalysisContext,\n TTableBodyContext,\n TTableContext,\n TTableFilterContext,\n TTableHeadRowContext,\n TTableInnerTableContext,\n TTableInnerWrapperContext,\n TTableRowContext,\n} from '../types';\n\nexport const TableInnerWrapperContext = createContext<TTableInnerWrapperContext | null>(null);\n\nexport const useUITableInnerWrapperContext = () => {\n const ctx = use(TableInnerWrapperContext);\n if (!ctx) {\n throw new Error('useTableInnerWrapperContext must be used within a TableInnerWrapperProvider');\n }\n return ctx;\n};\n\nexport const TableInnerTableContext = createContext<TTableInnerTableContext | null>(null);\n\nexport const useUITableInnerTableContext = () => {\n const ctx = use(TableInnerTableContext);\n if (!ctx) {\n throw new Error('useTableInnerTableContext must be used within a TableInnerTableProvider');\n }\n return ctx;\n};\n\nexport const TableHeadRowContext = createContext<TTableHeadRowContext | null>(null);\n\nexport const useUITableHeadRowContext = () => {\n const ctx = use(TableHeadRowContext);\n if (!ctx) {\n throw new Error('useTableHeaderRowContext must be used within a TableHeaderRowProvider');\n }\n return ctx;\n};\n\nexport const TableBodyContext = createContext<TTableBodyContext | null>(null);\n\nexport const useUITableBodyContext = () => {\n const ctx = use(TableBodyContext);\n if (!ctx) {\n throw new Error('useTableBodyContext must be used within a TableBodyProvider');\n }\n return ctx;\n};\n\nexport const TableRowContext = createContext<TTableRowContext<AnyEntity, AnyEntity> | null>(null);\n\nexport const useUITableRowContext = () => {\n const ctx = use(TableRowContext);\n if (!ctx) {\n throw new Error('useTableRowContext must be used within a TableRowProvider');\n }\n return ctx;\n};\n\nexport const TableContext = createContext<TTableContext<AnyEntity> | null>(null);\n\nexport const useUITableContext = () => {\n const context = use(TableContext);\n if (!context) {\n throw new Error('useTableContext must be used within a TableProvider');\n }\n return context;\n};\n\nexport const TableFilterContext = createContext<TTableFilterContext | null>(null);\n\nexport const useUITableFilterContext = () => {\n const ctx = use(TableFilterContext);\n if (!ctx) {\n throw new Error('useUITableFilterContext must be used within a UITableProvider');\n }\n return ctx;\n};\n\nexport const TableAnalysisContext = createContext<TTableAnalysisContext | null>(null);\n\nexport const useUITableAnalysisContext = () => {\n const ctx = use(TableAnalysisContext);\n if (!ctx) {\n throw new Error('useUITableAnalysisContext must be used within a UITableProvider');\n }\n return ctx;\n};\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const tableHeadCellOptionTriggerVariants = cva([\n 'absolute right-2 z-10 p-0.5 opacity-0 bg-card',\n 'cursor-pointer rounded-full transition-all',\n 'text-text-positive-weak',\n '[&>svg]:size-4',\n 'group-hover:opacity-100',\n 'hover:bg-muted-muted hover:text-text-positive',\n]);\n\nexport const tableEmptyDisplayVariants = cva(['sticky left-0 flex flex-1 items-center justify-center bg-transparent text-text-positive-weak opacity-100']);\n\nexport const tableWrapperVariants = cva(['relative m-0 flex size-full flex-col flex-nowrap items-start justify-start gap-2']);\n\nexport const tableInnerWrapperVariants = cva(['relative w-full flex-1 min-h-0 overflow-auto border-b border-b-border border-l border-l-border']);\n\nexport const tableInnerTableVariants = cva(['grid w-full table-fixed caption-bottom border-collapse border-spacing-0 flex-col content-start']);\n\nexport const tableHeadVariants = cva([\n 'sticky top-0 z-40 h-9 w-full',\n 'grid select-none bg-white',\n 'border-b border-b-border shadow',\n 'font-medium text-[13px] text-text-positive-weak',\n '[&_tr:not(:last-child)_td]:border-b',\n '[&_th]:inline-flex',\n '[&_th]:bg-card',\n '[&_th]:items-center',\n '[&_th]:transition-all',\n '[&_th]:duration-300',\n '[&_th]:whitespace-nowrap',\n '[&_th]:border-border',\n '[&_th]:border-r',\n '[&_th]:first:border-l-0',\n '[&_tr_th:not([data-pinned=false])]:bg-card',\n]);\n\nexport const tableHeadRowVariants = cva(['flex']);\n\nexport const tableHeadCellVariants = cva(['group flex'], {\n variants: {\n isPinned: {\n left: 'sticky',\n right: 'sticky',\n false: 'relative',\n },\n isActions: {\n true: 'border-r-0!',\n false: '',\n },\n isLastCell: {\n true: '',\n false: '',\n },\n isFirstCell: {\n true: '',\n false: '',\n },\n position: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n },\n },\n compoundVariants: [\n { isPinned: 'left', isLastCell: true, className: 'border-r border-r-border' },\n { isPinned: 'right', isFirstCell: true, className: 'border-l border-l-border' },\n ],\n});\n\nexport const tableBodyVariants = cva([\n 'relative w-full',\n '[&_tr]:flex',\n '[&_tr]:flex-none',\n '[&_tr]:w-full',\n '[&_tr]:cursor-pointer [&_tr]:focus:outline-none',\n '[&_tr]:border-b [&_tr]:border-b-border',\n '[&_td]:z-10',\n '[&_td]:transition-all',\n '[&_td]:flex',\n '[&_td]:flex-none',\n '[&_td]:overflow-hidden',\n '[&_td]:whitespace-nowrap',\n '[&_td]:px-4',\n '[&_td]:py-2.5',\n '[&_td]:align-middle',\n '[&_td]:border-border',\n '[&_td]:data-[selected=true]:bg-muted-muted!',\n '[&_td]:data-[selected=true]:hover:bg-muted-muted!',\n '[&_td>div]:inline-flex',\n '[&_td>div]:items-center',\n '[&_td>div]:w-full',\n '[&_td:not([data-pinned=false])]:z-20',\n '[&_td:not([data-pinned=false])]:sticky',\n '[&_td:not([data-pinned=false])]:bg-muted-bg-subtle',\n]);\n\nexport const tableRowVariants = cva(['group transition-colors hover:bg-muted-muted hover:[&_td]:bg-muted-muted! [&_td]:border-r [&_td]:border-r-border']);\n\nexport const tableCellSelectVariants = cva(['group-hover:bg-muted-muted!'], {\n variants: {\n isPinned: {\n left: 'sticky',\n right: 'sticky',\n false: 'relative',\n },\n },\n defaultVariants: {\n isPinned: undefined,\n },\n});\n\nexport const tableCellActionsVariants = cva(['sticky border-r-0! inset-y-0 right-0 z-30 flex items-center pr-4 group-hover:bg-muted-muted!']);\n\nexport const tableCellVariants = cva(['group-hover:bg-muted-muted!'], {\n variants: {\n isPinned: {\n left: '',\n right: '',\n false: '',\n },\n isLastCell: {\n true: '',\n false: '',\n },\n isFirstCell: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n { isPinned: 'left', isLastCell: true, className: 'border-r border-r-border' },\n { isPinned: 'right', isFirstCell: true, className: 'border-l border-l-border' },\n ],\n});\n\nexport const tableCellInnerVariants = cva(['overflow-x-hidden'], {\n variants: {\n position: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n },\n },\n defaultVariants: {\n position: 'start',\n },\n});\n\nexport const tableFooterVariants = cva(['shrink-0 flex w-full justify-center border-t border-border-weak font-medium']);\n\nexport const tableFooterRowVariants = cva(['flex w-full', 'text-[13px] font-medium text-text-positive-weak']);\n\nexport const tableFooterCellVariants = cva(['flex flex-none items-center overflow-hidden whitespace-nowrap px-4 py-2', 'border-r border-r-border'], {\n variants: {\n isPinned: {\n left: 'sticky z-20 bg-white',\n right: 'sticky z-20 bg-white',\n false: 'relative',\n },\n isFirstCell: { true: 'border-l border-l-border', false: '' },\n isLastCell: { true: 'border-r border-r-border', false: '' },\n },\n});\n\nexport const tableLoadMoreButtonVariants = cva(['flex cursor-pointer gap-x-0.5'], {\n variants: {\n state: {\n idle: 'text-text-positive-weak hover:text-text-positive',\n fetching: 'cursor-not-allowed',\n error: 'text-danger hover:text-danger-strong',\n },\n },\n defaultVariants: {\n state: 'idle',\n },\n});\n\nexport type TableHeadCellVariantProps = VariantProps<typeof tableHeadCellVariants>;\nexport type TableCellSelectVariantProps = VariantProps<typeof tableCellSelectVariants>;\nexport type TableCellVariantProps = VariantProps<typeof tableCellVariants>;\nexport type TableCellInnerVariantProps = VariantProps<typeof tableCellInnerVariants>;\nexport type TableLoadMoreButtonVariantProps = VariantProps<typeof tableLoadMoreButtonVariants>;\n","'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { useUITableBodyContext } from '../../hooks/use-context';\nimport type { TUITableBody } from '../../types';\nimport { tableBodyVariants } from '../table.variants';\n\nexport const UITableBody = memo<TUITableBody>(({ className, children, ...props }) => {\n const { isFetching, isRefetching, isEmpty } = useUITableBodyContext();\n if (isEmpty || isFetching || isRefetching) return null;\n return (\n <tbody slot=\"table-body\" className={cn(tableBodyVariants(), className)} {...props}>\n {children}\n </tbody>\n );\n});\nUITableBody.displayName = 'UITableBody';\n","'use client';\nimport { memo, useEffect, useMemo, useRef } from 'react';\n\nimport { flexRender } from '@tanstack/react-table';\n\nimport type { AnyEntity } from '@/types';\n\nimport { useUITableInnerTableContext } from '../../hooks/use-context';\nimport type { TUITableCell } from '../../types';\nimport { tableCellInnerVariants, tableCellVariants } from '../table.variants';\n\nexport const UITableCell = memo<TUITableCell>(\n ({ isPinned = false, isFirstCell = false, isLastCell = false, colId, position = 'start', column, getContext, ...props }) => {\n const { innerTableId, table } = useUITableInnerTableContext();\n const tableRef = useRef<HTMLTableElement | null>(null);\n const cellRef = useRef<HTMLDivElement>(null);\n\n const left = useMemo(() => {\n const axis = column?.getStart('left');\n return isPinned === 'left' && typeof axis === 'number' ? `${axis}px` : undefined;\n }, [isPinned, column]);\n\n const right = useMemo(() => {\n const axis = column?.getAfter('right');\n return isPinned === 'right' && typeof axis === 'number' ? `${axis}px` : undefined;\n }, [isPinned, column]);\n\n const width = useMemo(() => {\n return `calc(var(--col-${colId}-size) * 1px)`;\n }, [colId]);\n\n const minSize = useMemo(() => {\n return column?.columnDef.minSize ? `calc(var(--col-${colId}-minSize) * 1px)` : undefined;\n }, [colId, column]);\n\n const maxSize = useMemo(() => {\n return column?.columnDef.maxSize ? `calc(var(--col-${colId}-maxSize) * 1px)` : undefined;\n }, [colId, column]);\n\n const render = useMemo(() => {\n return flexRender(column?.columnDef.cell, getContext());\n }, [column, getContext]);\n\n useEffect(() => {\n tableRef.current = document.querySelector(`table[id=\"${innerTableId}\"]`);\n }, [innerTableId]);\n\n useEffect(() => {\n if (!cellRef.current) return;\n\n const width = cellRef.current.scrollWidth;\n const currentSize = column?.getSize();\n\n if (currentSize != null && width > currentSize) {\n if (tableRef.current instanceof HTMLTableElement && typeof colId === 'string' && (column?.columnDef.meta as AnyEntity)?.['fitContent']) {\n table.setColumnSizing(old => ({\n ...old,\n [colId]: width + 32,\n }));\n }\n }\n }, [colId, column, table]);\n\n return (\n <td\n slot=\"table-body-cell\"\n data-pinned={isPinned}\n data-lastcell={isLastCell || undefined}\n data-firstcell={isFirstCell || undefined}\n style={{ left, right, width, minWidth: minSize, maxWidth: maxSize }}\n className={tableCellVariants({ isPinned: isPinned || undefined, isLastCell, isFirstCell })}\n {...props}\n >\n <div ref={cellRef} slot=\"table-body-cell-inner\" className={tableCellInnerVariants({ position })}>\n {render}\n </div>\n </td>\n );\n }\n);\nUITableCell.displayName = 'UITableCell';\n","'use client';\nimport { memo, useMemo } from 'react';\n\nimport { flexRender } from '@tanstack/react-table';\n\nimport type { TUITableCellActions } from '../../types';\nimport { tableCellActionsVariants } from '../table.variants';\n\nexport const UITableCellActions = memo<TUITableCellActions>(({ column, getContext, className, ...props }) => {\n const render = useMemo(() => {\n return flexRender(column?.columnDef.cell, getContext());\n }, [column, getContext]);\n return (\n <td data-col=\"actions\" className={tableCellActionsVariants()} {...props}>\n {render}\n </td>\n );\n});\nUITableCellActions.displayName = 'UITableCellActions';\n","'use client';\nimport { memo, useCallback } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Checkbox } from '@/components/ui/checkbox';\n\nimport { PINNED_COLUMN_Z_INDEX, SELECT_WIDTH } from '../../constants';\nimport type { TUITableCellSelect } from '../../types';\nimport { tableCellSelectVariants } from '../table.variants';\n\nexport const UITableCellSelect = memo<TUITableCellSelect>(({ isPinned, isSelected = false, className, onToggleRowSelected, ...props }) => {\n const handleToggleRowSelected = useCallback(\n (value: boolean | 'indeterminate') => {\n onToggleRowSelected?.(!!value);\n },\n [onToggleRowSelected]\n );\n return (\n <td\n slot=\"table-body-cell\"\n data-pinned={true}\n style={{ left: 0, zIndex: PINNED_COLUMN_Z_INDEX, width: SELECT_WIDTH, maxWidth: SELECT_WIDTH }}\n className={cn(tableCellSelectVariants({ isPinned }), className)}\n {...props}\n >\n <div\n data-slot=\"table-cell-inner\"\n className=\"flex! w-full! items-center justify-center bg-transparent text-center align-middle\"\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Checkbox aria-label=\"Select Row\" checked={isSelected} onCheckedChange={handleToggleRowSelected} />\n </div>\n </td>\n );\n});\nUITableCellSelect.displayName = 'UITableCellSelect';\n","'use client';\nimport { memo } from 'react';\n\nimport { BoxIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { useUITableContext } from '../../hooks/use-context';\nimport type { TUITableEmptyDisplay } from '../../types';\nimport {\n tableBodyVariants,\n tableCellActionsVariants,\n tableCellInnerVariants,\n tableCellSelectVariants,\n tableCellVariants,\n tableEmptyDisplayVariants,\n tableRowVariants,\n} from '../table.variants';\nimport { PINNED_COLUMN_Z_INDEX, SELECT_WIDTH } from '../../constants';\nimport type { AnyEntity } from '@/types';\n\nexport const UITableLoadingDisplay = memo<TUITableEmptyDisplay>(() => {\n const { table, isFetching, isRefetching, loadingDisplayRow = 3 } = useUITableContext();\n if (!isFetching && !isRefetching) return null;\n return (\n <tbody className={cn(tableBodyVariants(), 'pointer-events-none')}>\n {Array.from({ length: loadingDisplayRow }).map((_, index) => (\n <tr key={index} data-slot=\"table-row\" data-index={index} className={cn(tableRowVariants(), 'animate-pulse relative!')}>\n {table.getAllColumns().map((column, _index) => {\n const isPinned = column.getIsPinned();\n const leftAxis = column.getStart('left');\n const rightAxis = column.getAfter('right');\n if (column.id === 'actions') {\n return (\n <td\n key={`${column.id}-${_index}`}\n data-slot=\"table-body-cell\"\n data-col={column.id}\n data-cell={_index}\n style={{\n width: 60,\n }}\n className={tableCellActionsVariants()}\n >\n <div className=\"w-full h-4 bg-muted-muted rounded-full\" />\n </td>\n );\n }\n if (column.id === 'select') {\n return (\n <td\n key={`${column.id}-${index}`}\n data-slot=\"table-body-cell\"\n data-col={column.id}\n data-cell={_index}\n data-pinned={true}\n style={{\n left: 0,\n zIndex: 20,\n width: SELECT_WIDTH,\n maxWidth: SELECT_WIDTH,\n }}\n className={tableCellSelectVariants({ isPinned: 'left' })}\n >\n <div className=\"w-full flex justify-center\">\n <div className=\"size-4 bg-muted-muted rounded-full\" />\n </div>\n </td>\n );\n }\n return (\n <td\n key={`${column.id}-${_index}`}\n data-col={column.id}\n data-cell={_index}\n data-selected={undefined}\n data-lastcell={column.id === table.getAllColumns()[table.getAllColumns().length - 1].id || undefined}\n data-firstcell={column.id === table.getAllColumns()[0].id || undefined}\n style={{\n zIndex: isPinned ? PINNED_COLUMN_Z_INDEX : 0,\n left: isPinned === 'left' && typeof leftAxis === 'number' ? `${leftAxis}px` : undefined,\n right: isPinned === 'right' && typeof rightAxis === 'number' ? `${rightAxis}px` : undefined,\n width: `calc(var(--col-${column.id}-size) * 1px)`,\n minWidth: column.columnDef.minSize ? `calc(var(--col-${column.id}-minSize) * 1px)` : undefined,\n maxWidth: column.columnDef.maxSize ? `calc(var(--col-${column.id}-maxSize) * 1px)` : undefined,\n }}\n className={tableCellVariants({\n isPinned: column.getIsPinned(),\n isFirstCell: column.id === table.getRightHeaderGroups()[0]?.headers[0]?.id,\n isLastCell: column.id === table.getLeftHeaderGroups()[0]?.headers[table.getLeftHeaderGroups()[0].headers.length - 1]?.id,\n })}\n >\n <div\n className={tableCellInnerVariants({\n position: (column.columnDef.meta as AnyEntity)?.position ?? 'start',\n })}\n >\n <div className=\"w-full h-4 bg-muted-muted rounded-full\" />\n </div>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n );\n});\n\nexport const UITableEmptyDisplay = memo<TUITableEmptyDisplay>(() => {\n const { isEmpty, emptyDisplayHeight } = useUITableContext();\n if (!isEmpty) return null;\n return (\n <>\n {isEmpty && (\n <div className={tableEmptyDisplayVariants()} style={{ minHeight: emptyDisplayHeight ?? '24rem' }}>\n <div className=\"flex flex-col items-center gap-1\">\n <BoxIcon strokeWidth={1} size={48} />\n <p>Không có dữ liệu</p>\n </div>\n </div>\n )}\n </>\n );\n});\nUITableEmptyDisplay.displayName = 'UITableEmptyDisplay';\n","'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport type { TUITableFooter } from '../../types';\nimport { tableFooterVariants } from '../table.variants';\n\nexport const UITableFooter = memo<TUITableFooter>(({ className, children, ...props }) => {\n return (\n <div slot=\"table-footer\" className={cn(tableFooterVariants(), className)} {...props}>\n {children}\n </div>\n );\n});\nUITableFooter.displayName = 'UITableFooter';\n","'use client';\nimport { memo, useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Statistic } from '@/components/data-display/statistic';\nimport type { AnyEntity } from '@/types';\nimport { SELECT_WIDTH } from '../../constants';\nimport { useUITableBodyContext, useUITableContext } from '../../hooks/use-context';\nimport type { ColumnAggregation, ColumnAggregationType } from '../../types';\nimport { tableFooterCellVariants, tableFooterRowVariants } from '../table.variants';\n\nfunction computeAggregation(rowCount: number, values: number[], type: ColumnAggregationType): number {\n switch (type) {\n case 'count':\n return rowCount;\n case 'sum':\n return values.reduce((a, b) => a + b, 0);\n case 'avg':\n return values.length === 0 ? 0 : values.reduce((a, b) => a + b, 0) / values.length;\n case 'min':\n return values.length === 0 ? 0 : Math.min(...values);\n case 'max':\n return values.length === 0 ? 0 : Math.max(...values);\n }\n}\n\nfunction extractNumericValues(rows: { getValue: (id: string) => unknown }[], colId: string): number[] {\n return rows\n .map(r => {\n const v = r.getValue(colId);\n const n = typeof v === 'string' ? Number(v) : typeof v === 'number' ? v : NaN;\n return n;\n })\n .filter(n => !Number.isNaN(n));\n}\n\nexport const UITableFooterRow = memo(() => {\n const { table } = useUITableContext();\n const { rowSelectionState } = useUITableBodyContext();\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table header groups\n const headers = useMemo(() => table.getHeaderGroups()[0]?.headers ?? [], [table.getHeaderGroups()]);\n\n const hasAggregation = useMemo(() => headers.some(h => (h.column.columnDef.meta as AnyEntity)?.aggregation), [headers]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: selected rows\n const selectedRows = useMemo(() => table.getSelectedRowModel().flatRows, [table, rowSelectionState]);\n\n const allRows = useMemo(() => table.getRowModel().rows, [table]);\n\n const activeRows = selectedRows.length > 0 ? selectedRows : allRows;\n\n const aggregatedValues = useMemo(() => {\n const result: Record<string, number | null> = {};\n for (const header of headers) {\n const agg = (header.column.columnDef.meta as AnyEntity)?.aggregation as ColumnAggregation | undefined;\n if (!agg) continue;\n const values = extractNumericValues(activeRows, header.id);\n result[header.id] = computeAggregation(activeRows.length, values, agg.type);\n }\n return result;\n }, [headers, activeRows]);\n\n const columnPinningState = table.getState().columnPinning;\n const leftPinnedIds = columnPinningState.left ?? [];\n const rightPinnedIds = columnPinningState.right ?? [];\n const firstRightPinnedId = headers.find(h => rightPinnedIds.includes(h.id))?.id;\n const lastLeftPinnedId = [...headers].reverse().find(h => leftPinnedIds.includes(h.id))?.id;\n\n if (!hasAggregation) return null;\n\n const rowCountLabel = selectedRows.length > 0 ? `${selectedRows.length}` : `${allRows.length}`;\n\n return (\n <div slot=\"table-footer-row\" className={tableFooterRowVariants()}>\n {headers.map(header => {\n const colId = header.id;\n const isPinned = leftPinnedIds.includes(colId) ? ('left' as const) : rightPinnedIds.includes(colId) ? ('right' as const) : (false as const);\n const isFirstCell = colId === firstRightPinnedId;\n const isLastCell = colId === lastLeftPinnedId;\n\n const left = isPinned === 'left' ? `${header.column.getStart('left')}px` : undefined;\n const right = isPinned === 'right' ? `${header.column.getAfter('right')}px` : undefined;\n\n if (colId === 'select') {\n return (\n <div\n key={colId}\n slot=\"table-footer-select\"\n data-pinned=\"left\"\n style={{ left: '0px', width: `${SELECT_WIDTH}px` }}\n className={cn(tableFooterCellVariants({ isPinned: 'left', isFirstCell: false, isLastCell: false }), 'justify-center')}\n >\n <span className=\"truncate text-[11px] items-center text-text-positive-weak\">{rowCountLabel}</span>\n </div>\n );\n }\n\n if (colId === 'actions') {\n return (\n <div\n key={colId}\n slot=\"table-footer-actions\"\n style={{ width: `calc(var(--col-${colId}-size) * 1px)`, right: '0px' }}\n className={tableFooterCellVariants({ isPinned: false, isFirstCell: false, isLastCell: false })}\n />\n );\n }\n\n const aggregation = (header.column.columnDef.meta as AnyEntity)?.aggregation as ColumnAggregation | undefined;\n const aggregatedValue = aggregatedValues[colId] ?? null;\n\n return (\n <div\n key={colId}\n slot=\"table-footer-cell\"\n data-pinned={isPinned}\n style={{\n left,\n right,\n width: `calc(var(--col-${colId}-size) * 1px)`,\n }}\n className={tableFooterCellVariants({ isPinned: isPinned || 'left', isFirstCell, isLastCell })}\n >\n {aggregation && aggregatedValue !== null ? (\n <Statistic value={aggregatedValue} prefix={aggregation.prefix} suffix={aggregation.suffix} precision={aggregation.precision} size=\"sm\" />\n ) : (\n <span className=\"text-text-positive-weak\">—</span>\n )}\n </div>\n );\n })}\n </div>\n );\n});\nUITableFooterRow.displayName = 'UITableFooterRow';\n","'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport type { TUITableHead } from '../../types';\nimport { tableHeadVariants } from '../table.variants';\n\nexport const UITableHead = memo<TUITableHead>(({ className, children, ...props }) => {\n return (\n <thead slot=\"table-head\" className={cn(tableHeadVariants(), className)} {...props}>\n {children}\n </thead>\n );\n});\nUITableHead.displayName = 'UITableHead';\n","'use client';\nimport { Activity, memo, useCallback } from 'react';\n\nimport { EllipsisVerticalIcon, MoveLeftIcon, MoveRightIcon, PinOffIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\n\nimport type { TUITableHeadCellOption } from '../../types';\nimport { tableHeadCellOptionTriggerVariants } from '../table.variants';\n\nexport const UITableHeadCellOption = memo<TUITableHeadCellOption>(({ isPinned, onLeftPin, onRightPin, onUnpin, className }) => {\n const handleLeftPin = useCallback(() => {\n onLeftPin?.('left');\n }, [onLeftPin]);\n\n const handleRightPin = useCallback(() => {\n onRightPin?.('right');\n }, [onRightPin]);\n\n const handleUnpin = useCallback(() => {\n onUnpin?.(false);\n }, [onUnpin]);\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button type=\"button\" className={cn(tableHeadCellOptionTriggerVariants(), className)}>\n <EllipsisVerticalIcon />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-64 p-4\">\n <DropdownMenuGroup className=\"*:data-[slot=dropdown-menu-item]:rounded-xs *:data-[slot=dropdown-menu-item]:p-2\">\n <Activity mode={isPinned ? 'visible' : 'hidden'}>\n <DropdownMenuItem onClick={handleUnpin}>\n {!!isPinned && 'Bỏ ghim'}\n <DropdownMenuShortcut>\n <PinOffIcon className=\"size-4\" />\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </Activity>\n <Activity mode={!isPinned ? 'visible' : 'hidden'}>\n <DropdownMenuItem onClick={handleLeftPin}>\n {isPinned ? 'Bỏ ghim' : 'Ghim trái'}\n <DropdownMenuShortcut>\n <MoveLeftIcon className=\"size-4\" />\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handleRightPin}>\n {isPinned ? 'Bỏ ghim' : 'Ghim phải'}\n <DropdownMenuShortcut>\n <MoveRightIcon className=\"size-4\" />\n </DropdownMenuShortcut>\n </DropdownMenuItem>\n </Activity>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n});\nUITableHeadCellOption.displayName = 'UITableHeadCellOption';\n","'use client';\nimport { memo, useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport type { AnyEntity } from '@/types';\n\nimport { PINNED_COLUMN_Z_INDEX } from '../../constants';\nimport type { TUITableHeadCell } from '../../types';\nimport { tableHeadCellVariants } from '../table.variants';\nimport { UITableHeadCellOption } from './head-cell-option';\n\nexport const UITableHeadCell = memo<TUITableHeadCell>(\n ({\n isVisible = true,\n isPinned = false,\n isFirstCell = false,\n isLastCell = false,\n isOptionsVisible = true,\n headerId,\n headerColumn,\n className,\n children,\n onColumnPin,\n onToggleVisibility,\n ...props\n }) => {\n const position = (headerColumn?.columnDef.meta as AnyEntity)?.position as 'start' | 'center' | 'end' | undefined;\n\n const zIndex = useMemo(() => {\n return isPinned ? PINNED_COLUMN_Z_INDEX : undefined;\n }, [isPinned]);\n\n const left = useMemo(() => {\n const axis = headerColumn?.getStart?.('left');\n return isPinned === 'left' && typeof axis === 'number' ? `${axis}px` : undefined;\n }, [isPinned, headerColumn]);\n\n const right = useMemo(() => {\n const axis = headerColumn?.getAfter?.('right');\n return isPinned === 'right' && typeof axis === 'number' ? `${axis}px` : undefined;\n }, [isPinned, headerColumn]);\n\n const width = useMemo(() => {\n return `calc(var(--header-${headerId}-size) * 1px)`;\n }, [headerId]);\n\n const minSize = useMemo(() => {\n return headerColumn?.columnDef.minSize ? `calc(var(--col-${headerId}-minSize) * 1px)` : undefined;\n }, [headerId, headerColumn]);\n\n const maxSize = useMemo(() => {\n return headerColumn?.columnDef.maxSize ? `calc(var(--col-${headerId}-maxSize) * 1px)` : undefined;\n }, [headerId, headerColumn]);\n\n return (\n <th\n slot=\"table-head-cell\"\n data-pinned={isPinned}\n data-header={headerId}\n style={{ zIndex, left, right, width, minWidth: minSize, maxWidth: maxSize }}\n className={cn(\n tableHeadCellVariants({\n isPinned: isPinned || 'false',\n isActions: headerId === 'actions',\n isLastCell,\n isFirstCell,\n position,\n }),\n className\n )}\n {...props}\n >\n <div className=\"truncate px-4\">{children}</div>\n {isOptionsVisible && (\n <UITableHeadCellOption isPinned={isPinned} isVisible={isVisible} onLeftPin={onColumnPin} onRightPin={onColumnPin} onUnpin={onColumnPin} />\n )}\n </th>\n );\n }\n);\nUITableHeadCell.displayName = 'UITableHeadCell';\n","'use client';\nimport { memo, useCallback } from 'react';\n\nimport { Checkbox } from '@/components/ui/checkbox';\n\nimport { SELECT_WIDTH, TABLE_HEADER_Z_INDEX } from '../../constants';\nimport type { TUITableHeadCellSelect } from '../../types';\nimport { tableCellSelectVariants } from '../table.variants';\n\nexport const UITableHeadCellSelect = memo<TUITableHeadCellSelect>(({ isPinned, isAllRowsSelected, style, onToggleAllRowsSelected, ...props }) => {\n const handleToggleAllRowsSelected = useCallback(\n (value: boolean | 'indeterminate') => {\n onToggleAllRowsSelected?.(!!value);\n },\n [onToggleAllRowsSelected]\n );\n return (\n <th\n slot=\"table-header-cell\"\n data-pinned={true}\n style={{ left: 0, zIndex: TABLE_HEADER_Z_INDEX, width: SELECT_WIDTH, maxWidth: SELECT_WIDTH }}\n className={tableCellSelectVariants({ isPinned })}\n {...props}\n >\n <div\n className=\"absolute inset-0 flex items-center justify-center\"\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n >\n <Checkbox aria-label=\"Select All Rows\" checked={isAllRowsSelected} onCheckedChange={handleToggleAllRowsSelected} />\n </div>\n </th>\n );\n});\nUITableHeadCellSelect.displayName = 'UITableHeadCellSelect';\n","'use client';\nimport { memo } from 'react';\n\nimport { flexRender } from '@tanstack/react-table';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { useUITableHeadRowContext } from '../../hooks/use-context';\nimport type { TUITableHeadRow } from '../../types';\nimport { tableHeadRowVariants } from '../table.variants';\nimport { UITableHeadCell } from './head-cell';\nimport { UITableHeadCellSelect } from './head-cell-select';\n\nexport const UITableHeadRow = memo<TUITableHeadRow>(({ headerGroup, className, ...props }) => {\n const { isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onToggleAllRowsSelected } = useUITableHeadRowContext();\n const firstRightPinnedHeaderId = rightPinnedHeaders[0]?.id;\n const lastLeftPinnedHeaderId = leftPinnedHeaders[leftPinnedHeaders.length - 1]?.id;\n return (\n <tr slot=\"table-head-row\" className={cn(tableHeadRowVariants(), className)} {...props}>\n {headerGroup.headers.map((header, index) => {\n const isVisible = header.column.getIsVisible();\n const isPinned = columnPinningState.left?.includes(header.id) ? 'left' : columnPinningState.right?.includes(header.id) ? 'right' : false;\n if (header.id === 'select') {\n return (\n <UITableHeadCellSelect\n key={header.id}\n isPinned={isPinned}\n isAllRowsSelected={isAllRowsSelected}\n onToggleAllRowsSelected={onToggleAllRowsSelected}\n />\n );\n }\n return (\n <UITableHeadCell\n key={`${header.id}-${index}`}\n isVisible={isVisible}\n isPinned={isPinned}\n isFirstCell={header.id === firstRightPinnedHeaderId}\n isLastCell={header.id === lastLeftPinnedHeaderId}\n isOptionsVisible={!['select', 'actions'].includes(header.id)}\n headerId={header.id}\n headerColumn={header.column}\n colSpan={header.colSpan}\n onColumnPin={header.column.pin}\n onToggleVisibility={header.column.toggleVisibility}\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n </UITableHeadCell>\n );\n })}\n </tr>\n );\n});\nUITableHeadRow.displayName = 'UITableHeadRow';\n","'use client';\nimport { memo, useEffect, useRef } from 'react';\n\nimport { ACTION_WIDTH, SELECT_WIDTH } from '../../constants';\nimport { useUITableInnerTableContext } from '../../hooks/use-context';\nimport type { TUITableInnerTable } from '../../types';\nimport { tableInnerTableVariants } from '../table.variants';\n\nexport const UITableInnerTable = memo<TUITableInnerTable>(({ children, ...props }) => {\n const { table, innerTableId, totalSize } = useUITableInnerTableContext();\n const tableRef = useRef<HTMLTableElement>(null);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table element.\n useEffect(() => {\n if (!tableRef.current) return;\n\n const headers = table.getFlatHeaders();\n\n let rafId: number | undefined;\n const observer = new ResizeObserver(entries => {\n if (rafId !== undefined) cancelAnimationFrame(rafId);\n rafId = requestAnimationFrame(() => {\n const entry = entries[0];\n if (!entry) return;\n const tableElement = entry.target;\n if (!(tableElement instanceof HTMLTableElement)) return;\n const tableContentRectWidth = entry.contentRect.width;\n\n const { left: leftColumnPinning = [], right: rightColumnPinning = [] } = table.getState().columnPinning;\n\n let pinnedWidth: number = 0;\n let flexibleColumnsCount: number = 0;\n let fixedSizeTotal: number = 0;\n const columnSpecs = headers.map(header => {\n const { id } = header;\n const isSpecial = id === 'select' || id === 'actions';\n const isPinned = leftColumnPinning.includes(id) || rightColumnPinning.includes(id);\n const size = header.getSize();\n const maxSize = header.column.columnDef.maxSize;\n\n if (isSpecial) {\n const width = id === 'select' ? SELECT_WIDTH : ACTION_WIDTH;\n pinnedWidth += width;\n return { id, isFlex: false, width };\n }\n\n if (isPinned) {\n pinnedWidth += size;\n return { id, isFlex: false, width: size };\n }\n\n if (header.column.columnDef.size || size !== 150) {\n fixedSizeTotal += size;\n return { id, isFlex: false, width: size };\n }\n\n flexibleColumnsCount++;\n return { id, isFlex: true, maxSize };\n });\n\n const remainingWidth = tableContentRectWidth - pinnedWidth - fixedSizeTotal;\n const rawFlexWidth = flexibleColumnsCount > 0 ? Math.max(0, Math.floor(remainingWidth / flexibleColumnsCount)) : 0;\n\n const scrollHost = tableElement.closest<HTMLElement>('[data-slot=\"table-scroll-host\"]');\n\n columnSpecs.forEach(col => {\n if (col.isFlex) {\n const finalWidth = col.maxSize ? Math.min(rawFlexWidth, col.maxSize) : rawFlexWidth;\n tableElement.style.setProperty(`--header-${col.id}-size`, `${finalWidth}`);\n tableElement.style.setProperty(`--col-${col.id}-size`, `${finalWidth}`);\n scrollHost?.style.setProperty(`--col-${col.id}-size`, `${finalWidth}`);\n if (col.maxSize) {\n tableElement.style.setProperty(`--col-${col.id}-maxSize`, `${col.maxSize}`);\n }\n } else {\n tableElement.style.setProperty(`--header-${col.id}-size`, `${col.width}`);\n tableElement.style.setProperty(`--col-${col.id}-size`, `${col.width}`);\n scrollHost?.style.setProperty(`--col-${col.id}-size`, `${col.width}`);\n }\n });\n });\n });\n observer.observe(tableRef.current);\n return () => {\n if (rafId !== undefined) cancelAnimationFrame(rafId);\n observer.disconnect();\n };\n }, [table.getState().columnSizingInfo, table.getState().columnSizing, table.getState().columnPinning]);\n\n return (\n <table id={innerTableId} ref={tableRef} slot=\"table-inner-table\" className={tableInnerTableVariants()} style={{ minWidth: totalSize }} {...props}>\n {children}\n </table>\n );\n});\nUITableInnerTable.displayName = 'UITableInnerTable';\n","'use client';\nimport { memo } from 'react';\n\nimport { useUITableInnerWrapperContext } from '../../hooks/use-context';\nimport type { TUITableInnerWrapper } from '../../types';\nimport { tableInnerWrapperVariants } from '../table.variants';\n\nexport const UITableInnerWrapper = memo<TUITableInnerWrapper>(({ children, ...props }) => {\n const { innerWrapperId } = useUITableInnerWrapperContext();\n return (\n <div id={innerWrapperId} slot=\"table-inner-wrapper\" className={tableInnerWrapperVariants()} {...props}>\n {children}\n </div>\n );\n});\nUITableInnerWrapper.displayName = 'UITableInnerWrapper';\n","'use client';\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport { AlertTriangle, ChevronDown } from 'lucide-react';\n\nimport { Spinner } from '@/components/ui/spinner';\n\nimport { useUITableInnerWrapperContext } from '../../hooks/use-context';\nimport type { TUITableLoadMore } from '../../types';\nimport { tableLoadMoreButtonVariants } from '../table.variants';\n\nexport const UITableLoadMore = memo<TUITableLoadMore>(({ fetchMoreData }) => {\n const { innerWrapperId } = useUITableInnerWrapperContext();\n\n const [fetchingState, setFetchingState] = useState<'idle' | 'fetching' | 'error'>('idle');\n const [width, setWidth] = useState<number>(0);\n\n const handleFetchMoreData = useCallback(async () => {\n try {\n setFetchingState('fetching');\n await fetchMoreData?.();\n setFetchingState('idle');\n } catch (error) {\n console.error('Error fetching more data:', error);\n setFetchingState('error');\n }\n }, [fetchMoreData]);\n\n useEffect(() => {\n const el = document.querySelector(`div[id=\"${innerWrapperId}\"]`);\n if (!el) return;\n const observer = new ResizeObserver(entries => {\n setWidth(entries[0].contentRect.width);\n });\n observer.observe(el);\n return () => observer.disconnect();\n }, [innerWrapperId]);\n\n if (!fetchMoreData) return null;\n\n return (\n <tr className=\"sticky! left-0 h-10\" style={{ width }}>\n <td className=\"absolute left-0 flex w-full items-center justify-center text-xs\">\n <button\n type=\"button\"\n disabled={fetchingState === 'fetching'}\n className={tableLoadMoreButtonVariants({ state: fetchingState })}\n onClick={handleFetchMoreData}\n >\n {fetchingState === 'idle' && <ChevronDown className=\"size-4\" />}\n {fetchingState === 'fetching' && <Spinner className=\"size-4 animate-spin\" />}\n {fetchingState === 'error' && <AlertTriangle className=\"size-4 text-danger\" />}\n {fetchingState === 'idle' && 'Tải thêm'}\n {fetchingState === 'fetching' && 'Đang tải...'}\n {fetchingState === 'error' && 'Lỗi! Thử lại?'}\n </button>\n </td>\n </tr>\n );\n});\nUITableLoadMore.displayName = 'UITableLoadMore';\n","'use client';\nimport { memo, useCallback, useMemo } from 'react';\n\nimport type { AnyEntity } from '@/types';\n\nimport { useUITableRowContext } from '../../hooks/use-context';\nimport type { TUITableRow } from '../../types';\nimport { tableRowVariants } from '../table.variants';\nimport { UITableCell } from './cell';\nimport { UITableCellActions } from './cell-actions';\nimport { UITableCellSelect } from './cell-select';\n\nexport const UITableRow = memo<TUITableRow>(({ row, isSelected, rowIndex, children, ...props }) => {\n const { keyOfClickRow, isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onClickRow } = useUITableRowContext();\n\n const pinnedLeftColumns = useMemo(() => columnPinningState.left ?? [], [columnPinningState]);\n const pinnedRightColumns = useMemo(() => columnPinningState.right ?? [], [columnPinningState]);\n const firstRightPinnedHeaderId = useMemo(() => rightPinnedHeaders?.[0]?.id, [rightPinnedHeaders]);\n const lastLeftPinnedHeaderId = useMemo(() => leftPinnedHeaders?.[leftPinnedHeaders.length - 1]?.id, [leftPinnedHeaders]);\n\n const hasSelectColumn = useMemo(() => row.getVisibleCells().some(c => c.column.id === 'select'), [row]);\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLTableRowElement>>(\n e => {\n if (onClickRow) {\n const value = keyOfClickRow ? row.original?.[keyOfClickRow] : undefined;\n onClickRow(rowIndex, typeof value === 'string' || typeof value === 'number' ? value : undefined);\n } else if (hasSelectColumn) {\n row.toggleSelected();\n }\n e.preventDefault();\n e.stopPropagation();\n },\n [keyOfClickRow, onClickRow, row, rowIndex, hasSelectColumn]\n );\n\n return (\n <tr slot=\"table-row\" data-index={rowIndex} className={tableRowVariants()} onClick={handleClick} {...props}>\n {row.getVisibleCells().map((cell, index) => {\n const isPinnedLeft = pinnedLeftColumns.includes(cell.column.id);\n const isPinnedRight = pinnedRightColumns.includes(cell.column.id);\n const isPinned = isPinnedLeft ? 'left' : isPinnedRight ? 'right' : false;\n if (cell.column.id === 'actions') {\n return (\n <UITableCellActions\n key={`${cell.id}-${index}`}\n data-col={cell.column.id}\n data-cell={rowIndex}\n data-selected={isSelected || undefined}\n column={cell.column}\n getContext={cell.getContext}\n />\n );\n }\n if (cell.column.id === 'select') {\n return (\n <UITableCellSelect\n key={`${cell.id}-${index}`}\n data-col={cell.column.id}\n data-cell={rowIndex}\n data-selected={isSelected || undefined}\n isPinned={isPinned}\n isSelected={isAllRowsSelected || isSelected}\n onToggleRowSelected={cell.row.toggleSelected}\n />\n );\n }\n return (\n <UITableCell\n key={`${cell.id}-${index}`}\n data-col={cell.column.id}\n data-cell={rowIndex}\n data-selected={isSelected || undefined}\n isPinned={isPinned}\n isFirstCell={cell.column.id === firstRightPinnedHeaderId}\n isLastCell={cell.column.id === lastLeftPinnedHeaderId}\n colId={cell.column.id}\n position={(cell.column.columnDef.meta as AnyEntity)?.position ?? 'start'}\n column={cell.column}\n getContext={cell.getContext}\n />\n );\n })}\n </tr>\n );\n});\nUITableRow.displayName = 'UITableRow';\n","'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport type { TUITableWrapper } from '../../types';\nimport { tableWrapperVariants } from '../table.variants';\n\nexport const UITableWrapper = memo<TUITableWrapper>(({ className, children, ...props }) => {\n return (\n <div slot=\"table-wrapper\" className={cn(tableWrapperVariants(), className)} {...props}>\n {children}\n </div>\n );\n});\nUITableWrapper.displayName = 'UITableWrapper';\n","'use client';\n\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable';\n\nimport { useUITableBodyContext, useUITableContext } from '../hooks/use-context';\nimport { UITableBody, UITableEmptyDisplay, UITableHead, UITableHeadRow, UITableInnerTable, UITableInnerWrapper, UITableLoadMore, UITableRow } from './common';\nimport { UITableLoadingDisplay } from './commons/empty-display';\n\nexport const UITableContainer: React.FC<React.PropsWithChildren> = ({ children }) => {\n const { table, fetchMoreData } = useUITableContext();\n const { rowSelectionState } = useUITableBodyContext();\n\n const { rows } = table.getRowModel();\n\n return (\n <ResizablePanelGroup\n direction=\"horizontal\"\n style={{ direction: table.options.columnResizeDirection }}\n className=\"relative flex w-full max-w-full flex-1 gap-1 overflow-auto border-t border-t-border border-r border-r-border p-0 text-sm\"\n >\n <ResizablePanel data-slot=\"table-scroll-host\" className=\"relative flex flex-col\">\n <UITableInnerWrapper>\n <UITableInnerTable>\n <UITableHead>\n {table.getHeaderGroups().map(headerGroup => (\n <UITableHeadRow key={headerGroup.id} headerGroup={headerGroup} />\n ))}\n </UITableHead>\n <UITableBody>\n {rows.map((row, index) => {\n const isSelected = rowSelectionState[row.id] === true;\n return <UITableRow key={row.id} row={row} isSelected={isSelected} rowIndex={index} />;\n })}\n {fetchMoreData && <UITableLoadMore fetchMoreData={fetchMoreData} />}\n </UITableBody>\n <UITableLoadingDisplay />\n </UITableInnerTable>\n <UITableEmptyDisplay />\n </UITableInnerWrapper>\n </ResizablePanel>\n {children && (\n <>\n <ResizableHandle />\n {children}\n </>\n )}\n </ResizablePanelGroup>\n );\n};\n","/**\n * @file provider.tsx\n * Context providers that wire TanStack Table state into the UITable component tree.\n *\n * Each sub-provider is a memoised wrapper around a single React context so that\n * only the subtree that consumes a particular slice of state re-renders when that\n * slice changes.\n */\nimport { memo, useCallback, useId, useMemo, useState } from 'react';\n\nimport type { ColumnDef, ColumnPinningState, ExpandedState, RowSelectionState } from '@tanstack/react-table';\nimport { getCoreRowModel, getExpandedRowModel, getGroupedRowModel, useReactTable } from '@tanstack/react-table';\n\nimport type { AnyEntity } from '@/types';\nimport {\n TableAnalysisContext,\n TableBodyContext,\n TableContext,\n TableFilterContext,\n TableHeadRowContext,\n TableInnerTableContext,\n TableInnerWrapperContext,\n TableRowContext,\n} from '../../hooks/use-context';\nimport type {\n ActiveFilter,\n FilterDefinition,\n FilterType,\n FilterValue,\n RowData,\n TableProviderProps,\n TTableAnalysisContext,\n TTableBodyContext,\n TTableContext,\n TTableFilterContext,\n TTableHeadRowContext,\n TTableInnerTableContext,\n TTableInnerWrapperContext,\n TTableRowContext,\n TUITableColumn,\n} from '../../types';\n\nfunction createDefaultFilterValue(type: FilterType): FilterValue {\n switch (type) {\n case 'tag':\n return { type: 'tag', values: [] };\n case 'single-tag':\n return { type: 'single-tag', value: null };\n case 'date-range':\n return { type: 'date-range' };\n case 'number':\n return { type: 'number', operator: 'eq' };\n case 'text':\n return { type: 'text', operator: 'contains', value: '' };\n case 'boolean':\n return { type: 'boolean', value: null };\n }\n}\n\n/**\n * Provides the inner-wrapper DOM element id to all descendants via\n * `TableInnerWrapperContext`, enabling virtual-scroll sentinels to locate the\n * scrollable container without prop-drilling.\n */\nconst UITableInnerWrapperProvider = memo<React.PropsWithChildren<TTableInnerWrapperContext>>(({ innerWrapperId, children }) => {\n const value = useMemo<TTableInnerWrapperContext>(() => ({ innerWrapperId }), [innerWrapperId]);\n return <TableInnerWrapperContext.Provider value={value}>{children}</TableInnerWrapperContext.Provider>;\n});\nUITableInnerWrapperProvider.displayName = 'UITableInnerWrapperProvider';\n\n/**\n * Provides the TanStack `table` instance, the inner `<table>` element id, and\n * the pre-computed `totalSize` (sum of all column widths) to descendants via\n * `TableInnerTableContext`.\n */\nconst UITableInnerTableProvider = memo<React.PropsWithChildren<TTableInnerTableContext>>(({ table, innerTableId, totalSize, children }) => {\n const value = useMemo<TTableInnerTableContext>(() => ({ table, innerTableId, totalSize }), [table, innerTableId, totalSize]);\n return <TableInnerTableContext.Provider value={value}>{children}</TableInnerTableContext.Provider>;\n});\nUITableInnerTableProvider.displayName = 'UITableInnerTableProvider';\n\n/**\n * Provides column-pinning state and the \"select all\" toggle to the header-row\n * layer via `TableHeadRowContext`, preventing unnecessary re-renders in the body.\n */\nconst UITableHeadRowProvider = memo<React.PropsWithChildren<TTableHeadRowContext>>(\n ({ isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onToggleAllRowsSelected, children }) => {\n const value = useMemo<TTableHeadRowContext>(\n () => ({ isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onToggleAllRowsSelected }),\n [isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onToggleAllRowsSelected]\n );\n return <TableHeadRowContext.Provider value={value}>{children}</TableHeadRowContext.Provider>;\n }\n);\nUITableHeadRowProvider.displayName = 'UITableHeadRowProvider';\n\n/**\n * Provides loading/empty state and the current row-selection map to the table\n * body layer via `TableBodyContext`.\n */\nconst UITableBodyProvider = memo<React.PropsWithChildren<TTableBodyContext>>(({ isFetching, isRefetching, isEmpty, rowSelectionState, children }) => {\n const value = useMemo<TTableBodyContext>(() => ({ isFetching, isRefetching, isEmpty, rowSelectionState }), [isFetching, isEmpty, rowSelectionState]);\n return <TableBodyContext.Provider value={value}>{children}</TableBodyContext.Provider>;\n});\nUITableBodyProvider.displayName = 'UITableBodyProvider';\n\n/**\n * Provides per-row interaction state — click handler, pinning, and the\n * \"select all\" flag — to individual row renderers via `TableRowContext`.\n */\nconst UITableRowProvider = memo<React.PropsWithChildren<TTableRowContext<AnyEntity, AnyEntity>>>(\n ({ keyOfClickRow, isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onClickRow, children }) => {\n const value = useMemo<TTableRowContext<AnyEntity, AnyEntity>>(\n () => ({\n keyOfClickRow,\n isAllRowsSelected,\n columnPinningState,\n leftPinnedHeaders,\n rightPinnedHeaders,\n onClickRow,\n }),\n [keyOfClickRow, isAllRowsSelected, columnPinningState, leftPinnedHeaders, rightPinnedHeaders, onClickRow]\n );\n return <TableRowContext.Provider value={value}>{children}</TableRowContext.Provider>;\n }\n);\nUITableRowProvider.displayName = 'UITableRowProvider';\n\n/**\n * Root context provider for the UITable component family.\n *\n * Instantiates a TanStack Table instance with virtualisation-friendly settings\n * (column pinning, row selection, row grouping, row expansion) and propagates\n * all derived state through a nested set of memoised context providers so that\n * each layer only re-renders when its own slice of state changes.\n *\n * @example\n * ```tsx\n * import { UITableProvider } from '@customafk/lunas-ui/features/tables';\n *\n * const columns = [\n * { accessorKey: 'name', header: 'Name' },\n * { accessorKey: 'email', header: 'Email' },\n * ];\n *\n * function MyPage() {\n * return (\n * <UITableProvider\n * title=\"Users\"\n * data={users}\n * columns={columns}\n * isFetching={isLoading}\n * onClickRow={(index, id) => console.log(index, id)}\n * >\n * <UITable />\n * </UITableProvider>\n * );\n * }\n * ```\n */\nexport const UITableProvider = <\n TData extends RowData<TData> = RowData<AnyEntity>,\n TKey extends keyof TData = keyof TData,\n TColumns extends ReadonlyArray<TUITableColumn<TData>> = TUITableColumn<TData>[],\n>({\n title,\n\n isFetching = false,\n isRefetching = false,\n isLoading = false,\n loadingDisplayRow = 3,\n\n data,\n columns,\n totalRows,\n\n leftPinnedColumns = [],\n rightPinnedColumns = [],\n\n keyOfClickRow,\n onClickRow,\n onRowSelection,\n onColumnPinning,\n\n fetchMoreData,\n emptyDisplayHeight,\n csvData,\n csvFileName,\n\n filterDefinitions = [],\n onFilterChange,\n\n summary = [],\n onSummaryItemClick,\n showAnalysisPanel = false,\n\n description,\n headerActions,\n\n children,\n}: React.PropsWithChildren<TableProviderProps<TData, TKey, TColumns>>) => {\n const innerWrapperId = useId();\n const innerTableId = useId();\n\n const [isAnalysisPanelOpen, setIsAnalysisPanelOpen] = useState(false);\n\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [columnPinning, setColumnPinning] = useState<ColumnPinningState>({\n right: rightPinnedColumns as unknown as string[],\n left: ['select', ...leftPinnedColumns] as unknown as string[],\n });\n const [expanded, setExpanded] = useState<ExpandedState>({});\n const [activeFilters, setActiveFilters] = useState<ActiveFilter[]>([]);\n\n const handleRowSelectionChange = useCallback<React.Dispatch<React.SetStateAction<RowSelectionState>>>(\n newRowSelection => {\n setRowSelection(newRowSelection);\n onRowSelection?.(newRowSelection instanceof Function ? newRowSelection(rowSelection) : newRowSelection);\n return newRowSelection;\n },\n [rowSelection, onRowSelection]\n );\n\n const handleColumnPinningChange = useCallback<React.Dispatch<React.SetStateAction<ColumnPinningState>>>(\n newColumnPinning => {\n setColumnPinning(newColumnPinning);\n onColumnPinning?.(newColumnPinning instanceof Function ? newColumnPinning(columnPinning) : newColumnPinning);\n },\n [columnPinning, onColumnPinning]\n );\n\n const addFilter = useCallback(\n (definitionId: string) => {\n const def = (filterDefinitions as FilterDefinition[]).find(d => d.id === definitionId);\n if (!def) return;\n const newFilter: ActiveFilter = {\n id: `${definitionId}-${crypto.randomUUID()}`,\n definitionId,\n value: createDefaultFilterValue(def.type),\n };\n setActiveFilters(prev => {\n const next = [...prev, newFilter];\n onFilterChange?.(next);\n return next;\n });\n },\n [filterDefinitions, onFilterChange]\n );\n\n const removeFilter = useCallback(\n (filterId: string) => {\n setActiveFilters(prev => {\n const next = prev.filter(f => f.id !== filterId);\n onFilterChange?.(next);\n return next;\n });\n },\n [onFilterChange]\n );\n\n const updateFilter = useCallback(\n (filterId: string, value: FilterValue) => {\n setActiveFilters(prev => {\n const next = prev.map(f => (f.id === filterId ? { ...f, value } : f));\n onFilterChange?.(next);\n return next;\n });\n },\n [onFilterChange]\n );\n\n const filterContextValue = useMemo<TTableFilterContext>(\n () => ({\n filterDefinitions: filterDefinitions as FilterDefinition[],\n activeFilters,\n addFilter,\n removeFilter,\n updateFilter,\n }),\n [filterDefinitions, activeFilters, addFilter, removeFilter, updateFilter]\n );\n\n const table = useReactTable<TData>({\n data: data,\n columns: columns as unknown as ColumnDef<AnyEntity, unknown>[],\n state: {\n rowSelection,\n columnPinning,\n expanded,\n },\n defaultColumn: {\n enableResizing: false,\n size: undefined,\n minSize: undefined,\n maxSize: undefined,\n },\n columnResizeMode: 'onChange',\n columnResizeDirection: 'ltr',\n\n enableColumnPinning: true,\n enableRowSelection: true,\n enableColumnResizing: true,\n enableMultiRowSelection: true,\n\n autoResetAll: false,\n autoResetExpanded: false,\n autoResetPageIndex: false,\n\n getSubRows: row => row.subRows,\n getCoreRowModel: getCoreRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n\n onRowSelectionChange: handleRowSelectionChange,\n onColumnPinningChange: handleColumnPinningChange,\n onExpandedChange: setExpanded,\n });\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: rows\n const rows = useMemo(() => {\n const { rows } = table.getRowModel();\n return rows;\n }, [table.getRowModel().rows, table.getState().columnPinning]);\n\n const isEmpty = useMemo<boolean>(() => {\n return !isFetching && !isRefetching && rows.length === 0;\n }, [rows, isFetching, isRefetching]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table get state\n const value = useMemo<TTableContext<TData>>(\n () => ({\n title,\n table,\n\n isEmpty,\n isFetching,\n isRefetching,\n isLoading,\n loadingDisplayRow,\n\n totalRows,\n\n fetchMoreData,\n emptyDisplayHeight,\n\n csvData,\n csvFileName,\n\n summary,\n onSummaryItemClick,\n showAnalysisPanel,\n\n description,\n headerActions,\n }),\n [\n title,\n table,\n\n isEmpty,\n isRefetching,\n isFetching,\n isLoading,\n loadingDisplayRow,\n\n totalRows,\n\n fetchMoreData,\n emptyDisplayHeight,\n table.getState().columnPinning,\n table.getState().expanded,\n\n csvData,\n csvFileName,\n\n summary,\n onSummaryItemClick,\n showAnalysisPanel,\n\n description,\n headerActions,\n ]\n );\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table get state\n const tableState = useMemo(() => {\n return table.getState();\n }, [table.getState()]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table get state\n const isAllRowsSelected = useMemo(() => {\n return table.getIsAllRowsSelected();\n }, [table.getIsAllRowsSelected()]);\n\n const rowSelectionState = useMemo(() => {\n return tableState.rowSelection;\n }, [tableState.rowSelection]);\n\n const columnPinningState = useMemo(() => {\n return tableState.columnPinning;\n }, [tableState.columnPinning]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table get state\n const leftPinnedHeaders = useMemo(() => {\n return table.getLeftHeaderGroups()[0]?.headers || [];\n }, [table.getState().columnPinning]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table get state\n const rightPinnedHeaders = useMemo(() => {\n return table.getRightHeaderGroups()[0]?.headers || [];\n }, [table.getState().columnPinning]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: table get total size\n const totalSize = useMemo(() => {\n return table.getTotalSize();\n }, [table.getTotalSize()]);\n\n const toggleAnalysisPanel = useCallback(() => setIsAnalysisPanelOpen(prev => !prev), []);\n\n const analysisContextValue = useMemo<TTableAnalysisContext>(\n () => ({ isOpen: isAnalysisPanelOpen, toggle: toggleAnalysisPanel }),\n [isAnalysisPanelOpen, toggleAnalysisPanel]\n );\n\n return (\n <TableAnalysisContext.Provider value={analysisContextValue}>\n <TableFilterContext.Provider value={filterContextValue}>\n <TableContext.Provider value={value as TTableContext<TData>}>\n <UITableInnerWrapperProvider innerWrapperId={innerWrapperId}>\n <UITableInnerTableProvider table={table} innerTableId={innerTableId} totalSize={totalSize}>\n <UITableHeadRowProvider\n isAllRowsSelected={isAllRowsSelected}\n columnPinningState={columnPinningState}\n leftPinnedHeaders={leftPinnedHeaders}\n rightPinnedHeaders={rightPinnedHeaders}\n onToggleAllRowsSelected={table.toggleAllRowsSelected}\n >\n <UITableBodyProvider isFetching={isFetching} isRefetching={isRefetching} isEmpty={isEmpty} rowSelectionState={rowSelectionState}>\n <UITableRowProvider\n keyOfClickRow={keyOfClickRow}\n isAllRowsSelected={isAllRowsSelected}\n columnPinningState={columnPinningState}\n leftPinnedHeaders={leftPinnedHeaders}\n rightPinnedHeaders={rightPinnedHeaders}\n onClickRow={onClickRow}\n >\n {children}\n </UITableRowProvider>\n </UITableBodyProvider>\n </UITableHeadRowProvider>\n </UITableInnerTableProvider>\n </UITableInnerWrapperProvider>\n </TableContext.Provider>\n </TableFilterContext.Provider>\n </TableAnalysisContext.Provider>\n );\n};\n","'use client';\n\n/**\n * @module @customafk/lunas-ui/features/tables\n *\n * Public surface of the UITable feature module.\n *\n * Re-exports the required building blocks (root `UITableProvider`, the\n * `commons/*` DOM primitives, and `UITableContainer`) eagerly, and the\n * optional/composable pieces — the 18 cell-renderer atoms plus the filter\n * panel, analysis panel, summary bar, and toolbar — behind `React.lazy` so\n * that importing this module only pays for what a given table actually\n * renders. Mirrors the `lazyField` pattern used by\n * `@customafk/lunas-ui/features/tanstack-form`.\n *\n * @example\n * ```tsx\n * import {\n * UITableProvider,\n * UITableWrapper,\n * UITableTooltip,\n * UITableTooltipFilter,\n * UITableTooltipActions,\n * UITableFilter,\n * } from '@customafk/lunas-ui/features/tables';\n * ```\n */\nimport type { ComponentProps, ComponentType } from 'react';\nimport { lazy, Suspense } from 'react';\n\nexport { UITableEmpty } from './components/atoms/empty';\nexport * from './components/common';\nexport * from './components/table';\nexport { UITableProvider } from './components/table/provider';\nexport * from './types';\n\nimport type { UITableAvatarNameDisplay as UITableAvatarNameDisplayType } from './components/atoms/avatar-name-display';\nimport type { UITableBadgeDisplay as UITableBadgeDisplayType } from './components/atoms/badge-display';\nimport type { UITableBooleanDisplay as UITableBooleanDisplayType } from './components/atoms/boolean-display';\nimport type { UITableCurrencyDisplay as UITableCurrencyDisplayType } from './components/atoms/currency-display';\nimport type { UITableDateDisplay as UITableDateDisplayType } from './components/atoms/date-display';\nimport type { UITableDescriptionDisplay as UITableDescriptionDisplayType } from './components/atoms/description-display';\nimport type { UITableEditButton as UITableEditButtonType } from './components/atoms/edit-button';\nimport type { UITableEmailDisplay as UITableEmailDisplayType } from './components/atoms/email-display';\nimport type { UITableListDisplay as UITableListDisplayType } from './components/atoms/list-display';\nimport type { UITableMoreButton as UITableMoreButtonType } from './components/atoms/more-button';\nimport type { UITableNameDisplay as UITableNameDisplayType } from './components/atoms/name-display';\nimport type { UITablePermalink as UITablePermalinkType } from './components/atoms/permalink';\nimport type { UITablePhoneNumberDisplay as UITablePhoneNumberDisplayType } from './components/atoms/phone-number';\nimport type { UITableProgressDisplay as UITableProgressDisplayType } from './components/atoms/progress-display';\nimport type { UITableRemoveButton as UITableRemoveButtonType } from './components/atoms/remove-button';\nimport type { UITableStatisticDisplay as UITableStatisticDisplayType } from './components/atoms/statistic';\nimport type { UITableStatusDisplay as UITableStatusDisplayType } from './components/atoms/status-display';\nimport type { UITableToggleButton as UITableToggleButtonType } from './components/atoms/toggle-button';\nimport type { UITableUserDataDisplay as UITableUserDataDisplayType } from './components/atoms/user';\nimport type {\n UITableTooltipActions as UITableTooltipActionsType,\n UITableTooltipFilter as UITableTooltipFilterType,\n UITableTooltip as UITableTooltipType,\n} from './components/table/tooltip';\n\n/**\n * Wraps a `lazy()`-loaded component in its own `Suspense` boundary so it can be dropped\n * anywhere without callers needing to set up Suspense themselves. Keeps this file itself\n * small — the heavy per-atom/per-panel implementations (Radix primitives, lucide icon sets,\n * the filter builder, CSV export, etc.) only load when a table actually renders that piece.\n */\nfunction lazyField<P extends object>(loader: () => Promise<{ default: ComponentType<P> }>): ComponentType<P> {\n const LazyComponent = lazy(loader);\n return (props: P) => (\n <Suspense fallback={null}>\n <LazyComponent {...props} />\n </Suspense>\n );\n}\n\n// ─── Cell-renderer atoms (lazy) ────────────────────────────────────────────────\n\nconst UITableAvatarNameDisplay = lazyField<ComponentProps<typeof UITableAvatarNameDisplayType>>(() =>\n import('./components/atoms/avatar-name-display').then(m => ({ default: m.UITableAvatarNameDisplay }))\n);\nconst UITableBadgeDisplay = lazyField<ComponentProps<typeof UITableBadgeDisplayType>>(() =>\n import('./components/atoms/badge-display').then(m => ({ default: m.UITableBadgeDisplay }))\n);\nconst UITableBooleanDisplay = lazyField<ComponentProps<typeof UITableBooleanDisplayType>>(() =>\n import('./components/atoms/boolean-display').then(m => ({ default: m.UITableBooleanDisplay }))\n);\nconst UITableCurrencyDisplay = lazyField<ComponentProps<typeof UITableCurrencyDisplayType>>(() =>\n import('./components/atoms/currency-display').then(m => ({ default: m.UITableCurrencyDisplay }))\n);\nconst UITableDateDisplay = lazyField<ComponentProps<typeof UITableDateDisplayType>>(() =>\n import('./components/atoms/date-display').then(m => ({ default: m.UITableDateDisplay }))\n);\nconst UITableDescriptionDisplay = lazyField<ComponentProps<typeof UITableDescriptionDisplayType>>(() =>\n import('./components/atoms/description-display').then(m => ({ default: m.UITableDescriptionDisplay }))\n);\nconst UITableEditButton = lazyField<ComponentProps<typeof UITableEditButtonType>>(() =>\n import('./components/atoms/edit-button').then(m => ({ default: m.UITableEditButton }))\n);\nconst UITableEmailDisplay = lazyField<ComponentProps<typeof UITableEmailDisplayType>>(() =>\n import('./components/atoms/email-display').then(m => ({ default: m.UITableEmailDisplay }))\n);\nconst UITableListDisplay = lazyField<ComponentProps<typeof UITableListDisplayType>>(() =>\n import('./components/atoms/list-display').then(m => ({ default: m.UITableListDisplay }))\n);\nconst UITableMoreButton = lazyField<ComponentProps<typeof UITableMoreButtonType>>(() =>\n import('./components/atoms/more-button').then(m => ({ default: m.UITableMoreButton }))\n);\nconst UITableNameDisplay = lazyField<ComponentProps<typeof UITableNameDisplayType>>(() =>\n import('./components/atoms/name-display').then(m => ({ default: m.UITableNameDisplay }))\n);\nconst UITablePermalink = lazyField<ComponentProps<typeof UITablePermalinkType>>(() =>\n import('./components/atoms/permalink').then(m => ({ default: m.UITablePermalink }))\n);\nconst UITablePhoneNumberDisplay = lazyField<ComponentProps<typeof UITablePhoneNumberDisplayType>>(() =>\n import('./components/atoms/phone-number').then(m => ({ default: m.UITablePhoneNumberDisplay }))\n);\nconst UITableProgressDisplay = lazyField<ComponentProps<typeof UITableProgressDisplayType>>(() =>\n import('./components/atoms/progress-display').then(m => ({ default: m.UITableProgressDisplay }))\n);\nconst UITableRemoveButton = lazyField<ComponentProps<typeof UITableRemoveButtonType>>(() =>\n import('./components/atoms/remove-button').then(m => ({ default: m.UITableRemoveButton }))\n);\nconst UITableStatisticDisplay = lazyField<ComponentProps<typeof UITableStatisticDisplayType>>(() =>\n import('./components/atoms/statistic').then(m => ({ default: m.UITableStatisticDisplay }))\n);\nconst UITableStatusDisplay = lazyField<ComponentProps<typeof UITableStatusDisplayType>>(() =>\n import('./components/atoms/status-display').then(m => ({ default: m.UITableStatusDisplay }))\n);\nconst UITableToggleButton = lazyField<ComponentProps<typeof UITableToggleButtonType>>(() =>\n import('./components/atoms/toggle-button').then(m => ({ default: m.UITableToggleButton }))\n);\nconst UITableUserDataDisplay = lazyField<ComponentProps<typeof UITableUserDataDisplayType>>(() =>\n import('./components/atoms/user').then(m => ({ default: m.UITableUserDataDisplay }))\n);\n\n// ─── Optional panels & toolbar (lazy) ──────────────────────────────────────────\n\nconst UITableFilter = lazyField<Record<string, never>>(() => import('./components/table/filter').then(m => ({ default: m.UITableFilter })));\nconst UITableAnalysisPanel = lazyField<Record<string, never>>(() =>\n import('./components/table/analysis-panel').then(m => ({ default: m.UITableAnalysisPanel }))\n);\nconst UITableSummaryBar = lazyField<Record<string, never>>(() => import('./components/table/summary-bar').then(m => ({ default: m.UITableSummaryBar })));\nconst UITableTooltip = lazyField<ComponentProps<typeof UITableTooltipType>>(() =>\n import('./components/table/tooltip').then(m => ({ default: m.UITableTooltip }))\n);\nconst UITableTooltipFilter = lazyField<ComponentProps<typeof UITableTooltipFilterType>>(() =>\n import('./components/table/tooltip').then(m => ({ default: m.UITableTooltipFilter }))\n);\nconst UITableTooltipActions = lazyField<ComponentProps<typeof UITableTooltipActionsType>>(() =>\n import('./components/table/tooltip').then(m => ({ default: m.UITableTooltipActions }))\n);\n\nexport {\n UITableAnalysisPanel,\n // Cell-renderer atoms\n UITableAvatarNameDisplay,\n UITableBadgeDisplay,\n UITableBooleanDisplay,\n UITableCurrencyDisplay,\n UITableDateDisplay,\n UITableDescriptionDisplay,\n UITableEditButton,\n UITableEmailDisplay,\n // Optional panels & toolbar\n UITableFilter,\n UITableListDisplay,\n UITableMoreButton,\n UITableNameDisplay,\n UITablePermalink,\n UITablePhoneNumberDisplay,\n UITableProgressDisplay,\n UITableRemoveButton,\n UITableStatisticDisplay,\n UITableStatusDisplay,\n UITableSummaryBar,\n UITableToggleButton,\n UITableTooltip,\n UITableTooltipActions,\n UITableTooltipFilter,\n UITableUserDataDisplay,\n};\n"],"mappings":"sXAWA,MAAa,OAET,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,8CAAf,EACE,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAD,CAAW,KAAM,EAAK,CAAA,GACtB,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAD,CAAW,KAAM,EAAK,CAAA,CACnB,ICFI,GAAA,EAAA,EAAA,cAAA,CAA2E,IAAI,EAE/E,MAAsC,CACjD,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,CAAwB,EACxC,GAAI,CAAC,EACH,MAAU,MAAM,6EAA6E,EAE/F,OAAO,CACT,EAEa,GAAA,EAAA,EAAA,cAAA,CAAuE,IAAI,EAE3E,MAAoC,CAC/C,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,CAAsB,EACtC,GAAI,CAAC,EACH,MAAU,MAAM,yEAAyE,EAE3F,OAAO,CACT,EAEa,GAAA,EAAA,EAAA,cAAA,CAAiE,IAAI,EAErE,MAAiC,CAC5C,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,CAAmB,EACnC,GAAI,CAAC,EACH,MAAU,MAAM,uEAAuE,EAEzF,OAAO,CACT,EAEa,GAAA,EAAA,EAAA,cAAA,CAA2D,IAAI,EAE/D,MAA8B,CACzC,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,CAAgB,EAChC,GAAI,CAAC,EACH,MAAU,MAAM,6DAA6D,EAE/E,OAAO,CACT,EAEa,GAAA,EAAA,EAAA,cAAA,CAA+E,IAAI,EAEnF,MAA6B,CACxC,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,CAAe,EAC/B,GAAI,CAAC,EACH,MAAU,MAAM,2DAA2D,EAE7E,OAAO,CACT,EAEa,IAAA,EAAA,EAAA,cAAA,CAA8D,IAAI,EAElE,MAA0B,CACrC,IAAM,GAAA,EAAA,EAAA,IAAA,CAAc,EAAY,EAChC,GAAI,CAAC,EACH,MAAU,MAAM,qDAAqD,EAEvE,OAAO,CACT,EAEa,IAAA,EAAA,EAAA,cAAA,CAA+D,IAAI,EAEnE,OAAgC,CAC3C,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,EAAkB,EAClC,GAAI,CAAC,EACH,MAAU,MAAM,+DAA+D,EAEjF,OAAO,CACT,EAEa,IAAA,EAAA,EAAA,cAAA,CAAmE,IAAI,EAEvE,MAAkC,CAC7C,IAAM,GAAA,EAAA,EAAA,IAAA,CAAU,EAAoB,EACpC,GAAI,CAAC,EACH,MAAU,MAAM,iEAAiE,EAEnF,OAAO,CACT,EC1Fa,GAAA,EAAA,EAAA,IAAA,CAAyC,CACpD,gDACA,6CACA,0BACA,iBACA,0BACA,+CACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAAgC,CAAC,0GAA0G,CAAC,EAE5I,GAAA,EAAA,EAAA,IAAA,CAA2B,CAAC,kFAAkF,CAAC,EAE/G,IAAA,EAAA,EAAA,IAAA,CAAgC,CAAC,gGAAgG,CAAC,EAElI,IAAA,EAAA,EAAA,IAAA,CAA8B,CAAC,gGAAgG,CAAC,EAEhI,IAAA,EAAA,EAAA,IAAA,CAAwB,CACnC,+BACA,4BACA,kCACA,kDACA,sCACA,qBACA,iBACA,sBACA,wBACA,sBACA,2BACA,uBACA,kBACA,0BACA,4CACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAA2B,CAAC,MAAM,CAAC,EAEnC,IAAA,EAAA,EAAA,IAAA,CAA4B,CAAC,YAAY,EAAG,CACvD,SAAU,CACR,SAAU,CACR,KAAM,SACN,MAAO,SACP,MAAO,UACT,EACA,UAAW,CACT,KAAM,cACN,MAAO,EACT,EACA,WAAY,CACV,KAAM,GACN,MAAO,EACT,EACA,YAAa,CACX,KAAM,GACN,MAAO,EACT,EACA,SAAU,CACR,MAAO,gBACP,OAAQ,iBACR,IAAK,aACP,CACF,EACA,iBAAkB,CAChB,CAAE,SAAU,OAAQ,WAAY,GAAM,UAAW,0BAA2B,EAC5E,CAAE,SAAU,QAAS,YAAa,GAAM,UAAW,0BAA2B,CAChF,CACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAAwB,CACnC,kBACA,cACA,mBACA,gBACA,kDACA,yCACA,cACA,wBACA,cACA,mBACA,yBACA,2BACA,cACA,gBACA,sBACA,uBACA,8CACA,oDACA,yBACA,0BACA,oBACA,uCACA,yCACA,oDACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAAuB,CAAC,kHAAkH,CAAC,EAE3I,GAAA,EAAA,EAAA,IAAA,CAA8B,CAAC,6BAA6B,EAAG,CAC1E,SAAU,CACR,SAAU,CACR,KAAM,SACN,MAAO,SACP,MAAO,UACT,CACF,EACA,gBAAiB,CACf,SAAU,IAAA,EACZ,CACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAA+B,CAAC,8FAA8F,CAAC,EAE/H,GAAA,EAAA,EAAA,IAAA,CAAwB,CAAC,6BAA6B,EAAG,CACpE,SAAU,CACR,SAAU,CACR,KAAM,GACN,MAAO,GACP,MAAO,EACT,EACA,WAAY,CACV,KAAM,GACN,MAAO,EACT,EACA,YAAa,CACX,KAAM,GACN,MAAO,EACT,CACF,EACA,iBAAkB,CAChB,CAAE,SAAU,OAAQ,WAAY,GAAM,UAAW,0BAA2B,EAC5E,CAAE,SAAU,QAAS,YAAa,GAAM,UAAW,0BAA2B,CAChF,CACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAA6B,CAAC,mBAAmB,EAAG,CAC/D,SAAU,CACR,SAAU,CACR,MAAO,gBACP,OAAQ,iBACR,IAAK,aACP,CACF,EACA,gBAAiB,CACf,SAAU,OACZ,CACF,CAAC,EAEY,GAAA,EAAA,EAAA,IAAA,CAA0B,CAAC,6EAA6E,CAAC,EAEzG,GAAA,EAAA,EAAA,IAAA,CAA6B,CAAC,cAAe,iDAAiD,CAAC,EAE/F,GAAA,EAAA,EAAA,IAAA,CAA8B,CAAC,0EAA2E,0BAA0B,EAAG,CAClJ,SAAU,CACR,SAAU,CACR,KAAM,uBACN,MAAO,uBACP,MAAO,UACT,EACA,YAAa,CAAE,KAAM,2BAA4B,MAAO,EAAG,EAC3D,WAAY,CAAE,KAAM,2BAA4B,MAAO,EAAG,CAC5D,CACF,CAAC,EAEY,IAAA,EAAA,EAAA,IAAA,CAAkC,CAAC,+BAA+B,EAAG,CAChF,SAAU,CACR,MAAO,CACL,KAAM,mDACN,SAAU,qBACV,MAAO,sCACT,CACF,EACA,gBAAiB,CACf,MAAO,MACT,CACF,CAAC,ECvKY,GAAA,EAAA,EAAA,KAAA,EAAkC,CAAE,YAAW,WAAU,GAAG,KAAY,CACnF,GAAM,CAAE,aAAY,eAAc,WAAY,EAAsB,EAEpE,OADI,GAAW,GAAc,EAAqB,MAEhD,EAAA,EAAA,IAAA,CAAC,QAAD,CAAO,KAAK,aAAa,WAAA,EAAA,EAAA,GAAA,CAAc,EAAkB,EAAG,CAAS,EAAG,GAAI,EACzE,UACI,CAAA,CAEX,CAAC,EACD,EAAY,YAAc,cCP1B,MAAa,GAAA,EAAA,EAAA,KAAA,EACV,CAAE,WAAW,GAAO,cAAc,GAAO,aAAa,GAAO,QAAO,WAAW,QAAS,SAAQ,aAAY,GAAG,KAAY,CAC1H,GAAM,CAAE,eAAc,SAAU,EAA4B,EACtD,GAAA,EAAA,EAAA,OAAA,CAA2C,IAAI,EAC/C,GAAA,EAAA,EAAA,OAAA,CAAiC,IAAI,EAErC,GAAA,EAAA,EAAA,QAAA,KAAqB,CACzB,IAAM,EAAO,GAAQ,SAAS,MAAM,EACpC,OAAO,IAAa,QAAU,OAAO,GAAS,SAAW,GAAG,EAAK,IAAM,IAAA,EACzE,EAAG,CAAC,EAAU,CAAM,CAAC,EAEf,GAAA,EAAA,EAAA,QAAA,KAAsB,CAC1B,IAAM,EAAO,GAAQ,SAAS,OAAO,EACrC,OAAO,IAAa,SAAW,OAAO,GAAS,SAAW,GAAG,EAAK,IAAM,IAAA,EAC1E,EAAG,CAAC,EAAU,CAAM,CAAC,EAEf,GAAA,EAAA,EAAA,QAAA,KACG,kBAAkB,EAAM,eAC9B,CAAC,CAAK,CAAC,EAEJ,GAAA,EAAA,EAAA,QAAA,KACG,GAAQ,UAAU,QAAU,kBAAkB,EAAM,kBAAoB,IAAA,GAC9E,CAAC,EAAO,CAAM,CAAC,EAEZ,GAAA,EAAA,EAAA,QAAA,KACG,GAAQ,UAAU,QAAU,kBAAkB,EAAM,kBAAoB,IAAA,GAC9E,CAAC,EAAO,CAAM,CAAC,EAEZ,GAAA,EAAA,EAAA,QAAA,MACJ,EAAA,EAAA,WAAA,CAAkB,GAAQ,UAAU,KAAM,EAAW,CAAC,EACrD,CAAC,EAAQ,CAAU,CAAC,EAsBvB,OApBA,EAAA,EAAA,UAAA,KAAgB,CACd,EAAS,QAAU,SAAS,cAAc,aAAa,EAAa,GAAG,CACzE,EAAG,CAAC,CAAY,CAAC,GAEjB,EAAA,EAAA,UAAA,KAAgB,CACd,GAAI,CAAC,EAAQ,QAAS,OAEtB,IAAM,EAAQ,EAAQ,QAAQ,YACxB,EAAc,GAAQ,QAAQ,EAEhC,GAAe,MAAQ,EAAQ,GAC7B,EAAS,mBAAmB,kBAAoB,OAAO,GAAU,UAAa,GAAQ,UAAU,MAAqB,YACvH,EAAM,gBAAgB,IAAQ,CAC5B,GAAG,GACF,GAAQ,EAAQ,EACnB,EAAE,CAGR,EAAG,CAAC,EAAO,EAAQ,CAAK,CAAC,GAGvB,EAAA,EAAA,IAAA,CAAC,KAAD,CACE,KAAK,kBACL,cAAa,EACb,gBAAe,GAAc,IAAA,GAC7B,iBAAgB,GAAe,IAAA,GAC/B,MAAO,CAAE,OAAM,QAAO,QAAO,SAAU,EAAS,SAAU,CAAQ,EAClE,UAAW,EAAkB,CAAE,SAAU,GAAY,IAAA,GAAW,aAAY,aAAY,CAAC,EACzF,GAAI,YAEJ,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,IAAK,EAAS,KAAK,wBAAwB,UAAW,EAAuB,CAAE,UAAS,CAAC,WAC3F,CACE,CAAA,CACH,CAAA,CAER,CACF,EACA,EAAY,YAAc,cCxE1B,MAAa,GAAA,EAAA,EAAA,KAAA,EAAgD,CAAE,SAAQ,aAAY,YAAW,GAAG,KAAY,CAC3G,IAAM,GAAA,EAAA,EAAA,QAAA,MACJ,EAAA,EAAA,WAAA,CAAkB,GAAQ,UAAU,KAAM,EAAW,CAAC,EACrD,CAAC,EAAQ,CAAU,CAAC,EACvB,OACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,WAAS,UAAU,UAAW,EAAyB,EAAG,GAAI,WAC/D,CACC,CAAA,CAER,CAAC,EACD,EAAmB,YAAc,qBCPjC,MAAa,GAAA,EAAA,EAAA,KAAA,EAA8C,CAAE,WAAU,aAAa,GAAO,YAAW,sBAAqB,GAAG,KAAY,CACxI,IAAM,GAAA,EAAA,EAAA,YAAA,CACH,GAAqC,CACpC,IAAsB,CAAC,CAAC,CAAK,CAC/B,EACA,CAAC,CAAmB,CACtB,EACA,OACE,EAAA,EAAA,IAAA,CAAC,KAAD,CACE,KAAK,kBACL,cAAa,GACb,MAAO,CAAE,KAAM,EAAG,OAAA,GAA+B,MAAA,GAAqB,SAAA,EAAuB,EAC7F,WAAA,EAAA,EAAA,GAAA,CAAc,EAAwB,CAAE,UAAS,CAAC,EAAG,CAAS,EAC9D,GAAI,YAEJ,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,YAAU,mBACV,UAAU,oFACV,QAAS,GAAK,CACZ,EAAE,eAAe,EACjB,EAAE,gBAAgB,CACpB,YAEA,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,aAAW,aAAa,QAAS,EAAY,gBAAiB,CAA0B,CAAA,CAC/F,CAAA,CACH,CAAA,CAER,CAAC,EACD,EAAkB,YAAc,oBClBhC,MAAa,GAAA,EAAA,EAAA,KAAA,KAAyD,CACpE,GAAM,CAAE,QAAO,aAAY,eAAc,oBAAoB,GAAM,EAAkB,EAErF,MADI,CAAC,GAAc,CAAC,EAAqB,MAEvC,EAAA,EAAA,IAAA,CAAC,QAAD,CAAO,WAAA,EAAA,EAAA,GAAA,CAAc,EAAkB,EAAG,qBAAqB,WAC5D,MAAM,KAAK,CAAE,OAAQ,CAAkB,CAAC,CAAC,CAAC,KAAK,EAAG,KACjD,EAAA,EAAA,IAAA,CAAC,KAAD,CAAgB,YAAU,YAAY,aAAY,EAAO,WAAA,EAAA,EAAA,GAAA,CAAc,EAAiB,EAAG,yBAAyB,WACjH,EAAM,cAAc,CAAC,CAAC,KAAK,EAAQ,IAAW,CAC7C,IAAM,EAAW,EAAO,YAAY,EAC9B,EAAW,EAAO,SAAS,MAAM,EACjC,EAAY,EAAO,SAAS,OAAO,EAuCzC,OAtCI,EAAO,KAAO,WAEd,EAAA,EAAA,IAAA,CAAC,KAAD,CAEE,YAAU,kBACV,WAAU,EAAO,GACjB,YAAW,EACX,MAAO,CACL,MAAO,EACT,EACA,UAAW,EAAyB,YAEpC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wCAA0C,CAAA,CACvD,EAVG,GAAG,EAAO,GAAG,GAAG,GAUnB,EAGJ,EAAO,KAAO,UAEd,EAAA,EAAA,IAAA,CAAC,KAAD,CAEE,YAAU,kBACV,WAAU,EAAO,GACjB,YAAW,EACX,cAAa,GACb,MAAO,CACL,KAAM,EACN,OAAQ,GACR,MAAA,GACA,SAAA,EACF,EACA,UAAW,EAAwB,CAAE,SAAU,MAAO,CAAC,YAEvD,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,uCACb,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,oCAAsC,CAAA,CAClD,CAAA,CACH,EAhBG,GAAG,EAAO,GAAG,GAAG,GAgBnB,GAIN,EAAA,EAAA,IAAA,CAAC,KAAD,CAEE,WAAU,EAAO,GACjB,YAAW,EACX,gBAAe,IAAA,GACf,gBAAe,EAAO,KAAO,EAAM,cAAc,CAAC,CAAC,EAAM,cAAc,CAAC,CAAC,OAAS,EAAE,CAAC,IAAM,IAAA,GAC3F,iBAAgB,EAAO,KAAO,EAAM,cAAc,CAAC,CAAC,EAAE,CAAC,IAAM,IAAA,GAC7D,MAAO,CACL,OAAQ,EAAA,GAAmC,EAC3C,KAAM,IAAa,QAAU,OAAO,GAAa,SAAW,GAAG,EAAS,IAAM,IAAA,GAC9E,MAAO,IAAa,SAAW,OAAO,GAAc,SAAW,GAAG,EAAU,IAAM,IAAA,GAClF,MAAO,kBAAkB,EAAO,GAAG,eACnC,SAAU,EAAO,UAAU,QAAU,kBAAkB,EAAO,GAAG,kBAAoB,IAAA,GACrF,SAAU,EAAO,UAAU,QAAU,kBAAkB,EAAO,GAAG,kBAAoB,IAAA,EACvF,EACA,UAAW,EAAkB,CAC3B,SAAU,EAAO,YAAY,EAC7B,YAAa,EAAO,KAAO,EAAM,qBAAqB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,GACxE,WAAY,EAAO,KAAO,EAAM,oBAAoB,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAM,oBAAoB,CAAC,CAAC,EAAE,CAAC,QAAQ,OAAS,EAAE,EAAE,EACxH,CAAC,YAED,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,UAAW,EAAuB,CAChC,SAAW,EAAO,UAAU,MAAoB,UAAY,OAC9D,CAAC,YAED,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,wCAA0C,CAAA,CACtD,CAAA,CACH,EA3BG,GAAG,EAAO,GAAG,GAAG,GA2BnB,CAER,CAAC,CACC,EA3EK,CA2EL,CACL,CACI,CAAA,CAEX,CAAC,EAEY,GAAA,EAAA,EAAA,KAAA,KAAuD,CAClE,GAAM,CAAE,UAAS,sBAAuB,EAAkB,EAE1D,OADK,GAEH,EAAA,EAAA,IAAA,CAAA,EAAA,SAAA,CAAA,SACG,IACC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAA0B,EAAG,MAAO,CAAE,UAAW,GAAsB,OAAQ,YAC7F,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4CAAf,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,QAAD,CAAS,YAAa,EAAG,KAAM,EAAK,CAAA,GACpC,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,SAAG,kBAAmB,CAAA,CACnB,GACF,CAAA,CAEP,CAAA,EAXiB,IAavB,CAAC,EACD,EAAoB,YAAc,sBCpHlC,MAAa,GAAA,EAAA,EAAA,KAAA,EAAsC,CAAE,YAAW,WAAU,GAAG,MAEzE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,KAAK,eAAe,WAAA,EAAA,EAAA,GAAA,CAAc,EAAoB,EAAG,CAAS,EAAG,GAAI,EAC3E,UACE,CAAA,CAER,EACD,EAAc,YAAc,gBCH5B,SAAS,GAAmB,EAAkB,EAAkB,EAAqC,CACnG,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,EACT,IAAK,MACH,OAAO,EAAO,QAAQ,EAAG,IAAM,EAAI,EAAG,CAAC,EACzC,IAAK,MACH,OAAO,EAAO,SAAW,EAAI,EAAI,EAAO,QAAQ,EAAG,IAAM,EAAI,EAAG,CAAC,EAAI,EAAO,OAC9E,IAAK,MACH,OAAO,EAAO,SAAW,EAAI,EAAI,KAAK,IAAI,GAAG,CAAM,EACrD,IAAK,MACH,OAAO,EAAO,SAAW,EAAI,EAAI,KAAK,IAAI,GAAG,CAAM,CACvD,CACF,CAEA,SAAS,EAAqB,EAA+C,EAAyB,CACpG,OAAO,EACJ,IAAI,GAAK,CACR,IAAM,EAAI,EAAE,SAAS,CAAK,EAE1B,OADU,OAAO,GAAM,SAAW,OAAO,CAAC,EAAI,OAAO,GAAM,SAAW,EAAI,GAE5E,CAAC,CAAC,CACD,OAAO,GAAK,CAAC,OAAO,MAAM,CAAC,CAAC,CACjC,CAEA,MAAa,GAAA,EAAA,EAAA,KAAA,KAA8B,CACzC,GAAM,CAAE,SAAU,EAAkB,EAC9B,CAAE,qBAAsB,EAAsB,EAG9C,GAAA,EAAA,EAAA,QAAA,KAAwB,EAAM,gBAAgB,CAAC,CAAC,EAAE,EAAE,SAAW,CAAC,EAAG,CAAC,EAAM,gBAAgB,CAAC,CAAC,EAE5F,GAAA,EAAA,EAAA,QAAA,KAA+B,EAAQ,KAAK,GAAM,EAAE,OAAO,UAAU,MAAoB,WAAW,EAAG,CAAC,CAAO,CAAC,EAGhH,GAAA,EAAA,EAAA,QAAA,KAA6B,EAAM,oBAAoB,CAAC,CAAC,SAAU,CAAC,EAAO,CAAiB,CAAC,EAE7F,GAAA,EAAA,EAAA,QAAA,KAAwB,EAAM,YAAY,CAAC,CAAC,KAAM,CAAC,CAAK,CAAC,EAEzD,EAAa,EAAa,OAAS,EAAI,EAAe,EAEtD,GAAA,EAAA,EAAA,QAAA,KAAiC,CACrC,IAAM,EAAwC,CAAC,EAC/C,IAAK,IAAM,KAAU,EAAS,CAC5B,IAAM,EAAO,EAAO,OAAO,UAAU,MAAoB,YACzD,GAAI,CAAC,EAAK,SACV,IAAM,EAAS,EAAqB,EAAY,EAAO,EAAE,EACzD,EAAO,EAAO,IAAM,GAAmB,EAAW,OAAQ,EAAQ,EAAI,IAAI,CAC5E,CACA,OAAO,CACT,EAAG,CAAC,EAAS,CAAU,CAAC,EAElB,EAAqB,EAAM,SAAS,CAAC,CAAC,cACtC,EAAgB,EAAmB,MAAQ,CAAC,EAC5C,EAAiB,EAAmB,OAAS,CAAC,EAC9C,EAAqB,EAAQ,KAAK,GAAK,EAAe,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GACvE,EAAmB,CAAC,GAAG,CAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,GAAK,EAAc,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GAEzF,GAAI,CAAC,EAAgB,OAAO,KAE5B,IAAM,EAAgB,EAAa,OAAS,EAAI,GAAG,EAAa,SAAW,GAAG,EAAQ,SAEtF,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,KAAK,mBAAmB,UAAW,EAAuB,WAC5D,EAAQ,IAAI,GAAU,CACrB,IAAM,EAAQ,EAAO,GACf,EAAW,EAAc,SAAS,CAAK,EAAK,OAAmB,EAAe,SAAS,CAAK,EAAK,QAAqB,GACtH,EAAc,IAAU,EACxB,EAAa,IAAU,EAEvB,EAAO,IAAa,OAAS,GAAG,EAAO,OAAO,SAAS,MAAM,EAAE,IAAM,IAAA,GACrE,EAAQ,IAAa,QAAU,GAAG,EAAO,OAAO,SAAS,OAAO,EAAE,IAAM,IAAA,GAE9E,GAAI,IAAU,SACZ,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAEE,KAAK,sBACL,cAAY,OACZ,MAAO,CAAE,KAAM,MAAO,MAAO,MAAoB,EACjD,WAAA,EAAA,EAAA,GAAA,CAAc,EAAwB,CAAE,SAAU,OAAQ,YAAa,GAAO,WAAY,EAAM,CAAC,EAAG,gBAAgB,YAEpH,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,qEAA6D,CAAoB,CAAA,CAC9F,EAPE,CAOF,EAIT,GAAI,IAAU,UACZ,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAEE,KAAK,uBACL,MAAO,CAAE,MAAO,kBAAkB,EAAM,eAAgB,MAAO,KAAM,EACrE,UAAW,EAAwB,CAAE,SAAU,GAAO,YAAa,GAAO,WAAY,EAAM,CAAC,CAC9F,EAJM,CAIN,EAIL,IAAM,EAAe,EAAO,OAAO,UAAU,MAAoB,YAC3D,EAAkB,EAAiB,IAAU,KAEnD,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAEE,KAAK,oBACL,cAAa,EACb,MAAO,CACL,OACA,QACA,MAAO,kBAAkB,EAAM,cACjC,EACA,UAAW,EAAwB,CAAE,SAAU,GAAY,OAAQ,cAAa,YAAW,CAAC,WAE3F,GAAe,IAAoB,MAClC,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,MAAO,EAAiB,OAAQ,EAAY,OAAQ,OAAQ,EAAY,OAAQ,UAAW,EAAY,UAAW,KAAK,IAAM,CAAA,GAExI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,mCAA0B,GAAO,CAAA,CAEhD,EAfE,CAeF,CAET,CAAC,CACE,CAAA,CAET,CAAC,EACD,EAAiB,YAAc,mBChI/B,MAAa,GAAA,EAAA,EAAA,KAAA,EAAkC,CAAE,YAAW,WAAU,GAAG,MAErE,EAAA,EAAA,IAAA,CAAC,QAAD,CAAO,KAAK,aAAa,WAAA,EAAA,EAAA,GAAA,CAAc,GAAkB,EAAG,CAAS,EAAG,GAAI,EACzE,UACI,CAAA,CAEV,EACD,EAAY,YAAc,cCI1B,MAAa,GAAA,EAAA,EAAA,KAAA,EAAsD,CAAE,WAAU,YAAW,aAAY,UAAS,eAAgB,CAC7H,IAAM,GAAA,EAAA,EAAA,YAAA,KAAkC,CACtC,IAAY,MAAM,CACpB,EAAG,CAAC,CAAS,CAAC,EAER,GAAA,EAAA,EAAA,YAAA,KAAmC,CACvC,IAAa,OAAO,CACtB,EAAG,CAAC,CAAU,CAAC,EAET,GAAA,EAAA,EAAA,YAAA,KAAgC,CACpC,IAAU,EAAK,CACjB,EAAG,CAAC,CAAO,CAAC,EAEZ,OACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,QAAA,aACnB,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,KAAK,SAAS,WAAA,EAAA,EAAA,GAAA,CAAc,EAAmC,EAAG,CAAS,YACjF,EAAA,EAAA,IAAA,CAACC,EAAAA,qBAAD,CAAuB,CAAA,CACjB,CAAA,CACW,CAAA,GACrB,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,MAAM,MAAM,UAAU,qBACzC,EAAA,EAAA,KAAA,CAACC,EAAAA,kBAAD,CAAmB,UAAU,4FAA7B,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,KAAM,EAAW,UAAY,mBACrC,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAAkB,QAAS,WAA3B,CACG,CAAC,CAAC,GAAY,WACf,EAAA,EAAA,IAAA,CAACC,EAAAA,qBAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,WAAD,CAAY,UAAU,QAAU,CAAA,CACZ,CAAA,CACN,GACV,CAAA,GACV,EAAA,EAAA,KAAA,CAACH,EAAAA,SAAD,CAAU,KAAO,EAAuB,SAAZ,mBAA5B,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,iBAAD,CAAkB,QAAS,WAA3B,CACG,EAAW,UAAY,aACxB,EAAA,EAAA,IAAA,CAACC,EAAAA,qBAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACE,EAAAA,aAAD,CAAc,UAAU,QAAU,CAAA,CACd,CAAA,CACN,KAClB,EAAA,EAAA,KAAA,CAACH,EAAAA,iBAAD,CAAkB,QAAS,WAA3B,CACG,EAAW,UAAY,aACxB,EAAA,EAAA,IAAA,CAACC,EAAAA,qBAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACG,EAAAA,cAAD,CAAe,UAAU,QAAU,CAAA,CACf,CAAA,CACN,GACV,GACO,GACA,CAAA,CACT,CAAA,CAAA,CAElB,CAAC,EACD,EAAsB,YAAc,wBCxDpC,MAAa,GAAA,EAAA,EAAA,KAAA,EACV,CACC,YAAY,GACZ,WAAW,GACX,cAAc,GACd,aAAa,GACb,mBAAmB,GACnB,WACA,eACA,YACA,WACA,cACA,qBACA,GAAG,KACC,CACJ,IAAM,EAAY,GAAc,UAAU,MAAoB,SA4B9D,OACE,EAAA,EAAA,KAAA,CAAC,KAAD,CACE,KAAK,kBACL,cAAa,EACb,cAAa,EACb,MAAO,CAAE,QAAA,EAAA,EAAA,QAAA,KA9BJ,EAAA,GAAmC,IAAA,GACzC,CAAC,CAAQ,CA6BM,EAAG,MAAA,EAAA,EAAA,QAAA,KA3BM,CACzB,IAAM,EAAO,GAAc,WAAW,MAAM,EAC5C,OAAO,IAAa,QAAU,OAAO,GAAS,SAAW,GAAG,EAAK,IAAM,IAAA,EACzE,EAAG,CAAC,EAAU,CAAY,CAwBF,EAAG,OAAA,EAAA,EAAA,QAAA,KAtBC,CAC1B,IAAM,EAAO,GAAc,WAAW,OAAO,EAC7C,OAAO,IAAa,SAAW,OAAO,GAAS,SAAW,GAAG,EAAK,IAAM,IAAA,EAC1E,EAAG,CAAC,EAAU,CAAY,CAmBK,EAAG,OAAA,EAAA,EAAA,QAAA,KAhBzB,qBAAqB,EAAS,eACpC,CAAC,CAAQ,CAe0B,EAAG,UAAA,EAAA,EAAA,QAAA,KAZhC,GAAc,UAAU,QAAU,kBAAkB,EAAS,kBAAoB,IAAA,GACvF,CAAC,EAAU,CAAY,CAW+B,EAAG,UAAA,EAAA,EAAA,QAAA,KARnD,GAAc,UAAU,QAAU,kBAAkB,EAAS,kBAAoB,IAAA,GACvF,CAAC,EAAU,CAAY,CAOkD,CAAE,EAC1E,WAAA,EAAA,EAAA,GAAA,CACE,GAAsB,CACpB,SAAU,GAAY,QACtB,UAAW,IAAa,UACxB,aACA,cACA,UACF,CAAC,EACD,CACF,EACA,GAAI,WAfN,EAiBE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,gBAAiB,UAAc,CAAA,EAC7C,IACC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiC,WAAqB,YAAW,UAAW,EAAa,WAAY,EAAa,QAAS,CAAc,CAAA,CAEzI,GAER,CACF,EACA,EAAgB,YAAc,kBCxE9B,MAAa,GAAA,EAAA,EAAA,KAAA,EAAsD,CAAE,WAAU,oBAAmB,QAAO,0BAAyB,GAAG,KAAY,CAC/I,IAAM,GAAA,EAAA,EAAA,YAAA,CACH,GAAqC,CACpC,IAA0B,CAAC,CAAC,CAAK,CACnC,EACA,CAAC,CAAuB,CAC1B,EACA,OACE,EAAA,EAAA,IAAA,CAAC,KAAD,CACE,KAAK,oBACL,cAAa,GACb,MAAO,CAAE,KAAM,EAAG,OAAA,GAA8B,MAAA,GAAqB,SAAA,EAAuB,EAC5F,UAAW,EAAwB,CAAE,UAAS,CAAC,EAC/C,GAAI,YAEJ,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,UAAU,oDACV,QAAS,GAAK,CACZ,EAAE,eAAe,EACjB,EAAE,gBAAgB,CACpB,YAEA,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,aAAW,kBAAkB,QAAS,EAAmB,gBAAiB,CAA8B,CAAA,CAC/G,CAAA,CACH,CAAA,CAER,CAAC,EACD,EAAsB,YAAc,wBCvBpC,MAAa,GAAA,EAAA,EAAA,KAAA,EAAwC,CAAE,cAAa,YAAW,GAAG,KAAY,CAC5F,GAAM,CAAE,oBAAmB,qBAAoB,oBAAmB,qBAAoB,2BAA4B,EAAyB,EACrI,EAA2B,EAAmB,EAAE,EAAE,GAClD,EAAyB,EAAkB,EAAkB,OAAS,EAAE,EAAE,GAChF,OACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,KAAK,iBAAiB,WAAA,EAAA,EAAA,GAAA,CAAc,EAAqB,EAAG,CAAS,EAAG,GAAI,WAC7E,EAAY,QAAQ,KAAK,EAAQ,IAAU,CAC1C,IAAM,EAAY,EAAO,OAAO,aAAa,EACvC,EAAW,EAAmB,MAAM,SAAS,EAAO,EAAE,EAAI,OAAS,EAAmB,OAAO,SAAS,EAAO,EAAE,EAAI,QAAU,GAWnI,OAVI,EAAO,KAAO,UAEd,EAAA,EAAA,IAAA,CAAC,EAAD,CAEY,WACS,oBACM,yBAC1B,EAJM,EAAO,EAIb,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CAEa,YACD,WACV,YAAa,EAAO,KAAO,EAC3B,WAAY,EAAO,KAAO,EAC1B,iBAAkB,CAAC,CAAC,SAAU,SAAS,CAAC,CAAC,SAAS,EAAO,EAAE,EAC3D,SAAU,EAAO,GACjB,aAAc,EAAO,OACrB,QAAS,EAAO,QAChB,YAAa,EAAO,OAAO,IAC3B,mBAAoB,EAAO,OAAO,2CAEtB,EAAO,OAAO,UAAU,OAAQ,EAAO,WAAW,CAAC,CAChD,EAbV,GAAG,EAAO,GAAG,GAAG,GAaN,CAErB,CAAC,CACC,CAAA,CAER,CAAC,EACD,EAAe,YAAc,iBC7C7B,MAAa,GAAA,EAAA,EAAA,KAAA,EAA8C,CAAE,WAAU,GAAG,KAAY,CACpF,GAAM,CAAE,QAAO,eAAc,aAAc,EAA4B,EACjE,GAAA,EAAA,EAAA,OAAA,CAAoC,IAAI,EA+E9C,OA5EA,EAAA,EAAA,UAAA,KAAgB,CACd,GAAI,CAAC,EAAS,QAAS,OAEvB,IAAM,EAAU,EAAM,eAAe,EAEjC,EACE,EAAW,IAAI,eAAe,GAAW,CACzC,IAAU,IAAA,IAAW,qBAAqB,CAAK,EACnD,EAAQ,0BAA4B,CAClC,IAAM,EAAQ,EAAQ,GACtB,GAAI,CAAC,EAAO,OACZ,IAAM,EAAe,EAAM,OAC3B,GAAI,EAAE,aAAwB,kBAAmB,OACjD,IAAM,EAAwB,EAAM,YAAY,MAE1C,CAAE,KAAM,EAAoB,CAAC,EAAG,MAAO,EAAqB,CAAC,GAAM,EAAM,SAAS,CAAC,CAAC,cAEtF,EAAsB,EACtB,EAA+B,EAC/B,EAAyB,EACvB,EAAc,EAAQ,IAAI,GAAU,CACxC,GAAM,CAAE,MAAO,EACT,EAAY,IAAO,UAAY,IAAO,UACtC,EAAW,EAAkB,SAAS,CAAE,GAAK,EAAmB,SAAS,CAAE,EAC3E,EAAO,EAAO,QAAQ,EACtB,EAAU,EAAO,OAAO,UAAU,QAmBxC,OAjBI,GAEF,GAAe,GACR,CAAE,KAAI,OAAQ,GAAO,QAAM,GAGhC,GACF,GAAe,EACR,CAAE,KAAI,OAAQ,GAAO,MAAO,CAAK,GAGtC,EAAO,OAAO,UAAU,MAAQ,IAAS,KAC3C,GAAkB,EACX,CAAE,KAAI,OAAQ,GAAO,MAAO,CAAK,IAG1C,IACO,CAAE,KAAI,OAAQ,GAAM,SAAQ,EACrC,CAAC,EAEK,EAAiB,EAAwB,EAAc,EACvD,EAAe,EAAuB,EAAI,KAAK,IAAI,EAAG,KAAK,MAAM,EAAiB,CAAoB,CAAC,EAAI,EAE3G,EAAa,EAAa,QAAqB,iCAAiC,EAEtF,EAAY,QAAQ,GAAO,CACzB,GAAI,EAAI,OAAQ,CACd,IAAM,EAAa,EAAI,QAAU,KAAK,IAAI,EAAc,EAAI,OAAO,EAAI,EACvE,EAAa,MAAM,YAAY,YAAY,EAAI,GAAG,OAAQ,GAAG,GAAY,EACzE,EAAa,MAAM,YAAY,SAAS,EAAI,GAAG,OAAQ,GAAG,GAAY,EACtE,GAAY,MAAM,YAAY,SAAS,EAAI,GAAG,OAAQ,GAAG,GAAY,EACjE,EAAI,SACN,EAAa,MAAM,YAAY,SAAS,EAAI,GAAG,UAAW,GAAG,EAAI,SAAS,CAE9E,MACE,EAAa,MAAM,YAAY,YAAY,EAAI,GAAG,OAAQ,GAAG,EAAI,OAAO,EACxE,EAAa,MAAM,YAAY,SAAS,EAAI,GAAG,OAAQ,GAAG,EAAI,OAAO,EACrE,GAAY,MAAM,YAAY,SAAS,EAAI,GAAG,OAAQ,GAAG,EAAI,OAAO,CAExE,CAAC,CACH,CAAC,CACH,CAAC,EAED,OADA,EAAS,QAAQ,EAAS,OAAO,MACpB,CACP,IAAU,IAAA,IAAW,qBAAqB,CAAK,EACnD,EAAS,WAAW,CACtB,CACF,EAAG,CAAC,EAAM,SAAS,CAAC,CAAC,iBAAkB,EAAM,SAAS,CAAC,CAAC,aAAc,EAAM,SAAS,CAAC,CAAC,aAAa,CAAC,GAGnG,EAAA,EAAA,IAAA,CAAC,QAAD,CAAO,GAAI,EAAc,IAAK,EAAU,KAAK,oBAAoB,UAAW,GAAwB,EAAG,MAAO,CAAE,SAAU,CAAU,EAAG,GAAI,EACxI,UACI,CAAA,CAEX,CAAC,EACD,EAAkB,YAAc,oBCxFhC,MAAa,GAAA,EAAA,EAAA,KAAA,EAAkD,CAAE,WAAU,GAAG,KAAY,CACxF,GAAM,CAAE,kBAAmB,EAA8B,EACzD,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,GAAI,EAAgB,KAAK,sBAAsB,UAAW,GAA0B,EAAG,GAAI,EAC7F,UACE,CAAA,CAET,CAAC,EACD,EAAoB,YAAc,sBCJlC,MAAa,IAAA,EAAA,EAAA,KAAA,EAA0C,CAAE,mBAAoB,CAC3E,GAAM,CAAE,kBAAmB,EAA8B,EAEnD,CAAC,EAAe,IAAA,EAAA,EAAA,SAAA,CAA4D,MAAM,EAClF,CAAC,EAAO,IAAA,EAAA,EAAA,SAAA,CAA6B,CAAC,EAEtC,GAAA,EAAA,EAAA,YAAA,CAAkC,SAAY,CAClD,GAAI,CACF,EAAiB,UAAU,EAC3B,MAAM,IAAgB,EACtB,EAAiB,MAAM,CACzB,OAAS,EAAO,CACd,QAAQ,MAAM,4BAA6B,CAAK,EAChD,EAAiB,OAAO,CAC1B,CACF,EAAG,CAAC,CAAa,CAAC,EAclB,OAZA,EAAA,EAAA,UAAA,KAAgB,CACd,IAAM,EAAK,SAAS,cAAc,WAAW,EAAe,GAAG,EAC/D,GAAI,CAAC,EAAI,OACT,IAAM,EAAW,IAAI,eAAe,GAAW,CAC7C,EAAS,EAAQ,EAAE,CAAC,YAAY,KAAK,CACvC,CAAC,EAED,OADA,EAAS,QAAQ,CAAE,MACN,EAAS,WAAW,CACnC,EAAG,CAAC,CAAc,CAAC,EAEd,GAGH,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,sBAAsB,MAAO,CAAE,OAAM,YACjD,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,4EACZ,EAAA,EAAA,KAAA,CAAC,SAAD,CACE,KAAK,SACL,SAAU,IAAkB,WAC5B,UAAW,GAA4B,CAAE,MAAO,CAAc,CAAC,EAC/D,QAAS,WAJX,CAMG,IAAkB,SAAU,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAa,UAAU,QAAU,CAAA,EAC7D,IAAkB,aAAc,EAAA,EAAA,IAAA,CAACC,EAAAA,QAAD,CAAS,UAAU,qBAAuB,CAAA,EAC1E,IAAkB,UAAW,EAAA,EAAA,IAAA,CAACC,EAAAA,cAAD,CAAe,UAAU,oBAAsB,CAAA,EAC5E,IAAkB,QAAU,WAC5B,IAAkB,YAAc,cAChC,IAAkB,SAAW,eACxB,GACN,CAAA,CACF,CAAA,EAnBqB,IAqB7B,CAAC,EACD,GAAgB,YAAc,kBChD9B,MAAa,IAAA,EAAA,EAAA,KAAA,EAAgC,CAAE,MAAK,aAAY,WAAU,WAAU,GAAG,KAAY,CACjG,GAAM,CAAE,gBAAe,oBAAmB,qBAAoB,oBAAmB,qBAAoB,cAAe,EAAqB,EAEnI,GAAA,EAAA,EAAA,QAAA,KAAkC,EAAmB,MAAQ,CAAC,EAAG,CAAC,CAAkB,CAAC,EACrF,GAAA,EAAA,EAAA,QAAA,KAAmC,EAAmB,OAAS,CAAC,EAAG,CAAC,CAAkB,CAAC,EACvF,GAAA,EAAA,EAAA,QAAA,KAAyC,IAAqB,EAAE,EAAE,GAAI,CAAC,CAAkB,CAAC,EAC1F,GAAA,EAAA,EAAA,QAAA,KAAuC,IAAoB,EAAkB,OAAS,EAAE,EAAE,GAAI,CAAC,CAAiB,CAAC,EAEjH,GAAA,EAAA,EAAA,QAAA,KAAgC,EAAI,gBAAgB,CAAC,CAAC,KAAK,GAAK,EAAE,OAAO,KAAO,QAAQ,EAAG,CAAC,CAAG,CAAC,EAEhG,GAAA,EAAA,EAAA,YAAA,CACJ,GAAK,CACH,GAAI,EAAY,CACd,IAAM,EAAQ,EAAgB,EAAI,WAAW,GAAiB,IAAA,GAC9D,EAAW,EAAU,OAAO,GAAU,UAAY,OAAO,GAAU,SAAW,EAAQ,IAAA,EAAS,CACjG,MAAW,GACT,EAAI,eAAe,EAErB,EAAE,eAAe,EACjB,EAAE,gBAAgB,CACpB,EACA,CAAC,EAAe,EAAY,EAAK,EAAU,CAAe,CAC5D,EAEA,OACE,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,KAAK,YAAY,aAAY,EAAU,UAAW,EAAiB,EAAG,QAAS,EAAa,GAAI,WACjG,EAAI,gBAAgB,CAAC,CAAC,KAAK,EAAM,IAAU,CAC1C,IAAM,EAAe,EAAkB,SAAS,EAAK,OAAO,EAAE,EACxD,EAAgB,EAAmB,SAAS,EAAK,OAAO,EAAE,EAC1D,EAAW,EAAe,OAAS,EAAgB,QAAU,GA0BnE,OAzBI,EAAK,OAAO,KAAO,WAEnB,EAAA,EAAA,IAAA,CAAC,EAAD,CAEE,WAAU,EAAK,OAAO,GACtB,YAAW,EACX,gBAAe,GAAc,IAAA,GAC7B,OAAQ,EAAK,OACb,WAAY,EAAK,UAClB,EANM,GAAG,EAAK,GAAG,GAAG,GAMpB,EAGD,EAAK,OAAO,KAAO,UAEnB,EAAA,EAAA,IAAA,CAAC,EAAD,CAEE,WAAU,EAAK,OAAO,GACtB,YAAW,EACX,gBAAe,GAAc,IAAA,GACnB,WACV,WAAY,GAAqB,EACjC,oBAAqB,EAAK,IAAI,cAC/B,EAPM,GAAG,EAAK,GAAG,GAAG,GAOpB,GAIH,EAAA,EAAA,IAAA,CAAC,EAAD,CAEE,WAAU,EAAK,OAAO,GACtB,YAAW,EACX,gBAAe,GAAc,IAAA,GACnB,WACV,YAAa,EAAK,OAAO,KAAO,EAChC,WAAY,EAAK,OAAO,KAAO,EAC/B,MAAO,EAAK,OAAO,GACnB,SAAW,EAAK,OAAO,UAAU,MAAoB,UAAY,QACjE,OAAQ,EAAK,OACb,WAAY,EAAK,UAClB,EAXM,GAAG,EAAK,GAAG,GAAG,GAWpB,CAEL,CAAC,CACC,CAAA,CAER,CAAC,EACD,GAAW,YAAc,aC9EzB,MAAa,IAAA,EAAA,EAAA,KAAA,EAAwC,CAAE,YAAW,WAAU,GAAG,MAE3E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,KAAK,gBAAgB,WAAA,EAAA,EAAA,GAAA,CAAc,EAAqB,EAAG,CAAS,EAAG,GAAI,EAC7E,UACE,CAAA,CAER,EACD,GAAe,YAAc,iBCP7B,MAAa,IAAuD,CAAE,cAAe,CACnF,GAAM,CAAE,QAAO,iBAAkB,EAAkB,EAC7C,CAAE,qBAAsB,EAAsB,EAE9C,CAAE,QAAS,EAAM,YAAY,EAEnC,OACE,EAAA,EAAA,KAAA,CAACC,EAAAA,oBAAD,CACE,UAAU,aACV,MAAO,CAAE,UAAW,EAAM,QAAQ,qBAAsB,EACxD,UAAU,oIAHZ,EAKE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,YAAU,oBAAoB,UAAU,mCACtD,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,SACG,EAAM,gBAAgB,CAAC,CAAC,IAAI,IAC3B,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkD,aAAc,EAA3C,EAAY,EAA+B,CACjE,CACU,CAAA,GACb,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,CACG,EAAK,KAAK,EAAK,KAEP,EAAA,EAAA,IAAA,CAAC,GAAD,CAA8B,MAAK,WADvB,EAAkB,EAAI,MAAQ,GACiB,SAAU,CAAQ,EAA5D,EAAI,EAAwD,CACrF,EACA,IAAiB,EAAA,EAAA,IAAA,CAAC,GAAD,CAAgC,eAAgB,CAAA,CACvD,CAAA,CAAA,GACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAwB,CAAA,CACP,CAAA,CAAA,GACnB,EAAA,EAAA,IAAA,CAAC,EAAD,CAAsB,CAAA,CACH,CAAA,CAAA,CACP,CAAA,EACf,IACC,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,gBAAD,CAAkB,CAAA,EACjB,CACD,CAAA,CAAA,CAEe,GAEzB,ECNA,SAAS,GAAyB,EAA+B,CAC/D,OAAQ,EAAR,CACE,IAAK,MACH,MAAO,CAAE,KAAM,MAAO,OAAQ,CAAC,CAAE,EACnC,IAAK,aACH,MAAO,CAAE,KAAM,aAAc,MAAO,IAAK,EAC3C,IAAK,aACH,MAAO,CAAE,KAAM,YAAa,EAC9B,IAAK,SACH,MAAO,CAAE,KAAM,SAAU,SAAU,IAAK,EAC1C,IAAK,OACH,MAAO,CAAE,KAAM,OAAQ,SAAU,WAAY,MAAO,EAAG,EACzD,IAAK,UACH,MAAO,CAAE,KAAM,UAAW,MAAO,IAAK,CAC1C,CACF,CAOA,MAAM,IAAA,EAAA,EAAA,KAAA,EAAwF,CAAE,iBAAgB,cAAe,CAC7H,IAAM,GAAA,EAAA,EAAA,QAAA,MAAkD,CAAE,gBAAe,GAAI,CAAC,CAAc,CAAC,EAC7F,OAAO,EAAA,EAAA,IAAA,CAAC,EAAyB,SAA1B,CAA0C,QAAQ,UAA4C,CAAA,CACvG,CAAC,EACD,GAA4B,YAAc,8BAO1C,MAAM,IAAA,EAAA,EAAA,KAAA,EAAoF,CAAE,QAAO,eAAc,YAAW,cAAe,CACzI,IAAM,GAAA,EAAA,EAAA,QAAA,MAAgD,CAAE,QAAO,eAAc,WAAU,GAAI,CAAC,EAAO,EAAc,CAAS,CAAC,EAC3H,OAAO,EAAA,EAAA,IAAA,CAAC,EAAuB,SAAxB,CAAwC,QAAQ,UAA0C,CAAA,CACnG,CAAC,EACD,GAA0B,YAAc,4BAMxC,MAAM,IAAA,EAAA,EAAA,KAAA,EACH,CAAE,oBAAmB,qBAAoB,oBAAmB,qBAAoB,0BAAyB,cAAe,CACvH,IAAM,GAAA,EAAA,EAAA,QAAA,MACG,CAAE,oBAAmB,qBAAoB,oBAAmB,qBAAoB,yBAAwB,GAC/G,CAAC,EAAmB,EAAoB,EAAmB,EAAoB,CAAuB,CACxG,EACA,OAAO,EAAA,EAAA,IAAA,CAAC,EAAoB,SAArB,CAAqC,QAAQ,UAAuC,CAAA,CAC7F,CACF,EACA,GAAuB,YAAc,yBAMrC,MAAM,IAAA,EAAA,EAAA,KAAA,EAAwE,CAAE,aAAY,eAAc,UAAS,oBAAmB,cAAe,CACnJ,IAAM,GAAA,EAAA,EAAA,QAAA,MAA0C,CAAE,aAAY,eAAc,UAAS,mBAAkB,GAAI,CAAC,EAAY,EAAS,CAAiB,CAAC,EACnJ,OAAO,EAAA,EAAA,IAAA,CAAC,EAAiB,SAAlB,CAAkC,QAAQ,UAAoC,CAAA,CACvF,CAAC,EACD,GAAoB,YAAc,sBAMlC,MAAM,IAAA,EAAA,EAAA,KAAA,EACH,CAAE,gBAAe,oBAAmB,qBAAoB,oBAAmB,qBAAoB,aAAY,cAAe,CACzH,IAAM,GAAA,EAAA,EAAA,QAAA,MACG,CACL,gBACA,oBACA,qBACA,oBACA,qBACA,YACF,GACA,CAAC,EAAe,EAAmB,EAAoB,EAAmB,EAAoB,CAAU,CAC1G,EACA,OAAO,EAAA,EAAA,IAAA,CAAC,EAAgB,SAAjB,CAAiC,QAAQ,UAAmC,CAAA,CACrF,CACF,EACA,GAAmB,YAAc,qBAkCjC,MAAa,IAIX,CACA,QAEA,aAAa,GACb,eAAe,GACf,YAAY,GACZ,oBAAoB,EAEpB,OACA,UACA,YAEA,oBAAoB,CAAC,EACrB,qBAAqB,CAAC,EAEtB,gBACA,aACA,iBACA,kBAEA,gBACA,qBACA,UACA,cAEA,oBAAoB,CAAC,EACrB,iBAEA,WAAU,CAAC,EACX,qBACA,oBAAoB,GAEpB,cACA,gBAEA,eACwE,CACxE,IAAM,IAAA,EAAA,EAAA,MAAA,CAAuB,EACvB,IAAA,EAAA,EAAA,MAAA,CAAqB,EAErB,CAAC,EAAqB,KAAA,EAAA,EAAA,SAAA,CAAmC,EAAK,EAE9D,CAAC,EAAc,IAAA,EAAA,EAAA,SAAA,CAA+C,CAAC,CAAC,EAChE,CAAC,EAAe,IAAA,EAAA,EAAA,SAAA,CAAiD,CACrE,MAAO,EACP,KAAM,CAAC,SAAU,GAAG,CAAiB,CACvC,CAAC,EACK,CAAC,EAAU,IAAA,EAAA,EAAA,SAAA,CAAuC,CAAC,CAAC,EACpD,CAAC,EAAe,IAAA,EAAA,EAAA,SAAA,CAA6C,CAAC,CAAC,EAE/D,GAAA,EAAA,EAAA,YAAA,CACJ,IACE,EAAgB,CAAe,EAC/B,IAAiB,aAA2B,SAAW,EAAgB,CAAY,EAAI,CAAe,EAC/F,GAET,CAAC,EAAc,CAAc,CAC/B,EAEM,IAAA,EAAA,EAAA,YAAA,CACJ,GAAoB,CAClB,EAAiB,CAAgB,EACjC,IAAkB,aAA4B,SAAW,EAAiB,CAAa,EAAI,CAAgB,CAC7G,EACA,CAAC,EAAe,CAAe,CACjC,EAEM,GAAA,EAAA,EAAA,YAAA,CACH,GAAyB,CACxB,IAAM,EAAO,EAAyC,KAAK,GAAK,EAAE,KAAO,CAAY,EACrF,GAAI,CAAC,EAAK,OACV,IAAM,EAA0B,CAC9B,GAAI,GAAG,EAAa,GAAG,OAAO,WAAW,IACzC,eACA,MAAO,GAAyB,EAAI,IAAI,CAC1C,EACA,EAAiB,GAAQ,CACvB,IAAM,EAAO,CAAC,GAAG,EAAM,CAAS,EAEhC,OADA,IAAiB,CAAI,EACd,CACT,CAAC,CACH,EACA,CAAC,EAAmB,CAAc,CACpC,EAEM,GAAA,EAAA,EAAA,YAAA,CACH,GAAqB,CACpB,EAAiB,GAAQ,CACvB,IAAM,EAAO,EAAK,OAAO,GAAK,EAAE,KAAO,CAAQ,EAE/C,OADA,IAAiB,CAAI,EACd,CACT,CAAC,CACH,EACA,CAAC,CAAc,CACjB,EAEM,GAAA,EAAA,EAAA,YAAA,EACH,EAAkB,IAAuB,CACxC,EAAiB,GAAQ,CACvB,IAAM,EAAO,EAAK,IAAI,GAAM,EAAE,KAAO,EAAW,CAAE,GAAG,EAAG,OAAM,EAAI,CAAE,EAEpE,OADA,IAAiB,CAAI,EACd,CACT,CAAC,CACH,EACA,CAAC,CAAc,CACjB,EAEM,GAAA,EAAA,EAAA,QAAA,MACG,CACc,oBACnB,gBACA,YACA,eACA,cACF,GACA,CAAC,EAAmB,EAAe,EAAW,EAAc,CAAY,CAC1E,EAEM,GAAA,EAAA,EAAA,cAAA,CAA6B,CAC3B,OACG,UACT,MAAO,CACL,eACA,gBACA,UACF,EACA,cAAe,CACb,eAAgB,GAChB,KAAM,IAAA,GACN,QAAS,IAAA,GACT,QAAS,IAAA,EACX,EACA,iBAAkB,WAClB,sBAAuB,MAEvB,oBAAqB,GACrB,mBAAoB,GACpB,qBAAsB,GACtB,wBAAyB,GAEzB,aAAc,GACd,kBAAmB,GACnB,mBAAoB,GAEpB,WAAY,GAAO,EAAI,QACvB,iBAAA,EAAA,EAAA,gBAAA,CAAiC,EACjC,oBAAA,EAAA,EAAA,mBAAA,CAAuC,EACvC,qBAAA,EAAA,EAAA,oBAAA,CAAyC,EAEzC,qBAAsB,EACtB,sBAAuB,GACvB,iBAAkB,CACpB,CAAC,EAGK,GAAA,EAAA,EAAA,QAAA,KAAqB,CACzB,GAAM,CAAE,QAAS,EAAM,YAAY,EACnC,OAAO,CACT,EAAG,CAAC,EAAM,YAAY,CAAC,CAAC,KAAM,EAAM,SAAS,CAAC,CAAC,aAAa,CAAC,EAEvD,GAAA,EAAA,EAAA,QAAA,KACG,CAAC,GAAc,CAAC,GAAgB,EAAK,SAAW,EACtD,CAAC,EAAM,EAAY,CAAY,CAAC,EAG7B,IAAA,EAAA,EAAA,QAAA,MACG,CACL,QACA,QAEA,UACA,aACA,eACA,YACA,oBAEA,YAEA,gBACA,qBAEA,UACA,cAEA,WACA,qBACA,oBAEA,cACA,eACF,GACA,CACE,EACA,EAEA,EACA,EACA,EACA,EACA,EAEA,EAEA,EACA,EACA,EAAM,SAAS,CAAC,CAAC,cACjB,EAAM,SAAS,CAAC,CAAC,SAEjB,EACA,EAEA,GACA,EACA,EAEA,EACA,CACF,CACF,EAGM,GAAA,EAAA,EAAA,QAAA,KACG,EAAM,SAAS,EACrB,CAAC,EAAM,SAAS,CAAC,CAAC,EAGf,GAAA,EAAA,EAAA,QAAA,KACG,EAAM,qBAAqB,EACjC,CAAC,EAAM,qBAAqB,CAAC,CAAC,EAE3B,GAAA,EAAA,EAAA,QAAA,KACG,EAAW,aACjB,CAAC,EAAW,YAAY,CAAC,EAEtB,GAAA,EAAA,EAAA,QAAA,KACG,EAAW,cACjB,CAAC,EAAW,aAAa,CAAC,EAGvB,GAAA,EAAA,EAAA,QAAA,KACG,EAAM,oBAAoB,CAAC,CAAC,EAAE,EAAE,SAAW,CAAC,EAClD,CAAC,EAAM,SAAS,CAAC,CAAC,aAAa,CAAC,EAG7B,GAAA,EAAA,EAAA,QAAA,KACG,EAAM,qBAAqB,CAAC,CAAC,EAAE,EAAE,SAAW,CAAC,EACnD,CAAC,EAAM,SAAS,CAAC,CAAC,aAAa,CAAC,EAG7B,GAAA,EAAA,EAAA,QAAA,KACG,EAAM,aAAa,EACzB,CAAC,EAAM,aAAa,CAAC,CAAC,EAEnB,GAAA,EAAA,EAAA,YAAA,KAAwC,GAAuB,GAAQ,CAAC,CAAI,EAAG,CAAC,CAAC,EAEjF,GAAA,EAAA,EAAA,QAAA,MACG,CAAE,OAAQ,EAAqB,OAAQ,CAAoB,GAClE,CAAC,EAAqB,CAAmB,CAC3C,EAEA,OACE,EAAA,EAAA,IAAA,CAAC,GAAqB,SAAtB,CAA+B,MAAO,YACpC,EAAA,EAAA,IAAA,CAAC,GAAmB,SAApB,CAA6B,MAAO,YAClC,EAAA,EAAA,IAAA,CAAC,GAAa,SAAd,CAA8B,mBAC5B,EAAA,EAAA,IAAA,CAAC,GAAD,CAA6C,4BAC3C,EAAA,EAAA,IAAA,CAAC,GAAD,CAAkC,QAAqB,gBAAyB,sBAC9E,EAAA,EAAA,IAAA,CAAC,GAAD,CACqB,oBACC,qBACD,oBACC,qBACpB,wBAAyB,EAAM,gCAE/B,EAAA,EAAA,IAAA,CAAC,GAAD,CAAiC,aAA0B,eAAuB,UAA4B,8BAC5G,EAAA,EAAA,IAAA,CAAC,GAAD,CACiB,gBACI,oBACC,qBACD,oBACC,qBACR,aAEX,WACiB,CAAA,CACD,CAAA,CACC,CAAA,CACC,CAAA,CACA,CAAA,CACR,CAAA,CACI,CAAA,CACA,CAAA,CAEnC,ECrYA,SAAS,EAA4B,EAAwE,CAC3G,IAAM,GAAA,EAAA,EAAA,KAAA,CAAqB,CAAM,EACjC,MAAQ,KACN,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,SAAU,eAClB,EAAA,EAAA,IAAA,CAAC,EAAD,CAAe,GAAI,CAAQ,CAAA,CACnB,CAAA,CAEd,CAIA,MAAM,GAA2B,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC/B,oCAAA,CAAA,CAAA,CAAiD,KAAK,IAAM,CAAE,QAAS,EAAE,wBAAyB,EAAE,CACtG,EACM,GAAsB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC1B,8BAAA,CAAA,CAAA,CAA2C,KAAK,IAAM,CAAE,QAAS,EAAE,mBAAoB,EAAE,CAC3F,EACM,GAAwB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC5B,gCAAA,CAAA,CAAA,CAA6C,KAAK,IAAM,CAAE,QAAS,EAAE,qBAAsB,EAAE,CAC/F,EACM,GAAyB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC7B,iCAAA,CAAA,CAAA,CAA8C,KAAK,IAAM,CAAE,QAAS,EAAE,sBAAuB,EAAE,CACjG,EACM,GAAqB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACzB,6BAAA,CAAA,CAAA,CAA0C,KAAK,IAAM,CAAE,QAAS,EAAE,kBAAmB,EAAE,CACzF,EACM,GAA4B,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAChC,oCAAA,CAAA,CAAA,CAAiD,KAAK,IAAM,CAAE,QAAS,EAAE,yBAA0B,EAAE,CACvG,EACM,GAAoB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACxB,4BAAA,CAAA,CAAA,CAAyC,KAAK,IAAM,CAAE,QAAS,EAAE,iBAAkB,EAAE,CACvF,EACM,GAAsB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC1B,8BAAA,CAAA,CAAA,CAA2C,KAAK,IAAM,CAAE,QAAS,EAAE,mBAAoB,EAAE,CAC3F,EACM,GAAqB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACzB,6BAAA,CAAA,CAAA,CAA0C,KAAK,IAAM,CAAE,QAAS,EAAE,kBAAmB,EAAE,CACzF,EACM,GAAoB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACxB,4BAAA,CAAA,CAAA,CAAyC,KAAK,IAAM,CAAE,QAAS,EAAE,iBAAkB,EAAE,CACvF,EACM,GAAqB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACzB,6BAAA,CAAA,CAAA,CAA0C,KAAK,IAAM,CAAE,QAAS,EAAE,kBAAmB,EAAE,CACzF,EACM,GAAmB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACvB,0BAAA,CAAA,CAAA,CAAuC,KAAK,IAAM,CAAE,QAAS,EAAE,gBAAiB,EAAE,CACpF,EACM,GAA4B,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAChC,6BAAA,CAAA,CAAA,CAA0C,KAAK,IAAM,CAAE,QAAS,EAAE,yBAA0B,EAAE,CAChG,EACM,GAAyB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC7B,iCAAA,CAAA,CAAA,CAA8C,KAAK,IAAM,CAAE,QAAS,EAAE,sBAAuB,EAAE,CACjG,EACM,GAAsB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC1B,8BAAA,CAAA,CAAA,CAA2C,KAAK,IAAM,CAAE,QAAS,EAAE,mBAAoB,EAAE,CAC3F,EACM,GAA0B,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC9B,0BAAA,CAAA,CAAA,CAAuC,KAAK,IAAM,CAAE,QAAS,EAAE,uBAAwB,EAAE,CAC3F,EACM,GAAuB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC3B,+BAAA,CAAA,CAAA,CAA4C,KAAK,IAAM,CAAE,QAAS,EAAE,oBAAqB,EAAE,CAC7F,EACM,GAAsB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC1B,8BAAA,CAAA,CAAA,CAA2C,KAAK,IAAM,CAAE,QAAS,EAAE,mBAAoB,EAAE,CAC3F,EACM,GAAyB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC7B,qBAAA,CAAA,CAAA,CAAkC,KAAK,IAAM,CAAE,QAAS,EAAE,sBAAuB,EAAE,CACrF,EAIM,GAAgB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAAuC,uBAAA,CAAA,CAAA,CAAoC,KAAK,IAAM,CAAE,QAAS,EAAE,aAAc,EAAE,CAAC,EACpI,GAAuB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC3B,+BAAA,CAAA,CAAA,CAA4C,KAAK,IAAM,CAAE,QAAS,EAAE,oBAAqB,EAAE,CAC7F,EACM,GAAoB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAAuC,4BAAA,CAAA,CAAA,CAAyC,KAAK,IAAM,CAAE,QAAS,EAAE,iBAAkB,EAAE,CAAC,EACjJ,GAAiB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QACrB,wBAAA,CAAA,CAAA,CAAqC,KAAK,IAAM,CAAE,QAAS,EAAE,cAAe,EAAE,CAChF,EACM,GAAuB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC3B,wBAAA,CAAA,CAAA,CAAqC,KAAK,IAAM,CAAE,QAAS,EAAE,oBAAqB,EAAE,CACtF,EACM,GAAwB,MAAA,QAAA,QAAA,CAAA,CAAA,SAAA,QAC5B,wBAAA,CAAA,CAAA,CAAqC,KAAK,IAAM,CAAE,QAAS,EAAE,qBAAsB,EAAE,CACvF"}