@banzamel/mineralui 1.9.1 → 1.10.1
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-B-dMj34h.cjs} +2 -2
- package/dist/{MDropdownMenu-c9U3sEcl.cjs.map → MDropdownMenu-B-dMj34h.cjs.map} +1 -1
- package/dist/{MDropdownMenu-CeiC1tz3.js → MDropdownMenu-DKbC3uSE.js} +1 -1
- package/dist/{MDropdownMenu-CeiC1tz3.js.map → MDropdownMenu-DKbC3uSE.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-BEO1SXzg.cjs +2 -0
- package/dist/MInputCVC-BEO1SXzg.cjs.map +1 -0
- package/dist/{MInputExpDate-CeCmw6fj.js → MInputCVC-BimlubK5.js} +101 -101
- package/dist/MInputCVC-BimlubK5.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-CxxaY9kr.cjs → MPopover-DHClYfBc.cjs} +2 -2
- package/dist/{MPopover-CxxaY9kr.cjs.map → MPopover-DHClYfBc.cjs.map} +1 -1
- 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-CTZ7694-.cjs +2 -0
- package/dist/cards-CTZ7694-.cjs.map +1 -0
- package/dist/cards-DNJvVlUm.js +1203 -0
- package/dist/cards-DNJvVlUm.js.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-BDry4bk_.js +459 -0
- package/dist/data-BDry4bk_.js.map +1 -0
- package/dist/data-COVvihdF.cjs +2 -0
- package/dist/data-COVvihdF.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-C_MjnFTp.cjs +2 -0
- package/dist/dropdowns-C_MjnFTp.cjs.map +1 -0
- package/dist/dropdowns-Chx4Tsde.js +1752 -0
- package/dist/dropdowns-Chx4Tsde.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-CC8eu_Ec.js +823 -0
- package/dist/layout-CC8eu_Ec.js.map +1 -0
- package/dist/layout-CLVbUUlu.cjs +2 -0
- package/dist/layout-CLVbUUlu.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-CGNbrxBY.js +568 -0
- package/dist/overlays-CGNbrxBY.js.map +1 -0
- package/dist/overlays-DySvwSRv.cjs +2 -0
- package/dist/overlays-DySvwSRv.cjs.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/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/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
package/README.md
CHANGED
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
Modern React UI framework with a sharp admin aesthetic, theming system, and production-ready components.
|
|
4
4
|
|
|
5
5
|
- npm: `@banzamel/mineralui`
|
|
6
|
-
- version: `1.
|
|
6
|
+
- version: `1.10.1`
|
|
7
7
|
- peer dependencies: `react >= 19`, `react-dom >= 19`
|
|
8
8
|
- repository: `https://github.com/Banzamel/mineralui`
|
|
9
9
|
- homepage: `https://mineralui.io`
|
|
10
|
-
- styles: bundled and auto-injected on component import
|
|
11
10
|
|
|
12
11
|
## Installation
|
|
13
12
|
|
|
@@ -17,37 +16,26 @@ npm install @banzamel/mineralui
|
|
|
17
16
|
|
|
18
17
|
No separate CSS import is required.
|
|
19
18
|
|
|
20
|
-
##
|
|
19
|
+
## What MineralUI Basic includes
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
Private full package distributed separately with premium components and product modules.
|
|
28
|
-
|
|
29
|
-
The public repository is the source of truth for the framework and can generate both release packages.
|
|
21
|
+
- production-ready React UI components for dashboards, admin panels, forms, and internal tools
|
|
22
|
+
- theming with CSS variables and dark/light mode support
|
|
23
|
+
- layout primitives, overlays, inputs, feedback components, media, cards, and utilities
|
|
24
|
+
- tree-shakeable grouped subpath exports
|
|
25
|
+
- bundled styles with automatic runtime injection
|
|
30
26
|
|
|
31
27
|
## Quick Start
|
|
32
28
|
|
|
33
29
|
```tsx
|
|
34
|
-
import {MThemeProvider, MCard, MCardHeader, MCardBody, MInput,
|
|
30
|
+
import {MThemeProvider, MCard, MCardHeader, MCardBody, MInput, MButton} from '@banzamel/mineralui'
|
|
35
31
|
|
|
36
|
-
function
|
|
32
|
+
export function Example() {
|
|
37
33
|
return (
|
|
38
34
|
<MThemeProvider mode="dark">
|
|
39
35
|
<MCard>
|
|
40
|
-
<MCardHeader title="Workspace settings"
|
|
36
|
+
<MCardHeader title="Workspace settings" />
|
|
41
37
|
<MCardBody>
|
|
42
38
|
<MInput label="Workspace name" placeholder="Banzamel Studio" fullWidth />
|
|
43
|
-
<MSelect
|
|
44
|
-
label="Default role"
|
|
45
|
-
fullWidth
|
|
46
|
-
options={[
|
|
47
|
-
{value: 'owner', label: 'Owner'},
|
|
48
|
-
{value: 'editor', label: 'Editor'},
|
|
49
|
-
]}
|
|
50
|
-
/>
|
|
51
39
|
<MButton>Save changes</MButton>
|
|
52
40
|
</MCardBody>
|
|
53
41
|
</MCard>
|
|
@@ -56,42 +44,21 @@ function AccountSettings() {
|
|
|
56
44
|
}
|
|
57
45
|
```
|
|
58
46
|
|
|
59
|
-
##
|
|
60
|
-
|
|
61
|
-
- theming and i18n providers
|
|
62
|
-
- layout primitives for dashboards and docs shells
|
|
63
|
-
- controls, inputs, overlays, cards, tables, galleries, typography and utilities
|
|
64
|
-
- grouped subpath exports such as:
|
|
65
|
-
- `@banzamel/mineralui/layout`
|
|
66
|
-
- `@banzamel/mineralui/controls`
|
|
67
|
-
- `@banzamel/mineralui/data`
|
|
68
|
-
- `@banzamel/mineralui/feedback`
|
|
69
|
-
- `@banzamel/mineralui/theme`
|
|
70
|
-
|
|
71
|
-
## Pro Surface
|
|
72
|
-
|
|
73
|
-
The Pro package extends the Basic package with premium modules currently marked in framework licensing metadata, including:
|
|
74
|
-
|
|
75
|
-
- advanced data modules such as `MFileManager`, `MCalendarBoard`, `MChat`
|
|
76
|
-
- premium display modules such as `MStepper`, `MTimeline`, `MQrCode`
|
|
77
|
-
- premium cards, charts, media, cookie-consent system, `MTopbar`, and `MIconV2`
|
|
47
|
+
## Popular grouped imports
|
|
78
48
|
|
|
49
|
+
```tsx
|
|
50
|
+
import {MButton, MCheckbox} from '@banzamel/mineralui/controls'
|
|
51
|
+
import {MCard, MCardBody} from '@banzamel/mineralui/cards'
|
|
52
|
+
import {MDataTable} from '@banzamel/mineralui/data'
|
|
53
|
+
import {MThemeProvider} from '@banzamel/mineralui/theme'
|
|
79
54
|
```
|
|
80
55
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## Design Notes
|
|
84
|
-
|
|
85
|
-
MineralUI is token-driven and override-friendly:
|
|
56
|
+
## Documentation
|
|
86
57
|
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
- dark and light mode through one token system
|
|
90
|
-
- scoped overrides through `MThemeProvider`
|
|
91
|
-
- no runtime dependencies besides React peer dependencies
|
|
58
|
+
- website: `https://mineralui.io`
|
|
59
|
+
- docs: `https://mineralui.io/docs`
|
|
92
60
|
|
|
93
|
-
##
|
|
61
|
+
## Basic vs Pro
|
|
94
62
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- npm: `https://www.npmjs.com/package/@banzamel/mineralui`
|
|
63
|
+
This package is the public Basic edition of MineralUI.
|
|
64
|
+
Premium components, templates, package access, and installation tooling are distributed separately in MineralUI Pro.
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./theme-yQQAPTkp.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-BH2dgQla.cjs`),r=require(`./MButton-ouB6903s.cjs`);require(`./core-B2klLGki.cjs`);let i=require(`react/jsx-runtime`);function a(e,t){if(t)return t.slice(0,2).toUpperCase();if(!e)return`?`;let n=e.trim().split(/\s+/).filter(Boolean);return n.length===0?`?`:n.length===1?n[0].slice(0,2).toUpperCase():`${n[0][0]}${n[1][0]}`.toUpperCase()}var o={online:`success`,offline:`neutral`,away:`warning`,busy:`error`};function s({src:s,alt:c,name:l,initials:u,size:d=`md`,shape:f=`circle`,hidden:p,color:m,badge:h,badgeColor:g,badgePulsing:_,presence:v,backgroundColor:y,clickEffect:b,rippleColor:x,skeleton:S=!1,className:C,style:w,onPointerDown:T,...E}){let D=a(l,u),O=typeof E.onClick==`function`||E.role===`button`||E.tabIndex!==void 0,k=h===void 0?v===void 0?void 0:!0:h,A=g??(v===void 0?void 0:o[v]),j=_??v!==void 0,{effectClassName:M,effectLayer:N,handlePointerDown:P}=n.t({effect:b??(O?`ripple`:`none`),disabled:!O||S,color:x}),F=typeof d==`number`?{width:`${d}px`,height:`${d}px`,...w,...y&&!S?{backgroundColor:y}:{}}:{...w,...y&&!S?{backgroundColor:y}:{}};return(0,i.jsxs)(`span`,{className:t.t(`avatar`,typeof d==`string`&&d,f,S&&`skeleton animate`,O&&!S&&`interactive`,M,!S&&m&&`color-${m}`,C),style:F,"aria-label":S?`Loading`:c??l??`MAvatar`,onPointerDown:e=>{P(e),T?.(e)},...e.r(p),...E,children:[N,r.n({badge:k,badgeColor:A,badgePulsing:j}),S?null:s?(0,i.jsx)(`img`,{src:s,alt:c??l??``,className:`image`}):(0,i.jsx)(`span`,{className:`fallback`,children:D})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
|
2
|
+
//# sourceMappingURL=MAvatar-BElYyQXH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MAvatar-BElYyQXH.cjs","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarPresence, MAvatarProps} from './MAvatar.types'\nimport type {MColor} from '../../../theme'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\nconst PRESENCE_BADGE_COLOR: Record<MAvatarPresence, MColor> = {\n online: 'success',\n offline: 'neutral',\n away: 'warning',\n busy: 'error',\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing,\n presence,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const resolvedBadge = badge !== undefined ? badge : presence !== undefined ? true : undefined\n const resolvedBadgeColor = badgeColor ?? (presence !== undefined ? PRESENCE_BADGE_COLOR[presence] : undefined)\n const resolvedBadgePulsing = badgePulsing ?? (presence !== undefined ? true : false)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge: resolvedBadge, badgeColor: resolvedBadgeColor, badgePulsing: resolvedBadgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":"8NASA,SAAS,EAAoB,EAAe,EAAmB,CAC3D,GAAI,EAAU,OAAO,EAAS,MAAM,EAAG,EAAE,CAAC,aAAa,CACvD,GAAI,CAAC,EAAM,MAAO,IAClB,IAAM,EAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ,CAGtD,OAFI,EAAM,SAAW,EAAU,IAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,EAAE,CAAC,aAAa,CAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa,CAGvD,IAAM,EAAwD,CAC1D,OAAQ,UACR,QAAS,UACT,KAAM,UACN,KAAM,QACT,CAGD,SAAgB,EAAQ,CACpB,MACA,MACA,OACA,WACA,OAAO,KACP,QAAQ,SACR,SACA,QACA,QACA,aACA,eACA,WACA,kBACA,cACA,cACA,WAAW,GACX,YACA,QACA,gBACA,GAAG,GACU,CACb,IAAM,EAAmB,EAAoB,EAAM,EAAS,CACtD,EAAgB,OAAO,EAAK,SAAY,YAAc,EAAK,OAAS,UAAY,EAAK,WAAa,IAAA,GAClG,EAAgB,IAAU,IAAA,GAAoB,IAAa,IAAA,GAAmB,IAAA,GAAP,GAAjC,EACtC,EAAqB,IAAe,IAAa,IAAA,GAA6C,IAAA,GAAjC,EAAqB,IAClF,EAAuB,GAAiB,IAAa,IAAA,GACrD,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAsC,CAC5F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CACI,EACF,OAAO,GAAS,SACV,CACI,MAAO,GAAG,EAAK,IACf,OAAQ,GAAG,EAAK,IAChB,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CACD,CACI,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CAEX,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,SACA,OAAO,GAAS,UAAY,EAC5B,EACA,GAAY,mBACZ,GAAiB,CAAC,GAAY,cAC9B,EACA,CAAC,GAAY,GAAS,SAAS,IAC/B,EACH,CACD,MAAO,EACP,aAAY,EAAW,UAAa,GAAO,GAAQ,UACnD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlBR,CAoBK,EACA,EAAA,EAAmB,CAAC,MAAO,EAAe,WAAY,EAAoB,aAAc,EAAqB,CAAC,CAC9G,EAAW,KAAO,GACf,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,IAAK,GAAO,GAAQ,GAAI,UAAW,QAAW,CAAA,EAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,oBAAa,EAAwB,CAAA,CAEvD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { r as e } from "./theme-DAOU1aPs.js";
|
|
2
|
+
import { t } from "./cn-YER3QsV1.js";
|
|
3
|
+
import { t as n } from "./useInteractionEffect-DtpbVd77.js";
|
|
4
|
+
import { n as r } from "./MButton-C94fZ3l9.js";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/media/MAvatar/MAvatar.tsx
|
|
7
|
+
function o(e, t) {
|
|
8
|
+
if (t) return t.slice(0, 2).toUpperCase();
|
|
9
|
+
if (!e) return "?";
|
|
10
|
+
let n = e.trim().split(/\s+/).filter(Boolean);
|
|
11
|
+
return n.length === 0 ? "?" : n.length === 1 ? n[0].slice(0, 2).toUpperCase() : `${n[0][0]}${n[1][0]}`.toUpperCase();
|
|
12
|
+
}
|
|
13
|
+
var s = {
|
|
14
|
+
online: "success",
|
|
15
|
+
offline: "neutral",
|
|
16
|
+
away: "warning",
|
|
17
|
+
busy: "error"
|
|
18
|
+
};
|
|
19
|
+
function c({ src: c, alt: l, name: u, initials: d, size: f = "md", shape: p = "circle", hidden: m, color: h, badge: g, badgeColor: _, badgePulsing: v, presence: y, backgroundColor: b, clickEffect: x, rippleColor: S, skeleton: C = !1, className: w, style: T, onPointerDown: E, ...D }) {
|
|
20
|
+
let O = o(u, d), k = typeof D.onClick == "function" || D.role === "button" || D.tabIndex !== void 0, A = g === void 0 ? y === void 0 ? void 0 : !0 : g, j = _ ?? (y === void 0 ? void 0 : s[y]), M = v ?? y !== void 0, { effectClassName: N, effectLayer: P, handlePointerDown: F } = n({
|
|
21
|
+
effect: x ?? (k ? "ripple" : "none"),
|
|
22
|
+
disabled: !k || C,
|
|
23
|
+
color: S
|
|
24
|
+
}), I = typeof f == "number" ? {
|
|
25
|
+
width: `${f}px`,
|
|
26
|
+
height: `${f}px`,
|
|
27
|
+
...T,
|
|
28
|
+
...b && !C ? { backgroundColor: b } : {}
|
|
29
|
+
} : {
|
|
30
|
+
...T,
|
|
31
|
+
...b && !C ? { backgroundColor: b } : {}
|
|
32
|
+
};
|
|
33
|
+
return /* @__PURE__ */ a("span", {
|
|
34
|
+
className: t("avatar", typeof f == "string" && f, p, C && "skeleton animate", k && !C && "interactive", N, !C && h && `color-${h}`, w),
|
|
35
|
+
style: I,
|
|
36
|
+
"aria-label": C ? "Loading" : l ?? u ?? "MAvatar",
|
|
37
|
+
onPointerDown: (e) => {
|
|
38
|
+
F(e), E?.(e);
|
|
39
|
+
},
|
|
40
|
+
...e(m),
|
|
41
|
+
...D,
|
|
42
|
+
children: [
|
|
43
|
+
P,
|
|
44
|
+
r({
|
|
45
|
+
badge: A,
|
|
46
|
+
badgeColor: j,
|
|
47
|
+
badgePulsing: M
|
|
48
|
+
}),
|
|
49
|
+
C ? null : c ? /* @__PURE__ */ i("img", {
|
|
50
|
+
src: c,
|
|
51
|
+
alt: l ?? u ?? "",
|
|
52
|
+
className: "image"
|
|
53
|
+
}) : /* @__PURE__ */ i("span", {
|
|
54
|
+
className: "fallback",
|
|
55
|
+
children: O
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { c as t };
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=MAvatar-CIvYzQV4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MAvatar-CIvYzQV4.js","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarPresence, MAvatarProps} from './MAvatar.types'\nimport type {MColor} from '../../../theme'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\nconst PRESENCE_BADGE_COLOR: Record<MAvatarPresence, MColor> = {\n online: 'success',\n offline: 'neutral',\n away: 'warning',\n busy: 'error',\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing,\n presence,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const resolvedBadge = badge !== undefined ? badge : presence !== undefined ? true : undefined\n const resolvedBadgeColor = badgeColor ?? (presence !== undefined ? PRESENCE_BADGE_COLOR[presence] : undefined)\n const resolvedBadgePulsing = badgePulsing ?? (presence !== undefined ? true : false)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge: resolvedBadge, badgeColor: resolvedBadgeColor, badgePulsing: resolvedBadgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;AASA,SAAS,EAAoB,GAAe,GAAmB;AAC3D,KAAI,EAAU,QAAO,EAAS,MAAM,GAAG,EAAE,CAAC,aAAa;AACvD,KAAI,CAAC,EAAM,QAAO;CAClB,IAAM,IAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ;AAGtD,QAFI,EAAM,WAAW,IAAU,MAC3B,EAAM,WAAW,IAAU,EAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,GAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa;;AAGvD,IAAM,IAAwD;CAC1D,QAAQ;CACR,SAAS;CACT,MAAM;CACN,MAAM;CACT;AAGD,SAAgB,EAAQ,EACpB,QACA,QACA,SACA,aACA,UAAO,MACP,WAAQ,UACR,WACA,UACA,UACA,eACA,iBACA,aACA,oBACA,gBACA,gBACA,cAAW,IACX,cACA,UACA,kBACA,GAAG,KACU;CACb,IAAM,IAAmB,EAAoB,GAAM,EAAS,EACtD,IAAgB,OAAO,EAAK,WAAY,cAAc,EAAK,SAAS,YAAY,EAAK,aAAa,KAAA,GAClG,IAAgB,MAAU,KAAA,IAAoB,MAAa,KAAA,IAAmB,KAAA,IAAP,KAAjC,GACtC,IAAqB,MAAe,MAAa,KAAA,IAA6C,KAAA,IAAjC,EAAqB,KAClF,IAAuB,KAAiB,MAAa,KAAA,GACrD,EAAC,oBAAiB,gBAAa,yBAAqB,EAAsC;EAC5F,QAAQ,MAAgB,IAAgB,WAAW;EACnD,UAAU,CAAC,KAAiB;EAC5B,OAAO;EACV,CAAC,EACI,IACF,OAAO,KAAS,WACV;EACI,OAAO,GAAG,EAAK;EACf,QAAQ,GAAG,EAAK;EAChB,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D,GACD;EACI,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D;AAEX,QACI,kBAAC,QAAD;EACI,WAAW,EACP,UACA,OAAO,KAAS,YAAY,GAC5B,GACA,KAAY,oBACZ,KAAiB,CAAC,KAAY,eAC9B,GACA,CAAC,KAAY,KAAS,SAAS,KAC/B,EACH;EACD,OAAO;EACP,cAAY,IAAW,YAAa,KAAO,KAAQ;EACnD,gBAAgB,MAAU;AAEtB,GADA,EAAkB,EAAM,EACxB,IAAgB,EAAM;;EAE1B,GAAI,EAAe,EAAO;EAC1B,GAAI;YAlBR;GAoBK;GACA,EAAmB;IAAC,OAAO;IAAe,YAAY;IAAoB,cAAc;IAAqB,CAAC;GAC9G,IAAW,OAAO,IACf,kBAAC,OAAD;IAAU;IAAK,KAAK,KAAO,KAAQ;IAAI,WAAW;IAAW,CAAA,GAE7D,kBAAC,QAAD;IAAM,WAAW;cAAa;IAAwB,CAAA;GAEvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MButton-
|
|
1
|
+
{"version":3,"file":"MButton-C94fZ3l9.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n target,\n rel,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n target={component ? (isDisabled ? undefined : target) : undefined}\n rel={component ? (isDisabled ? undefined : rel) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./theme-
|
|
2
|
-
//# sourceMappingURL=MButton-
|
|
1
|
+
const e=require(`./theme-yQQAPTkp.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-BH2dgQla.cjs`);require(`./core-B2klLGki.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.createContext)(null);function o(){return(0,r.useContext)(a)}function s({color:e=`primary`,size:n=`md`,label:r=`Loading`,className:a,style:o,...s}){let c=typeof n==`number`?{width:`${n}px`,height:`${n}px`,...o}:o||{};return(0,i.jsx)(`span`,{className:t.t(`spinner`,typeof n==`string`&&n,e&&`color-${e}`,a),style:c,role:`status`,"aria-label":r,...s})}function c(e){return e!=null&&e!==!1}function l({badge:e,badgeColor:t,badgePulsing:n}){return c(e)}function u({badge:e,badgeColor:n=`primary`,badgePulsing:r=!1,className:a}){if(!l({badge:e,badgeColor:n,badgePulsing:r}))return null;let o=e===!0;return(0,i.jsx)(`span`,{className:t.t(`overlay-badge`,`color-${n}`,o&&`dot`,r&&`pulsing`,a),"aria-hidden":`true`,children:o?null:e})}var d=(0,r.forwardRef)(function({component:r,to:a,href:c,target:l,rel:d,variant:f,size:p,color:m,hidden:h,fullWidth:g=!1,rounded:_=!1,shape:v,iconOnly:y=!1,loading:b=!1,active:x=!1,pulsing:S=!1,badge:C,badgeColor:w,badgePulsing:T=!1,startIcon:E,endIcon:D,clickEffect:O=`ripple`,rippleColor:k,className:A,style:j,children:M,disabled:N=!1,type:P=`button`,onClick:F,onPointerDown:I,onKeyDown:L,...R},z){let B=r??`button`,V=!r||B===`button`,H=o(),U=f??H?.variant??`filled`,W=p??H?.size??`md`,G=m??H?.color??`primary`,K=N||b,{effectClassName:q,effectLayer:J,handlePointerDown:Y,triggerEffect:X}=n.t({effect:O,disabled:K,centered:y,color:k});function Z(e){if(K&&!V){e.preventDefault();return}F?.(e)}return(0,i.jsxs)(B,{ref:z,type:V?P:void 0,to:r?K?void 0:a:void 0,href:r?K?void 0:c:void 0,target:r?K?void 0:l:void 0,rel:r?K?void 0:d:void 0,className:t.t(`button`,U,W,`color-${G}`,g&&`full-width`,_&&`rounded`,v===`circle`&&`circle`,y&&`icon-only`,b&&`loading`,x&&`active`,S&&`pulsing`,K&&`disabled`,q,A),style:j,disabled:V?K:void 0,"aria-busy":b||void 0,"aria-disabled":!V&&K?!0:void 0,onClick:Z,onPointerDown:e=>{Y(e),I?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&X(e.currentTarget),L?.(e)},...e.r(h),...R,children:[J,u({badge:C,badgeColor:w,badgePulsing:T}),b&&(0,i.jsx)(s,{size:`sm`,color:`inherit`,"aria-hidden":`true`}),E&&(0,i.jsx)(`span`,{className:`icon start`,children:E}),M&&(0,i.jsx)(`span`,{className:`content`,children:M}),D&&(0,i.jsx)(`span`,{className:`icon end`,children:D})]})});Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
|
|
2
|
+
//# sourceMappingURL=MButton-ouB6903s.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MButton-
|
|
1
|
+
{"version":3,"file":"MButton-ouB6903s.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n target,\n rel,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n target={component ? (isDisabled ? undefined : target) : undefined}\n rel={component ? (isDisabled ? undefined : rel) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { t as e } from "./cn-YER3QsV1.js";
|
|
2
|
+
import { i as t } from "./MButton-C94fZ3l9.js";
|
|
3
|
+
import { forwardRef as n, useMemo as r } from "react";
|
|
4
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/controls/MButtonGroup/MButtonGroup.tsx
|
|
6
|
+
var a = n(function({ orientation: n = "horizontal", variant: a, size: o, color: s, attached: c = !0, className: l, children: u, ...d }, f) {
|
|
7
|
+
let p = r(() => ({
|
|
8
|
+
variant: a,
|
|
9
|
+
size: o,
|
|
10
|
+
color: s
|
|
11
|
+
}), [
|
|
12
|
+
a,
|
|
13
|
+
o,
|
|
14
|
+
s
|
|
15
|
+
]);
|
|
16
|
+
return /* @__PURE__ */ i(t.Provider, {
|
|
17
|
+
value: p,
|
|
18
|
+
children: /* @__PURE__ */ i("div", {
|
|
19
|
+
ref: f,
|
|
20
|
+
role: "group",
|
|
21
|
+
className: e("button-group", n, c && "attached", l),
|
|
22
|
+
...d,
|
|
23
|
+
children: u
|
|
24
|
+
})
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
//#endregion
|
|
28
|
+
export { a as t };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=MButtonGroup-BhGt-Yy1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MButtonGroup-BhGt-Yy1.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n"],"mappings":";;;;;AAOA,IAAa,IAAe,EAA8C,SACtE,EAAC,iBAAc,cAAc,YAAS,SAAM,UAAO,cAAW,IAAM,cAAW,aAAU,GAAG,KAC5F,GACF;CACE,IAAM,IAAM,SAAyC;EAAC;EAAS;EAAM;EAAM,GAAG;EAAC;EAAS;EAAM;EAAM,CAAC;AAErG,QACI,kBAAC,EAAmB,UAApB;EAA6B,OAAO;YAChC,kBAAC,OAAD;GACS;GACL,MAAK;GACL,WAAW,EAAG,gBAAgB,GAAa,KAAY,YAAY,EAAU;GAC7E,GAAI;GAEH;GACC,CAAA;EACoB,CAAA;EAEpC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./MButton-ouB6903s.cjs`);require(`./core-B2klLGki.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.forwardRef)(function({orientation:i=`horizontal`,variant:a,size:o,color:s,attached:c=!0,className:l,children:u,...d},f){let p=(0,n.useMemo)(()=>({variant:a,size:o,color:s}),[a,o,s]);return(0,r.jsx)(t.i.Provider,{value:p,children:(0,r.jsx)(`div`,{ref:f,role:`group`,className:e.t(`button-group`,i,c&&`attached`,l),...d,children:u})})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MButtonGroup-yumQneDa.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MButtonGroup-yumQneDa.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n"],"mappings":"8JAOA,IAAa,GAAA,EAAA,EAAA,YAA6D,SACtE,CAAC,cAAc,aAAc,UAAS,OAAM,QAAO,WAAW,GAAM,YAAW,WAAU,GAAG,GAC5F,EACF,CACE,IAAM,GAAA,EAAA,EAAA,cAA+C,CAAC,UAAS,OAAM,QAAM,EAAG,CAAC,EAAS,EAAM,EAAM,CAAC,CAErG,OACI,EAAA,EAAA,KAAC,EAAA,EAAmB,SAApB,CAA6B,MAAO,YAChC,EAAA,EAAA,KAAC,MAAD,CACS,MACL,KAAK,QACL,UAAW,EAAA,EAAG,eAAgB,EAAa,GAAY,WAAY,EAAU,CAC7E,GAAI,EAEH,WACC,CAAA,CACoB,CAAA,EAEpC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { t as e } from "./cn-YER3QsV1.js";
|
|
2
|
+
import { t } from "./useInteractionEffect-DtpbVd77.js";
|
|
3
|
+
import { t as n } from "./MSurface-B-sjyczH.js";
|
|
4
|
+
import { t as r } from "./MSkeleton-BpylRABV.js";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/cards/shared/MCardAction.utils.ts
|
|
7
|
+
function o({ component: e, to: t, href: n, interactive: r, hasClickHandler: i = !1, hasPointerHandler: a = !1, fallbackComponent: o = "div" }) {
|
|
8
|
+
let s = !!(e || n || t), c = e ?? (s ? "a" : o);
|
|
9
|
+
return {
|
|
10
|
+
component: c,
|
|
11
|
+
href: n ?? (c === "a" ? t : void 0),
|
|
12
|
+
to: c === "a" ? void 0 : t,
|
|
13
|
+
isInteractive: !!(r || i || a || n || t),
|
|
14
|
+
isLink: s
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/components/cards/MCard/MCard.tsx
|
|
19
|
+
function s({ component: s, to: c, href: l, target: u, rel: d, interactive: f = !1, stretch: p = !0, tone: m = "raised", padded: h = !1, color: g, clickEffect: _, rippleColor: v, skeleton: y = !1, spacing: b, mt: x, mb: S, ml: C, mr: w, mx: T, my: E, className: D, children: O, onPointerDown: k, ...A }) {
|
|
20
|
+
let { component: j, href: M, to: N, isInteractive: P } = o({
|
|
21
|
+
component: s,
|
|
22
|
+
href: l,
|
|
23
|
+
to: c,
|
|
24
|
+
interactive: f,
|
|
25
|
+
hasClickHandler: !!A.onClick,
|
|
26
|
+
hasPointerHandler: !!k
|
|
27
|
+
}), { effectClassName: F, effectLayer: I, handlePointerDown: L } = t({
|
|
28
|
+
effect: _ ?? (P ? "ripple" : "none"),
|
|
29
|
+
disabled: !P || y,
|
|
30
|
+
color: v
|
|
31
|
+
});
|
|
32
|
+
return /* @__PURE__ */ a(n, {
|
|
33
|
+
component: j,
|
|
34
|
+
href: M,
|
|
35
|
+
to: N,
|
|
36
|
+
target: u,
|
|
37
|
+
rel: d,
|
|
38
|
+
tone: m,
|
|
39
|
+
padded: h,
|
|
40
|
+
spacing: b,
|
|
41
|
+
mt: x,
|
|
42
|
+
mb: S,
|
|
43
|
+
ml: C,
|
|
44
|
+
mr: w,
|
|
45
|
+
mx: T,
|
|
46
|
+
my: E,
|
|
47
|
+
className: e("card", !p && "no-stretch", g && `color-${g}`, P && !y && "interactive", y && "skeleton", F, D),
|
|
48
|
+
onPointerDown: (e) => {
|
|
49
|
+
L(e), k?.(e);
|
|
50
|
+
},
|
|
51
|
+
...A,
|
|
52
|
+
children: [I, y ? /* @__PURE__ */ a("div", {
|
|
53
|
+
className: "card-skeleton-content",
|
|
54
|
+
children: [/* @__PURE__ */ i(r, {
|
|
55
|
+
variant: "rectangle",
|
|
56
|
+
height: "8rem"
|
|
57
|
+
}), /* @__PURE__ */ i(r, {
|
|
58
|
+
variant: "text",
|
|
59
|
+
lines: 3,
|
|
60
|
+
className: "card-skeleton-lines"
|
|
61
|
+
})]
|
|
62
|
+
}) : O]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function c({ className: t, children: n, ...r }) {
|
|
66
|
+
return /* @__PURE__ */ i("div", {
|
|
67
|
+
className: e("header", t),
|
|
68
|
+
...r,
|
|
69
|
+
children: n
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function l({ className: t, children: n, ...r }) {
|
|
73
|
+
return /* @__PURE__ */ i("div", {
|
|
74
|
+
className: e("body", t),
|
|
75
|
+
...r,
|
|
76
|
+
children: n
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function u({ className: t, children: n, ...r }) {
|
|
80
|
+
return /* @__PURE__ */ i("div", {
|
|
81
|
+
className: e("footer", t),
|
|
82
|
+
...r,
|
|
83
|
+
children: n
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
//#endregion
|
|
87
|
+
export { o as a, c as i, l as n, u as r, s as t };
|
|
88
|
+
|
|
89
|
+
//# sourceMappingURL=MCard-9ucghJJs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCard-9ucghJJs.js","names":[],"sources":["../src/components/cards/shared/MCardAction.utils.ts","../src/components/cards/MCard/MCard.tsx"],"sourcesContent":["import type {ElementType} from 'react'\nimport type {MCardActionProps} from './MCardAction.types'\n\ninterface ResolveMCardActionOptions extends Pick<MCardActionProps, 'component' | 'to' | 'href' | 'interactive'> {\n hasClickHandler?: boolean\n hasPointerHandler?: boolean\n fallbackComponent?: ElementType\n}\n\nexport interface ResolvedMCardAction {\n component: ElementType\n href?: string\n to?: string\n isInteractive: boolean\n isLink: boolean\n}\n\nexport function resolveMCardAction({\n component,\n to,\n href,\n interactive,\n hasClickHandler = false,\n hasPointerHandler = false,\n fallbackComponent = 'div',\n}: ResolveMCardActionOptions): ResolvedMCardAction {\n const isLink = Boolean(component || href || to)\n const resolvedComponent = component ?? (isLink ? 'a' : fallbackComponent)\n const resolvedHref = href ?? (resolvedComponent === 'a' ? to : undefined)\n const resolvedTo = resolvedComponent === 'a' ? undefined : to\n\n return {\n component: resolvedComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive: Boolean(interactive || hasClickHandler || hasPointerHandler || href || to),\n isLink,\n }\n}\n","import type {MCardProps, MCardSectionProps} from './MCard.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MSurface} from '../../layout'\nimport {MSkeleton} from '../../feedback'\nimport {resolveMCardAction} from '../shared'\nimport './MCard.css'\n\n// Compose elevated content blocks that can optionally behave like an interactive surface.\nexport function MCard({\n component,\n to,\n href,\n target,\n rel,\n interactive = false,\n stretch = true,\n tone = 'raised',\n padded = false,\n color,\n clickEffect,\n rippleColor,\n skeleton = false,\n spacing,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n className,\n children,\n onPointerDown,\n ...rest\n}: MCardProps) {\n const {\n component: surfaceComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive,\n } = resolveMCardAction({\n component,\n href,\n to,\n interactive,\n hasClickHandler: Boolean(rest.onClick),\n hasPointerHandler: Boolean(onPointerDown),\n })\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n\n return (\n <MSurface\n component={surfaceComponent}\n href={resolvedHref}\n to={resolvedTo}\n target={target}\n rel={rel}\n tone={tone}\n padded={padded}\n spacing={spacing}\n mt={mt}\n mb={mb}\n ml={ml}\n mr={mr}\n mx={mx}\n my={my}\n className={cn(\n 'card',\n !stretch && 'no-stretch',\n color && `color-${color}`,\n isInteractive && !skeleton && 'interactive',\n skeleton && 'skeleton',\n effectClassName,\n className\n )}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {skeleton ? (\n <div className=\"card-skeleton-content\">\n <MSkeleton variant=\"rectangle\" height=\"8rem\" />\n <MSkeleton variant=\"text\" lines={3} className=\"card-skeleton-lines\" />\n </div>\n ) : (\n children\n )}\n </MSurface>\n )\n}\n\n// Render the top section of a card.\nexport function MCardHeader({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('header', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the main content section of a card.\nexport function MCardBody({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('body', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the bottom section of a card.\nexport function MCardFooter({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('footer', className)} {...rest}>\n {children}\n </div>\n )\n}\n"],"mappings":";;;;;;AAiBA,SAAgB,EAAmB,EAC/B,cACA,OACA,SACA,gBACA,qBAAkB,IAClB,uBAAoB,IACpB,uBAAoB,SAC2B;CAC/C,IAAM,IAAS,GAAQ,KAAa,KAAQ,IACtC,IAAoB,MAAc,IAAS,MAAM;AAIvD,QAAO;EACH,WAAW;EACX,MALiB,MAAS,MAAsB,MAAM,IAAK,KAAA;EAM3D,IALe,MAAsB,MAAM,KAAA,IAAY;EAMvD,eAAe,GAAQ,KAAe,KAAmB,KAAqB,KAAQ;EACtF;EACH;;;;AC5BL,SAAgB,EAAM,EAClB,cACA,OACA,SACA,WACA,QACA,iBAAc,IACd,aAAU,IACV,UAAO,UACP,YAAS,IACT,UACA,gBACA,gBACA,cAAW,IACX,YACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,aACA,kBACA,GAAG,KACQ;CACX,IAAM,EACF,WAAW,GACX,MAAM,GACN,IAAI,GACJ,qBACA,EAAmB;EACnB;EACA;EACA;EACA;EACA,iBAAiB,EAAQ,EAAK;EAC9B,mBAAmB,EAAQ;EAC9B,CAAC,EACI,EAAC,oBAAiB,gBAAa,yBAAqB,EAAqC;EAC3F,QAAQ,MAAgB,IAAgB,WAAW;EACnD,UAAU,CAAC,KAAiB;EAC5B,OAAO;EACV,CAAC;AAEF,QACI,kBAAC,GAAD;EACI,WAAW;EACX,MAAM;EACN,IAAI;EACI;EACH;EACC;EACE;EACC;EACL;EACA;EACA;EACA;EACA;EACA;EACJ,WAAW,EACP,QACA,CAAC,KAAW,cACZ,KAAS,SAAS,KAClB,KAAiB,CAAC,KAAY,eAC9B,KAAY,YACZ,GACA,EACH;EACD,gBAAgB,MAAU;AAEtB,GADA,EAAkB,EAAM,EACxB,IAAgB,EAAM;;EAE1B,GAAI;YA5BR,CA8BK,GACA,IACG,kBAAC,OAAD;GAAK,WAAU;aAAf,CACI,kBAAC,GAAD;IAAW,SAAQ;IAAY,QAAO;IAAS,CAAA,EAC/C,kBAAC,GAAD;IAAW,SAAQ;IAAO,OAAO;IAAG,WAAU;IAAwB,CAAA,CACpE;OAEN,EAEG;;;AAKnB,SAAgB,EAAY,EAAC,cAAW,aAAU,GAAG,KAA0B;AAC3E,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,UAAU,EAAU;EAAE,GAAI;EACxC;EACC,CAAA;;AAKd,SAAgB,EAAU,EAAC,cAAW,aAAU,GAAG,KAA0B;AACzE,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,QAAQ,EAAU;EAAE,GAAI;EACtC;EACC,CAAA;;AAKd,SAAgB,EAAY,EAAC,cAAW,aAAU,GAAG,KAA0B;AAC3E,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,UAAU,EAAU;EAAE,GAAI;EACxC;EACC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-BH2dgQla.cjs`),n=require(`./MSurface-WsYGNGX5.cjs`),r=require(`./MSkeleton-JMkJFzu9.cjs`);require(`./core-B2klLGki.cjs`);let i=require(`react/jsx-runtime`);function a({component:e,to:t,href:n,interactive:r,hasClickHandler:i=!1,hasPointerHandler:a=!1,fallbackComponent:o=`div`}){let s=!!(e||n||t),c=e??(s?`a`:o);return{component:c,href:n??(c===`a`?t:void 0),to:c===`a`?void 0:t,isInteractive:!!(r||i||a||n||t),isLink:s}}function o({component:o,to:s,href:c,target:l,rel:u,interactive:d=!1,stretch:f=!0,tone:p=`raised`,padded:m=!1,color:h,clickEffect:g,rippleColor:_,skeleton:v=!1,spacing:y,mt:b,mb:x,ml:S,mr:C,mx:w,my:T,className:E,children:D,onPointerDown:O,...k}){let{component:A,href:j,to:M,isInteractive:N}=a({component:o,href:c,to:s,interactive:d,hasClickHandler:!!k.onClick,hasPointerHandler:!!O}),{effectClassName:P,effectLayer:F,handlePointerDown:I}=t.t({effect:g??(N?`ripple`:`none`),disabled:!N||v,color:_});return(0,i.jsxs)(n.t,{component:A,href:j,to:M,target:l,rel:u,tone:p,padded:m,spacing:y,mt:b,mb:x,ml:S,mr:C,mx:w,my:T,className:e.t(`card`,!f&&`no-stretch`,h&&`color-${h}`,N&&!v&&`interactive`,v&&`skeleton`,P,E),onPointerDown:e=>{I(e),O?.(e)},...k,children:[F,v?(0,i.jsxs)(`div`,{className:`card-skeleton-content`,children:[(0,i.jsx)(r.t,{variant:`rectangle`,height:`8rem`}),(0,i.jsx)(r.t,{variant:`text`,lines:3,className:`card-skeleton-lines`})]}):D]})}function s({className:t,children:n,...r}){return(0,i.jsx)(`div`,{className:e.t(`header`,t),...r,children:n})}function c({className:t,children:n,...r}){return(0,i.jsx)(`div`,{className:e.t(`body`,t),...r,children:n})}function l({className:t,children:n,...r}){return(0,i.jsx)(`div`,{className:e.t(`footer`,t),...r,children:n})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=MCard-Bg_R86Gr.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCard-Bg_R86Gr.cjs","names":[],"sources":["../src/components/cards/shared/MCardAction.utils.ts","../src/components/cards/MCard/MCard.tsx"],"sourcesContent":["import type {ElementType} from 'react'\nimport type {MCardActionProps} from './MCardAction.types'\n\ninterface ResolveMCardActionOptions extends Pick<MCardActionProps, 'component' | 'to' | 'href' | 'interactive'> {\n hasClickHandler?: boolean\n hasPointerHandler?: boolean\n fallbackComponent?: ElementType\n}\n\nexport interface ResolvedMCardAction {\n component: ElementType\n href?: string\n to?: string\n isInteractive: boolean\n isLink: boolean\n}\n\nexport function resolveMCardAction({\n component,\n to,\n href,\n interactive,\n hasClickHandler = false,\n hasPointerHandler = false,\n fallbackComponent = 'div',\n}: ResolveMCardActionOptions): ResolvedMCardAction {\n const isLink = Boolean(component || href || to)\n const resolvedComponent = component ?? (isLink ? 'a' : fallbackComponent)\n const resolvedHref = href ?? (resolvedComponent === 'a' ? to : undefined)\n const resolvedTo = resolvedComponent === 'a' ? undefined : to\n\n return {\n component: resolvedComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive: Boolean(interactive || hasClickHandler || hasPointerHandler || href || to),\n isLink,\n }\n}\n","import type {MCardProps, MCardSectionProps} from './MCard.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MSurface} from '../../layout'\nimport {MSkeleton} from '../../feedback'\nimport {resolveMCardAction} from '../shared'\nimport './MCard.css'\n\n// Compose elevated content blocks that can optionally behave like an interactive surface.\nexport function MCard({\n component,\n to,\n href,\n target,\n rel,\n interactive = false,\n stretch = true,\n tone = 'raised',\n padded = false,\n color,\n clickEffect,\n rippleColor,\n skeleton = false,\n spacing,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n className,\n children,\n onPointerDown,\n ...rest\n}: MCardProps) {\n const {\n component: surfaceComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive,\n } = resolveMCardAction({\n component,\n href,\n to,\n interactive,\n hasClickHandler: Boolean(rest.onClick),\n hasPointerHandler: Boolean(onPointerDown),\n })\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n\n return (\n <MSurface\n component={surfaceComponent}\n href={resolvedHref}\n to={resolvedTo}\n target={target}\n rel={rel}\n tone={tone}\n padded={padded}\n spacing={spacing}\n mt={mt}\n mb={mb}\n ml={ml}\n mr={mr}\n mx={mx}\n my={my}\n className={cn(\n 'card',\n !stretch && 'no-stretch',\n color && `color-${color}`,\n isInteractive && !skeleton && 'interactive',\n skeleton && 'skeleton',\n effectClassName,\n className\n )}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {skeleton ? (\n <div className=\"card-skeleton-content\">\n <MSkeleton variant=\"rectangle\" height=\"8rem\" />\n <MSkeleton variant=\"text\" lines={3} className=\"card-skeleton-lines\" />\n </div>\n ) : (\n children\n )}\n </MSurface>\n )\n}\n\n// Render the top section of a card.\nexport function MCardHeader({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('header', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the main content section of a card.\nexport function MCardBody({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('body', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the bottom section of a card.\nexport function MCardFooter({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('footer', className)} {...rest}>\n {children}\n </div>\n )\n}\n"],"mappings":"mOAiBA,SAAgB,EAAmB,CAC/B,YACA,KACA,OACA,cACA,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,OAC2B,CAC/C,IAAM,EAAS,GAAQ,GAAa,GAAQ,GACtC,EAAoB,IAAc,EAAS,IAAM,GAIvD,MAAO,CACH,UAAW,EACX,KALiB,IAAS,IAAsB,IAAM,EAAK,IAAA,IAM3D,GALe,IAAsB,IAAM,IAAA,GAAY,EAMvD,cAAe,GAAQ,GAAe,GAAmB,GAAqB,GAAQ,GACtF,SACH,CC5BL,SAAgB,EAAM,CAClB,YACA,KACA,OACA,SACA,MACA,cAAc,GACd,UAAU,GACV,OAAO,SACP,SAAS,GACT,QACA,cACA,cACA,WAAW,GACX,UACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,WACA,gBACA,GAAG,GACQ,CACX,GAAM,CACF,UAAW,EACX,KAAM,EACN,GAAI,EACJ,iBACA,EAAmB,CACnB,YACA,OACA,KACA,cACA,gBAAiB,EAAQ,EAAK,QAC9B,kBAAmB,EAAQ,EAC9B,CAAC,CACI,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAqC,CAC3F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CAEF,OACI,EAAA,EAAA,MAAC,EAAA,EAAD,CACI,UAAW,EACX,KAAM,EACN,GAAI,EACI,SACH,MACC,OACE,SACC,UACL,KACA,KACA,KACA,KACA,KACA,KACJ,UAAW,EAAA,EACP,OACA,CAAC,GAAW,aACZ,GAAS,SAAS,IAClB,GAAiB,CAAC,GAAY,cAC9B,GAAY,WACZ,EACA,EACH,CACD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,WA5BR,CA8BK,EACA,GACG,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,iCAAf,EACI,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,QAAQ,YAAY,OAAO,OAAS,CAAA,EAC/C,EAAA,EAAA,KAAC,EAAA,EAAD,CAAW,QAAQ,OAAO,MAAO,EAAG,UAAU,sBAAwB,CAAA,CACpE,GAEN,EAEG,GAKnB,SAAgB,EAAY,CAAC,YAAW,WAAU,GAAG,GAA0B,CAC3E,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,SAAU,EAAU,CAAE,GAAI,EACxC,WACC,CAAA,CAKd,SAAgB,EAAU,CAAC,YAAW,WAAU,GAAG,GAA0B,CACzE,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,OAAQ,EAAU,CAAE,GAAI,EACtC,WACC,CAAA,CAKd,SAAgB,EAAY,CAAC,YAAW,WAAU,GAAG,GAA0B,CAC3E,OACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,EAAG,SAAU,EAAU,CAAE,GAAI,EACxC,WACC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCheckbox-
|
|
1
|
+
{"version":3,"file":"MCheckbox-B-nT2OBE.js","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":";;;;;AAQA,IAAa,IAAY,EAA6C,SAClE,EACI,YACA,mBACA,mBAAgB,IAChB,SACA,OACA,UACA,cAAW,IACX,UAAO,MACP,WAAQ,WACR,UACA,mBAAgB,SAChB,WAAQ,IACR,cACA,aACA,iBAAc,UACd,gBACA,cACA,YAEJ,GACF;CACE,IAAM,IAAc,EAAyB,KAAK,EAC5C,IAAY,KAA6C,GACzD,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAsC;EAC3G,QAAQ;EACR;EACA,UAAU;EACV,OAAO;EACV,CAAC;AAGF,SAAgB;AACZ,EAAI,EAAS,YACT,EAAS,QAAQ,gBAAgB;IAEtC,CAAC,GAAe,EAAS,CAAC;CAE7B,IAAM,IAAW,KAAS,CAAC,CAAC;AAE5B,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,YAAY,EAAU;EAAS;YAAlD,CACI,kBAAC,SAAD;GAAO,WAAW,EAAG,SAAS,GAAM,MAAkB,UAAU,cAAc,KAAY,WAAW;aAArG,CACI,kBAAC,QAAD;IACI,WAAW,EAAG,OAAO,SAAS,KAAS,KAAY,SAAS,EAAgB;IAC5E,eAAe;cAFnB;KAIK;KACD,kBAAC,SAAD;MACI,KAAK;MACL,MAAK;MACI;MACO;MACV;MACF;MACG;MACG;MACA;MACV,YAAY,MAAU;AAClB,QAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc,cAAwC;;MAGlF,WAAU;MACV,gBAAc,KAAY,KAAA;MAC5B,CAAA;KACF,kBAAC,QAAD,EAAM,WAAU,sBAAuB,CAAA;KACpC;OACN,KAAS,kBAAC,QAAD;IAAM,WAAW,EAAG,cAAc,KAAY,QAAQ;cAAG;IAAa,CAAA,CAC5E;MACP,KACG,kBAAC,QAAD;GAAM,WAAU;GAAc,MAAK;aAC9B;GACE,CAAA,CAET;;EAEZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-
|
|
2
|
-
//# sourceMappingURL=MCheckbox-
|
|
1
|
+
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-BH2dgQla.cjs`);require(`./core-B2klLGki.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.forwardRef)(function({checked:i,defaultChecked:a,indeterminate:o=!1,name:s,id:c,value:l,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,error:h=!1,errorText:g,onChange:_,clickEffect:v=`ripple`,rippleColor:y,className:b,style:x},S){let C=(0,n.useRef)(null),w=S??C,{effectClassName:T,effectLayer:E,handlePointerDown:D,triggerEffect:O}=t.t({effect:v,disabled:u,centered:!0,color:y});(0,n.useEffect)(()=>{w.current&&(w.current.indeterminate=o)},[o,w]);let k=h||!!g;return(0,r.jsxs)(`div`,{className:e.t(`checkbox`,b),style:x,children:[(0,r.jsxs)(`label`,{className:e.t(`label`,d,m===`left`&&`label-left`,u&&`disabled`),children:[(0,r.jsxs)(`span`,{className:e.t(`box`,`color-${f}`,k&&`error`,T),onPointerDown:D,children:[E,(0,r.jsx)(`input`,{ref:w,type:`checkbox`,checked:i,defaultChecked:a,name:s,id:c,value:l,disabled:u,onChange:_,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&O(e.currentTarget.parentElement)},className:`input`,"aria-invalid":k||void 0}),(0,r.jsx)(`span`,{className:`indeterminate-mark`})]}),p&&(0,r.jsx)(`span`,{className:e.t(`label-text`,k&&`error`),children:p})]}),g&&(0,r.jsx)(`span`,{className:`field-error`,role:`alert`,children:g})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MCheckbox-Cbk5hwzJ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCheckbox-
|
|
1
|
+
{"version":3,"file":"MCheckbox-Cbk5hwzJ.cjs","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":"2KAQA,IAAa,GAAA,EAAA,EAAA,YAAyD,SAClE,CACI,UACA,iBACA,gBAAgB,GAChB,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,QAAQ,GACR,YACA,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,GAAA,EAAA,EAAA,QAAuC,KAAK,CAC5C,EAAY,GAA6C,EACzD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,EAGF,EAAA,EAAA,eAAgB,CACR,EAAS,UACT,EAAS,QAAQ,cAAgB,IAEtC,CAAC,EAAe,EAAS,CAAC,CAE7B,IAAM,EAAW,GAAS,CAAC,CAAC,EAE5B,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,WAAY,EAAU,CAAS,iBAAlD,EACI,EAAA,EAAA,MAAC,QAAD,CAAO,UAAW,EAAA,EAAG,QAAS,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAW,UAArG,EACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,MAAO,SAAS,IAAS,GAAY,QAAS,EAAgB,CAC5E,cAAe,WAFnB,CAIK,GACD,EAAA,EAAA,KAAC,QAAD,CACI,IAAK,EACL,KAAK,WACI,UACO,iBACV,OACF,KACG,QACG,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,eAAc,GAAY,IAAA,GAC5B,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,EAAG,aAAc,GAAY,QAAQ,UAAG,EAAa,CAAA,CAC5E,GACP,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAET,IAEZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./icons-BHFwX7ri.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MSurface-WsYGNGX5.cjs`),r=require(`./MText-CAbqC2qZ.cjs`),i=require(`./MLink-CZ2FfQ0N.cjs`),a=require(`./MStack-DDn2bYBQ.cjs`);require(`./core-B2klLGki.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`);function c({value:n=0,max:r=5,color:i=`warning`,size:a=`md`,readOnly:c=!1,onChange:l,className:u,...d}){let[f,p]=(0,o.useState)(null),m=f??n,h=e=>{c||l?.(e)};return(0,s.jsx)(`div`,{className:t.t(`rating`,`color-${i}`,a,c&&`read-only`,u),role:`radiogroup`,"aria-label":`MRating`,onMouseLeave:()=>p(null),...d,children:Array.from({length:r},(t,n)=>{let r=n+1,i=m>=r;return(0,s.jsx)(`button`,{type:`button`,className:`rating-star`,onClick:()=>h(r),onMouseEnter:()=>!c&&p(r),"aria-label":`${r} star${r>1?`s`:``}`,tabIndex:c?-1:0,disabled:c,children:(0,s.jsx)(`span`,{className:`star-icon`,"aria-hidden":`true`,children:i?(0,s.jsx)(e.mi,{}):(0,s.jsx)(e.hi,{})})},n)})})}function l({items:e,size:o=`md`,bordered:c=!0,emptyState:l=null,className:u,...d}){return e.length?(0,s.jsx)(`div`,{className:t.t(`detail-list`,`size-${o}`,c&&`bordered`,u),...d,children:e.map(e=>{let t=e.key??e.label?.toString(),o=e.component||e.to||e.href?(0,s.jsx)(i.t,{component:e.component,to:e.to,href:e.href,target:e.target,rel:e.rel,children:e.value}):e.value;return(0,s.jsx)(`div`,{className:`detail-list-item`,children:(0,s.jsxs)(n.n,{justify:`between`,align:`start`,children:[(0,s.jsxs)(a.t,{children:[(0,s.jsx)(r.t,{size:`sm`,tone:`muted`,children:e.label}),o&&(0,s.jsx)(`div`,{className:`detail-list-value`,children:o}),e.helperText&&(0,s.jsx)(r.t,{size:`sm`,tone:`muted`,children:e.helperText})]}),e.status&&(0,s.jsx)(`div`,{className:`detail-list-status`,children:e.status})]})},t)})}):l?(0,s.jsx)(`div`,{className:t.t(`detail-list`,u),children:l}):null}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return l}});
|
|
2
|
+
//# sourceMappingURL=MDetailList-CpwrF22b.cjs.map
|