@banzamel/mineralui 1.6.2 → 1.6.4
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-CnBVN71i.js → MAvatar-BHASnoyu.js} +5 -5
- package/dist/{MAvatar-CnBVN71i.js.map → MAvatar-BHASnoyu.js.map} +1 -1
- package/dist/MAvatar-BVJh6kgW.cjs +2 -0
- package/dist/{MAvatar-DGEQqUss.cjs.map → MAvatar-BVJh6kgW.cjs.map} +1 -1
- package/dist/MBadge-B4x-Lx7e.cjs +2 -0
- package/dist/{MBadge-DcIPfPH1.cjs.map → MBadge-B4x-Lx7e.cjs.map} +1 -1
- package/dist/{MBadge-C_vK2JdM.js → MBadge-_BggwkrM.js} +3 -3
- package/dist/{MBadge-C_vK2JdM.js.map → MBadge-_BggwkrM.js.map} +1 -1
- package/dist/MButton-DrkVdRDy.cjs +2 -0
- package/dist/{MButton-LUNWBBOV.cjs.map → MButton-DrkVdRDy.cjs.map} +1 -1
- package/dist/{MButton-BpSZUhpY.js → MButton-y9qXhhGt.js} +4 -4
- package/dist/{MButton-BpSZUhpY.js.map → MButton-y9qXhhGt.js.map} +1 -1
- package/dist/{MCheckbox-CNz73bQC.js → MCheckbox-B-nT2OBE.js} +3 -3
- package/dist/{MCheckbox-CNz73bQC.js.map → MCheckbox-B-nT2OBE.js.map} +1 -1
- package/dist/MCheckbox-C40ESQRe.cjs +2 -0
- package/dist/{MCheckbox-PzknJeM2.cjs.map → MCheckbox-C40ESQRe.cjs.map} +1 -1
- package/dist/{MCookieBootstrap-DSOT4FQo.cjs → MCookieBootstrap-3-wyz3Dk.cjs} +1 -1
- package/dist/{MCookieBootstrap-DSOT4FQo.cjs.map → MCookieBootstrap-3-wyz3Dk.cjs.map} +1 -1
- package/dist/{MCookieBootstrap-CNYLvKjW.js → MCookieBootstrap-CGvYxIK8.js} +1 -1
- package/dist/{MCookieBootstrap-CNYLvKjW.js.map → MCookieBootstrap-CGvYxIK8.js.map} +1 -1
- package/dist/MDataTable-Bx7W-Ari.cjs +2 -0
- package/dist/{MDataTable-Bq6UoNJX.cjs.map → MDataTable-Bx7W-Ari.cjs.map} +1 -1
- package/dist/{MDataTable-AH5Tnirs.js → MDataTable-ByvNQqNP.js} +6 -6
- package/dist/{MDataTable-AH5Tnirs.js.map → MDataTable-ByvNQqNP.js.map} +1 -1
- package/dist/MDrawer-DFkrFrnD.cjs +2 -0
- package/dist/{MDrawer-DRqMsjMt.cjs.map → MDrawer-DFkrFrnD.cjs.map} +1 -1
- package/dist/{MDrawer-C08QXXC4.js → MDrawer-W2WQs1sM.js} +5 -5
- package/dist/{MDrawer-C08QXXC4.js.map → MDrawer-W2WQs1sM.js.map} +1 -1
- package/dist/MDropdownMenu-BmfXSc46.cjs +2 -0
- package/dist/{MDropdownMenu-CymCQqyP.cjs.map → MDropdownMenu-BmfXSc46.cjs.map} +1 -1
- package/dist/{MDropdownMenu-CMnBt-wO.js → MDropdownMenu-D79Cm5aS.js} +4 -4
- package/dist/{MDropdownMenu-CMnBt-wO.js.map → MDropdownMenu-D79Cm5aS.js.map} +1 -1
- package/dist/MGalleryIllustration-BB3DoCl_.cjs +2 -0
- package/dist/{MGalleryIllustration-BHtRFizZ.cjs.map → MGalleryIllustration-BB3DoCl_.cjs.map} +1 -1
- package/dist/{MGalleryIllustration-DhOtXwhC.js → MGalleryIllustration-D7CVMSwO.js} +2 -2
- package/dist/{MGalleryIllustration-DhOtXwhC.js.map → MGalleryIllustration-D7CVMSwO.js.map} +1 -1
- package/dist/MHeading-BhCNoJeW.cjs +2 -0
- package/dist/{MHeading-DHT1gORD.cjs.map → MHeading-BhCNoJeW.cjs.map} +1 -1
- package/dist/{MHeading-BvpWyvjj.js → MHeading-MPh8Qm9q.js} +4 -4
- package/dist/{MHeading-BvpWyvjj.js.map → MHeading-MPh8Qm9q.js.map} +1 -1
- package/dist/MI18nProvider-B2sE0x5D.cjs +2 -0
- package/dist/{MI18nProvider-Bml7Vs2-.cjs.map → MI18nProvider-B2sE0x5D.cjs.map} +1 -1
- package/dist/{MI18nProvider-BRZxEMqL.js → MI18nProvider-VH14CI8u.js} +1 -1
- package/dist/{MI18nProvider-BRZxEMqL.js.map → MI18nProvider-VH14CI8u.js.map} +1 -1
- package/dist/{MImage-BQs91GK-.js → MImage-BKX-xBm3.js} +82 -76
- package/dist/MImage-BKX-xBm3.js.map +1 -0
- package/dist/MImage-YbDKE-1t.cjs +2 -0
- package/dist/MImage-YbDKE-1t.cjs.map +1 -0
- package/dist/MInline-CHrh3PHH.cjs +2 -0
- package/dist/{MInline-D9p9Sazp.cjs.map → MInline-CHrh3PHH.cjs.map} +1 -1
- package/dist/{MInline-DA_ehefx.js → MInline-CoMhfX5V.js} +4 -4
- package/dist/{MInline-DA_ehefx.js.map → MInline-CoMhfX5V.js.map} +1 -1
- package/dist/MInput-DYqV3-rQ.cjs +2 -0
- package/dist/{MInput-DDZ71Qqn.cjs.map → MInput-DYqV3-rQ.cjs.map} +1 -1
- package/dist/{MInput-l3MY93Su.js → MInput-bzSwK880.js} +6 -6
- package/dist/{MInput-l3MY93Su.js.map → MInput-bzSwK880.js.map} +1 -1
- package/dist/MInputCVC-5NkYSxV8.cjs +2 -0
- package/dist/{MInputCVC-Sp2uZ5aO.cjs.map → MInputCVC-5NkYSxV8.cjs.map} +1 -1
- package/dist/{MInputCVC-CN91scmw.js → MInputCVC-BHpMHTO5.js} +5 -5
- package/dist/{MInputCVC-CN91scmw.js.map → MInputCVC-BHpMHTO5.js.map} +1 -1
- package/dist/MInputSearch-DfoenJIm.cjs +2 -0
- package/dist/{MInputSearch-30o4bcDC.cjs.map → MInputSearch-DfoenJIm.cjs.map} +1 -1
- package/dist/{MInputSearch-CdPfJ4v_.js → MInputSearch-Dh4C3Tz5.js} +4 -4
- package/dist/{MInputSearch-CdPfJ4v_.js.map → MInputSearch-Dh4C3Tz5.js.map} +1 -1
- package/dist/MLink-CY45UR_j.cjs +2 -0
- package/dist/{MLink-U_wAUuz1.cjs.map → MLink-CY45UR_j.cjs.map} +1 -1
- package/dist/{MLink-CRUWGES-.js → MLink-rFKN1mcM.js} +3 -3
- package/dist/{MLink-CRUWGES-.js.map → MLink-rFKN1mcM.js.map} +1 -1
- package/dist/{MModal-CHSo5gKE.js → MModal-BDTAgnrm.js} +4 -4
- package/dist/{MModal-CHSo5gKE.js.map → MModal-BDTAgnrm.js.map} +1 -1
- package/dist/MModal-DT5BBgNZ.cjs +2 -0
- package/dist/{MModal-Czy-rR--.cjs.map → MModal-DT5BBgNZ.cjs.map} +1 -1
- package/dist/{MPagination-DdT1uNzD.js → MPagination-CTnaW5AW.js} +4 -4
- package/dist/{MPagination-DdT1uNzD.js.map → MPagination-CTnaW5AW.js.map} +1 -1
- package/dist/MPagination-CZEJMJzZ.cjs +2 -0
- package/dist/{MPagination-73z0sQvf.cjs.map → MPagination-CZEJMJzZ.cjs.map} +1 -1
- package/dist/MPopover-B4IUb9f0.cjs +2 -0
- package/dist/{MPopover-BW23_1Dl.cjs.map → MPopover-B4IUb9f0.cjs.map} +1 -1
- package/dist/{MPopover-3tjz5lKh.js → MPopover-Cqz5TsHg.js} +3 -3
- package/dist/{MPopover-3tjz5lKh.js.map → MPopover-Cqz5TsHg.js.map} +1 -1
- package/dist/{MPortal-Dqlkh3hw.js → MPortal-Ba2Sxset.js} +1 -1
- package/dist/{MPortal-Dqlkh3hw.js.map → MPortal-Ba2Sxset.js.map} +1 -1
- package/dist/MPortal-Bi24xTGW.cjs +2 -0
- package/dist/{MPortal-DE3pL2Xl.cjs.map → MPortal-Bi24xTGW.cjs.map} +1 -1
- package/dist/MQrCode-ByfmG33y.cjs +2 -0
- package/dist/{MQrCode-CMoru4dD.cjs.map → MQrCode-ByfmG33y.cjs.map} +1 -1
- package/dist/{MQrCode-DK5-SBhN.js → MQrCode-CCtTkkv9.js} +4 -4
- package/dist/{MQrCode-DK5-SBhN.js.map → MQrCode-CCtTkkv9.js.map} +1 -1
- package/dist/MSkeleton-5j1h9s95.cjs +2 -0
- package/dist/{MSkeleton-B0Mxe3L7.cjs.map → MSkeleton-5j1h9s95.cjs.map} +1 -1
- package/dist/{MSkeleton-Bqq_XJn8.js → MSkeleton-DGhtNmpI.js} +4 -4
- package/dist/{MSkeleton-Bqq_XJn8.js.map → MSkeleton-DGhtNmpI.js.map} +1 -1
- package/dist/{MSlider-ByVuoFFc.js → MSlider-5141rKeH.js} +2 -2
- package/dist/{MSlider-ByVuoFFc.js.map → MSlider-5141rKeH.js.map} +1 -1
- package/dist/MSlider-Ch3VjAJC.cjs +2 -0
- package/dist/{MSlider-sH2Vt9Lw.cjs.map → MSlider-Ch3VjAJC.cjs.map} +1 -1
- package/dist/MSparkline-B6qpt5WM.cjs +2 -0
- package/dist/{MSparkline-B-ld7hJu.cjs.map → MSparkline-B6qpt5WM.cjs.map} +1 -1
- package/dist/{MSparkline-DbtdM0W6.js → MSparkline-voNWOLNz.js} +2 -2
- package/dist/{MSparkline-DbtdM0W6.js.map → MSparkline-voNWOLNz.js.map} +1 -1
- package/dist/MStack-Bh-R2opf.cjs +2 -0
- package/dist/{MStack-Cy2GplIA.cjs.map → MStack-Bh-R2opf.cjs.map} +1 -1
- package/dist/{MStack-BWarX5O9.js → MStack-CSaEbepM.js} +4 -4
- package/dist/{MStack-BWarX5O9.js.map → MStack-CSaEbepM.js.map} +1 -1
- package/dist/{MSubText-C9VizSn9.js → MSubText-BFdfBlpS.js} +4 -4
- package/dist/{MSubText-C9VizSn9.js.map → MSubText-BFdfBlpS.js.map} +1 -1
- package/dist/MSubText-C-70zn0m.cjs +2 -0
- package/dist/{MSubText-DP9WYlwz.cjs.map → MSubText-C-70zn0m.cjs.map} +1 -1
- package/dist/MSurface-CpiV1-7f.cjs +2 -0
- package/dist/{MSurface-C467dVMQ.cjs.map → MSurface-CpiV1-7f.cjs.map} +1 -1
- package/dist/{MSurface-DfZ1Zy1-.js → MSurface-DJYSftdM.js} +4 -4
- package/dist/{MSurface-DfZ1Zy1-.js.map → MSurface-DJYSftdM.js.map} +1 -1
- package/dist/{MTag-N-tYZ915.js → MTag-CH5nMbm7.js} +5 -5
- package/dist/{MTag-N-tYZ915.js.map → MTag-CH5nMbm7.js.map} +1 -1
- package/dist/MTag-Y4Tswmli.cjs +2 -0
- package/dist/{MTag-DXqkBvqx.cjs.map → MTag-Y4Tswmli.cjs.map} +1 -1
- package/dist/MText-DEJddMB5.cjs +2 -0
- package/dist/{MText-COzub3y4.cjs.map → MText-DEJddMB5.cjs.map} +1 -1
- package/dist/{MText-B7_HjPym.js → MText-DcB1GAt-.js} +4 -4
- package/dist/{MText-B7_HjPym.js.map → MText-DcB1GAt-.js.map} +1 -1
- package/dist/{MTimeAgo-D1G2yovw.js → MTimeAgo-C4p80NvI.js} +4 -4
- package/dist/{MTimeAgo-D1G2yovw.js.map → MTimeAgo-C4p80NvI.js.map} +1 -1
- package/dist/MTimeAgo-DxZGVo2Y.cjs +2 -0
- package/dist/{MTimeAgo-DWwXs48z.cjs.map → MTimeAgo-DxZGVo2Y.cjs.map} +1 -1
- package/dist/MToggle-C8vYRzpC.cjs +2 -0
- package/dist/{MToggle-Cm3f6gm4.cjs.map → MToggle-C8vYRzpC.cjs.map} +1 -1
- package/dist/{MToggle-D0DrQirB.js → MToggle-Dt1Ctr5e.js} +3 -3
- package/dist/{MToggle-D0DrQirB.js.map → MToggle-Dt1Ctr5e.js.map} +1 -1
- package/dist/{MTooltip-w6Aj044c.js → MTooltip-C43aUKMP.js} +3 -3
- package/dist/{MTooltip-w6Aj044c.js.map → MTooltip-C43aUKMP.js.map} +1 -1
- package/dist/MTooltip-kSTMMpvu.cjs +2 -0
- package/dist/{MTooltip-C3PeHgV3.cjs.map → MTooltip-kSTMMpvu.cjs.map} +1 -1
- package/dist/arduino-CXUo7Bjy.cjs +2 -0
- package/dist/arduino-CXUo7Bjy.cjs.map +1 -0
- package/dist/arduino-Eif5KI8O.js +261 -0
- package/dist/arduino-Eif5KI8O.js.map +1 -0
- package/dist/bash-CCF_TYbb.js +171 -0
- package/dist/bash-CCF_TYbb.js.map +1 -0
- package/dist/bash-W4h3o_nx.cjs +2 -0
- package/dist/bash-W4h3o_nx.cjs.map +1 -0
- package/dist/c-DVgkp6T3.js +178 -0
- package/dist/c-DVgkp6T3.js.map +1 -0
- package/dist/c-Dm60JY-W.cjs +2 -0
- package/dist/c-Dm60JY-W.cjs.map +1 -0
- package/dist/cards-BiYdorB0.cjs +2 -0
- package/dist/{cards-B75QM9JW.cjs.map → cards-BiYdorB0.cjs.map} +1 -1
- package/dist/{cards-BKi8MxNx.js → cards-fn61xD_5.js} +17 -17
- package/dist/{cards-BKi8MxNx.js.map → cards-fn61xD_5.js.map} +1 -1
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/{cn-DYFxgzi2.cjs → cn-CU5TNITO.cjs} +1 -1
- package/dist/{cn-DYFxgzi2.cjs.map → cn-CU5TNITO.cjs.map} +1 -1
- package/dist/{cn-CUSXNnjF.js → cn-YER3QsV1.js} +1 -1
- package/dist/{cn-CUSXNnjF.js.map → cn-YER3QsV1.js.map} +1 -1
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/MImage/MImage.types.d.ts +6 -1
- package/dist/controls-C5PtrGZf.cjs +2 -0
- package/dist/{controls-B7wV_kjJ.cjs.map → controls-C5PtrGZf.cjs.map} +1 -1
- package/dist/{controls-BEi-0mf4.js → controls-DCtMOoQe.js} +6 -6
- package/dist/{controls-BEi-0mf4.js.map → controls-DCtMOoQe.js.map} +1 -1
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/cookie-consent-bootstrap.cjs +1 -1
- package/dist/cookie-consent-bootstrap.js +1 -1
- package/dist/core-AKWkE8Bx.cjs +4 -0
- package/dist/core-AKWkE8Bx.cjs.map +1 -0
- package/dist/core-CB9-PTLK.js +854 -0
- package/dist/core-CB9-PTLK.js.map +1 -0
- package/dist/cpp-DyKt1H8n.cjs +2 -0
- package/dist/cpp-DyKt1H8n.cjs.map +1 -0
- package/dist/cpp-OOenfB17.js +227 -0
- package/dist/cpp-OOenfB17.js.map +1 -0
- package/dist/{creditCards-BB11bW7D.js → creditCards-CCysEwry.js} +1 -1
- package/dist/{creditCards-BB11bW7D.js.map → creditCards-CCysEwry.js.map} +1 -1
- package/dist/{creditCards-198KJN0s.cjs → creditCards-ljs044xt.cjs} +1 -1
- package/dist/{creditCards-198KJN0s.cjs.map → creditCards-ljs044xt.cjs.map} +1 -1
- package/dist/css-DxVbPJLu.cjs +2 -0
- package/dist/css-DxVbPJLu.cjs.map +1 -0
- package/dist/css-u5LSEAra.js +142 -0
- package/dist/css-u5LSEAra.js.map +1 -0
- package/dist/{data-DKrj_Hx6.js → data-BiwK5rfx.js} +24 -24
- package/dist/{data-DKrj_Hx6.js.map → data-BiwK5rfx.js.map} +1 -1
- package/dist/data-DOuPqg8d.cjs +2 -0
- package/dist/{data-DHkccnSN.cjs.map → data-DOuPqg8d.cjs.map} +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.js +3 -3
- package/dist/{dateUtils-Ben8lfvV.js → dateUtils-CUY6CRCf.js} +1 -1
- package/dist/{dateUtils-Ben8lfvV.js.map → dateUtils-CUY6CRCf.js.map} +1 -1
- package/dist/{dateUtils-vT9rOf1J.cjs → dateUtils-Dq1vaA-D.cjs} +1 -1
- package/dist/{dateUtils-vT9rOf1J.cjs.map → dateUtils-Dq1vaA-D.cjs.map} +1 -1
- package/dist/display-BafEcBK_.cjs +3 -0
- package/dist/display-BafEcBK_.cjs.map +1 -0
- package/dist/{display-rQqBLjAN.js → display-Zxj9YHu_.js} +196 -179
- package/dist/display-Zxj9YHu_.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +3 -3
- package/dist/{dropdowns-BKnXb1XJ.js → dropdowns-Bw8obCYl.js} +15 -15
- package/dist/{dropdowns-BKnXb1XJ.js.map → dropdowns-Bw8obCYl.js.map} +1 -1
- package/dist/dropdowns-DN7j1HhE.cjs +2 -0
- package/dist/{dropdowns-cRrLY8FG.cjs.map → dropdowns-DN7j1HhE.cjs.map} +1 -1
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/{feedback-CIXmm0XT.js → feedback-8H3bmQw5.js} +18 -18
- package/dist/{feedback-CIXmm0XT.js.map → feedback-8H3bmQw5.js.map} +1 -1
- package/dist/feedback-Di0SEpRe.cjs +2 -0
- package/dist/{feedback-DiMptPJy.cjs.map → feedback-Di0SEpRe.cjs.map} +1 -1
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +6 -6
- package/dist/form-BYz99Py5.cjs +2 -0
- package/dist/{form-DABPazeN.cjs.map → form-BYz99Py5.cjs.map} +1 -1
- package/dist/{form-DZJxDW59.js → form-JHlvtP9r.js} +2 -2
- package/dist/{form-DZJxDW59.js.map → form-JHlvtP9r.js.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formatters-CauWlsnM.cjs → formatters-CNjg_h7-.cjs} +1 -1
- package/dist/{formatters-CauWlsnM.cjs.map → formatters-CNjg_h7-.cjs.map} +1 -1
- package/dist/{formatters-Doqdu_w1.js → formatters-T0vvjMtB.js} +1 -1
- package/dist/{formatters-Doqdu_w1.js.map → formatters-T0vvjMtB.js.map} +1 -1
- package/dist/{frameworkTexts-DzujbRBe.js → frameworkTexts-CvxcWRXp.js} +2 -2
- package/dist/{frameworkTexts-DzujbRBe.js.map → frameworkTexts-CvxcWRXp.js.map} +1 -1
- package/dist/frameworkTexts-abkS5XZK.cjs +2 -0
- package/dist/{frameworkTexts-DPX5T2x3.cjs.map → frameworkTexts-abkS5XZK.cjs.map} +1 -1
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.js +1 -1
- package/dist/{icons-DlNO04xH.js → icons-CfpYxnfg.js} +1 -1
- package/dist/{icons-DlNO04xH.js.map → icons-CfpYxnfg.js.map} +1 -1
- package/dist/icons-DWMgDKgt.cjs +2 -0
- package/dist/{icons-BJCV7W0L.cjs.map → icons-DWMgDKgt.cjs.map} +1 -1
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/illustrations.cjs +1 -1
- package/dist/illustrations.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +57 -57
- package/dist/{inputs-CmpB6eyB.js → inputs-Bcwd_UTr.js} +12 -12
- package/dist/{inputs-CmpB6eyB.js.map → inputs-Bcwd_UTr.js.map} +1 -1
- package/dist/inputs-FP545Yri.cjs +2 -0
- package/dist/{inputs-EZBwxk7j.cjs.map → inputs-FP545Yri.cjs.map} +1 -1
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/javascript-CXjsxb-I.js +438 -0
- package/dist/javascript-CXjsxb-I.js.map +1 -0
- package/dist/javascript-CzjCTQxn.cjs +2 -0
- package/dist/javascript-CzjCTQxn.cjs.map +1 -0
- package/dist/json-9Qq5guN0.cjs +2 -0
- package/dist/json-9Qq5guN0.cjs.map +1 -0
- package/dist/json-CyV5VF8D.js +38 -0
- package/dist/json-CyV5VF8D.js.map +1 -0
- package/dist/{layout-D72Y7VcW.js → layout-BpEnTocp.js} +11 -11
- package/dist/{layout-D72Y7VcW.js.map → layout-BpEnTocp.js.map} +1 -1
- package/dist/layout-rtlHrjDb.cjs +2 -0
- package/dist/{layout-DZiWboju.cjs.map → layout-rtlHrjDb.cjs.map} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +5 -5
- package/dist/{layoutProps-Ck4VtGm9.cjs → layoutProps-B8y2XwHy.cjs} +1 -1
- package/dist/{layoutProps-Ck4VtGm9.cjs.map → layoutProps-B8y2XwHy.cjs.map} +1 -1
- package/dist/{layoutProps-Cl6d1KmH.js → layoutProps-CE5-ghKw.js} +1 -1
- package/dist/{layoutProps-Cl6d1KmH.js.map → layoutProps-CE5-ghKw.js.map} +1 -1
- package/dist/{licensing-Cbpi1toF.js → licensing-CwzqhHH9.js} +1 -1
- package/dist/{licensing-Cbpi1toF.js.map → licensing-CwzqhHH9.js.map} +1 -1
- package/dist/licensing-ezfo7ZTh.cjs +2 -0
- package/dist/{licensing-JchPJhVY.cjs.map → licensing-ezfo7ZTh.cjs.map} +1 -1
- package/dist/locale-CZyqh3ON.cjs +2 -0
- package/dist/{locale-DIwV_GfN.cjs.map → locale-CZyqh3ON.cjs.map} +1 -1
- package/dist/{locale-BNyzqXAU.js → locale-JX_gX03k.js} +1 -1
- package/dist/{locale-BNyzqXAU.js.map → locale-JX_gX03k.js.map} +1 -1
- package/dist/media-CiHsgOmu.cjs +2 -0
- package/dist/{media-p643cb02.cjs.map → media-CiHsgOmu.cjs.map} +1 -1
- package/dist/{media-BlGY91Na.js → media-IM9mfVAn.js} +9 -9
- package/dist/{media-BlGY91Na.js.map → media-IM9mfVAn.js.map} +1 -1
- package/dist/media.cjs +1 -1
- package/dist/media.js +3 -3
- package/dist/{overlays-51pBvlf9.js → overlays-CGlqD3rl.js} +7 -7
- package/dist/{overlays-51pBvlf9.js.map → overlays-CGlqD3rl.js.map} +1 -1
- package/dist/overlays-DrSGzbbA.cjs +2 -0
- package/dist/{overlays-8htlWp07.cjs.map → overlays-DrSGzbbA.cjs.map} +1 -1
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +5 -5
- package/dist/php-Br75m0HU.cjs +3 -0
- package/dist/php-Br75m0HU.cjs.map +1 -0
- package/dist/php-deNqvHeU.js +296 -0
- package/dist/php-deNqvHeU.js.map +1 -0
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +2 -2
- package/dist/{relativeTime-BqCuaBqb.js → relativeTime-Cr-NVzij.js} +1 -1
- package/dist/{relativeTime-BqCuaBqb.js.map → relativeTime-Cr-NVzij.js.map} +1 -1
- package/dist/{relativeTime-DUbW4O44.cjs → relativeTime-DgYBUaVm.cjs} +1 -1
- package/dist/{relativeTime-DUbW4O44.cjs.map → relativeTime-DgYBUaVm.cjs.map} +1 -1
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme-CgS-bND3.cjs +2 -0
- package/dist/{theme-Bnwe-wvr.cjs.map → theme-CgS-bND3.cjs.map} +1 -1
- package/dist/{theme-KYwqDZxJ.js → theme-D_f-cmSA.js} +1 -1
- package/dist/{theme-KYwqDZxJ.js.map → theme-D_f-cmSA.js.map} +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +1 -1
- package/dist/typescript-CRgqVaw_.cjs +2 -0
- package/dist/typescript-CRgqVaw_.cjs.map +1 -0
- package/dist/typescript-jNfCpQvl.js +523 -0
- package/dist/typescript-jNfCpQvl.js.map +1 -0
- package/dist/{typography-FCWA0UOB.js → typography-BSBsn0f8.js} +3 -3
- package/dist/{typography-FCWA0UOB.js.map → typography-BSBsn0f8.js.map} +1 -1
- package/dist/typography-Zo4Usx9I.cjs +2 -0
- package/dist/{typography-D1s-QFlb.cjs.map → typography-Zo4Usx9I.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +5 -5
- package/dist/{useGhostText-BJZKdZpw.js → useGhostText-DG0bzcao.js} +1 -1
- package/dist/{useGhostText-BJZKdZpw.js.map → useGhostText-DG0bzcao.js.map} +1 -1
- package/dist/useGhostText-tv1LiSPs.cjs +2 -0
- package/dist/{useGhostText-D1DbIs-n.cjs.map → useGhostText-tv1LiSPs.cjs.map} +1 -1
- package/dist/useInteractionEffect-D1ZdNbKU.cjs +2 -0
- package/dist/{useInteractionEffect-CYHGHV1e.cjs.map → useInteractionEffect-D1ZdNbKU.cjs.map} +1 -1
- package/dist/{useInteractionEffect-ClkU3aH5.js → useInteractionEffect-DtpbVd77.js} +1 -1
- package/dist/{useInteractionEffect-ClkU3aH5.js.map → useInteractionEffect-DtpbVd77.js.map} +1 -1
- package/dist/useKeyboardNav-CkIlAagq.cjs +2 -0
- package/dist/{useKeyboardNav-BoibrRUF.cjs.map → useKeyboardNav-CkIlAagq.cjs.map} +1 -1
- package/dist/{useKeyboardNav-CBOdeTFM.js → useKeyboardNav-iEXOdEMB.js} +1 -1
- package/dist/{useKeyboardNav-CBOdeTFM.js.map → useKeyboardNav-iEXOdEMB.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +10 -10
- package/dist/{validators-D4aTeaH0.cjs → validators-BeNTD8mf.cjs} +1 -1
- package/dist/{validators-D4aTeaH0.cjs.map → validators-BeNTD8mf.cjs.map} +1 -1
- package/dist/{validators-YZyyyLvE.js → validators-H8tNxb8O.js} +1 -1
- package/dist/{validators-YZyyyLvE.js.map → validators-H8tNxb8O.js.map} +1 -1
- package/dist/xml-0Th6YIDv.js +168 -0
- package/dist/xml-0Th6YIDv.js.map +1 -0
- package/dist/xml-C_ksWBRH.cjs +2 -0
- package/dist/xml-C_ksWBRH.cjs.map +1 -0
- package/package.json +2 -2
- package/dist/MAvatar-DGEQqUss.cjs +0 -2
- package/dist/MBadge-DcIPfPH1.cjs +0 -2
- package/dist/MButton-LUNWBBOV.cjs +0 -2
- package/dist/MCheckbox-PzknJeM2.cjs +0 -2
- package/dist/MDataTable-Bq6UoNJX.cjs +0 -2
- package/dist/MDrawer-DRqMsjMt.cjs +0 -2
- package/dist/MDropdownMenu-CymCQqyP.cjs +0 -2
- package/dist/MGalleryIllustration-BHtRFizZ.cjs +0 -2
- package/dist/MHeading-DHT1gORD.cjs +0 -2
- package/dist/MI18nProvider-Bml7Vs2-.cjs +0 -2
- package/dist/MImage-BQs91GK-.js.map +0 -1
- package/dist/MImage-CxeuH-cT.cjs +0 -2
- package/dist/MImage-CxeuH-cT.cjs.map +0 -1
- package/dist/MInline-D9p9Sazp.cjs +0 -2
- package/dist/MInput-DDZ71Qqn.cjs +0 -2
- package/dist/MInputCVC-Sp2uZ5aO.cjs +0 -2
- package/dist/MInputSearch-30o4bcDC.cjs +0 -2
- package/dist/MLink-U_wAUuz1.cjs +0 -2
- package/dist/MModal-Czy-rR--.cjs +0 -2
- package/dist/MPagination-73z0sQvf.cjs +0 -2
- package/dist/MPopover-BW23_1Dl.cjs +0 -2
- package/dist/MPortal-DE3pL2Xl.cjs +0 -2
- package/dist/MQrCode-CMoru4dD.cjs +0 -2
- package/dist/MSkeleton-B0Mxe3L7.cjs +0 -2
- package/dist/MSlider-sH2Vt9Lw.cjs +0 -2
- package/dist/MSparkline-B-ld7hJu.cjs +0 -2
- package/dist/MStack-Cy2GplIA.cjs +0 -2
- package/dist/MSubText-DP9WYlwz.cjs +0 -2
- package/dist/MSurface-C467dVMQ.cjs +0 -2
- package/dist/MTag-DXqkBvqx.cjs +0 -2
- package/dist/MText-COzub3y4.cjs +0 -2
- package/dist/MTimeAgo-DWwXs48z.cjs +0 -2
- package/dist/MToggle-Cm3f6gm4.cjs +0 -2
- package/dist/MTooltip-C3PeHgV3.cjs +0 -2
- package/dist/cards-B75QM9JW.cjs +0 -2
- package/dist/chunk-350yNsax.cjs +0 -1
- package/dist/chunk-efA98nb6.js +0 -13
- package/dist/controls-B7wV_kjJ.cjs +0 -2
- package/dist/data-DHkccnSN.cjs +0 -2
- package/dist/display-DKJ6Hp3A.cjs +0 -3
- package/dist/display-DKJ6Hp3A.cjs.map +0 -1
- package/dist/display-rQqBLjAN.js.map +0 -1
- package/dist/dropdowns-cRrLY8FG.cjs +0 -2
- package/dist/feedback-DiMptPJy.cjs +0 -2
- package/dist/form-DABPazeN.cjs +0 -2
- package/dist/frameworkTexts-DPX5T2x3.cjs +0 -2
- package/dist/icons-BJCV7W0L.cjs +0 -2
- package/dist/inputs-EZBwxk7j.cjs +0 -2
- package/dist/layout-DZiWboju.cjs +0 -2
- package/dist/licensing-JchPJhVY.cjs +0 -2
- package/dist/locale-DIwV_GfN.cjs +0 -2
- package/dist/media-p643cb02.cjs +0 -2
- package/dist/overlays-8htlWp07.cjs +0 -2
- package/dist/prism-bash-DSVvpDwH.cjs +0 -2
- package/dist/prism-bash-DSVvpDwH.cjs.map +0 -1
- package/dist/prism-bash-GQKgVScr.js +0 -177
- package/dist/prism-bash-GQKgVScr.js.map +0 -1
- package/dist/prism-c-DBlZetAm.js +0 -56
- package/dist/prism-c-DBlZetAm.js.map +0 -1
- package/dist/prism-c-DwJ0sL1f.cjs +0 -2
- package/dist/prism-c-DwJ0sL1f.cjs.map +0 -1
- package/dist/prism-clike-BHy7LBAZ.cjs +0 -2
- package/dist/prism-clike-BHy7LBAZ.cjs.map +0 -1
- package/dist/prism-clike-CrtZga9r.js +0 -30
- package/dist/prism-clike-CrtZga9r.js.map +0 -1
- package/dist/prism-core-DsZQ3wSm.js +0 -299
- package/dist/prism-core-DsZQ3wSm.js.map +0 -1
- package/dist/prism-core-Z2NDHfPM.cjs +0 -2
- package/dist/prism-core-Z2NDHfPM.cjs.map +0 -1
- package/dist/prism-cpp-CXyjGEks.cjs +0 -2
- package/dist/prism-cpp-CXyjGEks.cjs.map +0 -1
- package/dist/prism-cpp-DerVaWjZ.js +0 -65
- package/dist/prism-cpp-DerVaWjZ.js.map +0 -1
- package/dist/prism-css-Bx_bUmkm.js +0 -57
- package/dist/prism-css-Bx_bUmkm.js.map +0 -1
- package/dist/prism-css-q8i9Tl0Y.cjs +0 -2
- package/dist/prism-css-q8i9Tl0Y.cjs.map +0 -1
- package/dist/prism-javascript-CC_WcCH4.cjs +0 -2
- package/dist/prism-javascript-CC_WcCH4.cjs.map +0 -1
- package/dist/prism-javascript-uSHTlCK6.js +0 -103
- package/dist/prism-javascript-uSHTlCK6.js.map +0 -1
- package/dist/prism-json-CRpBxccA.js +0 -27
- package/dist/prism-json-CRpBxccA.js.map +0 -1
- package/dist/prism-json-CvwHQDim.cjs +0 -2
- package/dist/prism-json-CvwHQDim.cjs.map +0 -1
- package/dist/prism-jsx-CSsxTxi5.js +0 -48
- package/dist/prism-jsx-CSsxTxi5.js.map +0 -1
- package/dist/prism-jsx-ZJAX6mJe.cjs +0 -2
- package/dist/prism-jsx-ZJAX6mJe.cjs.map +0 -1
- package/dist/prism-markup-Cc4COxfn.js +0 -118
- package/dist/prism-markup-Cc4COxfn.js.map +0 -1
- package/dist/prism-markup-RTw80xRC.cjs +0 -2
- package/dist/prism-markup-RTw80xRC.cjs.map +0 -1
- package/dist/prism-markup-templating-CylI3Gpj.cjs +0 -2
- package/dist/prism-markup-templating-CylI3Gpj.cjs.map +0 -1
- package/dist/prism-markup-templating-D4w8OHUw.js +0 -41
- package/dist/prism-markup-templating-D4w8OHUw.js.map +0 -1
- package/dist/prism-php-CMZ7fRp0.cjs +0 -2
- package/dist/prism-php-CMZ7fRp0.cjs.map +0 -1
- package/dist/prism-php-nJ_CzHXP.js +0 -279
- package/dist/prism-php-nJ_CzHXP.js.map +0 -1
- package/dist/prism-tsx-CvHlXV3S.cjs +0 -2
- package/dist/prism-tsx-CvHlXV3S.cjs.map +0 -1
- package/dist/prism-tsx-UlwV29L3.js +0 -10
- package/dist/prism-tsx-UlwV29L3.js.map +0 -1
- package/dist/prism-typescript-BA7hsZPZ.js +0 -40
- package/dist/prism-typescript-BA7hsZPZ.js.map +0 -1
- package/dist/prism-typescript-CDAVIXup.cjs +0 -2
- package/dist/prism-typescript-CDAVIXup.cjs.map +0 -1
- package/dist/theme-Bnwe-wvr.cjs +0 -2
- package/dist/typography-D1s-QFlb.cjs +0 -2
- package/dist/useGhostText-D1DbIs-n.cjs +0 -2
- package/dist/useInteractionEffect-CYHGHV1e.cjs +0 -2
- package/dist/useKeyboardNav-BoibrRUF.cjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MModal-
|
|
1
|
+
{"version":3,"file":"MModal-BDTAgnrm.js","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\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 }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n"],"mappings":";;;;;;AAQA,IAAM,IAAgB;AAGtB,SAAgB,EAAO,EACnB,SACA,YACA,UACA,gBACA,WACA,UAAO,MACP,qBAAkB,IAClB,mBAAgB,IAChB,cACA,aACA,GAAG,KACS;CACZ,IAAM,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,IAAc,EAAuB,KAAK;AAmDhD,QAhDA,QAAgB;AACZ,EAAI,MACA,EAAW,GAAK,EAChB,EAAW,GAAM;IAEtB,CAAC,EAAK,CAAC,EAGV,QAAgB;AACZ,MAAI,CAAC,KAAQ,GAAS;AAClB,KAAW,GAAK;GAChB,IAAM,IAAQ,iBAAiB;AAE3B,IADA,EAAW,GAAM,EACjB,EAAW,GAAM;MAClB,EAAc;AACjB,gBAAa,aAAa,EAAM;;IAErC,CAAC,GAAM,EAAQ,CAAC,EAEnB,QAAgB;AACZ,MAAI,CAAC,KAAQ,CAAC,EAAe;EAE7B,IAAM,KAAiB,MAAyB;AAC5C,GAAI,EAAM,QAAQ,YAAU,GAAS;;AAIzC,SADA,SAAS,iBAAiB,WAAW,EAAc,QACtC,SAAS,oBAAoB,WAAW,EAAc;IACpE;EAAC;EAAe;EAAS;EAAK,CAAC,EAElC,QAAgB;AACZ,MAAI,CAAC,EAAS;EAEd,IAAM,IAAmB,SAAS,KAAK,MAAM;AAG7C,SAFA,SAAS,KAAK,MAAM,WAAW,gBAElB;AACT,YAAS,KAAK,MAAM,WAAW;;IAEpC,CAAC,EAAQ,CAAC,EAER,IAQD,kBAAC,GAAD,EAAA,UACI,kBAAC,OAAD;EACI,KAAK;EACL,WAAW,EAAG,oBAAoB,kBAAkB,KAAW,UAAU;EACzE,cAViB,MAAsC;AAC1D,QACD,EAAM,WAAW,EAAM,iBAAe,GAAS;;YAU3C,kBAAC,OAAD;GAAK,WAAW;aACZ,kBAAC,GAAD;IACI,WAAW,EAAG,SAAS,GAAM,EAAU;IACvC,MAAM;IACN,cAAY;IACZ,mBAAiB,IAAQ,wBAAwB,KAAA;IACjD,GAAI;cALR;MAOM,KAAS,MACP,kBAAC,GAAD,EAAA,UAAA,CACK,KACG,kBAAC,OAAD;MAAK,IAAI;MAAuB,WAAW;gBACtC;MACC,CAAA,EAET,KAAe,kBAAC,OAAD;MAAK,WAAW;gBAAsB;MAAkB,CAAA,CAC9D,EAAA,CAAA;KAElB,kBAAC,GAAD,EAAY,aAAqB,CAAA;KAChC,KAAU,kBAAC,GAAD,EAAA,UAAc,GAAqB,CAAA;KAC1C;;GACN,CAAA;EACJ,CAAA,EACA,CAAA,GArCO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./MPortal-Bi24xTGW.cjs`),n=require(`./MSkeleton-5j1h9s95.cjs`);require(`./core-AKWkE8Bx.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=540;function o({open:o,onClose:s,title:c,description:l,footer:u,size:d=`md`,closeOnBackdrop:f=!0,closeOnEscape:p=!0,className:m,children:h,...g}){let[_,v]=(0,r.useState)(!1),[y,b]=(0,r.useState)(!1),x=(0,r.useRef)(null);return(0,r.useEffect)(()=>{o&&(v(!0),b(!1))},[o]),(0,r.useEffect)(()=>{if(!o&&_){b(!0);let e=setTimeout(()=>{v(!1),b(!1)},a);return()=>clearTimeout(e)}},[o,_]),(0,r.useEffect)(()=>{if(!o||!p)return;let e=e=>{e.key===`Escape`&&s()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[p,s,o]),(0,r.useEffect)(()=>{if(!_)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[_]),_?(0,i.jsx)(t.t,{children:(0,i.jsx)(`div`,{ref:x,className:e.t(`mineral-backdrop`,`modal-backdrop`,y&&`closing`),onMouseDown:e=>{f&&e.target===e.currentTarget&&s()},children:(0,i.jsx)(`div`,{className:`modal-shell`,children:(0,i.jsxs)(n.n,{className:e.t(`modal`,d,m),role:`dialog`,"aria-modal":`true`,"aria-labelledby":c?`mineral-modal-title`:void 0,...g,children:[(c||l)&&(0,i.jsxs)(n.a,{children:[c&&(0,i.jsx)(`div`,{id:`mineral-modal-title`,className:`modal-title`,children:c}),l&&(0,i.jsx)(`div`,{className:`modal-description`,children:l})]}),(0,i.jsx)(n.r,{children:h}),u&&(0,i.jsx)(n.i,{children:u})]})})})}):null}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
|
|
2
|
+
//# sourceMappingURL=MModal-DT5BBgNZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MModal-
|
|
1
|
+
{"version":3,"file":"MModal-DT5BBgNZ.cjs","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\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 }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n"],"mappings":"oMAQA,IAAM,EAAgB,IAGtB,SAAgB,EAAO,CACnB,OACA,UACA,QACA,cACA,SACA,OAAO,KACP,kBAAkB,GAClB,gBAAgB,GAChB,YACA,WACA,GAAG,GACS,CACZ,GAAM,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,CAAC,EAAS,IAAA,EAAA,EAAA,UAAuB,GAAM,CACvC,GAAA,EAAA,EAAA,QAAqC,KAAK,CAmDhD,OAhDA,EAAA,EAAA,eAAgB,CACR,IACA,EAAW,GAAK,CAChB,EAAW,GAAM,GAEtB,CAAC,EAAK,CAAC,EAGV,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,GAAQ,EAAS,CAClB,EAAW,GAAK,CAChB,IAAM,EAAQ,eAAiB,CAC3B,EAAW,GAAM,CACjB,EAAW,GAAM,EAClB,EAAc,CACjB,UAAa,aAAa,EAAM,GAErC,CAAC,EAAM,EAAQ,CAAC,EAEnB,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,GAAQ,CAAC,EAAe,OAE7B,IAAM,EAAiB,GAAyB,CACxC,EAAM,MAAQ,UAAU,GAAS,EAIzC,OADA,SAAS,iBAAiB,UAAW,EAAc,KACtC,SAAS,oBAAoB,UAAW,EAAc,EACpE,CAAC,EAAe,EAAS,EAAK,CAAC,EAElC,EAAA,EAAA,eAAgB,CACZ,GAAI,CAAC,EAAS,OAEd,IAAM,EAAmB,SAAS,KAAK,MAAM,SAG7C,MAFA,UAAS,KAAK,MAAM,SAAW,aAElB,CACT,SAAS,KAAK,MAAM,SAAW,IAEpC,CAAC,EAAQ,CAAC,CAER,GAQD,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,UACI,EAAA,EAAA,KAAC,MAAD,CACI,IAAK,EACL,UAAW,EAAA,EAAG,mBAAoB,iBAAkB,GAAW,UAAU,CACzE,YAViB,GAAsC,CAC1D,GACD,EAAM,SAAW,EAAM,eAAe,GAAS,YAU3C,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,wBACZ,EAAA,EAAA,MAAC,EAAA,EAAD,CACI,UAAW,EAAA,EAAG,QAAS,EAAM,EAAU,CACvC,KAAM,SACN,aAAY,OACZ,kBAAiB,EAAQ,sBAAwB,IAAA,GACjD,GAAI,WALR,EAOM,GAAS,KACP,EAAA,EAAA,MAAC,EAAA,EAAD,CAAA,SAAA,CACK,IACG,EAAA,EAAA,KAAC,MAAD,CAAK,GAAI,sBAAuB,UAAW,uBACtC,EACC,CAAA,CAET,IAAe,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,6BAAsB,EAAkB,CAAA,CAC9D,CAAA,CAAA,EAElB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,WAAqB,CAAA,CAChC,IAAU,EAAA,EAAA,KAAC,EAAA,EAAD,CAAA,SAAc,EAAqB,CAAA,CAC1C,GACN,CAAA,CACJ,CAAA,CACA,CAAA,CArCO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Fi as e, Pi as t } from "./icons-
|
|
2
|
-
import { t as n } from "./cn-
|
|
3
|
-
import { t as r } from "./MButton-
|
|
1
|
+
import { Fi as e, Pi as t } from "./icons-CfpYxnfg.js";
|
|
2
|
+
import { t as n } from "./cn-YER3QsV1.js";
|
|
3
|
+
import { t as r } from "./MButton-y9qXhhGt.js";
|
|
4
4
|
import { useMemo as i } from "react";
|
|
5
5
|
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/layout/MPagination/MPagination.tsx
|
|
@@ -110,4 +110,4 @@ function l({ total: s, page: l, pageSize: u = 10, onChange: d, siblings: f = 1,
|
|
|
110
110
|
//#endregion
|
|
111
111
|
export { l as t };
|
|
112
112
|
|
|
113
|
-
//# sourceMappingURL=MPagination-
|
|
113
|
+
//# sourceMappingURL=MPagination-CTnaW5AW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPagination-
|
|
1
|
+
{"version":3,"file":"MPagination-CTnaW5AW.js","names":[],"sources":["../src/components/layout/MPagination/MPagination.tsx"],"sourcesContent":["import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport type {MPaginationProps} from './MPagination.types'\nimport './MPagination.css'\n\nfunction range(start: number, end: number): number[] {\n const result: number[] = []\n for (let i = start; i <= end; i++) result.push(i)\n return result\n}\n\nfunction buildPages(totalPages: number, page: number, siblings: number, boundaries: number): (number | 'dots')[] {\n if (totalPages <= boundaries * 2 + siblings * 2 + 3) {\n return range(1, totalPages)\n }\n\n const leftBound = Math.max(page - siblings, boundaries + 2)\n const rightBound = Math.min(page + siblings, totalPages - boundaries - 1)\n\n const showLeftDots = leftBound > boundaries + 2\n const showRightDots = rightBound < totalPages - boundaries - 1\n\n const leftEdge = range(1, boundaries)\n const rightEdge = range(totalPages - boundaries + 1, totalPages)\n\n if (!showLeftDots && showRightDots) {\n const leftCount = siblings * 2 + boundaries + 2\n return [...range(1, leftCount), 'dots', ...rightEdge]\n }\n\n if (showLeftDots && !showRightDots) {\n const rightCount = siblings * 2 + boundaries + 2\n return [...leftEdge, 'dots', ...range(totalPages - rightCount + 1, totalPages)]\n }\n\n return [...leftEdge, 'dots', ...range(leftBound, rightBound), 'dots', ...rightEdge]\n}\n\nexport function MPagination({\n total,\n page,\n pageSize = 10,\n onChange,\n siblings = 1,\n boundaries = 1,\n variant = 'numbered',\n className,\n ...rest\n}: MPaginationProps) {\n const totalPages = Math.max(1, Math.ceil(total / pageSize))\n const currentPage = Math.min(Math.max(1, page), totalPages)\n\n const pages = useMemo(\n () => buildPages(totalPages, currentPage, siblings, boundaries),\n [totalPages, currentPage, siblings, boundaries]\n )\n\n if (variant === 'simple') {\n return (\n <nav aria-label=\"pagination\" className={cn('pagination', className)} {...rest}>\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage <= 1}\n onClick={() => onChange(currentPage - 1)}\n className=\"nav\"\n >\n <MChevronLeftIcon />\n </MButton>\n <span className=\"info\">\n {currentPage} / {totalPages}\n </span>\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage >= totalPages}\n onClick={() => onChange(currentPage + 1)}\n className=\"nav\"\n >\n <MChevronRightIcon />\n </MButton>\n </nav>\n )\n }\n\n return (\n <nav aria-label=\"pagination\" className={cn('pagination', className)} {...rest}>\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage <= 1}\n onClick={() => onChange(currentPage - 1)}\n className=\"nav\"\n >\n <MChevronLeftIcon />\n </MButton>\n {pages.map((p, i) =>\n p === 'dots' ? (\n <span key={`dots-${i}`} className=\"dots\">\n …\n </span>\n ) : (\n <button\n key={p}\n type=\"button\"\n className={cn('btn', p === currentPage && 'active')}\n onClick={() => onChange(p)}\n >\n {p}\n </button>\n )\n )}\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage >= totalPages}\n onClick={() => onChange(currentPage + 1)}\n className=\"nav\"\n >\n <MChevronRightIcon />\n </MButton>\n </nav>\n )\n}\n"],"mappings":";;;;;;AAOA,SAAS,EAAM,GAAe,GAAuB;CACjD,IAAM,IAAmB,EAAE;AAC3B,MAAK,IAAI,IAAI,GAAO,KAAK,GAAK,IAAK,GAAO,KAAK,EAAE;AACjD,QAAO;;AAGX,SAAS,EAAW,GAAoB,GAAc,GAAkB,GAAyC;AAC7G,KAAI,KAAc,IAAa,IAAI,IAAW,IAAI,EAC9C,QAAO,EAAM,GAAG,EAAW;CAG/B,IAAM,IAAY,KAAK,IAAI,IAAO,GAAU,IAAa,EAAE,EACrD,IAAa,KAAK,IAAI,IAAO,GAAU,IAAa,IAAa,EAAE,EAEnE,IAAe,IAAY,IAAa,GACxC,IAAgB,IAAa,IAAa,IAAa,GAEvD,IAAW,EAAM,GAAG,EAAW,EAC/B,IAAY,EAAM,IAAa,IAAa,GAAG,EAAW;AAEhE,KAAI,CAAC,KAAgB,EAEjB,QAAO;EAAC,GAAG,EAAM,GADC,IAAW,IAAI,IAAa,EAChB;EAAE;EAAQ,GAAG;EAAU;AAGzD,KAAI,KAAgB,CAAC,GAAe;EAChC,IAAM,IAAa,IAAW,IAAI,IAAa;AAC/C,SAAO;GAAC,GAAG;GAAU;GAAQ,GAAG,EAAM,IAAa,IAAa,GAAG,EAAW;GAAC;;AAGnF,QAAO;EAAC,GAAG;EAAU;EAAQ,GAAG,EAAM,GAAW,EAAW;EAAE;EAAQ,GAAG;EAAU;;AAGvF,SAAgB,EAAY,EACxB,UACA,SACA,cAAW,IACX,aACA,cAAW,GACX,gBAAa,GACb,aAAU,YACV,cACA,GAAG,KACc;CACjB,IAAM,IAAa,KAAK,IAAI,GAAG,KAAK,KAAK,IAAQ,EAAS,CAAC,EACrD,IAAc,KAAK,IAAI,KAAK,IAAI,GAAG,EAAK,EAAE,EAAW,EAErD,IAAQ,QACJ,EAAW,GAAY,GAAa,GAAU,EAAW,EAC/D;EAAC;EAAY;EAAa;EAAU;EAAW,CAClD;AAgCD,QA9BI,MAAY,WAER,kBAAC,OAAD;EAAK,cAAW;EAAa,WAAW,EAAG,cAAc,EAAU;EAAE,GAAI;YAAzE;GACI,kBAAC,GAAD;IACI,SAAQ;IACR,MAAK;IACL,UAAA;IACA,UAAU,KAAe;IACzB,eAAe,EAAS,IAAc,EAAE;IACxC,WAAU;cAEV,kBAAC,GAAD,EAAoB,CAAA;IACd,CAAA;GACV,kBAAC,QAAD;IAAM,WAAU;cAAhB;KACK;KAAY;KAAI;KACd;;GACP,kBAAC,GAAD;IACI,SAAQ;IACR,MAAK;IACL,UAAA;IACA,UAAU,KAAe;IACzB,eAAe,EAAS,IAAc,EAAE;IACxC,WAAU;cAEV,kBAAC,GAAD,EAAqB,CAAA;IACf,CAAA;GACR;MAKV,kBAAC,OAAD;EAAK,cAAW;EAAa,WAAW,EAAG,cAAc,EAAU;EAAE,GAAI;YAAzE;GACI,kBAAC,GAAD;IACI,SAAQ;IACR,MAAK;IACL,UAAA;IACA,UAAU,KAAe;IACzB,eAAe,EAAS,IAAc,EAAE;IACxC,WAAU;cAEV,kBAAC,GAAD,EAAoB,CAAA;IACd,CAAA;GACT,EAAM,KAAK,GAAG,MACX,MAAM,SACF,kBAAC,QAAD;IAAwB,WAAU;cAAO;IAElC,EAFI,QAAQ,IAEZ,GAEP,kBAAC,UAAD;IAEI,MAAK;IACL,WAAW,EAAG,OAAO,MAAM,KAAe,SAAS;IACnD,eAAe,EAAS,EAAE;cAEzB;IACI,EANA,EAMA,CAEhB;GACD,kBAAC,GAAD;IACI,SAAQ;IACR,MAAK;IACL,UAAA;IACA,UAAU,KAAe;IACzB,eAAe,EAAS,IAAc,EAAE;IACxC,WAAU;cAEV,kBAAC,GAAD,EAAqB,CAAA;IACf,CAAA;GACR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./icons-DWMgDKgt.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MButton-DrkVdRDy.cjs`);require(`./core-AKWkE8Bx.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);function a(e,t){let n=[];for(let r=e;r<=t;r++)n.push(r);return n}function o(e,t,n,r){if(e<=r*2+n*2+3)return a(1,e);let i=Math.max(t-n,r+2),o=Math.min(t+n,e-r-1),s=i>r+2,c=o<e-r-1,l=a(1,r),u=a(e-r+1,e);if(!s&&c)return[...a(1,n*2+r+2),`dots`,...u];if(s&&!c){let t=n*2+r+2;return[...l,`dots`,...a(e-t+1,e)]}return[...l,`dots`,...a(i,o),`dots`,...u]}function s({total:a,page:s,pageSize:c=10,onChange:l,siblings:u=1,boundaries:d=1,variant:f=`numbered`,className:p,...m}){let h=Math.max(1,Math.ceil(a/c)),g=Math.min(Math.max(1,s),h),_=(0,r.useMemo)(()=>o(h,g,u,d),[h,g,u,d]);return f===`simple`?(0,i.jsxs)(`nav`,{"aria-label":`pagination`,className:t.t(`pagination`,p),...m,children:[(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g<=1,onClick:()=>l(g-1),className:`nav`,children:(0,i.jsx)(e.Fi,{})}),(0,i.jsxs)(`span`,{className:`info`,children:[g,` / `,h]}),(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g>=h,onClick:()=>l(g+1),className:`nav`,children:(0,i.jsx)(e.Pi,{})})]}):(0,i.jsxs)(`nav`,{"aria-label":`pagination`,className:t.t(`pagination`,p),...m,children:[(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g<=1,onClick:()=>l(g-1),className:`nav`,children:(0,i.jsx)(e.Fi,{})}),_.map((e,n)=>e===`dots`?(0,i.jsx)(`span`,{className:`dots`,children:`…`},`dots-${n}`):(0,i.jsx)(`button`,{type:`button`,className:t.t(`btn`,e===g&&`active`),onClick:()=>l(e),children:e},e)),(0,i.jsx)(n.t,{variant:`outlined`,size:`sm`,iconOnly:!0,disabled:g>=h,onClick:()=>l(g+1),className:`nav`,children:(0,i.jsx)(e.Pi,{})})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
|
2
|
+
//# sourceMappingURL=MPagination-CZEJMJzZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPagination-
|
|
1
|
+
{"version":3,"file":"MPagination-CZEJMJzZ.cjs","names":[],"sources":["../src/components/layout/MPagination/MPagination.tsx"],"sourcesContent":["import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport type {MPaginationProps} from './MPagination.types'\nimport './MPagination.css'\n\nfunction range(start: number, end: number): number[] {\n const result: number[] = []\n for (let i = start; i <= end; i++) result.push(i)\n return result\n}\n\nfunction buildPages(totalPages: number, page: number, siblings: number, boundaries: number): (number | 'dots')[] {\n if (totalPages <= boundaries * 2 + siblings * 2 + 3) {\n return range(1, totalPages)\n }\n\n const leftBound = Math.max(page - siblings, boundaries + 2)\n const rightBound = Math.min(page + siblings, totalPages - boundaries - 1)\n\n const showLeftDots = leftBound > boundaries + 2\n const showRightDots = rightBound < totalPages - boundaries - 1\n\n const leftEdge = range(1, boundaries)\n const rightEdge = range(totalPages - boundaries + 1, totalPages)\n\n if (!showLeftDots && showRightDots) {\n const leftCount = siblings * 2 + boundaries + 2\n return [...range(1, leftCount), 'dots', ...rightEdge]\n }\n\n if (showLeftDots && !showRightDots) {\n const rightCount = siblings * 2 + boundaries + 2\n return [...leftEdge, 'dots', ...range(totalPages - rightCount + 1, totalPages)]\n }\n\n return [...leftEdge, 'dots', ...range(leftBound, rightBound), 'dots', ...rightEdge]\n}\n\nexport function MPagination({\n total,\n page,\n pageSize = 10,\n onChange,\n siblings = 1,\n boundaries = 1,\n variant = 'numbered',\n className,\n ...rest\n}: MPaginationProps) {\n const totalPages = Math.max(1, Math.ceil(total / pageSize))\n const currentPage = Math.min(Math.max(1, page), totalPages)\n\n const pages = useMemo(\n () => buildPages(totalPages, currentPage, siblings, boundaries),\n [totalPages, currentPage, siblings, boundaries]\n )\n\n if (variant === 'simple') {\n return (\n <nav aria-label=\"pagination\" className={cn('pagination', className)} {...rest}>\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage <= 1}\n onClick={() => onChange(currentPage - 1)}\n className=\"nav\"\n >\n <MChevronLeftIcon />\n </MButton>\n <span className=\"info\">\n {currentPage} / {totalPages}\n </span>\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage >= totalPages}\n onClick={() => onChange(currentPage + 1)}\n className=\"nav\"\n >\n <MChevronRightIcon />\n </MButton>\n </nav>\n )\n }\n\n return (\n <nav aria-label=\"pagination\" className={cn('pagination', className)} {...rest}>\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage <= 1}\n onClick={() => onChange(currentPage - 1)}\n className=\"nav\"\n >\n <MChevronLeftIcon />\n </MButton>\n {pages.map((p, i) =>\n p === 'dots' ? (\n <span key={`dots-${i}`} className=\"dots\">\n …\n </span>\n ) : (\n <button\n key={p}\n type=\"button\"\n className={cn('btn', p === currentPage && 'active')}\n onClick={() => onChange(p)}\n >\n {p}\n </button>\n )\n )}\n <MButton\n variant=\"outlined\"\n size=\"sm\"\n iconOnly\n disabled={currentPage >= totalPages}\n onClick={() => onChange(currentPage + 1)}\n className=\"nav\"\n >\n <MChevronRightIcon />\n </MButton>\n </nav>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./cn-CU5TNITO.cjs`),t=require(`./MPortal-Bi24xTGW.cjs`);require(`./core-AKWkE8Bx.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i({open:i,anchorRef:a,onClose:o,placement:s=`bottom-start`,matchWidth:c=!1,offset:l=4,zIndex:u,children:d,className:f,style:p}){let m=(0,n.useRef)(null),[h,g]=(0,n.useState)(null),[_,v]=(0,n.useState)(!1),[y,b]=(0,n.useState)(null),x=(0,n.useCallback)(()=>{if(u!==void 0){b(u);return}let e=a.current;if(!e||typeof window>`u`){b(null);return}let t=e.closest(`.drawer-backdrop, .modal-backdrop, .sheet-backdrop, .sidebar.mobile-open`);if(!t){b(null);return}let n=window.getComputedStyle(t).zIndex,r=Number.parseInt(n,10);b(Number.isFinite(r)?r+1:null)},[a,u]),S=(0,n.useCallback)(()=>{if(!a.current||!m.current)return;let e=a.current.getBoundingClientRect(),t=m.current.getBoundingClientRect(),n={width:window.innerWidth,height:window.innerHeight},r=s.startsWith(`top`),i=s.startsWith(`right`),o=s.startsWith(`left`),u=i||o,d=s.endsWith(`end`),f,p;if(u){let r=n.width-e.right-l,a=e.left-l,o=i?r<t.width&&a>r:a<t.width&&r>a;v(o),p=(i?!o:o)?e.right+l+window.scrollX:e.left-t.width-l+window.scrollX,f=d?e.bottom-t.height+window.scrollY:e.top+window.scrollY}else{let i=n.height-e.bottom-l,a=e.top-l,o=r?a<t.height&&i>a:i<t.height&&a>i;v(o),f=(r?!o:o)?e.top-t.height-l+window.scrollY:e.bottom+l+window.scrollY,p=d?e.right-t.width+window.scrollX:e.left+window.scrollX}p=Math.max(8,Math.min(p,n.width-t.width-8)),f=Math.max(8+window.scrollY,f),g({top:f,left:p,width:c?e.width:void 0})},[a,s,l,c]);return(0,n.useEffect)(()=>{if(!i){g(null),b(null);return}return x(),requestAnimationFrame(S),window.addEventListener(`scroll`,S,{passive:!0}),window.addEventListener(`resize`,S,{passive:!0}),()=>{window.removeEventListener(`scroll`,S),window.removeEventListener(`resize`,S)}},[i,x,S]),(0,n.useEffect)(()=>{if(!i)return;let e=e=>{e.key===`Escape`&&o()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[i,o]),(0,n.useEffect)(()=>{if(!i)return;let e=e=>{m.current&&!m.current.contains(e.target)&&a.current&&!a.current.contains(e.target)&&o()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[i,o,a]),i?(0,r.jsx)(t.t,{children:(0,r.jsx)(`div`,{ref:m,className:e.t(`popover`,_?`flipped`:`normal`,f),style:{position:`absolute`,top:h?.top??0,left:h?.left??0,width:h?.width,zIndex:y??void 0,visibility:h?`visible`:`hidden`,...p},role:`listbox`,children:d})}):null}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
|
|
2
|
+
//# sourceMappingURL=MPopover-B4IUb9f0.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPopover-
|
|
1
|
+
{"version":3,"file":"MPopover-B4IUb9f0.cjs","names":[],"sources":["../src/components/primitives/MPopover/MPopover.tsx"],"sourcesContent":["import {useState, useEffect, useRef, useCallback} from 'react'\nimport {MPortal} from '../MPortal'\nimport {cn} from '../../../utils/cn'\nimport type {MPopoverProps} from './MPopover.types'\nimport './MPopover.css'\n\n// Position floating content relative to an anchor with viewport-aware flipping.\nexport function MPopover({\n open,\n anchorRef,\n onClose,\n placement = 'bottom-start',\n matchWidth = false,\n offset = 4,\n zIndex,\n children,\n className,\n style,\n}: MPopoverProps) {\n const popoverRef = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState<{top: number; left: number; width?: number} | null>(null)\n const [flipped, setFlipped] = useState(false)\n const [layerZ, setLayerZ] = useState<number | string | null>(null)\n\n // Lift popovers above drawers, modals and mobile sidebars when the anchor sits inside them.\n const updateLayer = useCallback(() => {\n if (zIndex !== undefined) {\n setLayerZ(zIndex)\n return\n }\n\n const anchor = anchorRef.current\n if (!anchor || typeof window === 'undefined') {\n setLayerZ(null)\n return\n }\n\n const layerHost = anchor.closest('.drawer-backdrop, .modal-backdrop, .sheet-backdrop, .sidebar.mobile-open')\n if (!layerHost) {\n setLayerZ(null)\n return\n }\n\n const computedZ = window.getComputedStyle(layerHost).zIndex\n const parsedZ = Number.parseInt(computedZ, 10)\n setLayerZ(Number.isFinite(parsedZ) ? parsedZ + 1 : null)\n }, [anchorRef, zIndex])\n\n // Recalculate popover position whenever layout or viewport constraints change.\n const updatePosition = useCallback(() => {\n if (!anchorRef.current || !popoverRef.current) return\n\n const anchor = anchorRef.current.getBoundingClientRect()\n const popover = popoverRef.current.getBoundingClientRect()\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const isTop = placement.startsWith('top')\n const isRight = placement.startsWith('right')\n const isLeft = placement.startsWith('left')\n const isHorizontal = isRight || isLeft\n const isEnd = placement.endsWith('end')\n\n let top: number\n let left: number\n\n if (isHorizontal) {\n // Horizontal placement: position to the right or left of the anchor\n const spaceRight = viewport.width - anchor.right - offset\n const spaceLeft = anchor.left - offset\n const shouldFlip = isRight\n ? spaceRight < popover.width && spaceLeft > spaceRight\n : spaceLeft < popover.width && spaceRight > spaceLeft\n\n setFlipped(shouldFlip)\n\n const showOnRight = isRight ? !shouldFlip : shouldFlip\n\n if (showOnRight) {\n left = anchor.right + offset + window.scrollX\n } else {\n left = anchor.left - popover.width - offset + window.scrollX\n }\n\n if (isEnd) {\n top = anchor.bottom - popover.height + window.scrollY\n } else {\n top = anchor.top + window.scrollY\n }\n } else {\n // Vertical placement: position above or below the anchor\n const spaceBelow = viewport.height - anchor.bottom - offset\n const spaceAbove = anchor.top - offset\n const shouldFlip = isTop\n ? spaceAbove < popover.height && spaceBelow > spaceAbove\n : spaceBelow < popover.height && spaceAbove > spaceBelow\n\n setFlipped(shouldFlip)\n\n const showOnTop = isTop ? !shouldFlip : shouldFlip\n\n if (showOnTop) {\n top = anchor.top - popover.height - offset + window.scrollY\n } else {\n top = anchor.bottom + offset + window.scrollY\n }\n\n if (isEnd) {\n left = anchor.right - popover.width + window.scrollX\n } else {\n left = anchor.left + window.scrollX\n }\n }\n\n // Clamp to viewport\n left = Math.max(8, Math.min(left, viewport.width - popover.width - 8))\n top = Math.max(8 + window.scrollY, top)\n\n setPosition({\n top,\n left,\n width: matchWidth ? anchor.width : undefined,\n })\n }, [anchorRef, placement, offset, matchWidth])\n\n useEffect(() => {\n if (!open) {\n setPosition(null)\n setLayerZ(null)\n return\n }\n\n updateLayer()\n // Wait one frame so the rendered popover can be measured accurately.\n requestAnimationFrame(updatePosition)\n\n window.addEventListener('scroll', updatePosition, {passive: true})\n window.addEventListener('resize', updatePosition, {passive: true})\n return () => {\n window.removeEventListener('scroll', updatePosition)\n window.removeEventListener('resize', updatePosition)\n }\n }, [open, updateLayer, updatePosition])\n\n // Close the popover with the standard Escape key interaction.\n useEffect(() => {\n if (!open) return\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n document.addEventListener('keydown', handleKey)\n return () => document.removeEventListener('keydown', handleKey)\n }, [open, onClose])\n\n // Close when the user interacts outside both the popover and its anchor.\n useEffect(() => {\n if (!open) return\n const handleClick = (e: MouseEvent) => {\n if (\n popoverRef.current &&\n !popoverRef.current.contains(e.target as Node) &&\n anchorRef.current &&\n !anchorRef.current.contains(e.target as Node)\n ) {\n onClose()\n }\n }\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [open, onClose, anchorRef])\n\n if (!open) return null\n\n return (\n <MPortal>\n <div\n ref={popoverRef}\n className={cn('popover', flipped ? 'flipped' : 'normal', className)}\n style={{\n position: 'absolute',\n top: position?.top ?? 0,\n left: position?.left ?? 0,\n width: position?.width,\n zIndex: layerZ ?? undefined,\n visibility: position ? 'visible' : 'hidden',\n ...style,\n }}\n role=\"listbox\"\n >\n {children}\n </div>\n </MPortal>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "./cn-
|
|
2
|
-
import { t } from "./MPortal-
|
|
1
|
+
import { t as e } from "./cn-YER3QsV1.js";
|
|
2
|
+
import { t } from "./MPortal-Ba2Sxset.js";
|
|
3
3
|
import { useCallback as n, useEffect as r, useRef as i, useState as a } from "react";
|
|
4
4
|
import { jsx as o } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/primitives/MPopover/MPopover.tsx
|
|
@@ -92,4 +92,4 @@ function s({ open: s, anchorRef: c, onClose: l, placement: u = "bottom-start", m
|
|
|
92
92
|
//#endregion
|
|
93
93
|
export { s as t };
|
|
94
94
|
|
|
95
|
-
//# sourceMappingURL=MPopover-
|
|
95
|
+
//# sourceMappingURL=MPopover-Cqz5TsHg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPopover-
|
|
1
|
+
{"version":3,"file":"MPopover-Cqz5TsHg.js","names":[],"sources":["../src/components/primitives/MPopover/MPopover.tsx"],"sourcesContent":["import {useState, useEffect, useRef, useCallback} from 'react'\nimport {MPortal} from '../MPortal'\nimport {cn} from '../../../utils/cn'\nimport type {MPopoverProps} from './MPopover.types'\nimport './MPopover.css'\n\n// Position floating content relative to an anchor with viewport-aware flipping.\nexport function MPopover({\n open,\n anchorRef,\n onClose,\n placement = 'bottom-start',\n matchWidth = false,\n offset = 4,\n zIndex,\n children,\n className,\n style,\n}: MPopoverProps) {\n const popoverRef = useRef<HTMLDivElement>(null)\n const [position, setPosition] = useState<{top: number; left: number; width?: number} | null>(null)\n const [flipped, setFlipped] = useState(false)\n const [layerZ, setLayerZ] = useState<number | string | null>(null)\n\n // Lift popovers above drawers, modals and mobile sidebars when the anchor sits inside them.\n const updateLayer = useCallback(() => {\n if (zIndex !== undefined) {\n setLayerZ(zIndex)\n return\n }\n\n const anchor = anchorRef.current\n if (!anchor || typeof window === 'undefined') {\n setLayerZ(null)\n return\n }\n\n const layerHost = anchor.closest('.drawer-backdrop, .modal-backdrop, .sheet-backdrop, .sidebar.mobile-open')\n if (!layerHost) {\n setLayerZ(null)\n return\n }\n\n const computedZ = window.getComputedStyle(layerHost).zIndex\n const parsedZ = Number.parseInt(computedZ, 10)\n setLayerZ(Number.isFinite(parsedZ) ? parsedZ + 1 : null)\n }, [anchorRef, zIndex])\n\n // Recalculate popover position whenever layout or viewport constraints change.\n const updatePosition = useCallback(() => {\n if (!anchorRef.current || !popoverRef.current) return\n\n const anchor = anchorRef.current.getBoundingClientRect()\n const popover = popoverRef.current.getBoundingClientRect()\n const viewport = {\n width: window.innerWidth,\n height: window.innerHeight,\n }\n\n const isTop = placement.startsWith('top')\n const isRight = placement.startsWith('right')\n const isLeft = placement.startsWith('left')\n const isHorizontal = isRight || isLeft\n const isEnd = placement.endsWith('end')\n\n let top: number\n let left: number\n\n if (isHorizontal) {\n // Horizontal placement: position to the right or left of the anchor\n const spaceRight = viewport.width - anchor.right - offset\n const spaceLeft = anchor.left - offset\n const shouldFlip = isRight\n ? spaceRight < popover.width && spaceLeft > spaceRight\n : spaceLeft < popover.width && spaceRight > spaceLeft\n\n setFlipped(shouldFlip)\n\n const showOnRight = isRight ? !shouldFlip : shouldFlip\n\n if (showOnRight) {\n left = anchor.right + offset + window.scrollX\n } else {\n left = anchor.left - popover.width - offset + window.scrollX\n }\n\n if (isEnd) {\n top = anchor.bottom - popover.height + window.scrollY\n } else {\n top = anchor.top + window.scrollY\n }\n } else {\n // Vertical placement: position above or below the anchor\n const spaceBelow = viewport.height - anchor.bottom - offset\n const spaceAbove = anchor.top - offset\n const shouldFlip = isTop\n ? spaceAbove < popover.height && spaceBelow > spaceAbove\n : spaceBelow < popover.height && spaceAbove > spaceBelow\n\n setFlipped(shouldFlip)\n\n const showOnTop = isTop ? !shouldFlip : shouldFlip\n\n if (showOnTop) {\n top = anchor.top - popover.height - offset + window.scrollY\n } else {\n top = anchor.bottom + offset + window.scrollY\n }\n\n if (isEnd) {\n left = anchor.right - popover.width + window.scrollX\n } else {\n left = anchor.left + window.scrollX\n }\n }\n\n // Clamp to viewport\n left = Math.max(8, Math.min(left, viewport.width - popover.width - 8))\n top = Math.max(8 + window.scrollY, top)\n\n setPosition({\n top,\n left,\n width: matchWidth ? anchor.width : undefined,\n })\n }, [anchorRef, placement, offset, matchWidth])\n\n useEffect(() => {\n if (!open) {\n setPosition(null)\n setLayerZ(null)\n return\n }\n\n updateLayer()\n // Wait one frame so the rendered popover can be measured accurately.\n requestAnimationFrame(updatePosition)\n\n window.addEventListener('scroll', updatePosition, {passive: true})\n window.addEventListener('resize', updatePosition, {passive: true})\n return () => {\n window.removeEventListener('scroll', updatePosition)\n window.removeEventListener('resize', updatePosition)\n }\n }, [open, updateLayer, updatePosition])\n\n // Close the popover with the standard Escape key interaction.\n useEffect(() => {\n if (!open) return\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n document.addEventListener('keydown', handleKey)\n return () => document.removeEventListener('keydown', handleKey)\n }, [open, onClose])\n\n // Close when the user interacts outside both the popover and its anchor.\n useEffect(() => {\n if (!open) return\n const handleClick = (e: MouseEvent) => {\n if (\n popoverRef.current &&\n !popoverRef.current.contains(e.target as Node) &&\n anchorRef.current &&\n !anchorRef.current.contains(e.target as Node)\n ) {\n onClose()\n }\n }\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [open, onClose, anchorRef])\n\n if (!open) return null\n\n return (\n <MPortal>\n <div\n ref={popoverRef}\n className={cn('popover', flipped ? 'flipped' : 'normal', className)}\n style={{\n position: 'absolute',\n top: position?.top ?? 0,\n left: position?.left ?? 0,\n width: position?.width,\n zIndex: layerZ ?? undefined,\n visibility: position ? 'visible' : 'hidden',\n ...style,\n }}\n role=\"listbox\"\n >\n {children}\n </div>\n </MPortal>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPortal-
|
|
1
|
+
{"version":3,"file":"MPortal-Ba2Sxset.js","names":[],"sources":["../src/components/primitives/MPortal/MPortal.tsx"],"sourcesContent":["import {createPortal} from 'react-dom'\nimport type {MPortalProps} from './MPortal.types'\n\n// Mount children into a detached DOM target while defaulting to document.body.\nexport function MPortal({children, container}: MPortalProps) {\n const target = container ?? (typeof document !== 'undefined' ? document.body : null)\n if (!target) return null\n return createPortal(children, target)\n}\n"],"mappings":";;AAIA,SAAgB,EAAQ,EAAC,aAAU,gBAA0B;CACzD,IAAM,IAAS,MAAc,OAAO,WAAa,MAAc,SAAS,OAAO;AAE/E,QADK,IACE,EAAa,GAAU,EAAO,GADjB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`./core-AKWkE8Bx.cjs`);let e=require(`react-dom`);function t({children:t,container:n}){let r=n??(typeof document<`u`?document.body:null);return r?(0,e.createPortal)(t,r):null}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
|
|
2
|
+
//# sourceMappingURL=MPortal-Bi24xTGW.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MPortal-
|
|
1
|
+
{"version":3,"file":"MPortal-Bi24xTGW.cjs","names":[],"sources":["../src/components/primitives/MPortal/MPortal.tsx"],"sourcesContent":["import {createPortal} from 'react-dom'\nimport type {MPortalProps} from './MPortal.types'\n\n// Mount children into a detached DOM target while defaulting to document.body.\nexport function MPortal({children, container}: MPortalProps) {\n const target = container ?? (typeof document !== 'undefined' ? document.body : null)\n if (!target) return null\n return createPortal(children, target)\n}\n"],"mappings":"0DAIA,SAAgB,EAAQ,CAAC,WAAU,aAA0B,CACzD,IAAM,EAAS,IAAc,OAAO,SAAa,IAAc,SAAS,KAAO,MAE/E,OADK,GACL,EAAA,EAAA,cAAoB,EAAU,EAAO,CADjB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`./icons-DWMgDKgt.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MButton-DrkVdRDy.cjs`);require(`./core-AKWkE8Bx.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);function a({value:n=0,max:a=5,color:o=`warning`,size:s=`md`,readOnly:c=!1,onChange:l,className:u,...d}){let[f,p]=(0,r.useState)(null),m=f??n,h=e=>{c||l?.(e)};return(0,i.jsx)(`div`,{className:t.t(`rating`,`color-${o}`,s,c&&`read-only`,u),role:`radiogroup`,"aria-label":`MRating`,onMouseLeave:()=>p(null),...d,children:Array.from({length:a},(t,n)=>{let r=n+1,a=m>=r;return(0,i.jsx)(`button`,{type:`button`,className:`rating-star`,onClick:()=>h(r),onMouseEnter:()=>!c&&p(r),"aria-label":`${r} star${r>1?`s`:``}`,tabIndex:c?-1:0,disabled:c,children:(0,i.jsx)(`span`,{className:`star-icon`,"aria-hidden":`true`,children:a?(0,i.jsx)(e.ai,{}):(0,i.jsx)(e.oi,{})})},n)})})}var o=[{version:1,size:21,dataWords:19,ecWords:7,byteLimit:17,align:[]},{version:2,size:25,dataWords:34,ecWords:10,byteLimit:32,align:[6,18]},{version:3,size:29,dataWords:55,ecWords:15,byteLimit:53,align:[6,22]},{version:4,size:33,dataWords:80,ecWords:20,byteLimit:78,align:[6,26]},{version:5,size:37,dataWords:108,ecWords:26,byteLimit:106,align:[6,30]}],s=[`111011111000100`,`111001011110011`,`111110110101010`,`111100010011101`,`110011000101111`,`110001100011000`,`110110001000001`,`110100101110110`],c=Array(512).fill(0),l=Array(256).fill(0),u=new TextEncoder,d=!1;function f(){if(d)return;let e=1;for(let t=0;t<255;t+=1)c[t]=e,l[e]=t,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e+=1)c[e]=c[e-255];d=!0}function p(e,t){return!e||!t?0:(f(),c[l[e]+l[t]])}function m(e,t){let n=Array(e.length+t.length-1).fill(0);for(let r=0;r<e.length;r+=1)for(let i=0;i<t.length;i+=1)n[r+i]^=p(e[r],t[i]);return n}function h(e){f();let t=[1];for(let n=0;n<e;n+=1)t=m(t,[1,c[n]]);return t}function g(e,t){let n=h(t),r=[...e,...Array(t).fill(0)];for(let t=0;t<e.length;t+=1){let e=r[t];if(e)for(let i=0;i<n.length;i+=1)r[t+i]^=p(n[i],e)}return r.slice(-t)}function _(e,t,n){for(let r=n-1;r>=0;--r)e.push(t>>r&1)}function v(e){let t=[];for(let n=0;n<e.length;n+=8){let r=0;for(let t=0;t<8;t+=1)r=r<<1|(e[n+t]??0);t.push(r)}return t}function y(e){return o.find(t=>e<=t.byteLimit)??null}function b(e,t){let n=Array.from(u.encode(e)),r=[],i=t.dataWords*8;for(_(r,4,4),_(r,n.length,8),n.forEach(e=>_(r,e,8)),_(r,0,Math.min(4,i-r.length));r.length%8!=0;)r.push(0);let a=[236,17];for(let e=0;r.length<i;e+=1)_(r,a[e%2],8);let o=v(r);return[...o,...g(o,t.ecWords)]}function x(e){return Array.from({length:e},()=>Array(e).fill(null))}function S(e,t,n,r,i){n<0||r<0||n>=e.length||r>=e.length||(e[n][r]=i,t[n][r]=!0)}function C(e,t,n,r){for(let i=-1;i<=7;i+=1)for(let a=-1;a<=7;a+=1){let o=i===-1||i===7||a===-1||a===7,s=i===0||i===6||a===0||a===6,c=i>=2&&i<=4&&a>=2&&a<=4;S(e,t,n+i,r+a,!o&&(s||c))}}function w(e,t,n,r){if(!t[n][r])for(let i=-2;i<=2;i+=1)for(let a=-2;a<=2;a+=1){let o=Math.max(Math.abs(i),Math.abs(a))===2,s=i===0&&a===0;S(e,t,n+i,r+a,o||s)}}function T(e){let t=e.length,n=[[8,0],[8,1],[8,2],[8,3],[8,4],[8,5],[8,7],[8,8],[7,8],[5,8],[4,8],[3,8],[2,8],[1,8],[0,8]],r=[[t-1,8],[t-2,8],[t-3,8],[t-4,8],[t-5,8],[t-6,8],[t-7,8],[8,t-8],[8,t-7],[8,t-6],[8,t-5],[8,t-4],[8,t-3],[8,t-2],[8,t-1]];[...n,...r].forEach(([t,n])=>{e[t][n]=!0})}function E(e){let t=x(e.size),n=Array.from({length:e.size},()=>Array(e.size).fill(!1));C(t,n,0,0),C(t,n,0,e.size-7),C(t,n,e.size-7,0);for(let r=8;r<e.size-8;r+=1)S(t,n,6,r,r%2==0),S(t,n,r,6,r%2==0);return e.align.forEach(r=>{e.align.forEach(e=>{w(t,n,r,e)})}),T(n),S(t,n,e.version*4+9,8,!0),{grid:t,marks:n}}function D(e,t,n){let r=e.length,i=[];n.forEach(e=>_(i,e,8));let a=0,o=!0;for(let n=r-1;n>0;n-=2){n===6&&--n;let s=o?r-1:0;for(;s>=0&&s<r;){for(let r=0;r<2;r+=1){let o=n-r;t[s][o]||(e[s][o]=i[a]===1,a+=1)}s+=o?-1:1}o=!o}for(let n=0;n<r;n+=1)for(let i=0;i<r;i+=1)!t[n][i]&&e[n][i]==null&&(e[n][i]=!1)}function O(e,t,n){switch(e){case 0:return(t+n)%2==0;case 1:return t%2==0;case 2:return n%3==0;case 3:return(t+n)%3==0;case 4:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case 5:return t*n%2+t*n%3==0;case 6:return(t*n%2+t*n%3)%2==0;case 7:return((t+n)%2+t*n%3)%2==0;default:return!1}}function k(e,t,n){return e.map((e,r)=>e.map((e,i)=>t[r][i]?!!e:O(n,r,i)?!e:!!e))}function A(e,t){let n=e.length,r=s[t],i=[[8,0],[8,1],[8,2],[8,3],[8,4],[8,5],[8,7],[8,8],[7,8],[5,8],[4,8],[3,8],[2,8],[1,8],[0,8]],a=[[n-1,8],[n-2,8],[n-3,8],[n-4,8],[n-5,8],[n-6,8],[n-7,8],[8,n-8],[8,n-7],[8,n-6],[8,n-5],[8,n-4],[8,n-3],[8,n-2],[8,n-1]],o=e.map(e=>[...e]);return r.split(``).forEach((e,t)=>{let n=e===`1`,[r,s]=i[t],[c,l]=a[t];o[r][s]=n,o[c][l]=n}),o}function j(e){let t=0,n=1;for(let r=1;r<=e.length;r+=1){if(e[r]===e[r-1]){n+=1;continue}n>=5&&(t+=n-2),n=1}return t}function M(e){let t=0;for(let n=0;n<e.length-1;n+=1)for(let r=0;r<e.length-1;r+=1){let i=e[n][r];i===e[n][r+1]&&i===e[n+1][r]&&i===e[n+1][r+1]&&(t+=3)}return t}function N(e){let t=0;for(let n=0;n<=e.length-11;n+=1){let r=e.slice(n,n+11).map(e=>e?`1`:`0`).join(``);(r===`10111010000`||r===`00001011101`)&&(t+=40)}return t}function P(e){let t=e.length*e.length,n=e.flat().filter(Boolean).length*100/t;return Math.floor(Math.abs(n-50)/5)*10}function F(e){let t=0;for(let n=0;n<e.length;n+=1)t+=j(e[n]),t+=N(e[n]);for(let n=0;n<e.length;n+=1){let r=e.map(e=>e[n]);t+=j(r),t+=N(r)}return t+=M(e),t+=P(e),t}function I(e){let t=y(Array.from(u.encode(e)).length);if(!t)return null;let{grid:n,marks:r}=E(t);D(n,r,b(e,t));let i=0,a=A(k(n,r,0),0),o=F(a);for(let e=1;e<8;e+=1){let t=A(k(n,r,e),e),s=F(t);s<o&&(i=e,a=t,o=s)}return{grid:a,mask:i}}function L({value:r,size:a=144,padding:o=4,fg:s=`#111827`,bg:c=`#ffffff`,status:l=`idle`,statusLabel:u,className:d,style:f,...p}){let m=I(r);if(!m)return null;let h=m.grid.length+o*2,g={"--qr-size":`${a}px`,...f},_=l===`success`?`success`:l===`error`?`error`:`primary`;return(0,i.jsxs)(`div`,{className:t.t(`qr-code`,l!==`idle`&&`status-${l}`,d),style:g,"aria-busy":l===`loading`||void 0,...p,children:[(0,i.jsxs)(`svg`,{className:t.t(l!==`idle`&&`dimmed`),viewBox:`0 0 ${h} ${h}`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,"aria-label":`QR code`,children:[(0,i.jsx)(`rect`,{width:h,height:h,fill:c}),m.grid.map((e,t)=>e.map((e,n)=>e?(0,i.jsx)(`rect`,{x:n+o,y:t+o,width:`1`,height:`1`,fill:s},`${t}-${n}`):null))]}),l!==`idle`&&(0,i.jsx)(`div`,{className:`qr-status-center`,"aria-label":u??`QR code ${l}`,role:`status`,children:l===`loading`?(0,i.jsx)(n.t,{variant:`ghost`,size:`lg`,color:_,shape:`circle`,iconOnly:!0,loading:!0,pulsing:!0,disabled:!0,tabIndex:-1,className:`qr-status-chip`,"aria-hidden":`true`}):l===`success`?(0,i.jsx)(n.t,{variant:`ghost`,size:`lg`,color:_,shape:`circle`,iconOnly:!0,pulsing:!0,disabled:!0,tabIndex:-1,className:`qr-status-chip`,"aria-hidden":`true`,children:(0,i.jsx)(e.ui,{})}):(0,i.jsx)(n.t,{variant:`ghost`,size:`lg`,color:_,shape:`circle`,iconOnly:!0,pulsing:!0,disabled:!0,tabIndex:-1,className:`qr-status-chip`,"aria-hidden":`true`,children:(0,i.jsx)(e.di,{})})})]})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return L}});
|
|
2
|
+
//# sourceMappingURL=MQrCode-ByfmG33y.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MQrCode-CMoru4dD.cjs","names":[],"sources":["../src/components/display/MRating/MRating.tsx","../src/components/display/MQrCode/MQrCode.tsx"],"sourcesContent":["import {useState} from 'react'\nimport type {MRatingProps} from './MRating.types'\nimport {MStarFillIcon, MStarIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MRating.css'\n\n// Render an interactive star-based rating control.\nexport function MRating({\n value = 0,\n max = 5,\n color = 'warning',\n size = 'md',\n readOnly = false,\n onChange,\n className,\n ...rest\n}: MRatingProps) {\n const [hovered, setHovered] = useState<number | null>(null)\n const displayValue = hovered ?? value\n\n const handleClick = (index: number) => {\n if (readOnly) return\n onChange?.(index)\n }\n\n return (\n <div\n className={cn('rating', `color-${color}`, size, readOnly && 'read-only', className)}\n role=\"radiogroup\"\n aria-label=\"MRating\"\n onMouseLeave={() => setHovered(null)}\n {...rest}\n >\n {Array.from({length: max}, (_, i) => {\n const starIndex = i + 1\n const filled = displayValue >= starIndex\n return (\n <button\n key={i}\n type=\"button\"\n className=\"rating-star\"\n onClick={() => handleClick(starIndex)}\n onMouseEnter={() => !readOnly && setHovered(starIndex)}\n aria-label={`${starIndex} star${starIndex > 1 ? 's' : ''}`}\n tabIndex={readOnly ? -1 : 0}\n disabled={readOnly}\n >\n <span className=\"star-icon\" aria-hidden=\"true\">\n {filled ? <MStarFillIcon /> : <MStarIcon />}\n </span>\n </button>\n )\n })}\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MQrCodeProps} from './MQrCode.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls/MButton'\nimport {MErrorIcon, MSuccessIcon} from '../../../icons'\nimport './MQrCode.css'\n\ntype VersionInfo = {\n version: number\n size: number\n dataWords: number\n ecWords: number\n byteLimit: number\n align: number[]\n}\n\nconst versions: VersionInfo[] = [\n {version: 1, size: 21, dataWords: 19, ecWords: 7, byteLimit: 17, align: []},\n {version: 2, size: 25, dataWords: 34, ecWords: 10, byteLimit: 32, align: [6, 18]},\n {version: 3, size: 29, dataWords: 55, ecWords: 15, byteLimit: 53, align: [6, 22]},\n {version: 4, size: 33, dataWords: 80, ecWords: 20, byteLimit: 78, align: [6, 26]},\n {version: 5, size: 37, dataWords: 108, ecWords: 26, byteLimit: 106, align: [6, 30]},\n]\n\nconst formatBits = [\n '111011111000100',\n '111001011110011',\n '111110110101010',\n '111100010011101',\n '110011000101111',\n '110001100011000',\n '110110001000001',\n '110100101110110',\n]\n\nconst expTable = new Array<number>(512).fill(0)\nconst logTable = new Array<number>(256).fill(0)\nconst encoder = new TextEncoder()\n\nlet fieldReady = false\n\n// Prepare log/exp lookup tables for QR Reed-Solomon math.\nfunction ensureField() {\n if (fieldReady) return\n\n let value = 1\n\n for (let i = 0; i < 255; i += 1) {\n expTable[i] = value\n logTable[value] = i\n value <<= 1\n\n if (value & 0x100) {\n value ^= 0x11d\n }\n }\n\n for (let i = 255; i < 512; i += 1) {\n expTable[i] = expTable[i - 255]\n }\n\n fieldReady = true\n}\n\n// Multiply two values inside the QR Galois field.\nfunction gfMul(a: number, b: number) {\n if (!a || !b) return 0\n ensureField()\n return expTable[logTable[a] + logTable[b]]\n}\n\n// Multiply generator polynomials used for error correction.\nfunction polyMul(left: number[], right: number[]) {\n const next = new Array(left.length + right.length - 1).fill(0)\n\n for (let row = 0; row < left.length; row += 1) {\n for (let col = 0; col < right.length; col += 1) {\n next[row + col] ^= gfMul(left[row], right[col])\n }\n }\n\n return next\n}\n\n// Build the generator polynomial for the chosen correction size.\nfunction makeGenerator(ecWords: number) {\n ensureField()\n\n let poly = [1]\n\n for (let i = 0; i < ecWords; i += 1) {\n poly = polyMul(poly, [1, expTable[i]])\n }\n\n return poly\n}\n\n// Compute Reed-Solomon error words for the current payload.\nfunction makeErrorWords(data: number[], ecWords: number) {\n const poly = makeGenerator(ecWords)\n const work = [...data, ...new Array(ecWords).fill(0)]\n\n for (let i = 0; i < data.length; i += 1) {\n const factor = work[i]\n\n if (!factor) continue\n\n for (let j = 0; j < poly.length; j += 1) {\n work[i + j] ^= gfMul(poly[j], factor)\n }\n }\n\n return work.slice(-ecWords)\n}\n\n// Push bits in MSB order so QR payload building stays explicit.\nfunction pushBits(target: number[], value: number, size: number) {\n for (let bit = size - 1; bit >= 0; bit -= 1) {\n target.push((value >> bit) & 1)\n }\n}\n\n// Repack a flat bit list into QR codewords.\nfunction bitsToBytes(bits: number[]) {\n const bytes: number[] = []\n\n for (let i = 0; i < bits.length; i += 8) {\n let byte = 0\n\n for (let bit = 0; bit < 8; bit += 1) {\n byte = (byte << 1) | (bits[i + bit] ?? 0)\n }\n\n bytes.push(byte)\n }\n\n return bytes\n}\n\n// Pick the smallest supported QR version for the payload.\nfunction pickVersion(length: number) {\n return versions.find((item) => length <= item.byteLimit) ?? null\n}\n\n// Encode a string as byte mode payload plus correction words.\nfunction encodeData(value: string, info: VersionInfo) {\n const data = Array.from(encoder.encode(value))\n const bits: number[] = []\n const capacity = info.dataWords * 8\n\n pushBits(bits, 0b0100, 4)\n pushBits(bits, data.length, 8)\n\n data.forEach((byte) => pushBits(bits, byte, 8))\n\n pushBits(bits, 0, Math.min(4, capacity - bits.length))\n\n while (bits.length % 8 !== 0) {\n bits.push(0)\n }\n\n const pads = [0xec, 0x11]\n\n for (let i = 0; bits.length < capacity; i += 1) {\n pushBits(bits, pads[i % 2], 8)\n }\n\n const dataWords = bitsToBytes(bits)\n return [...dataWords, ...makeErrorWords(dataWords, info.ecWords)]\n}\n\n// Create an empty matrix before function patterns are placed.\nfunction makeGrid(size: number) {\n return Array.from({length: size}, () => Array<boolean | null>(size).fill(null))\n}\n\n// Write a module and mark it as reserved.\nfunction setCell(grid: (boolean | null)[][], marks: boolean[][], row: number, col: number, dark: boolean) {\n if (row < 0 || col < 0 || row >= grid.length || col >= grid.length) return\n grid[row][col] = dark\n marks[row][col] = true\n}\n\n// Place one finder pattern with its quiet white border.\nfunction placeFinder(grid: (boolean | null)[][], marks: boolean[][], top: number, left: number) {\n for (let row = -1; row <= 7; row += 1) {\n for (let col = -1; col <= 7; col += 1) {\n const edge = row === -1 || row === 7 || col === -1 || col === 7\n const outer = row === 0 || row === 6 || col === 0 || col === 6\n const inner = row >= 2 && row <= 4 && col >= 2 && col <= 4\n setCell(grid, marks, top + row, left + col, !edge && (outer || inner))\n }\n }\n}\n\n// Place one alignment pattern unless another function block already owns it.\nfunction placeAlign(grid: (boolean | null)[][], marks: boolean[][], center: number, middle: number) {\n if (marks[center][middle]) return\n\n for (let row = -2; row <= 2; row += 1) {\n for (let col = -2; col <= 2; col += 1) {\n const edge = Math.max(Math.abs(row), Math.abs(col)) === 2\n const dot = row === 0 && col === 0\n setCell(grid, marks, center + row, middle + col, edge || dot)\n }\n }\n}\n\n// Reserve format info cells before data placement starts.\nfunction markFormat(marks: boolean[][]) {\n const size = marks.length\n const left = [\n [8, 0],\n [8, 1],\n [8, 2],\n [8, 3],\n [8, 4],\n [8, 5],\n [8, 7],\n [8, 8],\n [7, 8],\n [5, 8],\n [4, 8],\n [3, 8],\n [2, 8],\n [1, 8],\n [0, 8],\n ]\n const right = [\n [size - 1, 8],\n [size - 2, 8],\n [size - 3, 8],\n [size - 4, 8],\n [size - 5, 8],\n [size - 6, 8],\n [size - 7, 8],\n [8, size - 8],\n [8, size - 7],\n [8, size - 6],\n [8, size - 5],\n [8, size - 4],\n [8, size - 3],\n [8, size - 2],\n [8, size - 1],\n ]\n\n ;[...left, ...right].forEach(([row, col]) => {\n marks[row][col] = true\n })\n}\n\n// Build the static QR scaffolding: finders, timing and align blocks.\nfunction makeBase(info: VersionInfo) {\n const grid = makeGrid(info.size)\n const marks = Array.from({length: info.size}, () => Array<boolean>(info.size).fill(false))\n\n placeFinder(grid, marks, 0, 0)\n placeFinder(grid, marks, 0, info.size - 7)\n placeFinder(grid, marks, info.size - 7, 0)\n\n for (let i = 8; i < info.size - 8; i += 1) {\n setCell(grid, marks, 6, i, i % 2 === 0)\n setCell(grid, marks, i, 6, i % 2 === 0)\n }\n\n info.align.forEach((row) => {\n info.align.forEach((col) => {\n placeAlign(grid, marks, row, col)\n })\n })\n\n markFormat(marks)\n setCell(grid, marks, info.version * 4 + 9, 8, true)\n\n return {grid, marks}\n}\n\n// Fill open cells with payload bits using the QR zig-zag path.\nfunction placeData(grid: (boolean | null)[][], marks: boolean[][], words: number[]) {\n const size = grid.length\n const bits: number[] = []\n\n words.forEach((word) => pushBits(bits, word, 8))\n\n let index = 0\n let up = true\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) {\n col -= 1\n }\n\n let row = up ? size - 1 : 0\n\n while (row >= 0 && row < size) {\n for (let offset = 0; offset < 2; offset += 1) {\n const x = col - offset\n\n if (marks[row][x]) continue\n\n grid[row][x] = bits[index] === 1\n index += 1\n }\n\n row += up ? -1 : 1\n }\n\n up = !up\n }\n\n for (let row = 0; row < size; row += 1) {\n for (let col = 0; col < size; col += 1) {\n if (!marks[row][col] && grid[row][col] == null) {\n grid[row][col] = false\n }\n }\n }\n}\n\n// Check whether the current mask flips this module.\nfunction shouldFlip(mask: number, row: number, col: number) {\n switch (mask) {\n case 0:\n return (row + col) % 2 === 0\n case 1:\n return row % 2 === 0\n case 2:\n return col % 3 === 0\n case 3:\n return (row + col) % 3 === 0\n case 4:\n return (Math.floor(row / 2) + Math.floor(col / 3)) % 2 === 0\n case 5:\n return ((row * col) % 2) + ((row * col) % 3) === 0\n case 6:\n return (((row * col) % 2) + ((row * col) % 3)) % 2 === 0\n case 7:\n return (((row + col) % 2) + ((row * col) % 3)) % 2 === 0\n default:\n return false\n }\n}\n\n// Apply one mask while leaving reserved cells untouched.\nfunction applyMask(grid: (boolean | null)[][], marks: boolean[][], mask: number) {\n return grid.map((line, row) =>\n line.map((cell, col) => {\n if (marks[row][col]) return Boolean(cell)\n return shouldFlip(mask, row, col) ? !cell : Boolean(cell)\n })\n )\n}\n\n// Write format bits into both reserved format strips.\nfunction withFormat(grid: boolean[][], mask: number) {\n const size = grid.length\n const bits = formatBits[mask]\n const left = [\n [8, 0],\n [8, 1],\n [8, 2],\n [8, 3],\n [8, 4],\n [8, 5],\n [8, 7],\n [8, 8],\n [7, 8],\n [5, 8],\n [4, 8],\n [3, 8],\n [2, 8],\n [1, 8],\n [0, 8],\n ]\n const right = [\n [size - 1, 8],\n [size - 2, 8],\n [size - 3, 8],\n [size - 4, 8],\n [size - 5, 8],\n [size - 6, 8],\n [size - 7, 8],\n [8, size - 8],\n [8, size - 7],\n [8, size - 6],\n [8, size - 5],\n [8, size - 4],\n [8, size - 3],\n [8, size - 2],\n [8, size - 1],\n ]\n const next = grid.map((line) => [...line])\n\n bits.split('').forEach((bit, index) => {\n const dark = bit === '1'\n const [leftRow, leftCol] = left[index]\n const [rightRow, rightCol] = right[index]\n\n next[leftRow][leftCol] = dark\n next[rightRow][rightCol] = dark\n })\n\n return next\n}\n\n// Penalize long runs of the same color.\nfunction runPenalty(values: boolean[]) {\n let score = 0\n let run = 1\n\n for (let i = 1; i <= values.length; i += 1) {\n if (values[i] === values[i - 1]) {\n run += 1\n continue\n }\n\n if (run >= 5) {\n score += run - 2\n }\n\n run = 1\n }\n\n return score\n}\n\n// Penalize large flat blocks that scan poorly.\nfunction blockPenalty(grid: boolean[][]) {\n let score = 0\n\n for (let row = 0; row < grid.length - 1; row += 1) {\n for (let col = 0; col < grid.length - 1; col += 1) {\n const cell = grid[row][col]\n\n if (cell === grid[row][col + 1] && cell === grid[row + 1][col] && cell === grid[row + 1][col + 1]) {\n score += 3\n }\n }\n }\n\n return score\n}\n\n// Penalize patterns that look too similar to finder markers.\nfunction finderPenalty(values: boolean[]) {\n const matchA = '10111010000'\n const matchB = '00001011101'\n let score = 0\n\n for (let i = 0; i <= values.length - 11; i += 1) {\n const slice = values\n .slice(i, i + 11)\n .map((cell) => (cell ? '1' : '0'))\n .join('')\n\n if (slice === matchA || slice === matchB) {\n score += 40\n }\n }\n\n return score\n}\n\n// Keep the dark/light balance near the QR target.\nfunction ratioPenalty(grid: boolean[][]) {\n const total = grid.length * grid.length\n const dark = grid.flat().filter(Boolean).length\n const ratio = (dark * 100) / total\n return Math.floor(Math.abs(ratio - 50) / 5) * 10\n}\n\n// Sum the standard QR penalties for one candidate matrix.\nfunction getPenalty(grid: boolean[][]) {\n let score = 0\n\n for (let row = 0; row < grid.length; row += 1) {\n score += runPenalty(grid[row])\n score += finderPenalty(grid[row])\n }\n\n for (let col = 0; col < grid.length; col += 1) {\n const line = grid.map((row) => row[col])\n score += runPenalty(line)\n score += finderPenalty(line)\n }\n\n score += blockPenalty(grid)\n score += ratioPenalty(grid)\n\n return score\n}\n\n// Build the final matrix and pick the mask with the lowest penalty.\nfunction makeMatrix(value: string) {\n const data = Array.from(encoder.encode(value))\n const info = pickVersion(data.length)\n\n if (!info) {\n return null\n }\n\n const {grid, marks} = makeBase(info)\n placeData(grid, marks, encodeData(value, info))\n\n let bestMask = 0\n let bestGrid = withFormat(applyMask(grid, marks, 0), 0)\n let bestScore = getPenalty(bestGrid)\n\n for (let mask = 1; mask < 8; mask += 1) {\n const masked = withFormat(applyMask(grid, marks, mask), mask)\n const score = getPenalty(masked)\n\n if (score < bestScore) {\n bestMask = mask\n bestGrid = masked\n bestScore = score\n }\n }\n\n return {grid: bestGrid, mask: bestMask}\n}\n\n// Render a local SVG QR code without adding a runtime dependency.\nexport function MQrCode({\n value,\n size = 144,\n padding = 4,\n fg = '#111827',\n bg = '#ffffff',\n status = 'idle',\n statusLabel,\n className,\n style,\n ...rest\n}: MQrCodeProps) {\n const qr = makeMatrix(value)\n\n if (!qr) {\n return null\n }\n\n const dimension = qr.grid.length + padding * 2\n const nextStyle = {\n '--qr-size': `${size}px`,\n ...style,\n } as CSSProperties\n const statusColor = status === 'success' ? 'success' : status === 'error' ? 'error' : 'primary'\n\n return (\n <div\n className={cn('qr-code', status !== 'idle' && `status-${status}`, className)}\n style={nextStyle}\n aria-busy={status === 'loading' || undefined}\n {...rest}\n >\n <svg\n className={cn(status !== 'idle' && 'dimmed')}\n viewBox={`0 0 ${dimension} ${dimension}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"QR code\"\n >\n <rect width={dimension} height={dimension} fill={bg} />\n {qr.grid.map((line, row) =>\n line.map((cell, col) =>\n cell ? (\n <rect\n key={`${row}-${col}`}\n x={col + padding}\n y={row + padding}\n width=\"1\"\n height=\"1\"\n fill={fg}\n />\n ) : null\n )\n )}\n </svg>\n {status !== 'idle' && (\n <div className=\"qr-status-center\" aria-label={statusLabel ?? `QR code ${status}`} role=\"status\">\n {status === 'loading' ? (\n <MButton\n variant=\"ghost\"\n size=\"lg\"\n color={statusColor}\n shape=\"circle\"\n iconOnly\n loading\n pulsing\n disabled\n tabIndex={-1}\n className=\"qr-status-chip\"\n aria-hidden=\"true\"\n />\n ) : status === 'success' ? (\n <MButton\n variant=\"ghost\"\n size=\"lg\"\n color={statusColor}\n shape=\"circle\"\n iconOnly\n pulsing\n disabled\n tabIndex={-1}\n className=\"qr-status-chip\"\n aria-hidden=\"true\"\n >\n <MSuccessIcon />\n </MButton>\n ) : (\n <MButton\n variant=\"ghost\"\n size=\"lg\"\n color={statusColor}\n shape=\"circle\"\n iconOnly\n pulsing\n disabled\n tabIndex={-1}\n className=\"qr-status-chip\"\n aria-hidden=\"true\"\n >\n <MErrorIcon />\n </MButton>\n )}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MQrCode-ByfmG33y.cjs","names":[],"sources":["../src/components/display/MRating/MRating.tsx","../src/components/display/MQrCode/MQrCode.tsx"],"sourcesContent":["import {useState} from 'react'\nimport type {MRatingProps} from './MRating.types'\nimport {MStarFillIcon, MStarIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MRating.css'\n\n// Render an interactive star-based rating control.\nexport function MRating({\n value = 0,\n max = 5,\n color = 'warning',\n size = 'md',\n readOnly = false,\n onChange,\n className,\n ...rest\n}: MRatingProps) {\n const [hovered, setHovered] = useState<number | null>(null)\n const displayValue = hovered ?? value\n\n const handleClick = (index: number) => {\n if (readOnly) return\n onChange?.(index)\n }\n\n return (\n <div\n className={cn('rating', `color-${color}`, size, readOnly && 'read-only', className)}\n role=\"radiogroup\"\n aria-label=\"MRating\"\n onMouseLeave={() => setHovered(null)}\n {...rest}\n >\n {Array.from({length: max}, (_, i) => {\n const starIndex = i + 1\n const filled = displayValue >= starIndex\n return (\n <button\n key={i}\n type=\"button\"\n className=\"rating-star\"\n onClick={() => handleClick(starIndex)}\n onMouseEnter={() => !readOnly && setHovered(starIndex)}\n aria-label={`${starIndex} star${starIndex > 1 ? 's' : ''}`}\n tabIndex={readOnly ? -1 : 0}\n disabled={readOnly}\n >\n <span className=\"star-icon\" aria-hidden=\"true\">\n {filled ? <MStarFillIcon /> : <MStarIcon />}\n </span>\n </button>\n )\n })}\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MQrCodeProps} from './MQrCode.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls/MButton'\nimport {MErrorIcon, MSuccessIcon} from '../../../icons'\nimport './MQrCode.css'\n\ntype VersionInfo = {\n version: number\n size: number\n dataWords: number\n ecWords: number\n byteLimit: number\n align: number[]\n}\n\nconst versions: VersionInfo[] = [\n {version: 1, size: 21, dataWords: 19, ecWords: 7, byteLimit: 17, align: []},\n {version: 2, size: 25, dataWords: 34, ecWords: 10, byteLimit: 32, align: [6, 18]},\n {version: 3, size: 29, dataWords: 55, ecWords: 15, byteLimit: 53, align: [6, 22]},\n {version: 4, size: 33, dataWords: 80, ecWords: 20, byteLimit: 78, align: [6, 26]},\n {version: 5, size: 37, dataWords: 108, ecWords: 26, byteLimit: 106, align: [6, 30]},\n]\n\nconst formatBits = [\n '111011111000100',\n '111001011110011',\n '111110110101010',\n '111100010011101',\n '110011000101111',\n '110001100011000',\n '110110001000001',\n '110100101110110',\n]\n\nconst expTable = new Array<number>(512).fill(0)\nconst logTable = new Array<number>(256).fill(0)\nconst encoder = new TextEncoder()\n\nlet fieldReady = false\n\n// Prepare log/exp lookup tables for QR Reed-Solomon math.\nfunction ensureField() {\n if (fieldReady) return\n\n let value = 1\n\n for (let i = 0; i < 255; i += 1) {\n expTable[i] = value\n logTable[value] = i\n value <<= 1\n\n if (value & 0x100) {\n value ^= 0x11d\n }\n }\n\n for (let i = 255; i < 512; i += 1) {\n expTable[i] = expTable[i - 255]\n }\n\n fieldReady = true\n}\n\n// Multiply two values inside the QR Galois field.\nfunction gfMul(a: number, b: number) {\n if (!a || !b) return 0\n ensureField()\n return expTable[logTable[a] + logTable[b]]\n}\n\n// Multiply generator polynomials used for error correction.\nfunction polyMul(left: number[], right: number[]) {\n const next = new Array(left.length + right.length - 1).fill(0)\n\n for (let row = 0; row < left.length; row += 1) {\n for (let col = 0; col < right.length; col += 1) {\n next[row + col] ^= gfMul(left[row], right[col])\n }\n }\n\n return next\n}\n\n// Build the generator polynomial for the chosen correction size.\nfunction makeGenerator(ecWords: number) {\n ensureField()\n\n let poly = [1]\n\n for (let i = 0; i < ecWords; i += 1) {\n poly = polyMul(poly, [1, expTable[i]])\n }\n\n return poly\n}\n\n// Compute Reed-Solomon error words for the current payload.\nfunction makeErrorWords(data: number[], ecWords: number) {\n const poly = makeGenerator(ecWords)\n const work = [...data, ...new Array(ecWords).fill(0)]\n\n for (let i = 0; i < data.length; i += 1) {\n const factor = work[i]\n\n if (!factor) continue\n\n for (let j = 0; j < poly.length; j += 1) {\n work[i + j] ^= gfMul(poly[j], factor)\n }\n }\n\n return work.slice(-ecWords)\n}\n\n// Push bits in MSB order so QR payload building stays explicit.\nfunction pushBits(target: number[], value: number, size: number) {\n for (let bit = size - 1; bit >= 0; bit -= 1) {\n target.push((value >> bit) & 1)\n }\n}\n\n// Repack a flat bit list into QR codewords.\nfunction bitsToBytes(bits: number[]) {\n const bytes: number[] = []\n\n for (let i = 0; i < bits.length; i += 8) {\n let byte = 0\n\n for (let bit = 0; bit < 8; bit += 1) {\n byte = (byte << 1) | (bits[i + bit] ?? 0)\n }\n\n bytes.push(byte)\n }\n\n return bytes\n}\n\n// Pick the smallest supported QR version for the payload.\nfunction pickVersion(length: number) {\n return versions.find((item) => length <= item.byteLimit) ?? null\n}\n\n// Encode a string as byte mode payload plus correction words.\nfunction encodeData(value: string, info: VersionInfo) {\n const data = Array.from(encoder.encode(value))\n const bits: number[] = []\n const capacity = info.dataWords * 8\n\n pushBits(bits, 0b0100, 4)\n pushBits(bits, data.length, 8)\n\n data.forEach((byte) => pushBits(bits, byte, 8))\n\n pushBits(bits, 0, Math.min(4, capacity - bits.length))\n\n while (bits.length % 8 !== 0) {\n bits.push(0)\n }\n\n const pads = [0xec, 0x11]\n\n for (let i = 0; bits.length < capacity; i += 1) {\n pushBits(bits, pads[i % 2], 8)\n }\n\n const dataWords = bitsToBytes(bits)\n return [...dataWords, ...makeErrorWords(dataWords, info.ecWords)]\n}\n\n// Create an empty matrix before function patterns are placed.\nfunction makeGrid(size: number) {\n return Array.from({length: size}, () => Array<boolean | null>(size).fill(null))\n}\n\n// Write a module and mark it as reserved.\nfunction setCell(grid: (boolean | null)[][], marks: boolean[][], row: number, col: number, dark: boolean) {\n if (row < 0 || col < 0 || row >= grid.length || col >= grid.length) return\n grid[row][col] = dark\n marks[row][col] = true\n}\n\n// Place one finder pattern with its quiet white border.\nfunction placeFinder(grid: (boolean | null)[][], marks: boolean[][], top: number, left: number) {\n for (let row = -1; row <= 7; row += 1) {\n for (let col = -1; col <= 7; col += 1) {\n const edge = row === -1 || row === 7 || col === -1 || col === 7\n const outer = row === 0 || row === 6 || col === 0 || col === 6\n const inner = row >= 2 && row <= 4 && col >= 2 && col <= 4\n setCell(grid, marks, top + row, left + col, !edge && (outer || inner))\n }\n }\n}\n\n// Place one alignment pattern unless another function block already owns it.\nfunction placeAlign(grid: (boolean | null)[][], marks: boolean[][], center: number, middle: number) {\n if (marks[center][middle]) return\n\n for (let row = -2; row <= 2; row += 1) {\n for (let col = -2; col <= 2; col += 1) {\n const edge = Math.max(Math.abs(row), Math.abs(col)) === 2\n const dot = row === 0 && col === 0\n setCell(grid, marks, center + row, middle + col, edge || dot)\n }\n }\n}\n\n// Reserve format info cells before data placement starts.\nfunction markFormat(marks: boolean[][]) {\n const size = marks.length\n const left = [\n [8, 0],\n [8, 1],\n [8, 2],\n [8, 3],\n [8, 4],\n [8, 5],\n [8, 7],\n [8, 8],\n [7, 8],\n [5, 8],\n [4, 8],\n [3, 8],\n [2, 8],\n [1, 8],\n [0, 8],\n ]\n const right = [\n [size - 1, 8],\n [size - 2, 8],\n [size - 3, 8],\n [size - 4, 8],\n [size - 5, 8],\n [size - 6, 8],\n [size - 7, 8],\n [8, size - 8],\n [8, size - 7],\n [8, size - 6],\n [8, size - 5],\n [8, size - 4],\n [8, size - 3],\n [8, size - 2],\n [8, size - 1],\n ]\n\n ;[...left, ...right].forEach(([row, col]) => {\n marks[row][col] = true\n })\n}\n\n// Build the static QR scaffolding: finders, timing and align blocks.\nfunction makeBase(info: VersionInfo) {\n const grid = makeGrid(info.size)\n const marks = Array.from({length: info.size}, () => Array<boolean>(info.size).fill(false))\n\n placeFinder(grid, marks, 0, 0)\n placeFinder(grid, marks, 0, info.size - 7)\n placeFinder(grid, marks, info.size - 7, 0)\n\n for (let i = 8; i < info.size - 8; i += 1) {\n setCell(grid, marks, 6, i, i % 2 === 0)\n setCell(grid, marks, i, 6, i % 2 === 0)\n }\n\n info.align.forEach((row) => {\n info.align.forEach((col) => {\n placeAlign(grid, marks, row, col)\n })\n })\n\n markFormat(marks)\n setCell(grid, marks, info.version * 4 + 9, 8, true)\n\n return {grid, marks}\n}\n\n// Fill open cells with payload bits using the QR zig-zag path.\nfunction placeData(grid: (boolean | null)[][], marks: boolean[][], words: number[]) {\n const size = grid.length\n const bits: number[] = []\n\n words.forEach((word) => pushBits(bits, word, 8))\n\n let index = 0\n let up = true\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) {\n col -= 1\n }\n\n let row = up ? size - 1 : 0\n\n while (row >= 0 && row < size) {\n for (let offset = 0; offset < 2; offset += 1) {\n const x = col - offset\n\n if (marks[row][x]) continue\n\n grid[row][x] = bits[index] === 1\n index += 1\n }\n\n row += up ? -1 : 1\n }\n\n up = !up\n }\n\n for (let row = 0; row < size; row += 1) {\n for (let col = 0; col < size; col += 1) {\n if (!marks[row][col] && grid[row][col] == null) {\n grid[row][col] = false\n }\n }\n }\n}\n\n// Check whether the current mask flips this module.\nfunction shouldFlip(mask: number, row: number, col: number) {\n switch (mask) {\n case 0:\n return (row + col) % 2 === 0\n case 1:\n return row % 2 === 0\n case 2:\n return col % 3 === 0\n case 3:\n return (row + col) % 3 === 0\n case 4:\n return (Math.floor(row / 2) + Math.floor(col / 3)) % 2 === 0\n case 5:\n return ((row * col) % 2) + ((row * col) % 3) === 0\n case 6:\n return (((row * col) % 2) + ((row * col) % 3)) % 2 === 0\n case 7:\n return (((row + col) % 2) + ((row * col) % 3)) % 2 === 0\n default:\n return false\n }\n}\n\n// Apply one mask while leaving reserved cells untouched.\nfunction applyMask(grid: (boolean | null)[][], marks: boolean[][], mask: number) {\n return grid.map((line, row) =>\n line.map((cell, col) => {\n if (marks[row][col]) return Boolean(cell)\n return shouldFlip(mask, row, col) ? !cell : Boolean(cell)\n })\n )\n}\n\n// Write format bits into both reserved format strips.\nfunction withFormat(grid: boolean[][], mask: number) {\n const size = grid.length\n const bits = formatBits[mask]\n const left = [\n [8, 0],\n [8, 1],\n [8, 2],\n [8, 3],\n [8, 4],\n [8, 5],\n [8, 7],\n [8, 8],\n [7, 8],\n [5, 8],\n [4, 8],\n [3, 8],\n [2, 8],\n [1, 8],\n [0, 8],\n ]\n const right = [\n [size - 1, 8],\n [size - 2, 8],\n [size - 3, 8],\n [size - 4, 8],\n [size - 5, 8],\n [size - 6, 8],\n [size - 7, 8],\n [8, size - 8],\n [8, size - 7],\n [8, size - 6],\n [8, size - 5],\n [8, size - 4],\n [8, size - 3],\n [8, size - 2],\n [8, size - 1],\n ]\n const next = grid.map((line) => [...line])\n\n bits.split('').forEach((bit, index) => {\n const dark = bit === '1'\n const [leftRow, leftCol] = left[index]\n const [rightRow, rightCol] = right[index]\n\n next[leftRow][leftCol] = dark\n next[rightRow][rightCol] = dark\n })\n\n return next\n}\n\n// Penalize long runs of the same color.\nfunction runPenalty(values: boolean[]) {\n let score = 0\n let run = 1\n\n for (let i = 1; i <= values.length; i += 1) {\n if (values[i] === values[i - 1]) {\n run += 1\n continue\n }\n\n if (run >= 5) {\n score += run - 2\n }\n\n run = 1\n }\n\n return score\n}\n\n// Penalize large flat blocks that scan poorly.\nfunction blockPenalty(grid: boolean[][]) {\n let score = 0\n\n for (let row = 0; row < grid.length - 1; row += 1) {\n for (let col = 0; col < grid.length - 1; col += 1) {\n const cell = grid[row][col]\n\n if (cell === grid[row][col + 1] && cell === grid[row + 1][col] && cell === grid[row + 1][col + 1]) {\n score += 3\n }\n }\n }\n\n return score\n}\n\n// Penalize patterns that look too similar to finder markers.\nfunction finderPenalty(values: boolean[]) {\n const matchA = '10111010000'\n const matchB = '00001011101'\n let score = 0\n\n for (let i = 0; i <= values.length - 11; i += 1) {\n const slice = values\n .slice(i, i + 11)\n .map((cell) => (cell ? '1' : '0'))\n .join('')\n\n if (slice === matchA || slice === matchB) {\n score += 40\n }\n }\n\n return score\n}\n\n// Keep the dark/light balance near the QR target.\nfunction ratioPenalty(grid: boolean[][]) {\n const total = grid.length * grid.length\n const dark = grid.flat().filter(Boolean).length\n const ratio = (dark * 100) / total\n return Math.floor(Math.abs(ratio - 50) / 5) * 10\n}\n\n// Sum the standard QR penalties for one candidate matrix.\nfunction getPenalty(grid: boolean[][]) {\n let score = 0\n\n for (let row = 0; row < grid.length; row += 1) {\n score += runPenalty(grid[row])\n score += finderPenalty(grid[row])\n }\n\n for (let col = 0; col < grid.length; col += 1) {\n const line = grid.map((row) => row[col])\n score += runPenalty(line)\n score += finderPenalty(line)\n }\n\n score += blockPenalty(grid)\n score += ratioPenalty(grid)\n\n return score\n}\n\n// Build the final matrix and pick the mask with the lowest penalty.\nfunction makeMatrix(value: string) {\n const data = Array.from(encoder.encode(value))\n const info = pickVersion(data.length)\n\n if (!info) {\n return null\n }\n\n const {grid, marks} = makeBase(info)\n placeData(grid, marks, encodeData(value, info))\n\n let bestMask = 0\n let bestGrid = withFormat(applyMask(grid, marks, 0), 0)\n let bestScore = getPenalty(bestGrid)\n\n for (let mask = 1; mask < 8; mask += 1) {\n const masked = withFormat(applyMask(grid, marks, mask), mask)\n const score = getPenalty(masked)\n\n if (score < bestScore) {\n bestMask = mask\n bestGrid = masked\n bestScore = score\n }\n }\n\n return {grid: bestGrid, mask: bestMask}\n}\n\n// Render a local SVG QR code without adding a runtime dependency.\nexport function MQrCode({\n value,\n size = 144,\n padding = 4,\n fg = '#111827',\n bg = '#ffffff',\n status = 'idle',\n statusLabel,\n className,\n style,\n ...rest\n}: MQrCodeProps) {\n const qr = makeMatrix(value)\n\n if (!qr) {\n return null\n }\n\n const dimension = qr.grid.length + padding * 2\n const nextStyle = {\n '--qr-size': `${size}px`,\n ...style,\n } as CSSProperties\n const statusColor = status === 'success' ? 'success' : status === 'error' ? 'error' : 'primary'\n\n return (\n <div\n className={cn('qr-code', status !== 'idle' && `status-${status}`, className)}\n style={nextStyle}\n aria-busy={status === 'loading' || undefined}\n {...rest}\n >\n <svg\n className={cn(status !== 'idle' && 'dimmed')}\n viewBox={`0 0 ${dimension} ${dimension}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"QR code\"\n >\n <rect width={dimension} height={dimension} fill={bg} />\n {qr.grid.map((line, row) =>\n line.map((cell, col) =>\n cell ? (\n <rect\n key={`${row}-${col}`}\n x={col + padding}\n y={row + padding}\n width=\"1\"\n height=\"1\"\n fill={fg}\n />\n ) : null\n )\n )}\n </svg>\n {status !== 'idle' && (\n <div className=\"qr-status-center\" aria-label={statusLabel ?? `QR code ${status}`} role=\"status\">\n {status === 'loading' ? (\n <MButton\n variant=\"ghost\"\n size=\"lg\"\n color={statusColor}\n shape=\"circle\"\n iconOnly\n loading\n pulsing\n disabled\n tabIndex={-1}\n className=\"qr-status-chip\"\n aria-hidden=\"true\"\n />\n ) : status === 'success' ? (\n <MButton\n variant=\"ghost\"\n size=\"lg\"\n color={statusColor}\n shape=\"circle\"\n iconOnly\n pulsing\n disabled\n tabIndex={-1}\n className=\"qr-status-chip\"\n aria-hidden=\"true\"\n >\n <MSuccessIcon />\n </MButton>\n ) : (\n <MButton\n variant=\"ghost\"\n size=\"lg\"\n color={statusColor}\n shape=\"circle\"\n iconOnly\n pulsing\n disabled\n tabIndex={-1}\n className=\"qr-status-chip\"\n aria-hidden=\"true\"\n >\n <MErrorIcon />\n </MButton>\n )}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ai as e, di as t, oi as n, ui as r } from "./icons-
|
|
2
|
-
import { t as i } from "./cn-
|
|
3
|
-
import { t as a } from "./MButton-
|
|
1
|
+
import { ai as e, di as t, oi as n, ui as r } from "./icons-CfpYxnfg.js";
|
|
2
|
+
import { t as i } from "./cn-YER3QsV1.js";
|
|
3
|
+
import { t as a } from "./MButton-y9qXhhGt.js";
|
|
4
4
|
import { useState as o } from "react";
|
|
5
5
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/display/MRating/MRating.tsx
|
|
@@ -412,4 +412,4 @@ function V({ value: e, size: n = 144, padding: o = 4, fg: l = "#111827", bg: u =
|
|
|
412
412
|
//#endregion
|
|
413
413
|
export { l as n, V as t };
|
|
414
414
|
|
|
415
|
-
//# sourceMappingURL=MQrCode-
|
|
415
|
+
//# sourceMappingURL=MQrCode-CCtTkkv9.js.map
|