@banzamel/mineralui 1.0.8 → 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-DCIGou8P.js → feedback-Cgu8ez5M.js} +281 -263
- package/dist/{feedback-DCIGou8P.js.map → feedback-Cgu8ez5M.js.map} +1 -1
- package/dist/feedback-DBhETzTM.cjs +2 -0
- package/dist/{feedback-CmOz23FV.cjs.map → feedback-DBhETzTM.cjs.map} +1 -1
- 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-CmOz23FV.cjs +0 -2
package/dist/inputs.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
const {ensureStyles}=require('./style-runtime.cjs')
|
|
2
2
|
ensureStyles()
|
|
3
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MInput-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MInput-Bpkn3gOQ.cjs`),t=require(`./MInputCVC-Bl8i97Y0.cjs`),n=require(`./inputs-DPhzLJZH.cjs`),r=require(`./MInputSearch-APMIHkYb.cjs`);exports.MInput=e.t,exports.MInputCVC=t.t,exports.MInputCreditCard=n.o,exports.MInputCurrency=n.c,exports.MInputDate=n.s,exports.MInputEmail=n.p,exports.MInputExpDate=t.n,exports.MInputFile=n.t,exports.MInputGroup=n.a,exports.MInputIBAN=n.u,exports.MInputName=n.d,exports.MInputNumber=n.m,exports.MInputOTP=n.r,exports.MInputPassword=n.h,exports.MInputPhone=n.f,exports.MInputPostCode=n.i,exports.MInputSearch=r.t,exports.MInputSlider=n.n,exports.MInputTaxId=n.l,exports.MTextarea=n.g;
|
package/dist/inputs.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { t as e } from "./MInput-
|
|
4
|
-
import {
|
|
5
|
-
import { t as _ } from "./
|
|
6
|
-
|
|
3
|
+
import { t as e } from "./MInput-OmuQ2Tds.js";
|
|
4
|
+
import { n as t, t as n } from "./MInputCVC-CcG_KJvq.js";
|
|
5
|
+
import { a as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p, p as m, r as h, s as g, t as _, u as v } from "./inputs-BBJgVLXO.js";
|
|
6
|
+
import { t as y } from "./MInputSearch-k2ESY4ZG.js";
|
|
7
|
+
export { e as MInput, n as MInputCVC, p as MInputCreditCard, i as MInputCurrency, g as MInputDate, m as MInputEmail, t as MInputExpDate, _ as MInputFile, r as MInputGroup, v as MInputIBAN, a as MInputName, d as MInputNumber, h as MInputOTP, c as MInputPassword, o as MInputPhone, l as MInputPostCode, y as MInputSearch, f as MInputSlider, u as MInputTaxId, s as MTextarea };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { n as e, t } from "./MChevronRightIcon-CXs8IHiV.js";
|
|
2
2
|
import { t as n } from "./MChevronDownIcon-D3yTpzni.js";
|
|
3
|
-
import { t as r } from "./MMenuIcon-
|
|
3
|
+
import { t as r } from "./MMenuIcon-CbBHfxVa.js";
|
|
4
4
|
import { t as i } from "./cn-DZLxql0l.js";
|
|
5
5
|
import { t as a } from "./useInteractionEffect-Dfqq8lGO.js";
|
|
6
6
|
import { t as o } from "./useReveal-DzskFHKb.js";
|
|
7
7
|
import { n as s, t as c } from "./layoutProps-DUPQsWy9.js";
|
|
8
8
|
import { t as l } from "./MButton-33EzpGvQ.js";
|
|
9
|
-
import { t as u } from "./MLink-
|
|
10
|
-
import { t as d } from "./MTooltip-
|
|
11
|
-
import { i as f, n as p, r as m } from "./MDropdownMenu-
|
|
9
|
+
import { t as u } from "./MLink-_WcD95E0.js";
|
|
10
|
+
import { t as d } from "./MTooltip-DIqh59S2.js";
|
|
11
|
+
import { i as f, n as p, r as m } from "./MDropdownMenu-D3O3-l8O.js";
|
|
12
12
|
import { Children as h, cloneElement as g, createContext as _, forwardRef as v, isValidElement as y, useCallback as b, useContext as x, useEffect as S, useId as C, useMemo as w, useRef as T, useState as E } from "react";
|
|
13
13
|
import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
|
|
14
14
|
//#region src/components/layout/MContainer/MContainer.tsx
|
|
@@ -816,4 +816,4 @@ var ue = v(function({ className: e, children: t, ...n }, r) {
|
|
|
816
816
|
//#endregion
|
|
817
817
|
export { A as C, j as S, V as _, re as a, N as b, oe as c, ie as d, ee as f, H as g, U as h, $ as i, ne as l, Y as m, de as n, ce as o, J as p, le as r, se as s, ue as t, ae as u, z as v, M as x, R as y };
|
|
818
818
|
|
|
819
|
-
//# sourceMappingURL=layout-
|
|
819
|
+
//# sourceMappingURL=layout-CdAUOdYv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-yIAZ4bP6.js","names":[],"sources":["../src/components/layout/MContainer/MContainer.tsx","../src/components/layout/MHeader/MHeader.tsx","../src/components/layout/MFooter/MFooter.tsx","../src/components/layout/MNavbar/MNavbar.tsx","../src/components/layout/MTopbar/MTopbar.tsx","../src/components/layout/MNavs/MNavs.tsx","../src/components/layout/MTabs/MTabs.tsx","../src/components/layout/MSection/MSection.tsx","../src/components/layout/MSimpleGrid/MSimpleGrid.tsx","../src/components/layout/MGrid/MGrid.tsx","../src/components/layout/MDivider/MDivider.tsx","../src/components/layout/MSidebar/MSidebar.tsx","../src/components/layout/MBreadcrumb/MBreadcrumb.tsx","../src/components/layout/MAppShell/MAppShell.tsx"],"sourcesContent":["import type {MContainerProps} from './MContainer.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MContainer.css'\n\n// Constrain page content widths and apply shared spacing utilities.\nexport function MContainer({\n size = 'content',\n padded = true,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MContainerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'container',\n size,\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MHeaderProps} from './MHeader.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MHeader.css'\n\n// Render a reusable page header shell aligned to a shared container.\nexport function MHeader({\n container = 'wide',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n layout = 'split',\n className,\n children,\n ...rest\n}: MHeaderProps) {\n return (\n <header className={cn('header', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className={cn('inner', `layout-${layout}`)}>\n {children}\n </MContainer>\n </header>\n )\n}\n","import type {MFooterProps} from './MFooter.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {MContainer} from '../MContainer'\nimport './MFooter.css'\n\n// Render a reusable page footer shell with shared spacing utilities.\nexport function MFooter({\n container = 'wide',\n padded = true,\n bordered = true,\n tone = 'surface',\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MFooterProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <footer\n className={cn(\n 'footer',\n tone,\n bordered && 'bordered',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"inner\" fullWidth>\n {children}\n </MContainer>\n </footer>\n )\n}\n","import type {MNavbarProps} from './MNavbar.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MNavbar.css'\n\n// Render a horizontal app or site navigation shell with container alignment.\nexport function MNavbar({\n container = 'content',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'between',\n wrap = false,\n className,\n children,\n ...rest\n}: MNavbarProps) {\n return (\n <nav className={cn('navbar', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className=\"container\">\n <div className={cn('inner', justify, wrap && 'wrap')}>{children}</div>\n </MContainer>\n </nav>\n )\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {ReactNode} from 'react'\nimport type {MTopbarItem, MTopbarProps} from './MTopbar.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport {MButton} from '../../controls'\nimport {MLink} from '../../typography'\nimport {MChevronDownIcon, MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {MDropdownGroup, MDropdownItem, MDropdownMenu} from '../../overlays/MDropdownMenu'\nimport './MTopbar.css'\n\nfunction getItemKey(item: MTopbarItem): string {\n return item.key ?? item.to ?? item.href ?? String(item.label)\n}\n\nfunction itemHasActiveDescendant(item: MTopbarItem): boolean {\n if (item.active) return true\n return (item.children ?? []).some(itemHasActiveDescendant)\n}\n\nfunction renderItemContent(item: MTopbarItem, withChevron = false, isOpen = false): ReactNode {\n return (\n <>\n {item.icon ? <span className=\"topbar-icon\">{item.icon}</span> : null}\n <span>{item.label}</span>\n {item.badge ? <span className=\"topbar-badge\">{item.badge}</span> : null}\n {withChevron ? (\n <span className={cn('topbar-chevron', isOpen && 'open')} aria-hidden=\"true\">\n <MChevronDownIcon size=\"sm\" />\n </span>\n ) : null}\n </>\n )\n}\n\nfunction renderDropdownChildren(children: MTopbarItem[]): ReactNode {\n return children.map((child) => {\n if (child.children?.length) {\n return (\n <MDropdownGroup key={getItemKey(child)} label={String(child.label)}>\n {renderDropdownChildren(child.children)}\n </MDropdownGroup>\n )\n }\n\n return (\n <MDropdownItem\n key={getItemKey(child)}\n icon={child.icon}\n label={child.label}\n href={child.href}\n to={child.to}\n onClick={child.onClick}\n color={child.color}\n disabled={child.disabled}\n active={child.active}\n component={child.component}\n className={child.className}\n />\n )\n })\n}\n\nexport function MTopbar({\n items,\n container = 'full',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'left',\n size = 'md',\n openOn = 'hover',\n dropdownPlacement = 'bottom-start',\n className,\n style,\n ...rest\n}: MTopbarProps) {\n const [coarsePointer, setCoarsePointer] = useState(false)\n const [openMap, setOpenMap] = useState<Record<string, boolean>>({})\n const [hasOverflow, setHasOverflow] = useState(false)\n const [canScrollLeft, setCanScrollLeft] = useState(false)\n const [canScrollRight, setCanScrollRight] = useState(false)\n const viewportRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const media = window.matchMedia('(pointer: coarse)')\n const sync = () => setCoarsePointer(media.matches)\n\n sync()\n\n if (typeof media.addEventListener === 'function') {\n media.addEventListener('change', sync)\n return () => media.removeEventListener('change', sync)\n }\n\n media.addListener(sync)\n return () => media.removeListener(sync)\n }, [])\n\n useEffect(() => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n const updateOverflow = () => {\n const nextHasOverflow = viewport.scrollWidth > viewport.clientWidth + 1\n setHasOverflow(nextHasOverflow)\n setCanScrollLeft(viewport.scrollLeft > 4)\n setCanScrollRight(viewport.scrollLeft + viewport.clientWidth < viewport.scrollWidth - 4)\n }\n\n updateOverflow()\n\n viewport.addEventListener('scroll', updateOverflow, {passive: true})\n\n const observer = new ResizeObserver(updateOverflow)\n observer.observe(viewport)\n Array.from(viewport.children).forEach((child) => observer.observe(child))\n\n return () => {\n viewport.removeEventListener('scroll', updateOverflow)\n observer.disconnect()\n }\n }, [items, justify, size, tone, bordered, padded, container])\n\n const resolvedOpenOn = useMemo(() => (coarsePointer ? 'click' : openOn), [coarsePointer, openOn])\n\n const scrollByAmount = (direction: 'left' | 'right') => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n const amount = Math.max(180, Math.floor(viewport.clientWidth * 0.45))\n viewport.scrollBy({\n left: direction === 'left' ? -amount : amount,\n behavior: 'smooth',\n })\n }\n\n return (\n <nav\n className={cn('topbar', tone, size, bordered && 'bordered', sticky && 'sticky', className)}\n style={style}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"topbar-container\">\n <div className={cn('topbar-scroll-shell', hasOverflow && 'overflowing')}>\n {hasOverflow && (\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n shape=\"circle\"\n className={cn('topbar-scroll-button', 'left', !canScrollLeft && 'hidden')}\n onClick={() => scrollByAmount('left')}\n aria-label=\"Scroll topbar left\"\n >\n <MChevronLeftIcon />\n </MButton>\n )}\n\n <div ref={viewportRef} className=\"topbar-viewport\">\n <div className={cn('topbar-list', `justify-${justify}`, hasOverflow && 'overflowing')}>\n {items.map((item) => {\n const itemKey = getItemKey(item)\n const isActive = itemHasActiveDescendant(item)\n const isOpen = !!openMap[itemKey]\n\n if (item.children?.length) {\n if (item.disabled) {\n return (\n <div\n key={itemKey}\n className={cn('topbar-trigger', item.color, 'disabled', item.className)}\n aria-disabled=\"true\"\n >\n {renderItemContent(item, true)}\n </div>\n )\n }\n\n return (\n <MDropdownMenu\n key={itemKey}\n trigger={\n <div\n className={cn(\n 'topbar-trigger',\n item.color,\n isActive && 'active',\n isOpen && 'open',\n item.disabled && 'disabled',\n item.className\n )}\n >\n {renderItemContent(item, true, isOpen)}\n </div>\n }\n openOn={item.openOn ?? resolvedOpenOn}\n onOpenChange={(nextOpen) =>\n setOpenMap((prev) => ({...prev, [itemKey]: nextOpen}))\n }\n placement={dropdownPlacement}\n popoverClassName=\"topbar-dropdown-popover\"\n >\n {renderDropdownChildren(item.children)}\n </MDropdownMenu>\n )\n }\n\n return (\n <MLink\n key={itemKey}\n component={item.component}\n href={item.href}\n to={item.to}\n onClick={item.onClick}\n current={item.active}\n disabled={item.disabled}\n underline=\"none\"\n tone=\"inherit\"\n className={cn(\n 'topbar-link',\n item.color,\n item.className,\n item.active && 'active'\n )}\n >\n {renderItemContent(item)}\n </MLink>\n )\n })}\n </div>\n </div>\n\n {hasOverflow && (\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n shape=\"circle\"\n className={cn('topbar-scroll-button', 'right', !canScrollRight && 'hidden')}\n onClick={() => scrollByAmount('right')}\n aria-label=\"Scroll topbar right\"\n >\n <MChevronRightIcon />\n </MButton>\n )}\n </div>\n </MContainer>\n </nav>\n )\n}\n","import type {MNavsProps} from './MNavs.types'\nimport {cn} from '../../../utils/cn'\nimport {MLink} from '../../typography'\nimport './MNavs.css'\n\n// Render a lightweight navigation list from data or custom children.\nexport function MNavs({items, orientation = 'horizontal', wrap = false, className, children, ...rest}: MNavsProps) {\n return (\n <div className={cn('navs', orientation, wrap && 'wrap', className)} {...rest}>\n {items\n ? items.map((item) => (\n <MLink\n key={item.key ?? item.href ?? item.title?.toString() ?? item.label?.toString()}\n component={item.component}\n href={item.href}\n to={item.to}\n target={item.target}\n rel={item.rel}\n title={item.title}\n current={item.current}\n disabled={item.disabled}\n className={cn('link', item.className)}\n >\n {item.label}\n </MLink>\n ))\n : children}\n </div>\n )\n}\n","import {useId, useMemo, useState} from 'react'\nimport type {KeyboardEvent} from 'react'\nimport type {MTabsItem, MTabsProps} from './MTabs.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MTabs.css'\n\ninterface MTabsTriggerProps {\n item: MTabsItem\n isActive: boolean\n tabId: string\n panelId: string\n clickEffect: MTabsProps['clickEffect']\n rippleColor: string | undefined\n onSelect: (value: string) => void\n}\n\n// Keep the tab trigger behavior isolated from the list and panel rendering.\nfunction MTabsTrigger({item, isActive, tabId, panelId, clickEffect, rippleColor, onSelect}: MTabsTriggerProps) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: item.disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <button\n type=\"button\"\n id={tabId}\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n disabled={item.disabled}\n className={cn('tabs-trigger', isActive && 'active', item.disabled && 'disabled', effectClassName)}\n onPointerDown={handlePointerDown}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n }}\n onClick={() => onSelect(item.value)}\n >\n {effectLayer}\n {item.icon && <span className=\"tabs-icon\">{item.icon}</span>}\n <span className=\"tabs-label\">{item.label}</span>\n </button>\n )\n}\n\nexport function MTabs({\n items,\n value,\n defaultValue,\n onValueChange,\n variant = 'underline',\n orientation = 'horizontal',\n size = 'md',\n fullWidth = false,\n showPanels = true,\n panelClassName,\n clickEffect = 'ripple',\n rippleColor,\n className,\n ...rest\n}: MTabsProps) {\n // Pick the first enabled item when the caller does not control the active tab.\n const fallbackValue = useMemo(\n () => defaultValue ?? items.find((item) => !item.disabled)?.value ?? '',\n [defaultValue, items]\n )\n const [internalValue, setInternalValue] = useState(fallbackValue)\n const activeValue = value ?? internalValue\n const activeItem = items.find((item) => item.value === activeValue) ?? items[0]\n const baseId = useId()\n\n // Support both controlled and uncontrolled tab state.\n function selectTab(nextValue: string) {\n if (value === undefined) {\n setInternalValue(nextValue)\n }\n onValueChange?.(nextValue)\n }\n\n // Re-map keyboard navigation depending on the rendered orientation.\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const enabledItems = items.filter((item) => !item.disabled)\n const currentIndex = enabledItems.findIndex((item) => item.value === activeItem?.value)\n\n if (currentIndex === -1) {\n return\n }\n\n const nextKeys = orientation === 'vertical' ? ['ArrowDown'] : ['ArrowRight', 'ArrowDown']\n const previousKeys = orientation === 'vertical' ? ['ArrowUp'] : ['ArrowLeft', 'ArrowUp']\n\n if (nextKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex + 1) % enabledItems.length]\n selectTab(nextItem.value)\n }\n\n if (previousKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex - 1 + enabledItems.length) % enabledItems.length]\n selectTab(nextItem.value)\n }\n }\n\n return (\n <div className={cn('tabs', variant, orientation, size, fullWidth && 'full-width', className)} {...rest}>\n <div className=\"tabs-list\" role=\"tablist\" aria-orientation={orientation} onKeyDown={handleKeyDown}>\n {items.map((item) => {\n const isActive = item.value === activeItem?.value\n const tabId = `${baseId}-${item.value}-tab`\n const panelId = `${baseId}-${item.value}-panel`\n\n return (\n <MTabsTrigger\n key={item.value}\n item={item}\n isActive={isActive}\n tabId={tabId}\n panelId={panelId}\n clickEffect={clickEffect}\n rippleColor={rippleColor}\n onSelect={selectTab}\n />\n )\n })}\n </div>\n\n {showPanels && activeItem?.content !== undefined && (\n <div\n key={activeItem.value}\n id={`${baseId}-${activeItem.value}-panel`}\n role=\"tabpanel\"\n aria-labelledby={`${baseId}-${activeItem.value}-tab`}\n className={cn('tabs-panel', panelClassName)}\n >\n {activeItem.content}\n </div>\n )}\n </div>\n )\n}\n","import type React from 'react'\nimport type {MSectionProps} from './MSection.types'\nimport {cn} from '../../../utils/cn'\nimport {useReveal} from '../../../utils/useReveal'\nimport './MSection.css'\n\n// Render a semantic page section with predefined spacing and tone.\nexport function MSection({\n as = 'section',\n spacing = 'lg',\n tone = 'default',\n reveal,\n className,\n style,\n children,\n ...rest\n}: MSectionProps) {\n const Component = as\n const revealRef = useReveal(reveal)\n const hasReveal = reveal !== undefined && reveal !== false\n\n return (\n <Component\n ref={hasReveal ? (revealRef as React.RefObject<never>) : undefined}\n className={cn('section', spacing, tone, hasReveal && 'reveal', className)}\n style={style}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import type {MSimpleGridProps} from './MSimpleGrid.types'\nimport {cn} from '../../../utils/cn'\nimport './MSimpleGrid.css'\n\n// Render a simple equal-column grid with a shared default spacing.\nexport function MSimpleGrid({columns = 2, minItemWidth, className, style, children, ...rest}: MSimpleGridProps) {\n return (\n <div\n className={cn('grid', `columns-${columns}`, className)}\n style={{\n ...(minItemWidth ? {'--grid-min-item-width': minItemWidth} : {}),\n ...style,\n }}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport type {ReactElement} from 'react'\nimport type {MGridColumns, MGridItemProps, MGridProps} from './MGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MGrid.css'\n\ntype GridBreakpoint = 'span' | 'xl' | 'lg' | 'md' | 'sm'\n\nfunction isGridColumnElement(child: unknown): child is ReactElement<MGridProps | MGridItemProps> {\n if (!isValidElement(child)) {\n return false\n }\n\n if (child.type === MGridItem) {\n return true\n }\n\n return child.type === MGrid && (child.props as MGridProps).type === 'col'\n}\n\nfunction getNormalizedSpans(props: Partial<MGridProps>) {\n return {\n span: props.span ?? props.xl ?? props.lg ?? props.md ?? props.sm,\n xl: props.xl ?? props.lg ?? props.md ?? props.sm,\n lg: props.lg ?? props.md ?? props.sm,\n md: props.md ?? props.sm,\n sm: props.sm,\n }\n}\n\nfunction distributeRemainingColumns(remaining: number, count: number): Array<MGridColumns | undefined> {\n if (count <= 0) {\n return []\n }\n\n if (remaining <= 0) {\n return Array.from({length: count}, () => undefined)\n }\n\n const base = Math.floor(remaining / count)\n const extra = remaining % count\n\n return Array.from({length: count}, (_, index) => {\n const value = base + (index < extra ? 1 : 0)\n return value >= 1 ? (value as MGridColumns) : undefined\n })\n}\n\nfunction resolveAutoSpans(columnProps: Array<Partial<MGridProps>>) {\n const breakpoints: GridBreakpoint[] = ['span', 'xl', 'lg', 'md', 'sm']\n const normalized = columnProps.map((props) => getNormalizedSpans(props))\n const resolved = normalized.map((spans) => ({...spans}))\n\n for (const breakpoint of breakpoints) {\n const autoIndexes: number[] = []\n let usedColumns = 0\n\n normalized.forEach((spans, index) => {\n const value = spans[breakpoint]\n\n if (value) {\n usedColumns += value\n return\n }\n\n autoIndexes.push(index)\n })\n\n const distributed = distributeRemainingColumns(Math.max(12 - usedColumns, 0), autoIndexes.length)\n\n autoIndexes.forEach((columnIndex, autoIndex) => {\n resolved[columnIndex][breakpoint] = distributed[autoIndex]\n })\n }\n\n return resolved\n}\n\n// Render either a responsive row or a responsive column using one shared grid API.\nexport function MGrid({\n type = 'row',\n span,\n sm,\n md,\n lg,\n xl,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MGridProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const baseSpan = span ?? xl ?? lg\n\n if (type === 'col') {\n return (\n <div\n className={cn(\n 'grid',\n 'col',\n baseSpan ? `span-${baseSpan}` : 'span-auto',\n xl && `xl-${xl}`,\n lg && `lg-${lg}`,\n md && `md-${md}`,\n sm && `sm-${sm}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n }\n\n const childArray = Children.toArray(children)\n const columnEntries = childArray.flatMap((child, index) => (isGridColumnElement(child) ? [{child, index}] : []))\n const autoColumns = Math.min(Math.max(columnEntries.length || childArray.length, 1), 12)\n const hasTrackedSizing = columnEntries.some(({child}) => {\n const p = child.props as MGridProps\n return Boolean(p.span || p.xl || p.lg || p.md || p.sm)\n })\n const resolvedSpans = hasTrackedSizing\n ? resolveAutoSpans(columnEntries.map(({child}) => child.props as Partial<MGridProps>))\n : null\n const resolvedChildren =\n hasTrackedSizing && resolvedSpans\n ? childArray.map((child, childIndex) => {\n const columnIndex = columnEntries.findIndex((entry) => entry.index === childIndex)\n\n if (columnIndex === -1 || !isGridColumnElement(child)) {\n return child\n }\n\n const spans = resolvedSpans[columnIndex]\n\n return cloneElement(child, {\n span: spans.span,\n xl: spans.xl,\n lg: spans.lg,\n md: spans.md,\n sm: spans.sm,\n })\n })\n : childArray\n\n return (\n <div\n className={cn(\n 'grid',\n 'row',\n hasTrackedSizing ? 'tracked' : `auto-cols-${autoColumns}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth: fullWidth ?? true,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {resolvedChildren}\n </div>\n )\n}\n\n// Keep MGridItem as a compatibility alias for explicit column declarations.\nexport function MGridItem({span, sm, md, lg, xl, ...rest}: MGridItemProps) {\n return <MGrid type=\"col\" span={span} sm={sm} md={md} lg={lg} xl={xl} {...rest} />\n}\n","import type {MDividerProps} from './MDivider.types'\nimport {cn} from '../../../utils/cn'\nimport './MDivider.css'\n\n// Render a semantic divider line between related content blocks.\nexport function MDivider({orientation = 'horizontal', variant = 'solid', className, style, ...rest}: MDividerProps) {\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation}\n className={cn('divider', orientation, variant, className)}\n style={style}\n {...rest}\n />\n )\n}\n","import {createContext, useContext, useState, useEffect, useCallback, useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronRightIcon, MMenuIcon} from '../../../icons'\nimport {MDropdownMenu, MTooltip} from '../../overlays'\nimport type {\n MSidebarProps,\n MSidebarHeaderProps,\n MSidebarBodyProps,\n MSidebarNavProps,\n MSidebarItemProps,\n MSidebarGroupProps,\n MSidebarFooterProps,\n MSidebarDividerProps,\n MSidebarMode,\n} from './MSidebar.types'\nimport './MSidebar.css'\n\nconst STORAGE_KEY = 'mineralui-sidebar'\n\ninterface SidebarContextValue {\n mode: MSidebarMode\n mobile: boolean\n mobileOpen: boolean\n canToggle: boolean\n toggleMode: () => void\n}\n\nconst SidebarCtx = createContext<SidebarContextValue>({\n mode: 'expanded',\n mobile: false,\n mobileOpen: false,\n canToggle: false,\n toggleMode: () => {},\n})\n\n// Read shared sidebar state inside slot components.\nfunction useSidebar() {\n return useContext(SidebarCtx)\n}\n\n// Track the responsive breakpoint once for the whole sidebar tree.\nfunction useIsMobile(breakpoint: number): boolean {\n const [mobile, setMobile] = useState(() => (typeof window !== 'undefined' ? window.innerWidth < breakpoint : false))\n\n useEffect(() => {\n const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`)\n const handler = (e: MediaQueryListEvent) => setMobile(e.matches)\n\n setMobile(mq.matches)\n mq.addEventListener('change', handler)\n return () => mq.removeEventListener('change', handler)\n }, [breakpoint])\n\n return mobile\n}\n\n// Render the sidebar shell and coordinate desktop and mobile behavior.\nexport function MSidebar({\n mode: modeProp = 'auto',\n defaultMode = 'expanded',\n onModeChange,\n persist = false,\n side = 'left',\n tone = 'subtle',\n bordered = true,\n mobileBreakpoint = 768,\n className,\n style,\n children,\n}: MSidebarProps) {\n const mobile = useIsMobile(mobileBreakpoint)\n const [mobileOpen, setMobileOpen] = useState(false)\n\n const [internalMode, setInternalMode] = useState<MSidebarMode>(() => {\n if (persist) {\n try {\n const v = localStorage.getItem(STORAGE_KEY)\n if (v === 'expanded' || v === 'collapsed') return v\n } catch {\n /* noop */\n }\n }\n\n return defaultMode\n })\n\n const resolvedMode: MSidebarMode =\n modeProp === 'auto' ? internalMode : modeProp === 'collapsed' ? 'collapsed' : 'expanded'\n\n // MToggle only the desktop width state. Mobile uses its own overlay flow.\n const toggleMode = useCallback(() => {\n const next: MSidebarMode = resolvedMode === 'expanded' ? 'collapsed' : 'expanded'\n\n setInternalMode(next)\n onModeChange?.(next)\n\n if (persist) {\n try {\n localStorage.setItem(STORAGE_KEY, next)\n } catch {\n /* noop */\n }\n }\n }, [resolvedMode, onModeChange, persist])\n\n const closeMobile = useCallback(() => setMobileOpen(false), [])\n\n // Let Escape close the temporary mobile drawer.\n useEffect(() => {\n if (!mobileOpen) return\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setMobileOpen(false)\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [mobileOpen])\n\n const canToggle = !mobile && modeProp === 'auto'\n\n const ctx = useMemo<SidebarContextValue>(\n () => ({mode: resolvedMode, mobile, mobileOpen, canToggle, toggleMode}),\n [resolvedMode, mobile, mobileOpen, canToggle, toggleMode]\n )\n\n const isCollapsed = !mobile && resolvedMode === 'collapsed'\n\n const sidebarCls = cn(\n 'sidebar',\n tone,\n side,\n isCollapsed && 'collapsed',\n bordered && 'bordered',\n mobile && 'mobile',\n mobile && mobileOpen && 'mobile-open',\n className\n )\n\n return (\n <SidebarCtx.Provider value={ctx}>\n {mobile && mobileOpen && <div className=\"sidebar-backdrop\" onClick={closeMobile} />}\n\n <aside className={sidebarCls} style={style}>\n {children}\n </aside>\n\n {mobile && !mobileOpen && (\n <button\n className={cn('sidebar-hamburger', side)}\n onClick={() => setMobileOpen(true)}\n aria-label=\"Open menu\"\n >\n <span className=\"sidebar-hamburger-icon\" aria-hidden=\"true\">\n <MMenuIcon />\n </span>\n </button>\n )}\n </SidebarCtx.Provider>\n )\n}\n\n// Render the top area with branding and an optional collapse toggle.\nexport function MSidebarHeader({bordered = false, className, children}: MSidebarHeaderProps) {\n const {mode, mobile, canToggle, toggleMode} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n return (\n <div className={cn('sidebar-header', bordered && 'bordered', className)}>\n <div className=\"sidebar-header-content\">{children}</div>\n {canToggle && (\n <MButton\n variant=\"outlined\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={toggleMode}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n className=\"sidebar-toggle\"\n >\n <span className={cn('sidebar-chevron', isCollapsed && 'flipped')}>\n <MChevronRightIcon />\n </span>\n </MButton>\n )}\n </div>\n )\n}\n\n// Wrap the scrollable middle area between header and footer.\nexport function MSidebarBody({className, children}: MSidebarBodyProps) {\n return <div className={cn('sidebar-body', className)}>{children}</div>\n}\n\n// Wrap sidebar links in a navigation landmark.\nexport function MSidebarNav({className, children}: MSidebarNavProps) {\n return <nav className={cn('sidebar-nav', className)}>{children}</nav>\n}\n\n// Render one clickable sidebar row as a link, button or custom component.\nexport function MSidebarItem({\n icon,\n label,\n href,\n to,\n onClick,\n active = false,\n disabled = false,\n badge,\n color,\n component,\n className,\n}: MSidebarItemProps) {\n const {mode, mobile} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? (to ? {to} : href ? {href} : {}) : href ? {href} : to ? {href: to} : {}\n const cls = cn('sidebar-item', active && 'active', disabled && 'disabled', color, className)\n\n return (\n <Tag\n className={cls}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled || undefined}\n title={isCollapsed ? label : undefined}\n {...linkProps}\n >\n {icon && <span className=\"sidebar-item-icon\">{icon}</span>}\n {!isCollapsed && (\n <MTooltip content={label} placement=\"top\" className=\"sidebar-item-label-tooltip\">\n <span className=\"sidebar-item-label\">{label}</span>\n </MTooltip>\n )}\n {!isCollapsed && badge && <span className=\"sidebar-item-badge\">{badge}</span>}\n </Tag>\n )\n}\n\n// Group related sidebar items and swap to a dropdown when collapsed.\nexport function MSidebarGroup({\n label,\n icon,\n active = false,\n defaultOpen = true,\n collapsible = true,\n children,\n className,\n}: MSidebarGroupProps) {\n const sidebarCtx = useSidebar()\n const {mode, mobile} = sidebarCtx\n const isCollapsed = !mobile && mode === 'collapsed'\n const [open, setOpen] = useState(defaultOpen)\n\n const expandedCtx = useMemo<SidebarContextValue>(() => ({...sidebarCtx, mode: 'expanded'}), [sidebarCtx])\n\n // Keep expand/collapse local to this group.\n const toggle = () => {\n if (collapsible) setOpen((o) => !o)\n }\n\n if (isCollapsed) {\n const trigger = (\n <span className={cn('sidebar-group-icon collapsed', active && 'active')} title={label}>\n {icon}\n </span>\n )\n\n return (\n <div className={cn('sidebar-group', className)}>\n <MDropdownMenu trigger={trigger} placement=\"right-start\" closeOnSelect openOn=\"hover\">\n <SidebarCtx.Provider value={expandedCtx}>{children}</SidebarCtx.Provider>\n </MDropdownMenu>\n </div>\n )\n }\n\n return (\n <div className={cn('sidebar-group', className)}>\n <button className={cn('sidebar-group-header', active && 'active')} onClick={toggle} aria-expanded={open}>\n {icon && <span className=\"sidebar-group-icon\">{icon}</span>}\n <span className=\"sidebar-group-label\">{label}</span>\n {collapsible && (\n <span className={cn('sidebar-group-arrow', open && 'open')}>\n <MChevronRightIcon />\n </span>\n )}\n </button>\n {open && <div className=\"sidebar-group-items\">{children}</div>}\n </div>\n )\n}\n\n// Render the bottom slot for version info or quick actions.\nexport function MSidebarFooter({bordered = false, className, children}: MSidebarFooterProps) {\n return <div className={cn('sidebar-footer', bordered && 'bordered', className)}>{children}</div>\n}\n\n// Render a spacing-aware divider between sidebar regions.\nexport function MSidebarDivider({className, spacing = 'md'}: MSidebarDividerProps) {\n return <hr className={cn('sidebar-divider', spacing, className)} />\n}\n","import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MBreadcrumbProps} from './MBreadcrumb.types'\nimport './MBreadcrumb.css'\n\n// Render a compact path and collapse the middle when needed.\nexport function MBreadcrumb({items, separator = '/', maxItems, className, ...rest}: MBreadcrumbProps) {\n // Keep the current page visible while shortening deep paths.\n const visible = useMemo(() => {\n if (!maxItems || maxItems >= items.length) return items\n if (maxItems < 2) return [items[items.length - 1]]\n const head = items.slice(0, 1)\n const tail = items.slice(-(maxItems - 1))\n return [...head, null, ...tail]\n }, [items, maxItems])\n\n return (\n <nav aria-label=\"breadcrumb\" className={cn('breadcrumb', className)} {...rest}>\n <ol className=\"trail\">\n {visible.map((item, i) => {\n if (item === null) {\n return (\n <li key=\"ellipsis\" className=\"crumb dots\">\n <span className=\"sep\">{separator}</span>\n <span>…</span>\n </li>\n )\n }\n\n const isLast = i === visible.length - 1\n\n return (\n <li key={i} className={cn('crumb', isLast && 'active')}>\n {i > 0 && <span className=\"sep\">{separator}</span>}\n {item.href && !isLast ? (\n <a href={item.href} className=\"link\" onClick={item.onClick}>\n {item.label}\n </a>\n ) : item.onClick && !isLast ? (\n <button type=\"button\" className=\"link btn\" onClick={item.onClick}>\n {item.label}\n </button>\n ) : (\n <span className=\"current\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n","import {forwardRef, Children, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {MAppShellProps, MBodyProps} from './MAppShell.types'\nimport {cn} from '../../../utils/cn'\nimport {MSidebar} from '../MSidebar'\nimport './MAppShell.css'\n\nexport const MAppShell = forwardRef<HTMLDivElement, MAppShellProps>(function MAppShell(\n {className, children, ...rest},\n ref\n) {\n const sidebarElements: React.ReactNode[] = []\n const otherElements: React.ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === MSidebar) {\n sidebarElements.push(child)\n } else {\n otherElements.push(child)\n }\n })\n\n return (\n <div ref={ref} className={cn('app-shell', className)} {...rest}>\n {sidebarElements}\n <div className=\"app-main\">{otherElements}</div>\n </div>\n )\n})\n\nexport const MBody = forwardRef<HTMLDivElement, MBodyProps>(function MBody({className, children, ...rest}, ref) {\n return (\n <div ref={ref} className={cn('app-body', className)} {...rest}>\n {children}\n </div>\n )\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout-CdAUOdYv.js","names":[],"sources":["../src/components/layout/MContainer/MContainer.tsx","../src/components/layout/MHeader/MHeader.tsx","../src/components/layout/MFooter/MFooter.tsx","../src/components/layout/MNavbar/MNavbar.tsx","../src/components/layout/MTopbar/MTopbar.tsx","../src/components/layout/MNavs/MNavs.tsx","../src/components/layout/MTabs/MTabs.tsx","../src/components/layout/MSection/MSection.tsx","../src/components/layout/MSimpleGrid/MSimpleGrid.tsx","../src/components/layout/MGrid/MGrid.tsx","../src/components/layout/MDivider/MDivider.tsx","../src/components/layout/MSidebar/MSidebar.tsx","../src/components/layout/MBreadcrumb/MBreadcrumb.tsx","../src/components/layout/MAppShell/MAppShell.tsx"],"sourcesContent":["import type {MContainerProps} from './MContainer.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MContainer.css'\n\n// Constrain page content widths and apply shared spacing utilities.\nexport function MContainer({\n size = 'content',\n padded = true,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MContainerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'container',\n size,\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MHeaderProps} from './MHeader.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MHeader.css'\n\n// Render a reusable page header shell aligned to a shared container.\nexport function MHeader({\n container = 'wide',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n layout = 'split',\n className,\n children,\n ...rest\n}: MHeaderProps) {\n return (\n <header className={cn('header', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className={cn('inner', `layout-${layout}`)}>\n {children}\n </MContainer>\n </header>\n )\n}\n","import type {MFooterProps} from './MFooter.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {MContainer} from '../MContainer'\nimport './MFooter.css'\n\n// Render a reusable page footer shell with shared spacing utilities.\nexport function MFooter({\n container = 'wide',\n padded = true,\n bordered = true,\n tone = 'surface',\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MFooterProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <footer\n className={cn(\n 'footer',\n tone,\n bordered && 'bordered',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"inner\" fullWidth>\n {children}\n </MContainer>\n </footer>\n )\n}\n","import type {MNavbarProps} from './MNavbar.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MNavbar.css'\n\n// Render a horizontal app or site navigation shell with container alignment.\nexport function MNavbar({\n container = 'content',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'between',\n wrap = false,\n className,\n children,\n ...rest\n}: MNavbarProps) {\n return (\n <nav className={cn('navbar', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className=\"container\">\n <div className={cn('inner', justify, wrap && 'wrap')}>{children}</div>\n </MContainer>\n </nav>\n )\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {ReactNode} from 'react'\nimport type {MTopbarItem, MTopbarProps} from './MTopbar.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport {MButton} from '../../controls'\nimport {MLink} from '../../typography'\nimport {MChevronDownIcon, MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {MDropdownGroup, MDropdownItem, MDropdownMenu} from '../../overlays/MDropdownMenu'\nimport './MTopbar.css'\n\nfunction getItemKey(item: MTopbarItem): string {\n return item.key ?? item.to ?? item.href ?? String(item.label)\n}\n\nfunction itemHasActiveDescendant(item: MTopbarItem): boolean {\n if (item.active) return true\n return (item.children ?? []).some(itemHasActiveDescendant)\n}\n\nfunction renderItemContent(item: MTopbarItem, withChevron = false, isOpen = false): ReactNode {\n return (\n <>\n {item.icon ? <span className=\"topbar-icon\">{item.icon}</span> : null}\n <span>{item.label}</span>\n {item.badge ? <span className=\"topbar-badge\">{item.badge}</span> : null}\n {withChevron ? (\n <span className={cn('topbar-chevron', isOpen && 'open')} aria-hidden=\"true\">\n <MChevronDownIcon size=\"sm\" />\n </span>\n ) : null}\n </>\n )\n}\n\nfunction renderDropdownChildren(children: MTopbarItem[]): ReactNode {\n return children.map((child) => {\n if (child.children?.length) {\n return (\n <MDropdownGroup key={getItemKey(child)} label={String(child.label)}>\n {renderDropdownChildren(child.children)}\n </MDropdownGroup>\n )\n }\n\n return (\n <MDropdownItem\n key={getItemKey(child)}\n icon={child.icon}\n label={child.label}\n href={child.href}\n to={child.to}\n onClick={child.onClick}\n color={child.color}\n disabled={child.disabled}\n active={child.active}\n component={child.component}\n className={child.className}\n />\n )\n })\n}\n\nexport function MTopbar({\n items,\n container = 'full',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'left',\n size = 'md',\n openOn = 'hover',\n dropdownPlacement = 'bottom-start',\n className,\n style,\n ...rest\n}: MTopbarProps) {\n const [coarsePointer, setCoarsePointer] = useState(false)\n const [openMap, setOpenMap] = useState<Record<string, boolean>>({})\n const [hasOverflow, setHasOverflow] = useState(false)\n const [canScrollLeft, setCanScrollLeft] = useState(false)\n const [canScrollRight, setCanScrollRight] = useState(false)\n const viewportRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const media = window.matchMedia('(pointer: coarse)')\n const sync = () => setCoarsePointer(media.matches)\n\n sync()\n\n if (typeof media.addEventListener === 'function') {\n media.addEventListener('change', sync)\n return () => media.removeEventListener('change', sync)\n }\n\n media.addListener(sync)\n return () => media.removeListener(sync)\n }, [])\n\n useEffect(() => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n const updateOverflow = () => {\n const nextHasOverflow = viewport.scrollWidth > viewport.clientWidth + 1\n setHasOverflow(nextHasOverflow)\n setCanScrollLeft(viewport.scrollLeft > 4)\n setCanScrollRight(viewport.scrollLeft + viewport.clientWidth < viewport.scrollWidth - 4)\n }\n\n updateOverflow()\n\n viewport.addEventListener('scroll', updateOverflow, {passive: true})\n\n const observer = new ResizeObserver(updateOverflow)\n observer.observe(viewport)\n Array.from(viewport.children).forEach((child) => observer.observe(child))\n\n return () => {\n viewport.removeEventListener('scroll', updateOverflow)\n observer.disconnect()\n }\n }, [items, justify, size, tone, bordered, padded, container])\n\n const resolvedOpenOn = useMemo(() => (coarsePointer ? 'click' : openOn), [coarsePointer, openOn])\n\n const scrollByAmount = (direction: 'left' | 'right') => {\n const viewport = viewportRef.current\n if (!viewport) return\n\n const amount = Math.max(180, Math.floor(viewport.clientWidth * 0.45))\n viewport.scrollBy({\n left: direction === 'left' ? -amount : amount,\n behavior: 'smooth',\n })\n }\n\n return (\n <nav\n className={cn('topbar', tone, size, bordered && 'bordered', sticky && 'sticky', className)}\n style={style}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"topbar-container\">\n <div className={cn('topbar-scroll-shell', hasOverflow && 'overflowing')}>\n {hasOverflow && (\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n shape=\"circle\"\n className={cn('topbar-scroll-button', 'left', !canScrollLeft && 'hidden')}\n onClick={() => scrollByAmount('left')}\n aria-label=\"Scroll topbar left\"\n >\n <MChevronLeftIcon />\n </MButton>\n )}\n\n <div ref={viewportRef} className=\"topbar-viewport\">\n <div className={cn('topbar-list', `justify-${justify}`, hasOverflow && 'overflowing')}>\n {items.map((item) => {\n const itemKey = getItemKey(item)\n const isActive = itemHasActiveDescendant(item)\n const isOpen = !!openMap[itemKey]\n\n if (item.children?.length) {\n if (item.disabled) {\n return (\n <div\n key={itemKey}\n className={cn('topbar-trigger', item.color, 'disabled', item.className)}\n aria-disabled=\"true\"\n >\n {renderItemContent(item, true)}\n </div>\n )\n }\n\n return (\n <MDropdownMenu\n key={itemKey}\n trigger={\n <div\n className={cn(\n 'topbar-trigger',\n item.color,\n isActive && 'active',\n isOpen && 'open',\n item.disabled && 'disabled',\n item.className\n )}\n >\n {renderItemContent(item, true, isOpen)}\n </div>\n }\n openOn={item.openOn ?? resolvedOpenOn}\n onOpenChange={(nextOpen) =>\n setOpenMap((prev) => ({...prev, [itemKey]: nextOpen}))\n }\n placement={dropdownPlacement}\n popoverClassName=\"topbar-dropdown-popover\"\n >\n {renderDropdownChildren(item.children)}\n </MDropdownMenu>\n )\n }\n\n return (\n <MLink\n key={itemKey}\n component={item.component}\n href={item.href}\n to={item.to}\n onClick={item.onClick}\n current={item.active}\n disabled={item.disabled}\n underline=\"none\"\n tone=\"inherit\"\n className={cn(\n 'topbar-link',\n item.color,\n item.className,\n item.active && 'active'\n )}\n >\n {renderItemContent(item)}\n </MLink>\n )\n })}\n </div>\n </div>\n\n {hasOverflow && (\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n shape=\"circle\"\n className={cn('topbar-scroll-button', 'right', !canScrollRight && 'hidden')}\n onClick={() => scrollByAmount('right')}\n aria-label=\"Scroll topbar right\"\n >\n <MChevronRightIcon />\n </MButton>\n )}\n </div>\n </MContainer>\n </nav>\n )\n}\n","import type {MNavsProps} from './MNavs.types'\nimport {cn} from '../../../utils/cn'\nimport {MLink} from '../../typography'\nimport './MNavs.css'\n\n// Render a lightweight navigation list from data or custom children.\nexport function MNavs({items, orientation = 'horizontal', wrap = false, className, children, ...rest}: MNavsProps) {\n return (\n <div className={cn('navs', orientation, wrap && 'wrap', className)} {...rest}>\n {items\n ? items.map((item) => (\n <MLink\n key={item.key ?? item.href ?? item.title?.toString() ?? item.label?.toString()}\n component={item.component}\n href={item.href}\n to={item.to}\n target={item.target}\n rel={item.rel}\n title={item.title}\n current={item.current}\n disabled={item.disabled}\n className={cn('link', item.className)}\n >\n {item.label}\n </MLink>\n ))\n : children}\n </div>\n )\n}\n","import {useId, useMemo, useState} from 'react'\nimport type {KeyboardEvent} from 'react'\nimport type {MTabsItem, MTabsProps} from './MTabs.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MTabs.css'\n\ninterface MTabsTriggerProps {\n item: MTabsItem\n isActive: boolean\n tabId: string\n panelId: string\n clickEffect: MTabsProps['clickEffect']\n rippleColor: string | undefined\n onSelect: (value: string) => void\n}\n\n// Keep the tab trigger behavior isolated from the list and panel rendering.\nfunction MTabsTrigger({item, isActive, tabId, panelId, clickEffect, rippleColor, onSelect}: MTabsTriggerProps) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: item.disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <button\n type=\"button\"\n id={tabId}\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n disabled={item.disabled}\n className={cn('tabs-trigger', isActive && 'active', item.disabled && 'disabled', effectClassName)}\n onPointerDown={handlePointerDown}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n }}\n onClick={() => onSelect(item.value)}\n >\n {effectLayer}\n {item.icon && <span className=\"tabs-icon\">{item.icon}</span>}\n <span className=\"tabs-label\">{item.label}</span>\n </button>\n )\n}\n\nexport function MTabs({\n items,\n value,\n defaultValue,\n onValueChange,\n variant = 'underline',\n orientation = 'horizontal',\n size = 'md',\n fullWidth = false,\n showPanels = true,\n panelClassName,\n clickEffect = 'ripple',\n rippleColor,\n className,\n ...rest\n}: MTabsProps) {\n // Pick the first enabled item when the caller does not control the active tab.\n const fallbackValue = useMemo(\n () => defaultValue ?? items.find((item) => !item.disabled)?.value ?? '',\n [defaultValue, items]\n )\n const [internalValue, setInternalValue] = useState(fallbackValue)\n const activeValue = value ?? internalValue\n const activeItem = items.find((item) => item.value === activeValue) ?? items[0]\n const baseId = useId()\n\n // Support both controlled and uncontrolled tab state.\n function selectTab(nextValue: string) {\n if (value === undefined) {\n setInternalValue(nextValue)\n }\n onValueChange?.(nextValue)\n }\n\n // Re-map keyboard navigation depending on the rendered orientation.\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const enabledItems = items.filter((item) => !item.disabled)\n const currentIndex = enabledItems.findIndex((item) => item.value === activeItem?.value)\n\n if (currentIndex === -1) {\n return\n }\n\n const nextKeys = orientation === 'vertical' ? ['ArrowDown'] : ['ArrowRight', 'ArrowDown']\n const previousKeys = orientation === 'vertical' ? ['ArrowUp'] : ['ArrowLeft', 'ArrowUp']\n\n if (nextKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex + 1) % enabledItems.length]\n selectTab(nextItem.value)\n }\n\n if (previousKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex - 1 + enabledItems.length) % enabledItems.length]\n selectTab(nextItem.value)\n }\n }\n\n return (\n <div className={cn('tabs', variant, orientation, size, fullWidth && 'full-width', className)} {...rest}>\n <div className=\"tabs-list\" role=\"tablist\" aria-orientation={orientation} onKeyDown={handleKeyDown}>\n {items.map((item) => {\n const isActive = item.value === activeItem?.value\n const tabId = `${baseId}-${item.value}-tab`\n const panelId = `${baseId}-${item.value}-panel`\n\n return (\n <MTabsTrigger\n key={item.value}\n item={item}\n isActive={isActive}\n tabId={tabId}\n panelId={panelId}\n clickEffect={clickEffect}\n rippleColor={rippleColor}\n onSelect={selectTab}\n />\n )\n })}\n </div>\n\n {showPanels && activeItem?.content !== undefined && (\n <div\n key={activeItem.value}\n id={`${baseId}-${activeItem.value}-panel`}\n role=\"tabpanel\"\n aria-labelledby={`${baseId}-${activeItem.value}-tab`}\n className={cn('tabs-panel', panelClassName)}\n >\n {activeItem.content}\n </div>\n )}\n </div>\n )\n}\n","import type React from 'react'\nimport type {MSectionProps} from './MSection.types'\nimport {cn} from '../../../utils/cn'\nimport {useReveal} from '../../../utils/useReveal'\nimport './MSection.css'\n\n// Render a semantic page section with predefined spacing and tone.\nexport function MSection({\n as = 'section',\n spacing = 'lg',\n tone = 'default',\n reveal,\n className,\n style,\n children,\n ...rest\n}: MSectionProps) {\n const Component = as\n const revealRef = useReveal(reveal)\n const hasReveal = reveal !== undefined && reveal !== false\n\n return (\n <Component\n ref={hasReveal ? (revealRef as React.RefObject<never>) : undefined}\n className={cn('section', spacing, tone, hasReveal && 'reveal', className)}\n style={style}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import type {MSimpleGridProps} from './MSimpleGrid.types'\nimport {cn} from '../../../utils/cn'\nimport './MSimpleGrid.css'\n\n// Render a simple equal-column grid with a shared default spacing.\nexport function MSimpleGrid({columns = 2, minItemWidth, className, style, children, ...rest}: MSimpleGridProps) {\n return (\n <div\n className={cn('grid', `columns-${columns}`, className)}\n style={{\n ...(minItemWidth ? {'--grid-min-item-width': minItemWidth} : {}),\n ...style,\n }}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport type {ReactElement} from 'react'\nimport type {MGridColumns, MGridItemProps, MGridProps} from './MGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MGrid.css'\n\ntype GridBreakpoint = 'span' | 'xl' | 'lg' | 'md' | 'sm'\n\nfunction isGridColumnElement(child: unknown): child is ReactElement<MGridProps | MGridItemProps> {\n if (!isValidElement(child)) {\n return false\n }\n\n if (child.type === MGridItem) {\n return true\n }\n\n return child.type === MGrid && (child.props as MGridProps).type === 'col'\n}\n\nfunction getNormalizedSpans(props: Partial<MGridProps>) {\n return {\n span: props.span ?? props.xl ?? props.lg ?? props.md ?? props.sm,\n xl: props.xl ?? props.lg ?? props.md ?? props.sm,\n lg: props.lg ?? props.md ?? props.sm,\n md: props.md ?? props.sm,\n sm: props.sm,\n }\n}\n\nfunction distributeRemainingColumns(remaining: number, count: number): Array<MGridColumns | undefined> {\n if (count <= 0) {\n return []\n }\n\n if (remaining <= 0) {\n return Array.from({length: count}, () => undefined)\n }\n\n const base = Math.floor(remaining / count)\n const extra = remaining % count\n\n return Array.from({length: count}, (_, index) => {\n const value = base + (index < extra ? 1 : 0)\n return value >= 1 ? (value as MGridColumns) : undefined\n })\n}\n\nfunction resolveAutoSpans(columnProps: Array<Partial<MGridProps>>) {\n const breakpoints: GridBreakpoint[] = ['span', 'xl', 'lg', 'md', 'sm']\n const normalized = columnProps.map((props) => getNormalizedSpans(props))\n const resolved = normalized.map((spans) => ({...spans}))\n\n for (const breakpoint of breakpoints) {\n const autoIndexes: number[] = []\n let usedColumns = 0\n\n normalized.forEach((spans, index) => {\n const value = spans[breakpoint]\n\n if (value) {\n usedColumns += value\n return\n }\n\n autoIndexes.push(index)\n })\n\n const distributed = distributeRemainingColumns(Math.max(12 - usedColumns, 0), autoIndexes.length)\n\n autoIndexes.forEach((columnIndex, autoIndex) => {\n resolved[columnIndex][breakpoint] = distributed[autoIndex]\n })\n }\n\n return resolved\n}\n\n// Render either a responsive row or a responsive column using one shared grid API.\nexport function MGrid({\n type = 'row',\n span,\n sm,\n md,\n lg,\n xl,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MGridProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const baseSpan = span ?? xl ?? lg\n\n if (type === 'col') {\n return (\n <div\n className={cn(\n 'grid',\n 'col',\n baseSpan ? `span-${baseSpan}` : 'span-auto',\n xl && `xl-${xl}`,\n lg && `lg-${lg}`,\n md && `md-${md}`,\n sm && `sm-${sm}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n }\n\n const childArray = Children.toArray(children)\n const columnEntries = childArray.flatMap((child, index) => (isGridColumnElement(child) ? [{child, index}] : []))\n const autoColumns = Math.min(Math.max(columnEntries.length || childArray.length, 1), 12)\n const hasTrackedSizing = columnEntries.some(({child}) => {\n const p = child.props as MGridProps\n return Boolean(p.span || p.xl || p.lg || p.md || p.sm)\n })\n const resolvedSpans = hasTrackedSizing\n ? resolveAutoSpans(columnEntries.map(({child}) => child.props as Partial<MGridProps>))\n : null\n const resolvedChildren =\n hasTrackedSizing && resolvedSpans\n ? childArray.map((child, childIndex) => {\n const columnIndex = columnEntries.findIndex((entry) => entry.index === childIndex)\n\n if (columnIndex === -1 || !isGridColumnElement(child)) {\n return child\n }\n\n const spans = resolvedSpans[columnIndex]\n\n return cloneElement(child, {\n span: spans.span,\n xl: spans.xl,\n lg: spans.lg,\n md: spans.md,\n sm: spans.sm,\n })\n })\n : childArray\n\n return (\n <div\n className={cn(\n 'grid',\n 'row',\n hasTrackedSizing ? 'tracked' : `auto-cols-${autoColumns}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth: fullWidth ?? true,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {resolvedChildren}\n </div>\n )\n}\n\n// Keep MGridItem as a compatibility alias for explicit column declarations.\nexport function MGridItem({span, sm, md, lg, xl, ...rest}: MGridItemProps) {\n return <MGrid type=\"col\" span={span} sm={sm} md={md} lg={lg} xl={xl} {...rest} />\n}\n","import type {MDividerProps} from './MDivider.types'\nimport {cn} from '../../../utils/cn'\nimport './MDivider.css'\n\n// Render a semantic divider line between related content blocks.\nexport function MDivider({orientation = 'horizontal', variant = 'solid', className, style, ...rest}: MDividerProps) {\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation}\n className={cn('divider', orientation, variant, className)}\n style={style}\n {...rest}\n />\n )\n}\n","import {createContext, useContext, useState, useEffect, useCallback, useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronRightIcon, MMenuIcon} from '../../../icons'\nimport {MDropdownMenu, MTooltip} from '../../overlays'\nimport type {\n MSidebarProps,\n MSidebarHeaderProps,\n MSidebarBodyProps,\n MSidebarNavProps,\n MSidebarItemProps,\n MSidebarGroupProps,\n MSidebarFooterProps,\n MSidebarDividerProps,\n MSidebarMode,\n} from './MSidebar.types'\nimport './MSidebar.css'\n\nconst STORAGE_KEY = 'mineralui-sidebar'\n\ninterface SidebarContextValue {\n mode: MSidebarMode\n mobile: boolean\n mobileOpen: boolean\n canToggle: boolean\n toggleMode: () => void\n}\n\nconst SidebarCtx = createContext<SidebarContextValue>({\n mode: 'expanded',\n mobile: false,\n mobileOpen: false,\n canToggle: false,\n toggleMode: () => {},\n})\n\n// Read shared sidebar state inside slot components.\nfunction useSidebar() {\n return useContext(SidebarCtx)\n}\n\n// Track the responsive breakpoint once for the whole sidebar tree.\nfunction useIsMobile(breakpoint: number): boolean {\n const [mobile, setMobile] = useState(() => (typeof window !== 'undefined' ? window.innerWidth < breakpoint : false))\n\n useEffect(() => {\n const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`)\n const handler = (e: MediaQueryListEvent) => setMobile(e.matches)\n\n setMobile(mq.matches)\n mq.addEventListener('change', handler)\n return () => mq.removeEventListener('change', handler)\n }, [breakpoint])\n\n return mobile\n}\n\n// Render the sidebar shell and coordinate desktop and mobile behavior.\nexport function MSidebar({\n mode: modeProp = 'auto',\n defaultMode = 'expanded',\n onModeChange,\n persist = false,\n side = 'left',\n tone = 'subtle',\n bordered = true,\n mobileBreakpoint = 768,\n className,\n style,\n children,\n}: MSidebarProps) {\n const mobile = useIsMobile(mobileBreakpoint)\n const [mobileOpen, setMobileOpen] = useState(false)\n\n const [internalMode, setInternalMode] = useState<MSidebarMode>(() => {\n if (persist) {\n try {\n const v = localStorage.getItem(STORAGE_KEY)\n if (v === 'expanded' || v === 'collapsed') return v\n } catch {\n /* noop */\n }\n }\n\n return defaultMode\n })\n\n const resolvedMode: MSidebarMode =\n modeProp === 'auto' ? internalMode : modeProp === 'collapsed' ? 'collapsed' : 'expanded'\n\n // MToggle only the desktop width state. Mobile uses its own overlay flow.\n const toggleMode = useCallback(() => {\n const next: MSidebarMode = resolvedMode === 'expanded' ? 'collapsed' : 'expanded'\n\n setInternalMode(next)\n onModeChange?.(next)\n\n if (persist) {\n try {\n localStorage.setItem(STORAGE_KEY, next)\n } catch {\n /* noop */\n }\n }\n }, [resolvedMode, onModeChange, persist])\n\n const closeMobile = useCallback(() => setMobileOpen(false), [])\n\n // Let Escape close the temporary mobile drawer.\n useEffect(() => {\n if (!mobileOpen) return\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setMobileOpen(false)\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [mobileOpen])\n\n const canToggle = !mobile && modeProp === 'auto'\n\n const ctx = useMemo<SidebarContextValue>(\n () => ({mode: resolvedMode, mobile, mobileOpen, canToggle, toggleMode}),\n [resolvedMode, mobile, mobileOpen, canToggle, toggleMode]\n )\n\n const isCollapsed = !mobile && resolvedMode === 'collapsed'\n\n const sidebarCls = cn(\n 'sidebar',\n tone,\n side,\n isCollapsed && 'collapsed',\n bordered && 'bordered',\n mobile && 'mobile',\n mobile && mobileOpen && 'mobile-open',\n className\n )\n\n return (\n <SidebarCtx.Provider value={ctx}>\n {mobile && mobileOpen && <div className=\"sidebar-backdrop\" onClick={closeMobile} />}\n\n <aside className={sidebarCls} style={style}>\n {children}\n </aside>\n\n {mobile && !mobileOpen && (\n <button\n className={cn('sidebar-hamburger', side)}\n onClick={() => setMobileOpen(true)}\n aria-label=\"Open menu\"\n >\n <span className=\"sidebar-hamburger-icon\" aria-hidden=\"true\">\n <MMenuIcon />\n </span>\n </button>\n )}\n </SidebarCtx.Provider>\n )\n}\n\n// Render the top area with branding and an optional collapse toggle.\nexport function MSidebarHeader({bordered = false, className, children}: MSidebarHeaderProps) {\n const {mode, mobile, canToggle, toggleMode} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n return (\n <div className={cn('sidebar-header', bordered && 'bordered', className)}>\n <div className=\"sidebar-header-content\">{children}</div>\n {canToggle && (\n <MButton\n variant=\"outlined\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={toggleMode}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n className=\"sidebar-toggle\"\n >\n <span className={cn('sidebar-chevron', isCollapsed && 'flipped')}>\n <MChevronRightIcon />\n </span>\n </MButton>\n )}\n </div>\n )\n}\n\n// Wrap the scrollable middle area between header and footer.\nexport function MSidebarBody({className, children}: MSidebarBodyProps) {\n return <div className={cn('sidebar-body', className)}>{children}</div>\n}\n\n// Wrap sidebar links in a navigation landmark.\nexport function MSidebarNav({className, children}: MSidebarNavProps) {\n return <nav className={cn('sidebar-nav', className)}>{children}</nav>\n}\n\n// Render one clickable sidebar row as a link, button or custom component.\nexport function MSidebarItem({\n icon,\n label,\n href,\n to,\n onClick,\n active = false,\n disabled = false,\n badge,\n color,\n component,\n className,\n}: MSidebarItemProps) {\n const {mode, mobile} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? (to ? {to} : href ? {href} : {}) : href ? {href} : to ? {href: to} : {}\n const cls = cn('sidebar-item', active && 'active', disabled && 'disabled', color, className)\n\n return (\n <Tag\n className={cls}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled || undefined}\n title={isCollapsed ? label : undefined}\n {...linkProps}\n >\n {icon && <span className=\"sidebar-item-icon\">{icon}</span>}\n {!isCollapsed && (\n <MTooltip content={label} placement=\"top\" className=\"sidebar-item-label-tooltip\">\n <span className=\"sidebar-item-label\">{label}</span>\n </MTooltip>\n )}\n {!isCollapsed && badge && <span className=\"sidebar-item-badge\">{badge}</span>}\n </Tag>\n )\n}\n\n// Group related sidebar items and swap to a dropdown when collapsed.\nexport function MSidebarGroup({\n label,\n icon,\n active = false,\n defaultOpen = true,\n collapsible = true,\n children,\n className,\n}: MSidebarGroupProps) {\n const sidebarCtx = useSidebar()\n const {mode, mobile} = sidebarCtx\n const isCollapsed = !mobile && mode === 'collapsed'\n const [open, setOpen] = useState(defaultOpen)\n\n const expandedCtx = useMemo<SidebarContextValue>(() => ({...sidebarCtx, mode: 'expanded'}), [sidebarCtx])\n\n // Keep expand/collapse local to this group.\n const toggle = () => {\n if (collapsible) setOpen((o) => !o)\n }\n\n if (isCollapsed) {\n const trigger = (\n <span className={cn('sidebar-group-icon collapsed', active && 'active')} title={label}>\n {icon}\n </span>\n )\n\n return (\n <div className={cn('sidebar-group', className)}>\n <MDropdownMenu trigger={trigger} placement=\"right-start\" closeOnSelect openOn=\"hover\">\n <SidebarCtx.Provider value={expandedCtx}>{children}</SidebarCtx.Provider>\n </MDropdownMenu>\n </div>\n )\n }\n\n return (\n <div className={cn('sidebar-group', className)}>\n <button className={cn('sidebar-group-header', active && 'active')} onClick={toggle} aria-expanded={open}>\n {icon && <span className=\"sidebar-group-icon\">{icon}</span>}\n <span className=\"sidebar-group-label\">{label}</span>\n {collapsible && (\n <span className={cn('sidebar-group-arrow', open && 'open')}>\n <MChevronRightIcon />\n </span>\n )}\n </button>\n {open && <div className=\"sidebar-group-items\">{children}</div>}\n </div>\n )\n}\n\n// Render the bottom slot for version info or quick actions.\nexport function MSidebarFooter({bordered = false, className, children}: MSidebarFooterProps) {\n return <div className={cn('sidebar-footer', bordered && 'bordered', className)}>{children}</div>\n}\n\n// Render a spacing-aware divider between sidebar regions.\nexport function MSidebarDivider({className, spacing = 'md'}: MSidebarDividerProps) {\n return <hr className={cn('sidebar-divider', spacing, className)} />\n}\n","import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MBreadcrumbProps} from './MBreadcrumb.types'\nimport './MBreadcrumb.css'\n\n// Render a compact path and collapse the middle when needed.\nexport function MBreadcrumb({items, separator = '/', maxItems, className, ...rest}: MBreadcrumbProps) {\n // Keep the current page visible while shortening deep paths.\n const visible = useMemo(() => {\n if (!maxItems || maxItems >= items.length) return items\n if (maxItems < 2) return [items[items.length - 1]]\n const head = items.slice(0, 1)\n const tail = items.slice(-(maxItems - 1))\n return [...head, null, ...tail]\n }, [items, maxItems])\n\n return (\n <nav aria-label=\"breadcrumb\" className={cn('breadcrumb', className)} {...rest}>\n <ol className=\"trail\">\n {visible.map((item, i) => {\n if (item === null) {\n return (\n <li key=\"ellipsis\" className=\"crumb dots\">\n <span className=\"sep\">{separator}</span>\n <span>…</span>\n </li>\n )\n }\n\n const isLast = i === visible.length - 1\n\n return (\n <li key={i} className={cn('crumb', isLast && 'active')}>\n {i > 0 && <span className=\"sep\">{separator}</span>}\n {item.href && !isLast ? (\n <a href={item.href} className=\"link\" onClick={item.onClick}>\n {item.label}\n </a>\n ) : item.onClick && !isLast ? (\n <button type=\"button\" className=\"link btn\" onClick={item.onClick}>\n {item.label}\n </button>\n ) : (\n <span className=\"current\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n","import {forwardRef, Children, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {MAppShellProps, MBodyProps} from './MAppShell.types'\nimport {cn} from '../../../utils/cn'\nimport {MSidebar} from '../MSidebar'\nimport './MAppShell.css'\n\nexport const MAppShell = forwardRef<HTMLDivElement, MAppShellProps>(function MAppShell(\n {className, children, ...rest},\n ref\n) {\n const sidebarElements: React.ReactNode[] = []\n const otherElements: React.ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === MSidebar) {\n sidebarElements.push(child)\n } else {\n otherElements.push(child)\n }\n })\n\n return (\n <div ref={ref} className={cn('app-shell', className)} {...rest}>\n {sidebarElements}\n <div className=\"app-main\">{otherElements}</div>\n </div>\n )\n})\n\nexport const MBody = forwardRef<HTMLDivElement, MBodyProps>(function MBody({className, children, ...rest}, ref) {\n return (\n <div ref={ref} className={cn('app-body', className)} {...rest}>\n {children}\n </div>\n )\n})\n"],"mappings":";;;;;;;;;;;;;;AAMA,SAAgB,EAAW,EACvB,UAAO,WACP,YAAS,IACT,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACa;CAChB,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,aACA,GACA,KAAU,UACV,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI;EAEH;EACC,CAAA;;;;ACxDd,SAAgB,EAAQ,EACpB,eAAY,QACZ,YAAS,IACT,cAAW,IACX,YAAS,IACT,UAAO,WACP,YAAS,SACT,cACA,aACA,GAAG,KACU;AACb,QACI,kBAAC,UAAD;EAAQ,WAAW,EAAG,UAAU,GAAM,KAAY,YAAY,KAAU,UAAU,EAAU;EAAE,GAAI;YAC9F,kBAAC,GAAD;GAAY,MAAM;GAAmB;GAAQ,WAAW,EAAG,SAAS,UAAU,IAAS;GAClF;GACQ,CAAA;EACR,CAAA;;;;ACfjB,SAAgB,EAAQ,EACpB,eAAY,QACZ,YAAS,IACT,cAAW,IACX,UAAO,WACP,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACU;CACb,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,UAAD;EACI,WAAW,EACP,UACA,GACA,KAAY,YACZ,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI;YAEJ,kBAAC,GAAD;GAAY,MAAM;GAAmB;GAAQ,WAAU;GAAQ,WAAA;GAC1D;GACQ,CAAA;EACR,CAAA;;;;AC7DjB,SAAgB,EAAQ,EACpB,eAAY,WACZ,YAAS,IACT,cAAW,IACX,YAAS,IACT,UAAO,WACP,aAAU,WACV,UAAO,IACP,cACA,aACA,GAAG,KACU;AACb,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,UAAU,GAAM,KAAY,YAAY,KAAU,UAAU,EAAU;EAAE,GAAI;YAC3F,kBAAC,GAAD;GAAY,MAAM;GAAmB;GAAQ,WAAU;aACnD,kBAAC,OAAD;IAAK,WAAW,EAAG,SAAS,GAAS,KAAQ,OAAO;IAAG;IAAe,CAAA;GAC7D,CAAA;EACX,CAAA;;;;ACZd,SAAS,EAAW,GAA2B;AAC3C,QAAO,EAAK,OAAO,EAAK,MAAM,EAAK,QAAQ,OAAO,EAAK,MAAM;;AAGjE,SAAS,EAAwB,GAA4B;AAEzD,QADI,EAAK,SAAe,MAChB,EAAK,YAAY,EAAE,EAAE,KAAK,EAAwB;;AAG9D,SAAS,EAAkB,GAAmB,IAAc,IAAO,IAAS,IAAkB;AAC1F,QACI,kBAAA,GAAA,EAAA,UAAA;EACK,EAAK,OAAO,kBAAC,QAAD;GAAM,WAAU;aAAe,EAAK;GAAY,CAAA,GAAG;EAChE,kBAAC,QAAD,EAAA,UAAO,EAAK,OAAa,CAAA;EACxB,EAAK,QAAQ,kBAAC,QAAD;GAAM,WAAU;aAAgB,EAAK;GAAa,CAAA,GAAG;EAClE,IACG,kBAAC,QAAD;GAAM,WAAW,EAAG,kBAAkB,KAAU,OAAO;GAAE,eAAY;aACjE,kBAAC,GAAD,EAAkB,MAAK,MAAO,CAAA;GAC3B,CAAA,GACP;EACL,EAAA,CAAA;;AAIX,SAAS,EAAuB,GAAoC;AAChE,QAAO,EAAS,KAAK,MACb,EAAM,UAAU,SAEZ,kBAAC,GAAD;EAAwC,OAAO,OAAO,EAAM,MAAM;YAC7D,EAAuB,EAAM,SAAS;EAC1B,EAFI,EAAW,EAAM,CAErB,GAKrB,kBAAC,GAAD;EAEI,MAAM,EAAM;EACZ,OAAO,EAAM;EACb,MAAM,EAAM;EACZ,IAAI,EAAM;EACV,SAAS,EAAM;EACf,OAAO,EAAM;EACb,UAAU,EAAM;EAChB,QAAQ,EAAM;EACd,WAAW,EAAM;EACjB,WAAW,EAAM;EACnB,EAXO,EAAW,EAAM,CAWxB,CAER;;AAGN,SAAgB,EAAQ,EACpB,UACA,eAAY,QACZ,YAAS,IACT,cAAW,IACX,YAAS,IACT,UAAO,WACP,aAAU,QACV,UAAO,MACP,YAAS,SACT,uBAAoB,gBACpB,cACA,UACA,GAAG,KACU;CACb,IAAM,CAAC,GAAe,KAAoB,EAAS,GAAM,EACnD,CAAC,GAAS,KAAc,EAAkC,EAAE,CAAC,EAC7D,CAAC,GAAa,KAAkB,EAAS,GAAM,EAC/C,CAAC,GAAe,KAAoB,EAAS,GAAM,EACnD,CAAC,GAAgB,KAAqB,EAAS,GAAM,EACrD,IAAc,EAAuB,KAAK;AAiBhD,CAfA,QAAgB;EACZ,IAAM,IAAQ,OAAO,WAAW,oBAAoB,EAC9C,UAAa,EAAiB,EAAM,QAAQ;AAUlD,SARA,GAAM,EAEF,OAAO,EAAM,oBAAqB,cAClC,EAAM,iBAAiB,UAAU,EAAK,QACzB,EAAM,oBAAoB,UAAU,EAAK,KAG1D,EAAM,YAAY,EAAK,QACV,EAAM,eAAe,EAAK;IACxC,EAAE,CAAC,EAEN,QAAgB;EACZ,IAAM,IAAW,EAAY;AAC7B,MAAI,CAAC,EAAU;EAEf,IAAM,UAAuB;AAIzB,GAFA,EADwB,EAAS,cAAc,EAAS,cAAc,EACvC,EAC/B,EAAiB,EAAS,aAAa,EAAE,EACzC,EAAkB,EAAS,aAAa,EAAS,cAAc,EAAS,cAAc,EAAE;;AAK5F,EAFA,GAAgB,EAEhB,EAAS,iBAAiB,UAAU,GAAgB,EAAC,SAAS,IAAK,CAAC;EAEpE,IAAM,IAAW,IAAI,eAAe,EAAe;AAInD,SAHA,EAAS,QAAQ,EAAS,EAC1B,MAAM,KAAK,EAAS,SAAS,CAAC,SAAS,MAAU,EAAS,QAAQ,EAAM,CAAC,QAE5D;AAET,GADA,EAAS,oBAAoB,UAAU,EAAe,EACtD,EAAS,YAAY;;IAE1B;EAAC;EAAO;EAAS;EAAM;EAAM;EAAU;EAAQ;EAAU,CAAC;CAE7D,IAAM,IAAiB,QAAe,IAAgB,UAAU,GAAS,CAAC,GAAe,EAAO,CAAC,EAE3F,KAAkB,MAAgC;EACpD,IAAM,IAAW,EAAY;AAC7B,MAAI,CAAC,EAAU;EAEf,IAAM,IAAS,KAAK,IAAI,KAAK,KAAK,MAAM,EAAS,cAAc,IAAK,CAAC;AACrE,IAAS,SAAS;GACd,MAAM,MAAc,SAAS,CAAC,IAAS;GACvC,UAAU;GACb,CAAC;;AAGN,QACI,kBAAC,OAAD;EACI,WAAW,EAAG,UAAU,GAAM,GAAM,KAAY,YAAY,KAAU,UAAU,EAAU;EACnF;EACP,GAAI;YAEJ,kBAAC,GAAD;GAAY,MAAM;GAAmB;GAAQ,WAAU;aACnD,kBAAC,OAAD;IAAK,WAAW,EAAG,uBAAuB,KAAe,cAAc;cAAvE;KACK,KACG,kBAAC,GAAD;MACI,SAAQ;MACR,OAAM;MACN,UAAA;MACA,OAAM;MACN,WAAW,EAAG,wBAAwB,QAAQ,CAAC,KAAiB,SAAS;MACzE,eAAe,EAAe,OAAO;MACrC,cAAW;gBAEX,kBAAC,GAAD,EAAoB,CAAA;MACd,CAAA;KAGd,kBAAC,OAAD;MAAK,KAAK;MAAa,WAAU;gBAC7B,kBAAC,OAAD;OAAK,WAAW,EAAG,eAAe,WAAW,KAAW,KAAe,cAAc;iBAChF,EAAM,KAAK,MAAS;QACjB,IAAM,IAAU,EAAW,EAAK,EAC1B,IAAW,EAAwB,EAAK,EACxC,IAAS,CAAC,CAAC,EAAQ;AA4CzB,eA1CI,EAAK,UAAU,SACX,EAAK,WAED,kBAAC,OAAD;SAEI,WAAW,EAAG,kBAAkB,EAAK,OAAO,YAAY,EAAK,UAAU;SACvE,iBAAc;mBAEb,EAAkB,GAAM,GAAK;SAC5B,EALG,EAKH,GAKV,kBAAC,GAAD;SAEI,SACI,kBAAC,OAAD;UACI,WAAW,EACP,kBACA,EAAK,OACL,KAAY,UACZ,KAAU,QACV,EAAK,YAAY,YACjB,EAAK,UACR;oBAEA,EAAkB,GAAM,IAAM,EAAO;UACpC,CAAA;SAEV,QAAQ,EAAK,UAAU;SACvB,eAAe,MACX,GAAY,OAAU;UAAC,GAAG;WAAO,IAAU;UAAS,EAAE;SAE1D,WAAW;SACX,kBAAiB;mBAEhB,EAAuB,EAAK,SAAS;SAC1B,EAvBP,EAuBO,GAKpB,kBAAC,GAAD;SAEI,WAAW,EAAK;SAChB,MAAM,EAAK;SACX,IAAI,EAAK;SACT,SAAS,EAAK;SACd,SAAS,EAAK;SACd,UAAU,EAAK;SACf,WAAU;SACV,MAAK;SACL,WAAW,EACP,eACA,EAAK,OACL,EAAK,WACL,EAAK,UAAU,SAClB;mBAEA,EAAkB,EAAK;SACpB,EAjBC,EAiBD;SAEd;OACA,CAAA;MACJ,CAAA;KAEL,KACG,kBAAC,GAAD;MACI,SAAQ;MACR,OAAM;MACN,UAAA;MACA,OAAM;MACN,WAAW,EAAG,wBAAwB,SAAS,CAAC,KAAkB,SAAS;MAC3E,eAAe,EAAe,QAAQ;MACtC,cAAW;gBAEX,kBAAC,GAAD,EAAqB,CAAA;MACf,CAAA;KAEZ;;GACG,CAAA;EACX,CAAA;;;;ACnPd,SAAgB,EAAM,EAAC,UAAO,iBAAc,cAAc,UAAO,IAAO,cAAW,aAAU,GAAG,KAAmB;AAC/G,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,QAAQ,GAAa,KAAQ,QAAQ,EAAU;EAAE,GAAI;YACnE,IACK,EAAM,KAAK,MACP,kBAAC,GAAD;GAEI,WAAW,EAAK;GAChB,MAAM,EAAK;GACX,IAAI,EAAK;GACT,QAAQ,EAAK;GACb,KAAK,EAAK;GACV,OAAO,EAAK;GACZ,SAAS,EAAK;GACd,UAAU,EAAK;GACf,WAAW,EAAG,QAAQ,EAAK,UAAU;aAEpC,EAAK;GACF,EAZC,EAAK,OAAO,EAAK,QAAQ,EAAK,OAAO,UAAU,IAAI,EAAK,OAAO,UAAU,CAY1E,CACV,GACF;EACJ,CAAA;;;;ACTd,SAAS,EAAa,EAAC,SAAM,aAAU,UAAO,YAAS,gBAAa,gBAAa,eAA8B;CAC3G,IAAM,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAwC;EAC7G,QAAQ;EACR,UAAU,EAAK;EACf,UAAU;EACV,OAAO;EACV,CAAC;AAEF,QACI,kBAAC,UAAD;EACI,MAAK;EACL,IAAI;EACJ,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,UAAU,IAAW,IAAI;EACzB,UAAU,EAAK;EACf,WAAW,EAAG,gBAAgB,KAAY,UAAU,EAAK,YAAY,YAAY,EAAgB;EACjG,eAAe;EACf,YAAY,MAAU;AAClB,IAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc;;EAG1C,eAAe,EAAS,EAAK,MAAM;YAfvC;GAiBK;GACA,EAAK,QAAQ,kBAAC,QAAD;IAAM,WAAU;cAAa,EAAK;IAAY,CAAA;GAC5D,kBAAC,QAAD;IAAM,WAAU;cAAc,EAAK;IAAa,CAAA;GAC3C;;;AAIjB,SAAgB,EAAM,EAClB,UACA,UACA,iBACA,kBACA,aAAU,aACV,iBAAc,cACd,UAAO,MACP,eAAY,IACZ,gBAAa,IACb,mBACA,iBAAc,UACd,gBACA,cACA,GAAG,KACQ;CAMX,IAAM,CAAC,GAAe,KAAoB,EAJpB,QACZ,KAAgB,EAAM,MAAM,MAAS,CAAC,EAAK,SAAS,EAAE,SAAS,IACrE,CAAC,GAAc,EAAM,CACxB,CACgE,EAC3D,IAAc,KAAS,GACvB,IAAa,EAAM,MAAM,MAAS,EAAK,UAAU,EAAY,IAAI,EAAM,IACvE,IAAS,GAAO;CAGtB,SAAS,EAAU,GAAmB;AAIlC,EAHI,MAAU,KAAA,KACV,EAAiB,EAAU,EAE/B,IAAgB,EAAU;;CAI9B,SAAS,EAAc,GAAsC;EACzD,IAAM,IAAe,EAAM,QAAQ,MAAS,CAAC,EAAK,SAAS,EACrD,IAAe,EAAa,WAAW,MAAS,EAAK,UAAU,GAAY,MAAM;AAEvF,MAAI,MAAiB,GACjB;EAGJ,IAAM,IAAW,MAAgB,aAAa,CAAC,YAAY,GAAG,CAAC,cAAc,YAAY,EACnF,IAAe,MAAgB,aAAa,CAAC,UAAU,GAAG,CAAC,aAAa,UAAU;AAExF,MAAI,EAAS,SAAS,EAAM,IAAI,EAAE;AAC9B,KAAM,gBAAgB;GACtB,IAAM,IAAW,GAAc,IAAe,KAAK,EAAa;AAChE,KAAU,EAAS,MAAM;;AAG7B,MAAI,EAAa,SAAS,EAAM,IAAI,EAAE;AAClC,KAAM,gBAAgB;GACtB,IAAM,IAAW,GAAc,IAAe,IAAI,EAAa,UAAU,EAAa;AACtF,KAAU,EAAS,MAAM;;;AAIjC,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,QAAQ,GAAS,GAAa,GAAM,KAAa,cAAc,EAAU;EAAE,GAAI;YAAlG,CACI,kBAAC,OAAD;GAAK,WAAU;GAAY,MAAK;GAAU,oBAAkB;GAAa,WAAW;aAC/E,EAAM,KAAK,MAMJ,kBAAC,GAAD;IAEU;IACI,UARD,EAAK,UAAU,GAAY;IAS7B,OARD,GAAG,EAAO,GAAG,EAAK,MAAM;IASrB,SARD,GAAG,EAAO,GAAG,EAAK,MAAM;IASnB;IACA;IACb,UAAU;IACZ,EARO,EAAK,MAQZ,CAER;GACA,CAAA,EAEL,KAAc,GAAY,YAAY,KAAA,KACnC,kBAAC,OAAD;GAEI,IAAI,GAAG,EAAO,GAAG,EAAW,MAAM;GAClC,MAAK;GACL,mBAAiB,GAAG,EAAO,GAAG,EAAW,MAAM;GAC/C,WAAW,EAAG,cAAc,EAAe;aAE1C,EAAW;GACV,EAPG,EAAW,MAOd,CAER;;;;;ACzId,SAAgB,EAAS,EACrB,QAAK,WACL,aAAU,MACV,UAAO,WACP,WACA,cACA,UACA,aACA,GAAG,KACW;CACd,IAAM,IAAY,GACZ,IAAY,EAAU,EAAO,EAC7B,IAAY,MAAW,KAAA,KAAa,MAAW;AAErD,QACI,kBAAC,GAAD;EACI,KAAK,IAAa,IAAuC,KAAA;EACzD,WAAW,EAAG,WAAW,GAAS,GAAM,KAAa,UAAU,EAAU;EAClE;EACP,GAAI;EAEH;EACO,CAAA;;;;ACxBpB,SAAgB,EAAY,EAAC,aAAU,GAAG,iBAAc,cAAW,UAAO,aAAU,GAAG,KAAyB;AAC5G,QACI,kBAAC,OAAD;EACI,WAAW,EAAG,QAAQ,WAAW,KAAW,EAAU;EACtD,OAAO;GACH,GAAI,IAAe,EAAC,yBAAyB,GAAa,GAAG,EAAE;GAC/D,GAAG;GACN;EACD,GAAI;EAEH;EACC,CAAA;;;;ACPd,SAAS,EAAoB,GAAoE;AAS7F,QARK,EAAe,EAAM,GAItB,EAAM,SAAS,IACR,KAGJ,EAAM,SAAS,KAAU,EAAM,MAAqB,SAAS,QAPzD;;AAUf,SAAS,EAAmB,GAA4B;AACpD,QAAO;EACH,MAAM,EAAM,QAAQ,EAAM,MAAM,EAAM,MAAM,EAAM,MAAM,EAAM;EAC9D,IAAI,EAAM,MAAM,EAAM,MAAM,EAAM,MAAM,EAAM;EAC9C,IAAI,EAAM,MAAM,EAAM,MAAM,EAAM;EAClC,IAAI,EAAM,MAAM,EAAM;EACtB,IAAI,EAAM;EACb;;AAGL,SAAS,EAA2B,GAAmB,GAAgD;AACnG,KAAI,KAAS,EACT,QAAO,EAAE;AAGb,KAAI,KAAa,EACb,QAAO,MAAM,KAAK,EAAC,QAAQ,GAAM,QAAQ,KAAA,EAAU;CAGvD,IAAM,IAAO,KAAK,MAAM,IAAY,EAAM,EACpC,IAAQ,IAAY;AAE1B,QAAO,MAAM,KAAK,EAAC,QAAQ,GAAM,GAAG,GAAG,MAAU;EAC7C,IAAM,IAAQ,IAAQ,MAAQ;AAC9B,SAAO,KAAS,IAAK,IAAyB,KAAA;GAChD;;AAGN,SAAS,EAAiB,GAAyC;CAC/D,IAAM,IAAgC;EAAC;EAAQ;EAAM;EAAM;EAAM;EAAK,EAChE,IAAa,EAAY,KAAK,MAAU,EAAmB,EAAM,CAAC,EAClE,IAAW,EAAW,KAAK,OAAW,EAAC,GAAG,GAAM,EAAE;AAExD,MAAK,IAAM,KAAc,GAAa;EAClC,IAAM,IAAwB,EAAE,EAC5B,IAAc;AAElB,IAAW,SAAS,GAAO,MAAU;GACjC,IAAM,IAAQ,EAAM;AAEpB,OAAI,GAAO;AACP,SAAe;AACf;;AAGJ,KAAY,KAAK,EAAM;IACzB;EAEF,IAAM,IAAc,EAA2B,KAAK,IAAI,KAAK,GAAa,EAAE,EAAE,EAAY,OAAO;AAEjG,IAAY,SAAS,GAAa,MAAc;AAC5C,KAAS,GAAa,KAAc,EAAY;IAClD;;AAGN,QAAO;;AAIX,SAAgB,EAAM,EAClB,UAAO,OACP,SACA,OACA,OACA,OACA,OACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACQ;CACX,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC,EAC9C,IAAW,KAAQ,KAAM;AAE/B,KAAI,MAAS,MACT,QACI,kBAAC,OAAD;EACI,WAAW,EACP,QACA,OACA,IAAW,QAAQ,MAAa,aAChC,KAAM,MAAM,KACZ,KAAM,MAAM,KACZ,KAAM,MAAM,KACZ,KAAM,MAAM,KACZ,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI;EAEH;EACC,CAAA;CAId,IAAM,IAAa,EAAS,QAAQ,EAAS,EACvC,IAAgB,EAAW,SAAS,GAAO,MAAW,EAAoB,EAAM,GAAG,CAAC;EAAC;EAAO;EAAM,CAAC,GAAG,EAAE,CAAE,EAC1G,IAAc,KAAK,IAAI,KAAK,IAAI,EAAc,UAAU,EAAW,QAAQ,EAAE,EAAE,GAAG,EAClF,IAAmB,EAAc,MAAM,EAAC,eAAW;EACrD,IAAM,IAAI,EAAM;AAChB,SAAO,GAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;GACrD,EACI,IAAgB,IAChB,EAAiB,EAAc,KAAK,EAAC,eAAW,EAAM,MAA6B,CAAC,GACpF,MACA,IACF,KAAoB,IACd,EAAW,KAAK,GAAO,MAAe;EAClC,IAAM,IAAc,EAAc,WAAW,MAAU,EAAM,UAAU,EAAW;AAElF,MAAI,MAAgB,MAAM,CAAC,EAAoB,EAAM,CACjD,QAAO;EAGX,IAAM,IAAQ,EAAc;AAE5B,SAAO,EAAa,GAAO;GACvB,MAAM,EAAM;GACZ,IAAI,EAAM;GACV,IAAI,EAAM;GACV,IAAI,EAAM;GACV,IAAI,EAAM;GACb,CAAC;GACJ,GACF;AAEV,QACI,kBAAC,OAAD;EACI,WAAW,EACP,QACA,OACA,IAAmB,YAAY,aAAa,KAC5C,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,WAAW,KAAa;GAC3B,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI;YAEH;EACC,CAAA;;AAKd,SAAgB,EAAU,EAAC,SAAM,OAAI,OAAI,OAAI,OAAI,GAAG,KAAuB;AACvE,QAAO,kBAAC,GAAD;EAAO,MAAK;EAAY;EAAU;EAAQ;EAAQ;EAAQ;EAAI,GAAI;EAAQ,CAAA;;;;ACpNrF,SAAgB,GAAS,EAAC,iBAAc,cAAc,aAAU,SAAS,cAAW,UAAO,GAAG,KAAsB;AAChH,QACI,kBAAC,OAAD;EACI,MAAK;EACL,oBAAkB;EAClB,WAAW,EAAG,WAAW,GAAa,GAAS,EAAU;EAClD;EACP,GAAI;EACN,CAAA;;;;ACKV,IAAM,IAAc,qBAUd,IAAa,EAAmC;CAClD,MAAM;CACN,QAAQ;CACR,YAAY;CACZ,WAAW;CACX,kBAAkB;CACrB,CAAC;AAGF,SAAS,IAAa;AAClB,QAAO,EAAW,EAAW;;AAIjC,SAAS,GAAY,GAA6B;CAC9C,IAAM,CAAC,GAAQ,KAAa,QAAgB,OAAO,SAAW,MAAc,OAAO,aAAa,IAAa,GAAO;AAWpH,QATA,QAAgB;EACZ,IAAM,IAAK,OAAO,WAAW,eAAe,IAAa,EAAE,KAAK,EAC1D,KAAW,MAA2B,EAAU,EAAE,QAAQ;AAIhE,SAFA,EAAU,EAAG,QAAQ,EACrB,EAAG,iBAAiB,UAAU,EAAQ,QACzB,EAAG,oBAAoB,UAAU,EAAQ;IACvD,CAAC,EAAW,CAAC,EAET;;AAIX,SAAgB,EAAS,EACrB,MAAM,IAAW,QACjB,iBAAc,YACd,iBACA,aAAU,IACV,UAAO,QACP,UAAO,UACP,cAAW,IACX,sBAAmB,KACnB,cACA,UACA,eACc;CACd,IAAM,IAAS,GAAY,EAAiB,EACtC,CAAC,GAAY,KAAiB,EAAS,GAAM,EAE7C,CAAC,GAAc,KAAmB,QAA6B;AACjE,MAAI,EACA,KAAI;GACA,IAAM,IAAI,aAAa,QAAQ,EAAY;AAC3C,OAAI,MAAM,cAAc,MAAM,YAAa,QAAO;UAC9C;AAKZ,SAAO;GACT,EAEI,IACF,MAAa,SAAS,IAAe,MAAa,cAAc,cAAc,YAG5E,IAAa,QAAkB;EACjC,IAAM,IAAqB,MAAiB,aAAa,cAAc;AAKvE,MAHA,EAAgB,EAAK,EACrB,IAAe,EAAK,EAEhB,EACA,KAAI;AACA,gBAAa,QAAQ,GAAa,EAAK;UACnC;IAIb;EAAC;EAAc;EAAc;EAAQ,CAAC,EAEnC,IAAc,QAAkB,EAAc,GAAM,EAAE,EAAE,CAAC;AAG/D,SAAgB;AACZ,MAAI,CAAC,EAAY;EAEjB,IAAM,KAAW,MAAqB;AAClC,GAAI,EAAE,QAAQ,YAAU,EAAc,GAAM;;AAIhD,SADA,SAAS,iBAAiB,WAAW,EAAQ,QAChC,SAAS,oBAAoB,WAAW,EAAQ;IAC9D,CAAC,EAAW,CAAC;CAEhB,IAAM,IAAY,CAAC,KAAU,MAAa,QAEpC,IAAM,SACD;EAAC,MAAM;EAAc;EAAQ;EAAY;EAAW;EAAW,GACtE;EAAC;EAAc;EAAQ;EAAY;EAAW;EAAW,CAC5D,EAIK,IAAa,EACf,WACA,GACA,GALgB,CAAC,KAAU,MAAiB,eAM7B,aACf,KAAY,YACZ,KAAU,UACV,KAAU,KAAc,eACxB,EACH;AAED,QACI,kBAAC,EAAW,UAAZ;EAAqB,OAAO;YAA5B;GACK,KAAU,KAAc,kBAAC,OAAD;IAAK,WAAU;IAAmB,SAAS;IAAe,CAAA;GAEnF,kBAAC,SAAD;IAAO,WAAW;IAAmB;IAChC;IACG,CAAA;GAEP,KAAU,CAAC,KACR,kBAAC,UAAD;IACI,WAAW,EAAG,qBAAqB,EAAK;IACxC,eAAe,EAAc,GAAK;IAClC,cAAW;cAEX,kBAAC,QAAD;KAAM,WAAU;KAAyB,eAAY;eACjD,kBAAC,GAAD,EAAa,CAAA;KACV,CAAA;IACF,CAAA;GAEK;;;AAK9B,SAAgB,GAAe,EAAC,cAAW,IAAO,cAAW,eAAgC;CACzF,IAAM,EAAC,SAAM,WAAQ,cAAW,kBAAc,GAAY,EACpD,IAAc,CAAC,KAAU,MAAS;AAExC,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,kBAAkB,KAAY,YAAY,EAAU;YAAvE,CACI,kBAAC,OAAD;GAAK,WAAU;GAA0B;GAAe,CAAA,EACvD,KACG,kBAAC,GAAD;GACI,SAAQ;GACR,OAAM;GACN,UAAA;GACA,MAAK;GACL,SAAS;GACT,cAAY,IAAc,mBAAmB;GAC7C,WAAU;aAEV,kBAAC,QAAD;IAAM,WAAW,EAAG,mBAAmB,KAAe,UAAU;cAC5D,kBAAC,GAAD,EAAqB,CAAA;IAClB,CAAA;GACD,CAAA,CAEZ;;;AAKd,SAAgB,GAAa,EAAC,cAAW,eAA8B;AACnE,QAAO,kBAAC,OAAD;EAAK,WAAW,EAAG,gBAAgB,EAAU;EAAG;EAAe,CAAA;;AAI1E,SAAgB,GAAY,EAAC,cAAW,eAA6B;AACjE,QAAO,kBAAC,OAAD;EAAK,WAAW,EAAG,eAAe,EAAU;EAAG;EAAe,CAAA;;AAIzE,SAAgB,GAAa,EACzB,SACA,UACA,SACA,OACA,YACA,YAAS,IACT,cAAW,IACX,UACA,UACA,cACA,gBACkB;CAClB,IAAM,EAAC,SAAM,cAAU,GAAY,EAC7B,IAAc,CAAC,KAAU,MAAS,aAElC,IAAM,MAAc,KAAQ,IAAK,MAAM,WACvC,IAAY,IAAa,IAAK,EAAC,OAAG,GAAG,IAAO,EAAC,SAAK,GAAG,EAAE,GAAI,IAAO,EAAC,SAAK,GAAG,IAAK,EAAC,MAAM,GAAG,GAAG,EAAE;AAGrG,QACI,kBAAC,GAAD;EACI,WAJI,EAAG,gBAAgB,KAAU,UAAU,KAAY,YAAY,GAAO,EAAU;EAKpF,SAAS,IAAW,KAAA,IAAY;EAChC,iBAAe,KAAY,KAAA;EAC3B,OAAO,IAAc,IAAQ,KAAA;EAC7B,GAAI;YALR;GAOK,KAAQ,kBAAC,QAAD;IAAM,WAAU;cAAqB;IAAY,CAAA;GACzD,CAAC,KACE,kBAAC,GAAD;IAAU,SAAS;IAAO,WAAU;IAAM,WAAU;cAChD,kBAAC,QAAD;KAAM,WAAU;eAAsB;KAAa,CAAA;IAC5C,CAAA;GAEd,CAAC,KAAe,KAAS,kBAAC,QAAD;IAAM,WAAU;cAAsB;IAAa,CAAA;GAC3E;;;AAKd,SAAgB,GAAc,EAC1B,UACA,SACA,YAAS,IACT,iBAAc,IACd,iBAAc,IACd,aACA,gBACmB;CACnB,IAAM,IAAa,GAAY,EACzB,EAAC,SAAM,cAAU,GACjB,IAAc,CAAC,KAAU,MAAS,aAClC,CAAC,GAAM,KAAW,EAAS,EAAY,EAEvC,IAAc,SAAoC;EAAC,GAAG;EAAY,MAAM;EAAW,GAAG,CAAC,EAAW,CAAC,EAGnG,UAAe;AACjB,EAAI,KAAa,GAAS,MAAM,CAAC,EAAE;;AAGvC,KAAI,GAAa;EACb,IAAM,IACF,kBAAC,QAAD;GAAM,WAAW,EAAG,gCAAgC,KAAU,SAAS;GAAE,OAAO;aAC3E;GACE,CAAA;AAGX,SACI,kBAAC,OAAD;GAAK,WAAW,EAAG,iBAAiB,EAAU;aAC1C,kBAAC,GAAD;IAAwB;IAAS,WAAU;IAAc,eAAA;IAAc,QAAO;cAC1E,kBAAC,EAAW,UAAZ;KAAqB,OAAO;KAAc;KAA+B,CAAA;IAC7D,CAAA;GACd,CAAA;;AAId,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,iBAAiB,EAAU;YAA9C,CACI,kBAAC,UAAD;GAAQ,WAAW,EAAG,wBAAwB,KAAU,SAAS;GAAE,SAAS;GAAQ,iBAAe;aAAnG;IACK,KAAQ,kBAAC,QAAD;KAAM,WAAU;eAAsB;KAAY,CAAA;IAC3D,kBAAC,QAAD;KAAM,WAAU;eAAuB;KAAa,CAAA;IACnD,KACG,kBAAC,QAAD;KAAM,WAAW,EAAG,uBAAuB,KAAQ,OAAO;eACtD,kBAAC,GAAD,EAAqB,CAAA;KAClB,CAAA;IAEN;MACR,KAAQ,kBAAC,OAAD;GAAK,WAAU;GAAuB;GAAe,CAAA,CAC5D;;;AAKd,SAAgB,GAAe,EAAC,cAAW,IAAO,cAAW,eAAgC;AACzF,QAAO,kBAAC,OAAD;EAAK,WAAW,EAAG,kBAAkB,KAAY,YAAY,EAAU;EAAG;EAAe,CAAA;;AAIpG,SAAgB,GAAgB,EAAC,cAAW,aAAU,QAA6B;AAC/E,QAAO,kBAAC,MAAD,EAAI,WAAW,EAAG,mBAAmB,GAAS,EAAU,EAAI,CAAA;;;;ACvSvE,SAAgB,GAAY,EAAC,UAAO,eAAY,KAAK,aAAU,cAAW,GAAG,KAAyB;CAElG,IAAM,IAAU,QAAc;AAC1B,MAAI,CAAC,KAAY,KAAY,EAAM,OAAQ,QAAO;AAClD,MAAI,IAAW,EAAG,QAAO,CAAC,EAAM,EAAM,SAAS,GAAG;EAClD,IAAM,IAAO,EAAM,MAAM,GAAG,EAAE,EACxB,IAAO,EAAM,MAAM,EAAE,IAAW,GAAG;AACzC,SAAO;GAAC,GAAG;GAAM;GAAM,GAAG;GAAK;IAChC,CAAC,GAAO,EAAS,CAAC;AAErB,QACI,kBAAC,OAAD;EAAK,cAAW;EAAa,WAAW,EAAG,cAAc,EAAU;EAAE,GAAI;YACrE,kBAAC,MAAD;GAAI,WAAU;aACT,EAAQ,KAAK,GAAM,MAAM;AACtB,QAAI,MAAS,KACT,QACI,kBAAC,MAAD;KAAmB,WAAU;eAA7B,CACI,kBAAC,QAAD;MAAM,WAAU;gBAAO;MAAiB,CAAA,EACxC,kBAAC,QAAD,EAAA,UAAM,KAAc,CAAA,CACnB;OAHG,WAGH;IAIb,IAAM,IAAS,MAAM,EAAQ,SAAS;AAEtC,WACI,kBAAC,MAAD;KAAY,WAAW,EAAG,SAAS,KAAU,SAAS;eAAtD,CACK,IAAI,KAAK,kBAAC,QAAD;MAAM,WAAU;gBAAO;MAAiB,CAAA,EACjD,EAAK,QAAQ,CAAC,IACX,kBAAC,KAAD;MAAG,MAAM,EAAK;MAAM,WAAU;MAAO,SAAS,EAAK;gBAC9C,EAAK;MACN,CAAA,GACJ,EAAK,WAAW,CAAC,IACjB,kBAAC,UAAD;MAAQ,MAAK;MAAS,WAAU;MAAW,SAAS,EAAK;gBACpD,EAAK;MACD,CAAA,GAET,kBAAC,QAAD;MAAM,WAAU;MAAU,gBAAc,IAAS,SAAS,KAAA;gBACrD,EAAK;MACH,CAAA,CAEV;OAfI,EAeJ;KAEX;GACD,CAAA;EACH,CAAA;;;;AC5Cd,IAAa,KAAY,EAA2C,SAChE,EAAC,cAAW,aAAU,GAAG,KACzB,GACF;CACE,IAAM,IAAqC,EAAE,EACvC,IAAmC,EAAE;AAU3C,QARA,EAAS,QAAQ,IAAW,MAAU;AAClC,EAAI,EAAe,EAAM,IAAI,EAAM,SAAS,IACxC,EAAgB,KAAK,EAAM,GAE3B,EAAc,KAAK,EAAM;GAE/B,EAGE,kBAAC,OAAD;EAAU;EAAK,WAAW,EAAG,aAAa,EAAU;EAAE,GAAI;YAA1D,CACK,GACD,kBAAC,OAAD;GAAK,WAAU;aAAY;GAAoB,CAAA,CAC7C;;EAEZ,EAEW,KAAQ,EAAuC,SAAe,EAAC,cAAW,aAAU,GAAG,KAAO,GAAK;AAC5G,QACI,kBAAC,OAAD;EAAU;EAAK,WAAW,EAAG,YAAY,EAAU;EAAE,GAAI;EACpD;EACC,CAAA;EAEZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./MChevronRightIcon-BC08M6g8.cjs`),t=require(`./MChevronDownIcon-DCMmxkRt.cjs`),n=require(`./MMenuIcon-Brpitjq1.cjs`),r=require(`./cn-SOcVdnX6.cjs`),i=require(`./useInteractionEffect-BLehDk91.cjs`),a=require(`./useReveal-CdIoh0Rk.cjs`),o=require(`./layoutProps-CZ-XhpIX.cjs`),s=require(`./MButton-C_WTyNvw.cjs`),c=require(`./MLink-CVN-Vll4.cjs`),l=require(`./MTooltip-DzwZ637q.cjs`),u=require(`./MDropdownMenu-BLBdToIz.cjs`);let d=require(`react`),f=require(`react/jsx-runtime`);function p({size:e=`content`,padded:t=!0,spacing:n,padding:i,fsize:a,mt:s,mb:c,ml:l,mr:u,mx:d,my:p,pt:m,pb:h,pl:g,pr:_,px:v,py:y,fullWidth:b,className:x,style:S,children:C,...w}){let T=o.n({fsize:a});return(0,f.jsx)(`div`,{className:r.t(`container`,e,t&&`padded`,...o.t({spacing:n,padding:i,fsize:a,mt:s,mb:c,ml:l,mr:u,mx:d,my:p,pt:m,pb:h,pl:g,pr:_,px:v,py:y,fullWidth:b}),x),style:{...T,...S},...w,children:C})}function m({container:e=`wide`,padded:t=!0,bordered:n=!0,sticky:i=!1,tone:a=`surface`,layout:o=`split`,className:s,children:c,...l}){return(0,f.jsx)(`header`,{className:r.t(`header`,a,n&&`bordered`,i&&`sticky`,s),...l,children:(0,f.jsx)(p,{size:e,padded:t,className:r.t(`inner`,`layout-${o}`),children:c})})}function h({container:e=`wide`,padded:t=!0,bordered:n=!0,tone:i=`surface`,spacing:a,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C,className:w,style:T,children:E,...D}){let O=o.n({fsize:c});return(0,f.jsx)(`footer`,{className:r.t(`footer`,i,n&&`bordered`,...o.t({spacing:a,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C}),w),style:{...O,...T},...D,children:(0,f.jsx)(p,{size:e,padded:t,className:`inner`,fullWidth:!0,children:E})})}function g({container:e=`content`,padded:t=!0,bordered:n=!0,sticky:i=!1,tone:a=`surface`,justify:o=`between`,wrap:s=!1,className:c,children:l,...u}){return(0,f.jsx)(`nav`,{className:r.t(`navbar`,a,n&&`bordered`,i&&`sticky`,c),...u,children:(0,f.jsx)(p,{size:e,padded:t,className:`container`,children:(0,f.jsx)(`div`,{className:r.t(`inner`,o,s&&`wrap`),children:l})})})}function _(e){return e.key??e.to??e.href??String(e.label)}function v(e){return e.active?!0:(e.children??[]).some(v)}function y(e,n=!1,i=!1){return(0,f.jsxs)(f.Fragment,{children:[e.icon?(0,f.jsx)(`span`,{className:`topbar-icon`,children:e.icon}):null,(0,f.jsx)(`span`,{children:e.label}),e.badge?(0,f.jsx)(`span`,{className:`topbar-badge`,children:e.badge}):null,n?(0,f.jsx)(`span`,{className:r.t(`topbar-chevron`,i&&`open`),"aria-hidden":`true`,children:(0,f.jsx)(t.t,{size:`sm`})}):null]})}function b(e){return e.map(e=>e.children?.length?(0,f.jsx)(u.n,{label:String(e.label),children:b(e.children)},_(e)):(0,f.jsx)(u.r,{icon:e.icon,label:e.label,href:e.href,to:e.to,onClick:e.onClick,color:e.color,disabled:e.disabled,active:e.active,component:e.component,className:e.className},_(e)))}function x({items:t,container:n=`full`,padded:i=!0,bordered:a=!0,sticky:o=!1,tone:l=`surface`,justify:m=`left`,size:h=`md`,openOn:g=`hover`,dropdownPlacement:x=`bottom-start`,className:S,style:C,...w}){let[T,E]=(0,d.useState)(!1),[D,O]=(0,d.useState)({}),[k,A]=(0,d.useState)(!1),[j,M]=(0,d.useState)(!1),[N,P]=(0,d.useState)(!1),F=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=window.matchMedia(`(pointer: coarse)`),t=()=>E(e.matches);return t(),typeof e.addEventListener==`function`?(e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)):(e.addListener(t),()=>e.removeListener(t))},[]),(0,d.useEffect)(()=>{let e=F.current;if(!e)return;let t=()=>{A(e.scrollWidth>e.clientWidth+1),M(e.scrollLeft>4),P(e.scrollLeft+e.clientWidth<e.scrollWidth-4)};t(),e.addEventListener(`scroll`,t,{passive:!0});let n=new ResizeObserver(t);return n.observe(e),Array.from(e.children).forEach(e=>n.observe(e)),()=>{e.removeEventListener(`scroll`,t),n.disconnect()}},[t,m,h,l,a,i,n]);let I=(0,d.useMemo)(()=>T?`click`:g,[T,g]),L=e=>{let t=F.current;if(!t)return;let n=Math.max(180,Math.floor(t.clientWidth*.45));t.scrollBy({left:e===`left`?-n:n,behavior:`smooth`})};return(0,f.jsx)(`nav`,{className:r.t(`topbar`,l,h,a&&`bordered`,o&&`sticky`,S),style:C,...w,children:(0,f.jsx)(p,{size:n,padded:i,className:`topbar-container`,children:(0,f.jsxs)(`div`,{className:r.t(`topbar-scroll-shell`,k&&`overflowing`),children:[k&&(0,f.jsx)(s.t,{variant:`ghost`,color:`neutral`,iconOnly:!0,shape:`circle`,className:r.t(`topbar-scroll-button`,`left`,!j&&`hidden`),onClick:()=>L(`left`),"aria-label":`Scroll topbar left`,children:(0,f.jsx)(e.n,{})}),(0,f.jsx)(`div`,{ref:F,className:`topbar-viewport`,children:(0,f.jsx)(`div`,{className:r.t(`topbar-list`,`justify-${m}`,k&&`overflowing`),children:t.map(e=>{let t=_(e),n=v(e),i=!!D[t];return e.children?.length?e.disabled?(0,f.jsx)(`div`,{className:r.t(`topbar-trigger`,e.color,`disabled`,e.className),"aria-disabled":`true`,children:y(e,!0)},t):(0,f.jsx)(u.i,{trigger:(0,f.jsx)(`div`,{className:r.t(`topbar-trigger`,e.color,n&&`active`,i&&`open`,e.disabled&&`disabled`,e.className),children:y(e,!0,i)}),openOn:e.openOn??I,onOpenChange:e=>O(n=>({...n,[t]:e})),placement:x,popoverClassName:`topbar-dropdown-popover`,children:b(e.children)},t):(0,f.jsx)(c.t,{component:e.component,href:e.href,to:e.to,onClick:e.onClick,current:e.active,disabled:e.disabled,underline:`none`,tone:`inherit`,className:r.t(`topbar-link`,e.color,e.className,e.active&&`active`),children:y(e)},t)})})}),k&&(0,f.jsx)(s.t,{variant:`ghost`,color:`neutral`,iconOnly:!0,shape:`circle`,className:r.t(`topbar-scroll-button`,`right`,!N&&`hidden`),onClick:()=>L(`right`),"aria-label":`Scroll topbar right`,children:(0,f.jsx)(e.t,{})})]})})})}function S({items:e,orientation:t=`horizontal`,wrap:n=!1,className:i,children:a,...o}){return(0,f.jsx)(`div`,{className:r.t(`navs`,t,n&&`wrap`,i),...o,children:e?e.map(e=>(0,f.jsx)(c.t,{component:e.component,href:e.href,to:e.to,target:e.target,rel:e.rel,title:e.title,current:e.current,disabled:e.disabled,className:r.t(`link`,e.className),children:e.label},e.key??e.href??e.title?.toString()??e.label?.toString())):a})}function C({item:e,isActive:t,tabId:n,panelId:a,clickEffect:o,rippleColor:s,onSelect:c}){let{effectClassName:l,effectLayer:u,handlePointerDown:d,triggerEffect:p}=i.t({effect:o,disabled:e.disabled,centered:!0,color:s});return(0,f.jsxs)(`button`,{type:`button`,id:n,role:`tab`,"aria-selected":t,"aria-controls":a,tabIndex:t?0:-1,disabled:e.disabled,className:r.t(`tabs-trigger`,t&&`active`,e.disabled&&`disabled`,l),onPointerDown:d,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&p(e.currentTarget)},onClick:()=>c(e.value),children:[u,e.icon&&(0,f.jsx)(`span`,{className:`tabs-icon`,children:e.icon}),(0,f.jsx)(`span`,{className:`tabs-label`,children:e.label})]})}function w({items:e,value:t,defaultValue:n,onValueChange:i,variant:a=`underline`,orientation:o=`horizontal`,size:s=`md`,fullWidth:c=!1,showPanels:l=!0,panelClassName:u,clickEffect:p=`ripple`,rippleColor:m,className:h,...g}){let[_,v]=(0,d.useState)((0,d.useMemo)(()=>n??e.find(e=>!e.disabled)?.value??``,[n,e])),y=t??_,b=e.find(e=>e.value===y)??e[0],x=(0,d.useId)();function S(e){t===void 0&&v(e),i?.(e)}function w(t){let n=e.filter(e=>!e.disabled),r=n.findIndex(e=>e.value===b?.value);if(r===-1)return;let i=o===`vertical`?[`ArrowDown`]:[`ArrowRight`,`ArrowDown`],a=o===`vertical`?[`ArrowUp`]:[`ArrowLeft`,`ArrowUp`];if(i.includes(t.key)){t.preventDefault();let e=n[(r+1)%n.length];S(e.value)}if(a.includes(t.key)){t.preventDefault();let e=n[(r-1+n.length)%n.length];S(e.value)}}return(0,f.jsxs)(`div`,{className:r.t(`tabs`,a,o,s,c&&`full-width`,h),...g,children:[(0,f.jsx)(`div`,{className:`tabs-list`,role:`tablist`,"aria-orientation":o,onKeyDown:w,children:e.map(e=>(0,f.jsx)(C,{item:e,isActive:e.value===b?.value,tabId:`${x}-${e.value}-tab`,panelId:`${x}-${e.value}-panel`,clickEffect:p,rippleColor:m,onSelect:S},e.value))}),l&&b?.content!==void 0&&(0,f.jsx)(`div`,{id:`${x}-${b.value}-panel`,role:`tabpanel`,"aria-labelledby":`${x}-${b.value}-tab`,className:r.t(`tabs-panel`,u),children:b.content},b.value)]})}function T({as:e=`section`,spacing:t=`lg`,tone:n=`default`,reveal:i,className:o,style:s,children:c,...l}){let u=e,d=a.t(i),p=i!==void 0&&i!==!1;return(0,f.jsx)(u,{ref:p?d:void 0,className:r.t(`section`,t,n,p&&`reveal`,o),style:s,...l,children:c})}function E({columns:e=2,minItemWidth:t,className:n,style:i,children:a,...o}){return(0,f.jsx)(`div`,{className:r.t(`grid`,`columns-${e}`,n),style:{...t?{"--grid-min-item-width":t}:{},...i},...o,children:a})}function D(e){return(0,d.isValidElement)(e)?e.type===M?!0:e.type===j&&e.props.type===`col`:!1}function O(e){return{span:e.span??e.xl??e.lg??e.md??e.sm,xl:e.xl??e.lg??e.md??e.sm,lg:e.lg??e.md??e.sm,md:e.md??e.sm,sm:e.sm}}function k(e,t){if(t<=0)return[];if(e<=0)return Array.from({length:t},()=>void 0);let n=Math.floor(e/t),r=e%t;return Array.from({length:t},(e,t)=>{let i=n+ +(t<r);return i>=1?i:void 0})}function A(e){let t=[`span`,`xl`,`lg`,`md`,`sm`],n=e.map(e=>O(e)),r=n.map(e=>({...e}));for(let e of t){let t=[],i=0;n.forEach((n,r)=>{let a=n[e];if(a){i+=a;return}t.push(r)});let a=k(Math.max(12-i,0),t.length);t.forEach((t,n)=>{r[t][e]=a[n]})}return r}function j({type:e=`row`,span:t,sm:n,md:i,lg:a,xl:s,spacing:c,padding:l,fsize:u,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:S,px:C,py:w,fullWidth:T,className:E,style:O,children:k,...j}){let M=o.n({fsize:u}),N=t??s??a;if(e===`col`)return(0,f.jsx)(`div`,{className:r.t(`grid`,`col`,N?`span-${N}`:`span-auto`,s&&`xl-${s}`,a&&`lg-${a}`,i&&`md-${i}`,n&&`sm-${n}`,...o.t({spacing:c,padding:l,fsize:u,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:S,px:C,py:w,fullWidth:T}),E),style:{...M,...O},...j,children:k});let P=d.Children.toArray(k),F=P.flatMap((e,t)=>D(e)?[{child:e,index:t}]:[]),I=Math.min(Math.max(F.length||P.length,1),12),L=F.some(({child:e})=>{let t=e.props;return!!(t.span||t.xl||t.lg||t.md||t.sm)}),R=L?A(F.map(({child:e})=>e.props)):null,z=L&&R?P.map((e,t)=>{let n=F.findIndex(e=>e.index===t);if(n===-1||!D(e))return e;let r=R[n];return(0,d.cloneElement)(e,{span:r.span,xl:r.xl,lg:r.lg,md:r.md,sm:r.sm})}):P;return(0,f.jsx)(`div`,{className:r.t(`grid`,`row`,L?`tracked`:`auto-cols-${I}`,...o.t({spacing:c,padding:l,fsize:u,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:S,px:C,py:w,fullWidth:T??!0}),E),style:{...M,...O},...j,children:z})}function M({span:e,sm:t,md:n,lg:r,xl:i,...a}){return(0,f.jsx)(j,{type:`col`,span:e,sm:t,md:n,lg:r,xl:i,...a})}function N({orientation:e=`horizontal`,variant:t=`solid`,className:n,style:i,...a}){return(0,f.jsx)(`div`,{role:`separator`,"aria-orientation":e,className:r.t(`divider`,e,t,n),style:i,...a})}var P=`mineralui-sidebar`,F=(0,d.createContext)({mode:`expanded`,mobile:!1,mobileOpen:!1,canToggle:!1,toggleMode:()=>{}});function I(){return(0,d.useContext)(F)}function L(e){let[t,n]=(0,d.useState)(()=>typeof window<`u`?window.innerWidth<e:!1);return(0,d.useEffect)(()=>{let t=window.matchMedia(`(max-width: ${e-1}px)`),r=e=>n(e.matches);return n(t.matches),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function R({mode:e=`auto`,defaultMode:t=`expanded`,onModeChange:i,persist:a=!1,side:o=`left`,tone:s=`subtle`,bordered:c=!0,mobileBreakpoint:l=768,className:u,style:p,children:m}){let h=L(l),[g,_]=(0,d.useState)(!1),[v,y]=(0,d.useState)(()=>{if(a)try{let e=localStorage.getItem(P);if(e===`expanded`||e===`collapsed`)return e}catch{}return t}),b=e===`auto`?v:e===`collapsed`?`collapsed`:`expanded`,x=(0,d.useCallback)(()=>{let e=b===`expanded`?`collapsed`:`expanded`;if(y(e),i?.(e),a)try{localStorage.setItem(P,e)}catch{}},[b,i,a]),S=(0,d.useCallback)(()=>_(!1),[]);(0,d.useEffect)(()=>{if(!g)return;let e=e=>{e.key===`Escape`&&_(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[g]);let C=!h&&e===`auto`,w=(0,d.useMemo)(()=>({mode:b,mobile:h,mobileOpen:g,canToggle:C,toggleMode:x}),[b,h,g,C,x]),T=r.t(`sidebar`,s,o,!h&&b===`collapsed`&&`collapsed`,c&&`bordered`,h&&`mobile`,h&&g&&`mobile-open`,u);return(0,f.jsxs)(F.Provider,{value:w,children:[h&&g&&(0,f.jsx)(`div`,{className:`sidebar-backdrop`,onClick:S}),(0,f.jsx)(`aside`,{className:T,style:p,children:m}),h&&!g&&(0,f.jsx)(`button`,{className:r.t(`sidebar-hamburger`,o),onClick:()=>_(!0),"aria-label":`Open menu`,children:(0,f.jsx)(`span`,{className:`sidebar-hamburger-icon`,"aria-hidden":`true`,children:(0,f.jsx)(n.t,{})})})]})}function z({bordered:t=!1,className:n,children:i}){let{mode:a,mobile:o,canToggle:c,toggleMode:l}=I(),u=!o&&a===`collapsed`;return(0,f.jsxs)(`div`,{className:r.t(`sidebar-header`,t&&`bordered`,n),children:[(0,f.jsx)(`div`,{className:`sidebar-header-content`,children:i}),c&&(0,f.jsx)(s.t,{variant:`outlined`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:l,"aria-label":u?`Expand sidebar`:`Collapse sidebar`,className:`sidebar-toggle`,children:(0,f.jsx)(`span`,{className:r.t(`sidebar-chevron`,u&&`flipped`),children:(0,f.jsx)(e.t,{})})})]})}function B({className:e,children:t}){return(0,f.jsx)(`div`,{className:r.t(`sidebar-body`,e),children:t})}function V({className:e,children:t}){return(0,f.jsx)(`nav`,{className:r.t(`sidebar-nav`,e),children:t})}function H({icon:e,label:t,href:n,to:i,onClick:a,active:o=!1,disabled:s=!1,badge:c,color:u,component:d,className:p}){let{mode:m,mobile:h}=I(),g=!h&&m===`collapsed`,_=d??(n||i?`a`:`button`),v=d?i?{to:i}:n?{href:n}:{}:n?{href:n}:i?{href:i}:{};return(0,f.jsxs)(_,{className:r.t(`sidebar-item`,o&&`active`,s&&`disabled`,u,p),onClick:s?void 0:a,"aria-disabled":s||void 0,title:g?t:void 0,...v,children:[e&&(0,f.jsx)(`span`,{className:`sidebar-item-icon`,children:e}),!g&&(0,f.jsx)(l.t,{content:t,placement:`top`,className:`sidebar-item-label-tooltip`,children:(0,f.jsx)(`span`,{className:`sidebar-item-label`,children:t})}),!g&&c&&(0,f.jsx)(`span`,{className:`sidebar-item-badge`,children:c})]})}function U({label:t,icon:n,active:i=!1,defaultOpen:a=!0,collapsible:o=!0,children:s,className:c}){let l=I(),{mode:p,mobile:m}=l,h=!m&&p===`collapsed`,[g,_]=(0,d.useState)(a),v=(0,d.useMemo)(()=>({...l,mode:`expanded`}),[l]),y=()=>{o&&_(e=>!e)};if(h){let e=(0,f.jsx)(`span`,{className:r.t(`sidebar-group-icon collapsed`,i&&`active`),title:t,children:n});return(0,f.jsx)(`div`,{className:r.t(`sidebar-group`,c),children:(0,f.jsx)(u.i,{trigger:e,placement:`right-start`,closeOnSelect:!0,openOn:`hover`,children:(0,f.jsx)(F.Provider,{value:v,children:s})})})}return(0,f.jsxs)(`div`,{className:r.t(`sidebar-group`,c),children:[(0,f.jsxs)(`button`,{className:r.t(`sidebar-group-header`,i&&`active`),onClick:y,"aria-expanded":g,children:[n&&(0,f.jsx)(`span`,{className:`sidebar-group-icon`,children:n}),(0,f.jsx)(`span`,{className:`sidebar-group-label`,children:t}),o&&(0,f.jsx)(`span`,{className:r.t(`sidebar-group-arrow`,g&&`open`),children:(0,f.jsx)(e.t,{})})]}),g&&(0,f.jsx)(`div`,{className:`sidebar-group-items`,children:s})]})}function W({bordered:e=!1,className:t,children:n}){return(0,f.jsx)(`div`,{className:r.t(`sidebar-footer`,e&&`bordered`,t),children:n})}function G({className:e,spacing:t=`md`}){return(0,f.jsx)(`hr`,{className:r.t(`sidebar-divider`,t,e)})}function K({items:e,separator:t=`/`,maxItems:n,className:i,...a}){let o=(0,d.useMemo)(()=>{if(!n||n>=e.length)return e;if(n<2)return[e[e.length-1]];let t=e.slice(0,1),r=e.slice(-(n-1));return[...t,null,...r]},[e,n]);return(0,f.jsx)(`nav`,{"aria-label":`breadcrumb`,className:r.t(`breadcrumb`,i),...a,children:(0,f.jsx)(`ol`,{className:`trail`,children:o.map((e,n)=>{if(e===null)return(0,f.jsxs)(`li`,{className:`crumb dots`,children:[(0,f.jsx)(`span`,{className:`sep`,children:t}),(0,f.jsx)(`span`,{children:`…`})]},`ellipsis`);let i=n===o.length-1;return(0,f.jsxs)(`li`,{className:r.t(`crumb`,i&&`active`),children:[n>0&&(0,f.jsx)(`span`,{className:`sep`,children:t}),e.href&&!i?(0,f.jsx)(`a`,{href:e.href,className:`link`,onClick:e.onClick,children:e.label}):e.onClick&&!i?(0,f.jsx)(`button`,{type:`button`,className:`link btn`,onClick:e.onClick,children:e.label}):(0,f.jsx)(`span`,{className:`current`,"aria-current":i?`page`:void 0,children:e.label})]},n)})})})}var q=(0,d.forwardRef)(function({className:e,children:t,...n},i){let a=[],o=[];return d.Children.forEach(t,e=>{(0,d.isValidElement)(e)&&e.type===R?a.push(e):o.push(e)}),(0,f.jsxs)(`div`,{ref:i,className:r.t(`app-shell`,e),...n,children:[a,(0,f.jsx)(`div`,{className:`app-main`,children:o})]})}),J=(0,d.forwardRef)(function({className:e,children:t,...n},i){return(0,f.jsx)(`div`,{ref:i,className:r.t(`app-body`,e),...n,children:t})});Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return x}});
|
|
2
|
-
//# sourceMappingURL=layout-
|
|
1
|
+
const e=require(`./MChevronRightIcon-BC08M6g8.cjs`),t=require(`./MChevronDownIcon-DCMmxkRt.cjs`),n=require(`./MMenuIcon-A_eXBpM8.cjs`),r=require(`./cn-SOcVdnX6.cjs`),i=require(`./useInteractionEffect-BLehDk91.cjs`),a=require(`./useReveal-CdIoh0Rk.cjs`),o=require(`./layoutProps-CZ-XhpIX.cjs`),s=require(`./MButton-C_WTyNvw.cjs`),c=require(`./MLink-B4JrRZ29.cjs`),l=require(`./MTooltip-CsJogGMW.cjs`),u=require(`./MDropdownMenu-Bd6MfUmF.cjs`);let d=require(`react`),f=require(`react/jsx-runtime`);function p({size:e=`content`,padded:t=!0,spacing:n,padding:i,fsize:a,mt:s,mb:c,ml:l,mr:u,mx:d,my:p,pt:m,pb:h,pl:g,pr:_,px:v,py:y,fullWidth:b,className:x,style:S,children:C,...w}){let T=o.n({fsize:a});return(0,f.jsx)(`div`,{className:r.t(`container`,e,t&&`padded`,...o.t({spacing:n,padding:i,fsize:a,mt:s,mb:c,ml:l,mr:u,mx:d,my:p,pt:m,pb:h,pl:g,pr:_,px:v,py:y,fullWidth:b}),x),style:{...T,...S},...w,children:C})}function m({container:e=`wide`,padded:t=!0,bordered:n=!0,sticky:i=!1,tone:a=`surface`,layout:o=`split`,className:s,children:c,...l}){return(0,f.jsx)(`header`,{className:r.t(`header`,a,n&&`bordered`,i&&`sticky`,s),...l,children:(0,f.jsx)(p,{size:e,padded:t,className:r.t(`inner`,`layout-${o}`),children:c})})}function h({container:e=`wide`,padded:t=!0,bordered:n=!0,tone:i=`surface`,spacing:a,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C,className:w,style:T,children:E,...D}){let O=o.n({fsize:c});return(0,f.jsx)(`footer`,{className:r.t(`footer`,i,n&&`bordered`,...o.t({spacing:a,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C}),w),style:{...O,...T},...D,children:(0,f.jsx)(p,{size:e,padded:t,className:`inner`,fullWidth:!0,children:E})})}function g({container:e=`content`,padded:t=!0,bordered:n=!0,sticky:i=!1,tone:a=`surface`,justify:o=`between`,wrap:s=!1,className:c,children:l,...u}){return(0,f.jsx)(`nav`,{className:r.t(`navbar`,a,n&&`bordered`,i&&`sticky`,c),...u,children:(0,f.jsx)(p,{size:e,padded:t,className:`container`,children:(0,f.jsx)(`div`,{className:r.t(`inner`,o,s&&`wrap`),children:l})})})}function _(e){return e.key??e.to??e.href??String(e.label)}function v(e){return e.active?!0:(e.children??[]).some(v)}function y(e,n=!1,i=!1){return(0,f.jsxs)(f.Fragment,{children:[e.icon?(0,f.jsx)(`span`,{className:`topbar-icon`,children:e.icon}):null,(0,f.jsx)(`span`,{children:e.label}),e.badge?(0,f.jsx)(`span`,{className:`topbar-badge`,children:e.badge}):null,n?(0,f.jsx)(`span`,{className:r.t(`topbar-chevron`,i&&`open`),"aria-hidden":`true`,children:(0,f.jsx)(t.t,{size:`sm`})}):null]})}function b(e){return e.map(e=>e.children?.length?(0,f.jsx)(u.n,{label:String(e.label),children:b(e.children)},_(e)):(0,f.jsx)(u.r,{icon:e.icon,label:e.label,href:e.href,to:e.to,onClick:e.onClick,color:e.color,disabled:e.disabled,active:e.active,component:e.component,className:e.className},_(e)))}function x({items:t,container:n=`full`,padded:i=!0,bordered:a=!0,sticky:o=!1,tone:l=`surface`,justify:m=`left`,size:h=`md`,openOn:g=`hover`,dropdownPlacement:x=`bottom-start`,className:S,style:C,...w}){let[T,E]=(0,d.useState)(!1),[D,O]=(0,d.useState)({}),[k,A]=(0,d.useState)(!1),[j,M]=(0,d.useState)(!1),[N,P]=(0,d.useState)(!1),F=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=window.matchMedia(`(pointer: coarse)`),t=()=>E(e.matches);return t(),typeof e.addEventListener==`function`?(e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)):(e.addListener(t),()=>e.removeListener(t))},[]),(0,d.useEffect)(()=>{let e=F.current;if(!e)return;let t=()=>{A(e.scrollWidth>e.clientWidth+1),M(e.scrollLeft>4),P(e.scrollLeft+e.clientWidth<e.scrollWidth-4)};t(),e.addEventListener(`scroll`,t,{passive:!0});let n=new ResizeObserver(t);return n.observe(e),Array.from(e.children).forEach(e=>n.observe(e)),()=>{e.removeEventListener(`scroll`,t),n.disconnect()}},[t,m,h,l,a,i,n]);let I=(0,d.useMemo)(()=>T?`click`:g,[T,g]),L=e=>{let t=F.current;if(!t)return;let n=Math.max(180,Math.floor(t.clientWidth*.45));t.scrollBy({left:e===`left`?-n:n,behavior:`smooth`})};return(0,f.jsx)(`nav`,{className:r.t(`topbar`,l,h,a&&`bordered`,o&&`sticky`,S),style:C,...w,children:(0,f.jsx)(p,{size:n,padded:i,className:`topbar-container`,children:(0,f.jsxs)(`div`,{className:r.t(`topbar-scroll-shell`,k&&`overflowing`),children:[k&&(0,f.jsx)(s.t,{variant:`ghost`,color:`neutral`,iconOnly:!0,shape:`circle`,className:r.t(`topbar-scroll-button`,`left`,!j&&`hidden`),onClick:()=>L(`left`),"aria-label":`Scroll topbar left`,children:(0,f.jsx)(e.n,{})}),(0,f.jsx)(`div`,{ref:F,className:`topbar-viewport`,children:(0,f.jsx)(`div`,{className:r.t(`topbar-list`,`justify-${m}`,k&&`overflowing`),children:t.map(e=>{let t=_(e),n=v(e),i=!!D[t];return e.children?.length?e.disabled?(0,f.jsx)(`div`,{className:r.t(`topbar-trigger`,e.color,`disabled`,e.className),"aria-disabled":`true`,children:y(e,!0)},t):(0,f.jsx)(u.i,{trigger:(0,f.jsx)(`div`,{className:r.t(`topbar-trigger`,e.color,n&&`active`,i&&`open`,e.disabled&&`disabled`,e.className),children:y(e,!0,i)}),openOn:e.openOn??I,onOpenChange:e=>O(n=>({...n,[t]:e})),placement:x,popoverClassName:`topbar-dropdown-popover`,children:b(e.children)},t):(0,f.jsx)(c.t,{component:e.component,href:e.href,to:e.to,onClick:e.onClick,current:e.active,disabled:e.disabled,underline:`none`,tone:`inherit`,className:r.t(`topbar-link`,e.color,e.className,e.active&&`active`),children:y(e)},t)})})}),k&&(0,f.jsx)(s.t,{variant:`ghost`,color:`neutral`,iconOnly:!0,shape:`circle`,className:r.t(`topbar-scroll-button`,`right`,!N&&`hidden`),onClick:()=>L(`right`),"aria-label":`Scroll topbar right`,children:(0,f.jsx)(e.t,{})})]})})})}function S({items:e,orientation:t=`horizontal`,wrap:n=!1,className:i,children:a,...o}){return(0,f.jsx)(`div`,{className:r.t(`navs`,t,n&&`wrap`,i),...o,children:e?e.map(e=>(0,f.jsx)(c.t,{component:e.component,href:e.href,to:e.to,target:e.target,rel:e.rel,title:e.title,current:e.current,disabled:e.disabled,className:r.t(`link`,e.className),children:e.label},e.key??e.href??e.title?.toString()??e.label?.toString())):a})}function C({item:e,isActive:t,tabId:n,panelId:a,clickEffect:o,rippleColor:s,onSelect:c}){let{effectClassName:l,effectLayer:u,handlePointerDown:d,triggerEffect:p}=i.t({effect:o,disabled:e.disabled,centered:!0,color:s});return(0,f.jsxs)(`button`,{type:`button`,id:n,role:`tab`,"aria-selected":t,"aria-controls":a,tabIndex:t?0:-1,disabled:e.disabled,className:r.t(`tabs-trigger`,t&&`active`,e.disabled&&`disabled`,l),onPointerDown:d,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&p(e.currentTarget)},onClick:()=>c(e.value),children:[u,e.icon&&(0,f.jsx)(`span`,{className:`tabs-icon`,children:e.icon}),(0,f.jsx)(`span`,{className:`tabs-label`,children:e.label})]})}function w({items:e,value:t,defaultValue:n,onValueChange:i,variant:a=`underline`,orientation:o=`horizontal`,size:s=`md`,fullWidth:c=!1,showPanels:l=!0,panelClassName:u,clickEffect:p=`ripple`,rippleColor:m,className:h,...g}){let[_,v]=(0,d.useState)((0,d.useMemo)(()=>n??e.find(e=>!e.disabled)?.value??``,[n,e])),y=t??_,b=e.find(e=>e.value===y)??e[0],x=(0,d.useId)();function S(e){t===void 0&&v(e),i?.(e)}function w(t){let n=e.filter(e=>!e.disabled),r=n.findIndex(e=>e.value===b?.value);if(r===-1)return;let i=o===`vertical`?[`ArrowDown`]:[`ArrowRight`,`ArrowDown`],a=o===`vertical`?[`ArrowUp`]:[`ArrowLeft`,`ArrowUp`];if(i.includes(t.key)){t.preventDefault();let e=n[(r+1)%n.length];S(e.value)}if(a.includes(t.key)){t.preventDefault();let e=n[(r-1+n.length)%n.length];S(e.value)}}return(0,f.jsxs)(`div`,{className:r.t(`tabs`,a,o,s,c&&`full-width`,h),...g,children:[(0,f.jsx)(`div`,{className:`tabs-list`,role:`tablist`,"aria-orientation":o,onKeyDown:w,children:e.map(e=>(0,f.jsx)(C,{item:e,isActive:e.value===b?.value,tabId:`${x}-${e.value}-tab`,panelId:`${x}-${e.value}-panel`,clickEffect:p,rippleColor:m,onSelect:S},e.value))}),l&&b?.content!==void 0&&(0,f.jsx)(`div`,{id:`${x}-${b.value}-panel`,role:`tabpanel`,"aria-labelledby":`${x}-${b.value}-tab`,className:r.t(`tabs-panel`,u),children:b.content},b.value)]})}function T({as:e=`section`,spacing:t=`lg`,tone:n=`default`,reveal:i,className:o,style:s,children:c,...l}){let u=e,d=a.t(i),p=i!==void 0&&i!==!1;return(0,f.jsx)(u,{ref:p?d:void 0,className:r.t(`section`,t,n,p&&`reveal`,o),style:s,...l,children:c})}function E({columns:e=2,minItemWidth:t,className:n,style:i,children:a,...o}){return(0,f.jsx)(`div`,{className:r.t(`grid`,`columns-${e}`,n),style:{...t?{"--grid-min-item-width":t}:{},...i},...o,children:a})}function D(e){return(0,d.isValidElement)(e)?e.type===M?!0:e.type===j&&e.props.type===`col`:!1}function O(e){return{span:e.span??e.xl??e.lg??e.md??e.sm,xl:e.xl??e.lg??e.md??e.sm,lg:e.lg??e.md??e.sm,md:e.md??e.sm,sm:e.sm}}function k(e,t){if(t<=0)return[];if(e<=0)return Array.from({length:t},()=>void 0);let n=Math.floor(e/t),r=e%t;return Array.from({length:t},(e,t)=>{let i=n+ +(t<r);return i>=1?i:void 0})}function A(e){let t=[`span`,`xl`,`lg`,`md`,`sm`],n=e.map(e=>O(e)),r=n.map(e=>({...e}));for(let e of t){let t=[],i=0;n.forEach((n,r)=>{let a=n[e];if(a){i+=a;return}t.push(r)});let a=k(Math.max(12-i,0),t.length);t.forEach((t,n)=>{r[t][e]=a[n]})}return r}function j({type:e=`row`,span:t,sm:n,md:i,lg:a,xl:s,spacing:c,padding:l,fsize:u,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:S,px:C,py:w,fullWidth:T,className:E,style:O,children:k,...j}){let M=o.n({fsize:u}),N=t??s??a;if(e===`col`)return(0,f.jsx)(`div`,{className:r.t(`grid`,`col`,N?`span-${N}`:`span-auto`,s&&`xl-${s}`,a&&`lg-${a}`,i&&`md-${i}`,n&&`sm-${n}`,...o.t({spacing:c,padding:l,fsize:u,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:S,px:C,py:w,fullWidth:T}),E),style:{...M,...O},...j,children:k});let P=d.Children.toArray(k),F=P.flatMap((e,t)=>D(e)?[{child:e,index:t}]:[]),I=Math.min(Math.max(F.length||P.length,1),12),L=F.some(({child:e})=>{let t=e.props;return!!(t.span||t.xl||t.lg||t.md||t.sm)}),R=L?A(F.map(({child:e})=>e.props)):null,z=L&&R?P.map((e,t)=>{let n=F.findIndex(e=>e.index===t);if(n===-1||!D(e))return e;let r=R[n];return(0,d.cloneElement)(e,{span:r.span,xl:r.xl,lg:r.lg,md:r.md,sm:r.sm})}):P;return(0,f.jsx)(`div`,{className:r.t(`grid`,`row`,L?`tracked`:`auto-cols-${I}`,...o.t({spacing:c,padding:l,fsize:u,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:S,px:C,py:w,fullWidth:T??!0}),E),style:{...M,...O},...j,children:z})}function M({span:e,sm:t,md:n,lg:r,xl:i,...a}){return(0,f.jsx)(j,{type:`col`,span:e,sm:t,md:n,lg:r,xl:i,...a})}function N({orientation:e=`horizontal`,variant:t=`solid`,className:n,style:i,...a}){return(0,f.jsx)(`div`,{role:`separator`,"aria-orientation":e,className:r.t(`divider`,e,t,n),style:i,...a})}var P=`mineralui-sidebar`,F=(0,d.createContext)({mode:`expanded`,mobile:!1,mobileOpen:!1,canToggle:!1,toggleMode:()=>{}});function I(){return(0,d.useContext)(F)}function L(e){let[t,n]=(0,d.useState)(()=>typeof window<`u`?window.innerWidth<e:!1);return(0,d.useEffect)(()=>{let t=window.matchMedia(`(max-width: ${e-1}px)`),r=e=>n(e.matches);return n(t.matches),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function R({mode:e=`auto`,defaultMode:t=`expanded`,onModeChange:i,persist:a=!1,side:o=`left`,tone:s=`subtle`,bordered:c=!0,mobileBreakpoint:l=768,className:u,style:p,children:m}){let h=L(l),[g,_]=(0,d.useState)(!1),[v,y]=(0,d.useState)(()=>{if(a)try{let e=localStorage.getItem(P);if(e===`expanded`||e===`collapsed`)return e}catch{}return t}),b=e===`auto`?v:e===`collapsed`?`collapsed`:`expanded`,x=(0,d.useCallback)(()=>{let e=b===`expanded`?`collapsed`:`expanded`;if(y(e),i?.(e),a)try{localStorage.setItem(P,e)}catch{}},[b,i,a]),S=(0,d.useCallback)(()=>_(!1),[]);(0,d.useEffect)(()=>{if(!g)return;let e=e=>{e.key===`Escape`&&_(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[g]);let C=!h&&e===`auto`,w=(0,d.useMemo)(()=>({mode:b,mobile:h,mobileOpen:g,canToggle:C,toggleMode:x}),[b,h,g,C,x]),T=r.t(`sidebar`,s,o,!h&&b===`collapsed`&&`collapsed`,c&&`bordered`,h&&`mobile`,h&&g&&`mobile-open`,u);return(0,f.jsxs)(F.Provider,{value:w,children:[h&&g&&(0,f.jsx)(`div`,{className:`sidebar-backdrop`,onClick:S}),(0,f.jsx)(`aside`,{className:T,style:p,children:m}),h&&!g&&(0,f.jsx)(`button`,{className:r.t(`sidebar-hamburger`,o),onClick:()=>_(!0),"aria-label":`Open menu`,children:(0,f.jsx)(`span`,{className:`sidebar-hamburger-icon`,"aria-hidden":`true`,children:(0,f.jsx)(n.t,{})})})]})}function z({bordered:t=!1,className:n,children:i}){let{mode:a,mobile:o,canToggle:c,toggleMode:l}=I(),u=!o&&a===`collapsed`;return(0,f.jsxs)(`div`,{className:r.t(`sidebar-header`,t&&`bordered`,n),children:[(0,f.jsx)(`div`,{className:`sidebar-header-content`,children:i}),c&&(0,f.jsx)(s.t,{variant:`outlined`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:l,"aria-label":u?`Expand sidebar`:`Collapse sidebar`,className:`sidebar-toggle`,children:(0,f.jsx)(`span`,{className:r.t(`sidebar-chevron`,u&&`flipped`),children:(0,f.jsx)(e.t,{})})})]})}function B({className:e,children:t}){return(0,f.jsx)(`div`,{className:r.t(`sidebar-body`,e),children:t})}function V({className:e,children:t}){return(0,f.jsx)(`nav`,{className:r.t(`sidebar-nav`,e),children:t})}function H({icon:e,label:t,href:n,to:i,onClick:a,active:o=!1,disabled:s=!1,badge:c,color:u,component:d,className:p}){let{mode:m,mobile:h}=I(),g=!h&&m===`collapsed`,_=d??(n||i?`a`:`button`),v=d?i?{to:i}:n?{href:n}:{}:n?{href:n}:i?{href:i}:{};return(0,f.jsxs)(_,{className:r.t(`sidebar-item`,o&&`active`,s&&`disabled`,u,p),onClick:s?void 0:a,"aria-disabled":s||void 0,title:g?t:void 0,...v,children:[e&&(0,f.jsx)(`span`,{className:`sidebar-item-icon`,children:e}),!g&&(0,f.jsx)(l.t,{content:t,placement:`top`,className:`sidebar-item-label-tooltip`,children:(0,f.jsx)(`span`,{className:`sidebar-item-label`,children:t})}),!g&&c&&(0,f.jsx)(`span`,{className:`sidebar-item-badge`,children:c})]})}function U({label:t,icon:n,active:i=!1,defaultOpen:a=!0,collapsible:o=!0,children:s,className:c}){let l=I(),{mode:p,mobile:m}=l,h=!m&&p===`collapsed`,[g,_]=(0,d.useState)(a),v=(0,d.useMemo)(()=>({...l,mode:`expanded`}),[l]),y=()=>{o&&_(e=>!e)};if(h){let e=(0,f.jsx)(`span`,{className:r.t(`sidebar-group-icon collapsed`,i&&`active`),title:t,children:n});return(0,f.jsx)(`div`,{className:r.t(`sidebar-group`,c),children:(0,f.jsx)(u.i,{trigger:e,placement:`right-start`,closeOnSelect:!0,openOn:`hover`,children:(0,f.jsx)(F.Provider,{value:v,children:s})})})}return(0,f.jsxs)(`div`,{className:r.t(`sidebar-group`,c),children:[(0,f.jsxs)(`button`,{className:r.t(`sidebar-group-header`,i&&`active`),onClick:y,"aria-expanded":g,children:[n&&(0,f.jsx)(`span`,{className:`sidebar-group-icon`,children:n}),(0,f.jsx)(`span`,{className:`sidebar-group-label`,children:t}),o&&(0,f.jsx)(`span`,{className:r.t(`sidebar-group-arrow`,g&&`open`),children:(0,f.jsx)(e.t,{})})]}),g&&(0,f.jsx)(`div`,{className:`sidebar-group-items`,children:s})]})}function W({bordered:e=!1,className:t,children:n}){return(0,f.jsx)(`div`,{className:r.t(`sidebar-footer`,e&&`bordered`,t),children:n})}function G({className:e,spacing:t=`md`}){return(0,f.jsx)(`hr`,{className:r.t(`sidebar-divider`,t,e)})}function K({items:e,separator:t=`/`,maxItems:n,className:i,...a}){let o=(0,d.useMemo)(()=>{if(!n||n>=e.length)return e;if(n<2)return[e[e.length-1]];let t=e.slice(0,1),r=e.slice(-(n-1));return[...t,null,...r]},[e,n]);return(0,f.jsx)(`nav`,{"aria-label":`breadcrumb`,className:r.t(`breadcrumb`,i),...a,children:(0,f.jsx)(`ol`,{className:`trail`,children:o.map((e,n)=>{if(e===null)return(0,f.jsxs)(`li`,{className:`crumb dots`,children:[(0,f.jsx)(`span`,{className:`sep`,children:t}),(0,f.jsx)(`span`,{children:`…`})]},`ellipsis`);let i=n===o.length-1;return(0,f.jsxs)(`li`,{className:r.t(`crumb`,i&&`active`),children:[n>0&&(0,f.jsx)(`span`,{className:`sep`,children:t}),e.href&&!i?(0,f.jsx)(`a`,{href:e.href,className:`link`,onClick:e.onClick,children:e.label}):e.onClick&&!i?(0,f.jsx)(`button`,{type:`button`,className:`link btn`,onClick:e.onClick,children:e.label}):(0,f.jsx)(`span`,{className:`current`,"aria-current":i?`page`:void 0,children:e.label})]},n)})})})}var q=(0,d.forwardRef)(function({className:e,children:t,...n},i){let a=[],o=[];return d.Children.forEach(t,e=>{(0,d.isValidElement)(e)&&e.type===R?a.push(e):o.push(e)}),(0,f.jsxs)(`div`,{ref:i,className:r.t(`app-shell`,e),...n,children:[a,(0,f.jsx)(`div`,{className:`app-main`,children:o})]})}),J=(0,d.forwardRef)(function({className:e,children:t,...n},i){return(0,f.jsx)(`div`,{ref:i,className:r.t(`app-body`,e),...n,children:t})});Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return x}});
|
|
2
|
+
//# sourceMappingURL=layout-DsY7-y6U.cjs.map
|