@banzamel/mineralui 1.9.1 → 1.10.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 +22 -55
- package/dist/MAvatar-BElYyQXH.cjs +2 -0
- package/dist/MAvatar-BElYyQXH.cjs.map +1 -0
- package/dist/MAvatar-CIvYzQV4.js +63 -0
- package/dist/MAvatar-CIvYzQV4.js.map +1 -0
- package/dist/{MButton-C1pnL4_j.js → MButton-C94fZ3l9.js} +1 -1
- package/dist/{MButton-C1pnL4_j.js.map → MButton-C94fZ3l9.js.map} +1 -1
- package/dist/{MButton-DFRHWHzh.cjs → MButton-ouB6903s.cjs} +2 -2
- package/dist/{MButton-DFRHWHzh.cjs.map → MButton-ouB6903s.cjs.map} +1 -1
- package/dist/MButtonGroup-BhGt-Yy1.js +30 -0
- package/dist/MButtonGroup-BhGt-Yy1.js.map +1 -0
- package/dist/MButtonGroup-yumQneDa.cjs +2 -0
- package/dist/MButtonGroup-yumQneDa.cjs.map +1 -0
- package/dist/MCard-9ucghJJs.js +89 -0
- package/dist/MCard-9ucghJJs.js.map +1 -0
- package/dist/MCard-Bg_R86Gr.cjs +2 -0
- package/dist/MCard-Bg_R86Gr.cjs.map +1 -0
- package/dist/{MCheckbox-B7SpcD4H.js → MCheckbox-B-nT2OBE.js} +1 -1
- package/dist/{MCheckbox-B7SpcD4H.js.map → MCheckbox-B-nT2OBE.js.map} +1 -1
- package/dist/{MCheckbox-Dn3p_9-1.cjs → MCheckbox-Cbk5hwzJ.cjs} +2 -2
- package/dist/{MCheckbox-Dn3p_9-1.cjs.map → MCheckbox-Cbk5hwzJ.cjs.map} +1 -1
- package/dist/MDetailList-CpwrF22b.cjs +2 -0
- package/dist/MDetailList-CpwrF22b.cjs.map +1 -0
- package/dist/MDetailList-Gh5Y0UOx.js +89 -0
- package/dist/MDetailList-Gh5Y0UOx.js.map +1 -0
- package/dist/{MDropdownMenu-c9U3sEcl.cjs → MDropdownMenu-BT3u-ZJj.cjs} +2 -2
- package/dist/{MDropdownMenu-c9U3sEcl.cjs.map → MDropdownMenu-BT3u-ZJj.cjs.map} +1 -1
- package/dist/{MDropdownMenu-CeiC1tz3.js → MDropdownMenu-CAwSTZ1h.js} +2 -2
- package/dist/{MDropdownMenu-CeiC1tz3.js.map → MDropdownMenu-CAwSTZ1h.js.map} +1 -1
- package/dist/{MGalleryIllustration-Dglx_Ckc.cjs → MGalleryIllustration-D1givjFR.cjs} +2 -2
- package/dist/{MGalleryIllustration-Dglx_Ckc.cjs.map → MGalleryIllustration-D1givjFR.cjs.map} +1 -1
- package/dist/MGrid-Di7laCq4.cjs +2 -0
- package/dist/MGrid-Di7laCq4.cjs.map +1 -0
- package/dist/MGrid-yLmEteNw.js +265 -0
- package/dist/MGrid-yLmEteNw.js.map +1 -0
- package/dist/{MHeading-f3hwkW3r.cjs → MHeading-TJ5yvklz.cjs} +2 -2
- package/dist/{MHeading-f3hwkW3r.cjs.map → MHeading-TJ5yvklz.cjs.map} +1 -1
- package/dist/{MI18nProvider-DOh5xexz.cjs → MI18nProvider-bf1G7lTP.cjs} +2 -2
- package/dist/{MI18nProvider-DOh5xexz.cjs.map → MI18nProvider-bf1G7lTP.cjs.map} +1 -1
- package/dist/{MInput-IsUELgN2.js → MInput-CkbgK8eU.js} +3 -3
- package/dist/{MInput-IsUELgN2.js.map → MInput-CkbgK8eU.js.map} +1 -1
- package/dist/{MInput-BLGduKL_.cjs → MInput-ClHpIrDG.cjs} +2 -2
- package/dist/{MInput-BLGduKL_.cjs.map → MInput-ClHpIrDG.cjs.map} +1 -1
- package/dist/MInputCVC-B353PyVi.cjs +2 -0
- package/dist/MInputCVC-B353PyVi.cjs.map +1 -0
- package/dist/{MInputExpDate-CeCmw6fj.js → MInputCVC-BSHrWcEh.js} +101 -101
- package/dist/MInputCVC-BSHrWcEh.js.map +1 -0
- package/dist/{MInputSearch-_7jfFGr1.cjs → MInputSearch-D2Fr_34s.cjs} +2 -2
- package/dist/{MInputSearch-_7jfFGr1.cjs.map → MInputSearch-D2Fr_34s.cjs.map} +1 -1
- package/dist/{MInputSearch-BBxUF5pw.js → MInputSearch-Dj55a3oO.js} +3 -3
- package/dist/{MInputSearch-BBxUF5pw.js.map → MInputSearch-Dj55a3oO.js.map} +1 -1
- package/dist/{MKbd-DWTS3iS5.cjs → MKbd-CGkzxJhi.cjs} +2 -2
- package/dist/{MKbd-DWTS3iS5.cjs.map → MKbd-CGkzxJhi.cjs.map} +1 -1
- package/dist/{MKbd-v6-tJ9sP.js → MKbd-I4xDtsqc.js} +1 -1
- package/dist/{MKbd-v6-tJ9sP.js.map → MKbd-I4xDtsqc.js.map} +1 -1
- package/dist/{MLink-CRK8YvR4.cjs → MLink-CZ2FfQ0N.cjs} +2 -2
- package/dist/{MLink-CRK8YvR4.cjs.map → MLink-CZ2FfQ0N.cjs.map} +1 -1
- package/dist/{MPagination-D1hYqLDb.cjs → MPagination-CAzIIP2o.cjs} +2 -2
- package/dist/{MPagination-D1hYqLDb.cjs.map → MPagination-CAzIIP2o.cjs.map} +1 -1
- package/dist/{MPagination-DvToi2cs.js → MPagination-CnFI794t.js} +7 -7
- package/dist/{MPagination-DvToi2cs.js.map → MPagination-CnFI794t.js.map} +1 -1
- package/dist/{MPopover-Cqz5TsHg.js → MPopover-BRuwva-c.js} +2 -2
- package/dist/MPopover-BRuwva-c.js.map +1 -0
- package/dist/MPopover-BbgAAM5Z.cjs +2 -0
- package/dist/MPopover-BbgAAM5Z.cjs.map +1 -0
- package/dist/{MPortal-BIxPtFYd.cjs → MPortal-DokH9TfY.cjs} +2 -2
- package/dist/{MPortal-BIxPtFYd.cjs.map → MPortal-DokH9TfY.cjs.map} +1 -1
- package/dist/{MSimpleGrid-CyLf-9R2.cjs → MSimpleGrid-B6Uh1XJY.cjs} +2 -2
- package/dist/{MSimpleGrid-CyLf-9R2.cjs.map → MSimpleGrid-B6Uh1XJY.cjs.map} +1 -1
- package/dist/{MSimpleGrid-Bojj4xKH.js → MSimpleGrid-Ds14eBrD.js} +1 -1
- package/dist/{MSimpleGrid-Bojj4xKH.js.map → MSimpleGrid-Ds14eBrD.js.map} +1 -1
- package/dist/MSkeleton-BpylRABV.js +53 -0
- package/dist/MSkeleton-BpylRABV.js.map +1 -0
- package/dist/MSkeleton-JMkJFzu9.cjs +2 -0
- package/dist/MSkeleton-JMkJFzu9.cjs.map +1 -0
- package/dist/{MSlider-CqrusKJQ.js → MSlider-5141rKeH.js} +1 -1
- package/dist/{MSlider-CqrusKJQ.js.map → MSlider-5141rKeH.js.map} +1 -1
- package/dist/{MSlider-qCGmD4UA.cjs → MSlider-PyXLKckL.cjs} +2 -2
- package/dist/{MSlider-qCGmD4UA.cjs.map → MSlider-PyXLKckL.cjs.map} +1 -1
- package/dist/MStack-B8JtyM10.js +39 -0
- package/dist/MStack-B8JtyM10.js.map +1 -0
- package/dist/MStack-DDn2bYBQ.cjs +2 -0
- package/dist/MStack-DDn2bYBQ.cjs.map +1 -0
- package/dist/{MSurface-odrvQXkb.js → MSurface-B-sjyczH.js} +34 -3
- package/dist/MSurface-B-sjyczH.js.map +1 -0
- package/dist/MSurface-WsYGNGX5.cjs +2 -0
- package/dist/MSurface-WsYGNGX5.cjs.map +1 -0
- package/dist/{MTag-DgB6ukFJ.js → MTag-CKM8lXD6.js} +3 -3
- package/dist/{MTag-DgB6ukFJ.js.map → MTag-CKM8lXD6.js.map} +1 -1
- package/dist/{MTag-DZqV4S13.cjs → MTag-Dez1GOX0.cjs} +2 -2
- package/dist/{MTag-DZqV4S13.cjs.map → MTag-Dez1GOX0.cjs.map} +1 -1
- package/dist/{MText-BHbI7KJO.cjs → MText-CAbqC2qZ.cjs} +2 -2
- package/dist/{MText-BHbI7KJO.cjs.map → MText-CAbqC2qZ.cjs.map} +1 -1
- package/dist/{MTooltip-Dq2vYf3G.cjs → MTooltip-C-x_SqMx.cjs} +2 -2
- package/dist/{MTooltip-Dq2vYf3G.cjs.map → MTooltip-C-x_SqMx.cjs.map} +1 -1
- package/dist/{MTooltip-jSf4VBtB.js → MTooltip-Cbj80F3o.js} +1 -1
- package/dist/{MTooltip-jSf4VBtB.js.map → MTooltip-Cbj80F3o.js.map} +1 -1
- package/dist/MTreeView-B7IWHmGc.cjs +2 -0
- package/dist/MTreeView-B7IWHmGc.cjs.map +1 -0
- package/dist/MTreeView-DMTzRk6c.js +315 -0
- package/dist/MTreeView-DMTzRk6c.js.map +1 -0
- package/dist/{arduino-Bm509TuR.cjs → arduino-CFZS94LP.cjs} +1 -1
- package/dist/arduino-CFZS94LP.cjs.map +1 -0
- package/dist/{arduino-C5s1z3P1.js → arduino-DWEBiENP.js} +2 -2
- package/dist/arduino-DWEBiENP.js.map +1 -0
- package/dist/{bash-RIFbRcCe.js → bash-DQsQM8so.js} +2 -2
- package/dist/bash-DQsQM8so.js.map +1 -0
- package/dist/{bash-CyBbinAU.cjs → bash-Dl1TvWHd.cjs} +1 -1
- package/dist/bash-Dl1TvWHd.cjs.map +1 -0
- package/dist/{c-DAywn1DE.js → c-BgkSGJWN.js} +2 -2
- package/dist/c-BgkSGJWN.js.map +1 -0
- package/dist/{c-DGOxo0dj.cjs → c-PUMyVGnz.cjs} +1 -1
- package/dist/c-PUMyVGnz.cjs.map +1 -0
- package/dist/cards-23tpYjxc.js +1207 -0
- package/dist/cards-23tpYjxc.js.map +1 -0
- package/dist/cards-CK6RnNZi.cjs +2 -0
- package/dist/cards-CK6RnNZi.cjs.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +3 -3
- package/dist/components/cards/MCardGrid/index.d.ts +1 -1
- package/dist/components/cards/index.d.ts +1 -9
- package/dist/components/data/index.d.ts +4 -24
- package/dist/components/data/useMCardGrid.d.ts +36 -0
- package/dist/components/data/useMTable.d.ts +69 -0
- package/dist/components/display/index.d.ts +0 -8
- package/dist/components/feedback/MProgressRing/MProgressRing.d.ts +8 -0
- package/dist/components/feedback/MProgressRing/MProgressRing.types.d.ts +21 -0
- package/dist/components/feedback/MProgressRing/index.d.ts +2 -0
- package/dist/components/feedback/index.d.ts +2 -1
- package/dist/components/layout/MCanvasGrid/MCanvasGrid.d.ts +5 -0
- package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +43 -0
- package/dist/components/layout/MCanvasGrid/ScaleToFit.d.ts +19 -0
- package/dist/components/layout/MCanvasGrid/index.d.ts +2 -0
- package/dist/components/layout/index.d.ts +2 -4
- package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.types.d.ts +9 -0
- package/dist/components/media/MAvatar/index.d.ts +1 -1
- package/dist/components/media/index.d.ts +1 -17
- package/dist/components/typography/MHeading/MHeading.d.ts +1 -1
- package/dist/{controls-CcbEqqWo.js → controls-B3P4zKoA.js} +85 -63
- package/dist/controls-B3P4zKoA.js.map +1 -0
- package/dist/controls-DwWfqfDX.cjs +2 -0
- package/dist/controls-DwWfqfDX.cjs.map +1 -0
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +6 -6
- package/dist/{core-DAox0BHy.cjs → core-B2klLGki.cjs} +1 -1
- package/dist/core-B2klLGki.cjs.map +1 -0
- package/dist/{core-BUYr52VU.js → core-BdOw9NlN.js} +1 -1
- package/dist/core-BdOw9NlN.js.map +1 -0
- package/dist/{cpp-D-FtdQo9.cjs → cpp-C_DS-imi.cjs} +1 -1
- package/dist/cpp-C_DS-imi.cjs.map +1 -0
- package/dist/{cpp-Y9cHXDal.js → cpp-ChrqJwqu.js} +2 -2
- package/dist/cpp-ChrqJwqu.js.map +1 -0
- package/dist/{css-DCYZ-Rs6.cjs → css-Brdthutg.cjs} +1 -1
- package/dist/css-Brdthutg.cjs.map +1 -0
- package/dist/{css-C__ffGj6.js → css-DL_ID0lZ.js} +2 -2
- package/dist/css-DL_ID0lZ.js.map +1 -0
- package/dist/data-B5KYb0SW.js +463 -0
- package/dist/data-B5KYb0SW.js.map +1 -0
- package/dist/data-CDZvakQ8.cjs +2 -0
- package/dist/data-CDZvakQ8.cjs.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -4
- package/dist/display-2Vak-RyH.cjs +3 -0
- package/dist/display-2Vak-RyH.cjs.map +1 -0
- package/dist/{display-C7YRf4Ze.js → display-ChhvaSPc.js} +288 -241
- package/dist/display-ChhvaSPc.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +3 -4
- package/dist/dropdowns-BP2HBR-x.cjs +2 -0
- package/dist/dropdowns-BP2HBR-x.cjs.map +1 -0
- package/dist/dropdowns-C9jREjLg.js +1752 -0
- package/dist/dropdowns-C9jREjLg.js.map +1 -0
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/feedback-DnuJtYUI.cjs +2 -0
- package/dist/feedback-DnuJtYUI.cjs.map +1 -0
- package/dist/feedback-urwS5wps.js +290 -0
- package/dist/feedback-urwS5wps.js.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -6
- package/dist/{form-BiPQ8SRK.js → form-CWoOQ_qo.js} +1 -1
- package/dist/{form-BiPQ8SRK.js.map → form-CWoOQ_qo.js.map} +1 -1
- package/dist/{form-DlXWN2ul.cjs → form-D5F1kTIA.cjs} +2 -2
- package/dist/{form-DlXWN2ul.cjs.map → form-D5F1kTIA.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/i18n.cjs +1 -1
- package/dist/icons/MIcon.types.d.ts +6 -0
- package/dist/icons/glyphs/MAirplaneFillIcon.d.ts +2 -0
- package/dist/icons/glyphs/{MBrandIconsV2.d.ts → MAirplaneIcon.d.ts} +1 -1
- package/dist/icons/glyphs/MApartmentIcon.d.ts +2 -0
- package/dist/icons/glyphs/{MChartIconV2.d.ts → MArchiveIcon.d.ts} +1 -1
- package/dist/icons/glyphs/MBookIcon.d.ts +2 -0
- package/dist/icons/glyphs/MBookOpenFillIcon.d.ts +2 -0
- package/dist/icons/glyphs/{MSearchIconV2.d.ts → MBookOpenIcon.d.ts} +1 -1
- package/dist/icons/glyphs/MBookmarkFillIcon.d.ts +2 -0
- package/dist/icons/glyphs/MBookmarkIcon.d.ts +2 -0
- package/dist/icons/glyphs/MBooksIcon.d.ts +2 -0
- package/dist/icons/glyphs/MCarFillIcon.d.ts +2 -0
- package/dist/icons/glyphs/MCarIcon.d.ts +2 -0
- package/dist/icons/glyphs/MClassroomIcon.d.ts +2 -0
- package/dist/icons/glyphs/MColumnsIcon.d.ts +2 -0
- package/dist/icons/glyphs/{MUserIconV2.d.ts → MFlagAtIcon.d.ts} +1 -1
- package/dist/icons/glyphs/{MHomeIconV2.d.ts → MFlagAuIcon.d.ts} +1 -1
- package/dist/icons/glyphs/MFlagChIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagIeIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagKrIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagNlIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagNoIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagPtIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagSeIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlagTrIcon.d.ts +2 -0
- package/dist/icons/glyphs/MFlatIcon.d.ts +2 -0
- package/dist/icons/glyphs/MHistoryIcon.d.ts +2 -0
- package/dist/icons/glyphs/MHouseIcon.d.ts +2 -0
- package/dist/icons/glyphs/MKeyIcon.d.ts +2 -0
- package/dist/icons/glyphs/MLessonIcon.d.ts +2 -0
- package/dist/icons/glyphs/MListIcon.d.ts +2 -0
- package/dist/icons/glyphs/MMakeupIcon.d.ts +2 -0
- package/dist/icons/glyphs/MMoveIcon.d.ts +2 -0
- package/dist/icons/glyphs/MPlayIcon.d.ts +2 -0
- package/dist/icons/glyphs/MPrinterIcon.d.ts +2 -0
- package/dist/icons/glyphs/MRedoIcon.d.ts +2 -0
- package/dist/icons/glyphs/MResizeIcon.d.ts +2 -0
- package/dist/icons/glyphs/MRoomIcon.d.ts +2 -0
- package/dist/icons/glyphs/MShareIcon.d.ts +2 -0
- package/dist/icons/glyphs/MShipIcon.d.ts +2 -0
- package/dist/icons/glyphs/MShopIcon.d.ts +2 -0
- package/dist/icons/glyphs/MStopIcon.d.ts +2 -0
- package/dist/icons/glyphs/MTaskIcon.d.ts +2 -0
- package/dist/icons/glyphs/MUndoIcon.d.ts +2 -0
- package/dist/icons/glyphs/MUrgentIcon.d.ts +2 -0
- package/dist/icons/glyphs/MUserCheckIcon.d.ts +2 -0
- package/dist/icons/glyphs/MUserMinusIcon.d.ts +2 -0
- package/dist/icons/glyphs/MUserPlusIcon.d.ts +2 -0
- package/dist/icons/index.d.ts +48 -13
- package/dist/icons-BHFwX7ri.cjs +2 -0
- package/dist/icons-BHFwX7ri.cjs.map +1 -0
- package/dist/{icons-CfpYxnfg.js → icons-DLP-Rs6z.js} +1325 -1925
- package/dist/icons-DLP-Rs6z.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +2 -2
- package/dist/illustrations.cjs +1 -1
- package/dist/index.cjs +1 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +53 -93
- package/dist/{inputs-BJMmyEdL.cjs → inputs-D38ib0gM.cjs} +2 -2
- package/dist/{inputs-BJMmyEdL.cjs.map → inputs-D38ib0gM.cjs.map} +1 -1
- package/dist/{inputs-CNPeF6gb.js → inputs-bbwdb6m3.js} +181 -181
- package/dist/{inputs-CNPeF6gb.js.map → inputs-bbwdb6m3.js.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +5 -5
- package/dist/{javascript-ClV78Svx.js → javascript-B5hepBcv.js} +2 -2
- package/dist/javascript-B5hepBcv.js.map +1 -0
- package/dist/{javascript-_Sr9cnsG.cjs → javascript-DFYAIwfO.cjs} +1 -1
- package/dist/javascript-DFYAIwfO.cjs.map +1 -0
- package/dist/{json-BFetU4Pi.cjs → json-BTHMevf2.cjs} +1 -1
- package/dist/json-BTHMevf2.cjs.map +1 -0
- package/dist/{json-Dz6EkGZR.js → json-DTBnkegk.js} +2 -2
- package/dist/json-DTBnkegk.js.map +1 -0
- package/dist/layout-BgfQpVOU.js +823 -0
- package/dist/layout-BgfQpVOU.js.map +1 -0
- package/dist/layout-D9LAqtZp.cjs +2 -0
- package/dist/layout-D9LAqtZp.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +7 -8
- package/dist/licensing-f5KYVz7D.js +28 -0
- package/dist/licensing-f5KYVz7D.js.map +1 -0
- package/dist/licensing-sRHTvX0B.cjs +2 -0
- package/dist/licensing-sRHTvX0B.cjs.map +1 -0
- package/dist/{locale-Bz2JXxDZ.cjs → locale-CJWWjFm-.cjs} +2 -2
- package/dist/{locale-Bz2JXxDZ.cjs.map → locale-CJWWjFm-.cjs.map} +1 -1
- package/dist/{locale-CS1-IY_I.js → locale-JX_gX03k.js} +1 -1
- package/dist/{locale-CS1-IY_I.js.map → locale-JX_gX03k.js.map} +1 -1
- package/dist/media-CM-uEUrV.js +402 -0
- package/dist/media-CM-uEUrV.js.map +1 -0
- package/dist/media-CnjA4Ruo.cjs +2 -0
- package/dist/media-CnjA4Ruo.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +3 -4
- package/dist/overlays-BpDz9ddf.cjs +2 -0
- package/dist/overlays-BpDz9ddf.cjs.map +1 -0
- package/dist/overlays-NwVsvmlb.js +568 -0
- package/dist/overlays-NwVsvmlb.js.map +1 -0
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +4 -6
- package/dist/{php-jOdR0XS8.cjs → php-ClxZCTCr.cjs} +1 -1
- package/dist/php-ClxZCTCr.cjs.map +1 -0
- package/dist/{php-5Erp5xxI.js → php-DwgDg57J.js} +2 -2
- package/dist/php-DwgDg57J.js.map +1 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +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-DsTDooyX.cjs → theme-yQQAPTkp.cjs} +2 -2
- package/dist/{theme-DsTDooyX.cjs.map → theme-yQQAPTkp.cjs.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{typescript-C65sNL5w.cjs → typescript-C8NJZXwD.cjs} +1 -1
- package/dist/typescript-C8NJZXwD.cjs.map +1 -0
- package/dist/{typescript-wdQKWfxO.js → typescript-MSi2XC0t.js} +2 -2
- package/dist/typescript-MSi2XC0t.js.map +1 -0
- package/dist/typography-BHhyTO1V.js +42 -0
- package/dist/typography-BHhyTO1V.js.map +1 -0
- package/dist/typography-Qb1U4eiY.cjs +2 -0
- package/dist/typography-Qb1U4eiY.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +3 -4
- package/dist/{useGhostText-Dg4P606B.cjs → useGhostText-BFaUUKid.cjs} +2 -2
- package/dist/{useGhostText-Dg4P606B.cjs.map → useGhostText-BFaUUKid.cjs.map} +1 -1
- package/dist/{useInteractionEffect-Bo8285cg.cjs → useInteractionEffect-BH2dgQla.cjs} +2 -2
- package/dist/{useInteractionEffect-Bo8285cg.cjs.map → useInteractionEffect-BH2dgQla.cjs.map} +1 -1
- package/dist/{useKeyboardNav-CyeQtqF8.cjs → useKeyboardNav-CtGPfQX7.cjs} +2 -2
- package/dist/{useKeyboardNav-CyeQtqF8.cjs.map → useKeyboardNav-CtGPfQX7.cjs.map} +1 -1
- package/dist/utils/licensing.d.ts +1 -82
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/{xml-a3b-XevT.js → xml-CnKYdLjT.js} +2 -2
- package/dist/xml-CnKYdLjT.js.map +1 -0
- package/dist/{xml-B2okahIr.cjs → xml-jypnnWFn.cjs} +1 -1
- package/dist/xml-jypnnWFn.cjs.map +1 -0
- package/package.json +6 -29
- package/dist/MAvatar-D_dVAPaR.js +0 -57
- package/dist/MAvatar-D_dVAPaR.js.map +0 -1
- package/dist/MAvatar-DzZPRbot.cjs +0 -2
- package/dist/MAvatar-DzZPRbot.cjs.map +0 -1
- package/dist/MAvatarStack-CrhkO_SO.js +0 -330
- package/dist/MAvatarStack-CrhkO_SO.js.map +0 -1
- package/dist/MAvatarStack-DN79aJo1.cjs +0 -2
- package/dist/MAvatarStack-DN79aJo1.cjs.map +0 -1
- package/dist/MCookieBootstrap-BUqtJO3m.cjs +0 -2
- package/dist/MCookieBootstrap-BUqtJO3m.cjs.map +0 -1
- package/dist/MCookieBootstrap-Btt49Iuq.js +0 -436
- package/dist/MCookieBootstrap-Btt49Iuq.js.map +0 -1
- package/dist/MDataTable-7nJuwzJR.cjs +0 -2
- package/dist/MDataTable-7nJuwzJR.cjs.map +0 -1
- package/dist/MDataTable-CQt_pINO.js +0 -297
- package/dist/MDataTable-CQt_pINO.js.map +0 -1
- package/dist/MDrawer-B83--EVv.js +0 -122
- package/dist/MDrawer-B83--EVv.js.map +0 -1
- package/dist/MDrawer-D6cy9K7J.cjs +0 -2
- package/dist/MDrawer-D6cy9K7J.cjs.map +0 -1
- package/dist/MGrid-B-fP4GME.cjs +0 -2
- package/dist/MGrid-B-fP4GME.cjs.map +0 -1
- package/dist/MGrid-DVluuula.js +0 -182
- package/dist/MGrid-DVluuula.js.map +0 -1
- package/dist/MInputExpDate-CeCmw6fj.js.map +0 -1
- package/dist/MInputExpDate-DZ8JtSjs.cjs +0 -2
- package/dist/MInputExpDate-DZ8JtSjs.cjs.map +0 -1
- package/dist/MModal-DiTjBO8B.js +0 -69
- package/dist/MModal-DiTjBO8B.js.map +0 -1
- package/dist/MModal-eJDG6riB.cjs +0 -2
- package/dist/MModal-eJDG6riB.cjs.map +0 -1
- package/dist/MPopover-Cqz5TsHg.js.map +0 -1
- package/dist/MPopover-CxxaY9kr.cjs +0 -2
- package/dist/MPopover-CxxaY9kr.cjs.map +0 -1
- package/dist/MQrCode-HO2YIC7e.cjs +0 -2
- package/dist/MQrCode-HO2YIC7e.cjs.map +0 -1
- package/dist/MQrCode-Kb997gaE.js +0 -465
- package/dist/MQrCode-Kb997gaE.js.map +0 -1
- package/dist/MSkeleton-CVofhuDp.js +0 -136
- package/dist/MSkeleton-CVofhuDp.js.map +0 -1
- package/dist/MSkeleton-CuYA8eN3.cjs +0 -2
- package/dist/MSkeleton-CuYA8eN3.cjs.map +0 -1
- package/dist/MStack-C4Eocfb5.js +0 -70
- package/dist/MStack-C4Eocfb5.js.map +0 -1
- package/dist/MStack-w8XcuIJK.cjs +0 -2
- package/dist/MStack-w8XcuIJK.cjs.map +0 -1
- package/dist/MSubText-C-N15d4Z.js +0 -17
- package/dist/MSubText-C-N15d4Z.js.map +0 -1
- package/dist/MSubText-CIMKPb8o.cjs +0 -2
- package/dist/MSubText-CIMKPb8o.cjs.map +0 -1
- package/dist/MSurface-KvAS2hkl.cjs +0 -2
- package/dist/MSurface-KvAS2hkl.cjs.map +0 -1
- package/dist/MSurface-odrvQXkb.js.map +0 -1
- package/dist/MTabs-BQZ--mMq.js +0 -89
- package/dist/MTabs-BQZ--mMq.js.map +0 -1
- package/dist/MTabs-DeUn6bIp.cjs +0 -2
- package/dist/MTabs-DeUn6bIp.cjs.map +0 -1
- package/dist/MTimeAgo-DI3DF7bD.cjs +0 -2
- package/dist/MTimeAgo-DI3DF7bD.cjs.map +0 -1
- package/dist/MTimeAgo-Db8gOade.js +0 -51
- package/dist/MTimeAgo-Db8gOade.js.map +0 -1
- package/dist/MToggle-B6emKoKq.js +0 -48
- package/dist/MToggle-B6emKoKq.js.map +0 -1
- package/dist/MToggle-BVJm5Bdk.cjs +0 -2
- package/dist/MToggle-BVJm5Bdk.cjs.map +0 -1
- package/dist/MTreeView-AqH8XMPz.js +0 -516
- package/dist/MTreeView-AqH8XMPz.js.map +0 -1
- package/dist/MTreeView-Dp9qbqQh.cjs +0 -2
- package/dist/MTreeView-Dp9qbqQh.cjs.map +0 -1
- package/dist/arduino-Bm509TuR.cjs.map +0 -1
- package/dist/arduino-C5s1z3P1.js.map +0 -1
- package/dist/bash-CyBbinAU.cjs.map +0 -1
- package/dist/bash-RIFbRcCe.js.map +0 -1
- package/dist/c-DAywn1DE.js.map +0 -1
- package/dist/c-DGOxo0dj.cjs.map +0 -1
- package/dist/cards-C50fpYud.js +0 -1539
- package/dist/cards-C50fpYud.js.map +0 -1
- package/dist/cards-Ci1FoV9C.cjs +0 -2
- package/dist/cards-Ci1FoV9C.cjs.map +0 -1
- package/dist/components/cards/MCardBusiness/MCardBusiness.d.ts +0 -2
- package/dist/components/cards/MCardBusiness/MCardBusiness.types.d.ts +0 -37
- package/dist/components/cards/MCardBusiness/index.d.ts +0 -4
- package/dist/components/cards/MCardFinance/MCardFinance.d.ts +0 -2
- package/dist/components/cards/MCardFinance/MCardFinance.types.d.ts +0 -17
- package/dist/components/cards/MCardFinance/index.d.ts +0 -4
- package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +0 -8
- package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +0 -186
- package/dist/components/data/MCalendarBoard/index.d.ts +0 -4
- package/dist/components/data/MChart/MAreaChart.d.ts +0 -2
- package/dist/components/data/MChart/MBarChart.d.ts +0 -2
- package/dist/components/data/MChart/MChart.d.ts +0 -2
- package/dist/components/data/MChart/MChart.types.d.ts +0 -95
- package/dist/components/data/MChart/MLineChart.d.ts +0 -2
- package/dist/components/data/MChart/MPieChart.d.ts +0 -2
- package/dist/components/data/MChart/charts/MAreaChart.d.ts +0 -27
- package/dist/components/data/MChart/charts/MBarChart.d.ts +0 -26
- package/dist/components/data/MChart/charts/MLineChart.d.ts +0 -26
- package/dist/components/data/MChart/charts/MPieChart.d.ts +0 -19
- package/dist/components/data/MChart/index.d.ts +0 -5
- package/dist/components/data/MChart/parts/ChartAxis.d.ts +0 -13
- package/dist/components/data/MChart/parts/ChartDefs.d.ts +0 -1
- package/dist/components/data/MChart/parts/ChartGrid.d.ts +0 -10
- package/dist/components/data/MChart/parts/ChartLegend.d.ts +0 -9
- package/dist/components/data/MChart/parts/ChartTooltip.d.ts +0 -7
- package/dist/components/data/MChart/utils/formats.d.ts +0 -3
- package/dist/components/data/MChart/utils/paths.d.ts +0 -10
- package/dist/components/data/MChart/utils/scales.d.ts +0 -7
- package/dist/components/data/MChat/MChat.d.ts +0 -2
- package/dist/components/data/MChat/MChat.types.d.ts +0 -77
- package/dist/components/data/MChat/MChatBody.d.ts +0 -2
- package/dist/components/data/MChat/MChatContext.d.ts +0 -6
- package/dist/components/data/MChat/MChatConversationItem.d.ts +0 -2
- package/dist/components/data/MChat/MChatConversationList.d.ts +0 -2
- package/dist/components/data/MChat/MChatHeader.d.ts +0 -2
- package/dist/components/data/MChat/MChatInput.d.ts +0 -2
- package/dist/components/data/MChat/MChatMessage.d.ts +0 -2
- package/dist/components/data/MChat/MChatTypingIndicator.d.ts +0 -2
- package/dist/components/data/MChat/emojis.d.ts +0 -2
- package/dist/components/data/MChat/index.d.ts +0 -9
- package/dist/components/data/MFileManager/MFileManager.d.ts +0 -2
- package/dist/components/data/MFileManager/MFileManager.types.d.ts +0 -70
- package/dist/components/data/MFileManager/index.d.ts +0 -4
- package/dist/components/data/MSparkline/MSparkline.d.ts +0 -2
- package/dist/components/data/MSparkline/MSparkline.types.d.ts +0 -15
- package/dist/components/data/MSparkline/index.d.ts +0 -2
- package/dist/components/data/MTimelineCalendar/DayStrip.d.ts +0 -11
- package/dist/components/data/MTimelineCalendar/EventPopover.d.ts +0 -18
- package/dist/components/data/MTimelineCalendar/MTimelineCalendar.d.ts +0 -2
- package/dist/components/data/MTimelineCalendar/MTimelineCalendar.helpers.d.ts +0 -55
- package/dist/components/data/MTimelineCalendar/MTimelineCalendar.types.d.ts +0 -89
- package/dist/components/data/MTimelineCalendar/index.d.ts +0 -2
- package/dist/components/display/MQrCode/MQrCode.d.ts +0 -2
- package/dist/components/display/MQrCode/MQrCode.types.d.ts +0 -11
- package/dist/components/display/MQrCode/index.d.ts +0 -4
- package/dist/components/feedback/MCookie/MCookieBanner/MCookieBanner.d.ts +0 -3
- package/dist/components/feedback/MCookie/MCookieBanner/MCookieBanner.types.d.ts +0 -27
- package/dist/components/feedback/MCookie/MCookieBanner/index.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.d.ts +0 -6
- package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.script.d.ts +0 -4
- package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.types.d.ts +0 -90
- package/dist/components/feedback/MCookie/MCookieBootstrap/index.d.ts +0 -3
- package/dist/components/feedback/MCookie/MCookieConsent/MCookieConsent.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieConsent/MCookieConsent.types.d.ts +0 -11
- package/dist/components/feedback/MCookie/MCookieConsent/index.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.defaults.d.ts +0 -9
- package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.inventory.d.ts +0 -6
- package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.storage.d.ts +0 -11
- package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.types.d.ts +0 -95
- package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsentContext.d.ts +0 -4
- package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsentProvider.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieConsentProvider/index.d.ts +0 -3
- package/dist/components/feedback/MCookie/MCookieDeclaration/MCookieDeclaration.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieDeclaration/MCookieDeclaration.types.d.ts +0 -18
- package/dist/components/feedback/MCookie/MCookieDeclaration/index.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookiePreferences/MCookiePreferences.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookiePreferences/MCookiePreferences.types.d.ts +0 -25
- package/dist/components/feedback/MCookie/MCookiePreferences/index.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieTrigger/MCookieTrigger.d.ts +0 -2
- package/dist/components/feedback/MCookie/MCookieTrigger/MCookieTrigger.types.d.ts +0 -7
- package/dist/components/feedback/MCookie/MCookieTrigger/index.d.ts +0 -2
- package/dist/components/feedback/MCookie/index.d.ts +0 -16
- package/dist/components/layout/MTopbar/MTopbar.d.ts +0 -2
- package/dist/components/layout/MTopbar/MTopbar.types.d.ts +0 -37
- package/dist/components/layout/MTopbar/index.d.ts +0 -2
- package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +0 -2
- package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +0 -27
- package/dist/components/media/MAvatarStack/index.d.ts +0 -2
- package/dist/components/media/MMasonry/MMasonry.d.ts +0 -2
- package/dist/components/media/MMasonry/MMasonry.types.d.ts +0 -7
- package/dist/components/media/MMasonry/index.d.ts +0 -2
- package/dist/components/media/MMasonryItem/MMasonryItem.d.ts +0 -2
- package/dist/components/media/MMasonryItem/MMasonryItem.types.d.ts +0 -14
- package/dist/components/media/MMasonryItem/index.d.ts +0 -2
- package/dist/components/media/MShowcaseCarousel/MShowcaseCarousel.d.ts +0 -2
- package/dist/components/media/MShowcaseCarousel/MShowcaseCarousel.types.d.ts +0 -19
- package/dist/components/media/MShowcaseCarousel/index.d.ts +0 -2
- package/dist/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.d.ts +0 -2
- package/dist/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.types.d.ts +0 -18
- package/dist/components/media/MShowcaseCarouselItem/index.d.ts +0 -2
- package/dist/controls-CYQxPd4U.cjs +0 -2
- package/dist/controls-CYQxPd4U.cjs.map +0 -1
- package/dist/controls-CcbEqqWo.js.map +0 -1
- package/dist/cookie-consent-bootstrap.cjs +0 -2
- package/dist/cookie-consent-bootstrap.cjs.map +0 -1
- package/dist/cookie-consent-bootstrap.d.ts +0 -1
- package/dist/cookie-consent-bootstrap.js +0 -106
- package/dist/cookie-consent-bootstrap.js.map +0 -1
- package/dist/core-BUYr52VU.js.map +0 -1
- package/dist/core-DAox0BHy.cjs.map +0 -1
- package/dist/cpp-D-FtdQo9.cjs.map +0 -1
- package/dist/cpp-Y9cHXDal.js.map +0 -1
- package/dist/css-C__ffGj6.js.map +0 -1
- package/dist/css-DCYZ-Rs6.cjs.map +0 -1
- package/dist/data-DtShJEic.cjs +0 -2
- package/dist/data-DtShJEic.cjs.map +0 -1
- package/dist/data-RXuvb9VI.js +0 -3454
- package/dist/data-RXuvb9VI.js.map +0 -1
- package/dist/display-96-TEGmZ.cjs +0 -3
- package/dist/display-96-TEGmZ.cjs.map +0 -1
- package/dist/display-C7YRf4Ze.js.map +0 -1
- package/dist/dropdowns-Ce3Pb2JM.cjs +0 -2
- package/dist/dropdowns-Ce3Pb2JM.cjs.map +0 -1
- package/dist/dropdowns-DfXhVlWQ.js +0 -1712
- package/dist/dropdowns-DfXhVlWQ.js.map +0 -1
- package/dist/feedback-DGT28-Zx.js +0 -1058
- package/dist/feedback-DGT28-Zx.js.map +0 -1
- package/dist/feedback-Dr7G3K_R.cjs +0 -2
- package/dist/feedback-Dr7G3K_R.cjs.map +0 -1
- package/dist/frameworkTexts-BLJcGUXz.cjs +0 -2
- package/dist/frameworkTexts-BLJcGUXz.cjs.map +0 -1
- package/dist/frameworkTexts-BTFyhWFD.js +0 -117
- package/dist/frameworkTexts-BTFyhWFD.js.map +0 -1
- package/dist/icons/MIconV2.d.ts +0 -7
- package/dist/icons/MIconV2Glyph.d.ts +0 -11
- package/dist/icons/MIconV2Scenes.d.ts +0 -41
- package/dist/icons/glyphs/MCalendarIconV2.d.ts +0 -2
- package/dist/icons/glyphs/MFlagIconsV2.d.ts +0 -19
- package/dist/icons/glyphs/MNavigationIconsV2.d.ts +0 -14
- package/dist/icons/glyphs/MSettingsIconV2.d.ts +0 -2
- package/dist/icons-CfpYxnfg.js.map +0 -1
- package/dist/icons-qCoE70hn.cjs +0 -2
- package/dist/icons-qCoE70hn.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/javascript-ClV78Svx.js.map +0 -1
- package/dist/javascript-_Sr9cnsG.cjs.map +0 -1
- package/dist/json-BFetU4Pi.cjs.map +0 -1
- package/dist/json-Dz6EkGZR.js.map +0 -1
- package/dist/layout-dUrQeGc2.cjs +0 -2
- package/dist/layout-dUrQeGc2.cjs.map +0 -1
- package/dist/layout-tIq6BGQK.js +0 -711
- package/dist/layout-tIq6BGQK.js.map +0 -1
- package/dist/licensing-9sZ43Cif.cjs +0 -2
- package/dist/licensing-9sZ43Cif.cjs.map +0 -1
- package/dist/licensing-Bq78CLC_.js +0 -109
- package/dist/licensing-Bq78CLC_.js.map +0 -1
- package/dist/media-BySr5LGc.cjs +0 -2
- package/dist/media-BySr5LGc.cjs.map +0 -1
- package/dist/media-IQ4iYTs-.js +0 -391
- package/dist/media-IQ4iYTs-.js.map +0 -1
- package/dist/overlays-BabXGLEM.js +0 -392
- package/dist/overlays-BabXGLEM.js.map +0 -1
- package/dist/overlays-CTR3n21O.cjs +0 -2
- package/dist/overlays-CTR3n21O.cjs.map +0 -1
- package/dist/php-5Erp5xxI.js.map +0 -1
- package/dist/php-jOdR0XS8.cjs.map +0 -1
- package/dist/typescript-C65sNL5w.cjs.map +0 -1
- package/dist/typescript-wdQKWfxO.js.map +0 -1
- package/dist/typography-CAW17MDj.js +0 -31
- package/dist/typography-CAW17MDj.js.map +0 -1
- package/dist/typography-sbLuXqFn.cjs +0 -2
- package/dist/typography-sbLuXqFn.cjs.map +0 -1
- package/dist/utils/commandPaletteFromNavGroups.d.ts +0 -74
- package/dist/xml-B2okahIr.cjs.map +0 -1
- package/dist/xml-a3b-XevT.js.map +0 -1
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { r as e } from "./theme-DAOU1aPs.js";
|
|
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
|
+
import { t as u } from "./cn-YER3QsV1.js";
|
|
4
|
+
import { t as d } from "./MPortal-Ba2Sxset.js";
|
|
5
|
+
import { t as f } from "./MText-CL-LPcXi.js";
|
|
6
|
+
import { r as p, t as m } from "./MButton-C94fZ3l9.js";
|
|
7
|
+
import { t as h } from "./MStack-B8JtyM10.js";
|
|
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";
|
|
10
|
+
//#region src/components/feedback/statusIcons.tsx
|
|
11
|
+
var T = {
|
|
12
|
+
success: /* @__PURE__ */ C(l, {}),
|
|
13
|
+
warning: /* @__PURE__ */ C(a, {}),
|
|
14
|
+
error: /* @__PURE__ */ C(o, {}),
|
|
15
|
+
info: /* @__PURE__ */ C(c, {}),
|
|
16
|
+
primary: /* @__PURE__ */ C(c, {}),
|
|
17
|
+
neutral: /* @__PURE__ */ C(s, {}),
|
|
18
|
+
light: /* @__PURE__ */ C(r, {}),
|
|
19
|
+
dark: /* @__PURE__ */ C(t, {}),
|
|
20
|
+
news: /* @__PURE__ */ C(i, {})
|
|
21
|
+
};
|
|
22
|
+
function E(e) {
|
|
23
|
+
return e ? T[e] ?? T.info : T.info;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/components/feedback/MAlert/MAlert.tsx
|
|
27
|
+
function D({ color: t = "info", icon: n = !0, title: r, hidden: i, className: a, children: o, ...s }) {
|
|
28
|
+
let c = n === !1 ? null : n === !0 ? E(t) : n;
|
|
29
|
+
return /* @__PURE__ */ w("div", {
|
|
30
|
+
className: u("alert", `color-${t}`, a),
|
|
31
|
+
role: "status",
|
|
32
|
+
...e(i),
|
|
33
|
+
...s,
|
|
34
|
+
children: [c && /* @__PURE__ */ C("span", {
|
|
35
|
+
className: "icon",
|
|
36
|
+
children: c
|
|
37
|
+
}), /* @__PURE__ */ w("div", {
|
|
38
|
+
className: "main",
|
|
39
|
+
children: [r && /* @__PURE__ */ C("div", {
|
|
40
|
+
className: "title",
|
|
41
|
+
children: r
|
|
42
|
+
}), o && /* @__PURE__ */ C("div", {
|
|
43
|
+
className: "content",
|
|
44
|
+
children: o
|
|
45
|
+
})]
|
|
46
|
+
})]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/components/feedback/MBanner/MBanner.tsx
|
|
51
|
+
function O({ color: t = "primary", variant: r = "filled", icon: i, action: a, hidden: o, dismissible: s = !1, onDismiss: c, className: l, children: d, ...f }) {
|
|
52
|
+
let [p, h] = S(!0), [g, _] = S(!1), v = x(null);
|
|
53
|
+
if (!p) return null;
|
|
54
|
+
let y = () => {
|
|
55
|
+
_(!0);
|
|
56
|
+
let e = v.current;
|
|
57
|
+
if (!e) {
|
|
58
|
+
h(!1), c?.();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
let t = () => {
|
|
62
|
+
h(!1), _(!1), c?.();
|
|
63
|
+
};
|
|
64
|
+
e.addEventListener("transitionend", t, { once: !0 }), setTimeout(t, 1e3);
|
|
65
|
+
};
|
|
66
|
+
return /* @__PURE__ */ C("div", {
|
|
67
|
+
ref: v,
|
|
68
|
+
className: u("banner-wrap", g && "dismissing"),
|
|
69
|
+
...e(o),
|
|
70
|
+
children: /* @__PURE__ */ w("div", {
|
|
71
|
+
className: u("banner", `color-${t}`, r, l),
|
|
72
|
+
role: "banner",
|
|
73
|
+
...f,
|
|
74
|
+
children: [
|
|
75
|
+
i && /* @__PURE__ */ C("span", {
|
|
76
|
+
className: "banner-icon",
|
|
77
|
+
children: i
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ C("div", {
|
|
80
|
+
className: "banner-content",
|
|
81
|
+
children: d
|
|
82
|
+
}),
|
|
83
|
+
a && /* @__PURE__ */ C("div", {
|
|
84
|
+
className: "banner-action",
|
|
85
|
+
children: a
|
|
86
|
+
}),
|
|
87
|
+
s && /* @__PURE__ */ C(m, {
|
|
88
|
+
variant: "link",
|
|
89
|
+
color: "neutral",
|
|
90
|
+
iconOnly: !0,
|
|
91
|
+
size: "sm",
|
|
92
|
+
className: "banner-dismiss",
|
|
93
|
+
onClick: y,
|
|
94
|
+
"aria-label": "Dismiss",
|
|
95
|
+
children: /* @__PURE__ */ C(n, {})
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
//#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
|
+
//#region src/components/feedback/MProgressRing/MProgressRing.tsx
|
|
136
|
+
var j = {
|
|
137
|
+
xs: 24,
|
|
138
|
+
sm: 36,
|
|
139
|
+
md: 56,
|
|
140
|
+
lg: 88,
|
|
141
|
+
xl: 128
|
|
142
|
+
}, M = {
|
|
143
|
+
xs: 2,
|
|
144
|
+
sm: 3,
|
|
145
|
+
md: 4,
|
|
146
|
+
lg: 6,
|
|
147
|
+
xl: 8
|
|
148
|
+
};
|
|
149
|
+
function N(e, t, n) {
|
|
150
|
+
return Math.max(t, Math.min(n, e));
|
|
151
|
+
}
|
|
152
|
+
function P(e) {
|
|
153
|
+
return typeof e == "number" ? e : j[e ?? "md"] ?? j.md;
|
|
154
|
+
}
|
|
155
|
+
function F(e, t) {
|
|
156
|
+
return typeof e == "number" ? e : typeof t == "number" ? Math.max(2, Math.round(t / 14)) : M[t ?? "md"] ?? M.md;
|
|
157
|
+
}
|
|
158
|
+
function I({ value: e, size: t = "md", color: n = "primary", thickness: r, showPercent: i = !0, label: a, ariaLabel: o, className: s, style: c, ...l }) {
|
|
159
|
+
let d = N(Math.round(e), 0, 100), f = P(t), p = F(r, t), m = (f - p) / 2, h = 2 * Math.PI * m, g = h * (1 - d / 100), _ = {
|
|
160
|
+
width: `${f}px`,
|
|
161
|
+
height: `${f}px`,
|
|
162
|
+
...c
|
|
163
|
+
}, v = typeof t == "string" ? t : "custom", y = o ?? `Loading ${d}%`, b = a === void 0 ? i : a !== null;
|
|
164
|
+
return /* @__PURE__ */ w("div", {
|
|
165
|
+
className: u("progress-ring", v, n && `color-${n}`, s),
|
|
166
|
+
style: _,
|
|
167
|
+
role: "progressbar",
|
|
168
|
+
"aria-valuenow": d,
|
|
169
|
+
"aria-valuemin": 0,
|
|
170
|
+
"aria-valuemax": 100,
|
|
171
|
+
"aria-label": y,
|
|
172
|
+
...l,
|
|
173
|
+
children: [/* @__PURE__ */ w("svg", {
|
|
174
|
+
className: "progress-ring-svg",
|
|
175
|
+
width: f,
|
|
176
|
+
height: f,
|
|
177
|
+
viewBox: `0 0 ${f} ${f}`,
|
|
178
|
+
"aria-hidden": "true",
|
|
179
|
+
children: [/* @__PURE__ */ C("circle", {
|
|
180
|
+
className: "progress-ring-track",
|
|
181
|
+
cx: f / 2,
|
|
182
|
+
cy: f / 2,
|
|
183
|
+
r: m,
|
|
184
|
+
fill: "none",
|
|
185
|
+
strokeWidth: p
|
|
186
|
+
}), /* @__PURE__ */ C("circle", {
|
|
187
|
+
className: "progress-ring-indicator",
|
|
188
|
+
cx: f / 2,
|
|
189
|
+
cy: f / 2,
|
|
190
|
+
r: m,
|
|
191
|
+
fill: "none",
|
|
192
|
+
strokeWidth: p,
|
|
193
|
+
strokeDasharray: h,
|
|
194
|
+
strokeDashoffset: g,
|
|
195
|
+
strokeLinecap: "round",
|
|
196
|
+
transform: `rotate(-90 ${f / 2} ${f / 2})`
|
|
197
|
+
})]
|
|
198
|
+
}), b ? /* @__PURE__ */ C("span", {
|
|
199
|
+
className: "progress-ring-label",
|
|
200
|
+
"aria-hidden": "true",
|
|
201
|
+
children: a === void 0 ? `${d}%` : a
|
|
202
|
+
}) : null]
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
//#endregion
|
|
206
|
+
//#region src/components/feedback/MToast/MToastContext.ts
|
|
207
|
+
var L = g(null), R = L.Provider;
|
|
208
|
+
function z() {
|
|
209
|
+
let e = v(L);
|
|
210
|
+
if (!e) throw Error("useMToast must be used inside MToastProvider");
|
|
211
|
+
return e;
|
|
212
|
+
}
|
|
213
|
+
//#endregion
|
|
214
|
+
//#region src/components/feedback/MToast/MToastItem.tsx
|
|
215
|
+
function B({ entry: e, onDismiss: t }) {
|
|
216
|
+
let [r, i] = S(!1), a = e.duration ?? 4e3;
|
|
217
|
+
y(() => {
|
|
218
|
+
if (a <= 0) return;
|
|
219
|
+
let e = setTimeout(() => i(!0), a);
|
|
220
|
+
return () => clearTimeout(e);
|
|
221
|
+
}, [a]);
|
|
222
|
+
function o() {
|
|
223
|
+
r && t(e.id);
|
|
224
|
+
}
|
|
225
|
+
let s = e.color || "info", c = e.icon === !1 ? null : e.icon === void 0 || e.icon === !0 ? E(s) : e.icon;
|
|
226
|
+
return /* @__PURE__ */ w("div", {
|
|
227
|
+
className: u("toast item", `color-${s}`, r && "exit"),
|
|
228
|
+
role: "status",
|
|
229
|
+
onAnimationEnd: o,
|
|
230
|
+
children: [/* @__PURE__ */ w("div", {
|
|
231
|
+
className: "toast body",
|
|
232
|
+
children: [c && /* @__PURE__ */ C("span", {
|
|
233
|
+
className: "toast icon",
|
|
234
|
+
children: c
|
|
235
|
+
}), /* @__PURE__ */ w("div", {
|
|
236
|
+
className: "toast content",
|
|
237
|
+
children: [e.title && /* @__PURE__ */ C("div", {
|
|
238
|
+
className: "toast title",
|
|
239
|
+
children: e.title
|
|
240
|
+
}), /* @__PURE__ */ C("div", {
|
|
241
|
+
className: "toast message",
|
|
242
|
+
children: e.message
|
|
243
|
+
})]
|
|
244
|
+
})]
|
|
245
|
+
}), /* @__PURE__ */ C(m, {
|
|
246
|
+
variant: "ghost",
|
|
247
|
+
color: "neutral",
|
|
248
|
+
iconOnly: !0,
|
|
249
|
+
size: "xs",
|
|
250
|
+
className: "toast close",
|
|
251
|
+
onClick: () => i(!0),
|
|
252
|
+
"aria-label": "Close",
|
|
253
|
+
children: /* @__PURE__ */ C(n, {})
|
|
254
|
+
})]
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
//#endregion
|
|
258
|
+
//#region src/components/feedback/MToast/MToastProvider.tsx
|
|
259
|
+
var V = 0;
|
|
260
|
+
function H({ position: e = "top-right", duration: t = 4e3, children: n }) {
|
|
261
|
+
let [r, i] = S([]), a = x(t);
|
|
262
|
+
a.current = t;
|
|
263
|
+
let o = _((e) => {
|
|
264
|
+
i((t) => t.filter((t) => t.id !== e));
|
|
265
|
+
}, []), s = _((e) => {
|
|
266
|
+
let t = `toast-${++V}`, n = {
|
|
267
|
+
id: t,
|
|
268
|
+
...e,
|
|
269
|
+
duration: e.duration ?? a.current
|
|
270
|
+
};
|
|
271
|
+
return i((e) => [...e, n]), t;
|
|
272
|
+
}, []);
|
|
273
|
+
return /* @__PURE__ */ w(R, {
|
|
274
|
+
value: b(() => ({
|
|
275
|
+
toast: s,
|
|
276
|
+
dismiss: o
|
|
277
|
+
}), [s, o]),
|
|
278
|
+
children: [n, /* @__PURE__ */ C(d, { children: /* @__PURE__ */ C("div", {
|
|
279
|
+
className: u("toast container", e),
|
|
280
|
+
children: r.map((e) => /* @__PURE__ */ C(B, {
|
|
281
|
+
entry: e,
|
|
282
|
+
onDismiss: o
|
|
283
|
+
}, e.id))
|
|
284
|
+
}) })]
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
//#endregion
|
|
288
|
+
export { O as a, A as i, z as n, D as o, I as r, H as t };
|
|
289
|
+
|
|
290
|
+
//# sourceMappingURL=feedback-urwS5wps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback-urwS5wps.js","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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"}
|
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-ouB6903s.cjs`),t=require(`./feedback-DnuJtYUI.cjs`),n=require(`./MSkeleton-JMkJFzu9.cjs`),r=require(`./MTag-Dez1GOX0.cjs`);exports.MAlert=t.o,exports.MBadge=n.n,exports.MBanner=t.a,exports.MLoader=t.i,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,8 +1,7 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { r as e } from "./MButton-
|
|
4
|
-
import { a as t,
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
7
|
-
|
|
8
|
-
export { i as MAlert, p as MBadge, r as MBanner, y as MCOOKIE_BOOTSTRAP_CONFIG_KEY, x as MCOOKIE_CONSENT_CHANGE_EVENT, s as MCookieBanner, l as MCookieConsent, c as MCookieConsentProvider, d as MCookieDeclaration, a as MCookiePreferences, t as MCookieTrigger, f as MLoader, m as MSkeleton, e as MSpinner, h as MTag, n as MToastProvider, S as autoBootstrapMCookieConsent, v as bootstrapMCookieConsent, b as readMCookieBootstrapConfig, _ as reportMCookieSurface, g as scanMCookieSurface, u as useMCookieConsent, o as useMToast };
|
|
3
|
+
import { r as e } from "./MButton-C94fZ3l9.js";
|
|
4
|
+
import { a as t, i as n, n as r, o as i, r as a, t as o } from "./feedback-urwS5wps.js";
|
|
5
|
+
import { n as s, t as c } from "./MSkeleton-BpylRABV.js";
|
|
6
|
+
import { t as l } from "./MTag-CKM8lXD6.js";
|
|
7
|
+
export { i as MAlert, s as MBadge, t as MBanner, n as MLoader, a as MProgressRing, c as MSkeleton, e as MSpinner, l as MTag, o as MToastProvider, r as useMToast };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-BiPQ8SRK.js","names":[],"sources":["../src/components/form/MForm/FormContext.ts","../src/components/form/MForm/MForm.tsx","../src/components/form/MForm/useFormField.ts"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MFormContextValue} from './MForm.types'\n\nexport const FormContext = createContext<MFormContextValue | null>(null)\n\n// Read the nearest form context to integrate custom fields with shared state.\nexport function useFormContext(): MFormContextValue | null {\n return useContext(FormContext)\n}\n","import {useState, useRef, useCallback, useMemo} from 'react'\nimport type * as React from 'react'\nimport type {MFormProps, MFieldRegistration, MFormContextValue, MFormHelpers} from './MForm.types'\nimport {FormContext} from './FormContext'\nimport {validateRequired} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './MForm.css'\n\n// Coordinate form values, validation state and submit helpers through context.\nexport function MForm({\n initialValues = {},\n onSubmit,\n onChange,\n validationMode = 'onBlur',\n children,\n className,\n style,\n noValidate = true,\n ...rest\n}: MFormProps) {\n const [values, setValues] = useState<Record<string, unknown>>({...initialValues})\n const [errors, setErrors] = useState<Record<string, string>>({})\n const [touched, setTouched] = useState<Record<string, boolean>>({})\n const [isSubmitting, setIsSubmitting] = useState(false)\n const fieldsRef = useRef<Map<string, MFieldRegistration>>(new Map())\n\n // Track mounted fields so validation stays aligned with active inputs.\n const registerField = useCallback((reg: MFieldRegistration) => {\n fieldsRef.current.set(reg.name, reg)\n }, [])\n\n const unregisterField = useCallback((name: string) => {\n fieldsRef.current.delete(name)\n }, [])\n\n // Run required and custom validators without mutating visible error state yet.\n const validateFieldInternal = useCallback(\n (name: string, val?: unknown): ValidationResult => {\n const reg = fieldsRef.current.get(name)\n if (!reg) return {valid: true}\n\n const fieldValue = val !== undefined ? val : values[name]\n const strValue = fieldValue != null ? String(fieldValue) : ''\n\n // Required check\n if (reg.required) {\n const reqResult = validateRequired(strValue)\n if (!reqResult.valid) return reqResult\n }\n\n // Custom validators\n if (reg.validate) {\n for (const validator of reg.validate) {\n const result = validator(strValue)\n if (!result.valid) return result\n }\n }\n\n return {valid: true}\n },\n [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\n setErrors((prev) => {\n if (result.valid) {\n const next = {...prev}\n delete next[name]\n return next\n }\n return {...prev, [name]: result.error!}\n })\n return result\n },\n [validateFieldInternal]\n )\n\n // Validate every registered field before submit.\n const validateAll = useCallback((): boolean => {\n let allValid = true\n const newErrors: Record<string, string> = {}\n\n for (const [name] of fieldsRef.current) {\n const result = validateFieldInternal(name)\n if (!result.valid) {\n allValid = false\n newErrors[name] = result.error!\n }\n }\n\n setErrors(newErrors)\n // Mark all as touched\n const allTouched: Record<string, boolean> = {}\n for (const [name] of fieldsRef.current) {\n allTouched[name] = true\n }\n setTouched(allTouched)\n\n return allValid\n }, [validateFieldInternal])\n\n // Update field values and trigger onChange or validation according to mode.\n const setFieldValue = useCallback(\n (name: string, val: unknown) => {\n setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\n }\n },\n [onChange, validationMode, touched, validateField]\n )\n\n const setFieldError = useCallback((name: string, error: string) => {\n setErrors((prev) => ({...prev, [name]: error}))\n }, [])\n\n // Mark fields as touched so blur validation can start surfacing errors.\n const setFieldTouched = useCallback(\n (name: string, isTouched: boolean) => {\n setTouched((prev) => ({...prev, [name]: isTouched}))\n if (validationMode === 'onBlur' && isTouched) {\n validateField(name)\n }\n },\n [validationMode, validateField]\n )\n\n const resetForm = useCallback(() => {\n setValues({...initialValues})\n setErrors({})\n setTouched({})\n setIsSubmitting(false)\n }, [initialValues])\n\n // Guard submit flow with validation and a single in-flight submission state.\n const handleSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (isSubmitting) return\n\n const valid = validateAll()\n if (!valid) return\n\n setIsSubmitting(true)\n const helpers: MFormHelpers = {\n setSubmitting: setIsSubmitting,\n resetForm,\n setFieldError,\n }\n\n try {\n await onSubmit?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, onSubmit, resetForm, setFieldError]\n )\n\n // Memoize the public form context to limit downstream re-renders.\n const ctx = useMemo<MFormContextValue>(\n () => ({\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n }),\n [\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n ]\n )\n\n return (\n <FormContext.Provider value={ctx}>\n <form\n onSubmit={handleSubmit}\n noValidate={noValidate}\n className={`form${className ? ` ${className}` : ''}`}\n style={style}\n {...rest}\n >\n {typeof children === 'function' ? children(ctx) : children}\n </form>\n </FormContext.Provider>\n )\n}\n","import {useEffect, useCallback} from 'react'\nimport {useFormContext} from './FormContext'\nimport type {ValidatorFn} from '../../../utils/validators'\n\nexport interface MUseFormFieldOptions {\n validate?: ValidatorFn[]\n required?: boolean\n}\n\nexport interface MUseFormFieldReturn {\n value: unknown\n error: string | undefined\n touched: boolean\n onChange: (value: unknown) => void\n onBlur: () => void\n}\n\n// Connect a field name to the nearest form context and expose field-level helpers.\nexport function useFormField(name: string, options?: MUseFormFieldOptions): MUseFormFieldReturn {\n const ctx = useFormContext()\n\n // Register the field definition so the form can validate and reset it centrally.\n useEffect(() => {\n if (!ctx) return\n ctx.registerField({\n name,\n validate: options?.validate,\n required: options?.required,\n })\n return () => ctx.unregisterField(name)\n }, [ctx, name, options?.validate, options?.required])\n\n // Forward value updates into the form state.\n const onChange = useCallback(\n (val: unknown) => {\n ctx?.setFieldValue(name, val)\n },\n [ctx, name]\n )\n\n // Mark the field as touched when the control loses focus.\n const onBlur = useCallback(() => {\n ctx?.setFieldTouched(name, true)\n }, [ctx, name])\n\n return {\n value: ctx?.values[name] ?? '',\n error: ctx?.errors[name],\n touched: ctx?.touched[name] ?? false,\n onChange,\n onBlur,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-CWoOQ_qo.js","names":[],"sources":["../src/components/form/MForm/FormContext.ts","../src/components/form/MForm/MForm.tsx","../src/components/form/MForm/useFormField.ts"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MFormContextValue} from './MForm.types'\n\nexport const FormContext = createContext<MFormContextValue | null>(null)\n\n// Read the nearest form context to integrate custom fields with shared state.\nexport function useFormContext(): MFormContextValue | null {\n return useContext(FormContext)\n}\n","import {useState, useRef, useCallback, useMemo} from 'react'\nimport type * as React from 'react'\nimport type {MFormProps, MFieldRegistration, MFormContextValue, MFormHelpers} from './MForm.types'\nimport {FormContext} from './FormContext'\nimport {validateRequired} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './MForm.css'\n\n// Coordinate form values, validation state and submit helpers through context.\nexport function MForm({\n initialValues = {},\n onSubmit,\n onChange,\n validationMode = 'onBlur',\n children,\n className,\n style,\n noValidate = true,\n ...rest\n}: MFormProps) {\n const [values, setValues] = useState<Record<string, unknown>>({...initialValues})\n const [errors, setErrors] = useState<Record<string, string>>({})\n const [touched, setTouched] = useState<Record<string, boolean>>({})\n const [isSubmitting, setIsSubmitting] = useState(false)\n const fieldsRef = useRef<Map<string, MFieldRegistration>>(new Map())\n\n // Track mounted fields so validation stays aligned with active inputs.\n const registerField = useCallback((reg: MFieldRegistration) => {\n fieldsRef.current.set(reg.name, reg)\n }, [])\n\n const unregisterField = useCallback((name: string) => {\n fieldsRef.current.delete(name)\n }, [])\n\n // Run required and custom validators without mutating visible error state yet.\n const validateFieldInternal = useCallback(\n (name: string, val?: unknown): ValidationResult => {\n const reg = fieldsRef.current.get(name)\n if (!reg) return {valid: true}\n\n const fieldValue = val !== undefined ? val : values[name]\n const strValue = fieldValue != null ? String(fieldValue) : ''\n\n // Required check\n if (reg.required) {\n const reqResult = validateRequired(strValue)\n if (!reqResult.valid) return reqResult\n }\n\n // Custom validators\n if (reg.validate) {\n for (const validator of reg.validate) {\n const result = validator(strValue)\n if (!result.valid) return result\n }\n }\n\n return {valid: true}\n },\n [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\n setErrors((prev) => {\n if (result.valid) {\n const next = {...prev}\n delete next[name]\n return next\n }\n return {...prev, [name]: result.error!}\n })\n return result\n },\n [validateFieldInternal]\n )\n\n // Validate every registered field before submit.\n const validateAll = useCallback((): boolean => {\n let allValid = true\n const newErrors: Record<string, string> = {}\n\n for (const [name] of fieldsRef.current) {\n const result = validateFieldInternal(name)\n if (!result.valid) {\n allValid = false\n newErrors[name] = result.error!\n }\n }\n\n setErrors(newErrors)\n // Mark all as touched\n const allTouched: Record<string, boolean> = {}\n for (const [name] of fieldsRef.current) {\n allTouched[name] = true\n }\n setTouched(allTouched)\n\n return allValid\n }, [validateFieldInternal])\n\n // Update field values and trigger onChange or validation according to mode.\n const setFieldValue = useCallback(\n (name: string, val: unknown) => {\n setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\n }\n },\n [onChange, validationMode, touched, validateField]\n )\n\n const setFieldError = useCallback((name: string, error: string) => {\n setErrors((prev) => ({...prev, [name]: error}))\n }, [])\n\n // Mark fields as touched so blur validation can start surfacing errors.\n const setFieldTouched = useCallback(\n (name: string, isTouched: boolean) => {\n setTouched((prev) => ({...prev, [name]: isTouched}))\n if (validationMode === 'onBlur' && isTouched) {\n validateField(name)\n }\n },\n [validationMode, validateField]\n )\n\n const resetForm = useCallback(() => {\n setValues({...initialValues})\n setErrors({})\n setTouched({})\n setIsSubmitting(false)\n }, [initialValues])\n\n // Guard submit flow with validation and a single in-flight submission state.\n const handleSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (isSubmitting) return\n\n const valid = validateAll()\n if (!valid) return\n\n setIsSubmitting(true)\n const helpers: MFormHelpers = {\n setSubmitting: setIsSubmitting,\n resetForm,\n setFieldError,\n }\n\n try {\n await onSubmit?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, onSubmit, resetForm, setFieldError]\n )\n\n // Memoize the public form context to limit downstream re-renders.\n const ctx = useMemo<MFormContextValue>(\n () => ({\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n }),\n [\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n ]\n )\n\n return (\n <FormContext.Provider value={ctx}>\n <form\n onSubmit={handleSubmit}\n noValidate={noValidate}\n className={`form${className ? ` ${className}` : ''}`}\n style={style}\n {...rest}\n >\n {typeof children === 'function' ? children(ctx) : children}\n </form>\n </FormContext.Provider>\n )\n}\n","import {useEffect, useCallback} from 'react'\nimport {useFormContext} from './FormContext'\nimport type {ValidatorFn} from '../../../utils/validators'\n\nexport interface MUseFormFieldOptions {\n validate?: ValidatorFn[]\n required?: boolean\n}\n\nexport interface MUseFormFieldReturn {\n value: unknown\n error: string | undefined\n touched: boolean\n onChange: (value: unknown) => void\n onBlur: () => void\n}\n\n// Connect a field name to the nearest form context and expose field-level helpers.\nexport function useFormField(name: string, options?: MUseFormFieldOptions): MUseFormFieldReturn {\n const ctx = useFormContext()\n\n // Register the field definition so the form can validate and reset it centrally.\n useEffect(() => {\n if (!ctx) return\n ctx.registerField({\n name,\n validate: options?.validate,\n required: options?.required,\n })\n return () => ctx.unregisterField(name)\n }, [ctx, name, options?.validate, options?.required])\n\n // Forward value updates into the form state.\n const onChange = useCallback(\n (val: unknown) => {\n ctx?.setFieldValue(name, val)\n },\n [ctx, name]\n )\n\n // Mark the field as touched when the control loses focus.\n const onBlur = useCallback(() => {\n ctx?.setFieldTouched(name, true)\n }, [ctx, name])\n\n return {\n value: ctx?.values[name] ?? '',\n error: ctx?.errors[name],\n touched: ctx?.touched[name] ?? false,\n onChange,\n onBlur,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./validators-DRhikiAi.cjs`);require(`./core-
|
|
2
|
-
//# sourceMappingURL=form-
|
|
1
|
+
const e=require(`./validators-DRhikiAi.cjs`);require(`./core-B2klLGki.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-D5F1kTIA.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-DlXWN2ul.cjs","names":[],"sources":["../src/components/form/MForm/FormContext.ts","../src/components/form/MForm/MForm.tsx","../src/components/form/MForm/useFormField.ts"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MFormContextValue} from './MForm.types'\n\nexport const FormContext = createContext<MFormContextValue | null>(null)\n\n// Read the nearest form context to integrate custom fields with shared state.\nexport function useFormContext(): MFormContextValue | null {\n return useContext(FormContext)\n}\n","import {useState, useRef, useCallback, useMemo} from 'react'\nimport type * as React from 'react'\nimport type {MFormProps, MFieldRegistration, MFormContextValue, MFormHelpers} from './MForm.types'\nimport {FormContext} from './FormContext'\nimport {validateRequired} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './MForm.css'\n\n// Coordinate form values, validation state and submit helpers through context.\nexport function MForm({\n initialValues = {},\n onSubmit,\n onChange,\n validationMode = 'onBlur',\n children,\n className,\n style,\n noValidate = true,\n ...rest\n}: MFormProps) {\n const [values, setValues] = useState<Record<string, unknown>>({...initialValues})\n const [errors, setErrors] = useState<Record<string, string>>({})\n const [touched, setTouched] = useState<Record<string, boolean>>({})\n const [isSubmitting, setIsSubmitting] = useState(false)\n const fieldsRef = useRef<Map<string, MFieldRegistration>>(new Map())\n\n // Track mounted fields so validation stays aligned with active inputs.\n const registerField = useCallback((reg: MFieldRegistration) => {\n fieldsRef.current.set(reg.name, reg)\n }, [])\n\n const unregisterField = useCallback((name: string) => {\n fieldsRef.current.delete(name)\n }, [])\n\n // Run required and custom validators without mutating visible error state yet.\n const validateFieldInternal = useCallback(\n (name: string, val?: unknown): ValidationResult => {\n const reg = fieldsRef.current.get(name)\n if (!reg) return {valid: true}\n\n const fieldValue = val !== undefined ? val : values[name]\n const strValue = fieldValue != null ? String(fieldValue) : ''\n\n // Required check\n if (reg.required) {\n const reqResult = validateRequired(strValue)\n if (!reqResult.valid) return reqResult\n }\n\n // Custom validators\n if (reg.validate) {\n for (const validator of reg.validate) {\n const result = validator(strValue)\n if (!result.valid) return result\n }\n }\n\n return {valid: true}\n },\n [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\n setErrors((prev) => {\n if (result.valid) {\n const next = {...prev}\n delete next[name]\n return next\n }\n return {...prev, [name]: result.error!}\n })\n return result\n },\n [validateFieldInternal]\n )\n\n // Validate every registered field before submit.\n const validateAll = useCallback((): boolean => {\n let allValid = true\n const newErrors: Record<string, string> = {}\n\n for (const [name] of fieldsRef.current) {\n const result = validateFieldInternal(name)\n if (!result.valid) {\n allValid = false\n newErrors[name] = result.error!\n }\n }\n\n setErrors(newErrors)\n // Mark all as touched\n const allTouched: Record<string, boolean> = {}\n for (const [name] of fieldsRef.current) {\n allTouched[name] = true\n }\n setTouched(allTouched)\n\n return allValid\n }, [validateFieldInternal])\n\n // Update field values and trigger onChange or validation according to mode.\n const setFieldValue = useCallback(\n (name: string, val: unknown) => {\n setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\n }\n },\n [onChange, validationMode, touched, validateField]\n )\n\n const setFieldError = useCallback((name: string, error: string) => {\n setErrors((prev) => ({...prev, [name]: error}))\n }, [])\n\n // Mark fields as touched so blur validation can start surfacing errors.\n const setFieldTouched = useCallback(\n (name: string, isTouched: boolean) => {\n setTouched((prev) => ({...prev, [name]: isTouched}))\n if (validationMode === 'onBlur' && isTouched) {\n validateField(name)\n }\n },\n [validationMode, validateField]\n )\n\n const resetForm = useCallback(() => {\n setValues({...initialValues})\n setErrors({})\n setTouched({})\n setIsSubmitting(false)\n }, [initialValues])\n\n // Guard submit flow with validation and a single in-flight submission state.\n const handleSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (isSubmitting) return\n\n const valid = validateAll()\n if (!valid) return\n\n setIsSubmitting(true)\n const helpers: MFormHelpers = {\n setSubmitting: setIsSubmitting,\n resetForm,\n setFieldError,\n }\n\n try {\n await onSubmit?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, onSubmit, resetForm, setFieldError]\n )\n\n // Memoize the public form context to limit downstream re-renders.\n const ctx = useMemo<MFormContextValue>(\n () => ({\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n }),\n [\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n ]\n )\n\n return (\n <FormContext.Provider value={ctx}>\n <form\n onSubmit={handleSubmit}\n noValidate={noValidate}\n className={`form${className ? ` ${className}` : ''}`}\n style={style}\n {...rest}\n >\n {typeof children === 'function' ? children(ctx) : children}\n </form>\n </FormContext.Provider>\n )\n}\n","import {useEffect, useCallback} from 'react'\nimport {useFormContext} from './FormContext'\nimport type {ValidatorFn} from '../../../utils/validators'\n\nexport interface MUseFormFieldOptions {\n validate?: ValidatorFn[]\n required?: boolean\n}\n\nexport interface MUseFormFieldReturn {\n value: unknown\n error: string | undefined\n touched: boolean\n onChange: (value: unknown) => void\n onBlur: () => void\n}\n\n// Connect a field name to the nearest form context and expose field-level helpers.\nexport function useFormField(name: string, options?: MUseFormFieldOptions): MUseFormFieldReturn {\n const ctx = useFormContext()\n\n // Register the field definition so the form can validate and reset it centrally.\n useEffect(() => {\n if (!ctx) return\n ctx.registerField({\n name,\n validate: options?.validate,\n required: options?.required,\n })\n return () => ctx.unregisterField(name)\n }, [ctx, name, options?.validate, options?.required])\n\n // Forward value updates into the form state.\n const onChange = useCallback(\n (val: unknown) => {\n ctx?.setFieldValue(name, val)\n },\n [ctx, name]\n )\n\n // Mark the field as touched when the control loses focus.\n const onBlur = useCallback(() => {\n ctx?.setFieldTouched(name, true)\n }, [ctx, name])\n\n return {\n value: ctx?.values[name] ?? '',\n error: ctx?.errors[name],\n touched: ctx?.touched[name] ?? false,\n onChange,\n onBlur,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-D5F1kTIA.cjs","names":[],"sources":["../src/components/form/MForm/FormContext.ts","../src/components/form/MForm/MForm.tsx","../src/components/form/MForm/useFormField.ts"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MFormContextValue} from './MForm.types'\n\nexport const FormContext = createContext<MFormContextValue | null>(null)\n\n// Read the nearest form context to integrate custom fields with shared state.\nexport function useFormContext(): MFormContextValue | null {\n return useContext(FormContext)\n}\n","import {useState, useRef, useCallback, useMemo} from 'react'\nimport type * as React from 'react'\nimport type {MFormProps, MFieldRegistration, MFormContextValue, MFormHelpers} from './MForm.types'\nimport {FormContext} from './FormContext'\nimport {validateRequired} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './MForm.css'\n\n// Coordinate form values, validation state and submit helpers through context.\nexport function MForm({\n initialValues = {},\n onSubmit,\n onChange,\n validationMode = 'onBlur',\n children,\n className,\n style,\n noValidate = true,\n ...rest\n}: MFormProps) {\n const [values, setValues] = useState<Record<string, unknown>>({...initialValues})\n const [errors, setErrors] = useState<Record<string, string>>({})\n const [touched, setTouched] = useState<Record<string, boolean>>({})\n const [isSubmitting, setIsSubmitting] = useState(false)\n const fieldsRef = useRef<Map<string, MFieldRegistration>>(new Map())\n\n // Track mounted fields so validation stays aligned with active inputs.\n const registerField = useCallback((reg: MFieldRegistration) => {\n fieldsRef.current.set(reg.name, reg)\n }, [])\n\n const unregisterField = useCallback((name: string) => {\n fieldsRef.current.delete(name)\n }, [])\n\n // Run required and custom validators without mutating visible error state yet.\n const validateFieldInternal = useCallback(\n (name: string, val?: unknown): ValidationResult => {\n const reg = fieldsRef.current.get(name)\n if (!reg) return {valid: true}\n\n const fieldValue = val !== undefined ? val : values[name]\n const strValue = fieldValue != null ? String(fieldValue) : ''\n\n // Required check\n if (reg.required) {\n const reqResult = validateRequired(strValue)\n if (!reqResult.valid) return reqResult\n }\n\n // Custom validators\n if (reg.validate) {\n for (const validator of reg.validate) {\n const result = validator(strValue)\n if (!result.valid) return result\n }\n }\n\n return {valid: true}\n },\n [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\n setErrors((prev) => {\n if (result.valid) {\n const next = {...prev}\n delete next[name]\n return next\n }\n return {...prev, [name]: result.error!}\n })\n return result\n },\n [validateFieldInternal]\n )\n\n // Validate every registered field before submit.\n const validateAll = useCallback((): boolean => {\n let allValid = true\n const newErrors: Record<string, string> = {}\n\n for (const [name] of fieldsRef.current) {\n const result = validateFieldInternal(name)\n if (!result.valid) {\n allValid = false\n newErrors[name] = result.error!\n }\n }\n\n setErrors(newErrors)\n // Mark all as touched\n const allTouched: Record<string, boolean> = {}\n for (const [name] of fieldsRef.current) {\n allTouched[name] = true\n }\n setTouched(allTouched)\n\n return allValid\n }, [validateFieldInternal])\n\n // Update field values and trigger onChange or validation according to mode.\n const setFieldValue = useCallback(\n (name: string, val: unknown) => {\n setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\n }\n },\n [onChange, validationMode, touched, validateField]\n )\n\n const setFieldError = useCallback((name: string, error: string) => {\n setErrors((prev) => ({...prev, [name]: error}))\n }, [])\n\n // Mark fields as touched so blur validation can start surfacing errors.\n const setFieldTouched = useCallback(\n (name: string, isTouched: boolean) => {\n setTouched((prev) => ({...prev, [name]: isTouched}))\n if (validationMode === 'onBlur' && isTouched) {\n validateField(name)\n }\n },\n [validationMode, validateField]\n )\n\n const resetForm = useCallback(() => {\n setValues({...initialValues})\n setErrors({})\n setTouched({})\n setIsSubmitting(false)\n }, [initialValues])\n\n // Guard submit flow with validation and a single in-flight submission state.\n const handleSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (isSubmitting) return\n\n const valid = validateAll()\n if (!valid) return\n\n setIsSubmitting(true)\n const helpers: MFormHelpers = {\n setSubmitting: setIsSubmitting,\n resetForm,\n setFieldError,\n }\n\n try {\n await onSubmit?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, onSubmit, resetForm, setFieldError]\n )\n\n // Memoize the public form context to limit downstream re-renders.\n const ctx = useMemo<MFormContextValue>(\n () => ({\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n }),\n [\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n ]\n )\n\n return (\n <FormContext.Provider value={ctx}>\n <form\n onSubmit={handleSubmit}\n noValidate={noValidate}\n className={`form${className ? ` ${className}` : ''}`}\n style={style}\n {...rest}\n >\n {typeof children === 'function' ? children(ctx) : children}\n </form>\n </FormContext.Provider>\n )\n}\n","import {useEffect, useCallback} from 'react'\nimport {useFormContext} from './FormContext'\nimport type {ValidatorFn} from '../../../utils/validators'\n\nexport interface MUseFormFieldOptions {\n validate?: ValidatorFn[]\n required?: boolean\n}\n\nexport interface MUseFormFieldReturn {\n value: unknown\n error: string | undefined\n touched: boolean\n onChange: (value: unknown) => void\n onBlur: () => void\n}\n\n// Connect a field name to the nearest form context and expose field-level helpers.\nexport function useFormField(name: string, options?: MUseFormFieldOptions): MUseFormFieldReturn {\n const ctx = useFormContext()\n\n // Register the field definition so the form can validate and reset it centrally.\n useEffect(() => {\n if (!ctx) return\n ctx.registerField({\n name,\n validate: options?.validate,\n required: options?.required,\n })\n return () => ctx.unregisterField(name)\n }, [ctx, name, options?.validate, options?.required])\n\n // Forward value updates into the form state.\n const onChange = useCallback(\n (val: unknown) => {\n ctx?.setFieldValue(name, val)\n },\n [ctx, name]\n )\n\n // Mark the field as touched when the control loses focus.\n const onBlur = useCallback(() => {\n ctx?.setFieldTouched(name, true)\n }, [ctx, name])\n\n return {\n value: ctx?.values[name] ?? '',\n error: ctx?.errors[name],\n touched: ctx?.touched[name] ?? false,\n onChange,\n onBlur,\n }\n}\n"],"mappings":"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"}
|
package/dist/form.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(`./form-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./form-D5F1kTIA.cjs`);exports.MForm=e.n,exports.useFormContext=e.r,exports.useFormField=e.t;
|
package/dist/form.js
CHANGED
package/dist/i18n.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(`./MI18nProvider-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MI18nProvider-bf1G7lTP.cjs`);exports.MI18nProvider=e.t,exports.useMI18n=e.n;
|
|
@@ -5,4 +5,10 @@ export interface MIconProps extends Omit<SVGAttributes<SVGSVGElement>, 'children
|
|
|
5
5
|
color?: MColor | 'inherit';
|
|
6
6
|
title?: string;
|
|
7
7
|
children?: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Only respected by v2 illustration-style icons (`MIconV2` and the
|
|
10
|
+
* generated `M*IconV2` glyph components). When true, the rounded shell
|
|
11
|
+
* card background is drawn behind the glyph. Ignored by v1 icons.
|
|
12
|
+
*/
|
|
13
|
+
shell?: boolean;
|
|
8
14
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MIconProps } from '../MIcon.types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const MAirplaneIcon: import('react').ForwardRefExoticComponent<MIconProps & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MIconProps } from '../MIcon.types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const MArchiveIcon: import('react').ForwardRefExoticComponent<MIconProps & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MIconProps } from '../MIcon.types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const MBookOpenIcon: import('react').ForwardRefExoticComponent<MIconProps & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MIconProps } from '../MIcon.types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const MFlagAtIcon: import('react').ForwardRefExoticComponent<MIconProps & import('react').RefAttributes<SVGSVGElement>>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { MIconProps } from '../MIcon.types';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const MFlagAuIcon: import('react').ForwardRefExoticComponent<MIconProps & import('react').RefAttributes<SVGSVGElement>>;
|