@banzamel/mineralui 1.6.3 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{MAvatar-BVJh6kgW.cjs → MAvatar-CV3xJOmx.cjs} +2 -2
- package/dist/{MAvatar-BVJh6kgW.cjs.map → MAvatar-CV3xJOmx.cjs.map} +1 -1
- package/dist/{MBadge-B4x-Lx7e.cjs → MBadge-BoxsfX_h.cjs} +2 -2
- package/dist/{MBadge-B4x-Lx7e.cjs.map → MBadge-BoxsfX_h.cjs.map} +1 -1
- package/dist/{MButton-DrkVdRDy.cjs → MButton-B9k45kH-.cjs} +2 -2
- package/dist/{MButton-DrkVdRDy.cjs.map → MButton-B9k45kH-.cjs.map} +1 -1
- package/dist/{MCheckbox-C40ESQRe.cjs → MCheckbox-CdDWGVp3.cjs} +2 -2
- package/dist/{MCheckbox-C40ESQRe.cjs.map → MCheckbox-CdDWGVp3.cjs.map} +1 -1
- package/dist/MDataTable-C3v15no3.cjs +2 -0
- package/dist/MDataTable-C3v15no3.cjs.map +1 -0
- package/dist/MDataTable-C_XiTGTF.js +297 -0
- package/dist/MDataTable-C_XiTGTF.js.map +1 -0
- package/dist/{MDrawer-DFkrFrnD.cjs → MDrawer-BtA_Xgj0.cjs} +2 -2
- package/dist/{MDrawer-DFkrFrnD.cjs.map → MDrawer-BtA_Xgj0.cjs.map} +1 -1
- package/dist/{MDropdownMenu-D79Cm5aS.js → MDropdownMenu-BWgf92rJ.js} +5 -5
- package/dist/MDropdownMenu-BWgf92rJ.js.map +1 -0
- package/dist/MDropdownMenu-mGE19gCi.cjs +2 -0
- package/dist/MDropdownMenu-mGE19gCi.cjs.map +1 -0
- package/dist/{MGalleryIllustration-BB3DoCl_.cjs → MGalleryIllustration-D2agVuZM.cjs} +2 -2
- package/dist/{MGalleryIllustration-BB3DoCl_.cjs.map → MGalleryIllustration-D2agVuZM.cjs.map} +1 -1
- package/dist/{MHeading-BhCNoJeW.cjs → MHeading-BQCe_JhE.cjs} +2 -2
- package/dist/{MHeading-BhCNoJeW.cjs.map → MHeading-BQCe_JhE.cjs.map} +1 -1
- package/dist/{MI18nProvider-B2sE0x5D.cjs → MI18nProvider-CqAwaswx.cjs} +2 -2
- package/dist/{MI18nProvider-B2sE0x5D.cjs.map → MI18nProvider-CqAwaswx.cjs.map} +1 -1
- package/dist/{MImage-gwFphZk2.js → MImage-I0LPhcqF.js} +75 -69
- package/dist/MImage-I0LPhcqF.js.map +1 -0
- package/dist/MImage-hnSqIPaC.cjs +2 -0
- package/dist/MImage-hnSqIPaC.cjs.map +1 -0
- package/dist/{MInline-CHrh3PHH.cjs → MInline-FEXWkr71.cjs} +2 -2
- package/dist/{MInline-CHrh3PHH.cjs.map → MInline-FEXWkr71.cjs.map} +1 -1
- package/dist/{MInput-DYqV3-rQ.cjs → MInput-5-alcVsu.cjs} +2 -2
- package/dist/{MInput-DYqV3-rQ.cjs.map → MInput-5-alcVsu.cjs.map} +1 -1
- package/dist/{MInput-bzSwK880.js → MInput-CNSvoRiu.js} +2 -1
- package/dist/{MInput-bzSwK880.js.map → MInput-CNSvoRiu.js.map} +1 -1
- package/dist/{MInputCVC-BHpMHTO5.js → MInputCVC-BgougfgN.js} +3 -3
- package/dist/{MInputCVC-BHpMHTO5.js.map → MInputCVC-BgougfgN.js.map} +1 -1
- package/dist/{MInputCVC-5NkYSxV8.cjs → MInputCVC-CRWp1fYi.cjs} +2 -2
- package/dist/{MInputCVC-5NkYSxV8.cjs.map → MInputCVC-CRWp1fYi.cjs.map} +1 -1
- package/dist/{MInputSearch-Dh4C3Tz5.js → MInputSearch-BwR-BPh2.js} +2 -2
- package/dist/{MInputSearch-Dh4C3Tz5.js.map → MInputSearch-BwR-BPh2.js.map} +1 -1
- package/dist/{MInputSearch-DfoenJIm.cjs → MInputSearch-X9yNPuTf.cjs} +2 -2
- package/dist/{MInputSearch-DfoenJIm.cjs.map → MInputSearch-X9yNPuTf.cjs.map} +1 -1
- package/dist/{MLink-CY45UR_j.cjs → MLink-BakLkpKp.cjs} +2 -2
- package/dist/{MLink-CY45UR_j.cjs.map → MLink-BakLkpKp.cjs.map} +1 -1
- package/dist/{MModal-DT5BBgNZ.cjs → MModal-BYuPCSLG.cjs} +2 -2
- package/dist/{MModal-DT5BBgNZ.cjs.map → MModal-BYuPCSLG.cjs.map} +1 -1
- package/dist/{MModal-BDTAgnrm.js → MModal-K73juXhN.js} +2 -2
- package/dist/{MModal-BDTAgnrm.js.map → MModal-K73juXhN.js.map} +1 -1
- package/dist/{MPagination-CZEJMJzZ.cjs → MPagination-B8BcGks_.cjs} +2 -2
- package/dist/{MPagination-CZEJMJzZ.cjs.map → MPagination-B8BcGks_.cjs.map} +1 -1
- package/dist/{MPagination-CTnaW5AW.js → MPagination-BdBpF3Px.js} +1 -1
- package/dist/{MPagination-CTnaW5AW.js.map → MPagination-BdBpF3Px.js.map} +1 -1
- package/dist/{MPopover-B4IUb9f0.cjs → MPopover-DfEiRuM9.cjs} +2 -2
- package/dist/{MPopover-B4IUb9f0.cjs.map → MPopover-DfEiRuM9.cjs.map} +1 -1
- package/dist/{MPortal-Bi24xTGW.cjs → MPortal-CuBXhhl_.cjs} +2 -2
- package/dist/{MPortal-Bi24xTGW.cjs.map → MPortal-CuBXhhl_.cjs.map} +1 -1
- package/dist/{MQrCode-ByfmG33y.cjs → MQrCode-BXXTLtBP.cjs} +2 -2
- package/dist/{MQrCode-ByfmG33y.cjs.map → MQrCode-BXXTLtBP.cjs.map} +1 -1
- package/dist/{MSkeleton-DGhtNmpI.js → MSkeleton-BP7H_lsX.js} +2 -2
- package/dist/{MSkeleton-DGhtNmpI.js.map → MSkeleton-BP7H_lsX.js.map} +1 -1
- package/dist/{MSkeleton-5j1h9s95.cjs → MSkeleton-QO2sI-Ni.cjs} +2 -2
- package/dist/{MSkeleton-5j1h9s95.cjs.map → MSkeleton-QO2sI-Ni.cjs.map} +1 -1
- package/dist/{MSlider-Ch3VjAJC.cjs → MSlider-fhvfj0ft.cjs} +2 -2
- package/dist/{MSlider-Ch3VjAJC.cjs.map → MSlider-fhvfj0ft.cjs.map} +1 -1
- package/dist/{MSparkline-B6qpt5WM.cjs → MSparkline-CcM1n7Kh.cjs} +2 -2
- package/dist/{MSparkline-B6qpt5WM.cjs.map → MSparkline-CcM1n7Kh.cjs.map} +1 -1
- package/dist/{MStack-Bh-R2opf.cjs → MStack-Dy8Zl6FW.cjs} +2 -2
- package/dist/{MStack-Bh-R2opf.cjs.map → MStack-Dy8Zl6FW.cjs.map} +1 -1
- package/dist/{MSubText-C-70zn0m.cjs → MSubText-C1unzaCF.cjs} +2 -2
- package/dist/{MSubText-C-70zn0m.cjs.map → MSubText-C1unzaCF.cjs.map} +1 -1
- package/dist/{MSurface-DJYSftdM.js → MSurface-f_3vN0sd.js} +1 -1
- package/dist/{MSurface-DJYSftdM.js.map → MSurface-f_3vN0sd.js.map} +1 -1
- package/dist/{MSurface-CpiV1-7f.cjs → MSurface-wVqTsi1m.cjs} +2 -2
- package/dist/{MSurface-CpiV1-7f.cjs.map → MSurface-wVqTsi1m.cjs.map} +1 -1
- package/dist/MTabs-Dg31d-_D.js +89 -0
- package/dist/MTabs-Dg31d-_D.js.map +1 -0
- package/dist/MTabs-DuLqttVp.cjs +2 -0
- package/dist/MTabs-DuLqttVp.cjs.map +1 -0
- package/dist/{MTag-Y4Tswmli.cjs → MTag-CeLhZhqT.cjs} +2 -2
- package/dist/{MTag-Y4Tswmli.cjs.map → MTag-CeLhZhqT.cjs.map} +1 -1
- package/dist/{MText-DEJddMB5.cjs → MText-BbEkc0Ik.cjs} +2 -2
- package/dist/{MText-DEJddMB5.cjs.map → MText-BbEkc0Ik.cjs.map} +1 -1
- package/dist/{MTimeAgo-DxZGVo2Y.cjs → MTimeAgo-Dd0JQRGj.cjs} +2 -2
- package/dist/{MTimeAgo-DxZGVo2Y.cjs.map → MTimeAgo-Dd0JQRGj.cjs.map} +1 -1
- package/dist/{MToggle-C8vYRzpC.cjs → MToggle-BZSwJw_z.cjs} +2 -2
- package/dist/{MToggle-C8vYRzpC.cjs.map → MToggle-BZSwJw_z.cjs.map} +1 -1
- package/dist/{MTooltip-kSTMMpvu.cjs → MTooltip-BE0GcseJ.cjs} +2 -2
- package/dist/{MTooltip-kSTMMpvu.cjs.map → MTooltip-BE0GcseJ.cjs.map} +1 -1
- package/dist/{arduino-Eif5KI8O.js → arduino-5iMB2x4D.js} +1 -1
- package/dist/{arduino-Eif5KI8O.js.map → arduino-5iMB2x4D.js.map} +1 -1
- package/dist/{arduino-CXUo7Bjy.cjs → arduino-C1gw-z1N.cjs} +1 -1
- package/dist/{arduino-CXUo7Bjy.cjs.map → arduino-C1gw-z1N.cjs.map} +1 -1
- package/dist/{bash-CCF_TYbb.js → bash-CNKpaaFe.js} +1 -1
- package/dist/{bash-CCF_TYbb.js.map → bash-CNKpaaFe.js.map} +1 -1
- package/dist/{bash-W4h3o_nx.cjs → bash-wzZkpJC-.cjs} +1 -1
- package/dist/{bash-W4h3o_nx.cjs.map → bash-wzZkpJC-.cjs.map} +1 -1
- package/dist/{c-DVgkp6T3.js → c-BKjXPJPn.js} +1 -1
- package/dist/{c-DVgkp6T3.js.map → c-BKjXPJPn.js.map} +1 -1
- package/dist/{c-Dm60JY-W.cjs → c-BSPjDa0P.cjs} +1 -1
- package/dist/{c-Dm60JY-W.cjs.map → c-BSPjDa0P.cjs.map} +1 -1
- package/dist/{cards-fn61xD_5.js → cards-BYX8bM2l.js} +457 -307
- package/dist/cards-BYX8bM2l.js.map +1 -0
- package/dist/cards-lCx9oEVk.cjs +2 -0
- package/dist/cards-lCx9oEVk.cjs.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +3 -3
- package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
- package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +21 -5
- package/dist/components/cards/MCardTile/MCardTile.d.ts +2 -0
- package/dist/components/cards/MCardTile/MCardTile.types.d.ts +28 -0
- package/dist/components/cards/MCardTile/index.d.ts +2 -0
- package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.d.ts +1 -1
- package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.types.d.ts +1 -3
- package/dist/components/cards/index.d.ts +2 -0
- package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +8 -7
- package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +75 -6
- package/dist/components/data/MCalendarBoard/index.d.ts +2 -2
- package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
- package/dist/components/data/MDataTable/MDataTable.types.d.ts +23 -0
- package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
- package/dist/components/data/MTreeView/MTreeView.types.d.ts +9 -1
- package/dist/components/data/index.d.ts +2 -2
- package/dist/components/display/MBlur/MBlur.d.ts +2 -0
- package/dist/components/display/MBlur/MBlur.types.d.ts +13 -0
- package/dist/components/display/MBlur/index.d.ts +2 -0
- package/dist/components/display/index.d.ts +2 -0
- package/dist/components/inputs/MInputIBAN/MInputIBAN.types.d.ts +3 -3
- package/dist/components/inputs/MInputPhone/MInputPhone.types.d.ts +2 -0
- package/dist/components/layout/MGrid/MGrid.d.ts +2 -2
- package/dist/components/layout/MGrid/MGrid.types.d.ts +2 -0
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/MImage/MImage.types.d.ts +6 -1
- package/dist/components/media/MMediaLightbox/MMediaLightbox.d.ts +1 -1
- package/dist/components/overlays/MTooltip/MTooltip.types.d.ts +2 -2
- package/dist/{controls-C5PtrGZf.cjs → controls-CZCxbJgq.cjs} +2 -2
- package/dist/{controls-C5PtrGZf.cjs.map → controls-CZCxbJgq.cjs.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/{core-CB9-PTLK.js → core-B8VC-Umz.js} +1 -1
- package/dist/{core-CB9-PTLK.js.map → core-B8VC-Umz.js.map} +1 -1
- package/dist/{core-AKWkE8Bx.cjs → core-w629c4ND.cjs} +1 -1
- package/dist/{core-AKWkE8Bx.cjs.map → core-w629c4ND.cjs.map} +1 -1
- package/dist/{cpp-DyKt1H8n.cjs → cpp-LIcuHkFj.cjs} +1 -1
- package/dist/{cpp-DyKt1H8n.cjs.map → cpp-LIcuHkFj.cjs.map} +1 -1
- package/dist/{cpp-OOenfB17.js → cpp-bNWmO1Au.js} +1 -1
- package/dist/{cpp-OOenfB17.js.map → cpp-bNWmO1Au.js.map} +1 -1
- package/dist/creditCards-D_HwRUBz.cjs +2 -0
- package/dist/creditCards-D_HwRUBz.cjs.map +1 -0
- package/dist/{creditCards-CCysEwry.js → creditCards-D_iWmtG6.js} +14 -8
- package/dist/creditCards-D_iWmtG6.js.map +1 -0
- package/dist/{css-DxVbPJLu.cjs → css-D6fGBtGV.cjs} +1 -1
- package/dist/{css-DxVbPJLu.cjs.map → css-D6fGBtGV.cjs.map} +1 -1
- package/dist/{css-u5LSEAra.js → css-h_5aJA6y.js} +1 -1
- package/dist/{css-u5LSEAra.js.map → css-h_5aJA6y.js.map} +1 -1
- package/dist/data-CcS-eYye.cjs +2 -0
- package/dist/data-CcS-eYye.cjs.map +1 -0
- package/dist/data-DT1ncDx_.js +2997 -0
- package/dist/data-DT1ncDx_.js.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/{display-BafEcBK_.cjs → display-BxVd6MMK.cjs} +3 -3
- package/dist/display-BxVd6MMK.cjs.map +1 -0
- package/dist/{display-Zxj9YHu_.js → display-CtVfcztO.js} +47 -18
- package/dist/display-CtVfcztO.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +4 -4
- package/dist/dropdowns-BgpcQ9Hq.cjs +2 -0
- package/dist/dropdowns-BgpcQ9Hq.cjs.map +1 -0
- package/dist/{dropdowns-Bw8obCYl.js → dropdowns-C58ur0qF.js} +582 -555
- package/dist/dropdowns-C58ur0qF.js.map +1 -0
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-Di0SEpRe.cjs → feedback-BJiO6j28.cjs} +2 -2
- package/dist/{feedback-Di0SEpRe.cjs.map → feedback-BJiO6j28.cjs.map} +1 -1
- package/dist/{feedback-8H3bmQw5.js → feedback-q3oO-E_X.js} +5 -5
- package/dist/{feedback-8H3bmQw5.js.map → feedback-q3oO-E_X.js.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +2 -2
- package/dist/{form-BYz99Py5.cjs → form-D7OKrCBM.cjs} +2 -2
- package/dist/{form-BYz99Py5.cjs.map → form-D7OKrCBM.cjs.map} +1 -1
- package/dist/{form-JHlvtP9r.js → form-DIOkVhd9.js} +2 -2
- package/dist/{form-JHlvtP9r.js.map → form-DIOkVhd9.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{frameworkTexts-CvxcWRXp.js → frameworkTexts-Bzd6bn9s.js} +3 -1
- package/dist/frameworkTexts-Bzd6bn9s.js.map +1 -0
- package/dist/frameworkTexts-CJHzJHsg.cjs +2 -0
- package/dist/frameworkTexts-CJHzJHsg.cjs.map +1 -0
- package/dist/i18n/frameworkTexts.d.ts +2 -0
- package/dist/i18n.cjs +1 -1
- package/dist/icons-CfpYxnfg.js.map +1 -1
- package/dist/{icons-DWMgDKgt.cjs → icons-lUQfZ4Jr.cjs} +2 -2
- package/dist/{icons-DWMgDKgt.cjs.map → icons-lUQfZ4Jr.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 +43 -42
- package/dist/inputs-DOO1tKK9.cjs +2 -0
- package/dist/inputs-DOO1tKK9.cjs.map +1 -0
- package/dist/{inputs-Bcwd_UTr.js → inputs-Dwjwa_SJ.js} +545 -439
- package/dist/inputs-Dwjwa_SJ.js.map +1 -0
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +5 -5
- package/dist/{javascript-CXjsxb-I.js → javascript-BnTECToz.js} +1 -1
- package/dist/{javascript-CXjsxb-I.js.map → javascript-BnTECToz.js.map} +1 -1
- package/dist/{javascript-CzjCTQxn.cjs → javascript-Oy5hkezl.cjs} +1 -1
- package/dist/{javascript-CzjCTQxn.cjs.map → javascript-Oy5hkezl.cjs.map} +1 -1
- package/dist/{json-9Qq5guN0.cjs → json-BP8eqPWc.cjs} +1 -1
- package/dist/{json-9Qq5guN0.cjs.map → json-BP8eqPWc.cjs.map} +1 -1
- package/dist/{json-CyV5VF8D.js → json-Ci-bDynf.js} +1 -1
- package/dist/{json-CyV5VF8D.js.map → json-Ci-bDynf.js.map} +1 -1
- package/dist/layout-B3S9bvaP.cjs +2 -0
- package/dist/layout-B3S9bvaP.cjs.map +1 -0
- package/dist/{layout-BpEnTocp.js → layout-BqDbW0Qn.js} +265 -347
- package/dist/layout-BqDbW0Qn.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +7 -6
- package/dist/{licensing-ezfo7ZTh.cjs → licensing-Df1Z1rnQ.cjs} +2 -2
- package/dist/{licensing-ezfo7ZTh.cjs.map → licensing-Df1Z1rnQ.cjs.map} +1 -1
- package/dist/{locale-CZyqh3ON.cjs → locale-Ba2yreFR.cjs} +2 -2
- package/dist/{locale-CZyqh3ON.cjs.map → locale-Ba2yreFR.cjs.map} +1 -1
- package/dist/{media-ClgUKDca.cjs → media-C5atCcc6.cjs} +2 -2
- package/dist/{media-ClgUKDca.cjs.map → media-C5atCcc6.cjs.map} +1 -1
- package/dist/{media-C3M0npGW.js → media-DdshnqJ1.js} +3 -3
- package/dist/{media-C3M0npGW.js.map → media-DdshnqJ1.js.map} +1 -1
- package/dist/media.cjs +1 -1
- package/dist/media.js +2 -2
- package/dist/{overlays-DrSGzbbA.cjs → overlays-BC_6IATL.cjs} +2 -2
- package/dist/{overlays-DrSGzbbA.cjs.map → overlays-BC_6IATL.cjs.map} +1 -1
- package/dist/{overlays-CGlqD3rl.js → overlays-zUoV_Jy7.js} +2 -2
- package/dist/{overlays-CGlqD3rl.js.map → overlays-zUoV_Jy7.js.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/{php-Br75m0HU.cjs → php-Cwjc-ZYq.cjs} +1 -1
- package/dist/{php-Br75m0HU.cjs.map → php-Cwjc-ZYq.cjs.map} +1 -1
- package/dist/{php-deNqvHeU.js → php-DJ5j7KZU.js} +1 -1
- package/dist/{php-deNqvHeU.js.map → php-DJ5j7KZU.js.map} +1 -1
- package/dist/primitives.cjs +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-CgS-bND3.cjs → theme-Bb_NAEiZ.cjs} +2 -2
- package/dist/{theme-CgS-bND3.cjs.map → theme-Bb_NAEiZ.cjs.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{typescript-jNfCpQvl.js → typescript-DUexJ4gh.js} +1 -1
- package/dist/{typescript-jNfCpQvl.js.map → typescript-DUexJ4gh.js.map} +1 -1
- package/dist/{typescript-CRgqVaw_.cjs → typescript-QKlfKtex.cjs} +1 -1
- package/dist/{typescript-CRgqVaw_.cjs.map → typescript-QKlfKtex.cjs.map} +1 -1
- package/dist/{typography-Zo4Usx9I.cjs → typography-CRKIyR-B.cjs} +2 -2
- package/dist/{typography-Zo4Usx9I.cjs.map → typography-CRKIyR-B.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/{useGhostText-tv1LiSPs.cjs → useGhostText-mibV4s1-.cjs} +2 -2
- package/dist/{useGhostText-tv1LiSPs.cjs.map → useGhostText-mibV4s1-.cjs.map} +1 -1
- package/dist/{useInteractionEffect-D1ZdNbKU.cjs → useInteractionEffect-CtXlbjhC.cjs} +2 -2
- package/dist/{useInteractionEffect-D1ZdNbKU.cjs.map → useInteractionEffect-CtXlbjhC.cjs.map} +1 -1
- package/dist/{useKeyboardNav-CkIlAagq.cjs → useKeyboardNav-CCUoRMgm.cjs} +2 -2
- package/dist/{useKeyboardNav-CkIlAagq.cjs.map → useKeyboardNav-CCUoRMgm.cjs.map} +1 -1
- package/dist/utils/creditCards.d.ts +1 -0
- package/dist/utils/validators.d.ts +2 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +3 -3
- package/dist/{validators-H8tNxb8O.js → validators-D5OCyV2h.js} +23 -20
- package/dist/validators-D5OCyV2h.js.map +1 -0
- package/dist/{validators-BeNTD8mf.cjs → validators-DRhikiAi.cjs} +2 -2
- package/dist/validators-DRhikiAi.cjs.map +1 -0
- package/dist/{xml-C_ksWBRH.cjs → xml-DEtyywwU.cjs} +1 -1
- package/dist/{xml-C_ksWBRH.cjs.map → xml-DEtyywwU.cjs.map} +1 -1
- package/dist/{xml-0Th6YIDv.js → xml-DlZghN7m.js} +1 -1
- package/dist/{xml-0Th6YIDv.js.map → xml-DlZghN7m.js.map} +1 -1
- package/package.json +1 -1
- package/dist/MDataTable-Bx7W-Ari.cjs +0 -2
- package/dist/MDataTable-Bx7W-Ari.cjs.map +0 -1
- package/dist/MDataTable-ByvNQqNP.js +0 -149
- package/dist/MDataTable-ByvNQqNP.js.map +0 -1
- package/dist/MDropdownMenu-BmfXSc46.cjs +0 -2
- package/dist/MDropdownMenu-BmfXSc46.cjs.map +0 -1
- package/dist/MDropdownMenu-D79Cm5aS.js.map +0 -1
- package/dist/MImage-L_zgfWRY.cjs +0 -2
- package/dist/MImage-L_zgfWRY.cjs.map +0 -1
- package/dist/MImage-gwFphZk2.js.map +0 -1
- package/dist/cards-BiYdorB0.cjs +0 -2
- package/dist/cards-BiYdorB0.cjs.map +0 -1
- package/dist/cards-fn61xD_5.js.map +0 -1
- package/dist/creditCards-CCysEwry.js.map +0 -1
- package/dist/creditCards-ljs044xt.cjs +0 -2
- package/dist/creditCards-ljs044xt.cjs.map +0 -1
- package/dist/data-Bw9FSZ80.cjs +0 -2
- package/dist/data-Bw9FSZ80.cjs.map +0 -1
- package/dist/data-CMSIr_Ac.js +0 -2527
- package/dist/data-CMSIr_Ac.js.map +0 -1
- package/dist/display-BafEcBK_.cjs.map +0 -1
- package/dist/display-Zxj9YHu_.js.map +0 -1
- package/dist/dropdowns-Bw8obCYl.js.map +0 -1
- package/dist/dropdowns-DN7j1HhE.cjs +0 -2
- package/dist/dropdowns-DN7j1HhE.cjs.map +0 -1
- package/dist/frameworkTexts-CvxcWRXp.js.map +0 -1
- package/dist/frameworkTexts-abkS5XZK.cjs +0 -2
- package/dist/frameworkTexts-abkS5XZK.cjs.map +0 -1
- package/dist/inputs-Bcwd_UTr.js.map +0 -1
- package/dist/inputs-FP545Yri.cjs +0 -2
- package/dist/inputs-FP545Yri.cjs.map +0 -1
- package/dist/layout-BpEnTocp.js.map +0 -1
- package/dist/layout-rtlHrjDb.cjs +0 -2
- package/dist/layout-rtlHrjDb.cjs.map +0 -1
- package/dist/validators-BeNTD8mf.cjs.map +0 -1
- package/dist/validators-H8tNxb8O.js.map +0 -1
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { Di as e, Oi as t, ki as n } from "./icons-CfpYxnfg.js";
|
|
2
|
-
import { t as r } from "./cn-YER3QsV1.js";
|
|
3
|
-
import { t as i } from "./MCheckbox-B-nT2OBE.js";
|
|
4
|
-
import { t as a } from "./MInputSearch-Dh4C3Tz5.js";
|
|
5
|
-
import { t as o } from "./MPagination-CTnaW5AW.js";
|
|
6
|
-
import { useMemo as s, useState as c } from "react";
|
|
7
|
-
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
8
|
-
//#region src/components/data/MDataTable/MDataTable.tsx
|
|
9
|
-
function d(e, t, n) {
|
|
10
|
-
return typeof n == "function" ? n(e, t) : String(typeof n == "string" ? e[n] : e.id ?? t);
|
|
11
|
-
}
|
|
12
|
-
function f({ columns: f, data: p, rowKey: m, sortable: h = !1, filterable: g = !1, selectable: _ = !1, pagination: v = !1, pageSize: y = 10, striped: b = !1, compact: x = !1, stickyHeader: S = !1, sort: C, onSortChange: w, selectedKeys: T, onSelectionChange: E, emptyText: D = "No data", filterPlaceholder: O = "Search...", className: k, ...A }) {
|
|
13
|
-
let [j, M] = c(null), [N, P] = c([]), [F, I] = c(""), [L, R] = c(0), z = C === void 0 ? j : C, B = T ?? N, V = E ?? P;
|
|
14
|
-
function H(e) {
|
|
15
|
-
let t;
|
|
16
|
-
t = z?.key === e ? z.dir === "asc" ? {
|
|
17
|
-
key: e,
|
|
18
|
-
dir: "desc"
|
|
19
|
-
} : null : {
|
|
20
|
-
key: e,
|
|
21
|
-
dir: "asc"
|
|
22
|
-
}, w ? w(t) : M(t), R(0);
|
|
23
|
-
}
|
|
24
|
-
let U = s(() => {
|
|
25
|
-
if (!g || !F.trim()) return p;
|
|
26
|
-
let e = F.toLowerCase();
|
|
27
|
-
return p.filter((t) => f.some((n) => {
|
|
28
|
-
if (n.filterable === !1) return !1;
|
|
29
|
-
let r = t[n.key];
|
|
30
|
-
return r != null && String(r).toLowerCase().includes(e);
|
|
31
|
-
}));
|
|
32
|
-
}, [
|
|
33
|
-
p,
|
|
34
|
-
F,
|
|
35
|
-
g,
|
|
36
|
-
f
|
|
37
|
-
]), W = s(() => {
|
|
38
|
-
if (!z || !f.find((e) => e.key === z.key)?.sortable && !h) return U;
|
|
39
|
-
let e = z.dir === "asc" ? 1 : -1;
|
|
40
|
-
return [...U].sort((t, n) => {
|
|
41
|
-
let r = t[z.key], i = n[z.key];
|
|
42
|
-
return r == null && i == null ? 0 : r == null ? 1 : i == null ? -1 : typeof r == "number" && typeof i == "number" ? (r - i) * e : String(r).localeCompare(String(i)) * e;
|
|
43
|
-
});
|
|
44
|
-
}, [
|
|
45
|
-
U,
|
|
46
|
-
z,
|
|
47
|
-
f,
|
|
48
|
-
h
|
|
49
|
-
]), G = v ? Math.max(1, Math.ceil(W.length / y)) : 1, K = v ? W.slice(L * y, (L + 1) * y) : W, q = K.map((e, t) => d(e, L * y + t, m)), J = q.length > 0 && q.every((e) => B.includes(e));
|
|
50
|
-
function Y() {
|
|
51
|
-
V(J ? B.filter((e) => !q.includes(e)) : [...new Set([...B, ...q])]);
|
|
52
|
-
}
|
|
53
|
-
function X(e) {
|
|
54
|
-
V(B.includes(e) ? B.filter((t) => t !== e) : [...B, e]);
|
|
55
|
-
}
|
|
56
|
-
function Z(e, t) {
|
|
57
|
-
t.target.closest("button, a, [data-no-row-select]") || X(e);
|
|
58
|
-
}
|
|
59
|
-
return /* @__PURE__ */ u("div", {
|
|
60
|
-
className: r("data-table", k),
|
|
61
|
-
...A,
|
|
62
|
-
children: [
|
|
63
|
-
g && /* @__PURE__ */ l("div", {
|
|
64
|
-
className: "toolbar",
|
|
65
|
-
children: /* @__PURE__ */ l(a, {
|
|
66
|
-
className: "filter-search",
|
|
67
|
-
size: "sm",
|
|
68
|
-
fullWidth: !0,
|
|
69
|
-
placeholder: O,
|
|
70
|
-
value: F,
|
|
71
|
-
onChange: (e) => {
|
|
72
|
-
I(e.target.value), R(0);
|
|
73
|
-
},
|
|
74
|
-
onClear: () => {
|
|
75
|
-
I(""), R(0);
|
|
76
|
-
}
|
|
77
|
-
})
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ l("div", {
|
|
80
|
-
className: "scroll",
|
|
81
|
-
children: /* @__PURE__ */ u("table", {
|
|
82
|
-
className: r("root", b && "striped", x && "compact"),
|
|
83
|
-
children: [/* @__PURE__ */ l("thead", {
|
|
84
|
-
className: r("head", S && "sticky"),
|
|
85
|
-
children: /* @__PURE__ */ u("tr", { children: [_ && /* @__PURE__ */ l("th", {
|
|
86
|
-
className: "th check-col",
|
|
87
|
-
children: /* @__PURE__ */ l(i, {
|
|
88
|
-
checked: J,
|
|
89
|
-
onChange: Y,
|
|
90
|
-
size: "sm",
|
|
91
|
-
clickEffect: "none"
|
|
92
|
-
})
|
|
93
|
-
}), f.map((i) => {
|
|
94
|
-
let a = i.sortable ?? h, o = z?.key === i.key;
|
|
95
|
-
return /* @__PURE__ */ l("th", {
|
|
96
|
-
className: r("th", a && "sortable", o && `sorted-${z.dir}`),
|
|
97
|
-
style: {
|
|
98
|
-
width: i.width,
|
|
99
|
-
textAlign: i.align
|
|
100
|
-
},
|
|
101
|
-
onClick: a ? () => H(i.key) : void 0,
|
|
102
|
-
children: /* @__PURE__ */ u("span", {
|
|
103
|
-
className: "th-content",
|
|
104
|
-
children: [i.label, a && /* @__PURE__ */ l("span", {
|
|
105
|
-
className: "sort-icon",
|
|
106
|
-
children: o ? z.dir === "asc" ? /* @__PURE__ */ l(n, { "aria-hidden": "true" }) : /* @__PURE__ */ l(t, { "aria-hidden": "true" }) : /* @__PURE__ */ l(e, { "aria-hidden": "true" })
|
|
107
|
-
})]
|
|
108
|
-
})
|
|
109
|
-
}, i.key);
|
|
110
|
-
})] })
|
|
111
|
-
}), /* @__PURE__ */ u("tbody", { children: [K.length === 0 && /* @__PURE__ */ l("tr", { children: /* @__PURE__ */ l("td", {
|
|
112
|
-
className: "empty",
|
|
113
|
-
colSpan: f.length + +!!_,
|
|
114
|
-
children: D
|
|
115
|
-
}) }), K.map((e, t) => {
|
|
116
|
-
let n = d(e, L * y + t, m), a = B.includes(n);
|
|
117
|
-
return /* @__PURE__ */ u("tr", {
|
|
118
|
-
className: r("row", a && "selected", _ && "selectable"),
|
|
119
|
-
onClick: _ ? (e) => Z(n, e) : void 0,
|
|
120
|
-
children: [_ && /* @__PURE__ */ l("td", {
|
|
121
|
-
className: "td check-col",
|
|
122
|
-
children: /* @__PURE__ */ l(i, {
|
|
123
|
-
checked: a,
|
|
124
|
-
onChange: () => {},
|
|
125
|
-
size: "sm",
|
|
126
|
-
clickEffect: "none"
|
|
127
|
-
})
|
|
128
|
-
}), f.map((n) => /* @__PURE__ */ l("td", {
|
|
129
|
-
className: "td",
|
|
130
|
-
style: { textAlign: n.align },
|
|
131
|
-
children: n.render ? n.render(e[n.key], e, L * y + t) : e[n.key]
|
|
132
|
-
}, n.key))]
|
|
133
|
-
}, n);
|
|
134
|
-
})] })]
|
|
135
|
-
})
|
|
136
|
-
}),
|
|
137
|
-
v && G > 1 && /* @__PURE__ */ l(o, {
|
|
138
|
-
total: W.length,
|
|
139
|
-
page: L + 1,
|
|
140
|
-
pageSize: y,
|
|
141
|
-
onChange: (e) => R(e - 1)
|
|
142
|
-
})
|
|
143
|
-
]
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
//#endregion
|
|
147
|
-
export { f as t };
|
|
148
|
-
|
|
149
|
-
//# sourceMappingURL=MDataTable-ByvNQqNP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MDataTable-ByvNQqNP.js","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [filter, setFilter] = useState('')\n const [page, setPage] = useState(0)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n if (onSortChange) onSortChange(next)\n else setInternalSort(next)\n\n setPage(0)\n }\n\n const filtered = useMemo(() => {\n if (!filterable || !filter.trim()) return data\n\n const query = filter.toLowerCase()\n\n return data.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }, [data, filter, filterable, columns])\n\n const sorted = useMemo(() => {\n if (!activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable])\n\n const totalPages = pagination ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1\n const pageData = pagination ? sorted.slice(page * pageSize, (page + 1) * pageSize) : sorted\n\n const allKeys = pageData.map((row, index) => getRowKey(row, page * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {filterable && (\n <div className=\"toolbar\">\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={filter}\n onChange={(event) => {\n setFilter(event.target.value)\n setPage(0)\n }}\n onClear={() => {\n setFilter('')\n setPage(0)\n }}\n />\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, page * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, page * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination\n total={sorted.length}\n page={page + 1}\n pageSize={pageSize}\n onChange={(nextPage) => setPage(nextPage - 1)}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useKeyboardNav-CkIlAagq.cjs`),n=require(`./MPopover-B4IUb9f0.cjs`);require(`./core-AKWkE8Bx.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);function a(e){return e.props}function o(e){return!!e.type.__dropdownItem}function s(e){return!!e.type.__dropdownGroup}function c(e){let t=[];return r.Children.forEach(e,e=>{(0,r.isValidElement)(e)&&(o(e)?t.push(e):s(e)&&r.Children.forEach(a(e).children,e=>{(0,r.isValidElement)(e)&&o(e)&&t.push(e)}))}),t}function l({trigger:l,placement:u=`bottom-start`,closeOnSelect:d=!0,openOn:f=`click`,onOpenChange:p,className:m,style:h,popoverClassName:g,popoverStyle:_,children:v}){let[y,b]=(0,r.useState)(!1),x=(0,r.useRef)(null),S=(0,r.useRef)(null),C=c(v),w=C.filter(e=>!a(e).disabled).length,T=(0,r.useCallback)(e=>{b(t=>{let n=typeof e==`function`?e(t):e;return p?.(n),n})},[p]),{activeIndex:E,setActiveIndex:D,onKeyDown:O}=t.t({itemCount:w,onSelect:(0,r.useCallback)(e=>{let t=0;for(let n of C){let r=a(n);if(!r.disabled){if(t===e){r.onClick?.();break}t++}}d&&T(!1)},[C,d,T]),onClose:()=>b(!1),isOpen:y}),k=()=>T(e=>!e),A=e=>{(e.key===`ArrowDown`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),T(!0)),y&&O(e)},j=0,M=e=>{if(!(0,r.isValidElement)(e))return e;if(o(e)){let t=a(e),n=t.disabled,i=n?-1:j++;return(0,r.cloneElement)(e,{_active:i===E,_onHover:n?void 0:()=>D(i),_onClick:()=>{n||(t.onClick?.(),d&&T(!1))}})}return s(e)?(0,r.cloneElement)(e,{children:r.Children.map(a(e).children,M)}):e},N=f===`hover`?{onMouseEnter:()=>{S.current&&clearTimeout(S.current),T(!0)},onMouseLeave:()=>{S.current=setTimeout(()=>T(!1),150)}}:{};return(0,i.jsxs)(`div`,{className:e.t(`dropdown menu anchor`,m),style:h,...N,children:[(0,i.jsx)(`div`,{ref:x,onClick:f===`click`?k:void 0,onKeyDown:A,role:`button`,tabIndex:0,className:`dropdown menu trigger`,children:l}),(0,i.jsx)(n.t,{open:y,anchorRef:x,onClose:()=>T(!1),placement:u,className:e.t(`dropdown menu popover`,g),style:_,children:(0,i.jsx)(`div`,{className:`dropdown menu list`,role:`menu`,...N,children:r.Children.map(v,M)})})]})}function u({icon:t,label:n,href:r,to:a,onClick:o,color:s,disabled:c=!1,active:l=!1,component:u,className:d,_active:f,_onHover:p,_onClick:m}){let h=f??l,g=(0,i.jsxs)(i.Fragment,{children:[t&&(0,i.jsx)(`span`,{className:`dropdown menu icon`,children:t}),(0,i.jsx)(`span`,{className:`dropdown menu label`,children:n})]}),_=e.t(`dropdown menu item`,h&&`active`,c&&`disabled`,s,d),v=e=>{if(c){e.preventDefault();return}o?.(),m?.()},y=u??(r||a?`a`:`button`),b=u?{...r?{href:r}:{},...a?{to:a}:{}}:r?{href:r}:a?{href:a}:{};return(0,i.jsx)(y,{className:_,role:`menuitem`,tabIndex:-1,onClick:v,onMouseEnter:p,"aria-disabled":c||void 0,...b,children:g})}u.__dropdownItem=!0;function d({label:e,children:t}){return(0,i.jsxs)(`div`,{className:`dropdown menu group`,role:`group`,children:[(0,i.jsx)(`div`,{className:`dropdown menu group-label`,children:e}),t]})}d.__dropdownGroup=!0;function f({className:t}){return(0,i.jsx)(`div`,{className:e.t(`dropdown menu divider`,t),role:`separator`})}Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
|
|
2
|
-
//# sourceMappingURL=MDropdownMenu-BmfXSc46.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MDropdownMenu-BmfXSc46.cjs","names":[],"sources":["../src/components/overlays/MDropdownMenu/MDropdownMenu.tsx"],"sourcesContent":["import {useState, useRef, useCallback, Children, isValidElement, cloneElement} from 'react'\nimport type * as React from 'react'\nimport {MPopover} from '../../primitives'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport {cn} from '../../../utils/cn'\nimport type {\n MDropdownMenuProps,\n MDropdownItemProps,\n MDropdownGroupProps,\n MDropdownDividerProps,\n} from './MDropdownMenu.types'\nimport './MDropdownMenu.css'\n\ntype AnyProps = Record<string, any>\n\nfunction getProps(el: React.ReactElement): AnyProps {\n return el.props as AnyProps\n}\n\nfunction isItem(child: React.ReactElement): boolean {\n return !!(child.type as any).__dropdownItem\n}\n\nfunction isGroup(child: React.ReactElement): boolean {\n return !!(child.type as any).__dropdownGroup\n}\n\n// Collect all MDropdownItem elements from children (including inside groups).\nfunction collectItems(children: React.ReactNode): React.ReactElement[] {\n const items: React.ReactElement[] = []\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return\n if (isItem(child)) {\n items.push(child)\n } else if (isGroup(child)) {\n Children.forEach(getProps(child).children, (gc: React.ReactNode) => {\n if (isValidElement(gc) && isItem(gc)) {\n items.push(gc)\n }\n })\n }\n })\n return items\n}\n\nexport function MDropdownMenu({\n trigger,\n placement = 'bottom-start',\n closeOnSelect = true,\n openOn = 'click',\n onOpenChange,\n className,\n style,\n popoverClassName,\n popoverStyle,\n children,\n}: MDropdownMenuProps) {\n const [open, setOpen] = useState(false)\n const anchorRef = useRef<HTMLDivElement>(null)\n const hoverTimeout = useRef<ReturnType<typeof setTimeout>>(null)\n\n const items = collectItems(children)\n const enabledCount = items.filter((i) => !getProps(i).disabled).length\n\n const setMenuOpen = useCallback(\n (next: boolean | ((prev: boolean) => boolean)) => {\n setOpen((prev) => {\n const resolved = typeof next === 'function' ? next(prev) : next\n onOpenChange?.(resolved)\n return resolved\n })\n },\n [onOpenChange]\n )\n\n const handleSelect = useCallback(\n (index: number) => {\n let enabledIdx = 0\n for (const item of items) {\n const p = getProps(item)\n if (p.disabled) continue\n if (enabledIdx === index) {\n p.onClick?.()\n break\n }\n enabledIdx++\n }\n if (closeOnSelect) setMenuOpen(false)\n },\n [items, closeOnSelect, setMenuOpen]\n )\n\n const {activeIndex, setActiveIndex, onKeyDown} = useKeyboardNav({\n itemCount: enabledCount,\n onSelect: handleSelect,\n onClose: () => setOpen(false),\n isOpen: open,\n })\n\n const handleTriggerClick = () => setMenuOpen((o) => !o)\n\n const handleTriggerKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n setMenuOpen(true)\n }\n if (open) onKeyDown(e as any)\n }\n\n // Map active index back to flat child rendering with enabled-only tracking.\n let enabledIdx = 0\n const renderChild = (child: React.ReactNode): React.ReactNode => {\n if (!isValidElement(child)) return child\n\n if (isItem(child)) {\n const p = getProps(child)\n const isDisabled = p.disabled\n const idx = isDisabled ? -1 : enabledIdx++\n return cloneElement(child, {\n _active: idx === activeIndex,\n _onHover: isDisabled ? undefined : () => setActiveIndex(idx),\n _onClick: () => {\n if (isDisabled) return\n p.onClick?.()\n if (closeOnSelect) setMenuOpen(false)\n },\n } as AnyProps)\n }\n\n if (isGroup(child)) {\n return cloneElement(child, {\n children: Children.map(getProps(child).children, renderChild),\n } as AnyProps)\n }\n\n return child\n }\n\n const hoverHandlers =\n openOn === 'hover'\n ? {\n onMouseEnter: () => {\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current)\n setMenuOpen(true)\n },\n onMouseLeave: () => {\n hoverTimeout.current = setTimeout(() => setMenuOpen(false), 150)\n },\n }\n : {}\n\n return (\n <div className={cn('dropdown menu anchor', className)} style={style} {...hoverHandlers}>\n <div\n ref={anchorRef}\n onClick={openOn === 'click' ? handleTriggerClick : undefined}\n onKeyDown={handleTriggerKeyDown}\n role=\"button\"\n tabIndex={0}\n className=\"dropdown menu trigger\"\n >\n {trigger}\n </div>\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={() => setMenuOpen(false)}\n placement={placement}\n className={cn('dropdown menu popover', popoverClassName)}\n style={popoverStyle}\n >\n <div className=\"dropdown menu list\" role=\"menu\" {...hoverHandlers}>\n {Children.map(children, renderChild)}\n </div>\n </MPopover>\n </div>\n )\n}\n\nexport function MDropdownItem({\n icon,\n label,\n href,\n to,\n onClick,\n color,\n disabled = false,\n active = false,\n component,\n className,\n _active,\n _onHover,\n _onClick,\n}: MDropdownItemProps & {_active?: boolean; _onHover?: () => void; _onClick?: () => void}) {\n const isHighlighted = _active ?? active\n\n const content = (\n <>\n {icon && <span className=\"dropdown menu icon\">{icon}</span>}\n <span className=\"dropdown menu label\">{label}</span>\n </>\n )\n\n const cls = cn('dropdown menu item', isHighlighted && 'active', disabled && 'disabled', color, className)\n\n const handleClick = (e: React.MouseEvent) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n onClick?.()\n _onClick?.()\n }\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? {...(href ? {href} : {}), ...(to ? {to} : {})} : href ? {href} : to ? {href: to} : {}\n\n return (\n <Tag\n className={cls}\n role=\"menuitem\"\n tabIndex={-1}\n onClick={handleClick}\n onMouseEnter={_onHover}\n aria-disabled={disabled || undefined}\n {...linkProps}\n >\n {content}\n </Tag>\n )\n}\n;(MDropdownItem as any).__dropdownItem = true\n\nexport function MDropdownGroup({label, children}: MDropdownGroupProps) {\n return (\n <div className=\"dropdown menu group\" role=\"group\">\n <div className=\"dropdown menu group-label\">{label}</div>\n {children}\n </div>\n )\n}\n;(MDropdownGroup as any).__dropdownGroup = true\n\nexport function MDropdownDivider({className}: MDropdownDividerProps) {\n return <div className={cn('dropdown menu divider', className)} role=\"separator\" />\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MDropdownMenu-D79Cm5aS.js","names":[],"sources":["../src/components/overlays/MDropdownMenu/MDropdownMenu.tsx"],"sourcesContent":["import {useState, useRef, useCallback, Children, isValidElement, cloneElement} from 'react'\nimport type * as React from 'react'\nimport {MPopover} from '../../primitives'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport {cn} from '../../../utils/cn'\nimport type {\n MDropdownMenuProps,\n MDropdownItemProps,\n MDropdownGroupProps,\n MDropdownDividerProps,\n} from './MDropdownMenu.types'\nimport './MDropdownMenu.css'\n\ntype AnyProps = Record<string, any>\n\nfunction getProps(el: React.ReactElement): AnyProps {\n return el.props as AnyProps\n}\n\nfunction isItem(child: React.ReactElement): boolean {\n return !!(child.type as any).__dropdownItem\n}\n\nfunction isGroup(child: React.ReactElement): boolean {\n return !!(child.type as any).__dropdownGroup\n}\n\n// Collect all MDropdownItem elements from children (including inside groups).\nfunction collectItems(children: React.ReactNode): React.ReactElement[] {\n const items: React.ReactElement[] = []\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return\n if (isItem(child)) {\n items.push(child)\n } else if (isGroup(child)) {\n Children.forEach(getProps(child).children, (gc: React.ReactNode) => {\n if (isValidElement(gc) && isItem(gc)) {\n items.push(gc)\n }\n })\n }\n })\n return items\n}\n\nexport function MDropdownMenu({\n trigger,\n placement = 'bottom-start',\n closeOnSelect = true,\n openOn = 'click',\n onOpenChange,\n className,\n style,\n popoverClassName,\n popoverStyle,\n children,\n}: MDropdownMenuProps) {\n const [open, setOpen] = useState(false)\n const anchorRef = useRef<HTMLDivElement>(null)\n const hoverTimeout = useRef<ReturnType<typeof setTimeout>>(null)\n\n const items = collectItems(children)\n const enabledCount = items.filter((i) => !getProps(i).disabled).length\n\n const setMenuOpen = useCallback(\n (next: boolean | ((prev: boolean) => boolean)) => {\n setOpen((prev) => {\n const resolved = typeof next === 'function' ? next(prev) : next\n onOpenChange?.(resolved)\n return resolved\n })\n },\n [onOpenChange]\n )\n\n const handleSelect = useCallback(\n (index: number) => {\n let enabledIdx = 0\n for (const item of items) {\n const p = getProps(item)\n if (p.disabled) continue\n if (enabledIdx === index) {\n p.onClick?.()\n break\n }\n enabledIdx++\n }\n if (closeOnSelect) setMenuOpen(false)\n },\n [items, closeOnSelect, setMenuOpen]\n )\n\n const {activeIndex, setActiveIndex, onKeyDown} = useKeyboardNav({\n itemCount: enabledCount,\n onSelect: handleSelect,\n onClose: () => setOpen(false),\n isOpen: open,\n })\n\n const handleTriggerClick = () => setMenuOpen((o) => !o)\n\n const handleTriggerKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n setMenuOpen(true)\n }\n if (open) onKeyDown(e as any)\n }\n\n // Map active index back to flat child rendering with enabled-only tracking.\n let enabledIdx = 0\n const renderChild = (child: React.ReactNode): React.ReactNode => {\n if (!isValidElement(child)) return child\n\n if (isItem(child)) {\n const p = getProps(child)\n const isDisabled = p.disabled\n const idx = isDisabled ? -1 : enabledIdx++\n return cloneElement(child, {\n _active: idx === activeIndex,\n _onHover: isDisabled ? undefined : () => setActiveIndex(idx),\n _onClick: () => {\n if (isDisabled) return\n p.onClick?.()\n if (closeOnSelect) setMenuOpen(false)\n },\n } as AnyProps)\n }\n\n if (isGroup(child)) {\n return cloneElement(child, {\n children: Children.map(getProps(child).children, renderChild),\n } as AnyProps)\n }\n\n return child\n }\n\n const hoverHandlers =\n openOn === 'hover'\n ? {\n onMouseEnter: () => {\n if (hoverTimeout.current) clearTimeout(hoverTimeout.current)\n setMenuOpen(true)\n },\n onMouseLeave: () => {\n hoverTimeout.current = setTimeout(() => setMenuOpen(false), 150)\n },\n }\n : {}\n\n return (\n <div className={cn('dropdown menu anchor', className)} style={style} {...hoverHandlers}>\n <div\n ref={anchorRef}\n onClick={openOn === 'click' ? handleTriggerClick : undefined}\n onKeyDown={handleTriggerKeyDown}\n role=\"button\"\n tabIndex={0}\n className=\"dropdown menu trigger\"\n >\n {trigger}\n </div>\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={() => setMenuOpen(false)}\n placement={placement}\n className={cn('dropdown menu popover', popoverClassName)}\n style={popoverStyle}\n >\n <div className=\"dropdown menu list\" role=\"menu\" {...hoverHandlers}>\n {Children.map(children, renderChild)}\n </div>\n </MPopover>\n </div>\n )\n}\n\nexport function MDropdownItem({\n icon,\n label,\n href,\n to,\n onClick,\n color,\n disabled = false,\n active = false,\n component,\n className,\n _active,\n _onHover,\n _onClick,\n}: MDropdownItemProps & {_active?: boolean; _onHover?: () => void; _onClick?: () => void}) {\n const isHighlighted = _active ?? active\n\n const content = (\n <>\n {icon && <span className=\"dropdown menu icon\">{icon}</span>}\n <span className=\"dropdown menu label\">{label}</span>\n </>\n )\n\n const cls = cn('dropdown menu item', isHighlighted && 'active', disabled && 'disabled', color, className)\n\n const handleClick = (e: React.MouseEvent) => {\n if (disabled) {\n e.preventDefault()\n return\n }\n onClick?.()\n _onClick?.()\n }\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? {...(href ? {href} : {}), ...(to ? {to} : {})} : href ? {href} : to ? {href: to} : {}\n\n return (\n <Tag\n className={cls}\n role=\"menuitem\"\n tabIndex={-1}\n onClick={handleClick}\n onMouseEnter={_onHover}\n aria-disabled={disabled || undefined}\n {...linkProps}\n >\n {content}\n </Tag>\n )\n}\n;(MDropdownItem as any).__dropdownItem = true\n\nexport function MDropdownGroup({label, children}: MDropdownGroupProps) {\n return (\n <div className=\"dropdown menu group\" role=\"group\">\n <div className=\"dropdown menu group-label\">{label}</div>\n {children}\n </div>\n )\n}\n;(MDropdownGroup as any).__dropdownGroup = true\n\nexport function MDropdownDivider({className}: MDropdownDividerProps) {\n return <div className={cn('dropdown menu divider', className)} role=\"separator\" />\n}\n"],"mappings":"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"}
|
package/dist/MImage-L_zgfWRY.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./theme-CgS-bND3.cjs`),t=require(`./icons-DWMgDKgt.cjs`),n=require(`./cn-CU5TNITO.cjs`),r=require(`./useInteractionEffect-D1ZdNbKU.cjs`),i=require(`./MPortal-Bi24xTGW.cjs`),a=require(`./MButton-DrkVdRDy.cjs`),o=require(`./MBadge-B4x-Lx7e.cjs`),s=require(`./MSkeleton-5j1h9s95.cjs`);require(`./core-AKWkE8Bx.cjs`);let c=require(`react`),l=require(`react/jsx-runtime`);function u({open:e,items:r,activeIndex:s,onClose:u,onActiveIndexChange:d}){let f=r[s],p=(0,c.useRef)(null),m=s>0,h=s<r.length-1;if((0,c.useEffect)(()=>{if(!e)return;let t=e=>{if(e.key===`Escape`){u();return}e.key===`ArrowLeft`&&m&&d(s-1),e.key===`ArrowRight`&&h&&d(s+1)};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[s,h,m,d,u,e]),(0,c.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]),!e||!f)return null;let g=e=>{let t=e.target;t&&p.current&&!p.current.contains(t)&&u()},_=f.alt||f.caption||`Image preview`;return(0,l.jsx)(i.t,{children:(0,l.jsx)(`div`,{className:n.t(`mineral-backdrop`,`media-lightbox-backdrop`),onMouseDown:g,children:(0,l.jsx)(`div`,{className:`media-lightbox-shell`,role:`dialog`,"aria-modal":`true`,"aria-label":_,children:(0,l.jsx)(`div`,{className:`media-lightbox-stage`,children:(0,l.jsxs)(`div`,{ref:p,className:`media-lightbox-frame`,children:[(0,l.jsxs)(`div`,{className:`media-lightbox-topbar`,children:[(0,l.jsx)(o.t,{color:`dark`,size:`sm`,rounded:!0,className:`media-lightbox-counter`,children:r.length>1?`${s+1} / ${r.length}`:`Preview`}),(0,l.jsx)(a.t,{type:`button`,variant:`ghost`,color:`primary`,size:`lg`,shape:`circle`,iconOnly:!0,className:`media-lightbox-action`,"aria-label":`Close preview`,onClick:u,children:(0,l.jsx)(t.Li,{})})]}),(0,l.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":`Previous image`,disabled:r.length<=1||!m,onClick:()=>m&&d(s-1),children:(0,l.jsx)(t.Fi,{})}),(0,l.jsx)(`img`,{className:`media-lightbox-image`,src:f.src,alt:f.alt||``}),(0,l.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":`Next image`,disabled:r.length<=1||!h,onClick:()=>h&&d(s+1),children:(0,l.jsx)(t.Pi,{})}),f.caption||f.alt?(0,l.jsx)(o.t,{color:`dark`,size:`sm`,rounded:!0,className:`media-lightbox-caption`,children:f.caption||f.alt}):null]})})})})})}var d=new Map;function f(e,t,n){let r=d.get(e);return r||(r=new Map,d.set(e,r)),r.set(t,{id:t,...n}),()=>{let n=d.get(e);n&&(n.delete(t),n.size===0&&d.delete(e))}}function p(e){return Array.from(d.get(e)?.values()??[])}function m(e){return e===`ripple`||e===`zoom-ripple`}function h(e){return e===`zoom`||e===`zoom-ripple`}function g(e){return e===`dim`}function _(e){return e===`zoom`||e===`zoom-dim`}function v(e){return e===`dim`||e===`zoom-dim`}var y={"1:1":`1 / 1`,"4:3":`4 / 3`,"16:9":`16 / 9`,"21:9":`21 / 9`};function b({src:t,fit:i=`cover`,ratio:a=`auto`,hidden:o,rounded:d=!1,bordered:m=!1,shadow:h=!1,preview:g=!1,previewGroup:b,hoverEffect:x=`none`,clickEffect:S=`none`,fallback:C,skeleton:w=!1,className:T,style:E,alt:D,onError:O,...k}){let[A,j]=(0,c.useState)(!1),[M,N]=(0,c.useState)(!1),[P,F]=(0,c.useState)([]),[I,L]=(0,c.useState)(0),R=(0,c.useId)(),{effectClassName:z,effectLayer:B,handlePointerDown:V}=r.t({effect:w?`none`:S}),H=e=>{C&&!A&&(j(!0),e.currentTarget.src=C),O?.(e)},U=a!==`auto`&&!!y[a],W=U?{aspectRatio:y[a],...E}:E,G=A&&C?C:t,K=(0,c.useMemo)(()=>({src:G||``,alt:D??``,caption:typeof k.title==`string`?k.title:void 0}),[D,G,k.title]);if((0,c.useEffect)(()=>{if(!(!g||!b||!G))return f(b,R,K)},[g,b,R,K,G]),w)return(0,l.jsx)(s.t,{variant:`rectangle`,animate:`pulse`,className:n.t(`image-skeleton`,d&&`rounded`,m&&`bordered`,T),style:W,"aria-label":`Loading`,...e.r(o)});let q=()=>{if(!(!g||!G)){if(b){let e=p(b),t=e.findIndex(e=>e.id===R);if(e.length>0&&t>=0){F(e.map(({id:e,...t})=>t)),L(t),N(!0);return}}F([K]),L(0),N(!0)}},J=n.t(`image`,i,!B&&d&&`rounded`,!B&&m&&`bordered`,!B&&h&&`shadow`),Y=U||!!B||g||x!==`none`,X=n.t(`image-wrap`,U&&`has-ratio`,d&&`rounded`,m&&`bordered`,h&&`shadow`,g&&`preview`,_(x)&&`effect-zoom`,v(x)&&`effect-dim`,z,T),Z=(0,l.jsx)(`img`,{className:J,onError:H,src:G,...k,alt:D??``});return Y?(0,l.jsxs)(l.Fragment,{children:[g?(0,l.jsxs)(`button`,{type:`button`,className:n.t(X,`image-button`),"aria-label":`Preview ${D||`image`}`,onClick:q,onPointerDown:B?V:void 0,disabled:!G,...e.r(o),style:W,children:[B,Z]}):(0,l.jsxs)(`span`,{className:X,onPointerDown:B?V:void 0,...e.r(o),style:W,children:[B,Z]}),(0,l.jsx)(u,{open:M,items:P,activeIndex:I,onActiveIndexChange:L,onClose:()=>N(!1)})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`img`,{className:n.t(J,T),style:W,onError:H,src:G,...e.r(o),...k,alt:D??``}),(0,l.jsx)(u,{open:M,items:P,activeIndex:I,onActiveIndexChange:L,onClose:()=>N(!1)})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
|
|
2
|
-
//# sourceMappingURL=MImage-L_zgfWRY.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MImage-L_zgfWRY.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"],"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 './MMediaLightbox.css'\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({\n open,\n items,\n activeIndex,\n onClose,\n onActiveIndexChange,\n}: MMediaLightboxProps) {\n const currentItem = items[activeIndex]\n const frameRef = useRef<HTMLDivElement | null>(null)\n const canGoPrev = activeIndex > 0\n const canGoNext = activeIndex < items.length - 1\n\n useEffect(() => {\n if (!open) {\n return\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onClose()\n return\n }\n\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 || 'Image preview'\n\n return (\n <MPortal>\n <div\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=\"sm\" rounded className=\"media-lightbox-counter\">\n {items.length > 1 ? `${activeIndex + 1} / ${items.length}` : 'Preview'}\n </MBadge>\n <MButton\n type=\"button\"\n variant=\"ghost\"\n color=\"primary\"\n size=\"lg\"\n shape=\"circle\"\n iconOnly\n className=\"media-lightbox-action\"\n aria-label=\"Close preview\"\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=\"Previous image\"\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=\"Next image\"\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 {MImageProps} 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'\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\n// Render a styled image with aspect ratio, fit, and optional fallback.\nexport function MImage({\n src,\n fit = 'cover',\n ratio = 'auto',\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 [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 hasFixedRatio = ratio !== 'auto' && !!RATIO_MAP[ratio]\n const ratioStyle = hasFixedRatio ? {aspectRatio: RATIO_MAP[ratio], ...style} : style\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=\"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 || Boolean(effectLayer) || preview || hoverEffect !== 'none'\n const wrapperClassName = cn(\n 'image-wrap',\n hasFixedRatio && 'has-ratio',\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={`Preview ${alt || '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"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MImage-gwFphZk2.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"],"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 './MMediaLightbox.css'\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({\n open,\n items,\n activeIndex,\n onClose,\n onActiveIndexChange,\n}: MMediaLightboxProps) {\n const currentItem = items[activeIndex]\n const frameRef = useRef<HTMLDivElement | null>(null)\n const canGoPrev = activeIndex > 0\n const canGoNext = activeIndex < items.length - 1\n\n useEffect(() => {\n if (!open) {\n return\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onClose()\n return\n }\n\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 || 'Image preview'\n\n return (\n <MPortal>\n <div\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=\"sm\" rounded className=\"media-lightbox-counter\">\n {items.length > 1 ? `${activeIndex + 1} / ${items.length}` : 'Preview'}\n </MBadge>\n <MButton\n type=\"button\"\n variant=\"ghost\"\n color=\"primary\"\n size=\"lg\"\n shape=\"circle\"\n iconOnly\n className=\"media-lightbox-action\"\n aria-label=\"Close preview\"\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=\"Previous image\"\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=\"Next image\"\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 {MImageProps} 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'\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\n// Render a styled image with aspect ratio, fit, and optional fallback.\nexport function MImage({\n src,\n fit = 'cover',\n ratio = 'auto',\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 [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 hasFixedRatio = ratio !== 'auto' && !!RATIO_MAP[ratio]\n const ratioStyle = hasFixedRatio ? {aspectRatio: RATIO_MAP[ratio], ...style} : style\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=\"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 || Boolean(effectLayer) || preview || hoverEffect !== 'none'\n const wrapperClassName = cn(\n 'image-wrap',\n hasFixedRatio && 'has-ratio',\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={`Preview ${alt || '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"],"mappings":"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"}
|
package/dist/cards-BiYdorB0.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./icons-DWMgDKgt.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./creditCards-ljs044xt.cjs`),r=require(`./MPopover-B4IUb9f0.cjs`),i=require(`./MInline-CHrh3PHH.cjs`),a=require(`./MText-DEJddMB5.cjs`),o=require(`./MLink-CY45UR_j.cjs`),s=require(`./MButton-DrkVdRDy.cjs`),c=require(`./MCheckbox-C40ESQRe.cjs`),l=require(`./MBadge-B4x-Lx7e.cjs`),u=require(`./MDropdownMenu-BmfXSc46.cjs`),d=require(`./MInputCVC-5NkYSxV8.cjs`),f=require(`./MQrCode-ByfmG33y.cjs`),p=require(`./MAvatar-BVJh6kgW.cjs`),m=require(`./MInputSearch-DfoenJIm.cjs`),h=require(`./MSparkline-B6qpt5WM.cjs`);require(`./core-AKWkE8Bx.cjs`);let g=require(`react`),_=require(`react/jsx-runtime`);function v(e){let t=e.replace(/\D/g,``);return t.length<=4?t:`\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 ${t.slice(-4)}`}function y({holder:e,number:r,expiry:i,brand:a,brandIcon:o,balance:s,balanceLabel:c=`Current balance`,color:l,className:u,...d}){let f=n.n(r),p=a??f.brand,m=n.t.find(e=>e.brand===p)??f,h=v(r),g=m.iconLabel;return(0,_.jsxs)(`div`,{className:t.t(`card-payment`,l||`primary`,u),...d,children:[s!==void 0&&(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`p`,{className:`cp-balance-label`,children:c}),(0,_.jsx)(`p`,{className:`cp-balance`,children:s})]}),(0,_.jsxs)(`div`,{className:`cp-row`,children:[(0,_.jsx)(`span`,{className:t.t(`cp-brand`,!o&&p),children:o??g}),(0,_.jsx)(`span`,{className:`cp-number`,children:h})]}),(0,_.jsxs)(`div`,{className:`cp-details`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`p`,{className:`cp-field-label`,children:`MCard holder`}),(0,_.jsx)(`p`,{className:`cp-field-value`,children:e})]}),(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`p`,{className:`cp-field-label`,children:`Expiration date`}),(0,_.jsx)(`p`,{className:`cp-field-value`,children:i})]})]})]})}function b(e){return n.t.find(t=>t.brand===e)?.iconLabel??`CARD`}function x({title:n=`Your payment methods`,actionLabel:r=`Change`,actionHref:s=`#`,onAction:c,brand:u=`visa`,brandIcon:f,last4:p,badgeLabel:m,summary:h,helperText:g=`All fields are required, unless stated otherwise.`,expiryLabel:v=`Expiration date`,cvcLabel:y=`Security code`,expiryProps:x,cvcProps:S,color:C,className:w,...T}){let E=x?.value??x?.defaultValue,D=m===void 0?`Default`:m,O=E?`Credit card - Expiration date ${String(E).replace(`/`,`.`)}`:`Credit card`,k=h===void 0?O:h,A=b(u),j={clearable:!0,...x};return(0,_.jsxs)(`div`,{className:t.t(`card-payment-method`,C||`primary`,w),...T,children:[(0,_.jsxs)(`div`,{className:`cpm-header`,children:[(0,_.jsx)(`h3`,{className:`cpm-title`,children:n}),(0,_.jsxs)(o.t,{href:s,tone:`accent`,underline:`none`,className:`cpm-action`,onClick:e=>{c&&(e.preventDefault(),c())},children:[r,(0,_.jsx)(e.Ai,{})]})]}),(0,_.jsxs)(`div`,{className:`cpm-surface`,children:[(0,_.jsxs)(`div`,{className:`cpm-method`,children:[(0,_.jsxs)(i.t,{align:`center`,className:`cpm-method-row`,children:[(0,_.jsx)(`span`,{className:t.t(`cpm-brand`,!f&&u),children:f??A}),(0,_.jsx)(`span`,{className:`cpm-last4`,children:`\u2022\u2022\u2022\u2022 ${p}`}),D&&(0,_.jsx)(l.t,{color:`info`,children:D})]}),k&&(0,_.jsx)(a.t,{tone:`muted`,className:`cpm-summary`,children:k})]}),g&&(0,_.jsx)(a.t,{tone:`muted`,size:`sm`,className:`cpm-helper`,children:g}),(0,_.jsxs)(`div`,{className:`cpm-fields`,children:[(0,_.jsx)(d.n,{label:v,placeholder:`MM/YYYY`,fullWidth:!0,...j}),(0,_.jsx)(d.t,{label:y,placeholder:`123`,fullWidth:!0,...S})]})]})]})}var S={apple:{label:`Apple`,icon:e.i,colorIcon:e.r,rgb:`24, 24, 27`},discord:{label:`Discord`,icon:e.M,colorIcon:e.j,rgb:`88, 101, 242`},facebook:{label:`Facebook`,icon:e.P,colorIcon:e.N,rgb:`24, 119, 242`},figma:{label:`Figma`,icon:e.I,colorIcon:e.F,rgb:`162, 89, 255`},github:{label:`GitHub`,icon:e.R,colorIcon:e.L,rgb:`24, 23, 23`},google:{label:`Google`,icon:e.B,colorIcon:e.z,rgb:`66, 133, 244`},instagram:{label:`Instagram`,icon:e.H,colorIcon:e.V,rgb:`225, 48, 108`},linkedin:{label:`LinkedIn`,icon:e.W,colorIcon:e.U,rgb:`10, 102, 194`},pinterest:{label:`Pinterest`,icon:e.v,colorIcon:e._,rgb:`230, 0, 35`},slack:{label:`Slack`,icon:e.K,colorIcon:e.G,rgb:`74, 21, 75`},spotify:{label:`Spotify`,icon:e.b,colorIcon:e.y,rgb:`30, 215, 96`},tumblr:{label:`Tumblr`,icon:e.S,colorIcon:e.x,rgb:`0, 25, 53`},vimeo:{label:`Vimeo`,icon:e.E,colorIcon:e.T,rgb:`26, 183, 234`},vk:{label:`VK`,icon:e.A,colorIcon:e.k,rgb:`0, 119, 255`},x:{label:`X`,icon:e.J,colorIcon:e.q,rgb:`17, 17, 17`},youtube:{label:`YouTube`,icon:e.X,colorIcon:e.Y,rgb:`255, 0, 0`}};function C(e){let t=e.trim().toLowerCase().replace(/[\s._-]+/g,``);return t===`twitter`?`x`:t===`vkontakte`?`vk`:t}function w(e){return S[C(e)]?.label??e}function T(e,t=!1){let n=S[C(e)];return n?t?n.colorIcon:n.icon:null}function E(e){return e?[e.street,[e.zip,e.city].filter(Boolean).join(` `),e.country].filter(Boolean).join(`, `):null}function D({variant:n=`user`,name:r,title:i,avatar:a,address:o,contact:s,socials:c,online:l,lastActive:u,qrCode:d,qrValue:m,qrStatus:h,qrStatusLabel:g,color:v=`primary`,className:y,...b}){let x=E(o);return(0,_.jsxs)(`div`,{className:t.t(`card-business`,n,`color-${v}`,y),...b,children:[(0,_.jsxs)(`div`,{className:`cb-header`,children:[(0,_.jsx)(`div`,{className:`cb-avatar-wrap`,children:(0,_.jsx)(p.t,{src:a,alt:r,name:r,size:56,shape:n===`company`?`rounded`:`circle`,color:v,badge:l===void 0?void 0:!0,badgeColor:l===void 0?void 0:l?`success`:`error`,badgePulsing:!!l,className:t.t(`cb-avatar`,n)})}),(0,_.jsxs)(`div`,{className:`cb-info`,children:[(0,_.jsx)(`h3`,{className:`cb-name`,children:r}),i&&(0,_.jsx)(`p`,{className:`cb-title`,children:i}),u&&(0,_.jsx)(`p`,{className:`cb-last-active`,children:u})]}),(m||d)&&(0,_.jsx)(`div`,{className:`cb-qr`,children:m?(0,_.jsx)(f.t,{value:m,size:56,padding:3,status:h,statusLabel:g,className:`cb-qr-code`}):(0,_.jsx)(`img`,{src:d,alt:`QR`,className:`cb-qr-img`})})]}),(s||x)&&(0,_.jsxs)(`div`,{className:`cb-details`,children:[s?.email&&(0,_.jsxs)(`div`,{className:`cb-detail`,children:[(0,_.jsx)(`span`,{className:`cb-detail-icon`,children:(0,_.jsx)(e.Si,{})}),(0,_.jsx)(`a`,{href:`mailto:${s.email}`,className:`cb-detail-value`,children:s.email})]}),s?.phone&&(0,_.jsxs)(`div`,{className:`cb-detail`,children:[(0,_.jsx)(`span`,{className:`cb-detail-icon`,children:(0,_.jsx)(e.bi,{})}),(0,_.jsx)(`a`,{href:`tel:${s.phone}`,className:`cb-detail-value`,children:s.phone})]}),s?.website&&(0,_.jsxs)(`div`,{className:`cb-detail`,children:[(0,_.jsx)(`span`,{className:`cb-detail-icon`,children:(0,_.jsx)(e.gi,{})}),(0,_.jsx)(`a`,{href:s.website,target:`_blank`,rel:`noopener noreferrer`,className:`cb-detail-value`,children:s.website.replace(/^https?:\/\//,``)})]}),x&&(0,_.jsxs)(`div`,{className:`cb-detail`,children:[(0,_.jsx)(`span`,{className:`cb-detail-icon`,children:(0,_.jsx)(e.hi,{})}),(0,_.jsx)(`span`,{className:`cb-detail-value`,children:x})]})]}),c&&c.length>0&&(0,_.jsx)(`div`,{className:`cb-socials`,children:c.map(e=>(()=>{let t=T(e.platform,!0);return(0,_.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`cb-social`,title:w(e.platform),"aria-label":w(e.platform),children:e.icon??(t?(0,_.jsx)(t,{}):(0,_.jsx)(`span`,{className:`cb-social-text`,children:e.platform}))},e.platform)})())})]})}function O({variant:n,title:r,description:i,price:a,currency:o=`PLN`,duration:c,available:d,image:m,gallery:h,galleryAutoPlay:v=!1,rating:y,reviewCount:b,favorite:x,onFavorite:S,menuItems:C,onAddToCart:w,actionLabel:T,icon:E,color:D=`primary`,leader:O,participants:k,maxParticipants:A,quantity:j,onQuantityChange:M,date:N,location:P,status:F,value:I,trend:L,className:R,...z}){let[B,V]=(0,g.useState)(0),[H,U]=(0,g.useState)(!1),[W,G]=(0,g.useState)(1),K=j??W,q=h&&h.length>0?h:m?[m]:[];(0,g.useEffect)(()=>{B>=q.length&&V(0)},[B,q.length]),(0,g.useEffect)(()=>{if(!H)return;let e=window.setTimeout(()=>{U(!1)},220);return()=>window.clearTimeout(e)},[B,H]);function J(e){e===B||e<0||e>=q.length||(q.length>1&&U(!0),V(e))}(0,g.useEffect)(()=>{if(!v||q.length<=1)return;let e=window.setInterval(()=>{U(!0),V(e=>(e+1)%q.length)},3500);return()=>window.clearInterval(e)},[v,q.length]);function Y(e){let t=Math.max(1,e);M?M(t):G(t)}let X=d===!0?`Available`:d===!1?`Unavailable`:typeof d==`number`?`${d} spots`:null,Z=N?N instanceof Date?N:new Date(N):null,Q=Z?Z.getDate():null,ee=Z?Z.toLocaleString(`en`,{month:`short`}).toUpperCase():null,$=L===void 0?null:L>0?`up`:L<0?`down`:`neutral`;return n===`widget`?(0,_.jsx)(`div`,{className:t.t(`card-service`,`widget`,`color-${D}`,R),...z,children:(0,_.jsxs)(`div`,{className:`cs-widget`,children:[E&&(0,_.jsx)(`span`,{className:`cs-widget-icon`,children:E}),(0,_.jsxs)(`div`,{className:`cs-widget-content`,children:[(0,_.jsx)(`span`,{className:`cs-widget-label`,children:r}),(0,_.jsx)(`span`,{className:`cs-widget-value`,children:I}),L!==void 0&&(0,_.jsxs)(`span`,{className:t.t(`cs-widget-trend`,$),children:[$===`up`&&(0,_.jsx)(e.ki,{size:14}),$===`down`&&(0,_.jsx)(e.Oi,{size:14}),(0,_.jsxs)(`span`,{children:[L>0?`+`:``,L,`%`]})]})]})]})}):(0,_.jsxs)(`div`,{className:t.t(`card-service`,n,`color-${D}`,R),...z,children:[q.length>0&&(0,_.jsxs)(`div`,{className:`cs-gallery`,children:[(0,_.jsx)(`img`,{src:q[B],alt:r,className:t.t(`cs-image`,H&&`is-transitioning`)}),q.length>1&&(0,_.jsx)(`div`,{className:`cs-gallery-dots`,children:q.map((e,n)=>(0,_.jsx)(`button`,{type:`button`,className:t.t(`cs-dot`,n===B&&`active`),onClick:()=>J(n),"aria-label":`Image ${n+1}`},n))}),(S||C&&C.length>0)&&(0,_.jsxs)(`div`,{className:`cs-gallery-actions`,children:[C&&C.length>0&&(0,_.jsx)(u.i,{className:`cs-menu-wrap`,trigger:(0,_.jsx)(s.t,{variant:`ghost`,iconOnly:!0,shape:`circle`,"aria-label":`More options`,className:`cs-overlay-btn`,children:(0,_.jsx)(e.sn,{})}),placement:`bottom-end`,children:C.map((e,t)=>(0,_.jsx)(u.r,{icon:e.icon,color:e.danger?`error`:void 0,label:e.label,onClick:e.onClick},t))}),S&&(0,_.jsx)(s.t,{variant:`ghost`,iconOnly:!0,shape:`circle`,onClick:S,"aria-label":x?`Remove from favorites`:`Add to favorites`,className:t.t(`cs-overlay-btn`,x&&`cs-fav-active`),children:x?(0,_.jsx)(e.pn,{}):(0,_.jsx)(e.mn,{})})]})]}),(0,_.jsxs)(`div`,{className:`cs-body`,children:[n===`event`&&Z&&(0,_.jsxs)(`div`,{className:`cs-event-header`,children:[(0,_.jsxs)(`div`,{className:`cs-date-block`,children:[(0,_.jsx)(`span`,{className:`cs-date-day`,children:Q}),(0,_.jsx)(`span`,{className:`cs-date-month`,children:ee})]}),(0,_.jsxs)(`div`,{className:`cs-event-info`,children:[(0,_.jsx)(`h3`,{className:`cs-title`,children:r}),i&&(0,_.jsx)(`p`,{className:`cs-desc`,children:i})]})]}),n!==`event`&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(`div`,{className:`cs-top`,children:[E&&(0,_.jsx)(`span`,{className:`cs-icon`,children:E}),(0,_.jsx)(`h3`,{className:`cs-title`,children:r})]}),i&&(0,_.jsx)(`p`,{className:`cs-desc`,children:i})]}),n===`event`&&!Z&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(`div`,{className:`cs-top`,children:[E&&(0,_.jsx)(`span`,{className:`cs-icon`,children:E}),(0,_.jsx)(`h3`,{className:`cs-title`,children:r})]}),i&&(0,_.jsx)(`p`,{className:`cs-desc`,children:i})]}),y!==void 0&&(0,_.jsxs)(`div`,{className:`cs-rating`,children:[(0,_.jsx)(f.n,{value:Math.round(y),size:`sm`,color:`warning`,readOnly:!0,className:`cs-stars`}),(0,_.jsx)(`span`,{className:`cs-rating-value`,children:y.toFixed(1)}),b!==void 0&&(0,_.jsxs)(`span`,{className:`cs-review-count`,children:[`(`,b,`)`]})]}),O&&(0,_.jsxs)(`div`,{className:`cs-leader`,children:[(0,_.jsx)(p.t,{src:O.avatar,name:O.name,size:28,color:D}),(0,_.jsx)(`span`,{className:`cs-leader-name`,children:O.name})]}),n===`course`&&k&&(0,_.jsxs)(`div`,{className:`cs-participants`,children:[(0,_.jsx)(`div`,{className:`cs-participants-avatars`,children:k.slice(0,4).map((e,t)=>(0,_.jsx)(p.t,{src:e.avatar,name:e.name,size:28,color:D,className:`cs-participant-avatar`},`${e.name}-${t}`))}),A&&(0,_.jsxs)(`span`,{className:`cs-spots`,children:[k.length,`/`,A]})]}),(0,_.jsxs)(`div`,{className:`cs-meta`,children:[n===`event`&&P&&(0,_.jsx)(l.t,{size:`xs`,color:D,children:P}),c&&(0,_.jsx)(l.t,{size:`xs`,color:D,icon:(0,_.jsx)(e.wi,{}),children:c}),n===`event`&&F&&(0,_.jsx)(l.t,{size:`xs`,color:F.toLowerCase()===`sold out`?`error`:D,children:F}),X&&n!==`event`&&(0,_.jsx)(l.t,{size:`xs`,color:d===!1?`error`:D,children:X})]})]}),(0,_.jsxs)(`div`,{className:`cs-footer`,children:[a!==void 0&&(0,_.jsxs)(`span`,{className:`cs-price`,children:[typeof a==`number`?a.toFixed(2):a,` `,(0,_.jsx)(`span`,{className:`cs-currency`,children:o})]}),(0,_.jsxs)(`div`,{className:`cs-actions`,children:[n===`product`&&w&&(0,_.jsxs)(`div`,{className:`cs-qty`,children:[(0,_.jsx)(s.t,{variant:`ghost`,iconOnly:!0,size:`sm`,onClick:()=>Y(K-1),"aria-label":`Decrease`,className:`cs-qty-btn`,children:(0,_.jsx)(e.yr,{})}),(0,_.jsx)(`span`,{className:`cs-qty-value`,children:K}),(0,_.jsx)(s.t,{variant:`ghost`,iconOnly:!0,size:`sm`,onClick:()=>Y(K+1),"aria-label":`Increase`,className:`cs-qty-btn`,children:(0,_.jsx)(e.br,{})})]}),w&&(0,_.jsx)(s.t,{variant:`filled`,size:`sm`,color:D,onClick:()=>w(K),disabled:d===!1,className:`cs-cart-btn`,children:T??(n===`event`?`Register`:`Add to cart`)})]})]})]})}function k(e){let{onAction:t,actionLabel:n=`Book now`,...r}=e;return(0,_.jsx)(O,{variant:`service`,onAddToCart:t?()=>t():void 0,actionLabel:n,...r})}function A(e){let{onAction:t,actionLabel:n=`Join course`,...r}=e;return(0,_.jsx)(O,{variant:`course`,onAddToCart:t?()=>t():void 0,actionLabel:n,...r})}function j(e){let{addToCartLabel:t=`Add to cart`,...n}=e;return(0,_.jsx)(O,{variant:`product`,actionLabel:t,...n})}function M(e){let{onRegister:t,registerLabel:n=`Register`,...r}=e;return(0,_.jsx)(O,{variant:`event`,onAddToCart:t?()=>t():void 0,actionLabel:n,...r})}function N(e,t){return t||(typeof e!=`number`||e===0?`neutral`:e>0?`up`:`down`)}function P(e){return typeof e==`number`&&e>0?`+${e}`:e}function F({title:n,value:r,trend:i,trendType:a,icon:o,color:s=`primary`,helperText:c,className:l,...u}){let d=i!=null,f=N(i,a),p=P(i);return(0,_.jsxs)(`div`,{className:t.t(`card-widget`,`color-${s}`,l),...u,children:[(0,_.jsxs)(`div`,{className:`cw-top`,children:[(0,_.jsxs)(`div`,{className:`cw-meta`,children:[(0,_.jsx)(`span`,{className:`cw-title`,children:n}),(0,_.jsx)(`span`,{className:`cw-value`,children:r})]}),o&&(0,_.jsx)(`span`,{className:`cw-icon`,children:o})]}),d&&(0,_.jsx)(`div`,{className:`cw-bottom`,children:(0,_.jsxs)(`span`,{className:t.t(`cw-trend`,f),children:[f===`up`&&(0,_.jsx)(e.ki,{size:14}),f===`down`&&(0,_.jsx)(e.Oi,{size:14}),(0,_.jsx)(`span`,{children:p})]})}),c&&(0,_.jsx)(`div`,{className:`cw-helper`,children:c})]})}function I(e,t){let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function L({items:n,renderCard:i,searchable:a=!1,searchKeys:o,searchPlaceholder:l=`Search...`,filterable:u=!1,filterKeys:d=[],sortable:f=!1,sortKeys:p=[],defaultSort:h,columns:v=3,emptyMessage:y=`No results found.`,className:b,style:x,...S}){let[C,w]=(0,g.useState)(``),[T,E]=(0,g.useState)({}),[D,O]=(0,g.useState)(h?.key??null),[k,A]=(0,g.useState)(h?.direction??`asc`),[j,M]=(0,g.useState)(!1),[N,P]=(0,g.useState)(!1),F=(0,g.useRef)(null),L=(0,g.useRef)(null),R=(0,g.useCallback)(()=>{M(e=>!e),P(!1)},[]),z=(0,g.useCallback)(()=>{P(e=>!e),M(!1)},[]),B=(0,g.useMemo)(()=>{let e=[...n];if(C&&o&&o.length>0){let t=C.toLowerCase();e=e.filter(e=>o.some(n=>{let r=I(e,n);return r!=null&&String(r).toLowerCase().includes(t)}))}for(let[t,n]of Object.entries(T))n.size!==0&&(e=e.filter(e=>{let r=I(e,t);return r!=null&&n.has(String(r))}));return D&&e.sort((e,t)=>{let n=I(e,D),r=I(t,D);if(n==null&&r==null)return 0;if(n==null)return 1;if(r==null)return-1;let i=String(n).localeCompare(String(r),void 0,{numeric:!0});return k===`asc`?i:-i}),e},[n,C,o,T,D,k]);function V(e,t){E(n=>{let r=new Set(n[e]??[]);return r.has(t)?r.delete(t):r.add(t),{...n,[e]:r}})}let H=(0,g.useMemo)(()=>{let e={};for(let t of d){if(t.options){e[t.key]=t.options;continue}let r=new Set;for(let e of n){let n=I(e,t.key);n!=null&&r.add(String(n))}e[t.key]=Array.from(r).sort()}return e},[n,d]),U=p.find(e=>e.key===D);return(0,_.jsxs)(`div`,{className:t.t(`card-grid`,b),style:x,...S,children:[(a||u||f)&&(0,_.jsxs)(`div`,{className:`card-grid-toolbar`,children:[a&&(0,_.jsx)(m.t,{className:`card-grid-search`,size:`sm`,fullWidth:!0,placeholder:l,value:C,onChange:e=>w(e.target.value),onClear:()=>w(``)}),(0,_.jsxs)(`div`,{className:`card-grid-actions`,children:[u&&d.length>0&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(s.t,{ref:F,variant:`outlined`,size:`sm`,startIcon:(0,_.jsx)(e.an,{}),"aria-expanded":j,onClick:R,children:`Filter`}),(0,_.jsx)(r.t,{open:j,anchorRef:F,onClose:()=>M(!1),placement:`bottom-end`,className:`card-grid-dropdown`,children:d.map(e=>(0,_.jsxs)(`div`,{className:`card-grid-filter-group`,children:[(0,_.jsx)(`span`,{className:`card-grid-filter-label`,children:e.label}),(H[e.key]??[]).map(t=>(0,_.jsx)(`div`,{className:`card-grid-filter-option`,children:(0,_.jsx)(c.t,{size:`sm`,clickEffect:`none`,checked:T[e.key]?.has(t)??!1,onChange:()=>V(e.key,t),label:t})},t))]},e.key))})]}),f&&p.length>0&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(s.t,{ref:L,variant:`outlined`,size:`sm`,startIcon:D?k===`asc`?(0,_.jsx)(e.ki,{}):(0,_.jsx)(e.Oi,{}):(0,_.jsx)(e.in,{}),"aria-expanded":N,onClick:z,children:U?`Sort: ${U.label}`:`Sort`}),(0,_.jsx)(r.t,{open:N,anchorRef:L,onClose:()=>P(!1),placement:`bottom-end`,className:`card-grid-dropdown`,children:p.map(n=>(0,_.jsxs)(`button`,{type:`button`,className:t.t(`card-grid-sort-item`,D===n.key&&`active`),onClick:()=>{D===n.key?A(k===`asc`?`desc`:`asc`):(O(n.key),A(`asc`)),P(!1)},children:[n.label,D===n.key&&(0,_.jsx)(`span`,{className:`card-grid-sort-dir`,children:k===`asc`?(0,_.jsx)(e.ki,{className:`card-grid-sort-icon`}):(0,_.jsx)(e.Oi,{className:`card-grid-sort-icon`})})]},n.key))})]})]})]}),B.length>0?(0,_.jsx)(`div`,{className:`card-grid-items`,style:{gridTemplateColumns:`repeat(${v}, 1fr)`},children:B.map((e,t)=>i(e,t))}):(0,_.jsx)(`div`,{className:`card-grid-empty`,children:y})]})}function R(e,t){return t||(e===void 0||e===0?`neutral`:e>0?`up`:`down`)}function z({label:n,value:r,change:i,changeType:a,changeLabel:o,icon:s,sparkline:c,sparklineType:l=`area`,color:u=`primary`,currency:d,className:f,...p}){let m=R(i,a),g=m===`up`?`success`:m===`down`?`error`:`neutral`;return(0,_.jsxs)(`div`,{className:t.t(`card-finance`,`color-${u}`,f),...p,children:[(0,_.jsxs)(`div`,{className:`cf-top`,children:[(0,_.jsxs)(`div`,{className:`cf-meta`,children:[(0,_.jsx)(`span`,{className:`cf-label`,children:n}),d&&(0,_.jsx)(`span`,{className:`cf-currency`,children:d})]}),s&&(0,_.jsx)(`span`,{className:`cf-icon`,children:s})]}),(0,_.jsx)(`div`,{className:`cf-value`,children:r}),(0,_.jsx)(`div`,{className:`cf-bottom`,children:i!==void 0&&(0,_.jsxs)(`span`,{className:t.t(`cf-change`,g),children:[m===`up`&&(0,_.jsx)(e.ki,{size:14}),m===`down`&&(0,_.jsx)(e.Oi,{size:14}),(0,_.jsxs)(`span`,{className:`cf-change-value`,children:[i>0?`+`:``,i,`%`]}),o&&(0,_.jsx)(`span`,{className:`cf-change-label`,children:o})]})}),(0,_.jsx)(`div`,{className:`cf-sparkline`,children:(0,_.jsx)(h.t,{data:c,type:l,color:g===`neutral`?u:g,height:46,padding:0,curved:!0,animated:!0,fillOpacity:.18})})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return y}});
|
|
2
|
-
//# sourceMappingURL=cards-BiYdorB0.cjs.map
|