@customafk/lunas-ui 0.0.93 → 0.0.95
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/{add-new-D-WSaAM3.cjs → add-new-CQefL6PU.cjs} +2 -2
- package/dist/{add-new-D-WSaAM3.cjs.map → add-new-CQefL6PU.cjs.map} +1 -1
- package/dist/{add-new-CDApqBax.js → add-new-ChBwRRMT.js} +2 -2
- package/dist/{add-new-CDApqBax.js.map → add-new-ChBwRRMT.js.map} +1 -1
- package/dist/alert-dialog-CtzD_gfT.js +2 -0
- package/dist/alert-dialog-CtzD_gfT.js.map +1 -0
- package/dist/alert-dialog-sCh-4H6r.cjs +2 -0
- package/dist/alert-dialog-sCh-4H6r.cjs.map +1 -0
- package/dist/{avatar-96dXWrWU.cjs → avatar-DmMCBvb6.cjs} +1 -1
- package/dist/{avatar-96dXWrWU.cjs.map → avatar-DmMCBvb6.cjs.map} +1 -1
- package/dist/{avatar-CcbiQ1mq.js → avatar-iX5Jhj8E.js} +1 -1
- package/dist/{avatar-CcbiQ1mq.js.map → avatar-iX5Jhj8E.js.map} +1 -1
- package/dist/{badge-B1y6KFfh.cjs → badge-AM9m3CFI.cjs} +1 -1
- package/dist/{badge-B1y6KFfh.cjs.map → badge-AM9m3CFI.cjs.map} +1 -1
- package/dist/{badge-DWc4Idn2.js → badge-tjlLdDGl.js} +1 -1
- package/dist/{badge-DWc4Idn2.js.map → badge-tjlLdDGl.js.map} +1 -1
- package/dist/{button-Cmrl9fVS.d.cts → button-BJr39-E1.d.ts} +5 -5
- package/dist/{button-D8ha3suV.d.ts → button-CkwiAMe_.d.cts} +6 -6
- package/dist/{calendar-D_C_Qeu7.cjs → calendar-Brdd41FH.cjs} +1 -1
- package/dist/{calendar-D_C_Qeu7.cjs.map → calendar-Brdd41FH.cjs.map} +1 -1
- package/dist/{calendar-et-igmiY.js → calendar-Diid0R3S.js} +1 -1
- package/dist/{calendar-et-igmiY.js.map → calendar-Diid0R3S.js.map} +1 -1
- package/dist/cards/simple-card.d.cts +2 -2
- package/dist/cards/simple-card.d.ts +2 -2
- package/dist/{command-CevqI1YQ.cjs → command-C13pL2M3.cjs} +2 -2
- package/dist/{command-CevqI1YQ.cjs.map → command-C13pL2M3.cjs.map} +1 -1
- package/dist/{command-BvD9KzBE.d.ts → command-CsybdMF0.d.ts} +12 -12
- package/dist/{command-DcLWxu3u.d.cts → command-DMBJSFJb.d.cts} +12 -12
- package/dist/{command-BvHe__3s.js → command-UXLmHGja.js} +2 -2
- package/dist/{command-BvHe__3s.js.map → command-UXLmHGja.js.map} +1 -1
- package/dist/data-display/country.cjs +1 -1
- package/dist/data-display/country.js +1 -1
- package/dist/data-display/data-list.cjs +1 -1
- package/dist/data-display/data-list.js +1 -1
- package/dist/data-display/date-tooltip.cjs +1 -1
- package/dist/data-display/date-tooltip.js +1 -1
- package/dist/data-display/date.cjs +1 -1
- package/dist/data-display/date.js +1 -1
- package/dist/data-display/empty.cjs +1 -1
- package/dist/data-display/empty.d.cts +2 -2
- package/dist/data-display/empty.d.ts +2 -2
- package/dist/data-display/empty.js +1 -1
- package/dist/data-display/name.cjs +1 -1
- package/dist/data-display/name.js +1 -1
- package/dist/data-display/phone-number.cjs +1 -1
- package/dist/data-display/phone-number.js +1 -1
- package/dist/data-display/role-badge.cjs +1 -1
- package/dist/data-display/role-badge.js +1 -1
- package/dist/data-display/statistic.cjs +1 -1
- package/dist/data-display/statistic.d.cts +2 -2
- package/dist/data-display/statistic.d.ts +2 -2
- package/dist/data-display/statistic.js +1 -1
- package/dist/data-display/user.cjs +1 -1
- package/dist/data-display/user.js +1 -1
- package/dist/{date-vWvu4M91.cjs → date-BEyT-xKi.cjs} +1 -1
- package/dist/{date-vWvu4M91.cjs.map → date-BEyT-xKi.cjs.map} +1 -1
- package/dist/{date-4JlD-xYj.js → date-CgzMwDPN.js} +1 -1
- package/dist/{date-4JlD-xYj.js.map → date-CgzMwDPN.js.map} +1 -1
- package/dist/{dialog-OTHc6G5i.js → dialog-BAlJ18xi.js} +1 -1
- package/dist/{dialog-OTHc6G5i.js.map → dialog-BAlJ18xi.js.map} +1 -1
- package/dist/{dialog-Bd723gV6.cjs → dialog-BBODhbxh.cjs} +1 -1
- package/dist/{dialog-Bd723gV6.cjs.map → dialog-BBODhbxh.cjs.map} +1 -1
- package/dist/{dialog-BRaqPBK5.d.cts → dialog-C8Scjvgn.d.ts} +12 -12
- package/dist/{dialog-BFte9fya.d.ts → dialog-mmKN6bMZ.d.cts} +12 -12
- package/dist/dialogs/confirm-dialog.cjs +1 -1
- package/dist/dialogs/confirm-dialog.js +1 -1
- package/dist/dialogs/detail-dialog/component/sidebar.cjs +1 -1
- package/dist/dialogs/detail-dialog/component/sidebar.d.cts +4 -4
- package/dist/dialogs/detail-dialog/component/sidebar.d.ts +28 -28
- package/dist/dialogs/detail-dialog/component/sidebar.js +1 -1
- package/dist/dialogs/detail-dialog/index.cjs +1 -1
- package/dist/dialogs/detail-dialog/index.js +1 -1
- package/dist/dialogs/error-dialog.cjs +1 -1
- package/dist/dialogs/error-dialog.js +1 -1
- package/dist/dialogs/form-dialog.cjs +1 -1
- package/dist/dialogs/form-dialog.d.cts +2 -2
- package/dist/dialogs/form-dialog.d.ts +2 -2
- package/dist/dialogs/form-dialog.js +1 -1
- package/dist/dialogs/loading-dialog.cjs +1 -1
- package/dist/dialogs/loading-dialog.js +1 -1
- package/dist/{drawer-C6IT7ONM.js → drawer-BT0osH1O.js} +1 -1
- package/dist/{drawer-C6IT7ONM.js.map → drawer-BT0osH1O.js.map} +1 -1
- package/dist/{drawer-Dc432Nt9.cjs → drawer-C3vvvU_D.cjs} +1 -1
- package/dist/{drawer-Dc432Nt9.cjs.map → drawer-C3vvvU_D.cjs.map} +1 -1
- package/dist/{error-dialog-_FqKuIY6.js → error-dialog-BLiYMBlh.js} +2 -2
- package/dist/{error-dialog-_FqKuIY6.js.map → error-dialog-BLiYMBlh.js.map} +1 -1
- package/dist/{error-dialog-pTwyWIE5.cjs → error-dialog-COl3CQ1E.cjs} +2 -2
- package/dist/{error-dialog-pTwyWIE5.cjs.map → error-dialog-COl3CQ1E.cjs.map} +1 -1
- package/dist/field-DWOm17T1.cjs +2 -0
- package/dist/field-DWOm17T1.cjs.map +1 -0
- package/dist/field-GVRRZiSk.js +2 -0
- package/dist/field-GVRRZiSk.js.map +1 -0
- package/dist/{flex-DgmCJ9Bz.cjs → flex-B4klVEz9.cjs} +1 -1
- package/dist/{flex-DgmCJ9Bz.cjs.map → flex-B4klVEz9.cjs.map} +1 -1
- package/dist/{flex-BJgsQWLI.js → flex-D6XrXRQW.js} +1 -1
- package/dist/{flex-BJgsQWLI.js.map → flex-D6XrXRQW.js.map} +1 -1
- package/dist/{form-DbknMHac.js → form-De64-oXe.js} +2 -2
- package/dist/{form-DbknMHac.js.map → form-De64-oXe.js.map} +1 -1
- package/dist/{form-t4WaMbFV.cjs → form-rN5ezSn5.cjs} +2 -2
- package/dist/{form-t4WaMbFV.cjs.map → form-rN5ezSn5.cjs.map} +1 -1
- package/dist/{form-wrapper-DImTyC_E.cjs → form-wrapper-A1DZnRIF.cjs} +2 -2
- package/dist/{form-wrapper-DImTyC_E.cjs.map → form-wrapper-A1DZnRIF.cjs.map} +1 -1
- package/dist/{form-wrapper-BbZebVv0.js → form-wrapper-CSmgFsG0.js} +2 -2
- package/dist/{form-wrapper-BbZebVv0.js.map → form-wrapper-CSmgFsG0.js.map} +1 -1
- package/dist/forms/combobox-field.cjs +1 -1
- package/dist/forms/combobox-field.cjs.map +1 -1
- package/dist/forms/combobox-field.d.cts +2 -2
- package/dist/forms/combobox-field.d.ts +2 -2
- package/dist/forms/combobox-field.js +1 -1
- package/dist/forms/combobox-field.js.map +1 -1
- package/dist/forms/date-field.cjs +1 -1
- package/dist/forms/date-field.d.cts +2 -2
- package/dist/forms/date-field.d.ts +2 -2
- package/dist/forms/date-field.js +1 -1
- package/dist/forms/form-wrapper.cjs +1 -1
- package/dist/forms/form-wrapper.d.cts +2 -2
- package/dist/forms/form-wrapper.d.ts +2 -2
- package/dist/forms/form-wrapper.js +1 -1
- package/dist/forms/multi-select-field.cjs +1 -1
- package/dist/forms/multi-select-field.cjs.map +1 -1
- package/dist/forms/multi-select-field.d.cts +2 -2
- package/dist/forms/multi-select-field.d.ts +2 -2
- package/dist/forms/multi-select-field.js +1 -1
- package/dist/forms/multi-select-field.js.map +1 -1
- package/dist/forms/number-field.cjs +1 -1
- package/dist/forms/number-field.cjs.map +1 -1
- package/dist/forms/number-field.d.cts +2 -2
- package/dist/forms/number-field.d.ts +2 -2
- package/dist/forms/number-field.js +1 -1
- package/dist/forms/number-field.js.map +1 -1
- package/dist/forms/password-field.cjs +1 -1
- package/dist/forms/password-field.d.cts +2 -2
- package/dist/forms/password-field.d.ts +2 -2
- package/dist/forms/password-field.js +1 -1
- package/dist/forms/select-field.cjs +1 -1
- package/dist/forms/select-field.cjs.map +1 -1
- package/dist/forms/select-field.d.cts +2 -2
- package/dist/forms/select-field.d.ts +2 -2
- package/dist/forms/select-field.js +1 -1
- package/dist/forms/select-field.js.map +1 -1
- package/dist/forms/switch-field.cjs +1 -1
- package/dist/forms/switch-field.cjs.map +1 -1
- package/dist/forms/switch-field.d.cts +2 -2
- package/dist/forms/switch-field.d.ts +2 -2
- package/dist/forms/switch-field.js +1 -1
- package/dist/forms/switch-field.js.map +1 -1
- package/dist/forms/text-field.cjs +1 -1
- package/dist/forms/text-field.cjs.map +1 -1
- package/dist/forms/text-field.d.cts +2 -2
- package/dist/forms/text-field.d.ts +2 -2
- package/dist/forms/text-field.js +1 -1
- package/dist/forms/text-field.js.map +1 -1
- package/dist/forms/textarea-field.cjs +1 -1
- package/dist/forms/textarea-field.cjs.map +1 -1
- package/dist/forms/textarea-field.d.cts +2 -2
- package/dist/forms/textarea-field.d.ts +2 -2
- package/dist/forms/textarea-field.js +1 -1
- package/dist/forms/textarea-field.js.map +1 -1
- package/dist/{input-B-l6tT_9.js → input-BStypTnq.js} +1 -1
- package/dist/{input-B-l6tT_9.js.map → input-BStypTnq.js.map} +1 -1
- package/dist/{input-BupRhPyb.d.cts → input-C5NrcQAm.d.cts} +3 -3
- package/dist/{input-DooN2x6N.d.ts → input-CD0idRrj.d.ts} +3 -3
- package/dist/{input-D7aXVX7j.cjs → input-D_tClptL.cjs} +1 -1
- package/dist/{input-D7aXVX7j.cjs.map → input-D_tClptL.cjs.map} +1 -1
- package/dist/label-CTkgyZqy.d.cts +11 -0
- package/dist/{label-CRhvNQY4.js → label-CdrxlBJ8.js} +1 -1
- package/dist/{label-CRhvNQY4.js.map → label-CdrxlBJ8.js.map} +1 -1
- package/dist/{label-BMBHBFRY.cjs → label-D6mAvVmw.cjs} +1 -1
- package/dist/{label-BMBHBFRY.cjs.map → label-D6mAvVmw.cjs.map} +1 -1
- package/dist/label-F0vlSMj2.d.ts +11 -0
- package/dist/layouts/app-layout/index.cjs +1 -1
- package/dist/layouts/app-layout/index.d.cts +5 -5
- package/dist/layouts/app-layout/index.d.ts +28 -28
- package/dist/layouts/app-layout/index.js +1 -1
- package/dist/layouts/flex.cjs +1 -1
- package/dist/layouts/flex.d.cts +2 -2
- package/dist/layouts/flex.d.ts +2 -2
- package/dist/layouts/flex.js +1 -1
- package/dist/layouts/service-layout/index.cjs +1 -1
- package/dist/layouts/service-layout/index.d.cts +5 -5
- package/dist/layouts/service-layout/index.d.ts +13 -13
- package/dist/layouts/service-layout/index.js +1 -1
- package/dist/layouts/service-layout/index.js.map +1 -1
- package/dist/{multi-select-CQdR0wzH.js → multi-select-Bqqk4Tiu.js} +2 -2
- package/dist/{multi-select-CQdR0wzH.js.map → multi-select-Bqqk4Tiu.js.map} +1 -1
- package/dist/{multi-select-Dl54UfMM.cjs → multi-select-DFaIxSYQ.cjs} +2 -2
- package/dist/{multi-select-Dl54UfMM.cjs.map → multi-select-DFaIxSYQ.cjs.map} +1 -1
- package/dist/pages/FeatureDeveloping.d.cts +2 -2
- package/dist/pages/FeatureDeveloping.d.ts +2 -2
- package/dist/pages/FeatureFixing.d.ts +2 -2
- package/dist/pages/NotAuthorized.d.cts +2 -2
- package/dist/pages/NotAuthorized.d.ts +2 -2
- package/dist/pages/NotFound.d.cts +2 -2
- package/dist/pages/NotFound.d.ts +2 -2
- package/dist/{paragraph-BuE9WF5p.js → paragraph-B9fp9JaI.js} +1 -1
- package/dist/{paragraph-BuE9WF5p.js.map → paragraph-B9fp9JaI.js.map} +1 -1
- package/dist/{paragraph-GYX6NlXZ.cjs → paragraph-Q7vk3BSp.cjs} +1 -1
- package/dist/{paragraph-GYX6NlXZ.cjs.map → paragraph-Q7vk3BSp.cjs.map} +1 -1
- package/dist/{popover-l3a5exlI.js → popover-BnzoeyDG.js} +1 -1
- package/dist/{popover-l3a5exlI.js.map → popover-BnzoeyDG.js.map} +1 -1
- package/dist/{popover-DODAZTiX.cjs → popover-D6vyPDKA.cjs} +1 -1
- package/dist/{popover-DODAZTiX.cjs.map → popover-D6vyPDKA.cjs.map} +1 -1
- package/dist/products/product-loading-page.cjs +1 -1
- package/dist/products/product-loading-page.js +1 -1
- package/dist/products/product-quantity-control.cjs +1 -1
- package/dist/products/product-quantity-control.d.ts +2 -2
- package/dist/products/product-quantity-control.js +1 -1
- package/dist/{refresh-CfPFo89K.cjs → refresh-DGM3XAqT.cjs} +2 -2
- package/dist/{refresh-CfPFo89K.cjs.map → refresh-DGM3XAqT.cjs.map} +1 -1
- package/dist/{refresh-CNiYCRLZ.js → refresh-MkZTkXVm.js} +2 -2
- package/dist/{refresh-CNiYCRLZ.js.map → refresh-MkZTkXVm.js.map} +1 -1
- package/dist/{search-input-CMNLrUk0.js → search-input-B_rAonEV.js} +2 -2
- package/dist/{search-input-CMNLrUk0.js.map → search-input-B_rAonEV.js.map} +1 -1
- package/dist/{search-input-p1W5kb6R.cjs → search-input-DsQEWS7b.cjs} +2 -2
- package/dist/{search-input-p1W5kb6R.cjs.map → search-input-DsQEWS7b.cjs.map} +1 -1
- package/dist/select-B_7jKZ71.js +2 -0
- package/dist/select-B_7jKZ71.js.map +1 -0
- package/dist/select-Cf4NpYjl.cjs +2 -0
- package/dist/select-Cf4NpYjl.cjs.map +1 -0
- package/dist/{separator-CDgUanKM.d.cts → separator-B4drkRIA.d.ts} +3 -3
- package/dist/{separator-C5dPRhYx.js → separator-D17HxS2f.js} +1 -1
- package/dist/{separator-C5dPRhYx.js.map → separator-D17HxS2f.js.map} +1 -1
- package/dist/{separator-BAyL2IIW.cjs → separator-DMMoR-d2.cjs} +1 -1
- package/dist/{separator-BAyL2IIW.cjs.map → separator-DMMoR-d2.cjs.map} +1 -1
- package/dist/{separator--U2QB0i9.d.ts → separator-D_c8h0Aq.d.cts} +1 -1
- package/dist/{sidebar-9ODHuW8Q.js → sidebar-CSbPdy7R.js} +2 -2
- package/dist/{sidebar-9ODHuW8Q.js.map → sidebar-CSbPdy7R.js.map} +1 -1
- package/dist/{sidebar-ChCtr6kn.cjs → sidebar-GgMyovhB.cjs} +2 -2
- package/dist/{sidebar-ChCtr6kn.cjs.map → sidebar-GgMyovhB.cjs.map} +1 -1
- package/dist/{switch-B5eIeKX7.js → switch-DwBg-iL4.js} +1 -1
- package/dist/{switch-B5eIeKX7.js.map → switch-DwBg-iL4.js.map} +1 -1
- package/dist/{switch-C6peIJVm.cjs → switch-o_YbWKw4.cjs} +1 -1
- package/dist/{switch-C6peIJVm.cjs.map → switch-o_YbWKw4.cjs.map} +1 -1
- package/dist/table/index.cjs +1 -1
- package/dist/table/index.cjs.map +1 -1
- package/dist/table/index.d.cts +2 -2
- package/dist/table/index.d.ts +2 -2
- package/dist/table/index.js +1 -1
- package/dist/{textarea-C3ZQALlB.cjs → textarea-BHME8i5L.cjs} +1 -1
- package/dist/{textarea-C3ZQALlB.cjs.map → textarea-BHME8i5L.cjs.map} +1 -1
- package/dist/{textarea-BVj6PCYB.js → textarea-TGDtYde1.js} +1 -1
- package/dist/{textarea-BVj6PCYB.js.map → textarea-TGDtYde1.js.map} +1 -1
- package/dist/{toggle-BLaqjnLT.d.ts → toggle-53uTUqXx.d.ts} +3 -3
- package/dist/{toggle-BO1nSjXQ.d.cts → toggle-CMYTXtd1.d.cts} +3 -3
- package/dist/{tooltip-DHD6S-vH.js → tooltip-BTrjCwd8.js} +1 -1
- package/dist/{tooltip-DHD6S-vH.js.map → tooltip-BTrjCwd8.js.map} +1 -1
- package/dist/{tooltip-C_Pe-E_S.d.ts → tooltip-DTDkf-An.d.ts} +6 -6
- package/dist/{tooltip-CvNMd3iC.d.cts → tooltip-_5h9HHwj.d.cts} +6 -6
- package/dist/{tooltip-v0ikl3om.cjs → tooltip-uaF-pxx8.cjs} +1 -1
- package/dist/{tooltip-v0ikl3om.cjs.map → tooltip-uaF-pxx8.cjs.map} +1 -1
- package/dist/{types-BfVUsI26.js → types-BiiGENwa.js} +1 -1
- package/dist/{types-BfVUsI26.js.map → types-BiiGENwa.js.map} +1 -1
- package/dist/{types-_t74BXO1.cjs → types-D32qXHff.cjs} +1 -1
- package/dist/{types-_t74BXO1.cjs.map → types-D32qXHff.cjs.map} +1 -1
- package/dist/typography/paragraph.cjs +1 -1
- package/dist/typography/paragraph.d.cts +2 -2
- package/dist/typography/paragraph.d.ts +2 -2
- package/dist/typography/paragraph.js +1 -1
- package/dist/typography/title.d.ts +2 -2
- package/dist/ui/alert-dialog.cjs +1 -1
- package/dist/ui/alert-dialog.d.cts +12 -12
- package/dist/ui/alert-dialog.d.ts +12 -12
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/alert.d.cts +3 -3
- package/dist/ui/alert.d.ts +7 -7
- package/dist/ui/aspect-ratio.d.cts +2 -2
- package/dist/ui/aspect-ratio.d.ts +2 -2
- package/dist/ui/avatar.cjs +1 -1
- package/dist/ui/avatar.d.cts +4 -4
- package/dist/ui/avatar.d.ts +4 -4
- package/dist/ui/avatar.js +1 -1
- package/dist/ui/badge.cjs +1 -1
- package/dist/ui/badge.d.cts +4 -4
- package/dist/ui/badge.d.ts +4 -4
- package/dist/ui/badge.js +1 -1
- package/dist/ui/breadcrumb.d.cts +8 -8
- package/dist/ui/breadcrumb.d.ts +8 -8
- package/dist/ui/button-group.cjs +1 -1
- package/dist/ui/button-group.d.cts +8 -8
- package/dist/ui/button-group.d.ts +8 -8
- package/dist/ui/button-group.js +1 -1
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/buttons/add-new.cjs +1 -1
- package/dist/ui/buttons/add-new.js +1 -1
- package/dist/ui/buttons/refresh.cjs +1 -1
- package/dist/ui/buttons/refresh.js +1 -1
- package/dist/ui/calendar.cjs +1 -1
- package/dist/ui/calendar.d.cts +4 -4
- package/dist/ui/calendar.d.ts +4 -4
- package/dist/ui/calendar.js +1 -1
- package/dist/ui/card.d.cts +8 -8
- package/dist/ui/card.d.ts +8 -8
- package/dist/ui/carousel.d.cts +7 -7
- package/dist/ui/carousel.d.ts +7 -7
- package/dist/ui/collapsible.d.cts +4 -4
- package/dist/ui/collapsible.d.ts +4 -4
- package/dist/ui/command.cjs +1 -1
- package/dist/ui/command.d.cts +2 -2
- package/dist/ui/command.d.ts +2 -2
- package/dist/ui/command.js +1 -1
- package/dist/ui/context-menu.d.cts +16 -16
- package/dist/ui/context-menu.d.ts +16 -16
- package/dist/ui/dialog.cjs +1 -1
- package/dist/ui/dialog.d.cts +1 -1
- package/dist/ui/dialog.d.ts +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/drawer.cjs +1 -1
- package/dist/ui/drawer.d.cts +11 -11
- package/dist/ui/drawer.d.ts +11 -11
- package/dist/ui/drawer.js +1 -1
- package/dist/ui/dropdown-menu.d.cts +16 -16
- package/dist/ui/dropdown-menu.d.ts +16 -16
- package/dist/ui/empty.d.cts +9 -9
- package/dist/ui/empty.d.ts +7 -7
- package/dist/ui/field.cjs +1 -1
- package/dist/ui/field.d.cts +13 -13
- package/dist/ui/field.d.ts +13 -13
- package/dist/ui/field.js +1 -1
- package/dist/ui/file-uploader.d.cts +2 -2
- package/dist/ui/file-uploader.d.ts +2 -2
- package/dist/ui/form.cjs +1 -1
- package/dist/ui/form.d.cts +7 -7
- package/dist/ui/form.d.ts +7 -7
- package/dist/ui/form.js +1 -1
- package/dist/ui/hover-card.d.cts +4 -4
- package/dist/ui/hover-card.d.ts +4 -4
- package/dist/ui/input-otp.d.cts +5 -5
- package/dist/ui/input-otp.d.ts +5 -5
- package/dist/ui/input.cjs +1 -1
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.ts +1 -1
- package/dist/ui/input.js +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.ts +3 -3
- package/dist/ui/inputs/search-input.js +1 -1
- package/dist/ui/item.cjs +1 -1
- package/dist/ui/item.d.cts +15 -15
- package/dist/ui/item.d.ts +12 -12
- package/dist/ui/item.js +1 -1
- package/dist/ui/label.cjs +1 -1
- package/dist/ui/label.d.cts +1 -1
- package/dist/ui/label.d.ts +1 -1
- package/dist/ui/label.js +1 -1
- package/dist/ui/menubar.d.cts +17 -17
- package/dist/ui/menubar.d.ts +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.ts +2 -2
- package/dist/ui/multi-select.js +1 -1
- package/dist/ui/navigation-menu.d.cts +9 -9
- package/dist/ui/navigation-menu.d.ts +9 -9
- package/dist/ui/pagination.d.cts +9 -9
- package/dist/ui/pagination.d.ts +9 -9
- package/dist/ui/popover.cjs +1 -1
- package/dist/ui/popover.d.cts +5 -5
- package/dist/ui/popover.d.ts +5 -5
- package/dist/ui/popover.js +1 -1
- package/dist/ui/progress.d.cts +2 -2
- package/dist/ui/progress.d.ts +2 -2
- package/dist/ui/radio-group.d.cts +3 -3
- package/dist/ui/radio-group.d.ts +3 -3
- package/dist/ui/resizable.d.cts +4 -4
- package/dist/ui/resizable.d.ts +4 -4
- package/dist/ui/scroll-area.d.cts +3 -3
- package/dist/ui/scroll-area.d.ts +3 -3
- package/dist/ui/select.cjs +1 -1
- package/dist/ui/select.d.cts +11 -11
- package/dist/ui/select.d.ts +11 -11
- package/dist/ui/select.js +1 -1
- package/dist/ui/separator.cjs +1 -1
- package/dist/ui/separator.d.cts +1 -1
- package/dist/ui/separator.d.ts +1 -1
- package/dist/ui/separator.js +1 -1
- package/dist/ui/sheet.d.cts +9 -9
- package/dist/ui/sheet.d.ts +9 -9
- package/dist/ui/sidebar.cjs +1 -1
- package/dist/ui/sidebar.d.cts +28 -28
- package/dist/ui/sidebar.d.ts +28 -28
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/skeleton.d.cts +2 -2
- package/dist/ui/skeleton.d.ts +2 -2
- package/dist/ui/slider.d.cts +2 -2
- package/dist/ui/slider.d.ts +2 -2
- package/dist/ui/sonner.d.cts +2 -2
- package/dist/ui/sonner.d.ts +2 -2
- package/dist/ui/spinner.d.cts +2 -2
- package/dist/ui/spinner.d.ts +2 -2
- package/dist/ui/switch.cjs +1 -1
- package/dist/ui/switch.d.cts +2 -2
- package/dist/ui/switch.d.ts +2 -2
- package/dist/ui/switch.js +1 -1
- package/dist/ui/table.d.cts +9 -9
- package/dist/ui/table.d.ts +9 -9
- package/dist/ui/tabs.d.cts +5 -5
- package/dist/ui/tabs.d.ts +5 -5
- package/dist/ui/textarea.cjs +1 -1
- package/dist/ui/textarea.d.cts +2 -2
- package/dist/ui/textarea.d.ts +2 -2
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/toggle-group.d.cts +4 -4
- package/dist/ui/toggle-group.d.ts +4 -4
- package/dist/ui/toggle.d.cts +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/tooltip.cjs +1 -1
- package/dist/ui/tooltip.d.cts +1 -1
- package/dist/ui/tooltip.d.ts +1 -1
- package/dist/ui/tooltip.js +1 -1
- package/package.json +1 -1
- package/dist/alert-dialog-Di6rTULI.js +0 -2
- package/dist/alert-dialog-Di6rTULI.js.map +0 -1
- package/dist/alert-dialog-DmsZNeeJ.cjs +0 -2
- package/dist/alert-dialog-DmsZNeeJ.cjs.map +0 -1
- package/dist/field-B_qC62YD.cjs +0 -2
- package/dist/field-B_qC62YD.cjs.map +0 -1
- package/dist/field-DSScKMdZ.js +0 -2
- package/dist/field-DSScKMdZ.js.map +0 -1
- package/dist/label-DPchUZl_.d.cts +0 -11
- package/dist/label-Dn6KaHvL.d.ts +0 -11
- package/dist/select-DfJYL2rL.cjs +0 -2
- package/dist/select-DfJYL2rL.cjs.map +0 -1
- package/dist/select-czrPwYWJ.js +0 -2
- package/dist/select-czrPwYWJ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-
|
|
1
|
+
{"version":3,"file":"switch-DwBg-iL4.js","names":["Switch","SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"8HAKA,SAASA,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAACC,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EACT,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,EACD,CACD,GAAI,WAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`radix-ui`);r=e.__toESM(r);function i({className:e,...i}){return(0,n.jsx)(r.Switch.Root,{"data-slot":`switch`,className:(0,t.cn)(`peer`,`w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none`,`inline-flex h-5`,`data-[state=checked]:bg-primary`,`data-[state=unchecked]:bg-border-muted`,`focus-visible:border-primary-strong`,`focus-visible:ring-primary-weak`,`focus-visible:ring-4`,`disabled:cursor-not-allowed`,`disabled:opacity-50`,`data-[state=unchecked]:border-border-weak`,`data-[state=unchecked]:[&_span]:bg-accent-weak`,`data-[state=unchecked]:bg-transparent`,`data-[state=unchecked]:[&_span]:size-4`,`data-[state=unchecked]:[&_span]:translate-x-0.5`,`data-[state=unchecked]:[&_span]:shadow-none`,`data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5`,e),...i,children:(0,n.jsx)(r.Switch.Thumb,{"data-slot":`switch-thumb`,className:(0,t.cn)(`bg-background`,`pointer-events-none block size-4 rounded-full ring-0 transition-transform`,`data-[state=checked]:translate-x-[calc(100%-3px)]`,`data-[state=unchecked]:translate-x-0`)})})}Object.defineProperty(exports,`Switch`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=switch-
|
|
2
|
+
//# sourceMappingURL=switch-o_YbWKw4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-
|
|
1
|
+
{"version":3,"file":"switch-o_YbWKw4.cjs","names":["SwitchPrimitive"],"sources":["../packages/components/ui/switch.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer',\n 'w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none',\n 'inline-flex h-5',\n 'data-[state=checked]:bg-primary',\n 'data-[state=unchecked]:bg-border-muted',\n 'focus-visible:border-primary-strong',\n 'focus-visible:ring-primary-weak',\n 'focus-visible:ring-4',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'data-[state=unchecked]:border-border-weak',\n 'data-[state=unchecked]:[&_span]:bg-accent-weak',\n 'data-[state=unchecked]:bg-transparent',\n 'data-[state=unchecked]:[&_span]:size-4',\n 'data-[state=unchecked]:[&_span]:translate-x-0.5',\n 'data-[state=unchecked]:[&_span]:shadow-none',\n 'data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n 'bg-background',\n 'pointer-events-none block size-4 rounded-full ring-0 transition-transform',\n 'data-[state=checked]:translate-x-[calc(100%-3px)]',\n 'data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"kMAKA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,WAAA,EAAA,EAAA,IACE,OACA,wHACA,kBACA,kCACA,yCACA,sCACA,kCACA,uBACA,8BACA,sBACA,4CACA,iDACA,wCACA,yCACA,kDACA,8CACA,uDACA,EACD,CACD,GAAI,YAEJ,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,WAAA,EAAA,EAAA,IACE,gBACA,4EACA,oDACA,uCACD,EACD,EACmB"}
|
package/dist/table/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../chunk-CUT6urMc.cjs`);require(`../dist-CAevLI5t.cjs`),require(`../button-variants-BHDyMRNh.cjs`);const t=require(`../button-BCahPWI8.cjs`)
|
|
1
|
+
const e=require(`../chunk-CUT6urMc.cjs`);require(`../dist-CAevLI5t.cjs`),require(`../button-variants-BHDyMRNh.cjs`);const t=require(`../button-BCahPWI8.cjs`),n=require(`../flex-B4klVEz9.cjs`);require(`../paragraph-Q7vk3BSp.cjs`),require(`../input-D_tClptL.cjs`);const r=require(`../dropdown-menu-C3SGlEd2.cjs`),i=require(`../scroll-area-CcLtG_m0.cjs`),a=require(`../table-DrocTqs4.cjs`),o=require(`../add-new-CQefL6PU.cjs`),s=require(`../refresh-DGM3XAqT.cjs`),c=require(`../search-input-DsQEWS7b.cjs`);let l=require(`lucide-react`);l=e.__toESM(l);let u=require(`@customafk/react-toolkit/utils`);u=e.__toESM(u);let d=require(`react`);d=e.__toESM(d);let f=require(`react/jsx-runtime`);f=e.__toESM(f);let p=require(`@tanstack/react-table`);p=e.__toESM(p);let m=require(`@tanstack/react-virtual`);m=e.__toESM(m);const h=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},g=(0,d.memo)(({column:e})=>{let t=e.getIsSorted(),n=(0,d.useMemo)(()=>({asc:(0,f.jsx)(l.ChevronUp,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:(0,f.jsx)(l.ChevronDown,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})}),[]);return t?n[t]:null});g.displayName=`SortingIndicator`;const _=(0,d.memo)(({column:e})=>{let n=typeof e.columnDef.header==`string`?e.columnDef.header:`Column`,i=(0,d.useCallback)(()=>e.pin(!1),[e]),a=(0,d.useCallback)(()=>e.pin(`left`),[e]),o=(0,d.useCallback)(()=>e.pin(`right`),[e]);return e.getCanPin()?e.getIsPinned()?(0,f.jsx)(t.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${n} column`,title:`Unpin ${n} column`,onClick:i,children:(0,f.jsx)(l.PinOffIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):(0,f.jsxs)(r.DropdownMenu,{children:[(0,f.jsx)(r.DropdownMenuTrigger,{asChild:!0,children:(0,f.jsx)(t.Button,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${n} column`,title:`Pin options for ${n} column`,children:(0,f.jsx)(l.EllipsisIcon,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),(0,f.jsxs)(r.DropdownMenuContent,{align:`end`,children:[(0,f.jsxs)(r.DropdownMenuItem,{onClick:a,children:[(0,f.jsx)(l.ArrowLeftToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),(0,f.jsxs)(r.DropdownMenuItem,{onClick:o,children:[(0,f.jsx)(l.ArrowRightToLineIcon,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null});_.displayName=`PinControls`;const v=(0,d.memo)(({header:e})=>{let{column:t}=e,n=(0,d.useCallback)(e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))},[t]),r=t.getToggleSortingHandler();return e.isPlaceholder?(0,f.jsx)(`div`,{className:`flex items-center justify-between gap-2 truncate`}):(0,f.jsxs)(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[(0,f.jsxs)(`div`,{onClick:r,onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,role:t.getCanSort()?`button`:void 0,className:(0,u.cn)(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),children:[(0,f.jsx)(`span`,{className:`truncate`,children:(0,p.flexRender)(t.columnDef.header,e.getContext())}),(0,f.jsx)(g,{column:t})]}),(0,f.jsx)(_,{column:t})]})});v.displayName=`HeaderContent`;const y=(0,d.memo)(({row:e,measureElement:t,virtualRow:n,onClickRow:r})=>{let i=(0,d.useCallback)(()=>{r&&r(e.id)},[e.id,r]);return(0,f.jsx)(a.TableRow,{"data-index":n.index,ref:e=>t(e),className:`absolute flex w-full cursor-pointer focus:outline-none`,style:{transform:`translateY(${n.start}px)`},onClick:i,tabIndex:r?0:void 0,role:r?`button`:void 0,children:e.getVisibleCells().map(e=>{let t=e.column.getIsPinned(),n=t===`left`&&e.column.getIsLastColumn(`left`),r=t===`right`&&e.column.getIsFirstColumn(`right`);return(0,f.jsx)(a.TableCell,{"data-pinned":t||void 0,"data-last-col":n?`left`:r?`right`:void 0,style:{...h(e.column),width:e.column.getSize()},className:(0,u.cn)(`flex overflow-hidden py-2.5`,`data-pinned:bg-background/90`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`),children:(0,p.flexRender)(e.column.columnDef.cell,e.getContext())},e.id)})})});y.displayName=`DataTableRow`;const b=({table:e,isLoading:t,isFetching:n,allowFetchMore:r=!0,onClickRow:o,onFetchNextPage:s})=>{let c=(0,d.useRef)(null),{rows:p}=e.getRowModel(),g=(0,m.useVirtualizer)({count:p.length,getScrollElement:()=>c.current,estimateSize:()=>37,measureElement:e=>e?.getBoundingClientRect().height??void 0,overscan:5}),_=(0,d.useCallback)(e=>{if(!e)return;let{scrollHeight:t,scrollTop:i,clientHeight:a}=e;t-i-a<500&&!n&&r&&s?.()},[r,n,s]),b=(0,d.useCallback)(e=>{_(e.currentTarget)},[_]);return(0,d.useEffect)(()=>{let e=setTimeout(()=>{_(c.current)},100);return()=>clearTimeout(e)},[_]),(0,f.jsxs)(i.ScrollArea,{ref:c,className:`border-border-weak bg-background relative w-full overflow-auto rounded-lg border`,onScroll:b,children:[(0,f.jsxs)(a.Table,{className:(0,u.cn)(`!w-full`,`grid`,`border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tfoot_td]:border-t`),children:[(0,f.jsx)(a.TableHeader,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>(0,f.jsx)(a.TableRow,{className:`flex w-full border-none`,children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`),o=n||void 0,s=r?`left`:i?`right`:void 0,c={width:e.getSize(),...h(e.column)};return(0,f.jsx)(a.TableHead,{"data-pinned":o,"data-last-col":s,className:(0,u.cn)(`relative flex h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:c,children:(0,f.jsx)(v,{header:e})},e.id)})},e.id))}),(0,f.jsx)(a.TableBody,{style:{height:`${g.getTotalSize()}px`},className:(0,u.cn)(`relative grid w-full`,t&&`h-36`,p?.length===0&&`h-48`),children:t?(0,f.jsx)(a.TableRow,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:(0,f.jsx)(a.TableCell,{children:`loading...`})}):(0,f.jsx)(f.Fragment,{children:g.getVirtualItems().map(e=>{let t=p[e.index],n=t?.id||(t.original&&`id`in t.original?String(t.original.id):null)||(t.original&&`uuid`in t.original?String(t.original.uuid):null);return(0,f.jsx)(y,{id:n??String(e.index),row:t,measureElement:g.measureElement,virtualRow:e,onClickRow:o},n??e.index)})})}),n&&(0,f.jsx)(a.TableFooter,{children:(0,f.jsx)(`div`,{className:`flex w-full justify-center py-2`,children:(0,f.jsx)(l.LoaderIcon,{size:16,className:`animate-spin`,"aria-label":`Loading more data`})})})]}),(0,f.jsx)(i.ScrollBar,{orientation:`horizontal`})]})},x=({onAdd:e,onRefresh:t})=>(0,f.jsxs)(n.Flex,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[(0,f.jsx)(`div`,{className:`max-sm:flex-1`,children:(0,f.jsx)(c.SearchInput,{placeholder:`Search...`})}),(0,f.jsxs)(n.Flex,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&(0,f.jsx)(o.AddNewBtn,{onClick:e}),(0,f.jsx)(s.RefreshBtn,{onClick:t})]})]});function S({data:e,totalCount:t,isLoading:r,isFetching:i,allowLoadMore:a,columns:o,onAdd:s,onRefresh:c,onClickRow:l,onFetchNextPage:u}){"use no memo";let[m,h]=(0,d.useState)({}),[g,_]=(0,d.useState)([]),[v,y]=(0,d.useState)([]),[S,C]=(0,d.useState)({}),w=(0,d.useMemo)(()=>({columnPinning:{right:[`actions`,`update`,`delete`]}}),[]),T=(0,p.useReactTable)({initialState:w,data:e,columns:o,rowCount:t,columnResizeMode:`onChange`,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:(0,p.getCoreRowModel)(),getSortedRowModel:(0,p.getSortedRowModel)(),getFilteredRowModel:(0,p.getFilteredRowModel)(),getFacetedRowModel:(0,p.getFacetedRowModel)(),getFacetedUniqueValues:(0,p.getFacetedUniqueValues)(),getRowId:e=>e.id||e.uuid,state:{rowSelection:m,sorting:g,columnVisibility:S,columnFilters:v},onRowSelectionChange:h,onSortingChange:_,onColumnVisibilityChange:C,onColumnFiltersChange:y});return(0,f.jsxs)(n.Flex,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[(0,f.jsx)(x,{onAdd:s,onRefresh:c}),(0,f.jsx)(n.Flex,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:(0,f.jsx)(b,{table:T,isLoading:r,isFetching:i,allowFetchMore:a,onClickRow:l,onFetchNextPage:u})})]})}exports.Table=S;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/table/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","TableRow","TableCell","ScrollArea","Table","TableHeader","TableHead","TableBody","TableFooter","LoaderIcon","ScrollBar","DataTableHeader: React.FC<Props>","Flex","SearchInput","AddNewBtn","RefreshBtn","Flex"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { type Column, flexRender, type Header, type Table as ReactTable, type Row } from '@tanstack/react-table';\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, LoaderIcon, PinOffIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { useVirtualizer, type VirtualItem } from '@tanstack/react-virtual';\nimport { Button } from '@/components/ui/button';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { ScrollArea, ScrollBar } from '@/components/ui/scroll-area';\nimport { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '@/components/ui/table';\nimport type { AnyEntity } from '@/types';\n\n/**\n * Computes styles for pinned columns\n * @param column Table column\n * @returns CSS styles for pinned columns\n */\nconst getPinningStyles = (column: Column<AnyEntity>): React.CSSProperties => {\n const isPinned = column.getIsPinned();\n return {\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 1 : 0,\n };\n};\n\nconst SortingIndicator = memo(({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted();\n\n const icons = useMemo(\n () => ({\n asc: <ChevronUp className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n desc: <ChevronDown className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n }),\n []\n );\n\n return sortDirection ? icons[sortDirection] : null;\n});\n\nSortingIndicator.displayName = 'SortingIndicator';\n\nconst PinControls = memo(({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = typeof column.columnDef.header === 'string' ? column.columnDef.header : 'Column';\n\n const handleUnpin = useCallback(() => column.pin(false), [column]);\n const handlePinLeft = useCallback(() => column.pin('left'), [column]);\n const handlePinRight = useCallback(() => column.pin('right'), [column]);\n\n if (!column.getCanPin()) return null;\n\n if (column.getIsPinned()) {\n return (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none\"\n aria-label={`Unpin ${columnHeader} column`}\n title={`Unpin ${columnHeader} column`}\n onClick={handleUnpin}\n >\n <PinOffIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"size-7 shadow-none\"\n aria-label={`Pin options for ${columnHeader} column`}\n title={`Pin options for ${columnHeader} column`}\n >\n <EllipsisIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={handlePinLeft}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handlePinRight}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n});\n\nPinControls.displayName = 'PinControls';\n\nconst HeaderContent = memo(({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header;\n\n const handleSort = useCallback(\n (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n column.getToggleSortingHandler()?.(e);\n }\n },\n [column]\n );\n\n const toggleSortHandler = column.getToggleSortingHandler();\n\n if (header.isPlaceholder) {\n return <div className=\"flex items-center justify-between gap-2 truncate\" />;\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n <div\n onClick={toggleSortHandler}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n role={column.getCanSort() ? 'button' : undefined}\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n <PinControls column={column} />\n </div>\n );\n});\n\nHeaderContent.displayName = 'HeaderContent';\n\ntype DataTableRowProps = {\n id: string;\n row: Row<AnyEntity>;\n measureElement: (element?: HTMLTableRowElement | null | undefined) => void;\n virtualRow: VirtualItem;\n onClickRow?: (id: string) => void;\n};\nconst DataTableRow = memo(({ row, measureElement, virtualRow, onClickRow }: DataTableRowProps) => {\n const handleClick = useCallback(() => {\n if (!onClickRow) return;\n onClickRow(row.id);\n }, [row.id, onClickRow]);\n return (\n <TableRow\n data-index={virtualRow.index}\n ref={node => measureElement(node)}\n className=\"absolute flex w-full cursor-pointer focus:outline-none\"\n style={{\n transform: `translateY(${virtualRow.start}px)`,\n }}\n onClick={handleClick}\n tabIndex={onClickRow ? 0 : undefined}\n role={onClickRow ? 'button' : undefined}\n >\n {row.getVisibleCells().map(cell => {\n const isPinned = cell.column.getIsPinned();\n const isLastLeftPinned = isPinned === 'left' && cell.column.getIsLastColumn('left');\n const isFirstRightPinned = isPinned === 'right' && cell.column.getIsFirstColumn('right');\n\n return (\n <TableCell\n key={cell.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n style={{\n ...getPinningStyles(cell.column),\n width: cell.column.getSize(),\n }}\n className={cn(\n 'flex overflow-hidden py-2.5',\n 'data-pinned:bg-background/90',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right][data-last-col=right]]:border-l'\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n );\n })}\n </TableRow>\n );\n});\nDataTableRow.displayName = 'DataTableRow';\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>;\n columnsLength?: number;\n isLoading?: boolean;\n isFetching?: boolean;\n allowFetchMore?: boolean;\n onClickRow?: (id: string) => void;\n onFetchNextPage?: () => void;\n}\n\nexport const DataTable = ({ table, isLoading, isFetching, allowFetchMore = true, onClickRow, onFetchNextPage }: DataTableProps) => {\n // 'use no memo'\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const { rows } = table.getRowModel();\n\n // Configure virtualization for performance with large datasets\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n getScrollElement: () => tableContainerRef.current,\n estimateSize: () => 37, // estimated row height\n measureElement: element => element?.getBoundingClientRect().height ?? undefined,\n overscan: 5, // Render additional rows beyond viewport for smoother scrolling\n });\n\n // Fetch more data when user approaches bottom of table\n const fetchMoreOnBottomReached = useCallback(\n (refEl: HTMLDivElement | null) => {\n if (!refEl) return;\n const { scrollHeight, scrollTop, clientHeight } = refEl;\n // Threshold of 120px from bottom to trigger load more\n if (scrollHeight - scrollTop - clientHeight < 500 && !isFetching && allowFetchMore) {\n onFetchNextPage?.();\n }\n },\n [allowFetchMore, isFetching, onFetchNextPage]\n );\n\n // Handle scroll events to check if more data should be loaded\n const handleScroll = useCallback(\n (ev: React.UIEvent<HTMLDivElement>) => {\n fetchMoreOnBottomReached(ev.currentTarget);\n },\n [fetchMoreOnBottomReached]\n );\n\n // Check for more data on mount and when dependencies change\n useEffect(() => {\n const timer = setTimeout(() => {\n fetchMoreOnBottomReached(tableContainerRef.current);\n }, 100);\n return () => clearTimeout(timer);\n }, [fetchMoreOnBottomReached]);\n\n return (\n <ScrollArea ref={tableContainerRef} className=\"border-border-weak bg-background relative w-full overflow-auto rounded-lg border\" onScroll={handleScroll}>\n <Table\n className={cn(\n '!w-full',\n 'grid',\n 'border-separate border-spacing-0',\n '[&_td]:border-border-weak',\n '[&_th]:border-border-weak',\n '[&_th]:border-b',\n '[&_th]:border-b-border-weak',\n '[&_tfoot_td]:border-t'\n )}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id} className=\"flex w-full border-none\">\n {headerGroup.headers.map(header => {\n const { column } = header;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right');\n const pinningState = isPinned || undefined;\n const lastColState = isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined;\n\n const headerStyles = {\n width: header.getSize(),\n ...getPinningStyles(header.column),\n };\n\n return (\n <TableHead\n key={header.id}\n data-pinned={pinningState}\n data-last-col={lastColState}\n className={cn(\n 'relative flex h-9 font-semibold select-none',\n 'data-pinned:backdrop-blur-xs',\n 'data-pinned:bg-muted-weak',\n '[&>.cursor-col-resize]:last:opacity-0',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=right][data-last-col=right]]:border-l'\n )}\n colSpan={header.colSpan}\n style={headerStyles}\n >\n <HeaderContent header={header} />\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n className={cn('relative grid w-full', isLoading && 'h-36', rows?.length === 0 && 'h-48')}\n >\n {isLoading ? (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>loading...</TableCell>\n </TableRow>\n ) : (\n <>\n {rowVirtualizer.getVirtualItems().map(virtualRow => {\n const row = rows[virtualRow.index];\n const rowId =\n row?.id ||\n (row.original && 'id' in row.original ? String(row.original.id) : null) ||\n (row.original && 'uuid' in row.original ? String(row.original.uuid) : null);\n return (\n <DataTableRow\n key={rowId ?? virtualRow.index}\n id={rowId ?? String(virtualRow.index)}\n row={row}\n measureElement={rowVirtualizer.measureElement}\n virtualRow={virtualRow}\n onClickRow={onClickRow}\n />\n );\n })}\n </>\n )}\n </TableBody>\n {isFetching && (\n <TableFooter>\n <div className=\"flex w-full justify-center py-2\">\n <LoaderIcon size={16} className=\"animate-spin\" aria-label=\"Loading more data\" />\n </div>\n </TableFooter>\n )}\n </Table>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n};\n","import { Flex } from '@/components/layouts/flex';\nimport { AddNewBtn } from '@/components/ui/buttons/add-new';\nimport { RefreshBtn } from '@/components/ui/buttons/refresh';\nimport { SearchInput } from '@/components/ui/inputs/search-input';\n\ntype Props = {\n onAdd?: () => void;\n onRefresh?: () => void;\n};\n\nexport const DataTableHeader: React.FC<Props> = ({ onAdd, onRefresh }) => {\n return (\n <Flex justify=\"between\" padding=\"none\" width=\"full\" className=\"flex-0\">\n <div className=\"max-sm:flex-1\">\n <SearchInput placeholder=\"Search...\" />\n </div>\n <Flex wrap={false} className=\"flex-0 px-0\">\n {!!onAdd && <AddNewBtn onClick={onAdd} />}\n <RefreshBtn onClick={onRefresh} />\n </Flex>\n </Flex>\n );\n};\n","import { useMemo, useState } from 'react';\n\nimport type { ColumnDef, ColumnFiltersState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table';\nimport { getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';\n\nimport { DataTable } from './data-table';\nimport { DataTableHeader } from './data-table-header';\nimport { Flex } from '../layouts/flex';\n\ntype Props<T> = {\n data: T[];\n totalCount?: number;\n isLoading?: boolean;\n isFetching?: boolean;\n allowLoadMore?: boolean;\n columns: ColumnDef<T>[];\n onAdd?: () => void;\n onRefresh?: () => void;\n onClickRow?: (id: string) => void;\n onFetchNextPage?: () => void;\n};\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n isFetching,\n allowLoadMore,\n columns,\n onAdd,\n onRefresh,\n onClickRow,\n onFetchNextPage,\n}: Props<T>) {\n 'use no memo';\n\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n\n const initialState = useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n }),\n []\n );\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: row => (row.id as string) || (row.uuid as string),\n state: {\n rowSelection,\n sorting,\n columnVisibility,\n columnFilters,\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n });\n\n return (\n <Flex vertical wrap={false} gap=\"sm\" align=\"start\" className=\"size-full overflow-y-auto pt-1\">\n <DataTableHeader onAdd={onAdd} onRefresh={onRefresh} />\n <Flex padding=\"none\" vertical wrap={false} width=\"full\" className=\"flex-1 overflow-auto pb-4\">\n <DataTable\n table={table}\n isLoading={isLoading}\n isFetching={isFetching}\n allowFetchMore={allowLoadMore}\n onClickRow={onClickRow}\n onFetchNextPage={onFetchNextPage}\n />\n </Flex>\n </Flex>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["ChevronUp","ChevronDown","Button","PinOffIcon","DropdownMenu","DropdownMenuTrigger","EllipsisIcon","DropdownMenuContent","DropdownMenuItem","ArrowLeftToLineIcon","ArrowRightToLineIcon","TableRow","TableCell","ScrollArea","Table","TableHeader","TableHead","TableBody","TableFooter","LoaderIcon","ScrollBar","DataTableHeader: React.FC<Props>","Flex","SearchInput","AddNewBtn","RefreshBtn","Flex"],"sources":["../../packages/components/table/data-table.tsx","../../packages/components/table/data-table-header.tsx","../../packages/components/table/index.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { type Column, flexRender, type Header, type Table as ReactTable, type Row } from '@tanstack/react-table';\nimport { ArrowLeftToLineIcon, ArrowRightToLineIcon, ChevronDown, ChevronUp, EllipsisIcon, LoaderIcon, PinOffIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { useVirtualizer, type VirtualItem } from '@tanstack/react-virtual';\nimport { Button } from '@/components/ui/button';\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { ScrollArea, ScrollBar } from '@/components/ui/scroll-area';\nimport { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow } from '@/components/ui/table';\nimport type { AnyEntity } from '@/types';\n\n/**\n * Computes styles for pinned columns\n * @param column Table column\n * @returns CSS styles for pinned columns\n */\nconst getPinningStyles = (column: Column<AnyEntity>): React.CSSProperties => {\n const isPinned = column.getIsPinned();\n return {\n left: isPinned === 'left' ? `${column.getStart('left')}px` : undefined,\n right: isPinned === 'right' ? `${column.getAfter('right')}px` : undefined,\n position: isPinned ? 'sticky' : 'relative',\n width: column.getSize(),\n zIndex: isPinned ? 1 : 0,\n };\n};\n\nconst SortingIndicator = memo(({ column }: { column: Column<AnyEntity> }) => {\n const sortDirection = column.getIsSorted();\n\n const icons = useMemo(\n () => ({\n asc: <ChevronUp className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n desc: <ChevronDown className=\"shrink-0 opacity-60\" size={16} strokeWidth={2} aria-hidden=\"true\" />,\n }),\n []\n );\n\n return sortDirection ? icons[sortDirection] : null;\n});\n\nSortingIndicator.displayName = 'SortingIndicator';\n\nconst PinControls = memo(({ column }: { column: Column<AnyEntity> }) => {\n const columnHeader = typeof column.columnDef.header === 'string' ? column.columnDef.header : 'Column';\n\n const handleUnpin = useCallback(() => column.pin(false), [column]);\n const handlePinLeft = useCallback(() => column.pin('left'), [column]);\n const handlePinRight = useCallback(() => column.pin('right'), [column]);\n\n if (!column.getCanPin()) return null;\n\n if (column.getIsPinned()) {\n return (\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none\"\n aria-label={`Unpin ${columnHeader} column`}\n title={`Unpin ${columnHeader} column`}\n onClick={handleUnpin}\n >\n <PinOffIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n size=\"icon\"\n variant=\"ghost\"\n color=\"secondary\"\n className=\"size-7 shadow-none\"\n aria-label={`Pin options for ${columnHeader} column`}\n title={`Pin options for ${columnHeader} column`}\n >\n <EllipsisIcon className=\"opacity-60\" size={16} aria-hidden=\"true\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={handlePinLeft}>\n <ArrowLeftToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to left\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handlePinRight}>\n <ArrowRightToLineIcon size={16} className=\"opacity-60\" aria-hidden=\"true\" />\n Stick to right\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n});\n\nPinControls.displayName = 'PinControls';\n\nconst HeaderContent = memo(({ header }: { header: Header<AnyEntity, unknown> }) => {\n const { column } = header;\n\n const handleSort = useCallback(\n (e: React.KeyboardEvent) => {\n if (column.getCanSort() && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n column.getToggleSortingHandler()?.(e);\n }\n },\n [column]\n );\n\n const toggleSortHandler = column.getToggleSortingHandler();\n\n if (header.isPlaceholder) {\n return <div className=\"flex items-center justify-between gap-2 truncate\" />;\n }\n\n return (\n <div className=\"flex items-center justify-between gap-2 truncate\">\n <div\n onClick={toggleSortHandler}\n onKeyDown={handleSort}\n tabIndex={column.getCanSort() ? 0 : undefined}\n role={column.getCanSort() ? 'button' : undefined}\n className={cn(column.getCanSort() && 'flex h-full cursor-pointer items-center justify-between gap-2 select-none')}\n >\n <span className=\"truncate\">{flexRender(column.columnDef.header, header.getContext())}</span>\n <SortingIndicator column={column} />\n </div>\n <PinControls column={column} />\n </div>\n );\n});\n\nHeaderContent.displayName = 'HeaderContent';\n\ntype DataTableRowProps = {\n id: string;\n row: Row<AnyEntity>;\n measureElement: (element?: HTMLTableRowElement | null | undefined) => void;\n virtualRow: VirtualItem;\n onClickRow?: (id: string) => void;\n};\nconst DataTableRow = memo(({ row, measureElement, virtualRow, onClickRow }: DataTableRowProps) => {\n const handleClick = useCallback(() => {\n if (!onClickRow) return;\n onClickRow(row.id);\n }, [row.id, onClickRow]);\n return (\n <TableRow\n data-index={virtualRow.index}\n ref={node => measureElement(node)}\n className=\"absolute flex w-full cursor-pointer focus:outline-none\"\n style={{\n transform: `translateY(${virtualRow.start}px)`,\n }}\n onClick={handleClick}\n tabIndex={onClickRow ? 0 : undefined}\n role={onClickRow ? 'button' : undefined}\n >\n {row.getVisibleCells().map(cell => {\n const isPinned = cell.column.getIsPinned();\n const isLastLeftPinned = isPinned === 'left' && cell.column.getIsLastColumn('left');\n const isFirstRightPinned = isPinned === 'right' && cell.column.getIsFirstColumn('right');\n\n return (\n <TableCell\n key={cell.id}\n data-pinned={isPinned || undefined}\n data-last-col={isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined}\n style={{\n ...getPinningStyles(cell.column),\n width: cell.column.getSize(),\n }}\n className={cn(\n 'flex overflow-hidden py-2.5',\n 'data-pinned:bg-background/90',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right][data-last-col=right]]:border-l'\n )}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n );\n })}\n </TableRow>\n );\n});\nDataTableRow.displayName = 'DataTableRow';\n\ninterface DataTableProps {\n table: ReactTable<AnyEntity>;\n columnsLength?: number;\n isLoading?: boolean;\n isFetching?: boolean;\n allowFetchMore?: boolean;\n onClickRow?: (id: string) => void;\n onFetchNextPage?: () => void;\n}\n\nexport const DataTable = ({ table, isLoading, isFetching, allowFetchMore = true, onClickRow, onFetchNextPage }: DataTableProps) => {\n // 'use no memo'\n\n const tableContainerRef = useRef<HTMLDivElement>(null);\n\n const { rows } = table.getRowModel();\n\n // Configure virtualization for performance with large datasets\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n getScrollElement: () => tableContainerRef.current,\n estimateSize: () => 37, // estimated row height\n measureElement: element => element?.getBoundingClientRect().height ?? undefined,\n overscan: 5, // Render additional rows beyond viewport for smoother scrolling\n });\n\n // Fetch more data when user approaches bottom of table\n const fetchMoreOnBottomReached = useCallback(\n (refEl: HTMLDivElement | null) => {\n if (!refEl) return;\n const { scrollHeight, scrollTop, clientHeight } = refEl;\n // Threshold of 120px from bottom to trigger load more\n if (scrollHeight - scrollTop - clientHeight < 500 && !isFetching && allowFetchMore) {\n onFetchNextPage?.();\n }\n },\n [allowFetchMore, isFetching, onFetchNextPage]\n );\n\n // Handle scroll events to check if more data should be loaded\n const handleScroll = useCallback(\n (ev: React.UIEvent<HTMLDivElement>) => {\n fetchMoreOnBottomReached(ev.currentTarget);\n },\n [fetchMoreOnBottomReached]\n );\n\n // Check for more data on mount and when dependencies change\n useEffect(() => {\n const timer = setTimeout(() => {\n fetchMoreOnBottomReached(tableContainerRef.current);\n }, 100);\n return () => clearTimeout(timer);\n }, [fetchMoreOnBottomReached]);\n\n return (\n <ScrollArea ref={tableContainerRef} className=\"border-border-weak bg-background relative w-full overflow-auto rounded-lg border\" onScroll={handleScroll}>\n <Table\n className={cn(\n '!w-full',\n 'grid',\n 'border-separate border-spacing-0',\n '[&_td]:border-border-weak',\n '[&_th]:border-border-weak',\n '[&_th]:border-b',\n '[&_th]:border-b-border-weak',\n '[&_tfoot_td]:border-t'\n )}\n >\n <TableHeader className=\"sticky top-0 z-10 backdrop-blur-xs\">\n {table.getHeaderGroups().map(headerGroup => (\n <TableRow key={headerGroup.id} className=\"flex w-full border-none\">\n {headerGroup.headers.map(header => {\n const { column } = header;\n const isPinned = column.getIsPinned();\n const isLastLeftPinned = isPinned === 'left' && column.getIsLastColumn('left');\n const isFirstRightPinned = isPinned === 'right' && column.getIsFirstColumn('right');\n const pinningState = isPinned || undefined;\n const lastColState = isLastLeftPinned ? 'left' : isFirstRightPinned ? 'right' : undefined;\n\n const headerStyles = {\n width: header.getSize(),\n ...getPinningStyles(header.column),\n };\n\n return (\n <TableHead\n key={header.id}\n data-pinned={pinningState}\n data-last-col={lastColState}\n className={cn(\n 'relative flex h-9 font-semibold select-none',\n 'data-pinned:backdrop-blur-xs',\n 'data-pinned:bg-muted-weak',\n '[&>.cursor-col-resize]:last:opacity-0',\n '[&[data-pinned][data-last-col]]:border-border-weak',\n '[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=left][data-last-col=left]]:border-r',\n '[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0',\n '[&[data-pinned=right][data-last-col=right]]:border-l'\n )}\n colSpan={header.colSpan}\n style={headerStyles}\n >\n <HeaderContent header={header} />\n </TableHead>\n );\n })}\n </TableRow>\n ))}\n </TableHeader>\n\n <TableBody\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`, //tells scrollbar how big the table is\n }}\n className={cn('relative grid w-full', isLoading && 'h-36', rows?.length === 0 && 'h-48')}\n >\n {isLoading ? (\n <TableRow className=\"absolute top-9 flex h-36 w-full items-center justify-center\">\n <TableCell>loading...</TableCell>\n </TableRow>\n ) : (\n <>\n {rowVirtualizer.getVirtualItems().map(virtualRow => {\n const row = rows[virtualRow.index];\n const rowId =\n row?.id ||\n (row.original && 'id' in row.original ? String(row.original.id) : null) ||\n (row.original && 'uuid' in row.original ? String(row.original.uuid) : null);\n return (\n <DataTableRow\n key={rowId ?? virtualRow.index}\n id={rowId ?? String(virtualRow.index)}\n row={row}\n measureElement={rowVirtualizer.measureElement}\n virtualRow={virtualRow}\n onClickRow={onClickRow}\n />\n );\n })}\n </>\n )}\n </TableBody>\n {isFetching && (\n <TableFooter>\n <div className=\"flex w-full justify-center py-2\">\n <LoaderIcon size={16} className=\"animate-spin\" aria-label=\"Loading more data\" />\n </div>\n </TableFooter>\n )}\n </Table>\n <ScrollBar orientation=\"horizontal\" />\n </ScrollArea>\n );\n};\n","import { Flex } from '@/components/layouts/flex';\nimport { AddNewBtn } from '@/components/ui/buttons/add-new';\nimport { RefreshBtn } from '@/components/ui/buttons/refresh';\nimport { SearchInput } from '@/components/ui/inputs/search-input';\n\ntype Props = {\n onAdd?: () => void;\n onRefresh?: () => void;\n};\n\nexport const DataTableHeader: React.FC<Props> = ({ onAdd, onRefresh }) => {\n return (\n <Flex justify=\"between\" padding=\"none\" width=\"full\" className=\"flex-0\">\n <div className=\"max-sm:flex-1\">\n <SearchInput placeholder=\"Search...\" />\n </div>\n <Flex wrap={false} className=\"flex-0 px-0\">\n {!!onAdd && <AddNewBtn onClick={onAdd} />}\n <RefreshBtn onClick={onRefresh} />\n </Flex>\n </Flex>\n );\n};\n","import { useMemo, useState } from 'react';\n\nimport type { ColumnDef, ColumnFiltersState, RowSelectionState, SortingState, VisibilityState } from '@tanstack/react-table';\nimport { getCoreRowModel, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getSortedRowModel, useReactTable } from '@tanstack/react-table';\n\nimport { DataTable } from './data-table';\nimport { DataTableHeader } from './data-table-header';\nimport { Flex } from '../layouts/flex';\n\ntype Props<T> = {\n data: T[];\n totalCount?: number;\n isLoading?: boolean;\n isFetching?: boolean;\n allowLoadMore?: boolean;\n columns: ColumnDef<T>[];\n onAdd?: () => void;\n onRefresh?: () => void;\n onClickRow?: (id: string) => void;\n onFetchNextPage?: () => void;\n};\nexport function Table<T extends Record<string, unknown>>({\n data,\n totalCount,\n isLoading,\n isFetching,\n allowLoadMore,\n columns,\n onAdd,\n onRefresh,\n onClickRow,\n onFetchNextPage,\n}: Props<T>) {\n 'use no memo';\n\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [sorting, setSorting] = useState<SortingState>([]);\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});\n\n const initialState = useMemo(\n () => ({\n columnPinning: { right: ['actions', 'update', 'delete'] },\n }),\n []\n );\n\n const table = useReactTable<T>({\n initialState,\n data,\n columns,\n rowCount: totalCount,\n columnResizeMode: 'onChange',\n enableColumnResizing: false,\n enableMultiRowSelection: false,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n getRowId: row => (row.id as string) || (row.uuid as string),\n state: {\n rowSelection,\n sorting,\n columnVisibility,\n columnFilters,\n },\n onRowSelectionChange: setRowSelection,\n onSortingChange: setSorting,\n onColumnVisibilityChange: setColumnVisibility,\n onColumnFiltersChange: setColumnFilters,\n });\n\n return (\n <Flex vertical wrap={false} gap=\"sm\" align=\"start\" className=\"size-full overflow-y-auto pt-1\">\n <DataTableHeader onAdd={onAdd} onRefresh={onRefresh} />\n <Flex padding=\"none\" vertical wrap={false} width=\"full\" className=\"flex-1 overflow-auto pb-4\">\n <DataTable\n table={table}\n isLoading={isLoading}\n isFetching={isFetching}\n allowFetchMore={allowLoadMore}\n onClickRow={onClickRow}\n onFetchNextPage={onFetchNextPage}\n />\n </Flex>\n </Flex>\n );\n}\n"],"mappings":"yyBAmBA,MAAM,EAAoB,GAAmD,CAC3E,IAAM,EAAW,EAAO,aAAa,CACrC,MAAO,CACL,KAAM,IAAa,OAAS,GAAG,EAAO,SAAS,OAAO,CAAC,IAAM,IAAA,GAC7D,MAAO,IAAa,QAAU,GAAG,EAAO,SAAS,QAAQ,CAAC,IAAM,IAAA,GAChE,SAAU,EAAW,SAAW,WAChC,MAAO,EAAO,SAAS,CACvB,OAAQ,EAAW,EAAI,EACxB,EAGG,GAAA,EAAA,EAAA,OAAyB,CAAE,YAA4C,CAC3E,IAAM,EAAgB,EAAO,aAAa,CAEpC,GAAA,EAAA,EAAA,cACG,CACL,KAAK,EAAA,EAAA,KAACA,EAAAA,UAAAA,CAAU,UAAU,sBAAsB,KAAM,GAAI,YAAa,EAAG,cAAY,QAAS,CAC/F,MAAM,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,UAAU,sBAAsB,KAAM,GAAI,YAAa,EAAG,cAAY,QAAS,CACnG,EACD,EAAE,CACH,CAED,OAAO,EAAgB,EAAM,GAAiB,MAC9C,CAEF,EAAiB,YAAc,mBAE/B,MAAM,GAAA,EAAA,EAAA,OAAoB,CAAE,YAA4C,CACtE,IAAM,EAAe,OAAO,EAAO,UAAU,QAAW,SAAW,EAAO,UAAU,OAAS,SAEvF,GAAA,EAAA,EAAA,iBAAgC,EAAO,IAAI,GAAM,CAAE,CAAC,EAAO,CAAC,CAC5D,GAAA,EAAA,EAAA,iBAAkC,EAAO,IAAI,OAAO,CAAE,CAAC,EAAO,CAAC,CAC/D,GAAA,EAAA,EAAA,iBAAmC,EAAO,IAAI,QAAQ,CAAE,CAAC,EAAO,CAAC,CAoBvE,OAlBK,EAAO,WAAW,CAEnB,EAAO,aAAa,EAEpB,EAAA,EAAA,KAACC,EAAAA,OAAAA,CACC,KAAK,OACL,QAAQ,QACR,MAAM,YACN,UAAU,mEACV,aAAY,SAAS,EAAa,SAClC,MAAO,SAAS,EAAa,SAC7B,QAAS,YAET,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,UAAU,aAAa,KAAM,GAAI,cAAY,QAAS,EAC3D,EAKX,EAAA,EAAA,MAACC,EAAAA,aAAAA,CAAAA,SAAAA,EACC,EAAA,EAAA,KAACC,EAAAA,oBAAAA,CAAoB,QAAA,aACnB,EAAA,EAAA,KAACH,EAAAA,OAAAA,CACC,KAAK,OACL,QAAQ,QACR,MAAM,YACN,UAAU,qBACV,aAAY,mBAAmB,EAAa,SAC5C,MAAO,mBAAmB,EAAa,mBAEvC,EAAA,EAAA,KAACI,EAAAA,aAAAA,CAAa,UAAU,aAAa,KAAM,GAAI,cAAY,QAAS,EAC7D,EACW,EACtB,EAAA,EAAA,MAACC,EAAAA,oBAAAA,CAAoB,MAAM,iBACzB,EAAA,EAAA,MAACC,EAAAA,iBAAAA,CAAiB,QAAS,aACzB,EAAA,EAAA,KAACC,EAAAA,oBAAAA,CAAoB,KAAM,GAAI,UAAU,aAAa,cAAY,QAAS,CAAA,gBAAA,EAE1D,EACnB,EAAA,EAAA,MAACD,EAAAA,iBAAAA,CAAiB,QAAS,aACzB,EAAA,EAAA,KAACE,EAAAA,qBAAAA,CAAqB,KAAM,GAAI,UAAU,aAAa,cAAY,QAAS,CAAA,iBAAA,EAE3D,CAAA,EACC,CAAA,CAAA,CACT,CA1Ce,MA4ChC,CAEF,EAAY,YAAc,cAE1B,MAAM,GAAA,EAAA,EAAA,OAAsB,CAAE,YAAqD,CACjF,GAAM,CAAE,UAAW,EAEb,GAAA,EAAA,EAAA,aACH,GAA2B,CACtB,EAAO,YAAY,GAAK,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACzD,EAAE,gBAAgB,CAClB,EAAO,yBAAyB,GAAG,EAAE,GAGzC,CAAC,EAAO,CACT,CAEK,EAAoB,EAAO,yBAAyB,CAM1D,OAJI,EAAO,eACF,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,mDAAA,CAAqD,EAI3E,EAAA,EAAA,MAAC,MAAA,CAAI,UAAU,8DACb,EAAA,EAAA,MAAC,MAAA,CACC,QAAS,EACT,UAAW,EACX,SAAU,EAAO,YAAY,CAAG,EAAI,IAAA,GACpC,KAAM,EAAO,YAAY,CAAG,SAAW,IAAA,GACvC,WAAA,EAAA,EAAA,IAAc,EAAO,YAAY,EAAI,4EAA4E,YAEjH,EAAA,EAAA,KAAC,OAAA,CAAK,UAAU,qCAAuB,EAAO,UAAU,OAAQ,EAAO,YAAY,CAAC,EAAQ,EAC5F,EAAA,EAAA,KAAC,EAAA,CAAyB,SAAA,CAAU,CAAA,EAChC,EACN,EAAA,EAAA,KAAC,EAAA,CAAoB,SAAA,CAAU,CAAA,EAC3B,EAER,CAEF,EAAc,YAAc,gBAS5B,MAAM,GAAA,EAAA,EAAA,OAAqB,CAAE,MAAK,iBAAgB,aAAY,gBAAoC,CAChG,IAAM,GAAA,EAAA,EAAA,iBAAgC,CAC/B,GACL,EAAW,EAAI,GAAG,EACjB,CAAC,EAAI,GAAI,EAAW,CAAC,CACxB,OACE,EAAA,EAAA,KAACC,EAAAA,SAAAA,CACC,aAAY,EAAW,MACvB,IAAK,GAAQ,EAAe,EAAK,CACjC,UAAU,yDACV,MAAO,CACL,UAAW,cAAc,EAAW,MAAM,KAC3C,CACD,QAAS,EACT,SAAU,EAAa,EAAI,IAAA,GAC3B,KAAM,EAAa,SAAW,IAAA,YAE7B,EAAI,iBAAiB,CAAC,IAAI,GAAQ,CACjC,IAAM,EAAW,EAAK,OAAO,aAAa,CACpC,EAAmB,IAAa,QAAU,EAAK,OAAO,gBAAgB,OAAO,CAC7E,EAAqB,IAAa,SAAW,EAAK,OAAO,iBAAiB,QAAQ,CAExF,OACE,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAEC,cAAa,GAAY,IAAA,GACzB,gBAAe,EAAmB,OAAS,EAAqB,QAAU,IAAA,GAC1E,MAAO,CACL,GAAG,EAAiB,EAAK,OAAO,CAChC,MAAO,EAAK,OAAO,SAAS,CAC7B,CACD,WAAA,EAAA,EAAA,IACE,8BACA,+BACA,qDACA,qDACA,uDACD,2BAEW,EAAK,OAAO,UAAU,KAAM,EAAK,YAAY,CAAC,EAfrD,EAAK,GAgBA,EAEd,EACO,EAEb,CACF,EAAa,YAAc,eAY3B,MAAa,GAAa,CAAE,QAAO,YAAW,aAAY,iBAAiB,GAAM,aAAY,qBAAsC,CAGjI,IAAM,GAAA,EAAA,EAAA,QAA2C,KAAK,CAEhD,CAAE,QAAS,EAAM,aAAa,CAG9B,GAAA,EAAA,EAAA,gBAAqE,CACzE,MAAO,EAAK,OACZ,qBAAwB,EAAkB,QAC1C,iBAAoB,GACpB,eAAgB,GAAW,GAAS,uBAAuB,CAAC,QAAU,IAAA,GACtE,SAAU,EACX,CAAC,CAGI,GAAA,EAAA,EAAA,aACH,GAAiC,CAChC,GAAI,CAAC,EAAO,OACZ,GAAM,CAAE,eAAc,YAAW,gBAAiB,EAE9C,EAAe,EAAY,EAAe,KAAO,CAAC,GAAc,GAClE,KAAmB,EAGvB,CAAC,EAAgB,EAAY,EAAgB,CAC9C,CAGK,GAAA,EAAA,EAAA,aACH,GAAsC,CACrC,EAAyB,EAAG,cAAc,EAE5C,CAAC,EAAyB,CAC3B,CAUD,OAPA,EAAA,EAAA,eAAgB,CACd,IAAM,EAAQ,eAAiB,CAC7B,EAAyB,EAAkB,QAAQ,EAClD,IAAI,CACP,UAAa,aAAa,EAAM,EAC/B,CAAC,EAAyB,CAAC,EAG5B,EAAA,EAAA,MAACC,EAAAA,WAAAA,CAAW,IAAK,EAAmB,UAAU,mFAAmF,SAAU,aACzI,EAAA,EAAA,MAACC,EAAAA,MAAAA,CACC,WAAA,EAAA,EAAA,IACE,UACA,OACA,mCACA,4BACA,4BACA,kBACA,8BACA,wBACD,YAED,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,UAAU,8CACpB,EAAM,iBAAiB,CAAC,IAAI,IAC3B,EAAA,EAAA,KAACJ,EAAAA,SAAAA,CAA8B,UAAU,mCACtC,EAAY,QAAQ,IAAI,GAAU,CACjC,GAAM,CAAE,UAAW,EACb,EAAW,EAAO,aAAa,CAC/B,EAAmB,IAAa,QAAU,EAAO,gBAAgB,OAAO,CACxE,EAAqB,IAAa,SAAW,EAAO,iBAAiB,QAAQ,CAC7E,EAAe,GAAY,IAAA,GAC3B,EAAe,EAAmB,OAAS,EAAqB,QAAU,IAAA,GAE1E,EAAe,CACnB,MAAO,EAAO,SAAS,CACvB,GAAG,EAAiB,EAAO,OAAO,CACnC,CAED,OACE,EAAA,EAAA,KAACK,EAAAA,UAAAA,CAEC,cAAa,EACb,gBAAe,EACf,WAAA,EAAA,EAAA,IACE,8CACA,+BACA,4BACA,wCACA,qDACA,wFACA,qEACA,qDACA,+EACA,uDACD,CACD,QAAS,EAAO,QAChB,MAAO,YAEP,EAAA,EAAA,KAAC,EAAA,CAAsB,SAAA,CAAU,EAlB5B,EAAO,GAmBF,EAEd,EArCW,EAAY,GAsChB,CACX,EACU,EAEd,EAAA,EAAA,KAACC,EAAAA,UAAAA,CACC,MAAO,CACL,OAAQ,GAAG,EAAe,cAAc,CAAC,IAC1C,CACD,WAAA,EAAA,EAAA,IAAc,uBAAwB,GAAa,OAAQ,GAAM,SAAW,GAAK,OAAO,UAEvF,GACC,EAAA,EAAA,KAACN,EAAAA,SAAAA,CAAS,UAAU,wEAClB,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAAA,SAAU,aAAA,CAAsB,EACxB,EAEX,EAAA,EAAA,KAAA,EAAA,SAAA,CAAA,SACG,EAAe,iBAAiB,CAAC,IAAI,GAAc,CAClD,IAAM,EAAM,EAAK,EAAW,OACtB,EACJ,GAAK,KACJ,EAAI,UAAY,OAAQ,EAAI,SAAW,OAAO,EAAI,SAAS,GAAG,CAAG,QACjE,EAAI,UAAY,SAAU,EAAI,SAAW,OAAO,EAAI,SAAS,KAAK,CAAG,MACxE,OACE,EAAA,EAAA,KAAC,EAAA,CAEC,GAAI,GAAS,OAAO,EAAW,MAAM,CAChC,MACL,eAAgB,EAAe,eACnB,aACA,cALP,GAAS,EAAW,MAMzB,EAEJ,CAAA,CACD,EAEK,CACX,IACC,EAAA,EAAA,KAACM,EAAAA,YAAAA,CAAAA,UACC,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,4CACb,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,KAAM,GAAI,UAAU,eAAe,aAAW,qBAAsB,EAC5E,CAAA,CACM,GAEV,EACR,EAAA,EAAA,KAACC,EAAAA,UAAAA,CAAU,YAAY,aAAA,CAAe,CAAA,EAC3B,EClVJC,GAAoC,CAAE,QAAO,gBAEtD,EAAA,EAAA,MAACC,EAAAA,KAAAA,CAAK,QAAQ,UAAU,QAAQ,OAAO,MAAM,OAAO,UAAU,oBAC5D,EAAA,EAAA,KAAC,MAAA,CAAI,UAAU,0BACb,EAAA,EAAA,KAACC,EAAAA,YAAAA,CAAY,YAAY,YAAA,CAAc,EACnC,EACN,EAAA,EAAA,MAACD,EAAAA,KAAAA,CAAK,KAAM,GAAO,UAAU,wBAC1B,CAAC,CAAC,IAAS,EAAA,EAAA,KAACE,EAAAA,UAAAA,CAAU,QAAS,EAAA,CAAS,EACzC,EAAA,EAAA,KAACC,EAAAA,WAAAA,CAAW,QAAS,EAAA,CAAa,CAAA,EAC7B,CAAA,EACF,CCCX,SAAgB,EAAyC,CACvD,OACA,aACA,YACA,aACA,gBACA,UACA,QACA,YACA,aACA,mBACW,CACX,cAEA,GAAM,CAAC,EAAc,IAAA,EAAA,EAAA,UAA+C,EAAE,CAAC,CACjE,CAAC,EAAS,IAAA,EAAA,EAAA,UAAqC,EAAE,CAAC,CAClD,CAAC,EAAe,IAAA,EAAA,EAAA,UAAiD,EAAE,CAAC,CACpE,CAAC,EAAkB,IAAA,EAAA,EAAA,UAAiD,EAAE,CAAC,CAEvE,GAAA,EAAA,EAAA,cACG,CACL,cAAe,CAAE,MAAO,CAAC,UAAW,SAAU,SAAS,CAAE,CAC1D,EACD,EAAE,CACH,CAEK,GAAA,EAAA,EAAA,eAAyB,CAC7B,eACA,OACA,UACA,SAAU,EACV,iBAAkB,WAClB,qBAAsB,GACtB,wBAAyB,GACzB,iBAAA,EAAA,EAAA,kBAAkC,CAClC,mBAAA,EAAA,EAAA,oBAAsC,CACtC,qBAAA,EAAA,EAAA,sBAA0C,CAC1C,oBAAA,EAAA,EAAA,qBAAwC,CACxC,wBAAA,EAAA,EAAA,yBAAgD,CAChD,SAAU,GAAQ,EAAI,IAAkB,EAAI,KAC5C,MAAO,CACL,eACA,UACA,mBACA,gBACD,CACD,qBAAsB,EACtB,gBAAiB,EACjB,yBAA0B,EAC1B,sBAAuB,EACxB,CAAC,CAEF,OACE,EAAA,EAAA,MAACC,EAAAA,KAAAA,CAAK,SAAA,GAAS,KAAM,GAAO,IAAI,KAAK,MAAM,QAAQ,UAAU,4CAC3D,EAAA,EAAA,KAAC,EAAA,CAAuB,QAAkB,aAAa,EACvD,EAAA,EAAA,KAACA,EAAAA,KAAAA,CAAK,QAAQ,OAAO,SAAA,GAAS,KAAM,GAAO,MAAM,OAAO,UAAU,sCAChE,EAAA,EAAA,KAAC,EAAA,CACQ,QACI,YACC,aACZ,eAAgB,EACJ,aACK,mBACjB,EACG,CAAA,EACF"}
|
package/dist/table/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime36 from "react/jsx-runtime";
|
|
2
2
|
import { ColumnDef } from "@tanstack/react-table";
|
|
3
3
|
|
|
4
4
|
//#region packages/components/table/index.d.ts
|
|
@@ -25,7 +25,7 @@ declare function Table<T extends Record<string, unknown>>({
|
|
|
25
25
|
onRefresh,
|
|
26
26
|
onClickRow,
|
|
27
27
|
onFetchNextPage
|
|
28
|
-
}: Props<T>):
|
|
28
|
+
}: Props<T>): react_jsx_runtime36.JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { Table };
|
|
31
31
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/table/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime21 from "react/jsx-runtime";
|
|
2
2
|
import { ColumnDef } from "@tanstack/react-table";
|
|
3
3
|
|
|
4
4
|
//#region packages/components/table/index.d.ts
|
|
@@ -25,7 +25,7 @@ declare function Table<T extends Record<string, unknown>>({
|
|
|
25
25
|
onRefresh,
|
|
26
26
|
onClickRow,
|
|
27
27
|
onFetchNextPage
|
|
28
|
-
}: Props<T>):
|
|
28
|
+
}: Props<T>): react_jsx_runtime21.JSX.Element;
|
|
29
29
|
//#endregion
|
|
30
30
|
export { Table };
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/table/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../dist-BgkALM7U.js";import"../button-variants-aFWCWUvu.js";import{Button as e}from"../button-CriBqo8S.js";import
|
|
1
|
+
import"../dist-BgkALM7U.js";import"../button-variants-aFWCWUvu.js";import{Button as e}from"../button-CriBqo8S.js";import{Flex as t}from"../flex-D6XrXRQW.js";import"../paragraph-B9fp9JaI.js";import"../input-BStypTnq.js";import{DropdownMenu as n,DropdownMenuContent as r,DropdownMenuItem as i,DropdownMenuTrigger as a}from"../dropdown-menu-0CtZazkY.js";import{ScrollArea as o,ScrollBar as s}from"../scroll-area-CEVoMs6W.js";import{Table as c,TableBody as l,TableCell as u,TableFooter as d,TableHead as f,TableHeader as p,TableRow as m}from"../table-Co0GM3Ej.js";import{AddNewBtn as h}from"../add-new-ChBwRRMT.js";import{RefreshBtn as g}from"../refresh-MkZTkXVm.js";import{SearchInput as _}from"../search-input-B_rAonEV.js";import{ArrowLeftToLineIcon as v,ArrowRightToLineIcon as y,ChevronDown as b,ChevronUp as x,EllipsisIcon as S,LoaderIcon as C,PinOffIcon as w}from"lucide-react";import{cn as T}from"@customafk/react-toolkit/utils";import{memo as E,useCallback as D,useEffect as O,useMemo as k,useRef as A,useState as j}from"react";import{Fragment as M,jsx as N,jsxs as P}from"react/jsx-runtime";import{flexRender as F,getCoreRowModel as I,getFacetedRowModel as L,getFacetedUniqueValues as R,getFilteredRowModel as z,getSortedRowModel as B,useReactTable as V}from"@tanstack/react-table";import{useVirtualizer as H}from"@tanstack/react-virtual";const U=e=>{let t=e.getIsPinned();return{left:t===`left`?`${e.getStart(`left`)}px`:void 0,right:t===`right`?`${e.getAfter(`right`)}px`:void 0,position:t?`sticky`:`relative`,width:e.getSize(),zIndex:t?1:0}},W=E(({column:e})=>{let t=e.getIsSorted(),n=k(()=>({asc:N(x,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`}),desc:N(b,{className:`shrink-0 opacity-60`,size:16,strokeWidth:2,"aria-hidden":`true`})}),[]);return t?n[t]:null});W.displayName=`SortingIndicator`;const G=E(({column:t})=>{let o=typeof t.columnDef.header==`string`?t.columnDef.header:`Column`,s=D(()=>t.pin(!1),[t]),c=D(()=>t.pin(`left`),[t]),l=D(()=>t.pin(`right`),[t]);return t.getCanPin()?t.getIsPinned()?N(e,{size:`icon`,variant:`ghost`,color:`secondary`,className:`hover:[&_svg]:text-secondary-foreground -mr-1 size-7 shadow-none`,"aria-label":`Unpin ${o} column`,title:`Unpin ${o} column`,onClick:s,children:N(w,{className:`opacity-60`,size:16,"aria-hidden":`true`})}):P(n,{children:[N(a,{asChild:!0,children:N(e,{size:`icon`,variant:`ghost`,color:`secondary`,className:`size-7 shadow-none`,"aria-label":`Pin options for ${o} column`,title:`Pin options for ${o} column`,children:N(S,{className:`opacity-60`,size:16,"aria-hidden":`true`})})}),P(r,{align:`end`,children:[P(i,{onClick:c,children:[N(v,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to left`]}),P(i,{onClick:l,children:[N(y,{size:16,className:`opacity-60`,"aria-hidden":`true`}),`Stick to right`]})]})]}):null});G.displayName=`PinControls`;const K=E(({header:e})=>{let{column:t}=e,n=D(e=>{t.getCanSort()&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t.getToggleSortingHandler()?.(e))},[t]),r=t.getToggleSortingHandler();return e.isPlaceholder?N(`div`,{className:`flex items-center justify-between gap-2 truncate`}):P(`div`,{className:`flex items-center justify-between gap-2 truncate`,children:[P(`div`,{onClick:r,onKeyDown:n,tabIndex:t.getCanSort()?0:void 0,role:t.getCanSort()?`button`:void 0,className:T(t.getCanSort()&&`flex h-full cursor-pointer items-center justify-between gap-2 select-none`),children:[N(`span`,{className:`truncate`,children:F(t.columnDef.header,e.getContext())}),N(W,{column:t})]}),N(G,{column:t})]})});K.displayName=`HeaderContent`;const q=E(({row:e,measureElement:t,virtualRow:n,onClickRow:r})=>{let i=D(()=>{r&&r(e.id)},[e.id,r]);return N(m,{"data-index":n.index,ref:e=>t(e),className:`absolute flex w-full cursor-pointer focus:outline-none`,style:{transform:`translateY(${n.start}px)`},onClick:i,tabIndex:r?0:void 0,role:r?`button`:void 0,children:e.getVisibleCells().map(e=>{let t=e.column.getIsPinned(),n=t===`left`&&e.column.getIsLastColumn(`left`),r=t===`right`&&e.column.getIsFirstColumn(`right`);return N(u,{"data-pinned":t||void 0,"data-last-col":n?`left`:r?`right`:void 0,style:{...U(e.column),width:e.column.getSize()},className:T(`flex overflow-hidden py-2.5`,`data-pinned:bg-background/90`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right][data-last-col=right]]:border-l`),children:F(e.column.columnDef.cell,e.getContext())},e.id)})})});q.displayName=`DataTableRow`;const J=({table:e,isLoading:t,isFetching:n,allowFetchMore:r=!0,onClickRow:i,onFetchNextPage:a})=>{let h=A(null),{rows:g}=e.getRowModel(),_=H({count:g.length,getScrollElement:()=>h.current,estimateSize:()=>37,measureElement:e=>e?.getBoundingClientRect().height??void 0,overscan:5}),v=D(e=>{if(!e)return;let{scrollHeight:t,scrollTop:i,clientHeight:o}=e;t-i-o<500&&!n&&r&&a?.()},[r,n,a]),y=D(e=>{v(e.currentTarget)},[v]);return O(()=>{let e=setTimeout(()=>{v(h.current)},100);return()=>clearTimeout(e)},[v]),P(o,{ref:h,className:`border-border-weak bg-background relative w-full overflow-auto rounded-lg border`,onScroll:y,children:[P(c,{className:T(`!w-full`,`grid`,`border-separate border-spacing-0`,`[&_td]:border-border-weak`,`[&_th]:border-border-weak`,`[&_th]:border-b`,`[&_th]:border-b-border-weak`,`[&_tfoot_td]:border-t`),children:[N(p,{className:`sticky top-0 z-10 backdrop-blur-xs`,children:e.getHeaderGroups().map(e=>N(m,{className:`flex w-full border-none`,children:e.headers.map(e=>{let{column:t}=e,n=t.getIsPinned(),r=n===`left`&&t.getIsLastColumn(`left`),i=n===`right`&&t.getIsFirstColumn(`right`),a=n||void 0,o=r?`left`:i?`right`:void 0,s={width:e.getSize(),...U(e.column)};return N(f,{"data-pinned":a,"data-last-col":o,className:T(`relative flex h-9 font-semibold select-none`,`data-pinned:backdrop-blur-xs`,`data-pinned:bg-muted-weak`,`[&>.cursor-col-resize]:last:opacity-0`,`[&[data-pinned][data-last-col]]:border-border-weak`,`[&:not([data-pinned]):has(+[data-pinned])_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-last-col=left]_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=left][data-last-col=left]]:border-r`,`[&[data-pinned=right]:last-child_div.cursor-col-resize:last-child]:opacity-0`,`[&[data-pinned=right][data-last-col=right]]:border-l`),colSpan:e.colSpan,style:s,children:N(K,{header:e})},e.id)})},e.id))}),N(l,{style:{height:`${_.getTotalSize()}px`},className:T(`relative grid w-full`,t&&`h-36`,g?.length===0&&`h-48`),children:t?N(m,{className:`absolute top-9 flex h-36 w-full items-center justify-center`,children:N(u,{children:`loading...`})}):N(M,{children:_.getVirtualItems().map(e=>{let t=g[e.index],n=t?.id||(t.original&&`id`in t.original?String(t.original.id):null)||(t.original&&`uuid`in t.original?String(t.original.uuid):null);return N(q,{id:n??String(e.index),row:t,measureElement:_.measureElement,virtualRow:e,onClickRow:i},n??e.index)})})}),n&&N(d,{children:N(`div`,{className:`flex w-full justify-center py-2`,children:N(C,{size:16,className:`animate-spin`,"aria-label":`Loading more data`})})})]}),N(s,{orientation:`horizontal`})]})},Y=({onAdd:e,onRefresh:n})=>P(t,{justify:`between`,padding:`none`,width:`full`,className:`flex-0`,children:[N(`div`,{className:`max-sm:flex-1`,children:N(_,{placeholder:`Search...`})}),P(t,{wrap:!1,className:`flex-0 px-0`,children:[!!e&&N(h,{onClick:e}),N(g,{onClick:n})]})]});function X({data:e,totalCount:n,isLoading:r,isFetching:i,allowLoadMore:a,columns:o,onAdd:s,onRefresh:c,onClickRow:l,onFetchNextPage:u}){"use no memo";let[d,f]=j({}),[p,m]=j([]),[h,g]=j([]),[_,v]=j({}),y=k(()=>({columnPinning:{right:[`actions`,`update`,`delete`]}}),[]),b=V({initialState:y,data:e,columns:o,rowCount:n,columnResizeMode:`onChange`,enableColumnResizing:!1,enableMultiRowSelection:!1,getCoreRowModel:I(),getSortedRowModel:B(),getFilteredRowModel:z(),getFacetedRowModel:L(),getFacetedUniqueValues:R(),getRowId:e=>e.id||e.uuid,state:{rowSelection:d,sorting:p,columnVisibility:_,columnFilters:h},onRowSelectionChange:f,onSortingChange:m,onColumnVisibilityChange:v,onColumnFiltersChange:g});return P(t,{vertical:!0,wrap:!1,gap:`sm`,align:`start`,className:`size-full overflow-y-auto pt-1`,children:[N(Y,{onAdd:s,onRefresh:c}),N(t,{padding:`none`,vertical:!0,wrap:!1,width:`full`,className:`flex-1 overflow-auto pb-4`,children:N(J,{table:b,isLoading:r,isFetching:i,allowFetchMore:a,onClickRow:l,onFetchNextPage:u})})]})}export{X as Table};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);r=e.__toESM(r);function i({className:e,onChange:i,onValueChange:a,...o}){let s=(0,n.useCallback)(e=>{i?.(e),a?.(e.target.value)},[i,a]);return(0,r.jsx)(`textarea`,{"data-slot":`textarea`,className:(0,t.cn)(`flex min-h-24 w-full px-3 py-2`,`rounded-md border transition-all duration-200`,`text-text-positive-strong bg-transparent text-sm`,`field-sizing-content resize-y`,`border-border-weak shadow-input`,`caret-primary outline-none`,`placeholder:text-text-positive-muted`,`hover:border-border hover:shadow-input`,`focus:border-primary-strong focus:shadow-none`,`focus-visible:ring-primary-muted focus-visible:ring-4`,`aria-invalid:border-danger aria-invalid:ring-danger-muted`,`aria-invalid:hover:border-danger-strong`,`disabled:cursor-not-allowed disabled:opacity-50`,`disabled:pointer-events-none`,`disabled:border-border-weak/50 disabled:bg-secondary-muted/10`,e),...o,onChange:s})}Object.defineProperty(exports,`Textarea`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=textarea-
|
|
2
|
+
//# sourceMappingURL=textarea-BHME8i5L.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-
|
|
1
|
+
{"version":3,"file":"textarea-BHME8i5L.cjs","names":[],"sources":["../packages/components/ui/textarea.tsx"],"sourcesContent":["'use client';\nimport { useCallback } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nfunction Textarea({\n className,\n onChange,\n onValueChange,\n ...props\n}: React.ComponentProps<'textarea'> & {\n onValueChange?: (value: string) => void;\n}) {\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange]\n );\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n // Base styles\n 'flex min-h-24 w-full px-3 py-2',\n 'rounded-md border transition-all duration-200',\n 'text-text-positive-strong bg-transparent text-sm',\n 'field-sizing-content resize-y',\n\n // Border and shadow styles\n 'border-border-weak shadow-input',\n 'caret-primary outline-none',\n\n // Placeholder styling\n 'placeholder:text-text-positive-muted',\n\n // State styles\n 'hover:border-border hover:shadow-input',\n 'focus:border-primary-strong focus:shadow-none',\n 'focus-visible:ring-primary-muted focus-visible:ring-4',\n\n // Invalid state\n 'aria-invalid:border-danger aria-invalid:ring-danger-muted',\n 'aria-invalid:hover:border-danger-strong',\n\n // Disabled state\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'disabled:pointer-events-none',\n 'disabled:border-border-weak/50 disabled:bg-secondary-muted/10',\n\n // Additional custom styling\n className\n )}\n {...props}\n onChange={handleChange}\n />\n );\n}\n\nexport { Textarea };\n"],"mappings":"+LAIA,SAAS,EAAS,CAChB,YACA,WACA,gBACA,GAAG,GAGF,CACD,IAAM,GAAA,EAAA,EAAA,aACH,GAA8C,CAC7C,IAAW,EAAE,CACb,IAAgB,EAAE,OAAO,MAAM,EAEjC,CAAC,EAAU,EAAc,CAC1B,CACD,OACE,EAAA,EAAA,KAAC,WAAA,CACC,YAAU,WACV,WAAA,EAAA,EAAA,IAEE,iCACA,gDACA,mDACA,gCAGA,kCACA,6BAGA,uCAGA,yCACA,gDACA,wDAGA,4DACA,0CAGA,kDACA,+BACA,gEAGA,EACD,CACD,GAAI,EACJ,SAAU,GACV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{cn as e}from"@customafk/react-toolkit/utils";import{useCallback as t}from"react";import{jsx as n}from"react/jsx-runtime";function r({className:r,onChange:i,onValueChange:a,...o}){let s=t(e=>{i?.(e),a?.(e.target.value)},[i,a]);return n(`textarea`,{"data-slot":`textarea`,className:e(`flex min-h-24 w-full px-3 py-2`,`rounded-md border transition-all duration-200`,`text-text-positive-strong bg-transparent text-sm`,`field-sizing-content resize-y`,`border-border-weak shadow-input`,`caret-primary outline-none`,`placeholder:text-text-positive-muted`,`hover:border-border hover:shadow-input`,`focus:border-primary-strong focus:shadow-none`,`focus-visible:ring-primary-muted focus-visible:ring-4`,`aria-invalid:border-danger aria-invalid:ring-danger-muted`,`aria-invalid:hover:border-danger-strong`,`disabled:cursor-not-allowed disabled:opacity-50`,`disabled:pointer-events-none`,`disabled:border-border-weak/50 disabled:bg-secondary-muted/10`,r),...o,onChange:s})}export{r as Textarea};
|
|
2
|
-
//# sourceMappingURL=textarea-
|
|
2
|
+
//# sourceMappingURL=textarea-TGDtYde1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-
|
|
1
|
+
{"version":3,"file":"textarea-TGDtYde1.js","names":[],"sources":["../packages/components/ui/textarea.tsx"],"sourcesContent":["'use client';\nimport { useCallback } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nfunction Textarea({\n className,\n onChange,\n onValueChange,\n ...props\n}: React.ComponentProps<'textarea'> & {\n onValueChange?: (value: string) => void;\n}) {\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange]\n );\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n // Base styles\n 'flex min-h-24 w-full px-3 py-2',\n 'rounded-md border transition-all duration-200',\n 'text-text-positive-strong bg-transparent text-sm',\n 'field-sizing-content resize-y',\n\n // Border and shadow styles\n 'border-border-weak shadow-input',\n 'caret-primary outline-none',\n\n // Placeholder styling\n 'placeholder:text-text-positive-muted',\n\n // State styles\n 'hover:border-border hover:shadow-input',\n 'focus:border-primary-strong focus:shadow-none',\n 'focus-visible:ring-primary-muted focus-visible:ring-4',\n\n // Invalid state\n 'aria-invalid:border-danger aria-invalid:ring-danger-muted',\n 'aria-invalid:hover:border-danger-strong',\n\n // Disabled state\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'disabled:pointer-events-none',\n 'disabled:border-border-weak/50 disabled:bg-secondary-muted/10',\n\n // Additional custom styling\n className\n )}\n {...props}\n onChange={handleChange}\n />\n );\n}\n\nexport { Textarea };\n"],"mappings":"gIAIA,SAAS,EAAS,CAChB,YACA,WACA,gBACA,GAAG,GAGF,CACD,IAAM,EAAe,EAClB,GAA8C,CAC7C,IAAW,EAAE,CACb,IAAgB,EAAE,OAAO,MAAM,EAEjC,CAAC,EAAU,EAAc,CAC1B,CACD,OACE,EAAC,WAAA,CACC,YAAU,WACV,UAAW,EAET,iCACA,gDACA,mDACA,gCAGA,kCACA,6BAGA,uCAGA,yCACA,gDACA,wDAGA,4DACA,0CAGA,kDACA,+BACA,gEAGA,EACD,CACD,GAAI,EACJ,SAAU,GACV"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime272 from "react/jsx-runtime";
|
|
2
2
|
import { VariantProps } from "class-variance-authority";
|
|
3
3
|
import { Toggle } from "radix-ui";
|
|
4
4
|
import * as class_variance_authority_types8 from "class-variance-authority/types";
|
|
@@ -13,7 +13,7 @@ declare function Toggle$1({
|
|
|
13
13
|
variant,
|
|
14
14
|
size,
|
|
15
15
|
...props
|
|
16
|
-
}: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>):
|
|
16
|
+
}: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime272.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { Toggle$1 as Toggle, toggleVariants };
|
|
19
|
-
//# sourceMappingURL=toggle-
|
|
19
|
+
//# sourceMappingURL=toggle-53uTUqXx.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime273 from "react/jsx-runtime";
|
|
2
2
|
import * as class_variance_authority_types8 from "class-variance-authority/types";
|
|
3
3
|
import { VariantProps } from "class-variance-authority";
|
|
4
4
|
import { Toggle } from "radix-ui";
|
|
@@ -13,7 +13,7 @@ declare function Toggle$1({
|
|
|
13
13
|
variant,
|
|
14
14
|
size,
|
|
15
15
|
...props
|
|
16
|
-
}: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>):
|
|
16
|
+
}: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime273.JSX.Element;
|
|
17
17
|
//#endregion
|
|
18
18
|
export { Toggle$1 as Toggle, toggleVariants };
|
|
19
|
-
//# sourceMappingURL=toggle-
|
|
19
|
+
//# sourceMappingURL=toggle-CMYTXtd1.d.cts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{Tooltip as r}from"radix-ui";function i({delayDuration:e=0,...n}){return t(r.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...n})}function a({...e}){return t(i,{children:t(r.Root,{"data-slot":`tooltip`,...e})})}function o({...e}){return t(r.Trigger,{"data-slot":`tooltip-trigger`,...e})}function s({className:i,sideOffset:a=0,children:o,...s}){return t(r.Portal,{children:n(r.Content,{"data-slot":`tooltip-content`,sideOffset:a,className:e(`bg-secondary-strong text-text-negative-intense shadow-dropdown outline-none`,`animate-in fade-in-0 zoom-in-95`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2`,`data-[side=left]:slide-in-from-right-2`,`data-[side=right]:slide-in-from-left-2`,`data-[side=top]:slide-in-from-bottom-2`,`z-50 w-fit`,`origin-(--radix-tooltip-content-transform-origin)`,`rounded-lg px-3 py-1.5 text-xs text-balance`,i),...s,children:[o,t(r.Arrow,{className:`bg-secondary-strong fill-secondary-strong z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]})})}export{a as Tooltip,s as TooltipContent,i as TooltipProvider,o as TooltipTrigger};
|
|
2
|
-
//# sourceMappingURL=tooltip-
|
|
2
|
+
//# sourceMappingURL=tooltip-BTrjCwd8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-
|
|
1
|
+
{"version":3,"file":"tooltip-BTrjCwd8.js","names":["TooltipPrimitive","Tooltip"],"sources":["../packages/components/ui/tooltip.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\n\nfunction TooltipProvider({ delayDuration = 0, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({ className, sideOffset = 0, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-secondary-strong text-text-negative-intense shadow-dropdown outline-none',\n 'animate-in fade-in-0 zoom-in-95',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-2',\n 'data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2',\n 'data-[side=top]:slide-in-from-bottom-2',\n 'z-50 w-fit',\n 'origin-(--radix-tooltip-content-transform-origin)',\n 'rounded-lg px-3 py-1.5 text-xs text-balance',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-secondary-strong fill-secondary-strong z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":"yIAKA,SAAS,EAAgB,CAAE,gBAAgB,EAAG,GAAG,GAAiE,CAChH,OAAO,EAACA,EAAiB,SAAA,CAAS,YAAU,mBAAkC,gBAAe,GAAI,GAAS,CAG5G,SAASC,EAAQ,CAAE,GAAG,GAA6D,CACjF,OACE,EAAC,EAAA,CAAA,SACC,EAACD,EAAiB,KAAA,CAAK,YAAU,UAAU,GAAI,GAAS,CAAA,CACxC,CAItB,SAAS,EAAe,CAAE,GAAG,GAAgE,CAC3F,OAAO,EAACA,EAAiB,QAAA,CAAQ,YAAU,kBAAkB,GAAI,GAAS,CAG5E,SAAS,EAAe,CAAE,YAAW,aAAa,EAAG,WAAU,GAAG,GAAgE,CAChI,OACE,EAACA,EAAiB,OAAA,CAAA,SAChB,EAACA,EAAiB,QAAA,CAChB,YAAU,kBACE,aACZ,UAAW,EACT,8EACA,kCACA,kCACA,iCACA,kCACA,yCACA,yCACA,yCACA,yCACA,aACA,oDACA,8CACA,EACD,CACD,GAAI,YAEH,EACD,EAACA,EAAiB,MAAA,CAAM,UAAU,iHAAA,CAAmH,CAAA,EAC5H,CAAA,CACH"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime275 from "react/jsx-runtime";
|
|
2
2
|
import { Tooltip } from "radix-ui";
|
|
3
3
|
|
|
4
4
|
//#region packages/components/ui/tooltip.d.ts
|
|
5
5
|
declare function TooltipProvider({
|
|
6
6
|
delayDuration,
|
|
7
7
|
...props
|
|
8
|
-
}: React.ComponentProps<typeof Tooltip.Provider>):
|
|
8
|
+
}: React.ComponentProps<typeof Tooltip.Provider>): react_jsx_runtime275.JSX.Element;
|
|
9
9
|
declare function Tooltip$1({
|
|
10
10
|
...props
|
|
11
|
-
}: React.ComponentProps<typeof Tooltip.Root>):
|
|
11
|
+
}: React.ComponentProps<typeof Tooltip.Root>): react_jsx_runtime275.JSX.Element;
|
|
12
12
|
declare function TooltipTrigger({
|
|
13
13
|
...props
|
|
14
|
-
}: React.ComponentProps<typeof Tooltip.Trigger>):
|
|
14
|
+
}: React.ComponentProps<typeof Tooltip.Trigger>): react_jsx_runtime275.JSX.Element;
|
|
15
15
|
declare function TooltipContent({
|
|
16
16
|
className,
|
|
17
17
|
sideOffset,
|
|
18
18
|
children,
|
|
19
19
|
...props
|
|
20
|
-
}: React.ComponentProps<typeof Tooltip.Content>):
|
|
20
|
+
}: React.ComponentProps<typeof Tooltip.Content>): react_jsx_runtime275.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
23
|
-
//# sourceMappingURL=tooltip-
|
|
23
|
+
//# sourceMappingURL=tooltip-DTDkf-An.d.ts.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime274 from "react/jsx-runtime";
|
|
2
2
|
import { Tooltip } from "radix-ui";
|
|
3
3
|
|
|
4
4
|
//#region packages/components/ui/tooltip.d.ts
|
|
5
5
|
declare function TooltipProvider({
|
|
6
6
|
delayDuration,
|
|
7
7
|
...props
|
|
8
|
-
}: React.ComponentProps<typeof Tooltip.Provider>):
|
|
8
|
+
}: React.ComponentProps<typeof Tooltip.Provider>): react_jsx_runtime274.JSX.Element;
|
|
9
9
|
declare function Tooltip$1({
|
|
10
10
|
...props
|
|
11
|
-
}: React.ComponentProps<typeof Tooltip.Root>):
|
|
11
|
+
}: React.ComponentProps<typeof Tooltip.Root>): react_jsx_runtime274.JSX.Element;
|
|
12
12
|
declare function TooltipTrigger({
|
|
13
13
|
...props
|
|
14
|
-
}: React.ComponentProps<typeof Tooltip.Trigger>):
|
|
14
|
+
}: React.ComponentProps<typeof Tooltip.Trigger>): react_jsx_runtime274.JSX.Element;
|
|
15
15
|
declare function TooltipContent({
|
|
16
16
|
className,
|
|
17
17
|
sideOffset,
|
|
18
18
|
children,
|
|
19
19
|
...props
|
|
20
|
-
}: React.ComponentProps<typeof Tooltip.Content>):
|
|
20
|
+
}: React.ComponentProps<typeof Tooltip.Content>): react_jsx_runtime274.JSX.Element;
|
|
21
21
|
//#endregion
|
|
22
22
|
export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
23
|
-
//# sourceMappingURL=tooltip-
|
|
23
|
+
//# sourceMappingURL=tooltip-_5h9HHwj.d.cts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./chunk-CUT6urMc.cjs`);let t=require(`@customafk/react-toolkit/utils`);t=e.__toESM(t);let n=require(`react/jsx-runtime`);n=e.__toESM(n);let r=require(`radix-ui`);r=e.__toESM(r);function i({delayDuration:e=0,...t}){return(0,n.jsx)(r.Tooltip.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function a({...e}){return(0,n.jsx)(i,{children:(0,n.jsx)(r.Tooltip.Root,{"data-slot":`tooltip`,...e})})}function o({...e}){return(0,n.jsx)(r.Tooltip.Trigger,{"data-slot":`tooltip-trigger`,...e})}function s({className:e,sideOffset:i=0,children:a,...o}){return(0,n.jsx)(r.Tooltip.Portal,{children:(0,n.jsxs)(r.Tooltip.Content,{"data-slot":`tooltip-content`,sideOffset:i,className:(0,t.cn)(`bg-secondary-strong text-text-negative-intense shadow-dropdown outline-none`,`animate-in fade-in-0 zoom-in-95`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2`,`data-[side=left]:slide-in-from-right-2`,`data-[side=right]:slide-in-from-left-2`,`data-[side=top]:slide-in-from-bottom-2`,`z-50 w-fit`,`origin-(--radix-tooltip-content-transform-origin)`,`rounded-lg px-3 py-1.5 text-xs text-balance`,e),...o,children:[a,(0,n.jsx)(r.Tooltip.Arrow,{className:`bg-secondary-strong fill-secondary-strong z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]})})}Object.defineProperty(exports,`Tooltip`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`TooltipContent`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`TooltipProvider`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`TooltipTrigger`,{enumerable:!0,get:function(){return o}});
|
|
2
|
-
//# sourceMappingURL=tooltip-
|
|
2
|
+
//# sourceMappingURL=tooltip-uaF-pxx8.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip-
|
|
1
|
+
{"version":3,"file":"tooltip-uaF-pxx8.cjs","names":["TooltipPrimitive"],"sources":["../packages/components/ui/tooltip.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\n\nfunction TooltipProvider({ delayDuration = 0, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delayDuration={delayDuration} {...props} />;\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({ className, sideOffset = 0, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-secondary-strong text-text-negative-intense shadow-dropdown outline-none',\n 'animate-in fade-in-0 zoom-in-95',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-95',\n 'data-[side=bottom]:slide-in-from-top-2',\n 'data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2',\n 'data-[side=top]:slide-in-from-bottom-2',\n 'z-50 w-fit',\n 'origin-(--radix-tooltip-content-transform-origin)',\n 'rounded-lg px-3 py-1.5 text-xs text-balance',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-secondary-strong fill-secondary-strong z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":"kMAKA,SAAS,EAAgB,CAAE,gBAAgB,EAAG,GAAG,GAAiE,CAChH,OAAO,EAAA,EAAA,KAACA,EAAAA,QAAiB,SAAA,CAAS,YAAU,mBAAkC,gBAAe,GAAI,GAAS,CAG5G,SAAS,EAAQ,CAAE,GAAG,GAA6D,CACjF,OACE,EAAA,EAAA,KAAC,EAAA,CAAA,UACC,EAAA,EAAA,KAACA,EAAAA,QAAiB,KAAA,CAAK,YAAU,UAAU,GAAI,GAAS,CAAA,CACxC,CAItB,SAAS,EAAe,CAAE,GAAG,GAAgE,CAC3F,OAAO,EAAA,EAAA,KAACA,EAAAA,QAAiB,QAAA,CAAQ,YAAU,kBAAkB,GAAI,GAAS,CAG5E,SAAS,EAAe,CAAE,YAAW,aAAa,EAAG,WAAU,GAAG,GAAgE,CAChI,OACE,EAAA,EAAA,KAACA,EAAAA,QAAiB,OAAA,CAAA,UAChB,EAAA,EAAA,MAACA,EAAAA,QAAiB,QAAA,CAChB,YAAU,kBACE,aACZ,WAAA,EAAA,EAAA,IACE,8EACA,kCACA,kCACA,iCACA,kCACA,yCACA,yCACA,yCACA,yCACA,aACA,oDACA,8CACA,EACD,CACD,GAAI,YAEH,GACD,EAAA,EAAA,KAACA,EAAAA,QAAiB,MAAA,CAAM,UAAU,iHAAA,CAAmH,CAAA,EAC5H,CAAA,CACH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
let e=function(e){return e.SUPER_ADMIN=`SUPER_ADMIN`,e.ADMIN=`ADMIN`,e.MODERATOR=`MODERATOR`,e.STAFF=`STAFF`,e.USER=`USER`,e}({}),t=function(e){return e.VIETNAM=`Vietnam`,e.USA=`USA`,e.JAPAN=`Japan`,e.KOREA=`Korea`,e.CHINA=`China`,e.TAIWAN=`Taiwan`,e.THAILAND=`Thailand`,e.MALAYSIA=`Malaysia`,e.SINGAPORE=`Singapore`,e.INDONESIA=`Indonesia`,e}({});export{t as ECountry,e as ERole};
|
|
2
|
-
//# sourceMappingURL=types-
|
|
2
|
+
//# sourceMappingURL=types-BiiGENwa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-BiiGENwa.js","names":[],"sources":["../packages/types.ts"],"sourcesContent":["export enum ERole {\n SUPER_ADMIN = 'SUPER_ADMIN',\n ADMIN = 'ADMIN',\n MODERATOR = 'MODERATOR',\n STAFF = 'STAFF',\n USER = 'USER',\n}\n\nexport enum ECountry {\n VIETNAM = 'Vietnam',\n USA = 'USA',\n JAPAN = 'Japan',\n KOREA = 'Korea',\n CHINA = 'China',\n TAIWAN = 'Taiwan',\n THAILAND = 'Thailand',\n MALAYSIA = 'Malaysia',\n SINGAPORE = 'Singapore',\n INDONESIA = 'Indonesia',\n}\n\nexport enum EWeightUnit {\n KG = 'kg',\n G = 'g',\n LB = 'lb',\n OZ = 'oz',\n}\n\nexport enum EDimensionUnit {\n CM = 'cm',\n M = 'm',\n INCH = 'inch',\n FT = 'ft',\n}\n\nexport enum EProductStatus {\n DRAFT = 'draft',\n REVIEW = 'review',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n CANCELLED = 'cancelled',\n}\n\nexport enum EProductInventoryStatus {\n IN_STOCK = 'in_stock',\n OUT_OF_STOCK = 'out_of_stock',\n PREORDER = 'preorder',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyEntity = any;\n"],"mappings":"AAAA,IAAY,EAAA,SAAA,EAAL,OACL,GAAA,YAAA,cACA,EAAA,MAAA,QACA,EAAA,UAAA,YACA,EAAA,MAAA,QACA,EAAA,KAAA,cAGU,EAAA,SAAA,EAAL,OACL,GAAA,QAAA,UACA,EAAA,IAAA,MACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,UAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
let e=function(e){return e.SUPER_ADMIN=`SUPER_ADMIN`,e.ADMIN=`ADMIN`,e.MODERATOR=`MODERATOR`,e.STAFF=`STAFF`,e.USER=`USER`,e}({}),t=function(e){return e.VIETNAM=`Vietnam`,e.USA=`USA`,e.JAPAN=`Japan`,e.KOREA=`Korea`,e.CHINA=`China`,e.TAIWAN=`Taiwan`,e.THAILAND=`Thailand`,e.MALAYSIA=`Malaysia`,e.SINGAPORE=`Singapore`,e.INDONESIA=`Indonesia`,e}({});Object.defineProperty(exports,`ECountry`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`ERole`,{enumerable:!0,get:function(){return e}});
|
|
2
|
-
//# sourceMappingURL=types-
|
|
2
|
+
//# sourceMappingURL=types-D32qXHff.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-D32qXHff.cjs","names":[],"sources":["../packages/types.ts"],"sourcesContent":["export enum ERole {\n SUPER_ADMIN = 'SUPER_ADMIN',\n ADMIN = 'ADMIN',\n MODERATOR = 'MODERATOR',\n STAFF = 'STAFF',\n USER = 'USER',\n}\n\nexport enum ECountry {\n VIETNAM = 'Vietnam',\n USA = 'USA',\n JAPAN = 'Japan',\n KOREA = 'Korea',\n CHINA = 'China',\n TAIWAN = 'Taiwan',\n THAILAND = 'Thailand',\n MALAYSIA = 'Malaysia',\n SINGAPORE = 'Singapore',\n INDONESIA = 'Indonesia',\n}\n\nexport enum EWeightUnit {\n KG = 'kg',\n G = 'g',\n LB = 'lb',\n OZ = 'oz',\n}\n\nexport enum EDimensionUnit {\n CM = 'cm',\n M = 'm',\n INCH = 'inch',\n FT = 'ft',\n}\n\nexport enum EProductStatus {\n DRAFT = 'draft',\n REVIEW = 'review',\n ACTIVE = 'active',\n INACTIVE = 'inactive',\n CANCELLED = 'cancelled',\n}\n\nexport enum EProductInventoryStatus {\n IN_STOCK = 'in_stock',\n OUT_OF_STOCK = 'out_of_stock',\n PREORDER = 'preorder',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyEntity = any;\n"],"mappings":"AAAA,IAAY,EAAA,SAAA,EAAL,OACL,GAAA,YAAA,cACA,EAAA,MAAA,QACA,EAAA,UAAA,YACA,EAAA,MAAA,QACA,EAAA,KAAA,cAGU,EAAA,SAAA,EAAL,OACL,GAAA,QAAA,UACA,EAAA,IAAA,MACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,MAAA,QACA,EAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,UAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";const e=require(`../paragraph-
|
|
1
|
+
"use client";const e=require(`../paragraph-Q7vk3BSp.cjs`);exports.Paragraph=e.Paragraph;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime18 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region packages/components/typography/paragraph.d.ts
|
|
4
4
|
type Props = {
|
|
@@ -10,7 +10,7 @@ declare const Paragraph: ({
|
|
|
10
10
|
variant,
|
|
11
11
|
className,
|
|
12
12
|
children
|
|
13
|
-
}: Props) =>
|
|
13
|
+
}: Props) => react_jsx_runtime18.JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { Paragraph };
|
|
16
16
|
//# sourceMappingURL=paragraph.d.cts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime22 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region packages/components/typography/paragraph.d.ts
|
|
4
4
|
type Props = {
|
|
@@ -10,7 +10,7 @@ declare const Paragraph: ({
|
|
|
10
10
|
variant,
|
|
11
11
|
className,
|
|
12
12
|
children
|
|
13
|
-
}: Props) =>
|
|
13
|
+
}: Props) => react_jsx_runtime22.JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { Paragraph };
|
|
16
16
|
//# sourceMappingURL=paragraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{Paragraph as e}from"../paragraph-
|
|
1
|
+
"use client";import{Paragraph as e}from"../paragraph-B9fp9JaI.js";export{e as Paragraph};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime23 from "react/jsx-runtime";
|
|
2
2
|
|
|
3
3
|
//#region packages/components/typography/title.d.ts
|
|
4
4
|
type Props = {
|
|
@@ -10,7 +10,7 @@ declare const Title: ({
|
|
|
10
10
|
level,
|
|
11
11
|
className,
|
|
12
12
|
children
|
|
13
|
-
}: Props) =>
|
|
13
|
+
}: Props) => react_jsx_runtime23.JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
15
|
export { Title };
|
|
16
16
|
//# sourceMappingURL=title.d.ts.map
|
package/dist/ui/alert-dialog.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";require(`../button-variants-BHDyMRNh.cjs`);const e=require(`../alert-dialog-
|
|
1
|
+
"use client";require(`../button-variants-BHDyMRNh.cjs`);const e=require(`../alert-dialog-sCh-4H6r.cjs`);exports.AlertDialog=e.AlertDialog,exports.AlertDialogAction=e.AlertDialogAction,exports.AlertDialogCancel=e.AlertDialogCancel,exports.AlertDialogContent=e.AlertDialogContent,exports.AlertDialogDescription=e.AlertDialogDescription,exports.AlertDialogFooter=e.AlertDialogFooter,exports.AlertDialogHeader=e.AlertDialogHeader,exports.AlertDialogOverlay=e.AlertDialogOverlay,exports.AlertDialogPortal=e.AlertDialogPortal,exports.AlertDialogTitle=e.AlertDialogTitle,exports.AlertDialogTrigger=e.AlertDialogTrigger;
|