@customafk/lunas-ui 0.2.33 → 0.2.35
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.
- package/dist/{alert-BC5Nss8t.mjs → alert-BbvPwf2x.mjs} +1 -1
- package/dist/{alert-BC5Nss8t.mjs.map → alert-BbvPwf2x.mjs.map} +1 -1
- package/dist/{alert-V73ULWoO.d.mts → alert-DGoFdiDI.d.cts} +7 -7
- package/dist/{alert-mTjrFpkB.d.cts → alert-DZlPX4MK.d.mts} +7 -7
- package/dist/{alert-4rfsFtN6.cjs → alert-DubR6Szk.cjs} +1 -1
- package/dist/{alert-4rfsFtN6.cjs.map → alert-DubR6Szk.cjs.map} +1 -1
- package/dist/{avatar-aVxo69zP.cjs → avatar-CqRl9dge.cjs} +1 -1
- package/dist/{avatar-aVxo69zP.cjs.map → avatar-CqRl9dge.cjs.map} +1 -1
- package/dist/{avatar-CK1R4r0j.mjs → avatar-m1LjDIil.mjs} +1 -1
- package/dist/{avatar-CK1R4r0j.mjs.map → avatar-m1LjDIil.mjs.map} +1 -1
- package/dist/{badge-utjRo-lW.mjs → badge-Bhbhmsic.mjs} +1 -1
- package/dist/{badge-utjRo-lW.mjs.map → badge-Bhbhmsic.mjs.map} +1 -1
- package/dist/{badge-DcQUUKY0.d.mts → badge-D1Un985K.d.cts} +6 -6
- package/dist/{badge-Cwb0fmkw.d.cts → badge-LtLg87DN.d.mts} +6 -6
- package/dist/{button-W7L4JgMw.d.mts → button-8OKxyueU.d.cts} +6 -6
- package/dist/{button-Bc-MAOOY.d.cts → button-CdjZ5QJ8.d.mts} +6 -6
- package/dist/{button-BqxBQ4Kr.mjs → button-CfPTDyoq.mjs} +2 -2
- package/dist/{button-BqxBQ4Kr.mjs.map → button-CfPTDyoq.mjs.map} +1 -1
- package/dist/{button.variants-CwcJHcI5.mjs → button.variants-B8aRZ52K.mjs} +1 -1
- package/dist/{button.variants-CwcJHcI5.mjs.map → button.variants-B8aRZ52K.mjs.map} +1 -1
- package/dist/{calendar-D8aRFw_F.mjs → calendar-BDhIfwPP.mjs} +2 -2
- package/dist/{calendar-D8aRFw_F.mjs.map → calendar-BDhIfwPP.mjs.map} +1 -1
- package/dist/{calendar-Bt0rlJ89.cjs → calendar-CMd11yg9.cjs} +1 -1
- package/dist/{calendar-Bt0rlJ89.cjs.map → calendar-CMd11yg9.cjs.map} +1 -1
- package/dist/cards/grid-product-card.mjs +1 -1
- package/dist/cards/product-card.mjs +1 -1
- package/dist/cards/simple-card.d.cts +2 -2
- package/dist/cards/simple-card.d.mts +2 -2
- package/dist/cards/simple-card.mjs +1 -1
- package/dist/{checkbox-BQ_TclX9.cjs → checkbox-BwDvS4De.cjs} +1 -1
- package/dist/{checkbox-BQ_TclX9.cjs.map → checkbox-BwDvS4De.cjs.map} +1 -1
- package/dist/{checkbox-CJsl9OjF.mjs → checkbox-CgHaRkuU.mjs} +1 -1
- package/dist/{checkbox-CJsl9OjF.mjs.map → checkbox-CgHaRkuU.mjs.map} +1 -1
- package/dist/{close-BMhGSmGs.mjs → close-B7OOMSZl.mjs} +1 -1
- package/dist/{close-BMhGSmGs.mjs.map → close-B7OOMSZl.mjs.map} +1 -1
- package/dist/{close-DUBEKxhw.cjs → close-DrCUWZt0.cjs} +1 -1
- package/dist/{close-DUBEKxhw.cjs.map → close-DrCUWZt0.cjs.map} +1 -1
- package/dist/{cms-layout-DDs0pHWh.cjs → cms-layout-BrubV8D8.cjs} +2 -2
- package/dist/{cms-layout-DDs0pHWh.cjs.map → cms-layout-BrubV8D8.cjs.map} +1 -1
- package/dist/{cms-layout-DHzRHAoI.mjs → cms-layout-C2-yysO2.mjs} +2 -2
- package/dist/{cms-layout-DHzRHAoI.mjs.map → cms-layout-C2-yysO2.mjs.map} +1 -1
- package/dist/{command-CTdjZi1F.cjs → command-DiXzSGc8.cjs} +2 -2
- package/dist/{command-CTdjZi1F.cjs.map → command-DiXzSGc8.cjs.map} +1 -1
- package/dist/{command-Bvauothg.mjs → command-FnbrPZ7_.mjs} +2 -2
- package/dist/{command-Bvauothg.mjs.map → command-FnbrPZ7_.mjs.map} +1 -1
- package/dist/data-display/country.d.cts +1 -1
- package/dist/data-display/country.d.mts +1 -1
- package/dist/data-display/country.mjs +1 -1
- package/dist/data-display/date-tooltip.mjs +1 -1
- package/dist/data-display/date.mjs +1 -1
- package/dist/data-display/name.mjs +1 -1
- package/dist/data-display/phone-number.mjs +1 -1
- package/dist/data-display/role-badge.d.cts +1 -1
- package/dist/data-display/role-badge.d.mts +1 -1
- package/dist/data-display/role-badge.mjs +1 -1
- package/dist/data-display/statistic.cjs +1 -2
- package/dist/data-display/statistic.d.mts +5 -5
- package/dist/data-display/statistic.mjs +1 -2
- package/dist/data-display/user.cjs +1 -1
- package/dist/data-display/user.mjs +1 -1
- package/dist/{date-BQ0c19uk.mjs → date-CFgc7pK3.mjs} +1 -1
- package/dist/{date-BQ0c19uk.mjs.map → date-CFgc7pK3.mjs.map} +1 -1
- package/dist/dialog-D1sWnn6n.cjs +2 -0
- package/dist/dialog-D1sWnn6n.cjs.map +1 -0
- package/dist/{dialog-CxPqgAES.d.cts → dialog-DolY0CYG.d.mts} +12 -12
- package/dist/dialog-EGFZeITu.mjs +2 -0
- package/dist/dialog-EGFZeITu.mjs.map +1 -0
- package/dist/{dialog-B8CvBgRs.d.mts → dialog-aguemTG1.d.cts} +12 -12
- package/dist/dialogs/confirm-dialog.mjs +1 -1
- package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
- package/dist/dialogs/detail-dialog/components/sidebar.d.cts +26 -26
- package/dist/dialogs/detail-dialog/components/sidebar.d.mts +26 -26
- package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
- package/dist/dialogs/detail-dialog/index.cjs +1 -1
- package/dist/dialogs/detail-dialog/index.mjs +1 -1
- package/dist/dialogs/error-dialog.mjs +1 -1
- package/dist/dialogs/loading-dialog.cjs +1 -1
- package/dist/dialogs/loading-dialog.mjs +1 -1
- package/dist/{dist-DdGJ50nX.mjs → dist-BQGL-YKY.mjs} +1 -1
- package/dist/{dist-DdGJ50nX.mjs.map → dist-BQGL-YKY.mjs.map} +1 -1
- package/dist/{drawer-C3o6IEeq.cjs → drawer-B6C8-Ndu.cjs} +1 -1
- package/dist/{drawer-C3o6IEeq.cjs.map → drawer-B6C8-Ndu.cjs.map} +1 -1
- package/dist/{drawer-j9wcVE50.mjs → drawer-CMD7JWH8.mjs} +1 -1
- package/dist/{drawer-j9wcVE50.mjs.map → drawer-CMD7JWH8.mjs.map} +1 -1
- package/dist/{dropdown-menu-DMwvWoxe.cjs → dropdown-menu-Bz7oMQ36.cjs} +1 -1
- package/dist/{dropdown-menu-DMwvWoxe.cjs.map → dropdown-menu-Bz7oMQ36.cjs.map} +1 -1
- package/dist/{dropdown-menu-B_uBxY94.mjs → dropdown-menu-C6tRSumY.mjs} +1 -1
- package/dist/{dropdown-menu-B_uBxY94.mjs.map → dropdown-menu-C6tRSumY.mjs.map} +1 -1
- package/dist/features/descriptions/index.cjs +1 -1
- package/dist/features/descriptions/index.d.cts +6 -6
- package/dist/features/descriptions/index.d.mts +4 -4
- package/dist/features/descriptions/index.mjs +1 -1
- package/dist/features/search-modal/index.cjs +1 -1
- package/dist/features/search-modal/index.d.mts +2 -2
- package/dist/features/search-modal/index.mjs +1 -1
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.d.cts +2 -2
- package/dist/features/tables/index.d.mts +3 -3
- package/dist/features/tables/index.mjs +1 -1
- package/dist/features/tanstack-form/index.cjs +1 -1
- package/dist/features/tanstack-form/index.d.cts +1 -1
- package/dist/features/tanstack-form/index.d.mts +1 -1
- package/dist/features/tanstack-form/index.mjs +1 -1
- package/dist/features/text-editor/index.cjs +1 -1
- package/dist/features/text-editor/index.d.cts +1 -1
- package/dist/features/text-editor/index.d.mts +1 -1
- package/dist/features/text-editor/index.mjs +1 -1
- package/dist/{field-B8RhxRCu.mjs → field-DhgAIueI.mjs} +2 -2
- package/dist/{field-B8RhxRCu.mjs.map → field-DhgAIueI.mjs.map} +1 -1
- package/dist/{field-BxFpcOV1.cjs → field-pfL7RWcN.cjs} +2 -2
- package/dist/{field-BxFpcOV1.cjs.map → field-pfL7RWcN.cjs.map} +1 -1
- package/dist/{flex-Bl5yzx6g.mjs → flex-BAcvp4lB.mjs} +1 -1
- package/dist/{flex-Bl5yzx6g.mjs.map → flex-BAcvp4lB.mjs.map} +1 -1
- package/dist/{heading-B1t9baTw.mjs → heading-woRh-IC7.mjs} +1 -1
- package/dist/{heading-B1t9baTw.mjs.map → heading-woRh-IC7.mjs.map} +1 -1
- package/dist/{image-C4gMBmyV.mjs → image-D2U1SBw5.mjs} +2 -2
- package/dist/{image-C4gMBmyV.mjs.map → image-D2U1SBw5.mjs.map} +1 -1
- package/dist/{index-3rfnp-Kj.d.mts → index-BhnqroF7.d.cts} +91 -42
- package/dist/{index-cSJtvD9W.d.mts → index-BqGaIQNn.d.mts} +6 -6
- package/dist/{index-B0tpV7YG.d.cts → index-C45OSg1W.d.mts} +91 -42
- package/dist/{index-BQEmU6gw.d.cts → index-CgEghb4N.d.cts} +380 -380
- package/dist/{index-CE6WacAh.d.mts → index-DfvBLw2O.d.mts} +380 -380
- package/dist/{index-DMUr1T2A.d.cts → index-DwS7a4RL.d.cts} +6 -6
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +9 -10
- package/dist/index.d.mts +9 -10
- package/dist/index.mjs +1 -1
- package/dist/{input-CKFQdvqY.mjs → input-5gk-Jv1y.mjs} +1 -1
- package/dist/{input-CKFQdvqY.mjs.map → input-5gk-Jv1y.mjs.map} +1 -1
- package/dist/{input-1ceJxxFI.cjs → input-BvzsfAUc.cjs} +1 -1
- package/dist/{input-1ceJxxFI.cjs.map → input-BvzsfAUc.cjs.map} +1 -1
- package/dist/{input-BkbJ_jDH.d.mts → input-CZrWdm_Y.d.cts} +6 -6
- package/dist/{input-DgwlkE9s.d.cts → input-DcbOSbQr.d.mts} +6 -6
- package/dist/{label-CE2m0U_j.mjs → label-D9uNQ9b_.mjs} +1 -1
- package/dist/{label-CE2m0U_j.mjs.map → label-D9uNQ9b_.mjs.map} +1 -1
- package/dist/{label-BHbqbBtO.cjs → label-eIyGIRyw.cjs} +1 -1
- package/dist/{label-BHbqbBtO.cjs.map → label-eIyGIRyw.cjs.map} +1 -1
- package/dist/layouts/cms-layout/index.cjs +1 -1
- package/dist/layouts/cms-layout/index.mjs +1 -1
- package/dist/layouts/flex.d.cts +8 -8
- package/dist/layouts/flex.d.mts +8 -8
- package/dist/layouts/flex.mjs +1 -1
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.mjs +1 -1
- package/dist/pages/FeatureDeveloping.d.cts +2 -2
- package/dist/pages/FeatureDeveloping.d.mts +2 -2
- package/dist/pages/FeatureDeveloping.mjs +1 -1
- package/dist/pages/FeatureFixing.d.cts +2 -2
- package/dist/pages/FeatureFixing.d.mts +2 -2
- package/dist/pages/FeatureFixing.mjs +1 -1
- package/dist/pages/LoginPage.cjs +1 -1
- package/dist/pages/LoginPage.d.cts +2 -2
- package/dist/pages/LoginPage.d.mts +2 -2
- package/dist/pages/LoginPage.mjs +1 -1
- package/dist/pages/NotAuthorized.d.cts +2 -2
- package/dist/pages/NotAuthorized.d.mts +2 -2
- package/dist/pages/NotAuthorized.mjs +1 -1
- package/dist/pages/NotFound.d.cts +2 -2
- package/dist/pages/NotFound.d.mts +2 -2
- package/dist/pages/NotFound.mjs +1 -1
- package/dist/pages/RegisterPage.cjs +1 -1
- package/dist/pages/RegisterPage.d.cts +2 -2
- package/dist/pages/RegisterPage.d.mts +2 -2
- package/dist/pages/RegisterPage.mjs +1 -1
- package/dist/pages/VerifyEmailPage.cjs +1 -1
- package/dist/pages/VerifyEmailPage.d.cts +2 -2
- package/dist/pages/VerifyEmailPage.d.mts +2 -2
- package/dist/pages/VerifyEmailPage.mjs +1 -1
- package/dist/{paragraph-J_QbLq9_.mjs → paragraph-CjstaJFj.mjs} +1 -1
- package/dist/{paragraph-J_QbLq9_.mjs.map → paragraph-CjstaJFj.mjs.map} +1 -1
- package/dist/{payment-layout-RldJzRGP.mjs → payment-layout-_ZM4uBy_.mjs} +2 -2
- package/dist/{payment-layout-RldJzRGP.mjs.map → payment-layout-_ZM4uBy_.mjs.map} +1 -1
- package/dist/{payment-layout-RVPi4-1C.cjs → payment-layout-fsYTkw3r.cjs} +2 -2
- package/dist/{payment-layout-RVPi4-1C.cjs.map → payment-layout-fsYTkw3r.cjs.map} +1 -1
- package/dist/{popover-BCzVvfnV.mjs → popover-DwgdOX8a.mjs} +2 -2
- package/dist/{popover-BCzVvfnV.mjs.map → popover-DwgdOX8a.mjs.map} +1 -1
- package/dist/{popover-Bnrgg4do.cjs → popover-fsTCOb6a.cjs} +2 -2
- package/dist/{popover-Bnrgg4do.cjs.map → popover-fsTCOb6a.cjs.map} +1 -1
- package/dist/{progress-BXWPPNt5.cjs → progress-CDYA2V-W.cjs} +1 -1
- package/dist/{progress-BXWPPNt5.cjs.map → progress-CDYA2V-W.cjs.map} +1 -1
- package/dist/{progress-BcEEbgJJ.mjs → progress-DCBKnTx0.mjs} +1 -1
- package/dist/{progress-BcEEbgJJ.mjs.map → progress-DCBKnTx0.mjs.map} +1 -1
- package/dist/{radio-group-Bv6w2woK.cjs → radio-group-B-M599Ys.cjs} +1 -1
- package/dist/{radio-group-Bv6w2woK.cjs.map → radio-group-B-M599Ys.cjs.map} +1 -1
- package/dist/{radio-group-KR6Ck-B9.mjs → radio-group-Y9bhdr55.mjs} +1 -1
- package/dist/{radio-group-KR6Ck-B9.mjs.map → radio-group-Y9bhdr55.mjs.map} +1 -1
- package/dist/{resizable-C7uLlTGB.cjs → resizable-DATSh0Du.cjs} +1 -1
- package/dist/{resizable-C7uLlTGB.cjs.map → resizable-DATSh0Du.cjs.map} +1 -1
- package/dist/{resizable-em2svgMz.mjs → resizable-DP1BQAF_.mjs} +1 -1
- package/dist/{resizable-em2svgMz.mjs.map → resizable-DP1BQAF_.mjs.map} +1 -1
- package/dist/{search-modal-zmavzZRx.cjs → search-modal-CYRJEDE-.cjs} +2 -2
- package/dist/{search-modal-zmavzZRx.cjs.map → search-modal-CYRJEDE-.cjs.map} +1 -1
- package/dist/{search-modal-DyOsqK-4.mjs → search-modal-DWu08xkE.mjs} +2 -2
- package/dist/{search-modal-DyOsqK-4.mjs.map → search-modal-DWu08xkE.mjs.map} +1 -1
- package/dist/{select-C2Ro2wmj.mjs → select-BAlA65tZ.mjs} +1 -1
- package/dist/{select-C2Ro2wmj.mjs.map → select-BAlA65tZ.mjs.map} +1 -1
- package/dist/{select-DHiTqZeX.cjs → select-Cib2aiw5.cjs} +1 -1
- package/dist/{select-DHiTqZeX.cjs.map → select-Cib2aiw5.cjs.map} +1 -1
- package/dist/{separator-yTKDuMWb.mjs → separator-C6s-YvlT.mjs} +1 -1
- package/dist/{separator-yTKDuMWb.mjs.map → separator-C6s-YvlT.mjs.map} +1 -1
- package/dist/{separator-jytY1CPq.cjs → separator-CBup_ah1.cjs} +1 -1
- package/dist/{separator-jytY1CPq.cjs.map → separator-CBup_ah1.cjs.map} +1 -1
- package/dist/{sheet-DDBCHwn6.mjs → sheet-Cj8hoftE.mjs} +1 -1
- package/dist/{sheet-DDBCHwn6.mjs.map → sheet-Cj8hoftE.mjs.map} +1 -1
- package/dist/{sheet-DuMrjidC.cjs → sheet-DAjZ-Q6Q.cjs} +1 -1
- package/dist/{sheet-DuMrjidC.cjs.map → sheet-DAjZ-Q6Q.cjs.map} +1 -1
- package/dist/{sidebar-BXrGXVxx.cjs → sidebar-Drasn0Bx.cjs} +2 -2
- package/dist/{sidebar-BXrGXVxx.cjs.map → sidebar-Drasn0Bx.cjs.map} +1 -1
- package/dist/{sidebar-De1RZMAG.mjs → sidebar-RcmDh50_.mjs} +2 -2
- package/dist/{sidebar-De1RZMAG.mjs.map → sidebar-RcmDh50_.mjs.map} +1 -1
- package/dist/{skeleton-Czl96pWA.mjs → skeleton-DupQ91XW.mjs} +1 -1
- package/dist/{skeleton-Czl96pWA.mjs.map → skeleton-DupQ91XW.mjs.map} +1 -1
- package/dist/{spinner-CWUvnJQw.mjs → spinner-BCnPYF1H.mjs} +1 -1
- package/dist/{spinner-CWUvnJQw.mjs.map → spinner-BCnPYF1H.mjs.map} +1 -1
- package/dist/{spinner-DgusnQMw.cjs → spinner-Bdta7BMp.cjs} +1 -1
- package/dist/{spinner-DgusnQMw.cjs.map → spinner-Bdta7BMp.cjs.map} +1 -1
- package/dist/statistic-Cm4nbkjQ.mjs +2 -0
- package/dist/statistic-Cm4nbkjQ.mjs.map +1 -0
- package/dist/statistic-DDDm5Om1.cjs +2 -0
- package/dist/statistic-DDDm5Om1.cjs.map +1 -0
- package/dist/{switch-DHsjxnFP.mjs → switch-BP7EPatj.mjs} +1 -1
- package/dist/{switch-DHsjxnFP.mjs.map → switch-BP7EPatj.mjs.map} +1 -1
- package/dist/{switch-0-9Zt33o.cjs → switch-Dbc77c_D.cjs} +1 -1
- package/dist/{switch-0-9Zt33o.cjs.map → switch-Dbc77c_D.cjs.map} +1 -1
- package/dist/tables-B3Ald6An.cjs +4 -0
- package/dist/tables-B3Ald6An.cjs.map +1 -0
- package/dist/tables-C3asiSD4.mjs +4 -0
- package/dist/tables-C3asiSD4.mjs.map +1 -0
- package/dist/{tanstack-form-Be6aIYAW.mjs → tanstack-form-BFX2-Tlo.mjs} +2 -2
- package/dist/{tanstack-form-Be6aIYAW.mjs.map → tanstack-form-BFX2-Tlo.mjs.map} +1 -1
- package/dist/{tanstack-form-CDgTokmf.cjs → tanstack-form-dHOZ76Jw.cjs} +2 -2
- package/dist/{tanstack-form-CDgTokmf.cjs.map → tanstack-form-dHOZ76Jw.cjs.map} +1 -1
- package/dist/{text-editor-CE_GkI7o.cjs → text-editor-BJBM0T1y.cjs} +1 -1
- package/dist/{text-editor-CE_GkI7o.cjs.map → text-editor-BJBM0T1y.cjs.map} +1 -1
- package/dist/{text-editor-CqC44BkO.mjs → text-editor-CbBJNn-4.mjs} +1 -1
- package/dist/{text-editor-CqC44BkO.mjs.map → text-editor-CbBJNn-4.mjs.map} +1 -1
- package/dist/{textarea-D0-Gltw6.mjs → textarea-7HDXcaK9.mjs} +1 -1
- package/dist/{textarea-D0-Gltw6.mjs.map → textarea-7HDXcaK9.mjs.map} +1 -1
- package/dist/{textarea-BB2WynyM.cjs → textarea-Byo8E8oi.cjs} +1 -1
- package/dist/{textarea-BB2WynyM.cjs.map → textarea-Byo8E8oi.cjs.map} +1 -1
- package/dist/{tooltip-BMdzWaaH.mjs → tooltip-BfBJRYpc.mjs} +1 -1
- package/dist/{tooltip-BMdzWaaH.mjs.map → tooltip-BfBJRYpc.mjs.map} +1 -1
- package/dist/{types-CuAlMviO.mjs → types-CFXgrpTm.mjs} +1 -1
- package/dist/{types-CuAlMviO.mjs.map → types-CFXgrpTm.mjs.map} +1 -1
- package/dist/{types-B2PQbMJL.d.mts → types-Cc_mLRAn.d.cts} +1 -1
- package/dist/{types-CLkAmCre.d.cts → types-YLu40dXY.d.mts} +1 -1
- package/dist/typography/paragraph.d.cts +5 -5
- package/dist/typography/paragraph.d.mts +3 -3
- package/dist/typography/paragraph.mjs +1 -1
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.mts +12 -12
- package/dist/ui/alert-dialog.mjs +1 -1
- package/dist/ui/alert.cjs +1 -1
- package/dist/ui/alert.d.cts +1 -1
- package/dist/ui/alert.d.mts +1 -1
- package/dist/ui/alert.mjs +1 -1
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.mts +2 -2
- package/dist/ui/avatar.cjs +1 -1
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.mts +4 -4
- package/dist/ui/avatar.mjs +1 -1
- package/dist/ui/badge.d.cts +1 -1
- package/dist/ui/badge.d.mts +1 -1
- package/dist/ui/badge.mjs +1 -1
- package/dist/ui/breadcrumb.d.cts +8 -8
- package/dist/ui/breadcrumb.d.mts +8 -8
- package/dist/ui/breadcrumb.mjs +1 -1
- package/dist/ui/button-group.cjs +1 -1
- package/dist/ui/button-group.d.cts +7 -7
- package/dist/ui/button-group.d.mts +7 -7
- package/dist/ui/button-group.mjs +1 -1
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.mts +1 -1
- package/dist/ui/button.mjs +1 -1
- package/dist/ui/buttons/add-new.mjs +1 -1
- package/dist/ui/buttons/edit.mjs +1 -1
- package/dist/ui/buttons/refresh.mjs +1 -1
- package/dist/ui/buttons/trash.mjs +1 -1
- package/dist/ui/buttons/upload-image.mjs +1 -1
- package/dist/ui/calendar.cjs +1 -1
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.mts +4 -4
- package/dist/ui/calendar.mjs +1 -1
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.mts +8 -8
- package/dist/ui/card.mjs +1 -1
- package/dist/ui/carousel.d.cts +7 -7
- package/dist/ui/carousel.d.mts +7 -7
- package/dist/ui/carousel.mjs +1 -1
- package/dist/ui/checkbox.cjs +1 -1
- package/dist/ui/checkbox.d.cts +2 -2
- package/dist/ui/checkbox.d.mts +2 -2
- package/dist/ui/checkbox.mjs +1 -1
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/collapsible.d.mts +4 -4
- package/dist/ui/command.cjs +1 -1
- package/dist/ui/command.d.cts +11 -11
- package/dist/ui/command.d.mts +11 -11
- package/dist/ui/command.mjs +1 -1
- package/dist/ui/context-menu.d.cts +16 -16
- package/dist/ui/context-menu.d.mts +16 -16
- package/dist/ui/dialog.cjs +1 -1
- package/dist/ui/dialog.d.cts +1 -1
- package/dist/ui/dialog.d.mts +1 -1
- package/dist/ui/dialog.mjs +1 -1
- package/dist/ui/drawer.cjs +1 -1
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.mts +11 -11
- package/dist/ui/drawer.mjs +1 -1
- package/dist/ui/dropdown-menu.cjs +1 -1
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.mts +16 -16
- package/dist/ui/dropdown-menu.mjs +1 -1
- package/dist/ui/empty.d.cts +9 -9
- package/dist/ui/empty.d.mts +9 -9
- package/dist/ui/field.cjs +1 -1
- package/dist/ui/field.d.cts +24 -24
- package/dist/ui/field.d.mts +24 -24
- package/dist/ui/field.mjs +1 -1
- package/dist/ui/file-uploader.cjs +1 -1
- package/dist/ui/file-uploader.d.cts +2 -2
- package/dist/ui/file-uploader.d.mts +2 -2
- package/dist/ui/file-uploader.mjs +1 -1
- package/dist/ui/form.cjs +1 -1
- package/dist/ui/form.d.cts +10 -10
- package/dist/ui/form.d.mts +10 -10
- package/dist/ui/form.mjs +1 -1
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.mts +4 -4
- package/dist/ui/image.mjs +1 -1
- package/dist/ui/input-otp.d.cts +5 -5
- package/dist/ui/input-otp.d.mts +5 -5
- package/dist/ui/input.cjs +1 -1
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.mts +1 -1
- package/dist/ui/input.mjs +1 -1
- package/dist/ui/inputs/search-input.cjs +1 -1
- package/dist/ui/inputs/search-input.d.cts +3 -3
- package/dist/ui/inputs/search-input.d.mts +3 -3
- package/dist/ui/inputs/search-input.mjs +1 -1
- package/dist/ui/item.cjs +1 -1
- package/dist/ui/item.d.cts +16 -16
- package/dist/ui/item.d.mts +16 -16
- package/dist/ui/item.mjs +1 -1
- package/dist/ui/label.cjs +1 -1
- package/dist/ui/label.d.cts +2 -2
- package/dist/ui/label.d.mts +2 -2
- package/dist/ui/label.mjs +1 -1
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/menubar.d.mts +17 -17
- package/dist/ui/multi-select.cjs +1 -1
- package/dist/ui/multi-select.d.cts +2 -2
- package/dist/ui/multi-select.d.mts +3 -3
- package/dist/ui/multi-select.mjs +1 -1
- package/dist/ui/navigation-menu.d.cts +11 -11
- package/dist/ui/navigation-menu.d.mts +11 -11
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.mts +9 -9
- package/dist/ui/pagination.mjs +1 -1
- package/dist/ui/popover.cjs +1 -1
- package/dist/ui/popover.d.cts +6 -6
- package/dist/ui/popover.d.mts +6 -6
- package/dist/ui/popover.mjs +1 -1
- package/dist/ui/progress.cjs +1 -1
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.mts +2 -2
- package/dist/ui/progress.mjs +1 -1
- package/dist/ui/radio-group.cjs +1 -1
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.mts +3 -3
- package/dist/ui/radio-group.mjs +1 -1
- package/dist/ui/resizable.cjs +1 -1
- package/dist/ui/resizable.d.cts +9 -9
- package/dist/ui/resizable.d.mts +9 -9
- package/dist/ui/resizable.mjs +1 -1
- package/dist/ui/scroll-area.d.cts +5 -5
- package/dist/ui/scroll-area.d.mts +5 -5
- package/dist/ui/select.cjs +1 -1
- package/dist/ui/select.d.cts +9 -9
- package/dist/ui/select.d.mts +9 -9
- package/dist/ui/select.mjs +1 -1
- package/dist/ui/separator.cjs +1 -1
- package/dist/ui/separator.d.cts +2 -2
- package/dist/ui/separator.d.mts +2 -2
- package/dist/ui/separator.mjs +1 -1
- package/dist/ui/sheet.cjs +1 -1
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.mts +9 -9
- package/dist/ui/sheet.mjs +1 -1
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.mts +2 -2
- package/dist/ui/skeleton.mjs +1 -1
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.mts +2 -2
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.mts +2 -2
- package/dist/ui/spinner.cjs +1 -1
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.mts +2 -2
- package/dist/ui/spinner.mjs +1 -1
- package/dist/ui/switch.cjs +1 -1
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.mts +2 -2
- package/dist/ui/switch.mjs +1 -1
- package/dist/ui/table.d.cts +17 -17
- package/dist/ui/table.d.mts +17 -17
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.mts +5 -5
- package/dist/ui/textarea.cjs +1 -1
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.mts +2 -2
- package/dist/ui/textarea.mjs +1 -1
- package/dist/ui/toggle-group.d.cts +3 -3
- package/dist/ui/toggle-group.d.mts +3 -3
- package/dist/ui/toggle.d.cts +4 -4
- package/dist/ui/toggle.d.mts +4 -4
- package/dist/ui/tooltip.d.cts +5 -5
- package/dist/ui/tooltip.d.mts +5 -5
- package/dist/ui/tooltip.mjs +1 -1
- package/dist/{user-DexjSvGZ.mjs → user-D8Skw8dI.mjs} +2 -2
- package/dist/{user-DexjSvGZ.mjs.map → user-D8Skw8dI.mjs.map} +1 -1
- package/dist/{user-CQY0YnAc.cjs → user-Dns1BKaT.cjs} +2 -2
- package/dist/{user-CQY0YnAc.cjs.map → user-Dns1BKaT.cjs.map} +1 -1
- package/package.json +1 -5
- package/dist/data-display/statistic.cjs.map +0 -1
- package/dist/data-display/statistic.mjs.map +0 -1
- package/dist/dialog-DEnyBH2X.cjs +0 -2
- package/dist/dialog-DEnyBH2X.cjs.map +0 -1
- package/dist/dialog-jqiIqxlm.mjs +0 -2
- package/dist/dialog-jqiIqxlm.mjs.map +0 -1
- package/dist/tables-BQ-QiA1V.mjs +0 -4
- package/dist/tables-BQ-QiA1V.mjs.map +0 -1
- package/dist/tables-LRWPOv2a.cjs +0 -4
- package/dist/tables-LRWPOv2a.cjs.map +0 -1
- package/dist/ui/sidebar.cjs +0 -2
- package/dist/ui/sidebar.cjs.map +0 -1
- package/dist/ui/sidebar.d.cts +0 -264
- package/dist/ui/sidebar.d.mts +0 -264
- package/dist/ui/sidebar.mjs +0 -2
- package/dist/ui/sidebar.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistic-Cm4nbkjQ.mjs","names":["options: Intl.NumberFormatOptions"],"sources":["../packages/components/data-display/statistic.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nconst statisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive-strong',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'lg',\n trend: 'neutral',\n },\n});\n\nexport type StatisticProps = VariantProps<typeof statisticVariants> & {\n /** Character used to separate the decimal part. Defaults to `'.'`. */\n decimalSeparator?: string;\n /** Character used to separate thousands groups. Defaults to `','`. */\n groupSeparator?: string;\n /** Optional node rendered before the numeric value (e.g. a currency symbol). */\n prefix?: React.ReactNode;\n /** Optional node rendered after the numeric value (e.g. a unit label). */\n suffix?: React.ReactNode;\n /** Number of decimal digits to display; omit to show all significant digits. */\n precision?: number;\n /** Rounding strategy applied before formatting. Defaults to `'round'`. */\n roundingMode?: 'round' | 'floor' | 'ceil';\n /** When `true`, pads the decimal part with trailing zeros up to `precision`. Defaults to `false`. */\n showTrailingZeros?: boolean;\n /** The numeric (or numeric-string) value to format and display. */\n value: number | string;\n /** Additional CSS classes applied to the wrapper element. */\n className?: string;\n /** Colour trend indicator: `'neutral'` (default), `'up'` (green), or `'down'` (red). */\n trend?: 'neutral' | 'up' | 'down';\n};\n\n/**\n * A memoised numeric display component with locale-aware formatting, optional prefix/suffix, trend colouring, and configurable rounding.\n *\n * @example\n * ```tsx\n * import { Statistic } from '@customafk/lunas-ui/data-display/statistic';\n *\n * <Statistic value={1234567.89} precision={2} prefix=\"$\" trend=\"up\" size=\"lg\" />\n * ```\n */\nexport const Statistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'lg',\n trend = 'neutral',\n value,\n className,\n }: StatisticProps) => {\n const applyRounding = useCallback(\n (num: number, precisionValue: number): number => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n },\n [roundingMode]\n );\n\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [applyRounding, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n return (\n <div data-slot=\"statistic\" className={cn(statisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nStatistic.displayName = 'Statistic';\n"],"mappings":"gNAMA,MAAM,EAAoB,EAAI,4EAA6E,CACzG,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACL,CACD,MAAO,CACL,QAAS,4BACT,GAAI,eACJ,KAAM,cACP,CACF,CACD,gBAAiB,CACf,KAAM,KACN,MAAO,UACR,CACF,CAAC,CAmCW,EAAY,GACtB,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,UACR,QACA,eACoB,CACpB,IAAM,EAAgB,GACnB,EAAa,IAAmC,CAC/C,IAAM,EAAa,IAAM,EACzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,EAAW,CAAG,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,IAG5C,CAAC,EAAa,CACf,CAEK,EAAgB,MAAwC,CAC5D,IAAMA,EAAoC,EAAE,CAS5C,OARI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAG7B,GACN,CAAC,EAAW,EAAkB,CAAC,CAE5B,EAAe,EAClB,GAAwB,CACvB,IAAI,EAAe,EAInB,OAHI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAU,EAEvC,EAAa,eAAe,QAAS,EAAc,EAE5D,CAAC,EAAe,EAAe,EAAU,CAC1C,CAEK,EAAiB,MAAsB,CAC3C,GAAI,OAAO,GAAU,SAEnB,OADI,OAAO,MAAM,EAAM,EAAI,CAAC,OAAO,SAAS,EAAM,CAAS,MACpD,EAAa,EAAM,CAE5B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,MAAM,CACjC,GAAI,CAAC,EAAc,MAAO,MAC1B,IAAM,EAAW,OAAO,EAAa,CAErC,OADI,OAAO,MAAM,EAAS,EAAI,CAAC,OAAO,SAAS,EAAS,CAAS,MAC1D,EAAa,EAAS,CAE/B,MAAO,OACN,CAAC,EAAO,EAAa,CAAC,CAEnB,EAAsB,MACtB,IAAqB,KAAO,IAAmB,IAAY,EACxD,EAAe,QAAQ,KAAM,EAAe,CAAC,QAAQ,MAAO,EAAiB,CACnF,CAAC,EAAgB,EAAkB,EAAe,CAAC,CAEtD,OACE,EAAC,MAAA,CAAI,YAAU,YAAY,UAAW,EAAG,EAAkB,CAAE,OAAM,QAAO,CAAC,CAAE,EAAU,WACpF,GAAU,EAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,CAC7D,EAAC,IAAA,CAAE,YAAU,2BAAmB,GAAwB,CACvD,GAAU,EAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,GACzD,EAGX,CACD,EAAU,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`react`),n=require(`@customafk/react-toolkit/utils`),r=require(`class-variance-authority`),i=require(`react/jsx-runtime`);const a=(0,r.cva)(`inline-flex items-center gap-1 font-number tabular-nums transition-colors`,{variants:{size:{xs:`text-xs`,sm:`text-sm`,md:`text-base`,lg:`text-lg`,xl:`text-xl`},trend:{neutral:`text-text-positive-strong`,up:`text-success`,down:`text-danger`}},defaultVariants:{size:`lg`,trend:`neutral`}}),o=(0,t.memo)(({decimalSeparator:e=`.`,groupSeparator:r=`,`,prefix:o,suffix:s,precision:c,roundingMode:l=`round`,showTrailingZeros:u=!1,size:d=`lg`,trend:f=`neutral`,value:p,className:m})=>{let h=(0,t.useCallback)((e,t)=>{let n=10**t;switch(l){case`floor`:return Math.floor(e*n)/n;case`ceil`:return Math.ceil(e*n)/n;default:return Math.round(e*n)/n}},[l]),g=(0,t.useMemo)(()=>{let e={};return typeof c==`number`&&c>=0&&(u&&(e.minimumFractionDigits=c),e.maximumFractionDigits=c),e},[c,u]),_=(0,t.useCallback)(e=>{let t=e;return typeof c==`number`&&c>=0&&(t=h(e,c)),t.toLocaleString(`en-US`,g)},[h,g,c]),v=(0,t.useMemo)(()=>{if(typeof p==`number`)return Number.isNaN(p)||!Number.isFinite(p)?`N/A`:_(p);if(typeof p==`string`){let e=p.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:_(t)}return`N/A`},[p,_]),y=(0,t.useMemo)(()=>e===`.`&&r===`,`?v:v.replace(/,/g,r).replace(/\./g,e),[v,e,r]);return(0,i.jsxs)(`div`,{"data-slot":`statistic`,className:(0,n.cn)(a({size:d,trend:f}),m),children:[o&&(0,i.jsx)(`span`,{"data-slot":`statistic-prefix`,children:o}),(0,i.jsx)(`p`,{"data-slot":`statistic-value`,children:y}),s&&(0,i.jsx)(`span`,{"data-slot":`statistic-suffix`,children:s})]})});o.displayName=`Statistic`,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=statistic-DDDm5Om1.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistic-DDDm5Om1.cjs","names":["options: Intl.NumberFormatOptions"],"sources":["../packages/components/data-display/statistic.tsx"],"sourcesContent":["'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nconst statisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive-strong',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'lg',\n trend: 'neutral',\n },\n});\n\nexport type StatisticProps = VariantProps<typeof statisticVariants> & {\n /** Character used to separate the decimal part. Defaults to `'.'`. */\n decimalSeparator?: string;\n /** Character used to separate thousands groups. Defaults to `','`. */\n groupSeparator?: string;\n /** Optional node rendered before the numeric value (e.g. a currency symbol). */\n prefix?: React.ReactNode;\n /** Optional node rendered after the numeric value (e.g. a unit label). */\n suffix?: React.ReactNode;\n /** Number of decimal digits to display; omit to show all significant digits. */\n precision?: number;\n /** Rounding strategy applied before formatting. Defaults to `'round'`. */\n roundingMode?: 'round' | 'floor' | 'ceil';\n /** When `true`, pads the decimal part with trailing zeros up to `precision`. Defaults to `false`. */\n showTrailingZeros?: boolean;\n /** The numeric (or numeric-string) value to format and display. */\n value: number | string;\n /** Additional CSS classes applied to the wrapper element. */\n className?: string;\n /** Colour trend indicator: `'neutral'` (default), `'up'` (green), or `'down'` (red). */\n trend?: 'neutral' | 'up' | 'down';\n};\n\n/**\n * A memoised numeric display component with locale-aware formatting, optional prefix/suffix, trend colouring, and configurable rounding.\n *\n * @example\n * ```tsx\n * import { Statistic } from '@customafk/lunas-ui/data-display/statistic';\n *\n * <Statistic value={1234567.89} precision={2} prefix=\"$\" trend=\"up\" size=\"lg\" />\n * ```\n */\nexport const Statistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'lg',\n trend = 'neutral',\n value,\n className,\n }: StatisticProps) => {\n const applyRounding = useCallback(\n (num: number, precisionValue: number): number => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n },\n [roundingMode]\n );\n\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [applyRounding, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n return (\n <div data-slot=\"statistic\" className={cn(statisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nStatistic.displayName = 'Statistic';\n"],"mappings":"gLAMA,MAAM,GAAA,EAAA,EAAA,KAAwB,4EAA6E,CACzG,SAAU,CACR,KAAM,CACJ,GAAI,UACJ,GAAI,UACJ,GAAI,YACJ,GAAI,UACJ,GAAI,UACL,CACD,MAAO,CACL,QAAS,4BACT,GAAI,eACJ,KAAM,cACP,CACF,CACD,gBAAiB,CACf,KAAM,KACN,MAAO,UACR,CACF,CAAC,CAmCW,GAAA,EAAA,EAAA,OACV,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,UACR,QACA,eACoB,CACpB,IAAM,GAAA,EAAA,EAAA,cACH,EAAa,IAAmC,CAC/C,IAAM,EAAa,IAAM,EACzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,EAAW,CAAG,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,EAAW,CAAG,IAG5C,CAAC,EAAa,CACf,CAEK,GAAA,EAAA,EAAA,aAAwD,CAC5D,IAAMA,EAAoC,EAAE,CAS5C,OARI,OAAO,GAAc,UAAY,GAAa,IAC5C,IACF,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,GAG7B,GACN,CAAC,EAAW,EAAkB,CAAC,CAE5B,GAAA,EAAA,EAAA,aACH,GAAwB,CACvB,IAAI,EAAe,EAInB,OAHI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAU,EAEvC,EAAa,eAAe,QAAS,EAAc,EAE5D,CAAC,EAAe,EAAe,EAAU,CAC1C,CAEK,GAAA,EAAA,EAAA,aAAuC,CAC3C,GAAI,OAAO,GAAU,SAEnB,OADI,OAAO,MAAM,EAAM,EAAI,CAAC,OAAO,SAAS,EAAM,CAAS,MACpD,EAAa,EAAM,CAE5B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,MAAM,CACjC,GAAI,CAAC,EAAc,MAAO,MAC1B,IAAM,EAAW,OAAO,EAAa,CAErC,OADI,OAAO,MAAM,EAAS,EAAI,CAAC,OAAO,SAAS,EAAS,CAAS,MAC1D,EAAa,EAAS,CAE/B,MAAO,OACN,CAAC,EAAO,EAAa,CAAC,CAEnB,GAAA,EAAA,EAAA,aACA,IAAqB,KAAO,IAAmB,IAAY,EACxD,EAAe,QAAQ,KAAM,EAAe,CAAC,QAAQ,MAAO,EAAiB,CACnF,CAAC,EAAgB,EAAkB,EAAe,CAAC,CAEtD,OACE,EAAA,EAAA,MAAC,MAAA,CAAI,YAAU,YAAY,WAAA,EAAA,EAAA,IAAc,EAAkB,CAAE,OAAM,QAAO,CAAC,CAAE,EAAU,WACpF,IAAU,EAAA,EAAA,KAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,EAC7D,EAAA,EAAA,KAAC,IAAA,CAAE,YAAU,2BAAmB,GAAwB,CACvD,IAAU,EAAA,EAAA,KAAC,OAAA,CAAK,YAAU,4BAAoB,GAAc,GACzD,EAGX,CACD,EAAU,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{Switch as n}from"radix-ui";function r({className:r,...i}){return t(n.Root,{"data-slot":`switch`,className:e(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,r),...i,children:t(n.Thumb,{"data-slot":`switch-thumb`,className:e(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}export{r as t};
|
|
2
|
-
//# sourceMappingURL=switch-
|
|
2
|
+
//# sourceMappingURL=switch-BP7EPatj.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-
|
|
1
|
+
{"version":3,"file":"switch-BP7EPatj.mjs","names":["Switch","SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\n/**\n * Accessible toggle switch built on Radix UI's Switch primitive, with animated thumb and primary/muted color states.\n *\n * @example\n * ```tsx\n * import { Switch } from '@customafk/lunas-ui/ui/switch';\n * import { Label } from '@customafk/lunas-ui/ui/label';\n *\n * <div className=\"flex items-center gap-2\">\n * <Switch id=\"notifications\" />\n * <Label htmlFor=\"notifications\">Enable notifications</Label>\n * </div>\n * ```\n */\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"8HAoBA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAACC,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EACT,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,EACD,CACD,GAAI,WAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-Bmb41Sf3.cjs`);let t=require(`@customafk/react-toolkit/utils`),n=require(`react/jsx-runtime`),r=require(`radix-ui`);function i({className:e,...i}){return(0,n.jsx)(r.Switch.Root,{"data-slot":`switch`,className:(0,t.cn)(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...i,children:(0,n.jsx)(r.Switch.Thumb,{"data-slot":`switch-thumb`,className:(0,t.cn)(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=switch-
|
|
2
|
+
//# sourceMappingURL=switch-Dbc77c_D.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-
|
|
1
|
+
{"version":3,"file":"switch-Dbc77c_D.cjs","names":["SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\n/**\n * Accessible toggle switch built on Radix UI's Switch primitive, with animated thumb and primary/muted color states.\n *\n * @example\n * ```tsx\n * import { Switch } from '@customafk/lunas-ui/ui/switch';\n * import { Label } from '@customafk/lunas-ui/ui/label';\n *\n * <div className=\"flex items-center gap-2\">\n * <Switch id=\"notifications\" />\n * <Label htmlFor=\"notifications\">Enable notifications</Label>\n * </div>\n * ```\n */\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs outline-none transition-all',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"6IAoBA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./button-Bu4ejNOW.cjs`),n=require(`./paragraph-D-JHj7EP.cjs`),r=require(`./flex-DYh2t8ft.cjs`),i=require(`./date-DtajzNoy.cjs`),a=require(`./badge-DMnKV_uW.cjs`),o=require(`./tooltip-DC6i1A25.cjs`),s=require(`./statistic-DDDm5Om1.cjs`),c=require(`./avatar-CqRl9dge.cjs`),l=require(`./separator-CBup_ah1.cjs`),u=require(`./dropdown-menu-Bz7oMQ36.cjs`),d=require(`./progress-CDYA2V-W.cjs`),f=require(`./checkbox-BwDvS4De.cjs`),p=require(`./spinner-Bdta7BMp.cjs`),m=require(`./resizable-DATSh0Du.cjs`),h=require(`./input-BvzsfAUc.cjs`),g=require(`./label-eIyGIRyw.cjs`),_=require(`./popover-fsTCOb6a.cjs`),v=require(`./select-Cib2aiw5.cjs`);let y=require(`lucide-react`),b=require(`react`),x=require(`@customafk/react-toolkit/utils`),S=require(`class-variance-authority`),C=require(`react/jsx-runtime`),ee=require(`@customafk/react-toolkit/color-hash`),w=require(`@tanstack/react-table`),te=require(`@tanstack/react-virtual`),ne=require(`@customafk/react-toolkit/hooks/useDebounceCallback`);const T=()=>(0,C.jsxs)(`div`,{className:`flex gap-0 text-text-positive-weak`,children:[(0,C.jsx)(y.MinusIcon,{size:16}),(0,C.jsx)(y.MinusIcon,{size:16})]}),re=({label:e,onClick:t,onRemove:n})=>e?n?(0,C.jsxs)(`div`,{className:`flex w-fit gap-x-0.5 rounded-full border border-border py-1 pr-2 pl-3 text-text-positive text-xs shadow-xs`,onClick:e=>{t?.(),e.stopPropagation(),e.preventDefault()},children:[e,(0,C.jsx)(`button`,{className:`cursor-pointer text-text-positive-weak hover:text-text-positive-strong`,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:(0,C.jsx)(y.XIcon,{size:12})})]}):(0,C.jsx)(`button`,{className:`w-fit rounded-full border border-border px-3 py-1 text-text-positive text-xs shadow-xs`,onClick:e=>{t?.(),e.stopPropagation(),e.preventDefault()},children:e}):(0,C.jsx)(T,{}),E=({value:e})=>e==null?(0,C.jsx)(T,{}):e===!1?(0,C.jsx)(y.XIcon,{size:14,strokeWidth:2,className:`text-danger-strong`}):(0,C.jsx)(y.CheckIcon,{size:14,strokeWidth:2,className:`text-success-strong`}),D=(0,b.memo)(({value:e,currency:t=`USD`,locale:n=`en-US`,display:r=`symbol`,size:i=`md`,colorize:a=!1})=>{let o=(0,b.useMemo)(()=>{let i=typeof e==`string`?Number(e.trim()):e;return i==null||Number.isNaN(i)||!Number.isFinite(i)?null:new Intl.NumberFormat(n,{style:`currency`,currency:t,currencyDisplay:r,minimumFractionDigits:2,maximumFractionDigits:2}).format(i)},[e,t,n,r]),s=(0,b.useMemo)(()=>{let t=typeof e==`string`?Number(e.trim()):e;return typeof t==`number`&&t<0},[e]);return o?(0,C.jsx)(`p`,{className:(0,x.cn)(`font-number tabular-nums`,i===`xs`&&`text-xs`,i===`sm`&&`text-sm`,i===`md`&&`text-base`,i===`lg`&&`text-lg`,i===`xl`&&`text-xl`,!a&&`text-text-positive`,a&&s&&`text-danger-strong`,a&&!s&&`text-success-strong`),children:o}):(0,C.jsx)(T,{})});D.displayName=`UITableCurrencyDisplay`;const O=({date:e})=>e==null?(0,C.jsx)(T,{}):(0,C.jsx)(o.r,{children:(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{asChild:!0,children:(0,C.jsx)(a.t,{className:`h-fit`,children:(0,C.jsx)(i.t,{date:e,format:`medium`,className:`font-normal text-white`})})}),(0,C.jsx)(o.n,{className:`rounded px-2`,children:(0,C.jsx)(i.t,{date:e,format:`full`,showTime:!0,className:`font-medium text-text-negative text-xs`})})]})}),ie=({content:e})=>e==null?(0,C.jsx)(T,{}):(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{children:(0,C.jsx)(n.t,{variant:`sm`,className:`line-clamp-2 whitespace-pre-line break-all`,children:e})}),(0,C.jsx)(o.n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,C.jsx)(n.t,{variant:`xs`,className:`whitespace-pre-line text-wrap break-keep text-text-negative-weak`,children:e}),(0,C.jsxs)(`p`,{className:`w-full text-end`,children:[e.toString().length,` chars`]})]})})]}),ae=({email:e,linkable:t=!0})=>{let[n,r]=(0,b.useState)(!1);return e?(0,C.jsx)(o.r,{children:(0,C.jsxs)(`div`,{className:`group flex items-center gap-x-1.5`,children:[(0,C.jsx)(y.MailIcon,{size:13,className:`shrink-0 text-text-positive-weak`}),t?(0,C.jsx)(`a`,{href:`mailto:${e}`,className:`truncate text-primary text-sm underline-offset-2 hover:underline`,onClick:e=>e.stopPropagation(),children:e}):(0,C.jsx)(`span`,{className:`truncate text-text-positive text-sm`,children:e}),(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{asChild:!0,children:(0,C.jsx)(`button`,{onClick:t=>{t.stopPropagation(),t.preventDefault(),navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),1500)})},className:`shrink-0 cursor-pointer text-text-positive-weak opacity-0 transition-opacity group-hover:opacity-100 hover:text-text-positive`,children:n?(0,C.jsx)(y.CheckIcon,{size:13,className:`text-success-strong`}):(0,C.jsx)(y.CopyIcon,{size:13})})}),(0,C.jsx)(o.n,{children:n?`Copied!`:`Copy email`})]})]})}):(0,C.jsx)(T,{})},oe=({items:e,maxVisible:t=3})=>{if(!e||e.length===0)return(0,C.jsx)(T,{});let n=e.slice(0,t),r=e.slice(t);return(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[n.map((e,t)=>(0,C.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-border bg-muted-weak px-2 py-0.5 text-text-positive text-xs`,children:e},t)),r.length>0&&(0,C.jsx)(o.r,{children:(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{asChild:!0,children:(0,C.jsxs)(`span`,{className:`inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs`,children:[`+`,r.length,` more`]})}),(0,C.jsx)(o.n,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:r.map((e,t)=>(0,C.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs`,children:e},t))})]})})]})},se=({items:e=[]})=>(0,C.jsxs)(u.t,{children:[(0,C.jsx)(u.h,{asChild:!0,children:(0,C.jsx)(t.t,{size:`sm`,variant:`ghost`,color:`secondary`,className:`size-9 rounded-full`,children:(0,C.jsx)(y.MoreVerticalIcon,{})})}),(0,C.jsx)(u.r,{children:(0,C.jsx)(u.i,{children:e.map(e=>(0,C.jsx)(u.a,{className:`px-3`,onSelect:t=>{e.onClick(e.id),t.preventDefault(),t.stopPropagation()},children:e.label},e.id))})})]}),k=({name:e})=>e?(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{children:(0,C.jsx)(n.t,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:e})}),(0,C.jsx)(o.n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,C.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:e}),(0,C.jsxs)(`p`,{className:`w-full text-end`,children:[e.length,` chars`]})]})})]}):(0,C.jsx)(T,{}),ce=({href:e,label:t})=>(0,C.jsxs)(`a`,{href:e,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[(0,C.jsx)(`span`,{children:t||e}),(0,C.jsx)(y.ExternalLinkIcon,{size:14})]}),le=({value:e})=>(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{asChild:!0,children:(0,C.jsx)(`p`,{className:`font-number text-text-positive text-sm tabular-nums`,children:e.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),(0,C.jsx)(o.n,{align:`start`,children:(0,C.jsx)(`p`,{className:`tabular-nums`,children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]}),A=(0,b.memo)(({value:e,showLabel:t=!0,successThreshold:n=70,warningThreshold:r=40})=>{if(e==null)return(0,C.jsx)(T,{});let i=Math.min(100,Math.max(0,e));return(0,C.jsxs)(`div`,{className:`flex w-full min-w-24 items-center gap-x-2`,children:[(0,C.jsx)(d.t,{value:i,className:(0,x.cn)(`flex-1`,i>=n?`[&>[data-slot=progress-indicator]]:bg-success`:i>=r?`[&>[data-slot=progress-indicator]]:bg-warning`:`[&>[data-slot=progress-indicator]]:bg-danger`)}),t&&(0,C.jsxs)(`span`,{className:`w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums`,children:[i,`%`]})]})});A.displayName=`UITableProgressDisplay`;const ue=({title:e,onClick:n})=>(0,C.jsxs)(o.t,{children:[(0,C.jsx)(o.i,{children:(0,C.jsx)(t.t,{type:`button`,variant:`ghost`,color:`danger`,size:`icon`,onClick:(0,b.useCallback)(async e=>{e.preventDefault(),e.stopPropagation(),await n?.()},[n]),children:(0,C.jsx)(y.Trash2Icon,{})})}),(0,C.jsx)(o.n,{children:(0,C.jsx)(`p`,{children:e||`Remove item from list table`})})]}),j=(e,t,n)=>{let r=10**t;switch(n){case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:return Math.round(e*r)/r}},M=(0,b.memo)(({decimalSeparator:e=`.`,groupSeparator:t=`,`,prefix:n,suffix:i,precision:a,roundingMode:o=`round`,showTrailingZeros:s=!1,size:c=`lg`,value:l=0})=>{let u=(0,b.useMemo)(()=>{let e={};return typeof a==`number`&&a>=0&&s&&(e.minimumFractionDigits=a),e.maximumFractionDigits=a,e},[a,s]),d=(0,b.useCallback)(e=>{let t=e;return typeof a==`number`&&a>=0&&(t=j(e,a,o)),t.toLocaleString(`en-US`,u)},[o,u,a]),f=(0,b.useMemo)(()=>{if(typeof l==`number`)return Number.isNaN(l)||!Number.isFinite(l)?`N/A`:d(l);if(typeof l==`string`){let e=l.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:d(t)}return`N/A`},[l,d]),p=(0,b.useMemo)(()=>e===`.`&&t===`,`?f:f.replace(/,/g,t).replace(/\./g,e),[f,e,t]);return p===`0`||p===`N/A`||!p?(0,C.jsx)(T,{}):(0,C.jsxs)(r.t,{padding:`none`,className:(0,x.cn)(`font-number text-lg text-text-positive tabular-nums`,c===`xs`&&`text-xs`,c===`sm`&&`text-sm`,c===`md`&&`text-base`,c===`lg`&&`text-lg`,c===`xl`&&`text-xl`),children:[n,(0,C.jsx)(`p`,{children:p}),i]})});M.displayName=`UITableStatisticDisplay`;const N=({value:e,colorMap:t,defaultColor:n=`muted`,variant:r=`soft`})=>e==null||e===``?(0,C.jsx)(T,{}):(0,C.jsx)(a.t,{variant:r,color:(t&&t[e])??n,size:`sm`,className:`min-w-16 justify-center capitalize`,children:e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g,` `)}),P=({uuid:e,username:t,email:i})=>(0,C.jsxs)(r.t,{wrap:!1,gap:`sm`,padding:`none`,children:[!e&&(0,C.jsx)(c.t,{className:`size-10 shadow-card`,children:(0,C.jsx)(c.n,{className:`bg-muted-weak`,children:(0,C.jsx)(y.UserRoundIcon,{size:28,className:`text-text-negative`})})}),e&&(0,C.jsx)(c.t,{className:`size-10 shadow-card`,children:(0,C.jsx)(c.n,{style:{backgroundColor:ee.colorHashLight.hex(e)},children:(0,C.jsx)(y.UserRoundIcon,{size:28,className:`text-white`})})}),(0,C.jsxs)(r.t,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[(0,C.jsx)(n.t,{className:`font-medium text-sm text-text-positive-weak`,children:t??`Unknown User`}),(0,C.jsx)(n.t,{variant:`sm`,className:`mt-0! text-text-positive-weak text-xs`,children:i})]})]}),F=(0,b.createContext)(null),I=()=>{let e=(0,b.use)(F);if(!e)throw Error(`useTableInnerWrapperContext must be used within a TableInnerWrapperProvider`);return e},L=(0,b.createContext)(null),R=()=>{let e=(0,b.use)(L);if(!e)throw Error(`useTableInnerTableContext must be used within a TableInnerTableProvider`);return e},de=(0,b.createContext)(null),z=()=>{let e=(0,b.use)(de);if(!e)throw Error(`useTableHeaderRowContext must be used within a TableHeaderRowProvider`);return e},B=(0,b.createContext)(null),V=()=>{let e=(0,b.use)(B);if(!e)throw Error(`useTableBodyContext must be used within a TableBodyProvider`);return e},H=(0,b.createContext)(null),U=()=>{let e=(0,b.use)(H);if(!e)throw Error(`useTableRowContext must be used within a TableRowProvider`);return e},fe=(0,b.createContext)(null),W=()=>{let e=(0,b.use)(fe);if(!e)throw Error(`useTableContext must be used within a TableProvider`);return e},pe=(0,b.createContext)(null),me=()=>{let e=(0,b.use)(pe);if(!e)throw Error(`useUITableFilterContext must be used within a UITableProvider`);return e},he=(0,b.createContext)(null),ge=()=>{let e=(0,b.use)(he);if(!e)throw Error(`useUITableAnalysisContext must be used within a UITableProvider`);return e},_e=(0,S.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`]),ve=(0,S.cva)([`sticky left-0 flex flex-1 items-center justify-center bg-transparent text-text-positive-weak opacity-100`]),ye=(0,S.cva)([`relative m-0 flex size-full flex-col flex-nowrap items-start justify-start gap-2`]),be=(0,S.cva)([`relative w-full flex-1 min-h-0 overflow-auto border-b border-b-border border-l border-l-border`]),xe=(0,S.cva)([`grid w-full table-fixed caption-bottom border-collapse border-spacing-0 flex-col content-start`]),Se=(0,S.cva)([`sticky top-0 z-20 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`]),Ce=(0,S.cva)([`flex`]),we=(0,S.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`}]}),Te=(0,S.cva)(`relative w-full,grid,[&_tr]:absolute,[&_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`.split(`,`)),Ee=(0,S.cva)([`group transition-colors hover:bg-muted-muted hover:[&_td]:bg-muted-muted! [&_td]:border-r [&_td]:border-r-border`]),G=(0,S.cva)([`group-hover:bg-muted-muted!`],{variants:{isPinned:{left:`sticky`,right:`sticky`,false:`relative`}},defaultVariants:{isPinned:void 0}}),De=(0,S.cva)([`sticky border-r-0! inset-y-0 right-0 z-50 flex items-center pr-4 group-hover:bg-muted-muted!`]),Oe=(0,S.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`}]}),ke=(0,S.cva)([`overflow-x-hidden`],{variants:{position:{start:`justify-start`,center:`justify-center`,end:`justify-end`}},defaultVariants:{position:`start`}}),Ae=(0,S.cva)([`shrink-0 flex w-full justify-center border-t border-border-weak font-medium`]),je=(0,S.cva)([`flex w-full`,`text-[13px] font-medium text-text-positive-weak`]),K=(0,S.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:``}}}),Me=(0,S.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`}}),q=(0,b.memo)(({height:e,className:t,children:n,...r})=>{let{isFetching:i,isRefetching:a,isEmpty:o}=V();return o||i||a?null:(0,C.jsx)(`tbody`,{slot:`table-body`,style:{height:e},className:(0,x.cn)(Te(),t),...r,children:n})});q.displayName=`UITableBody`;const J=(0,b.memo)(({isPinned:e=!1,isFirstCell:t=!1,isLastCell:n=!1,colId:r,position:i=`start`,column:a,getContext:o,...s})=>{let{innerTableId:c,table:l}=R(),u=(0,b.useRef)(null),d=(0,b.useRef)(null),f=(0,b.useMemo)(()=>{let t=a?.getStart(`left`);return e===`left`&&typeof t==`number`?`${t}px`:void 0},[e,a]),p=(0,b.useMemo)(()=>{let t=a?.getAfter(`right`);return e===`right`&&typeof t==`number`?`${t}px`:void 0},[e,a]),m=(0,b.useMemo)(()=>`calc(var(--col-${r}-size) * 1px)`,[r]),h=(0,b.useMemo)(()=>a?.columnDef.minSize?`calc(var(--col-${r}-minSize) * 1px)`:void 0,[r,a]),g=(0,b.useMemo)(()=>a?.columnDef.maxSize?`calc(var(--col-${r}-maxSize) * 1px)`:void 0,[r,a]),_=(0,b.useMemo)(()=>(0,w.flexRender)(a?.columnDef.cell,o()),[a,o]);return(0,b.useEffect)(()=>{u.current=document.querySelector(`table[id="${c}"]`)},[c]),(0,b.useEffect)(()=>{if(!d.current)return;let e=d.current.scrollWidth,t=a?.getSize();t!=null&&e>t&&u.current instanceof HTMLTableElement&&typeof r==`string`&&a?.columnDef.meta?.fitContent&&l.setColumnSizing(t=>({...t,[r]:e+32}))},[r,a,l]),(0,C.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":e,"data-lastcell":n||void 0,"data-firstcell":t||void 0,style:{left:f,right:p,width:m,minWidth:h,maxWidth:g},className:Oe({isPinned:e||void 0,isLastCell:n,isFirstCell:t}),...s,children:(0,C.jsx)(`div`,{ref:d,slot:`table-body-cell-inner`,className:ke({position:i}),children:_})})});J.displayName=`UITableCell`;const Y=(0,b.memo)(({virtualRowIndex:e,column:t,getContext:n,className:r,...i})=>{let a=(0,b.useMemo)(()=>(0,w.flexRender)(t?.columnDef.cell,n()),[t,n]);return(0,C.jsx)(`td`,{"data-col":`actions`,"data-cell":e,className:De(),...i,children:a})});Y.displayName=`UITableCellActions`;const Ne=60,Pe=60,Fe=20,Ie=20,X=(0,b.memo)(({isPinned:e,isSelected:t=!1,className:n,onToggleRowSelected:r,...i})=>{let a=(0,b.useCallback)(e=>{r?.(!!e)},[r]);return(0,C.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:(0,x.cn)(G({isPinned:e}),n),...i,children:(0,C.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,C.jsx)(f.t,{"aria-label":`Select Row`,checked:t,onCheckedChange:a})})})});X.displayName=`UITableCellSelect`;const Le=(0,b.memo)(()=>{let{table:e,isFetching:t,isRefetching:n,loadingDisplayRow:r=3}=W();return!t&&!n?null:(0,C.jsx)(`tbody`,{className:(0,x.cn)(Te(),`pointer-events-none`),children:Array.from({length:r}).map((t,n)=>(0,C.jsx)(`tr`,{"data-slot":`table-row`,"data-index":n,className:(0,x.cn)(Ee(),`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,C.jsx)(`td`,{"data-slot":`table-body-cell`,"data-col":t.id,"data-cell":r,style:{width:60},className:De(),children:(0,C.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})},`${t.id}-${r}`):t.id===`select`?(0,C.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:G({isPinned:`left`}),children:(0,C.jsx)(`div`,{className:`w-full flex justify-center`,children:(0,C.jsx)(`div`,{className:`size-4 bg-muted-muted rounded-full`})})},`${t.id}-${n}`):(0,C.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:Oe({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,C.jsx)(`div`,{className:ke({position:t.columnDef.meta?.position??`start`}),children:(0,C.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})})},`${t.id}-${r}`)})},n))})}),Z=(0,b.memo)(()=>{let{isEmpty:e,emptyDisplayHeight:t}=W();return e?(0,C.jsx)(C.Fragment,{children:e&&(0,C.jsx)(`div`,{className:ve(),style:{minHeight:t??`24rem`},children:(0,C.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,C.jsx)(y.BoxIcon,{strokeWidth:1,size:48}),(0,C.jsx)(`p`,{children:`Không có dữ liệu`})]})})}):null});Z.displayName=`UITableEmptyDisplay`;const Re=(0,b.memo)(({className:e,children:t,...n})=>(0,C.jsx)(`div`,{slot:`table-footer`,className:(0,x.cn)(Ae(),e),...n,children:t}));Re.displayName=`UITableFooter`;function ze(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 Be(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 Ve=(0,b.memo)(()=>{let{table:e}=W(),{rowSelectionState:t}=V(),n=(0,b.useMemo)(()=>e.getHeaderGroups()[0]?.headers??[],[e.getHeaderGroups()]),r=(0,b.useMemo)(()=>n.some(e=>e.column.columnDef.meta?.aggregation),[n]),i=(0,b.useMemo)(()=>e.getSelectedRowModel().flatRows,[e,t]),a=(0,b.useMemo)(()=>e.getRowModel().rows,[e]),o=i.length>0?i:a,c=(0,b.useMemo)(()=>{let e={};for(let t of n){let n=t.column.columnDef.meta?.aggregation;if(!n)continue;let r=Be(o,t.id);e[t.id]=ze(o.length,r,n.type)}return e},[n,o]),l=e.getState().columnPinning,u=l.left??[],d=l.right??[],f=n.find(e=>d.includes(e.id))?.id,p=[...n].reverse().find(e=>u.includes(e.id))?.id;if(!r)return null;let m=i.length>0?`${i.length}`:`${a.length}`;return(0,C.jsx)(`div`,{slot:`table-footer-row`,className:je(),children:n.map(e=>{let t=e.id,n=u.includes(t)?`left`:d.includes(t)?`right`:!1,r=t===f,i=t===p,a=n===`left`?`${e.column.getStart(`left`)}px`:void 0,o=n===`right`?`${e.column.getAfter(`right`)}px`:void 0;if(t===`select`)return(0,C.jsx)(`div`,{slot:`table-footer-select`,"data-pinned":`left`,style:{left:`0px`,width:`60px`},className:(0,x.cn)(K({isPinned:`left`,isFirstCell:!1,isLastCell:!1}),`justify-center`),children:(0,C.jsx)(`span`,{className:`truncate text-[11px] items-center text-text-positive-weak`,children:m})},t);if(t===`actions`)return(0,C.jsx)(`div`,{slot:`table-footer-actions`,style:{width:`calc(var(--col-${t}-size) * 1px)`,right:`0px`},className:K({isPinned:!1,isFirstCell:!1,isLastCell:!1})},t);let l=e.column.columnDef.meta?.aggregation,h=c[t]??null;return(0,C.jsx)(`div`,{slot:`table-footer-cell`,"data-pinned":n,style:{left:a,right:o,width:`calc(var(--col-${t}-size) * 1px)`},className:K({isPinned:n||`left`,isFirstCell:r,isLastCell:i}),children:l&&h!==null?(0,C.jsx)(s.t,{value:h,prefix:l.prefix,suffix:l.suffix,precision:l.precision,size:`sm`}):(0,C.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`})},t)})})});Ve.displayName=`UITableFooterRow`;const He=(0,b.memo)(({className:e,children:t,...n})=>(0,C.jsx)(`thead`,{slot:`table-head`,className:(0,x.cn)(Se(),e),...n,children:t}));He.displayName=`UITableHead`;const Ue=(0,b.memo)(({isPinned:e,onLeftPin:t,onRightPin:n,onUnpin:r,className:i})=>{let a=(0,b.useCallback)(()=>{t?.(`left`)},[t]),o=(0,b.useCallback)(()=>{n?.(`right`)},[n]),s=(0,b.useCallback)(()=>{r?.(!1)},[r]);return(0,C.jsxs)(u.t,{children:[(0,C.jsx)(u.h,{asChild:!0,children:(0,C.jsx)(`button`,{type:`button`,className:(0,x.cn)(_e(),i),children:(0,C.jsx)(y.EllipsisVerticalIcon,{})})}),(0,C.jsx)(u.r,{align:`end`,className:`w-64 p-4`,children:(0,C.jsxs)(u.i,{className:`*:data-[slot=dropdown-menu-item]:rounded-xs *:data-[slot=dropdown-menu-item]:p-2`,children:[(0,C.jsx)(b.Activity,{mode:e?`visible`:`hidden`,children:(0,C.jsxs)(u.a,{onClick:s,children:[!!e&&`Bỏ ghim`,(0,C.jsx)(u.d,{children:(0,C.jsx)(y.PinOffIcon,{className:`size-4`})})]})}),(0,C.jsxs)(b.Activity,{mode:e?`hidden`:`visible`,children:[(0,C.jsxs)(u.a,{onClick:a,children:[e?`Bỏ ghim`:`Ghim trái`,(0,C.jsx)(u.d,{children:(0,C.jsx)(y.MoveLeftIcon,{className:`size-4`})})]}),(0,C.jsxs)(u.a,{onClick:o,children:[e?`Bỏ ghim`:`Ghim phải`,(0,C.jsx)(u.d,{children:(0,C.jsx)(y.MoveRightIcon,{className:`size-4`})})]})]})]})})]})});Ue.displayName=`UITableHeadCellOption`;const We=(0,b.memo)(({isVisible:e=!0,isPinned:t=!1,isFirstCell:n=!1,isLastCell:r=!1,isOptionsVisible:i=!0,headerId:a,headerColumn:o,className:s,children:c,onColumnPin:l,onToggleVisibility:u,...d})=>{let f=o?.columnDef.meta?.position,p=(0,b.useMemo)(()=>t?20:void 0,[t]),m=(0,b.useMemo)(()=>{let e=o?.getStart?.(`left`);return t===`left`&&typeof e==`number`?`${e}px`:void 0},[t,o]),h=(0,b.useMemo)(()=>{let e=o?.getAfter?.(`right`);return t===`right`&&typeof e==`number`?`${e}px`:void 0},[t,o]),g=(0,b.useMemo)(()=>`calc(var(--header-${a}-size) * 1px)`,[a]),_=(0,b.useMemo)(()=>o?.columnDef.minSize?`calc(var(--col-${a}-minSize) * 1px)`:void 0,[a,o]),v=(0,b.useMemo)(()=>o?.columnDef.maxSize?`calc(var(--col-${a}-maxSize) * 1px)`:void 0,[a,o]);return(0,C.jsxs)(`th`,{slot:`table-head-cell`,"data-pinned":t,"data-header":a,style:{zIndex:p,left:m,right:h,width:g,minWidth:_,maxWidth:v},className:(0,x.cn)(we({isPinned:t||`false`,isActions:a===`actions`,isLastCell:r,isFirstCell:n,position:f}),s),...d,children:[(0,C.jsx)(`div`,{className:`truncate px-4`,children:c}),i&&(0,C.jsx)(Ue,{isPinned:t,isVisible:e,onLeftPin:l,onRightPin:l,onUnpin:l})]})});We.displayName=`UITableHeadCell`;const Ge=(0,b.memo)(({isPinned:e,isAllRowsSelected:t,style:n,onToggleAllRowsSelected:r,...i})=>{let a=(0,b.useCallback)(e=>{r?.(!!e)},[r]);return(0,C.jsx)(`th`,{slot:`table-header-cell`,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:G({isPinned:e}),...i,children:(0,C.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:(0,C.jsx)(f.t,{"aria-label":`Select All Rows`,checked:t,onCheckedChange:a})})})});Ge.displayName=`UITableHeadCellSelect`;const Ke=(0,b.memo)(({headerGroup:e,className:t,...n})=>{let{isAllRowsSelected:r,columnPinningState:i,leftPinnedHeaders:a,rightPinnedHeaders:o,onToggleAllRowsSelected:s}=z(),c=o[0]?.id,l=a[a.length-1]?.id;return(0,C.jsx)(`tr`,{slot:`table-head-row`,className:(0,x.cn)(Ce(),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,C.jsx)(Ge,{isPinned:a,isAllRowsSelected:r,onToggleAllRowsSelected:s},e.id):(0,C.jsx)(We,{isVisible:n,isPinned:a,isFirstCell:e.id===c,isLastCell:e.id===l,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,w.flexRender)(e.column.columnDef.header,e.getContext())},`${e.id}-${t}`)})})});Ke.displayName=`UITableHeadRow`;const qe=(0,b.memo)(({children:e,...t})=>{let{table:n,innerTableId:r,totalSize:i}=R(),a=(0,b.useRef)(null);return(0,b.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,C.jsx)(`table`,{id:r,ref:a,slot:`table-inner-table`,className:xe(),style:{minWidth:i},...t,children:e})});qe.displayName=`UITableInnerTable`;const Je=(0,b.memo)(({children:e,...t})=>{let{innerWrapperId:n}=I();return(0,C.jsx)(`div`,{id:n,slot:`table-inner-wrapper`,className:be(),...t,children:e})});Je.displayName=`UITableInnerWrapper`;const Ye=(0,b.memo)(({virtualRowIndex:e,virtualRowStart:t,fetchMoreData:n})=>{let{innerWrapperId:r}=I(),i=(0,b.useRef)(null),a=(0,b.useRef)(null),[o,s]=(0,b.useState)(`idle`),[c,l]=(0,b.useState)(0),u=(0,b.useCallback)(async()=>{try{s(`fetching`),await n?.(),s(`idle`)}catch(e){console.error(`Error fetching more data:`,e),s(`error`)}},[n]);return(0,b.useEffect)(()=>{if(i.current=document.querySelector(`div[id="${r}"]`),!i.current)return;let e=new ResizeObserver(e=>{l(e[0].contentRect.width)});return e.observe(i.current),()=>e.disconnect()},[r]),n?(0,C.jsx)(`tr`,{ref:a,"data-index":e,style:{transform:`translateY(${t}px)`,width:c},className:`sticky! left-0 h-10`,children:(0,C.jsx)(`td`,{className:`absolute left-0 flex w-full items-center justify-center text-xs`,children:(0,C.jsxs)(`button`,{type:`button`,disabled:o===`fetching`,className:Me({state:o}),onClick:u,children:[o===`idle`&&(0,C.jsx)(y.ChevronDown,{className:`size-4`}),o===`fetching`&&(0,C.jsx)(p.t,{className:`size-4 animate-spin`}),o===`error`&&(0,C.jsx)(y.AlertTriangle,{className:`size-4 text-danger`}),o===`idle`&&`Tải thêm`,o===`fetching`&&`Đang tải...`,o===`error`&&`Lỗi! Thử lại?`]})})}):null});Ye.displayName=`UITableLoadMore`;const Xe=(0,b.memo)(({row:e,isSelected:t,virtualRowIndex:n,virtualRowStart:r,children:i,...a})=>{let{keyOfClickRow:o,isAllRowsSelected:s,columnPinningState:c,leftPinnedHeaders:l,rightPinnedHeaders:u,onClickRow:d}=U(),f=(0,b.useMemo)(()=>c.left??[],[c]),p=(0,b.useMemo)(()=>c.right??[],[c]),m=(0,b.useMemo)(()=>u?.[0]?.id,[u]),h=(0,b.useMemo)(()=>l?.[l.length-1]?.id,[l]),g=(0,b.useCallback)(t=>{let r=o?e.original?.[o]:void 0;d?.(n,typeof r==`string`||typeof r==`number`?r:void 0),t.preventDefault(),t.stopPropagation()},[o,d,e,n]);return(0,C.jsx)(`tr`,{slot:`table-row`,"data-index":n,style:{transform:`translateY(${r}px)`},className:Ee(),onClick:g,...a,children:e.getVisibleCells().map((e,r)=>{let i=f.includes(e.column.id),a=p.includes(e.column.id),o=i?`left`:a?`right`:!1;return e.column.id===`actions`?(0,C.jsx)(Y,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,virtualRowIndex:n,column:e.column,getContext:e.getContext},`${e.id}-${r}`):e.column.id===`select`?(0,C.jsx)(X,{"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,C.jsx)(J,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:o,isFirstCell:e.column.id===m,isLastCell:e.column.id===h,colId:e.column.id,position:e.column.columnDef.meta?.position??`start`,column:e.column,getContext:e.getContext},`${e.id}-${r}`)})})});Xe.displayName=`UITableRow`;const Ze=(0,b.memo)(({className:e,children:t,...n})=>(0,C.jsx)(`div`,{slot:`table-wrapper`,className:(0,x.cn)(ye(),e),...n,children:t}));Ze.displayName=`UITableWrapper`;const Qe=({children:e})=>{let{table:t,fetchMoreData:n}=W(),{rowSelectionState:r}=V(),i=(0,b.useRef)(null),{rows:a}=t.getRowModel(),o=(0,te.useVirtualizer)({count:a.length+(n?1:0),estimateSize:()=>40,getScrollElement:()=>i.current,measureElement:typeof window<`u`&&navigator.userAgent.indexOf(`Firefox`)===-1?e=>e?.getBoundingClientRect().height:void 0,overscan:2}),s=(0,b.useMemo)(()=>`${o.getTotalSize()}px`,[o.getTotalSize()]);return(0,C.jsxs)(m.r,{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,C.jsxs)(m.n,{"data-slot":`table-scroll-host`,className:`relative flex flex-col`,children:[(0,C.jsxs)(Je,{ref:i,children:[(0,C.jsxs)(qe,{children:[(0,C.jsx)(He,{children:t.getHeaderGroups().map(e=>(0,C.jsx)(Ke,{headerGroup:e},e.id))}),(0,C.jsx)(q,{height:s,children:o.getVirtualItems().map(e=>{let t=a[e.index];if(!t&&n)return(0,C.jsx)(Ye,{virtualRowIndex:e.index,virtualRowStart:e.start,fetchMoreData:n},e.key);let i=r[t.id]===!0;return(0,C.jsx)(Xe,{ref:o.measureElement,row:t,isSelected:i,virtualRowIndex:e.index,virtualRowStart:e.start},e.key)})}),(0,C.jsx)(Le,{})]}),(0,C.jsx)(Z,{})]}),(0,C.jsx)(Re,{children:(0,C.jsx)(Ve,{})})]}),e&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(m.t,{}),e]})]})};function $e(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 et(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 tt={sum:`Tổng`,avg:`Trung bình`,count:`Đếm`,min:`Nhỏ nhất`,max:`Lớn nhất`},nt=(0,b.memo)(()=>{let{table:e,totalRows:t}=W(),{rowSelectionState:n}=V(),{isOpen:r,toggle:i}=ge(),a=(0,b.useMemo)(()=>e.getRowModel().rows,[e]),o=(0,b.useMemo)(()=>e.getSelectedRowModel().flatRows,[e,n]),c=(0,b.useMemo)(()=>e.getHeaderGroups()[0]?.headers??[],[e]),l=(0,b.useMemo)(()=>c.filter(e=>![`select`,`actions`].includes(e.id)).flatMap(e=>{let t=e.column.columnDef.meta?.aggregation;if(!t)return[];let n=t.label??(typeof e.column.columnDef.header==`string`?e.column.columnDef.header:e.id),r=et(a,e.id),i=o.length>0?et(o,e.id):null;return[{colId:e.id,header:n,aggregation:t,allValue:$e(a.length,r,t.type),selectedValue:i===null?null:$e(o.length,i,t.type)}]}),[c,a,o]);return(0,C.jsxs)(`div`,{"data-slot":`table-analysis-panel`,className:`w-full border-t border-border`,children:[(0,C.jsxs)(`button`,{type:`button`,className:(0,x.cn)(`flex w-full items-center justify-between px-4 py-2 text-sm font-medium text-text-positive`,`hover:bg-muted-bg-subtle transition-colors outline-none`,`focus-visible:ring-2 focus-visible:ring-primary-weak`),onClick:i,"aria-expanded":r,children:[(0,C.jsx)(`span`,{children:`Tổng quan dữ liệu`}),r?(0,C.jsx)(y.ChevronUpIcon,{size:14}):(0,C.jsx)(y.ChevronDownIcon,{size:14})]}),r&&(0,C.jsxs)(`div`,{className:`px-4 pb-4 pt-2 space-y-4`,children:[(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,C.jsx)(Q,{label:`Tổng bản ghi`,value:t??a.length}),(0,C.jsx)(Q,{label:`Hàng hiển thị`,value:a.length}),(0,C.jsx)(Q,{label:`Hàng đã chọn`,value:o.length,highlight:o.length>0})]}),l.length>0&&(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-text-positive-weak`,children:`Tóm tắt cột`}),(0,C.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border`,children:(0,C.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,C.jsx)(`thead`,{children:(0,C.jsxs)(`tr`,{className:`border-b border-border bg-muted-bg-subtle text-xs text-text-positive-weak`,children:[(0,C.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:`Cột`}),(0,C.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:`Kiểu`}),(0,C.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Tất cả hàng`}),o.length>0&&(0,C.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Hàng đã chọn`})]})}),(0,C.jsx)(`tbody`,{children:l.map((e,t)=>(0,C.jsxs)(`tr`,{className:(0,x.cn)(`border-b border-border last:border-b-0`,t%2==1&&`bg-muted-bg-subtle/50`),children:[(0,C.jsx)(`td`,{className:`px-3 py-2 text-text-positive font-medium`,children:e.header}),(0,C.jsx)(`td`,{className:`px-3 py-2 text-text-positive-weak`,children:tt[e.aggregation.type]}),(0,C.jsx)(`td`,{className:`px-3 py-2 text-right`,children:(0,C.jsx)(s.t,{value:e.allValue,prefix:e.aggregation.prefix,suffix:e.aggregation.suffix,precision:e.aggregation.precision,size:`sm`})}),o.length>0&&(0,C.jsx)(`td`,{className:`px-3 py-2 text-right`,children:e.selectedValue===null?(0,C.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`}):(0,C.jsx)(s.t,{value:e.selectedValue,prefix:e.aggregation.prefix,suffix:e.aggregation.suffix,precision:e.aggregation.precision,size:`sm`})})]},e.colId))})]})})]})]})]})});nt.displayName=`UITableAnalysisPanel`;const Q=(0,b.memo)(({label:e,value:t,highlight:n})=>(0,C.jsxs)(`div`,{className:(0,x.cn)(`flex flex-col gap-0.5 rounded border px-3 py-2 min-w-25 bg-white`,n&&t>0?`border-primary bg-primary-bg-subtle`:`border-border bg-white`),children:[(0,C.jsx)(`span`,{className:`text-[11px] text-text-positive-weak`,children:e}),(0,C.jsx)(`span`,{className:`text-base font-semibold tabular-nums text-text-positive-strong`,children:t.toLocaleString()})]}));Q.displayName=`StatChip`;const rt={tag:(0,C.jsx)(y.TagIcon,{size:14}),"single-tag":(0,C.jsx)(y.TagIcon,{size:14}),"date-range":(0,C.jsx)(y.CalendarIcon,{size:14}),number:(0,C.jsx)(y.HashIcon,{size:14}),text:(0,C.jsx)(y.TypeIcon,{size:14}),boolean:(0,C.jsx)(y.ToggleLeftIcon,{size:14})},it=[{value:`eq`,label:`Bằng (=)`},{value:`ne`,label:`Không bằng (≠)`},{value:`gt`,label:`Lớn hơn (>)`},{value:`gte`,label:`Ít nhất (≥)`},{value:`lt`,label:`Nhỏ hơn (<)`},{value:`lte`,label:`Nhiều nhất (≤)`},{value:`between`,label:`Trong khoảng`}],at=[{value:`contains`,label:`Chứa`},{value:`equals`,label:`Bằng`},{value:`starts-with`,label:`Bắt đầu bằng`},{value:`ends-with`,label:`Kết thúc bằng`}];function ot(e,t){switch(e.type){case`single-tag`:return e.value?t.options?.find(t=>t.value===e.value)?.label??e.value:`Chưa đặt`;case`tag`:return e.values.length?e.values.map(e=>t.options?.find(t=>t.value===e)?.label??e).join(`, `):`Chưa đặt`;case`date-range`:return!e.from&&!e.to?`Ngày không xác định`:e.from&&e.to?`${e.from} → ${e.to}`:e.from?`từ ${e.from}`:`đến ${e.to}`;case`number`:{let t={eq:`=`,ne:`≠`,gt:`>`,gte:`≥`,lt:`<`,lte:`≤`,between:`trong khoảng`}[e.operator];return e.value===void 0?t:e.operator===`between`?`${t} ${e.value} – ${e.valueTo??`?`}`:`${t} ${e.value}`}case`text`:{let t={contains:`chứa`,equals:`là`,"starts-with":`bắt đầu bằng`,"ends-with":`kết thúc bằng`}[e.operator];return e.value?`${t} "${e.value}"`:t}case`boolean`:return e.value===null?`Không xác định`:e.value?`Có`:`Không`}}const st=({value:e,definition:t,onChange:n})=>(0,C.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?(0,C.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>(0,C.jsxs)(g.t,{className:(0,x.cn)(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.values.includes(t.value)&&`bg-primary-muted hover:bg-primary-subtle`),children:[(0,C.jsx)(f.t,{checked:e.values.includes(t.value),onCheckedChange:r=>{n({type:`tag`,values:r?[...e.values,t.value]:e.values.filter(e=>e!==t.value)})}}),(0,C.jsx)(`span`,{className:`text-sm`,children:t.label})]},t.value))}),ct=({value:e,definition:t,onChange:n})=>(0,C.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?(0,C.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>(0,C.jsxs)(g.t,{className:(0,x.cn)(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.value===t.value&&`bg-primary-muted hover:bg-primary-subtle`),children:[(0,C.jsx)(f.t,{checked:e.value===t.value,onCheckedChange:e=>{n({type:`single-tag`,value:e?t.value:null})}}),(0,C.jsx)(`span`,{className:`text-sm`,children:t.label})]},t.value))}),lt=({value:e,onChange:t})=>(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,C.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,C.jsx)(`span`,{className:`text-text-positive-muted text-xs`,children:`Từ ngày`}),(0,C.jsx)(h.t,{type:`date`,size:`md`,value:e.from??``,onValueChange:n=>t({...e,from:n||void 0})})]}),(0,C.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,C.jsx)(`span`,{className:`text-text-positive-muted text-xs`,children:`Đến ngày`}),(0,C.jsx)(h.t,{type:`date`,size:`md`,value:e.to??``,onValueChange:n=>t({...e,to:n||void 0})})]})]}),ut=({value:e,onChange:t})=>(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,C.jsxs)(v.t,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[(0,C.jsx)(v.s,{size:`sm`,children:(0,C.jsx)(v.c,{})}),(0,C.jsx)(v.n,{children:it.map(e=>(0,C.jsx)(v.i,{value:e.value,children:e.label},e.value))})]}),(0,C.jsx)(h.t,{type:`number`,size:`md`,placeholder:`Giá trị`,value:e.value??``,onValueChange:n=>t({...e,value:n?Number(n):void 0})}),e.operator===`between`&&(0,C.jsx)(h.t,{type:`number`,size:`md`,placeholder:`Đến giá trị`,value:e.valueTo??``,onValueChange:n=>t({...e,valueTo:n?Number(n):void 0})})]}),dt=({value:e,onChange:t})=>(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,C.jsxs)(v.t,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[(0,C.jsx)(v.s,{size:`sm`,children:(0,C.jsx)(v.c,{})}),(0,C.jsx)(v.n,{children:at.map(e=>(0,C.jsx)(v.i,{value:e.value,children:e.label},e.value))})]}),(0,C.jsx)(h.t,{type:`text`,size:`md`,placeholder:`Nhập văn bản...`,value:e.value,onValueChange:n=>t({...e,value:n})})]}),ft=[{label:`Có`,value:!0},{label:`Không`,value:!1},{label:`Không xác định`,value:null}],pt=({value:e,onChange:n})=>(0,C.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:ft.map(({label:r,value:i})=>(0,C.jsx)(t.t,{type:`button`,tabIndex:-1,variant:`outline`,className:(0,x.cn)(`rounded px-3 py-1.5 text-left text-sm transition-colors`,e.value===i?`bg-primary-muted font-medium`:`hover:bg-muted-bg-subtle`),onClick:()=>n({type:`boolean`,value:i}),children:r},r))});function mt({value:e,definition:t,onChange:n}){switch(e.type){case`tag`:return(0,C.jsx)(st,{value:e,definition:t,onChange:n});case`single-tag`:return(0,C.jsx)(ct,{value:e,definition:t,onChange:n});case`date-range`:return(0,C.jsx)(lt,{value:e,onChange:n});case`number`:return(0,C.jsx)(ut,{value:e,onChange:n});case`text`:return(0,C.jsx)(dt,{value:e,onChange:n});case`boolean`:return(0,C.jsx)(pt,{value:e,onChange:n})}}const ht=({filter:e,definition:n,onRemove:r,onUpdate:i})=>(0,C.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,C.jsxs)(_.t,{children:[(0,C.jsx)(_.a,{asChild:!0,children:(0,C.jsxs)(t.t,{type:`button`,variant:`outline`,color:`muted`,className:`flex-1 bg-white max-w-[calc(100%-32px)] justify-start`,innerClassName:`flex truncate gap-1.5`,children:[(0,C.jsx)(`span`,{className:`shrink-0 text-text-positive font-medium`,children:n.label}),(0,C.jsx)(`span`,{className:`truncate text-xs text-text-positive-weak`,children:ot(e.value,n)})]})}),(0,C.jsxs)(_.i,{className:`w-64 p-0`,align:`start`,side:`bottom`,children:[(0,C.jsx)(`div`,{className:`border-b border-border px-3 py-2`,children:(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`span`,{className:`text-text-positive-muted`,children:rt[n.type]}),(0,C.jsx)(`p`,{className:`font-medium`,children:n.label})]})}),(0,C.jsx)(mt,{value:e.value,definition:n,onChange:i})]})]}),(0,C.jsx)(t.t,{type:`button`,size:`icon`,variant:`soft`,color:`danger`,className:`shrink`,onClick:r,children:(0,C.jsx)(y.Trash2Icon,{size:13})})]}),gt=()=>{let{filterDefinitions:e,activeFilters:n,addFilter:r,removeFilter:i,updateFilter:a}=me(),[o,s]=(0,b.useState)(null),c=e.filter(e=>!n.some(t=>t.definitionId===e.id));return(0,C.jsx)(m.n,{defaultSize:25,className:(0,x.cn)(`bg-card`,o===null?`max-w-8!`:`min-w-64`),children:(0,C.jsxs)(`div`,{className:`relative z-20 flex size-full bg-muted-bg-subtle`,children:[(0,C.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,C.jsx)(b.Activity,{mode:o===`filters`?`visible`:`hidden`,children:(0,C.jsxs)(`div`,{className:`flex size-full flex-col gap-2 p-4`,children:[(0,C.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,C.jsx)(`p`,{className:`font-medium`,children:`Bộ lọc`}),(0,C.jsxs)(u.t,{children:[(0,C.jsx)(u.h,{asChild:!0,children:(0,C.jsxs)(t.t,{variant:`outline`,color:`muted`,disabled:c.length===0,children:[(0,C.jsx)(y.ListFilterPlus,{size:13}),`Thêm bộ lọc`]})}),(0,C.jsx)(u.r,{align:`end`,children:c.map(e=>(0,C.jsxs)(u.a,{className:`flex items-center gap-2`,onClick:()=>r(e.id),children:[rt[e.type],e.label]},e.id))})]})]}),(0,C.jsx)(l.t,{}),n.length===0?(0,C.jsx)(`p`,{className:`py-6 text-center text-xs text-text-positive-muted`,children:`Không có bộ lọc nào`}):(0,C.jsx)(`div`,{className:`flex flex-col gap-2 pt-1`,children:n.map(t=>{let n=e.find(e=>e.id===t.definitionId);return n?(0,C.jsx)(ht,{filter:t,definition:n,onRemove:()=>i(t.id),onUpdate:e=>a(t.id,e)},t.id):null})})]})})}),(0,C.jsxs)(`div`,{className:`flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm`,children:[(0,C.jsxs)(`button`,{type:`button`,className:(0,x.cn)(`relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4`,o===`filters`&&`bg-card`),onClick:()=>s(o===`filters`?null:`filters`),children:[(0,C.jsx)(y.ListFilterIcon,{size:18}),n.length>0&&(0,C.jsx)(`span`,{className:`absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground`,children:n.length}),(0,C.jsx)(`span`,{className:`text-nowrap [writing-mode:vertical-lr]`,children:`Bộ lọc`})]}),(0,C.jsx)(l.t,{})]})]})})};function _t(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 vt=(0,b.memo)(({innerWrapperId:e,children:t})=>{let n=(0,b.useMemo)(()=>({innerWrapperId:e}),[e]);return(0,C.jsx)(F.Provider,{value:n,children:t})});vt.displayName=`UITableInnerWrapperProvider`;const yt=(0,b.memo)(({table:e,innerTableId:t,totalSize:n,children:r})=>{let i=(0,b.useMemo)(()=>({table:e,innerTableId:t,totalSize:n}),[e,t,n]);return(0,C.jsx)(L.Provider,{value:i,children:r})});yt.displayName=`UITableInnerTableProvider`;const bt=(0,b.memo)(({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i,children:a})=>{let o=(0,b.useMemo)(()=>({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i}),[e,t,n,r,i]);return(0,C.jsx)(de.Provider,{value:o,children:a})});bt.displayName=`UITableHeadRowProvider`;const xt=(0,b.memo)(({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r,children:i})=>{let a=(0,b.useMemo)(()=>({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r}),[e,n,r]);return(0,C.jsx)(B.Provider,{value:a,children:i})});xt.displayName=`UITableBodyProvider`;const St=(0,b.memo)(({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a,children:o})=>{let s=(0,b.useMemo)(()=>({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a}),[e,t,n,r,i,a]);return(0,C.jsx)(H.Provider,{value:s,children:o})});St.displayName=`UITableRowProvider`;const Ct=({title:e,isFetching:t=!1,isRefetching:n=!1,isLoading:r=!1,loadingDisplayRow:i=3,data:a,columns:o,totalRows:s,leftPinnedColumns:c=[],rightPinnedColumns:l=[],keyOfClickRow:u,onClickRow:d,onRowSelection:f,onColumnPinning:p,fetchMoreData:m,emptyDisplayHeight:h,csvData:g,csvFileName:_,filterDefinitions:v=[],onFilterChange:y,summary:x=[],showAnalysisPanel:S=!1,children:ee})=>{let te=(0,b.useId)(),ne=(0,b.useId)(),[T,re]=(0,b.useState)(!1),[E,D]=(0,b.useState)({}),[O,ie]=(0,b.useState)({right:l,left:[`select`,...c]}),[ae,oe]=(0,b.useState)({}),[se,k]=(0,b.useState)([]),ce=(0,b.useCallback)(e=>(D(e),f?.(e instanceof Function?e(E):e),e),[E,f]),le=(0,b.useCallback)(e=>{ie(e),p?.(e instanceof Function?e(O):e)},[O,p]),A=(0,b.useCallback)(e=>{let t=v.find(t=>t.id===e);if(!t)return;let n={id:`${e}-${crypto.randomUUID()}`,definitionId:e,value:_t(t.type)};k(e=>{let t=[...e,n];return y?.(t),t})},[v,y]),ue=(0,b.useCallback)(e=>{k(t=>{let n=t.filter(t=>t.id!==e);return y?.(n),n})},[y]),j=(0,b.useCallback)((e,t)=>{k(n=>{let r=n.map(n=>n.id===e?{...n,value:t}:n);return y?.(r),r})},[y]),M=(0,b.useMemo)(()=>({filterDefinitions:v,activeFilters:se,addFilter:A,removeFilter:ue,updateFilter:j}),[v,se,A,ue,j]),N=(0,w.useReactTable)({data:a,columns:o,state:{rowSelection:E,columnPinning:O,expanded:ae},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,w.getCoreRowModel)(),getGroupedRowModel:(0,w.getGroupedRowModel)(),getExpandedRowModel:(0,w.getExpandedRowModel)(),onRowSelectionChange:ce,onColumnPinningChange:le,onExpandedChange:oe}),P=(0,b.useMemo)(()=>{let{rows:e}=N.getRowModel();return e},[N.getRowModel().rows,N.getState().columnPinning]),F=(0,b.useMemo)(()=>!t&&!n&&P.length===0,[P,t,n]),I=(0,b.useMemo)(()=>({title:e,table:N,isEmpty:F,isFetching:t,isRefetching:n,isLoading:r,loadingDisplayRow:i,totalRows:s,fetchMoreData:m,emptyDisplayHeight:h,csvData:g,csvFileName:_,summary:x,showAnalysisPanel:S}),[e,N,F,n,t,r,i,s,m,h,N.getState().columnPinning,N.getState().expanded,g,_,x,S]),L=(0,b.useMemo)(()=>N.getState(),[N.getState()]),R=(0,b.useMemo)(()=>N.getIsAllRowsSelected(),[N.getIsAllRowsSelected()]),de=(0,b.useMemo)(()=>L.rowSelection,[L.rowSelection]),z=(0,b.useMemo)(()=>L.columnPinning,[L.columnPinning]),B=(0,b.useMemo)(()=>N.getLeftHeaderGroups()[0]?.headers||[],[N.getState().columnPinning]),V=(0,b.useMemo)(()=>N.getRightHeaderGroups()[0]?.headers||[],[N.getState().columnPinning]),H=(0,b.useMemo)(()=>N.getTotalSize(),[N.getTotalSize()]),U=(0,b.useCallback)(()=>re(e=>!e),[]),W=(0,b.useMemo)(()=>({isOpen:T,toggle:U}),[T,U]);return(0,C.jsx)(he.Provider,{value:W,children:(0,C.jsx)(pe.Provider,{value:M,children:(0,C.jsx)(fe.Provider,{value:I,children:(0,C.jsx)(vt,{innerWrapperId:te,children:(0,C.jsx)(yt,{table:N,innerTableId:ne,totalSize:H,children:(0,C.jsx)(bt,{isAllRowsSelected:R,columnPinningState:z,leftPinnedHeaders:B,rightPinnedHeaders:V,onToggleAllRowsSelected:N.toggleAllRowsSelected,children:(0,C.jsx)(xt,{isFetching:t,isRefetching:n,isEmpty:F,rowSelectionState:de,children:(0,C.jsx)(St,{keyOfClickRow:u,isAllRowsSelected:R,columnPinningState:z,leftPinnedHeaders:B,rightPinnedHeaders:V,onClickRow:d,children:ee})})})})})})})})},wt={up:`bg-success`,down:`bg-danger`,neutral:`bg-primary`},Tt=(0,b.memo)(()=>{let{summary:e}=W();return!e||e.length===0?null:(0,C.jsx)(`div`,{"data-slot":`table-summary-bar`,className:`grid w-full gap-3 px-2 pb-1`,style:{gridTemplateColumns:`repeat(${e.length}, minmax(0, 240px))`},children:e.map(e=>{let t=wt[e.trend??`neutral`];return(0,C.jsxs)(`div`,{className:`flex flex-col overflow-hidden rounded border border-border bg-card shadow-card`,children:[(0,C.jsx)(`div`,{className:(0,x.cn)(`h-0.75 w-full shrink-0`,t)}),(0,C.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-5 py-4`,children:[(0,C.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-text-positive-weak`,children:e.label}),e.value!==null&&e.value!==void 0?(0,C.jsx)(s.t,{value:e.value,prefix:e.prefix,suffix:e.suffix,precision:e.precision,trend:e.trend,size:`xl`,className:`font-bold`}):(0,C.jsx)(`span`,{className:`text-xl font-bold tabular-nums text-text-positive-strong`,children:`—`}),e.description&&(0,C.jsx)(`span`,{className:`text-xs text-text-positive-weak`,children:e.description})]})]},e.label)})})});Tt.displayName=`UITableSummaryBar`;function Et(e){if(e==null)return``;if(typeof e==`number`)return String(e);if(typeof e==`boolean`)return e?`true`:`false`;let t=String(e);return t.includes(`,`)||t.includes(`"`)||t.includes(`
|
|
2
|
+
`)||t.includes(`\r`)?`"${t.replace(/"/g,`""`)}"`:t}function Dt(e){if(e.length===0)return``;let t=e[0].map(e=>Et(e.label)),n=e.map(e=>e.map(e=>Et(e.value)).join(`,`));return[t.join(`,`),...n].join(`
|
|
3
|
+
`)}function Ot(e,t){let n=Dt(e);if(!n)return;let r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${t}.csv`,a.click(),URL.revokeObjectURL(i)}const kt=({onSearch:e,onChange:t,...n})=>{let r=(0,ne.useDebounceCallback)(t=>{e?.(t)},500);return(0,C.jsxs)(`div`,{className:`relative w-full max-w-80 flex-1`,children:[(0,C.jsx)(h.t,{...n,size:`lg`,type:`search`,placeholder:`Tìm kiếm...`,className:`flex-1 ps-9 pe-9`,onChange:e=>{t?.(e),r(e.target.value??``)}}),(0,C.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 inset-s-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,C.jsx)(y.SearchIcon,{size:16})}),(0,C.jsx)(`button`,{className:`absolute inset-y-0 inset-e-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,C.jsx)(y.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]})},$=({children:e,disabled:t,onClick:n,className:r,...i})=>(0,C.jsx)(`button`,{type:`button`,disabled:t,className:(0,x.cn)(`flex cursor-pointer items-center gap-x-1 rounded-sm border border-border bg-background p-2.5 text-sm text-text-positive-weak outline-none transition-all hover:shadow-card focus:border-border-emphasis focus:bg-muted-muted active:border-border-emphasis active:bg-muted-muted active:text-text-positive disabled:pointer-events-none disabled:cursor-default disabled:opacity-60 [&_svg]:size-3.5`,r),onClick:n,...i,children:e}),At=({onCreate:e,onDownload:t,onRefresh:n})=>{let{table:r,csvData:i,csvFileName:a,title:o,showAnalysisPanel:s}=W(),{isOpen:c,toggle:l}=ge(),u=(0,b.useCallback)(()=>{if(t){t();return}if(!i||i.length===0)return;let e=r.getSelectedRowModel().flatRows;Ot(e.length>0?e.map(e=>i[e.index]).filter(Boolean):i,a||o)},[t,i,a,r,o]),d=!!(t||i&&i.length>0);return(0,C.jsxs)(`div`,{className:`flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,children:[(0,C.jsx)($,{disabled:!e,onClick:t=>{e?.(),t.stopPropagation(),t.preventDefault()},children:(0,C.jsx)(y.CirclePlus,{})}),(0,C.jsx)($,{disabled:!n,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:(0,C.jsx)(y.RefreshCwIcon,{})}),(0,C.jsx)($,{disabled:!d,onClick:e=>{u(),e.stopPropagation(),e.preventDefault()},children:(0,C.jsx)(y.DownloadIcon,{})}),s&&(0,C.jsx)($,{onClick:e=>{l(),e.stopPropagation(),e.preventDefault()},"aria-pressed":c,className:c?`bg-muted-muted text-text-positive`:void 0,children:(0,C.jsx)(y.BarChart2Icon,{})})]})},jt=({children:e})=>{let{title:t}=W();return(0,C.jsxs)(`div`,{"data-slot":`table-tooltip`,className:`relative m-0 flex w-full flex-0 flex-col flex-wrap items-start space-y-2 p-0 px-2 text-sm`,children:[(0,C.jsx)(`h3`,{className:`font-semibold text-base text-text-positive`,children:t}),(0,C.jsx)(`div`,{className:`flex w-full flex-1 justify-between gap-x-2`,children:e})]})};jt.displayName=`TableTooltip`,Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return At}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return gt}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return kt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return jt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return D}});
|
|
4
|
+
//# sourceMappingURL=tables-B3Ald6An.cjs.map
|