@banzamel/mineralui 2.4.2 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/MAvatar-CvQuiGvT.cjs +2 -0
- package/dist/MAvatar-CvQuiGvT.cjs.map +1 -0
- package/dist/MAvatar-EkOBrEtS.js +73 -0
- package/dist/MAvatar-EkOBrEtS.js.map +1 -0
- package/dist/MButton-BxEky3xQ.cjs +2 -0
- package/dist/MButton-BxEky3xQ.cjs.map +1 -0
- package/dist/MButton-KELyyBw1.js +123 -0
- package/dist/MButton-KELyyBw1.js.map +1 -0
- package/dist/{MButtonGroup-BkNf7fzo.js → MButtonGroup-DDnn8Wfy.js} +3 -3
- package/dist/{MButtonGroup-BkNf7fzo.js.map → MButtonGroup-DDnn8Wfy.js.map} +1 -1
- package/dist/{MButtonGroup-iPv14c0V.cjs → MButtonGroup-Dz8Fm-oA.cjs} +2 -2
- package/dist/{MButtonGroup-iPv14c0V.cjs.map → MButtonGroup-Dz8Fm-oA.cjs.map} +1 -1
- package/dist/{MCard-DK-_FkpE.cjs → MCard-Bqm4BjK_.cjs} +2 -2
- package/dist/MCard-Bqm4BjK_.cjs.map +1 -0
- package/dist/{MCard-azpp4YVD.js → MCard-CqZYGaS2.js} +4 -4
- package/dist/MCard-CqZYGaS2.js.map +1 -0
- package/dist/MCheckbox-CaWgyUn5.js +72 -0
- package/dist/MCheckbox-CaWgyUn5.js.map +1 -0
- package/dist/MCheckbox-DpKJpnFF.cjs +2 -0
- package/dist/MCheckbox-DpKJpnFF.cjs.map +1 -0
- package/dist/{MConflictIllustration-znC7ijmP.js → MConflictIllustration-dwZS44ye.js} +1517 -1515
- package/dist/MConflictIllustration-dwZS44ye.js.map +1 -0
- package/dist/MConflictIllustration-vfHs-jad.cjs +2 -0
- package/dist/MConflictIllustration-vfHs-jad.cjs.map +1 -0
- package/dist/MDetailList-C3othNs3.js +127 -0
- package/dist/MDetailList-C3othNs3.js.map +1 -0
- package/dist/MDetailList-DkDHLdJ8.cjs +2 -0
- package/dist/MDetailList-DkDHLdJ8.cjs.map +1 -0
- package/dist/MDropdownMenu-C4-r7UZM.cjs +2 -0
- package/dist/MDropdownMenu-C4-r7UZM.cjs.map +1 -0
- package/dist/MDropdownMenu-Dvg9UsHB.js +219 -0
- package/dist/MDropdownMenu-Dvg9UsHB.js.map +1 -0
- package/dist/MGrid-CQqT8nHi.js +271 -0
- package/dist/MGrid-CQqT8nHi.js.map +1 -0
- package/dist/MGrid-tBsqShLG.cjs +2 -0
- package/dist/MGrid-tBsqShLG.cjs.map +1 -0
- package/dist/MHeading-DQSQ8c7L.js +21 -0
- package/dist/MHeading-DQSQ8c7L.js.map +1 -0
- package/dist/MHeading-DiGYs1FJ.cjs +2 -0
- package/dist/MHeading-DiGYs1FJ.cjs.map +1 -0
- package/dist/MInput-BeEGufZG.cjs +2 -0
- package/dist/MInput-BeEGufZG.cjs.map +1 -0
- package/dist/MInput-QnQV9L8U.js +190 -0
- package/dist/MInput-QnQV9L8U.js.map +1 -0
- package/dist/MInputCVC-CCNRAqHw.cjs +2 -0
- package/dist/MInputCVC-CCNRAqHw.cjs.map +1 -0
- package/dist/MInputCVC-IXIYZwex.js +410 -0
- package/dist/MInputCVC-IXIYZwex.js.map +1 -0
- package/dist/MInputSearch-BSIc6m2P.cjs +2 -0
- package/dist/MInputSearch-BSIc6m2P.cjs.map +1 -0
- package/dist/MInputSearch-CNuTAbYs.js +44 -0
- package/dist/MInputSearch-CNuTAbYs.js.map +1 -0
- package/dist/{MKbd-DqMnZ7Iv.cjs → MKbd-CnW3NUIu.cjs} +2 -2
- package/dist/{MKbd-DqMnZ7Iv.cjs.map → MKbd-CnW3NUIu.cjs.map} +1 -1
- package/dist/{MKbd-v6-tJ9sP.js → MKbd-DjfGyajR.js} +2 -2
- package/dist/{MKbd-v6-tJ9sP.js.map → MKbd-DjfGyajR.js.map} +1 -1
- package/dist/MLink-C6uwA6db.cjs +2 -0
- package/dist/MLink-C6uwA6db.cjs.map +1 -0
- package/dist/MLink-ixg0xFFI.js +31 -0
- package/dist/MLink-ixg0xFFI.js.map +1 -0
- package/dist/MLoader-CViA3zBo.js +44 -0
- package/dist/MLoader-CViA3zBo.js.map +1 -0
- package/dist/MLoader-DUOoOoNE.cjs +2 -0
- package/dist/MLoader-DUOoOoNE.cjs.map +1 -0
- package/dist/MPagination-BTGenxWW.js +122 -0
- package/dist/MPagination-BTGenxWW.js.map +1 -0
- package/dist/MPagination-DitmdtCc.cjs +2 -0
- package/dist/MPagination-DitmdtCc.cjs.map +1 -0
- package/dist/MPopover-CBDbUOW6.js +183 -0
- package/dist/MPopover-CBDbUOW6.js.map +1 -0
- package/dist/MPopover-ZeoU9hb5.cjs +2 -0
- package/dist/MPopover-ZeoU9hb5.cjs.map +1 -0
- package/dist/{MSimpleGrid-BWKurW6H.js → MSimpleGrid-C_QvLmck.js} +3 -3
- package/dist/MSimpleGrid-C_QvLmck.js.map +1 -0
- package/dist/MSimpleGrid-wgvjnxwM.cjs +2 -0
- package/dist/MSimpleGrid-wgvjnxwM.cjs.map +1 -0
- package/dist/{MSkeleton-C5uD4Axo.js → MSkeleton-BpcpBBJq.js} +12 -10
- package/dist/MSkeleton-BpcpBBJq.js.map +1 -0
- package/dist/MSkeleton-DuAN8Vcv.cjs +2 -0
- package/dist/MSkeleton-DuAN8Vcv.cjs.map +1 -0
- package/dist/MSlider-CLASUc2H.js +134 -0
- package/dist/MSlider-CLASUc2H.js.map +1 -0
- package/dist/MSlider-hONQBulE.cjs +2 -0
- package/dist/MSlider-hONQBulE.cjs.map +1 -0
- package/dist/MStack-BwAFeGGg.js +39 -0
- package/dist/MStack-BwAFeGGg.js.map +1 -0
- package/dist/MStack-CGII4A-q.cjs +2 -0
- package/dist/MStack-CGII4A-q.cjs.map +1 -0
- package/dist/MSubText-BeZk-fhz.js +17 -0
- package/dist/MSubText-BeZk-fhz.js.map +1 -0
- package/dist/MSubText-Dl1PfToZ.cjs +2 -0
- package/dist/MSubText-Dl1PfToZ.cjs.map +1 -0
- package/dist/MSurface-B_QnRLr5.js +74 -0
- package/dist/MSurface-B_QnRLr5.js.map +1 -0
- package/dist/MSurface-BrFo-JMJ.cjs +2 -0
- package/dist/MSurface-BrFo-JMJ.cjs.map +1 -0
- package/dist/MTag-BZrKN_DS.js +41 -0
- package/dist/MTag-BZrKN_DS.js.map +1 -0
- package/dist/MTag-DCE1vRJM.cjs +2 -0
- package/dist/MTag-DCE1vRJM.cjs.map +1 -0
- package/dist/MText-BUWQPoBM.js +45 -0
- package/dist/MText-BUWQPoBM.js.map +1 -0
- package/dist/MText-nsvLFsSv.cjs +2 -0
- package/dist/MText-nsvLFsSv.cjs.map +1 -0
- package/dist/MTooltip-BRSPJ3RY.js +100 -0
- package/dist/MTooltip-BRSPJ3RY.js.map +1 -0
- package/dist/MTooltip-Cj2Fxmzc.cjs +2 -0
- package/dist/MTooltip-Cj2Fxmzc.cjs.map +1 -0
- package/dist/MTreeView-BWCTlsU-.cjs +2 -0
- package/dist/MTreeView-BWCTlsU-.cjs.map +1 -0
- package/dist/MTreeView-CWcMwE-Z.js +554 -0
- package/dist/MTreeView-CWcMwE-Z.js.map +1 -0
- package/dist/{arduino-BdpdaLwK.cjs → arduino-C1gw-z1N.cjs} +1 -1
- package/dist/{arduino-BdpdaLwK.cjs.map → arduino-C1gw-z1N.cjs.map} +1 -1
- package/dist/{arduino-DDDlP9Yt.js → arduino-CcVvzDWF.js} +1 -1
- package/dist/{arduino-DDDlP9Yt.js.map → arduino-CcVvzDWF.js.map} +1 -1
- package/dist/{bash-D8WbAmuA.js → bash-DkMiO80l.js} +1 -1
- package/dist/{bash-D8WbAmuA.js.map → bash-DkMiO80l.js.map} +1 -1
- package/dist/{bash-eOUFh3S1.cjs → bash-wzZkpJC-.cjs} +1 -1
- package/dist/{bash-eOUFh3S1.cjs.map → bash-wzZkpJC-.cjs.map} +1 -1
- package/dist/{c-Bur7Mn-u.cjs → c-BSPjDa0P.cjs} +1 -1
- package/dist/{c-Bur7Mn-u.cjs.map → c-BSPjDa0P.cjs.map} +1 -1
- package/dist/{c-CTKNfUJI.js → c-DtlFV5Pa.js} +1 -1
- package/dist/{c-CTKNfUJI.js.map → c-DtlFV5Pa.js.map} +1 -1
- package/dist/calendar-2yhnCkGW.cjs +2 -0
- package/dist/calendar-2yhnCkGW.cjs.map +1 -0
- package/dist/calendar-DcNYDTVb.js +195 -0
- package/dist/calendar-DcNYDTVb.js.map +1 -0
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{calendarDates-CYkJqcnp.js → calendarDates-Bpw_G_QR.js} +30 -19
- package/dist/calendarDates-Bpw_G_QR.js.map +1 -0
- package/dist/calendarDates-Cg0nm69Y.cjs +2 -0
- package/dist/calendarDates-Cg0nm69Y.cjs.map +1 -0
- package/dist/cards-Bp886TRb.cjs +2 -0
- package/dist/cards-Bp886TRb.cjs.map +1 -0
- package/dist/cards-BvER6Gx0.js +1277 -0
- package/dist/cards-BvER6Gx0.js.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- 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/cards/MCardDaySchedule/MCardDaySchedule.d.ts +1 -1
- package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +1 -1
- package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
- package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
- package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +4 -0
- package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +1 -1
- package/dist/components/cards/MStatCard/MStatCard.d.ts +1 -1
- package/dist/components/controls/MCheckbox/MCheckbox.types.d.ts +6 -0
- package/dist/components/controls/MLoadMore/MLoadMore.d.ts +1 -1
- package/dist/components/controls/MSlider/MSlider.d.ts +1 -1
- package/dist/components/controls/MSlider/MSlider.types.d.ts +5 -0
- package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
- package/dist/components/data/MTreeView/MTreeView.types.d.ts +6 -0
- package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +1 -1
- package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -3
- package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +1 -1
- package/dist/components/dropdowns/MAutocomplete/MAutocomplete.d.ts +1 -1
- package/dist/components/dropdowns/MAutocomplete/MAutocomplete.types.d.ts +8 -2
- package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
- package/dist/components/dropdowns/shared/TimeColumnListbox.d.ts +20 -0
- package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
- package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
- package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
- package/dist/components/feedback/MLoader/MLoader.d.ts +1 -1
- package/dist/components/feedback/MSpinner/MSpinner.d.ts +1 -1
- package/dist/components/feedback/MTag/MTag.d.ts +1 -1
- package/dist/components/inputs/MInput/MInput.types.d.ts +6 -1
- package/dist/components/inputs/MInput/useFormatCaret.d.ts +8 -0
- package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +5 -0
- package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
- package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
- package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
- package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
- package/dist/components/layout/MInline/MInline.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -0
- package/dist/components/layout/MSection/MSection.d.ts +1 -1
- package/dist/components/layout/MStack/MStack.d.ts +1 -1
- package/dist/components/layout/MStickyPanel/MStickyPanel.types.d.ts +4 -0
- package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.types.d.ts +10 -0
- package/dist/components/media/MCarousel/MCarousel.d.ts +1 -1
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/carouselA11y.d.ts +9 -0
- package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +1 -1
- package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +4 -2
- package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +3 -1
- package/dist/components/overlays/MPopconfirm/MPopconfirm.d.ts +1 -1
- package/dist/components/overlays/scrollLock.d.ts +14 -0
- package/dist/components/primitives/MPopover/MPopover.d.ts +1 -1
- package/dist/components/primitives/MPopover/MPopover.types.d.ts +32 -1
- package/dist/components/primitives/MPopover/popoverStack.d.ts +8 -0
- package/dist/components/typography/MHeading/MHeading.d.ts +2 -3
- package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
- package/dist/components/typography/MText/MText.d.ts +1 -1
- package/dist/controls-B4Dxaab4.js +491 -0
- package/dist/controls-B4Dxaab4.js.map +1 -0
- package/dist/controls-CyXEIOXD.cjs +2 -0
- package/dist/controls-CyXEIOXD.cjs.map +1 -0
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/{core-D5-SQcs8.js → core-B8VC-Umz.js} +1 -1
- package/dist/{core-D5-SQcs8.js.map → core-B8VC-Umz.js.map} +1 -1
- package/dist/{core-D66c1_Wo.cjs → core-w629c4ND.cjs} +1 -1
- package/dist/{core-D66c1_Wo.cjs.map → core-w629c4ND.cjs.map} +1 -1
- package/dist/{cpp-DAzz2TpY.js → cpp-BraS2arf.js} +1 -1
- package/dist/{cpp-DAzz2TpY.js.map → cpp-BraS2arf.js.map} +1 -1
- package/dist/{cpp-BMULAf-B.cjs → cpp-LIcuHkFj.cjs} +1 -1
- package/dist/{cpp-BMULAf-B.cjs.map → cpp-LIcuHkFj.cjs.map} +1 -1
- package/dist/creditCards-Bo2mrc53.cjs +2 -0
- package/dist/creditCards-Bo2mrc53.cjs.map +1 -0
- package/dist/{creditCards-D_iWmtG6.js → creditCards-DmDOyvcw.js} +20 -31
- package/dist/creditCards-DmDOyvcw.js.map +1 -0
- package/dist/{css-9M03GzKO.cjs → css-D6fGBtGV.cjs} +1 -1
- package/dist/{css-9M03GzKO.cjs.map → css-D6fGBtGV.cjs.map} +1 -1
- package/dist/{css-EGOXTWIl.js → css-Dy8pFAWa.js} +1 -1
- package/dist/{css-EGOXTWIl.js.map → css-Dy8pFAWa.js.map} +1 -1
- package/dist/data-BM3KG8oN.cjs +2 -0
- package/dist/data-BM3KG8oN.cjs.map +1 -0
- package/dist/data-qnR8OBmj.js +808 -0
- package/dist/data-qnR8OBmj.js.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/{dateUtils-CUY6CRCf.js → dateUtils-B-ToNZq_.js} +5 -6
- package/dist/dateUtils-B-ToNZq_.js.map +1 -0
- package/dist/dateUtils-z2L7ZaxA.cjs +2 -0
- package/dist/dateUtils-z2L7ZaxA.cjs.map +1 -0
- package/dist/display-BLMOBofj.cjs +3 -0
- package/dist/display-BLMOBofj.cjs.map +1 -0
- package/dist/display-Dlb79lkA.js +968 -0
- package/dist/display-Dlb79lkA.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/dropdowns-2_7VMEDo.js +2009 -0
- package/dist/dropdowns-2_7VMEDo.js.map +1 -0
- package/dist/dropdowns-DN7j8J-V.cjs +2 -0
- package/dist/dropdowns-DN7j8J-V.cjs.map +1 -0
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/feedback-CECayytY.js +335 -0
- package/dist/feedback-CECayytY.js.map +1 -0
- package/dist/feedback-paV8Ls-h.cjs +2 -0
- package/dist/feedback-paV8Ls-h.cjs.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -5
- package/dist/form-Br56h5EF.cjs +2 -0
- package/dist/form-Br56h5EF.cjs.map +1 -0
- package/dist/form-CJmMZgsH.js +165 -0
- package/dist/form-CJmMZgsH.js.map +1 -0
- 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-CaqdiKHW.cjs +2 -0
- package/dist/frameworkTexts-CaqdiKHW.cjs.map +1 -0
- package/dist/frameworkTexts-o43FqY1A.js +505 -0
- package/dist/frameworkTexts-o43FqY1A.js.map +1 -0
- package/dist/i18n/MI18nProvider.d.ts +6 -1
- package/dist/i18n/frameworkTexts.d.ts +572 -0
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.js +2 -2
- package/dist/icons-Bp8bB9TP.cjs +2 -0
- package/dist/icons-Bp8bB9TP.cjs.map +1 -0
- package/dist/{icons-CBMl-kOM.js → icons-IqEBmGh3.js} +1223 -1220
- package/dist/icons-IqEBmGh3.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/illustrations.cjs +1 -1
- package/dist/illustrations.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +56 -56
- package/dist/inputs-C0BJzlA-.js +1923 -0
- package/dist/inputs-C0BJzlA-.js.map +1 -0
- package/dist/inputs-CvNBBLFA.cjs +2 -0
- package/dist/inputs-CvNBBLFA.cjs.map +1 -0
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/{javascript-CHSg4NGc.js → javascript-CqKLBRqa.js} +1 -1
- package/dist/{javascript-CHSg4NGc.js.map → javascript-CqKLBRqa.js.map} +1 -1
- package/dist/{javascript-CastOQF5.cjs → javascript-Oy5hkezl.cjs} +1 -1
- package/dist/{javascript-CastOQF5.cjs.map → javascript-Oy5hkezl.cjs.map} +1 -1
- package/dist/{json-DCkJ-m-p.cjs → json-BP8eqPWc.cjs} +1 -1
- package/dist/{json-DCkJ-m-p.cjs.map → json-BP8eqPWc.cjs.map} +1 -1
- package/dist/{json-Bejy9Rlg.js → json-DJkyYaPe.js} +1 -1
- package/dist/{json-Bejy9Rlg.js.map → json-DJkyYaPe.js.map} +1 -1
- package/dist/layout-BSFqGXLZ.js +1101 -0
- package/dist/layout-BSFqGXLZ.js.map +1 -0
- package/dist/layout-MKqvUkPv.cjs +2 -0
- package/dist/layout-MKqvUkPv.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +6 -6
- package/dist/{licensing-f5KYVz7D.js → licensing-BKmoAdfr.js} +5 -4
- package/dist/licensing-BKmoAdfr.js.map +1 -0
- package/dist/licensing-DVgjkw-s.cjs +2 -0
- package/dist/licensing-DVgjkw-s.cjs.map +1 -0
- package/dist/{locale-DRRl_s5-.cjs → locale-C08q7FjE.cjs} +2 -2
- package/dist/{locale-DRRl_s5-.cjs.map → locale-C08q7FjE.cjs.map} +1 -1
- package/dist/{locale-CS1-IY_I.js → locale-CjJpk9GN.js} +1 -1
- package/dist/{locale-CS1-IY_I.js.map → locale-CjJpk9GN.js.map} +1 -1
- package/dist/media-fiasAbBv.js +485 -0
- package/dist/media-fiasAbBv.js.map +1 -0
- package/dist/media-tr1s386v.cjs +2 -0
- package/dist/media-tr1s386v.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +2 -2
- package/dist/overlays-Df-NpmkW.cjs +2 -0
- package/dist/overlays-Df-NpmkW.cjs.map +1 -0
- package/dist/overlays-W0WW3fn7.js +607 -0
- package/dist/overlays-W0WW3fn7.js.map +1 -0
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/{php-BdVXegqn.cjs → php-Cwjc-ZYq.cjs} +1 -1
- package/dist/{php-BdVXegqn.cjs.map → php-Cwjc-ZYq.cjs.map} +1 -1
- package/dist/{php-Cb_S1hXT.js → php-Db8PWzaX.js} +1 -1
- package/dist/{php-Cb_S1hXT.js.map → php-Db8PWzaX.js.map} +1 -1
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +2 -2
- package/dist/radioGroupKeys-Bm-Qeh8G.js +28 -0
- package/dist/radioGroupKeys-Bm-Qeh8G.js.map +1 -0
- package/dist/radioGroupKeys-COL8uXbH.cjs +2 -0
- package/dist/radioGroupKeys-COL8uXbH.cjs.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/scrollLock-C9P9o6wH.cjs +2 -0
- package/dist/scrollLock-C9P9o6wH.cjs.map +1 -0
- package/dist/scrollLock-D27VmgPV.js +14 -0
- package/dist/scrollLock-D27VmgPV.js.map +1 -0
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/MThemeProvider.d.ts +18 -1
- package/dist/theme/index.d.ts +2 -2
- package/dist/{theme-DAOU1aPs.js → theme-B_juOenJ.js} +71 -61
- package/dist/theme-B_juOenJ.js.map +1 -0
- package/dist/theme-ByPZH0dh.cjs +2 -0
- package/dist/theme-ByPZH0dh.cjs.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/{typescript-CcGBfzlS.cjs → typescript-QKlfKtex.cjs} +1 -1
- package/dist/{typescript-CcGBfzlS.cjs.map → typescript-QKlfKtex.cjs.map} +1 -1
- package/dist/{typescript-0VHxrxf2.js → typescript-chdf_txx.js} +1 -1
- package/dist/{typescript-0VHxrxf2.js.map → typescript-chdf_txx.js.map} +1 -1
- package/dist/{typography-CAW17MDj.js → typography-DNcB8dOy.js} +3 -3
- package/dist/{typography-CAW17MDj.js.map → typography-DNcB8dOy.js.map} +1 -1
- package/dist/{typography-C4_O8len.cjs → typography-I7aeG8pH.cjs} +2 -2
- package/dist/{typography-C4_O8len.cjs.map → typography-I7aeG8pH.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +6 -6
- package/dist/useGhostText-CKsb8Ufa.js +240 -0
- package/dist/useGhostText-CKsb8Ufa.js.map +1 -0
- package/dist/useGhostText-DO-tfxS0.cjs +2 -0
- package/dist/useGhostText-DO-tfxS0.cjs.map +1 -0
- package/dist/{useInteractionEffect-CFwDX5UF.cjs → useInteractionEffect-CtXlbjhC.cjs} +2 -2
- package/dist/{useInteractionEffect-CFwDX5UF.cjs.map → useInteractionEffect-CtXlbjhC.cjs.map} +1 -1
- package/dist/useModalLayer-CpOPSDbf.js +128 -0
- package/dist/useModalLayer-CpOPSDbf.js.map +1 -0
- package/dist/useModalLayer-Cyt93Prs.cjs +2 -0
- package/dist/useModalLayer-Cyt93Prs.cjs.map +1 -0
- package/dist/utils/calendarDates.d.ts +5 -0
- package/dist/utils/radioGroupKeys.d.ts +9 -0
- package/dist/utils/useDateGridNav.d.ts +39 -0
- package/dist/utils/useGhostText.d.ts +2 -1
- package/dist/utils/useKeyboardNav.d.ts +51 -5
- package/dist/utils/useModalLayer.d.ts +14 -0
- package/dist/utils/useRovingToolbar.d.ts +26 -0
- package/dist/utils/validationMessages.d.ts +15 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.entry.d.ts +3 -1
- package/dist/utils.js +11 -11
- package/dist/validationMessages-BFimXxlT.js +23 -0
- package/dist/validationMessages-BFimXxlT.js.map +1 -0
- package/dist/validationMessages-iHu7apWr.cjs +2 -0
- package/dist/validationMessages-iHu7apWr.cjs.map +1 -0
- package/dist/validators-SZmLxnir.cjs +2 -0
- package/dist/validators-SZmLxnir.cjs.map +1 -0
- package/dist/{validators-DVYOtFnw.js → validators-ULebNme2.js} +107 -106
- package/dist/validators-ULebNme2.js.map +1 -0
- package/dist/{xml-Dbm3mobK.cjs → xml-DEtyywwU.cjs} +1 -1
- package/dist/{xml-Dbm3mobK.cjs.map → xml-DEtyywwU.cjs.map} +1 -1
- package/dist/{xml-8GjNy8SM.js → xml-DnydRpfh.js} +1 -1
- package/dist/{xml-8GjNy8SM.js.map → xml-DnydRpfh.js.map} +1 -1
- package/package.json +1 -1
- package/dist/MAvatar-Capz5Gbc.cjs +0 -2
- package/dist/MAvatar-Capz5Gbc.cjs.map +0 -1
- package/dist/MAvatar-DtJCj3dD.js +0 -63
- package/dist/MAvatar-DtJCj3dD.js.map +0 -1
- package/dist/MButton-C1pnL4_j.js +0 -115
- package/dist/MButton-C1pnL4_j.js.map +0 -1
- package/dist/MButton-sTKnano6.cjs +0 -2
- package/dist/MButton-sTKnano6.cjs.map +0 -1
- package/dist/MCard-DK-_FkpE.cjs.map +0 -1
- package/dist/MCard-azpp4YVD.js.map +0 -1
- package/dist/MCheckbox-B7SpcD4H.js +0 -59
- package/dist/MCheckbox-B7SpcD4H.js.map +0 -1
- package/dist/MCheckbox-CIX7wp41.cjs +0 -2
- package/dist/MCheckbox-CIX7wp41.cjs.map +0 -1
- package/dist/MConflictIllustration-CZ3Md38Z.cjs +0 -2
- package/dist/MConflictIllustration-CZ3Md38Z.cjs.map +0 -1
- package/dist/MConflictIllustration-znC7ijmP.js.map +0 -1
- package/dist/MDetailList-Ce7KzUKC.cjs +0 -2
- package/dist/MDetailList-Ce7KzUKC.cjs.map +0 -1
- package/dist/MDetailList-fDhVyhm7.js +0 -98
- package/dist/MDetailList-fDhVyhm7.js.map +0 -1
- package/dist/MDropdownMenu-B_QWQhxy.cjs +0 -2
- package/dist/MDropdownMenu-B_QWQhxy.cjs.map +0 -1
- package/dist/MDropdownMenu-C4CuKMRZ.js +0 -172
- package/dist/MDropdownMenu-C4CuKMRZ.js.map +0 -1
- package/dist/MGrid-CYL3cbUI.js +0 -265
- package/dist/MGrid-CYL3cbUI.js.map +0 -1
- package/dist/MGrid-fTx6wFq_.cjs +0 -2
- package/dist/MGrid-fTx6wFq_.cjs.map +0 -1
- package/dist/MHeading-B7KgSP4T.js +0 -21
- package/dist/MHeading-B7KgSP4T.js.map +0 -1
- package/dist/MHeading-KDSpnCof.cjs +0 -2
- package/dist/MHeading-KDSpnCof.cjs.map +0 -1
- package/dist/MI18nProvider-DXRbB0VY.cjs +0 -2
- package/dist/MI18nProvider-DXRbB0VY.cjs.map +0 -1
- package/dist/MI18nProvider-VH14CI8u.js +0 -72
- package/dist/MI18nProvider-VH14CI8u.js.map +0 -1
- package/dist/MInput-C8ObGzQk.js +0 -187
- package/dist/MInput-C8ObGzQk.js.map +0 -1
- package/dist/MInput-CGl2Q-rM.cjs +0 -2
- package/dist/MInput-CGl2Q-rM.cjs.map +0 -1
- package/dist/MInputCVC-Blv5PeyS.js +0 -320
- package/dist/MInputCVC-Blv5PeyS.js.map +0 -1
- package/dist/MInputCVC-lAFKTV6y.cjs +0 -2
- package/dist/MInputCVC-lAFKTV6y.cjs.map +0 -1
- package/dist/MInputSearch-BM8gLlJ1.js +0 -43
- package/dist/MInputSearch-BM8gLlJ1.js.map +0 -1
- package/dist/MInputSearch-BZDnbFB4.cjs +0 -2
- package/dist/MInputSearch-BZDnbFB4.cjs.map +0 -1
- package/dist/MLink-Bd8fLH1N.js +0 -31
- package/dist/MLink-Bd8fLH1N.js.map +0 -1
- package/dist/MLink-U24G6KJj.cjs +0 -2
- package/dist/MLink-U24G6KJj.cjs.map +0 -1
- package/dist/MLoader-CnvWqFtA.js +0 -41
- package/dist/MLoader-CnvWqFtA.js.map +0 -1
- package/dist/MLoader-CvFIvytw.cjs +0 -2
- package/dist/MLoader-CvFIvytw.cjs.map +0 -1
- package/dist/MPagination-BkvOEZpp.js +0 -113
- package/dist/MPagination-BkvOEZpp.js.map +0 -1
- package/dist/MPagination-DgQta29Q.cjs +0 -2
- package/dist/MPagination-DgQta29Q.cjs.map +0 -1
- package/dist/MPopover-C-e1CoV0.cjs +0 -2
- package/dist/MPopover-C-e1CoV0.cjs.map +0 -1
- package/dist/MPopover-Dd-GIBU6.js +0 -155
- package/dist/MPopover-Dd-GIBU6.js.map +0 -1
- package/dist/MPortal-Ba2Sxset.js +0 -10
- package/dist/MPortal-Ba2Sxset.js.map +0 -1
- package/dist/MPortal-DUSIuINN.cjs +0 -2
- package/dist/MPortal-DUSIuINN.cjs.map +0 -1
- package/dist/MSimpleGrid-BWKurW6H.js.map +0 -1
- package/dist/MSimpleGrid-BzlIitcJ.cjs +0 -2
- package/dist/MSimpleGrid-BzlIitcJ.cjs.map +0 -1
- package/dist/MSkeleton-BoFpowFU.cjs +0 -2
- package/dist/MSkeleton-BoFpowFU.cjs.map +0 -1
- package/dist/MSkeleton-C5uD4Axo.js.map +0 -1
- package/dist/MSlider-BTDBqF8t.cjs +0 -2
- package/dist/MSlider-BTDBqF8t.cjs.map +0 -1
- package/dist/MSlider-CqrusKJQ.js +0 -75
- package/dist/MSlider-CqrusKJQ.js.map +0 -1
- package/dist/MStack-B3Ldqsc-.cjs +0 -2
- package/dist/MStack-B3Ldqsc-.cjs.map +0 -1
- package/dist/MStack-CSCw6to2.js +0 -39
- package/dist/MStack-CSCw6to2.js.map +0 -1
- package/dist/MSubText-47PsgE8T.cjs +0 -2
- package/dist/MSubText-47PsgE8T.cjs.map +0 -1
- package/dist/MSubText-C-N15d4Z.js +0 -17
- package/dist/MSubText-C-N15d4Z.js.map +0 -1
- package/dist/MSurface-B-sjyczH.js +0 -74
- package/dist/MSurface-B-sjyczH.js.map +0 -1
- package/dist/MSurface-QYEygc_0.cjs +0 -2
- package/dist/MSurface-QYEygc_0.cjs.map +0 -1
- package/dist/MTag-BjV-dXkk.cjs +0 -2
- package/dist/MTag-BjV-dXkk.cjs.map +0 -1
- package/dist/MTag-D9q6faIk.js +0 -39
- package/dist/MTag-D9q6faIk.js.map +0 -1
- package/dist/MText-CL-LPcXi.js +0 -45
- package/dist/MText-CL-LPcXi.js.map +0 -1
- package/dist/MText-Dni707tS.cjs +0 -2
- package/dist/MText-Dni707tS.cjs.map +0 -1
- package/dist/MTooltip-ChvuN4Ow.cjs +0 -2
- package/dist/MTooltip-ChvuN4Ow.cjs.map +0 -1
- package/dist/MTooltip-H3we0a7w.js +0 -57
- package/dist/MTooltip-H3we0a7w.js.map +0 -1
- package/dist/MTreeView-B1J7uqd1.js +0 -315
- package/dist/MTreeView-B1J7uqd1.js.map +0 -1
- package/dist/MTreeView-VYp0eErQ.cjs +0 -2
- package/dist/MTreeView-VYp0eErQ.cjs.map +0 -1
- package/dist/calendar-P7MwKfWS.cjs +0 -2
- package/dist/calendar-P7MwKfWS.cjs.map +0 -1
- package/dist/calendar-bzeZRst9.js +0 -193
- package/dist/calendar-bzeZRst9.js.map +0 -1
- package/dist/calendarDates-AnlGcvZM.cjs +0 -2
- package/dist/calendarDates-AnlGcvZM.cjs.map +0 -1
- package/dist/calendarDates-CYkJqcnp.js.map +0 -1
- package/dist/cards-CFDJsdxR.js +0 -1226
- package/dist/cards-CFDJsdxR.js.map +0 -1
- package/dist/cards-DeA7I2KC.cjs +0 -2
- package/dist/cards-DeA7I2KC.cjs.map +0 -1
- package/dist/controls-BKAhqjNM.js +0 -474
- package/dist/controls-BKAhqjNM.js.map +0 -1
- package/dist/controls-KK-TyUTT.cjs +0 -2
- package/dist/controls-KK-TyUTT.cjs.map +0 -1
- package/dist/creditCards-D_HwRUBz.cjs +0 -2
- package/dist/creditCards-D_HwRUBz.cjs.map +0 -1
- package/dist/creditCards-D_iWmtG6.js.map +0 -1
- package/dist/data-CgLutFxU.js +0 -689
- package/dist/data-CgLutFxU.js.map +0 -1
- package/dist/data-DFrkJTlF.cjs +0 -2
- package/dist/data-DFrkJTlF.cjs.map +0 -1
- package/dist/dateUtils-CUY6CRCf.js.map +0 -1
- package/dist/dateUtils-Dq1vaA-D.cjs +0 -2
- package/dist/dateUtils-Dq1vaA-D.cjs.map +0 -1
- package/dist/display--E7rI0tk.cjs +0 -3
- package/dist/display--E7rI0tk.cjs.map +0 -1
- package/dist/display-BnkHKW1n.js +0 -782
- package/dist/display-BnkHKW1n.js.map +0 -1
- package/dist/dropdowns-DGYg9zIh.cjs +0 -2
- package/dist/dropdowns-DGYg9zIh.cjs.map +0 -1
- package/dist/dropdowns-Dq-xAplH.js +0 -1698
- package/dist/dropdowns-Dq-xAplH.js.map +0 -1
- package/dist/feedback-CA77ShtB.cjs +0 -2
- package/dist/feedback-CA77ShtB.cjs.map +0 -1
- package/dist/feedback-CCwbdNZu.js +0 -255
- package/dist/feedback-CCwbdNZu.js.map +0 -1
- package/dist/form-CAFcvmUS.js +0 -167
- package/dist/form-CAFcvmUS.js.map +0 -1
- package/dist/form-DpfzLUOn.cjs +0 -2
- package/dist/form-DpfzLUOn.cjs.map +0 -1
- package/dist/frameworkTexts-DH0Xp-Vx.js +0 -78
- package/dist/frameworkTexts-DH0Xp-Vx.js.map +0 -1
- package/dist/frameworkTexts-iDXhcW6k.cjs +0 -2
- package/dist/frameworkTexts-iDXhcW6k.cjs.map +0 -1
- package/dist/icons-CBMl-kOM.js.map +0 -1
- package/dist/icons-D_NB67he.cjs +0 -2
- package/dist/icons-D_NB67he.cjs.map +0 -1
- package/dist/inputs-B1LCddA4.js +0 -1752
- package/dist/inputs-B1LCddA4.js.map +0 -1
- package/dist/inputs-Clenc4Rm.cjs +0 -2
- package/dist/inputs-Clenc4Rm.cjs.map +0 -1
- package/dist/layout-CNoZdeXw.cjs +0 -2
- package/dist/layout-CNoZdeXw.cjs.map +0 -1
- package/dist/layout-DsE4zfpg.js +0 -882
- package/dist/layout-DsE4zfpg.js.map +0 -1
- package/dist/licensing-DGIdtfNg.cjs +0 -2
- package/dist/licensing-DGIdtfNg.cjs.map +0 -1
- package/dist/licensing-f5KYVz7D.js.map +0 -1
- package/dist/media-DRTBXDnn.cjs +0 -2
- package/dist/media-DRTBXDnn.cjs.map +0 -1
- package/dist/media-vOQOIYFD.js +0 -402
- package/dist/media-vOQOIYFD.js.map +0 -1
- package/dist/overlays-BKk_ZXue.js +0 -568
- package/dist/overlays-BKk_ZXue.js.map +0 -1
- package/dist/overlays-Qbp4d596.cjs +0 -2
- package/dist/overlays-Qbp4d596.cjs.map +0 -1
- package/dist/theme-DAOU1aPs.js.map +0 -1
- package/dist/theme-DgaM4CjM.cjs +0 -2
- package/dist/theme-DgaM4CjM.cjs.map +0 -1
- package/dist/useGhostText-DG0bzcao.js +0 -68
- package/dist/useGhostText-DG0bzcao.js.map +0 -1
- package/dist/useGhostText-Dlemg1vw.cjs +0 -2
- package/dist/useGhostText-Dlemg1vw.cjs.map +0 -1
- package/dist/useKeyboardNav-Bm-dxVq-.cjs +0 -2
- package/dist/useKeyboardNav-Bm-dxVq-.cjs.map +0 -1
- package/dist/useKeyboardNav-iEXOdEMB.js +0 -43
- package/dist/useKeyboardNav-iEXOdEMB.js.map +0 -1
- package/dist/validators-B6yWdsu2.cjs +0 -2
- package/dist/validators-B6yWdsu2.cjs.map +0 -1
- package/dist/validators-DVYOtFnw.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"licensing-BKmoAdfr.js","names":[],"sources":["../src/utils/useClickOutside.ts","../src/utils/licensing.ts"],"sourcesContent":["import {useEffect, type RefObject} from 'react'\n\n// Trigger a callback when pointer interaction happens outside the referenced element.\n// One `pointerdown` (capture phase) covers mouse, touch and pen, so touch devices fire the handler once;\n// browsers without Pointer Events fall back to `mousedown` + `touchstart`.\nexport function useClickOutside(ref: RefObject<HTMLElement | null>, handler: () => void): void {\n useEffect(() => {\n const listener = (e: Event) => {\n if (!ref.current || ref.current.contains(e.target as Node)) return\n handler()\n }\n\n const events =\n typeof window !== 'undefined' && 'PointerEvent' in window ? ['pointerdown'] : ['mousedown', 'touchstart']\n\n for (const type of events) document.addEventListener(type, listener, true)\n return () => {\n for (const type of events) document.removeEventListener(type, listener, true)\n }\n }, [ref, handler])\n}\n","export type MineralPlan = 'free' | 'pro'\n\nexport interface MineralComponentLicense {\n group: 'cards' | 'charts' | 'calendar' | 'data' | 'display' | 'media' | 'icons' | 'layout' | 'feedback'\n plan: MineralPlan\n}\n\nexport const mineralComponentLicenses = {} as const satisfies Record<string, MineralComponentLicense>\n\nexport type MineralProComponentName = keyof typeof mineralComponentLicenses\n\nexport const mineralProComponents = Object.keys(mineralComponentLicenses) as MineralProComponentName[]\n\nexport function isMineralProComponent(componentName: string): componentName is MineralProComponentName {\n return Object.prototype.hasOwnProperty.call(mineralComponentLicenses, componentName)\n}\n\nexport function getMineralComponentLicense(componentName: string): MineralComponentLicense | undefined {\n if (!isMineralProComponent(componentName)) {\n return undefined\n }\n\n return mineralComponentLicenses[componentName]\n}\n\nexport function getMineralComponentPlan(componentName: string): MineralPlan {\n return getMineralComponentLicense(componentName)?.plan ?? 'free'\n}\n"],"mappings":";;AAKA,SAAgB,EAAgB,GAAoC,GAA2B;AAC3F,SAAgB;EACZ,IAAM,KAAY,MAAa;AACvB,IAAC,EAAI,WAAW,EAAI,QAAQ,SAAS,EAAE,OAAe,IAC1D,GAAS;KAGP,IACF,OAAO,SAAW,OAAe,kBAAkB,SAAS,CAAC,cAAc,GAAG,CAAC,aAAa,aAAa;AAE7G,OAAK,IAAM,KAAQ,EAAQ,UAAS,iBAAiB,GAAM,GAAU,GAAK;AAC1E,eAAa;AACT,QAAK,IAAM,KAAQ,EAAQ,UAAS,oBAAoB,GAAM,GAAU,GAAK;;IAElF,CAAC,GAAK,EAAQ,CAAC;;;;ACZtB,IAAa,IAA2B,EAAE,EAI7B,IAAuB,OAAO,KAAK,EAAyB;AAEzE,SAAgB,EAAsB,GAAiE;AACnG,QAAO,OAAO,UAAU,eAAe,KAAK,GAA0B,EAAc;;AAGxF,SAAgB,EAA2B,GAA4D;AAC9F,OAAsB,EAAc,CAIzC,QAAO,EAAyB;;AAGpC,SAAgB,EAAwB,GAAoC;AACxE,QAAO,EAA2B,EAAc,EAAE,QAAQ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./core-w629c4ND.cjs`);let e=require(`react`);function t(t,n){(0,e.useEffect)(()=>{let e=e=>{!t.current||t.current.contains(e.target)||n()},r=typeof window<`u`&&`PointerEvent`in window?[`pointerdown`]:[`mousedown`,`touchstart`];for(let t of r)document.addEventListener(t,e,!0);return()=>{for(let t of r)document.removeEventListener(t,e,!0)}},[t,n])}var n={},r=Object.keys(n);function i(e){return Object.prototype.hasOwnProperty.call(n,e)}function a(e){if(i(e))return n[e]}function o(e){return a(e)?.plan??`free`}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
2
|
+
//# sourceMappingURL=licensing-DVgjkw-s.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"licensing-DVgjkw-s.cjs","names":[],"sources":["../src/utils/useClickOutside.ts","../src/utils/licensing.ts"],"sourcesContent":["import {useEffect, type RefObject} from 'react'\n\n// Trigger a callback when pointer interaction happens outside the referenced element.\n// One `pointerdown` (capture phase) covers mouse, touch and pen, so touch devices fire the handler once;\n// browsers without Pointer Events fall back to `mousedown` + `touchstart`.\nexport function useClickOutside(ref: RefObject<HTMLElement | null>, handler: () => void): void {\n useEffect(() => {\n const listener = (e: Event) => {\n if (!ref.current || ref.current.contains(e.target as Node)) return\n handler()\n }\n\n const events =\n typeof window !== 'undefined' && 'PointerEvent' in window ? ['pointerdown'] : ['mousedown', 'touchstart']\n\n for (const type of events) document.addEventListener(type, listener, true)\n return () => {\n for (const type of events) document.removeEventListener(type, listener, true)\n }\n }, [ref, handler])\n}\n","export type MineralPlan = 'free' | 'pro'\n\nexport interface MineralComponentLicense {\n group: 'cards' | 'charts' | 'calendar' | 'data' | 'display' | 'media' | 'icons' | 'layout' | 'feedback'\n plan: MineralPlan\n}\n\nexport const mineralComponentLicenses = {} as const satisfies Record<string, MineralComponentLicense>\n\nexport type MineralProComponentName = keyof typeof mineralComponentLicenses\n\nexport const mineralProComponents = Object.keys(mineralComponentLicenses) as MineralProComponentName[]\n\nexport function isMineralProComponent(componentName: string): componentName is MineralProComponentName {\n return Object.prototype.hasOwnProperty.call(mineralComponentLicenses, componentName)\n}\n\nexport function getMineralComponentLicense(componentName: string): MineralComponentLicense | undefined {\n if (!isMineralProComponent(componentName)) {\n return undefined\n }\n\n return mineralComponentLicenses[componentName]\n}\n\nexport function getMineralComponentPlan(componentName: string): MineralPlan {\n return getMineralComponentLicense(componentName)?.plan ?? 'free'\n}\n"],"mappings":"sDAKA,SAAgB,EAAgB,EAAoC,EAA2B,EAC3F,EAAA,EAAA,eAAgB,CACZ,IAAM,EAAY,GAAa,CACvB,CAAC,EAAI,SAAW,EAAI,QAAQ,SAAS,EAAE,OAAe,EAC1D,GAAS,EAGP,EACF,OAAO,OAAW,KAAe,iBAAkB,OAAS,CAAC,cAAc,CAAG,CAAC,YAAa,aAAa,CAE7G,IAAK,IAAM,KAAQ,EAAQ,SAAS,iBAAiB,EAAM,EAAU,GAAK,CAC1E,UAAa,CACT,IAAK,IAAM,KAAQ,EAAQ,SAAS,oBAAoB,EAAM,EAAU,GAAK,GAElF,CAAC,EAAK,EAAQ,CAAC,CCZtB,IAAa,EAA2B,EAAE,CAI7B,EAAuB,OAAO,KAAK,EAAyB,CAEzE,SAAgB,EAAsB,EAAiE,CACnG,OAAO,OAAO,UAAU,eAAe,KAAK,EAA0B,EAAc,CAGxF,SAAgB,EAA2B,EAA4D,CAC9F,KAAsB,EAAc,CAIzC,OAAO,EAAyB,GAGpC,SAAgB,EAAwB,EAAoC,CACxE,OAAO,EAA2B,EAAc,EAAE,MAAQ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`./core-
|
|
2
|
-
//# sourceMappingURL=locale-
|
|
1
|
+
require(`./core-w629c4ND.cjs`);let e=require(`react`);function t(){if(typeof document<`u`){let e=document.documentElement.lang?.trim();if(e)return e}return typeof navigator<`u`&&(navigator.language||navigator.languages?.[0])||`en`}function n(n){let[r,i]=(0,e.useState)(()=>n||t());return(0,e.useEffect)(()=>{if(n){i(n);return}if(typeof document>`u`)return;let e=()=>i(t());e();let r=new MutationObserver(e);return r.observe(document.documentElement,{attributes:!0,attributeFilter:[`lang`]}),window.addEventListener(`languagechange`,e),()=>{r.disconnect(),window.removeEventListener(`languagechange`,e)}},[n]),r}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
|
|
2
|
+
//# sourceMappingURL=locale-C08q7FjE.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale-
|
|
1
|
+
{"version":3,"file":"locale-C08q7FjE.cjs","names":[],"sources":["../src/utils/locale.ts"],"sourcesContent":["import {useEffect, useState} from 'react'\n\nexport function resolveRuntimeLocale(): string {\n if (typeof document !== 'undefined') {\n const lang = document.documentElement.lang?.trim()\n if (lang) return lang\n }\n\n if (typeof navigator !== 'undefined') {\n return navigator.language || navigator.languages?.[0] || 'en'\n }\n\n return 'en'\n}\n\n// React to MI18nProvider lang updates without requiring direct provider access.\nexport function useDocumentLocale(explicitLocale?: string): string {\n const [locale, setLocale] = useState(() => explicitLocale || resolveRuntimeLocale())\n\n useEffect(() => {\n if (explicitLocale) {\n setLocale(explicitLocale)\n return\n }\n\n if (typeof document === 'undefined') return\n\n const update = () => setLocale(resolveRuntimeLocale())\n update()\n\n const observer = new MutationObserver(update)\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['lang'],\n })\n\n window.addEventListener('languagechange', update)\n\n return () => {\n observer.disconnect()\n window.removeEventListener('languagechange', update)\n }\n }, [explicitLocale])\n\n return locale\n}\n"],"mappings":"sDAEA,SAAgB,GAA+B,CAC3C,GAAI,OAAO,SAAa,IAAa,CACjC,IAAM,EAAO,SAAS,gBAAgB,MAAM,MAAM,CAClD,GAAI,EAAM,OAAO,EAOrB,OAJI,OAAO,UAAc,MACd,UAAU,UAAY,UAAU,YAAY,KAGhD,KAIX,SAAgB,EAAkB,EAAiC,CAC/D,GAAM,CAAC,EAAQ,IAAA,EAAA,EAAA,cAA4B,GAAkB,GAAsB,CAAC,CA2BpF,OAzBA,EAAA,EAAA,eAAgB,CACZ,GAAI,EAAgB,CAChB,EAAU,EAAe,CACzB,OAGJ,GAAI,OAAO,SAAa,IAAa,OAErC,IAAM,MAAe,EAAU,GAAsB,CAAC,CACtD,GAAQ,CAER,IAAM,EAAW,IAAI,iBAAiB,EAAO,CAQ7C,OAPA,EAAS,QAAQ,SAAS,gBAAiB,CACvC,WAAY,GACZ,gBAAiB,CAAC,OAAO,CAC5B,CAAC,CAEF,OAAO,iBAAiB,iBAAkB,EAAO,KAEpC,CACT,EAAS,YAAY,CACrB,OAAO,oBAAoB,iBAAkB,EAAO,GAEzD,CAAC,EAAe,CAAC,CAEb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale-
|
|
1
|
+
{"version":3,"file":"locale-CjJpk9GN.js","names":[],"sources":["../src/utils/locale.ts"],"sourcesContent":["import {useEffect, useState} from 'react'\n\nexport function resolveRuntimeLocale(): string {\n if (typeof document !== 'undefined') {\n const lang = document.documentElement.lang?.trim()\n if (lang) return lang\n }\n\n if (typeof navigator !== 'undefined') {\n return navigator.language || navigator.languages?.[0] || 'en'\n }\n\n return 'en'\n}\n\n// React to MI18nProvider lang updates without requiring direct provider access.\nexport function useDocumentLocale(explicitLocale?: string): string {\n const [locale, setLocale] = useState(() => explicitLocale || resolveRuntimeLocale())\n\n useEffect(() => {\n if (explicitLocale) {\n setLocale(explicitLocale)\n return\n }\n\n if (typeof document === 'undefined') return\n\n const update = () => setLocale(resolveRuntimeLocale())\n update()\n\n const observer = new MutationObserver(update)\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['lang'],\n })\n\n window.addEventListener('languagechange', update)\n\n return () => {\n observer.disconnect()\n window.removeEventListener('languagechange', update)\n }\n }, [explicitLocale])\n\n return locale\n}\n"],"mappings":";;AAEA,SAAgB,IAA+B;AAC3C,KAAI,OAAO,WAAa,KAAa;EACjC,IAAM,IAAO,SAAS,gBAAgB,MAAM,MAAM;AAClD,MAAI,EAAM,QAAO;;AAOrB,QAJI,OAAO,YAAc,QACd,UAAU,YAAY,UAAU,YAAY,OAGhD;;AAIX,SAAgB,EAAkB,GAAiC;CAC/D,IAAM,CAAC,GAAQ,KAAa,QAAe,KAAkB,GAAsB,CAAC;AA2BpF,QAzBA,QAAgB;AACZ,MAAI,GAAgB;AAChB,KAAU,EAAe;AACzB;;AAGJ,MAAI,OAAO,WAAa,IAAa;EAErC,IAAM,UAAe,EAAU,GAAsB,CAAC;AACtD,KAAQ;EAER,IAAM,IAAW,IAAI,iBAAiB,EAAO;AAQ7C,SAPA,EAAS,QAAQ,SAAS,iBAAiB;GACvC,YAAY;GACZ,iBAAiB,CAAC,OAAO;GAC5B,CAAC,EAEF,OAAO,iBAAiB,kBAAkB,EAAO,QAEpC;AAET,GADA,EAAS,YAAY,EACrB,OAAO,oBAAoB,kBAAkB,EAAO;;IAEzD,CAAC,EAAe,CAAC,EAEb"}
|
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
import { r as e } from "./theme-B_juOenJ.js";
|
|
2
|
+
import { g as t, s as n, t as r } from "./frameworkTexts-o43FqY1A.js";
|
|
3
|
+
import { Ji as i, Xi as a, br as o, qi as s, xr as c } from "./icons-IqEBmGh3.js";
|
|
4
|
+
import { t as l } from "./cn-CUSXNnjF.js";
|
|
5
|
+
import { t as u } from "./useInteractionEffect-DtpbVd77.js";
|
|
6
|
+
import { c as d, r as f } from "./useModalLayer-CpOPSDbf.js";
|
|
7
|
+
import { t as p } from "./MButton-KELyyBw1.js";
|
|
8
|
+
import { n as m, t as h } from "./MSkeleton-BpcpBBJq.js";
|
|
9
|
+
import { n as g } from "./radioGroupKeys-Bm-Qeh8G.js";
|
|
10
|
+
import { t as _ } from "./scrollLock-D27VmgPV.js";
|
|
11
|
+
import { Children as v, useCallback as y, useEffect as b, useId as x, useMemo as ee, useRef as S, useState as C } from "react";
|
|
12
|
+
import { Fragment as w, jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
13
|
+
//#region src/components/media/MMediaLightbox/MMediaLightbox.tsx
|
|
14
|
+
function te({ open: e, items: t, activeIndex: r, onClose: o, onActiveIndexChange: c }) {
|
|
15
|
+
let u = n(), h = t[r], g = S(null), v = S(null), y = r > 0, x = r < t.length - 1;
|
|
16
|
+
if (f({
|
|
17
|
+
active: e && !!h,
|
|
18
|
+
containerRef: v,
|
|
19
|
+
onEscape: o
|
|
20
|
+
}), b(() => {
|
|
21
|
+
if (!e) return;
|
|
22
|
+
let t = (e) => {
|
|
23
|
+
e.key === "ArrowLeft" && y && c(r - 1), e.key === "ArrowRight" && x && c(r + 1);
|
|
24
|
+
};
|
|
25
|
+
return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
|
|
26
|
+
}, [
|
|
27
|
+
r,
|
|
28
|
+
x,
|
|
29
|
+
y,
|
|
30
|
+
c,
|
|
31
|
+
o,
|
|
32
|
+
e
|
|
33
|
+
]), b(() => {
|
|
34
|
+
if (e) return _();
|
|
35
|
+
}, [e]), !e || !h) return null;
|
|
36
|
+
let ee = (e) => {
|
|
37
|
+
let t = e.target;
|
|
38
|
+
t && g.current && !g.current.contains(t) && o();
|
|
39
|
+
}, C = h.alt || h.caption || u.imagePreview;
|
|
40
|
+
return /* @__PURE__ */ T(d, { children: /* @__PURE__ */ T("div", {
|
|
41
|
+
ref: v,
|
|
42
|
+
className: l("mineral-backdrop", "media-lightbox-backdrop"),
|
|
43
|
+
onMouseDown: ee,
|
|
44
|
+
children: /* @__PURE__ */ T("div", {
|
|
45
|
+
className: "media-lightbox-shell",
|
|
46
|
+
role: "dialog",
|
|
47
|
+
"aria-modal": "true",
|
|
48
|
+
"aria-label": C,
|
|
49
|
+
children: /* @__PURE__ */ T("div", {
|
|
50
|
+
className: "media-lightbox-stage",
|
|
51
|
+
children: /* @__PURE__ */ E("div", {
|
|
52
|
+
ref: g,
|
|
53
|
+
className: "media-lightbox-frame",
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ E("div", {
|
|
56
|
+
className: "media-lightbox-topbar",
|
|
57
|
+
children: [/* @__PURE__ */ T(m, {
|
|
58
|
+
color: "dark",
|
|
59
|
+
size: "md",
|
|
60
|
+
rounded: !0,
|
|
61
|
+
className: "media-lightbox-counter",
|
|
62
|
+
children: t.length > 1 ? `${r + 1} / ${t.length}` : u.preview
|
|
63
|
+
}), /* @__PURE__ */ T(p, {
|
|
64
|
+
type: "button",
|
|
65
|
+
variant: "ghost",
|
|
66
|
+
color: "error",
|
|
67
|
+
size: "lg",
|
|
68
|
+
shape: "circle",
|
|
69
|
+
iconOnly: !0,
|
|
70
|
+
className: "media-lightbox-action",
|
|
71
|
+
"aria-label": u.closePreview,
|
|
72
|
+
onClick: o,
|
|
73
|
+
children: /* @__PURE__ */ T(a, {})
|
|
74
|
+
})]
|
|
75
|
+
}),
|
|
76
|
+
/* @__PURE__ */ T(p, {
|
|
77
|
+
type: "button",
|
|
78
|
+
variant: "ghost",
|
|
79
|
+
color: "primary",
|
|
80
|
+
size: "lg",
|
|
81
|
+
shape: "circle",
|
|
82
|
+
iconOnly: !0,
|
|
83
|
+
className: "media-lightbox-nav media-lightbox-nav-prev",
|
|
84
|
+
"aria-label": u.previousImage,
|
|
85
|
+
disabled: t.length <= 1 || !y,
|
|
86
|
+
onClick: () => y && c(r - 1),
|
|
87
|
+
children: /* @__PURE__ */ T(i, {})
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ T("img", {
|
|
90
|
+
className: "media-lightbox-image",
|
|
91
|
+
src: h.src,
|
|
92
|
+
alt: h.alt || ""
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ T(p, {
|
|
95
|
+
type: "button",
|
|
96
|
+
variant: "ghost",
|
|
97
|
+
color: "primary",
|
|
98
|
+
size: "lg",
|
|
99
|
+
shape: "circle",
|
|
100
|
+
iconOnly: !0,
|
|
101
|
+
className: "media-lightbox-nav media-lightbox-nav-next",
|
|
102
|
+
"aria-label": u.nextImage,
|
|
103
|
+
disabled: t.length <= 1 || !x,
|
|
104
|
+
onClick: () => x && c(r + 1),
|
|
105
|
+
children: /* @__PURE__ */ T(s, {})
|
|
106
|
+
}),
|
|
107
|
+
h.caption || h.alt ? /* @__PURE__ */ T(m, {
|
|
108
|
+
color: "dark",
|
|
109
|
+
size: "sm",
|
|
110
|
+
rounded: !0,
|
|
111
|
+
className: "media-lightbox-caption",
|
|
112
|
+
children: h.caption || h.alt
|
|
113
|
+
}) : null
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
})
|
|
117
|
+
})
|
|
118
|
+
}) });
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region src/components/media/mediaPreviewRegistry.ts
|
|
122
|
+
var D = /* @__PURE__ */ new Map();
|
|
123
|
+
function ne(e, t, n) {
|
|
124
|
+
let r = D.get(e);
|
|
125
|
+
return r || (r = /* @__PURE__ */ new Map(), D.set(e, r)), r.set(t, {
|
|
126
|
+
id: t,
|
|
127
|
+
...n
|
|
128
|
+
}), () => {
|
|
129
|
+
let n = D.get(e);
|
|
130
|
+
n && (n.delete(t), n.size === 0 && D.delete(e));
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
function re(e) {
|
|
134
|
+
return Array.from(D.get(e)?.values() ?? []);
|
|
135
|
+
}
|
|
136
|
+
//#endregion
|
|
137
|
+
//#region src/components/media/mediaInteraction.ts
|
|
138
|
+
function O(e) {
|
|
139
|
+
return e === "zoom" || e === "zoom-dim";
|
|
140
|
+
}
|
|
141
|
+
function k(e) {
|
|
142
|
+
return e === "dim" || e === "zoom-dim";
|
|
143
|
+
}
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region src/components/media/MImage/MImage.tsx
|
|
146
|
+
var A = {
|
|
147
|
+
"1:1": "1 / 1",
|
|
148
|
+
"4:3": "4 / 3",
|
|
149
|
+
"16:9": "16 / 9",
|
|
150
|
+
"21:9": "21 / 9"
|
|
151
|
+
};
|
|
152
|
+
function j(e) {
|
|
153
|
+
if (e != null) return typeof e == "number" ? `${e}px` : e;
|
|
154
|
+
}
|
|
155
|
+
function M({ src: t, fit: i = "cover", ratio: a = "auto", width: o, height: s, hidden: c, hiddenAbove: d, rounded: f = !1, bordered: p = !1, shadow: m = !1, preview: g = !1, previewGroup: _, hoverEffect: v = "none", clickEffect: y = "none", fallback: S, skeleton: D = !1, className: M, style: ie, alt: N, onError: ae, ...P }) {
|
|
156
|
+
let F = n(), [oe, se] = C(!1), [I, L] = C(!1), [R, z] = C([]), [B, V] = C(0), H = x(), { effectClassName: U, effectLayer: W, handlePointerDown: G } = u({ effect: D ? "none" : y }), K = (e) => {
|
|
157
|
+
S && !oe && (se(!0), e.currentTarget.src = S), ae?.(e);
|
|
158
|
+
}, q = j(o), J = j(s), Y = q != null || J != null, X = a !== "auto" && !!A[a], Z = {};
|
|
159
|
+
q != null && (Z.width = q), J != null && (Z.height = J);
|
|
160
|
+
let Q = {
|
|
161
|
+
...ie,
|
|
162
|
+
...X ? { aspectRatio: A[a] } : null,
|
|
163
|
+
...Z
|
|
164
|
+
}, $ = oe && S ? S : t, ce = ee(() => ({
|
|
165
|
+
src: $ || "",
|
|
166
|
+
alt: N ?? "",
|
|
167
|
+
caption: typeof P.title == "string" ? P.title : void 0
|
|
168
|
+
}), [
|
|
169
|
+
N,
|
|
170
|
+
$,
|
|
171
|
+
P.title
|
|
172
|
+
]);
|
|
173
|
+
if (b(() => {
|
|
174
|
+
if (!(!g || !_ || !$)) return ne(_, H, ce);
|
|
175
|
+
}, [
|
|
176
|
+
g,
|
|
177
|
+
_,
|
|
178
|
+
H,
|
|
179
|
+
ce,
|
|
180
|
+
$
|
|
181
|
+
]), D) return /* @__PURE__ */ T(h, {
|
|
182
|
+
variant: "rectangle",
|
|
183
|
+
animate: "pulse",
|
|
184
|
+
className: l("image-skeleton", f && "rounded", p && "bordered", M),
|
|
185
|
+
style: Q,
|
|
186
|
+
"aria-label": F.loading,
|
|
187
|
+
...e(c, d)
|
|
188
|
+
});
|
|
189
|
+
let le = () => {
|
|
190
|
+
if (!(!g || !$)) {
|
|
191
|
+
if (_) {
|
|
192
|
+
let e = re(_), t = e.findIndex((e) => e.id === H);
|
|
193
|
+
if (e.length > 0 && t >= 0) {
|
|
194
|
+
z(e.map(({ id: e, ...t }) => t)), V(t), L(!0);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
z([ce]), V(0), L(!0);
|
|
199
|
+
}
|
|
200
|
+
}, ue = l("image", i, !W && f && "rounded", !W && p && "bordered", !W && m && "shadow"), de = X || Y || !!W || g || v !== "none", fe = l("image-wrap", X && "has-ratio", Y && "has-size", f && "rounded", p && "bordered", m && "shadow", g && "preview", O(v) && "effect-zoom", k(v) && "effect-dim", U, M), pe = /* @__PURE__ */ T("img", {
|
|
201
|
+
className: ue,
|
|
202
|
+
onError: K,
|
|
203
|
+
src: $,
|
|
204
|
+
...P,
|
|
205
|
+
alt: N ?? ""
|
|
206
|
+
});
|
|
207
|
+
return de ? /* @__PURE__ */ E(w, { children: [g ? /* @__PURE__ */ E("button", {
|
|
208
|
+
type: "button",
|
|
209
|
+
className: l(fe, "image-button"),
|
|
210
|
+
"aria-label": r(F.previewItem, { name: N || F.image }),
|
|
211
|
+
onClick: le,
|
|
212
|
+
onPointerDown: W ? G : void 0,
|
|
213
|
+
disabled: !$,
|
|
214
|
+
...e(c, d),
|
|
215
|
+
style: Q,
|
|
216
|
+
children: [W, pe]
|
|
217
|
+
}) : /* @__PURE__ */ E("span", {
|
|
218
|
+
className: fe,
|
|
219
|
+
onPointerDown: W ? G : void 0,
|
|
220
|
+
...e(c, d),
|
|
221
|
+
style: Q,
|
|
222
|
+
children: [W, pe]
|
|
223
|
+
}), /* @__PURE__ */ T(te, {
|
|
224
|
+
open: I,
|
|
225
|
+
items: R,
|
|
226
|
+
activeIndex: B,
|
|
227
|
+
onActiveIndexChange: V,
|
|
228
|
+
onClose: () => L(!1)
|
|
229
|
+
})] }) : /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T("img", {
|
|
230
|
+
className: l(ue, M),
|
|
231
|
+
style: Q,
|
|
232
|
+
onError: K,
|
|
233
|
+
src: $,
|
|
234
|
+
...e(c, d),
|
|
235
|
+
...P,
|
|
236
|
+
alt: N ?? ""
|
|
237
|
+
}), /* @__PURE__ */ T(te, {
|
|
238
|
+
open: I,
|
|
239
|
+
items: R,
|
|
240
|
+
activeIndex: B,
|
|
241
|
+
onActiveIndexChange: V,
|
|
242
|
+
onClose: () => L(!1)
|
|
243
|
+
})] });
|
|
244
|
+
}
|
|
245
|
+
//#endregion
|
|
246
|
+
//#region src/components/media/MGallery/MGallery.tsx
|
|
247
|
+
function ie({ items: e, columns: t = 3, rounded: n = !0, preview: r = !1, hoverEffect: i = "zoom", clickEffect: a = "ripple", className: o, ...s }) {
|
|
248
|
+
let [c, u] = C(!1), [d, f] = C(0);
|
|
249
|
+
return /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T("div", {
|
|
250
|
+
className: l("gallery", `columns-${t}`, o),
|
|
251
|
+
...s,
|
|
252
|
+
children: e.map((e, t) => /* @__PURE__ */ T(N, {
|
|
253
|
+
item: e,
|
|
254
|
+
rounded: n,
|
|
255
|
+
preview: r,
|
|
256
|
+
hoverEffect: i,
|
|
257
|
+
clickEffect: a,
|
|
258
|
+
onOpen: () => {
|
|
259
|
+
f(t), u(!0);
|
|
260
|
+
}
|
|
261
|
+
}, t))
|
|
262
|
+
}), /* @__PURE__ */ T(te, {
|
|
263
|
+
open: c,
|
|
264
|
+
items: e,
|
|
265
|
+
activeIndex: d,
|
|
266
|
+
onActiveIndexChange: f,
|
|
267
|
+
onClose: () => u(!1)
|
|
268
|
+
})] });
|
|
269
|
+
}
|
|
270
|
+
function N({ item: e, rounded: t, preview: i, hoverEffect: a, clickEffect: o, onOpen: s }) {
|
|
271
|
+
let c = n(), { effectClassName: d, effectLayer: f, handlePointerDown: p } = u({ effect: o });
|
|
272
|
+
return /* @__PURE__ */ T("figure", {
|
|
273
|
+
className: l("gallery-item", t && "rounded"),
|
|
274
|
+
children: i ? /* @__PURE__ */ E("button", {
|
|
275
|
+
type: "button",
|
|
276
|
+
className: l("gallery-trigger", t && "rounded", "gallery-button", O(a) && "effect-zoom", k(a) && "effect-dim", d),
|
|
277
|
+
onClick: s,
|
|
278
|
+
onPointerDown: p,
|
|
279
|
+
"aria-label": r(c.previewItem, { name: e.alt || c.image }),
|
|
280
|
+
children: [
|
|
281
|
+
/* @__PURE__ */ T("img", {
|
|
282
|
+
className: "gallery-image",
|
|
283
|
+
src: e.thumbnail || e.src,
|
|
284
|
+
alt: e.alt || "",
|
|
285
|
+
loading: "lazy"
|
|
286
|
+
}),
|
|
287
|
+
e.caption && /* @__PURE__ */ T("span", {
|
|
288
|
+
className: "gallery-caption",
|
|
289
|
+
children: e.caption
|
|
290
|
+
}),
|
|
291
|
+
f
|
|
292
|
+
]
|
|
293
|
+
}) : /* @__PURE__ */ E("div", {
|
|
294
|
+
className: l("gallery-trigger", t && "rounded", O(a) && "effect-zoom", k(a) && "effect-dim", d),
|
|
295
|
+
onPointerDown: p,
|
|
296
|
+
children: [
|
|
297
|
+
/* @__PURE__ */ T("img", {
|
|
298
|
+
className: "gallery-image",
|
|
299
|
+
src: e.thumbnail || e.src,
|
|
300
|
+
alt: e.alt || "",
|
|
301
|
+
loading: "lazy"
|
|
302
|
+
}),
|
|
303
|
+
e.caption && /* @__PURE__ */ T("span", {
|
|
304
|
+
className: "gallery-caption",
|
|
305
|
+
children: e.caption
|
|
306
|
+
}),
|
|
307
|
+
f
|
|
308
|
+
]
|
|
309
|
+
})
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
//#endregion
|
|
313
|
+
//#region src/components/media/carouselA11y.ts
|
|
314
|
+
var ae = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"], [role=\"slider\"], [role=\"spinbutton\"], [role=\"textbox\"], [role=\"combobox\"], [role=\"listbox\"], [role=\"grid\"], [role=\"tablist\"], [role=\"menu\"]";
|
|
315
|
+
function P(e) {
|
|
316
|
+
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || e.key !== "ArrowLeft" && e.key !== "ArrowRight") return null;
|
|
317
|
+
let t = e.target;
|
|
318
|
+
return t instanceof Element && t.closest(ae) ? null : e.key === "ArrowRight" === g(e.currentTarget) ? -1 : 1;
|
|
319
|
+
}
|
|
320
|
+
function F() {
|
|
321
|
+
if (typeof window > "u" || typeof window.matchMedia != "function") return !1;
|
|
322
|
+
try {
|
|
323
|
+
return window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
324
|
+
} catch {
|
|
325
|
+
return !1;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
function oe() {
|
|
329
|
+
let [e, t] = C(!1);
|
|
330
|
+
return b(() => {
|
|
331
|
+
if (typeof window > "u" || typeof window.matchMedia != "function") return;
|
|
332
|
+
let e;
|
|
333
|
+
try {
|
|
334
|
+
e = window.matchMedia("(prefers-reduced-motion: reduce)");
|
|
335
|
+
} catch {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
t(F());
|
|
339
|
+
let n = () => t(e.matches);
|
|
340
|
+
return e.addEventListener?.("change", n), () => e.removeEventListener?.("change", n);
|
|
341
|
+
}, []), e;
|
|
342
|
+
}
|
|
343
|
+
//#endregion
|
|
344
|
+
//#region src/components/media/MCarousel/MCarousel.tsx
|
|
345
|
+
function se({ autoPlay: e = !1, interval: a = 5e3, showDots: u = !0, showArrows: d = !0, loop: f = !0, draggable: m = !0, transition: h = "slide", className: g, children: _, onMouseEnter: ee, onMouseLeave: te, onFocus: D, onBlur: ne, onKeyDown: re, ...O }) {
|
|
346
|
+
let k = n(), A = t(), j = `${x()}-carousel-track`, M = oe(), [ie, N] = C("auto"), [ae, F] = C(!1), [se, I] = C(!1), L = S(null), R = v.toArray(_), z = R.length, [B, V] = C(0), [H, U] = C(0), [W, G] = C(!1), K = S(0), q = S(null), J = y((e) => {
|
|
347
|
+
V(f ? (e + z) % z : Math.max(0, Math.min(e, z - 1)));
|
|
348
|
+
}, [z, f]), Y = y(() => J(B - 1), [B, J]), X = y(() => J(B + 1), [B, J]), Z = e && z > 1, Q = Z && (ie === "running" || ie === "auto" && !M), $ = ae || se || W;
|
|
349
|
+
b(() => {
|
|
350
|
+
if (!Q || $) return;
|
|
351
|
+
let e = setInterval(X, a);
|
|
352
|
+
return () => clearInterval(e);
|
|
353
|
+
}, [
|
|
354
|
+
Q,
|
|
355
|
+
$,
|
|
356
|
+
a,
|
|
357
|
+
X
|
|
358
|
+
]);
|
|
359
|
+
let ce = (e) => {
|
|
360
|
+
m && (G(!0), K.current = e, U(0));
|
|
361
|
+
}, le = (e) => {
|
|
362
|
+
W && U(e - K.current);
|
|
363
|
+
}, ue = () => {
|
|
364
|
+
W && (G(!1), H < -50 ? X() : H > 50 && Y(), U(0));
|
|
365
|
+
}, de = (e) => {
|
|
366
|
+
m && (e.currentTarget.setPointerCapture(e.pointerId), ce(e.clientX));
|
|
367
|
+
}, fe = (e) => {
|
|
368
|
+
le(e.clientX);
|
|
369
|
+
}, pe = () => {
|
|
370
|
+
ue();
|
|
371
|
+
};
|
|
372
|
+
if (z === 0) return null;
|
|
373
|
+
let me = (e) => {
|
|
374
|
+
I(!L.current?.contains(e.target)), D?.(e);
|
|
375
|
+
}, he = (e) => {
|
|
376
|
+
let t = e.relatedTarget;
|
|
377
|
+
(!t || !e.currentTarget.contains(t)) && I(!1), ne?.(e);
|
|
378
|
+
}, ge = (e) => {
|
|
379
|
+
if (re?.(e), e.defaultPrevented || z <= 1) return;
|
|
380
|
+
let t = P(e);
|
|
381
|
+
t !== null && (e.preventDefault(), J(B + t));
|
|
382
|
+
}, _e = h === "fade", ve = _e ? void 0 : { transform: `translateX(calc(-${B * 100}% + ${W ? H : 0}px))` };
|
|
383
|
+
return /* @__PURE__ */ E("div", {
|
|
384
|
+
className: l("carousel", _e && "fade", g),
|
|
385
|
+
role: "region",
|
|
386
|
+
"aria-roledescription": A.carouselRoleDescription,
|
|
387
|
+
"aria-label": O["aria-labelledby"] ? void 0 : A.carouselLabel,
|
|
388
|
+
...O,
|
|
389
|
+
onMouseEnter: (e) => {
|
|
390
|
+
F(!0), ee?.(e);
|
|
391
|
+
},
|
|
392
|
+
onMouseLeave: (e) => {
|
|
393
|
+
F(!1), te?.(e);
|
|
394
|
+
},
|
|
395
|
+
onFocus: me,
|
|
396
|
+
onBlur: he,
|
|
397
|
+
onKeyDown: ge,
|
|
398
|
+
children: [
|
|
399
|
+
Z && /* @__PURE__ */ T(p, {
|
|
400
|
+
ref: L,
|
|
401
|
+
variant: "ghost",
|
|
402
|
+
color: "primary",
|
|
403
|
+
iconOnly: !0,
|
|
404
|
+
shape: "circle",
|
|
405
|
+
size: "sm",
|
|
406
|
+
className: "carousel-rotation",
|
|
407
|
+
"aria-label": Q ? A.stopRotation : A.startRotation,
|
|
408
|
+
"aria-controls": j,
|
|
409
|
+
onClick: () => N(Q ? "stopped" : "running"),
|
|
410
|
+
children: T(Q ? o : c, {})
|
|
411
|
+
}),
|
|
412
|
+
/* @__PURE__ */ T("div", {
|
|
413
|
+
className: "carousel-viewport",
|
|
414
|
+
onPointerDown: de,
|
|
415
|
+
onPointerMove: fe,
|
|
416
|
+
onPointerUp: pe,
|
|
417
|
+
onPointerCancel: pe,
|
|
418
|
+
onDragStart: (e) => {
|
|
419
|
+
m && e.preventDefault();
|
|
420
|
+
},
|
|
421
|
+
style: {
|
|
422
|
+
touchAction: m ? "pan-y" : void 0,
|
|
423
|
+
cursor: m ? W ? "grabbing" : "grab" : void 0
|
|
424
|
+
},
|
|
425
|
+
children: /* @__PURE__ */ T("div", {
|
|
426
|
+
ref: q,
|
|
427
|
+
id: j,
|
|
428
|
+
className: l("carousel-track", W && "dragging"),
|
|
429
|
+
style: ve,
|
|
430
|
+
"aria-live": Q && !$ ? "off" : "polite",
|
|
431
|
+
children: R.map((e, t) => /* @__PURE__ */ T("div", {
|
|
432
|
+
className: l("carousel-slide", _e && t === B && "active", _e && t !== B && "hidden"),
|
|
433
|
+
role: "group",
|
|
434
|
+
"aria-roledescription": A.slideRoleDescription,
|
|
435
|
+
"aria-label": r(A.slideOf, {
|
|
436
|
+
index: t + 1,
|
|
437
|
+
count: z
|
|
438
|
+
}),
|
|
439
|
+
"aria-hidden": t !== B || void 0,
|
|
440
|
+
inert: t === B ? void 0 : !0,
|
|
441
|
+
children: e
|
|
442
|
+
}, t))
|
|
443
|
+
})
|
|
444
|
+
}),
|
|
445
|
+
d && z > 1 && /* @__PURE__ */ E(w, { children: [/* @__PURE__ */ T(p, {
|
|
446
|
+
variant: "ghost",
|
|
447
|
+
color: "primary",
|
|
448
|
+
iconOnly: !0,
|
|
449
|
+
shape: "circle",
|
|
450
|
+
onClick: Y,
|
|
451
|
+
"aria-label": k.previousSlide,
|
|
452
|
+
"aria-controls": j,
|
|
453
|
+
className: "carousel-arrow carousel-arrow-prev",
|
|
454
|
+
children: /* @__PURE__ */ T(i, {})
|
|
455
|
+
}), /* @__PURE__ */ T(p, {
|
|
456
|
+
variant: "ghost",
|
|
457
|
+
color: "primary",
|
|
458
|
+
iconOnly: !0,
|
|
459
|
+
shape: "circle",
|
|
460
|
+
onClick: X,
|
|
461
|
+
"aria-label": k.nextSlide,
|
|
462
|
+
"aria-controls": j,
|
|
463
|
+
className: "carousel-arrow carousel-arrow-next",
|
|
464
|
+
children: /* @__PURE__ */ T(s, {})
|
|
465
|
+
})] }),
|
|
466
|
+
u && z > 1 && /* @__PURE__ */ T("div", {
|
|
467
|
+
className: "carousel-dots",
|
|
468
|
+
role: "group",
|
|
469
|
+
"aria-label": A.chooseSlide,
|
|
470
|
+
children: R.map((e, t) => /* @__PURE__ */ T("button", {
|
|
471
|
+
className: l("carousel-dot", t === B && "active"),
|
|
472
|
+
onClick: () => J(t),
|
|
473
|
+
"aria-label": r(k.slideNumber, { index: t + 1 }),
|
|
474
|
+
"aria-current": t === B ? "true" : void 0,
|
|
475
|
+
"aria-controls": j,
|
|
476
|
+
type: "button"
|
|
477
|
+
}, t))
|
|
478
|
+
})
|
|
479
|
+
]
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
//#endregion
|
|
483
|
+
export { ie as n, M as r, se as t };
|
|
484
|
+
|
|
485
|
+
//# sourceMappingURL=media-fiasAbBv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-fiasAbBv.js","names":[],"sources":["../src/components/media/MMediaLightbox/MMediaLightbox.tsx","../src/components/media/mediaPreviewRegistry.ts","../src/components/media/mediaInteraction.ts","../src/components/media/MImage/MImage.tsx","../src/components/media/MGallery/MGallery.tsx","../src/components/media/carouselA11y.ts","../src/components/media/MCarousel/MCarousel.tsx"],"sourcesContent":["import {useEffect, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport {MButton} from '../../controls'\nimport {MBadge} from '../../feedback'\nimport {MPortal} from '../../primitives'\nimport {MCloseIcon, MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport {useModalLayer} from '../../../utils/useModalLayer'\nimport {lockBodyScroll} from '../../overlays/scrollLock'\nimport './MMediaLightbox.css'\nimport {useMCommonTexts} from '../../../i18n/frameworkTexts'\n\nexport interface MMediaLightboxItem {\n src: string\n alt?: string\n caption?: string\n}\n\ninterface MMediaLightboxProps {\n open: boolean\n items: MMediaLightboxItem[]\n activeIndex: number\n onClose: () => void\n onActiveIndexChange: (index: number) => void\n}\n\nexport function MMediaLightbox({open, items, activeIndex, onClose, onActiveIndexChange}: MMediaLightboxProps) {\n const texts = useMCommonTexts()\n const currentItem = items[activeIndex]\n const frameRef = useRef<HTMLDivElement | null>(null)\n const backdropRef = useRef<HTMLDivElement | null>(null)\n const canGoPrev = activeIndex > 0\n const canGoNext = activeIndex < items.length - 1\n\n useModalLayer({active: open && !!currentItem, containerRef: backdropRef, onEscape: onClose})\n\n useEffect(() => {\n if (!open) {\n return\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowLeft' && canGoPrev) {\n onActiveIndexChange(activeIndex - 1)\n }\n\n if (event.key === 'ArrowRight' && canGoNext) {\n onActiveIndexChange(activeIndex + 1)\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [activeIndex, canGoNext, canGoPrev, onActiveIndexChange, onClose, open])\n\n useEffect(() => {\n if (!open) {\n return\n }\n\n return lockBodyScroll()\n }, [open])\n\n if (!open || !currentItem) {\n return null\n }\n\n const handleBackdropMouseDown = (event: MouseEvent<HTMLDivElement>) => {\n const target = event.target as Node | null\n\n if (target && frameRef.current && !frameRef.current.contains(target)) {\n onClose()\n }\n }\n\n const previewLabel = currentItem.alt || currentItem.caption || texts.imagePreview\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'media-lightbox-backdrop')}\n onMouseDown={handleBackdropMouseDown}\n >\n <div className=\"media-lightbox-shell\" role=\"dialog\" aria-modal=\"true\" aria-label={previewLabel}>\n <div className=\"media-lightbox-stage\">\n <div ref={frameRef} className=\"media-lightbox-frame\">\n <div className=\"media-lightbox-topbar\">\n <MBadge color=\"dark\" size=\"md\" rounded className=\"media-lightbox-counter\">\n {items.length > 1 ? `${activeIndex + 1} / ${items.length}` : texts.preview}\n </MBadge>\n <MButton\n type=\"button\"\n variant=\"ghost\"\n color=\"error\"\n size=\"lg\"\n shape=\"circle\"\n iconOnly\n className=\"media-lightbox-action\"\n aria-label={texts.closePreview}\n onClick={onClose}\n >\n <MCloseIcon />\n </MButton>\n </div>\n\n <MButton\n type=\"button\"\n variant=\"ghost\"\n color=\"primary\"\n size=\"lg\"\n shape=\"circle\"\n iconOnly\n className=\"media-lightbox-nav media-lightbox-nav-prev\"\n aria-label={texts.previousImage}\n disabled={items.length <= 1 || !canGoPrev}\n onClick={() => canGoPrev && onActiveIndexChange(activeIndex - 1)}\n >\n <MChevronLeftIcon />\n </MButton>\n\n <img className=\"media-lightbox-image\" src={currentItem.src} alt={currentItem.alt || ''} />\n\n <MButton\n type=\"button\"\n variant=\"ghost\"\n color=\"primary\"\n size=\"lg\"\n shape=\"circle\"\n iconOnly\n className=\"media-lightbox-nav media-lightbox-nav-next\"\n aria-label={texts.nextImage}\n disabled={items.length <= 1 || !canGoNext}\n onClick={() => canGoNext && onActiveIndexChange(activeIndex + 1)}\n >\n <MChevronRightIcon />\n </MButton>\n\n {currentItem.caption || currentItem.alt ? (\n <MBadge color=\"dark\" size=\"sm\" rounded className=\"media-lightbox-caption\">\n {currentItem.caption || currentItem.alt}\n </MBadge>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </MPortal>\n )\n}\n","import type {MMediaLightboxItem} from './MMediaLightbox/MMediaLightbox'\n\ninterface MMediaPreviewRegistryItem extends MMediaLightboxItem {\n id: string\n}\n\nconst previewGroups = new Map<string, Map<string, MMediaPreviewRegistryItem>>()\n\nexport function registerMediaPreviewItem(group: string, id: string, item: MMediaLightboxItem) {\n let groupItems = previewGroups.get(group)\n\n if (!groupItems) {\n groupItems = new Map()\n previewGroups.set(group, groupItems)\n }\n\n groupItems.set(id, {id, ...item})\n\n return () => {\n const currentGroupItems = previewGroups.get(group)\n if (!currentGroupItems) {\n return\n }\n\n currentGroupItems.delete(id)\n\n if (currentGroupItems.size === 0) {\n previewGroups.delete(group)\n }\n }\n}\n\nexport function getMediaPreviewGroupItems(group: string) {\n return Array.from(previewGroups.get(group)?.values() ?? [])\n}\n","import type {MClickEffect} from '../../utils/useInteractionEffect'\n\nexport type MMediaInteractionEffect = MClickEffect | 'zoom' | 'dim' | 'zoom-ripple'\nexport type MMediaHoverEffect = 'none' | 'zoom' | 'dim' | 'zoom-dim'\n\nexport function usesRipple(effect: MMediaInteractionEffect): boolean {\n return effect === 'ripple' || effect === 'zoom-ripple'\n}\n\nexport function usesZoom(effect: MMediaInteractionEffect): boolean {\n return effect === 'zoom' || effect === 'zoom-ripple'\n}\n\nexport function usesDim(effect: MMediaInteractionEffect): boolean {\n return effect === 'dim'\n}\n\nexport function usesHoverZoom(effect: MMediaHoverEffect): boolean {\n return effect === 'zoom' || effect === 'zoom-dim'\n}\n\nexport function usesHoverDim(effect: MMediaHoverEffect): boolean {\n return effect === 'dim' || effect === 'zoom-dim'\n}\n","import {useEffect, useId, useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {CSSProperties} from 'react'\nimport type {MImageProps, MImageSize} from './MImage.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MSkeleton} from '../../feedback'\nimport {MMediaLightbox} from '../MMediaLightbox/MMediaLightbox'\nimport {getMediaPreviewGroupItems, registerMediaPreviewItem} from '../mediaPreviewRegistry'\nimport {usesHoverDim, usesHoverZoom} from '../mediaInteraction'\nimport './MImage.css'\nimport {useMCommonTexts, formatMText} from '../../../i18n/frameworkTexts'\n\nconst RATIO_MAP: Record<string, string> = {\n '1:1': '1 / 1',\n '4:3': '4 / 3',\n '16:9': '16 / 9',\n '21:9': '21 / 9',\n}\n\nfunction toCssSize(value: MImageSize | undefined): string | undefined {\n if (value == null) return undefined\n return typeof value === 'number' ? `${value}px` : value\n}\n\n// Render a styled image with aspect ratio, fit, and optional fallback.\nexport function MImage({\n src,\n fit = 'cover',\n ratio = 'auto',\n width,\n height,\n hidden,\n hiddenAbove,\n rounded = false,\n bordered = false,\n shadow = false,\n preview = false,\n previewGroup,\n hoverEffect = 'none',\n clickEffect = 'none',\n fallback,\n skeleton = false,\n className,\n style,\n alt,\n onError,\n ...rest\n}: MImageProps) {\n const texts = useMCommonTexts()\n const [errored, setErrored] = useState(false)\n const [previewOpen, setPreviewOpen] = useState(false)\n const [previewItems, setPreviewItems] = useState<Array<{src: string; alt?: string; caption?: string}>>([])\n const [previewIndex, setPreviewIndex] = useState(0)\n const previewId = useId()\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLElement>({\n effect: skeleton ? 'none' : clickEffect,\n })\n\n const handleError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n if (fallback && !errored) {\n setErrored(true)\n e.currentTarget.src = fallback\n }\n onError?.(e)\n }\n\n const widthValue = toCssSize(width)\n const heightValue = toCssSize(height)\n const hasExplicitSize = widthValue != null || heightValue != null\n const hasFixedRatio = ratio !== 'auto' && !!RATIO_MAP[ratio]\n const sizeStyle: CSSProperties = {}\n if (widthValue != null) sizeStyle.width = widthValue\n if (heightValue != null) sizeStyle.height = heightValue\n const ratioStyle: CSSProperties = {\n ...style,\n ...(hasFixedRatio ? {aspectRatio: RATIO_MAP[ratio]} : null),\n ...sizeStyle,\n }\n const resolvedSrc = errored && fallback ? fallback : src\n const previewItem = useMemo(\n () => ({\n src: resolvedSrc || '',\n alt: alt ?? '',\n caption: typeof rest.title === 'string' ? rest.title : undefined,\n }),\n [alt, resolvedSrc, rest.title]\n )\n\n useEffect(() => {\n if (!preview || !previewGroup || !resolvedSrc) {\n return\n }\n\n return registerMediaPreviewItem(previewGroup, previewId, previewItem)\n }, [preview, previewGroup, previewId, previewItem, resolvedSrc])\n\n // Skeleton placeholder\n if (skeleton) {\n return (\n <MSkeleton\n variant=\"rectangle\"\n animate=\"pulse\"\n className={cn('image-skeleton', rounded && 'rounded', bordered && 'bordered', className)}\n style={ratioStyle}\n aria-label={texts.loading}\n {...getHiddenProps(hidden, hiddenAbove)}\n />\n )\n }\n\n const openPreview = () => {\n if (!preview || !resolvedSrc) {\n return\n }\n\n if (previewGroup) {\n const groupItems = getMediaPreviewGroupItems(previewGroup)\n const currentIndex = groupItems.findIndex((item) => item.id === previewId)\n\n if (groupItems.length > 0 && currentIndex >= 0) {\n setPreviewItems(groupItems.map(({id, ...item}) => item))\n setPreviewIndex(currentIndex)\n setPreviewOpen(true)\n return\n }\n }\n\n setPreviewItems([previewItem])\n setPreviewIndex(0)\n setPreviewOpen(true)\n }\n\n const imgClassName = cn(\n 'image',\n fit,\n !effectLayer && rounded && 'rounded',\n !effectLayer && bordered && 'bordered',\n !effectLayer && shadow && 'shadow'\n )\n const usesWrapper = hasFixedRatio || hasExplicitSize || Boolean(effectLayer) || preview || hoverEffect !== 'none'\n const wrapperClassName = cn(\n 'image-wrap',\n hasFixedRatio && 'has-ratio',\n hasExplicitSize && 'has-size',\n rounded && 'rounded',\n bordered && 'bordered',\n shadow && 'shadow',\n preview && 'preview',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName,\n className\n )\n const imageNode = <img className={imgClassName} onError={handleError} src={resolvedSrc} {...rest} alt={alt ?? ''} />\n\n if (usesWrapper) {\n return (\n <>\n {preview ? (\n <button\n type=\"button\"\n className={cn(wrapperClassName, 'image-button')}\n aria-label={formatMText(texts.previewItem, {name: alt || texts.image})}\n onClick={openPreview}\n onPointerDown={effectLayer ? handlePointerDown : undefined}\n disabled={!resolvedSrc}\n {...getHiddenProps(hidden, hiddenAbove)}\n style={ratioStyle}\n >\n {effectLayer}\n {imageNode}\n </button>\n ) : (\n <span\n className={wrapperClassName}\n onPointerDown={effectLayer ? handlePointerDown : undefined}\n {...getHiddenProps(hidden, hiddenAbove)}\n style={ratioStyle}\n >\n {effectLayer}\n {imageNode}\n </span>\n )}\n\n <MMediaLightbox\n open={previewOpen}\n items={previewItems}\n activeIndex={previewIndex}\n onActiveIndexChange={setPreviewIndex}\n onClose={() => setPreviewOpen(false)}\n />\n </>\n )\n }\n\n return (\n <>\n <img\n className={cn(imgClassName, className)}\n style={ratioStyle}\n onError={handleError}\n src={resolvedSrc}\n {...getHiddenProps(hidden, hiddenAbove)}\n {...rest}\n alt={alt ?? ''}\n />\n\n <MMediaLightbox\n open={previewOpen}\n items={previewItems}\n activeIndex={previewIndex}\n onActiveIndexChange={setPreviewIndex}\n onClose={() => setPreviewOpen(false)}\n />\n </>\n )\n}\n","import type {MGalleryProps} from './MGallery.types'\nimport {useState} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MMediaLightbox} from '../MMediaLightbox/MMediaLightbox'\nimport {usesHoverDim, usesHoverZoom} from '../mediaInteraction'\nimport './MGallery.css'\nimport {useMCommonTexts, formatMText} from '../../../i18n/frameworkTexts'\n\n// Render a responsive image grid gallery.\nexport function MGallery({\n items,\n columns = 3,\n rounded = true,\n preview = false,\n hoverEffect = 'zoom',\n clickEffect = 'ripple',\n className,\n ...rest\n}: MGalleryProps) {\n const [previewOpen, setPreviewOpen] = useState(false)\n const [previewIndex, setPreviewIndex] = useState(0)\n\n return (\n <>\n <div className={cn('gallery', `columns-${columns}`, className)} {...rest}>\n {items.map((item, i) => (\n <GalleryFigure\n key={i}\n item={item}\n rounded={rounded}\n preview={preview}\n hoverEffect={hoverEffect}\n clickEffect={clickEffect}\n onOpen={() => {\n setPreviewIndex(i)\n setPreviewOpen(true)\n }}\n />\n ))}\n </div>\n\n <MMediaLightbox\n open={previewOpen}\n items={items}\n activeIndex={previewIndex}\n onActiveIndexChange={setPreviewIndex}\n onClose={() => setPreviewOpen(false)}\n />\n </>\n )\n}\n\nfunction GalleryFigure({\n item,\n rounded,\n preview,\n hoverEffect,\n clickEffect,\n onOpen,\n}: {\n item: {src: string; thumbnail?: string; alt?: string; caption?: string}\n rounded: boolean\n preview: boolean\n hoverEffect: 'none' | 'zoom' | 'dim' | 'zoom-dim'\n clickEffect: 'none' | 'ripple'\n onOpen: () => void\n}) {\n const texts = useMCommonTexts()\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n })\n return (\n <figure className={cn('gallery-item', rounded && 'rounded')}>\n {preview ? (\n <button\n type=\"button\"\n className={cn(\n 'gallery-trigger',\n rounded && 'rounded',\n 'gallery-button',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName\n )}\n onClick={onOpen}\n onPointerDown={handlePointerDown}\n aria-label={formatMText(texts.previewItem, {name: item.alt || texts.image})}\n >\n <img\n className=\"gallery-image\"\n src={item.thumbnail || item.src}\n alt={item.alt || ''}\n loading=\"lazy\"\n />\n {item.caption && <span className=\"gallery-caption\">{item.caption}</span>}\n {effectLayer}\n </button>\n ) : (\n <div\n className={cn(\n 'gallery-trigger',\n rounded && 'rounded',\n usesHoverZoom(hoverEffect) && 'effect-zoom',\n usesHoverDim(hoverEffect) && 'effect-dim',\n effectClassName\n )}\n onPointerDown={handlePointerDown}\n >\n <img\n className=\"gallery-image\"\n src={item.thumbnail || item.src}\n alt={item.alt || ''}\n loading=\"lazy\"\n />\n {item.caption && <span className=\"gallery-caption\">{item.caption}</span>}\n {effectLayer}\n </div>\n )}\n </figure>\n )\n}\n","import {useEffect, useState} from 'react'\nimport type {KeyboardEvent} from 'react'\nimport {isRtlElement} from '../../utils/radioGroupKeys'\n\n/**\n * Shared carousel helpers (MCarousel, MShowcaseCarousel). Internal, not re-exported.\n */\n\nconst EDITABLE_SELECTOR =\n 'input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"], [role=\"slider\"], [role=\"spinbutton\"], [role=\"textbox\"], [role=\"combobox\"], [role=\"listbox\"], [role=\"grid\"], [role=\"tablist\"], [role=\"menu\"]'\n\n/**\n * Slide step for an arrow key pressed inside a carousel: -1 (previous), 1 (next) or `null`\n * when the key is not a carousel key or belongs to a widget that uses arrows itself.\n * Left / Right are flipped in right-to-left layouts.\n */\nexport function getCarouselKeyStep(event: KeyboardEvent<HTMLElement>): -1 | 1 | null {\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return null\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return null\n const target = event.target as Element | null\n if (target instanceof Element && target.closest(EDITABLE_SELECTOR)) return null\n const forward = event.key === 'ArrowRight'\n const rtl = isRtlElement(event.currentTarget)\n return forward !== rtl ? 1 : -1\n}\n\nfunction readReducedMotion() {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return false\n try {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches\n } catch {\n return false\n }\n}\n\n/** Live `prefers-reduced-motion: reduce` flag (false on the server). */\nexport function usePrefersReducedMotion() {\n const [reduced, setReduced] = useState(false)\n\n useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return\n let query: MediaQueryList\n try {\n query = window.matchMedia('(prefers-reduced-motion: reduce)')\n } catch {\n return\n }\n setReduced(readReducedMotion())\n const update = () => setReduced(query.matches)\n query.addEventListener?.('change', update)\n return () => query.removeEventListener?.('change', update)\n }, [])\n\n return reduced\n}\n","import {useState, useEffect, useCallback, useId, useRef, Children} from 'react'\nimport type * as React from 'react'\nimport type {MCarouselProps} from './MCarousel.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon, MPlayIcon, MStopIcon} from '../../../icons'\nimport {getCarouselKeyStep, usePrefersReducedMotion} from '../carouselA11y'\nimport './MCarousel.css'\nimport {useMCommonTexts, useMMediaTexts, formatMText} from '../../../i18n/frameworkTexts'\n\ntype RotationChoice = 'auto' | 'stopped' | 'running'\n\n// Render a swipeable content slider with arrows, dots and transition modes.\nexport function MCarousel({\n autoPlay = false,\n interval = 5000,\n showDots = true,\n showArrows = true,\n loop = true,\n draggable = true,\n transition = 'slide',\n className,\n children,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n onKeyDown,\n ...rest\n}: MCarouselProps) {\n const texts = useMCommonTexts()\n const mediaTexts = useMMediaTexts()\n const trackId = `${useId()}-carousel-track`\n const reducedMotion = usePrefersReducedMotion()\n // APG carousel: auto-rotation has an explicit stop / start control, pauses while the pointer\n // hovers the carousel or keyboard focus is inside it, and starts stopped under reduced motion.\n const [rotationChoice, setRotationChoice] = useState<RotationChoice>('auto')\n const [hovered, setHovered] = useState(false)\n const [focusInside, setFocusInside] = useState(false)\n const rotationButtonRef = useRef<HTMLElement | null>(null)\n const slides = Children.toArray(children)\n const count = slides.length\n const [active, setActive] = useState(0)\n const [dragOffset, setDragOffset] = useState(0)\n const [isDragging, setIsDragging] = useState(false)\n const dragStartX = useRef(0)\n const trackRef = useRef<HTMLDivElement>(null)\n\n const goTo = useCallback(\n (index: number) => {\n if (loop) {\n setActive((index + count) % count)\n } else {\n setActive(Math.max(0, Math.min(index, count - 1)))\n }\n },\n [count, loop]\n )\n\n const prev = useCallback(() => goTo(active - 1), [active, goTo])\n const next = useCallback(() => goTo(active + 1), [active, goTo])\n\n const canRotate = autoPlay && count > 1\n const rotating = canRotate && (rotationChoice === 'running' || (rotationChoice === 'auto' && !reducedMotion))\n const paused = hovered || focusInside || isDragging\n\n useEffect(() => {\n if (!rotating || paused) return\n const timer = setInterval(next, interval)\n return () => clearInterval(timer)\n }, [rotating, paused, interval, next])\n\n const handleDragStart = (clientX: number) => {\n if (!draggable) return\n setIsDragging(true)\n dragStartX.current = clientX\n setDragOffset(0)\n }\n\n const handleDragMove = (clientX: number) => {\n if (!isDragging) return\n const diff = clientX - dragStartX.current\n setDragOffset(diff)\n }\n\n const handleDragEnd = () => {\n if (!isDragging) return\n setIsDragging(false)\n const threshold = 50\n if (dragOffset < -threshold) {\n next()\n } else if (dragOffset > threshold) {\n prev()\n }\n setDragOffset(0)\n }\n\n const onPointerDown = (e: React.PointerEvent) => {\n if (!draggable) return\n e.currentTarget.setPointerCapture(e.pointerId)\n handleDragStart(e.clientX)\n }\n\n const onPointerMove = (e: React.PointerEvent) => {\n handleDragMove(e.clientX)\n }\n\n const onPointerUp = () => {\n handleDragEnd()\n }\n\n if (count === 0) return null\n\n const handleFocus = (event: React.FocusEvent<HTMLDivElement>) => {\n // Focus on the rotation control itself does not pause, so \"Start\" takes effect at once.\n setFocusInside(!rotationButtonRef.current?.contains(event.target as Node))\n onFocus?.(event)\n }\n\n const handleBlur = (event: React.FocusEvent<HTMLDivElement>) => {\n const nextTarget = event.relatedTarget as Node | null\n if (!nextTarget || !event.currentTarget.contains(nextTarget)) setFocusInside(false)\n onBlur?.(event)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event)\n if (event.defaultPrevented || count <= 1) return\n const step = getCarouselKeyStep(event)\n if (step === null) return\n event.preventDefault()\n goTo(active + step)\n }\n\n const isFade = transition === 'fade'\n const trackStyle = !isFade\n ? {transform: `translateX(calc(-${active * 100}% + ${isDragging ? dragOffset : 0}px))`}\n : undefined\n\n return (\n <div\n className={cn('carousel', isFade && 'fade', className)}\n role=\"region\"\n aria-roledescription={mediaTexts.carouselRoleDescription}\n aria-label={rest['aria-labelledby'] ? undefined : mediaTexts.carouselLabel}\n {...rest}\n onMouseEnter={(event) => {\n setHovered(true)\n onMouseEnter?.(event)\n }}\n onMouseLeave={(event) => {\n setHovered(false)\n onMouseLeave?.(event)\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n >\n {canRotate && (\n <MButton\n ref={rotationButtonRef}\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n size=\"sm\"\n className=\"carousel-rotation\"\n aria-label={rotating ? mediaTexts.stopRotation : mediaTexts.startRotation}\n aria-controls={trackId}\n onClick={() => setRotationChoice(rotating ? 'stopped' : 'running')}\n >\n {rotating ? <MStopIcon /> : <MPlayIcon />}\n </MButton>\n )}\n <div\n className=\"carousel-viewport\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n onDragStart={(e) => {\n // A native image/link drag would end the swipe with pointercancel.\n if (draggable) e.preventDefault()\n }}\n style={{\n touchAction: draggable ? 'pan-y' : undefined,\n cursor: draggable ? (isDragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div\n ref={trackRef}\n id={trackId}\n className={cn('carousel-track', isDragging && 'dragging')}\n style={trackStyle}\n aria-live={rotating && !paused ? 'off' : 'polite'}\n >\n {slides.map((slide, i) => (\n <div\n key={i}\n className={cn(\n 'carousel-slide',\n isFade && i === active && 'active',\n isFade && i !== active && 'hidden'\n )}\n role=\"group\"\n aria-roledescription={mediaTexts.slideRoleDescription}\n aria-label={formatMText(mediaTexts.slideOf, {index: i + 1, count})}\n // Off-screen slides stay out of the Tab order and the accessibility tree.\n aria-hidden={i !== active || undefined}\n inert={i !== active ? true : undefined}\n >\n {slide}\n </div>\n ))}\n </div>\n </div>\n\n {showArrows && count > 1 && (\n <>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={prev}\n aria-label={texts.previousSlide}\n aria-controls={trackId}\n className=\"carousel-arrow carousel-arrow-prev\"\n >\n <MChevronLeftIcon />\n </MButton>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={next}\n aria-label={texts.nextSlide}\n aria-controls={trackId}\n className=\"carousel-arrow carousel-arrow-next\"\n >\n <MChevronRightIcon />\n </MButton>\n </>\n )}\n\n {showDots && count > 1 && (\n <div className=\"carousel-dots\" role=\"group\" aria-label={mediaTexts.chooseSlide}>\n {slides.map((_, i) => (\n <button\n key={i}\n className={cn('carousel-dot', i === active && 'active')}\n onClick={() => goTo(i)}\n aria-label={formatMText(texts.slideNumber, {index: i + 1})}\n aria-current={i === active ? 'true' : undefined}\n aria-controls={trackId}\n type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|