@banzamel/mineralui 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{MAvatar-lCDowKeG.js → MAvatar-CnBVN71i.js} +2 -2
- package/dist/{MAvatar-lCDowKeG.js.map → MAvatar-CnBVN71i.js.map} +1 -1
- package/dist/{MAvatar-DMNwEhrd.cjs → MAvatar-DGEQqUss.cjs} +2 -2
- package/dist/{MAvatar-DMNwEhrd.cjs.map → MAvatar-DGEQqUss.cjs.map} +1 -1
- package/dist/{MBadge-CuVY4TXo.js → MBadge-C_vK2JdM.js} +1 -1
- package/dist/{MBadge-CuVY4TXo.js.map → MBadge-C_vK2JdM.js.map} +1 -1
- package/dist/{MBadge-DmIO-oEJ.cjs → MBadge-DcIPfPH1.cjs} +1 -1
- package/dist/{MBadge-DmIO-oEJ.cjs.map → MBadge-DcIPfPH1.cjs.map} +1 -1
- package/dist/{MButton-JumA31vM.js → MButton-BpSZUhpY.js} +1 -1
- package/dist/{MButton-JumA31vM.js.map → MButton-BpSZUhpY.js.map} +1 -1
- package/dist/{MButton-DTblkF4v.cjs → MButton-LUNWBBOV.cjs} +1 -1
- package/dist/{MButton-DTblkF4v.cjs.map → MButton-LUNWBBOV.cjs.map} +1 -1
- package/dist/{MCheckbox-DYrfb_bW.js → MCheckbox-CNz73bQC.js} +1 -1
- package/dist/{MCheckbox-DYrfb_bW.js.map → MCheckbox-CNz73bQC.js.map} +1 -1
- package/dist/{MCheckbox-DbHXmu1a.cjs → MCheckbox-PzknJeM2.cjs} +1 -1
- package/dist/{MCheckbox-DbHXmu1a.cjs.map → MCheckbox-PzknJeM2.cjs.map} +1 -1
- package/dist/{MCookieBootstrap-D1OGFCC7.js → MCookieBootstrap-CNYLvKjW.js} +1 -1
- package/dist/{MCookieBootstrap-D1OGFCC7.js.map → MCookieBootstrap-CNYLvKjW.js.map} +1 -1
- package/dist/{MCookieBootstrap-ByObqs4o.cjs → MCookieBootstrap-DSOT4FQo.cjs} +1 -1
- package/dist/{MCookieBootstrap-ByObqs4o.cjs.map → MCookieBootstrap-DSOT4FQo.cjs.map} +1 -1
- package/dist/{MDataTable-CEGkEf5L.js → MDataTable-AH5Tnirs.js} +6 -6
- package/dist/{MDataTable-CEGkEf5L.js.map → MDataTable-AH5Tnirs.js.map} +1 -1
- package/dist/{MDataTable-BSuwd0gb.cjs → MDataTable-Bq6UoNJX.cjs} +2 -2
- package/dist/{MDataTable-BSuwd0gb.cjs.map → MDataTable-Bq6UoNJX.cjs.map} +1 -1
- package/dist/{MDrawer-BCjiepJO.js → MDrawer-C08QXXC4.js} +4 -4
- package/dist/{MDrawer-BCjiepJO.js.map → MDrawer-C08QXXC4.js.map} +1 -1
- package/dist/{MDrawer-YhA79aS4.cjs → MDrawer-DRqMsjMt.cjs} +2 -2
- package/dist/{MDrawer-YhA79aS4.cjs.map → MDrawer-DRqMsjMt.cjs.map} +1 -1
- package/dist/{MDropdownMenu-CVp1LFgZ.js → MDropdownMenu-CMnBt-wO.js} +2 -2
- package/dist/{MDropdownMenu-CVp1LFgZ.js.map → MDropdownMenu-CMnBt-wO.js.map} +1 -1
- package/dist/{MDropdownMenu-BRL0Vcq_.cjs → MDropdownMenu-CymCQqyP.cjs} +2 -2
- package/dist/{MDropdownMenu-BRL0Vcq_.cjs.map → MDropdownMenu-CymCQqyP.cjs.map} +1 -1
- package/dist/{MHeading-qOPIM4dL.js → MHeading-BvpWyvjj.js} +2 -2
- package/dist/{MHeading-qOPIM4dL.js.map → MHeading-BvpWyvjj.js.map} +1 -1
- package/dist/{MHeading-4vfYPN_i.cjs → MHeading-DHT1gORD.cjs} +2 -2
- package/dist/{MHeading-4vfYPN_i.cjs.map → MHeading-DHT1gORD.cjs.map} +1 -1
- package/dist/MImage-BQs91GK-.js +252 -0
- package/dist/MImage-BQs91GK-.js.map +1 -0
- package/dist/MImage-CxeuH-cT.cjs +2 -0
- package/dist/MImage-CxeuH-cT.cjs.map +1 -0
- package/dist/MInline-D9p9Sazp.cjs +2 -0
- package/dist/MInline-D9p9Sazp.cjs.map +1 -0
- package/dist/MInline-DA_ehefx.js +39 -0
- package/dist/MInline-DA_ehefx.js.map +1 -0
- package/dist/{MInput-DkbdeGQW.cjs → MInput-DDZ71Qqn.cjs} +2 -2
- package/dist/{MInput-DkbdeGQW.cjs.map → MInput-DDZ71Qqn.cjs.map} +1 -1
- package/dist/{MInput-3ynY4aGD.js → MInput-l3MY93Su.js} +3 -3
- package/dist/{MInput-3ynY4aGD.js.map → MInput-l3MY93Su.js.map} +1 -1
- package/dist/{MInputCVC-BO251yU6.js → MInputCVC-CN91scmw.js} +4 -4
- package/dist/{MInputCVC-BO251yU6.js.map → MInputCVC-CN91scmw.js.map} +1 -1
- package/dist/{MInputCVC-NSy1SkiZ.cjs → MInputCVC-Sp2uZ5aO.cjs} +2 -2
- package/dist/{MInputCVC-NSy1SkiZ.cjs.map → MInputCVC-Sp2uZ5aO.cjs.map} +1 -1
- package/dist/{MInputSearch-CQQIKYMt.cjs → MInputSearch-30o4bcDC.cjs} +2 -2
- package/dist/{MInputSearch-CQQIKYMt.cjs.map → MInputSearch-30o4bcDC.cjs.map} +1 -1
- package/dist/{MInputSearch-BT0OqlE_.js → MInputSearch-CdPfJ4v_.js} +3 -3
- package/dist/{MInputSearch-BT0OqlE_.js.map → MInputSearch-CdPfJ4v_.js.map} +1 -1
- package/dist/{MLink-Cytb3UVc.js → MLink-CRUWGES-.js} +1 -1
- package/dist/{MLink-Cytb3UVc.js.map → MLink-CRUWGES-.js.map} +1 -1
- package/dist/{MLink-B6Az9m2B.cjs → MLink-U_wAUuz1.cjs} +1 -1
- package/dist/{MLink-B6Az9m2B.cjs.map → MLink-U_wAUuz1.cjs.map} +1 -1
- package/dist/{MModal-BTOS_Xrs.js → MModal-CHSo5gKE.js} +3 -3
- package/dist/{MModal-BTOS_Xrs.js.map → MModal-CHSo5gKE.js.map} +1 -1
- package/dist/{MModal-BhYBOKUh.cjs → MModal-Czy-rR--.cjs} +2 -2
- package/dist/{MModal-BhYBOKUh.cjs.map → MModal-Czy-rR--.cjs.map} +1 -1
- package/dist/{MPagination-4X0we8Ab.cjs → MPagination-73z0sQvf.cjs} +2 -2
- package/dist/{MPagination-4X0we8Ab.cjs.map → MPagination-73z0sQvf.cjs.map} +1 -1
- package/dist/{MPagination-Bz35UIbt.js → MPagination-DdT1uNzD.js} +7 -7
- package/dist/{MPagination-Bz35UIbt.js.map → MPagination-DdT1uNzD.js.map} +1 -1
- package/dist/{MPopover-DHc3otwX.js → MPopover-3tjz5lKh.js} +2 -2
- package/dist/{MPopover-DHc3otwX.js.map → MPopover-3tjz5lKh.js.map} +1 -1
- package/dist/{MPopover-C03jl1zd.cjs → MPopover-BW23_1Dl.cjs} +2 -2
- package/dist/{MPopover-C03jl1zd.cjs.map → MPopover-BW23_1Dl.cjs.map} +1 -1
- package/dist/{MPortal-xGHZKLX5.cjs → MPortal-DE3pL2Xl.cjs} +1 -1
- package/dist/{MPortal-xGHZKLX5.cjs.map → MPortal-DE3pL2Xl.cjs.map} +1 -1
- package/dist/{MPortal-CHoRxTlE.js → MPortal-Dqlkh3hw.js} +1 -1
- package/dist/{MPortal-CHoRxTlE.js.map → MPortal-Dqlkh3hw.js.map} +1 -1
- package/dist/{MQrCode-blzcp1yz.cjs → MQrCode-CMoru4dD.cjs} +2 -2
- package/dist/{MQrCode-blzcp1yz.cjs.map → MQrCode-CMoru4dD.cjs.map} +1 -1
- package/dist/{MQrCode-Dmgh8fzs.js → MQrCode-DK5-SBhN.js} +11 -11
- package/dist/{MQrCode-Dmgh8fzs.js.map → MQrCode-DK5-SBhN.js.map} +1 -1
- package/dist/{MSkeleton-CQEnuIos.cjs → MSkeleton-B0Mxe3L7.cjs} +2 -2
- package/dist/{MSkeleton-CQEnuIos.cjs.map → MSkeleton-B0Mxe3L7.cjs.map} +1 -1
- package/dist/{MSkeleton-CJIlxsCx.js → MSkeleton-Bqq_XJn8.js} +2 -2
- package/dist/{MSkeleton-CJIlxsCx.js.map → MSkeleton-Bqq_XJn8.js.map} +1 -1
- package/dist/{MSlider-DuTnRaK_.js → MSlider-ByVuoFFc.js} +1 -1
- package/dist/{MSlider-DuTnRaK_.js.map → MSlider-ByVuoFFc.js.map} +1 -1
- package/dist/{MSlider-B4K6bkIs.cjs → MSlider-sH2Vt9Lw.cjs} +1 -1
- package/dist/{MSlider-B4K6bkIs.cjs.map → MSlider-sH2Vt9Lw.cjs.map} +1 -1
- package/dist/{MSparkline-7ycEh2eZ.cjs → MSparkline-B-ld7hJu.cjs} +1 -1
- package/dist/{MSparkline-7ycEh2eZ.cjs.map → MSparkline-B-ld7hJu.cjs.map} +1 -1
- package/dist/{MSparkline-Dz4K9Vx9.js → MSparkline-DbtdM0W6.js} +1 -1
- package/dist/{MSparkline-Dz4K9Vx9.js.map → MSparkline-DbtdM0W6.js.map} +1 -1
- package/dist/MStack-BWarX5O9.js +39 -0
- package/dist/MStack-BWarX5O9.js.map +1 -0
- package/dist/MStack-Cy2GplIA.cjs +2 -0
- package/dist/MStack-Cy2GplIA.cjs.map +1 -0
- package/dist/{MSubText-D-wde4hz.js → MSubText-C9VizSn9.js} +2 -2
- package/dist/{MSubText-D-wde4hz.js.map → MSubText-C9VizSn9.js.map} +1 -1
- package/dist/{MSubText-DjtJHCSy.cjs → MSubText-DP9WYlwz.cjs} +2 -2
- package/dist/{MSubText-DjtJHCSy.cjs.map → MSubText-DP9WYlwz.cjs.map} +1 -1
- package/dist/MSurface-C467dVMQ.cjs +2 -0
- package/dist/MSurface-C467dVMQ.cjs.map +1 -0
- package/dist/MSurface-DfZ1Zy1-.js +39 -0
- package/dist/MSurface-DfZ1Zy1-.js.map +1 -0
- package/dist/{MTag-D_mw488_.cjs → MTag-DXqkBvqx.cjs} +2 -2
- package/dist/{MTag-D_mw488_.cjs.map → MTag-DXqkBvqx.cjs.map} +1 -1
- package/dist/{MTag-CGns3Rk2.js → MTag-N-tYZ915.js} +3 -3
- package/dist/{MTag-CGns3Rk2.js.map → MTag-N-tYZ915.js.map} +1 -1
- package/dist/{MText-C0VxNQCE.js → MText-B7_HjPym.js} +2 -2
- package/dist/{MText-C0VxNQCE.js.map → MText-B7_HjPym.js.map} +1 -1
- package/dist/{MText-rSgurLeq.cjs → MText-COzub3y4.cjs} +2 -2
- package/dist/{MText-rSgurLeq.cjs.map → MText-COzub3y4.cjs.map} +1 -1
- package/dist/{MTimeAgo-ecmmkLeM.js → MTimeAgo-D1G2yovw.js} +2 -2
- package/dist/{MTimeAgo-ecmmkLeM.js.map → MTimeAgo-D1G2yovw.js.map} +1 -1
- package/dist/{MTimeAgo-BesEN_u2.cjs → MTimeAgo-DWwXs48z.cjs} +2 -2
- package/dist/{MTimeAgo-BesEN_u2.cjs.map → MTimeAgo-DWwXs48z.cjs.map} +1 -1
- package/dist/{MToggle-DV0lHLSE.cjs → MToggle-Cm3f6gm4.cjs} +1 -1
- package/dist/{MToggle-DV0lHLSE.cjs.map → MToggle-Cm3f6gm4.cjs.map} +1 -1
- package/dist/{MToggle-DXw8qz0m.js → MToggle-D0DrQirB.js} +1 -1
- package/dist/{MToggle-DXw8qz0m.js.map → MToggle-D0DrQirB.js.map} +1 -1
- package/dist/{MTooltip-Ce1cs9e3.cjs → MTooltip-C3PeHgV3.cjs} +2 -2
- package/dist/{MTooltip-Ce1cs9e3.cjs.map → MTooltip-C3PeHgV3.cjs.map} +1 -1
- package/dist/{MTooltip-BW4hHnEf.js → MTooltip-w6Aj044c.js} +2 -2
- package/dist/{MTooltip-BW4hHnEf.js.map → MTooltip-w6Aj044c.js.map} +1 -1
- package/dist/{cards-DFUONqA1.cjs → cards-B75QM9JW.cjs} +2 -2
- package/dist/{cards-DFUONqA1.cjs.map → cards-B75QM9JW.cjs.map} +1 -1
- package/dist/{cards-D45hG2rJ.js → cards-BKi8MxNx.js} +272 -272
- package/dist/{cards-D45hG2rJ.js.map → cards-BKi8MxNx.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/components/display/MReveal/MReveal.d.ts +2 -0
- package/dist/components/display/MReveal/MReveal.types.d.ts +14 -0
- package/dist/components/display/MReveal/index.d.ts +2 -0
- package/dist/components/display/index.d.ts +2 -0
- package/dist/components/layout/MInline/MInline.d.ts +1 -1
- package/dist/components/layout/MInline/MInline.types.d.ts +0 -2
- package/dist/components/layout/MSection/MSection.d.ts +1 -1
- package/dist/components/layout/MSection/MSection.types.d.ts +0 -2
- package/dist/components/layout/MStack/MStack.d.ts +1 -1
- package/dist/components/layout/MStack/MStack.types.d.ts +0 -2
- package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
- package/dist/components/layout/MSurface/MSurface.types.d.ts +0 -2
- package/dist/components/media/MGallery/MGallery.d.ts +1 -1
- package/dist/components/media/MGallery/MGallery.types.d.ts +3 -0
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/MImage/MImage.types.d.ts +4 -0
- package/dist/components/media/MMediaLightbox/MMediaLightbox.d.ts +14 -0
- package/dist/components/media/index.d.ts +1 -0
- package/dist/components/media/mediaInteraction.d.ts +3 -0
- package/dist/components/media/mediaPreviewRegistry.d.ts +7 -0
- package/dist/{controls-CkndCsX9.cjs → controls-B7wV_kjJ.cjs} +2 -2
- package/dist/{controls-CkndCsX9.cjs.map → controls-B7wV_kjJ.cjs.map} +1 -1
- package/dist/{controls-DY0O5P1b.js → controls-BEi-0mf4.js} +3 -3
- package/dist/{controls-DY0O5P1b.js.map → controls-BEi-0mf4.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/cookie-consent-bootstrap.cjs +1 -1
- package/dist/cookie-consent-bootstrap.js +1 -1
- package/dist/{data-BKhx0T2n.cjs → data-DHkccnSN.cjs} +2 -2
- package/dist/{data-BKhx0T2n.cjs.map → data-DHkccnSN.cjs.map} +1 -1
- package/dist/{data-Coc1KFVp.js → data-DKrj_Hx6.js} +737 -737
- package/dist/{data-Coc1KFVp.js.map → data-DKrj_Hx6.js.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/display-BoXtzMg5.cjs +3 -0
- package/dist/display-BoXtzMg5.cjs.map +1 -0
- package/dist/{display-CZO1cOXZ.js → display-Xqa2Qns3.js} +111 -40
- package/dist/display-Xqa2Qns3.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +4 -4
- package/dist/{dropdowns-y3B9jSZf.js → dropdowns-BKnXb1XJ.js} +58 -58
- package/dist/{dropdowns-y3B9jSZf.js.map → dropdowns-BKnXb1XJ.js.map} +1 -1
- package/dist/{dropdowns-CI4qUI4Q.cjs → dropdowns-cRrLY8FG.cjs} +2 -2
- package/dist/{dropdowns-CI4qUI4Q.cjs.map → dropdowns-cRrLY8FG.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-5T-NKzak.js → feedback-CIXmm0XT.js} +28 -28
- package/dist/{feedback-5T-NKzak.js.map → feedback-CIXmm0XT.js.map} +1 -1
- package/dist/{feedback-Cfi3ON4a.cjs → feedback-DiMptPJy.cjs} +2 -2
- package/dist/{feedback-Cfi3ON4a.cjs.map → feedback-DiMptPJy.cjs.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +6 -6
- package/dist/{form-g7ns3G0R.cjs → form-DABPazeN.cjs} +1 -1
- package/dist/{form-g7ns3G0R.cjs.map → form-DABPazeN.cjs.map} +1 -1
- package/dist/{form-ClvMlxiX.js → form-DZJxDW59.js} +1 -1
- package/dist/{form-ClvMlxiX.js.map → form-DZJxDW59.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{frameworkTexts-khAIsKS9.cjs → frameworkTexts-DPX5T2x3.cjs} +1 -1
- package/dist/{frameworkTexts-khAIsKS9.cjs.map → frameworkTexts-DPX5T2x3.cjs.map} +1 -1
- package/dist/{frameworkTexts-Brl68Lwf.js → frameworkTexts-DzujbRBe.js} +1 -1
- package/dist/{frameworkTexts-Brl68Lwf.js.map → frameworkTexts-DzujbRBe.js.map} +1 -1
- package/dist/icons/MIconV2Scenes.d.ts +2 -1
- package/dist/icons/glyphs/MBrandIconsV2.d.ts +2 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons-BJCV7W0L.cjs +2 -0
- package/dist/icons-BJCV7W0L.cjs.map +1 -0
- package/dist/{icons-DZr7JKf6.js → icons-DlNO04xH.js} +335 -239
- package/dist/icons-DlNO04xH.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +56 -57
- package/dist/{inputs-Cj6ITRad.js → inputs-CmpB6eyB.js} +157 -157
- package/dist/{inputs-Cj6ITRad.js.map → inputs-CmpB6eyB.js.map} +1 -1
- package/dist/{inputs-BIqwv3qy.cjs → inputs-EZBwxk7j.cjs} +2 -2
- package/dist/{inputs-BIqwv3qy.cjs.map → inputs-EZBwxk7j.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/{layout-Cu2u9xLW.js → layout-D72Y7VcW.js} +238 -241
- package/dist/{layout-Cu2u9xLW.js.map → layout-D72Y7VcW.js.map} +1 -1
- package/dist/layout-DZiWboju.cjs +2 -0
- package/dist/layout-DZiWboju.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +5 -5
- package/dist/{layoutProps-DbnX4zRp.cjs → layoutProps-Ck4VtGm9.cjs} +1 -1
- package/dist/{layoutProps-DbnX4zRp.cjs.map → layoutProps-Ck4VtGm9.cjs.map} +1 -1
- package/dist/{layoutProps-Cwq4EXTV.js → layoutProps-Cl6d1KmH.js} +1 -1
- package/dist/{layoutProps-Cwq4EXTV.js.map → layoutProps-Cl6d1KmH.js.map} +1 -1
- package/dist/{locale-CS1-IY_I.js → locale-BNyzqXAU.js} +1 -1
- package/dist/{locale-CS1-IY_I.js.map → locale-BNyzqXAU.js.map} +1 -1
- package/dist/{locale-DAkrtKuT.cjs → locale-DIwV_GfN.cjs} +1 -1
- package/dist/{locale-DAkrtKuT.cjs.map → locale-DIwV_GfN.cjs.map} +1 -1
- package/dist/media-BlGY91Na.js +431 -0
- package/dist/media-BlGY91Na.js.map +1 -0
- package/dist/media-p643cb02.cjs +2 -0
- package/dist/media-p643cb02.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +3 -3
- package/dist/{overlays-DlQem0xt.js → overlays-51pBvlf9.js} +6 -6
- package/dist/{overlays-DlQem0xt.js.map → overlays-51pBvlf9.js.map} +1 -1
- package/dist/{overlays-pT3iozjm.cjs → overlays-8htlWp07.cjs} +2 -2
- package/dist/{overlays-pT3iozjm.cjs.map → overlays-8htlWp07.cjs.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +5 -5
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +2 -2
- package/dist/{prism-bash-oC8SHnvZ.cjs → prism-bash-DSVvpDwH.cjs} +1 -1
- package/dist/{prism-bash-oC8SHnvZ.cjs.map → prism-bash-DSVvpDwH.cjs.map} +1 -1
- package/dist/{prism-bash-Xs-n623m.js → prism-bash-GQKgVScr.js} +1 -1
- package/dist/{prism-bash-Xs-n623m.js.map → prism-bash-GQKgVScr.js.map} +1 -1
- package/dist/{prism-clike-CrtZga9r.js → prism-clike-D3g4BfTi.js} +1 -1
- package/dist/{prism-clike-CrtZga9r.js.map → prism-clike-D3g4BfTi.js.map} +1 -1
- package/dist/{prism-clike-BHy7LBAZ.cjs → prism-clike-wkj9YeLx.cjs} +1 -1
- package/dist/{prism-clike-BHy7LBAZ.cjs.map → prism-clike-wkj9YeLx.cjs.map} +1 -1
- package/dist/{prism-core-DsZQ3wSm.js → prism-core-DV2K1D4T.js} +1 -1
- package/dist/{prism-core-DsZQ3wSm.js.map → prism-core-DV2K1D4T.js.map} +1 -1
- package/dist/{prism-core-Z2NDHfPM.cjs → prism-core-LzKRJzwD.cjs} +1 -1
- package/dist/{prism-core-Z2NDHfPM.cjs.map → prism-core-LzKRJzwD.cjs.map} +1 -1
- package/dist/{prism-css-DNZzCmaG.js → prism-css-4cDqr1x6.js} +1 -1
- package/dist/{prism-css-DNZzCmaG.js.map → prism-css-4cDqr1x6.js.map} +1 -1
- package/dist/{prism-css-CtHScmdk.cjs → prism-css-BZZ6kh29.cjs} +1 -1
- package/dist/{prism-css-CtHScmdk.cjs.map → prism-css-BZZ6kh29.cjs.map} +1 -1
- package/dist/{prism-javascript-DVQ8iSSP.cjs → prism-javascript-CMvYmmlX.cjs} +1 -1
- package/dist/{prism-javascript-DVQ8iSSP.cjs.map → prism-javascript-CMvYmmlX.cjs.map} +1 -1
- package/dist/{prism-javascript-tgrsDJvl.js → prism-javascript-zm5iB3gQ.js} +1 -1
- package/dist/{prism-javascript-tgrsDJvl.js.map → prism-javascript-zm5iB3gQ.js.map} +1 -1
- package/dist/{prism-json-DdyAX9Pp.js → prism-json-BJI5f6tN.js} +1 -1
- package/dist/{prism-json-DdyAX9Pp.js.map → prism-json-BJI5f6tN.js.map} +1 -1
- package/dist/{prism-json-D3AIyrc5.cjs → prism-json-D_zmeAHJ.cjs} +1 -1
- package/dist/{prism-json-D3AIyrc5.cjs.map → prism-json-D_zmeAHJ.cjs.map} +1 -1
- package/dist/{prism-jsx-CnFRZYK4.cjs → prism-jsx-Byyxdkmw.cjs} +1 -1
- package/dist/{prism-jsx-CnFRZYK4.cjs.map → prism-jsx-Byyxdkmw.cjs.map} +1 -1
- package/dist/{prism-jsx-WafGh0eg.js → prism-jsx-Dk33B94U.js} +1 -1
- package/dist/{prism-jsx-WafGh0eg.js.map → prism-jsx-Dk33B94U.js.map} +1 -1
- package/dist/{prism-markup-BsZlEnsE.cjs → prism-markup-7d9NWx3c.cjs} +1 -1
- package/dist/{prism-markup-BsZlEnsE.cjs.map → prism-markup-7d9NWx3c.cjs.map} +1 -1
- package/dist/{prism-markup-3wgbeWT0.js → prism-markup-Cj0PLFM8.js} +1 -1
- package/dist/{prism-markup-3wgbeWT0.js.map → prism-markup-Cj0PLFM8.js.map} +1 -1
- package/dist/{prism-markup-templating-Vn_U79T9.cjs → prism-markup-templating-BM_XViUy.cjs} +1 -1
- package/dist/{prism-markup-templating-Vn_U79T9.cjs.map → prism-markup-templating-BM_XViUy.cjs.map} +1 -1
- package/dist/{prism-markup-templating-DwntZfmY.js → prism-markup-templating-Dc6p1a24.js} +1 -1
- package/dist/{prism-markup-templating-DwntZfmY.js.map → prism-markup-templating-Dc6p1a24.js.map} +1 -1
- package/dist/{prism-php-CizDps-m.js → prism-php-CGE55yTu.js} +1 -1
- package/dist/{prism-php-CizDps-m.js.map → prism-php-CGE55yTu.js.map} +1 -1
- package/dist/{prism-php-DDMsSDeI.cjs → prism-php-C_g4bp0C.cjs} +1 -1
- package/dist/{prism-php-DDMsSDeI.cjs.map → prism-php-C_g4bp0C.cjs.map} +1 -1
- package/dist/{prism-tsx-DDg7MuNh.cjs → prism-tsx-Buubi-AJ.cjs} +1 -1
- package/dist/{prism-tsx-DDg7MuNh.cjs.map → prism-tsx-Buubi-AJ.cjs.map} +1 -1
- package/dist/{prism-tsx-BFlaUgcE.js → prism-tsx-CueLxs1r.js} +1 -1
- package/dist/{prism-tsx-BFlaUgcE.js.map → prism-tsx-CueLxs1r.js.map} +1 -1
- package/dist/{prism-typescript-DYi8QiPX.cjs → prism-typescript-Cj7wU8T7.cjs} +1 -1
- package/dist/{prism-typescript-DYi8QiPX.cjs.map → prism-typescript-Cj7wU8T7.cjs.map} +1 -1
- package/dist/{prism-typescript-Br2XvXsL.js → prism-typescript-DC-urVo-.js} +1 -1
- package/dist/{prism-typescript-Br2XvXsL.js.map → prism-typescript-DC-urVo-.js.map} +1 -1
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/{typography-B_xK5Q_j.cjs → typography-D1s-QFlb.cjs} +2 -2
- package/dist/{typography-B_xK5Q_j.cjs.map → typography-D1s-QFlb.cjs.map} +1 -1
- package/dist/{typography-C3BBQ_9r.js → typography-FCWA0UOB.js} +2 -2
- package/dist/{typography-C3BBQ_9r.js.map → typography-FCWA0UOB.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +5 -5
- package/dist/utils.cjs +1 -1
- package/dist/utils.entry.d.ts +0 -2
- package/dist/utils.js +1 -2
- package/package.json +1 -1
- package/dist/MImage-DXy-dHas.cjs +0 -2
- package/dist/MImage-DXy-dHas.cjs.map +0 -1
- package/dist/MImage-Dp81HSZr.js +0 -53
- package/dist/MImage-Dp81HSZr.js.map +0 -1
- package/dist/MInline-CnxH6VZx.js +0 -41
- package/dist/MInline-CnxH6VZx.js.map +0 -1
- package/dist/MInline-DYy3IhF-.cjs +0 -2
- package/dist/MInline-DYy3IhF-.cjs.map +0 -1
- package/dist/MStack-8qZI36jT.js +0 -41
- package/dist/MStack-8qZI36jT.js.map +0 -1
- package/dist/MStack-BcEwA2sk.cjs +0 -2
- package/dist/MStack-BcEwA2sk.cjs.map +0 -1
- package/dist/MSurface-DWl0groZ.cjs +0 -2
- package/dist/MSurface-DWl0groZ.cjs.map +0 -1
- package/dist/MSurface-DnwfNn3F.js +0 -41
- package/dist/MSurface-DnwfNn3F.js.map +0 -1
- package/dist/display-Bt0G6RPk.cjs +0 -3
- package/dist/display-Bt0G6RPk.cjs.map +0 -1
- package/dist/display-CZO1cOXZ.js.map +0 -1
- package/dist/icons-BhZaama4.cjs +0 -2
- package/dist/icons-BhZaama4.cjs.map +0 -1
- package/dist/icons-DZr7JKf6.js.map +0 -1
- package/dist/layout-DZXYG0TB.cjs +0 -2
- package/dist/layout-DZXYG0TB.cjs.map +0 -1
- package/dist/media-CWx--sZw.cjs +0 -2
- package/dist/media-CWx--sZw.cjs.map +0 -1
- package/dist/media-fmOnjugH.js +0 -408
- package/dist/media-fmOnjugH.js.map +0 -1
- package/dist/useReveal-DVwtH8Dl.cjs +0 -2
- package/dist/useReveal-DVwtH8Dl.cjs.map +0 -1
- package/dist/useReveal-JAiIFTia.js +0 -23
- package/dist/useReveal-JAiIFTia.js.map +0 -1
- package/dist/utils/useReveal.d.ts +0 -2
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
import { r as e } from "./theme-KYwqDZxJ.js";
|
|
2
|
+
import { Fi as t, Pi as n } from "./icons-DlNO04xH.js";
|
|
3
|
+
import { t as r } from "./cn-CUSXNnjF.js";
|
|
4
|
+
import { t as i } from "./useInteractionEffect-ClkU3aH5.js";
|
|
5
|
+
import { t as a } from "./MButton-BpSZUhpY.js";
|
|
6
|
+
import { i as o, n as s, r as c } from "./MSkeleton-Bqq_XJn8.js";
|
|
7
|
+
import { a as l, i as u, n as d, o as f, r as p, s as m, t as h } from "./MImage-BQs91GK-.js";
|
|
8
|
+
import { t as g } from "./MAvatar-CnBVN71i.js";
|
|
9
|
+
import { Children as _, useCallback as v, useEffect as y, useMemo as b, useRef as x, useState as S } from "react";
|
|
10
|
+
import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
11
|
+
//#region src/components/media/MGallery/MGallery.tsx
|
|
12
|
+
function E({ items: e, columns: t = 3, rounded: n = !0, preview: i = !1, hoverEffect: a = "zoom", clickEffect: o = "ripple", className: s, ...c }) {
|
|
13
|
+
let [l, u] = S(!1), [d, f] = S(0);
|
|
14
|
+
return /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w("div", {
|
|
15
|
+
className: r("gallery", `columns-${t}`, s),
|
|
16
|
+
...c,
|
|
17
|
+
children: e.map((e, t) => /* @__PURE__ */ w(D, {
|
|
18
|
+
item: e,
|
|
19
|
+
rounded: n,
|
|
20
|
+
preview: i,
|
|
21
|
+
hoverEffect: a,
|
|
22
|
+
clickEffect: o,
|
|
23
|
+
onOpen: () => {
|
|
24
|
+
f(t), u(!0);
|
|
25
|
+
}
|
|
26
|
+
}, t))
|
|
27
|
+
}), /* @__PURE__ */ w(m, {
|
|
28
|
+
open: l,
|
|
29
|
+
items: e,
|
|
30
|
+
activeIndex: d,
|
|
31
|
+
onActiveIndexChange: f,
|
|
32
|
+
onClose: () => u(!1)
|
|
33
|
+
})] });
|
|
34
|
+
}
|
|
35
|
+
function D({ item: e, rounded: t, preview: n, hoverEffect: a, clickEffect: o, onOpen: s }) {
|
|
36
|
+
let { effectClassName: c, effectLayer: l, handlePointerDown: d } = i({ effect: o });
|
|
37
|
+
return /* @__PURE__ */ w("figure", {
|
|
38
|
+
className: r("gallery-item", t && "rounded"),
|
|
39
|
+
children: n ? /* @__PURE__ */ T("button", {
|
|
40
|
+
type: "button",
|
|
41
|
+
className: r("gallery-trigger", t && "rounded", "gallery-button", u(a) && "effect-zoom", p(a) && "effect-dim", c),
|
|
42
|
+
onClick: s,
|
|
43
|
+
onPointerDown: d,
|
|
44
|
+
"aria-label": `Preview ${e.alt || "image"}`,
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ w("img", {
|
|
47
|
+
className: "gallery-image",
|
|
48
|
+
src: e.src,
|
|
49
|
+
alt: e.alt || "",
|
|
50
|
+
loading: "lazy"
|
|
51
|
+
}),
|
|
52
|
+
e.caption && /* @__PURE__ */ w("span", {
|
|
53
|
+
className: "gallery-caption",
|
|
54
|
+
children: e.caption
|
|
55
|
+
}),
|
|
56
|
+
l
|
|
57
|
+
]
|
|
58
|
+
}) : /* @__PURE__ */ T("div", {
|
|
59
|
+
className: r("gallery-trigger", t && "rounded", u(a) && "effect-zoom", p(a) && "effect-dim", c),
|
|
60
|
+
onPointerDown: d,
|
|
61
|
+
children: [
|
|
62
|
+
/* @__PURE__ */ w("img", {
|
|
63
|
+
className: "gallery-image",
|
|
64
|
+
src: e.src,
|
|
65
|
+
alt: e.alt || "",
|
|
66
|
+
loading: "lazy"
|
|
67
|
+
}),
|
|
68
|
+
e.caption && /* @__PURE__ */ w("span", {
|
|
69
|
+
className: "gallery-caption",
|
|
70
|
+
children: e.caption
|
|
71
|
+
}),
|
|
72
|
+
l
|
|
73
|
+
]
|
|
74
|
+
})
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
//#region src/components/media/MCarousel/MCarousel.tsx
|
|
79
|
+
function O({ autoPlay: e = !1, interval: i = 5e3, showDots: o = !0, showArrows: s = !0, loop: c = !0, draggable: l = !0, transition: u = "slide", className: d, children: f, ...p }) {
|
|
80
|
+
let m = _.toArray(f), h = m.length, [g, b] = S(0), [E, D] = S(0), [O, k] = S(!1), A = x(0), j = x(null), M = v((e) => {
|
|
81
|
+
b(c ? (e + h) % h : Math.max(0, Math.min(e, h - 1)));
|
|
82
|
+
}, [h, c]), N = v(() => M(g - 1), [g, M]), P = v(() => M(g + 1), [g, M]);
|
|
83
|
+
y(() => {
|
|
84
|
+
if (!e || h <= 1 || O) return;
|
|
85
|
+
let t = setInterval(P, i);
|
|
86
|
+
return () => clearInterval(t);
|
|
87
|
+
}, [
|
|
88
|
+
e,
|
|
89
|
+
i,
|
|
90
|
+
P,
|
|
91
|
+
h,
|
|
92
|
+
O
|
|
93
|
+
]);
|
|
94
|
+
let F = (e) => {
|
|
95
|
+
l && (k(!0), A.current = e, D(0));
|
|
96
|
+
}, I = (e) => {
|
|
97
|
+
O && D(e - A.current);
|
|
98
|
+
}, L = () => {
|
|
99
|
+
O && (k(!1), E < -50 ? P() : E > 50 && N(), D(0));
|
|
100
|
+
}, R = (e) => {
|
|
101
|
+
l && (e.currentTarget.setPointerCapture(e.pointerId), F(e.clientX));
|
|
102
|
+
}, z = (e) => {
|
|
103
|
+
I(e.clientX);
|
|
104
|
+
}, B = () => {
|
|
105
|
+
L();
|
|
106
|
+
};
|
|
107
|
+
if (h === 0) return null;
|
|
108
|
+
let V = u === "fade", H = V ? void 0 : { transform: `translateX(calc(-${g * 100}% + ${O ? E : 0}px))` };
|
|
109
|
+
return /* @__PURE__ */ T("div", {
|
|
110
|
+
className: r("carousel", V && "fade", d),
|
|
111
|
+
...p,
|
|
112
|
+
children: [
|
|
113
|
+
/* @__PURE__ */ w("div", {
|
|
114
|
+
className: "carousel-viewport",
|
|
115
|
+
onPointerDown: R,
|
|
116
|
+
onPointerMove: z,
|
|
117
|
+
onPointerUp: B,
|
|
118
|
+
onPointerCancel: B,
|
|
119
|
+
style: {
|
|
120
|
+
touchAction: l ? "pan-y" : void 0,
|
|
121
|
+
cursor: l ? O ? "grabbing" : "grab" : void 0
|
|
122
|
+
},
|
|
123
|
+
children: /* @__PURE__ */ w("div", {
|
|
124
|
+
ref: j,
|
|
125
|
+
className: r("carousel-track", O && "dragging"),
|
|
126
|
+
style: H,
|
|
127
|
+
children: m.map((e, t) => /* @__PURE__ */ w("div", {
|
|
128
|
+
className: r("carousel-slide", V && t === g && "active", V && t !== g && "hidden"),
|
|
129
|
+
children: e
|
|
130
|
+
}, t))
|
|
131
|
+
})
|
|
132
|
+
}),
|
|
133
|
+
s && h > 1 && /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(a, {
|
|
134
|
+
variant: "ghost",
|
|
135
|
+
color: "primary",
|
|
136
|
+
iconOnly: !0,
|
|
137
|
+
shape: "circle",
|
|
138
|
+
onClick: N,
|
|
139
|
+
"aria-label": "Previous slide",
|
|
140
|
+
className: "carousel-arrow carousel-arrow-prev",
|
|
141
|
+
children: /* @__PURE__ */ w(t, {})
|
|
142
|
+
}), /* @__PURE__ */ w(a, {
|
|
143
|
+
variant: "ghost",
|
|
144
|
+
color: "primary",
|
|
145
|
+
iconOnly: !0,
|
|
146
|
+
shape: "circle",
|
|
147
|
+
onClick: P,
|
|
148
|
+
"aria-label": "Next slide",
|
|
149
|
+
className: "carousel-arrow carousel-arrow-next",
|
|
150
|
+
children: /* @__PURE__ */ w(n, {})
|
|
151
|
+
})] }),
|
|
152
|
+
o && h > 1 && /* @__PURE__ */ w("div", {
|
|
153
|
+
className: "carousel-dots",
|
|
154
|
+
children: m.map((e, t) => /* @__PURE__ */ w("button", {
|
|
155
|
+
className: r("carousel-dot", t === g && "active"),
|
|
156
|
+
onClick: () => M(t),
|
|
157
|
+
"aria-label": `Slide ${t + 1}`,
|
|
158
|
+
type: "button"
|
|
159
|
+
}, t))
|
|
160
|
+
})
|
|
161
|
+
]
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
//#endregion
|
|
165
|
+
//#region src/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.tsx
|
|
166
|
+
function k({ src: e, alt: t = "", media: n, mediaHeight: i, overlay: a, body: u, footer: p, interactive: m = !1, imageClickEffect: g = "ripple", ratio: _ = "16:9", fit: v = "cover", imgProps: y, children: b }) {
|
|
167
|
+
let x = u ?? b, S = l(g), C = i ? { "--media-height": typeof i == "number" ? `${i}px` : i } : void 0, E = !!(n || e);
|
|
168
|
+
return /* @__PURE__ */ T(s, {
|
|
169
|
+
interactive: m,
|
|
170
|
+
clickEffect: g === "none" ? void 0 : "none",
|
|
171
|
+
className: r("showcase card", m && "interactive"),
|
|
172
|
+
style: C,
|
|
173
|
+
children: [
|
|
174
|
+
E ? /* @__PURE__ */ T("div", {
|
|
175
|
+
className: r("showcase media", f(g) && "effect-zoom", d(g) && "effect-dim"),
|
|
176
|
+
children: [n ? /* @__PURE__ */ w("div", {
|
|
177
|
+
className: "showcase media-content",
|
|
178
|
+
children: n
|
|
179
|
+
}) : /* @__PURE__ */ w(h, {
|
|
180
|
+
...y,
|
|
181
|
+
src: e,
|
|
182
|
+
alt: t,
|
|
183
|
+
ratio: _,
|
|
184
|
+
fit: v,
|
|
185
|
+
rounded: !0,
|
|
186
|
+
shadow: !0,
|
|
187
|
+
clickEffect: S ? "ripple" : "none"
|
|
188
|
+
}), a ? /* @__PURE__ */ w("div", {
|
|
189
|
+
className: "showcase overlay",
|
|
190
|
+
children: a
|
|
191
|
+
}) : null]
|
|
192
|
+
}) : null,
|
|
193
|
+
x ? /* @__PURE__ */ w(c, {
|
|
194
|
+
className: "showcase body",
|
|
195
|
+
children: x
|
|
196
|
+
}) : null,
|
|
197
|
+
p ? /* @__PURE__ */ w(o, {
|
|
198
|
+
className: "showcase footer",
|
|
199
|
+
children: p
|
|
200
|
+
}) : null
|
|
201
|
+
]
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
//#endregion
|
|
205
|
+
//#region src/components/media/MShowcaseCarousel/MShowcaseCarousel.tsx
|
|
206
|
+
function A(e, t, n) {
|
|
207
|
+
return Math.min(Math.max(e, t), n);
|
|
208
|
+
}
|
|
209
|
+
function j(e) {
|
|
210
|
+
return e instanceof Element ? !!e.closest("button, a, input, select, textarea, label, summary, [role=\"button\"], [role=\"link\"], [data-carousel-ignore-drag=\"true\"]") : !1;
|
|
211
|
+
}
|
|
212
|
+
function M(e, t, n) {
|
|
213
|
+
return e && t ? e.map((e, n) => t(e, n)) : e ? e.map((e, t) => N(e) ? /* @__PURE__ */ w(P, { item: e }, t) : null).filter(Boolean) : _.toArray(n);
|
|
214
|
+
}
|
|
215
|
+
function N(e) {
|
|
216
|
+
let t = e;
|
|
217
|
+
return !!e && typeof e == "object" && "src" in e && typeof t.src == "string";
|
|
218
|
+
}
|
|
219
|
+
function P({ item: e }) {
|
|
220
|
+
return /* @__PURE__ */ w(k, {
|
|
221
|
+
src: e.src,
|
|
222
|
+
alt: e.alt || "",
|
|
223
|
+
overlay: e.overlay
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
function F({ items: e, renderItem: i, initialIndex: o, showButtons: s = !0, loop: c = !0, draggable: l = !0, wheel: u = !0, itemMinWidth: d = 220, itemMaxWidth: f = 520, itemWidthRatio: p = .56, className: m, children: h, style: g, ..._ }) {
|
|
227
|
+
let C = b(() => M(e, i, h), [
|
|
228
|
+
h,
|
|
229
|
+
e,
|
|
230
|
+
i
|
|
231
|
+
]), E = C.length, [D, O] = S(0), [k, N] = S(0), [P, F] = S(!1), [I, L] = S(0), R = x(null), z = x(0), B = x(!1), V = A(I * (I < 640 ? Math.max(p, .78) : I < 960 ? Math.max(p, .66) : p) || d, d, f), H = A(I * .022 || 16, 10, 24);
|
|
232
|
+
y(() => {
|
|
233
|
+
let e = R.current;
|
|
234
|
+
if (!e) return;
|
|
235
|
+
let t = () => L(e.clientWidth);
|
|
236
|
+
t();
|
|
237
|
+
let n = new ResizeObserver(t);
|
|
238
|
+
return n.observe(e), () => n.disconnect();
|
|
239
|
+
}, []), y(() => {
|
|
240
|
+
E && O(A(o ?? Math.floor((E - 1) / 2), 0, E - 1));
|
|
241
|
+
}, [E, o]);
|
|
242
|
+
let U = v((e) => {
|
|
243
|
+
if (!(E < 1)) {
|
|
244
|
+
if (c) {
|
|
245
|
+
O((e + E) % E);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
O(A(e, 0, E - 1));
|
|
249
|
+
}
|
|
250
|
+
}, [E, c]), W = v(() => U(D - 1), [D, U]), G = v(() => U(D + 1), [D, U]), K = (e) => {
|
|
251
|
+
!l || E <= 1 || j(e.target) || (e.currentTarget.setPointerCapture(e.pointerId), F(!0), z.current = e.clientX, N(0));
|
|
252
|
+
}, q = (e) => {
|
|
253
|
+
P && N(e.clientX - z.current);
|
|
254
|
+
}, J = () => {
|
|
255
|
+
if (!P) return;
|
|
256
|
+
let e = Math.max(56, V * .12);
|
|
257
|
+
k <= -e ? G() : k >= e && W(), F(!1), N(0);
|
|
258
|
+
};
|
|
259
|
+
if (y(() => {
|
|
260
|
+
let e = R.current;
|
|
261
|
+
if (!e) return;
|
|
262
|
+
let t = (e) => {
|
|
263
|
+
if (!u || E <= 1 || B.current) return;
|
|
264
|
+
let t = Math.abs(e.deltaX) > Math.abs(e.deltaY) ? e.deltaX : e.deltaY;
|
|
265
|
+
Math.abs(t) < 28 || (e.preventDefault(), e.stopPropagation(), B.current = !0, window.setTimeout(() => {
|
|
266
|
+
B.current = !1;
|
|
267
|
+
}, 260), t > 0 ? G() : W());
|
|
268
|
+
};
|
|
269
|
+
return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
|
|
270
|
+
}, [
|
|
271
|
+
E,
|
|
272
|
+
G,
|
|
273
|
+
W,
|
|
274
|
+
u
|
|
275
|
+
]), !E) return null;
|
|
276
|
+
let Y = I / 2 - D * (V + H) - V / 2 + k;
|
|
277
|
+
return /* @__PURE__ */ T("div", {
|
|
278
|
+
className: r("showcase", m),
|
|
279
|
+
style: {
|
|
280
|
+
...g,
|
|
281
|
+
"--item-width": `${V}px`
|
|
282
|
+
},
|
|
283
|
+
..._,
|
|
284
|
+
children: [/* @__PURE__ */ w("div", {
|
|
285
|
+
ref: R,
|
|
286
|
+
className: "showcase-stage",
|
|
287
|
+
onPointerDown: K,
|
|
288
|
+
onPointerMove: q,
|
|
289
|
+
onPointerUp: J,
|
|
290
|
+
onPointerCancel: J,
|
|
291
|
+
onPointerLeave: J,
|
|
292
|
+
style: { cursor: l && E > 1 ? P ? "grabbing" : "grab" : void 0 },
|
|
293
|
+
children: /* @__PURE__ */ w("div", {
|
|
294
|
+
className: r("showcase-track", P && "dragging"),
|
|
295
|
+
style: {
|
|
296
|
+
transform: `translateX(${Y}px)`,
|
|
297
|
+
gap: `${H}px`
|
|
298
|
+
},
|
|
299
|
+
children: C.map((e, t) => {
|
|
300
|
+
let n = Math.abs(t - D);
|
|
301
|
+
return /* @__PURE__ */ w("div", {
|
|
302
|
+
className: r("showcase-item", t === D && "active", n === 1 && "near", n >= 2 && "far"),
|
|
303
|
+
style: { zIndex: Math.max(1, E - n) },
|
|
304
|
+
children: e
|
|
305
|
+
}, t);
|
|
306
|
+
})
|
|
307
|
+
})
|
|
308
|
+
}), s && E > 1 && /* @__PURE__ */ T("div", {
|
|
309
|
+
className: "showcase-actions",
|
|
310
|
+
children: [/* @__PURE__ */ w(a, {
|
|
311
|
+
type: "button",
|
|
312
|
+
variant: "secondary",
|
|
313
|
+
className: "showcase-btn",
|
|
314
|
+
startIcon: /* @__PURE__ */ w(t, {}),
|
|
315
|
+
onClick: W,
|
|
316
|
+
children: "Previous"
|
|
317
|
+
}), /* @__PURE__ */ w(a, {
|
|
318
|
+
type: "button",
|
|
319
|
+
className: "showcase-btn",
|
|
320
|
+
endIcon: /* @__PURE__ */ w(n, {}),
|
|
321
|
+
onClick: G,
|
|
322
|
+
children: "Next"
|
|
323
|
+
})]
|
|
324
|
+
})]
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
//#endregion
|
|
328
|
+
//#region src/components/media/MMasonry/MMasonry.tsx
|
|
329
|
+
function I(e, t, n) {
|
|
330
|
+
return e && t ? e.map((e, n) => t(e, n)) : _.toArray(n);
|
|
331
|
+
}
|
|
332
|
+
function L({ items: e, renderItem: t, columns: n = 3, className: i, children: a, style: o, ...s }) {
|
|
333
|
+
let c = I(e, t, a);
|
|
334
|
+
return c.length ? /* @__PURE__ */ w("div", {
|
|
335
|
+
className: r("masonry", i),
|
|
336
|
+
style: {
|
|
337
|
+
...o,
|
|
338
|
+
columnCount: n
|
|
339
|
+
},
|
|
340
|
+
...s,
|
|
341
|
+
children: c.map((e, t) => /* @__PURE__ */ w("div", {
|
|
342
|
+
className: "masonry item",
|
|
343
|
+
children: e
|
|
344
|
+
}, t))
|
|
345
|
+
}) : null;
|
|
346
|
+
}
|
|
347
|
+
//#endregion
|
|
348
|
+
//#region src/components/media/MMasonryItem/MMasonryItem.tsx
|
|
349
|
+
function R({ src: e, alt: t = "", height: n, overlay: a, body: u, footer: p, interactive: m = !1, imageClickEffect: h = "none", imgProps: g, children: _ }) {
|
|
350
|
+
let v = n ? {
|
|
351
|
+
...g?.style,
|
|
352
|
+
height: n
|
|
353
|
+
} : g?.style, y = u ?? _, { effectClassName: b, effectLayer: x, handlePointerDown: S } = i({ effect: l(h) ? "ripple" : "none" });
|
|
354
|
+
return /* @__PURE__ */ T(s, {
|
|
355
|
+
interactive: m,
|
|
356
|
+
clickEffect: h === "none" ? void 0 : "none",
|
|
357
|
+
className: r("masonry card", m && "interactive"),
|
|
358
|
+
children: [
|
|
359
|
+
/* @__PURE__ */ T("div", {
|
|
360
|
+
className: r("masonry media", b, f(h) && "effect-zoom", d(h) && "effect-dim"),
|
|
361
|
+
onPointerDown: (e) => {
|
|
362
|
+
e.target.closest(".masonry.overlay") || S(e);
|
|
363
|
+
},
|
|
364
|
+
children: [
|
|
365
|
+
/* @__PURE__ */ w("img", {
|
|
366
|
+
...g,
|
|
367
|
+
src: e,
|
|
368
|
+
alt: t,
|
|
369
|
+
className: "masonry img",
|
|
370
|
+
style: v
|
|
371
|
+
}),
|
|
372
|
+
a ? /* @__PURE__ */ w("div", {
|
|
373
|
+
className: "masonry overlay",
|
|
374
|
+
children: a
|
|
375
|
+
}) : null,
|
|
376
|
+
x
|
|
377
|
+
]
|
|
378
|
+
}),
|
|
379
|
+
y ? /* @__PURE__ */ w(c, {
|
|
380
|
+
className: "masonry body",
|
|
381
|
+
children: y
|
|
382
|
+
}) : null,
|
|
383
|
+
p ? /* @__PURE__ */ w(o, {
|
|
384
|
+
className: "masonry footer",
|
|
385
|
+
children: p
|
|
386
|
+
}) : null
|
|
387
|
+
]
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
//#endregion
|
|
391
|
+
//#region src/components/media/MAvatarStack/MAvatarStack.tsx
|
|
392
|
+
function z({ items: t, max: n = 5, size: i = "sm", color: a = "primary", hidden: o, overlap: s = 10, className: c, style: l, ...u }) {
|
|
393
|
+
if (!t || t.length === 0) return null;
|
|
394
|
+
let d = t.slice(0, n), f = t.length - n, p = typeof i == "number" ? i : {
|
|
395
|
+
xs: 20,
|
|
396
|
+
sm: 28,
|
|
397
|
+
md: 40,
|
|
398
|
+
lg: 56,
|
|
399
|
+
xl: 72
|
|
400
|
+
}[i] ?? 28;
|
|
401
|
+
return /* @__PURE__ */ T("div", {
|
|
402
|
+
className: r("avatar-stack", c),
|
|
403
|
+
style: {
|
|
404
|
+
"--avatar-stack-overlap": `-${s}px`,
|
|
405
|
+
...l
|
|
406
|
+
},
|
|
407
|
+
...e(o),
|
|
408
|
+
...u,
|
|
409
|
+
children: [d.map((e, t) => /* @__PURE__ */ w(g, {
|
|
410
|
+
src: e.avatar,
|
|
411
|
+
name: e.name,
|
|
412
|
+
size: i,
|
|
413
|
+
color: a,
|
|
414
|
+
className: "avatar-stack-item",
|
|
415
|
+
style: { zIndex: t + 1 }
|
|
416
|
+
}, t)), f > 0 && /* @__PURE__ */ T("span", {
|
|
417
|
+
className: "avatar-stack-overflow",
|
|
418
|
+
style: {
|
|
419
|
+
width: p,
|
|
420
|
+
height: p,
|
|
421
|
+
fontSize: p * .38,
|
|
422
|
+
zIndex: d.length + 1
|
|
423
|
+
},
|
|
424
|
+
children: ["+", f]
|
|
425
|
+
})]
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
//#endregion
|
|
429
|
+
export { k as a, F as i, R as n, O as o, L as r, E as s, z as t };
|
|
430
|
+
|
|
431
|
+
//# sourceMappingURL=media-BlGY91Na.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-BlGY91Na.js","names":[],"sources":["../src/components/media/MGallery/MGallery.tsx","../src/components/media/MCarousel/MCarousel.tsx","../src/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.tsx","../src/components/media/MShowcaseCarousel/MShowcaseCarousel.tsx","../src/components/media/MMasonry/MMasonry.tsx","../src/components/media/MMasonryItem/MMasonryItem.tsx","../src/components/media/MAvatarStack/MAvatarStack.tsx"],"sourcesContent":["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'\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; 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 {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={`Preview ${item.alt || 'image'}`}\n >\n <img className=\"gallery-image\" src={item.src} alt={item.alt || ''} loading=\"lazy\" />\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 className=\"gallery-image\" src={item.src} alt={item.alt || ''} loading=\"lazy\" />\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'\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 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=\"Previous slide\"\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=\"Next slide\"\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={`Slide ${i + 1}`}\n type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {MImage} from '../MImage'\nimport {cn} from '../../../utils/cn'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport type {MShowcaseCarouselItemProps} from './MShowcaseCarouselItem.types'\nimport './MShowcaseCarouselItem.css'\n\nexport function MShowcaseCarouselItem({\n src,\n alt = '',\n media,\n mediaHeight,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'ripple',\n ratio = '16:9',\n fit = 'cover',\n imgProps,\n children,\n}: MShowcaseCarouselItemProps) {\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const cardStyle = mediaHeight\n ? ({\n '--media-height': typeof mediaHeight === 'number' ? `${mediaHeight}px` : mediaHeight,\n } as CSSProperties)\n : undefined\n const hasMedia = Boolean(media || src)\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('showcase card', interactive && 'interactive')}\n style={cardStyle}\n >\n {hasMedia ? (\n <div\n className={cn(\n 'showcase media',\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n >\n {media ? (\n <div className=\"showcase media-content\">{media}</div>\n ) : (\n <MImage\n {...imgProps}\n src={src}\n alt={alt}\n ratio={ratio}\n fit={fit}\n rounded\n shadow\n clickEffect={shouldRipple ? 'ripple' : 'none'}\n />\n )}\n {overlay ? <div className=\"showcase overlay\">{overlay}</div> : null}\n </div>\n ) : null}\n {content ? <MCardBody className=\"showcase body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"showcase footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import {Children, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport type {CSSProperties, PointerEvent as ReactPointerEvent, ReactNode} from 'react'\nimport {MButton} from '../../controls'\nimport {MShowcaseCarouselItem} from '../MShowcaseCarouselItem'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport type {MShowcaseCarouselProps, MShowcaseCarouselSlide} from './MShowcaseCarousel.types'\nimport './MShowcaseCarousel.css'\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null) {\n if (!(target instanceof Element)) {\n return false\n }\n\n return !!target.closest(\n 'button, a, input, select, textarea, label, summary, [role=\"button\"], [role=\"link\"], [data-carousel-ignore-drag=\"true\"]'\n )\n}\n\nfunction getSlides<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n if (items) {\n return items\n .map((item, index) => {\n if (!isShowcaseItem(item)) {\n return null\n }\n\n return <ShowcaseMediaSlide key={index} item={item} />\n })\n .filter(Boolean)\n }\n\n return Children.toArray(children)\n}\n\nfunction isShowcaseItem(value: unknown): value is MShowcaseCarouselSlide {\n const slide = value as {src?: unknown}\n return !!value && typeof value === 'object' && 'src' in value && typeof slide.src === 'string'\n}\n\nfunction ShowcaseMediaSlide({item}: {item: MShowcaseCarouselSlide}) {\n return <MShowcaseCarouselItem src={item.src} alt={item.alt || ''} overlay={item.overlay} />\n}\n\n// Show a centered, mouse-driven carousel with partial side previews.\nexport function MShowcaseCarousel<T = unknown>({\n items,\n renderItem,\n initialIndex,\n showButtons = true,\n loop = true,\n draggable = true,\n wheel = true,\n itemMinWidth = 220,\n itemMaxWidth = 520,\n itemWidthRatio = 0.56,\n className,\n children,\n style,\n ...rest\n}: MShowcaseCarouselProps<T>) {\n const slides = useMemo(() => getSlides(items, renderItem, children), [children, items, renderItem])\n const count = slides.length\n const [active, setActive] = useState(0)\n const [drag, setDrag] = useState(0)\n const [dragging, setDragging] = useState(false)\n const [stageWidth, setStageWidth] = useState(0)\n const stageRef = useRef<HTMLDivElement>(null)\n const startX = useRef(0)\n const wheelLock = useRef(false)\n\n const widthRatio =\n stageWidth < 640\n ? Math.max(itemWidthRatio, 0.78)\n : stageWidth < 960\n ? Math.max(itemWidthRatio, 0.66)\n : itemWidthRatio\n const itemWidth = clamp(stageWidth * widthRatio || itemMinWidth, itemMinWidth, itemMaxWidth)\n const itemGap = clamp(stageWidth * 0.022 || 16, 10, 24)\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const update = () => setStageWidth(node.clientWidth)\n update()\n\n const observer = new ResizeObserver(update)\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [])\n\n useEffect(() => {\n if (!count) return\n\n const defaultIndex = initialIndex ?? Math.floor((count - 1) / 2)\n setActive(clamp(defaultIndex, 0, count - 1))\n }, [count, initialIndex])\n\n const goTo = useCallback(\n (nextIndex: number) => {\n if (count < 1) return\n\n if (loop) {\n setActive((nextIndex + count) % count)\n return\n }\n\n setActive(clamp(nextIndex, 0, count - 1))\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 onPointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!draggable || count <= 1) return\n if (isInteractiveTarget(event.target)) return\n event.currentTarget.setPointerCapture(event.pointerId)\n setDragging(true)\n startX.current = event.clientX\n setDrag(0)\n }\n\n const onPointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!dragging) return\n setDrag(event.clientX - startX.current)\n }\n\n const stopDrag = () => {\n if (!dragging) return\n\n const limit = Math.max(56, itemWidth * 0.12)\n\n if (drag <= -limit) {\n next()\n } else if (drag >= limit) {\n prev()\n }\n\n setDragging(false)\n setDrag(0)\n }\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const handleWheel = (event: WheelEvent) => {\n if (!wheel || count <= 1 || wheelLock.current) return\n\n const axis = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (Math.abs(axis) < 28) return\n\n event.preventDefault()\n event.stopPropagation()\n\n wheelLock.current = true\n window.setTimeout(() => {\n wheelLock.current = false\n }, 260)\n\n if (axis > 0) {\n next()\n } else {\n prev()\n }\n }\n\n node.addEventListener('wheel', handleWheel, {passive: false})\n return () => node.removeEventListener('wheel', handleWheel)\n }, [count, next, prev, wheel])\n\n if (!count) return null\n\n const offset = stageWidth / 2 - active * (itemWidth + itemGap) - itemWidth / 2 + drag\n\n return (\n <div\n className={cn('showcase', className)}\n style={{...style, '--item-width': `${itemWidth}px`} as CSSProperties}\n {...rest}\n >\n <div\n ref={stageRef}\n className=\"showcase-stage\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={stopDrag}\n onPointerCancel={stopDrag}\n onPointerLeave={stopDrag}\n style={{\n cursor: draggable && count > 1 ? (dragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div\n className={cn('showcase-track', dragging && 'dragging')}\n style={{\n transform: `translateX(${offset}px)`,\n gap: `${itemGap}px`,\n }}\n >\n {slides.map((slide, index) => {\n const dist = Math.abs(index - active)\n\n return (\n <div\n key={index}\n className={cn(\n 'showcase-item',\n index === active && 'active',\n dist === 1 && 'near',\n dist >= 2 && 'far'\n )}\n style={{zIndex: Math.max(1, count - dist)}}\n >\n {slide}\n </div>\n )\n })}\n </div>\n </div>\n\n {showButtons && count > 1 && (\n <div className=\"showcase-actions\">\n <MButton\n type=\"button\"\n variant=\"secondary\"\n className=\"showcase-btn\"\n startIcon={<MChevronLeftIcon />}\n onClick={prev}\n >\n Previous\n </MButton>\n <MButton type=\"button\" className=\"showcase-btn\" endIcon={<MChevronRightIcon />} onClick={next}>\n Next\n </MButton>\n </div>\n )}\n </div>\n )\n}\n","import {Children} from 'react'\nimport type {ReactNode} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MMasonryProps} from './MMasonry.types'\nimport './MMasonry.css'\n\nfunction getItems<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n return Children.toArray(children)\n}\n\n// Render a responsive masonry wall for images, cards and uneven content.\nexport function MMasonry<T = unknown>({\n items,\n renderItem,\n columns = 3,\n className,\n children,\n style,\n ...rest\n}: MMasonryProps<T>) {\n const content = getItems(items, renderItem, children)\n\n if (!content.length) return null\n\n return (\n <div className={cn('masonry', className)} style={{...style, columnCount: columns}} {...rest}>\n {content.map((item, index) => (\n <div key={index} className=\"masonry item\">\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport './MMasonryItem.css'\nimport type {MMasonryItemProps} from './MMasonryItem.types'\n\nexport function MMasonryItem({\n src,\n alt = '',\n height,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'none',\n imgProps,\n children,\n}: MMasonryItemProps) {\n const imgStyle = height ? {...imgProps?.style, height} : imgProps?.style\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: shouldRipple ? 'ripple' : 'none',\n })\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('masonry card', interactive && 'interactive')}\n >\n <div\n className={cn(\n 'masonry media',\n effectClassName,\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n onPointerDown={(event) => {\n const target = event.target as HTMLElement\n\n if (target.closest('.masonry.overlay')) {\n return\n }\n\n handlePointerDown(event)\n }}\n >\n <img {...imgProps} src={src} alt={alt} className=\"masonry img\" style={imgStyle} />\n {overlay ? <div className=\"masonry overlay\">{overlay}</div> : null}\n {effectLayer}\n </div>\n {content ? <MCardBody className=\"masonry body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"masonry footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import type {MAvatarStackProps} from './MAvatarStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MAvatar} from '../MAvatar'\nimport './MAvatarStack.css'\n\nexport function MAvatarStack({\n items,\n max = 5,\n size = 'sm',\n color = 'primary',\n hidden,\n overlap = 10,\n className,\n style,\n ...rest\n}: MAvatarStackProps) {\n if (!items || items.length === 0) return null\n\n const visible = items.slice(0, max)\n const overflowCount = items.length - max\n const avatarPx = typeof size === 'number' ? size : ({xs: 20, sm: 28, md: 40, lg: 56, xl: 72}[size] ?? 28)\n\n return (\n <div\n className={cn('avatar-stack', className)}\n style={{'--avatar-stack-overlap': `-${overlap}px`, ...style} as React.CSSProperties}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {visible.map((item, i) => (\n <MAvatar\n key={i}\n src={item.avatar}\n name={item.name}\n size={size}\n color={color}\n className=\"avatar-stack-item\"\n style={{zIndex: i + 1}}\n />\n ))}\n {overflowCount > 0 && (\n <span\n className=\"avatar-stack-overflow\"\n style={{\n width: avatarPx,\n height: avatarPx,\n fontSize: avatarPx * 0.38,\n zIndex: visible.length + 1,\n }}\n >\n +{overflowCount}\n </span>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./theme-Bnwe-wvr.cjs`),t=require(`./icons-BJCV7W0L.cjs`),n=require(`./cn-DYFxgzi2.cjs`),r=require(`./useInteractionEffect-CYHGHV1e.cjs`),i=require(`./MButton-LUNWBBOV.cjs`),a=require(`./MSkeleton-B0Mxe3L7.cjs`),o=require(`./MImage-CxeuH-cT.cjs`),s=require(`./MAvatar-DGEQqUss.cjs`);let c=require(`react`),l=require(`react/jsx-runtime`);function u({items:e,columns:t=3,rounded:r=!0,preview:i=!1,hoverEffect:a=`zoom`,clickEffect:s=`ripple`,className:u,...f}){let[p,m]=(0,c.useState)(!1),[h,g]=(0,c.useState)(0);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`div`,{className:n.t(`gallery`,`columns-${t}`,u),...f,children:e.map((e,t)=>(0,l.jsx)(d,{item:e,rounded:r,preview:i,hoverEffect:a,clickEffect:s,onOpen:()=>{g(t),m(!0)}},t))}),(0,l.jsx)(o.s,{open:p,items:e,activeIndex:h,onActiveIndexChange:g,onClose:()=>m(!1)})]})}function d({item:e,rounded:t,preview:i,hoverEffect:a,clickEffect:s,onOpen:c}){let{effectClassName:u,effectLayer:d,handlePointerDown:f}=r.t({effect:s});return(0,l.jsx)(`figure`,{className:n.t(`gallery-item`,t&&`rounded`),children:i?(0,l.jsxs)(`button`,{type:`button`,className:n.t(`gallery-trigger`,t&&`rounded`,`gallery-button`,o.i(a)&&`effect-zoom`,o.r(a)&&`effect-dim`,u),onClick:c,onPointerDown:f,"aria-label":`Preview ${e.alt||`image`}`,children:[(0,l.jsx)(`img`,{className:`gallery-image`,src:e.src,alt:e.alt||``,loading:`lazy`}),e.caption&&(0,l.jsx)(`span`,{className:`gallery-caption`,children:e.caption}),d]}):(0,l.jsxs)(`div`,{className:n.t(`gallery-trigger`,t&&`rounded`,o.i(a)&&`effect-zoom`,o.r(a)&&`effect-dim`,u),onPointerDown:f,children:[(0,l.jsx)(`img`,{className:`gallery-image`,src:e.src,alt:e.alt||``,loading:`lazy`}),e.caption&&(0,l.jsx)(`span`,{className:`gallery-caption`,children:e.caption}),d]})})}function f({autoPlay:e=!1,interval:r=5e3,showDots:a=!0,showArrows:o=!0,loop:s=!0,draggable:u=!0,transition:d=`slide`,className:f,children:p,...m}){let h=c.Children.toArray(p),g=h.length,[_,v]=(0,c.useState)(0),[y,b]=(0,c.useState)(0),[x,S]=(0,c.useState)(!1),C=(0,c.useRef)(0),w=(0,c.useRef)(null),T=(0,c.useCallback)(e=>{v(s?(e+g)%g:Math.max(0,Math.min(e,g-1)))},[g,s]),E=(0,c.useCallback)(()=>T(_-1),[_,T]),D=(0,c.useCallback)(()=>T(_+1),[_,T]);(0,c.useEffect)(()=>{if(!e||g<=1||x)return;let t=setInterval(D,r);return()=>clearInterval(t)},[e,r,D,g,x]);let O=e=>{u&&(S(!0),C.current=e,b(0))},k=e=>{x&&b(e-C.current)},A=()=>{x&&(S(!1),y<-50?D():y>50&&E(),b(0))},j=e=>{u&&(e.currentTarget.setPointerCapture(e.pointerId),O(e.clientX))},M=e=>{k(e.clientX)},N=()=>{A()};if(g===0)return null;let P=d===`fade`,F=P?void 0:{transform:`translateX(calc(-${_*100}% + ${x?y:0}px))`};return(0,l.jsxs)(`div`,{className:n.t(`carousel`,P&&`fade`,f),...m,children:[(0,l.jsx)(`div`,{className:`carousel-viewport`,onPointerDown:j,onPointerMove:M,onPointerUp:N,onPointerCancel:N,style:{touchAction:u?`pan-y`:void 0,cursor:u?x?`grabbing`:`grab`:void 0},children:(0,l.jsx)(`div`,{ref:w,className:n.t(`carousel-track`,x&&`dragging`),style:F,children:h.map((e,t)=>(0,l.jsx)(`div`,{className:n.t(`carousel-slide`,P&&t===_&&`active`,P&&t!==_&&`hidden`),children:e},t))})}),o&&g>1&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i.t,{variant:`ghost`,color:`primary`,iconOnly:!0,shape:`circle`,onClick:E,"aria-label":`Previous slide`,className:`carousel-arrow carousel-arrow-prev`,children:(0,l.jsx)(t.Fi,{})}),(0,l.jsx)(i.t,{variant:`ghost`,color:`primary`,iconOnly:!0,shape:`circle`,onClick:D,"aria-label":`Next slide`,className:`carousel-arrow carousel-arrow-next`,children:(0,l.jsx)(t.Pi,{})})]}),a&&g>1&&(0,l.jsx)(`div`,{className:`carousel-dots`,children:h.map((e,t)=>(0,l.jsx)(`button`,{className:n.t(`carousel-dot`,t===_&&`active`),onClick:()=>T(t),"aria-label":`Slide ${t+1}`,type:`button`},t))})]})}function p({src:e,alt:t=``,media:r,mediaHeight:i,overlay:s,body:c,footer:u,interactive:d=!1,imageClickEffect:f=`ripple`,ratio:p=`16:9`,fit:m=`cover`,imgProps:h,children:g}){let _=c??g,v=o.a(f),y=i?{"--media-height":typeof i==`number`?`${i}px`:i}:void 0,b=!!(r||e);return(0,l.jsxs)(a.n,{interactive:d,clickEffect:f===`none`?void 0:`none`,className:n.t(`showcase card`,d&&`interactive`),style:y,children:[b?(0,l.jsxs)(`div`,{className:n.t(`showcase media`,o.o(f)&&`effect-zoom`,o.n(f)&&`effect-dim`),children:[r?(0,l.jsx)(`div`,{className:`showcase media-content`,children:r}):(0,l.jsx)(o.t,{...h,src:e,alt:t,ratio:p,fit:m,rounded:!0,shadow:!0,clickEffect:v?`ripple`:`none`}),s?(0,l.jsx)(`div`,{className:`showcase overlay`,children:s}):null]}):null,_?(0,l.jsx)(a.r,{className:`showcase body`,children:_}):null,u?(0,l.jsx)(a.i,{className:`showcase footer`,children:u}):null]})}function m(e,t,n){return Math.min(Math.max(e,t),n)}function h(e){return e instanceof Element?!!e.closest(`button, a, input, select, textarea, label, summary, [role="button"], [role="link"], [data-carousel-ignore-drag="true"]`):!1}function g(e,t,n){return e&&t?e.map((e,n)=>t(e,n)):e?e.map((e,t)=>_(e)?(0,l.jsx)(v,{item:e},t):null).filter(Boolean):c.Children.toArray(n)}function _(e){let t=e;return!!e&&typeof e==`object`&&`src`in e&&typeof t.src==`string`}function v({item:e}){return(0,l.jsx)(p,{src:e.src,alt:e.alt||``,overlay:e.overlay})}function y({items:e,renderItem:r,initialIndex:a,showButtons:o=!0,loop:s=!0,draggable:u=!0,wheel:d=!0,itemMinWidth:f=220,itemMaxWidth:p=520,itemWidthRatio:_=.56,className:v,children:y,style:b,...x}){let S=(0,c.useMemo)(()=>g(e,r,y),[y,e,r]),C=S.length,[w,T]=(0,c.useState)(0),[E,D]=(0,c.useState)(0),[O,k]=(0,c.useState)(!1),[A,j]=(0,c.useState)(0),M=(0,c.useRef)(null),N=(0,c.useRef)(0),P=(0,c.useRef)(!1),F=m(A*(A<640?Math.max(_,.78):A<960?Math.max(_,.66):_)||f,f,p),I=m(A*.022||16,10,24);(0,c.useEffect)(()=>{let e=M.current;if(!e)return;let t=()=>j(e.clientWidth);t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]),(0,c.useEffect)(()=>{C&&T(m(a??Math.floor((C-1)/2),0,C-1))},[C,a]);let L=(0,c.useCallback)(e=>{if(!(C<1)){if(s){T((e+C)%C);return}T(m(e,0,C-1))}},[C,s]),R=(0,c.useCallback)(()=>L(w-1),[w,L]),z=(0,c.useCallback)(()=>L(w+1),[w,L]),B=e=>{!u||C<=1||h(e.target)||(e.currentTarget.setPointerCapture(e.pointerId),k(!0),N.current=e.clientX,D(0))},V=e=>{O&&D(e.clientX-N.current)},H=()=>{if(!O)return;let e=Math.max(56,F*.12);E<=-e?z():E>=e&&R(),k(!1),D(0)};if((0,c.useEffect)(()=>{let e=M.current;if(!e)return;let t=e=>{if(!d||C<=1||P.current)return;let t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;Math.abs(t)<28||(e.preventDefault(),e.stopPropagation(),P.current=!0,window.setTimeout(()=>{P.current=!1},260),t>0?z():R())};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[C,z,R,d]),!C)return null;let U=A/2-w*(F+I)-F/2+E;return(0,l.jsxs)(`div`,{className:n.t(`showcase`,v),style:{...b,"--item-width":`${F}px`},...x,children:[(0,l.jsx)(`div`,{ref:M,className:`showcase-stage`,onPointerDown:B,onPointerMove:V,onPointerUp:H,onPointerCancel:H,onPointerLeave:H,style:{cursor:u&&C>1?O?`grabbing`:`grab`:void 0},children:(0,l.jsx)(`div`,{className:n.t(`showcase-track`,O&&`dragging`),style:{transform:`translateX(${U}px)`,gap:`${I}px`},children:S.map((e,t)=>{let r=Math.abs(t-w);return(0,l.jsx)(`div`,{className:n.t(`showcase-item`,t===w&&`active`,r===1&&`near`,r>=2&&`far`),style:{zIndex:Math.max(1,C-r)},children:e},t)})})}),o&&C>1&&(0,l.jsxs)(`div`,{className:`showcase-actions`,children:[(0,l.jsx)(i.t,{type:`button`,variant:`secondary`,className:`showcase-btn`,startIcon:(0,l.jsx)(t.Fi,{}),onClick:R,children:`Previous`}),(0,l.jsx)(i.t,{type:`button`,className:`showcase-btn`,endIcon:(0,l.jsx)(t.Pi,{}),onClick:z,children:`Next`})]})]})}function b(e,t,n){return e&&t?e.map((e,n)=>t(e,n)):c.Children.toArray(n)}function x({items:e,renderItem:t,columns:r=3,className:i,children:a,style:o,...s}){let c=b(e,t,a);return c.length?(0,l.jsx)(`div`,{className:n.t(`masonry`,i),style:{...o,columnCount:r},...s,children:c.map((e,t)=>(0,l.jsx)(`div`,{className:`masonry item`,children:e},t))}):null}function S({src:e,alt:t=``,height:i,overlay:s,body:c,footer:u,interactive:d=!1,imageClickEffect:f=`none`,imgProps:p,children:m}){let h=i?{...p?.style,height:i}:p?.style,g=c??m,{effectClassName:_,effectLayer:v,handlePointerDown:y}=r.t({effect:o.a(f)?`ripple`:`none`});return(0,l.jsxs)(a.n,{interactive:d,clickEffect:f===`none`?void 0:`none`,className:n.t(`masonry card`,d&&`interactive`),children:[(0,l.jsxs)(`div`,{className:n.t(`masonry media`,_,o.o(f)&&`effect-zoom`,o.n(f)&&`effect-dim`),onPointerDown:e=>{e.target.closest(`.masonry.overlay`)||y(e)},children:[(0,l.jsx)(`img`,{...p,src:e,alt:t,className:`masonry img`,style:h}),s?(0,l.jsx)(`div`,{className:`masonry overlay`,children:s}):null,v]}),g?(0,l.jsx)(a.r,{className:`masonry body`,children:g}):null,u?(0,l.jsx)(a.i,{className:`masonry footer`,children:u}):null]})}function C({items:t,max:r=5,size:i=`sm`,color:a=`primary`,hidden:o,overlap:c=10,className:u,style:d,...f}){if(!t||t.length===0)return null;let p=t.slice(0,r),m=t.length-r,h=typeof i==`number`?i:{xs:20,sm:28,md:40,lg:56,xl:72}[i]??28;return(0,l.jsxs)(`div`,{className:n.t(`avatar-stack`,u),style:{"--avatar-stack-overlap":`-${c}px`,...d},...e.r(o),...f,children:[p.map((e,t)=>(0,l.jsx)(s.t,{src:e.avatar,name:e.name,size:i,color:a,className:`avatar-stack-item`,style:{zIndex:t+1}},t)),m>0&&(0,l.jsxs)(`span`,{className:`avatar-stack-overflow`,style:{width:h,height:h,fontSize:h*.38,zIndex:p.length+1},children:[`+`,m]})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return C}});
|
|
2
|
+
//# sourceMappingURL=media-p643cb02.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-p643cb02.cjs","names":[],"sources":["../src/components/media/MGallery/MGallery.tsx","../src/components/media/MCarousel/MCarousel.tsx","../src/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.tsx","../src/components/media/MShowcaseCarousel/MShowcaseCarousel.tsx","../src/components/media/MMasonry/MMasonry.tsx","../src/components/media/MMasonryItem/MMasonryItem.tsx","../src/components/media/MAvatarStack/MAvatarStack.tsx"],"sourcesContent":["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'\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; 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 {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={`Preview ${item.alt || 'image'}`}\n >\n <img className=\"gallery-image\" src={item.src} alt={item.alt || ''} loading=\"lazy\" />\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 className=\"gallery-image\" src={item.src} alt={item.alt || ''} loading=\"lazy\" />\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'\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 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=\"Previous slide\"\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=\"Next slide\"\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={`Slide ${i + 1}`}\n type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {MImage} from '../MImage'\nimport {cn} from '../../../utils/cn'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport type {MShowcaseCarouselItemProps} from './MShowcaseCarouselItem.types'\nimport './MShowcaseCarouselItem.css'\n\nexport function MShowcaseCarouselItem({\n src,\n alt = '',\n media,\n mediaHeight,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'ripple',\n ratio = '16:9',\n fit = 'cover',\n imgProps,\n children,\n}: MShowcaseCarouselItemProps) {\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const cardStyle = mediaHeight\n ? ({\n '--media-height': typeof mediaHeight === 'number' ? `${mediaHeight}px` : mediaHeight,\n } as CSSProperties)\n : undefined\n const hasMedia = Boolean(media || src)\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('showcase card', interactive && 'interactive')}\n style={cardStyle}\n >\n {hasMedia ? (\n <div\n className={cn(\n 'showcase media',\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n >\n {media ? (\n <div className=\"showcase media-content\">{media}</div>\n ) : (\n <MImage\n {...imgProps}\n src={src}\n alt={alt}\n ratio={ratio}\n fit={fit}\n rounded\n shadow\n clickEffect={shouldRipple ? 'ripple' : 'none'}\n />\n )}\n {overlay ? <div className=\"showcase overlay\">{overlay}</div> : null}\n </div>\n ) : null}\n {content ? <MCardBody className=\"showcase body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"showcase footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import {Children, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport type {CSSProperties, PointerEvent as ReactPointerEvent, ReactNode} from 'react'\nimport {MButton} from '../../controls'\nimport {MShowcaseCarouselItem} from '../MShowcaseCarouselItem'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport type {MShowcaseCarouselProps, MShowcaseCarouselSlide} from './MShowcaseCarousel.types'\nimport './MShowcaseCarousel.css'\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n\nfunction isInteractiveTarget(target: EventTarget | null) {\n if (!(target instanceof Element)) {\n return false\n }\n\n return !!target.closest(\n 'button, a, input, select, textarea, label, summary, [role=\"button\"], [role=\"link\"], [data-carousel-ignore-drag=\"true\"]'\n )\n}\n\nfunction getSlides<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n if (items) {\n return items\n .map((item, index) => {\n if (!isShowcaseItem(item)) {\n return null\n }\n\n return <ShowcaseMediaSlide key={index} item={item} />\n })\n .filter(Boolean)\n }\n\n return Children.toArray(children)\n}\n\nfunction isShowcaseItem(value: unknown): value is MShowcaseCarouselSlide {\n const slide = value as {src?: unknown}\n return !!value && typeof value === 'object' && 'src' in value && typeof slide.src === 'string'\n}\n\nfunction ShowcaseMediaSlide({item}: {item: MShowcaseCarouselSlide}) {\n return <MShowcaseCarouselItem src={item.src} alt={item.alt || ''} overlay={item.overlay} />\n}\n\n// Show a centered, mouse-driven carousel with partial side previews.\nexport function MShowcaseCarousel<T = unknown>({\n items,\n renderItem,\n initialIndex,\n showButtons = true,\n loop = true,\n draggable = true,\n wheel = true,\n itemMinWidth = 220,\n itemMaxWidth = 520,\n itemWidthRatio = 0.56,\n className,\n children,\n style,\n ...rest\n}: MShowcaseCarouselProps<T>) {\n const slides = useMemo(() => getSlides(items, renderItem, children), [children, items, renderItem])\n const count = slides.length\n const [active, setActive] = useState(0)\n const [drag, setDrag] = useState(0)\n const [dragging, setDragging] = useState(false)\n const [stageWidth, setStageWidth] = useState(0)\n const stageRef = useRef<HTMLDivElement>(null)\n const startX = useRef(0)\n const wheelLock = useRef(false)\n\n const widthRatio =\n stageWidth < 640\n ? Math.max(itemWidthRatio, 0.78)\n : stageWidth < 960\n ? Math.max(itemWidthRatio, 0.66)\n : itemWidthRatio\n const itemWidth = clamp(stageWidth * widthRatio || itemMinWidth, itemMinWidth, itemMaxWidth)\n const itemGap = clamp(stageWidth * 0.022 || 16, 10, 24)\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const update = () => setStageWidth(node.clientWidth)\n update()\n\n const observer = new ResizeObserver(update)\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [])\n\n useEffect(() => {\n if (!count) return\n\n const defaultIndex = initialIndex ?? Math.floor((count - 1) / 2)\n setActive(clamp(defaultIndex, 0, count - 1))\n }, [count, initialIndex])\n\n const goTo = useCallback(\n (nextIndex: number) => {\n if (count < 1) return\n\n if (loop) {\n setActive((nextIndex + count) % count)\n return\n }\n\n setActive(clamp(nextIndex, 0, count - 1))\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 onPointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!draggable || count <= 1) return\n if (isInteractiveTarget(event.target)) return\n event.currentTarget.setPointerCapture(event.pointerId)\n setDragging(true)\n startX.current = event.clientX\n setDrag(0)\n }\n\n const onPointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!dragging) return\n setDrag(event.clientX - startX.current)\n }\n\n const stopDrag = () => {\n if (!dragging) return\n\n const limit = Math.max(56, itemWidth * 0.12)\n\n if (drag <= -limit) {\n next()\n } else if (drag >= limit) {\n prev()\n }\n\n setDragging(false)\n setDrag(0)\n }\n\n useEffect(() => {\n const node = stageRef.current\n if (!node) return\n\n const handleWheel = (event: WheelEvent) => {\n if (!wheel || count <= 1 || wheelLock.current) return\n\n const axis = Math.abs(event.deltaX) > Math.abs(event.deltaY) ? event.deltaX : event.deltaY\n if (Math.abs(axis) < 28) return\n\n event.preventDefault()\n event.stopPropagation()\n\n wheelLock.current = true\n window.setTimeout(() => {\n wheelLock.current = false\n }, 260)\n\n if (axis > 0) {\n next()\n } else {\n prev()\n }\n }\n\n node.addEventListener('wheel', handleWheel, {passive: false})\n return () => node.removeEventListener('wheel', handleWheel)\n }, [count, next, prev, wheel])\n\n if (!count) return null\n\n const offset = stageWidth / 2 - active * (itemWidth + itemGap) - itemWidth / 2 + drag\n\n return (\n <div\n className={cn('showcase', className)}\n style={{...style, '--item-width': `${itemWidth}px`} as CSSProperties}\n {...rest}\n >\n <div\n ref={stageRef}\n className=\"showcase-stage\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={stopDrag}\n onPointerCancel={stopDrag}\n onPointerLeave={stopDrag}\n style={{\n cursor: draggable && count > 1 ? (dragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div\n className={cn('showcase-track', dragging && 'dragging')}\n style={{\n transform: `translateX(${offset}px)`,\n gap: `${itemGap}px`,\n }}\n >\n {slides.map((slide, index) => {\n const dist = Math.abs(index - active)\n\n return (\n <div\n key={index}\n className={cn(\n 'showcase-item',\n index === active && 'active',\n dist === 1 && 'near',\n dist >= 2 && 'far'\n )}\n style={{zIndex: Math.max(1, count - dist)}}\n >\n {slide}\n </div>\n )\n })}\n </div>\n </div>\n\n {showButtons && count > 1 && (\n <div className=\"showcase-actions\">\n <MButton\n type=\"button\"\n variant=\"secondary\"\n className=\"showcase-btn\"\n startIcon={<MChevronLeftIcon />}\n onClick={prev}\n >\n Previous\n </MButton>\n <MButton type=\"button\" className=\"showcase-btn\" endIcon={<MChevronRightIcon />} onClick={next}>\n Next\n </MButton>\n </div>\n )}\n </div>\n )\n}\n","import {Children} from 'react'\nimport type {ReactNode} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MMasonryProps} from './MMasonry.types'\nimport './MMasonry.css'\n\nfunction getItems<T>(items?: T[], renderItem?: (item: T, index: number) => ReactNode, children?: ReactNode) {\n if (items && renderItem) {\n return items.map((item, index) => renderItem(item, index))\n }\n\n return Children.toArray(children)\n}\n\n// Render a responsive masonry wall for images, cards and uneven content.\nexport function MMasonry<T = unknown>({\n items,\n renderItem,\n columns = 3,\n className,\n children,\n style,\n ...rest\n}: MMasonryProps<T>) {\n const content = getItems(items, renderItem, children)\n\n if (!content.length) return null\n\n return (\n <div className={cn('masonry', className)} style={{...style, columnCount: columns}} {...rest}>\n {content.map((item, index) => (\n <div key={index} className=\"masonry item\">\n {item}\n </div>\n ))}\n </div>\n )\n}\n","import {MCard, MCardBody, MCardFooter} from '../../cards'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {usesDim, usesRipple, usesZoom} from '../mediaInteraction'\nimport './MMasonryItem.css'\nimport type {MMasonryItemProps} from './MMasonryItem.types'\n\nexport function MMasonryItem({\n src,\n alt = '',\n height,\n overlay,\n body,\n footer,\n interactive = false,\n imageClickEffect = 'none',\n imgProps,\n children,\n}: MMasonryItemProps) {\n const imgStyle = height ? {...imgProps?.style, height} : imgProps?.style\n const content = body ?? children\n const shouldRipple = usesRipple(imageClickEffect)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: shouldRipple ? 'ripple' : 'none',\n })\n\n return (\n <MCard\n interactive={interactive}\n clickEffect={imageClickEffect !== 'none' ? 'none' : undefined}\n className={cn('masonry card', interactive && 'interactive')}\n >\n <div\n className={cn(\n 'masonry media',\n effectClassName,\n usesZoom(imageClickEffect) && 'effect-zoom',\n usesDim(imageClickEffect) && 'effect-dim'\n )}\n onPointerDown={(event) => {\n const target = event.target as HTMLElement\n\n if (target.closest('.masonry.overlay')) {\n return\n }\n\n handlePointerDown(event)\n }}\n >\n <img {...imgProps} src={src} alt={alt} className=\"masonry img\" style={imgStyle} />\n {overlay ? <div className=\"masonry overlay\">{overlay}</div> : null}\n {effectLayer}\n </div>\n {content ? <MCardBody className=\"masonry body\">{content}</MCardBody> : null}\n {footer ? <MCardFooter className=\"masonry footer\">{footer}</MCardFooter> : null}\n </MCard>\n )\n}\n","import type {MAvatarStackProps} from './MAvatarStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MAvatar} from '../MAvatar'\nimport './MAvatarStack.css'\n\nexport function MAvatarStack({\n items,\n max = 5,\n size = 'sm',\n color = 'primary',\n hidden,\n overlap = 10,\n className,\n style,\n ...rest\n}: MAvatarStackProps) {\n if (!items || items.length === 0) return null\n\n const visible = items.slice(0, max)\n const overflowCount = items.length - max\n const avatarPx = typeof size === 'number' ? size : ({xs: 20, sm: 28, md: 40, lg: 56, xl: 72}[size] ?? 28)\n\n return (\n <div\n className={cn('avatar-stack', className)}\n style={{'--avatar-stack-overlap': `-${overlap}px`, ...style} as React.CSSProperties}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {visible.map((item, i) => (\n <MAvatar\n key={i}\n src={item.avatar}\n name={item.name}\n size={size}\n color={color}\n className=\"avatar-stack-item\"\n style={{zIndex: i + 1}}\n />\n ))}\n {overflowCount > 0 && (\n <span\n className=\"avatar-stack-overflow\"\n style={{\n width: avatarPx,\n height: avatarPx,\n fontSize: avatarPx * 0.38,\n zIndex: visible.length + 1,\n }}\n >\n +{overflowCount}\n </span>\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(`./MImage-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MImage-CxeuH-cT.cjs`),t=require(`./media-p643cb02.cjs`),n=require(`./MAvatar-DGEQqUss.cjs`);exports.MAvatar=n.t,exports.MAvatarStack=t.t,exports.MCarousel=t.o,exports.MGallery=t.s,exports.MImage=e.t,exports.MMasonry=t.r,exports.MMasonryItem=t.n,exports.MShowcaseCarousel=t.i,exports.MShowcaseCarouselItem=t.a;
|