@banzamel/mineralui 1.4.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-B0uPeciT.js → MAvatar-CnBVN71i.js} +5 -5
- package/dist/{MAvatar-B0uPeciT.js.map → MAvatar-CnBVN71i.js.map} +1 -1
- package/dist/MAvatar-DGEQqUss.cjs +2 -0
- package/dist/{MAvatar-DlFdIi6R.cjs.map → MAvatar-DGEQqUss.cjs.map} +1 -1
- package/dist/{MBadge-5PivwWxe.js → MBadge-C_vK2JdM.js} +3 -3
- package/dist/{MBadge-5PivwWxe.js.map → MBadge-C_vK2JdM.js.map} +1 -1
- package/dist/MBadge-DcIPfPH1.cjs +2 -0
- package/dist/{MBadge-DNqOptef.cjs.map → MBadge-DcIPfPH1.cjs.map} +1 -1
- package/dist/{MButton-Bfe4iq51.js → MButton-BpSZUhpY.js} +4 -4
- package/dist/{MButton-Bfe4iq51.js.map → MButton-BpSZUhpY.js.map} +1 -1
- package/dist/MButton-LUNWBBOV.cjs +2 -0
- package/dist/{MButton-CtEFKjYZ.cjs.map → MButton-LUNWBBOV.cjs.map} +1 -1
- package/dist/{MCheckbox-B7SpcD4H.js → MCheckbox-CNz73bQC.js} +3 -3
- package/dist/{MCheckbox-B7SpcD4H.js.map → MCheckbox-CNz73bQC.js.map} +1 -1
- package/dist/MCheckbox-PzknJeM2.cjs +2 -0
- package/dist/{MCheckbox-Bea3orrs.cjs.map → MCheckbox-PzknJeM2.cjs.map} +1 -1
- package/dist/{MDataTable-D0ONRmcC.js → MDataTable-AH5Tnirs.js} +7 -7
- package/dist/{MDataTable-D0ONRmcC.js.map → MDataTable-AH5Tnirs.js.map} +1 -1
- package/dist/MDataTable-Bq6UoNJX.cjs +2 -0
- package/dist/{MDataTable-CVwnVouZ.cjs.map → MDataTable-Bq6UoNJX.cjs.map} +1 -1
- package/dist/{MDrawer-C7rLXC_O.js → MDrawer-C08QXXC4.js} +4 -4
- package/dist/{MDrawer-C7rLXC_O.js.map → MDrawer-C08QXXC4.js.map} +1 -1
- package/dist/MDrawer-DRqMsjMt.cjs +2 -0
- package/dist/{MDrawer-DF42-zF2.cjs.map → MDrawer-DRqMsjMt.cjs.map} +1 -1
- package/dist/{MDropdownMenu-CxBhYxQb.js → MDropdownMenu-CMnBt-wO.js} +4 -4
- package/dist/{MDropdownMenu-CxBhYxQb.js.map → MDropdownMenu-CMnBt-wO.js.map} +1 -1
- package/dist/MDropdownMenu-CymCQqyP.cjs +2 -0
- package/dist/{MDropdownMenu-X7ywPqth.cjs.map → MDropdownMenu-CymCQqyP.cjs.map} +1 -1
- package/dist/MGalleryIllustration-BHtRFizZ.cjs +2 -0
- package/dist/{MGalleryIllustration-CeOMHzpt.cjs.map → MGalleryIllustration-BHtRFizZ.cjs.map} +1 -1
- package/dist/{MGalleryIllustration-D7CVMSwO.js → MGalleryIllustration-DhOtXwhC.js} +2 -2
- package/dist/{MGalleryIllustration-D7CVMSwO.js.map → MGalleryIllustration-DhOtXwhC.js.map} +1 -1
- package/dist/{MHeading-DBS5Kytw.js → MHeading-BvpWyvjj.js} +4 -4
- package/dist/{MHeading-DBS5Kytw.js.map → MHeading-BvpWyvjj.js.map} +1 -1
- package/dist/MHeading-DHT1gORD.cjs +2 -0
- package/dist/{MHeading-XCMJNMYB.cjs.map → MHeading-DHT1gORD.cjs.map} +1 -1
- package/dist/{MI18nProvider-VH14CI8u.js → MI18nProvider-BRZxEMqL.js} +1 -1
- package/dist/{MI18nProvider-VH14CI8u.js.map → MI18nProvider-BRZxEMqL.js.map} +1 -1
- package/dist/MI18nProvider-Bml7Vs2-.cjs +2 -0
- package/dist/{MI18nProvider-4ji0oN3U.cjs.map → MI18nProvider-Bml7Vs2-.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-DDZ71Qqn.cjs +2 -0
- package/dist/{MInput-CpEJQ9SV.cjs.map → MInput-DDZ71Qqn.cjs.map} +1 -1
- package/dist/{MInput-iKIeefss.js → MInput-l3MY93Su.js} +6 -6
- package/dist/{MInput-iKIeefss.js.map → MInput-l3MY93Su.js.map} +1 -1
- package/dist/{MInputCVC-BpGTqkQx.js → MInputCVC-CN91scmw.js} +5 -5
- package/dist/{MInputCVC-BpGTqkQx.js.map → MInputCVC-CN91scmw.js.map} +1 -1
- package/dist/MInputCVC-Sp2uZ5aO.cjs +2 -0
- package/dist/{MInputCVC-BuGwm7fv.cjs.map → MInputCVC-Sp2uZ5aO.cjs.map} +1 -1
- package/dist/MInputSearch-30o4bcDC.cjs +2 -0
- package/dist/{MInputSearch-B-Lqr-QG.cjs.map → MInputSearch-30o4bcDC.cjs.map} +1 -1
- package/dist/{MInputSearch-y3_ihYRj.js → MInputSearch-CdPfJ4v_.js} +4 -4
- package/dist/{MInputSearch-y3_ihYRj.js.map → MInputSearch-CdPfJ4v_.js.map} +1 -1
- package/dist/{MLink-tcICJfPn.js → MLink-CRUWGES-.js} +3 -3
- package/dist/{MLink-tcICJfPn.js.map → MLink-CRUWGES-.js.map} +1 -1
- package/dist/MLink-U_wAUuz1.cjs +2 -0
- package/dist/{MLink-7hndQLKM.cjs.map → MLink-U_wAUuz1.cjs.map} +1 -1
- package/dist/{MModal-___Rw8YK.js → MModal-CHSo5gKE.js} +3 -3
- package/dist/{MModal-___Rw8YK.js.map → MModal-CHSo5gKE.js.map} +1 -1
- package/dist/MModal-Czy-rR--.cjs +2 -0
- package/dist/{MModal-DlnT3BBp.cjs.map → MModal-Czy-rR--.cjs.map} +1 -1
- package/dist/MPagination-73z0sQvf.cjs +2 -0
- package/dist/{MPagination-CTtr_L-Q.cjs.map → MPagination-73z0sQvf.cjs.map} +1 -1
- package/dist/{MPagination-CzJGko3i.js → MPagination-DdT1uNzD.js} +8 -8
- package/dist/{MPagination-CzJGko3i.js.map → MPagination-DdT1uNzD.js.map} +1 -1
- package/dist/{MPopover-BC9C5967.js → MPopover-3tjz5lKh.js} +2 -2
- package/dist/{MPopover-BC9C5967.js.map → MPopover-3tjz5lKh.js.map} +1 -1
- package/dist/MPopover-BW23_1Dl.cjs +2 -0
- package/dist/{MPopover-C3-fGAke.cjs.map → MPopover-BW23_1Dl.cjs.map} +1 -1
- package/dist/MPortal-DE3pL2Xl.cjs +2 -0
- package/dist/{MPortal-PyRKsZxc.cjs.map → MPortal-DE3pL2Xl.cjs.map} +1 -1
- package/dist/MQrCode-CMoru4dD.cjs +2 -0
- package/dist/{MQrCode-Cha7657D.cjs.map → MQrCode-CMoru4dD.cjs.map} +1 -1
- package/dist/{MQrCode-B7jbpcUj.js → MQrCode-DK5-SBhN.js} +12 -12
- package/dist/{MQrCode-B7jbpcUj.js.map → MQrCode-DK5-SBhN.js.map} +1 -1
- package/dist/MSkeleton-B0Mxe3L7.cjs +2 -0
- package/dist/{MSkeleton-BAkzwxOS.cjs.map → MSkeleton-B0Mxe3L7.cjs.map} +1 -1
- package/dist/{MSkeleton-Cwa-JRxo.js → MSkeleton-Bqq_XJn8.js} +4 -4
- package/dist/{MSkeleton-Cwa-JRxo.js.map → MSkeleton-Bqq_XJn8.js.map} +1 -1
- package/dist/{MSlider-CqrusKJQ.js → MSlider-ByVuoFFc.js} +2 -2
- package/dist/{MSlider-CqrusKJQ.js.map → MSlider-ByVuoFFc.js.map} +1 -1
- package/dist/MSlider-sH2Vt9Lw.cjs +2 -0
- package/dist/{MSlider-BCMJkvcA.cjs.map → MSlider-sH2Vt9Lw.cjs.map} +1 -1
- package/dist/MSparkline-B-ld7hJu.cjs +2 -0
- package/dist/{MSparkline-BOaNmbeB.cjs.map → MSparkline-B-ld7hJu.cjs.map} +1 -1
- package/dist/{MSparkline-Cb_EwR-E.js → MSparkline-DbtdM0W6.js} +2 -2
- package/dist/{MSparkline-Cb_EwR-E.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-CHvUFOlt.js → MSubText-C9VizSn9.js} +4 -4
- package/dist/{MSubText-CHvUFOlt.js.map → MSubText-C9VizSn9.js.map} +1 -1
- package/dist/MSubText-DP9WYlwz.cjs +2 -0
- package/dist/{MSubText-Dg3PKnwI.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-DXqkBvqx.cjs +2 -0
- package/dist/{MTag-BxoSuAOj.cjs.map → MTag-DXqkBvqx.cjs.map} +1 -1
- package/dist/{MTag-CjaE6vPj.js → MTag-N-tYZ915.js} +5 -5
- package/dist/{MTag-CjaE6vPj.js.map → MTag-N-tYZ915.js.map} +1 -1
- package/dist/{MText-hHMgVJ4-.js → MText-B7_HjPym.js} +3 -3
- package/dist/{MText-hHMgVJ4-.js.map → MText-B7_HjPym.js.map} +1 -1
- package/dist/MText-COzub3y4.cjs +2 -0
- package/dist/{MText-CWHwmjs8.cjs.map → MText-COzub3y4.cjs.map} +1 -1
- package/dist/{MTimeAgo-xxl53mct.js → MTimeAgo-D1G2yovw.js} +3 -3
- package/dist/{MTimeAgo-xxl53mct.js.map → MTimeAgo-D1G2yovw.js.map} +1 -1
- package/dist/MTimeAgo-DWwXs48z.cjs +2 -0
- package/dist/{MTimeAgo-91_ndjxU.cjs.map → MTimeAgo-DWwXs48z.cjs.map} +1 -1
- package/dist/MToggle-Cm3f6gm4.cjs +2 -0
- package/dist/{MToggle-CsGS_W3X.cjs.map → MToggle-Cm3f6gm4.cjs.map} +1 -1
- package/dist/{MToggle-B6emKoKq.js → MToggle-D0DrQirB.js} +3 -3
- package/dist/{MToggle-B6emKoKq.js.map → MToggle-D0DrQirB.js.map} +1 -1
- package/dist/MTooltip-C3PeHgV3.cjs +2 -0
- package/dist/{MTooltip-CNXoyQEN.cjs.map → MTooltip-C3PeHgV3.cjs.map} +1 -1
- package/dist/{MTooltip-UYOjDBOu.js → MTooltip-w6Aj044c.js} +2 -2
- package/dist/{MTooltip-UYOjDBOu.js.map → MTooltip-w6Aj044c.js.map} +1 -1
- package/dist/cards-B75QM9JW.cjs +2 -0
- package/dist/{cards-CTegCxIA.cjs.map → cards-B75QM9JW.cjs.map} +1 -1
- package/dist/{cards-1--Cy-KV.js → cards-BKi8MxNx.js} +272 -272
- package/dist/{cards-1--Cy-KV.js.map → cards-BKi8MxNx.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/chunk-350yNsax.cjs +1 -0
- package/dist/chunk-efA98nb6.js +13 -0
- package/dist/{cn-YER3QsV1.js → cn-CUSXNnjF.js} +1 -1
- package/dist/{cn-YER3QsV1.js.map → cn-CUSXNnjF.js.map} +1 -1
- package/dist/{cn-CU5TNITO.cjs → cn-DYFxgzi2.cjs} +1 -1
- package/dist/{cn-CU5TNITO.cjs.map → cn-DYFxgzi2.cjs.map} +1 -1
- package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +2 -0
- package/dist/components/display/MCodeBlock/MCodeBlock.types.d.ts +15 -0
- package/dist/components/display/MCodeBlock/index.d.ts +2 -0
- 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 +4 -0
- package/dist/components/layout/MGrid/MGrid.d.ts +7 -3
- package/dist/components/layout/MGrid/MGrid.types.d.ts +1 -2
- 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-B7wV_kjJ.cjs +2 -0
- package/dist/{controls-CAab2nyg.cjs.map → controls-B7wV_kjJ.cjs.map} +1 -1
- package/dist/{controls-C0qr_vMu.js → controls-BEi-0mf4.js} +6 -6
- package/dist/{controls-C0qr_vMu.js.map → controls-BEi-0mf4.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/{creditCards-ljs044xt.cjs → creditCards-198KJN0s.cjs} +1 -1
- package/dist/{creditCards-ljs044xt.cjs.map → creditCards-198KJN0s.cjs.map} +1 -1
- package/dist/{creditCards-CCysEwry.js → creditCards-BB11bW7D.js} +1 -1
- package/dist/{creditCards-CCysEwry.js.map → creditCards-BB11bW7D.js.map} +1 -1
- package/dist/data-DHkccnSN.cjs +2 -0
- package/dist/{data-Uy_XSs32.cjs.map → data-DHkccnSN.cjs.map} +1 -1
- package/dist/{data-z3Uc9FSI.js → data-DKrj_Hx6.js} +738 -738
- package/dist/{data-z3Uc9FSI.js.map → data-DKrj_Hx6.js.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/{dateUtils-CUY6CRCf.js → dateUtils-Ben8lfvV.js} +1 -1
- package/dist/{dateUtils-CUY6CRCf.js.map → dateUtils-Ben8lfvV.js.map} +1 -1
- package/dist/{dateUtils-Dq1vaA-D.cjs → dateUtils-vT9rOf1J.cjs} +1 -1
- package/dist/{dateUtils-Dq1vaA-D.cjs.map → dateUtils-vT9rOf1J.cjs.map} +1 -1
- package/dist/display-BoXtzMg5.cjs +3 -0
- package/dist/display-BoXtzMg5.cjs.map +1 -0
- package/dist/display-Xqa2Qns3.js +685 -0
- package/dist/display-Xqa2Qns3.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +4 -4
- package/dist/{dropdowns-FQlxsOYd.js → dropdowns-BKnXb1XJ.js} +63 -63
- package/dist/{dropdowns-FQlxsOYd.js.map → dropdowns-BKnXb1XJ.js.map} +1 -1
- package/dist/dropdowns-cRrLY8FG.cjs +2 -0
- package/dist/{dropdowns-CzqyYQwR.cjs.map → dropdowns-cRrLY8FG.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-xtBDPbzP.js → feedback-CIXmm0XT.js} +28 -28
- package/dist/{feedback-xtBDPbzP.js.map → feedback-CIXmm0XT.js.map} +1 -1
- package/dist/feedback-DiMptPJy.cjs +2 -0
- package/dist/{feedback-C9z4MZ-V.cjs.map → feedback-DiMptPJy.cjs.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -5
- package/dist/form-DABPazeN.cjs +2 -0
- package/dist/{form-6JwrowsS.cjs.map → form-DABPazeN.cjs.map} +1 -1
- package/dist/{form-CFWADsyf.js → form-DZJxDW59.js} +2 -2
- package/dist/{form-CFWADsyf.js.map → form-DZJxDW59.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formatters-CNjg_h7-.cjs → formatters-CauWlsnM.cjs} +1 -1
- package/dist/{formatters-CNjg_h7-.cjs.map → formatters-CauWlsnM.cjs.map} +1 -1
- package/dist/{formatters-T0vvjMtB.js → formatters-Doqdu_w1.js} +1 -1
- package/dist/{formatters-T0vvjMtB.js.map → formatters-Doqdu_w1.js.map} +1 -1
- package/dist/frameworkTexts-DPX5T2x3.cjs +2 -0
- package/dist/{frameworkTexts-C_9KZK_A.cjs.map → frameworkTexts-DPX5T2x3.cjs.map} +1 -1
- package/dist/{frameworkTexts-B6oE8pMk.js → frameworkTexts-DzujbRBe.js} +2 -2
- package/dist/{frameworkTexts-B6oE8pMk.js.map → frameworkTexts-DzujbRBe.js.map} +1 -1
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.js +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-D5DK-J2C.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/illustrations.cjs +1 -1
- package/dist/illustrations.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +57 -58
- package/dist/{inputs-gB1ET0dG.js → inputs-CmpB6eyB.js} +163 -163
- package/dist/{inputs-gB1ET0dG.js.map → inputs-CmpB6eyB.js.map} +1 -1
- package/dist/inputs-EZBwxk7j.cjs +2 -0
- package/dist/{inputs-z84nU7A8.cjs.map → inputs-EZBwxk7j.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/{layout-DHVIqY-O.js → layout-D72Y7VcW.js} +309 -277
- package/dist/layout-D72Y7VcW.js.map +1 -0
- 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/{licensing-CwzqhHH9.js → licensing-Cbpi1toF.js} +1 -1
- package/dist/{licensing-CwzqhHH9.js.map → licensing-Cbpi1toF.js.map} +1 -1
- package/dist/licensing-JchPJhVY.cjs +2 -0
- package/dist/{licensing-BXFauUj_.cjs.map → licensing-JchPJhVY.cjs.map} +1 -1
- package/dist/locale-DIwV_GfN.cjs +2 -0
- package/dist/{locale-BltrWJtd.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-_zOs7GGk.js → overlays-51pBvlf9.js} +6 -6
- package/dist/{overlays-_zOs7GGk.js.map → overlays-51pBvlf9.js.map} +1 -1
- package/dist/overlays-8htlWp07.cjs +2 -0
- package/dist/{overlays-7HBAQneO.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 +1 -1
- package/dist/prism-bash-DSVvpDwH.cjs +2 -0
- package/dist/prism-bash-DSVvpDwH.cjs.map +1 -0
- package/dist/prism-bash-GQKgVScr.js +177 -0
- package/dist/prism-bash-GQKgVScr.js.map +1 -0
- package/dist/prism-clike-D3g4BfTi.js +30 -0
- package/dist/prism-clike-D3g4BfTi.js.map +1 -0
- package/dist/prism-clike-wkj9YeLx.cjs +2 -0
- package/dist/prism-clike-wkj9YeLx.cjs.map +1 -0
- package/dist/prism-core-DV2K1D4T.js +299 -0
- package/dist/prism-core-DV2K1D4T.js.map +1 -0
- package/dist/prism-core-LzKRJzwD.cjs +2 -0
- package/dist/prism-core-LzKRJzwD.cjs.map +1 -0
- package/dist/prism-css-4cDqr1x6.js +57 -0
- package/dist/prism-css-4cDqr1x6.js.map +1 -0
- package/dist/prism-css-BZZ6kh29.cjs +2 -0
- package/dist/prism-css-BZZ6kh29.cjs.map +1 -0
- package/dist/prism-javascript-CMvYmmlX.cjs +2 -0
- package/dist/prism-javascript-CMvYmmlX.cjs.map +1 -0
- package/dist/prism-javascript-zm5iB3gQ.js +103 -0
- package/dist/prism-javascript-zm5iB3gQ.js.map +1 -0
- package/dist/prism-json-BJI5f6tN.js +27 -0
- package/dist/prism-json-BJI5f6tN.js.map +1 -0
- package/dist/prism-json-D_zmeAHJ.cjs +2 -0
- package/dist/prism-json-D_zmeAHJ.cjs.map +1 -0
- package/dist/prism-jsx-Byyxdkmw.cjs +2 -0
- package/dist/prism-jsx-Byyxdkmw.cjs.map +1 -0
- package/dist/prism-jsx-Dk33B94U.js +48 -0
- package/dist/prism-jsx-Dk33B94U.js.map +1 -0
- package/dist/prism-markup-7d9NWx3c.cjs +2 -0
- package/dist/prism-markup-7d9NWx3c.cjs.map +1 -0
- package/dist/prism-markup-Cj0PLFM8.js +118 -0
- package/dist/prism-markup-Cj0PLFM8.js.map +1 -0
- package/dist/prism-markup-templating-BM_XViUy.cjs +2 -0
- package/dist/prism-markup-templating-BM_XViUy.cjs.map +1 -0
- package/dist/prism-markup-templating-Dc6p1a24.js +41 -0
- package/dist/prism-markup-templating-Dc6p1a24.js.map +1 -0
- package/dist/prism-php-CGE55yTu.js +279 -0
- package/dist/prism-php-CGE55yTu.js.map +1 -0
- package/dist/prism-php-C_g4bp0C.cjs +2 -0
- package/dist/prism-php-C_g4bp0C.cjs.map +1 -0
- package/dist/prism-tsx-Buubi-AJ.cjs +2 -0
- package/dist/prism-tsx-Buubi-AJ.cjs.map +1 -0
- package/dist/prism-tsx-CueLxs1r.js +10 -0
- package/dist/prism-tsx-CueLxs1r.js.map +1 -0
- package/dist/prism-typescript-Cj7wU8T7.cjs +2 -0
- package/dist/prism-typescript-Cj7wU8T7.cjs.map +1 -0
- package/dist/prism-typescript-DC-urVo-.js +40 -0
- package/dist/prism-typescript-DC-urVo-.js.map +1 -0
- package/dist/{relativeTime-Cr-NVzij.js → relativeTime-BqCuaBqb.js} +1 -1
- package/dist/{relativeTime-Cr-NVzij.js.map → relativeTime-BqCuaBqb.js.map} +1 -1
- package/dist/{relativeTime-DgYBUaVm.cjs → relativeTime-DUbW4O44.cjs} +1 -1
- package/dist/{relativeTime-DgYBUaVm.cjs.map → relativeTime-DUbW4O44.cjs.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/theme/responsive.d.ts +1 -1
- package/dist/theme-Bnwe-wvr.cjs +2 -0
- package/dist/{theme-B9iSuxqh.cjs.map → theme-Bnwe-wvr.cjs.map} +1 -1
- package/dist/{theme-XRUdoLqw.js → theme-KYwqDZxJ.js} +2 -2
- package/dist/{theme-XRUdoLqw.js.map → theme-KYwqDZxJ.js.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/typography-D1s-QFlb.cjs +2 -0
- package/dist/{typography-D0dyVQlP.cjs.map → typography-D1s-QFlb.cjs.map} +1 -1
- package/dist/{typography-Db_SHI0H.js → typography-FCWA0UOB.js} +3 -3
- package/dist/{typography-Db_SHI0H.js.map → typography-FCWA0UOB.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +5 -5
- package/dist/{useGhostText-DG0bzcao.js → useGhostText-BJZKdZpw.js} +1 -1
- package/dist/{useGhostText-DG0bzcao.js.map → useGhostText-BJZKdZpw.js.map} +1 -1
- package/dist/useGhostText-D1DbIs-n.cjs +2 -0
- package/dist/{useGhostText-QMdO_HK6.cjs.map → useGhostText-D1DbIs-n.cjs.map} +1 -1
- package/dist/useInteractionEffect-CYHGHV1e.cjs +2 -0
- package/dist/{useInteractionEffect-DnEfbCrX.cjs.map → useInteractionEffect-CYHGHV1e.cjs.map} +1 -1
- package/dist/{useInteractionEffect-DtpbVd77.js → useInteractionEffect-ClkU3aH5.js} +1 -1
- package/dist/{useInteractionEffect-DtpbVd77.js.map → useInteractionEffect-ClkU3aH5.js.map} +1 -1
- package/dist/useKeyboardNav-BoibrRUF.cjs +2 -0
- package/dist/{useKeyboardNav-BrODLJaL.cjs.map → useKeyboardNav-BoibrRUF.cjs.map} +1 -1
- package/dist/{useKeyboardNav-iEXOdEMB.js → useKeyboardNav-CBOdeTFM.js} +1 -1
- package/dist/{useKeyboardNav-iEXOdEMB.js.map → useKeyboardNav-CBOdeTFM.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.entry.d.ts +0 -2
- package/dist/utils.js +11 -12
- package/dist/{validators-BeNTD8mf.cjs → validators-D4aTeaH0.cjs} +1 -1
- package/dist/{validators-BeNTD8mf.cjs.map → validators-D4aTeaH0.cjs.map} +1 -1
- package/dist/{validators-H8tNxb8O.js → validators-YZyyyLvE.js} +1 -1
- package/dist/{validators-H8tNxb8O.js.map → validators-YZyyyLvE.js.map} +1 -1
- package/package.json +4 -1
- package/dist/MAvatar-DlFdIi6R.cjs +0 -2
- package/dist/MBadge-DNqOptef.cjs +0 -2
- package/dist/MButton-CtEFKjYZ.cjs +0 -2
- package/dist/MCheckbox-Bea3orrs.cjs +0 -2
- package/dist/MDataTable-CVwnVouZ.cjs +0 -2
- package/dist/MDrawer-DF42-zF2.cjs +0 -2
- package/dist/MDropdownMenu-X7ywPqth.cjs +0 -2
- package/dist/MGalleryIllustration-CeOMHzpt.cjs +0 -2
- package/dist/MHeading-XCMJNMYB.cjs +0 -2
- package/dist/MI18nProvider-4ji0oN3U.cjs +0 -2
- package/dist/MImage-2Xztd_N6.cjs +0 -2
- package/dist/MImage-2Xztd_N6.cjs.map +0 -1
- package/dist/MImage-UmiZwzDJ.js +0 -53
- package/dist/MImage-UmiZwzDJ.js.map +0 -1
- package/dist/MInline-BYsbmfkz.js +0 -41
- package/dist/MInline-BYsbmfkz.js.map +0 -1
- package/dist/MInline-oCvhfJwM.cjs +0 -2
- package/dist/MInline-oCvhfJwM.cjs.map +0 -1
- package/dist/MInput-CpEJQ9SV.cjs +0 -2
- package/dist/MInputCVC-BuGwm7fv.cjs +0 -2
- package/dist/MInputSearch-B-Lqr-QG.cjs +0 -2
- package/dist/MLink-7hndQLKM.cjs +0 -2
- package/dist/MModal-DlnT3BBp.cjs +0 -2
- package/dist/MPagination-CTtr_L-Q.cjs +0 -2
- package/dist/MPopover-C3-fGAke.cjs +0 -2
- package/dist/MPortal-PyRKsZxc.cjs +0 -2
- package/dist/MQrCode-Cha7657D.cjs +0 -2
- package/dist/MSkeleton-BAkzwxOS.cjs +0 -2
- package/dist/MSlider-BCMJkvcA.cjs +0 -2
- package/dist/MSparkline-BOaNmbeB.cjs +0 -2
- package/dist/MStack-Bp1x4woD.cjs +0 -2
- package/dist/MStack-Bp1x4woD.cjs.map +0 -1
- package/dist/MStack-DVOFZo1L.js +0 -41
- package/dist/MStack-DVOFZo1L.js.map +0 -1
- package/dist/MSubText-Dg3PKnwI.cjs +0 -2
- package/dist/MSurface-ClPdv7a4.cjs +0 -2
- package/dist/MSurface-ClPdv7a4.cjs.map +0 -1
- package/dist/MSurface-FEfWBJFx.js +0 -41
- package/dist/MSurface-FEfWBJFx.js.map +0 -1
- package/dist/MTag-BxoSuAOj.cjs +0 -2
- package/dist/MText-CWHwmjs8.cjs +0 -2
- package/dist/MTimeAgo-91_ndjxU.cjs +0 -2
- package/dist/MToggle-CsGS_W3X.cjs +0 -2
- package/dist/MTooltip-CNXoyQEN.cjs +0 -2
- package/dist/cards-CTegCxIA.cjs +0 -2
- package/dist/controls-CAab2nyg.cjs +0 -2
- package/dist/data-Uy_XSs32.cjs +0 -2
- package/dist/display-GygMuO4c.js +0 -467
- package/dist/display-GygMuO4c.js.map +0 -1
- package/dist/display-WS1tupQD.cjs +0 -2
- package/dist/display-WS1tupQD.cjs.map +0 -1
- package/dist/dropdowns-CzqyYQwR.cjs +0 -2
- package/dist/feedback-C9z4MZ-V.cjs +0 -2
- package/dist/form-6JwrowsS.cjs +0 -2
- package/dist/frameworkTexts-C_9KZK_A.cjs +0 -2
- package/dist/icons-D5DK-J2C.js.map +0 -1
- package/dist/icons-Dv1T-cF4.cjs +0 -2
- package/dist/icons-Dv1T-cF4.cjs.map +0 -1
- package/dist/inputs-z84nU7A8.cjs +0 -2
- package/dist/layout-BIPyHdYN.cjs +0 -2
- package/dist/layout-BIPyHdYN.cjs.map +0 -1
- package/dist/layout-DHVIqY-O.js.map +0 -1
- package/dist/licensing-BXFauUj_.cjs +0 -2
- package/dist/locale-BltrWJtd.cjs +0 -2
- package/dist/media-Ch3Fyf4K.cjs +0 -2
- package/dist/media-Ch3Fyf4K.cjs.map +0 -1
- package/dist/media-DV58aS3j.js +0 -408
- package/dist/media-DV58aS3j.js.map +0 -1
- package/dist/overlays-7HBAQneO.cjs +0 -2
- package/dist/theme-B9iSuxqh.cjs +0 -2
- package/dist/typography-D0dyVQlP.cjs +0 -2
- package/dist/useGhostText-QMdO_HK6.cjs +0 -2
- package/dist/useInteractionEffect-DnEfbCrX.cjs +0 -2
- package/dist/useKeyboardNav-BrODLJaL.cjs +0 -2
- package/dist/useReveal-BJ59usiL.js +0 -23
- package/dist/useReveal-BJ59usiL.js.map +0 -1
- package/dist/useReveal-B_17PI89.cjs +0 -2
- package/dist/useReveal-B_17PI89.cjs.map +0 -1
- package/dist/utils/useReveal.d.ts +0 -2
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Modern React UI framework with a sharp admin aesthetic, theming system, and production-ready components.
|
|
4
4
|
|
|
5
5
|
- npm: `@banzamel/mineralui`
|
|
6
|
-
- version: `1.
|
|
6
|
+
- version: `1.6.0`
|
|
7
7
|
- peer dependencies: `react >= 19`, `react-dom >= 19`
|
|
8
8
|
- repository: `https://github.com/Banzamel/mineralui`
|
|
9
9
|
- homepage: `https://mineralui.io`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { r as e } from "./theme-
|
|
2
|
-
import { t } from "./cn-
|
|
3
|
-
import { t as n } from "./useInteractionEffect-
|
|
4
|
-
import { n as r } from "./MButton-
|
|
1
|
+
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
+
import { t } from "./cn-CUSXNnjF.js";
|
|
3
|
+
import { t as n } from "./useInteractionEffect-ClkU3aH5.js";
|
|
4
|
+
import { n as r } from "./MButton-BpSZUhpY.js";
|
|
5
5
|
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/media/MAvatar/MAvatar.tsx
|
|
7
7
|
function o(e, t) {
|
|
@@ -54,4 +54,4 @@ function s({ src: s, alt: c, name: l, initials: u, size: d = "md", shape: f = "c
|
|
|
54
54
|
//#endregion
|
|
55
55
|
export { s as t };
|
|
56
56
|
|
|
57
|
-
//# sourceMappingURL=MAvatar-
|
|
57
|
+
//# sourceMappingURL=MAvatar-CnBVN71i.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MAvatar-
|
|
1
|
+
{"version":3,"file":"MAvatar-CnBVN71i.js","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarProps} from './MAvatar.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing = false,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;AAQA,SAAS,EAAoB,GAAe,GAAmB;AAC3D,KAAI,EAAU,QAAO,EAAS,MAAM,GAAG,EAAE,CAAC,aAAa;AACvD,KAAI,CAAC,EAAM,QAAO;CAClB,IAAM,IAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ;AAGtD,QAFI,EAAM,WAAW,IAAU,MAC3B,EAAM,WAAW,IAAU,EAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,GAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa;;AAIvD,SAAgB,EAAQ,EACpB,QACA,QACA,SACA,aACA,UAAO,MACP,WAAQ,UACR,WACA,UACA,UACA,eACA,kBAAe,IACf,oBACA,gBACA,gBACA,cAAW,IACX,cACA,UACA,kBACA,GAAG,KACU;CACb,IAAM,IAAmB,EAAoB,GAAM,EAAS,EACtD,IAAgB,OAAO,EAAK,WAAY,cAAc,EAAK,SAAS,YAAY,EAAK,aAAa,KAAA,GAClG,EAAC,oBAAiB,gBAAa,yBAAqB,EAAsC;EAC5F,QAAQ,MAAgB,IAAgB,WAAW;EACnD,UAAU,CAAC,KAAiB;EAC5B,OAAO;EACV,CAAC,EACI,IACF,OAAO,KAAS,WACV;EACI,OAAO,GAAG,EAAK;EACf,QAAQ,GAAG,EAAK;EAChB,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D,GACD;EACI,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D;AAEX,QACI,kBAAC,QAAD;EACI,WAAW,EACP,UACA,OAAO,KAAS,YAAY,GAC5B,GACA,KAAY,oBACZ,KAAiB,CAAC,KAAY,eAC9B,GACA,CAAC,KAAY,KAAS,SAAS,KAC/B,EACH;EACD,OAAO;EACP,cAAY,IAAW,YAAa,KAAO,KAAQ;EACnD,gBAAgB,MAAU;AAEtB,GADA,EAAkB,EAAM,EACxB,IAAgB,EAAM;;EAE1B,GAAI,EAAe,EAAO;EAC1B,GAAI;YAlBR;GAoBK;GACA,EAAmB;IAAC;IAAO;IAAY;IAAa,CAAC;GACrD,IAAW,OAAO,IACf,kBAAC,OAAD;IAAU;IAAK,KAAK,KAAO,KAAQ;IAAI,WAAW;IAAW,CAAA,GAE7D,kBAAC,QAAD;IAAM,WAAW;cAAa;IAAwB,CAAA;GAEvD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./useInteractionEffect-CYHGHV1e.cjs`),r=require(`./MButton-LUNWBBOV.cjs`);let i=require(`react/jsx-runtime`);function a(e,t){if(t)return t.slice(0,2).toUpperCase();if(!e)return`?`;let n=e.trim().split(/\s+/).filter(Boolean);return n.length===0?`?`:n.length===1?n[0].slice(0,2).toUpperCase():`${n[0][0]}${n[1][0]}`.toUpperCase()}function o({src:o,alt:s,name:c,initials:l,size:u=`md`,shape:d=`circle`,hidden:f,color:p,badge:m,badgeColor:h,badgePulsing:g=!1,backgroundColor:_,clickEffect:v,rippleColor:y,skeleton:b=!1,className:x,style:S,onPointerDown:C,...w}){let T=a(c,l),E=typeof w.onClick==`function`||w.role===`button`||w.tabIndex!==void 0,{effectClassName:D,effectLayer:O,handlePointerDown:k}=n.t({effect:v??(E?`ripple`:`none`),disabled:!E||b,color:y}),A=typeof u==`number`?{width:`${u}px`,height:`${u}px`,...S,..._&&!b?{backgroundColor:_}:{}}:{...S,..._&&!b?{backgroundColor:_}:{}};return(0,i.jsxs)(`span`,{className:t.t(`avatar`,typeof u==`string`&&u,d,b&&`skeleton animate`,E&&!b&&`interactive`,D,!b&&p&&`color-${p}`,x),style:A,"aria-label":b?`Loading`:s??c??`MAvatar`,onPointerDown:e=>{k(e),C?.(e)},...e.r(f),...w,children:[O,r.n({badge:m,badgeColor:h,badgePulsing:g}),b?null:o?(0,i.jsx)(`img`,{src:o,alt:s??c??``,className:`image`}):(0,i.jsx)(`span`,{className:`fallback`,children:T})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=MAvatar-DGEQqUss.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MAvatar-
|
|
1
|
+
{"version":3,"file":"MAvatar-DGEQqUss.cjs","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarProps} from './MAvatar.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing = false,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":"+NAQA,SAAS,EAAoB,EAAe,EAAmB,CAC3D,GAAI,EAAU,OAAO,EAAS,MAAM,EAAG,EAAE,CAAC,aAAa,CACvD,GAAI,CAAC,EAAM,MAAO,IAClB,IAAM,EAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ,CAGtD,OAFI,EAAM,SAAW,EAAU,IAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,EAAE,CAAC,aAAa,CAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa,CAIvD,SAAgB,EAAQ,CACpB,MACA,MACA,OACA,WACA,OAAO,KACP,QAAQ,SACR,SACA,QACA,QACA,aACA,eAAe,GACf,kBACA,cACA,cACA,WAAW,GACX,YACA,QACA,gBACA,GAAG,GACU,CACb,IAAM,EAAmB,EAAoB,EAAM,EAAS,CACtD,EAAgB,OAAO,EAAK,SAAY,YAAc,EAAK,OAAS,UAAY,EAAK,WAAa,IAAA,GAClG,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAsC,CAC5F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CACI,EACF,OAAO,GAAS,SACV,CACI,MAAO,GAAG,EAAK,IACf,OAAQ,GAAG,EAAK,IAChB,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CACD,CACI,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CAEX,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,SACA,OAAO,GAAS,UAAY,EAC5B,EACA,GAAY,mBACZ,GAAiB,CAAC,GAAY,cAC9B,EACA,CAAC,GAAY,GAAS,SAAS,IAC/B,EACH,CACD,MAAO,EACP,aAAY,EAAW,UAAa,GAAO,GAAQ,UACnD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlBR,CAoBK,EACA,EAAA,EAAmB,CAAC,QAAO,aAAY,eAAa,CAAC,CACrD,EAAW,KAAO,GACf,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,IAAK,GAAO,GAAQ,GAAI,UAAW,QAAW,CAAA,EAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,oBAAa,EAAwB,CAAA,CAEvD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as e } from "./theme-
|
|
2
|
-
import { t } from "./cn-
|
|
1
|
+
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
+
import { t } from "./cn-CUSXNnjF.js";
|
|
3
3
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
4
|
//#region src/components/feedback/MBadge/MBadge.tsx
|
|
5
5
|
function i({ color: i = "primary", size: a = "md", hidden: o, pulsing: s = !1, rounded: c = !1, fullWidth: l = !1, icon: u, className: d, children: f, ...p }) {
|
|
@@ -16,4 +16,4 @@ function i({ color: i = "primary", size: a = "md", hidden: o, pulsing: s = !1, r
|
|
|
16
16
|
//#endregion
|
|
17
17
|
export { i as t };
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=MBadge-
|
|
19
|
+
//# sourceMappingURL=MBadge-C_vK2JdM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MBadge-
|
|
1
|
+
{"version":3,"file":"MBadge-C_vK2JdM.js","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx"],"sourcesContent":["import type {MBadgeProps} from './MBadge.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MBadge.css'\n\n// Render a compact semantic label for status and metadata.\nexport function MBadge({\n color = 'primary',\n size = 'md',\n hidden,\n pulsing = false,\n rounded = false,\n fullWidth = false,\n icon,\n className,\n children,\n ...rest\n}: MBadgeProps) {\n return (\n <span\n className={cn(\n 'badge',\n `color-${color}`,\n size,\n pulsing && 'pulsing',\n rounded && 'rounded',\n fullWidth && 'full-width',\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"badge-icon\">{icon}</span>}\n {children}\n </span>\n )\n}\n"],"mappings":";;;;AAMA,SAAgB,EAAO,EACnB,WAAQ,WACR,UAAO,MACP,WACA,aAAU,IACV,aAAU,IACV,eAAY,IACZ,SACA,cACA,aACA,GAAG,KACS;AACZ,QACI,kBAAC,QAAD;EACI,WAAW,EACP,SACA,SAAS,KACT,GACA,KAAW,WACX,KAAW,WACX,KAAa,cACb,EACH;EACD,GAAI,EAAe,EAAO;EAC1B,GAAI;YAXR,CAaK,KAAQ,kBAAC,QAAD;GAAM,WAAU;aAAc;GAAY,CAAA,EAClD,EACE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`);let n=require(`react/jsx-runtime`);function r({color:r=`primary`,size:i=`md`,hidden:a,pulsing:o=!1,rounded:s=!1,fullWidth:c=!1,icon:l,className:u,children:d,...f}){return(0,n.jsxs)(`span`,{className:t.t(`badge`,`color-${r}`,i,o&&`pulsing`,s&&`rounded`,c&&`full-width`,u),...e.r(a),...f,children:[l&&(0,n.jsx)(`span`,{className:`badge-icon`,children:l}),d]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
|
|
2
|
+
//# sourceMappingURL=MBadge-DcIPfPH1.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MBadge-
|
|
1
|
+
{"version":3,"file":"MBadge-DcIPfPH1.cjs","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx"],"sourcesContent":["import type {MBadgeProps} from './MBadge.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MBadge.css'\n\n// Render a compact semantic label for status and metadata.\nexport function MBadge({\n color = 'primary',\n size = 'md',\n hidden,\n pulsing = false,\n rounded = false,\n fullWidth = false,\n icon,\n className,\n children,\n ...rest\n}: MBadgeProps) {\n return (\n <span\n className={cn(\n 'badge',\n `color-${color}`,\n size,\n pulsing && 'pulsing',\n rounded && 'rounded',\n fullWidth && 'full-width',\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"badge-icon\">{icon}</span>}\n {children}\n </span>\n )\n}\n"],"mappings":"0IAMA,SAAgB,EAAO,CACnB,QAAQ,UACR,OAAO,KACP,SACA,UAAU,GACV,UAAU,GACV,YAAY,GACZ,OACA,YACA,WACA,GAAG,GACS,CACZ,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,QACA,SAAS,IACT,EACA,GAAW,UACX,GAAW,UACX,GAAa,aACb,EACH,CACD,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAXR,CAaK,IAAQ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAY,CAAA,CAClD,EACE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as e } from "./theme-
|
|
2
|
-
import { t } from "./cn-
|
|
3
|
-
import { t as n } from "./useInteractionEffect-
|
|
1
|
+
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
+
import { t } from "./cn-CUSXNnjF.js";
|
|
3
|
+
import { t as n } from "./useInteractionEffect-ClkU3aH5.js";
|
|
4
4
|
import { createContext as r, forwardRef as i, useContext as a } from "react";
|
|
5
5
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/controls/MButtonGroup/MButtonGroupContext.ts
|
|
@@ -110,4 +110,4 @@ var m = i(function({ component: r, to: i, href: a, variant: c, size: d, color: f
|
|
|
110
110
|
//#endregion
|
|
111
111
|
export { c as i, p as n, u as r, m as t };
|
|
112
112
|
|
|
113
|
-
//# sourceMappingURL=MButton-
|
|
113
|
+
//# sourceMappingURL=MButton-BpSZUhpY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MButton-
|
|
1
|
+
{"version":3,"file":"MButton-BpSZUhpY.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./useInteractionEffect-CYHGHV1e.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.createContext)(null);function o(){return(0,r.useContext)(a)}function s({color:e=`primary`,size:n=`md`,label:r=`Loading`,className:a,style:o,...s}){let c=typeof n==`number`?{width:`${n}px`,height:`${n}px`,...o}:o||{};return(0,i.jsx)(`span`,{className:t.t(`spinner`,typeof n==`string`&&n,e&&`color-${e}`,a),style:c,role:`status`,"aria-label":r,...s})}function c(e){return e!=null&&e!==!1}function l({badge:e,badgeColor:t,badgePulsing:n}){return c(e)}function u({badge:e,badgeColor:n=`primary`,badgePulsing:r=!1,className:a}){if(!l({badge:e,badgeColor:n,badgePulsing:r}))return null;let o=e===!0;return(0,i.jsx)(`span`,{className:t.t(`overlay-badge`,`color-${n}`,o&&`dot`,r&&`pulsing`,a),"aria-hidden":`true`,children:o?null:e})}var d=(0,r.forwardRef)(function({component:r,to:a,href:c,variant:l,size:d,color:f,hidden:p,fullWidth:m=!1,rounded:h=!1,shape:g,iconOnly:_=!1,loading:v=!1,active:y=!1,pulsing:b=!1,badge:x,badgeColor:S,badgePulsing:C=!1,startIcon:w,endIcon:T,clickEffect:E=`ripple`,rippleColor:D,className:O,style:k,children:A,disabled:j=!1,type:M=`button`,onClick:N,onPointerDown:P,onKeyDown:F,...I},L){let R=r??`button`,z=!r||R===`button`,B=o(),V=l??B?.variant??`filled`,H=d??B?.size??`md`,U=f??B?.color??`primary`,W=j||v,{effectClassName:G,effectLayer:K,handlePointerDown:q,triggerEffect:J}=n.t({effect:E,disabled:W,centered:_,color:D});function Y(e){if(W&&!z){e.preventDefault();return}N?.(e)}return(0,i.jsxs)(R,{ref:L,type:z?M:void 0,to:r?W?void 0:a:void 0,href:r?W?void 0:c:void 0,className:t.t(`button`,V,H,`color-${U}`,m&&`full-width`,h&&`rounded`,g===`circle`&&`circle`,_&&`icon-only`,v&&`loading`,y&&`active`,b&&`pulsing`,W&&`disabled`,G,O),style:k,disabled:z?W:void 0,"aria-busy":v||void 0,"aria-disabled":!z&&W?!0:void 0,onClick:Y,onPointerDown:e=>{q(e),P?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&J(e.currentTarget),F?.(e)},...e.r(p),...I,children:[K,u({badge:x,badgeColor:S,badgePulsing:C}),v&&(0,i.jsx)(s,{size:`sm`,color:`inherit`,"aria-hidden":`true`}),w&&(0,i.jsx)(`span`,{className:`icon start`,children:w}),A&&(0,i.jsx)(`span`,{className:`content`,children:A}),T&&(0,i.jsx)(`span`,{className:`icon end`,children:T})]})});Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
|
|
2
|
+
//# sourceMappingURL=MButton-LUNWBBOV.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MButton-
|
|
1
|
+
{"version":3,"file":"MButton-LUNWBBOV.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "./cn-
|
|
2
|
-
import { t } from "./useInteractionEffect-
|
|
1
|
+
import { t as e } from "./cn-CUSXNnjF.js";
|
|
2
|
+
import { t } from "./useInteractionEffect-ClkU3aH5.js";
|
|
3
3
|
import { forwardRef as n, useEffect as r, useRef as i } from "react";
|
|
4
4
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/controls/MCheckbox/MCheckbox.tsx
|
|
@@ -56,4 +56,4 @@ var s = n(function({ checked: n, defaultChecked: s, indeterminate: c = !1, name:
|
|
|
56
56
|
//#endregion
|
|
57
57
|
export { s as t };
|
|
58
58
|
|
|
59
|
-
//# sourceMappingURL=MCheckbox-
|
|
59
|
+
//# sourceMappingURL=MCheckbox-CNz73bQC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCheckbox-
|
|
1
|
+
{"version":3,"file":"MCheckbox-CNz73bQC.js","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":";;;;;AAQA,IAAa,IAAY,EAA6C,SAClE,EACI,YACA,mBACA,mBAAgB,IAChB,SACA,OACA,UACA,cAAW,IACX,UAAO,MACP,WAAQ,WACR,UACA,mBAAgB,SAChB,WAAQ,IACR,cACA,aACA,iBAAc,UACd,gBACA,cACA,YAEJ,GACF;CACE,IAAM,IAAc,EAAyB,KAAK,EAC5C,IAAY,KAA6C,GACzD,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAsC;EAC3G,QAAQ;EACR;EACA,UAAU;EACV,OAAO;EACV,CAAC;AAGF,SAAgB;AACZ,EAAI,EAAS,YACT,EAAS,QAAQ,gBAAgB;IAEtC,CAAC,GAAe,EAAS,CAAC;CAE7B,IAAM,IAAW,KAAS,CAAC,CAAC;AAE5B,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,YAAY,EAAU;EAAS;YAAlD,CACI,kBAAC,SAAD;GAAO,WAAW,EAAG,SAAS,GAAM,MAAkB,UAAU,cAAc,KAAY,WAAW;aAArG,CACI,kBAAC,QAAD;IACI,WAAW,EAAG,OAAO,SAAS,KAAS,KAAY,SAAS,EAAgB;IAC5E,eAAe;cAFnB;KAIK;KACD,kBAAC,SAAD;MACI,KAAK;MACL,MAAK;MACI;MACO;MACV;MACF;MACG;MACG;MACA;MACV,YAAY,MAAU;AAClB,QAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc,cAAwC;;MAGlF,WAAU;MACV,gBAAc,KAAY,KAAA;MAC5B,CAAA;KACF,kBAAC,QAAD,EAAM,WAAU,sBAAuB,CAAA;KACpC;OACN,KAAS,kBAAC,QAAD;IAAM,WAAW,EAAG,cAAc,KAAY,QAAQ;cAAG;IAAa,CAAA,CAC5E;MACP,KACG,kBAAC,QAAD;GAAM,WAAU;GAAc,MAAK;aAC9B;GACE,CAAA,CAET;;EAEZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
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:i,defaultChecked:a,indeterminate:o=!1,name:s,id:c,value:l,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,error:h=!1,errorText:g,onChange:_,clickEffect:v=`ripple`,rippleColor:y,className:b,style:x},S){let C=(0,n.useRef)(null),w=S??C,{effectClassName:T,effectLayer:E,handlePointerDown:D,triggerEffect:O}=t.t({effect:v,disabled:u,centered:!0,color:y});(0,n.useEffect)(()=>{w.current&&(w.current.indeterminate=o)},[o,w]);let k=h||!!g;return(0,r.jsxs)(`div`,{className:e.t(`checkbox`,b),style:x,children:[(0,r.jsxs)(`label`,{className:e.t(`label`,d,m===`left`&&`label-left`,u&&`disabled`),children:[(0,r.jsxs)(`span`,{className:e.t(`box`,`color-${f}`,k&&`error`,T),onPointerDown:D,children:[E,(0,r.jsx)(`input`,{ref:w,type:`checkbox`,checked:i,defaultChecked:a,name:s,id:c,value:l,disabled:u,onChange:_,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&O(e.currentTarget.parentElement)},className:`input`,"aria-invalid":k||void 0}),(0,r.jsx)(`span`,{className:`indeterminate-mark`})]}),p&&(0,r.jsx)(`span`,{className:e.t(`label-text`,k&&`error`),children:p})]}),g&&(0,r.jsx)(`span`,{className:`field-error`,role:`alert`,children:g})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MCheckbox-PzknJeM2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MCheckbox-
|
|
1
|
+
{"version":3,"file":"MCheckbox-PzknJeM2.cjs","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":"4KAQA,IAAa,GAAA,EAAA,EAAA,YAAyD,SAClE,CACI,UACA,iBACA,gBAAgB,GAChB,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,QAAQ,GACR,YACA,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,GAAA,EAAA,EAAA,QAAuC,KAAK,CAC5C,EAAY,GAA6C,EACzD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,EAGF,EAAA,EAAA,eAAgB,CACR,EAAS,UACT,EAAS,QAAQ,cAAgB,IAEtC,CAAC,EAAe,EAAS,CAAC,CAE7B,IAAM,EAAW,GAAS,CAAC,CAAC,EAE5B,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,WAAY,EAAU,CAAS,iBAAlD,EACI,EAAA,EAAA,MAAC,QAAD,CAAO,UAAW,EAAA,EAAG,QAAS,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAW,UAArG,EACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,MAAO,SAAS,IAAS,GAAY,QAAS,EAAgB,CAC5E,cAAe,WAFnB,CAIK,GACD,EAAA,EAAA,KAAC,QAAD,CACI,IAAK,EACL,KAAK,WACI,UACO,iBACV,OACF,KACG,QACG,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,eAAc,GAAY,IAAA,GAC5B,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,EAAG,aAAc,GAAY,QAAQ,UAAG,EAAa,CAAA,CAC5E,GACP,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAET,IAEZ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Di as e,
|
|
2
|
-
import { t as r } from "./cn-
|
|
3
|
-
import { t as i } from "./MCheckbox-
|
|
4
|
-
import { t as a } from "./MInputSearch-
|
|
5
|
-
import { t as o } from "./MPagination-
|
|
1
|
+
import { Di as e, Oi as t, ki as n } from "./icons-DlNO04xH.js";
|
|
2
|
+
import { t as r } from "./cn-CUSXNnjF.js";
|
|
3
|
+
import { t as i } from "./MCheckbox-CNz73bQC.js";
|
|
4
|
+
import { t as a } from "./MInputSearch-CdPfJ4v_.js";
|
|
5
|
+
import { t as o } from "./MPagination-DdT1uNzD.js";
|
|
6
6
|
import { useMemo as s, useState as c } from "react";
|
|
7
7
|
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/data/MDataTable/MDataTable.tsx
|
|
@@ -103,7 +103,7 @@ function f({ columns: f, data: p, rowKey: m, sortable: h = !1, filterable: g = !
|
|
|
103
103
|
className: "th-content",
|
|
104
104
|
children: [i.label, a && /* @__PURE__ */ l("span", {
|
|
105
105
|
className: "sort-icon",
|
|
106
|
-
children: o ? z.dir === "asc" ? /* @__PURE__ */ l(n, { "aria-hidden": "true" }) : /* @__PURE__ */ l(
|
|
106
|
+
children: o ? z.dir === "asc" ? /* @__PURE__ */ l(n, { "aria-hidden": "true" }) : /* @__PURE__ */ l(t, { "aria-hidden": "true" }) : /* @__PURE__ */ l(e, { "aria-hidden": "true" })
|
|
107
107
|
})]
|
|
108
108
|
})
|
|
109
109
|
}, i.key);
|
|
@@ -146,4 +146,4 @@ function f({ columns: f, data: p, rowKey: m, sortable: h = !1, filterable: g = !
|
|
|
146
146
|
//#endregion
|
|
147
147
|
export { f as t };
|
|
148
148
|
|
|
149
|
-
//# sourceMappingURL=MDataTable-
|
|
149
|
+
//# sourceMappingURL=MDataTable-AH5Tnirs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MDataTable-D0ONRmcC.js","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [filter, setFilter] = useState('')\n const [page, setPage] = useState(0)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n if (onSortChange) onSortChange(next)\n else setInternalSort(next)\n\n setPage(0)\n }\n\n const filtered = useMemo(() => {\n if (!filterable || !filter.trim()) return data\n\n const query = filter.toLowerCase()\n\n return data.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }, [data, filter, filterable, columns])\n\n const sorted = useMemo(() => {\n if (!activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable])\n\n const totalPages = pagination ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1\n const pageData = pagination ? sorted.slice(page * pageSize, (page + 1) * pageSize) : sorted\n\n const allKeys = pageData.map((row, index) => getRowKey(row, page * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {filterable && (\n <div className=\"toolbar\">\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={filter}\n onChange={(event) => {\n setFilter(event.target.value)\n setPage(0)\n }}\n onClear={() => {\n setFilter('')\n setPage(0)\n }}\n />\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, page * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, page * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination\n total={sorted.length}\n page={page + 1}\n pageSize={pageSize}\n onChange={(nextPage) => setPage(nextPage - 1)}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MDataTable-AH5Tnirs.js","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [filter, setFilter] = useState('')\n const [page, setPage] = useState(0)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n if (onSortChange) onSortChange(next)\n else setInternalSort(next)\n\n setPage(0)\n }\n\n const filtered = useMemo(() => {\n if (!filterable || !filter.trim()) return data\n\n const query = filter.toLowerCase()\n\n return data.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }, [data, filter, filterable, columns])\n\n const sorted = useMemo(() => {\n if (!activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable])\n\n const totalPages = pagination ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1\n const pageData = pagination ? sorted.slice(page * pageSize, (page + 1) * pageSize) : sorted\n\n const allKeys = pageData.map((row, index) => getRowKey(row, page * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {filterable && (\n <div className=\"toolbar\">\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={filter}\n onChange={(event) => {\n setFilter(event.target.value)\n setPage(0)\n }}\n onClear={() => {\n setFilter('')\n setPage(0)\n }}\n />\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, page * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, page * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination\n total={sorted.length}\n page={page + 1}\n pageSize={pageSize}\n onChange={(nextPage) => setPage(nextPage - 1)}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./icons-BJCV7W0L.cjs`),t=require(`./cn-DYFxgzi2.cjs`),n=require(`./MCheckbox-PzknJeM2.cjs`),r=require(`./MInputSearch-30o4bcDC.cjs`),i=require(`./MPagination-73z0sQvf.cjs`);let a=require(`react`),o=require(`react/jsx-runtime`);function s(e,t,n){return typeof n==`function`?n(e,t):String(typeof n==`string`?e[n]:e.id??t)}function c({columns:c,data:l,rowKey:u,sortable:d=!1,filterable:f=!1,selectable:p=!1,pagination:m=!1,pageSize:h=10,striped:g=!1,compact:_=!1,stickyHeader:v=!1,sort:y,onSortChange:b,selectedKeys:x,onSelectionChange:S,emptyText:C=`No data`,filterPlaceholder:w=`Search...`,className:T,...E}){let[D,O]=(0,a.useState)(null),[k,A]=(0,a.useState)([]),[j,M]=(0,a.useState)(``),[N,P]=(0,a.useState)(0),F=y===void 0?D:y,I=x??k,L=S??A;function R(e){let t;t=F?.key===e?F.dir===`asc`?{key:e,dir:`desc`}:null:{key:e,dir:`asc`},b?b(t):O(t),P(0)}let z=(0,a.useMemo)(()=>{if(!f||!j.trim())return l;let e=j.toLowerCase();return l.filter(t=>c.some(n=>{if(n.filterable===!1)return!1;let r=t[n.key];return r!=null&&String(r).toLowerCase().includes(e)}))},[l,j,f,c]),B=(0,a.useMemo)(()=>{if(!F||!c.find(e=>e.key===F.key)?.sortable&&!d)return z;let e=F.dir===`asc`?1:-1;return[...z].sort((t,n)=>{let r=t[F.key],i=n[F.key];return r==null&&i==null?0:r==null?1:i==null?-1:typeof r==`number`&&typeof i==`number`?(r-i)*e:String(r).localeCompare(String(i))*e})},[z,F,c,d]),V=m?Math.max(1,Math.ceil(B.length/h)):1,H=m?B.slice(N*h,(N+1)*h):B,U=H.map((e,t)=>s(e,N*h+t,u)),W=U.length>0&&U.every(e=>I.includes(e));function G(){L(W?I.filter(e=>!U.includes(e)):[...new Set([...I,...U])])}function K(e){L(I.includes(e)?I.filter(t=>t!==e):[...I,e])}function q(e,t){t.target.closest(`button, a, [data-no-row-select]`)||K(e)}return(0,o.jsxs)(`div`,{className:t.t(`data-table`,T),...E,children:[f&&(0,o.jsx)(`div`,{className:`toolbar`,children:(0,o.jsx)(r.t,{className:`filter-search`,size:`sm`,fullWidth:!0,placeholder:w,value:j,onChange:e=>{M(e.target.value),P(0)},onClear:()=>{M(``),P(0)}})}),(0,o.jsx)(`div`,{className:`scroll`,children:(0,o.jsxs)(`table`,{className:t.t(`root`,g&&`striped`,_&&`compact`),children:[(0,o.jsx)(`thead`,{className:t.t(`head`,v&&`sticky`),children:(0,o.jsxs)(`tr`,{children:[p&&(0,o.jsx)(`th`,{className:`th check-col`,children:(0,o.jsx)(n.t,{checked:W,onChange:G,size:`sm`,clickEffect:`none`})}),c.map(n=>{let r=n.sortable??d,i=F?.key===n.key;return(0,o.jsx)(`th`,{className:t.t(`th`,r&&`sortable`,i&&`sorted-${F.dir}`),style:{width:n.width,textAlign:n.align},onClick:r?()=>R(n.key):void 0,children:(0,o.jsxs)(`span`,{className:`th-content`,children:[n.label,r&&(0,o.jsx)(`span`,{className:`sort-icon`,children:i?F.dir===`asc`?(0,o.jsx)(e.ki,{"aria-hidden":`true`}):(0,o.jsx)(e.Oi,{"aria-hidden":`true`}):(0,o.jsx)(e.Di,{"aria-hidden":`true`})})]})},n.key)})]})}),(0,o.jsxs)(`tbody`,{children:[H.length===0&&(0,o.jsx)(`tr`,{children:(0,o.jsx)(`td`,{className:`empty`,colSpan:c.length+ +!!p,children:C})}),H.map((e,r)=>{let i=s(e,N*h+r,u),a=I.includes(i);return(0,o.jsxs)(`tr`,{className:t.t(`row`,a&&`selected`,p&&`selectable`),onClick:p?e=>q(i,e):void 0,children:[p&&(0,o.jsx)(`td`,{className:`td check-col`,children:(0,o.jsx)(n.t,{checked:a,onChange:()=>{},size:`sm`,clickEffect:`none`})}),c.map(t=>(0,o.jsx)(`td`,{className:`td`,style:{textAlign:t.align},children:t.render?t.render(e[t.key],e,N*h+r):e[t.key]},t.key))]},i)})]})]})}),m&&V>1&&(0,o.jsx)(i.t,{total:B.length,page:N+1,pageSize:h,onChange:e=>P(e-1)})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return c}});
|
|
2
|
+
//# sourceMappingURL=MDataTable-Bq6UoNJX.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MDataTable-CVwnVouZ.cjs","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [filter, setFilter] = useState('')\n const [page, setPage] = useState(0)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n if (onSortChange) onSortChange(next)\n else setInternalSort(next)\n\n setPage(0)\n }\n\n const filtered = useMemo(() => {\n if (!filterable || !filter.trim()) return data\n\n const query = filter.toLowerCase()\n\n return data.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }, [data, filter, filterable, columns])\n\n const sorted = useMemo(() => {\n if (!activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable])\n\n const totalPages = pagination ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1\n const pageData = pagination ? sorted.slice(page * pageSize, (page + 1) * pageSize) : sorted\n\n const allKeys = pageData.map((row, index) => getRowKey(row, page * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {filterable && (\n <div className=\"toolbar\">\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={filter}\n onChange={(event) => {\n setFilter(event.target.value)\n setPage(0)\n }}\n onClear={() => {\n setFilter('')\n setPage(0)\n }}\n />\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, page * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, page * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination\n total={sorted.length}\n page={page + 1}\n pageSize={pageSize}\n onChange={(nextPage) => setPage(nextPage - 1)}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MDataTable-Bq6UoNJX.cjs","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [filter, setFilter] = useState('')\n const [page, setPage] = useState(0)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n if (onSortChange) onSortChange(next)\n else setInternalSort(next)\n\n setPage(0)\n }\n\n const filtered = useMemo(() => {\n if (!filterable || !filter.trim()) return data\n\n const query = filter.toLowerCase()\n\n return data.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }, [data, filter, filterable, columns])\n\n const sorted = useMemo(() => {\n if (!activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable])\n\n const totalPages = pagination ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1\n const pageData = pagination ? sorted.slice(page * pageSize, (page + 1) * pageSize) : sorted\n\n const allKeys = pageData.map((row, index) => getRowKey(row, page * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {filterable && (\n <div className=\"toolbar\">\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={filter}\n onChange={(event) => {\n setFilter(event.target.value)\n setPage(0)\n }}\n onClear={() => {\n setFilter('')\n setPage(0)\n }}\n />\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, page * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, page * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination\n total={sorted.length}\n page={page + 1}\n pageSize={pageSize}\n onChange={(nextPage) => setPage(nextPage - 1)}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t } from "./cn-
|
|
1
|
+
import { Li as e } from "./icons-DlNO04xH.js";
|
|
2
|
+
import { t } from "./cn-CUSXNnjF.js";
|
|
3
3
|
import { t as n } from "./MPortal-Dqlkh3hw.js";
|
|
4
|
-
import { t as r } from "./MButton-
|
|
4
|
+
import { t as r } from "./MButton-BpSZUhpY.js";
|
|
5
5
|
import { Children as i, isValidElement as a, useEffect as o, useRef as s, useState as c } from "react";
|
|
6
6
|
import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
7
7
|
//#region src/components/overlays/MDrawer/MDrawer.tsx
|
|
@@ -119,4 +119,4 @@ function y({ open: a, onClose: l, side: g = "right", size: _ = "md", overlay: v
|
|
|
119
119
|
//#endregion
|
|
120
120
|
export { g as i, _ as n, v as r, y as t };
|
|
121
121
|
|
|
122
|
-
//# sourceMappingURL=MDrawer-
|
|
122
|
+
//# sourceMappingURL=MDrawer-C08QXXC4.js.map
|