@banzamel/mineralui 2.4.2 → 2.4.3
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-Capz5Gbc.cjs → MAvatar-DHNB3829.cjs} +2 -2
- package/dist/{MAvatar-Capz5Gbc.cjs.map → MAvatar-DHNB3829.cjs.map} +1 -1
- package/dist/{MAvatar-DtJCj3dD.js → MAvatar-GeRL-CNO.js} +2 -2
- package/dist/{MAvatar-DtJCj3dD.js.map → MAvatar-GeRL-CNO.js.map} +1 -1
- package/dist/{MButton-C1pnL4_j.js → MButton-CEwo8lUB.js} +1 -1
- package/dist/{MButton-C1pnL4_j.js.map → MButton-CEwo8lUB.js.map} +1 -1
- package/dist/{MButton-sTKnano6.cjs → MButton-CnAr77Za.cjs} +2 -2
- package/dist/{MButton-sTKnano6.cjs.map → MButton-CnAr77Za.cjs.map} +1 -1
- package/dist/{MButtonGroup-BkNf7fzo.js → MButtonGroup-BEJxXZ8u.js} +2 -2
- package/dist/{MButtonGroup-BkNf7fzo.js.map → MButtonGroup-BEJxXZ8u.js.map} +1 -1
- package/dist/{MButtonGroup-iPv14c0V.cjs → MButtonGroup-DO1Tq3Za.cjs} +2 -2
- package/dist/{MButtonGroup-iPv14c0V.cjs.map → MButtonGroup-DO1Tq3Za.cjs.map} +1 -1
- package/dist/{MCard-azpp4YVD.js → MCard-BqSkGAgf.js} +3 -3
- package/dist/{MCard-azpp4YVD.js.map → MCard-BqSkGAgf.js.map} +1 -1
- package/dist/{MCard-DK-_FkpE.cjs → MCard-P8OoswWM.cjs} +2 -2
- package/dist/{MCard-DK-_FkpE.cjs.map → MCard-P8OoswWM.cjs.map} +1 -1
- package/dist/{MCheckbox-B7SpcD4H.js → MCheckbox-BxFBADcE.js} +1 -1
- package/dist/{MCheckbox-B7SpcD4H.js.map → MCheckbox-BxFBADcE.js.map} +1 -1
- package/dist/{MCheckbox-CIX7wp41.cjs → MCheckbox-DozwF2ai.cjs} +2 -2
- package/dist/{MCheckbox-CIX7wp41.cjs.map → MCheckbox-DozwF2ai.cjs.map} +1 -1
- package/dist/{MConflictIllustration-CZ3Md38Z.cjs → MConflictIllustration-2QL-BHYv.cjs} +2 -2
- package/dist/{MConflictIllustration-CZ3Md38Z.cjs.map → MConflictIllustration-2QL-BHYv.cjs.map} +1 -1
- package/dist/{MDetailList-Ce7KzUKC.cjs → MDetailList-CThQvoyf.cjs} +2 -2
- package/dist/{MDetailList-Ce7KzUKC.cjs.map → MDetailList-CThQvoyf.cjs.map} +1 -1
- package/dist/{MDetailList-fDhVyhm7.js → MDetailList-Cx9H81xT.js} +5 -5
- package/dist/{MDetailList-fDhVyhm7.js.map → MDetailList-Cx9H81xT.js.map} +1 -1
- package/dist/{MDropdownMenu-B_QWQhxy.cjs → MDropdownMenu-DnKcCyW6.cjs} +2 -2
- package/dist/{MDropdownMenu-B_QWQhxy.cjs.map → MDropdownMenu-DnKcCyW6.cjs.map} +1 -1
- package/dist/{MDropdownMenu-C4CuKMRZ.js → MDropdownMenu-DxbKN7Ui.js} +2 -2
- package/dist/{MDropdownMenu-C4CuKMRZ.js.map → MDropdownMenu-DxbKN7Ui.js.map} +1 -1
- package/dist/{MGrid-fTx6wFq_.cjs → MGrid-BkRSGN2t.cjs} +2 -2
- package/dist/{MGrid-fTx6wFq_.cjs.map → MGrid-BkRSGN2t.cjs.map} +1 -1
- package/dist/{MGrid-CYL3cbUI.js → MGrid-CIz-2i6X.js} +2 -2
- package/dist/{MGrid-CYL3cbUI.js.map → MGrid-CIz-2i6X.js.map} +1 -1
- package/dist/{MHeading-KDSpnCof.cjs → MHeading-AYQ8_GFP.cjs} +2 -2
- package/dist/{MHeading-KDSpnCof.cjs.map → MHeading-AYQ8_GFP.cjs.map} +1 -1
- package/dist/{MHeading-B7KgSP4T.js → MHeading-DcGxUMwC.js} +2 -2
- package/dist/{MHeading-B7KgSP4T.js.map → MHeading-DcGxUMwC.js.map} +1 -1
- package/dist/{MI18nProvider-DXRbB0VY.cjs → MI18nProvider-CqAwaswx.cjs} +2 -2
- package/dist/{MI18nProvider-DXRbB0VY.cjs.map → MI18nProvider-CqAwaswx.cjs.map} +1 -1
- package/dist/MInput-BYj2BdUe.cjs +2 -0
- package/dist/MInput-BYj2BdUe.cjs.map +1 -0
- package/dist/{MInput-C8ObGzQk.js → MInput-nodE-CZF.js} +37 -36
- package/dist/MInput-nodE-CZF.js.map +1 -0
- package/dist/MInputCVC-9XWryaTz.cjs +2 -0
- package/dist/MInputCVC-9XWryaTz.cjs.map +1 -0
- package/dist/MInputCVC-CrDTaUXm.js +321 -0
- package/dist/MInputCVC-CrDTaUXm.js.map +1 -0
- package/dist/{MInputSearch-BM8gLlJ1.js → MInputSearch-BMgCHjFk.js} +2 -2
- package/dist/{MInputSearch-BM8gLlJ1.js.map → MInputSearch-BMgCHjFk.js.map} +1 -1
- package/dist/{MInputSearch-BZDnbFB4.cjs → MInputSearch-BiVI1jNc.cjs} +2 -2
- package/dist/{MInputSearch-BZDnbFB4.cjs.map → MInputSearch-BiVI1jNc.cjs.map} +1 -1
- package/dist/{MKbd-DqMnZ7Iv.cjs → MKbd-BR1GX5oK.cjs} +2 -2
- package/dist/{MKbd-DqMnZ7Iv.cjs.map → MKbd-BR1GX5oK.cjs.map} +1 -1
- package/dist/{MKbd-v6-tJ9sP.js → MKbd-COb7oh_k.js} +1 -1
- package/dist/{MKbd-v6-tJ9sP.js.map → MKbd-COb7oh_k.js.map} +1 -1
- package/dist/{MLink-Bd8fLH1N.js → MLink-CAl6N6_z.js} +1 -1
- package/dist/{MLink-Bd8fLH1N.js.map → MLink-CAl6N6_z.js.map} +1 -1
- package/dist/{MLink-U24G6KJj.cjs → MLink-Dk_ReE6i.cjs} +2 -2
- package/dist/{MLink-U24G6KJj.cjs.map → MLink-Dk_ReE6i.cjs.map} +1 -1
- package/dist/{MLoader-CnvWqFtA.js → MLoader-CYp0OJU_.js} +4 -4
- package/dist/{MLoader-CnvWqFtA.js.map → MLoader-CYp0OJU_.js.map} +1 -1
- package/dist/{MLoader-CvFIvytw.cjs → MLoader-DvmFle31.cjs} +2 -2
- package/dist/{MLoader-CvFIvytw.cjs.map → MLoader-DvmFle31.cjs.map} +1 -1
- package/dist/{MPagination-BkvOEZpp.js → MPagination-E7IixIeo.js} +2 -2
- package/dist/{MPagination-BkvOEZpp.js.map → MPagination-E7IixIeo.js.map} +1 -1
- package/dist/{MPagination-DgQta29Q.cjs → MPagination-reDU9xTW.cjs} +2 -2
- package/dist/{MPagination-DgQta29Q.cjs.map → MPagination-reDU9xTW.cjs.map} +1 -1
- package/dist/{MPopover-Dd-GIBU6.js → MPopover-8gYD3Ogq.js} +37 -74
- package/dist/MPopover-8gYD3Ogq.js.map +1 -0
- package/dist/MPopover-B3npyAkL.cjs +2 -0
- package/dist/MPopover-B3npyAkL.cjs.map +1 -0
- package/dist/{MPortal-DUSIuINN.cjs → MPortal-CuBXhhl_.cjs} +2 -2
- package/dist/{MPortal-DUSIuINN.cjs.map → MPortal-CuBXhhl_.cjs.map} +1 -1
- package/dist/{MSimpleGrid-BzlIitcJ.cjs → MSimpleGrid-BchGYPMi.cjs} +2 -2
- package/dist/{MSimpleGrid-BzlIitcJ.cjs.map → MSimpleGrid-BchGYPMi.cjs.map} +1 -1
- package/dist/{MSimpleGrid-BWKurW6H.js → MSimpleGrid-Ui8cI0ho.js} +1 -1
- package/dist/{MSimpleGrid-BWKurW6H.js.map → MSimpleGrid-Ui8cI0ho.js.map} +1 -1
- package/dist/{MSkeleton-BoFpowFU.cjs → MSkeleton-DPa_G_2X.cjs} +2 -2
- package/dist/{MSkeleton-BoFpowFU.cjs.map → MSkeleton-DPa_G_2X.cjs.map} +1 -1
- package/dist/{MSkeleton-C5uD4Axo.js → MSkeleton-Dhu-loDO.js} +1 -1
- package/dist/{MSkeleton-C5uD4Axo.js.map → MSkeleton-Dhu-loDO.js.map} +1 -1
- package/dist/{MSlider-CqrusKJQ.js → MSlider-BRjhyBSc.js} +1 -1
- package/dist/{MSlider-CqrusKJQ.js.map → MSlider-BRjhyBSc.js.map} +1 -1
- package/dist/{MSlider-BTDBqF8t.cjs → MSlider-w5214a-W.cjs} +2 -2
- package/dist/{MSlider-BTDBqF8t.cjs.map → MSlider-w5214a-W.cjs.map} +1 -1
- package/dist/{MStack-CSCw6to2.js → MStack-Dt-rWvg3.js} +2 -2
- package/dist/{MStack-CSCw6to2.js.map → MStack-Dt-rWvg3.js.map} +1 -1
- package/dist/{MStack-B3Ldqsc-.cjs → MStack-nc6Y_9K3.cjs} +2 -2
- package/dist/{MStack-B3Ldqsc-.cjs.map → MStack-nc6Y_9K3.cjs.map} +1 -1
- package/dist/{MSubText-C-N15d4Z.js → MSubText-B0tXiuAp.js} +2 -2
- package/dist/{MSubText-C-N15d4Z.js.map → MSubText-B0tXiuAp.js.map} +1 -1
- package/dist/{MSubText-47PsgE8T.cjs → MSubText-C6v6Exa2.cjs} +2 -2
- package/dist/{MSubText-47PsgE8T.cjs.map → MSubText-C6v6Exa2.cjs.map} +1 -1
- package/dist/{MSurface-QYEygc_0.cjs → MSurface-BjE-mL1L.cjs} +2 -2
- package/dist/{MSurface-QYEygc_0.cjs.map → MSurface-BjE-mL1L.cjs.map} +1 -1
- package/dist/{MSurface-B-sjyczH.js → MSurface-CpDJCdb5.js} +2 -2
- package/dist/{MSurface-B-sjyczH.js.map → MSurface-CpDJCdb5.js.map} +1 -1
- package/dist/MTag-BgOxiahL.cjs +2 -0
- package/dist/MTag-BgOxiahL.cjs.map +1 -0
- package/dist/MTag-cw3cIGHX.js +41 -0
- package/dist/MTag-cw3cIGHX.js.map +1 -0
- package/dist/{MText-Dni707tS.cjs → MText-BDI4mdw8.cjs} +2 -2
- package/dist/{MText-Dni707tS.cjs.map → MText-BDI4mdw8.cjs.map} +1 -1
- package/dist/{MText-CL-LPcXi.js → MText-DhbAjtUE.js} +2 -2
- package/dist/{MText-CL-LPcXi.js.map → MText-DhbAjtUE.js.map} +1 -1
- package/dist/MTooltip-BAgHlv5I.cjs +2 -0
- package/dist/MTooltip-BAgHlv5I.cjs.map +1 -0
- package/dist/MTooltip-CJxvlkOX.js +92 -0
- package/dist/MTooltip-CJxvlkOX.js.map +1 -0
- package/dist/{MTreeView-B1J7uqd1.js → MTreeView-DsBnYQMT.js} +2 -2
- package/dist/{MTreeView-B1J7uqd1.js.map → MTreeView-DsBnYQMT.js.map} +1 -1
- package/dist/{MTreeView-VYp0eErQ.cjs → MTreeView-LiJ5o-zy.cjs} +2 -2
- package/dist/{MTreeView-VYp0eErQ.cjs.map → MTreeView-LiJ5o-zy.cjs.map} +1 -1
- 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-bzeZRst9.js → calendar-Bq6NMNnS.js} +6 -6
- package/dist/{calendar-bzeZRst9.js.map → calendar-Bq6NMNnS.js.map} +1 -1
- package/dist/{calendar-P7MwKfWS.cjs → calendar-C57BH8Nd.cjs} +2 -2
- package/dist/{calendar-P7MwKfWS.cjs.map → calendar-C57BH8Nd.cjs.map} +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{calendarDates-CYkJqcnp.js → calendarDates-M_Dawj0j.js} +1 -1
- package/dist/{calendarDates-CYkJqcnp.js.map → calendarDates-M_Dawj0j.js.map} +1 -1
- package/dist/{calendarDates-AnlGcvZM.cjs → calendarDates-qm047RW2.cjs} +1 -1
- package/dist/{calendarDates-AnlGcvZM.cjs.map → calendarDates-qm047RW2.cjs.map} +1 -1
- package/dist/{cards-CFDJsdxR.js → cards-D4xJVd4q.js} +278 -277
- package/dist/cards-D4xJVd4q.js.map +1 -0
- package/dist/cards-Du6dbZSQ.cjs +2 -0
- package/dist/cards-Du6dbZSQ.cjs.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/components/primitives/MPopover/popoverStack.d.ts +2 -0
- package/dist/{controls-BKAhqjNM.js → controls-BKoc_yel.js} +113 -112
- package/dist/controls-BKoc_yel.js.map +1 -0
- package/dist/controls-Ck-PMt__.cjs +2 -0
- package/dist/controls-Ck-PMt__.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/{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-CgLutFxU.js → data-CdQximqm.js} +38 -38
- package/dist/{data-CgLutFxU.js.map → data-CdQximqm.js.map} +1 -1
- package/dist/{data-DFrkJTlF.cjs → data-PS4ygCyj.cjs} +2 -2
- package/dist/{data-DFrkJTlF.cjs.map → data-PS4ygCyj.cjs.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/{display-BnkHKW1n.js → display-YC1fVpXA.js} +19 -19
- package/dist/{display-BnkHKW1n.js.map → display-YC1fVpXA.js.map} +1 -1
- package/dist/{display--E7rI0tk.cjs → display-slIo1bQI.cjs} +2 -2
- package/dist/{display--E7rI0tk.cjs.map → display-slIo1bQI.cjs.map} +1 -1
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/dropdowns-DFbUoZ8Q.cjs +2 -0
- package/dist/dropdowns-DFbUoZ8Q.cjs.map +1 -0
- package/dist/dropdowns-nW3MY5XG.js +1715 -0
- package/dist/dropdowns-nW3MY5XG.js.map +1 -0
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/feedback-6MNb2Xyk.cjs +2 -0
- package/dist/feedback-6MNb2Xyk.cjs.map +1 -0
- package/dist/feedback-CPwJaQHY.js +259 -0
- package/dist/feedback-CPwJaQHY.js.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -5
- package/dist/form-CMsZo6Dm.cjs +2 -0
- package/dist/form-CMsZo6Dm.cjs.map +1 -0
- package/dist/{form-CAFcvmUS.js → form-WU6DcQGD.js} +52 -55
- package/dist/form-WU6DcQGD.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/frameworkTexts-BSXUtXOp.cjs +2 -0
- package/dist/{frameworkTexts-iDXhcW6k.cjs.map → frameworkTexts-BSXUtXOp.cjs.map} +1 -1
- package/dist/frameworkTexts-DP5RUl19.js +131 -0
- package/dist/{frameworkTexts-DH0Xp-Vx.js.map → frameworkTexts-DP5RUl19.js.map} +1 -1
- package/dist/i18n/frameworkTexts.d.ts +61 -0
- package/dist/i18n.cjs +1 -1
- package/dist/{icons-D_NB67he.cjs → icons-D3n9-919.cjs} +2 -2
- package/dist/{icons-D_NB67he.cjs.map → icons-D3n9-919.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/illustrations.cjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +40 -40
- package/dist/{inputs-B1LCddA4.js → inputs-B7rGMLMr.js} +399 -398
- package/dist/inputs-B7rGMLMr.js.map +1 -0
- package/dist/inputs-BiN62hgH.cjs +2 -0
- package/dist/inputs-BiN62hgH.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-BMggJ_qO.cjs +2 -0
- package/dist/layout-BMggJ_qO.cjs.map +1 -0
- package/dist/{layout-DsE4zfpg.js → layout-DBYHyCTr.js} +269 -268
- package/dist/layout-DBYHyCTr.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +6 -6
- package/dist/{layoutProps-B8y2XwHy.cjs → layoutProps-Ck4VtGm9.cjs} +1 -1
- package/dist/{layoutProps-B8y2XwHy.cjs.map → layoutProps-Ck4VtGm9.cjs.map} +1 -1
- package/dist/{layoutProps-CE5-ghKw.js → layoutProps-Cl6d1KmH.js} +1 -1
- package/dist/{layoutProps-CE5-ghKw.js.map → layoutProps-Cl6d1KmH.js.map} +1 -1
- package/dist/{licensing-DGIdtfNg.cjs → licensing-Be3g-PJt.cjs} +2 -2
- package/dist/{licensing-DGIdtfNg.cjs.map → licensing-Be3g-PJt.cjs.map} +1 -1
- 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-BPzMgzqE.js +405 -0
- package/dist/media-BPzMgzqE.js.map +1 -0
- package/dist/media-D63hxCAJ.cjs +2 -0
- package/dist/media-D63hxCAJ.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +2 -2
- package/dist/overlays-CCeYD6hT.js +555 -0
- package/dist/overlays-CCeYD6hT.js.map +1 -0
- package/dist/overlays-CsRN5OG8.cjs +2 -0
- package/dist/overlays-CsRN5OG8.cjs.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/popoverStack--0r2oJCD.js +44 -0
- package/dist/popoverStack--0r2oJCD.js.map +1 -0
- package/dist/popoverStack-BmMk-VZJ.cjs +2 -0
- package/dist/popoverStack-BmMk-VZJ.cjs.map +1 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +1 -1
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/{theme-DgaM4CjM.cjs → theme-CJuqObWL.cjs} +2 -2
- package/dist/{theme-DgaM4CjM.cjs.map → theme-CJuqObWL.cjs.map} +1 -1
- package/dist/theme.cjs +1 -1
- 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-C4_O8len.cjs → typography-4v01oNWx.cjs} +2 -2
- package/dist/{typography-C4_O8len.cjs.map → typography-4v01oNWx.cjs.map} +1 -1
- package/dist/{typography-CAW17MDj.js → typography-C806GYT4.js} +2 -2
- package/dist/{typography-CAW17MDj.js.map → typography-C806GYT4.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +6 -6
- package/dist/{useGhostText-Dlemg1vw.cjs → useGhostText-mibV4s1-.cjs} +2 -2
- package/dist/{useGhostText-Dlemg1vw.cjs.map → useGhostText-mibV4s1-.cjs.map} +1 -1
- package/dist/{useInteractionEffect-CFwDX5UF.cjs → useInteractionEffect-CtXlbjhC.cjs} +2 -2
- package/dist/{useInteractionEffect-CFwDX5UF.cjs.map → useInteractionEffect-CtXlbjhC.cjs.map} +1 -1
- package/dist/{useKeyboardNav-Bm-dxVq-.cjs → useKeyboardNav-CCUoRMgm.cjs} +2 -2
- package/dist/{useKeyboardNav-Bm-dxVq-.cjs.map → useKeyboardNav-CCUoRMgm.cjs.map} +1 -1
- package/dist/useModalLayer-Bf4TcEz-.js +58 -0
- package/dist/useModalLayer-Bf4TcEz-.js.map +1 -0
- package/dist/useModalLayer-DxYhhgRO.cjs +2 -0
- package/dist/useModalLayer-DxYhhgRO.cjs.map +1 -0
- package/dist/utils/useModalLayer.d.ts +10 -0
- package/dist/utils.cjs +1 -1
- 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/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/MPopover-C-e1CoV0.cjs +0 -2
- package/dist/MPopover-C-e1CoV0.cjs.map +0 -1
- package/dist/MPopover-Dd-GIBU6.js.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/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/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.map +0 -1
- package/dist/controls-KK-TyUTT.cjs +0 -2
- package/dist/controls-KK-TyUTT.cjs.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.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-iDXhcW6k.cjs +0 -2
- 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.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
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
import { r as e } from "./theme-DAOU1aPs.js";
|
|
2
|
+
import { Ji as t, Xi as n, qi as r } from "./icons-CBMl-kOM.js";
|
|
3
|
+
import { t as i } from "./cn-YER3QsV1.js";
|
|
4
|
+
import { t as a } from "./useInteractionEffect-DtpbVd77.js";
|
|
5
|
+
import { t as o } from "./MPortal-Ba2Sxset.js";
|
|
6
|
+
import { t as s } from "./MButton-CEwo8lUB.js";
|
|
7
|
+
import { n as c, t as l } from "./frameworkTexts-DP5RUl19.js";
|
|
8
|
+
import { n as u, t as d } from "./MSkeleton-Dhu-loDO.js";
|
|
9
|
+
import { t as f } from "./useModalLayer-Bf4TcEz-.js";
|
|
10
|
+
import { Children as p, useCallback as m, useEffect as h, useId as g, useMemo as _, useRef as v, useState as y } from "react";
|
|
11
|
+
import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
12
|
+
//#region src/components/media/MMediaLightbox/MMediaLightbox.tsx
|
|
13
|
+
function C({ open: e, items: a, activeIndex: l, onClose: d, onActiveIndexChange: p }) {
|
|
14
|
+
let m = c(), g = a[l], _ = v(null), y = v(null), b = l > 0, C = l < a.length - 1;
|
|
15
|
+
if (f({
|
|
16
|
+
active: e && !!g,
|
|
17
|
+
containerRef: y,
|
|
18
|
+
onEscape: d
|
|
19
|
+
}), h(() => {
|
|
20
|
+
if (!e) return;
|
|
21
|
+
let t = (e) => {
|
|
22
|
+
e.key === "ArrowLeft" && b && p(l - 1), e.key === "ArrowRight" && C && p(l + 1);
|
|
23
|
+
};
|
|
24
|
+
return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
|
|
25
|
+
}, [
|
|
26
|
+
l,
|
|
27
|
+
C,
|
|
28
|
+
b,
|
|
29
|
+
p,
|
|
30
|
+
d,
|
|
31
|
+
e
|
|
32
|
+
]), h(() => {
|
|
33
|
+
if (!e) return;
|
|
34
|
+
let t = document.body.style.overflow;
|
|
35
|
+
return document.body.style.overflow = "hidden", () => {
|
|
36
|
+
document.body.style.overflow = t;
|
|
37
|
+
};
|
|
38
|
+
}, [e]), !e || !g) return null;
|
|
39
|
+
let w = (e) => {
|
|
40
|
+
let t = e.target;
|
|
41
|
+
t && _.current && !_.current.contains(t) && d();
|
|
42
|
+
}, T = g.alt || g.caption || m.imagePreview;
|
|
43
|
+
return /* @__PURE__ */ x(o, { children: /* @__PURE__ */ x("div", {
|
|
44
|
+
ref: y,
|
|
45
|
+
className: i("mineral-backdrop", "media-lightbox-backdrop"),
|
|
46
|
+
onMouseDown: w,
|
|
47
|
+
children: /* @__PURE__ */ x("div", {
|
|
48
|
+
className: "media-lightbox-shell",
|
|
49
|
+
role: "dialog",
|
|
50
|
+
"aria-modal": "true",
|
|
51
|
+
"aria-label": T,
|
|
52
|
+
children: /* @__PURE__ */ x("div", {
|
|
53
|
+
className: "media-lightbox-stage",
|
|
54
|
+
children: /* @__PURE__ */ S("div", {
|
|
55
|
+
ref: _,
|
|
56
|
+
className: "media-lightbox-frame",
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ S("div", {
|
|
59
|
+
className: "media-lightbox-topbar",
|
|
60
|
+
children: [/* @__PURE__ */ x(u, {
|
|
61
|
+
color: "dark",
|
|
62
|
+
size: "md",
|
|
63
|
+
rounded: !0,
|
|
64
|
+
className: "media-lightbox-counter",
|
|
65
|
+
children: a.length > 1 ? `${l + 1} / ${a.length}` : m.preview
|
|
66
|
+
}), /* @__PURE__ */ x(s, {
|
|
67
|
+
type: "button",
|
|
68
|
+
variant: "ghost",
|
|
69
|
+
color: "error",
|
|
70
|
+
size: "lg",
|
|
71
|
+
shape: "circle",
|
|
72
|
+
iconOnly: !0,
|
|
73
|
+
className: "media-lightbox-action",
|
|
74
|
+
"aria-label": m.closePreview,
|
|
75
|
+
onClick: d,
|
|
76
|
+
children: /* @__PURE__ */ x(n, {})
|
|
77
|
+
})]
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ x(s, {
|
|
80
|
+
type: "button",
|
|
81
|
+
variant: "ghost",
|
|
82
|
+
color: "primary",
|
|
83
|
+
size: "lg",
|
|
84
|
+
shape: "circle",
|
|
85
|
+
iconOnly: !0,
|
|
86
|
+
className: "media-lightbox-nav media-lightbox-nav-prev",
|
|
87
|
+
"aria-label": m.previousImage,
|
|
88
|
+
disabled: a.length <= 1 || !b,
|
|
89
|
+
onClick: () => b && p(l - 1),
|
|
90
|
+
children: /* @__PURE__ */ x(t, {})
|
|
91
|
+
}),
|
|
92
|
+
/* @__PURE__ */ x("img", {
|
|
93
|
+
className: "media-lightbox-image",
|
|
94
|
+
src: g.src,
|
|
95
|
+
alt: g.alt || ""
|
|
96
|
+
}),
|
|
97
|
+
/* @__PURE__ */ x(s, {
|
|
98
|
+
type: "button",
|
|
99
|
+
variant: "ghost",
|
|
100
|
+
color: "primary",
|
|
101
|
+
size: "lg",
|
|
102
|
+
shape: "circle",
|
|
103
|
+
iconOnly: !0,
|
|
104
|
+
className: "media-lightbox-nav media-lightbox-nav-next",
|
|
105
|
+
"aria-label": m.nextImage,
|
|
106
|
+
disabled: a.length <= 1 || !C,
|
|
107
|
+
onClick: () => C && p(l + 1),
|
|
108
|
+
children: /* @__PURE__ */ x(r, {})
|
|
109
|
+
}),
|
|
110
|
+
g.caption || g.alt ? /* @__PURE__ */ x(u, {
|
|
111
|
+
color: "dark",
|
|
112
|
+
size: "sm",
|
|
113
|
+
rounded: !0,
|
|
114
|
+
className: "media-lightbox-caption",
|
|
115
|
+
children: g.caption || g.alt
|
|
116
|
+
}) : null
|
|
117
|
+
]
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
}) });
|
|
122
|
+
}
|
|
123
|
+
//#endregion
|
|
124
|
+
//#region src/components/media/mediaPreviewRegistry.ts
|
|
125
|
+
var w = /* @__PURE__ */ new Map();
|
|
126
|
+
function T(e, t, n) {
|
|
127
|
+
let r = w.get(e);
|
|
128
|
+
return r || (r = /* @__PURE__ */ new Map(), w.set(e, r)), r.set(t, {
|
|
129
|
+
id: t,
|
|
130
|
+
...n
|
|
131
|
+
}), () => {
|
|
132
|
+
let n = w.get(e);
|
|
133
|
+
n && (n.delete(t), n.size === 0 && w.delete(e));
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function E(e) {
|
|
137
|
+
return Array.from(w.get(e)?.values() ?? []);
|
|
138
|
+
}
|
|
139
|
+
//#endregion
|
|
140
|
+
//#region src/components/media/mediaInteraction.ts
|
|
141
|
+
function D(e) {
|
|
142
|
+
return e === "zoom" || e === "zoom-dim";
|
|
143
|
+
}
|
|
144
|
+
function O(e) {
|
|
145
|
+
return e === "dim" || e === "zoom-dim";
|
|
146
|
+
}
|
|
147
|
+
//#endregion
|
|
148
|
+
//#region src/components/media/MImage/MImage.tsx
|
|
149
|
+
var k = {
|
|
150
|
+
"1:1": "1 / 1",
|
|
151
|
+
"4:3": "4 / 3",
|
|
152
|
+
"16:9": "16 / 9",
|
|
153
|
+
"21:9": "21 / 9"
|
|
154
|
+
};
|
|
155
|
+
function A(e) {
|
|
156
|
+
if (e != null) return typeof e == "number" ? `${e}px` : e;
|
|
157
|
+
}
|
|
158
|
+
function j({ src: t, fit: n = "cover", ratio: r = "auto", width: o, height: s, hidden: u, rounded: f = !1, bordered: p = !1, shadow: m = !1, preview: v = !1, previewGroup: w, hoverEffect: j = "none", clickEffect: M = "none", fallback: N, skeleton: P = !1, className: F, style: I, alt: L, onError: ee, ...R }) {
|
|
159
|
+
let z = c(), [B, te] = y(!1), [V, H] = y(!1), [U, ne] = y([]), [re, W] = y(0), G = g(), { effectClassName: ie, effectLayer: K, handlePointerDown: ae } = a({ effect: P ? "none" : M }), oe = (e) => {
|
|
160
|
+
N && !B && (te(!0), e.currentTarget.src = N), ee?.(e);
|
|
161
|
+
}, q = A(o), J = A(s), se = q != null || J != null, Y = r !== "auto" && !!k[r], X = {};
|
|
162
|
+
q != null && (X.width = q), J != null && (X.height = J);
|
|
163
|
+
let Z = {
|
|
164
|
+
...I,
|
|
165
|
+
...Y ? { aspectRatio: k[r] } : null,
|
|
166
|
+
...X
|
|
167
|
+
}, Q = B && N ? N : t, $ = _(() => ({
|
|
168
|
+
src: Q || "",
|
|
169
|
+
alt: L ?? "",
|
|
170
|
+
caption: typeof R.title == "string" ? R.title : void 0
|
|
171
|
+
}), [
|
|
172
|
+
L,
|
|
173
|
+
Q,
|
|
174
|
+
R.title
|
|
175
|
+
]);
|
|
176
|
+
if (h(() => {
|
|
177
|
+
if (!(!v || !w || !Q)) return T(w, G, $);
|
|
178
|
+
}, [
|
|
179
|
+
v,
|
|
180
|
+
w,
|
|
181
|
+
G,
|
|
182
|
+
$,
|
|
183
|
+
Q
|
|
184
|
+
]), P) return /* @__PURE__ */ x(d, {
|
|
185
|
+
variant: "rectangle",
|
|
186
|
+
animate: "pulse",
|
|
187
|
+
className: i("image-skeleton", f && "rounded", p && "bordered", F),
|
|
188
|
+
style: Z,
|
|
189
|
+
"aria-label": z.loading,
|
|
190
|
+
...e(u)
|
|
191
|
+
});
|
|
192
|
+
let ce = () => {
|
|
193
|
+
if (!(!v || !Q)) {
|
|
194
|
+
if (w) {
|
|
195
|
+
let e = E(w), t = e.findIndex((e) => e.id === G);
|
|
196
|
+
if (e.length > 0 && t >= 0) {
|
|
197
|
+
ne(e.map(({ id: e, ...t }) => t)), W(t), H(!0);
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
ne([$]), W(0), H(!0);
|
|
202
|
+
}
|
|
203
|
+
}, le = i("image", n, !K && f && "rounded", !K && p && "bordered", !K && m && "shadow"), ue = Y || se || !!K || v || j !== "none", de = i("image-wrap", Y && "has-ratio", se && "has-size", f && "rounded", p && "bordered", m && "shadow", v && "preview", D(j) && "effect-zoom", O(j) && "effect-dim", ie, F), fe = /* @__PURE__ */ x("img", {
|
|
204
|
+
className: le,
|
|
205
|
+
onError: oe,
|
|
206
|
+
src: Q,
|
|
207
|
+
...R,
|
|
208
|
+
alt: L ?? ""
|
|
209
|
+
});
|
|
210
|
+
return ue ? /* @__PURE__ */ S(b, { children: [v ? /* @__PURE__ */ S("button", {
|
|
211
|
+
type: "button",
|
|
212
|
+
className: i(de, "image-button"),
|
|
213
|
+
"aria-label": l(z.previewItem, { name: L || z.image }),
|
|
214
|
+
onClick: ce,
|
|
215
|
+
onPointerDown: K ? ae : void 0,
|
|
216
|
+
disabled: !Q,
|
|
217
|
+
...e(u),
|
|
218
|
+
style: Z,
|
|
219
|
+
children: [K, fe]
|
|
220
|
+
}) : /* @__PURE__ */ S("span", {
|
|
221
|
+
className: de,
|
|
222
|
+
onPointerDown: K ? ae : void 0,
|
|
223
|
+
...e(u),
|
|
224
|
+
style: Z,
|
|
225
|
+
children: [K, fe]
|
|
226
|
+
}), /* @__PURE__ */ x(C, {
|
|
227
|
+
open: V,
|
|
228
|
+
items: U,
|
|
229
|
+
activeIndex: re,
|
|
230
|
+
onActiveIndexChange: W,
|
|
231
|
+
onClose: () => H(!1)
|
|
232
|
+
})] }) : /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x("img", {
|
|
233
|
+
className: i(le, F),
|
|
234
|
+
style: Z,
|
|
235
|
+
onError: oe,
|
|
236
|
+
src: Q,
|
|
237
|
+
...e(u),
|
|
238
|
+
...R,
|
|
239
|
+
alt: L ?? ""
|
|
240
|
+
}), /* @__PURE__ */ x(C, {
|
|
241
|
+
open: V,
|
|
242
|
+
items: U,
|
|
243
|
+
activeIndex: re,
|
|
244
|
+
onActiveIndexChange: W,
|
|
245
|
+
onClose: () => H(!1)
|
|
246
|
+
})] });
|
|
247
|
+
}
|
|
248
|
+
//#endregion
|
|
249
|
+
//#region src/components/media/MGallery/MGallery.tsx
|
|
250
|
+
function M({ items: e, columns: t = 3, rounded: n = !0, preview: r = !1, hoverEffect: a = "zoom", clickEffect: o = "ripple", className: s, ...c }) {
|
|
251
|
+
let [l, u] = y(!1), [d, f] = y(0);
|
|
252
|
+
return /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x("div", {
|
|
253
|
+
className: i("gallery", `columns-${t}`, s),
|
|
254
|
+
...c,
|
|
255
|
+
children: e.map((e, t) => /* @__PURE__ */ x(N, {
|
|
256
|
+
item: e,
|
|
257
|
+
rounded: n,
|
|
258
|
+
preview: r,
|
|
259
|
+
hoverEffect: a,
|
|
260
|
+
clickEffect: o,
|
|
261
|
+
onOpen: () => {
|
|
262
|
+
f(t), u(!0);
|
|
263
|
+
}
|
|
264
|
+
}, t))
|
|
265
|
+
}), /* @__PURE__ */ x(C, {
|
|
266
|
+
open: l,
|
|
267
|
+
items: e,
|
|
268
|
+
activeIndex: d,
|
|
269
|
+
onActiveIndexChange: f,
|
|
270
|
+
onClose: () => u(!1)
|
|
271
|
+
})] });
|
|
272
|
+
}
|
|
273
|
+
function N({ item: e, rounded: t, preview: n, hoverEffect: r, clickEffect: o, onOpen: s }) {
|
|
274
|
+
let u = c(), { effectClassName: d, effectLayer: f, handlePointerDown: p } = a({ effect: o });
|
|
275
|
+
return /* @__PURE__ */ x("figure", {
|
|
276
|
+
className: i("gallery-item", t && "rounded"),
|
|
277
|
+
children: n ? /* @__PURE__ */ S("button", {
|
|
278
|
+
type: "button",
|
|
279
|
+
className: i("gallery-trigger", t && "rounded", "gallery-button", D(r) && "effect-zoom", O(r) && "effect-dim", d),
|
|
280
|
+
onClick: s,
|
|
281
|
+
onPointerDown: p,
|
|
282
|
+
"aria-label": l(u.previewItem, { name: e.alt || u.image }),
|
|
283
|
+
children: [
|
|
284
|
+
/* @__PURE__ */ x("img", {
|
|
285
|
+
className: "gallery-image",
|
|
286
|
+
src: e.thumbnail || e.src,
|
|
287
|
+
alt: e.alt || "",
|
|
288
|
+
loading: "lazy"
|
|
289
|
+
}),
|
|
290
|
+
e.caption && /* @__PURE__ */ x("span", {
|
|
291
|
+
className: "gallery-caption",
|
|
292
|
+
children: e.caption
|
|
293
|
+
}),
|
|
294
|
+
f
|
|
295
|
+
]
|
|
296
|
+
}) : /* @__PURE__ */ S("div", {
|
|
297
|
+
className: i("gallery-trigger", t && "rounded", D(r) && "effect-zoom", O(r) && "effect-dim", d),
|
|
298
|
+
onPointerDown: p,
|
|
299
|
+
children: [
|
|
300
|
+
/* @__PURE__ */ x("img", {
|
|
301
|
+
className: "gallery-image",
|
|
302
|
+
src: e.thumbnail || e.src,
|
|
303
|
+
alt: e.alt || "",
|
|
304
|
+
loading: "lazy"
|
|
305
|
+
}),
|
|
306
|
+
e.caption && /* @__PURE__ */ x("span", {
|
|
307
|
+
className: "gallery-caption",
|
|
308
|
+
children: e.caption
|
|
309
|
+
}),
|
|
310
|
+
f
|
|
311
|
+
]
|
|
312
|
+
})
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
//#endregion
|
|
316
|
+
//#region src/components/media/MCarousel/MCarousel.tsx
|
|
317
|
+
function P({ autoPlay: e = !1, interval: n = 5e3, showDots: a = !0, showArrows: o = !0, loop: u = !0, draggable: d = !0, transition: f = "slide", className: g, children: _, ...C }) {
|
|
318
|
+
let w = c(), T = p.toArray(_), E = T.length, [D, O] = y(0), [k, A] = y(0), [j, M] = y(!1), N = v(0), P = v(null), F = m((e) => {
|
|
319
|
+
O(u ? (e + E) % E : Math.max(0, Math.min(e, E - 1)));
|
|
320
|
+
}, [E, u]), I = m(() => F(D - 1), [D, F]), L = m(() => F(D + 1), [D, F]);
|
|
321
|
+
h(() => {
|
|
322
|
+
if (!e || E <= 1 || j) return;
|
|
323
|
+
let t = setInterval(L, n);
|
|
324
|
+
return () => clearInterval(t);
|
|
325
|
+
}, [
|
|
326
|
+
e,
|
|
327
|
+
n,
|
|
328
|
+
L,
|
|
329
|
+
E,
|
|
330
|
+
j
|
|
331
|
+
]);
|
|
332
|
+
let ee = (e) => {
|
|
333
|
+
d && (M(!0), N.current = e, A(0));
|
|
334
|
+
}, R = (e) => {
|
|
335
|
+
j && A(e - N.current);
|
|
336
|
+
}, z = () => {
|
|
337
|
+
j && (M(!1), k < -50 ? L() : k > 50 && I(), A(0));
|
|
338
|
+
}, B = (e) => {
|
|
339
|
+
d && (e.currentTarget.setPointerCapture(e.pointerId), ee(e.clientX));
|
|
340
|
+
}, te = (e) => {
|
|
341
|
+
R(e.clientX);
|
|
342
|
+
}, V = () => {
|
|
343
|
+
z();
|
|
344
|
+
};
|
|
345
|
+
if (E === 0) return null;
|
|
346
|
+
let H = f === "fade", U = H ? void 0 : { transform: `translateX(calc(-${D * 100}% + ${j ? k : 0}px))` };
|
|
347
|
+
return /* @__PURE__ */ S("div", {
|
|
348
|
+
className: i("carousel", H && "fade", g),
|
|
349
|
+
...C,
|
|
350
|
+
children: [
|
|
351
|
+
/* @__PURE__ */ x("div", {
|
|
352
|
+
className: "carousel-viewport",
|
|
353
|
+
onPointerDown: B,
|
|
354
|
+
onPointerMove: te,
|
|
355
|
+
onPointerUp: V,
|
|
356
|
+
onPointerCancel: V,
|
|
357
|
+
style: {
|
|
358
|
+
touchAction: d ? "pan-y" : void 0,
|
|
359
|
+
cursor: d ? j ? "grabbing" : "grab" : void 0
|
|
360
|
+
},
|
|
361
|
+
children: /* @__PURE__ */ x("div", {
|
|
362
|
+
ref: P,
|
|
363
|
+
className: i("carousel-track", j && "dragging"),
|
|
364
|
+
style: U,
|
|
365
|
+
children: T.map((e, t) => /* @__PURE__ */ x("div", {
|
|
366
|
+
className: i("carousel-slide", H && t === D && "active", H && t !== D && "hidden"),
|
|
367
|
+
children: e
|
|
368
|
+
}, t))
|
|
369
|
+
})
|
|
370
|
+
}),
|
|
371
|
+
o && E > 1 && /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(s, {
|
|
372
|
+
variant: "ghost",
|
|
373
|
+
color: "primary",
|
|
374
|
+
iconOnly: !0,
|
|
375
|
+
shape: "circle",
|
|
376
|
+
onClick: I,
|
|
377
|
+
"aria-label": w.previousSlide,
|
|
378
|
+
className: "carousel-arrow carousel-arrow-prev",
|
|
379
|
+
children: /* @__PURE__ */ x(t, {})
|
|
380
|
+
}), /* @__PURE__ */ x(s, {
|
|
381
|
+
variant: "ghost",
|
|
382
|
+
color: "primary",
|
|
383
|
+
iconOnly: !0,
|
|
384
|
+
shape: "circle",
|
|
385
|
+
onClick: L,
|
|
386
|
+
"aria-label": w.nextSlide,
|
|
387
|
+
className: "carousel-arrow carousel-arrow-next",
|
|
388
|
+
children: /* @__PURE__ */ x(r, {})
|
|
389
|
+
})] }),
|
|
390
|
+
a && E > 1 && /* @__PURE__ */ x("div", {
|
|
391
|
+
className: "carousel-dots",
|
|
392
|
+
children: T.map((e, t) => /* @__PURE__ */ x("button", {
|
|
393
|
+
className: i("carousel-dot", t === D && "active"),
|
|
394
|
+
onClick: () => F(t),
|
|
395
|
+
"aria-label": l(w.slideNumber, { index: t + 1 }),
|
|
396
|
+
type: "button"
|
|
397
|
+
}, t))
|
|
398
|
+
})
|
|
399
|
+
]
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
//#endregion
|
|
403
|
+
export { M as n, j as r, P as t };
|
|
404
|
+
|
|
405
|
+
//# sourceMappingURL=media-BPzMgzqE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-BPzMgzqE.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/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 './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 const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\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 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)}\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)}\n style={ratioStyle}\n >\n {effectLayer}\n {imageNode}\n </button>\n ) : (\n <span\n className={wrapperClassName}\n onPointerDown={effectLayer ? handlePointerDown : undefined}\n {...getHiddenProps(hidden)}\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)}\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 {useState, useEffect, useCallback, 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} from '../../../icons'\nimport './MCarousel.css'\nimport {useMCommonTexts, formatMText} from '../../../i18n/frameworkTexts'\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 ...rest\n}: MCarouselProps) {\n const texts = useMCommonTexts()\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 useEffect(() => {\n if (!autoPlay || count <= 1 || isDragging) return\n const timer = setInterval(next, interval)\n return () => clearInterval(timer)\n }, [autoPlay, interval, next, count, isDragging])\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 isFade = transition === 'fade'\n const trackStyle = !isFade\n ? {transform: `translateX(calc(-${active * 100}% + ${isDragging ? dragOffset : 0}px))`}\n : undefined\n\n return (\n <div className={cn('carousel', isFade && 'fade', className)} {...rest}>\n <div\n className=\"carousel-viewport\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n style={{\n touchAction: draggable ? 'pan-y' : undefined,\n cursor: draggable ? (isDragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div ref={trackRef} className={cn('carousel-track', isDragging && 'dragging')} style={trackStyle}>\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 >\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 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 className=\"carousel-arrow carousel-arrow-next\"\n >\n <MChevronRightIcon />\n </MButton>\n </>\n )}\n\n {showDots && count > 1 && (\n <div className=\"carousel-dots\">\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 type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./theme-CJuqObWL.cjs`),t=require(`./icons-D3n9-919.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./useInteractionEffect-CtXlbjhC.cjs`),i=require(`./MPortal-CuBXhhl_.cjs`),a=require(`./MButton-CnAr77Za.cjs`),o=require(`./frameworkTexts-BSXUtXOp.cjs`),s=require(`./MSkeleton-DPa_G_2X.cjs`),c=require(`./useModalLayer-DxYhhgRO.cjs`);require(`./core-w629c4ND.cjs`);let l=require(`react`),u=require(`react/jsx-runtime`);function d({open:e,items:r,activeIndex:d,onClose:f,onActiveIndexChange:p}){let m=o.n(),h=r[d],g=(0,l.useRef)(null),_=(0,l.useRef)(null),v=d>0,y=d<r.length-1;if(c.t({active:e&&!!h,containerRef:_,onEscape:f}),(0,l.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`ArrowLeft`&&v&&p(d-1),e.key===`ArrowRight`&&y&&p(d+1)};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[d,y,v,p,f,e]),(0,l.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]),!e||!h)return null;let b=e=>{let t=e.target;t&&g.current&&!g.current.contains(t)&&f()},x=h.alt||h.caption||m.imagePreview;return(0,u.jsx)(i.t,{children:(0,u.jsx)(`div`,{ref:_,className:n.t(`mineral-backdrop`,`media-lightbox-backdrop`),onMouseDown:b,children:(0,u.jsx)(`div`,{className:`media-lightbox-shell`,role:`dialog`,"aria-modal":`true`,"aria-label":x,children:(0,u.jsx)(`div`,{className:`media-lightbox-stage`,children:(0,u.jsxs)(`div`,{ref:g,className:`media-lightbox-frame`,children:[(0,u.jsxs)(`div`,{className:`media-lightbox-topbar`,children:[(0,u.jsx)(s.n,{color:`dark`,size:`md`,rounded:!0,className:`media-lightbox-counter`,children:r.length>1?`${d+1} / ${r.length}`:m.preview}),(0,u.jsx)(a.t,{type:`button`,variant:`ghost`,color:`error`,size:`lg`,shape:`circle`,iconOnly:!0,className:`media-lightbox-action`,"aria-label":m.closePreview,onClick:f,children:(0,u.jsx)(t.Xi,{})})]}),(0,u.jsx)(a.t,{type:`button`,variant:`ghost`,color:`primary`,size:`lg`,shape:`circle`,iconOnly:!0,className:`media-lightbox-nav media-lightbox-nav-prev`,"aria-label":m.previousImage,disabled:r.length<=1||!v,onClick:()=>v&&p(d-1),children:(0,u.jsx)(t.Ji,{})}),(0,u.jsx)(`img`,{className:`media-lightbox-image`,src:h.src,alt:h.alt||``}),(0,u.jsx)(a.t,{type:`button`,variant:`ghost`,color:`primary`,size:`lg`,shape:`circle`,iconOnly:!0,className:`media-lightbox-nav media-lightbox-nav-next`,"aria-label":m.nextImage,disabled:r.length<=1||!y,onClick:()=>y&&p(d+1),children:(0,u.jsx)(t.qi,{})}),h.caption||h.alt?(0,u.jsx)(s.n,{color:`dark`,size:`sm`,rounded:!0,className:`media-lightbox-caption`,children:h.caption||h.alt}):null]})})})})})}var f=new Map;function p(e,t,n){let r=f.get(e);return r||(r=new Map,f.set(e,r)),r.set(t,{id:t,...n}),()=>{let n=f.get(e);n&&(n.delete(t),n.size===0&&f.delete(e))}}function m(e){return Array.from(f.get(e)?.values()??[])}function h(e){return e===`zoom`||e===`zoom-dim`}function g(e){return e===`dim`||e===`zoom-dim`}var _={"1:1":`1 / 1`,"4:3":`4 / 3`,"16:9":`16 / 9`,"21:9":`21 / 9`};function v(e){if(e!=null)return typeof e==`number`?`${e}px`:e}function y({src:t,fit:i=`cover`,ratio:a=`auto`,width:c,height:f,hidden:y,rounded:b=!1,bordered:x=!1,shadow:S=!1,preview:C=!1,previewGroup:w,hoverEffect:T=`none`,clickEffect:E=`none`,fallback:D,skeleton:O=!1,className:k,style:ee,alt:A,onError:j,...M}){let N=o.n(),[P,F]=(0,l.useState)(!1),[I,L]=(0,l.useState)(!1),[R,z]=(0,l.useState)([]),[B,V]=(0,l.useState)(0),H=(0,l.useId)(),{effectClassName:te,effectLayer:U,handlePointerDown:W}=r.t({effect:O?`none`:E}),G=e=>{D&&!P&&(F(!0),e.currentTarget.src=D),j?.(e)},K=v(c),q=v(f),J=K!=null||q!=null,Y=a!==`auto`&&!!_[a],X={};K!=null&&(X.width=K),q!=null&&(X.height=q);let Z={...ee,...Y?{aspectRatio:_[a]}:null,...X},Q=P&&D?D:t,$=(0,l.useMemo)(()=>({src:Q||``,alt:A??``,caption:typeof M.title==`string`?M.title:void 0}),[A,Q,M.title]);if((0,l.useEffect)(()=>{if(!(!C||!w||!Q))return p(w,H,$)},[C,w,H,$,Q]),O)return(0,u.jsx)(s.t,{variant:`rectangle`,animate:`pulse`,className:n.t(`image-skeleton`,b&&`rounded`,x&&`bordered`,k),style:Z,"aria-label":N.loading,...e.r(y)});let ne=()=>{if(!(!C||!Q)){if(w){let e=m(w),t=e.findIndex(e=>e.id===H);if(e.length>0&&t>=0){z(e.map(({id:e,...t})=>t)),V(t),L(!0);return}}z([$]),V(0),L(!0)}},re=n.t(`image`,i,!U&&b&&`rounded`,!U&&x&&`bordered`,!U&&S&&`shadow`),ie=Y||J||!!U||C||T!==`none`,ae=n.t(`image-wrap`,Y&&`has-ratio`,J&&`has-size`,b&&`rounded`,x&&`bordered`,S&&`shadow`,C&&`preview`,h(T)&&`effect-zoom`,g(T)&&`effect-dim`,te,k),oe=(0,u.jsx)(`img`,{className:re,onError:G,src:Q,...M,alt:A??``});return ie?(0,u.jsxs)(u.Fragment,{children:[C?(0,u.jsxs)(`button`,{type:`button`,className:n.t(ae,`image-button`),"aria-label":o.t(N.previewItem,{name:A||N.image}),onClick:ne,onPointerDown:U?W:void 0,disabled:!Q,...e.r(y),style:Z,children:[U,oe]}):(0,u.jsxs)(`span`,{className:ae,onPointerDown:U?W:void 0,...e.r(y),style:Z,children:[U,oe]}),(0,u.jsx)(d,{open:I,items:R,activeIndex:B,onActiveIndexChange:V,onClose:()=>L(!1)})]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`img`,{className:n.t(re,k),style:Z,onError:G,src:Q,...e.r(y),...M,alt:A??``}),(0,u.jsx)(d,{open:I,items:R,activeIndex:B,onActiveIndexChange:V,onClose:()=>L(!1)})]})}function b({items:e,columns:t=3,rounded:r=!0,preview:i=!1,hoverEffect:a=`zoom`,clickEffect:o=`ripple`,className:s,...c}){let[f,p]=(0,l.useState)(!1),[m,h]=(0,l.useState)(0);return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(`div`,{className:n.t(`gallery`,`columns-${t}`,s),...c,children:e.map((e,t)=>(0,u.jsx)(x,{item:e,rounded:r,preview:i,hoverEffect:a,clickEffect:o,onOpen:()=>{h(t),p(!0)}},t))}),(0,u.jsx)(d,{open:f,items:e,activeIndex:m,onActiveIndexChange:h,onClose:()=>p(!1)})]})}function x({item:e,rounded:t,preview:i,hoverEffect:a,clickEffect:s,onOpen:c}){let l=o.n(),{effectClassName:d,effectLayer:f,handlePointerDown:p}=r.t({effect:s});return(0,u.jsx)(`figure`,{className:n.t(`gallery-item`,t&&`rounded`),children:i?(0,u.jsxs)(`button`,{type:`button`,className:n.t(`gallery-trigger`,t&&`rounded`,`gallery-button`,h(a)&&`effect-zoom`,g(a)&&`effect-dim`,d),onClick:c,onPointerDown:p,"aria-label":o.t(l.previewItem,{name:e.alt||l.image}),children:[(0,u.jsx)(`img`,{className:`gallery-image`,src:e.thumbnail||e.src,alt:e.alt||``,loading:`lazy`}),e.caption&&(0,u.jsx)(`span`,{className:`gallery-caption`,children:e.caption}),f]}):(0,u.jsxs)(`div`,{className:n.t(`gallery-trigger`,t&&`rounded`,h(a)&&`effect-zoom`,g(a)&&`effect-dim`,d),onPointerDown:p,children:[(0,u.jsx)(`img`,{className:`gallery-image`,src:e.thumbnail||e.src,alt:e.alt||``,loading:`lazy`}),e.caption&&(0,u.jsx)(`span`,{className:`gallery-caption`,children:e.caption}),f]})})}function S({autoPlay:e=!1,interval:r=5e3,showDots:i=!0,showArrows:s=!0,loop:c=!0,draggable:d=!0,transition:f=`slide`,className:p,children:m,...h}){let g=o.n(),_=l.Children.toArray(m),v=_.length,[y,b]=(0,l.useState)(0),[x,S]=(0,l.useState)(0),[C,w]=(0,l.useState)(!1),T=(0,l.useRef)(0),E=(0,l.useRef)(null),D=(0,l.useCallback)(e=>{b(c?(e+v)%v:Math.max(0,Math.min(e,v-1)))},[v,c]),O=(0,l.useCallback)(()=>D(y-1),[y,D]),k=(0,l.useCallback)(()=>D(y+1),[y,D]);(0,l.useEffect)(()=>{if(!e||v<=1||C)return;let t=setInterval(k,r);return()=>clearInterval(t)},[e,r,k,v,C]);let ee=e=>{d&&(w(!0),T.current=e,S(0))},A=e=>{C&&S(e-T.current)},j=()=>{C&&(w(!1),x<-50?k():x>50&&O(),S(0))},M=e=>{d&&(e.currentTarget.setPointerCapture(e.pointerId),ee(e.clientX))},N=e=>{A(e.clientX)},P=()=>{j()};if(v===0)return null;let F=f===`fade`,I=F?void 0:{transform:`translateX(calc(-${y*100}% + ${C?x:0}px))`};return(0,u.jsxs)(`div`,{className:n.t(`carousel`,F&&`fade`,p),...h,children:[(0,u.jsx)(`div`,{className:`carousel-viewport`,onPointerDown:M,onPointerMove:N,onPointerUp:P,onPointerCancel:P,style:{touchAction:d?`pan-y`:void 0,cursor:d?C?`grabbing`:`grab`:void 0},children:(0,u.jsx)(`div`,{ref:E,className:n.t(`carousel-track`,C&&`dragging`),style:I,children:_.map((e,t)=>(0,u.jsx)(`div`,{className:n.t(`carousel-slide`,F&&t===y&&`active`,F&&t!==y&&`hidden`),children:e},t))})}),s&&v>1&&(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(a.t,{variant:`ghost`,color:`primary`,iconOnly:!0,shape:`circle`,onClick:O,"aria-label":g.previousSlide,className:`carousel-arrow carousel-arrow-prev`,children:(0,u.jsx)(t.Ji,{})}),(0,u.jsx)(a.t,{variant:`ghost`,color:`primary`,iconOnly:!0,shape:`circle`,onClick:k,"aria-label":g.nextSlide,className:`carousel-arrow carousel-arrow-next`,children:(0,u.jsx)(t.qi,{})})]}),i&&v>1&&(0,u.jsx)(`div`,{className:`carousel-dots`,children:_.map((e,t)=>(0,u.jsx)(`button`,{className:n.t(`carousel-dot`,t===y&&`active`),onClick:()=>D(t),"aria-label":o.t(g.slideNumber,{index:t+1}),type:`button`},t))})]})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});
|
|
2
|
+
//# sourceMappingURL=media-D63hxCAJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-D63hxCAJ.cjs","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/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 './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 const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\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 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)}\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)}\n style={ratioStyle}\n >\n {effectLayer}\n {imageNode}\n </button>\n ) : (\n <span\n className={wrapperClassName}\n onPointerDown={effectLayer ? handlePointerDown : undefined}\n {...getHiddenProps(hidden)}\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)}\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 {useState, useEffect, useCallback, 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} from '../../../icons'\nimport './MCarousel.css'\nimport {useMCommonTexts, formatMText} from '../../../i18n/frameworkTexts'\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 ...rest\n}: MCarouselProps) {\n const texts = useMCommonTexts()\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 useEffect(() => {\n if (!autoPlay || count <= 1 || isDragging) return\n const timer = setInterval(next, interval)\n return () => clearInterval(timer)\n }, [autoPlay, interval, next, count, isDragging])\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 isFade = transition === 'fade'\n const trackStyle = !isFade\n ? {transform: `translateX(calc(-${active * 100}% + ${isDragging ? dragOffset : 0}px))`}\n : undefined\n\n return (\n <div className={cn('carousel', isFade && 'fade', className)} {...rest}>\n <div\n className=\"carousel-viewport\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n style={{\n touchAction: draggable ? 'pan-y' : undefined,\n cursor: draggable ? (isDragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div ref={trackRef} className={cn('carousel-track', isDragging && 'dragging')} style={trackStyle}>\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 >\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 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 className=\"carousel-arrow carousel-arrow-next\"\n >\n <MChevronRightIcon />\n </MButton>\n </>\n )}\n\n {showDots && count > 1 && (\n <div className=\"carousel-dots\">\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 type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
package/dist/media.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
const {ensureStyles}=require('./style-runtime.cjs')
|
|
2
2
|
ensureStyles()
|
|
3
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./media-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./media-D63hxCAJ.cjs`),t=require(`./MAvatar-DHNB3829.cjs`);exports.MAvatar=t.t,exports.MCarousel=e.t,exports.MGallery=e.n,exports.MImage=e.r;
|
package/dist/media.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { n as e, r as t, t as n } from "./media-
|
|
4
|
-
import { t as r } from "./MAvatar-
|
|
3
|
+
import { n as e, r as t, t as n } from "./media-BPzMgzqE.js";
|
|
4
|
+
import { t as r } from "./MAvatar-GeRL-CNO.js";
|
|
5
5
|
export { r as MAvatar, n as MCarousel, e as MGallery, t as MImage };
|