@banzamel/mineralui 2.4.2 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/MAvatar-CvQuiGvT.cjs +2 -0
- package/dist/MAvatar-CvQuiGvT.cjs.map +1 -0
- package/dist/MAvatar-EkOBrEtS.js +73 -0
- package/dist/MAvatar-EkOBrEtS.js.map +1 -0
- package/dist/MButton-BxEky3xQ.cjs +2 -0
- package/dist/MButton-BxEky3xQ.cjs.map +1 -0
- package/dist/MButton-KELyyBw1.js +123 -0
- package/dist/MButton-KELyyBw1.js.map +1 -0
- package/dist/{MButtonGroup-BkNf7fzo.js → MButtonGroup-DDnn8Wfy.js} +3 -3
- package/dist/{MButtonGroup-BkNf7fzo.js.map → MButtonGroup-DDnn8Wfy.js.map} +1 -1
- package/dist/{MButtonGroup-iPv14c0V.cjs → MButtonGroup-Dz8Fm-oA.cjs} +2 -2
- package/dist/{MButtonGroup-iPv14c0V.cjs.map → MButtonGroup-Dz8Fm-oA.cjs.map} +1 -1
- package/dist/{MCard-DK-_FkpE.cjs → MCard-Bqm4BjK_.cjs} +2 -2
- package/dist/MCard-Bqm4BjK_.cjs.map +1 -0
- package/dist/{MCard-azpp4YVD.js → MCard-CqZYGaS2.js} +4 -4
- package/dist/MCard-CqZYGaS2.js.map +1 -0
- package/dist/MCheckbox-CaWgyUn5.js +72 -0
- package/dist/MCheckbox-CaWgyUn5.js.map +1 -0
- package/dist/MCheckbox-DpKJpnFF.cjs +2 -0
- package/dist/MCheckbox-DpKJpnFF.cjs.map +1 -0
- package/dist/{MConflictIllustration-znC7ijmP.js → MConflictIllustration-dwZS44ye.js} +1517 -1515
- package/dist/MConflictIllustration-dwZS44ye.js.map +1 -0
- package/dist/MConflictIllustration-vfHs-jad.cjs +2 -0
- package/dist/MConflictIllustration-vfHs-jad.cjs.map +1 -0
- package/dist/MDetailList-C3othNs3.js +127 -0
- package/dist/MDetailList-C3othNs3.js.map +1 -0
- package/dist/MDetailList-DkDHLdJ8.cjs +2 -0
- package/dist/MDetailList-DkDHLdJ8.cjs.map +1 -0
- package/dist/MDropdownMenu-C4-r7UZM.cjs +2 -0
- package/dist/MDropdownMenu-C4-r7UZM.cjs.map +1 -0
- package/dist/MDropdownMenu-Dvg9UsHB.js +219 -0
- package/dist/MDropdownMenu-Dvg9UsHB.js.map +1 -0
- package/dist/MGrid-CQqT8nHi.js +271 -0
- package/dist/MGrid-CQqT8nHi.js.map +1 -0
- package/dist/MGrid-tBsqShLG.cjs +2 -0
- package/dist/MGrid-tBsqShLG.cjs.map +1 -0
- package/dist/MHeading-DQSQ8c7L.js +21 -0
- package/dist/MHeading-DQSQ8c7L.js.map +1 -0
- package/dist/MHeading-DiGYs1FJ.cjs +2 -0
- package/dist/MHeading-DiGYs1FJ.cjs.map +1 -0
- package/dist/MInput-BeEGufZG.cjs +2 -0
- package/dist/MInput-BeEGufZG.cjs.map +1 -0
- package/dist/MInput-QnQV9L8U.js +190 -0
- package/dist/MInput-QnQV9L8U.js.map +1 -0
- package/dist/MInputCVC-CCNRAqHw.cjs +2 -0
- package/dist/MInputCVC-CCNRAqHw.cjs.map +1 -0
- package/dist/MInputCVC-IXIYZwex.js +410 -0
- package/dist/MInputCVC-IXIYZwex.js.map +1 -0
- package/dist/MInputSearch-BSIc6m2P.cjs +2 -0
- package/dist/MInputSearch-BSIc6m2P.cjs.map +1 -0
- package/dist/MInputSearch-CNuTAbYs.js +44 -0
- package/dist/MInputSearch-CNuTAbYs.js.map +1 -0
- package/dist/{MKbd-DqMnZ7Iv.cjs → MKbd-CnW3NUIu.cjs} +2 -2
- package/dist/{MKbd-DqMnZ7Iv.cjs.map → MKbd-CnW3NUIu.cjs.map} +1 -1
- package/dist/{MKbd-v6-tJ9sP.js → MKbd-DjfGyajR.js} +2 -2
- package/dist/{MKbd-v6-tJ9sP.js.map → MKbd-DjfGyajR.js.map} +1 -1
- package/dist/MLink-C6uwA6db.cjs +2 -0
- package/dist/MLink-C6uwA6db.cjs.map +1 -0
- package/dist/MLink-ixg0xFFI.js +31 -0
- package/dist/MLink-ixg0xFFI.js.map +1 -0
- package/dist/MLoader-CViA3zBo.js +44 -0
- package/dist/MLoader-CViA3zBo.js.map +1 -0
- package/dist/MLoader-DUOoOoNE.cjs +2 -0
- package/dist/MLoader-DUOoOoNE.cjs.map +1 -0
- package/dist/MPagination-BTGenxWW.js +122 -0
- package/dist/MPagination-BTGenxWW.js.map +1 -0
- package/dist/MPagination-DitmdtCc.cjs +2 -0
- package/dist/MPagination-DitmdtCc.cjs.map +1 -0
- package/dist/MPopover-CBDbUOW6.js +183 -0
- package/dist/MPopover-CBDbUOW6.js.map +1 -0
- package/dist/MPopover-ZeoU9hb5.cjs +2 -0
- package/dist/MPopover-ZeoU9hb5.cjs.map +1 -0
- package/dist/{MSimpleGrid-BWKurW6H.js → MSimpleGrid-C_QvLmck.js} +3 -3
- package/dist/MSimpleGrid-C_QvLmck.js.map +1 -0
- package/dist/MSimpleGrid-wgvjnxwM.cjs +2 -0
- package/dist/MSimpleGrid-wgvjnxwM.cjs.map +1 -0
- package/dist/{MSkeleton-C5uD4Axo.js → MSkeleton-BpcpBBJq.js} +12 -10
- package/dist/MSkeleton-BpcpBBJq.js.map +1 -0
- package/dist/MSkeleton-DuAN8Vcv.cjs +2 -0
- package/dist/MSkeleton-DuAN8Vcv.cjs.map +1 -0
- package/dist/MSlider-CLASUc2H.js +134 -0
- package/dist/MSlider-CLASUc2H.js.map +1 -0
- package/dist/MSlider-hONQBulE.cjs +2 -0
- package/dist/MSlider-hONQBulE.cjs.map +1 -0
- package/dist/MStack-BwAFeGGg.js +39 -0
- package/dist/MStack-BwAFeGGg.js.map +1 -0
- package/dist/MStack-CGII4A-q.cjs +2 -0
- package/dist/MStack-CGII4A-q.cjs.map +1 -0
- package/dist/MSubText-BeZk-fhz.js +17 -0
- package/dist/MSubText-BeZk-fhz.js.map +1 -0
- package/dist/MSubText-Dl1PfToZ.cjs +2 -0
- package/dist/MSubText-Dl1PfToZ.cjs.map +1 -0
- package/dist/MSurface-B_QnRLr5.js +74 -0
- package/dist/MSurface-B_QnRLr5.js.map +1 -0
- package/dist/MSurface-BrFo-JMJ.cjs +2 -0
- package/dist/MSurface-BrFo-JMJ.cjs.map +1 -0
- package/dist/MTag-BZrKN_DS.js +41 -0
- package/dist/MTag-BZrKN_DS.js.map +1 -0
- package/dist/MTag-DCE1vRJM.cjs +2 -0
- package/dist/MTag-DCE1vRJM.cjs.map +1 -0
- package/dist/MText-BUWQPoBM.js +45 -0
- package/dist/MText-BUWQPoBM.js.map +1 -0
- package/dist/MText-nsvLFsSv.cjs +2 -0
- package/dist/MText-nsvLFsSv.cjs.map +1 -0
- package/dist/MTooltip-BRSPJ3RY.js +100 -0
- package/dist/MTooltip-BRSPJ3RY.js.map +1 -0
- package/dist/MTooltip-Cj2Fxmzc.cjs +2 -0
- package/dist/MTooltip-Cj2Fxmzc.cjs.map +1 -0
- package/dist/MTreeView-BWCTlsU-.cjs +2 -0
- package/dist/MTreeView-BWCTlsU-.cjs.map +1 -0
- package/dist/MTreeView-CWcMwE-Z.js +554 -0
- package/dist/MTreeView-CWcMwE-Z.js.map +1 -0
- package/dist/{arduino-BdpdaLwK.cjs → arduino-C1gw-z1N.cjs} +1 -1
- package/dist/{arduino-BdpdaLwK.cjs.map → arduino-C1gw-z1N.cjs.map} +1 -1
- package/dist/{arduino-DDDlP9Yt.js → arduino-CcVvzDWF.js} +1 -1
- package/dist/{arduino-DDDlP9Yt.js.map → arduino-CcVvzDWF.js.map} +1 -1
- package/dist/{bash-D8WbAmuA.js → bash-DkMiO80l.js} +1 -1
- package/dist/{bash-D8WbAmuA.js.map → bash-DkMiO80l.js.map} +1 -1
- package/dist/{bash-eOUFh3S1.cjs → bash-wzZkpJC-.cjs} +1 -1
- package/dist/{bash-eOUFh3S1.cjs.map → bash-wzZkpJC-.cjs.map} +1 -1
- package/dist/{c-Bur7Mn-u.cjs → c-BSPjDa0P.cjs} +1 -1
- package/dist/{c-Bur7Mn-u.cjs.map → c-BSPjDa0P.cjs.map} +1 -1
- package/dist/{c-CTKNfUJI.js → c-DtlFV5Pa.js} +1 -1
- package/dist/{c-CTKNfUJI.js.map → c-DtlFV5Pa.js.map} +1 -1
- package/dist/calendar-2yhnCkGW.cjs +2 -0
- package/dist/calendar-2yhnCkGW.cjs.map +1 -0
- package/dist/calendar-DcNYDTVb.js +195 -0
- package/dist/calendar-DcNYDTVb.js.map +1 -0
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{calendarDates-CYkJqcnp.js → calendarDates-Bpw_G_QR.js} +30 -19
- package/dist/calendarDates-Bpw_G_QR.js.map +1 -0
- package/dist/calendarDates-Cg0nm69Y.cjs +2 -0
- package/dist/calendarDates-Cg0nm69Y.cjs.map +1 -0
- package/dist/cards-Bp886TRb.cjs +2 -0
- package/dist/cards-Bp886TRb.cjs.map +1 -0
- package/dist/cards-BvER6Gx0.js +1277 -0
- package/dist/cards-BvER6Gx0.js.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/{cn-YER3QsV1.js → cn-CUSXNnjF.js} +1 -1
- package/dist/{cn-YER3QsV1.js.map → cn-CUSXNnjF.js.map} +1 -1
- package/dist/{cn-CU5TNITO.cjs → cn-DYFxgzi2.cjs} +1 -1
- package/dist/{cn-CU5TNITO.cjs.map → cn-DYFxgzi2.cjs.map} +1 -1
- package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +1 -1
- package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +1 -1
- package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
- package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
- package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +4 -0
- package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +1 -1
- package/dist/components/cards/MStatCard/MStatCard.d.ts +1 -1
- package/dist/components/controls/MCheckbox/MCheckbox.types.d.ts +6 -0
- package/dist/components/controls/MLoadMore/MLoadMore.d.ts +1 -1
- package/dist/components/controls/MSlider/MSlider.d.ts +1 -1
- package/dist/components/controls/MSlider/MSlider.types.d.ts +5 -0
- package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
- package/dist/components/data/MTreeView/MTreeView.types.d.ts +6 -0
- package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +1 -1
- package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -3
- package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +1 -1
- package/dist/components/dropdowns/MAutocomplete/MAutocomplete.d.ts +1 -1
- package/dist/components/dropdowns/MAutocomplete/MAutocomplete.types.d.ts +8 -2
- package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
- package/dist/components/dropdowns/shared/TimeColumnListbox.d.ts +20 -0
- package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
- package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
- package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
- package/dist/components/feedback/MLoader/MLoader.d.ts +1 -1
- package/dist/components/feedback/MSpinner/MSpinner.d.ts +1 -1
- package/dist/components/feedback/MTag/MTag.d.ts +1 -1
- package/dist/components/inputs/MInput/MInput.types.d.ts +6 -1
- package/dist/components/inputs/MInput/useFormatCaret.d.ts +8 -0
- package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +5 -0
- package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
- package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
- package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
- package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
- package/dist/components/layout/MInline/MInline.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -0
- package/dist/components/layout/MSection/MSection.d.ts +1 -1
- package/dist/components/layout/MStack/MStack.d.ts +1 -1
- package/dist/components/layout/MStickyPanel/MStickyPanel.types.d.ts +4 -0
- package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.types.d.ts +10 -0
- package/dist/components/media/MCarousel/MCarousel.d.ts +1 -1
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/carouselA11y.d.ts +9 -0
- package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +1 -1
- package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +4 -2
- package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +3 -1
- package/dist/components/overlays/MPopconfirm/MPopconfirm.d.ts +1 -1
- package/dist/components/overlays/scrollLock.d.ts +14 -0
- package/dist/components/primitives/MPopover/MPopover.d.ts +1 -1
- package/dist/components/primitives/MPopover/MPopover.types.d.ts +32 -1
- package/dist/components/primitives/MPopover/popoverStack.d.ts +8 -0
- package/dist/components/typography/MHeading/MHeading.d.ts +2 -3
- package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
- package/dist/components/typography/MText/MText.d.ts +1 -1
- package/dist/controls-B4Dxaab4.js +491 -0
- package/dist/controls-B4Dxaab4.js.map +1 -0
- package/dist/controls-CyXEIOXD.cjs +2 -0
- package/dist/controls-CyXEIOXD.cjs.map +1 -0
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/{core-D5-SQcs8.js → core-B8VC-Umz.js} +1 -1
- package/dist/{core-D5-SQcs8.js.map → core-B8VC-Umz.js.map} +1 -1
- package/dist/{core-D66c1_Wo.cjs → core-w629c4ND.cjs} +1 -1
- package/dist/{core-D66c1_Wo.cjs.map → core-w629c4ND.cjs.map} +1 -1
- package/dist/{cpp-DAzz2TpY.js → cpp-BraS2arf.js} +1 -1
- package/dist/{cpp-DAzz2TpY.js.map → cpp-BraS2arf.js.map} +1 -1
- package/dist/{cpp-BMULAf-B.cjs → cpp-LIcuHkFj.cjs} +1 -1
- package/dist/{cpp-BMULAf-B.cjs.map → cpp-LIcuHkFj.cjs.map} +1 -1
- package/dist/creditCards-Bo2mrc53.cjs +2 -0
- package/dist/creditCards-Bo2mrc53.cjs.map +1 -0
- package/dist/{creditCards-D_iWmtG6.js → creditCards-DmDOyvcw.js} +20 -31
- package/dist/creditCards-DmDOyvcw.js.map +1 -0
- package/dist/{css-9M03GzKO.cjs → css-D6fGBtGV.cjs} +1 -1
- package/dist/{css-9M03GzKO.cjs.map → css-D6fGBtGV.cjs.map} +1 -1
- package/dist/{css-EGOXTWIl.js → css-Dy8pFAWa.js} +1 -1
- package/dist/{css-EGOXTWIl.js.map → css-Dy8pFAWa.js.map} +1 -1
- package/dist/data-BM3KG8oN.cjs +2 -0
- package/dist/data-BM3KG8oN.cjs.map +1 -0
- package/dist/data-qnR8OBmj.js +808 -0
- package/dist/data-qnR8OBmj.js.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/{dateUtils-CUY6CRCf.js → dateUtils-B-ToNZq_.js} +5 -6
- package/dist/dateUtils-B-ToNZq_.js.map +1 -0
- package/dist/dateUtils-z2L7ZaxA.cjs +2 -0
- package/dist/dateUtils-z2L7ZaxA.cjs.map +1 -0
- package/dist/display-BLMOBofj.cjs +3 -0
- package/dist/display-BLMOBofj.cjs.map +1 -0
- package/dist/display-Dlb79lkA.js +968 -0
- package/dist/display-Dlb79lkA.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/dropdowns-2_7VMEDo.js +2009 -0
- package/dist/dropdowns-2_7VMEDo.js.map +1 -0
- package/dist/dropdowns-DN7j8J-V.cjs +2 -0
- package/dist/dropdowns-DN7j8J-V.cjs.map +1 -0
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/feedback-CECayytY.js +335 -0
- package/dist/feedback-CECayytY.js.map +1 -0
- package/dist/feedback-paV8Ls-h.cjs +2 -0
- package/dist/feedback-paV8Ls-h.cjs.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -5
- package/dist/form-Br56h5EF.cjs +2 -0
- package/dist/form-Br56h5EF.cjs.map +1 -0
- package/dist/form-CJmMZgsH.js +165 -0
- package/dist/form-CJmMZgsH.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formatters-CNjg_h7-.cjs → formatters-CauWlsnM.cjs} +1 -1
- package/dist/{formatters-CNjg_h7-.cjs.map → formatters-CauWlsnM.cjs.map} +1 -1
- package/dist/{formatters-T0vvjMtB.js → formatters-Doqdu_w1.js} +1 -1
- package/dist/{formatters-T0vvjMtB.js.map → formatters-Doqdu_w1.js.map} +1 -1
- package/dist/frameworkTexts-CaqdiKHW.cjs +2 -0
- package/dist/frameworkTexts-CaqdiKHW.cjs.map +1 -0
- package/dist/frameworkTexts-o43FqY1A.js +505 -0
- package/dist/frameworkTexts-o43FqY1A.js.map +1 -0
- package/dist/i18n/MI18nProvider.d.ts +6 -1
- package/dist/i18n/frameworkTexts.d.ts +572 -0
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.js +2 -2
- package/dist/icons-Bp8bB9TP.cjs +2 -0
- package/dist/icons-Bp8bB9TP.cjs.map +1 -0
- package/dist/{icons-CBMl-kOM.js → icons-IqEBmGh3.js} +1223 -1220
- package/dist/icons-IqEBmGh3.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/illustrations.cjs +1 -1
- package/dist/illustrations.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +56 -56
- package/dist/inputs-C0BJzlA-.js +1923 -0
- package/dist/inputs-C0BJzlA-.js.map +1 -0
- package/dist/inputs-CvNBBLFA.cjs +2 -0
- package/dist/inputs-CvNBBLFA.cjs.map +1 -0
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/{javascript-CHSg4NGc.js → javascript-CqKLBRqa.js} +1 -1
- package/dist/{javascript-CHSg4NGc.js.map → javascript-CqKLBRqa.js.map} +1 -1
- package/dist/{javascript-CastOQF5.cjs → javascript-Oy5hkezl.cjs} +1 -1
- package/dist/{javascript-CastOQF5.cjs.map → javascript-Oy5hkezl.cjs.map} +1 -1
- package/dist/{json-DCkJ-m-p.cjs → json-BP8eqPWc.cjs} +1 -1
- package/dist/{json-DCkJ-m-p.cjs.map → json-BP8eqPWc.cjs.map} +1 -1
- package/dist/{json-Bejy9Rlg.js → json-DJkyYaPe.js} +1 -1
- package/dist/{json-Bejy9Rlg.js.map → json-DJkyYaPe.js.map} +1 -1
- package/dist/layout-BSFqGXLZ.js +1101 -0
- package/dist/layout-BSFqGXLZ.js.map +1 -0
- package/dist/layout-MKqvUkPv.cjs +2 -0
- package/dist/layout-MKqvUkPv.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +6 -6
- package/dist/{licensing-f5KYVz7D.js → licensing-BKmoAdfr.js} +5 -4
- package/dist/licensing-BKmoAdfr.js.map +1 -0
- package/dist/licensing-DVgjkw-s.cjs +2 -0
- package/dist/licensing-DVgjkw-s.cjs.map +1 -0
- package/dist/{locale-DRRl_s5-.cjs → locale-C08q7FjE.cjs} +2 -2
- package/dist/{locale-DRRl_s5-.cjs.map → locale-C08q7FjE.cjs.map} +1 -1
- package/dist/{locale-CS1-IY_I.js → locale-CjJpk9GN.js} +1 -1
- package/dist/{locale-CS1-IY_I.js.map → locale-CjJpk9GN.js.map} +1 -1
- package/dist/media-fiasAbBv.js +485 -0
- package/dist/media-fiasAbBv.js.map +1 -0
- package/dist/media-tr1s386v.cjs +2 -0
- package/dist/media-tr1s386v.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +2 -2
- package/dist/overlays-Df-NpmkW.cjs +2 -0
- package/dist/overlays-Df-NpmkW.cjs.map +1 -0
- package/dist/overlays-W0WW3fn7.js +607 -0
- package/dist/overlays-W0WW3fn7.js.map +1 -0
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/{php-BdVXegqn.cjs → php-Cwjc-ZYq.cjs} +1 -1
- package/dist/{php-BdVXegqn.cjs.map → php-Cwjc-ZYq.cjs.map} +1 -1
- package/dist/{php-Cb_S1hXT.js → php-Db8PWzaX.js} +1 -1
- package/dist/{php-Cb_S1hXT.js.map → php-Db8PWzaX.js.map} +1 -1
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +2 -2
- package/dist/radioGroupKeys-Bm-Qeh8G.js +28 -0
- package/dist/radioGroupKeys-Bm-Qeh8G.js.map +1 -0
- package/dist/radioGroupKeys-COL8uXbH.cjs +2 -0
- package/dist/radioGroupKeys-COL8uXbH.cjs.map +1 -0
- package/dist/{relativeTime-Cr-NVzij.js → relativeTime-BqCuaBqb.js} +1 -1
- package/dist/{relativeTime-Cr-NVzij.js.map → relativeTime-BqCuaBqb.js.map} +1 -1
- package/dist/{relativeTime-DgYBUaVm.cjs → relativeTime-DUbW4O44.cjs} +1 -1
- package/dist/{relativeTime-DgYBUaVm.cjs.map → relativeTime-DUbW4O44.cjs.map} +1 -1
- package/dist/scrollLock-C9P9o6wH.cjs +2 -0
- package/dist/scrollLock-C9P9o6wH.cjs.map +1 -0
- package/dist/scrollLock-D27VmgPV.js +14 -0
- package/dist/scrollLock-D27VmgPV.js.map +1 -0
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/MThemeProvider.d.ts +18 -1
- package/dist/theme/index.d.ts +2 -2
- package/dist/{theme-DAOU1aPs.js → theme-B_juOenJ.js} +71 -61
- package/dist/theme-B_juOenJ.js.map +1 -0
- package/dist/theme-ByPZH0dh.cjs +2 -0
- package/dist/theme-ByPZH0dh.cjs.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/{typescript-CcGBfzlS.cjs → typescript-QKlfKtex.cjs} +1 -1
- package/dist/{typescript-CcGBfzlS.cjs.map → typescript-QKlfKtex.cjs.map} +1 -1
- package/dist/{typescript-0VHxrxf2.js → typescript-chdf_txx.js} +1 -1
- package/dist/{typescript-0VHxrxf2.js.map → typescript-chdf_txx.js.map} +1 -1
- package/dist/{typography-CAW17MDj.js → typography-DNcB8dOy.js} +3 -3
- package/dist/{typography-CAW17MDj.js.map → typography-DNcB8dOy.js.map} +1 -1
- package/dist/{typography-C4_O8len.cjs → typography-I7aeG8pH.cjs} +2 -2
- package/dist/{typography-C4_O8len.cjs.map → typography-I7aeG8pH.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +6 -6
- package/dist/useGhostText-CKsb8Ufa.js +240 -0
- package/dist/useGhostText-CKsb8Ufa.js.map +1 -0
- package/dist/useGhostText-DO-tfxS0.cjs +2 -0
- package/dist/useGhostText-DO-tfxS0.cjs.map +1 -0
- package/dist/{useInteractionEffect-CFwDX5UF.cjs → useInteractionEffect-CtXlbjhC.cjs} +2 -2
- package/dist/{useInteractionEffect-CFwDX5UF.cjs.map → useInteractionEffect-CtXlbjhC.cjs.map} +1 -1
- package/dist/useModalLayer-CpOPSDbf.js +128 -0
- package/dist/useModalLayer-CpOPSDbf.js.map +1 -0
- package/dist/useModalLayer-Cyt93Prs.cjs +2 -0
- package/dist/useModalLayer-Cyt93Prs.cjs.map +1 -0
- package/dist/utils/calendarDates.d.ts +5 -0
- package/dist/utils/radioGroupKeys.d.ts +9 -0
- package/dist/utils/useDateGridNav.d.ts +39 -0
- package/dist/utils/useGhostText.d.ts +2 -1
- package/dist/utils/useKeyboardNav.d.ts +51 -5
- package/dist/utils/useModalLayer.d.ts +14 -0
- package/dist/utils/useRovingToolbar.d.ts +26 -0
- package/dist/utils/validationMessages.d.ts +15 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.entry.d.ts +3 -1
- package/dist/utils.js +11 -11
- package/dist/validationMessages-BFimXxlT.js +23 -0
- package/dist/validationMessages-BFimXxlT.js.map +1 -0
- package/dist/validationMessages-iHu7apWr.cjs +2 -0
- package/dist/validationMessages-iHu7apWr.cjs.map +1 -0
- package/dist/validators-SZmLxnir.cjs +2 -0
- package/dist/validators-SZmLxnir.cjs.map +1 -0
- package/dist/{validators-DVYOtFnw.js → validators-ULebNme2.js} +107 -106
- package/dist/validators-ULebNme2.js.map +1 -0
- package/dist/{xml-Dbm3mobK.cjs → xml-DEtyywwU.cjs} +1 -1
- package/dist/{xml-Dbm3mobK.cjs.map → xml-DEtyywwU.cjs.map} +1 -1
- package/dist/{xml-8GjNy8SM.js → xml-DnydRpfh.js} +1 -1
- package/dist/{xml-8GjNy8SM.js.map → xml-DnydRpfh.js.map} +1 -1
- package/package.json +1 -1
- package/dist/MAvatar-Capz5Gbc.cjs +0 -2
- package/dist/MAvatar-Capz5Gbc.cjs.map +0 -1
- package/dist/MAvatar-DtJCj3dD.js +0 -63
- package/dist/MAvatar-DtJCj3dD.js.map +0 -1
- package/dist/MButton-C1pnL4_j.js +0 -115
- package/dist/MButton-C1pnL4_j.js.map +0 -1
- package/dist/MButton-sTKnano6.cjs +0 -2
- package/dist/MButton-sTKnano6.cjs.map +0 -1
- package/dist/MCard-DK-_FkpE.cjs.map +0 -1
- package/dist/MCard-azpp4YVD.js.map +0 -1
- package/dist/MCheckbox-B7SpcD4H.js +0 -59
- package/dist/MCheckbox-B7SpcD4H.js.map +0 -1
- package/dist/MCheckbox-CIX7wp41.cjs +0 -2
- package/dist/MCheckbox-CIX7wp41.cjs.map +0 -1
- package/dist/MConflictIllustration-CZ3Md38Z.cjs +0 -2
- package/dist/MConflictIllustration-CZ3Md38Z.cjs.map +0 -1
- package/dist/MConflictIllustration-znC7ijmP.js.map +0 -1
- package/dist/MDetailList-Ce7KzUKC.cjs +0 -2
- package/dist/MDetailList-Ce7KzUKC.cjs.map +0 -1
- package/dist/MDetailList-fDhVyhm7.js +0 -98
- package/dist/MDetailList-fDhVyhm7.js.map +0 -1
- package/dist/MDropdownMenu-B_QWQhxy.cjs +0 -2
- package/dist/MDropdownMenu-B_QWQhxy.cjs.map +0 -1
- package/dist/MDropdownMenu-C4CuKMRZ.js +0 -172
- package/dist/MDropdownMenu-C4CuKMRZ.js.map +0 -1
- package/dist/MGrid-CYL3cbUI.js +0 -265
- package/dist/MGrid-CYL3cbUI.js.map +0 -1
- package/dist/MGrid-fTx6wFq_.cjs +0 -2
- package/dist/MGrid-fTx6wFq_.cjs.map +0 -1
- package/dist/MHeading-B7KgSP4T.js +0 -21
- package/dist/MHeading-B7KgSP4T.js.map +0 -1
- package/dist/MHeading-KDSpnCof.cjs +0 -2
- package/dist/MHeading-KDSpnCof.cjs.map +0 -1
- package/dist/MI18nProvider-DXRbB0VY.cjs +0 -2
- package/dist/MI18nProvider-DXRbB0VY.cjs.map +0 -1
- package/dist/MI18nProvider-VH14CI8u.js +0 -72
- package/dist/MI18nProvider-VH14CI8u.js.map +0 -1
- package/dist/MInput-C8ObGzQk.js +0 -187
- package/dist/MInput-C8ObGzQk.js.map +0 -1
- package/dist/MInput-CGl2Q-rM.cjs +0 -2
- package/dist/MInput-CGl2Q-rM.cjs.map +0 -1
- package/dist/MInputCVC-Blv5PeyS.js +0 -320
- package/dist/MInputCVC-Blv5PeyS.js.map +0 -1
- package/dist/MInputCVC-lAFKTV6y.cjs +0 -2
- package/dist/MInputCVC-lAFKTV6y.cjs.map +0 -1
- package/dist/MInputSearch-BM8gLlJ1.js +0 -43
- package/dist/MInputSearch-BM8gLlJ1.js.map +0 -1
- package/dist/MInputSearch-BZDnbFB4.cjs +0 -2
- package/dist/MInputSearch-BZDnbFB4.cjs.map +0 -1
- package/dist/MLink-Bd8fLH1N.js +0 -31
- package/dist/MLink-Bd8fLH1N.js.map +0 -1
- package/dist/MLink-U24G6KJj.cjs +0 -2
- package/dist/MLink-U24G6KJj.cjs.map +0 -1
- package/dist/MLoader-CnvWqFtA.js +0 -41
- package/dist/MLoader-CnvWqFtA.js.map +0 -1
- package/dist/MLoader-CvFIvytw.cjs +0 -2
- package/dist/MLoader-CvFIvytw.cjs.map +0 -1
- package/dist/MPagination-BkvOEZpp.js +0 -113
- package/dist/MPagination-BkvOEZpp.js.map +0 -1
- package/dist/MPagination-DgQta29Q.cjs +0 -2
- package/dist/MPagination-DgQta29Q.cjs.map +0 -1
- package/dist/MPopover-C-e1CoV0.cjs +0 -2
- package/dist/MPopover-C-e1CoV0.cjs.map +0 -1
- package/dist/MPopover-Dd-GIBU6.js +0 -155
- package/dist/MPopover-Dd-GIBU6.js.map +0 -1
- package/dist/MPortal-Ba2Sxset.js +0 -10
- package/dist/MPortal-Ba2Sxset.js.map +0 -1
- package/dist/MPortal-DUSIuINN.cjs +0 -2
- package/dist/MPortal-DUSIuINN.cjs.map +0 -1
- package/dist/MSimpleGrid-BWKurW6H.js.map +0 -1
- package/dist/MSimpleGrid-BzlIitcJ.cjs +0 -2
- package/dist/MSimpleGrid-BzlIitcJ.cjs.map +0 -1
- package/dist/MSkeleton-BoFpowFU.cjs +0 -2
- package/dist/MSkeleton-BoFpowFU.cjs.map +0 -1
- package/dist/MSkeleton-C5uD4Axo.js.map +0 -1
- package/dist/MSlider-BTDBqF8t.cjs +0 -2
- package/dist/MSlider-BTDBqF8t.cjs.map +0 -1
- package/dist/MSlider-CqrusKJQ.js +0 -75
- package/dist/MSlider-CqrusKJQ.js.map +0 -1
- package/dist/MStack-B3Ldqsc-.cjs +0 -2
- package/dist/MStack-B3Ldqsc-.cjs.map +0 -1
- package/dist/MStack-CSCw6to2.js +0 -39
- package/dist/MStack-CSCw6to2.js.map +0 -1
- package/dist/MSubText-47PsgE8T.cjs +0 -2
- package/dist/MSubText-47PsgE8T.cjs.map +0 -1
- package/dist/MSubText-C-N15d4Z.js +0 -17
- package/dist/MSubText-C-N15d4Z.js.map +0 -1
- package/dist/MSurface-B-sjyczH.js +0 -74
- package/dist/MSurface-B-sjyczH.js.map +0 -1
- package/dist/MSurface-QYEygc_0.cjs +0 -2
- package/dist/MSurface-QYEygc_0.cjs.map +0 -1
- package/dist/MTag-BjV-dXkk.cjs +0 -2
- package/dist/MTag-BjV-dXkk.cjs.map +0 -1
- package/dist/MTag-D9q6faIk.js +0 -39
- package/dist/MTag-D9q6faIk.js.map +0 -1
- package/dist/MText-CL-LPcXi.js +0 -45
- package/dist/MText-CL-LPcXi.js.map +0 -1
- package/dist/MText-Dni707tS.cjs +0 -2
- package/dist/MText-Dni707tS.cjs.map +0 -1
- package/dist/MTooltip-ChvuN4Ow.cjs +0 -2
- package/dist/MTooltip-ChvuN4Ow.cjs.map +0 -1
- package/dist/MTooltip-H3we0a7w.js +0 -57
- package/dist/MTooltip-H3we0a7w.js.map +0 -1
- package/dist/MTreeView-B1J7uqd1.js +0 -315
- package/dist/MTreeView-B1J7uqd1.js.map +0 -1
- package/dist/MTreeView-VYp0eErQ.cjs +0 -2
- package/dist/MTreeView-VYp0eErQ.cjs.map +0 -1
- package/dist/calendar-P7MwKfWS.cjs +0 -2
- package/dist/calendar-P7MwKfWS.cjs.map +0 -1
- package/dist/calendar-bzeZRst9.js +0 -193
- package/dist/calendar-bzeZRst9.js.map +0 -1
- package/dist/calendarDates-AnlGcvZM.cjs +0 -2
- package/dist/calendarDates-AnlGcvZM.cjs.map +0 -1
- package/dist/calendarDates-CYkJqcnp.js.map +0 -1
- package/dist/cards-CFDJsdxR.js +0 -1226
- package/dist/cards-CFDJsdxR.js.map +0 -1
- package/dist/cards-DeA7I2KC.cjs +0 -2
- package/dist/cards-DeA7I2KC.cjs.map +0 -1
- package/dist/controls-BKAhqjNM.js +0 -474
- package/dist/controls-BKAhqjNM.js.map +0 -1
- package/dist/controls-KK-TyUTT.cjs +0 -2
- package/dist/controls-KK-TyUTT.cjs.map +0 -1
- package/dist/creditCards-D_HwRUBz.cjs +0 -2
- package/dist/creditCards-D_HwRUBz.cjs.map +0 -1
- package/dist/creditCards-D_iWmtG6.js.map +0 -1
- package/dist/data-CgLutFxU.js +0 -689
- package/dist/data-CgLutFxU.js.map +0 -1
- package/dist/data-DFrkJTlF.cjs +0 -2
- package/dist/data-DFrkJTlF.cjs.map +0 -1
- package/dist/dateUtils-CUY6CRCf.js.map +0 -1
- package/dist/dateUtils-Dq1vaA-D.cjs +0 -2
- package/dist/dateUtils-Dq1vaA-D.cjs.map +0 -1
- package/dist/display--E7rI0tk.cjs +0 -3
- package/dist/display--E7rI0tk.cjs.map +0 -1
- package/dist/display-BnkHKW1n.js +0 -782
- package/dist/display-BnkHKW1n.js.map +0 -1
- package/dist/dropdowns-DGYg9zIh.cjs +0 -2
- package/dist/dropdowns-DGYg9zIh.cjs.map +0 -1
- package/dist/dropdowns-Dq-xAplH.js +0 -1698
- package/dist/dropdowns-Dq-xAplH.js.map +0 -1
- package/dist/feedback-CA77ShtB.cjs +0 -2
- package/dist/feedback-CA77ShtB.cjs.map +0 -1
- package/dist/feedback-CCwbdNZu.js +0 -255
- package/dist/feedback-CCwbdNZu.js.map +0 -1
- package/dist/form-CAFcvmUS.js +0 -167
- package/dist/form-CAFcvmUS.js.map +0 -1
- package/dist/form-DpfzLUOn.cjs +0 -2
- package/dist/form-DpfzLUOn.cjs.map +0 -1
- package/dist/frameworkTexts-DH0Xp-Vx.js +0 -78
- package/dist/frameworkTexts-DH0Xp-Vx.js.map +0 -1
- package/dist/frameworkTexts-iDXhcW6k.cjs +0 -2
- package/dist/frameworkTexts-iDXhcW6k.cjs.map +0 -1
- package/dist/icons-CBMl-kOM.js.map +0 -1
- package/dist/icons-D_NB67he.cjs +0 -2
- package/dist/icons-D_NB67he.cjs.map +0 -1
- package/dist/inputs-B1LCddA4.js +0 -1752
- package/dist/inputs-B1LCddA4.js.map +0 -1
- package/dist/inputs-Clenc4Rm.cjs +0 -2
- package/dist/inputs-Clenc4Rm.cjs.map +0 -1
- package/dist/layout-CNoZdeXw.cjs +0 -2
- package/dist/layout-CNoZdeXw.cjs.map +0 -1
- package/dist/layout-DsE4zfpg.js +0 -882
- package/dist/layout-DsE4zfpg.js.map +0 -1
- package/dist/licensing-DGIdtfNg.cjs +0 -2
- package/dist/licensing-DGIdtfNg.cjs.map +0 -1
- package/dist/licensing-f5KYVz7D.js.map +0 -1
- package/dist/media-DRTBXDnn.cjs +0 -2
- package/dist/media-DRTBXDnn.cjs.map +0 -1
- package/dist/media-vOQOIYFD.js +0 -402
- package/dist/media-vOQOIYFD.js.map +0 -1
- package/dist/overlays-BKk_ZXue.js +0 -568
- package/dist/overlays-BKk_ZXue.js.map +0 -1
- package/dist/overlays-Qbp4d596.cjs +0 -2
- package/dist/overlays-Qbp4d596.cjs.map +0 -1
- package/dist/theme-DAOU1aPs.js.map +0 -1
- package/dist/theme-DgaM4CjM.cjs +0 -2
- package/dist/theme-DgaM4CjM.cjs.map +0 -1
- package/dist/useGhostText-DG0bzcao.js +0 -68
- package/dist/useGhostText-DG0bzcao.js.map +0 -1
- package/dist/useGhostText-Dlemg1vw.cjs +0 -2
- package/dist/useGhostText-Dlemg1vw.cjs.map +0 -1
- package/dist/useKeyboardNav-Bm-dxVq-.cjs +0 -2
- package/dist/useKeyboardNav-Bm-dxVq-.cjs.map +0 -1
- package/dist/useKeyboardNav-iEXOdEMB.js +0 -43
- package/dist/useKeyboardNav-iEXOdEMB.js.map +0 -1
- package/dist/validators-B6yWdsu2.cjs +0 -2
- package/dist/validators-B6yWdsu2.cjs.map +0 -1
- package/dist/validators-DVYOtFnw.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlays-W0WW3fn7.js","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx","../src/components/overlays/MSheet/MSheet.tsx","../src/components/overlays/MCommandPalette/MCommandPalette.tsx","../src/components/overlays/MDrawer/MDrawer.tsx","../src/components/overlays/MPopconfirm/MPopconfirm.tsx"],"sourcesContent":["import {useEffect, useId, useState, 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 {useModalLayer} from '../../../utils/useModalLayer'\nimport {lockBodyScroll} from '../scrollLock'\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 titleId = useId()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n useModalLayer({active: open && mounted, containerRef: backdropRef, onEscape: closeOnEscape ? onClose : undefined})\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 (!mounted) return\n return lockBodyScroll()\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 ? titleId : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={titleId} 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","import {useEffect, useId, useRef, useState} from 'react'\nimport type {PointerEvent as ReactPointerEvent, MouseEvent} from 'react'\nimport type {MSheetProps, MSheetSize} from './MSheet.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MPortal} from '../../primitives'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport {useModalLayer} from '../../../utils/useModalLayer'\nimport {lockBodyScroll} from '../scrollLock'\nimport './MSheet.css'\nimport {useMCommonTexts} from '../../../i18n/frameworkTexts'\n\nconst EXIT_DURATION = 540\nconst CLOSE_DRAG_THRESHOLD = 72\n\nconst SHEET_HEIGHTS: Record<MSheetSize, string> = {\n sm: '32vh',\n md: '52vh',\n lg: '72vh',\n full: '92vh',\n}\n\nexport function MSheet({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n style,\n ...rest\n}: MSheetProps) {\n const texts = useMCommonTexts()\n const titleId = useId()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const [dragOffset, setDragOffset] = useState(0)\n\n const dragStateRef = useRef<{pointerId: number; startY: number} | null>(null)\n const dragOffsetRef = useRef(0)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n useModalLayer({active: open && mounted, containerRef: backdropRef, onEscape: closeOnEscape ? onClose : undefined})\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = window.setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => window.clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!mounted) return\n return lockBodyScroll()\n }, [mounted])\n\n function handleBackdropClick(event: MouseEvent<HTMLDivElement>) {\n if (closeOnBackdrop && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n function handleHandlePointerDown(event: ReactPointerEvent<HTMLButtonElement>) {\n event.preventDefault()\n event.currentTarget.setPointerCapture(event.pointerId)\n\n dragStateRef.current = {\n pointerId: event.pointerId,\n startY: event.clientY,\n }\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n function handleHandlePointerMove(event: ReactPointerEvent<HTMLButtonElement>) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== event.pointerId) {\n return\n }\n\n const nextOffset = Math.max(event.clientY - dragState.startY, 0)\n dragOffsetRef.current = nextOffset\n setDragOffset(nextOffset)\n }\n\n function finishDrag(pointerId: number) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== pointerId) {\n return\n }\n\n dragStateRef.current = null\n\n if (dragOffsetRef.current > CLOSE_DRAG_THRESHOLD) {\n setDragOffset(0)\n dragOffsetRef.current = 0\n onClose()\n return\n }\n\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n if (!mounted) return null\n\n const resolvedHeight = SHEET_HEIGHTS[size]\n const transformStyle = dragOffset > 0 ? `translateY(${dragOffset}px)` : undefined\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'sheet-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className=\"sheet-shell\" style={{transform: transformStyle}}>\n <MCard\n className={cn('sheet', `size-${size}`, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n style={{\n ...style,\n height: size === 'full' ? resolvedHeight : undefined,\n maxHeight: resolvedHeight,\n }}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"sheet-grabber\"\n onPointerDown={handleHandlePointerDown}\n onPointerMove={handleHandlePointerMove}\n onPointerUp={(event) => finishDrag(event.pointerId)}\n onPointerCancel={(event) => finishDrag(event.pointerId)}\n // Enter / Space on the grabber produce a click with `detail === 0`;\n // keyboard users get the same \"close\" the drag gesture offers.\n // Pointer clicks (detail >= 1) stay drag-only.\n onClick={(event) => {\n if (event.detail === 0) onClose()\n }}\n aria-label={texts.dragToClose}\n >\n <span className=\"sheet-handle\" />\n </button>\n\n {(title || description) && (\n <MCardHeader className=\"sheet-header\">\n <div className=\"sheet-copy\">\n {title && (\n <div id={titleId} className=\"sheet-title\">\n {title}\n </div>\n )}\n {description && <div className=\"sheet-description\">{description}</div>}\n </div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label={texts.close}\n className=\"sheet-close\"\n >\n <MCloseIcon />\n </MButton>\n </MCardHeader>\n )}\n\n <MCardBody className=\"sheet-body\">{children}</MCardBody>\n\n {footer && <MCardFooter className=\"sheet-footer\">{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useId, useMemo, useRef, useState} from 'react'\nimport type {KeyboardEvent as ReactKeyboardEvent, ReactNode} from 'react'\nimport type {MCommandPaletteItem, MCommandPaletteProps} from './MCommandPalette.types'\nimport {MButton} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MInline, MSimpleGrid, MStack} from '../../layout'\nimport {MSheet} from '../MSheet'\nimport {MTooltip} from '../MTooltip'\nimport {MBadge} from '../../feedback'\nimport {MLinkIcon, MSearchIcon} from '../../../icons'\nimport {MKbd, MHeading, MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport {formatMText, useMCommandPaletteTexts} from '../../../i18n/frameworkTexts'\nimport './MCommandPalette.css'\n\nfunction normalizeText(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value.toString()\n }\n\n return ''\n}\n\nfunction matchesShortcut(event: KeyboardEvent, shortcut: string) {\n const normalized = shortcut.toLowerCase().replace(/\\s+/g, '')\n const parts = normalized.split('+')\n const key = parts[parts.length - 1]\n\n if (!key) {\n return false\n }\n\n const expectsCtrl = parts.includes('ctrl')\n const expectsMeta = parts.includes('meta') || parts.includes('cmd')\n const expectsShift = parts.includes('shift')\n const expectsAlt = parts.includes('alt') || parts.includes('option')\n\n return (\n event.key.toLowerCase() === key &&\n !!expectsCtrl === event.ctrlKey &&\n !!expectsMeta === event.metaKey &&\n !!expectsShift === event.shiftKey &&\n !!expectsAlt === event.altKey\n )\n}\n\nfunction filterItems(items: MCommandPaletteItem[], query: string) {\n if (!query.trim()) {\n return items\n }\n\n const normalizedQuery = query.trim().toLowerCase()\n\n return items.filter((item) =>\n [\n normalizeText(item.title),\n normalizeText(item.description),\n normalizeText(item.group),\n normalizeText(item.actionLabel),\n ...(item.keywords ?? []),\n ].some((value) => value.toLowerCase().includes(normalizedQuery))\n )\n}\n\nfunction groupItems(items: MCommandPaletteItem[], generalLabel: string) {\n const groups = new Map<string, {label: ReactNode; items: MCommandPaletteItem[]}>()\n\n items.forEach((item) => {\n const key = normalizeText(item.group) || 'General'\n const current = groups.get(key) ?? {label: item.group ?? generalLabel, items: []}\n current.items.push(item)\n groups.set(key, current)\n })\n\n return Array.from(groups.values())\n}\n\nexport function MCommandPalette({\n items,\n featuredItems = [],\n open,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n title: titleProp,\n description,\n trigger,\n shortcut = 'ctrl+k',\n placeholder: placeholderProp,\n emptyLabel: emptyLabelProp,\n footer,\n size = 'lg',\n closeOnSelect = true,\n}: MCommandPaletteProps) {\n const texts = useMCommandPaletteTexts()\n const title = titleProp ?? texts.title\n const placeholder = placeholderProp ?? texts.placeholder\n const emptyLabel = emptyLabelProp ?? texts.empty\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const [query, setQuery] = useState('')\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : internalOpen\n const inputRef = useRef<HTMLInputElement>(null)\n const baseId = useId()\n const listboxId = `${baseId}-listbox`\n\n function setOpenState(nextOpen: boolean) {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n }\n\n const filteredItems = useMemo(() => filterItems(items, query), [items, query])\n const groupedItems = useMemo(\n () => groupItems(filteredItems, texts.generalGroup),\n [filteredItems, texts.generalGroup]\n )\n const flattenedItems = useMemo(() => groupedItems.flatMap((group) => group.items), [groupedItems])\n const featured = useMemo(() => (featuredItems.length ? featuredItems : items.slice(0, 6)), [featuredItems, items])\n\n function executeItem(item: MCommandPaletteItem) {\n item.onSelect?.()\n onSelect?.(item)\n\n if (!item.onSelect && item.href) {\n window.location.assign(item.href)\n }\n\n if (closeOnSelect) {\n setOpenState(false)\n setQuery('')\n resetIndex()\n }\n }\n\n // APG combobox: focus stays in the search field, the highlighted option is exposed\n // through aria-activedescendant.\n const {activeIndex, setActiveIndex, resetIndex, onKeyDown, activeDescendantId, getItemProps} = useKeyboardNav({\n itemCount: flattenedItems.length,\n isOpen,\n mode: 'activedescendant',\n onClose: () => setOpenState(false),\n onSelect: (index) => {\n const item = flattenedItems[index]\n\n if (item) {\n executeItem(item)\n }\n },\n })\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (matchesShortcut(event, shortcut)) {\n event.preventDefault()\n setOpenState(true)\n }\n }\n\n window.addEventListener('keydown', handleKeydown)\n\n return () => {\n window.removeEventListener('keydown', handleKeydown)\n }\n }, [shortcut])\n\n useEffect(() => {\n if (!isOpen) {\n resetIndex()\n return\n }\n\n queueMicrotask(() => inputRef.current?.focus())\n }, [isOpen, resetIndex])\n\n const activeItemId = flattenedItems[activeIndex]?.id ?? null\n\n function handleSearchKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n // Home / End keep moving the caret inside the text field (APG combobox).\n if (event.key === 'Home' || event.key === 'End') return\n onKeyDown(event)\n }\n\n const hasResults = groupedItems.length > 0\n\n return (\n <>\n {trigger ?? (\n <MButton\n variant={'filled'}\n size={'sm'}\n color={'primary'}\n iconOnly\n startIcon={<MSearchIcon />}\n aria-label={typeof title === 'string' ? title : texts.open}\n onClick={() => setOpenState(true)}\n />\n )}\n\n <MSheet\n open={isOpen}\n onClose={() => setOpenState(false)}\n title={title}\n description={description}\n size={size}\n footer={footer}\n >\n <div className=\"command-palette-body\">\n <div className=\"command-palette-search\">\n <MInputSearch\n ref={inputRef}\n value={query}\n onChange={(event) => {\n setQuery(event.target.value)\n setActiveIndex(-1)\n }}\n onKeyDown={handleSearchKeyDown}\n placeholder={placeholder}\n clearable\n fullWidth\n inputProps={{\n role: 'combobox',\n 'aria-label': texts.searchLabel,\n 'aria-autocomplete': 'list',\n 'aria-expanded': hasResults,\n 'aria-controls': hasResults ? listboxId : undefined,\n 'aria-activedescendant': activeDescendantId,\n }}\n />\n <span className=\"command-palette-sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {query.trim() ? formatMText(texts.resultsAnnouncement, {count: flattenedItems.length}) : ''}\n </span>\n </div>\n\n <div className=\"command-palette-grid\">\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>{texts.featured}</MHeading>\n <MText size={'sm'} tone={'muted'}>\n {texts.featuredDescription}\n </MText>\n </MCardHeader>\n <MCardBody>\n <MSimpleGrid columns={4}>\n {featured.map((item) => {\n const label = item.actionLabel ?? item.title\n const ariaLabel = typeof label === 'string' ? label : normalizeText(label)\n\n return (\n <MTooltip key={item.id} content={label}>\n <MButton\n variant={'ghost'}\n color={'primary'}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n startIcon={item.icon ?? <MLinkIcon />}\n iconOnly\n aria-label={ariaLabel || undefined}\n onClick={() => executeItem(item)}\n />\n </MTooltip>\n )\n })}\n </MSimpleGrid>\n </MCardBody>\n </MCard>\n\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>{texts.results}</MHeading>\n <MInline align={'center'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {formatMText(texts.resultsCount, {count: flattenedItems.length})}\n </MText>\n <MKbd>{shortcut.toUpperCase()}</MKbd>\n </MInline>\n </MCardHeader>\n <MCardBody>\n {hasResults ? (\n <MStack\n padding={'xs'}\n className=\"command-palette-results\"\n id={listboxId}\n role=\"listbox\"\n aria-label={texts.results}\n >\n {groupedItems.map((group, groupIndex) => (\n <MStack\n key={normalizeText(group.label) || 'general'}\n padding={'xs'}\n role=\"group\"\n aria-labelledby={`${listboxId}-group-${groupIndex}`}\n >\n <MText\n size={'sm'}\n tone={'muted'}\n id={`${listboxId}-group-${groupIndex}`}\n role=\"presentation\"\n >\n {group.label}\n </MText>\n {group.items.map((item) => {\n const index = flattenedItems.indexOf(item)\n const {id: optionId, ref: optionRef} = getItemProps(index)\n\n return (\n <button\n key={item.id}\n id={optionId}\n ref={optionRef}\n type=\"button\"\n role=\"option\"\n aria-selected={activeItemId === item.id}\n tabIndex={-1}\n className={cn(\n 'command-palette-item',\n activeItemId === item.id && 'active'\n )}\n // Keep focus in the search field so typing and arrows keep working.\n onMouseDown={(event) => event.preventDefault()}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => executeItem(item)}\n >\n <span className=\"command-palette-item-icon\">\n {item.icon ?? <MLinkIcon />}\n </span>\n <span className=\"command-palette-item-copy\">\n <span className=\"command-palette-item-title\">\n {item.title}\n </span>\n {item.description && (\n <span className=\"command-palette-item-description\">\n {item.description}\n </span>\n )}\n </span>\n {item.badge && (\n <span className=\"command-palette-item-badge\">\n <MBadge color={'primary'} size={'sm'}>\n {item.badge}\n </MBadge>\n </span>\n )}\n </button>\n )\n })}\n </MStack>\n ))}\n </MStack>\n ) : (\n <MText tone={'muted'}>{emptyLabel}</MText>\n )}\n </MCardBody>\n </MCard>\n </div>\n </div>\n </MSheet>\n </>\n )\n}\n","import {Children, isValidElement, useEffect, useId, useState, useRef} from 'react'\nimport type {MouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MDrawerProps, MDrawerSectionProps} from './MDrawer.types'\nimport {MPortal} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport {useModalLayer} from '../../../utils/useModalLayer'\nimport {lockBodyScroll} from '../scrollLock'\nimport './MDrawer.css'\nimport {useMCommonTexts} from '../../../i18n/frameworkTexts'\n\nconst EXIT_DURATION = 600\n\ntype DrawerSlotElement = ReactElement<MDrawerSectionProps>\n\nfunction isDrawerHeader(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerHeader\n}\n\nfunction isDrawerBody(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerBody\n}\n\nfunction isDrawerFooter(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerFooter\n}\n\nexport function MDrawerHeader({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerHeader as any).__drawerHeader = true\n\nexport function MDrawerBody({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerBody as any).__drawerBody = true\n\nexport function MDrawerFooter({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerFooter as any).__drawerFooter = true\n\nexport function MDrawer({\n open,\n onClose,\n side = 'right',\n size = 'md',\n overlay = true,\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MDrawerProps) {\n const texts = useMCommonTexts()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n const drawerRef = useRef<HTMLDivElement>(null)\n const titleId = useId()\n\n useModalLayer({active: open && mounted, containerRef: backdropRef, onEscape: closeOnEscape ? onClose : undefined})\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\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 // A drawer without an overlay is non-modal: the page beside it stays usable,\n // so it neither locks scrolling nor blocks clicks.\n useEffect(() => {\n if (!mounted || !overlay) return\n return lockBodyScroll()\n }, [mounted, overlay])\n\n // Without an overlay the backdrop lets clicks through (`pointer-events: none`),\n // so \"click outside closes\" is detected on the document instead.\n const onCloseRef = useRef(onClose)\n useEffect(() => {\n onCloseRef.current = onClose\n }, [onClose])\n useEffect(() => {\n if (!open || !mounted || overlay || !closeOnBackdrop) return\n\n const handlePointerDown = (event: globalThis.MouseEvent) => {\n const target = event.target\n if (!(target instanceof Element)) return\n if (drawerRef.current?.contains(target)) return\n // Popovers, menus and other overlays opened from the drawer portal outside it.\n if (target.closest('.popover, .mineral-backdrop')) return\n onCloseRef.current()\n }\n\n document.addEventListener('mousedown', handlePointerDown)\n return () => document.removeEventListener('mousedown', handlePointerDown)\n }, [open, mounted, overlay, closeOnBackdrop])\n\n if (!mounted) return null\n\n const handleBackdropClick = (e: MouseEvent<HTMLDivElement>) => {\n if (closeOnBackdrop && e.target === e.currentTarget) onClose()\n }\n\n let header: ReactNode = null\n let headerProps: MDrawerSectionProps | null = null\n let bodyProps: MDrawerSectionProps | null = null\n let footer: ReactNode = null\n let footerProps: MDrawerSectionProps | null = null\n const body: ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isDrawerHeader(child)) {\n header = child.props.children\n headerProps = child.props\n return\n }\n\n if (isDrawerBody(child)) {\n bodyProps = child.props\n body.push(child.props.children)\n return\n }\n\n if (isDrawerFooter(child)) {\n footer = child.props.children\n footerProps = child.props\n return\n }\n\n body.push(child)\n })\n\n const headerSection = headerProps ?? ({children: undefined} as MDrawerSectionProps)\n const bodySection = bodyProps ?? ({children: undefined} as MDrawerSectionProps)\n const footerSection = footerProps ?? ({children: undefined} as MDrawerSectionProps)\n const {\n children: _headerChildren,\n className: headerClassName,\n bordered: headerBordered = false,\n ...headerRest\n } = headerSection\n const {children: _bodyChildren, className: bodyClassName, ...bodyRest} = bodySection\n const {\n children: _footerChildren,\n className: footerClassName,\n bordered: footerBordered = false,\n ...footerRest\n } = footerSection\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'drawer-backdrop', !overlay && 'no-overlay', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div\n ref={drawerRef}\n className={cn('drawer', side, size, className)}\n role=\"dialog\"\n aria-modal={overlay ? 'true' : undefined}\n aria-labelledby={header ? titleId : undefined}\n {...rest}\n >\n {header && (\n <div\n {...headerRest}\n className={cn('drawer-header', headerBordered && 'bordered', headerClassName)}\n >\n <div id={titleId} className=\"drawer-title\">\n {header}\n </div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label={texts.close}\n className=\"close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )}\n <div {...bodyRest} className={cn('drawer-body', bodyClassName)}>\n {body}\n </div>\n {footer && (\n <div\n {...footerRest}\n className={cn('drawer-footer', footerBordered && 'bordered', footerClassName)}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useCallback, useId, useRef} from 'react'\nimport type {KeyboardEvent as ReactKeyboardEvent} from 'react'\nimport type {MPopconfirmProps} from './MPopconfirm.types'\nimport {MPopover} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport {getTabbable} from '../../../utils/useModalLayer'\nimport {useMPopconfirmTexts} from '../../../i18n/frameworkTexts'\nimport './MPopconfirm.css'\n\nexport function MPopconfirm({\n title,\n description,\n onConfirm,\n onCancel,\n confirmText: confirmTextProp,\n cancelText: cancelTextProp,\n color = 'warning',\n icon,\n placement = 'top-start',\n open,\n onOpenChange,\n anchorRef,\n className,\n}: MPopconfirmProps) {\n const texts = useMPopconfirmTexts()\n const confirmText = confirmTextProp ?? texts.confirm\n const cancelText = cancelTextProp ?? texts.cancel\n const baseId = useId()\n const titleId = `${baseId}-title`\n const descriptionId = `${baseId}-description`\n // APG alertdialog: focus starts on the least destructive action.\n const cancelRef = useRef<HTMLElement>(null)\n\n const handleCancel = useCallback(() => {\n onOpenChange(false)\n onCancel?.()\n }, [onOpenChange, onCancel])\n\n const handleConfirm = useCallback(() => {\n onOpenChange(false)\n onConfirm()\n }, [onOpenChange, onConfirm])\n\n // Keep Tab / Shift+Tab cycling inside the confirmation while it is open.\n const handleKeyDown = useCallback((e: ReactKeyboardEvent<HTMLDivElement>) => {\n if (e.key !== 'Tab') return\n const layer = e.currentTarget.closest<HTMLElement>('.popconfirm')\n if (!layer) return\n const focusable = getTabbable(layer)\n if (focusable.length === 0) return\n const first = focusable[0]\n const last = focusable[focusable.length - 1]\n const active = document.activeElement\n if (e.shiftKey && (active === first || active === layer)) {\n e.preventDefault()\n last.focus()\n } else if (!e.shiftKey && active === last) {\n e.preventDefault()\n first.focus()\n }\n }, [])\n\n return (\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={handleCancel}\n placement={placement}\n className={cn('popconfirm', `color-${color}`, className)}\n role=\"alertdialog\"\n aria-labelledby={titleId}\n aria-describedby={description ? descriptionId : undefined}\n initialFocus={cancelRef}\n >\n <div className=\"body\" onKeyDown={handleKeyDown}>\n {icon && <div className=\"icon\">{icon}</div>}\n <div className=\"content\">\n <div id={titleId} className=\"title\">\n {title}\n </div>\n {description && (\n <div id={descriptionId} className=\"description\">\n {description}\n </div>\n )}\n </div>\n </div>\n <div className=\"actions\" onKeyDown={handleKeyDown}>\n <MButton ref={cancelRef} variant=\"ghost\" size=\"sm\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </MButton>\n <MButton variant=\"ghost\" size=\"sm\" color={color} onClick={handleConfirm}>\n {confirmText}\n </MButton>\n </div>\n </MPopover>\n )\n}\n"],"mappings":"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"}
|
package/dist/overlays.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
const {ensureStyles}=require('./style-runtime.cjs')
|
|
2
2
|
ensureStyles()
|
|
3
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./overlays-
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./overlays-Df-NpmkW.cjs`),t=require(`./MTooltip-Cj2Fxmzc.cjs`),n=require(`./MDropdownMenu-C4-r7UZM.cjs`);exports.MCommandPalette=e.o,exports.MDrawer=e.n,exports.MDrawerBody=e.r,exports.MDrawerFooter=e.i,exports.MDrawerHeader=e.a,exports.MDropdownDivider=n.t,exports.MDropdownGroup=n.n,exports.MDropdownItem=n.r,exports.MDropdownMenu=n.i,exports.MModal=e.c,exports.MPopconfirm=e.t,exports.MSheet=e.s,exports.MTooltip=t.t;
|
package/dist/overlays.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./overlays-
|
|
4
|
-
import { t as c } from "./MTooltip-
|
|
5
|
-
import { i as l, n as u, r as d, t as f } from "./MDropdownMenu-
|
|
3
|
+
import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./overlays-W0WW3fn7.js";
|
|
4
|
+
import { t as c } from "./MTooltip-BRSPJ3RY.js";
|
|
5
|
+
import { i as l, n as u, r as d, t as f } from "./MDropdownMenu-Dvg9UsHB.js";
|
|
6
6
|
export { i as MCommandPalette, r as MDrawer, a as MDrawerBody, n as MDrawerFooter, e as MDrawerHeader, f as MDropdownDivider, u as MDropdownGroup, d as MDropdownItem, l as MDropdownMenu, t as MModal, s as MPopconfirm, o as MSheet, c as MTooltip };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
function e(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a=t.concat(/[A-Z]+/,n),o={scope:`variable`,match:`\\$+`+r},s={scope:`meta`,variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},c={scope:`subst`,variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),u=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c)}),d={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(c),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[
|
|
2
2
|
]`,m={scope:`string`,variants:[u,l,d,f]},h={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},g=[`false`,`null`,`true`],_=`__CLASS__.__DIR__.__FILE__.__FUNCTION__.__COMPILER_HALT_OFFSET__.__LINE__.__METHOD__.__NAMESPACE__.__TRAIT__.die.echo.exit.include.include_once.print.require.require_once.array.abstract.and.as.binary.bool.boolean.break.callable.case.catch.class.clone.const.continue.declare.default.do.double.else.elseif.empty.enddeclare.endfor.endforeach.endif.endswitch.endwhile.enum.eval.extends.final.finally.float.for.foreach.from.global.goto.if.implements.instanceof.insteadof.int.integer.interface.isset.iterable.list.match|0.mixed.new.never.object.or.private.protected.public.readonly.real.return.string.switch.throw.trait.try.unset.use.var.void.while.xor.yield`.split(`.`),v=`Error|0.AppendIterator.ArgumentCountError.ArithmeticError.ArrayIterator.ArrayObject.AssertionError.BadFunctionCallException.BadMethodCallException.CachingIterator.CallbackFilterIterator.CompileError.Countable.DirectoryIterator.DivisionByZeroError.DomainException.EmptyIterator.ErrorException.Exception.FilesystemIterator.FilterIterator.GlobIterator.InfiniteIterator.InvalidArgumentException.IteratorIterator.LengthException.LimitIterator.LogicException.MultipleIterator.NoRewindIterator.OutOfBoundsException.OutOfRangeException.OuterIterator.OverflowException.ParentIterator.ParseError.RangeException.RecursiveArrayIterator.RecursiveCachingIterator.RecursiveCallbackFilterIterator.RecursiveDirectoryIterator.RecursiveFilterIterator.RecursiveIterator.RecursiveIteratorIterator.RecursiveRegexIterator.RecursiveTreeIterator.RegexIterator.RuntimeException.SeekableIterator.SplDoublyLinkedList.SplFileInfo.SplFileObject.SplFixedArray.SplHeap.SplMaxHeap.SplMinHeap.SplObjectStorage.SplObserver.SplPriorityQueue.SplQueue.SplStack.SplSubject.SplTempFileObject.TypeError.UnderflowException.UnexpectedValueException.UnhandledMatchError.ArrayAccess.BackedEnum.Closure.Fiber.Generator.Iterator.IteratorAggregate.Serializable.Stringable.Throwable.Traversable.UnitEnum.WeakReference.WeakMap.Directory.__PHP_Incomplete_Class.parent.php_user_filter.self.static.stdClass`.split(`.`),y={keyword:_,literal:(e=>{let t=[];return e.forEach(e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())}),t})(g),built_in:v},b=e=>e.map(e=>e.replace(/\|\d+$/,``)),x={variants:[{match:[/new/,t.concat(p,`+`),t.concat(`(?!`,b(v).join(`\\b|`),`\\b)`),i],scope:{1:`keyword`,4:`title.class`}}]},S=t.concat(r,`\\b(?!\\()`),C={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{1:`title.class`,3:`variable.constant`}},{match:[i,t.concat(`::`,t.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[i,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},w={scope:`attr`,match:t.concat(r,t.lookahead(`:`),t.lookahead(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:y,contains:[w,o,C,e.C_BLOCK_COMMENT_MODE,m,h,x]},E={relevance:0,match:[/\b/,t.concat(`(?!fn\\b|function\\b|`,b(_).join(`\\b|`),`|`,b(v).join(`\\b|`),`\\b)`),r,t.concat(p,`*`),t.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[T]};T.contains.push(E);let D=[w,C,e.C_BLOCK_COMMENT_MODE,m,h,x],O={begin:t.concat(/#\[\s*\\?/,t.either(i,a)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:g,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:g,keyword:[`new`,`array`]},contains:[`self`,...D]},...D,{scope:`meta`,variants:[{match:i},{match:a}]}]};return{case_insensitive:!1,keywords:y,contains:[O,e.HASH_COMMENT_MODE,e.COMMENT(`//`,`$`),e.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},s,{scope:`variable.language`,match:/\$this\b/},o,E,C,{match:[/const/,/\s/,r],scope:{1:`keyword`,3:`variable.constant`}},x,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},e.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:y,contains:[`self`,O,o,C,e.C_BLOCK_COMMENT_MODE,m,h]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},e.UNDERSCORE_TITLE_MODE]},m,h]}}exports.default=e;
|
|
3
|
-
//# sourceMappingURL=php-
|
|
3
|
+
//# sourceMappingURL=php-Cwjc-ZYq.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php-BdVXegqn.cjs","names":[],"sources":["../../../node_modules/highlight.js/es/languages/php.js"],"sourcesContent":["/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const UPCASE_NAME_RE = regex.concat(\n /[A-Z]+/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: \"meta\",\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n\n const HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n };\n\n const NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC,\n NOWDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*\\\\?/,\n regex.either(\n PASCAL_CASE_CLASS_NAME_RE,\n UPCASE_NAME_RE\n )\n ),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n variants: [\n { match: PASCAL_CASE_CLASS_NAME_RE },\n { match: UPCASE_NAME_RE }\n ]\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n ATTRIBUTES,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nexport { php as default };\n"],"x_google_ignoreList":[0],"mappings":"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OAAO,CAAE,OAAO,CAClI,EACA,EAAM,OAAO,EAAY,IAAI,CAC7B,EAAM,UAAU,SAAS,CAC1B,CACD,MAAO,CAAE,EAAG,wBAA0B,CACtC,SAAU,CAAE,EAAa,CAC1B,CACD,EAAY,SAAS,KAAK,EAAgB,CAE1C,IAAM,EAAqB,CACzB,EACA,EACA,EAAK,qBACL,EACA,EACA,EACD,CAEK,EAAa,CACjB,MAAO,EAAM,OAAO,YAClB,EAAM,OACJ,EACA,EACD,CACF,CACD,WAAY,OACZ,IAAK,IACL,SAAU,OACV,SAAU,CACR,QAAS,EACT,QAAS,CACP,MACA,QACD,CACF,CACD,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,SAAU,CACR,QAAS,EACT,QAAS,CACP,MACA,QACD,CACF,CACD,SAAU,CACR,OACA,GAAG,EACJ,CACF,CACD,GAAG,EACH,CACE,MAAO,OACP,SAAU,CACR,CAAE,MAAO,EAA2B,CACpC,CAAE,MAAO,EAAgB,CAC1B,CACF,CACF,CACF,CAED,MAAO,CACL,iBAAkB,GAClB,SAAU,EACV,SAAU,CACR,EACA,EAAK,kBACL,EAAK,QAAQ,KAAM,IAAI,CACvB,EAAK,QACH,OACA,OACA,CAAE,SAAU,CACV,CACE,MAAO,SACP,MAAO,aACR,CACF,CAAE,CACJ,CACD,CACE,MAAO,uBACP,SAAU,kBACV,OAAQ,CACN,MAAO,UACP,IAAK,EAAK,iBACV,SAAU,CACR,CACE,MAAO,MACP,MAAO,OACP,WAAY,GACb,CACF,CACF,CACF,CACD,EACA,CACE,MAAO,oBACP,MAAO,WACR,CACD,EACA,EACA,EACA,CACE,MAAO,CACL,QACA,KACA,EACD,CACD,MAAO,CACL,EAAG,UACH,EAAG,oBACJ,CACF,CACD,EACA,CACE,MAAO,WACP,UAAW,EACX,cAAe,cACf,IAAK,OACL,WAAY,GACZ,QAAS,UACT,SAAU,CACR,CAAE,cAAe,MAAQ,CACzB,EAAK,sBACL,CACE,MAAO,KACP,WAAY,GACb,CACD,CACE,MAAO,SACP,MAAO,MACP,IAAK,MACL,aAAc,GACd,WAAY,GACZ,SAAU,EACV,SAAU,CACR,OACA,EACA,EACA,EACA,EAAK,qBACL,EACA,EACD,CACF,CACF,CACF,CACD,CACE,MAAO,QACP,SAAU,CACR,CACE,cAAe,OACf,QAAS,QACV,CACD,CACE,cAAe,wBACf,QAAS,SACV,CACF,CACD,UAAW,EACX,IAAK,KACL,WAAY,GACZ,SAAU,CACR,CAAE,cAAe,qBAAsB,CACvC,EAAK,sBACN,CACF,CAID,CACE,cAAe,YACf,UAAW,EACX,IAAK,IACL,QAAS,OACT,SAAU,CAAE,EAAK,QAAQ,EAAK,sBAAuB,CAAE,MAAO,cAAe,CAAC,CAAE,CACjF,CACD,CACE,cAAe,MACf,UAAW,EACX,IAAK,IACL,SAAU,CAER,CACE,MAAO,0BACP,MAAO,UACR,CAED,EAAK,sBACN,CACF,CACD,EACA,EACD,CACF"}
|
|
1
|
+
{"version":3,"file":"php-Cwjc-ZYq.cjs","names":[],"sources":["../../../node_modules/highlight.js/es/languages/php.js"],"sourcesContent":["/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const UPCASE_NAME_RE = regex.concat(\n /[A-Z]+/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: \"meta\",\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n\n const HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n };\n\n const NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC,\n NOWDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*\\\\?/,\n regex.either(\n PASCAL_CASE_CLASS_NAME_RE,\n UPCASE_NAME_RE\n )\n ),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n variants: [\n { match: PASCAL_CASE_CLASS_NAME_RE },\n { match: UPCASE_NAME_RE }\n ]\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n ATTRIBUTES,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nexport { php as default };\n"],"x_google_ignoreList":[0],"mappings":"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OAAO,CAAE,OAAO,CAClI,EACA,EAAM,OAAO,EAAY,IAAI,CAC7B,EAAM,UAAU,SAAS,CAC1B,CACD,MAAO,CAAE,EAAG,wBAA0B,CACtC,SAAU,CAAE,EAAa,CAC1B,CACD,EAAY,SAAS,KAAK,EAAgB,CAE1C,IAAM,EAAqB,CACzB,EACA,EACA,EAAK,qBACL,EACA,EACA,EACD,CAEK,EAAa,CACjB,MAAO,EAAM,OAAO,YAClB,EAAM,OACJ,EACA,EACD,CACF,CACD,WAAY,OACZ,IAAK,IACL,SAAU,OACV,SAAU,CACR,QAAS,EACT,QAAS,CACP,MACA,QACD,CACF,CACD,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,SAAU,CACR,QAAS,EACT,QAAS,CACP,MACA,QACD,CACF,CACD,SAAU,CACR,OACA,GAAG,EACJ,CACF,CACD,GAAG,EACH,CACE,MAAO,OACP,SAAU,CACR,CAAE,MAAO,EAA2B,CACpC,CAAE,MAAO,EAAgB,CAC1B,CACF,CACF,CACF,CAED,MAAO,CACL,iBAAkB,GAClB,SAAU,EACV,SAAU,CACR,EACA,EAAK,kBACL,EAAK,QAAQ,KAAM,IAAI,CACvB,EAAK,QACH,OACA,OACA,CAAE,SAAU,CACV,CACE,MAAO,SACP,MAAO,aACR,CACF,CAAE,CACJ,CACD,CACE,MAAO,uBACP,SAAU,kBACV,OAAQ,CACN,MAAO,UACP,IAAK,EAAK,iBACV,SAAU,CACR,CACE,MAAO,MACP,MAAO,OACP,WAAY,GACb,CACF,CACF,CACF,CACD,EACA,CACE,MAAO,oBACP,MAAO,WACR,CACD,EACA,EACA,EACA,CACE,MAAO,CACL,QACA,KACA,EACD,CACD,MAAO,CACL,EAAG,UACH,EAAG,oBACJ,CACF,CACD,EACA,CACE,MAAO,WACP,UAAW,EACX,cAAe,cACf,IAAK,OACL,WAAY,GACZ,QAAS,UACT,SAAU,CACR,CAAE,cAAe,MAAQ,CACzB,EAAK,sBACL,CACE,MAAO,KACP,WAAY,GACb,CACD,CACE,MAAO,SACP,MAAO,MACP,IAAK,MACL,aAAc,GACd,WAAY,GACZ,SAAU,EACV,SAAU,CACR,OACA,EACA,EACA,EACA,EAAK,qBACL,EACA,EACD,CACF,CACF,CACF,CACD,CACE,MAAO,QACP,SAAU,CACR,CACE,cAAe,OACf,QAAS,QACV,CACD,CACE,cAAe,wBACf,QAAS,SACV,CACF,CACD,UAAW,EACX,IAAK,KACL,WAAY,GACZ,SAAU,CACR,CAAE,cAAe,qBAAsB,CACvC,EAAK,sBACN,CACF,CAID,CACE,cAAe,YACf,UAAW,EACX,IAAK,IACL,QAAS,OACT,SAAU,CAAE,EAAK,QAAQ,EAAK,sBAAuB,CAAE,MAAO,cAAe,CAAC,CAAE,CACjF,CACD,CACE,cAAe,MACf,UAAW,EACX,IAAK,IACL,SAAU,CAER,CACE,MAAO,0BACP,MAAO,UACR,CAED,EAAK,sBACN,CACF,CACD,EACA,EACD,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php-Cb_S1hXT.js","names":[],"sources":["../../../node_modules/highlight.js/es/languages/php.js"],"sourcesContent":["/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const UPCASE_NAME_RE = regex.concat(\n /[A-Z]+/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: \"meta\",\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n\n const HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n };\n\n const NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC,\n NOWDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*\\\\?/,\n regex.either(\n PASCAL_CASE_CLASS_NAME_RE,\n UPCASE_NAME_RE\n )\n ),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n variants: [\n { match: PASCAL_CASE_CLASS_NAME_RE },\n { match: UPCASE_NAME_RE }\n ]\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n ATTRIBUTES,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nexport { php as default };\n"],"x_google_ignoreList":[0],"mappings":"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C,KAAK,OAAO,EAAE,OAAO;GAClI;GACA,EAAM,OAAO,GAAY,IAAI;GAC7B,EAAM,UAAU,SAAS;GAC1B;EACD,OAAO,EAAE,GAAG,yBAA0B;EACtC,UAAU,CAAE,EAAa;EAC1B;AACD,GAAY,SAAS,KAAK,EAAgB;CAE1C,IAAM,IAAqB;EACzB;EACA;EACA,EAAK;EACL;EACA;EACA;EACD,EAEK,IAAa;EACjB,OAAO,EAAM,OAAO,aAClB,EAAM,OACJ,GACA,EACD,CACF;EACD,YAAY;EACZ,KAAK;EACL,UAAU;EACV,UAAU;GACR,SAAS;GACT,SAAS,CACP,OACA,QACD;GACF;EACD,UAAU;GACR;IACE,OAAO;IACP,KAAK;IACL,UAAU;KACR,SAAS;KACT,SAAS,CACP,OACA,QACD;KACF;IACD,UAAU,CACR,QACA,GAAG,EACJ;IACF;GACD,GAAG;GACH;IACE,OAAO;IACP,UAAU,CACR,EAAE,OAAO,GAA2B,EACpC,EAAE,OAAO,GAAgB,CAC1B;IACF;GACF;EACF;AAED,QAAO;EACL,kBAAkB;EAClB,UAAU;EACV,UAAU;GACR;GACA,EAAK;GACL,EAAK,QAAQ,MAAM,IAAI;GACvB,EAAK,QACH,QACA,QACA,EAAE,UAAU,CACV;IACE,OAAO;IACP,OAAO;IACR,CACF,EAAE,CACJ;GACD;IACE,OAAO;IACP,UAAU;IACV,QAAQ;KACN,OAAO;KACP,KAAK,EAAK;KACV,UAAU,CACR;MACE,OAAO;MACP,OAAO;MACP,YAAY;MACb,CACF;KACF;IACF;GACD;GACA;IACE,OAAO;IACP,OAAO;IACR;GACD;GACA;GACA;GACA;IACE,OAAO;KACL;KACA;KACA;KACD;IACD,OAAO;KACL,GAAG;KACH,GAAG;KACJ;IACF;GACD;GACA;IACE,OAAO;IACP,WAAW;IACX,eAAe;IACf,KAAK;IACL,YAAY;IACZ,SAAS;IACT,UAAU;KACR,EAAE,eAAe,OAAQ;KACzB,EAAK;KACL;MACE,OAAO;MACP,YAAY;MACb;KACD;MACE,OAAO;MACP,OAAO;MACP,KAAK;MACL,cAAc;MACd,YAAY;MACZ,UAAU;MACV,UAAU;OACR;OACA;OACA;OACA;OACA,EAAK;OACL;OACA;OACD;MACF;KACF;IACF;GACD;IACE,OAAO;IACP,UAAU,CACR;KACE,eAAe;KACf,SAAS;KACV,EACD;KACE,eAAe;KACf,SAAS;KACV,CACF;IACD,WAAW;IACX,KAAK;IACL,YAAY;IACZ,UAAU,CACR,EAAE,eAAe,sBAAsB,EACvC,EAAK,sBACN;IACF;GAID;IACE,eAAe;IACf,WAAW;IACX,KAAK;IACL,SAAS;IACT,UAAU,CAAE,EAAK,QAAQ,EAAK,uBAAuB,EAAE,OAAO,eAAe,CAAC,CAAE;IACjF;GACD;IACE,eAAe;IACf,WAAW;IACX,KAAK;IACL,UAAU,CAER;KACE,OAAO;KACP,OAAO;KACR,EAED,EAAK,sBACN;IACF;GACD;GACA;GACD;EACF"}
|
|
1
|
+
{"version":3,"file":"php-Db8PWzaX.js","names":[],"sources":["../../../node_modules/highlight.js/es/languages/php.js"],"sourcesContent":["/*\nLanguage: PHP\nAuthor: Victor Karamzin <Victor.Karamzin@enterra-inc.com>\nContributors: Evgeny Stepanischev <imbolk@gmail.com>, Ivan Sagalaev <maniac@softwaremaniacs.org>\nWebsite: https://www.php.net\nCategory: common\n*/\n\n/**\n * @param {HLJSApi} hljs\n * @returns {LanguageDetail}\n * */\nfunction php(hljs) {\n const regex = hljs.regex;\n // negative look-ahead tries to avoid matching patterns that are not\n // Perl at all like $ident$, @ident@, etc.\n const NOT_PERL_ETC = /(?![A-Za-z0-9])(?![$])/;\n const IDENT_RE = regex.concat(\n /[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/,\n NOT_PERL_ETC);\n // Will not detect camelCase classes\n const PASCAL_CASE_CLASS_NAME_RE = regex.concat(\n /(\\\\?[A-Z][a-z0-9_\\x7f-\\xff]+|\\\\?[A-Z]+(?=[A-Z][a-z0-9_\\x7f-\\xff])){1,}/,\n NOT_PERL_ETC);\n const UPCASE_NAME_RE = regex.concat(\n /[A-Z]+/,\n NOT_PERL_ETC);\n const VARIABLE = {\n scope: 'variable',\n match: '\\\\$+' + IDENT_RE,\n };\n const PREPROCESSOR = {\n scope: \"meta\",\n variants: [\n { begin: /<\\?php/, relevance: 10 }, // boost for obvious PHP\n { begin: /<\\?=/ },\n // less relevant per PSR-1 which says not to use short-tags\n { begin: /<\\?/, relevance: 0.1 },\n { begin: /\\?>/ } // end php tag\n ]\n };\n const SUBST = {\n scope: 'subst',\n variants: [\n { begin: /\\$\\w+/ },\n {\n begin: /\\{\\$/,\n end: /\\}/\n }\n ]\n };\n const SINGLE_QUOTED = hljs.inherit(hljs.APOS_STRING_MODE, { illegal: null, });\n const DOUBLE_QUOTED = hljs.inherit(hljs.QUOTE_STRING_MODE, {\n illegal: null,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n });\n\n const HEREDOC = {\n begin: /<<<[ \\t]*(?:(\\w+)|\"(\\w+)\")\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n contains: hljs.QUOTE_STRING_MODE.contains.concat(SUBST),\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1] || m[2]; },\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); },\n };\n\n const NOWDOC = hljs.END_SAME_AS_BEGIN({\n begin: /<<<[ \\t]*'(\\w+)'\\n/,\n end: /[ \\t]*(\\w+)\\b/,\n });\n // list of valid whitespaces because non-breaking space might be part of a IDENT_RE\n const WHITESPACE = '[ \\t\\n]';\n const STRING = {\n scope: 'string',\n variants: [\n DOUBLE_QUOTED,\n SINGLE_QUOTED,\n HEREDOC,\n NOWDOC\n ]\n };\n const NUMBER = {\n scope: 'number',\n variants: [\n { begin: `\\\\b0[bB][01]+(?:_[01]+)*\\\\b` }, // Binary w/ underscore support\n { begin: `\\\\b0[oO][0-7]+(?:_[0-7]+)*\\\\b` }, // Octals w/ underscore support\n { begin: `\\\\b0[xX][\\\\da-fA-F]+(?:_[\\\\da-fA-F]+)*\\\\b` }, // Hex w/ underscore support\n // Decimals w/ underscore support, with optional fragments and scientific exponent (e) suffix.\n { begin: `(?:\\\\b\\\\d+(?:_\\\\d+)*(\\\\.(?:\\\\d+(?:_\\\\d+)*))?|\\\\B\\\\.\\\\d+)(?:[eE][+-]?\\\\d+)?` }\n ],\n relevance: 0\n };\n const LITERALS = [\n \"false\",\n \"null\",\n \"true\"\n ];\n const KWS = [\n // Magic constants:\n // <https://www.php.net/manual/en/language.constants.predefined.php>\n \"__CLASS__\",\n \"__DIR__\",\n \"__FILE__\",\n \"__FUNCTION__\",\n \"__COMPILER_HALT_OFFSET__\",\n \"__LINE__\",\n \"__METHOD__\",\n \"__NAMESPACE__\",\n \"__TRAIT__\",\n // Function that look like language construct or language construct that look like function:\n // List of keywords that may not require parenthesis\n \"die\",\n \"echo\",\n \"exit\",\n \"include\",\n \"include_once\",\n \"print\",\n \"require\",\n \"require_once\",\n // These are not language construct (function) but operate on the currently-executing function and can access the current symbol table\n // 'compact extract func_get_arg func_get_args func_num_args get_called_class get_parent_class ' +\n // Other keywords:\n // <https://www.php.net/manual/en/reserved.php>\n // <https://www.php.net/manual/en/language.types.type-juggling.php>\n \"array\",\n \"abstract\",\n \"and\",\n \"as\",\n \"binary\",\n \"bool\",\n \"boolean\",\n \"break\",\n \"callable\",\n \"case\",\n \"catch\",\n \"class\",\n \"clone\",\n \"const\",\n \"continue\",\n \"declare\",\n \"default\",\n \"do\",\n \"double\",\n \"else\",\n \"elseif\",\n \"empty\",\n \"enddeclare\",\n \"endfor\",\n \"endforeach\",\n \"endif\",\n \"endswitch\",\n \"endwhile\",\n \"enum\",\n \"eval\",\n \"extends\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"foreach\",\n \"from\",\n \"global\",\n \"goto\",\n \"if\",\n \"implements\",\n \"instanceof\",\n \"insteadof\",\n \"int\",\n \"integer\",\n \"interface\",\n \"isset\",\n \"iterable\",\n \"list\",\n \"match|0\",\n \"mixed\",\n \"new\",\n \"never\",\n \"object\",\n \"or\",\n \"private\",\n \"protected\",\n \"public\",\n \"readonly\",\n \"real\",\n \"return\",\n \"string\",\n \"switch\",\n \"throw\",\n \"trait\",\n \"try\",\n \"unset\",\n \"use\",\n \"var\",\n \"void\",\n \"while\",\n \"xor\",\n \"yield\"\n ];\n\n const BUILT_INS = [\n // Standard PHP library:\n // <https://www.php.net/manual/en/book.spl.php>\n \"Error|0\",\n \"AppendIterator\",\n \"ArgumentCountError\",\n \"ArithmeticError\",\n \"ArrayIterator\",\n \"ArrayObject\",\n \"AssertionError\",\n \"BadFunctionCallException\",\n \"BadMethodCallException\",\n \"CachingIterator\",\n \"CallbackFilterIterator\",\n \"CompileError\",\n \"Countable\",\n \"DirectoryIterator\",\n \"DivisionByZeroError\",\n \"DomainException\",\n \"EmptyIterator\",\n \"ErrorException\",\n \"Exception\",\n \"FilesystemIterator\",\n \"FilterIterator\",\n \"GlobIterator\",\n \"InfiniteIterator\",\n \"InvalidArgumentException\",\n \"IteratorIterator\",\n \"LengthException\",\n \"LimitIterator\",\n \"LogicException\",\n \"MultipleIterator\",\n \"NoRewindIterator\",\n \"OutOfBoundsException\",\n \"OutOfRangeException\",\n \"OuterIterator\",\n \"OverflowException\",\n \"ParentIterator\",\n \"ParseError\",\n \"RangeException\",\n \"RecursiveArrayIterator\",\n \"RecursiveCachingIterator\",\n \"RecursiveCallbackFilterIterator\",\n \"RecursiveDirectoryIterator\",\n \"RecursiveFilterIterator\",\n \"RecursiveIterator\",\n \"RecursiveIteratorIterator\",\n \"RecursiveRegexIterator\",\n \"RecursiveTreeIterator\",\n \"RegexIterator\",\n \"RuntimeException\",\n \"SeekableIterator\",\n \"SplDoublyLinkedList\",\n \"SplFileInfo\",\n \"SplFileObject\",\n \"SplFixedArray\",\n \"SplHeap\",\n \"SplMaxHeap\",\n \"SplMinHeap\",\n \"SplObjectStorage\",\n \"SplObserver\",\n \"SplPriorityQueue\",\n \"SplQueue\",\n \"SplStack\",\n \"SplSubject\",\n \"SplTempFileObject\",\n \"TypeError\",\n \"UnderflowException\",\n \"UnexpectedValueException\",\n \"UnhandledMatchError\",\n // Reserved interfaces:\n // <https://www.php.net/manual/en/reserved.interfaces.php>\n \"ArrayAccess\",\n \"BackedEnum\",\n \"Closure\",\n \"Fiber\",\n \"Generator\",\n \"Iterator\",\n \"IteratorAggregate\",\n \"Serializable\",\n \"Stringable\",\n \"Throwable\",\n \"Traversable\",\n \"UnitEnum\",\n \"WeakReference\",\n \"WeakMap\",\n // Reserved classes:\n // <https://www.php.net/manual/en/reserved.classes.php>\n \"Directory\",\n \"__PHP_Incomplete_Class\",\n \"parent\",\n \"php_user_filter\",\n \"self\",\n \"static\",\n \"stdClass\"\n ];\n\n /** Dual-case keywords\n *\n * [\"then\",\"FILE\"] =>\n * [\"then\", \"THEN\", \"FILE\", \"file\"]\n *\n * @param {string[]} items */\n const dualCase = (items) => {\n /** @type string[] */\n const result = [];\n items.forEach(item => {\n result.push(item);\n if (item.toLowerCase() === item) {\n result.push(item.toUpperCase());\n } else {\n result.push(item.toLowerCase());\n }\n });\n return result;\n };\n\n const KEYWORDS = {\n keyword: KWS,\n literal: dualCase(LITERALS),\n built_in: BUILT_INS,\n };\n\n /**\n * @param {string[]} items */\n const normalizeKeywords = (items) => {\n return items.map(item => {\n return item.replace(/\\|\\d+$/, \"\");\n });\n };\n\n const CONSTRUCTOR_CALL = { variants: [\n {\n match: [\n /new/,\n regex.concat(WHITESPACE, \"+\"),\n // to prevent built ins from being confused as the class constructor call\n regex.concat(\"(?!\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n PASCAL_CASE_CLASS_NAME_RE,\n ],\n scope: {\n 1: \"keyword\",\n 4: \"title.class\",\n },\n }\n ] };\n\n const CONSTANT_REFERENCE = regex.concat(IDENT_RE, \"\\\\b(?!\\\\()\");\n\n const LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON = { variants: [\n {\n match: [\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: { 2: \"variable.constant\", },\n },\n {\n match: [\n /::/,\n /class/,\n ],\n scope: { 2: \"variable.language\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n /::/,\n regex.lookahead(/(?!class\\b)/)\n ),\n CONSTANT_REFERENCE,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.constant\",\n },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n regex.concat(\n \"::\",\n regex.lookahead(/(?!class\\b)/)\n ),\n ],\n scope: { 1: \"title.class\", },\n },\n {\n match: [\n PASCAL_CASE_CLASS_NAME_RE,\n /::/,\n /class/,\n ],\n scope: {\n 1: \"title.class\",\n 3: \"variable.language\",\n },\n }\n ] };\n\n const NAMED_ARGUMENT = {\n scope: 'attr',\n match: regex.concat(IDENT_RE, regex.lookahead(':'), regex.lookahead(/(?!::)/)),\n };\n const PARAMS_MODE = {\n relevance: 0,\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS,\n contains: [\n NAMED_ARGUMENT,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ],\n };\n const FUNCTION_INVOKE = {\n relevance: 0,\n match: [\n /\\b/,\n // to prevent keywords from being confused as the function title\n regex.concat(\"(?!fn\\\\b|function\\\\b|\", normalizeKeywords(KWS).join(\"\\\\b|\"), \"|\", normalizeKeywords(BUILT_INS).join(\"\\\\b|\"), \"\\\\b)\"),\n IDENT_RE,\n regex.concat(WHITESPACE, \"*\"),\n regex.lookahead(/(?=\\()/)\n ],\n scope: { 3: \"title.function.invoke\", },\n contains: [ PARAMS_MODE ]\n };\n PARAMS_MODE.contains.push(FUNCTION_INVOKE);\n\n const ATTRIBUTE_CONTAINS = [\n NAMED_ARGUMENT,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER,\n CONSTRUCTOR_CALL,\n ];\n\n const ATTRIBUTES = {\n begin: regex.concat(/#\\[\\s*\\\\?/,\n regex.either(\n PASCAL_CASE_CLASS_NAME_RE,\n UPCASE_NAME_RE\n )\n ),\n beginScope: \"meta\",\n end: /]/,\n endScope: \"meta\",\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n {\n begin: /\\[/,\n end: /]/,\n keywords: {\n literal: LITERALS,\n keyword: [\n 'new',\n 'array',\n ]\n },\n contains: [\n 'self',\n ...ATTRIBUTE_CONTAINS,\n ]\n },\n ...ATTRIBUTE_CONTAINS,\n {\n scope: 'meta',\n variants: [\n { match: PASCAL_CASE_CLASS_NAME_RE },\n { match: UPCASE_NAME_RE }\n ]\n }\n ]\n };\n\n return {\n case_insensitive: false,\n keywords: KEYWORDS,\n contains: [\n ATTRIBUTES,\n hljs.HASH_COMMENT_MODE,\n hljs.COMMENT('//', '$'),\n hljs.COMMENT(\n '/\\\\*',\n '\\\\*/',\n { contains: [\n {\n scope: 'doctag',\n match: '@[A-Za-z]+'\n }\n ] }\n ),\n {\n match: /__halt_compiler\\(\\);/,\n keywords: '__halt_compiler',\n starts: {\n scope: \"comment\",\n end: hljs.MATCH_NOTHING_RE,\n contains: [\n {\n match: /\\?>/,\n scope: \"meta\",\n endsParent: true\n }\n ]\n }\n },\n PREPROCESSOR,\n {\n scope: 'variable.language',\n match: /\\$this\\b/\n },\n VARIABLE,\n FUNCTION_INVOKE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n {\n match: [\n /const/,\n /\\s/,\n IDENT_RE,\n ],\n scope: {\n 1: \"keyword\",\n 3: \"variable.constant\",\n },\n },\n CONSTRUCTOR_CALL,\n {\n scope: 'function',\n relevance: 0,\n beginKeywords: 'fn function',\n end: /[;{]/,\n excludeEnd: true,\n illegal: '[$%\\\\[]',\n contains: [\n { beginKeywords: 'use', },\n hljs.UNDERSCORE_TITLE_MODE,\n {\n begin: '=>', // No markup, just a relevance booster\n endsParent: true\n },\n {\n scope: 'params',\n begin: '\\\\(',\n end: '\\\\)',\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS,\n contains: [\n 'self',\n ATTRIBUTES,\n VARIABLE,\n LEFT_AND_RIGHT_SIDE_OF_DOUBLE_COLON,\n hljs.C_BLOCK_COMMENT_MODE,\n STRING,\n NUMBER\n ]\n },\n ]\n },\n {\n scope: 'class',\n variants: [\n {\n beginKeywords: \"enum\",\n illegal: /[($\"]/\n },\n {\n beginKeywords: \"class interface trait\",\n illegal: /[:($\"]/\n }\n ],\n relevance: 0,\n end: /\\{/,\n excludeEnd: true,\n contains: [\n { beginKeywords: 'extends implements' },\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n // both use and namespace still use \"old style\" rules (vs multi-match)\n // because the namespace name can include `\\` and we still want each\n // element to be treated as its own *individual* title\n {\n beginKeywords: 'namespace',\n relevance: 0,\n end: ';',\n illegal: /[.']/,\n contains: [ hljs.inherit(hljs.UNDERSCORE_TITLE_MODE, { scope: \"title.class\" }) ]\n },\n {\n beginKeywords: 'use',\n relevance: 0,\n end: ';',\n contains: [\n // TODO: title.function vs title.class\n {\n match: /\\b(as|const|function)\\b/,\n scope: \"keyword\"\n },\n // TODO: could be title.class or title.function\n hljs.UNDERSCORE_TITLE_MODE\n ]\n },\n STRING,\n NUMBER,\n ]\n };\n}\n\nexport { php as default };\n"],"x_google_ignoreList":[0],"mappings":"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C,KAAK,OAAO,EAAE,OAAO;GAClI;GACA,EAAM,OAAO,GAAY,IAAI;GAC7B,EAAM,UAAU,SAAS;GAC1B;EACD,OAAO,EAAE,GAAG,yBAA0B;EACtC,UAAU,CAAE,EAAa;EAC1B;AACD,GAAY,SAAS,KAAK,EAAgB;CAE1C,IAAM,IAAqB;EACzB;EACA;EACA,EAAK;EACL;EACA;EACA;EACD,EAEK,IAAa;EACjB,OAAO,EAAM,OAAO,aAClB,EAAM,OACJ,GACA,EACD,CACF;EACD,YAAY;EACZ,KAAK;EACL,UAAU;EACV,UAAU;GACR,SAAS;GACT,SAAS,CACP,OACA,QACD;GACF;EACD,UAAU;GACR;IACE,OAAO;IACP,KAAK;IACL,UAAU;KACR,SAAS;KACT,SAAS,CACP,OACA,QACD;KACF;IACD,UAAU,CACR,QACA,GAAG,EACJ;IACF;GACD,GAAG;GACH;IACE,OAAO;IACP,UAAU,CACR,EAAE,OAAO,GAA2B,EACpC,EAAE,OAAO,GAAgB,CAC1B;IACF;GACF;EACF;AAED,QAAO;EACL,kBAAkB;EAClB,UAAU;EACV,UAAU;GACR;GACA,EAAK;GACL,EAAK,QAAQ,MAAM,IAAI;GACvB,EAAK,QACH,QACA,QACA,EAAE,UAAU,CACV;IACE,OAAO;IACP,OAAO;IACR,CACF,EAAE,CACJ;GACD;IACE,OAAO;IACP,UAAU;IACV,QAAQ;KACN,OAAO;KACP,KAAK,EAAK;KACV,UAAU,CACR;MACE,OAAO;MACP,OAAO;MACP,YAAY;MACb,CACF;KACF;IACF;GACD;GACA;IACE,OAAO;IACP,OAAO;IACR;GACD;GACA;GACA;GACA;IACE,OAAO;KACL;KACA;KACA;KACD;IACD,OAAO;KACL,GAAG;KACH,GAAG;KACJ;IACF;GACD;GACA;IACE,OAAO;IACP,WAAW;IACX,eAAe;IACf,KAAK;IACL,YAAY;IACZ,SAAS;IACT,UAAU;KACR,EAAE,eAAe,OAAQ;KACzB,EAAK;KACL;MACE,OAAO;MACP,YAAY;MACb;KACD;MACE,OAAO;MACP,OAAO;MACP,KAAK;MACL,cAAc;MACd,YAAY;MACZ,UAAU;MACV,UAAU;OACR;OACA;OACA;OACA;OACA,EAAK;OACL;OACA;OACD;MACF;KACF;IACF;GACD;IACE,OAAO;IACP,UAAU,CACR;KACE,eAAe;KACf,SAAS;KACV,EACD;KACE,eAAe;KACf,SAAS;KACV,CACF;IACD,WAAW;IACX,KAAK;IACL,YAAY;IACZ,UAAU,CACR,EAAE,eAAe,sBAAsB,EACvC,EAAK,sBACN;IACF;GAID;IACE,eAAe;IACf,WAAW;IACX,KAAK;IACL,SAAS;IACT,UAAU,CAAE,EAAK,QAAQ,EAAK,uBAAuB,EAAE,OAAO,eAAe,CAAC,CAAE;IACjF;GACD;IACE,eAAe;IACf,WAAW;IACX,KAAK;IACL,UAAU,CAER;KACE,OAAO;KACP,OAAO;KACR,EAED,EAAK,sBACN;IACF;GACD;GACA;GACD;EACF"}
|
package/dist/primitives.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
const {ensureStyles}=require('./style-runtime.cjs')
|
|
2
2
|
ensureStyles()
|
|
3
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./
|
|
3
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./useModalLayer-Cyt93Prs.cjs`),t=require(`./MPopover-ZeoU9hb5.cjs`);exports.MPopover=t.t,exports.MPortal=e.c;
|
package/dist/primitives.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {ensureStyles} from './style-runtime.js'
|
|
2
2
|
ensureStyles()
|
|
3
|
-
import {
|
|
4
|
-
import { t } from "./MPopover-
|
|
3
|
+
import { c as e } from "./useModalLayer-CpOPSDbf.js";
|
|
4
|
+
import { t } from "./MPopover-CBDbUOW6.js";
|
|
5
5
|
export { t as MPopover, e as MPortal };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/utils/radioGroupKeys.ts
|
|
2
|
+
function e(e, t, n, r = !1) {
|
|
3
|
+
if (n <= 0) return null;
|
|
4
|
+
let i = e;
|
|
5
|
+
switch (r && e === "ArrowRight" ? i = "ArrowLeft" : r && e === "ArrowLeft" && (i = "ArrowRight"), i) {
|
|
6
|
+
case "ArrowRight":
|
|
7
|
+
case "ArrowDown": return t < 0 ? 0 : (t + 1) % n;
|
|
8
|
+
case "ArrowLeft":
|
|
9
|
+
case "ArrowUp": return t < 0 ? n - 1 : (t - 1 + n) % n;
|
|
10
|
+
case "Home": return 0;
|
|
11
|
+
case "End": return n - 1;
|
|
12
|
+
default: return null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function t(e) {
|
|
16
|
+
if (!e || typeof window > "u") return !1;
|
|
17
|
+
let t = e.closest("[dir]");
|
|
18
|
+
if (t) return t.getAttribute("dir")?.toLowerCase() === "rtl";
|
|
19
|
+
try {
|
|
20
|
+
return window.getComputedStyle(e).direction === "rtl";
|
|
21
|
+
} catch {
|
|
22
|
+
return !1;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { t as n, e as t };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=radioGroupKeys-Bm-Qeh8G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radioGroupKeys-Bm-Qeh8G.js","names":[],"sources":["../src/utils/radioGroupKeys.ts"],"sourcesContent":["/**\n * Arrow-key target for an APG radio group (roving tabindex, selection follows focus).\n * ArrowRight / ArrowDown move forward, ArrowLeft / ArrowUp move back, both wrap; Home / End jump\n * to the ends. In right-to-left layouts ArrowLeft / ArrowRight are flipped. Returns `null` for\n * keys the group does not handle. Internal helper, not re-exported.\n */\nexport function getRadioGroupTarget(key: string, index: number, count: number, rtl = false): number | null {\n if (count <= 0) return null\n let effective = key\n if (rtl && key === 'ArrowRight') effective = 'ArrowLeft'\n else if (rtl && key === 'ArrowLeft') effective = 'ArrowRight'\n\n switch (effective) {\n case 'ArrowRight':\n case 'ArrowDown':\n return index < 0 ? 0 : (index + 1) % count\n case 'ArrowLeft':\n case 'ArrowUp':\n return index < 0 ? count - 1 : (index - 1 + count) % count\n case 'Home':\n return 0\n case 'End':\n return count - 1\n default:\n return null\n }\n}\n\n/** True when the element is laid out right-to-left. */\nexport function isRtlElement(element: Element | null): boolean {\n if (!element || typeof window === 'undefined') return false\n const dirHost = element.closest('[dir]')\n if (dirHost) return dirHost.getAttribute('dir')?.toLowerCase() === 'rtl'\n try {\n return window.getComputedStyle(element).direction === 'rtl'\n } catch {\n return false\n }\n}\n"],"mappings":";AAMA,SAAgB,EAAoB,GAAa,GAAe,GAAe,IAAM,IAAsB;AACvG,KAAI,KAAS,EAAG,QAAO;CACvB,IAAI,IAAY;AAIhB,SAHI,KAAO,MAAQ,eAAc,IAAY,cACpC,KAAO,MAAQ,gBAAa,IAAY,eAEzC,GAAR;EACI,KAAK;EACL,KAAK,YACD,QAAO,IAAQ,IAAI,KAAK,IAAQ,KAAK;EACzC,KAAK;EACL,KAAK,UACD,QAAO,IAAQ,IAAI,IAAQ,KAAK,IAAQ,IAAI,KAAS;EACzD,KAAK,OACD,QAAO;EACX,KAAK,MACD,QAAO,IAAQ;EACnB,QACI,QAAO;;;AAKnB,SAAgB,EAAa,GAAkC;AAC3D,KAAI,CAAC,KAAW,OAAO,SAAW,IAAa,QAAO;CACtD,IAAM,IAAU,EAAQ,QAAQ,QAAQ;AACxC,KAAI,EAAS,QAAO,EAAQ,aAAa,MAAM,EAAE,aAAa,KAAK;AACnE,KAAI;AACA,SAAO,OAAO,iBAAiB,EAAQ,CAAC,cAAc;SAClD;AACJ,SAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(e,t,n,r=!1){if(n<=0)return null;let i=e;switch(r&&e===`ArrowRight`?i=`ArrowLeft`:r&&e===`ArrowLeft`&&(i=`ArrowRight`),i){case`ArrowRight`:case`ArrowDown`:return t<0?0:(t+1)%n;case`ArrowLeft`:case`ArrowUp`:return t<0?n-1:(t-1+n)%n;case`Home`:return 0;case`End`:return n-1;default:return null}}function t(e){if(!e||typeof window>`u`)return!1;let t=e.closest(`[dir]`);if(t)return t.getAttribute(`dir`)?.toLowerCase()===`rtl`;try{return window.getComputedStyle(e).direction===`rtl`}catch{return!1}}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
|
|
2
|
+
//# sourceMappingURL=radioGroupKeys-COL8uXbH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radioGroupKeys-COL8uXbH.cjs","names":[],"sources":["../src/utils/radioGroupKeys.ts"],"sourcesContent":["/**\n * Arrow-key target for an APG radio group (roving tabindex, selection follows focus).\n * ArrowRight / ArrowDown move forward, ArrowLeft / ArrowUp move back, both wrap; Home / End jump\n * to the ends. In right-to-left layouts ArrowLeft / ArrowRight are flipped. Returns `null` for\n * keys the group does not handle. Internal helper, not re-exported.\n */\nexport function getRadioGroupTarget(key: string, index: number, count: number, rtl = false): number | null {\n if (count <= 0) return null\n let effective = key\n if (rtl && key === 'ArrowRight') effective = 'ArrowLeft'\n else if (rtl && key === 'ArrowLeft') effective = 'ArrowRight'\n\n switch (effective) {\n case 'ArrowRight':\n case 'ArrowDown':\n return index < 0 ? 0 : (index + 1) % count\n case 'ArrowLeft':\n case 'ArrowUp':\n return index < 0 ? count - 1 : (index - 1 + count) % count\n case 'Home':\n return 0\n case 'End':\n return count - 1\n default:\n return null\n }\n}\n\n/** True when the element is laid out right-to-left. */\nexport function isRtlElement(element: Element | null): boolean {\n if (!element || typeof window === 'undefined') return false\n const dirHost = element.closest('[dir]')\n if (dirHost) return dirHost.getAttribute('dir')?.toLowerCase() === 'rtl'\n try {\n return window.getComputedStyle(element).direction === 'rtl'\n } catch {\n return false\n }\n}\n"],"mappings":"AAMA,SAAgB,EAAoB,EAAa,EAAe,EAAe,EAAM,GAAsB,CACvG,GAAI,GAAS,EAAG,OAAO,KACvB,IAAI,EAAY,EAIhB,OAHI,GAAO,IAAQ,aAAc,EAAY,YACpC,GAAO,IAAQ,cAAa,EAAY,cAEzC,EAAR,CACI,IAAK,aACL,IAAK,YACD,OAAO,EAAQ,EAAI,GAAK,EAAQ,GAAK,EACzC,IAAK,YACL,IAAK,UACD,OAAO,EAAQ,EAAI,EAAQ,GAAK,EAAQ,EAAI,GAAS,EACzD,IAAK,OACD,MAAO,GACX,IAAK,MACD,OAAO,EAAQ,EACnB,QACI,OAAO,MAKnB,SAAgB,EAAa,EAAkC,CAC3D,GAAI,CAAC,GAAW,OAAO,OAAW,IAAa,MAAO,GACtD,IAAM,EAAU,EAAQ,QAAQ,QAAQ,CACxC,GAAI,EAAS,OAAO,EAAQ,aAAa,MAAM,EAAE,aAAa,GAAK,MACnE,GAAI,CACA,OAAO,OAAO,iBAAiB,EAAQ,CAAC,YAAc,WAClD,CACJ,MAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relativeTime-
|
|
1
|
+
{"version":3,"file":"relativeTime-BqCuaBqb.js","names":[],"sources":["../src/utils/relativeTime.ts"],"sourcesContent":["export type RelativeTimeUnit = Intl.RelativeTimeFormatUnit\n\nexport type RelativeTimeFallbackFormat = 'date' | 'datetime'\n\nexport interface RelativeTimeValue {\n value: number\n unit: RelativeTimeUnit\n}\n\nexport interface FormatRelativeTimeOptions {\n locale?: string\n now?: Date | number\n}\n\nconst SECOND = 1000\nconst MINUTE = 60 * SECOND\nconst HOUR = 60 * MINUTE\nconst DAY = 24 * HOUR\nconst WEEK = 7 * DAY\nconst MONTH = Math.round(30.44 * DAY)\nconst YEAR = Math.round(365.25 * DAY)\n\nconst thresholdMap = {\n s: SECOND,\n m: MINUTE,\n h: HOUR,\n d: DAY,\n w: WEEK,\n mo: MONTH,\n y: YEAR,\n} as const\n\nexport function toDate(value: Date | string | number): Date | null {\n const date = value instanceof Date ? value : new Date(value)\n return Number.isNaN(date.getTime()) ? null : date\n}\n\nexport function parseRelativeThreshold(value?: string | number | null): number | null {\n if (value == null) return null\n if (typeof value === 'number') return value >= 0 ? value : null\n\n const match = value.trim().match(/^(\\d+)\\s*(mo|[smhdwy])$/i)\n if (!match) return null\n\n const amount = Number(match[1])\n const unit = match[2].toLowerCase() as keyof typeof thresholdMap\n\n return amount * thresholdMap[unit]\n}\n\nexport function getRelativeTimeValue(\n value: Date | string | number,\n now: Date | number = Date.now()\n): RelativeTimeValue | null {\n const date = toDate(value)\n const current = toDate(now)\n\n if (!date || !current) return null\n\n const diff = date.getTime() - current.getTime()\n const abs = Math.abs(diff)\n\n if (abs < MINUTE) {\n return {value: Math.round(diff / SECOND), unit: 'second'}\n }\n\n if (abs < HOUR) {\n return {value: Math.round(diff / MINUTE), unit: 'minute'}\n }\n\n if (abs < DAY) {\n return {value: Math.round(diff / HOUR), unit: 'hour'}\n }\n\n if (abs < WEEK) {\n return {value: Math.round(diff / DAY), unit: 'day'}\n }\n\n if (abs < MONTH) {\n return {value: Math.round(diff / WEEK), unit: 'week'}\n }\n\n if (abs < YEAR) {\n return {value: Math.round(diff / MONTH), unit: 'month'}\n }\n\n return {value: Math.round(diff / YEAR), unit: 'year'}\n}\n\nexport function formatRelativeTime(\n value: Date | string | number,\n {locale = 'en', now = Date.now()}: FormatRelativeTimeOptions = {}\n): string | null {\n const relative = getRelativeTimeValue(value, now)\n\n if (!relative) return null\n\n let formatter: Intl.RelativeTimeFormat\n\n try {\n formatter = new Intl.RelativeTimeFormat(locale, {\n numeric: 'auto',\n style: 'long',\n })\n } catch {\n formatter = new Intl.RelativeTimeFormat('en', {\n numeric: 'auto',\n style: 'long',\n })\n }\n\n return formatter.format(relative.value, relative.unit)\n}\n\nexport function formatAbsoluteTime(\n value: Date | string | number,\n locale: string = 'en',\n fallbackFormat: RelativeTimeFallbackFormat = 'date'\n): string | null {\n const date = toDate(value)\n\n if (!date) return null\n\n let formatter: Intl.DateTimeFormat\n\n try {\n formatter = new Intl.DateTimeFormat(locale, {\n dateStyle: 'medium',\n ...(fallbackFormat === 'datetime' ? {timeStyle: 'short'} : {}),\n })\n } catch {\n formatter = new Intl.DateTimeFormat('en', {\n dateStyle: 'medium',\n ...(fallbackFormat === 'datetime' ? {timeStyle: 'short'} : {}),\n })\n }\n\n return formatter.format(date)\n}\n\nexport function getAutoUpdateInterval(value: Date | string | number, now: Date | number = Date.now()): number {\n const date = toDate(value)\n const current = toDate(now)\n\n if (!date || !current) return HOUR\n\n const diff = Math.abs(date.getTime() - current.getTime())\n\n if (diff < MINUTE) return SECOND\n if (diff < HOUR) return MINUTE\n if (diff < DAY) return HOUR\n return DAY\n}\n"],"mappings":";AAcA,IAAM,IAAS,KACT,IAAS,KAAK,GACd,IAAO,KAAK,GACZ,IAAM,KAAK,GACX,IAAO,IAAI,GACX,IAAQ,KAAK,MAAM,QAAQ,EAAI,EAC/B,IAAO,KAAK,MAAM,SAAS,EAAI,EAE/B,IAAe;CACjB,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,GAAG;CACH,IAAI;CACJ,GAAG;CACN;AAED,SAAgB,EAAO,GAA4C;CAC/D,IAAM,IAAO,aAAiB,OAAO,IAAQ,IAAI,KAAK,EAAM;AAC5D,QAAO,OAAO,MAAM,EAAK,SAAS,CAAC,GAAG,OAAO;;AAGjD,SAAgB,EAAuB,GAA+C;AAClF,KAAI,KAAS,KAAM,QAAO;AAC1B,KAAI,OAAO,KAAU,SAAU,QAAO,KAAS,IAAI,IAAQ;CAE3D,IAAM,IAAQ,EAAM,MAAM,CAAC,MAAM,2BAA2B;AAM5D,QALK,IAEU,OAAO,EAAM,GAAG,GAGf,EAFH,EAAM,GAAG,aAAa,IAHhB;;AAQvB,SAAgB,EACZ,GACA,IAAqB,KAAK,KAAK,EACP;CACxB,IAAM,IAAO,EAAO,EAAM,EACpB,IAAU,EAAO,EAAI;AAE3B,KAAI,CAAC,KAAQ,CAAC,EAAS,QAAO;CAE9B,IAAM,IAAO,EAAK,SAAS,GAAG,EAAQ,SAAS,EACzC,IAAM,KAAK,IAAI,EAAK;AA0B1B,QAxBI,IAAM,IACC;EAAC,OAAO,KAAK,MAAM,IAAO,EAAO;EAAE,MAAM;EAAS,GAGzD,IAAM,IACC;EAAC,OAAO,KAAK,MAAM,IAAO,EAAO;EAAE,MAAM;EAAS,GAGzD,IAAM,IACC;EAAC,OAAO,KAAK,MAAM,IAAO,EAAK;EAAE,MAAM;EAAO,GAGrD,IAAM,IACC;EAAC,OAAO,KAAK,MAAM,IAAO,EAAI;EAAE,MAAM;EAAM,GAGnD,IAAM,IACC;EAAC,OAAO,KAAK,MAAM,IAAO,EAAK;EAAE,MAAM;EAAO,GAGrD,IAAM,IACC;EAAC,OAAO,KAAK,MAAM,IAAO,EAAM;EAAE,MAAM;EAAQ,GAGpD;EAAC,OAAO,KAAK,MAAM,IAAO,EAAK;EAAE,MAAM;EAAO;;AAGzD,SAAgB,EACZ,GACA,EAAC,YAAS,MAAM,SAAM,KAAK,KAAK,KAA+B,EAAE,EACpD;CACb,IAAM,IAAW,EAAqB,GAAO,EAAI;AAEjD,KAAI,CAAC,EAAU,QAAO;CAEtB,IAAI;AAEJ,KAAI;AACA,MAAY,IAAI,KAAK,mBAAmB,GAAQ;GAC5C,SAAS;GACT,OAAO;GACV,CAAC;SACE;AACJ,MAAY,IAAI,KAAK,mBAAmB,MAAM;GAC1C,SAAS;GACT,OAAO;GACV,CAAC;;AAGN,QAAO,EAAU,OAAO,EAAS,OAAO,EAAS,KAAK;;AAG1D,SAAgB,EACZ,GACA,IAAiB,MACjB,IAA6C,QAChC;CACb,IAAM,IAAO,EAAO,EAAM;AAE1B,KAAI,CAAC,EAAM,QAAO;CAElB,IAAI;AAEJ,KAAI;AACA,MAAY,IAAI,KAAK,eAAe,GAAQ;GACxC,WAAW;GACX,GAAI,MAAmB,aAAa,EAAC,WAAW,SAAQ,GAAG,EAAE;GAChE,CAAC;SACE;AACJ,MAAY,IAAI,KAAK,eAAe,MAAM;GACtC,WAAW;GACX,GAAI,MAAmB,aAAa,EAAC,WAAW,SAAQ,GAAG,EAAE;GAChE,CAAC;;AAGN,QAAO,EAAU,OAAO,EAAK;;AAGjC,SAAgB,EAAsB,GAA+B,IAAqB,KAAK,KAAK,EAAU;CAC1G,IAAM,IAAO,EAAO,EAAM,EACpB,IAAU,EAAO,EAAI;AAE3B,KAAI,CAAC,KAAQ,CAAC,EAAS,QAAO;CAE9B,IAAM,IAAO,KAAK,IAAI,EAAK,SAAS,GAAG,EAAQ,SAAS,CAAC;AAKzD,QAHI,IAAO,IAAe,IACtB,IAAO,IAAa,IACpB,IAAO,IAAY,IAChB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var e=1e3,t=60*e,n=60*t,r=24*n,i=7*r,a=Math.round(30.44*r),o=Math.round(365.25*r),s={s:e,m:t,h:n,d:r,w:i,mo:a,y:o};function c(e){let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?null:t}function l(e){if(e==null)return null;if(typeof e==`number`)return e>=0?e:null;let t=e.trim().match(/^(\d+)\s*(mo|[smhdwy])$/i);return t?Number(t[1])*s[t[2].toLowerCase()]:null}function u(s,l=Date.now()){let u=c(s),d=c(l);if(!u||!d)return null;let f=u.getTime()-d.getTime(),p=Math.abs(f);return p<t?{value:Math.round(f/e),unit:`second`}:p<n?{value:Math.round(f/t),unit:`minute`}:p<r?{value:Math.round(f/n),unit:`hour`}:p<i?{value:Math.round(f/r),unit:`day`}:p<a?{value:Math.round(f/i),unit:`week`}:p<o?{value:Math.round(f/a),unit:`month`}:{value:Math.round(f/o),unit:`year`}}function d(e,{locale:t=`en`,now:n=Date.now()}={}){let r=u(e,n);if(!r)return null;let i;try{i=new Intl.RelativeTimeFormat(t,{numeric:`auto`,style:`long`})}catch{i=new Intl.RelativeTimeFormat(`en`,{numeric:`auto`,style:`long`})}return i.format(r.value,r.unit)}function f(e,t=`en`,n=`date`){let r=c(e);if(!r)return null;let i;try{i=new Intl.DateTimeFormat(t,{dateStyle:`medium`,...n===`datetime`?{timeStyle:`short`}:{}})}catch{i=new Intl.DateTimeFormat(`en`,{dateStyle:`medium`,...n===`datetime`?{timeStyle:`short`}:{}})}return i.format(r)}function p(i,a=Date.now()){let o=c(i),s=c(a);if(!o||!s)return n;let l=Math.abs(o.getTime()-s.getTime());return l<t?e:l<n?t:l<r?n:r}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
|
|
2
|
-
//# sourceMappingURL=relativeTime-
|
|
2
|
+
//# sourceMappingURL=relativeTime-DUbW4O44.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relativeTime-
|
|
1
|
+
{"version":3,"file":"relativeTime-DUbW4O44.cjs","names":[],"sources":["../src/utils/relativeTime.ts"],"sourcesContent":["export type RelativeTimeUnit = Intl.RelativeTimeFormatUnit\n\nexport type RelativeTimeFallbackFormat = 'date' | 'datetime'\n\nexport interface RelativeTimeValue {\n value: number\n unit: RelativeTimeUnit\n}\n\nexport interface FormatRelativeTimeOptions {\n locale?: string\n now?: Date | number\n}\n\nconst SECOND = 1000\nconst MINUTE = 60 * SECOND\nconst HOUR = 60 * MINUTE\nconst DAY = 24 * HOUR\nconst WEEK = 7 * DAY\nconst MONTH = Math.round(30.44 * DAY)\nconst YEAR = Math.round(365.25 * DAY)\n\nconst thresholdMap = {\n s: SECOND,\n m: MINUTE,\n h: HOUR,\n d: DAY,\n w: WEEK,\n mo: MONTH,\n y: YEAR,\n} as const\n\nexport function toDate(value: Date | string | number): Date | null {\n const date = value instanceof Date ? value : new Date(value)\n return Number.isNaN(date.getTime()) ? null : date\n}\n\nexport function parseRelativeThreshold(value?: string | number | null): number | null {\n if (value == null) return null\n if (typeof value === 'number') return value >= 0 ? value : null\n\n const match = value.trim().match(/^(\\d+)\\s*(mo|[smhdwy])$/i)\n if (!match) return null\n\n const amount = Number(match[1])\n const unit = match[2].toLowerCase() as keyof typeof thresholdMap\n\n return amount * thresholdMap[unit]\n}\n\nexport function getRelativeTimeValue(\n value: Date | string | number,\n now: Date | number = Date.now()\n): RelativeTimeValue | null {\n const date = toDate(value)\n const current = toDate(now)\n\n if (!date || !current) return null\n\n const diff = date.getTime() - current.getTime()\n const abs = Math.abs(diff)\n\n if (abs < MINUTE) {\n return {value: Math.round(diff / SECOND), unit: 'second'}\n }\n\n if (abs < HOUR) {\n return {value: Math.round(diff / MINUTE), unit: 'minute'}\n }\n\n if (abs < DAY) {\n return {value: Math.round(diff / HOUR), unit: 'hour'}\n }\n\n if (abs < WEEK) {\n return {value: Math.round(diff / DAY), unit: 'day'}\n }\n\n if (abs < MONTH) {\n return {value: Math.round(diff / WEEK), unit: 'week'}\n }\n\n if (abs < YEAR) {\n return {value: Math.round(diff / MONTH), unit: 'month'}\n }\n\n return {value: Math.round(diff / YEAR), unit: 'year'}\n}\n\nexport function formatRelativeTime(\n value: Date | string | number,\n {locale = 'en', now = Date.now()}: FormatRelativeTimeOptions = {}\n): string | null {\n const relative = getRelativeTimeValue(value, now)\n\n if (!relative) return null\n\n let formatter: Intl.RelativeTimeFormat\n\n try {\n formatter = new Intl.RelativeTimeFormat(locale, {\n numeric: 'auto',\n style: 'long',\n })\n } catch {\n formatter = new Intl.RelativeTimeFormat('en', {\n numeric: 'auto',\n style: 'long',\n })\n }\n\n return formatter.format(relative.value, relative.unit)\n}\n\nexport function formatAbsoluteTime(\n value: Date | string | number,\n locale: string = 'en',\n fallbackFormat: RelativeTimeFallbackFormat = 'date'\n): string | null {\n const date = toDate(value)\n\n if (!date) return null\n\n let formatter: Intl.DateTimeFormat\n\n try {\n formatter = new Intl.DateTimeFormat(locale, {\n dateStyle: 'medium',\n ...(fallbackFormat === 'datetime' ? {timeStyle: 'short'} : {}),\n })\n } catch {\n formatter = new Intl.DateTimeFormat('en', {\n dateStyle: 'medium',\n ...(fallbackFormat === 'datetime' ? {timeStyle: 'short'} : {}),\n })\n }\n\n return formatter.format(date)\n}\n\nexport function getAutoUpdateInterval(value: Date | string | number, now: Date | number = Date.now()): number {\n const date = toDate(value)\n const current = toDate(now)\n\n if (!date || !current) return HOUR\n\n const diff = Math.abs(date.getTime() - current.getTime())\n\n if (diff < MINUTE) return SECOND\n if (diff < HOUR) return MINUTE\n if (diff < DAY) return HOUR\n return DAY\n}\n"],"mappings":"AAcA,IAAM,EAAS,IACT,EAAS,GAAK,EACd,EAAO,GAAK,EACZ,EAAM,GAAK,EACX,EAAO,EAAI,EACX,EAAQ,KAAK,MAAM,MAAQ,EAAI,CAC/B,EAAO,KAAK,MAAM,OAAS,EAAI,CAE/B,EAAe,CACjB,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,GAAI,EACJ,EAAG,EACN,CAED,SAAgB,EAAO,EAA4C,CAC/D,IAAM,EAAO,aAAiB,KAAO,EAAQ,IAAI,KAAK,EAAM,CAC5D,OAAO,OAAO,MAAM,EAAK,SAAS,CAAC,CAAG,KAAO,EAGjD,SAAgB,EAAuB,EAA+C,CAClF,GAAI,GAAS,KAAM,OAAO,KAC1B,GAAI,OAAO,GAAU,SAAU,OAAO,GAAS,EAAI,EAAQ,KAE3D,IAAM,EAAQ,EAAM,MAAM,CAAC,MAAM,2BAA2B,CAM5D,OALK,EAEU,OAAO,EAAM,GAAG,CAGf,EAFH,EAAM,GAAG,aAAa,EAHhB,KAQvB,SAAgB,EACZ,EACA,EAAqB,KAAK,KAAK,CACP,CACxB,IAAM,EAAO,EAAO,EAAM,CACpB,EAAU,EAAO,EAAI,CAE3B,GAAI,CAAC,GAAQ,CAAC,EAAS,OAAO,KAE9B,IAAM,EAAO,EAAK,SAAS,CAAG,EAAQ,SAAS,CACzC,EAAM,KAAK,IAAI,EAAK,CA0B1B,OAxBI,EAAM,EACC,CAAC,MAAO,KAAK,MAAM,EAAO,EAAO,CAAE,KAAM,SAAS,CAGzD,EAAM,EACC,CAAC,MAAO,KAAK,MAAM,EAAO,EAAO,CAAE,KAAM,SAAS,CAGzD,EAAM,EACC,CAAC,MAAO,KAAK,MAAM,EAAO,EAAK,CAAE,KAAM,OAAO,CAGrD,EAAM,EACC,CAAC,MAAO,KAAK,MAAM,EAAO,EAAI,CAAE,KAAM,MAAM,CAGnD,EAAM,EACC,CAAC,MAAO,KAAK,MAAM,EAAO,EAAK,CAAE,KAAM,OAAO,CAGrD,EAAM,EACC,CAAC,MAAO,KAAK,MAAM,EAAO,EAAM,CAAE,KAAM,QAAQ,CAGpD,CAAC,MAAO,KAAK,MAAM,EAAO,EAAK,CAAE,KAAM,OAAO,CAGzD,SAAgB,EACZ,EACA,CAAC,SAAS,KAAM,MAAM,KAAK,KAAK,EAA+B,EAAE,CACpD,CACb,IAAM,EAAW,EAAqB,EAAO,EAAI,CAEjD,GAAI,CAAC,EAAU,OAAO,KAEtB,IAAI,EAEJ,GAAI,CACA,EAAY,IAAI,KAAK,mBAAmB,EAAQ,CAC5C,QAAS,OACT,MAAO,OACV,CAAC,MACE,CACJ,EAAY,IAAI,KAAK,mBAAmB,KAAM,CAC1C,QAAS,OACT,MAAO,OACV,CAAC,CAGN,OAAO,EAAU,OAAO,EAAS,MAAO,EAAS,KAAK,CAG1D,SAAgB,EACZ,EACA,EAAiB,KACjB,EAA6C,OAChC,CACb,IAAM,EAAO,EAAO,EAAM,CAE1B,GAAI,CAAC,EAAM,OAAO,KAElB,IAAI,EAEJ,GAAI,CACA,EAAY,IAAI,KAAK,eAAe,EAAQ,CACxC,UAAW,SACX,GAAI,IAAmB,WAAa,CAAC,UAAW,QAAQ,CAAG,EAAE,CAChE,CAAC,MACE,CACJ,EAAY,IAAI,KAAK,eAAe,KAAM,CACtC,UAAW,SACX,GAAI,IAAmB,WAAa,CAAC,UAAW,QAAQ,CAAG,EAAE,CAChE,CAAC,CAGN,OAAO,EAAU,OAAO,EAAK,CAGjC,SAAgB,EAAsB,EAA+B,EAAqB,KAAK,KAAK,CAAU,CAC1G,IAAM,EAAO,EAAO,EAAM,CACpB,EAAU,EAAO,EAAI,CAE3B,GAAI,CAAC,GAAQ,CAAC,EAAS,OAAO,EAE9B,IAAM,EAAO,KAAK,IAAI,EAAK,SAAS,CAAG,EAAQ,SAAS,CAAC,CAKzD,OAHI,EAAO,EAAe,EACtB,EAAO,EAAa,EACpB,EAAO,EAAY,EAChB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=0,t=``;function n(){if(typeof document>`u`)return()=>{};e===0&&(t=document.body.style.overflow,document.body.style.overflow=`hidden`),e+=1;let n=!1;return()=>{n||(n=!0,e=Math.max(0,e-1),e===0&&(document.body.style.overflow=t))}}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
|
|
2
|
+
//# sourceMappingURL=scrollLock-C9P9o6wH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollLock-C9P9o6wH.cjs","names":[],"sources":["../src/components/overlays/scrollLock.ts"],"sourcesContent":["/**\n * Reference-counted body scroll lock shared by blocking overlays (MModal, MDrawer, MSheet).\n *\n * Each overlay used to save `body.style.overflow`, set it to `hidden` and restore the\n * saved value on close. With nested overlays closed in the \"wrong\" order (the outer one\n * first) the inner one restored `hidden` after the outer one had already unlocked, or the\n * outer one unlocked while the inner one was still open. A shared counter keeps the page\n * locked while ANY overlay holds a lock and restores the original value once the last\n * one releases it.\n */\n\nlet lockCount = 0\nlet savedOverflow = ''\n\n/** Locks body scrolling and returns an idempotent release function. */\nexport function lockBodyScroll(): () => void {\n if (typeof document === 'undefined') return () => {}\n\n if (lockCount === 0) {\n savedOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n }\n lockCount += 1\n\n let released = false\n return () => {\n if (released) return\n released = true\n lockCount = Math.max(0, lockCount - 1)\n if (lockCount === 0) {\n document.body.style.overflow = savedOverflow\n }\n }\n}\n\n/** Test-only helper — the counter is module state that outlives a render. */\nexport function __resetBodyScrollLock(): void {\n lockCount = 0\n savedOverflow = ''\n}\n"],"mappings":"AAWA,IAAI,EAAY,EACZ,EAAgB,GAGpB,SAAgB,GAA6B,CACzC,GAAI,OAAO,SAAa,IAAa,UAAa,GAE9C,IAAc,IACd,EAAgB,SAAS,KAAK,MAAM,SACpC,SAAS,KAAK,MAAM,SAAW,UAEnC,GAAa,EAEb,IAAI,EAAW,GACf,UAAa,CACL,IACJ,EAAW,GACX,EAAY,KAAK,IAAI,EAAG,EAAY,EAAE,CAClC,IAAc,IACd,SAAS,KAAK,MAAM,SAAW"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/components/overlays/scrollLock.ts
|
|
2
|
+
var e = 0, t = "";
|
|
3
|
+
function n() {
|
|
4
|
+
if (typeof document > "u") return () => {};
|
|
5
|
+
e === 0 && (t = document.body.style.overflow, document.body.style.overflow = "hidden"), e += 1;
|
|
6
|
+
let n = !1;
|
|
7
|
+
return () => {
|
|
8
|
+
n || (n = !0, e = Math.max(0, e - 1), e === 0 && (document.body.style.overflow = t));
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { n as t };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=scrollLock-D27VmgPV.js.map
|