@banzamel/mineralui 2.1.0 → 2.1.2
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-BcO8hMnU.js → MAvatar-DtJCj3dD.js} +1 -1
- package/dist/{MAvatar-BcO8hMnU.js.map → MAvatar-DtJCj3dD.js.map} +1 -1
- package/dist/{MAvatar-C4N2ztLf.cjs → MAvatar-bUWENcq-.cjs} +2 -2
- package/dist/{MAvatar-C4N2ztLf.cjs.map → MAvatar-bUWENcq-.cjs.map} +1 -1
- package/dist/{MButton-B8kFTOPJ.cjs → MButton-R08y1HCT.cjs} +2 -2
- package/dist/{MButton-B8kFTOPJ.cjs.map → MButton-R08y1HCT.cjs.map} +1 -1
- package/dist/{MButtonGroup-C3Ar0gfk.cjs → MButtonGroup-C-LiXWRC.cjs} +2 -2
- package/dist/{MButtonGroup-C3Ar0gfk.cjs.map → MButtonGroup-C-LiXWRC.cjs.map} +1 -1
- package/dist/{MCard-szs5kIek.cjs → MCard-1OVOl4Ql.cjs} +2 -2
- package/dist/{MCard-szs5kIek.cjs.map → MCard-1OVOl4Ql.cjs.map} +1 -1
- package/dist/{MCard-dLMQQ97e.js → MCard-azpp4YVD.js} +1 -1
- package/dist/{MCard-dLMQQ97e.js.map → MCard-azpp4YVD.js.map} +1 -1
- package/dist/{MCheckbox-CATWU11D.cjs → MCheckbox-CM5HJQWW.cjs} +2 -2
- package/dist/{MCheckbox-CATWU11D.cjs.map → MCheckbox-CM5HJQWW.cjs.map} +1 -1
- package/dist/{MConflictIllustration-Mnz1q7Ey.cjs → MConflictIllustration-B2AtfpYO.cjs} +2 -2
- package/dist/{MConflictIllustration-Mnz1q7Ey.cjs.map → MConflictIllustration-B2AtfpYO.cjs.map} +1 -1
- package/dist/{MDetailList-BBgUaSDJ.cjs → MDetailList-BhKBJwpd.cjs} +2 -2
- package/dist/{MDetailList-BBgUaSDJ.cjs.map → MDetailList-BhKBJwpd.cjs.map} +1 -1
- package/dist/{MDetailList-zlwdeA-r.js → MDetailList-BjvZUyNj.js} +2 -2
- package/dist/{MDetailList-zlwdeA-r.js.map → MDetailList-BjvZUyNj.js.map} +1 -1
- package/dist/{MDropdownMenu-omTEUh4V.js → MDropdownMenu-CZmU3uku.js} +1 -1
- package/dist/{MDropdownMenu-omTEUh4V.js.map → MDropdownMenu-CZmU3uku.js.map} +1 -1
- package/dist/{MDropdownMenu-1RqWjxHp.cjs → MDropdownMenu-hXaIMkAj.cjs} +2 -2
- package/dist/{MDropdownMenu-1RqWjxHp.cjs.map → MDropdownMenu-hXaIMkAj.cjs.map} +1 -1
- package/dist/{MGrid-B2qzYD6S.cjs → MGrid-B_0kFUws.cjs} +2 -2
- package/dist/{MGrid-B2qzYD6S.cjs.map → MGrid-B_0kFUws.cjs.map} +1 -1
- package/dist/{MGrid-Cy44dWyC.js → MGrid-CYL3cbUI.js} +1 -1
- package/dist/{MGrid-Cy44dWyC.js.map → MGrid-CYL3cbUI.js.map} +1 -1
- package/dist/{MHeading-CyuxSnhl.cjs → MHeading-BLnb3dNv.cjs} +2 -2
- package/dist/{MHeading-CyuxSnhl.cjs.map → MHeading-BLnb3dNv.cjs.map} +1 -1
- package/dist/{MI18nProvider-C90EVyFz.cjs → MI18nProvider-Cg-vxV6j.cjs} +2 -2
- package/dist/{MI18nProvider-C90EVyFz.cjs.map → MI18nProvider-Cg-vxV6j.cjs.map} +1 -1
- package/dist/{MInput-Cw9ZVcNO.cjs → MInput-BhTAfpYS.cjs} +2 -2
- package/dist/{MInput-Cw9ZVcNO.cjs.map → MInput-BhTAfpYS.cjs.map} +1 -1
- package/dist/{MInput-Baokf17V.js → MInput-CgtX0fUN.js} +1 -1
- package/dist/{MInput-Baokf17V.js.map → MInput-CgtX0fUN.js.map} +1 -1
- package/dist/{MInputCVC-DNzDAbfU.js → MInputCVC-BGYhUGDE.js} +3 -3
- package/dist/{MInputCVC-DNzDAbfU.js.map → MInputCVC-BGYhUGDE.js.map} +1 -1
- package/dist/{MInputCVC-Bqcp5Uu3.cjs → MInputCVC-E2Z2hYfy.cjs} +2 -2
- package/dist/{MInputCVC-Bqcp5Uu3.cjs.map → MInputCVC-E2Z2hYfy.cjs.map} +1 -1
- package/dist/{MInputSearch-D9bp1QAz.cjs → MInputSearch-DE9Jqp0i.cjs} +2 -2
- package/dist/{MInputSearch-D9bp1QAz.cjs.map → MInputSearch-DE9Jqp0i.cjs.map} +1 -1
- package/dist/{MInputSearch-Bswi-Kj0.js → MInputSearch-DEr5HBgw.js} +2 -2
- package/dist/{MInputSearch-Bswi-Kj0.js.map → MInputSearch-DEr5HBgw.js.map} +1 -1
- package/dist/{MKbd-CiwDwFwA.cjs → MKbd-n4fhKIxb.cjs} +2 -2
- package/dist/{MKbd-CiwDwFwA.cjs.map → MKbd-n4fhKIxb.cjs.map} +1 -1
- package/dist/{MLink-B7gXA8qY.cjs → MLink-Biipj7xz.cjs} +2 -2
- package/dist/{MLink-B7gXA8qY.cjs.map → MLink-Biipj7xz.cjs.map} +1 -1
- package/dist/MLoader-CnvWqFtA.js +41 -0
- package/dist/MLoader-CnvWqFtA.js.map +1 -0
- package/dist/MLoader-XcpKlLrd.cjs +2 -0
- package/dist/MLoader-XcpKlLrd.cjs.map +1 -0
- package/dist/{MPagination-DpUtB6t6.js → MPagination-7yTbB8dZ.js} +1 -1
- package/dist/{MPagination-DpUtB6t6.js.map → MPagination-7yTbB8dZ.js.map} +1 -1
- package/dist/{MPagination-C2GmGkVA.cjs → MPagination-DTqT33Mx.cjs} +2 -2
- package/dist/{MPagination-C2GmGkVA.cjs.map → MPagination-DTqT33Mx.cjs.map} +1 -1
- package/dist/{MPopover-BVBN5SJi.cjs → MPopover-hDqrn317.cjs} +2 -2
- package/dist/{MPopover-BVBN5SJi.cjs.map → MPopover-hDqrn317.cjs.map} +1 -1
- package/dist/{MPortal-Djrw2WhD.cjs → MPortal-BciZHNDC.cjs} +2 -2
- package/dist/{MPortal-Djrw2WhD.cjs.map → MPortal-BciZHNDC.cjs.map} +1 -1
- package/dist/{MSimpleGrid-BVeCK9Ci.js → MSimpleGrid-BWKurW6H.js} +1 -1
- package/dist/{MSimpleGrid-BVeCK9Ci.js.map → MSimpleGrid-BWKurW6H.js.map} +1 -1
- package/dist/{MSimpleGrid-BR352NiK.cjs → MSimpleGrid-BwNfaxQP.cjs} +2 -2
- package/dist/{MSimpleGrid-BR352NiK.cjs.map → MSimpleGrid-BwNfaxQP.cjs.map} +1 -1
- package/dist/{MSkeleton-DyQBeuVT.cjs → MSkeleton-CLSU5pL6.cjs} +2 -2
- package/dist/{MSkeleton-DyQBeuVT.cjs.map → MSkeleton-CLSU5pL6.cjs.map} +1 -1
- package/dist/{MSlider-Ds2Fls86.cjs → MSlider-DZnMB49q.cjs} +2 -2
- package/dist/{MSlider-Ds2Fls86.cjs.map → MSlider-DZnMB49q.cjs.map} +1 -1
- package/dist/{MStack-BdVvJN5S.cjs → MStack-BP_BUeCc.cjs} +2 -2
- package/dist/{MStack-BdVvJN5S.cjs.map → MStack-BP_BUeCc.cjs.map} +1 -1
- package/dist/{MStack-h11pHEmc.js → MStack-CSCw6to2.js} +1 -1
- package/dist/{MStack-h11pHEmc.js.map → MStack-CSCw6to2.js.map} +1 -1
- package/dist/{MSubText-DWNMJupD.cjs → MSubText-VHsgFsv2.cjs} +2 -2
- package/dist/{MSubText-DWNMJupD.cjs.map → MSubText-VHsgFsv2.cjs.map} +1 -1
- package/dist/{MSurface-BS9l7GDH.cjs → MSurface-CYeVFOw_.cjs} +2 -2
- package/dist/{MSurface-BS9l7GDH.cjs.map → MSurface-CYeVFOw_.cjs.map} +1 -1
- package/dist/{MTag-BwQbycZO.cjs → MTag-BtlOVMRl.cjs} +2 -2
- package/dist/{MTag-BwQbycZO.cjs.map → MTag-BtlOVMRl.cjs.map} +1 -1
- package/dist/{MText-Cjt1oTPr.cjs → MText-j6Zbbj5Y.cjs} +2 -2
- package/dist/{MText-Cjt1oTPr.cjs.map → MText-j6Zbbj5Y.cjs.map} +1 -1
- package/dist/{MTooltip-gpvKWQzD.cjs → MTooltip-BEfO9jTe.cjs} +2 -2
- package/dist/{MTooltip-gpvKWQzD.cjs.map → MTooltip-BEfO9jTe.cjs.map} +1 -1
- package/dist/{MTooltip-Ctyjwxv-.js → MTooltip-BTJkzOah.js} +1 -1
- package/dist/{MTooltip-Ctyjwxv-.js.map → MTooltip-BTJkzOah.js.map} +1 -1
- package/dist/{MTreeView-BS60bIj7.cjs → MTreeView-1IqmVPMv.cjs} +2 -2
- package/dist/{MTreeView-BS60bIj7.cjs.map → MTreeView-1IqmVPMv.cjs.map} +1 -1
- package/dist/{MTreeView-DTsi4bye.js → MTreeView-DQaRF0ty.js} +1 -1
- package/dist/{MTreeView-DTsi4bye.js.map → MTreeView-DQaRF0ty.js.map} +1 -1
- package/dist/{arduino-CA8n1Qq3.cjs → arduino-DdDHMIWB.cjs} +1 -1
- package/dist/{arduino-CA8n1Qq3.cjs.map → arduino-DdDHMIWB.cjs.map} +1 -1
- package/dist/{arduino-WKgN2ikT.js → arduino-UeOrXakL.js} +1 -1
- package/dist/{arduino-WKgN2ikT.js.map → arduino-UeOrXakL.js.map} +1 -1
- package/dist/{bash-DObE5DDq.cjs → bash-B17_F5Sw.cjs} +1 -1
- package/dist/{bash-DObE5DDq.cjs.map → bash-B17_F5Sw.cjs.map} +1 -1
- package/dist/{bash-vBtVVub9.js → bash-CrHemXky.js} +1 -1
- package/dist/{bash-vBtVVub9.js.map → bash-CrHemXky.js.map} +1 -1
- package/dist/{c-7RiNX--m.js → c-D9302r2r.js} +1 -1
- package/dist/{c-7RiNX--m.js.map → c-D9302r2r.js.map} +1 -1
- package/dist/{c-Bb-MtVny.cjs → c-ODLxeMV_.cjs} +1 -1
- package/dist/{c-Bb-MtVny.cjs.map → c-ODLxeMV_.cjs.map} +1 -1
- package/dist/cards-BBYh24NQ.cjs +2 -0
- package/dist/cards-BBYh24NQ.cjs.map +1 -0
- package/dist/{cards-BkRqUJ2V.js → cards-Du2kX3Br.js} +377 -359
- package/dist/{cards-BkRqUJ2V.js.map → cards-Du2kX3Br.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
- package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +16 -0
- package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
- package/dist/components/data/MDataTable/MDataTable.types.d.ts +16 -0
- package/dist/components/data/useMCardGrid.d.ts +2 -0
- package/dist/components/data/useMTable.d.ts +2 -0
- package/dist/{controls-CSTIosnc.js → controls-Cbv4FmNq.js} +2 -2
- package/dist/{controls-CSTIosnc.js.map → controls-Cbv4FmNq.js.map} +1 -1
- package/dist/{controls-BopaNWb_.cjs → controls-DrdHBBtm.cjs} +2 -2
- package/dist/{controls-BopaNWb_.cjs.map → controls-DrdHBBtm.cjs.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +1 -1
- package/dist/{core-o3cw16Db.cjs → core-DBpQf3uY.cjs} +1 -1
- package/dist/{core-o3cw16Db.cjs.map → core-DBpQf3uY.cjs.map} +1 -1
- package/dist/{core-DC6zSfZo.js → core-yRqh2XLu.js} +1 -1
- package/dist/{core-DC6zSfZo.js.map → core-yRqh2XLu.js.map} +1 -1
- package/dist/{cpp-CaNnFjgy.js → cpp-CLYSpJBB.js} +1 -1
- package/dist/{cpp-CaNnFjgy.js.map → cpp-CLYSpJBB.js.map} +1 -1
- package/dist/{cpp-BVKrJvso.cjs → cpp-DuTgLZC1.cjs} +1 -1
- package/dist/{cpp-BVKrJvso.cjs.map → cpp-DuTgLZC1.cjs.map} +1 -1
- package/dist/{css-NqBDP7ZC.js → css-BgGh0eG1.js} +1 -1
- package/dist/{css-NqBDP7ZC.js.map → css-BgGh0eG1.js.map} +1 -1
- package/dist/{css-C2sjPfLl.cjs → css-D0f-qByc.cjs} +1 -1
- package/dist/{css-C2sjPfLl.cjs.map → css-D0f-qByc.cjs.map} +1 -1
- package/dist/data-BgTkBMkP.js +674 -0
- package/dist/data-BgTkBMkP.js.map +1 -0
- package/dist/data-Csb03WFo.cjs +2 -0
- package/dist/data-Csb03WFo.cjs.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/{display-B7Wh5nnM.js → display-D9H8MP8D.js} +15 -15
- package/dist/{display-B7Wh5nnM.js.map → display-D9H8MP8D.js.map} +1 -1
- package/dist/{display-BgZbdTDd.cjs → display-IMWtdmxS.cjs} +2 -2
- package/dist/{display-BgZbdTDd.cjs.map → display-IMWtdmxS.cjs.map} +1 -1
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/{dropdowns-Befc3lmC.cjs → dropdowns-D_nUdflh.cjs} +2 -2
- package/dist/{dropdowns-Befc3lmC.cjs.map → dropdowns-D_nUdflh.cjs.map} +1 -1
- package/dist/{dropdowns-DGvRs-VE.js → dropdowns-oj4--GbK.js} +3 -3
- package/dist/{dropdowns-DGvRs-VE.js.map → dropdowns-oj4--GbK.js.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-C445FEHb.js → feedback-D7BTlioj.js} +79 -114
- package/dist/feedback-D7BTlioj.js.map +1 -0
- package/dist/feedback-u1ssUT7e.cjs +2 -0
- package/dist/{feedback-C8RfsfYJ.cjs.map → feedback-u1ssUT7e.cjs.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -4
- package/dist/{form-DSlAmTT1.cjs → form-BWGLrCPi.cjs} +2 -2
- package/dist/{form-DSlAmTT1.cjs.map → form-BWGLrCPi.cjs.map} +1 -1
- package/dist/{form-BWWLNji0.js → form-CgH1hioG.js} +1 -1
- package/dist/{form-BWWLNji0.js.map → form-CgH1hioG.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/i18n.cjs +1 -1
- package/dist/{icons-DX_cScBq.cjs → icons-BfdQ45F2.cjs} +2 -2
- package/dist/{icons-DX_cScBq.cjs.map → icons-BfdQ45F2.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/illustrations.cjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +31 -30
- package/dist/{inputs-BZxorlLv.js → inputs-DQrjGfwd.js} +2 -2
- package/dist/{inputs-BZxorlLv.js.map → inputs-DQrjGfwd.js.map} +1 -1
- package/dist/{inputs-BiZXyZSE.cjs → inputs-DsFdc0Io.cjs} +2 -2
- package/dist/{inputs-BiZXyZSE.cjs.map → inputs-DsFdc0Io.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/{javascript-BgwyrBZi.cjs → javascript-CGjvHPZ1.cjs} +1 -1
- package/dist/{javascript-BgwyrBZi.cjs.map → javascript-CGjvHPZ1.cjs.map} +1 -1
- package/dist/{javascript-BltQGQAn.js → javascript-CX3JhsYu.js} +1 -1
- package/dist/{javascript-BltQGQAn.js.map → javascript-CX3JhsYu.js.map} +1 -1
- package/dist/{json-DWmLrT_r.cjs → json-B8svQsK0.cjs} +1 -1
- package/dist/{json-DWmLrT_r.cjs.map → json-B8svQsK0.cjs.map} +1 -1
- package/dist/{json-DbCISZXi.js → json-BPIcVdlp.js} +1 -1
- package/dist/{json-DbCISZXi.js.map → json-BPIcVdlp.js.map} +1 -1
- package/dist/{layout-Ct6ViwDQ.cjs → layout-B_2yBP1M.cjs} +2 -2
- package/dist/{layout-Ct6ViwDQ.cjs.map → layout-B_2yBP1M.cjs.map} +1 -1
- package/dist/{layout-CnEOTJnJ.js → layout-BuvV-N9H.js} +4 -4
- package/dist/{layout-CnEOTJnJ.js.map → layout-BuvV-N9H.js.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +5 -5
- package/dist/{licensing-hMT26Vnv.cjs → licensing-DysMClel.cjs} +2 -2
- package/dist/{licensing-hMT26Vnv.cjs.map → licensing-DysMClel.cjs.map} +1 -1
- package/dist/{locale-BNyzqXAU.js → locale-CS1-IY_I.js} +1 -1
- package/dist/{locale-BNyzqXAU.js.map → locale-CS1-IY_I.js.map} +1 -1
- package/dist/{locale-C5ik0c3d.cjs → locale-CbnstsMH.cjs} +2 -2
- package/dist/{locale-C5ik0c3d.cjs.map → locale-CbnstsMH.cjs.map} +1 -1
- package/dist/{media-DxnELIZO.js → media-5IsYrhIQ.js} +1 -1
- package/dist/{media-DxnELIZO.js.map → media-5IsYrhIQ.js.map} +1 -1
- package/dist/{media-DZaGKh5V.cjs → media-Xt6MkVhb.cjs} +2 -2
- package/dist/{media-DZaGKh5V.cjs.map → media-Xt6MkVhb.cjs.map} +1 -1
- package/dist/media.cjs +1 -1
- package/dist/media.js +2 -2
- package/dist/{overlays-WsQqxqk1.cjs → overlays-BAJDNT1m.cjs} +2 -2
- package/dist/{overlays-WsQqxqk1.cjs.map → overlays-BAJDNT1m.cjs.map} +1 -1
- package/dist/{overlays-BfIrSHDo.js → overlays-WA3jnWTG.js} +6 -6
- package/dist/{overlays-BfIrSHDo.js.map → overlays-WA3jnWTG.js.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/{php-dSXzrC_Z.js → php-CBRzjinf.js} +1 -1
- package/dist/{php-dSXzrC_Z.js.map → php-CBRzjinf.js.map} +1 -1
- package/dist/{php-CssmZWrI.cjs → php-CKyelegh.cjs} +1 -1
- package/dist/{php-CssmZWrI.cjs.map → php-CKyelegh.cjs.map} +1 -1
- package/dist/primitives.cjs +1 -1
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/{theme-DltOEniv.cjs → theme-BfNZicWk.cjs} +2 -2
- package/dist/{theme-DltOEniv.cjs.map → theme-BfNZicWk.cjs.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{typescript-DeaMWtYF.cjs → typescript-D6PDzwkM.cjs} +1 -1
- package/dist/{typescript-DeaMWtYF.cjs.map → typescript-D6PDzwkM.cjs.map} +1 -1
- package/dist/{typescript-CxKdKTKz.js → typescript-Xt3Sotw5.js} +1 -1
- package/dist/{typescript-CxKdKTKz.js.map → typescript-Xt3Sotw5.js.map} +1 -1
- package/dist/{typography-vZwd5E5h.cjs → typography-Dk9kIORI.cjs} +2 -2
- package/dist/{typography-vZwd5E5h.cjs.map → typography-Dk9kIORI.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/{useGhostText-Nw9XCpWS.cjs → useGhostText-Dmkw3Am8.cjs} +2 -2
- package/dist/{useGhostText-Nw9XCpWS.cjs.map → useGhostText-Dmkw3Am8.cjs.map} +1 -1
- package/dist/{useInteractionEffect-Gs9HBi2T.cjs → useInteractionEffect-DFTdcWHl.cjs} +2 -2
- package/dist/{useInteractionEffect-Gs9HBi2T.cjs.map → useInteractionEffect-DFTdcWHl.cjs.map} +1 -1
- package/dist/{useKeyboardNav-DDN-oeqd.cjs → useKeyboardNav-HVG9JFD2.cjs} +2 -2
- package/dist/{useKeyboardNav-DDN-oeqd.cjs.map → useKeyboardNav-HVG9JFD2.cjs.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/{xml-BUuYcpx2.cjs → xml-4YlaGgjP.cjs} +1 -1
- package/dist/{xml-BUuYcpx2.cjs.map → xml-4YlaGgjP.cjs.map} +1 -1
- package/dist/{xml-BPoVPJlJ.js → xml-CrpWqcDk.js} +1 -1
- package/dist/{xml-BPoVPJlJ.js.map → xml-CrpWqcDk.js.map} +1 -1
- package/package.json +1 -1
- package/dist/cards-DK7j03NN.cjs +0 -2
- package/dist/cards-DK7j03NN.cjs.map +0 -1
- package/dist/data-CjVcevdT.js +0 -654
- package/dist/data-CjVcevdT.js.map +0 -1
- package/dist/data-D8qUIvWv.cjs +0 -2
- package/dist/data-D8qUIvWv.cjs.map +0 -1
- package/dist/feedback-C445FEHb.js.map +0 -1
- package/dist/feedback-C8RfsfYJ.cjs +0 -2
package/dist/dropdowns.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(`./dropdowns-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./dropdowns-D_nUdflh.cjs`);exports.MAutocomplete=e.i,exports.MDatePicker=e.r,exports.MDateRangePicker=e.t,exports.MSelect=e.a,exports.MTimePicker=e.n;
|
package/dist/dropdowns.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { a as e, i as t, n, r, t as i } from "./dropdowns-
|
|
3
|
+
import { a as e, i as t, n, r, t as i } from "./dropdowns-oj4--GbK.js";
|
|
4
4
|
export { t as MAutocomplete, r as MDatePicker, i as MDateRangePicker, e as MSelect, n as MTimePicker };
|
|
@@ -2,44 +2,42 @@ import { r as e } from "./theme-DAOU1aPs.js";
|
|
|
2
2
|
import { In as t, Ki as n, Ln as r, Pn as i, Si as a, bi as o, vi as s, xi as c, yi as l } from "./icons-DLP-Rs6z.js";
|
|
3
3
|
import { t as u } from "./cn-YER3QsV1.js";
|
|
4
4
|
import { t as d } from "./MPortal-Ba2Sxset.js";
|
|
5
|
-
import { t as f } from "./
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { createContext as g, useCallback as _, useContext as v, useEffect as y, useMemo as b, useRef as x, useState as S } from "react";
|
|
9
|
-
import { jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
5
|
+
import { t as f } from "./MButton-C1pnL4_j.js";
|
|
6
|
+
import { createContext as p, useCallback as m, useContext as h, useEffect as g, useMemo as _, useRef as v, useState as y } from "react";
|
|
7
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
10
8
|
//#region src/components/feedback/statusIcons.tsx
|
|
11
|
-
var
|
|
12
|
-
success: /* @__PURE__ */
|
|
13
|
-
warning: /* @__PURE__ */
|
|
14
|
-
error: /* @__PURE__ */
|
|
15
|
-
info: /* @__PURE__ */
|
|
16
|
-
primary: /* @__PURE__ */
|
|
17
|
-
neutral: /* @__PURE__ */
|
|
18
|
-
light: /* @__PURE__ */
|
|
19
|
-
dark: /* @__PURE__ */
|
|
20
|
-
news: /* @__PURE__ */
|
|
9
|
+
var S = {
|
|
10
|
+
success: /* @__PURE__ */ b(l, {}),
|
|
11
|
+
warning: /* @__PURE__ */ b(a, {}),
|
|
12
|
+
error: /* @__PURE__ */ b(o, {}),
|
|
13
|
+
info: /* @__PURE__ */ b(c, {}),
|
|
14
|
+
primary: /* @__PURE__ */ b(c, {}),
|
|
15
|
+
neutral: /* @__PURE__ */ b(s, {}),
|
|
16
|
+
light: /* @__PURE__ */ b(r, {}),
|
|
17
|
+
dark: /* @__PURE__ */ b(t, {}),
|
|
18
|
+
news: /* @__PURE__ */ b(i, {})
|
|
21
19
|
};
|
|
22
|
-
function
|
|
23
|
-
return e ?
|
|
20
|
+
function C(e) {
|
|
21
|
+
return e ? S[e] ?? S.info : S.info;
|
|
24
22
|
}
|
|
25
23
|
//#endregion
|
|
26
24
|
//#region src/components/feedback/MAlert/MAlert.tsx
|
|
27
|
-
function
|
|
28
|
-
let c = n === !1 ? null : n === !0 ?
|
|
29
|
-
return /* @__PURE__ */
|
|
25
|
+
function w({ color: t = "info", icon: n = !0, title: r, hidden: i, className: a, children: o, ...s }) {
|
|
26
|
+
let c = n === !1 ? null : n === !0 ? C(t) : n;
|
|
27
|
+
return /* @__PURE__ */ x("div", {
|
|
30
28
|
className: u("alert", `color-${t}`, a),
|
|
31
29
|
role: "status",
|
|
32
30
|
...e(i),
|
|
33
31
|
...s,
|
|
34
|
-
children: [c && /* @__PURE__ */
|
|
32
|
+
children: [c && /* @__PURE__ */ b("span", {
|
|
35
33
|
className: "icon",
|
|
36
34
|
children: c
|
|
37
|
-
}), /* @__PURE__ */
|
|
35
|
+
}), /* @__PURE__ */ x("div", {
|
|
38
36
|
className: "main",
|
|
39
|
-
children: [r && /* @__PURE__ */
|
|
37
|
+
children: [r && /* @__PURE__ */ b("div", {
|
|
40
38
|
className: "title",
|
|
41
39
|
children: r
|
|
42
|
-
}), o && /* @__PURE__ */
|
|
40
|
+
}), o && /* @__PURE__ */ b("div", {
|
|
43
41
|
className: "content",
|
|
44
42
|
children: o
|
|
45
43
|
})]
|
|
@@ -48,12 +46,12 @@ function D({ color: t = "info", icon: n = !0, title: r, hidden: i, className: a,
|
|
|
48
46
|
}
|
|
49
47
|
//#endregion
|
|
50
48
|
//#region src/components/feedback/MBanner/MBanner.tsx
|
|
51
|
-
function
|
|
52
|
-
let [
|
|
53
|
-
if (!
|
|
54
|
-
let
|
|
49
|
+
function T({ color: t = "primary", variant: r = "filled", icon: i, action: a, hidden: o, dismissible: s = !1, onDismiss: c, className: l, children: d, ...p }) {
|
|
50
|
+
let [m, h] = y(!0), [g, _] = y(!1), S = v(null);
|
|
51
|
+
if (!m) return null;
|
|
52
|
+
let C = () => {
|
|
55
53
|
_(!0);
|
|
56
|
-
let e =
|
|
54
|
+
let e = S.current;
|
|
57
55
|
if (!e) {
|
|
58
56
|
h(!1), c?.();
|
|
59
57
|
return;
|
|
@@ -63,105 +61,72 @@ function O({ color: t = "primary", variant: r = "filled", icon: i, action: a, hi
|
|
|
63
61
|
};
|
|
64
62
|
e.addEventListener("transitionend", t, { once: !0 }), setTimeout(t, 1e3);
|
|
65
63
|
};
|
|
66
|
-
return /* @__PURE__ */
|
|
67
|
-
ref:
|
|
64
|
+
return /* @__PURE__ */ b("div", {
|
|
65
|
+
ref: S,
|
|
68
66
|
className: u("banner-wrap", g && "dismissing"),
|
|
69
67
|
...e(o),
|
|
70
|
-
children: /* @__PURE__ */
|
|
68
|
+
children: /* @__PURE__ */ x("div", {
|
|
71
69
|
className: u("banner", `color-${t}`, r, l),
|
|
72
70
|
role: "banner",
|
|
73
|
-
...
|
|
71
|
+
...p,
|
|
74
72
|
children: [
|
|
75
|
-
i && /* @__PURE__ */
|
|
73
|
+
i && /* @__PURE__ */ b("span", {
|
|
76
74
|
className: "banner-icon",
|
|
77
75
|
children: i
|
|
78
76
|
}),
|
|
79
|
-
/* @__PURE__ */
|
|
77
|
+
/* @__PURE__ */ b("div", {
|
|
80
78
|
className: "banner-content",
|
|
81
79
|
children: d
|
|
82
80
|
}),
|
|
83
|
-
a && /* @__PURE__ */
|
|
81
|
+
a && /* @__PURE__ */ b("div", {
|
|
84
82
|
className: "banner-action",
|
|
85
83
|
children: a
|
|
86
84
|
}),
|
|
87
|
-
s && /* @__PURE__ */
|
|
85
|
+
s && /* @__PURE__ */ b(f, {
|
|
88
86
|
variant: "link",
|
|
89
87
|
color: "neutral",
|
|
90
88
|
iconOnly: !0,
|
|
91
89
|
size: "sm",
|
|
92
90
|
className: "banner-dismiss",
|
|
93
|
-
onClick:
|
|
91
|
+
onClick: C,
|
|
94
92
|
"aria-label": "Dismiss",
|
|
95
|
-
children: /* @__PURE__ */
|
|
93
|
+
children: /* @__PURE__ */ b(n, {})
|
|
96
94
|
})
|
|
97
95
|
]
|
|
98
96
|
})
|
|
99
97
|
});
|
|
100
98
|
}
|
|
101
99
|
//#endregion
|
|
102
|
-
//#region src/components/feedback/MLoader/MLoader.tsx
|
|
103
|
-
var k = {
|
|
104
|
-
xs: "xs",
|
|
105
|
-
sm: "sm",
|
|
106
|
-
md: "md",
|
|
107
|
-
lg: "lg",
|
|
108
|
-
xl: "xl"
|
|
109
|
-
};
|
|
110
|
-
function A({ color: e = "primary", size: t = "lg", label: n = "Loading", center: r = !0, minHeight: i = "40vh", className: a, style: o, ...s }) {
|
|
111
|
-
let c = {
|
|
112
|
-
minHeight: typeof i == "number" ? `${i}px` : i,
|
|
113
|
-
...o
|
|
114
|
-
};
|
|
115
|
-
return /* @__PURE__ */ C("div", {
|
|
116
|
-
className: u("loader", r && "center", a),
|
|
117
|
-
style: c,
|
|
118
|
-
...s,
|
|
119
|
-
children: /* @__PURE__ */ w(h, {
|
|
120
|
-
align: "center",
|
|
121
|
-
children: [/* @__PURE__ */ C(p, {
|
|
122
|
-
size: t,
|
|
123
|
-
color: e,
|
|
124
|
-
label: n
|
|
125
|
-
}), /* @__PURE__ */ C(f, {
|
|
126
|
-
tone: "muted",
|
|
127
|
-
align: "center",
|
|
128
|
-
size: typeof t == "number" ? void 0 : k[t],
|
|
129
|
-
children: n
|
|
130
|
-
})]
|
|
131
|
-
})
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
//#endregion
|
|
135
100
|
//#region src/components/feedback/MProgressRing/MProgressRing.tsx
|
|
136
|
-
var
|
|
101
|
+
var E = {
|
|
137
102
|
xs: 24,
|
|
138
103
|
sm: 36,
|
|
139
104
|
md: 56,
|
|
140
105
|
lg: 88,
|
|
141
106
|
xl: 128
|
|
142
|
-
},
|
|
107
|
+
}, D = {
|
|
143
108
|
xs: 2,
|
|
144
109
|
sm: 3,
|
|
145
110
|
md: 4,
|
|
146
111
|
lg: 6,
|
|
147
112
|
xl: 8
|
|
148
113
|
};
|
|
149
|
-
function
|
|
114
|
+
function O(e, t, n) {
|
|
150
115
|
return Math.max(t, Math.min(n, e));
|
|
151
116
|
}
|
|
152
|
-
function
|
|
153
|
-
return typeof e == "number" ? e :
|
|
117
|
+
function k(e) {
|
|
118
|
+
return typeof e == "number" ? e : E[e ?? "md"] ?? E.md;
|
|
154
119
|
}
|
|
155
|
-
function
|
|
156
|
-
return typeof e == "number" ? e : typeof t == "number" ? Math.max(2, Math.round(t / 14)) :
|
|
120
|
+
function A(e, t) {
|
|
121
|
+
return typeof e == "number" ? e : typeof t == "number" ? Math.max(2, Math.round(t / 14)) : D[t ?? "md"] ?? D.md;
|
|
157
122
|
}
|
|
158
|
-
function
|
|
159
|
-
let d =
|
|
123
|
+
function j({ value: e, size: t = "md", color: n = "primary", thickness: r, showPercent: i = !0, label: a, ariaLabel: o, className: s, style: c, ...l }) {
|
|
124
|
+
let d = O(Math.round(e), 0, 100), f = k(t), p = A(r, t), m = (f - p) / 2, h = 2 * Math.PI * m, g = h * (1 - d / 100), _ = {
|
|
160
125
|
width: `${f}px`,
|
|
161
126
|
height: `${f}px`,
|
|
162
127
|
...c
|
|
163
|
-
}, v = typeof t == "string" ? t : "custom", y = o ?? `Loading ${d}%`,
|
|
164
|
-
return /* @__PURE__ */
|
|
128
|
+
}, v = typeof t == "string" ? t : "custom", y = o ?? `Loading ${d}%`, S = a === void 0 ? i : a !== null;
|
|
129
|
+
return /* @__PURE__ */ x("div", {
|
|
165
130
|
className: u("progress-ring", v, n && `color-${n}`, s),
|
|
166
131
|
style: _,
|
|
167
132
|
role: "progressbar",
|
|
@@ -170,20 +135,20 @@ function I({ value: e, size: t = "md", color: n = "primary", thickness: r, showP
|
|
|
170
135
|
"aria-valuemax": 100,
|
|
171
136
|
"aria-label": y,
|
|
172
137
|
...l,
|
|
173
|
-
children: [/* @__PURE__ */
|
|
138
|
+
children: [/* @__PURE__ */ x("svg", {
|
|
174
139
|
className: "progress-ring-svg",
|
|
175
140
|
width: f,
|
|
176
141
|
height: f,
|
|
177
142
|
viewBox: `0 0 ${f} ${f}`,
|
|
178
143
|
"aria-hidden": "true",
|
|
179
|
-
children: [/* @__PURE__ */
|
|
144
|
+
children: [/* @__PURE__ */ b("circle", {
|
|
180
145
|
className: "progress-ring-track",
|
|
181
146
|
cx: f / 2,
|
|
182
147
|
cy: f / 2,
|
|
183
148
|
r: m,
|
|
184
149
|
fill: "none",
|
|
185
150
|
strokeWidth: p
|
|
186
|
-
}), /* @__PURE__ */
|
|
151
|
+
}), /* @__PURE__ */ b("circle", {
|
|
187
152
|
className: "progress-ring-indicator",
|
|
188
153
|
cx: f / 2,
|
|
189
154
|
cy: f / 2,
|
|
@@ -195,7 +160,7 @@ function I({ value: e, size: t = "md", color: n = "primary", thickness: r, showP
|
|
|
195
160
|
strokeLinecap: "round",
|
|
196
161
|
transform: `rotate(-90 ${f / 2} ${f / 2})`
|
|
197
162
|
})]
|
|
198
|
-
}),
|
|
163
|
+
}), S ? /* @__PURE__ */ b("span", {
|
|
199
164
|
className: "progress-ring-label",
|
|
200
165
|
"aria-hidden": "true",
|
|
201
166
|
children: a === void 0 ? `${d}%` : a
|
|
@@ -204,17 +169,17 @@ function I({ value: e, size: t = "md", color: n = "primary", thickness: r, showP
|
|
|
204
169
|
}
|
|
205
170
|
//#endregion
|
|
206
171
|
//#region src/components/feedback/MToast/MToastContext.ts
|
|
207
|
-
var
|
|
208
|
-
function
|
|
209
|
-
let e =
|
|
172
|
+
var M = p(null), N = M.Provider;
|
|
173
|
+
function P() {
|
|
174
|
+
let e = h(M);
|
|
210
175
|
if (!e) throw Error("useMToast must be used inside MToastProvider");
|
|
211
176
|
return e;
|
|
212
177
|
}
|
|
213
178
|
//#endregion
|
|
214
179
|
//#region src/components/feedback/MToast/MToastItem.tsx
|
|
215
|
-
function
|
|
216
|
-
let [r, i] =
|
|
217
|
-
|
|
180
|
+
function F({ entry: e, onDismiss: t }) {
|
|
181
|
+
let [r, i] = y(!1), a = e.duration ?? 4e3;
|
|
182
|
+
g(() => {
|
|
218
183
|
if (a <= 0) return;
|
|
219
184
|
let e = setTimeout(() => i(!0), a);
|
|
220
185
|
return () => clearTimeout(e);
|
|
@@ -222,27 +187,27 @@ function B({ entry: e, onDismiss: t }) {
|
|
|
222
187
|
function o() {
|
|
223
188
|
r && t(e.id);
|
|
224
189
|
}
|
|
225
|
-
let s = e.color || "info", c = e.icon === !1 ? null : e.icon === void 0 || e.icon === !0 ?
|
|
226
|
-
return /* @__PURE__ */
|
|
190
|
+
let s = e.color || "info", c = e.icon === !1 ? null : e.icon === void 0 || e.icon === !0 ? C(s) : e.icon;
|
|
191
|
+
return /* @__PURE__ */ x("div", {
|
|
227
192
|
className: u("toast item", `color-${s}`, r && "exit"),
|
|
228
193
|
role: "status",
|
|
229
194
|
onAnimationEnd: o,
|
|
230
|
-
children: [/* @__PURE__ */
|
|
195
|
+
children: [/* @__PURE__ */ x("div", {
|
|
231
196
|
className: "toast body",
|
|
232
|
-
children: [c && /* @__PURE__ */
|
|
197
|
+
children: [c && /* @__PURE__ */ b("span", {
|
|
233
198
|
className: "toast icon",
|
|
234
199
|
children: c
|
|
235
|
-
}), /* @__PURE__ */
|
|
200
|
+
}), /* @__PURE__ */ x("div", {
|
|
236
201
|
className: "toast content",
|
|
237
|
-
children: [e.title && /* @__PURE__ */
|
|
202
|
+
children: [e.title && /* @__PURE__ */ b("div", {
|
|
238
203
|
className: "toast title",
|
|
239
204
|
children: e.title
|
|
240
|
-
}), /* @__PURE__ */
|
|
205
|
+
}), /* @__PURE__ */ b("div", {
|
|
241
206
|
className: "toast message",
|
|
242
207
|
children: e.message
|
|
243
208
|
})]
|
|
244
209
|
})]
|
|
245
|
-
}), /* @__PURE__ */
|
|
210
|
+
}), /* @__PURE__ */ b(f, {
|
|
246
211
|
variant: "ghost",
|
|
247
212
|
color: "neutral",
|
|
248
213
|
iconOnly: !0,
|
|
@@ -250,34 +215,34 @@ function B({ entry: e, onDismiss: t }) {
|
|
|
250
215
|
className: "toast close",
|
|
251
216
|
onClick: () => i(!0),
|
|
252
217
|
"aria-label": "Close",
|
|
253
|
-
children: /* @__PURE__ */
|
|
218
|
+
children: /* @__PURE__ */ b(n, {})
|
|
254
219
|
})]
|
|
255
220
|
});
|
|
256
221
|
}
|
|
257
222
|
//#endregion
|
|
258
223
|
//#region src/components/feedback/MToast/MToastProvider.tsx
|
|
259
|
-
var
|
|
260
|
-
function
|
|
261
|
-
let [r, i] =
|
|
224
|
+
var I = 0;
|
|
225
|
+
function L({ position: e = "top-right", duration: t = 4e3, children: n }) {
|
|
226
|
+
let [r, i] = y([]), a = v(t);
|
|
262
227
|
a.current = t;
|
|
263
|
-
let o =
|
|
228
|
+
let o = m((e) => {
|
|
264
229
|
i((t) => t.filter((t) => t.id !== e));
|
|
265
|
-
}, []), s =
|
|
266
|
-
let t = `toast-${++
|
|
230
|
+
}, []), s = m((e) => {
|
|
231
|
+
let t = `toast-${++I}`, n = {
|
|
267
232
|
id: t,
|
|
268
233
|
...e,
|
|
269
234
|
duration: e.duration ?? a.current
|
|
270
235
|
};
|
|
271
236
|
return i((e) => [...e, n]), t;
|
|
272
237
|
}, []);
|
|
273
|
-
return /* @__PURE__ */
|
|
274
|
-
value:
|
|
238
|
+
return /* @__PURE__ */ x(N, {
|
|
239
|
+
value: _(() => ({
|
|
275
240
|
toast: s,
|
|
276
241
|
dismiss: o
|
|
277
242
|
}), [s, o]),
|
|
278
|
-
children: [n, /* @__PURE__ */
|
|
243
|
+
children: [n, /* @__PURE__ */ b(d, { children: /* @__PURE__ */ b("div", {
|
|
279
244
|
className: u("toast container", e),
|
|
280
|
-
children: r.map((e) => /* @__PURE__ */
|
|
245
|
+
children: r.map((e) => /* @__PURE__ */ b(F, {
|
|
281
246
|
entry: e,
|
|
282
247
|
onDismiss: o
|
|
283
248
|
}, e.id))
|
|
@@ -285,6 +250,6 @@ function H({ position: e = "top-right", duration: t = 4e3, children: n }) {
|
|
|
285
250
|
});
|
|
286
251
|
}
|
|
287
252
|
//#endregion
|
|
288
|
-
export {
|
|
253
|
+
export { w as a, T as i, P as n, j as r, L as t };
|
|
289
254
|
|
|
290
|
-
//# sourceMappingURL=feedback-
|
|
255
|
+
//# sourceMappingURL=feedback-D7BTlioj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-D7BTlioj.js","names":[],"sources":["../src/components/feedback/statusIcons.tsx","../src/components/feedback/MAlert/MAlert.tsx","../src/components/feedback/MBanner/MBanner.tsx","../src/components/feedback/MProgressRing/MProgressRing.tsx","../src/components/feedback/MToast/MToastContext.ts","../src/components/feedback/MToast/MToastItem.tsx","../src/components/feedback/MToast/MToastProvider.tsx"],"sourcesContent":["import type {ReactNode} from 'react'\nimport {\n MBoltIcon,\n MErrorIcon,\n MInfoIcon,\n MMoonIcon,\n MNeutralIcon,\n MSunIcon,\n MSuccessIcon,\n MWarningIcon,\n} from '../../icons'\n\nconst statusIcons: Record<string, ReactNode> = {\n success: <MSuccessIcon />,\n warning: <MWarningIcon />,\n error: <MErrorIcon />,\n info: <MInfoIcon />,\n primary: <MInfoIcon />,\n neutral: <MNeutralIcon />,\n light: <MSunIcon />,\n dark: <MMoonIcon />,\n news: <MBoltIcon />,\n}\n\nexport function getStatusIcon(color?: string) {\n if (!color) {\n return statusIcons.info\n }\n\n return statusIcons[color] ?? statusIcons.info\n}\n","import type {MAlertProps} from './MAlert.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getStatusIcon} from '../statusIcons'\nimport './MAlert.css'\n\n// Render inline status messaging with optional heading content.\nexport function MAlert({color = 'info', icon = true, title, hidden, className, children, ...rest}: MAlertProps) {\n const iconView = icon === false ? null : icon === true ? getStatusIcon(color) : icon\n\n return (\n <div className={cn('alert', `color-${color}`, className)} role=\"status\" {...getHiddenProps(hidden)} {...rest}>\n {iconView && <span className=\"icon\">{iconView}</span>}\n <div className=\"main\">\n {title && <div className=\"title\">{title}</div>}\n {children && <div className=\"content\">{children}</div>}\n </div>\n </div>\n )\n}\n","import {useState, useRef} from 'react'\nimport type {MBannerProps} from './MBanner.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport './MBanner.css'\n\n// Render a prominent banner for announcements, CTAs or dismissible messages.\nexport function MBanner({\n color = 'primary',\n variant = 'filled',\n icon,\n action,\n hidden,\n dismissible = false,\n onDismiss,\n className,\n children,\n ...rest\n}: MBannerProps) {\n const [visible, setVisible] = useState(true)\n const [dismissing, setDismissing] = useState(false)\n const wrapRef = useRef<HTMLDivElement>(null)\n\n if (!visible) return null\n\n const handleDismiss = () => {\n setDismissing(true)\n const el = wrapRef.current\n if (!el) {\n setVisible(false)\n onDismiss?.()\n return\n }\n const onEnd = () => {\n setVisible(false)\n setDismissing(false)\n onDismiss?.()\n }\n el.addEventListener('transitionend', onEnd, {once: true})\n setTimeout(onEnd, 1000)\n }\n\n return (\n <div ref={wrapRef} className={cn('banner-wrap', dismissing && 'dismissing')} {...getHiddenProps(hidden)}>\n <div className={cn('banner', `color-${color}`, variant, className)} role=\"banner\" {...rest}>\n {icon && <span className=\"banner-icon\">{icon}</span>}\n <div className=\"banner-content\">{children}</div>\n {action && <div className=\"banner-action\">{action}</div>}\n {dismissible && (\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n className=\"banner-dismiss\"\n onClick={handleDismiss}\n aria-label=\"Dismiss\"\n >\n <MCloseIcon />\n </MButton>\n )}\n </div>\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MProgressRingProps} from './MProgressRing.types'\nimport {cn} from '../../../utils/cn'\nimport './MProgressRing.css'\n\nconst SIZE_PX: Record<string, number> = {xs: 24, sm: 36, md: 56, lg: 88, xl: 128}\nconst DEFAULT_THICKNESS: Record<string, number> = {xs: 2, sm: 3, md: 4, lg: 6, xl: 8}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction resolveDiameter(size: MProgressRingProps['size']): number {\n if (typeof size === 'number') return size\n return SIZE_PX[size ?? 'md'] ?? SIZE_PX.md\n}\n\nfunction resolveThickness(thickness: number | undefined, size: MProgressRingProps['size']): number {\n if (typeof thickness === 'number') return thickness\n if (typeof size === 'number') return Math.max(2, Math.round(size / 14))\n return DEFAULT_THICKNESS[size ?? 'md'] ?? DEFAULT_THICKNESS.md\n}\n\n/**\n * Determinate ring progress — 0–100 with optional centered percent label.\n * Visually consistent with `MLoader`/`MSpinner`: same MColor palette, same\n * size tokens (xs/sm/md/lg/xl). Use a number for a custom diameter when the\n * design needs an off-token size.\n */\nexport function MProgressRing({\n value,\n size = 'md',\n color = 'primary',\n thickness,\n showPercent = true,\n label,\n ariaLabel,\n className,\n style,\n ...rest\n}: MProgressRingProps) {\n const clampedValue = clamp(Math.round(value), 0, 100)\n const diameter = resolveDiameter(size)\n const stroke = resolveThickness(thickness, size)\n const radius = (diameter - stroke) / 2\n const circumference = 2 * Math.PI * radius\n const dashOffset = circumference * (1 - clampedValue / 100)\n\n const inlineStyle: CSSProperties = {\n width: `${diameter}px`,\n height: `${diameter}px`,\n ...style,\n }\n\n const sizeClass = typeof size === 'string' ? size : 'custom'\n const accessibleLabel = ariaLabel ?? `Loading ${clampedValue}%`\n const showLabel = label !== undefined ? label !== null : showPercent\n\n return (\n <div\n className={cn('progress-ring', sizeClass, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={accessibleLabel}\n {...rest}\n >\n <svg className=\"progress-ring-svg\" width={diameter} height={diameter} viewBox={`0 0 ${diameter} ${diameter}`} aria-hidden=\"true\">\n <circle\n className=\"progress-ring-track\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n />\n <circle\n className=\"progress-ring-indicator\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${diameter / 2} ${diameter / 2})`}\n />\n </svg>\n {showLabel ? (\n <span className=\"progress-ring-label\" aria-hidden=\"true\">\n {label !== undefined ? label : `${clampedValue}%`}\n </span>\n ) : null}\n </div>\n )\n}\n","import {createContext, useContext} from 'react'\nimport type {MToastContext as MToastContextType} from './MToast.types'\n\nconst ToastCtx = createContext<MToastContextType | null>(null)\n\nexport const MToastContextProvider = ToastCtx.Provider\n\nexport function useMToast(): MToastContextType {\n const ctx = useContext(ToastCtx)\n if (!ctx) throw new Error('useMToast must be used inside MToastProvider')\n return ctx\n}\n","import {useEffect, useState} from 'react'\nimport type {MToastEntry} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport {MCloseIcon} from '../../../icons'\nimport {MButton} from '../../controls'\nimport {getStatusIcon} from '../statusIcons'\n\n// Single toast notification with enter/exit animation.\nexport function MToastItem({entry, onDismiss}: {entry: MToastEntry; onDismiss: (id: string) => void}) {\n const [exiting, setExiting] = useState(false)\n const duration = entry.duration ?? 4000\n\n useEffect(() => {\n if (duration <= 0) return\n const timer = setTimeout(() => setExiting(true), duration)\n return () => clearTimeout(timer)\n }, [duration])\n\n function handleEnd() {\n if (exiting) onDismiss(entry.id)\n }\n\n const color = entry.color || 'info'\n const icon =\n entry.icon === false\n ? null\n : entry.icon === undefined || entry.icon === true\n ? getStatusIcon(color)\n : entry.icon\n\n return (\n <div className={cn('toast item', `color-${color}`, exiting && 'exit')} role=\"status\" onAnimationEnd={handleEnd}>\n <div className=\"toast body\">\n {icon && <span className=\"toast icon\">{icon}</span>}\n <div className=\"toast content\">\n {entry.title && <div className=\"toast title\">{entry.title}</div>}\n <div className=\"toast message\">{entry.message}</div>\n </div>\n </div>\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n size=\"xs\"\n className=\"toast close\"\n onClick={() => setExiting(true)}\n aria-label=\"Close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )\n}\n","import {useCallback, useMemo, useRef, useState} from 'react'\nimport {MPortal} from '../../primitives'\nimport {MToastContextProvider, useMToast} from './MToastContext'\nimport {MToastItem} from './MToastItem'\nimport type {MToastEntry, MToastOptions, MToastProviderProps} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport './MToast.css'\n\nlet counter = 0\n\n// Global toast container with auto-dismiss and stacking.\nexport function MToastProvider({position = 'top-right', duration = 4000, children}: MToastProviderProps) {\n const [toasts, setToasts] = useState<MToastEntry[]>([])\n const defaultDuration = useRef(duration)\n defaultDuration.current = duration\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const toast = useCallback((options: MToastOptions) => {\n const id = `toast-${++counter}`\n const entry: MToastEntry = {\n id,\n ...options,\n duration: options.duration ?? defaultDuration.current,\n }\n setToasts((prev) => [...prev, entry])\n return id\n }, [])\n\n const ctx = useMemo(() => ({toast, dismiss}), [toast, dismiss])\n\n return (\n <MToastContextProvider value={ctx}>\n {children}\n <MPortal>\n <div className={cn('toast container', position)}>\n {toasts.map((entry) => (\n <MToastItem key={entry.id} entry={entry} onDismiss={dismiss} />\n ))}\n </div>\n </MPortal>\n </MToastContextProvider>\n )\n}\n\nexport {useMToast}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./theme-BfNZicWk.cjs`),t=require(`./icons-BfdQ45F2.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./MPortal-BciZHNDC.cjs`),i=require(`./MButton-R08y1HCT.cjs`);require(`./core-DBpQf3uY.cjs`);let a=require(`react`),o=require(`react/jsx-runtime`);var s={success:(0,o.jsx)(t.yi,{}),warning:(0,o.jsx)(t.Si,{}),error:(0,o.jsx)(t.bi,{}),info:(0,o.jsx)(t.xi,{}),primary:(0,o.jsx)(t.xi,{}),neutral:(0,o.jsx)(t.vi,{}),light:(0,o.jsx)(t.Ln,{}),dark:(0,o.jsx)(t.In,{}),news:(0,o.jsx)(t.Pn,{})};function c(e){return e?s[e]??s.info:s.info}function l({color:t=`info`,icon:r=!0,title:i,hidden:a,className:s,children:l,...u}){let d=r===!1?null:r===!0?c(t):r;return(0,o.jsxs)(`div`,{className:n.t(`alert`,`color-${t}`,s),role:`status`,...e.r(a),...u,children:[d&&(0,o.jsx)(`span`,{className:`icon`,children:d}),(0,o.jsxs)(`div`,{className:`main`,children:[i&&(0,o.jsx)(`div`,{className:`title`,children:i}),l&&(0,o.jsx)(`div`,{className:`content`,children:l})]})]})}function u({color:r=`primary`,variant:s=`filled`,icon:c,action:l,hidden:u,dismissible:d=!1,onDismiss:f,className:p,children:m,...h}){let[g,_]=(0,a.useState)(!0),[v,y]=(0,a.useState)(!1),b=(0,a.useRef)(null);if(!g)return null;let x=()=>{y(!0);let e=b.current;if(!e){_(!1),f?.();return}let t=()=>{_(!1),y(!1),f?.()};e.addEventListener(`transitionend`,t,{once:!0}),setTimeout(t,1e3)};return(0,o.jsx)(`div`,{ref:b,className:n.t(`banner-wrap`,v&&`dismissing`),...e.r(u),children:(0,o.jsxs)(`div`,{className:n.t(`banner`,`color-${r}`,s,p),role:`banner`,...h,children:[c&&(0,o.jsx)(`span`,{className:`banner-icon`,children:c}),(0,o.jsx)(`div`,{className:`banner-content`,children:m}),l&&(0,o.jsx)(`div`,{className:`banner-action`,children:l}),d&&(0,o.jsx)(i.t,{variant:`link`,color:`neutral`,iconOnly:!0,size:`sm`,className:`banner-dismiss`,onClick:x,"aria-label":`Dismiss`,children:(0,o.jsx)(t.Ki,{})})]})})}var d={xs:24,sm:36,md:56,lg:88,xl:128},f={xs:2,sm:3,md:4,lg:6,xl:8};function p(e,t,n){return Math.max(t,Math.min(n,e))}function m(e){return typeof e==`number`?e:d[e??`md`]??d.md}function h(e,t){return typeof e==`number`?e:typeof t==`number`?Math.max(2,Math.round(t/14)):f[t??`md`]??f.md}function g({value:e,size:t=`md`,color:r=`primary`,thickness:i,showPercent:a=!0,label:s,ariaLabel:c,className:l,style:u,...d}){let f=p(Math.round(e),0,100),g=m(t),_=h(i,t),v=(g-_)/2,y=2*Math.PI*v,b=y*(1-f/100),x={width:`${g}px`,height:`${g}px`,...u},S=typeof t==`string`?t:`custom`,C=c??`Loading ${f}%`,w=s===void 0?a:s!==null;return(0,o.jsxs)(`div`,{className:n.t(`progress-ring`,S,r&&`color-${r}`,l),style:x,role:`progressbar`,"aria-valuenow":f,"aria-valuemin":0,"aria-valuemax":100,"aria-label":C,...d,children:[(0,o.jsxs)(`svg`,{className:`progress-ring-svg`,width:g,height:g,viewBox:`0 0 ${g} ${g}`,"aria-hidden":`true`,children:[(0,o.jsx)(`circle`,{className:`progress-ring-track`,cx:g/2,cy:g/2,r:v,fill:`none`,strokeWidth:_}),(0,o.jsx)(`circle`,{className:`progress-ring-indicator`,cx:g/2,cy:g/2,r:v,fill:`none`,strokeWidth:_,strokeDasharray:y,strokeDashoffset:b,strokeLinecap:`round`,transform:`rotate(-90 ${g/2} ${g/2})`})]}),w?(0,o.jsx)(`span`,{className:`progress-ring-label`,"aria-hidden":`true`,children:s===void 0?`${f}%`:s}):null]})}var _=(0,a.createContext)(null),v=_.Provider;function y(){let e=(0,a.useContext)(_);if(!e)throw Error(`useMToast must be used inside MToastProvider`);return e}function b({entry:e,onDismiss:r}){let[s,l]=(0,a.useState)(!1),u=e.duration??4e3;(0,a.useEffect)(()=>{if(u<=0)return;let e=setTimeout(()=>l(!0),u);return()=>clearTimeout(e)},[u]);function d(){s&&r(e.id)}let f=e.color||`info`,p=e.icon===!1?null:e.icon===void 0||e.icon===!0?c(f):e.icon;return(0,o.jsxs)(`div`,{className:n.t(`toast item`,`color-${f}`,s&&`exit`),role:`status`,onAnimationEnd:d,children:[(0,o.jsxs)(`div`,{className:`toast body`,children:[p&&(0,o.jsx)(`span`,{className:`toast icon`,children:p}),(0,o.jsxs)(`div`,{className:`toast content`,children:[e.title&&(0,o.jsx)(`div`,{className:`toast title`,children:e.title}),(0,o.jsx)(`div`,{className:`toast message`,children:e.message})]})]}),(0,o.jsx)(i.t,{variant:`ghost`,color:`neutral`,iconOnly:!0,size:`xs`,className:`toast close`,onClick:()=>l(!0),"aria-label":`Close`,children:(0,o.jsx)(t.Ki,{})})]})}var x=0;function S({position:e=`top-right`,duration:t=4e3,children:i}){let[s,c]=(0,a.useState)([]),l=(0,a.useRef)(t);l.current=t;let u=(0,a.useCallback)(e=>{c(t=>t.filter(t=>t.id!==e))},[]),d=(0,a.useCallback)(e=>{let t=`toast-${++x}`,n={id:t,...e,duration:e.duration??l.current};return c(e=>[...e,n]),t},[]);return(0,o.jsxs)(v,{value:(0,a.useMemo)(()=>({toast:d,dismiss:u}),[d,u]),children:[i,(0,o.jsx)(r.t,{children:(0,o.jsx)(`div`,{className:n.t(`toast container`,e),children:s.map(e=>(0,o.jsx)(b,{entry:e,onDismiss:u},e.id))})})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});
|
|
2
|
+
//# sourceMappingURL=feedback-u1ssUT7e.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-C8RfsfYJ.cjs","names":[],"sources":["../src/components/feedback/statusIcons.tsx","../src/components/feedback/MAlert/MAlert.tsx","../src/components/feedback/MBanner/MBanner.tsx","../src/components/feedback/MLoader/MLoader.tsx","../src/components/feedback/MProgressRing/MProgressRing.tsx","../src/components/feedback/MToast/MToastContext.ts","../src/components/feedback/MToast/MToastItem.tsx","../src/components/feedback/MToast/MToastProvider.tsx"],"sourcesContent":["import type {ReactNode} from 'react'\nimport {\n MBoltIcon,\n MErrorIcon,\n MInfoIcon,\n MMoonIcon,\n MNeutralIcon,\n MSunIcon,\n MSuccessIcon,\n MWarningIcon,\n} from '../../icons'\n\nconst statusIcons: Record<string, ReactNode> = {\n success: <MSuccessIcon />,\n warning: <MWarningIcon />,\n error: <MErrorIcon />,\n info: <MInfoIcon />,\n primary: <MInfoIcon />,\n neutral: <MNeutralIcon />,\n light: <MSunIcon />,\n dark: <MMoonIcon />,\n news: <MBoltIcon />,\n}\n\nexport function getStatusIcon(color?: string) {\n if (!color) {\n return statusIcons.info\n }\n\n return statusIcons[color] ?? statusIcons.info\n}\n","import type {MAlertProps} from './MAlert.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getStatusIcon} from '../statusIcons'\nimport './MAlert.css'\n\n// Render inline status messaging with optional heading content.\nexport function MAlert({color = 'info', icon = true, title, hidden, className, children, ...rest}: MAlertProps) {\n const iconView = icon === false ? null : icon === true ? getStatusIcon(color) : icon\n\n return (\n <div className={cn('alert', `color-${color}`, className)} role=\"status\" {...getHiddenProps(hidden)} {...rest}>\n {iconView && <span className=\"icon\">{iconView}</span>}\n <div className=\"main\">\n {title && <div className=\"title\">{title}</div>}\n {children && <div className=\"content\">{children}</div>}\n </div>\n </div>\n )\n}\n","import {useState, useRef} from 'react'\nimport type {MBannerProps} from './MBanner.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport './MBanner.css'\n\n// Render a prominent banner for announcements, CTAs or dismissible messages.\nexport function MBanner({\n color = 'primary',\n variant = 'filled',\n icon,\n action,\n hidden,\n dismissible = false,\n onDismiss,\n className,\n children,\n ...rest\n}: MBannerProps) {\n const [visible, setVisible] = useState(true)\n const [dismissing, setDismissing] = useState(false)\n const wrapRef = useRef<HTMLDivElement>(null)\n\n if (!visible) return null\n\n const handleDismiss = () => {\n setDismissing(true)\n const el = wrapRef.current\n if (!el) {\n setVisible(false)\n onDismiss?.()\n return\n }\n const onEnd = () => {\n setVisible(false)\n setDismissing(false)\n onDismiss?.()\n }\n el.addEventListener('transitionend', onEnd, {once: true})\n setTimeout(onEnd, 1000)\n }\n\n return (\n <div ref={wrapRef} className={cn('banner-wrap', dismissing && 'dismissing')} {...getHiddenProps(hidden)}>\n <div className={cn('banner', `color-${color}`, variant, className)} role=\"banner\" {...rest}>\n {icon && <span className=\"banner-icon\">{icon}</span>}\n <div className=\"banner-content\">{children}</div>\n {action && <div className=\"banner-action\">{action}</div>}\n {dismissible && (\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n className=\"banner-dismiss\"\n onClick={handleDismiss}\n aria-label=\"Dismiss\"\n >\n <MCloseIcon />\n </MButton>\n )}\n </div>\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MSize} from '../../../theme'\nimport {MSpinner} from '../MSpinner'\nimport {MStack} from '../../layout'\nimport {MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\nimport type {MLoaderProps} from './MLoader.types'\nimport './MLoader.css'\n\nconst TEXT_SIZE: Record<MSize, MSize> = {xs: 'xs', sm: 'sm', md: 'md', lg: 'lg', xl: 'xl'}\n\n// Keep loading feedback minimal so apps can reuse it without card or alert chrome.\nexport function MLoader({\n color = 'primary',\n size = 'lg',\n label = 'Loading',\n center = true,\n minHeight = '40vh',\n className,\n style,\n ...rest\n}: MLoaderProps) {\n const inlineStyle: CSSProperties = {\n minHeight: typeof minHeight === 'number' ? `${minHeight}px` : minHeight,\n ...style,\n }\n\n return (\n <div className={cn('loader', center && 'center', className)} style={inlineStyle} {...rest}>\n <MStack align={'center'}>\n <MSpinner size={size} color={color} label={label} />\n <MText tone={'muted'} align={'center'} size={typeof size === 'number' ? undefined : TEXT_SIZE[size]}>\n {label}\n </MText>\n </MStack>\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MProgressRingProps} from './MProgressRing.types'\nimport {cn} from '../../../utils/cn'\nimport './MProgressRing.css'\n\nconst SIZE_PX: Record<string, number> = {xs: 24, sm: 36, md: 56, lg: 88, xl: 128}\nconst DEFAULT_THICKNESS: Record<string, number> = {xs: 2, sm: 3, md: 4, lg: 6, xl: 8}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction resolveDiameter(size: MProgressRingProps['size']): number {\n if (typeof size === 'number') return size\n return SIZE_PX[size ?? 'md'] ?? SIZE_PX.md\n}\n\nfunction resolveThickness(thickness: number | undefined, size: MProgressRingProps['size']): number {\n if (typeof thickness === 'number') return thickness\n if (typeof size === 'number') return Math.max(2, Math.round(size / 14))\n return DEFAULT_THICKNESS[size ?? 'md'] ?? DEFAULT_THICKNESS.md\n}\n\n/**\n * Determinate ring progress — 0–100 with optional centered percent label.\n * Visually consistent with `MLoader`/`MSpinner`: same MColor palette, same\n * size tokens (xs/sm/md/lg/xl). Use a number for a custom diameter when the\n * design needs an off-token size.\n */\nexport function MProgressRing({\n value,\n size = 'md',\n color = 'primary',\n thickness,\n showPercent = true,\n label,\n ariaLabel,\n className,\n style,\n ...rest\n}: MProgressRingProps) {\n const clampedValue = clamp(Math.round(value), 0, 100)\n const diameter = resolveDiameter(size)\n const stroke = resolveThickness(thickness, size)\n const radius = (diameter - stroke) / 2\n const circumference = 2 * Math.PI * radius\n const dashOffset = circumference * (1 - clampedValue / 100)\n\n const inlineStyle: CSSProperties = {\n width: `${diameter}px`,\n height: `${diameter}px`,\n ...style,\n }\n\n const sizeClass = typeof size === 'string' ? size : 'custom'\n const accessibleLabel = ariaLabel ?? `Loading ${clampedValue}%`\n const showLabel = label !== undefined ? label !== null : showPercent\n\n return (\n <div\n className={cn('progress-ring', sizeClass, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={accessibleLabel}\n {...rest}\n >\n <svg className=\"progress-ring-svg\" width={diameter} height={diameter} viewBox={`0 0 ${diameter} ${diameter}`} aria-hidden=\"true\">\n <circle\n className=\"progress-ring-track\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n />\n <circle\n className=\"progress-ring-indicator\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${diameter / 2} ${diameter / 2})`}\n />\n </svg>\n {showLabel ? (\n <span className=\"progress-ring-label\" aria-hidden=\"true\">\n {label !== undefined ? label : `${clampedValue}%`}\n </span>\n ) : null}\n </div>\n )\n}\n","import {createContext, useContext} from 'react'\nimport type {MToastContext as MToastContextType} from './MToast.types'\n\nconst ToastCtx = createContext<MToastContextType | null>(null)\n\nexport const MToastContextProvider = ToastCtx.Provider\n\nexport function useMToast(): MToastContextType {\n const ctx = useContext(ToastCtx)\n if (!ctx) throw new Error('useMToast must be used inside MToastProvider')\n return ctx\n}\n","import {useEffect, useState} from 'react'\nimport type {MToastEntry} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport {MCloseIcon} from '../../../icons'\nimport {MButton} from '../../controls'\nimport {getStatusIcon} from '../statusIcons'\n\n// Single toast notification with enter/exit animation.\nexport function MToastItem({entry, onDismiss}: {entry: MToastEntry; onDismiss: (id: string) => void}) {\n const [exiting, setExiting] = useState(false)\n const duration = entry.duration ?? 4000\n\n useEffect(() => {\n if (duration <= 0) return\n const timer = setTimeout(() => setExiting(true), duration)\n return () => clearTimeout(timer)\n }, [duration])\n\n function handleEnd() {\n if (exiting) onDismiss(entry.id)\n }\n\n const color = entry.color || 'info'\n const icon =\n entry.icon === false\n ? null\n : entry.icon === undefined || entry.icon === true\n ? getStatusIcon(color)\n : entry.icon\n\n return (\n <div className={cn('toast item', `color-${color}`, exiting && 'exit')} role=\"status\" onAnimationEnd={handleEnd}>\n <div className=\"toast body\">\n {icon && <span className=\"toast icon\">{icon}</span>}\n <div className=\"toast content\">\n {entry.title && <div className=\"toast title\">{entry.title}</div>}\n <div className=\"toast message\">{entry.message}</div>\n </div>\n </div>\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n size=\"xs\"\n className=\"toast close\"\n onClick={() => setExiting(true)}\n aria-label=\"Close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )\n}\n","import {useCallback, useMemo, useRef, useState} from 'react'\nimport {MPortal} from '../../primitives'\nimport {MToastContextProvider, useMToast} from './MToastContext'\nimport {MToastItem} from './MToastItem'\nimport type {MToastEntry, MToastOptions, MToastProviderProps} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport './MToast.css'\n\nlet counter = 0\n\n// Global toast container with auto-dismiss and stacking.\nexport function MToastProvider({position = 'top-right', duration = 4000, children}: MToastProviderProps) {\n const [toasts, setToasts] = useState<MToastEntry[]>([])\n const defaultDuration = useRef(duration)\n defaultDuration.current = duration\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const toast = useCallback((options: MToastOptions) => {\n const id = `toast-${++counter}`\n const entry: MToastEntry = {\n id,\n ...options,\n duration: options.duration ?? defaultDuration.current,\n }\n setToasts((prev) => [...prev, entry])\n return id\n }, [])\n\n const ctx = useMemo(() => ({toast, dismiss}), [toast, dismiss])\n\n return (\n <MToastContextProvider value={ctx}>\n {children}\n <MPortal>\n <div className={cn('toast container', position)}>\n {toasts.map((entry) => (\n <MToastItem key={entry.id} entry={entry} onDismiss={dismiss} />\n ))}\n </div>\n </MPortal>\n </MToastContextProvider>\n )\n}\n\nexport {useMToast}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feedback-u1ssUT7e.cjs","names":[],"sources":["../src/components/feedback/statusIcons.tsx","../src/components/feedback/MAlert/MAlert.tsx","../src/components/feedback/MBanner/MBanner.tsx","../src/components/feedback/MProgressRing/MProgressRing.tsx","../src/components/feedback/MToast/MToastContext.ts","../src/components/feedback/MToast/MToastItem.tsx","../src/components/feedback/MToast/MToastProvider.tsx"],"sourcesContent":["import type {ReactNode} from 'react'\nimport {\n MBoltIcon,\n MErrorIcon,\n MInfoIcon,\n MMoonIcon,\n MNeutralIcon,\n MSunIcon,\n MSuccessIcon,\n MWarningIcon,\n} from '../../icons'\n\nconst statusIcons: Record<string, ReactNode> = {\n success: <MSuccessIcon />,\n warning: <MWarningIcon />,\n error: <MErrorIcon />,\n info: <MInfoIcon />,\n primary: <MInfoIcon />,\n neutral: <MNeutralIcon />,\n light: <MSunIcon />,\n dark: <MMoonIcon />,\n news: <MBoltIcon />,\n}\n\nexport function getStatusIcon(color?: string) {\n if (!color) {\n return statusIcons.info\n }\n\n return statusIcons[color] ?? statusIcons.info\n}\n","import type {MAlertProps} from './MAlert.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getStatusIcon} from '../statusIcons'\nimport './MAlert.css'\n\n// Render inline status messaging with optional heading content.\nexport function MAlert({color = 'info', icon = true, title, hidden, className, children, ...rest}: MAlertProps) {\n const iconView = icon === false ? null : icon === true ? getStatusIcon(color) : icon\n\n return (\n <div className={cn('alert', `color-${color}`, className)} role=\"status\" {...getHiddenProps(hidden)} {...rest}>\n {iconView && <span className=\"icon\">{iconView}</span>}\n <div className=\"main\">\n {title && <div className=\"title\">{title}</div>}\n {children && <div className=\"content\">{children}</div>}\n </div>\n </div>\n )\n}\n","import {useState, useRef} from 'react'\nimport type {MBannerProps} from './MBanner.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport './MBanner.css'\n\n// Render a prominent banner for announcements, CTAs or dismissible messages.\nexport function MBanner({\n color = 'primary',\n variant = 'filled',\n icon,\n action,\n hidden,\n dismissible = false,\n onDismiss,\n className,\n children,\n ...rest\n}: MBannerProps) {\n const [visible, setVisible] = useState(true)\n const [dismissing, setDismissing] = useState(false)\n const wrapRef = useRef<HTMLDivElement>(null)\n\n if (!visible) return null\n\n const handleDismiss = () => {\n setDismissing(true)\n const el = wrapRef.current\n if (!el) {\n setVisible(false)\n onDismiss?.()\n return\n }\n const onEnd = () => {\n setVisible(false)\n setDismissing(false)\n onDismiss?.()\n }\n el.addEventListener('transitionend', onEnd, {once: true})\n setTimeout(onEnd, 1000)\n }\n\n return (\n <div ref={wrapRef} className={cn('banner-wrap', dismissing && 'dismissing')} {...getHiddenProps(hidden)}>\n <div className={cn('banner', `color-${color}`, variant, className)} role=\"banner\" {...rest}>\n {icon && <span className=\"banner-icon\">{icon}</span>}\n <div className=\"banner-content\">{children}</div>\n {action && <div className=\"banner-action\">{action}</div>}\n {dismissible && (\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n className=\"banner-dismiss\"\n onClick={handleDismiss}\n aria-label=\"Dismiss\"\n >\n <MCloseIcon />\n </MButton>\n )}\n </div>\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MProgressRingProps} from './MProgressRing.types'\nimport {cn} from '../../../utils/cn'\nimport './MProgressRing.css'\n\nconst SIZE_PX: Record<string, number> = {xs: 24, sm: 36, md: 56, lg: 88, xl: 128}\nconst DEFAULT_THICKNESS: Record<string, number> = {xs: 2, sm: 3, md: 4, lg: 6, xl: 8}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction resolveDiameter(size: MProgressRingProps['size']): number {\n if (typeof size === 'number') return size\n return SIZE_PX[size ?? 'md'] ?? SIZE_PX.md\n}\n\nfunction resolveThickness(thickness: number | undefined, size: MProgressRingProps['size']): number {\n if (typeof thickness === 'number') return thickness\n if (typeof size === 'number') return Math.max(2, Math.round(size / 14))\n return DEFAULT_THICKNESS[size ?? 'md'] ?? DEFAULT_THICKNESS.md\n}\n\n/**\n * Determinate ring progress — 0–100 with optional centered percent label.\n * Visually consistent with `MLoader`/`MSpinner`: same MColor palette, same\n * size tokens (xs/sm/md/lg/xl). Use a number for a custom diameter when the\n * design needs an off-token size.\n */\nexport function MProgressRing({\n value,\n size = 'md',\n color = 'primary',\n thickness,\n showPercent = true,\n label,\n ariaLabel,\n className,\n style,\n ...rest\n}: MProgressRingProps) {\n const clampedValue = clamp(Math.round(value), 0, 100)\n const diameter = resolveDiameter(size)\n const stroke = resolveThickness(thickness, size)\n const radius = (diameter - stroke) / 2\n const circumference = 2 * Math.PI * radius\n const dashOffset = circumference * (1 - clampedValue / 100)\n\n const inlineStyle: CSSProperties = {\n width: `${diameter}px`,\n height: `${diameter}px`,\n ...style,\n }\n\n const sizeClass = typeof size === 'string' ? size : 'custom'\n const accessibleLabel = ariaLabel ?? `Loading ${clampedValue}%`\n const showLabel = label !== undefined ? label !== null : showPercent\n\n return (\n <div\n className={cn('progress-ring', sizeClass, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={accessibleLabel}\n {...rest}\n >\n <svg className=\"progress-ring-svg\" width={diameter} height={diameter} viewBox={`0 0 ${diameter} ${diameter}`} aria-hidden=\"true\">\n <circle\n className=\"progress-ring-track\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n />\n <circle\n className=\"progress-ring-indicator\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${diameter / 2} ${diameter / 2})`}\n />\n </svg>\n {showLabel ? (\n <span className=\"progress-ring-label\" aria-hidden=\"true\">\n {label !== undefined ? label : `${clampedValue}%`}\n </span>\n ) : null}\n </div>\n )\n}\n","import {createContext, useContext} from 'react'\nimport type {MToastContext as MToastContextType} from './MToast.types'\n\nconst ToastCtx = createContext<MToastContextType | null>(null)\n\nexport const MToastContextProvider = ToastCtx.Provider\n\nexport function useMToast(): MToastContextType {\n const ctx = useContext(ToastCtx)\n if (!ctx) throw new Error('useMToast must be used inside MToastProvider')\n return ctx\n}\n","import {useEffect, useState} from 'react'\nimport type {MToastEntry} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport {MCloseIcon} from '../../../icons'\nimport {MButton} from '../../controls'\nimport {getStatusIcon} from '../statusIcons'\n\n// Single toast notification with enter/exit animation.\nexport function MToastItem({entry, onDismiss}: {entry: MToastEntry; onDismiss: (id: string) => void}) {\n const [exiting, setExiting] = useState(false)\n const duration = entry.duration ?? 4000\n\n useEffect(() => {\n if (duration <= 0) return\n const timer = setTimeout(() => setExiting(true), duration)\n return () => clearTimeout(timer)\n }, [duration])\n\n function handleEnd() {\n if (exiting) onDismiss(entry.id)\n }\n\n const color = entry.color || 'info'\n const icon =\n entry.icon === false\n ? null\n : entry.icon === undefined || entry.icon === true\n ? getStatusIcon(color)\n : entry.icon\n\n return (\n <div className={cn('toast item', `color-${color}`, exiting && 'exit')} role=\"status\" onAnimationEnd={handleEnd}>\n <div className=\"toast body\">\n {icon && <span className=\"toast icon\">{icon}</span>}\n <div className=\"toast content\">\n {entry.title && <div className=\"toast title\">{entry.title}</div>}\n <div className=\"toast message\">{entry.message}</div>\n </div>\n </div>\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n size=\"xs\"\n className=\"toast close\"\n onClick={() => setExiting(true)}\n aria-label=\"Close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )\n}\n","import {useCallback, useMemo, useRef, useState} from 'react'\nimport {MPortal} from '../../primitives'\nimport {MToastContextProvider, useMToast} from './MToastContext'\nimport {MToastItem} from './MToastItem'\nimport type {MToastEntry, MToastOptions, MToastProviderProps} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport './MToast.css'\n\nlet counter = 0\n\n// Global toast container with auto-dismiss and stacking.\nexport function MToastProvider({position = 'top-right', duration = 4000, children}: MToastProviderProps) {\n const [toasts, setToasts] = useState<MToastEntry[]>([])\n const defaultDuration = useRef(duration)\n defaultDuration.current = duration\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const toast = useCallback((options: MToastOptions) => {\n const id = `toast-${++counter}`\n const entry: MToastEntry = {\n id,\n ...options,\n duration: options.duration ?? defaultDuration.current,\n }\n setToasts((prev) => [...prev, entry])\n return id\n }, [])\n\n const ctx = useMemo(() => ({toast, dismiss}), [toast, dismiss])\n\n return (\n <MToastContextProvider value={ctx}>\n {children}\n <MPortal>\n <div className={cn('toast container', position)}>\n {toasts.map((entry) => (\n <MToastItem key={entry.id} entry={entry} onDismiss={dismiss} />\n ))}\n </div>\n </MPortal>\n </MToastContextProvider>\n )\n}\n\nexport {useMToast}\n"],"mappings":"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"}
|
package/dist/feedback.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(`./MButton-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MButton-R08y1HCT.cjs`),t=require(`./feedback-u1ssUT7e.cjs`),n=require(`./MSkeleton-CLSU5pL6.cjs`),r=require(`./MTag-BtlOVMRl.cjs`),i=require(`./MLoader-XcpKlLrd.cjs`);exports.MAlert=t.a,exports.MBadge=n.n,exports.MBanner=t.i,exports.MLoader=i.t,exports.MProgressRing=t.r,exports.MSkeleton=n.t,exports.MSpinner=e.r,exports.MTag=r.t,exports.MToastProvider=t.t,exports.useMToast=t.n;
|
package/dist/feedback.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
3
|
import { r as e } from "./MButton-C1pnL4_j.js";
|
|
4
|
-
import { a as t, i as n, n as r,
|
|
5
|
-
import { n as
|
|
6
|
-
import { t as
|
|
7
|
-
|
|
4
|
+
import { a as t, i as n, n as r, r as i, t as a } from "./feedback-D7BTlioj.js";
|
|
5
|
+
import { n as o, t as s } from "./MSkeleton-C5uD4Axo.js";
|
|
6
|
+
import { t as c } from "./MTag-BF6htPr-.js";
|
|
7
|
+
import { t as l } from "./MLoader-CnvWqFtA.js";
|
|
8
|
+
export { t as MAlert, o as MBadge, n as MBanner, l as MLoader, i as MProgressRing, s as MSkeleton, e as MSpinner, c as MTag, a as MToastProvider, r as useMToast };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./validators-B6yWdsu2.cjs`);require(`./core-
|
|
2
|
-
//# sourceMappingURL=form-
|
|
1
|
+
const e=require(`./validators-B6yWdsu2.cjs`);require(`./core-DBpQf3uY.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(null);function i(){return(0,t.useContext)(r)}function a({initialValues:i={},onSubmit:a,onChange:o,validationMode:s=`onBlur`,children:c,className:l,style:u,noValidate:d=!0,...f}){let[p,m]=(0,t.useState)({...i}),[h,g]=(0,t.useState)({}),[_,v]=(0,t.useState)({}),[y,b]=(0,t.useState)(!1),x=(0,t.useRef)(new Map),S=(0,t.useCallback)(e=>{x.current.set(e.name,e)},[]),C=(0,t.useCallback)(e=>{x.current.delete(e)},[]),w=(0,t.useCallback)((t,n)=>{let r=x.current.get(t);if(!r)return{valid:!0};let i=n===void 0?p[t]:n,a=i==null?``:String(i);if(r.required){let t=e.g(a);if(!t.valid)return t}if(r.validate)for(let e of r.validate){let t=e(a);if(!t.valid)return t}return{valid:!0}},[p]),T=(0,t.useCallback)(e=>{let t=w(e);return g(n=>{if(t.valid){let t={...n};return delete t[e],t}return{...n,[e]:t.error}}),t},[w]),E=(0,t.useCallback)(()=>{let e=!0,t={};for(let[n]of x.current){let r=w(n);r.valid||(e=!1,t[n]=r.error)}g(t);let n={};for(let[e]of x.current)n[e]=!0;return v(n),e},[w]),D=(0,t.useCallback)((e,t)=>{m(n=>{let r={...n,[e]:t};return o?.(r),r}),s===`onChange`&&_[e]&&setTimeout(()=>T(e),0)},[o,s,_,T]),O=(0,t.useCallback)((e,t)=>{g(n=>({...n,[e]:t}))},[]),k=(0,t.useCallback)((e,t)=>{v(n=>({...n,[e]:t})),s===`onBlur`&&t&&T(e)},[s,T]),A=(0,t.useCallback)(()=>{m({...i}),g({}),v({}),b(!1)},[i]),j=(0,t.useCallback)(async e=>{if(e.preventDefault(),y||!E())return;b(!0);let t={setSubmitting:b,resetForm:A,setFieldError:O};try{await a?.(p,t)}finally{b(!1)}},[y,E,p,a,A,O]),M=(0,t.useMemo)(()=>({values:p,errors:h,touched:_,registerField:S,unregisterField:C,setFieldValue:D,setFieldError:O,setFieldTouched:k,validateField:T,validateAll:E,resetForm:A,isSubmitting:y}),[p,h,_,S,C,D,O,k,T,E,A,y]);return(0,n.jsx)(r.Provider,{value:M,children:(0,n.jsx)(`form`,{onSubmit:j,noValidate:d,className:`form${l?` ${l}`:``}`,style:u,...f,children:typeof c==`function`?c(M):c})})}function o(e,n){let r=i();(0,t.useEffect)(()=>{if(r)return r.registerField({name:e,validate:n?.validate,required:n?.required}),()=>r.unregisterField(e)},[r,e,n?.validate,n?.required]);let a=(0,t.useCallback)(t=>{r?.setFieldValue(e,t)},[r,e]),o=(0,t.useCallback)(()=>{r?.setFieldTouched(e,!0)},[r,e]);return{value:r?.values[e]??``,error:r?.errors[e],touched:r?.touched[e]??!1,onChange:a,onBlur:o}}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=form-BWGLrCPi.cjs.map
|