@banzamel/mineralui 1.0.7 → 1.1.0
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/README.md +1 -1
- package/dist/{MAvatar-Blh5pfSO.js → MAvatar-BDfA-fQT.js} +1 -1
- package/dist/{MAvatar-Blh5pfSO.js.map → MAvatar-BDfA-fQT.js.map} +1 -1
- package/dist/{MAvatar-DMM1CsdO.cjs → MAvatar-C8tWuy5K.cjs} +1 -1
- package/dist/{MAvatar-DMM1CsdO.cjs.map → MAvatar-C8tWuy5K.cjs.map} +1 -1
- package/dist/{MBrandMoreIcons-ClUq3DXO.js → MBrandMoreIcons-IQoXQOXv.js} +1 -1
- package/dist/{MBrandMoreIcons-ClUq3DXO.js.map → MBrandMoreIcons-IQoXQOXv.js.map} +1 -1
- package/dist/{MBrandMoreIcons-Xxf9FaIx.cjs → MBrandMoreIcons-aks8CSrY.cjs} +1 -1
- package/dist/{MBrandMoreIcons-Xxf9FaIx.cjs.map → MBrandMoreIcons-aks8CSrY.cjs.map} +1 -1
- package/dist/{MCalendarIcon-DXx62vjV.js → MCalendarIcon-DXTVH31q.js} +1 -1
- package/dist/{MCalendarIcon-DXx62vjV.js.map → MCalendarIcon-DXTVH31q.js.map} +1 -1
- package/dist/{MCalendarIcon-4PilFCrR.cjs → MCalendarIcon-S4GQsUlu.cjs} +1 -1
- package/dist/{MCalendarIcon-4PilFCrR.cjs.map → MCalendarIcon-S4GQsUlu.cjs.map} +1 -1
- package/dist/{MChatIcon-CnDOfqkO.js → MChatIcon-Bb3DbYgB.js} +13 -19
- package/dist/MChatIcon-Bb3DbYgB.js.map +1 -0
- package/dist/MChatIcon-C-5VN1TR.cjs +2 -0
- package/dist/MChatIcon-C-5VN1TR.cjs.map +1 -0
- package/dist/{MCheckbox-BhtJDdip.cjs → MCheckbox-9WMKKIUO.cjs} +1 -1
- package/dist/{MCheckbox-BhtJDdip.cjs.map → MCheckbox-9WMKKIUO.cjs.map} +1 -1
- package/dist/{MCheckbox-CugP7F6H.js → MCheckbox-DW-liYve.js} +1 -1
- package/dist/{MCheckbox-CugP7F6H.js.map → MCheckbox-DW-liYve.js.map} +1 -1
- package/dist/{MClockIcon-DefFl5ks.js → MClockIcon-DTevPaRf.js} +1 -1
- package/dist/{MClockIcon-DefFl5ks.js.map → MClockIcon-DTevPaRf.js.map} +1 -1
- package/dist/{MClockIcon-C-zYY2A0.cjs → MClockIcon-DoskImOg.cjs} +1 -1
- package/dist/{MClockIcon-C-zYY2A0.cjs.map → MClockIcon-DoskImOg.cjs.map} +1 -1
- package/dist/{MCookieBootstrap-Ck_8aUQK.cjs → MCookieBootstrap-I7jiqvBM.cjs} +1 -1
- package/dist/{MCookieBootstrap-Ck_8aUQK.cjs.map → MCookieBootstrap-I7jiqvBM.cjs.map} +1 -1
- package/dist/{MCookieBootstrap-BbpXuRtS.js → MCookieBootstrap-v2JRvgUH.js} +1 -1
- package/dist/{MCookieBootstrap-BbpXuRtS.js.map → MCookieBootstrap-v2JRvgUH.js.map} +1 -1
- package/dist/{MDataTable-8ZhnWhqW.cjs → MDataTable-B0QbAjVI.cjs} +2 -2
- package/dist/{MDataTable-8ZhnWhqW.cjs.map → MDataTable-B0QbAjVI.cjs.map} +1 -1
- package/dist/{MDataTable--pUkQHAv.js → MDataTable-C-CRvZ45.js} +7 -7
- package/dist/{MDataTable--pUkQHAv.js.map → MDataTable-C-CRvZ45.js.map} +1 -1
- package/dist/{MDrawer-00BvU8Dn.js → MDrawer-CHbmY08J.js} +1 -1
- package/dist/{MDrawer-00BvU8Dn.js.map → MDrawer-CHbmY08J.js.map} +1 -1
- package/dist/{MDrawer-FYS50FtQ.cjs → MDrawer-_Bao-x1w.cjs} +1 -1
- package/dist/{MDrawer-FYS50FtQ.cjs.map → MDrawer-_Bao-x1w.cjs.map} +1 -1
- package/dist/{MDropdownMenu-BLBdToIz.cjs → MDropdownMenu-Bd6MfUmF.cjs} +1 -1
- package/dist/{MDropdownMenu-BLBdToIz.cjs.map → MDropdownMenu-Bd6MfUmF.cjs.map} +1 -1
- package/dist/{MDropdownMenu-BgOiM5yr.js → MDropdownMenu-D3O3-l8O.js} +1 -1
- package/dist/{MDropdownMenu-BgOiM5yr.js.map → MDropdownMenu-D3O3-l8O.js.map} +1 -1
- package/dist/{MEllipsisVerticalIcon-CNn1AQ8W.js → MEllipsisVerticalIcon-CXmu-bHJ.js} +9 -3
- package/dist/MEllipsisVerticalIcon-CXmu-bHJ.js.map +1 -0
- package/dist/MEllipsisVerticalIcon-CufhU4cO.cjs +2 -0
- package/dist/MEllipsisVerticalIcon-CufhU4cO.cjs.map +1 -0
- package/dist/{MFileExtIcons-DH9oZPpf.cjs → MFileExtIcons-CPsgV8eQ.cjs} +1 -1
- package/dist/{MFileExtIcons-DH9oZPpf.cjs.map → MFileExtIcons-CPsgV8eQ.cjs.map} +1 -1
- package/dist/{MFileExtIcons-BoG3GPxg.js → MFileExtIcons-Cxbgd5Fz.js} +1 -1
- package/dist/{MFileExtIcons-BoG3GPxg.js.map → MFileExtIcons-Cxbgd5Fz.js.map} +1 -1
- package/dist/MHeading-7-5TESyc.cjs +2 -0
- package/dist/MHeading-7-5TESyc.cjs.map +1 -0
- package/dist/MHeading-BlDlbYcY.js +19 -0
- package/dist/MHeading-BlDlbYcY.js.map +1 -0
- package/dist/{MImage-CKrjXRmf.js → MImage-C99xrQQ9.js} +2 -2
- package/dist/{MImage-CKrjXRmf.js.map → MImage-C99xrQQ9.js.map} +1 -1
- package/dist/{MImage-f854avZS.cjs → MImage-DbianX0t.cjs} +2 -2
- package/dist/{MImage-f854avZS.cjs.map → MImage-DbianX0t.cjs.map} +1 -1
- package/dist/MInline-Bvfuvqsf.cjs +2 -0
- package/dist/MInline-Bvfuvqsf.cjs.map +1 -0
- package/dist/MInline-NJeL5tcC.js +39 -0
- package/dist/MInline-NJeL5tcC.js.map +1 -0
- package/dist/{MInput-CQ3MqKsk.cjs → MInput-Bpkn3gOQ.cjs} +1 -1
- package/dist/{MInput-CQ3MqKsk.cjs.map → MInput-Bpkn3gOQ.cjs.map} +1 -1
- package/dist/{MInput-BUCcLWSI.js → MInput-OmuQ2Tds.js} +1 -1
- package/dist/{MInput-BUCcLWSI.js.map → MInput-OmuQ2Tds.js.map} +1 -1
- package/dist/MInputCVC-Bl8i97Y0.cjs +2 -0
- package/dist/MInputCVC-Bl8i97Y0.cjs.map +1 -0
- package/dist/MInputCVC-CcG_KJvq.js +322 -0
- package/dist/MInputCVC-CcG_KJvq.js.map +1 -0
- package/dist/{MInputSearch-Dt79qbZg.cjs → MInputSearch-APMIHkYb.cjs} +2 -2
- package/dist/{MInputSearch-Dt79qbZg.cjs.map → MInputSearch-APMIHkYb.cjs.map} +1 -1
- package/dist/{MInputSearch-BeXUh4lz.js → MInputSearch-k2ESY4ZG.js} +2 -2
- package/dist/{MInputSearch-BeXUh4lz.js.map → MInputSearch-k2ESY4ZG.js.map} +1 -1
- package/dist/{MLink-CVN-Vll4.cjs → MLink-B4JrRZ29.cjs} +1 -1
- package/dist/{MLink-CVN-Vll4.cjs.map → MLink-B4JrRZ29.cjs.map} +1 -1
- package/dist/{MLink-DH4vk7O5.js → MLink-_WcD95E0.js} +1 -1
- package/dist/{MLink-DH4vk7O5.js.map → MLink-_WcD95E0.js.map} +1 -1
- package/dist/{MMenuIcon-Brpitjq1.cjs → MMenuIcon-A_eXBpM8.cjs} +1 -1
- package/dist/{MMenuIcon-Brpitjq1.cjs.map → MMenuIcon-A_eXBpM8.cjs.map} +1 -1
- package/dist/{MMenuIcon-idfVpVQD.js → MMenuIcon-CbBHfxVa.js} +1 -1
- package/dist/{MMenuIcon-idfVpVQD.js.map → MMenuIcon-CbBHfxVa.js.map} +1 -1
- package/dist/{MModal-BQvk1KKc.cjs → MModal-D-3jQ-c5.cjs} +2 -2
- package/dist/{MModal-BQvk1KKc.cjs.map → MModal-D-3jQ-c5.cjs.map} +1 -1
- package/dist/{MModal-D1Knn-bg.js → MModal-Dni2MR1n.js} +2 -2
- package/dist/{MModal-D1Knn-bg.js.map → MModal-Dni2MR1n.js.map} +1 -1
- package/dist/MPagination-3fsF3pCM.cjs +2 -0
- package/dist/MPagination-3fsF3pCM.cjs.map +1 -0
- package/dist/MPagination-DCeU7MHM.js +113 -0
- package/dist/MPagination-DCeU7MHM.js.map +1 -0
- package/dist/{MPhoneIcon-efl6BqwU.js → MPhoneIcon-D5JEg8LZ.js} +1 -1
- package/dist/{MPhoneIcon-efl6BqwU.js.map → MPhoneIcon-D5JEg8LZ.js.map} +1 -1
- package/dist/{MPhoneIcon-lgC9DH5a.cjs → MPhoneIcon-D5unTWyf.cjs} +1 -1
- package/dist/{MPhoneIcon-lgC9DH5a.cjs.map → MPhoneIcon-D5unTWyf.cjs.map} +1 -1
- package/dist/{MProtectIcon-BPYP06QD.cjs → MProtectIcon-B_m67eu1.cjs} +1 -1
- package/dist/{MProtectIcon-BPYP06QD.cjs.map → MProtectIcon-B_m67eu1.cjs.map} +1 -1
- package/dist/{MProtectIcon-BTtMmrib.js → MProtectIcon-s_IpKWPz.js} +1 -1
- package/dist/{MProtectIcon-BTtMmrib.js.map → MProtectIcon-s_IpKWPz.js.map} +1 -1
- package/dist/{MQrCode-CbUPPd4S.cjs → MQrCode-ClP7YJFt.cjs} +2 -2
- package/dist/{MQrCode-CbUPPd4S.cjs.map → MQrCode-ClP7YJFt.cjs.map} +1 -1
- package/dist/{MQrCode-AttGRC6v.js → MQrCode-DGq8ktvf.js} +3 -3
- package/dist/{MQrCode-AttGRC6v.js.map → MQrCode-DGq8ktvf.js.map} +1 -1
- package/dist/{MSkeleton-B5jZNFOG.cjs → MSkeleton-CRgCZZqm.cjs} +2 -2
- package/dist/{MSkeleton-B5jZNFOG.cjs.map → MSkeleton-CRgCZZqm.cjs.map} +1 -1
- package/dist/{MSkeleton-BL4C5FkH.js → MSkeleton-QQ8Lk3Cr.js} +2 -2
- package/dist/{MSkeleton-BL4C5FkH.js.map → MSkeleton-QQ8Lk3Cr.js.map} +1 -1
- package/dist/{MSlider-D5ckYDop.js → MSlider-C65mv2h1.js} +1 -1
- package/dist/{MSlider-D5ckYDop.js.map → MSlider-C65mv2h1.js.map} +1 -1
- package/dist/{MSlider-vD6Sla2p.cjs → MSlider-DNAOirz9.cjs} +1 -1
- package/dist/{MSlider-vD6Sla2p.cjs.map → MSlider-DNAOirz9.cjs.map} +1 -1
- package/dist/{MSparkline-DjcDtnZH.js → MSparkline-LfEfA310.js} +1 -1
- package/dist/{MSparkline-DjcDtnZH.js.map → MSparkline-LfEfA310.js.map} +1 -1
- package/dist/{MSparkline-U-XaDvpV.cjs → MSparkline-lRq3gAYU.cjs} +1 -1
- package/dist/{MSparkline-U-XaDvpV.cjs.map → MSparkline-lRq3gAYU.cjs.map} +1 -1
- package/dist/{MStack-BvFI0AFv.cjs → MStack-CFZf6I8F.cjs} +1 -1
- package/dist/{MStack-BvFI0AFv.cjs.map → MStack-CFZf6I8F.cjs.map} +1 -1
- package/dist/{MStack-DhdMFSUL.js → MStack-CuUE9u4h.js} +1 -1
- package/dist/{MStack-DhdMFSUL.js.map → MStack-CuUE9u4h.js.map} +1 -1
- package/dist/{MStarFillIcon-CGyQPFi8.js → MStarFillIcon-BxKSY0VO.js} +1 -1
- package/dist/{MStarFillIcon-CGyQPFi8.js.map → MStarFillIcon-BxKSY0VO.js.map} +1 -1
- package/dist/{MStarFillIcon-DJHfl_Qy.cjs → MStarFillIcon-CnINKvE4.cjs} +1 -1
- package/dist/{MStarFillIcon-DJHfl_Qy.cjs.map → MStarFillIcon-CnINKvE4.cjs.map} +1 -1
- package/dist/{MSubText-uvcBr9Ba.js → MSubText-BxDWVjjs.js} +2 -2
- package/dist/{MSubText-uvcBr9Ba.js.map → MSubText-BxDWVjjs.js.map} +1 -1
- package/dist/{MSubText-CfWNytoK.cjs → MSubText-Dr0rAnX7.cjs} +2 -2
- package/dist/{MSubText-CfWNytoK.cjs.map → MSubText-Dr0rAnX7.cjs.map} +1 -1
- package/dist/{MSuccessIcon-CatQ4FmG.cjs → MSuccessIcon-Cvs8ER4y.cjs} +1 -1
- package/dist/{MSuccessIcon-CatQ4FmG.cjs.map → MSuccessIcon-Cvs8ER4y.cjs.map} +1 -1
- package/dist/{MSuccessIcon-D3GrOvye.js → MSuccessIcon-DH5Z83mM.js} +1 -1
- package/dist/{MSuccessIcon-D3GrOvye.js.map → MSuccessIcon-DH5Z83mM.js.map} +1 -1
- package/dist/{MSurface-DlcK6Bre.js → MSurface-BiusHYSB.js} +1 -1
- package/dist/{MSurface-DlcK6Bre.js.map → MSurface-BiusHYSB.js.map} +1 -1
- package/dist/{MSurface-qcGLaTIK.cjs → MSurface-BlCLcifq.cjs} +1 -1
- package/dist/{MSurface-qcGLaTIK.cjs.map → MSurface-BlCLcifq.cjs.map} +1 -1
- package/dist/MText-DEKnLtLk.cjs +2 -0
- package/dist/MText-DEKnLtLk.cjs.map +1 -0
- package/dist/{MText-C0FdseW1.js → MText-lZjEtV_i.js} +8 -22
- package/dist/MText-lZjEtV_i.js.map +1 -0
- package/dist/{MTimeAgo-DrDs52Y1.js → MTimeAgo-4pfAn0iE.js} +2 -2
- package/dist/{MTimeAgo-DrDs52Y1.js.map → MTimeAgo-4pfAn0iE.js.map} +1 -1
- package/dist/{MTimeAgo-BOXKcDYN.cjs → MTimeAgo-Ci8UkEEk.cjs} +2 -2
- package/dist/{MTimeAgo-BOXKcDYN.cjs.map → MTimeAgo-Ci8UkEEk.cjs.map} +1 -1
- package/dist/{MToggle-B7cKH5Tl.js → MToggle-CndejlPX.js} +1 -1
- package/dist/{MToggle-B7cKH5Tl.js.map → MToggle-CndejlPX.js.map} +1 -1
- package/dist/{MToggle-Hheo-jfZ.cjs → MToggle-Dom6azGw.cjs} +1 -1
- package/dist/{MToggle-Hheo-jfZ.cjs.map → MToggle-Dom6azGw.cjs.map} +1 -1
- package/dist/{MTooltip-DzwZ637q.cjs → MTooltip-CsJogGMW.cjs} +1 -1
- package/dist/{MTooltip-DzwZ637q.cjs.map → MTooltip-CsJogGMW.cjs.map} +1 -1
- package/dist/{MTooltip-D3xuZ5kG.js → MTooltip-DIqh59S2.js} +1 -1
- package/dist/{MTooltip-D3xuZ5kG.js.map → MTooltip-DIqh59S2.js.map} +1 -1
- package/dist/cards-Bp7jOY3_.cjs +2 -0
- package/dist/cards-Bp7jOY3_.cjs.map +1 -0
- package/dist/{cards-CKCr-GuJ.js → cards-CuxycY_U.js} +325 -241
- package/dist/{cards-yPK4lBAA.cjs.map → cards-CuxycY_U.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +3 -3
- package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +2 -0
- package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.types.d.ts +22 -0
- package/dist/components/cards/MCardPaymentMethod/index.d.ts +2 -0
- package/dist/components/cards/index.d.ts +2 -0
- package/dist/components/inputs/MInputCVC/MInputCVC.d.ts +3 -0
- package/dist/components/inputs/MInputCVC/MInputCVC.types.d.ts +9 -0
- package/dist/components/inputs/MInputCVC/index.d.ts +2 -0
- package/dist/components/inputs/MInputExpDate/MInputExpDate.d.ts +3 -0
- package/dist/components/inputs/MInputExpDate/MInputExpDate.types.d.ts +10 -0
- package/dist/components/inputs/MInputExpDate/index.d.ts +2 -0
- package/dist/components/inputs/index.d.ts +4 -0
- package/dist/{controls-DEEbLT5o.cjs → controls-BJe59nXf.cjs} +1 -1
- package/dist/{controls-DEEbLT5o.cjs.map → controls-BJe59nXf.cjs.map} +1 -1
- package/dist/{controls-IsOBNxW0.js → controls-CO70zfcl.js} +1 -1
- package/dist/{controls-IsOBNxW0.js.map → controls-CO70zfcl.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +4 -4
- package/dist/cookie-consent-bootstrap.cjs +1 -1
- package/dist/cookie-consent-bootstrap.js +1 -1
- package/dist/{data-Bp3Fd2Al.js → data-CaRwdLlD.js} +638 -637
- package/dist/{data-Bp3Fd2Al.js.map → data-CaRwdLlD.js.map} +1 -1
- package/dist/data-r5uYgiWq.cjs +2 -0
- package/dist/{data-BEH7TbuW.cjs.map → data-r5uYgiWq.cjs.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/{display-B0Db8pF3.js → display-CkzrTEdb.js} +2 -2
- package/dist/{display-B0Db8pF3.js.map → display-CkzrTEdb.js.map} +1 -1
- package/dist/{display-DmB5CZYB.cjs → display-DHpFRcAP.cjs} +2 -2
- package/dist/{display-DmB5CZYB.cjs.map → display-DHpFRcAP.cjs.map} +1 -1
- package/dist/display.cjs +1 -1
- package/dist/display.js +3 -3
- package/dist/{dropdowns-BkBtQP4v.js → dropdowns-BPRJL_2d.js} +19 -19
- package/dist/{dropdowns-BkBtQP4v.js.map → dropdowns-BPRJL_2d.js.map} +1 -1
- package/dist/dropdowns-BTbAnQxt.cjs +2 -0
- package/dist/{dropdowns-CD2myl19.cjs.map → dropdowns-BTbAnQxt.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-5sizFz86.js → feedback-Cgu8ez5M.js} +316 -296
- package/dist/feedback-Cgu8ez5M.js.map +1 -0
- package/dist/feedback-DBhETzTM.cjs +2 -0
- package/dist/feedback-DBhETzTM.cjs.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +3 -3
- package/dist/{form-JanaUHTQ.js → form-XhjrsBOv.js} +1 -1
- package/dist/{form-JanaUHTQ.js.map → form-XhjrsBOv.js.map} +1 -1
- package/dist/{form-BQ6-ieVC.cjs → form-rDra9x3X.cjs} +1 -1
- package/dist/{form-BQ6-ieVC.cjs.map → form-rDra9x3X.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{frameworkTexts-5_DBGFFg.js → frameworkTexts-DH2N7l8F.js} +3 -3
- package/dist/{frameworkTexts-5_DBGFFg.js.map → frameworkTexts-DH2N7l8F.js.map} +1 -1
- package/dist/{frameworkTexts-CwSSRPWS.cjs → frameworkTexts-Ds2orE1v.cjs} +2 -2
- package/dist/{frameworkTexts-CwSSRPWS.cjs.map → frameworkTexts-Ds2orE1v.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +15 -15
- package/dist/index.cjs +1 -1
- package/dist/index.js +53 -50
- package/dist/{inputs-DFoD2MMX.js → inputs-BBJgVLXO.js} +7 -7
- package/dist/{inputs-DFoD2MMX.js.map → inputs-BBJgVLXO.js.map} +1 -1
- package/dist/{inputs-BRjbpf9P.cjs → inputs-DPhzLJZH.cjs} +2 -2
- package/dist/{inputs-BRjbpf9P.cjs.map → inputs-DPhzLJZH.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +5 -4
- package/dist/{layout-yIAZ4bP6.js → layout-CdAUOdYv.js} +5 -5
- package/dist/{layout-yIAZ4bP6.js.map → layout-CdAUOdYv.js.map} +1 -1
- package/dist/{layout-BWhQ1VXM.cjs → layout-DsY7-y6U.cjs} +2 -2
- package/dist/{layout-BWhQ1VXM.cjs.map → layout-DsY7-y6U.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +6 -5
- package/dist/{locale-DpCe_7mG.cjs → locale-BG4Q6P_O.cjs} +1 -1
- package/dist/{locale-DpCe_7mG.cjs.map → locale-BG4Q6P_O.cjs.map} +1 -1
- package/dist/{locale-Crzgecoe.js → locale-DPqdZjGC.js} +1 -1
- package/dist/{locale-Crzgecoe.js.map → locale-DPqdZjGC.js.map} +1 -1
- package/dist/{media-D0KRmTG_.cjs → media-Cc2wBvkb.cjs} +2 -2
- package/dist/{media-D0KRmTG_.cjs.map → media-Cc2wBvkb.cjs.map} +1 -1
- package/dist/{media-DWG2uW1h.js → media-Yp4PedIi.js} +4 -4
- package/dist/{media-DWG2uW1h.js.map → media-Yp4PedIi.js.map} +1 -1
- package/dist/media.cjs +1 -1
- package/dist/media.js +3 -3
- package/dist/{overlays-DQOnI2NS.js → overlays-BBlMSWS8.js} +2 -2
- package/dist/{overlays-DQOnI2NS.js.map → overlays-BBlMSWS8.js.map} +1 -1
- package/dist/{overlays-CROlfKrR.cjs → overlays-CmF2tV32.cjs} +2 -2
- package/dist/{overlays-CROlfKrR.cjs.map → overlays-CmF2tV32.cjs.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +5 -5
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/{typography-CtITQOAU.cjs → typography-B9-sCjsR.cjs} +2 -2
- package/dist/{typography-CtITQOAU.cjs.map → typography-B9-sCjsR.cjs.map} +1 -1
- package/dist/{typography-CCkJaTzp.js → typography-DZx1M8Wc.js} +2 -2
- package/dist/{typography-CCkJaTzp.js.map → typography-DZx1M8Wc.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +6 -5
- package/package.json +1 -1
- package/dist/MChatIcon-CnDOfqkO.js.map +0 -1
- package/dist/MChatIcon-DX-u8_6S.cjs +0 -2
- package/dist/MChatIcon-DX-u8_6S.cjs.map +0 -1
- package/dist/MEllipsisVerticalIcon-C87B9UQK.cjs +0 -2
- package/dist/MEllipsisVerticalIcon-C87B9UQK.cjs.map +0 -1
- package/dist/MEllipsisVerticalIcon-CNn1AQ8W.js.map +0 -1
- package/dist/MPagination-Bu84ZlVh.cjs +0 -2
- package/dist/MPagination-Bu84ZlVh.cjs.map +0 -1
- package/dist/MPagination-CbkRMnL1.js +0 -147
- package/dist/MPagination-CbkRMnL1.js.map +0 -1
- package/dist/MText-C0FdseW1.js.map +0 -1
- package/dist/MText-OV0ihtQ6.cjs +0 -2
- package/dist/MText-OV0ihtQ6.cjs.map +0 -1
- package/dist/cards-CKCr-GuJ.js.map +0 -1
- package/dist/cards-yPK4lBAA.cjs +0 -2
- package/dist/data-BEH7TbuW.cjs +0 -2
- package/dist/dropdowns-CD2myl19.cjs +0 -2
- package/dist/feedback-5sizFz86.js.map +0 -1
- package/dist/feedback-BB_6Du5-.cjs +0 -2
- package/dist/feedback-BB_6Du5-.cjs.map +0 -1
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { t as e } from "./MCloseIcon-lDH3Vc10.js";
|
|
2
|
+
import { t } from "./MCheckIcon-DQumT4HX.js";
|
|
3
|
+
import { t as n } from "./MChevronDownIcon-D3yTpzni.js";
|
|
4
|
+
import { t as r } from "./cn-DZLxql0l.js";
|
|
5
|
+
import { n as i, t as a } from "./MInput-OmuQ2Tds.js";
|
|
6
|
+
import { i as o, r as s } from "./MDropdownMenu-D3O3-l8O.js";
|
|
7
|
+
import { forwardRef as c, useCallback as l, useMemo as u, useRef as d, useState as f } from "react";
|
|
8
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
9
|
+
//#region src/components/inputs/MInputExpDate/MInputExpDate.tsx
|
|
10
|
+
var h = { valid: !0 };
|
|
11
|
+
function g(e) {
|
|
12
|
+
return e.replace(/\D/g, "");
|
|
13
|
+
}
|
|
14
|
+
function _(e) {
|
|
15
|
+
return e ? e.padStart(2, "0").slice(0, 2) : "";
|
|
16
|
+
}
|
|
17
|
+
function v(e, t) {
|
|
18
|
+
let n = _(e), r = t?.slice(0, 4) ?? "";
|
|
19
|
+
return !n && !r ? "" : r ? `${n}/${r}` : n;
|
|
20
|
+
}
|
|
21
|
+
function y(e) {
|
|
22
|
+
let t = g(e).slice(0, 6);
|
|
23
|
+
return {
|
|
24
|
+
month: t.slice(0, 2),
|
|
25
|
+
year: t.slice(2, 6)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function b(e, t) {
|
|
29
|
+
let n = (/* @__PURE__ */ new Date()).getFullYear(), r = Math.max(e ?? n, n);
|
|
30
|
+
return {
|
|
31
|
+
resolvedMinYear: r,
|
|
32
|
+
resolvedMaxYear: Math.max(t ?? n + 20, r)
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function ee(e, { minYear: t, maxYear: n }) {
|
|
36
|
+
if (!e) return h;
|
|
37
|
+
let { month: r, year: i } = y(e);
|
|
38
|
+
if (r.length !== 2 || i.length !== 4) return {
|
|
39
|
+
valid: !1,
|
|
40
|
+
error: "Expiration date is incomplete"
|
|
41
|
+
};
|
|
42
|
+
let a = parseInt(r, 10), o = parseInt(i, 10), { resolvedMinYear: s, resolvedMaxYear: c } = b(t, n);
|
|
43
|
+
if (Number.isNaN(a) || a < 1 || a > 12) return {
|
|
44
|
+
valid: !1,
|
|
45
|
+
error: "Use a valid month"
|
|
46
|
+
};
|
|
47
|
+
if (Number.isNaN(o)) return {
|
|
48
|
+
valid: !1,
|
|
49
|
+
error: "Use a valid year"
|
|
50
|
+
};
|
|
51
|
+
if (o < s) return {
|
|
52
|
+
valid: !1,
|
|
53
|
+
error: `Year must be ${s} or later`
|
|
54
|
+
};
|
|
55
|
+
if (o > c) return {
|
|
56
|
+
valid: !1,
|
|
57
|
+
error: `Year must be ${c} or earlier`
|
|
58
|
+
};
|
|
59
|
+
let l = /* @__PURE__ */ new Date(), u = l.getMonth() + 1, d = l.getFullYear();
|
|
60
|
+
return o < d || o === d && a < u ? {
|
|
61
|
+
valid: !1,
|
|
62
|
+
error: "Card has expired"
|
|
63
|
+
} : h;
|
|
64
|
+
}
|
|
65
|
+
var x = c(function({ validateOnBlur: t = !0, validateOnChange: a = !1, minYear: c, maxYear: _, onValidationChange: x, onValueChange: S, value: C, defaultValue: te, name: w, id: T, disabled: E = !1, readOnly: D = !1, required: O = !1, autoFocus: k = !1, variant: ne = "outlined", size: A = "md", color: j, fullWidth: re = !1, rounded: ie = !1, label: M, helperText: N, errorText: ae, startIcon: P, endIcon: F, clearable: oe = !1, error: se = !1, success: ce, onChange: le, onFocus: I, onBlur: L, onClear: ue, className: de, style: fe, labelClassName: pe }, R) {
|
|
66
|
+
let z = d(null), me = d(null), { currentValue: B, setCurrentValue: he } = i(C, te), [V, ge] = f(h), [H, _e] = f(!1), [U, ve] = f(!1), [ye, be] = f(!1), [xe, Se] = f(!1), { month: W, year: G } = y(B), Ce = !!(W || G), K = E || D, { resolvedMinYear: q, resolvedMaxYear: we } = b(c, _), Te = u(() => Array.from({ length: we - q + 1 }, (e, t) => q + t), [we, q]), J = l((e) => {
|
|
67
|
+
let t = ee(e, {
|
|
68
|
+
minYear: c,
|
|
69
|
+
maxYear: _
|
|
70
|
+
});
|
|
71
|
+
return ge(t), x?.(t), t;
|
|
72
|
+
}, [
|
|
73
|
+
_,
|
|
74
|
+
c,
|
|
75
|
+
x
|
|
76
|
+
]), Y = l((e) => {
|
|
77
|
+
he(e), S?.(g(e), e);
|
|
78
|
+
let t = R?.current ?? z.current;
|
|
79
|
+
t && ((Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value")?.set)?.call(t, e), t.dispatchEvent(new Event("input", { bubbles: !0 })));
|
|
80
|
+
}, [
|
|
81
|
+
S,
|
|
82
|
+
R,
|
|
83
|
+
he
|
|
84
|
+
]), X = l((e, t) => {
|
|
85
|
+
let n = v(e, t);
|
|
86
|
+
Y(n), a && H && J(n);
|
|
87
|
+
}, [
|
|
88
|
+
J,
|
|
89
|
+
Y,
|
|
90
|
+
H,
|
|
91
|
+
a
|
|
92
|
+
]), Z = l(() => {
|
|
93
|
+
(R?.current ?? z.current)?.focus();
|
|
94
|
+
}, [R]), Ee = l((e) => {
|
|
95
|
+
if (U) return;
|
|
96
|
+
ve(!0);
|
|
97
|
+
let t = R?.current ?? z.current;
|
|
98
|
+
t && e.target !== t && I?.(e);
|
|
99
|
+
}, [
|
|
100
|
+
U,
|
|
101
|
+
I,
|
|
102
|
+
R
|
|
103
|
+
]), De = l((e) => {
|
|
104
|
+
let n = e.relatedTarget;
|
|
105
|
+
n && me.current?.contains(n) || (ve(!1), _e(!0), t && B && J(B), L?.(e));
|
|
106
|
+
}, [
|
|
107
|
+
B,
|
|
108
|
+
L,
|
|
109
|
+
J,
|
|
110
|
+
t
|
|
111
|
+
]), Oe = l((e) => {
|
|
112
|
+
Z(), X(e, G);
|
|
113
|
+
}, [
|
|
114
|
+
Z,
|
|
115
|
+
X,
|
|
116
|
+
G
|
|
117
|
+
]), ke = l((e) => {
|
|
118
|
+
Z(), X(W, e);
|
|
119
|
+
}, [
|
|
120
|
+
Z,
|
|
121
|
+
W,
|
|
122
|
+
X
|
|
123
|
+
]), Ae = l(() => {
|
|
124
|
+
Y(""), _e(!1), ge(h), x?.(h), ue?.(), Z();
|
|
125
|
+
}, [
|
|
126
|
+
Z,
|
|
127
|
+
ue,
|
|
128
|
+
x,
|
|
129
|
+
Y
|
|
130
|
+
]), Q = se || H && !V.valid, $ = ae || (H && !V.valid ? V.error : void 0), je = !Q && (ce === void 0 ? H && V.valid && !!(W && G) : ce), Me = Q ? "color-error" : j ? `color-${j}` : void 0, Ne = r("container", `field-${ne}`, `field-${A}`, U && "focused", Q && "input-error", je && !Q && "input-success", Me, E && "disabled", ie && "rounded"), Pe = W || "MM", Fe = G || "YYYY";
|
|
131
|
+
return /* @__PURE__ */ m("div", {
|
|
132
|
+
ref: me,
|
|
133
|
+
className: r("input", "input-exp-date", Me, re && "full-width", de),
|
|
134
|
+
style: fe,
|
|
135
|
+
onFocusCapture: Ee,
|
|
136
|
+
onBlurCapture: De,
|
|
137
|
+
children: [
|
|
138
|
+
M && /* @__PURE__ */ p("label", {
|
|
139
|
+
htmlFor: T,
|
|
140
|
+
className: r("field-label", U && "focused", Q && "error", je && !Q && "success", O && "required", pe),
|
|
141
|
+
children: M
|
|
142
|
+
}),
|
|
143
|
+
/* @__PURE__ */ m("div", {
|
|
144
|
+
className: Ne,
|
|
145
|
+
onClick: Z,
|
|
146
|
+
children: [
|
|
147
|
+
P && /* @__PURE__ */ p("span", {
|
|
148
|
+
className: "start-icon",
|
|
149
|
+
children: P
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ p("input", {
|
|
152
|
+
ref: R ?? z,
|
|
153
|
+
type: "text",
|
|
154
|
+
value: B,
|
|
155
|
+
name: w,
|
|
156
|
+
id: T,
|
|
157
|
+
readOnly: !0,
|
|
158
|
+
required: O,
|
|
159
|
+
autoFocus: k,
|
|
160
|
+
className: "input-exp-date-native",
|
|
161
|
+
tabIndex: -1,
|
|
162
|
+
"aria-hidden": "true",
|
|
163
|
+
onChange: le,
|
|
164
|
+
onFocus: I,
|
|
165
|
+
onBlur: L
|
|
166
|
+
}),
|
|
167
|
+
/* @__PURE__ */ m("div", {
|
|
168
|
+
className: "input-exp-date-segments",
|
|
169
|
+
"aria-label": "Expiration date",
|
|
170
|
+
children: [
|
|
171
|
+
K ? /* @__PURE__ */ p("span", {
|
|
172
|
+
className: r("input-exp-date-trigger", !W && "placeholder", "static"),
|
|
173
|
+
children: /* @__PURE__ */ p("span", { children: Pe })
|
|
174
|
+
}) : /* @__PURE__ */ p(o, {
|
|
175
|
+
trigger: /* @__PURE__ */ m("span", {
|
|
176
|
+
className: r("input-exp-date-trigger", ye && "open", !W && "placeholder"),
|
|
177
|
+
onMouseDown: Z,
|
|
178
|
+
children: [/* @__PURE__ */ p("span", { children: Pe }), /* @__PURE__ */ p(n, { size: 16 })]
|
|
179
|
+
}),
|
|
180
|
+
openOn: "click",
|
|
181
|
+
closeOnSelect: !0,
|
|
182
|
+
onOpenChange: be,
|
|
183
|
+
popoverClassName: "input-exp-date-popover",
|
|
184
|
+
children: Array.from({ length: 12 }, (e, t) => {
|
|
185
|
+
let n = String(t + 1).padStart(2, "0");
|
|
186
|
+
return /* @__PURE__ */ p(s, {
|
|
187
|
+
label: n,
|
|
188
|
+
active: W === n,
|
|
189
|
+
onClick: () => Oe(n)
|
|
190
|
+
}, n);
|
|
191
|
+
})
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ p("span", {
|
|
194
|
+
className: "input-exp-date-separator",
|
|
195
|
+
children: "/"
|
|
196
|
+
}),
|
|
197
|
+
K ? /* @__PURE__ */ p("span", {
|
|
198
|
+
className: r("input-exp-date-trigger", !G && "placeholder", "static"),
|
|
199
|
+
children: /* @__PURE__ */ p("span", { children: Fe })
|
|
200
|
+
}) : /* @__PURE__ */ p(o, {
|
|
201
|
+
trigger: /* @__PURE__ */ m("span", {
|
|
202
|
+
className: r("input-exp-date-trigger", xe && "open", !G && "placeholder"),
|
|
203
|
+
onMouseDown: Z,
|
|
204
|
+
children: [/* @__PURE__ */ p("span", { children: Fe }), /* @__PURE__ */ p(n, { size: 16 })]
|
|
205
|
+
}),
|
|
206
|
+
openOn: "click",
|
|
207
|
+
closeOnSelect: !0,
|
|
208
|
+
onOpenChange: Se,
|
|
209
|
+
popoverClassName: "input-exp-date-popover",
|
|
210
|
+
children: Te.map((e) => /* @__PURE__ */ p(s, {
|
|
211
|
+
label: String(e),
|
|
212
|
+
active: G === String(e),
|
|
213
|
+
onClick: () => ke(String(e))
|
|
214
|
+
}, e))
|
|
215
|
+
})
|
|
216
|
+
]
|
|
217
|
+
}),
|
|
218
|
+
oe && Ce && !K && /* @__PURE__ */ p("button", {
|
|
219
|
+
type: "button",
|
|
220
|
+
className: "clear-btn clear-btn-base",
|
|
221
|
+
onClick: (e) => {
|
|
222
|
+
e.stopPropagation(), Ae();
|
|
223
|
+
},
|
|
224
|
+
tabIndex: -1,
|
|
225
|
+
"aria-label": "Clear input",
|
|
226
|
+
children: /* @__PURE__ */ p(e, {})
|
|
227
|
+
}),
|
|
228
|
+
F && /* @__PURE__ */ p("span", {
|
|
229
|
+
className: "end-icon",
|
|
230
|
+
children: F
|
|
231
|
+
})
|
|
232
|
+
]
|
|
233
|
+
}),
|
|
234
|
+
($ || N) && /* @__PURE__ */ p("div", {
|
|
235
|
+
className: "bottom-row",
|
|
236
|
+
children: /* @__PURE__ */ m("span", { children: [$ && /* @__PURE__ */ p("span", {
|
|
237
|
+
id: T ? `${T}-error` : void 0,
|
|
238
|
+
className: "field-error",
|
|
239
|
+
role: "alert",
|
|
240
|
+
children: $
|
|
241
|
+
}), !$ && N && /* @__PURE__ */ p("span", {
|
|
242
|
+
id: T ? `${T}-helper` : void 0,
|
|
243
|
+
className: "field-helper",
|
|
244
|
+
children: N
|
|
245
|
+
})] })
|
|
246
|
+
})
|
|
247
|
+
]
|
|
248
|
+
});
|
|
249
|
+
}), S = { valid: !0 };
|
|
250
|
+
function C(e) {
|
|
251
|
+
return e.replace(/\D/g, "");
|
|
252
|
+
}
|
|
253
|
+
function te(e, t) {
|
|
254
|
+
return e ? C(e).length === t ? S : {
|
|
255
|
+
valid: !1,
|
|
256
|
+
error: `Security code must have ${t} digits`
|
|
257
|
+
} : S;
|
|
258
|
+
}
|
|
259
|
+
var w = c(function({ length: e = 3, validateOnBlur: n = !0, validateOnChange: i = !1, onValidationChange: o, onValueChange: s, value: c, defaultValue: u, onChange: d, onBlur: m, onKeyDown: h, error: g, errorText: _, success: v, placeholder: y, className: b, inputClassName: ee, ...x }, w) {
|
|
260
|
+
let [T, E] = f(() => C(u?.toString() ?? "").slice(0, e)), [D, O] = f(S), [k, ne] = f(!1), A = c === void 0 ? T : C(c.toString()).slice(0, e), j = l((t) => {
|
|
261
|
+
let n = te(t, e);
|
|
262
|
+
return O(n), o?.(n), n;
|
|
263
|
+
}, [e, o]), re = l((t) => {
|
|
264
|
+
let n = C(t.target.value).slice(0, e);
|
|
265
|
+
c === void 0 && E(n), s?.(n), i && k && j(n), d?.(t);
|
|
266
|
+
}, [
|
|
267
|
+
e,
|
|
268
|
+
d,
|
|
269
|
+
s,
|
|
270
|
+
j,
|
|
271
|
+
k,
|
|
272
|
+
i,
|
|
273
|
+
c
|
|
274
|
+
]), ie = l((e) => {
|
|
275
|
+
ne(!0), n && A && j(A), m?.(e);
|
|
276
|
+
}, [
|
|
277
|
+
A,
|
|
278
|
+
m,
|
|
279
|
+
j,
|
|
280
|
+
n
|
|
281
|
+
]), M = l((e) => {
|
|
282
|
+
if ([
|
|
283
|
+
"Backspace",
|
|
284
|
+
"Delete",
|
|
285
|
+
"Tab",
|
|
286
|
+
"ArrowLeft",
|
|
287
|
+
"ArrowRight",
|
|
288
|
+
"Home",
|
|
289
|
+
"End"
|
|
290
|
+
].includes(e.key)) {
|
|
291
|
+
h?.(e);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
if (e.ctrlKey || e.metaKey) {
|
|
295
|
+
h?.(e);
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
/^\d$/.test(e.key) || e.preventDefault(), h?.(e);
|
|
299
|
+
}, [h]), N = g || k && !D.valid, ae = _ || (k && !D.valid ? D.error : void 0), P = !N && (v === void 0 ? k && A.length === e : v), F = P ? /* @__PURE__ */ p(t, {}) : void 0;
|
|
300
|
+
return /* @__PURE__ */ p(a, {
|
|
301
|
+
...x,
|
|
302
|
+
ref: w,
|
|
303
|
+
type: "text",
|
|
304
|
+
inputMode: "numeric",
|
|
305
|
+
value: A,
|
|
306
|
+
onChange: re,
|
|
307
|
+
onBlur: ie,
|
|
308
|
+
onKeyDown: M,
|
|
309
|
+
error: N,
|
|
310
|
+
errorText: ae,
|
|
311
|
+
success: P,
|
|
312
|
+
placeholder: y ?? "".padEnd(e, "0"),
|
|
313
|
+
maxLength: e,
|
|
314
|
+
endIcon: F,
|
|
315
|
+
inputClassName: r("input-cvc-field", ee),
|
|
316
|
+
className: b
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
//#endregion
|
|
320
|
+
export { x as n, w as t };
|
|
321
|
+
|
|
322
|
+
//# sourceMappingURL=MInputCVC-CcG_KJvq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MInputCVC-CcG_KJvq.js","names":[],"sources":["../src/components/inputs/MInputExpDate/MInputExpDate.tsx","../src/components/inputs/MInputCVC/MInputCVC.tsx"],"sourcesContent":["import {forwardRef, useCallback, useMemo, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MInputExpDateProps} from './MInputExpDate.types'\nimport {cn} from '../../../utils/cn'\nimport {useControllableString} from '../../../utils/useControllableString'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {MCloseIcon, MChevronDownIcon} from '../../../icons'\nimport {MDropdownItem, MDropdownMenu} from '../../overlays'\nimport '../MInput/MInput.css'\nimport './MInputExpDate.css'\n\nconst OK: ValidationResult = {valid: true}\n\nfunction stripDigits(value: string) {\n return value.replace(/\\D/g, '')\n}\n\nfunction padMonth(value?: string) {\n if (!value) {\n return ''\n }\n\n return value.padStart(2, '0').slice(0, 2)\n}\n\nfunction formatValue(month?: string, year?: string) {\n const resolvedMonth = padMonth(month)\n const resolvedYear = year?.slice(0, 4) ?? ''\n\n if (!resolvedMonth && !resolvedYear) {\n return ''\n }\n\n if (!resolvedYear) {\n return resolvedMonth\n }\n\n return `${resolvedMonth}/${resolvedYear}`\n}\n\nfunction parseValue(value: string) {\n const digits = stripDigits(value).slice(0, 6)\n\n return {\n month: digits.slice(0, 2),\n year: digits.slice(2, 6),\n }\n}\n\nfunction resolveYearBounds(minYear?: number, maxYear?: number) {\n const currentYear = new Date().getFullYear()\n const resolvedMinYear = Math.max(minYear ?? currentYear, currentYear)\n const resolvedMaxYear = Math.max(maxYear ?? currentYear + 20, resolvedMinYear)\n\n return {\n resolvedMinYear,\n resolvedMaxYear,\n }\n}\n\nfunction validateExpDate(\n value: string,\n {minYear, maxYear}: Pick<MInputExpDateProps, 'minYear' | 'maxYear'>\n): ValidationResult {\n if (!value) {\n return OK\n }\n\n const {month: monthValue, year: yearValue} = parseValue(value)\n\n if (monthValue.length !== 2 || yearValue.length !== 4) {\n return {valid: false, error: 'Expiration date is incomplete'}\n }\n\n const month = parseInt(monthValue, 10)\n const year = parseInt(yearValue, 10)\n const {resolvedMinYear, resolvedMaxYear} = resolveYearBounds(minYear, maxYear)\n\n if (Number.isNaN(month) || month < 1 || month > 12) {\n return {valid: false, error: 'Use a valid month'}\n }\n\n if (Number.isNaN(year)) {\n return {valid: false, error: 'Use a valid year'}\n }\n\n if (year < resolvedMinYear) {\n return {valid: false, error: `Year must be ${resolvedMinYear} or later`}\n }\n\n if (year > resolvedMaxYear) {\n return {valid: false, error: `Year must be ${resolvedMaxYear} or earlier`}\n }\n\n const now = new Date()\n const currentMonth = now.getMonth() + 1\n const currentYear = now.getFullYear()\n\n if (year < currentYear || (year === currentYear && month < currentMonth)) {\n return {valid: false, error: 'Card has expired'}\n }\n\n return OK\n}\n\nexport const MInputExpDate = forwardRef<HTMLInputElement, MInputExpDateProps>(function MInputExpDate(\n {\n validateOnBlur = true,\n validateOnChange = false,\n minYear,\n maxYear,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n name,\n id,\n disabled = false,\n readOnly = false,\n required = false,\n autoFocus = false,\n variant = 'outlined',\n size = 'md',\n color,\n fullWidth = false,\n rounded = false,\n label,\n helperText,\n errorText,\n startIcon,\n endIcon,\n clearable = false,\n error = false,\n success,\n onChange,\n onFocus,\n onBlur,\n onClear,\n className,\n style,\n labelClassName,\n },\n ref\n) {\n const inputRef = useRef<HTMLInputElement>(null)\n const rootRef = useRef<HTMLDivElement>(null)\n const {currentValue, setCurrentValue} = useControllableString(value, defaultValue)\n const [validation, setValidation] = useState<ValidationResult>(OK)\n const [touched, setTouched] = useState(false)\n const [focused, setFocused] = useState(false)\n const [monthMenuOpen, setMonthMenuOpen] = useState(false)\n const [yearMenuOpen, setYearMenuOpen] = useState(false)\n\n const {month, year} = parseValue(currentValue)\n const hasContent = Boolean(month || year)\n const segmentDisabled = disabled || readOnly\n const {resolvedMinYear, resolvedMaxYear} = resolveYearBounds(minYear, maxYear)\n const yearOptions = useMemo(\n () => Array.from({length: resolvedMaxYear - resolvedMinYear + 1}, (_, index) => resolvedMinYear + index),\n [resolvedMaxYear, resolvedMinYear]\n )\n\n const runValidation = useCallback(\n (formattedValue: string) => {\n const result = validateExpDate(formattedValue, {minYear, maxYear})\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [maxYear, minYear, onValidationChange]\n )\n\n const syncValue = useCallback(\n (formattedValue: string) => {\n setCurrentValue(formattedValue)\n onValueChange?.(stripDigits(formattedValue), formattedValue)\n\n const input = (ref as React.RefObject<HTMLInputElement>)?.current ?? inputRef.current\n if (input) {\n const nativeSet = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value')?.set\n nativeSet?.call(input, formattedValue)\n input.dispatchEvent(new Event('input', {bubbles: true}))\n }\n },\n [onValueChange, ref, setCurrentValue]\n )\n\n const updateValue = useCallback(\n (nextMonth?: string, nextYear?: string) => {\n const formattedValue = formatValue(nextMonth, nextYear)\n syncValue(formattedValue)\n\n if (validateOnChange && touched) {\n runValidation(formattedValue)\n }\n },\n [runValidation, syncValue, touched, validateOnChange]\n )\n\n const focusHiddenInput = useCallback(() => {\n const input = (ref as React.RefObject<HTMLInputElement>)?.current ?? inputRef.current\n input?.focus()\n }, [ref])\n\n const handleRootFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (focused) {\n return\n }\n\n setFocused(true)\n const input = (ref as React.RefObject<HTMLInputElement>)?.current ?? inputRef.current\n if (input && event.target !== input) {\n onFocus?.(event as unknown as React.FocusEvent<HTMLInputElement>)\n }\n },\n [focused, onFocus, ref]\n )\n\n const handleRootBlur = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n const nextTarget = event.relatedTarget as Node | null\n\n if (nextTarget && rootRef.current?.contains(nextTarget)) {\n return\n }\n\n setFocused(false)\n setTouched(true)\n\n if (validateOnBlur && currentValue) {\n runValidation(currentValue)\n }\n\n onBlur?.(event as unknown as React.FocusEvent<HTMLInputElement>)\n },\n [currentValue, onBlur, runValidation, validateOnBlur]\n )\n\n const handleSelectMonth = useCallback(\n (nextMonth: string) => {\n focusHiddenInput()\n updateValue(nextMonth, year)\n },\n [focusHiddenInput, updateValue, year]\n )\n\n const handleSelectYear = useCallback(\n (nextYear: string) => {\n focusHiddenInput()\n updateValue(month, nextYear)\n },\n [focusHiddenInput, month, updateValue]\n )\n\n const handleClear = useCallback(() => {\n syncValue('')\n setTouched(false)\n setValidation(OK)\n onValidationChange?.(OK)\n onClear?.()\n focusHiddenInput()\n }, [focusHiddenInput, onClear, onValidationChange, syncValue])\n\n const hasError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess = !hasError && (success !== undefined ? success : touched && validation.valid && Boolean(month && year))\n const resolvedColorClass = hasError ? 'color-error' : color ? `color-${color}` : undefined\n\n const containerClasses = cn(\n 'container',\n `field-${variant}`,\n `field-${size}`,\n focused && 'focused',\n hasError && 'input-error',\n isSuccess && !hasError && 'input-success',\n resolvedColorClass,\n disabled && 'disabled',\n rounded && 'rounded'\n )\n\n const monthLabel = month || 'MM'\n const yearLabel = year || 'YYYY'\n\n return (\n <div\n ref={rootRef}\n className={cn('input', 'input-exp-date', resolvedColorClass, fullWidth && 'full-width', className)}\n style={style}\n onFocusCapture={handleRootFocus}\n onBlurCapture={handleRootBlur}\n >\n {label && (\n <label\n htmlFor={id}\n className={cn(\n 'field-label',\n focused && 'focused',\n hasError && 'error',\n isSuccess && !hasError && 'success',\n required && 'required',\n labelClassName\n )}\n >\n {label}\n </label>\n )}\n\n <div className={containerClasses} onClick={focusHiddenInput}>\n {startIcon && <span className=\"start-icon\">{startIcon}</span>}\n\n <input\n ref={ref ?? inputRef}\n type=\"text\"\n value={currentValue}\n name={name}\n id={id}\n readOnly\n required={required}\n autoFocus={autoFocus}\n className=\"input-exp-date-native\"\n tabIndex={-1}\n aria-hidden=\"true\"\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n\n <div className=\"input-exp-date-segments\" aria-label=\"Expiration date\">\n {segmentDisabled ? (\n <span className={cn('input-exp-date-trigger', !month && 'placeholder', 'static')}>\n <span>{monthLabel}</span>\n </span>\n ) : (\n <MDropdownMenu\n trigger={\n <span\n className={cn('input-exp-date-trigger', monthMenuOpen && 'open', !month && 'placeholder')}\n onMouseDown={focusHiddenInput}\n >\n <span>{monthLabel}</span>\n <MChevronDownIcon size={16} />\n </span>\n }\n openOn=\"click\"\n closeOnSelect\n onOpenChange={setMonthMenuOpen}\n popoverClassName=\"input-exp-date-popover\"\n >\n {Array.from({length: 12}, (_, index) => {\n const option = String(index + 1).padStart(2, '0')\n\n return (\n <MDropdownItem\n key={option}\n label={option}\n active={month === option}\n onClick={() => handleSelectMonth(option)}\n />\n )\n })}\n </MDropdownMenu>\n )}\n\n <span className=\"input-exp-date-separator\">/</span>\n\n {segmentDisabled ? (\n <span className={cn('input-exp-date-trigger', !year && 'placeholder', 'static')}>\n <span>{yearLabel}</span>\n </span>\n ) : (\n <MDropdownMenu\n trigger={\n <span\n className={cn('input-exp-date-trigger', yearMenuOpen && 'open', !year && 'placeholder')}\n onMouseDown={focusHiddenInput}\n >\n <span>{yearLabel}</span>\n <MChevronDownIcon size={16} />\n </span>\n }\n openOn=\"click\"\n closeOnSelect\n onOpenChange={setYearMenuOpen}\n popoverClassName=\"input-exp-date-popover\"\n >\n {yearOptions.map((option) => (\n <MDropdownItem\n key={option}\n label={String(option)}\n active={year === String(option)}\n onClick={() => handleSelectYear(String(option))}\n />\n ))}\n </MDropdownMenu>\n )}\n </div>\n\n {clearable && hasContent && !segmentDisabled && (\n <button\n type=\"button\"\n className=\"clear-btn clear-btn-base\"\n onClick={(event) => {\n event.stopPropagation()\n handleClear()\n }}\n tabIndex={-1}\n aria-label=\"Clear input\"\n >\n <MCloseIcon />\n </button>\n )}\n\n {endIcon && <span className=\"end-icon\">{endIcon}</span>}\n </div>\n\n {(resolvedErrorText || helperText) && (\n <div className=\"bottom-row\">\n <span>\n {resolvedErrorText && (\n <span id={id ? `${id}-error` : undefined} className=\"field-error\" role=\"alert\">\n {resolvedErrorText}\n </span>\n )}\n {!resolvedErrorText && helperText && (\n <span id={id ? `${id}-helper` : undefined} className=\"field-helper\">\n {helperText}\n </span>\n )}\n </span>\n </div>\n )}\n </div>\n )\n})\n","import {forwardRef, useCallback, useState} from 'react'\nimport type * as React from 'react'\nimport type {MInputCVCProps} from './MInputCVC.types'\nimport {MInput} from '../MInput'\nimport type {ValidationResult} from '../../../utils/validators'\nimport {MCheckIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MInputCVC.css'\n\nconst OK: ValidationResult = {valid: true}\n\nfunction stripDigits(value: string) {\n return value.replace(/\\D/g, '')\n}\n\nfunction validateCvc(value: string, length: 3 | 4): ValidationResult {\n if (!value) {\n return OK\n }\n\n const digits = stripDigits(value)\n\n if (digits.length !== length) {\n return {valid: false, error: `Security code must have ${length} digits`}\n }\n\n return OK\n}\n\nexport const MInputCVC = forwardRef<HTMLInputElement, MInputCVCProps>(function MInputCVC(\n {\n length = 3,\n validateOnBlur = true,\n validateOnChange = false,\n onValidationChange,\n onValueChange,\n value,\n defaultValue,\n onChange,\n onBlur,\n onKeyDown,\n error,\n errorText,\n success,\n placeholder,\n className,\n inputClassName,\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(() => stripDigits(defaultValue?.toString() ?? '').slice(0, length))\n const [validation, setValidation] = useState<ValidationResult>(OK)\n const [touched, setTouched] = useState(false)\n\n const currentValue = value !== undefined ? stripDigits(value.toString()).slice(0, length) : internalValue\n\n const runValidation = useCallback(\n (nextValue: string) => {\n const result = validateCvc(nextValue, length)\n setValidation(result)\n onValidationChange?.(result)\n return result\n },\n [length, onValidationChange]\n )\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const nextValue = stripDigits(event.target.value).slice(0, length)\n\n if (value === undefined) {\n setInternalValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n\n if (validateOnChange && touched) {\n runValidation(nextValue)\n }\n\n onChange?.(event)\n },\n [length, onChange, onValueChange, runValidation, touched, validateOnChange, value]\n )\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true)\n\n if (validateOnBlur && currentValue) {\n runValidation(currentValue)\n }\n\n onBlur?.(event)\n },\n [currentValue, onBlur, runValidation, validateOnBlur]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (['Backspace', 'Delete', 'Tab', 'ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) {\n onKeyDown?.(event)\n return\n }\n\n if (event.ctrlKey || event.metaKey) {\n onKeyDown?.(event)\n return\n }\n\n if (!/^\\d$/.test(event.key)) {\n event.preventDefault()\n }\n\n onKeyDown?.(event)\n },\n [onKeyDown]\n )\n\n const isError = error || (touched && !validation.valid)\n const resolvedErrorText = errorText || (touched && !validation.valid ? validation.error : undefined)\n const isSuccess = !isError && (success !== undefined ? success : touched && currentValue.length === length)\n const endIcon = isSuccess ? <MCheckIcon /> : undefined\n\n return (\n <MInput\n {...rest}\n ref={ref}\n type=\"text\"\n inputMode=\"numeric\"\n value={currentValue}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n error={isError}\n errorText={resolvedErrorText}\n success={isSuccess}\n placeholder={placeholder ?? ''.padEnd(length, '0')}\n maxLength={length}\n endIcon={endIcon}\n inputClassName={cn('input-cvc-field', inputClassName)}\n className={className}\n />\n )\n})\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./MSearchIcon-BakfEJQd.cjs`),t=require(`./useGhostText-CL1kSB_V.cjs`),n=require(`./MInput-
|
|
2
|
-
//# sourceMappingURL=MInputSearch-
|
|
1
|
+
const e=require(`./MSearchIcon-BakfEJQd.cjs`),t=require(`./useGhostText-CL1kSB_V.cjs`),n=require(`./MInput-Bpkn3gOQ.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.forwardRef)(function({debounceMs:a=300,onSearch:o,value:s,defaultValue:c,onChange:l,onKeyDown:u,onClear:d,clearable:f=!0,placeholder:p=`Search...`,...m},h){let[g,_]=(0,r.useState)(c?.toString()??``),v=s===void 0?g:s.toString(),y=t.r(e=>o?.(e),a),b=(0,r.useCallback)(e=>{s===void 0&&_(e.target.value),y(e.target.value),l?.(e)},[l,s,y]),x=(0,r.useCallback)(e=>{e.key===`Enter`&&o?.(v),u?.(e)},[v,o,u]),S=(0,r.useCallback)(()=>{s===void 0&&_(``),o?.(``),d?.()},[s,o,d]);return(0,i.jsx)(n.t,{...m,ref:h,type:`text`,value:v,onChange:b,onKeyDown:x,onClear:S,clearable:f,placeholder:p,startIcon:(0,i.jsx)(e.t,{})})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
+
//# sourceMappingURL=MInputSearch-APMIHkYb.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MInputSearch-
|
|
1
|
+
{"version":3,"file":"MInputSearch-APMIHkYb.cjs","names":[],"sources":["../src/components/inputs/MInputSearch/MInputSearch.tsx"],"sourcesContent":["import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {MInputSearchProps} from './MInputSearch.types'\nimport {MInput} from '../MInput'\nimport {useDebouncedCallback} from '../../../utils/useDebounce'\nimport {MSearchIcon} from '../../../icons'\n\n// Extend the base input with debounced search callbacks and an inline clear action.\nexport const MInputSearch = forwardRef<HTMLInputElement, MInputSearchProps>(function MInputSearch(\n {\n debounceMs = 300,\n onSearch,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onClear,\n clearable = true,\n placeholder = 'Search...',\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n const debouncedSearch = useDebouncedCallback((val: string) => onSearch?.(val), debounceMs)\n\n // Update local state and debounce search notifications while typing.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n debouncedSearch(e.target.value)\n onChange?.(e)\n },\n [onChange, value, debouncedSearch]\n )\n\n // Run search immediately when the user confirms with Enter.\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onSearch?.(currentValue)\n }\n onKeyDown?.(e)\n },\n [currentValue, onSearch, onKeyDown]\n )\n\n // Clear both the visible field and the emitted search query.\n const handleClear = useCallback(() => {\n if (value === undefined) {\n setInternalValue('')\n }\n onSearch?.('')\n onClear?.()\n }, [value, onSearch, onClear])\n\n return (\n <MInput\n {...rest}\n ref={ref}\n type=\"text\"\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onClear={handleClear}\n clearable={clearable}\n placeholder={placeholder}\n startIcon={<MSearchIcon />}\n />\n )\n})\n"],"mappings":"gLAQA,IAAa,GAAA,EAAA,EAAA,YAA+D,SACxE,CACI,aAAa,IACb,WACA,QACA,eACA,WACA,YACA,UACA,YAAY,GACZ,cAAc,YACd,GAAG,GAEP,EACF,CACE,GAAM,CAAC,EAAe,IAAA,EAAA,EAAA,UAA6B,GAAc,UAAU,EAAI,GAAG,CAC5E,EAAe,IAAU,IAAA,GAA+B,EAAnB,EAAM,UAAU,CAErD,EAAkB,EAAA,EAAsB,GAAgB,IAAW,EAAI,CAAE,EAAW,CAGpF,GAAA,EAAA,EAAA,aACD,GAA2C,CACpC,IAAU,IAAA,IACV,EAAiB,EAAE,OAAO,MAAM,CAEpC,EAAgB,EAAE,OAAO,MAAM,CAC/B,IAAW,EAAE,EAEjB,CAAC,EAAU,EAAO,EAAgB,CACrC,CAGK,GAAA,EAAA,EAAA,aACD,GAA6C,CACtC,EAAE,MAAQ,SACV,IAAW,EAAa,CAE5B,IAAY,EAAE,EAElB,CAAC,EAAc,EAAU,EAAU,CACtC,CAGK,GAAA,EAAA,EAAA,iBAAgC,CAC9B,IAAU,IAAA,IACV,EAAiB,GAAG,CAExB,IAAW,GAAG,CACd,KAAW,EACZ,CAAC,EAAO,EAAU,EAAQ,CAAC,CAE9B,OACI,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,GAAI,EACC,MACL,KAAK,OACL,MAAO,EACP,SAAU,EACV,UAAW,EACX,QAAS,EACE,YACE,cACb,WAAW,EAAA,EAAA,KAAC,EAAA,EAAD,EAAe,CAAA,CAC5B,CAAA,EAER"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./MSearchIcon-Dlg4Og8t.js";
|
|
2
2
|
import { r as t } from "./useGhostText-Zq3iktss.js";
|
|
3
|
-
import { t as n } from "./MInput-
|
|
3
|
+
import { t as n } from "./MInput-OmuQ2Tds.js";
|
|
4
4
|
import { forwardRef as r, useCallback as i, useState as a } from "react";
|
|
5
5
|
import { jsx as o } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/inputs/MInputSearch/MInputSearch.tsx
|
|
@@ -40,4 +40,4 @@ var s = r(function({ debounceMs: r = 300, onSearch: s, value: c, defaultValue: l
|
|
|
40
40
|
//#endregion
|
|
41
41
|
export { s as t };
|
|
42
42
|
|
|
43
|
-
//# sourceMappingURL=MInputSearch-
|
|
43
|
+
//# sourceMappingURL=MInputSearch-k2ESY4ZG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MInputSearch-
|
|
1
|
+
{"version":3,"file":"MInputSearch-k2ESY4ZG.js","names":[],"sources":["../src/components/inputs/MInputSearch/MInputSearch.tsx"],"sourcesContent":["import {useState, useCallback, forwardRef} from 'react'\nimport type * as React from 'react'\nimport type {MInputSearchProps} from './MInputSearch.types'\nimport {MInput} from '../MInput'\nimport {useDebouncedCallback} from '../../../utils/useDebounce'\nimport {MSearchIcon} from '../../../icons'\n\n// Extend the base input with debounced search callbacks and an inline clear action.\nexport const MInputSearch = forwardRef<HTMLInputElement, MInputSearchProps>(function MInputSearch(\n {\n debounceMs = 300,\n onSearch,\n value,\n defaultValue,\n onChange,\n onKeyDown,\n onClear,\n clearable = true,\n placeholder = 'Search...',\n ...rest\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue?.toString() ?? '')\n const currentValue = value !== undefined ? value.toString() : internalValue\n\n const debouncedSearch = useDebouncedCallback((val: string) => onSearch?.(val), debounceMs)\n\n // Update local state and debounce search notifications while typing.\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (value === undefined) {\n setInternalValue(e.target.value)\n }\n debouncedSearch(e.target.value)\n onChange?.(e)\n },\n [onChange, value, debouncedSearch]\n )\n\n // Run search immediately when the user confirms with Enter.\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n onSearch?.(currentValue)\n }\n onKeyDown?.(e)\n },\n [currentValue, onSearch, onKeyDown]\n )\n\n // Clear both the visible field and the emitted search query.\n const handleClear = useCallback(() => {\n if (value === undefined) {\n setInternalValue('')\n }\n onSearch?.('')\n onClear?.()\n }, [value, onSearch, onClear])\n\n return (\n <MInput\n {...rest}\n ref={ref}\n type=\"text\"\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onClear={handleClear}\n clearable={clearable}\n placeholder={placeholder}\n startIcon={<MSearchIcon />}\n />\n )\n})\n"],"mappings":";;;;;;AAQA,IAAa,IAAe,EAAgD,SACxE,EACI,gBAAa,KACb,aACA,UACA,iBACA,aACA,cACA,YACA,eAAY,IACZ,iBAAc,aACd,GAAG,KAEP,GACF;CACE,IAAM,CAAC,GAAe,KAAoB,EAAS,GAAc,UAAU,IAAI,GAAG,EAC5E,IAAe,MAAU,KAAA,IAA+B,IAAnB,EAAM,UAAU,EAErD,IAAkB,GAAsB,MAAgB,IAAW,EAAI,EAAE,EAAW,EAGpF,IAAe,GAChB,MAA2C;AAKxC,EAJI,MAAU,KAAA,KACV,EAAiB,EAAE,OAAO,MAAM,EAEpC,EAAgB,EAAE,OAAO,MAAM,EAC/B,IAAW,EAAE;IAEjB;EAAC;EAAU;EAAO;EAAgB,CACrC,EAGK,IAAgB,GACjB,MAA6C;AAI1C,EAHI,EAAE,QAAQ,WACV,IAAW,EAAa,EAE5B,IAAY,EAAE;IAElB;EAAC;EAAc;EAAU;EAAU,CACtC,EAGK,IAAc,QAAkB;AAKlC,EAJI,MAAU,KAAA,KACV,EAAiB,GAAG,EAExB,IAAW,GAAG,EACd,KAAW;IACZ;EAAC;EAAO;EAAU;EAAQ,CAAC;AAE9B,QACI,kBAAC,GAAD;EACI,GAAI;EACC;EACL,MAAK;EACL,OAAO;EACP,UAAU;EACV,WAAW;EACX,SAAS;EACE;EACE;EACb,WAAW,kBAAC,GAAD,EAAe,CAAA;EAC5B,CAAA;EAER"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./cn-SOcVdnX6.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.forwardRef)(function({component:t,to:r,tone:i=`default`,underline:a=`hover`,current:o=!1,block:s=!1,disabled:c=!1,className:l,children:u,href:d,onClick:f,...p},m){let h=t??`a`;function g(e){if(c){e.preventDefault();return}f?.(e)}return(0,n.jsx)(h,{ref:m,href:t||c?void 0:d,to:t?r:void 0,className:e.t(`link`,i,a,o&&`current`,s&&`block`,c&&`disabled`,l),"aria-current":o?`page`:void 0,"aria-disabled":c||void 0,onClick:g,...p,children:u})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
|
|
2
|
-
//# sourceMappingURL=MLink-
|
|
2
|
+
//# sourceMappingURL=MLink-B4JrRZ29.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MLink-
|
|
1
|
+
{"version":3,"file":"MLink-B4JrRZ29.cjs","names":[],"sources":["../src/components/typography/MLink/MLink.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MLinkProps} from './MLink.types'\nimport {cn} from '../../../utils/cn'\nimport './MLink.css'\n\n// Render a semantic link that can target anchors or router link components.\nexport const MLink = forwardRef<HTMLElement, MLinkProps>(function MLink(\n {\n component,\n to,\n tone = 'default',\n underline = 'hover',\n current = false,\n block = false,\n disabled = false,\n className,\n children,\n href,\n onClick,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'a'\n\n // Prevent disabled links from navigating while still exposing their content.\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n onClick?.(event)\n }\n\n return (\n <Component\n ref={ref}\n href={component ? undefined : disabled ? undefined : href}\n to={component ? to : undefined}\n className={cn(\n 'link',\n tone,\n underline,\n current && 'current',\n block && 'block',\n disabled && 'disabled',\n className\n )}\n aria-current={current ? 'page' : undefined}\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n {...rest}\n >\n {children}\n </Component>\n )\n})\n"],"mappings":"2FAOA,IAAa,GAAA,EAAA,EAAA,YAA4C,SACrD,CACI,YACA,KACA,OAAO,UACP,YAAY,QACZ,UAAU,GACV,QAAQ,GACR,WAAW,GACX,YACA,WACA,OACA,UACA,GAAG,GAEP,EACF,CACE,IAAM,EAAY,GAAa,IAG/B,SAAS,EAAY,EAAsC,CACvD,GAAI,EAAU,CACV,EAAM,gBAAgB,CACtB,OAGJ,IAAU,EAAM,CAGpB,OACI,EAAA,EAAA,KAAC,EAAD,CACS,MACL,KAAM,GAAwB,EAAZ,IAAA,GAAmC,EACrD,GAAI,EAAY,EAAK,IAAA,GACrB,UAAW,EAAA,EACP,OACA,EACA,EACA,GAAW,UACX,GAAS,QACT,GAAY,WACZ,EACH,CACD,eAAc,EAAU,OAAS,IAAA,GACjC,gBAAe,GAAY,IAAA,GAC3B,QAAS,EACT,GAAI,EAEH,WACO,CAAA,EAElB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MLink-
|
|
1
|
+
{"version":3,"file":"MLink-_WcD95E0.js","names":[],"sources":["../src/components/typography/MLink/MLink.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MLinkProps} from './MLink.types'\nimport {cn} from '../../../utils/cn'\nimport './MLink.css'\n\n// Render a semantic link that can target anchors or router link components.\nexport const MLink = forwardRef<HTMLElement, MLinkProps>(function MLink(\n {\n component,\n to,\n tone = 'default',\n underline = 'hover',\n current = false,\n block = false,\n disabled = false,\n className,\n children,\n href,\n onClick,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'a'\n\n // Prevent disabled links from navigating while still exposing their content.\n function handleClick(event: MouseEvent<HTMLAnchorElement>) {\n if (disabled) {\n event.preventDefault()\n return\n }\n\n onClick?.(event)\n }\n\n return (\n <Component\n ref={ref}\n href={component ? undefined : disabled ? undefined : href}\n to={component ? to : undefined}\n className={cn(\n 'link',\n tone,\n underline,\n current && 'current',\n block && 'block',\n disabled && 'disabled',\n className\n )}\n aria-current={current ? 'page' : undefined}\n aria-disabled={disabled || undefined}\n onClick={handleClick}\n {...rest}\n >\n {children}\n </Component>\n )\n})\n"],"mappings":";;;;AAOA,IAAa,IAAQ,EAAoC,SACrD,EACI,cACA,OACA,UAAO,WACP,eAAY,SACZ,aAAU,IACV,WAAQ,IACR,cAAW,IACX,cACA,aACA,SACA,YACA,GAAG,KAEP,GACF;CACE,IAAM,IAAY,KAAa;CAG/B,SAAS,EAAY,GAAsC;AACvD,MAAI,GAAU;AACV,KAAM,gBAAgB;AACtB;;AAGJ,MAAU,EAAM;;AAGpB,QACI,kBAAC,GAAD;EACS;EACL,MAAM,KAAwB,IAAZ,KAAA,IAAmC;EACrD,IAAI,IAAY,IAAK,KAAA;EACrB,WAAW,EACP,QACA,GACA,GACA,KAAW,WACX,KAAS,SACT,KAAY,YACZ,EACH;EACD,gBAAc,IAAU,SAAS,KAAA;EACjC,iBAAe,KAAY,KAAA;EAC3B,SAAS;EACT,GAAI;EAEH;EACO,CAAA;EAElB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const e=require(`./MIcon-CX5beo32.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.forwardRef)(function(t,r){return(0,n.jsxs)(e.t,{ref:r,...t,children:[(0,n.jsx)(`path`,{d:`M5 7h14`}),(0,n.jsx)(`path`,{d:`M5 12h10`}),(0,n.jsx)(`path`,{d:`M5 17h14`}),(0,n.jsx)(`path`,{d:`M17.5 12h1.5`})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
|
|
2
|
-
//# sourceMappingURL=MMenuIcon-
|
|
2
|
+
//# sourceMappingURL=MMenuIcon-A_eXBpM8.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MMenuIcon-
|
|
1
|
+
{"version":3,"file":"MMenuIcon-A_eXBpM8.cjs","names":[],"sources":["../src/icons/glyphs/MMenuIcon.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport {MIcon} from '../MIcon'\nimport type {MIconProps} from '../MIcon.types'\n\nexport const MMenuIcon = forwardRef<SVGSVGElement, MIconProps>(function MMenuIcon(props, ref) {\n return (\n <MIcon ref={ref} {...props}>\n <path d=\"M5 7h14\" />\n <path d=\"M5 12h10\" />\n <path d=\"M5 17h14\" />\n <path d=\"M17.5 12h1.5\" />\n </MIcon>\n )\n})\n"],"mappings":"8FAIA,IAAa,GAAA,EAAA,EAAA,YAAkD,SAAmB,EAAO,EAAK,CAC1F,OACI,EAAA,EAAA,MAAC,EAAA,EAAD,CAAY,MAAK,GAAI,WAArB,EACI,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,UAAY,CAAA,EACpB,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,WAAa,CAAA,EACrB,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,WAAa,CAAA,EACrB,EAAA,EAAA,KAAC,OAAD,CAAM,EAAE,eAAiB,CAAA,CACrB,IAEd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MMenuIcon-
|
|
1
|
+
{"version":3,"file":"MMenuIcon-CbBHfxVa.js","names":[],"sources":["../src/icons/glyphs/MMenuIcon.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport {MIcon} from '../MIcon'\nimport type {MIconProps} from '../MIcon.types'\n\nexport const MMenuIcon = forwardRef<SVGSVGElement, MIconProps>(function MMenuIcon(props, ref) {\n return (\n <MIcon ref={ref} {...props}>\n <path d=\"M5 7h14\" />\n <path d=\"M5 12h10\" />\n <path d=\"M5 17h14\" />\n <path d=\"M17.5 12h1.5\" />\n </MIcon>\n )\n})\n"],"mappings":";;;;AAIA,IAAa,IAAY,EAAsC,SAAmB,GAAO,GAAK;AAC1F,QACI,kBAAC,GAAD;EAAY;EAAK,GAAI;YAArB;GACI,kBAAC,QAAD,EAAM,GAAE,WAAY,CAAA;GACpB,kBAAC,QAAD,EAAM,GAAE,YAAa,CAAA;GACrB,kBAAC,QAAD,EAAM,GAAE,YAAa,CAAA;GACrB,kBAAC,QAAD,EAAM,GAAE,gBAAiB,CAAA;GACrB;;EAEd"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./cn-SOcVdnX6.cjs`),t=require(`./MPortal-BysJLuEi.cjs`),n=require(`./MSkeleton-
|
|
2
|
-
//# sourceMappingURL=MModal-
|
|
1
|
+
const e=require(`./cn-SOcVdnX6.cjs`),t=require(`./MPortal-BysJLuEi.cjs`),n=require(`./MSkeleton-CRgCZZqm.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=540;function o({open:o,onClose:s,title:c,description:l,footer:u,size:d=`md`,closeOnBackdrop:f=!0,closeOnEscape:p=!0,className:m,children:h,...g}){let[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),x=(0,r.useRef)(null);return(0,r.useEffect)(()=>{o&&(v(!0),b(!1))},[o]),(0,r.useEffect)(()=>{if(!o&&_){b(!0);let e=setTimeout(()=>{v(!1),b(!1)},a);return()=>clearTimeout(e)}},[o,_]),(0,r.useEffect)(()=>{if(!o||!p)return;let e=e=>{e.key===`Escape`&&s()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[p,s,o]),(0,r.useEffect)(()=>{if(!_)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[_]),_?(0,i.jsx)(t.t,{children:(0,i.jsx)(`div`,{ref:x,className:e.t(`mineral-backdrop`,`modal-backdrop`,y&&`closing`),onMouseDown:e=>{f&&e.target===e.currentTarget&&s()},children:(0,i.jsx)(`div`,{className:`modal-shell`,children:(0,i.jsxs)(n.n,{className:e.t(`modal`,d,m),role:`dialog`,"aria-modal":`true`,"aria-labelledby":c?`mineral-modal-title`:void 0,...g,children:[(c||l)&&(0,i.jsxs)(n.a,{children:[c&&(0,i.jsx)(`div`,{id:`mineral-modal-title`,className:`modal-title`,children:c}),l&&(0,i.jsx)(`div`,{className:`modal-description`,children:l})]}),(0,i.jsx)(n.r,{children:h}),u&&(0,i.jsx)(n.i,{children:u})]})})})}):null}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=MModal-D-3jQ-c5.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MModal-
|
|
1
|
+
{"version":3,"file":"MModal-D-3jQ-c5.cjs","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n"],"mappings":"qKAQA,IAAM,EAAgB,IAGtB,SAAgB,EAAO,CACnB,OACA,UACA,QACA,cACA,SACA,OAAO,KACP,kBAAkB,GAClB,gBAAgB,GAChB,YACA,WACA,GAAG,GACS,CACZ,GAAM,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,GAAA,EAAA,EAAA,QAAqC,KAAK,CAmDhD,OAhDA,EAAA,EAAA,eAAgB,CACR,IACA,EAAW,GAAK,CAChB,EAAW,GAAM,GAEtB,CAAC,EAAK,CAAC,EAGV,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,GAAQ,EAAS,CAClB,EAAW,GAAK,CAChB,IAAM,EAAQ,eAAiB,CAC3B,EAAW,GAAM,CACjB,EAAW,GAAM,EAClB,EAAc,CACjB,UAAa,aAAa,EAAM,GAErC,CAAC,EAAM,EAAQ,CAAC,EAEnB,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,GAAQ,CAAC,EAAe,OAE7B,IAAM,EAAiB,GAAyB,CACxC,EAAM,MAAQ,UAAU,GAAS,EAIzC,OADA,SAAS,iBAAiB,UAAW,EAAc,KACtC,SAAS,oBAAoB,UAAW,EAAc,EACpE,CAAC,EAAe,EAAS,EAAK,CAAC,EAElC,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,EAAS,OAEd,IAAM,EAAmB,SAAS,KAAK,MAAM,SAG7C,MAFA,UAAS,KAAK,MAAM,SAAW,aAElB,CACT,SAAS,KAAK,MAAM,SAAW,IAEpC,CAAC,EAAQ,CAAC,CAER,GAQD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACI,EAAA,EAAA,KAAC,MAAD,CACI,IAAK,EACL,UAAW,EAAA,EAAG,mBAAoB,iBAAkB,GAAW,UAAU,CACzE,YAViB,GAAsC,CAC1D,GACD,EAAM,SAAW,EAAM,eAAe,GAAS,YAU3C,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,wBACZ,EAAA,EAAA,MAAC,EAAA,EAAD,CACI,UAAW,EAAA,EAAG,QAAS,EAAM,EAAU,CACvC,KAAM,SACN,aAAY,OACZ,kBAAiB,EAAQ,sBAAwB,IAAA,GACjD,GAAI,WALR,EAOM,GAAS,KACP,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,CACK,IACG,EAAA,EAAA,KAAC,MAAD,CAAK,GAAI,sBAAuB,UAAW,uBACtC,EACC,CAAA,CAET,IAAe,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,6BAAsB,EAAkB,CAAA,CAC9D,CAAA,CAAA,EAElB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,WAAqB,CAAA,CAChC,IAAU,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAc,EAAqB,CAAA,CAC1C,GACN,CAAA,CACJ,CAAA,CACA,CAAA,CArCO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./cn-DZLxql0l.js";
|
|
2
2
|
import { t } from "./MPortal-CbpNkzfC.js";
|
|
3
|
-
import { a as n, i as r, n as i, r as a } from "./MSkeleton-
|
|
3
|
+
import { a as n, i as r, n as i, r as a } from "./MSkeleton-QQ8Lk3Cr.js";
|
|
4
4
|
import { useEffect as o, useRef as s, useState as c } from "react";
|
|
5
5
|
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/overlays/MModal/MModal.tsx
|
|
@@ -66,4 +66,4 @@ function f({ open: f, onClose: p, title: m, description: h, footer: g, size: _ =
|
|
|
66
66
|
//#endregion
|
|
67
67
|
export { f as t };
|
|
68
68
|
|
|
69
|
-
//# sourceMappingURL=MModal-
|
|
69
|
+
//# sourceMappingURL=MModal-Dni2MR1n.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MModal-
|
|
1
|
+
{"version":3,"file":"MModal-Dni2MR1n.js","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n"],"mappings":";;;;;;AAQA,IAAM,IAAgB;AAGtB,SAAgB,EAAO,EACnB,SACA,YACA,UACA,gBACA,WACA,UAAO,MACP,qBAAkB,IAClB,mBAAgB,IAChB,cACA,aACA,GAAG,KACS;CACZ,IAAM,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,IAAc,EAAuB,KAAK;AAmDhD,QAhDA,QAAgB;AACZ,EAAI,MACA,EAAW,GAAK,EAChB,EAAW,GAAM;IAEtB,CAAC,EAAK,CAAC,EAGV,QAAgB;AACZ,MAAI,CAAC,KAAQ,GAAS;AAClB,KAAW,GAAK;GAChB,IAAM,IAAQ,iBAAiB;AAE3B,IADA,EAAW,GAAM,EACjB,EAAW,GAAM;MAClB,EAAc;AACjB,gBAAa,aAAa,EAAM;;IAErC,CAAC,GAAM,EAAQ,CAAC,EAEnB,QAAgB;AACZ,MAAI,CAAC,KAAQ,CAAC,EAAe;EAE7B,IAAM,KAAiB,MAAyB;AAC5C,GAAI,EAAM,QAAQ,YAAU,GAAS;;AAIzC,SADA,SAAS,iBAAiB,WAAW,EAAc,QACtC,SAAS,oBAAoB,WAAW,EAAc;IACpE;EAAC;EAAe;EAAS;EAAK,CAAC,EAElC,QAAgB;AACZ,MAAI,CAAC,EAAS;EAEd,IAAM,IAAmB,SAAS,KAAK,MAAM;AAG7C,SAFA,SAAS,KAAK,MAAM,WAAW,gBAElB;AACT,YAAS,KAAK,MAAM,WAAW;;IAEpC,CAAC,EAAQ,CAAC,EAER,IAQD,kBAAC,GAAD,EAAA,UACI,kBAAC,OAAD;EACI,KAAK;EACL,WAAW,EAAG,oBAAoB,kBAAkB,KAAW,UAAU;EACzE,cAViB,MAAsC;AAC1D,QACD,EAAM,WAAW,EAAM,iBAAe,GAAS;;YAU3C,kBAAC,OAAD;GAAK,WAAW;aACZ,kBAAC,GAAD;IACI,WAAW,EAAG,SAAS,GAAM,EAAU;IACvC,MAAM;IACN,cAAY;IACZ,mBAAiB,IAAQ,wBAAwB,KAAA;IACjD,GAAI;cALR;MAOM,KAAS,MACP,kBAAC,GAAD,EAAA,UAAA,CACK,KACG,kBAAC,OAAD;MAAK,IAAI;MAAuB,WAAW;gBACtC;MACC,CAAA,EAET,KAAe,kBAAC,OAAD;MAAK,WAAW;gBAAsB;MAAkB,CAAA,CAC9D,EAAA,CAAA;KAElB,kBAAC,GAAD,EAAY,aAAqB,CAAA;KAChC,KAAU,kBAAC,GAAD,EAAA,UAAc,GAAqB,CAAA;KAC1C;;GACN,CAAA;EACJ,CAAA,EACA,CAAA,GArCO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./MChevronRightIcon-BC08M6g8.cjs`),t=require(`./cn-SOcVdnX6.cjs`),n=require(`./MButton-C_WTyNvw.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);function a(e,t){let n=[];for(let r=e;r<=t;r++)n.push(r);return n}function o(e,t,n,r){if(e<=r*2+n*2+3)return a(1,e);let i=Math.max(t-n,r+2),o=Math.min(t+n,e-r-1),s=i>r+2,c=o<e-r-1,l=a(1,r),u=a(e-r+1,e);if(!s&&c)return[...a(1,n*2+r+2),`dots`,...u];if(s&&!c){let t=n*2+r+2;return[...l,`dots`,...a(e-t+1,e)]}return[...l,`dots`,...a(i,o),`dots`,...u]}function s({total:a,page:s,pageSize:c=10,onChange:l,siblings:u=1,boundaries:d=1,variant:f=`numbered`,className:p,...m}){let h=Math.max(1,Math.ceil(a/c)),g=Math.min(Math.max(1,s),h),_=(0,r.useMemo)(()=>o(h,g,u,d),[h,g,u,d]);return f===`simple`?(0,i.jsxs)(`nav`,{"aria-label":`pagination`,className:t.t(`pagination`,p),...m,children:[(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g<=1,onClick:()=>l(g-1),className:`nav`,children:(0,i.jsx)(e.n,{})}),(0,i.jsxs)(`span`,{className:`info`,children:[g,` / `,h]}),(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g>=h,onClick:()=>l(g+1),className:`nav`,children:(0,i.jsx)(e.t,{})})]}):(0,i.jsxs)(`nav`,{"aria-label":`pagination`,className:t.t(`pagination`,p),...m,children:[(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g<=1,onClick:()=>l(g-1),className:`nav`,children:(0,i.jsx)(e.n,{})}),_.map((e,n)=>e===`dots`?(0,i.jsx)(`span`,{className:`dots`,children:`…`},`dots-${n}`):(0,i.jsx)(`button`,{type:`button`,className:t.t(`btn`,e===g&&`active`),onClick:()=>l(e),children:e},e)),(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g>=h,onClick:()=>l(g+1),className:`nav`,children:(0,i.jsx)(e.t,{})})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
|
2
|
+
//# sourceMappingURL=MPagination-3fsF3pCM.cjs.map
|