@banzamel/mineralui 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{MAvatar-lCDowKeG.js → MAvatar-CnBVN71i.js} +2 -2
- package/dist/{MAvatar-lCDowKeG.js.map → MAvatar-CnBVN71i.js.map} +1 -1
- package/dist/{MAvatar-DMNwEhrd.cjs → MAvatar-DGEQqUss.cjs} +2 -2
- package/dist/{MAvatar-DMNwEhrd.cjs.map → MAvatar-DGEQqUss.cjs.map} +1 -1
- package/dist/{MBadge-CuVY4TXo.js → MBadge-C_vK2JdM.js} +1 -1
- package/dist/{MBadge-CuVY4TXo.js.map → MBadge-C_vK2JdM.js.map} +1 -1
- package/dist/{MBadge-DmIO-oEJ.cjs → MBadge-DcIPfPH1.cjs} +1 -1
- package/dist/{MBadge-DmIO-oEJ.cjs.map → MBadge-DcIPfPH1.cjs.map} +1 -1
- package/dist/{MButton-JumA31vM.js → MButton-BpSZUhpY.js} +1 -1
- package/dist/{MButton-JumA31vM.js.map → MButton-BpSZUhpY.js.map} +1 -1
- package/dist/{MButton-DTblkF4v.cjs → MButton-LUNWBBOV.cjs} +1 -1
- package/dist/{MButton-DTblkF4v.cjs.map → MButton-LUNWBBOV.cjs.map} +1 -1
- package/dist/{MCheckbox-DYrfb_bW.js → MCheckbox-CNz73bQC.js} +1 -1
- package/dist/{MCheckbox-DYrfb_bW.js.map → MCheckbox-CNz73bQC.js.map} +1 -1
- package/dist/{MCheckbox-DbHXmu1a.cjs → MCheckbox-PzknJeM2.cjs} +1 -1
- package/dist/{MCheckbox-DbHXmu1a.cjs.map → MCheckbox-PzknJeM2.cjs.map} +1 -1
- package/dist/{MCookieBootstrap-D1OGFCC7.js → MCookieBootstrap-CNYLvKjW.js} +1 -1
- package/dist/{MCookieBootstrap-D1OGFCC7.js.map → MCookieBootstrap-CNYLvKjW.js.map} +1 -1
- package/dist/{MCookieBootstrap-ByObqs4o.cjs → MCookieBootstrap-DSOT4FQo.cjs} +1 -1
- package/dist/{MCookieBootstrap-ByObqs4o.cjs.map → MCookieBootstrap-DSOT4FQo.cjs.map} +1 -1
- package/dist/{MDataTable-CEGkEf5L.js → MDataTable-AH5Tnirs.js} +6 -6
- package/dist/{MDataTable-CEGkEf5L.js.map → MDataTable-AH5Tnirs.js.map} +1 -1
- package/dist/{MDataTable-BSuwd0gb.cjs → MDataTable-Bq6UoNJX.cjs} +2 -2
- package/dist/{MDataTable-BSuwd0gb.cjs.map → MDataTable-Bq6UoNJX.cjs.map} +1 -1
- package/dist/{MDrawer-BCjiepJO.js → MDrawer-C08QXXC4.js} +4 -4
- package/dist/{MDrawer-BCjiepJO.js.map → MDrawer-C08QXXC4.js.map} +1 -1
- package/dist/{MDrawer-YhA79aS4.cjs → MDrawer-DRqMsjMt.cjs} +2 -2
- package/dist/{MDrawer-YhA79aS4.cjs.map → MDrawer-DRqMsjMt.cjs.map} +1 -1
- package/dist/{MDropdownMenu-CVp1LFgZ.js → MDropdownMenu-CMnBt-wO.js} +2 -2
- package/dist/{MDropdownMenu-CVp1LFgZ.js.map → MDropdownMenu-CMnBt-wO.js.map} +1 -1
- package/dist/{MDropdownMenu-BRL0Vcq_.cjs → MDropdownMenu-CymCQqyP.cjs} +2 -2
- package/dist/{MDropdownMenu-BRL0Vcq_.cjs.map → MDropdownMenu-CymCQqyP.cjs.map} +1 -1
- package/dist/{MHeading-qOPIM4dL.js → MHeading-BvpWyvjj.js} +2 -2
- package/dist/{MHeading-qOPIM4dL.js.map → MHeading-BvpWyvjj.js.map} +1 -1
- package/dist/{MHeading-4vfYPN_i.cjs → MHeading-DHT1gORD.cjs} +2 -2
- package/dist/{MHeading-4vfYPN_i.cjs.map → MHeading-DHT1gORD.cjs.map} +1 -1
- package/dist/MImage-BQs91GK-.js +252 -0
- package/dist/MImage-BQs91GK-.js.map +1 -0
- package/dist/MImage-CxeuH-cT.cjs +2 -0
- package/dist/MImage-CxeuH-cT.cjs.map +1 -0
- package/dist/MInline-D9p9Sazp.cjs +2 -0
- package/dist/MInline-D9p9Sazp.cjs.map +1 -0
- package/dist/MInline-DA_ehefx.js +39 -0
- package/dist/MInline-DA_ehefx.js.map +1 -0
- package/dist/{MInput-DkbdeGQW.cjs → MInput-DDZ71Qqn.cjs} +2 -2
- package/dist/{MInput-DkbdeGQW.cjs.map → MInput-DDZ71Qqn.cjs.map} +1 -1
- package/dist/{MInput-3ynY4aGD.js → MInput-l3MY93Su.js} +3 -3
- package/dist/{MInput-3ynY4aGD.js.map → MInput-l3MY93Su.js.map} +1 -1
- package/dist/{MInputCVC-BO251yU6.js → MInputCVC-CN91scmw.js} +4 -4
- package/dist/{MInputCVC-BO251yU6.js.map → MInputCVC-CN91scmw.js.map} +1 -1
- package/dist/{MInputCVC-NSy1SkiZ.cjs → MInputCVC-Sp2uZ5aO.cjs} +2 -2
- package/dist/{MInputCVC-NSy1SkiZ.cjs.map → MInputCVC-Sp2uZ5aO.cjs.map} +1 -1
- package/dist/{MInputSearch-CQQIKYMt.cjs → MInputSearch-30o4bcDC.cjs} +2 -2
- package/dist/{MInputSearch-CQQIKYMt.cjs.map → MInputSearch-30o4bcDC.cjs.map} +1 -1
- package/dist/{MInputSearch-BT0OqlE_.js → MInputSearch-CdPfJ4v_.js} +3 -3
- package/dist/{MInputSearch-BT0OqlE_.js.map → MInputSearch-CdPfJ4v_.js.map} +1 -1
- package/dist/{MLink-Cytb3UVc.js → MLink-CRUWGES-.js} +1 -1
- package/dist/{MLink-Cytb3UVc.js.map → MLink-CRUWGES-.js.map} +1 -1
- package/dist/{MLink-B6Az9m2B.cjs → MLink-U_wAUuz1.cjs} +1 -1
- package/dist/{MLink-B6Az9m2B.cjs.map → MLink-U_wAUuz1.cjs.map} +1 -1
- package/dist/{MModal-BTOS_Xrs.js → MModal-CHSo5gKE.js} +3 -3
- package/dist/{MModal-BTOS_Xrs.js.map → MModal-CHSo5gKE.js.map} +1 -1
- package/dist/{MModal-BhYBOKUh.cjs → MModal-Czy-rR--.cjs} +2 -2
- package/dist/{MModal-BhYBOKUh.cjs.map → MModal-Czy-rR--.cjs.map} +1 -1
- package/dist/{MPagination-4X0we8Ab.cjs → MPagination-73z0sQvf.cjs} +2 -2
- package/dist/{MPagination-4X0we8Ab.cjs.map → MPagination-73z0sQvf.cjs.map} +1 -1
- package/dist/{MPagination-Bz35UIbt.js → MPagination-DdT1uNzD.js} +7 -7
- package/dist/{MPagination-Bz35UIbt.js.map → MPagination-DdT1uNzD.js.map} +1 -1
- package/dist/{MPopover-DHc3otwX.js → MPopover-3tjz5lKh.js} +2 -2
- package/dist/{MPopover-DHc3otwX.js.map → MPopover-3tjz5lKh.js.map} +1 -1
- package/dist/{MPopover-C03jl1zd.cjs → MPopover-BW23_1Dl.cjs} +2 -2
- package/dist/{MPopover-C03jl1zd.cjs.map → MPopover-BW23_1Dl.cjs.map} +1 -1
- package/dist/{MPortal-xGHZKLX5.cjs → MPortal-DE3pL2Xl.cjs} +1 -1
- package/dist/{MPortal-xGHZKLX5.cjs.map → MPortal-DE3pL2Xl.cjs.map} +1 -1
- package/dist/{MPortal-CHoRxTlE.js → MPortal-Dqlkh3hw.js} +1 -1
- package/dist/{MPortal-CHoRxTlE.js.map → MPortal-Dqlkh3hw.js.map} +1 -1
- package/dist/{MQrCode-blzcp1yz.cjs → MQrCode-CMoru4dD.cjs} +2 -2
- package/dist/{MQrCode-blzcp1yz.cjs.map → MQrCode-CMoru4dD.cjs.map} +1 -1
- package/dist/{MQrCode-Dmgh8fzs.js → MQrCode-DK5-SBhN.js} +11 -11
- package/dist/{MQrCode-Dmgh8fzs.js.map → MQrCode-DK5-SBhN.js.map} +1 -1
- package/dist/{MSkeleton-CQEnuIos.cjs → MSkeleton-B0Mxe3L7.cjs} +2 -2
- package/dist/{MSkeleton-CQEnuIos.cjs.map → MSkeleton-B0Mxe3L7.cjs.map} +1 -1
- package/dist/{MSkeleton-CJIlxsCx.js → MSkeleton-Bqq_XJn8.js} +2 -2
- package/dist/{MSkeleton-CJIlxsCx.js.map → MSkeleton-Bqq_XJn8.js.map} +1 -1
- package/dist/{MSlider-DuTnRaK_.js → MSlider-ByVuoFFc.js} +1 -1
- package/dist/{MSlider-DuTnRaK_.js.map → MSlider-ByVuoFFc.js.map} +1 -1
- package/dist/{MSlider-B4K6bkIs.cjs → MSlider-sH2Vt9Lw.cjs} +1 -1
- package/dist/{MSlider-B4K6bkIs.cjs.map → MSlider-sH2Vt9Lw.cjs.map} +1 -1
- package/dist/{MSparkline-7ycEh2eZ.cjs → MSparkline-B-ld7hJu.cjs} +1 -1
- package/dist/{MSparkline-7ycEh2eZ.cjs.map → MSparkline-B-ld7hJu.cjs.map} +1 -1
- package/dist/{MSparkline-Dz4K9Vx9.js → MSparkline-DbtdM0W6.js} +1 -1
- package/dist/{MSparkline-Dz4K9Vx9.js.map → MSparkline-DbtdM0W6.js.map} +1 -1
- package/dist/MStack-BWarX5O9.js +39 -0
- package/dist/MStack-BWarX5O9.js.map +1 -0
- package/dist/MStack-Cy2GplIA.cjs +2 -0
- package/dist/MStack-Cy2GplIA.cjs.map +1 -0
- package/dist/{MSubText-D-wde4hz.js → MSubText-C9VizSn9.js} +2 -2
- package/dist/{MSubText-D-wde4hz.js.map → MSubText-C9VizSn9.js.map} +1 -1
- package/dist/{MSubText-DjtJHCSy.cjs → MSubText-DP9WYlwz.cjs} +2 -2
- package/dist/{MSubText-DjtJHCSy.cjs.map → MSubText-DP9WYlwz.cjs.map} +1 -1
- package/dist/MSurface-C467dVMQ.cjs +2 -0
- package/dist/MSurface-C467dVMQ.cjs.map +1 -0
- package/dist/MSurface-DfZ1Zy1-.js +39 -0
- package/dist/MSurface-DfZ1Zy1-.js.map +1 -0
- package/dist/{MTag-D_mw488_.cjs → MTag-DXqkBvqx.cjs} +2 -2
- package/dist/{MTag-D_mw488_.cjs.map → MTag-DXqkBvqx.cjs.map} +1 -1
- package/dist/{MTag-CGns3Rk2.js → MTag-N-tYZ915.js} +3 -3
- package/dist/{MTag-CGns3Rk2.js.map → MTag-N-tYZ915.js.map} +1 -1
- package/dist/{MText-C0VxNQCE.js → MText-B7_HjPym.js} +2 -2
- package/dist/{MText-C0VxNQCE.js.map → MText-B7_HjPym.js.map} +1 -1
- package/dist/{MText-rSgurLeq.cjs → MText-COzub3y4.cjs} +2 -2
- package/dist/{MText-rSgurLeq.cjs.map → MText-COzub3y4.cjs.map} +1 -1
- package/dist/{MTimeAgo-ecmmkLeM.js → MTimeAgo-D1G2yovw.js} +2 -2
- package/dist/{MTimeAgo-ecmmkLeM.js.map → MTimeAgo-D1G2yovw.js.map} +1 -1
- package/dist/{MTimeAgo-BesEN_u2.cjs → MTimeAgo-DWwXs48z.cjs} +2 -2
- package/dist/{MTimeAgo-BesEN_u2.cjs.map → MTimeAgo-DWwXs48z.cjs.map} +1 -1
- package/dist/{MToggle-DV0lHLSE.cjs → MToggle-Cm3f6gm4.cjs} +1 -1
- package/dist/{MToggle-DV0lHLSE.cjs.map → MToggle-Cm3f6gm4.cjs.map} +1 -1
- package/dist/{MToggle-DXw8qz0m.js → MToggle-D0DrQirB.js} +1 -1
- package/dist/{MToggle-DXw8qz0m.js.map → MToggle-D0DrQirB.js.map} +1 -1
- package/dist/{MTooltip-Ce1cs9e3.cjs → MTooltip-C3PeHgV3.cjs} +2 -2
- package/dist/{MTooltip-Ce1cs9e3.cjs.map → MTooltip-C3PeHgV3.cjs.map} +1 -1
- package/dist/{MTooltip-BW4hHnEf.js → MTooltip-w6Aj044c.js} +2 -2
- package/dist/{MTooltip-BW4hHnEf.js.map → MTooltip-w6Aj044c.js.map} +1 -1
- package/dist/{cards-DFUONqA1.cjs → cards-B75QM9JW.cjs} +2 -2
- package/dist/{cards-DFUONqA1.cjs.map → cards-B75QM9JW.cjs.map} +1 -1
- package/dist/{cards-D45hG2rJ.js → cards-BKi8MxNx.js} +272 -272
- package/dist/{cards-D45hG2rJ.js.map → cards-BKi8MxNx.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/components/display/MReveal/MReveal.d.ts +2 -0
- package/dist/components/display/MReveal/MReveal.types.d.ts +14 -0
- package/dist/components/display/MReveal/index.d.ts +2 -0
- package/dist/components/display/index.d.ts +2 -0
- package/dist/components/layout/MInline/MInline.d.ts +1 -1
- package/dist/components/layout/MInline/MInline.types.d.ts +0 -2
- package/dist/components/layout/MSection/MSection.d.ts +1 -1
- package/dist/components/layout/MSection/MSection.types.d.ts +0 -2
- package/dist/components/layout/MStack/MStack.d.ts +1 -1
- package/dist/components/layout/MStack/MStack.types.d.ts +0 -2
- package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
- package/dist/components/layout/MSurface/MSurface.types.d.ts +0 -2
- package/dist/components/media/MGallery/MGallery.d.ts +1 -1
- package/dist/components/media/MGallery/MGallery.types.d.ts +3 -0
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/MImage/MImage.types.d.ts +4 -0
- package/dist/components/media/MMediaLightbox/MMediaLightbox.d.ts +14 -0
- package/dist/components/media/index.d.ts +1 -0
- package/dist/components/media/mediaInteraction.d.ts +3 -0
- package/dist/components/media/mediaPreviewRegistry.d.ts +7 -0
- package/dist/{controls-CkndCsX9.cjs → controls-B7wV_kjJ.cjs} +2 -2
- package/dist/{controls-CkndCsX9.cjs.map → controls-B7wV_kjJ.cjs.map} +1 -1
- package/dist/{controls-DY0O5P1b.js → controls-BEi-0mf4.js} +3 -3
- package/dist/{controls-DY0O5P1b.js.map → controls-BEi-0mf4.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/cookie-consent-bootstrap.cjs +1 -1
- package/dist/cookie-consent-bootstrap.js +1 -1
- package/dist/{data-BKhx0T2n.cjs → data-DHkccnSN.cjs} +2 -2
- package/dist/{data-BKhx0T2n.cjs.map → data-DHkccnSN.cjs.map} +1 -1
- package/dist/{data-Coc1KFVp.js → data-DKrj_Hx6.js} +737 -737
- package/dist/{data-Coc1KFVp.js.map → data-DKrj_Hx6.js.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/display-BoXtzMg5.cjs +3 -0
- package/dist/display-BoXtzMg5.cjs.map +1 -0
- package/dist/{display-CZO1cOXZ.js → display-Xqa2Qns3.js} +111 -40
- package/dist/display-Xqa2Qns3.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +4 -4
- package/dist/{dropdowns-y3B9jSZf.js → dropdowns-BKnXb1XJ.js} +58 -58
- package/dist/{dropdowns-y3B9jSZf.js.map → dropdowns-BKnXb1XJ.js.map} +1 -1
- package/dist/{dropdowns-CI4qUI4Q.cjs → dropdowns-cRrLY8FG.cjs} +2 -2
- package/dist/{dropdowns-CI4qUI4Q.cjs.map → dropdowns-cRrLY8FG.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-5T-NKzak.js → feedback-CIXmm0XT.js} +28 -28
- package/dist/{feedback-5T-NKzak.js.map → feedback-CIXmm0XT.js.map} +1 -1
- package/dist/{feedback-Cfi3ON4a.cjs → feedback-DiMptPJy.cjs} +2 -2
- package/dist/{feedback-Cfi3ON4a.cjs.map → feedback-DiMptPJy.cjs.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +6 -6
- package/dist/{form-g7ns3G0R.cjs → form-DABPazeN.cjs} +1 -1
- package/dist/{form-g7ns3G0R.cjs.map → form-DABPazeN.cjs.map} +1 -1
- package/dist/{form-ClvMlxiX.js → form-DZJxDW59.js} +1 -1
- package/dist/{form-ClvMlxiX.js.map → form-DZJxDW59.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{frameworkTexts-khAIsKS9.cjs → frameworkTexts-DPX5T2x3.cjs} +1 -1
- package/dist/{frameworkTexts-khAIsKS9.cjs.map → frameworkTexts-DPX5T2x3.cjs.map} +1 -1
- package/dist/{frameworkTexts-Brl68Lwf.js → frameworkTexts-DzujbRBe.js} +1 -1
- package/dist/{frameworkTexts-Brl68Lwf.js.map → frameworkTexts-DzujbRBe.js.map} +1 -1
- package/dist/icons/MIconV2Scenes.d.ts +2 -1
- package/dist/icons/glyphs/MBrandIconsV2.d.ts +2 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons-BJCV7W0L.cjs +2 -0
- package/dist/icons-BJCV7W0L.cjs.map +1 -0
- package/dist/{icons-DZr7JKf6.js → icons-DlNO04xH.js} +335 -239
- package/dist/icons-DlNO04xH.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +56 -57
- package/dist/{inputs-Cj6ITRad.js → inputs-CmpB6eyB.js} +157 -157
- package/dist/{inputs-Cj6ITRad.js.map → inputs-CmpB6eyB.js.map} +1 -1
- package/dist/{inputs-BIqwv3qy.cjs → inputs-EZBwxk7j.cjs} +2 -2
- package/dist/{inputs-BIqwv3qy.cjs.map → inputs-EZBwxk7j.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/{layout-Cu2u9xLW.js → layout-D72Y7VcW.js} +238 -241
- package/dist/{layout-Cu2u9xLW.js.map → layout-D72Y7VcW.js.map} +1 -1
- package/dist/layout-DZiWboju.cjs +2 -0
- package/dist/layout-DZiWboju.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +5 -5
- package/dist/{layoutProps-DbnX4zRp.cjs → layoutProps-Ck4VtGm9.cjs} +1 -1
- package/dist/{layoutProps-DbnX4zRp.cjs.map → layoutProps-Ck4VtGm9.cjs.map} +1 -1
- package/dist/{layoutProps-Cwq4EXTV.js → layoutProps-Cl6d1KmH.js} +1 -1
- package/dist/{layoutProps-Cwq4EXTV.js.map → layoutProps-Cl6d1KmH.js.map} +1 -1
- package/dist/{locale-CS1-IY_I.js → locale-BNyzqXAU.js} +1 -1
- package/dist/{locale-CS1-IY_I.js.map → locale-BNyzqXAU.js.map} +1 -1
- package/dist/{locale-DAkrtKuT.cjs → locale-DIwV_GfN.cjs} +1 -1
- package/dist/{locale-DAkrtKuT.cjs.map → locale-DIwV_GfN.cjs.map} +1 -1
- package/dist/media-BlGY91Na.js +431 -0
- package/dist/media-BlGY91Na.js.map +1 -0
- package/dist/media-p643cb02.cjs +2 -0
- package/dist/media-p643cb02.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +3 -3
- package/dist/{overlays-DlQem0xt.js → overlays-51pBvlf9.js} +6 -6
- package/dist/{overlays-DlQem0xt.js.map → overlays-51pBvlf9.js.map} +1 -1
- package/dist/{overlays-pT3iozjm.cjs → overlays-8htlWp07.cjs} +2 -2
- package/dist/{overlays-pT3iozjm.cjs.map → overlays-8htlWp07.cjs.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +5 -5
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +2 -2
- package/dist/{prism-bash-oC8SHnvZ.cjs → prism-bash-DSVvpDwH.cjs} +1 -1
- package/dist/{prism-bash-oC8SHnvZ.cjs.map → prism-bash-DSVvpDwH.cjs.map} +1 -1
- package/dist/{prism-bash-Xs-n623m.js → prism-bash-GQKgVScr.js} +1 -1
- package/dist/{prism-bash-Xs-n623m.js.map → prism-bash-GQKgVScr.js.map} +1 -1
- package/dist/{prism-clike-CrtZga9r.js → prism-clike-D3g4BfTi.js} +1 -1
- package/dist/{prism-clike-CrtZga9r.js.map → prism-clike-D3g4BfTi.js.map} +1 -1
- package/dist/{prism-clike-BHy7LBAZ.cjs → prism-clike-wkj9YeLx.cjs} +1 -1
- package/dist/{prism-clike-BHy7LBAZ.cjs.map → prism-clike-wkj9YeLx.cjs.map} +1 -1
- package/dist/{prism-core-DsZQ3wSm.js → prism-core-DV2K1D4T.js} +1 -1
- package/dist/{prism-core-DsZQ3wSm.js.map → prism-core-DV2K1D4T.js.map} +1 -1
- package/dist/{prism-core-Z2NDHfPM.cjs → prism-core-LzKRJzwD.cjs} +1 -1
- package/dist/{prism-core-Z2NDHfPM.cjs.map → prism-core-LzKRJzwD.cjs.map} +1 -1
- package/dist/{prism-css-DNZzCmaG.js → prism-css-4cDqr1x6.js} +1 -1
- package/dist/{prism-css-DNZzCmaG.js.map → prism-css-4cDqr1x6.js.map} +1 -1
- package/dist/{prism-css-CtHScmdk.cjs → prism-css-BZZ6kh29.cjs} +1 -1
- package/dist/{prism-css-CtHScmdk.cjs.map → prism-css-BZZ6kh29.cjs.map} +1 -1
- package/dist/{prism-javascript-DVQ8iSSP.cjs → prism-javascript-CMvYmmlX.cjs} +1 -1
- package/dist/{prism-javascript-DVQ8iSSP.cjs.map → prism-javascript-CMvYmmlX.cjs.map} +1 -1
- package/dist/{prism-javascript-tgrsDJvl.js → prism-javascript-zm5iB3gQ.js} +1 -1
- package/dist/{prism-javascript-tgrsDJvl.js.map → prism-javascript-zm5iB3gQ.js.map} +1 -1
- package/dist/{prism-json-DdyAX9Pp.js → prism-json-BJI5f6tN.js} +1 -1
- package/dist/{prism-json-DdyAX9Pp.js.map → prism-json-BJI5f6tN.js.map} +1 -1
- package/dist/{prism-json-D3AIyrc5.cjs → prism-json-D_zmeAHJ.cjs} +1 -1
- package/dist/{prism-json-D3AIyrc5.cjs.map → prism-json-D_zmeAHJ.cjs.map} +1 -1
- package/dist/{prism-jsx-CnFRZYK4.cjs → prism-jsx-Byyxdkmw.cjs} +1 -1
- package/dist/{prism-jsx-CnFRZYK4.cjs.map → prism-jsx-Byyxdkmw.cjs.map} +1 -1
- package/dist/{prism-jsx-WafGh0eg.js → prism-jsx-Dk33B94U.js} +1 -1
- package/dist/{prism-jsx-WafGh0eg.js.map → prism-jsx-Dk33B94U.js.map} +1 -1
- package/dist/{prism-markup-BsZlEnsE.cjs → prism-markup-7d9NWx3c.cjs} +1 -1
- package/dist/{prism-markup-BsZlEnsE.cjs.map → prism-markup-7d9NWx3c.cjs.map} +1 -1
- package/dist/{prism-markup-3wgbeWT0.js → prism-markup-Cj0PLFM8.js} +1 -1
- package/dist/{prism-markup-3wgbeWT0.js.map → prism-markup-Cj0PLFM8.js.map} +1 -1
- package/dist/{prism-markup-templating-Vn_U79T9.cjs → prism-markup-templating-BM_XViUy.cjs} +1 -1
- package/dist/{prism-markup-templating-Vn_U79T9.cjs.map → prism-markup-templating-BM_XViUy.cjs.map} +1 -1
- package/dist/{prism-markup-templating-DwntZfmY.js → prism-markup-templating-Dc6p1a24.js} +1 -1
- package/dist/{prism-markup-templating-DwntZfmY.js.map → prism-markup-templating-Dc6p1a24.js.map} +1 -1
- package/dist/{prism-php-CizDps-m.js → prism-php-CGE55yTu.js} +1 -1
- package/dist/{prism-php-CizDps-m.js.map → prism-php-CGE55yTu.js.map} +1 -1
- package/dist/{prism-php-DDMsSDeI.cjs → prism-php-C_g4bp0C.cjs} +1 -1
- package/dist/{prism-php-DDMsSDeI.cjs.map → prism-php-C_g4bp0C.cjs.map} +1 -1
- package/dist/{prism-tsx-DDg7MuNh.cjs → prism-tsx-Buubi-AJ.cjs} +1 -1
- package/dist/{prism-tsx-DDg7MuNh.cjs.map → prism-tsx-Buubi-AJ.cjs.map} +1 -1
- package/dist/{prism-tsx-BFlaUgcE.js → prism-tsx-CueLxs1r.js} +1 -1
- package/dist/{prism-tsx-BFlaUgcE.js.map → prism-tsx-CueLxs1r.js.map} +1 -1
- package/dist/{prism-typescript-DYi8QiPX.cjs → prism-typescript-Cj7wU8T7.cjs} +1 -1
- package/dist/{prism-typescript-DYi8QiPX.cjs.map → prism-typescript-Cj7wU8T7.cjs.map} +1 -1
- package/dist/{prism-typescript-Br2XvXsL.js → prism-typescript-DC-urVo-.js} +1 -1
- package/dist/{prism-typescript-Br2XvXsL.js.map → prism-typescript-DC-urVo-.js.map} +1 -1
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/{typography-B_xK5Q_j.cjs → typography-D1s-QFlb.cjs} +2 -2
- package/dist/{typography-B_xK5Q_j.cjs.map → typography-D1s-QFlb.cjs.map} +1 -1
- package/dist/{typography-C3BBQ_9r.js → typography-FCWA0UOB.js} +2 -2
- package/dist/{typography-C3BBQ_9r.js.map → typography-FCWA0UOB.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +5 -5
- package/dist/utils.cjs +1 -1
- package/dist/utils.entry.d.ts +0 -2
- package/dist/utils.js +1 -2
- package/package.json +1 -1
- package/dist/MImage-DXy-dHas.cjs +0 -2
- package/dist/MImage-DXy-dHas.cjs.map +0 -1
- package/dist/MImage-Dp81HSZr.js +0 -53
- package/dist/MImage-Dp81HSZr.js.map +0 -1
- package/dist/MInline-CnxH6VZx.js +0 -41
- package/dist/MInline-CnxH6VZx.js.map +0 -1
- package/dist/MInline-DYy3IhF-.cjs +0 -2
- package/dist/MInline-DYy3IhF-.cjs.map +0 -1
- package/dist/MStack-8qZI36jT.js +0 -41
- package/dist/MStack-8qZI36jT.js.map +0 -1
- package/dist/MStack-BcEwA2sk.cjs +0 -2
- package/dist/MStack-BcEwA2sk.cjs.map +0 -1
- package/dist/MSurface-DWl0groZ.cjs +0 -2
- package/dist/MSurface-DWl0groZ.cjs.map +0 -1
- package/dist/MSurface-DnwfNn3F.js +0 -41
- package/dist/MSurface-DnwfNn3F.js.map +0 -1
- package/dist/display-Bt0G6RPk.cjs +0 -3
- package/dist/display-Bt0G6RPk.cjs.map +0 -1
- package/dist/display-CZO1cOXZ.js.map +0 -1
- package/dist/icons-BhZaama4.cjs +0 -2
- package/dist/icons-BhZaama4.cjs.map +0 -1
- package/dist/icons-DZr7JKf6.js.map +0 -1
- package/dist/layout-DZXYG0TB.cjs +0 -2
- package/dist/layout-DZXYG0TB.cjs.map +0 -1
- package/dist/media-CWx--sZw.cjs +0 -2
- package/dist/media-CWx--sZw.cjs.map +0 -1
- package/dist/media-fmOnjugH.js +0 -408
- package/dist/media-fmOnjugH.js.map +0 -1
- package/dist/useReveal-DVwtH8Dl.cjs +0 -2
- package/dist/useReveal-DVwtH8Dl.cjs.map +0 -1
- package/dist/useReveal-JAiIFTia.js +0 -23
- package/dist/useReveal-JAiIFTia.js.map +0 -1
- package/dist/utils/useReveal.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSparkline-7ycEh2eZ.cjs","names":[],"sources":["../src/components/data/MChart/utils/scales.ts","../src/components/data/MChart/utils/paths.ts","../src/components/data/MSparkline/MSparkline.tsx"],"sourcesContent":["export function createLinearScale(domain: [number, number], range: [number, number]): (value: number) => number {\n const [d0, d1] = domain\n const [r0, r1] = range\n const span = d1 - d0 || 1\n\n return (value: number) => r0 + ((value - d0) / span) * (r1 - r0)\n}\n\nexport function niceMin(min: number): number {\n if (min >= 0) return 0\n const step = niceStep(min, 0)\n return Math.floor(min / step) * step\n}\n\nexport function niceMax(max: number, min: number = 0): number {\n const step = niceStep(min, max)\n return Math.ceil(max / step) * step\n}\n\nexport function niceStep(min: number, max: number, ticks = 5): number {\n const range = max - min || 1\n const rough = range / ticks\n const pow = Math.pow(10, Math.floor(Math.log10(rough)))\n const normalized = rough / pow\n\n let nice: number\n if (normalized <= 1) nice = 1\n else if (normalized <= 2) nice = 2\n else if (normalized <= 5) nice = 5\n else nice = 10\n\n return nice * pow\n}\n\nexport function generateTicks(min: number, max: number, count = 5): number[] {\n const step = niceStep(min, max, count)\n const start = Math.floor(min / step) * step\n const end = Math.ceil(max / step) * step\n const ticks: number[] = []\n\n for (let v = start; v <= end + step * 0.01; v += step) {\n ticks.push(Math.round(v * 1e10) / 1e10)\n }\n\n return ticks\n}\n\nexport function getDataExtent(datasets: number[][]): [number, number] {\n let min = Infinity\n let max = -Infinity\n\n for (const data of datasets) {\n for (const v of data) {\n if (v < min) min = v\n if (v > max) max = v\n }\n }\n\n if (min === Infinity) return [0, 1]\n if (min === max) return [min - 1, max + 1]\n\n return [min, max]\n}\n\nexport function getStackedExtent(datasets: number[][]): [number, number] {\n if (datasets.length === 0) return [0, 1]\n\n const len = Math.max(...datasets.map((d) => d.length))\n let max = -Infinity\n\n for (let i = 0; i < len; i++) {\n let sum = 0\n for (const data of datasets) {\n sum += data[i] ?? 0\n }\n if (sum > max) max = sum\n }\n\n return [0, max === 0 ? 1 : max]\n}\n","export interface Point {\n x: number\n y: number\n}\n\nexport function linePath(points: Point[]): string {\n if (points.length === 0) return ''\n return points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x},${p.y}`).join(' ')\n}\n\nexport function curvedPath(points: Point[]): string {\n if (points.length === 0) return ''\n if (points.length === 1) return `M${points[0].x},${points[0].y}`\n if (points.length === 2) return linePath(points)\n\n let d = `M${points[0].x},${points[0].y}`\n\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[Math.max(i - 1, 0)]\n const p1 = points[i]\n const p2 = points[i + 1]\n const p3 = points[Math.min(i + 2, points.length - 1)]\n\n const cp1x = p1.x + (p2.x - p0.x) / 6\n const cp1y = p1.y + (p2.y - p0.y) / 6\n const cp2x = p2.x - (p3.x - p1.x) / 6\n const cp2y = p2.y - (p3.y - p1.y) / 6\n\n d += ` C${cp1x},${cp1y} ${cp2x},${cp2y} ${p2.x},${p2.y}`\n }\n\n return d\n}\n\nexport function areaPath(points: Point[], baseline: number, curved: boolean): string {\n if (points.length === 0) return ''\n\n const topPath = curved ? curvedPath(points) : linePath(points)\n const last = points[points.length - 1]\n const first = points[0]\n\n return `${topPath} L${last.x},${baseline} L${first.x},${baseline} Z`\n}\n\nexport function stackedAreaPath(topPoints: Point[], bottomPoints: Point[], curved: boolean): string {\n if (topPoints.length === 0) return ''\n\n const topPath = curved ? curvedPath(topPoints) : linePath(topPoints)\n const reversed = [...bottomPoints].reverse()\n const bottomPath = curved\n ? curvedPath(reversed).replace(/^M/, 'L')\n : reversed.map((p) => `L${p.x},${p.y}`).join(' ')\n\n return `${topPath} ${bottomPath} Z`\n}\n\nexport function pieArc(cx: number, cy: number, r: number, startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n return [\n `M${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(mid)},${cy + r * Math.sin(mid)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n const x1 = cx + r * Math.cos(startAngle)\n const y1 = cy + r * Math.sin(startAngle)\n const x2 = cx + r * Math.cos(endAngle)\n const y2 = cy + r * Math.sin(endAngle)\n\n return `M${x1},${y1} A${r},${r} 0 ${largeArc} 1 ${x2},${y2}`\n}\n\nexport function pieSector(\n cx: number,\n cy: number,\n outerR: number,\n innerR: number,\n startAngle: number,\n endAngle: number\n): string {\n const sweep = endAngle - startAngle\n\n if (innerR <= 0) {\n if (sweep >= Math.PI * 2 - 0.001) {\n return pieArc(cx, cy, outerR, startAngle, endAngle) + ' Z'\n }\n const x1 = cx + outerR * Math.cos(startAngle)\n const y1 = cy + outerR * Math.sin(startAngle)\n const x2 = cx + outerR * Math.cos(endAngle)\n const y2 = cy + outerR * Math.sin(endAngle)\n const largeArc = sweep > Math.PI ? 1 : 0\n return `M${cx},${cy} L${x1},${y1} A${outerR},${outerR} 0 ${largeArc} 1 ${x2},${y2} Z`\n }\n\n const ox1 = cx + outerR * Math.cos(startAngle)\n const oy1 = cy + outerR * Math.sin(startAngle)\n const ox2 = cx + outerR * Math.cos(endAngle)\n const oy2 = cy + outerR * Math.sin(endAngle)\n const ix1 = cx + innerR * Math.cos(endAngle)\n const iy1 = cy + innerR * Math.sin(endAngle)\n const ix2 = cx + innerR * Math.cos(startAngle)\n const iy2 = cy + innerR * Math.sin(startAngle)\n\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n const omx = cx + outerR * Math.cos(mid)\n const omy = cy + outerR * Math.sin(mid)\n const imx = cx + innerR * Math.cos(mid)\n const imy = cy + innerR * Math.sin(mid)\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 1 1 ${omx},${omy}`,\n `A${outerR},${outerR} 0 1 1 ${ox1},${oy1}`,\n `M${ix2},${iy2}`,\n `A${innerR},${innerR} 0 1 0 ${imx},${imy}`,\n `A${innerR},${innerR} 0 1 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 ${largeArc} 1 ${ox2},${oy2}`,\n `L${ix1},${iy1}`,\n `A${innerR},${innerR} 0 ${largeArc} 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n}\n","import {useMemo, useRef, useEffect, useState} from 'react'\nimport type {MSparklineProps} from './MSparkline.types'\nimport {cn} from '../../../utils/cn'\nimport {createLinearScale} from '../MChart/utils/scales'\nimport {linePath, curvedPath, areaPath} from '../MChart/utils/paths'\nimport type {Point} from '../MChart/utils/paths'\nimport './MSparkline.css'\n\nconst DEFAULT_PADDING = 2\n\nexport function MSparkline({\n data,\n type = 'line',\n color = 'primary',\n width = '100%',\n height = 40,\n padding = DEFAULT_PADDING,\n curved = true,\n animated = true,\n showMinMax = false,\n fillOpacity = 0.15,\n className,\n style,\n ...rest\n}: MSparklineProps) {\n const svgRef = useRef<SVGSVGElement>(null)\n const [mounted, setMounted] = useState(!animated)\n const resolvedPadding = Math.max(0, padding)\n\n useEffect(() => {\n if (animated) {\n const id = requestAnimationFrame(() => setMounted(true))\n return () => cancelAnimationFrame(id)\n }\n }, [animated])\n\n const {points, minIdx, maxIdx, svgWidth, svgHeight, barWidth} = useMemo(() => {\n const len = data.length\n if (len === 0) {\n return {\n points: [] as Point[],\n minIdx: 0,\n maxIdx: 0,\n svgWidth: 100,\n svgHeight: height,\n barWidth: 0,\n }\n }\n\n const svgW = 98\n const svgH = height\n\n let min = Infinity\n let max = -Infinity\n let mnI = 0\n let mxI = 0\n\n for (let i = 0; i < len; i++) {\n if (data[i] < min) {\n min = data[i]\n mnI = i\n }\n if (data[i] > max) {\n max = data[i]\n mxI = i\n }\n }\n\n if (min === max) {\n min -= 1\n max += 1\n }\n\n const xScale = createLinearScale([0, Math.max(len - 1, 1)], [resolvedPadding, svgW - resolvedPadding])\n const yScale = createLinearScale([min, max], [svgH - resolvedPadding, resolvedPadding])\n\n const pts: Point[] = data.map((v, i) => ({x: xScale(i), y: yScale(v)}))\n const bw = len > 1 ? (svgW - resolvedPadding * 2) / len : svgW - resolvedPadding * 2\n\n return {points: pts, minIdx: mnI, maxIdx: mxI, svgWidth: svgW, svgHeight: svgH, barWidth: bw}\n }, [data, height, resolvedPadding])\n\n if (data.length === 0) return null\n\n const pathStr = type === 'bar' ? '' : curved ? curvedPath(points) : linePath(points)\n const areaStr = type === 'area' ? areaPath(points, svgHeight - resolvedPadding, curved) : ''\n\n return (\n <div className={cn('sparkline', color, className)} style={{width, height, ...style}} {...rest}>\n <svg\n ref={svgRef}\n viewBox={`0 0 ${svgWidth} ${svgHeight}`}\n preserveAspectRatio=\"none\"\n className={cn('sparkline-svg', mounted && 'mounted')}\n >\n {type === 'area' && <path className=\"sparkline-area\" d={areaStr} style={{opacity: fillOpacity}} />}\n {type === 'bar' ? (\n <g className=\"sparkline-bars\">\n {points.map((p, i) => {\n const barH = svgHeight - resolvedPadding - p.y\n return (\n <rect\n key={i}\n className=\"sparkline-bar\"\n x={p.x - barWidth * 0.4}\n y={p.y}\n width={barWidth * 0.8}\n height={Math.max(barH, 0.5)}\n rx={1}\n />\n )\n })}\n </g>\n ) : (\n <path className=\"sparkline-line\" d={pathStr} />\n )}\n {showMinMax && type !== 'bar' && (\n <>\n <circle\n className=\"sparkline-dot sparkline-dot-min\"\n cx={points[minIdx].x}\n cy={points[minIdx].y}\n r={2.5}\n />\n <circle\n className=\"sparkline-dot sparkline-dot-max\"\n cx={points[maxIdx].x}\n cy={points[maxIdx].y}\n r={2.5}\n />\n </>\n )}\n </svg>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MSparkline-B-ld7hJu.cjs","names":[],"sources":["../src/components/data/MChart/utils/scales.ts","../src/components/data/MChart/utils/paths.ts","../src/components/data/MSparkline/MSparkline.tsx"],"sourcesContent":["export function createLinearScale(domain: [number, number], range: [number, number]): (value: number) => number {\n const [d0, d1] = domain\n const [r0, r1] = range\n const span = d1 - d0 || 1\n\n return (value: number) => r0 + ((value - d0) / span) * (r1 - r0)\n}\n\nexport function niceMin(min: number): number {\n if (min >= 0) return 0\n const step = niceStep(min, 0)\n return Math.floor(min / step) * step\n}\n\nexport function niceMax(max: number, min: number = 0): number {\n const step = niceStep(min, max)\n return Math.ceil(max / step) * step\n}\n\nexport function niceStep(min: number, max: number, ticks = 5): number {\n const range = max - min || 1\n const rough = range / ticks\n const pow = Math.pow(10, Math.floor(Math.log10(rough)))\n const normalized = rough / pow\n\n let nice: number\n if (normalized <= 1) nice = 1\n else if (normalized <= 2) nice = 2\n else if (normalized <= 5) nice = 5\n else nice = 10\n\n return nice * pow\n}\n\nexport function generateTicks(min: number, max: number, count = 5): number[] {\n const step = niceStep(min, max, count)\n const start = Math.floor(min / step) * step\n const end = Math.ceil(max / step) * step\n const ticks: number[] = []\n\n for (let v = start; v <= end + step * 0.01; v += step) {\n ticks.push(Math.round(v * 1e10) / 1e10)\n }\n\n return ticks\n}\n\nexport function getDataExtent(datasets: number[][]): [number, number] {\n let min = Infinity\n let max = -Infinity\n\n for (const data of datasets) {\n for (const v of data) {\n if (v < min) min = v\n if (v > max) max = v\n }\n }\n\n if (min === Infinity) return [0, 1]\n if (min === max) return [min - 1, max + 1]\n\n return [min, max]\n}\n\nexport function getStackedExtent(datasets: number[][]): [number, number] {\n if (datasets.length === 0) return [0, 1]\n\n const len = Math.max(...datasets.map((d) => d.length))\n let max = -Infinity\n\n for (let i = 0; i < len; i++) {\n let sum = 0\n for (const data of datasets) {\n sum += data[i] ?? 0\n }\n if (sum > max) max = sum\n }\n\n return [0, max === 0 ? 1 : max]\n}\n","export interface Point {\n x: number\n y: number\n}\n\nexport function linePath(points: Point[]): string {\n if (points.length === 0) return ''\n return points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x},${p.y}`).join(' ')\n}\n\nexport function curvedPath(points: Point[]): string {\n if (points.length === 0) return ''\n if (points.length === 1) return `M${points[0].x},${points[0].y}`\n if (points.length === 2) return linePath(points)\n\n let d = `M${points[0].x},${points[0].y}`\n\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[Math.max(i - 1, 0)]\n const p1 = points[i]\n const p2 = points[i + 1]\n const p3 = points[Math.min(i + 2, points.length - 1)]\n\n const cp1x = p1.x + (p2.x - p0.x) / 6\n const cp1y = p1.y + (p2.y - p0.y) / 6\n const cp2x = p2.x - (p3.x - p1.x) / 6\n const cp2y = p2.y - (p3.y - p1.y) / 6\n\n d += ` C${cp1x},${cp1y} ${cp2x},${cp2y} ${p2.x},${p2.y}`\n }\n\n return d\n}\n\nexport function areaPath(points: Point[], baseline: number, curved: boolean): string {\n if (points.length === 0) return ''\n\n const topPath = curved ? curvedPath(points) : linePath(points)\n const last = points[points.length - 1]\n const first = points[0]\n\n return `${topPath} L${last.x},${baseline} L${first.x},${baseline} Z`\n}\n\nexport function stackedAreaPath(topPoints: Point[], bottomPoints: Point[], curved: boolean): string {\n if (topPoints.length === 0) return ''\n\n const topPath = curved ? curvedPath(topPoints) : linePath(topPoints)\n const reversed = [...bottomPoints].reverse()\n const bottomPath = curved\n ? curvedPath(reversed).replace(/^M/, 'L')\n : reversed.map((p) => `L${p.x},${p.y}`).join(' ')\n\n return `${topPath} ${bottomPath} Z`\n}\n\nexport function pieArc(cx: number, cy: number, r: number, startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n return [\n `M${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(mid)},${cy + r * Math.sin(mid)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n const x1 = cx + r * Math.cos(startAngle)\n const y1 = cy + r * Math.sin(startAngle)\n const x2 = cx + r * Math.cos(endAngle)\n const y2 = cy + r * Math.sin(endAngle)\n\n return `M${x1},${y1} A${r},${r} 0 ${largeArc} 1 ${x2},${y2}`\n}\n\nexport function pieSector(\n cx: number,\n cy: number,\n outerR: number,\n innerR: number,\n startAngle: number,\n endAngle: number\n): string {\n const sweep = endAngle - startAngle\n\n if (innerR <= 0) {\n if (sweep >= Math.PI * 2 - 0.001) {\n return pieArc(cx, cy, outerR, startAngle, endAngle) + ' Z'\n }\n const x1 = cx + outerR * Math.cos(startAngle)\n const y1 = cy + outerR * Math.sin(startAngle)\n const x2 = cx + outerR * Math.cos(endAngle)\n const y2 = cy + outerR * Math.sin(endAngle)\n const largeArc = sweep > Math.PI ? 1 : 0\n return `M${cx},${cy} L${x1},${y1} A${outerR},${outerR} 0 ${largeArc} 1 ${x2},${y2} Z`\n }\n\n const ox1 = cx + outerR * Math.cos(startAngle)\n const oy1 = cy + outerR * Math.sin(startAngle)\n const ox2 = cx + outerR * Math.cos(endAngle)\n const oy2 = cy + outerR * Math.sin(endAngle)\n const ix1 = cx + innerR * Math.cos(endAngle)\n const iy1 = cy + innerR * Math.sin(endAngle)\n const ix2 = cx + innerR * Math.cos(startAngle)\n const iy2 = cy + innerR * Math.sin(startAngle)\n\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n const omx = cx + outerR * Math.cos(mid)\n const omy = cy + outerR * Math.sin(mid)\n const imx = cx + innerR * Math.cos(mid)\n const imy = cy + innerR * Math.sin(mid)\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 1 1 ${omx},${omy}`,\n `A${outerR},${outerR} 0 1 1 ${ox1},${oy1}`,\n `M${ix2},${iy2}`,\n `A${innerR},${innerR} 0 1 0 ${imx},${imy}`,\n `A${innerR},${innerR} 0 1 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 ${largeArc} 1 ${ox2},${oy2}`,\n `L${ix1},${iy1}`,\n `A${innerR},${innerR} 0 ${largeArc} 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n}\n","import {useMemo, useRef, useEffect, useState} from 'react'\nimport type {MSparklineProps} from './MSparkline.types'\nimport {cn} from '../../../utils/cn'\nimport {createLinearScale} from '../MChart/utils/scales'\nimport {linePath, curvedPath, areaPath} from '../MChart/utils/paths'\nimport type {Point} from '../MChart/utils/paths'\nimport './MSparkline.css'\n\nconst DEFAULT_PADDING = 2\n\nexport function MSparkline({\n data,\n type = 'line',\n color = 'primary',\n width = '100%',\n height = 40,\n padding = DEFAULT_PADDING,\n curved = true,\n animated = true,\n showMinMax = false,\n fillOpacity = 0.15,\n className,\n style,\n ...rest\n}: MSparklineProps) {\n const svgRef = useRef<SVGSVGElement>(null)\n const [mounted, setMounted] = useState(!animated)\n const resolvedPadding = Math.max(0, padding)\n\n useEffect(() => {\n if (animated) {\n const id = requestAnimationFrame(() => setMounted(true))\n return () => cancelAnimationFrame(id)\n }\n }, [animated])\n\n const {points, minIdx, maxIdx, svgWidth, svgHeight, barWidth} = useMemo(() => {\n const len = data.length\n if (len === 0) {\n return {\n points: [] as Point[],\n minIdx: 0,\n maxIdx: 0,\n svgWidth: 100,\n svgHeight: height,\n barWidth: 0,\n }\n }\n\n const svgW = 98\n const svgH = height\n\n let min = Infinity\n let max = -Infinity\n let mnI = 0\n let mxI = 0\n\n for (let i = 0; i < len; i++) {\n if (data[i] < min) {\n min = data[i]\n mnI = i\n }\n if (data[i] > max) {\n max = data[i]\n mxI = i\n }\n }\n\n if (min === max) {\n min -= 1\n max += 1\n }\n\n const xScale = createLinearScale([0, Math.max(len - 1, 1)], [resolvedPadding, svgW - resolvedPadding])\n const yScale = createLinearScale([min, max], [svgH - resolvedPadding, resolvedPadding])\n\n const pts: Point[] = data.map((v, i) => ({x: xScale(i), y: yScale(v)}))\n const bw = len > 1 ? (svgW - resolvedPadding * 2) / len : svgW - resolvedPadding * 2\n\n return {points: pts, minIdx: mnI, maxIdx: mxI, svgWidth: svgW, svgHeight: svgH, barWidth: bw}\n }, [data, height, resolvedPadding])\n\n if (data.length === 0) return null\n\n const pathStr = type === 'bar' ? '' : curved ? curvedPath(points) : linePath(points)\n const areaStr = type === 'area' ? areaPath(points, svgHeight - resolvedPadding, curved) : ''\n\n return (\n <div className={cn('sparkline', color, className)} style={{width, height, ...style}} {...rest}>\n <svg\n ref={svgRef}\n viewBox={`0 0 ${svgWidth} ${svgHeight}`}\n preserveAspectRatio=\"none\"\n className={cn('sparkline-svg', mounted && 'mounted')}\n >\n {type === 'area' && <path className=\"sparkline-area\" d={areaStr} style={{opacity: fillOpacity}} />}\n {type === 'bar' ? (\n <g className=\"sparkline-bars\">\n {points.map((p, i) => {\n const barH = svgHeight - resolvedPadding - p.y\n return (\n <rect\n key={i}\n className=\"sparkline-bar\"\n x={p.x - barWidth * 0.4}\n y={p.y}\n width={barWidth * 0.8}\n height={Math.max(barH, 0.5)}\n rx={1}\n />\n )\n })}\n </g>\n ) : (\n <path className=\"sparkline-line\" d={pathStr} />\n )}\n {showMinMax && type !== 'bar' && (\n <>\n <circle\n className=\"sparkline-dot sparkline-dot-min\"\n cx={points[minIdx].x}\n cy={points[minIdx].y}\n r={2.5}\n />\n <circle\n className=\"sparkline-dot sparkline-dot-max\"\n cx={points[maxIdx].x}\n cy={points[maxIdx].y}\n r={2.5}\n />\n </>\n )}\n </svg>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -204,4 +204,4 @@ function S({ data: l, type: u = "line", color: d = "primary", width: f = "100%",
|
|
|
204
204
|
//#endregion
|
|
205
205
|
export { b as a, f as c, u as d, l as f, h as i, p as l, _ as n, v as o, g as r, c as s, S as t, m as u };
|
|
206
206
|
|
|
207
|
-
//# sourceMappingURL=MSparkline-
|
|
207
|
+
//# sourceMappingURL=MSparkline-DbtdM0W6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSparkline-Dz4K9Vx9.js","names":[],"sources":["../src/components/data/MChart/utils/scales.ts","../src/components/data/MChart/utils/paths.ts","../src/components/data/MSparkline/MSparkline.tsx"],"sourcesContent":["export function createLinearScale(domain: [number, number], range: [number, number]): (value: number) => number {\n const [d0, d1] = domain\n const [r0, r1] = range\n const span = d1 - d0 || 1\n\n return (value: number) => r0 + ((value - d0) / span) * (r1 - r0)\n}\n\nexport function niceMin(min: number): number {\n if (min >= 0) return 0\n const step = niceStep(min, 0)\n return Math.floor(min / step) * step\n}\n\nexport function niceMax(max: number, min: number = 0): number {\n const step = niceStep(min, max)\n return Math.ceil(max / step) * step\n}\n\nexport function niceStep(min: number, max: number, ticks = 5): number {\n const range = max - min || 1\n const rough = range / ticks\n const pow = Math.pow(10, Math.floor(Math.log10(rough)))\n const normalized = rough / pow\n\n let nice: number\n if (normalized <= 1) nice = 1\n else if (normalized <= 2) nice = 2\n else if (normalized <= 5) nice = 5\n else nice = 10\n\n return nice * pow\n}\n\nexport function generateTicks(min: number, max: number, count = 5): number[] {\n const step = niceStep(min, max, count)\n const start = Math.floor(min / step) * step\n const end = Math.ceil(max / step) * step\n const ticks: number[] = []\n\n for (let v = start; v <= end + step * 0.01; v += step) {\n ticks.push(Math.round(v * 1e10) / 1e10)\n }\n\n return ticks\n}\n\nexport function getDataExtent(datasets: number[][]): [number, number] {\n let min = Infinity\n let max = -Infinity\n\n for (const data of datasets) {\n for (const v of data) {\n if (v < min) min = v\n if (v > max) max = v\n }\n }\n\n if (min === Infinity) return [0, 1]\n if (min === max) return [min - 1, max + 1]\n\n return [min, max]\n}\n\nexport function getStackedExtent(datasets: number[][]): [number, number] {\n if (datasets.length === 0) return [0, 1]\n\n const len = Math.max(...datasets.map((d) => d.length))\n let max = -Infinity\n\n for (let i = 0; i < len; i++) {\n let sum = 0\n for (const data of datasets) {\n sum += data[i] ?? 0\n }\n if (sum > max) max = sum\n }\n\n return [0, max === 0 ? 1 : max]\n}\n","export interface Point {\n x: number\n y: number\n}\n\nexport function linePath(points: Point[]): string {\n if (points.length === 0) return ''\n return points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x},${p.y}`).join(' ')\n}\n\nexport function curvedPath(points: Point[]): string {\n if (points.length === 0) return ''\n if (points.length === 1) return `M${points[0].x},${points[0].y}`\n if (points.length === 2) return linePath(points)\n\n let d = `M${points[0].x},${points[0].y}`\n\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[Math.max(i - 1, 0)]\n const p1 = points[i]\n const p2 = points[i + 1]\n const p3 = points[Math.min(i + 2, points.length - 1)]\n\n const cp1x = p1.x + (p2.x - p0.x) / 6\n const cp1y = p1.y + (p2.y - p0.y) / 6\n const cp2x = p2.x - (p3.x - p1.x) / 6\n const cp2y = p2.y - (p3.y - p1.y) / 6\n\n d += ` C${cp1x},${cp1y} ${cp2x},${cp2y} ${p2.x},${p2.y}`\n }\n\n return d\n}\n\nexport function areaPath(points: Point[], baseline: number, curved: boolean): string {\n if (points.length === 0) return ''\n\n const topPath = curved ? curvedPath(points) : linePath(points)\n const last = points[points.length - 1]\n const first = points[0]\n\n return `${topPath} L${last.x},${baseline} L${first.x},${baseline} Z`\n}\n\nexport function stackedAreaPath(topPoints: Point[], bottomPoints: Point[], curved: boolean): string {\n if (topPoints.length === 0) return ''\n\n const topPath = curved ? curvedPath(topPoints) : linePath(topPoints)\n const reversed = [...bottomPoints].reverse()\n const bottomPath = curved\n ? curvedPath(reversed).replace(/^M/, 'L')\n : reversed.map((p) => `L${p.x},${p.y}`).join(' ')\n\n return `${topPath} ${bottomPath} Z`\n}\n\nexport function pieArc(cx: number, cy: number, r: number, startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n return [\n `M${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(mid)},${cy + r * Math.sin(mid)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n const x1 = cx + r * Math.cos(startAngle)\n const y1 = cy + r * Math.sin(startAngle)\n const x2 = cx + r * Math.cos(endAngle)\n const y2 = cy + r * Math.sin(endAngle)\n\n return `M${x1},${y1} A${r},${r} 0 ${largeArc} 1 ${x2},${y2}`\n}\n\nexport function pieSector(\n cx: number,\n cy: number,\n outerR: number,\n innerR: number,\n startAngle: number,\n endAngle: number\n): string {\n const sweep = endAngle - startAngle\n\n if (innerR <= 0) {\n if (sweep >= Math.PI * 2 - 0.001) {\n return pieArc(cx, cy, outerR, startAngle, endAngle) + ' Z'\n }\n const x1 = cx + outerR * Math.cos(startAngle)\n const y1 = cy + outerR * Math.sin(startAngle)\n const x2 = cx + outerR * Math.cos(endAngle)\n const y2 = cy + outerR * Math.sin(endAngle)\n const largeArc = sweep > Math.PI ? 1 : 0\n return `M${cx},${cy} L${x1},${y1} A${outerR},${outerR} 0 ${largeArc} 1 ${x2},${y2} Z`\n }\n\n const ox1 = cx + outerR * Math.cos(startAngle)\n const oy1 = cy + outerR * Math.sin(startAngle)\n const ox2 = cx + outerR * Math.cos(endAngle)\n const oy2 = cy + outerR * Math.sin(endAngle)\n const ix1 = cx + innerR * Math.cos(endAngle)\n const iy1 = cy + innerR * Math.sin(endAngle)\n const ix2 = cx + innerR * Math.cos(startAngle)\n const iy2 = cy + innerR * Math.sin(startAngle)\n\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n const omx = cx + outerR * Math.cos(mid)\n const omy = cy + outerR * Math.sin(mid)\n const imx = cx + innerR * Math.cos(mid)\n const imy = cy + innerR * Math.sin(mid)\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 1 1 ${omx},${omy}`,\n `A${outerR},${outerR} 0 1 1 ${ox1},${oy1}`,\n `M${ix2},${iy2}`,\n `A${innerR},${innerR} 0 1 0 ${imx},${imy}`,\n `A${innerR},${innerR} 0 1 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 ${largeArc} 1 ${ox2},${oy2}`,\n `L${ix1},${iy1}`,\n `A${innerR},${innerR} 0 ${largeArc} 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n}\n","import {useMemo, useRef, useEffect, useState} from 'react'\nimport type {MSparklineProps} from './MSparkline.types'\nimport {cn} from '../../../utils/cn'\nimport {createLinearScale} from '../MChart/utils/scales'\nimport {linePath, curvedPath, areaPath} from '../MChart/utils/paths'\nimport type {Point} from '../MChart/utils/paths'\nimport './MSparkline.css'\n\nconst DEFAULT_PADDING = 2\n\nexport function MSparkline({\n data,\n type = 'line',\n color = 'primary',\n width = '100%',\n height = 40,\n padding = DEFAULT_PADDING,\n curved = true,\n animated = true,\n showMinMax = false,\n fillOpacity = 0.15,\n className,\n style,\n ...rest\n}: MSparklineProps) {\n const svgRef = useRef<SVGSVGElement>(null)\n const [mounted, setMounted] = useState(!animated)\n const resolvedPadding = Math.max(0, padding)\n\n useEffect(() => {\n if (animated) {\n const id = requestAnimationFrame(() => setMounted(true))\n return () => cancelAnimationFrame(id)\n }\n }, [animated])\n\n const {points, minIdx, maxIdx, svgWidth, svgHeight, barWidth} = useMemo(() => {\n const len = data.length\n if (len === 0) {\n return {\n points: [] as Point[],\n minIdx: 0,\n maxIdx: 0,\n svgWidth: 100,\n svgHeight: height,\n barWidth: 0,\n }\n }\n\n const svgW = 98\n const svgH = height\n\n let min = Infinity\n let max = -Infinity\n let mnI = 0\n let mxI = 0\n\n for (let i = 0; i < len; i++) {\n if (data[i] < min) {\n min = data[i]\n mnI = i\n }\n if (data[i] > max) {\n max = data[i]\n mxI = i\n }\n }\n\n if (min === max) {\n min -= 1\n max += 1\n }\n\n const xScale = createLinearScale([0, Math.max(len - 1, 1)], [resolvedPadding, svgW - resolvedPadding])\n const yScale = createLinearScale([min, max], [svgH - resolvedPadding, resolvedPadding])\n\n const pts: Point[] = data.map((v, i) => ({x: xScale(i), y: yScale(v)}))\n const bw = len > 1 ? (svgW - resolvedPadding * 2) / len : svgW - resolvedPadding * 2\n\n return {points: pts, minIdx: mnI, maxIdx: mxI, svgWidth: svgW, svgHeight: svgH, barWidth: bw}\n }, [data, height, resolvedPadding])\n\n if (data.length === 0) return null\n\n const pathStr = type === 'bar' ? '' : curved ? curvedPath(points) : linePath(points)\n const areaStr = type === 'area' ? areaPath(points, svgHeight - resolvedPadding, curved) : ''\n\n return (\n <div className={cn('sparkline', color, className)} style={{width, height, ...style}} {...rest}>\n <svg\n ref={svgRef}\n viewBox={`0 0 ${svgWidth} ${svgHeight}`}\n preserveAspectRatio=\"none\"\n className={cn('sparkline-svg', mounted && 'mounted')}\n >\n {type === 'area' && <path className=\"sparkline-area\" d={areaStr} style={{opacity: fillOpacity}} />}\n {type === 'bar' ? (\n <g className=\"sparkline-bars\">\n {points.map((p, i) => {\n const barH = svgHeight - resolvedPadding - p.y\n return (\n <rect\n key={i}\n className=\"sparkline-bar\"\n x={p.x - barWidth * 0.4}\n y={p.y}\n width={barWidth * 0.8}\n height={Math.max(barH, 0.5)}\n rx={1}\n />\n )\n })}\n </g>\n ) : (\n <path className=\"sparkline-line\" d={pathStr} />\n )}\n {showMinMax && type !== 'bar' && (\n <>\n <circle\n className=\"sparkline-dot sparkline-dot-min\"\n cx={points[minIdx].x}\n cy={points[minIdx].y}\n r={2.5}\n />\n <circle\n className=\"sparkline-dot sparkline-dot-max\"\n cx={points[maxIdx].x}\n cy={points[maxIdx].y}\n r={2.5}\n />\n </>\n )}\n </svg>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MSparkline-DbtdM0W6.js","names":[],"sources":["../src/components/data/MChart/utils/scales.ts","../src/components/data/MChart/utils/paths.ts","../src/components/data/MSparkline/MSparkline.tsx"],"sourcesContent":["export function createLinearScale(domain: [number, number], range: [number, number]): (value: number) => number {\n const [d0, d1] = domain\n const [r0, r1] = range\n const span = d1 - d0 || 1\n\n return (value: number) => r0 + ((value - d0) / span) * (r1 - r0)\n}\n\nexport function niceMin(min: number): number {\n if (min >= 0) return 0\n const step = niceStep(min, 0)\n return Math.floor(min / step) * step\n}\n\nexport function niceMax(max: number, min: number = 0): number {\n const step = niceStep(min, max)\n return Math.ceil(max / step) * step\n}\n\nexport function niceStep(min: number, max: number, ticks = 5): number {\n const range = max - min || 1\n const rough = range / ticks\n const pow = Math.pow(10, Math.floor(Math.log10(rough)))\n const normalized = rough / pow\n\n let nice: number\n if (normalized <= 1) nice = 1\n else if (normalized <= 2) nice = 2\n else if (normalized <= 5) nice = 5\n else nice = 10\n\n return nice * pow\n}\n\nexport function generateTicks(min: number, max: number, count = 5): number[] {\n const step = niceStep(min, max, count)\n const start = Math.floor(min / step) * step\n const end = Math.ceil(max / step) * step\n const ticks: number[] = []\n\n for (let v = start; v <= end + step * 0.01; v += step) {\n ticks.push(Math.round(v * 1e10) / 1e10)\n }\n\n return ticks\n}\n\nexport function getDataExtent(datasets: number[][]): [number, number] {\n let min = Infinity\n let max = -Infinity\n\n for (const data of datasets) {\n for (const v of data) {\n if (v < min) min = v\n if (v > max) max = v\n }\n }\n\n if (min === Infinity) return [0, 1]\n if (min === max) return [min - 1, max + 1]\n\n return [min, max]\n}\n\nexport function getStackedExtent(datasets: number[][]): [number, number] {\n if (datasets.length === 0) return [0, 1]\n\n const len = Math.max(...datasets.map((d) => d.length))\n let max = -Infinity\n\n for (let i = 0; i < len; i++) {\n let sum = 0\n for (const data of datasets) {\n sum += data[i] ?? 0\n }\n if (sum > max) max = sum\n }\n\n return [0, max === 0 ? 1 : max]\n}\n","export interface Point {\n x: number\n y: number\n}\n\nexport function linePath(points: Point[]): string {\n if (points.length === 0) return ''\n return points.map((p, i) => `${i === 0 ? 'M' : 'L'}${p.x},${p.y}`).join(' ')\n}\n\nexport function curvedPath(points: Point[]): string {\n if (points.length === 0) return ''\n if (points.length === 1) return `M${points[0].x},${points[0].y}`\n if (points.length === 2) return linePath(points)\n\n let d = `M${points[0].x},${points[0].y}`\n\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[Math.max(i - 1, 0)]\n const p1 = points[i]\n const p2 = points[i + 1]\n const p3 = points[Math.min(i + 2, points.length - 1)]\n\n const cp1x = p1.x + (p2.x - p0.x) / 6\n const cp1y = p1.y + (p2.y - p0.y) / 6\n const cp2x = p2.x - (p3.x - p1.x) / 6\n const cp2y = p2.y - (p3.y - p1.y) / 6\n\n d += ` C${cp1x},${cp1y} ${cp2x},${cp2y} ${p2.x},${p2.y}`\n }\n\n return d\n}\n\nexport function areaPath(points: Point[], baseline: number, curved: boolean): string {\n if (points.length === 0) return ''\n\n const topPath = curved ? curvedPath(points) : linePath(points)\n const last = points[points.length - 1]\n const first = points[0]\n\n return `${topPath} L${last.x},${baseline} L${first.x},${baseline} Z`\n}\n\nexport function stackedAreaPath(topPoints: Point[], bottomPoints: Point[], curved: boolean): string {\n if (topPoints.length === 0) return ''\n\n const topPath = curved ? curvedPath(topPoints) : linePath(topPoints)\n const reversed = [...bottomPoints].reverse()\n const bottomPath = curved\n ? curvedPath(reversed).replace(/^M/, 'L')\n : reversed.map((p) => `L${p.x},${p.y}`).join(' ')\n\n return `${topPath} ${bottomPath} Z`\n}\n\nexport function pieArc(cx: number, cy: number, r: number, startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n return [\n `M${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(mid)},${cy + r * Math.sin(mid)}`,\n `A${r},${r} 0 1 1 ${cx + r * Math.cos(startAngle)},${cy + r * Math.sin(startAngle)}`,\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n const x1 = cx + r * Math.cos(startAngle)\n const y1 = cy + r * Math.sin(startAngle)\n const x2 = cx + r * Math.cos(endAngle)\n const y2 = cy + r * Math.sin(endAngle)\n\n return `M${x1},${y1} A${r},${r} 0 ${largeArc} 1 ${x2},${y2}`\n}\n\nexport function pieSector(\n cx: number,\n cy: number,\n outerR: number,\n innerR: number,\n startAngle: number,\n endAngle: number\n): string {\n const sweep = endAngle - startAngle\n\n if (innerR <= 0) {\n if (sweep >= Math.PI * 2 - 0.001) {\n return pieArc(cx, cy, outerR, startAngle, endAngle) + ' Z'\n }\n const x1 = cx + outerR * Math.cos(startAngle)\n const y1 = cy + outerR * Math.sin(startAngle)\n const x2 = cx + outerR * Math.cos(endAngle)\n const y2 = cy + outerR * Math.sin(endAngle)\n const largeArc = sweep > Math.PI ? 1 : 0\n return `M${cx},${cy} L${x1},${y1} A${outerR},${outerR} 0 ${largeArc} 1 ${x2},${y2} Z`\n }\n\n const ox1 = cx + outerR * Math.cos(startAngle)\n const oy1 = cy + outerR * Math.sin(startAngle)\n const ox2 = cx + outerR * Math.cos(endAngle)\n const oy2 = cy + outerR * Math.sin(endAngle)\n const ix1 = cx + innerR * Math.cos(endAngle)\n const iy1 = cy + innerR * Math.sin(endAngle)\n const ix2 = cx + innerR * Math.cos(startAngle)\n const iy2 = cy + innerR * Math.sin(startAngle)\n\n if (sweep >= Math.PI * 2 - 0.001) {\n const mid = startAngle + Math.PI\n const omx = cx + outerR * Math.cos(mid)\n const omy = cy + outerR * Math.sin(mid)\n const imx = cx + innerR * Math.cos(mid)\n const imy = cy + innerR * Math.sin(mid)\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 1 1 ${omx},${omy}`,\n `A${outerR},${outerR} 0 1 1 ${ox1},${oy1}`,\n `M${ix2},${iy2}`,\n `A${innerR},${innerR} 0 1 0 ${imx},${imy}`,\n `A${innerR},${innerR} 0 1 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n }\n\n const largeArc = sweep > Math.PI ? 1 : 0\n return [\n `M${ox1},${oy1}`,\n `A${outerR},${outerR} 0 ${largeArc} 1 ${ox2},${oy2}`,\n `L${ix1},${iy1}`,\n `A${innerR},${innerR} 0 ${largeArc} 0 ${ix2},${iy2}`,\n 'Z',\n ].join(' ')\n}\n","import {useMemo, useRef, useEffect, useState} from 'react'\nimport type {MSparklineProps} from './MSparkline.types'\nimport {cn} from '../../../utils/cn'\nimport {createLinearScale} from '../MChart/utils/scales'\nimport {linePath, curvedPath, areaPath} from '../MChart/utils/paths'\nimport type {Point} from '../MChart/utils/paths'\nimport './MSparkline.css'\n\nconst DEFAULT_PADDING = 2\n\nexport function MSparkline({\n data,\n type = 'line',\n color = 'primary',\n width = '100%',\n height = 40,\n padding = DEFAULT_PADDING,\n curved = true,\n animated = true,\n showMinMax = false,\n fillOpacity = 0.15,\n className,\n style,\n ...rest\n}: MSparklineProps) {\n const svgRef = useRef<SVGSVGElement>(null)\n const [mounted, setMounted] = useState(!animated)\n const resolvedPadding = Math.max(0, padding)\n\n useEffect(() => {\n if (animated) {\n const id = requestAnimationFrame(() => setMounted(true))\n return () => cancelAnimationFrame(id)\n }\n }, [animated])\n\n const {points, minIdx, maxIdx, svgWidth, svgHeight, barWidth} = useMemo(() => {\n const len = data.length\n if (len === 0) {\n return {\n points: [] as Point[],\n minIdx: 0,\n maxIdx: 0,\n svgWidth: 100,\n svgHeight: height,\n barWidth: 0,\n }\n }\n\n const svgW = 98\n const svgH = height\n\n let min = Infinity\n let max = -Infinity\n let mnI = 0\n let mxI = 0\n\n for (let i = 0; i < len; i++) {\n if (data[i] < min) {\n min = data[i]\n mnI = i\n }\n if (data[i] > max) {\n max = data[i]\n mxI = i\n }\n }\n\n if (min === max) {\n min -= 1\n max += 1\n }\n\n const xScale = createLinearScale([0, Math.max(len - 1, 1)], [resolvedPadding, svgW - resolvedPadding])\n const yScale = createLinearScale([min, max], [svgH - resolvedPadding, resolvedPadding])\n\n const pts: Point[] = data.map((v, i) => ({x: xScale(i), y: yScale(v)}))\n const bw = len > 1 ? (svgW - resolvedPadding * 2) / len : svgW - resolvedPadding * 2\n\n return {points: pts, minIdx: mnI, maxIdx: mxI, svgWidth: svgW, svgHeight: svgH, barWidth: bw}\n }, [data, height, resolvedPadding])\n\n if (data.length === 0) return null\n\n const pathStr = type === 'bar' ? '' : curved ? curvedPath(points) : linePath(points)\n const areaStr = type === 'area' ? areaPath(points, svgHeight - resolvedPadding, curved) : ''\n\n return (\n <div className={cn('sparkline', color, className)} style={{width, height, ...style}} {...rest}>\n <svg\n ref={svgRef}\n viewBox={`0 0 ${svgWidth} ${svgHeight}`}\n preserveAspectRatio=\"none\"\n className={cn('sparkline-svg', mounted && 'mounted')}\n >\n {type === 'area' && <path className=\"sparkline-area\" d={areaStr} style={{opacity: fillOpacity}} />}\n {type === 'bar' ? (\n <g className=\"sparkline-bars\">\n {points.map((p, i) => {\n const barH = svgHeight - resolvedPadding - p.y\n return (\n <rect\n key={i}\n className=\"sparkline-bar\"\n x={p.x - barWidth * 0.4}\n y={p.y}\n width={barWidth * 0.8}\n height={Math.max(barH, 0.5)}\n rx={1}\n />\n )\n })}\n </g>\n ) : (\n <path className=\"sparkline-line\" d={pathStr} />\n )}\n {showMinMax && type !== 'bar' && (\n <>\n <circle\n className=\"sparkline-dot sparkline-dot-min\"\n cx={points[minIdx].x}\n cy={points[minIdx].y}\n r={2.5}\n />\n <circle\n className=\"sparkline-dot sparkline-dot-max\"\n cx={points[maxIdx].x}\n cy={points[maxIdx].y}\n r={2.5}\n />\n </>\n )}\n </svg>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
+
import { t } from "./cn-CUSXNnjF.js";
|
|
3
|
+
import { n, t as r } from "./layoutProps-Cl6d1KmH.js";
|
|
4
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/layout/MStack/MStack.tsx
|
|
6
|
+
function a({ align: a = "stretch", hidden: o, spacing: s, padding: c, fsize: l, mt: u, mb: d, ml: f, mr: p, mx: m, my: h, pt: g, pb: _, pl: v, pr: y, px: b, py: x, fullWidth: S, className: C, style: w, children: T, ...E }) {
|
|
7
|
+
let D = n({ fsize: l });
|
|
8
|
+
return /* @__PURE__ */ i("div", {
|
|
9
|
+
className: t("stack", a !== "stretch" && a, ...r({
|
|
10
|
+
spacing: s,
|
|
11
|
+
padding: c,
|
|
12
|
+
fsize: l,
|
|
13
|
+
mt: u,
|
|
14
|
+
mb: d,
|
|
15
|
+
ml: f,
|
|
16
|
+
mr: p,
|
|
17
|
+
mx: m,
|
|
18
|
+
my: h,
|
|
19
|
+
pt: g,
|
|
20
|
+
pb: _,
|
|
21
|
+
pl: v,
|
|
22
|
+
pr: y,
|
|
23
|
+
px: b,
|
|
24
|
+
py: x,
|
|
25
|
+
fullWidth: S
|
|
26
|
+
}), C),
|
|
27
|
+
style: {
|
|
28
|
+
...D,
|
|
29
|
+
...w
|
|
30
|
+
},
|
|
31
|
+
...e(o),
|
|
32
|
+
...E,
|
|
33
|
+
children: T
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { a as t };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=MStack-BWarX5O9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MStack-BWarX5O9.js","names":[],"sources":["../src/components/layout/MStack/MStack.tsx"],"sourcesContent":["import type {MStackProps} from './MStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MStack.css'\n\n// MStack children vertically with shared layout utility props.\nexport function MStack({\n align = 'stretch',\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MStackProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'stack',\n align !== 'stretch' && align,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n"],"mappings":";;;;;AAOA,SAAgB,EAAO,EACnB,WAAQ,WACR,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACS;CACZ,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,SACA,MAAU,aAAa,GACvB,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./layoutProps-Ck4VtGm9.cjs`);let r=require(`react/jsx-runtime`);function i({align:i=`stretch`,hidden:a,spacing:o,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:f,mx:p,my:m,pt:h,pb:g,pl:_,pr:v,px:y,py:b,fullWidth:x,className:S,style:C,children:w,...T}){let E=n.n({fsize:c});return(0,r.jsx)(`div`,{className:t.t(`stack`,i!==`stretch`&&i,...n.t({spacing:o,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:f,mx:p,my:m,pt:h,pb:g,pl:_,pr:v,px:y,py:b,fullWidth:x}),S),style:{...E,...C},...e.r(a),...T,children:w})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MStack-Cy2GplIA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MStack-Cy2GplIA.cjs","names":[],"sources":["../src/components/layout/MStack/MStack.tsx"],"sourcesContent":["import type {MStackProps} from './MStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MStack.css'\n\n// MStack children vertically with shared layout utility props.\nexport function MStack({\n align = 'stretch',\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MStackProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'stack',\n align !== 'stretch' && align,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n"],"mappings":"kLAOA,SAAgB,EAAO,CACnB,QAAQ,UACR,SACA,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,WACA,GAAG,GACS,CACZ,IAAM,EAAe,EAAA,EAAuB,CAAC,QAAM,CAAC,CAEpD,OACI,EAAA,EAAA,KAAC,MAAD,CACI,UAAW,EAAA,EACP,QACA,IAAU,WAAa,EACvB,GAAG,EAAA,EAA2B,CAC1B,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACH,CAAC,CACF,EACH,CACD,MAAO,CAAC,GAAG,EAAc,GAAG,EAAM,CAClC,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
2
|
import { t } from "./cn-CUSXNnjF.js";
|
|
3
|
-
import { n } from "./MText-
|
|
3
|
+
import { n } from "./MText-B7_HjPym.js";
|
|
4
4
|
import { jsx as r } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/typography/MSubText/MSubText.tsx
|
|
6
6
|
function i({ as: i = "span", size: a = "sm", tone: o = "muted", hidden: s, color: c, className: l, children: u, ...d }) {
|
|
@@ -14,4 +14,4 @@ function i({ as: i = "span", size: a = "sm", tone: o = "muted", hidden: s, color
|
|
|
14
14
|
//#endregion
|
|
15
15
|
export { i as t };
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=MSubText-
|
|
17
|
+
//# sourceMappingURL=MSubText-C9VizSn9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSubText-
|
|
1
|
+
{"version":3,"file":"MSubText-C9VizSn9.js","names":[],"sources":["../src/components/typography/MSubText/MSubText.tsx"],"sourcesContent":["import type {MSubTextProps} from './MSubText.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport './MSubText.css'\n\n// Render small, muted secondary text for captions, hints and metadata.\nexport function MSubText({\n as = 'span',\n size = 'sm',\n tone = 'muted',\n hidden,\n color,\n className,\n children,\n ...rest\n}: MSubTextProps) {\n const Component = as\n return (\n <Component\n className={cn('subtext', !color && tone, size, ...getAppearanceClassNames({color}), className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":";;;;;AAOA,SAAgB,EAAS,EACrB,QAAK,QACL,UAAO,MACP,UAAO,SACP,WACA,UACA,cACA,aACA,GAAG,KACW;AAEd,QACI,kBAFc,GAEd;EACI,WAAW,EAAG,WAAW,CAAC,KAAS,GAAM,GAAM,GAAG,EAAwB,EAAC,UAAM,CAAC,EAAE,EAAU;EAC9F,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACO,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./MText-
|
|
2
|
-
//# sourceMappingURL=MSubText-
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./MText-COzub3y4.cjs`);let r=require(`react/jsx-runtime`);function i({as:i=`span`,size:a=`sm`,tone:o=`muted`,hidden:s,color:c,className:l,children:u,...d}){return(0,r.jsx)(i,{className:t.t(`subtext`,!c&&o,a,...n.n({color:c}),l),...e.r(s),...d,children:u})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MSubText-DP9WYlwz.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSubText-
|
|
1
|
+
{"version":3,"file":"MSubText-DP9WYlwz.cjs","names":[],"sources":["../src/components/typography/MSubText/MSubText.tsx"],"sourcesContent":["import type {MSubTextProps} from './MSubText.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport './MSubText.css'\n\n// Render small, muted secondary text for captions, hints and metadata.\nexport function MSubText({\n as = 'span',\n size = 'sm',\n tone = 'muted',\n hidden,\n color,\n className,\n children,\n ...rest\n}: MSubTextProps) {\n const Component = as\n return (\n <Component\n className={cn('subtext', !color && tone, size, ...getAppearanceClassNames({color}), className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":"4KAOA,SAAgB,EAAS,CACrB,KAAK,OACL,OAAO,KACP,OAAO,QACP,SACA,QACA,YACA,WACA,GAAG,GACW,CAEd,OACI,EAAA,EAAA,KAFc,EAEd,CACI,UAAW,EAAA,EAAG,UAAW,CAAC,GAAS,EAAM,EAAM,GAAG,EAAA,EAAwB,CAAC,QAAM,CAAC,CAAE,EAAU,CAC9F,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACO,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./layoutProps-Ck4VtGm9.cjs`);let r=require(`react/jsx-runtime`);function i({tone:i=`default`,outlined:a=!0,padded:o=!0,hidden:s,spacing:c,padding:l,fsize:u,mt:d,mb:f,ml:p,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C,className:w,style:T,children:E,...D}){let O=n.n({fsize:u});return(0,r.jsx)(`div`,{className:t.t(`surface`,i,a&&`outlined`,o&&`padded`,...n.t({spacing:c,padding:l,fsize:u,mt:d,mb:f,ml:p,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C}),w),style:{...O,...T},...e.r(s),...D,children:E})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MSurface-C467dVMQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MSurface-C467dVMQ.cjs","names":[],"sources":["../src/components/layout/MSurface/MSurface.tsx"],"sourcesContent":["import type {MSurfaceProps} from './MSurface.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MSurface.css'\n\n// Render a reusable surface primitive for cards, panels and preview blocks.\nexport function MSurface({\n tone = 'default',\n outlined = true,\n padded = true,\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MSurfaceProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'surface',\n tone,\n outlined && 'outlined',\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n"],"mappings":"kLAOA,SAAgB,EAAS,CACrB,OAAO,UACP,WAAW,GACX,SAAS,GACT,SACA,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,WACA,GAAG,GACW,CACd,IAAM,EAAe,EAAA,EAAuB,CAAC,QAAM,CAAC,CAEpD,OACI,EAAA,EAAA,KAAC,MAAD,CACI,UAAW,EAAA,EACP,UACA,EACA,GAAY,WACZ,GAAU,SACV,GAAG,EAAA,EAA2B,CAC1B,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACH,CAAC,CACF,EACH,CACD,MAAO,CAAC,GAAG,EAAc,GAAG,EAAM,CAClC,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
+
import { t } from "./cn-CUSXNnjF.js";
|
|
3
|
+
import { n, t as r } from "./layoutProps-Cl6d1KmH.js";
|
|
4
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/layout/MSurface/MSurface.tsx
|
|
6
|
+
function a({ tone: a = "default", outlined: o = !0, padded: s = !0, hidden: c, spacing: l, padding: u, fsize: d, mt: f, mb: p, ml: m, mr: h, mx: g, my: _, pt: v, pb: y, pl: b, pr: x, px: S, py: C, fullWidth: w, className: T, style: E, children: D, ...O }) {
|
|
7
|
+
let k = n({ fsize: d });
|
|
8
|
+
return /* @__PURE__ */ i("div", {
|
|
9
|
+
className: t("surface", a, o && "outlined", s && "padded", ...r({
|
|
10
|
+
spacing: l,
|
|
11
|
+
padding: u,
|
|
12
|
+
fsize: d,
|
|
13
|
+
mt: f,
|
|
14
|
+
mb: p,
|
|
15
|
+
ml: m,
|
|
16
|
+
mr: h,
|
|
17
|
+
mx: g,
|
|
18
|
+
my: _,
|
|
19
|
+
pt: v,
|
|
20
|
+
pb: y,
|
|
21
|
+
pl: b,
|
|
22
|
+
pr: x,
|
|
23
|
+
px: S,
|
|
24
|
+
py: C,
|
|
25
|
+
fullWidth: w
|
|
26
|
+
}), T),
|
|
27
|
+
style: {
|
|
28
|
+
...k,
|
|
29
|
+
...E
|
|
30
|
+
},
|
|
31
|
+
...e(c),
|
|
32
|
+
...O,
|
|
33
|
+
children: D
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { a as t };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=MSurface-DfZ1Zy1-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MSurface-DfZ1Zy1-.js","names":[],"sources":["../src/components/layout/MSurface/MSurface.tsx"],"sourcesContent":["import type {MSurfaceProps} from './MSurface.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MSurface.css'\n\n// Render a reusable surface primitive for cards, panels and preview blocks.\nexport function MSurface({\n tone = 'default',\n outlined = true,\n padded = true,\n hidden,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MSurfaceProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'surface',\n tone,\n outlined && 'outlined',\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n"],"mappings":";;;;;AAOA,SAAgB,EAAS,EACrB,UAAO,WACP,cAAW,IACX,YAAS,IACT,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACW;CACd,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,WACA,GACA,KAAY,YACZ,KAAU,UACV,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./icons-
|
|
2
|
-
//# sourceMappingURL=MTag-
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./icons-BJCV7W0L.cjs`),n=require(`./cn-DYFxgzi2.cjs`),r=require(`./MButton-LUNWBBOV.cjs`);let i=require(`react/jsx-runtime`);function a({label:a,color:o=`primary`,variant:s=`solid`,size:c=`md`,hidden:l,rounded:u=!1,closable:d=!1,onClose:f,icon:p,className:m,...h}){return(0,i.jsxs)(`span`,{className:n.t(`m-tag`,`color-${o}`,s,c,u&&`rounded`,m),...e.r(l),...h,children:[p&&(0,i.jsx)(`span`,{className:`m-tag icon`,children:p}),(0,i.jsx)(`span`,{className:`m-tag label`,children:a}),d&&(0,i.jsx)(r.t,{variant:`link`,color:`neutral`,iconOnly:!0,size:`xs`,className:`m-tag close`,onClick:e=>{e.stopPropagation(),f?.()},"aria-label":`Remove`,children:(0,i.jsx)(t.Li,{})})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
+
//# sourceMappingURL=MTag-DXqkBvqx.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MTag-
|
|
1
|
+
{"version":3,"file":"MTag-DXqkBvqx.cjs","names":[],"sources":["../src/components/feedback/MTag/MTag.tsx"],"sourcesContent":["import type {MTagProps} from './MTag.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport './MTag.css'\n\nexport function MTag({\n label,\n color = 'primary',\n variant = 'solid',\n size = 'md',\n hidden,\n rounded = false,\n closable = false,\n onClose,\n icon,\n className,\n ...rest\n}: MTagProps) {\n return (\n <span\n className={cn('m-tag', `color-${color}`, variant, size, rounded && 'rounded', className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"m-tag icon\">{icon}</span>}\n <span className=\"m-tag label\">{label}</span>\n {closable && (\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"xs\"\n className=\"m-tag close\"\n onClick={(e) => {\n e.stopPropagation()\n onClose?.()\n }}\n aria-label=\"Remove\"\n >\n <MCloseIcon />\n </MButton>\n )}\n </span>\n )\n}\n"],"mappings":"gNAOA,SAAgB,EAAK,CACjB,QACA,QAAQ,UACR,UAAU,QACV,OAAO,KACP,SACA,UAAU,GACV,WAAW,GACX,UACA,OACA,YACA,GAAG,GACO,CACV,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,QAAS,SAAS,IAAS,EAAS,EAAM,GAAW,UAAW,EAAU,CACxF,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAHR,CAKK,IAAQ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAY,CAAA,EACnD,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,uBAAe,EAAa,CAAA,CAC3C,IACG,EAAA,EAAA,KAAC,EAAA,EAAD,CACI,QAAQ,OACR,MAAM,UACN,SAAA,GACA,KAAK,KACL,UAAU,cACV,QAAU,GAAM,CACZ,EAAE,iBAAiB,CACnB,KAAW,EAEf,aAAW,mBAEX,EAAA,EAAA,KAAC,EAAA,GAAD,EAAc,CAAA,CACR,CAAA,CAEX"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Li as t } from "./icons-DlNO04xH.js";
|
|
3
3
|
import { t as n } from "./cn-CUSXNnjF.js";
|
|
4
|
-
import { t as r } from "./MButton-
|
|
4
|
+
import { t as r } from "./MButton-BpSZUhpY.js";
|
|
5
5
|
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/feedback/MTag/MTag.tsx
|
|
7
7
|
function o({ label: o, color: s = "primary", variant: c = "solid", size: l = "md", hidden: u, rounded: d = !1, closable: f = !1, onClose: p, icon: m, className: h, ...g }) {
|
|
@@ -36,4 +36,4 @@ function o({ label: o, color: s = "primary", variant: c = "solid", size: l = "md
|
|
|
36
36
|
//#endregion
|
|
37
37
|
export { o as t };
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=MTag-
|
|
39
|
+
//# sourceMappingURL=MTag-N-tYZ915.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MTag-
|
|
1
|
+
{"version":3,"file":"MTag-N-tYZ915.js","names":[],"sources":["../src/components/feedback/MTag/MTag.tsx"],"sourcesContent":["import type {MTagProps} from './MTag.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport './MTag.css'\n\nexport function MTag({\n label,\n color = 'primary',\n variant = 'solid',\n size = 'md',\n hidden,\n rounded = false,\n closable = false,\n onClose,\n icon,\n className,\n ...rest\n}: MTagProps) {\n return (\n <span\n className={cn('m-tag', `color-${color}`, variant, size, rounded && 'rounded', className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"m-tag icon\">{icon}</span>}\n <span className=\"m-tag label\">{label}</span>\n {closable && (\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"xs\"\n className=\"m-tag close\"\n onClick={(e) => {\n e.stopPropagation()\n onClose?.()\n }}\n aria-label=\"Remove\"\n >\n <MCloseIcon />\n </MButton>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAgB,EAAK,EACjB,UACA,WAAQ,WACR,aAAU,SACV,UAAO,MACP,WACA,aAAU,IACV,cAAW,IACX,YACA,SACA,cACA,GAAG,KACO;AACV,QACI,kBAAC,QAAD;EACI,WAAW,EAAG,SAAS,SAAS,KAAS,GAAS,GAAM,KAAW,WAAW,EAAU;EACxF,GAAI,EAAe,EAAO;EAC1B,GAAI;YAHR;GAKK,KAAQ,kBAAC,QAAD;IAAM,WAAU;cAAc;IAAY,CAAA;GACnD,kBAAC,QAAD;IAAM,WAAU;cAAe;IAAa,CAAA;GAC3C,KACG,kBAAC,GAAD;IACI,SAAQ;IACR,OAAM;IACN,UAAA;IACA,MAAK;IACL,WAAU;IACV,UAAU,MAAM;AAEZ,KADA,EAAE,iBAAiB,EACnB,KAAW;;IAEf,cAAW;cAEX,kBAAC,GAAD,EAAc,CAAA;IACR,CAAA;GAEX"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
2
|
import { t } from "./cn-CUSXNnjF.js";
|
|
3
|
-
import { n, t as r } from "./layoutProps-
|
|
3
|
+
import { n, t as r } from "./layoutProps-Cl6d1KmH.js";
|
|
4
4
|
import { jsx as i } from "react/jsx-runtime";
|
|
5
5
|
//#region src/utils/appearanceProps.ts
|
|
6
6
|
function a({ color: e }) {
|
|
@@ -42,4 +42,4 @@ function o({ as: o = "p", tone: s = "default", size: c, align: l = "left", hidde
|
|
|
42
42
|
//#endregion
|
|
43
43
|
export { a as n, o as t };
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=MText-
|
|
45
|
+
//# sourceMappingURL=MText-B7_HjPym.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MText-
|
|
1
|
+
{"version":3,"file":"MText-B7_HjPym.js","names":[],"sources":["../src/utils/appearanceProps.ts","../src/components/typography/MText/MText.tsx"],"sourcesContent":["import type {MColor} from '../theme'\n\nexport interface AppearanceProps {\n color?: MColor\n}\n\n// Translate semantic appearance props into shared utility classes.\nexport function getAppearanceClassNames({color}: AppearanceProps): Array<string | false | undefined> {\n return [color && `fcolor-${color}`]\n}\n","import type {MTextProps} from './MText.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MText.css'\n\n// Render body copy with shared tone, size and weight controls.\nexport function MText({\n as = 'p',\n tone = 'default',\n size,\n align = 'left',\n hidden,\n color,\n weight = 'normal',\n truncate,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MTextProps) {\n const Component = as\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const lines = typeof truncate === 'number' ? truncate : undefined\n\n return (\n <Component\n className={cn(\n 'text',\n !color && tone,\n size,\n align,\n weight,\n truncate === true && 'truncate',\n lines != null && 'line-clamp',\n ...getAppearanceClassNames({color}),\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{\n ...utilityStyle,\n ...(lines ? ({'--line-clamp': lines} as React.CSSProperties) : undefined),\n ...style,\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":";;;;;AAOA,SAAgB,EAAwB,EAAC,YAA4D;AACjG,QAAO,CAAC,KAAS,UAAU,IAAQ;;;;ACAvC,SAAgB,EAAM,EAClB,QAAK,KACL,UAAO,WACP,SACA,WAAQ,QACR,WACA,UACA,YAAS,UACT,aACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACQ;CACX,IAAM,IAAY,GACZ,IAAe,EAAuB,EAAC,UAAM,CAAC,EAC9C,IAAQ,OAAO,KAAa,WAAW,IAAW,KAAA;AAExD,QACI,kBAAC,GAAD;EACI,WAAW,EACP,QACA,CAAC,KAAS,GACV,GACA,GACA,GACA,MAAa,MAAQ,YACrB,KAAS,QAAQ,cACjB,GAAG,EAAwB,EAAC,UAAM,CAAC,EACnC,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GACH,GAAG;GACH,GAAI,IAAS,EAAC,gBAAgB,GAAM,GAA2B,KAAA;GAC/D,GAAG;GACN;EACD,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACO,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./layoutProps-
|
|
2
|
-
//# sourceMappingURL=MText-
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./layoutProps-Ck4VtGm9.cjs`);let r=require(`react/jsx-runtime`);function i({color:e}){return[e&&`fcolor-${e}`]}function a({as:a=`p`,tone:o=`default`,size:s,align:c=`left`,hidden:l,color:u,weight:d=`normal`,truncate:f,spacing:p,padding:m,fsize:h,mt:g,mb:_,ml:v,mr:y,mx:b,my:x,pt:S,pb:C,pl:w,pr:T,px:E,py:D,fullWidth:O,className:k,style:A,children:j,...M}){let N=a,P=n.n({fsize:h}),F=typeof f==`number`?f:void 0;return(0,r.jsx)(N,{className:t.t(`text`,!u&&o,s,c,d,f===!0&&`truncate`,F!=null&&`line-clamp`,...i({color:u}),...n.t({spacing:p,padding:m,fsize:h,mt:g,mb:_,ml:v,mr:y,mx:b,my:x,pt:S,pb:C,pl:w,pr:T,px:E,py:D,fullWidth:O}),k),style:{...P,...F?{"--line-clamp":F}:void 0,...A},...e.r(l),...M,children:j})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
+
//# sourceMappingURL=MText-COzub3y4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MText-
|
|
1
|
+
{"version":3,"file":"MText-COzub3y4.cjs","names":[],"sources":["../src/utils/appearanceProps.ts","../src/components/typography/MText/MText.tsx"],"sourcesContent":["import type {MColor} from '../theme'\n\nexport interface AppearanceProps {\n color?: MColor\n}\n\n// Translate semantic appearance props into shared utility classes.\nexport function getAppearanceClassNames({color}: AppearanceProps): Array<string | false | undefined> {\n return [color && `fcolor-${color}`]\n}\n","import type {MTextProps} from './MText.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MText.css'\n\n// Render body copy with shared tone, size and weight controls.\nexport function MText({\n as = 'p',\n tone = 'default',\n size,\n align = 'left',\n hidden,\n color,\n weight = 'normal',\n truncate,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MTextProps) {\n const Component = as\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const lines = typeof truncate === 'number' ? truncate : undefined\n\n return (\n <Component\n className={cn(\n 'text',\n !color && tone,\n size,\n align,\n weight,\n truncate === true && 'truncate',\n lines != null && 'line-clamp',\n ...getAppearanceClassNames({color}),\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{\n ...utilityStyle,\n ...(lines ? ({'--line-clamp': lines} as React.CSSProperties) : undefined),\n ...style,\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":"kLAOA,SAAgB,EAAwB,CAAC,SAA4D,CACjG,MAAO,CAAC,GAAS,UAAU,IAAQ,CCAvC,SAAgB,EAAM,CAClB,KAAK,IACL,OAAO,UACP,OACA,QAAQ,OACR,SACA,QACA,SAAS,SACT,WACA,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,WACA,GAAG,GACQ,CACX,IAAM,EAAY,EACZ,EAAe,EAAA,EAAuB,CAAC,QAAM,CAAC,CAC9C,EAAQ,OAAO,GAAa,SAAW,EAAW,IAAA,GAExD,OACI,EAAA,EAAA,KAAC,EAAD,CACI,UAAW,EAAA,EACP,OACA,CAAC,GAAS,EACV,EACA,EACA,EACA,IAAa,IAAQ,WACrB,GAAS,MAAQ,aACjB,GAAG,EAAwB,CAAC,QAAM,CAAC,CACnC,GAAG,EAAA,EAA2B,CAC1B,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACH,CAAC,CACF,EACH,CACD,MAAO,CACH,GAAG,EACH,GAAI,EAAS,CAAC,eAAgB,EAAM,CAA2B,IAAA,GAC/D,GAAG,EACN,CACD,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACO,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./cn-CUSXNnjF.js";
|
|
2
2
|
import { a as t, n, o as r, r as i, t as a } from "./relativeTime-BqCuaBqb.js";
|
|
3
|
-
import { t as o } from "./locale-
|
|
3
|
+
import { t as o } from "./locale-BNyzqXAU.js";
|
|
4
4
|
import { useEffect as s, useMemo as c, useState as l } from "react";
|
|
5
5
|
import { jsx as u } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/display/MTimeAgo/MTimeAgo.tsx
|
|
@@ -48,4 +48,4 @@ function f({ value: i, locale: f, maxRelative: p, fallbackFormat: m = "date", ti
|
|
|
48
48
|
//#endregion
|
|
49
49
|
export { f as t };
|
|
50
50
|
|
|
51
|
-
//# sourceMappingURL=MTimeAgo-
|
|
51
|
+
//# sourceMappingURL=MTimeAgo-D1G2yovw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MTimeAgo-
|
|
1
|
+
{"version":3,"file":"MTimeAgo-D1G2yovw.js","names":[],"sources":["../src/components/display/MTimeAgo/MTimeAgo.tsx"],"sourcesContent":["import {useEffect, useMemo, useState} from 'react'\nimport type {MTimeAgoProps, MTimeAgoUpdate} from './MTimeAgo.types'\nimport {cn} from '../../../utils/cn'\nimport {useDocumentLocale} from '../../../utils/locale'\nimport {\n formatAbsoluteTime,\n formatRelativeTime,\n getAutoUpdateInterval,\n parseRelativeThreshold,\n toDate,\n} from '../../../utils/relativeTime'\nimport './MTimeAgo.css'\n\nfunction getUpdateInterval(update: MTimeAgoUpdate, value: Date | string | number, now: number): number | null {\n if (update === 'none') return null\n if (update === 'minute') return 60 * 1000\n if (update === 'hour') return 60 * 60 * 1000\n if (update === 'day') return 24 * 60 * 60 * 1000\n return getAutoUpdateInterval(value, now)\n}\n\nexport function MTimeAgo({\n value,\n locale: localeOverride,\n maxRelative,\n fallbackFormat = 'date',\n titleAbsolute = true,\n update = 'auto',\n className,\n ...rest\n}: MTimeAgoProps) {\n const locale = useDocumentLocale(localeOverride)\n const [now, setNow] = useState(() => Date.now())\n const interval = useMemo(() => getUpdateInterval(update, value, now), [now, update, value])\n\n useEffect(() => {\n if (!interval) return\n\n const id = window.setInterval(() => setNow(Date.now()), interval)\n return () => window.clearInterval(id)\n }, [interval])\n\n const date = useMemo(() => toDate(value), [value])\n const maxRelativeMs = useMemo(() => parseRelativeThreshold(maxRelative), [maxRelative])\n\n const absolute = useMemo(() => formatAbsoluteTime(value, locale, fallbackFormat), [value, locale, fallbackFormat])\n\n const content = useMemo(() => {\n if (!date) return String(value)\n\n const diff = Math.abs(date.getTime() - now)\n if (maxRelativeMs != null && diff > maxRelativeMs) {\n return absolute ?? String(value)\n }\n\n return formatRelativeTime(date, {locale, now}) ?? absolute ?? String(value)\n }, [absolute, date, locale, maxRelativeMs, now, value])\n\n return (\n <time\n className={cn('time ago', className)}\n dateTime={date?.toISOString()}\n title={titleAbsolute ? (absolute ?? undefined) : undefined}\n {...rest}\n >\n {content}\n </time>\n )\n}\n"],"mappings":";;;;;;AAaA,SAAS,EAAkB,GAAwB,GAA+B,GAA4B;AAK1G,QAJI,MAAW,SAAe,OAC1B,MAAW,WAAiB,KAAK,MACjC,MAAW,SAAe,OAAU,MACpC,MAAW,QAAc,OAAU,KAAK,MACrC,EAAsB,GAAO,EAAI;;AAG5C,SAAgB,EAAS,EACrB,UACA,QAAQ,GACR,gBACA,oBAAiB,QACjB,mBAAgB,IAChB,YAAS,QACT,cACA,GAAG,KACW;CACd,IAAM,IAAS,EAAkB,EAAe,EAC1C,CAAC,GAAK,KAAU,QAAe,KAAK,KAAK,CAAC,EAC1C,IAAW,QAAc,EAAkB,GAAQ,GAAO,EAAI,EAAE;EAAC;EAAK;EAAQ;EAAM,CAAC;AAE3F,SAAgB;AACZ,MAAI,CAAC,EAAU;EAEf,IAAM,IAAK,OAAO,kBAAkB,EAAO,KAAK,KAAK,CAAC,EAAE,EAAS;AACjE,eAAa,OAAO,cAAc,EAAG;IACtC,CAAC,EAAS,CAAC;CAEd,IAAM,IAAO,QAAc,EAAO,EAAM,EAAE,CAAC,EAAM,CAAC,EAC5C,IAAgB,QAAc,EAAuB,EAAY,EAAE,CAAC,EAAY,CAAC,EAEjF,IAAW,QAAc,EAAmB,GAAO,GAAQ,EAAe,EAAE;EAAC;EAAO;EAAQ;EAAe,CAAC,EAE5G,IAAU,QAAc;AAC1B,MAAI,CAAC,EAAM,QAAO,OAAO,EAAM;EAE/B,IAAM,IAAO,KAAK,IAAI,EAAK,SAAS,GAAG,EAAI;AAK3C,SAJI,KAAiB,QAAQ,IAAO,IACzB,KAAY,OAAO,EAAM,GAG7B,EAAmB,GAAM;GAAC;GAAQ;GAAI,CAAC,IAAI,KAAY,OAAO,EAAM;IAC5E;EAAC;EAAU;EAAM;EAAQ;EAAe;EAAK;EAAM,CAAC;AAEvD,QACI,kBAAC,QAAD;EACI,WAAW,EAAG,YAAY,EAAU;EACpC,UAAU,GAAM,aAAa;EAC7B,OAAO,IAAiB,KAAY,KAAA,IAAa,KAAA;EACjD,GAAI;YAEH;EACE,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`./chunk-350yNsax.cjs`);const e=require(`./cn-DYFxgzi2.cjs`),t=require(`./relativeTime-DUbW4O44.cjs`),n=require(`./locale-
|
|
2
|
-
//# sourceMappingURL=MTimeAgo-
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./cn-DYFxgzi2.cjs`),t=require(`./relativeTime-DUbW4O44.cjs`),n=require(`./locale-DIwV_GfN.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);function a(e,n,r){return e===`none`?null:e===`minute`?60*1e3:e===`hour`?3600*1e3:e===`day`?1440*60*1e3:t.r(n,r)}function o({value:o,locale:s,maxRelative:c,fallbackFormat:l=`date`,titleAbsolute:u=!0,update:d=`auto`,className:f,...p}){let m=n.t(s),[h,g]=(0,r.useState)(()=>Date.now()),_=(0,r.useMemo)(()=>a(d,o,h),[h,d,o]);(0,r.useEffect)(()=>{if(!_)return;let e=window.setInterval(()=>g(Date.now()),_);return()=>window.clearInterval(e)},[_]);let v=(0,r.useMemo)(()=>t.o(o),[o]),y=(0,r.useMemo)(()=>t.a(c),[c]),b=(0,r.useMemo)(()=>t.t(o,m,l),[o,m,l]),x=(0,r.useMemo)(()=>{if(!v)return String(o);let e=Math.abs(v.getTime()-h);return y!=null&&e>y?b??String(o):t.n(v,{locale:m,now:h})??b??String(o)},[b,v,m,y,h,o]);return(0,i.jsx)(`time`,{className:e.t(`time ago`,f),dateTime:v?.toISOString(),title:u?b??void 0:void 0,...p,children:x})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=MTimeAgo-DWwXs48z.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MTimeAgo-
|
|
1
|
+
{"version":3,"file":"MTimeAgo-DWwXs48z.cjs","names":[],"sources":["../src/components/display/MTimeAgo/MTimeAgo.tsx"],"sourcesContent":["import {useEffect, useMemo, useState} from 'react'\nimport type {MTimeAgoProps, MTimeAgoUpdate} from './MTimeAgo.types'\nimport {cn} from '../../../utils/cn'\nimport {useDocumentLocale} from '../../../utils/locale'\nimport {\n formatAbsoluteTime,\n formatRelativeTime,\n getAutoUpdateInterval,\n parseRelativeThreshold,\n toDate,\n} from '../../../utils/relativeTime'\nimport './MTimeAgo.css'\n\nfunction getUpdateInterval(update: MTimeAgoUpdate, value: Date | string | number, now: number): number | null {\n if (update === 'none') return null\n if (update === 'minute') return 60 * 1000\n if (update === 'hour') return 60 * 60 * 1000\n if (update === 'day') return 24 * 60 * 60 * 1000\n return getAutoUpdateInterval(value, now)\n}\n\nexport function MTimeAgo({\n value,\n locale: localeOverride,\n maxRelative,\n fallbackFormat = 'date',\n titleAbsolute = true,\n update = 'auto',\n className,\n ...rest\n}: MTimeAgoProps) {\n const locale = useDocumentLocale(localeOverride)\n const [now, setNow] = useState(() => Date.now())\n const interval = useMemo(() => getUpdateInterval(update, value, now), [now, update, value])\n\n useEffect(() => {\n if (!interval) return\n\n const id = window.setInterval(() => setNow(Date.now()), interval)\n return () => window.clearInterval(id)\n }, [interval])\n\n const date = useMemo(() => toDate(value), [value])\n const maxRelativeMs = useMemo(() => parseRelativeThreshold(maxRelative), [maxRelative])\n\n const absolute = useMemo(() => formatAbsoluteTime(value, locale, fallbackFormat), [value, locale, fallbackFormat])\n\n const content = useMemo(() => {\n if (!date) return String(value)\n\n const diff = Math.abs(date.getTime() - now)\n if (maxRelativeMs != null && diff > maxRelativeMs) {\n return absolute ?? String(value)\n }\n\n return formatRelativeTime(date, {locale, now}) ?? absolute ?? String(value)\n }, [absolute, date, locale, maxRelativeMs, now, value])\n\n return (\n <time\n className={cn('time ago', className)}\n dateTime={date?.toISOString()}\n title={titleAbsolute ? (absolute ?? undefined) : undefined}\n {...rest}\n >\n {content}\n </time>\n )\n}\n"],"mappings":"uMAaA,SAAS,EAAkB,EAAwB,EAA+B,EAA4B,CAK1G,OAJI,IAAW,OAAe,KAC1B,IAAW,SAAiB,GAAK,IACjC,IAAW,OAAe,KAAU,IACpC,IAAW,MAAc,KAAU,GAAK,IACrC,EAAA,EAAsB,EAAO,EAAI,CAG5C,SAAgB,EAAS,CACrB,QACA,OAAQ,EACR,cACA,iBAAiB,OACjB,gBAAgB,GAChB,SAAS,OACT,YACA,GAAG,GACW,CACd,IAAM,EAAS,EAAA,EAAkB,EAAe,CAC1C,CAAC,EAAK,IAAA,EAAA,EAAA,cAAyB,KAAK,KAAK,CAAC,CAC1C,GAAA,EAAA,EAAA,aAAyB,EAAkB,EAAQ,EAAO,EAAI,CAAE,CAAC,EAAK,EAAQ,EAAM,CAAC,EAE3F,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,EAAU,OAEf,IAAM,EAAK,OAAO,gBAAkB,EAAO,KAAK,KAAK,CAAC,CAAE,EAAS,CACjE,UAAa,OAAO,cAAc,EAAG,EACtC,CAAC,EAAS,CAAC,CAEd,IAAM,GAAA,EAAA,EAAA,aAAqB,EAAA,EAAO,EAAM,CAAE,CAAC,EAAM,CAAC,CAC5C,GAAA,EAAA,EAAA,aAA8B,EAAA,EAAuB,EAAY,CAAE,CAAC,EAAY,CAAC,CAEjF,GAAA,EAAA,EAAA,aAAyB,EAAA,EAAmB,EAAO,EAAQ,EAAe,CAAE,CAAC,EAAO,EAAQ,EAAe,CAAC,CAE5G,GAAA,EAAA,EAAA,aAAwB,CAC1B,GAAI,CAAC,EAAM,OAAO,OAAO,EAAM,CAE/B,IAAM,EAAO,KAAK,IAAI,EAAK,SAAS,CAAG,EAAI,CAK3C,OAJI,GAAiB,MAAQ,EAAO,EACzB,GAAY,OAAO,EAAM,CAG7B,EAAA,EAAmB,EAAM,CAAC,SAAQ,MAAI,CAAC,EAAI,GAAY,OAAO,EAAM,EAC5E,CAAC,EAAU,EAAM,EAAQ,EAAe,EAAK,EAAM,CAAC,CAEvD,OACI,EAAA,EAAA,KAAC,OAAD,CACI,UAAW,EAAA,EAAG,WAAY,EAAU,CACpC,SAAU,GAAM,aAAa,CAC7B,MAAO,EAAiB,GAAY,IAAA,GAAa,IAAA,GACjD,GAAI,WAEH,EACE,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
require(`./chunk-350yNsax.cjs`);const e=require(`./cn-DYFxgzi2.cjs`),t=require(`./useInteractionEffect-CYHGHV1e.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.forwardRef)(function({checked:n,defaultChecked:i,name:a,id:o,disabled:s=!1,size:c=`md`,color:l=`primary`,label:u,labelPosition:d=`right`,onChange:f,clickEffect:p=`ripple`,rippleColor:m,className:h,style:g},_){let{effectClassName:v,effectLayer:y,handlePointerDown:b,triggerEffect:x}=t.t({effect:p,disabled:s,centered:!0,color:m});return(0,r.jsxs)(`label`,{className:e.t(`toggle`,c,d===`left`&&`label-left`,s&&`disabled`,h),style:g,children:[(0,r.jsxs)(`span`,{className:e.t(`track`,`color-${l}`,v),onPointerDown:b,children:[y,(0,r.jsx)(`input`,{ref:_,type:`checkbox`,checked:n,defaultChecked:i,name:a,id:o,disabled:s,onChange:f,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&x(e.currentTarget.parentElement)},className:`input`,role:`switch`,"aria-checked":n}),(0,r.jsx)(`span`,{className:`knob`})]}),u&&(0,r.jsx)(`span`,{className:`label-text`,children:u})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=MToggle-
|
|
2
|
+
//# sourceMappingURL=MToggle-Cm3f6gm4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MToggle-
|
|
1
|
+
{"version":3,"file":"MToggle-Cm3f6gm4.cjs","names":[],"sources":["../src/components/controls/MToggle/MToggle.tsx"],"sourcesContent":["import {forwardRef} from 'react'\nimport type {MToggleProps} from './MToggle.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MToggle.css'\n\n// Render a switch-style boolean control with the same API shape as MCheckbox.\nexport const MToggle = forwardRef<HTMLInputElement, MToggleProps>(function MToggle(\n {\n checked,\n defaultChecked,\n name,\n id,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <label\n className={cn('toggle', size, labelPosition === 'left' && 'label-left', disabled && 'disabled', className)}\n style={style}\n >\n <span className={cn('track', `color-${color}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\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 role=\"switch\"\n aria-checked={checked}\n />\n <span className=\"knob\" />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n"],"mappings":"4KAOA,IAAa,GAAA,EAAA,EAAA,YAAqD,SAC9D,CACI,UACA,iBACA,OACA,KACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,GAAM,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,CAEF,OACI,EAAA,EAAA,MAAC,QAAD,CACI,UAAW,EAAA,EAAG,SAAU,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAY,EAAU,CACnG,iBAFX,EAII,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,EAAG,QAAS,SAAS,IAAS,EAAgB,CAAE,cAAe,WAAhF,CACK,GACD,EAAA,EAAA,KAAC,QAAD,CACS,MACL,KAAK,WACI,UACO,iBACV,OACF,KACM,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,KAAK,SACL,eAAc,EAChB,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,OAAS,CAAA,CACtB,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAa,CAAA,CACjD,IAEd"}
|