@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,554 @@
|
|
|
1
|
+
import { E as e, t } from "./frameworkTexts-o43FqY1A.js";
|
|
2
|
+
import { $r as n, Br as r, Fr as i, Gr as a, Hr as o, Ir as s, Jr as c, Lr as l, Qr as u, Rr as d, Ur as f, Vr as p, Wr as m, Xr as h, Yr as g, Zr as _, _i as v, ai as y, ci as b, di as x, ei as S, fi as C, ii as w, mi as T, ni as E, oi as D, pi as O, qi as ee, qr as k, ri as te, si as ne, ti as A } from "./icons-IqEBmGh3.js";
|
|
3
|
+
import { t as j } from "./cn-CUSXNnjF.js";
|
|
4
|
+
import { n as re } from "./useGhostText-CKsb8Ufa.js";
|
|
5
|
+
import { c as ie } from "./useModalLayer-CpOPSDbf.js";
|
|
6
|
+
import { t as ae } from "./MCheckbox-CaWgyUn5.js";
|
|
7
|
+
import { n as oe } from "./radioGroupKeys-Bm-Qeh8G.js";
|
|
8
|
+
import { createContext as M, useContext as se, useEffect as ce, useRef as N, useState as P } from "react";
|
|
9
|
+
import { jsx as F, jsxs as I } from "react/jsx-runtime";
|
|
10
|
+
//#region src/components/data/MTreeView/MTreeView.tsx
|
|
11
|
+
var le = {
|
|
12
|
+
pdf: /* @__PURE__ */ F(O, {}),
|
|
13
|
+
ts: /* @__PURE__ */ F(E, {}),
|
|
14
|
+
tsx: /* @__PURE__ */ F(te, {}),
|
|
15
|
+
js: /* @__PURE__ */ F(m, {}),
|
|
16
|
+
jsx: /* @__PURE__ */ F(x, {}),
|
|
17
|
+
css: /* @__PURE__ */ F(l, {}),
|
|
18
|
+
scss: /* @__PURE__ */ F(l, {}),
|
|
19
|
+
html: /* @__PURE__ */ F(o, {}),
|
|
20
|
+
json: /* @__PURE__ */ F(a, {}),
|
|
21
|
+
md: /* @__PURE__ */ F(k, {}),
|
|
22
|
+
txt: /* @__PURE__ */ F(w, {}),
|
|
23
|
+
csv: /* @__PURE__ */ F(d, {}),
|
|
24
|
+
zip: /* @__PURE__ */ F(b, {}),
|
|
25
|
+
rar: /* @__PURE__ */ F(S, {}),
|
|
26
|
+
svg: /* @__PURE__ */ F(A, {}),
|
|
27
|
+
png: /* @__PURE__ */ F(u, {}),
|
|
28
|
+
jpg: /* @__PURE__ */ F(f, {}),
|
|
29
|
+
jpeg: /* @__PURE__ */ F(C, {}),
|
|
30
|
+
gif: /* @__PURE__ */ F(p, {}),
|
|
31
|
+
webp: /* @__PURE__ */ F(y, {}),
|
|
32
|
+
php: /* @__PURE__ */ F(_, {}),
|
|
33
|
+
xml: /* @__PURE__ */ F(ne, {}),
|
|
34
|
+
xls: /* @__PURE__ */ F(D, {}),
|
|
35
|
+
ppt: /* @__PURE__ */ F(n, {}),
|
|
36
|
+
odt: /* @__PURE__ */ F(h, {}),
|
|
37
|
+
exe: /* @__PURE__ */ F(r, {}),
|
|
38
|
+
mp3: /* @__PURE__ */ F(c, {}),
|
|
39
|
+
mp4: /* @__PURE__ */ F(g, {})
|
|
40
|
+
};
|
|
41
|
+
function ue(e) {
|
|
42
|
+
let t = e.lastIndexOf(".");
|
|
43
|
+
return t < 1 ? null : e.slice(t + 1).toLowerCase();
|
|
44
|
+
}
|
|
45
|
+
function L(e) {
|
|
46
|
+
return e.kind === "folder" || !!e.children?.length;
|
|
47
|
+
}
|
|
48
|
+
function R(e) {
|
|
49
|
+
let t = ue(e);
|
|
50
|
+
return t ? le[t] ?? /* @__PURE__ */ F(T, {}) : /* @__PURE__ */ F(v, {});
|
|
51
|
+
}
|
|
52
|
+
function de(e, t, n) {
|
|
53
|
+
return e.icon ? e.icon : n ? L(e) ? F(t ? i : s, {}) : R(e.label) : null;
|
|
54
|
+
}
|
|
55
|
+
function fe(e) {
|
|
56
|
+
let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
|
|
57
|
+
function i(e) {
|
|
58
|
+
t.set(e.id, e);
|
|
59
|
+
let a = /* @__PURE__ */ new Set();
|
|
60
|
+
for (let t of e.children ?? []) r.set(t.id, e.id), a.add(t.id), i(t).forEach((e) => a.add(e));
|
|
61
|
+
return n.set(e.id, a), a;
|
|
62
|
+
}
|
|
63
|
+
return e.forEach(i), {
|
|
64
|
+
nodeMap: t,
|
|
65
|
+
descendants: n,
|
|
66
|
+
parentMap: r
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function pe(e, t) {
|
|
70
|
+
let n = /* @__PURE__ */ new Set();
|
|
71
|
+
function r(e) {
|
|
72
|
+
if (!e.children?.length) return t.has(e.id) ? {
|
|
73
|
+
checked: 1,
|
|
74
|
+
total: 1
|
|
75
|
+
} : {
|
|
76
|
+
checked: 0,
|
|
77
|
+
total: 1
|
|
78
|
+
};
|
|
79
|
+
let i = 0, a = 0;
|
|
80
|
+
for (let t of e.children) {
|
|
81
|
+
let e = r(t);
|
|
82
|
+
i += e.checked, a += e.total;
|
|
83
|
+
}
|
|
84
|
+
return i > 0 && i < a && n.add(e.id), {
|
|
85
|
+
checked: i,
|
|
86
|
+
total: a
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return e.forEach(r), n;
|
|
90
|
+
}
|
|
91
|
+
function me(e, t) {
|
|
92
|
+
return typeof window > "u" ? {
|
|
93
|
+
x: e,
|
|
94
|
+
y: t
|
|
95
|
+
} : {
|
|
96
|
+
x: Math.max(8, Math.min(e, window.innerWidth - 220)),
|
|
97
|
+
y: Math.max(8, Math.min(t, window.innerHeight - 16))
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
var he = "__mineral-tree-cut", ge = "__mineral-tree-move-here", _e = "__mineral-tree-cancel-move", ve = new Set([
|
|
101
|
+
he,
|
|
102
|
+
ge,
|
|
103
|
+
_e
|
|
104
|
+
]);
|
|
105
|
+
function ye(e, t) {
|
|
106
|
+
let n = [];
|
|
107
|
+
function r(e, i) {
|
|
108
|
+
for (let a of e) n.push({
|
|
109
|
+
node: a,
|
|
110
|
+
parentId: i
|
|
111
|
+
}), L(a) && t.has(a.id) && r(a.children ?? [], a.id);
|
|
112
|
+
}
|
|
113
|
+
return r(e, null), n;
|
|
114
|
+
}
|
|
115
|
+
var be = M(null);
|
|
116
|
+
function xe({ node: e, color: t, level: n, expandable: r, selectable: i, expandedIds: a, selectedId: o, draggedId: s, dropTargetId: c, onToggle: l, onSelect: u, checkable: d, checkedIds: f, indeterminateIds: p, onCheck: m, indent: h, showLines: g, fileIcons: _, draggable: v, canDropOnNode: y, onContextMenu: b, onDragStart: x, onDragOver: S, onDrop: C, onDragEnd: w }) {
|
|
117
|
+
let T = se(be), E = L(e), D = a.has(e.id), O = o === e.id, k = s === e.id, te = c === e.id, ne = y?.(e), A = de(e, D, !!_), re = f?.has(e.id) ?? !1, ie = p?.has(e.id) ?? !1, oe = T?.cutId === e.id;
|
|
118
|
+
return /* @__PURE__ */ I("li", {
|
|
119
|
+
ref: T ? (t) => T.registerItem(e.id, t) : void 0,
|
|
120
|
+
role: "treeitem",
|
|
121
|
+
"aria-expanded": E ? D : void 0,
|
|
122
|
+
"aria-selected": i ? O : void 0,
|
|
123
|
+
"aria-checked": d ? ie ? "mixed" : re : void 0,
|
|
124
|
+
"aria-disabled": e.disabled || void 0,
|
|
125
|
+
"aria-level": n + 1,
|
|
126
|
+
"aria-label": e.label,
|
|
127
|
+
tabIndex: T ? T.tabbableId === e.id ? 0 : -1 : void 0,
|
|
128
|
+
"data-node-id": e.id,
|
|
129
|
+
onFocus: (t) => {
|
|
130
|
+
t.target === t.currentTarget && T?.onItemFocus(e.id);
|
|
131
|
+
},
|
|
132
|
+
children: [/* @__PURE__ */ I("div", {
|
|
133
|
+
className: j("item", O && "selected", e.disabled && "disabled", i && !e.disabled && "selectable", v && !e.disabled && "draggable", k && "dragging", ne && "can-drop", te && "drop-target", oe && "cut"),
|
|
134
|
+
"data-color": t,
|
|
135
|
+
style: { paddingLeft: n * h },
|
|
136
|
+
draggable: v && !e.disabled,
|
|
137
|
+
onClick: () => {
|
|
138
|
+
e.disabled || (E && r && l(e.id), i && u?.(e.id, e));
|
|
139
|
+
},
|
|
140
|
+
onContextMenu: (t) => b?.(t, e),
|
|
141
|
+
onDragStart: (t) => x?.(t, e),
|
|
142
|
+
onDragOver: (t) => S?.(t, e),
|
|
143
|
+
onDrop: (t) => C?.(t, e),
|
|
144
|
+
onDragEnd: w,
|
|
145
|
+
children: [
|
|
146
|
+
/* @__PURE__ */ F("span", {
|
|
147
|
+
className: "toggle",
|
|
148
|
+
children: E && r ? /* @__PURE__ */ F("span", {
|
|
149
|
+
className: j("arrow", D && "expanded"),
|
|
150
|
+
children: /* @__PURE__ */ F(ee, {})
|
|
151
|
+
}) : /* @__PURE__ */ F("span", { className: "spacer" })
|
|
152
|
+
}),
|
|
153
|
+
d && /* @__PURE__ */ F("span", {
|
|
154
|
+
className: "check",
|
|
155
|
+
"aria-hidden": "true",
|
|
156
|
+
onClick: (e) => e.stopPropagation(),
|
|
157
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
158
|
+
children: /* @__PURE__ */ F(ae, {
|
|
159
|
+
ref: (e) => {
|
|
160
|
+
e && (e.tabIndex = -1);
|
|
161
|
+
},
|
|
162
|
+
size: "sm",
|
|
163
|
+
clickEffect: "none",
|
|
164
|
+
disabled: e.disabled,
|
|
165
|
+
checked: re,
|
|
166
|
+
indeterminate: ie,
|
|
167
|
+
"aria-label": e.label,
|
|
168
|
+
onChange: () => m?.(e.id)
|
|
169
|
+
})
|
|
170
|
+
}),
|
|
171
|
+
A && /* @__PURE__ */ F("span", {
|
|
172
|
+
className: "icon",
|
|
173
|
+
children: A
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ F("span", {
|
|
176
|
+
className: "label",
|
|
177
|
+
children: e.label
|
|
178
|
+
})
|
|
179
|
+
]
|
|
180
|
+
}), E && D && /* @__PURE__ */ F("ul", {
|
|
181
|
+
className: "list",
|
|
182
|
+
role: "group",
|
|
183
|
+
style: g ? { "--line-left": `${n * h + 17}px` } : void 0,
|
|
184
|
+
children: (e.children ?? []).map((e) => /* @__PURE__ */ F(xe, {
|
|
185
|
+
node: e,
|
|
186
|
+
color: t,
|
|
187
|
+
level: n + 1,
|
|
188
|
+
expandable: r,
|
|
189
|
+
selectable: i,
|
|
190
|
+
expandedIds: a,
|
|
191
|
+
selectedId: o,
|
|
192
|
+
draggedId: s,
|
|
193
|
+
dropTargetId: c,
|
|
194
|
+
onToggle: l,
|
|
195
|
+
onSelect: u,
|
|
196
|
+
checkable: d,
|
|
197
|
+
checkedIds: f,
|
|
198
|
+
indeterminateIds: p,
|
|
199
|
+
onCheck: m,
|
|
200
|
+
indent: h,
|
|
201
|
+
showLines: g,
|
|
202
|
+
fileIcons: _,
|
|
203
|
+
draggable: v,
|
|
204
|
+
canDropOnNode: y,
|
|
205
|
+
onContextMenu: b,
|
|
206
|
+
onDragStart: x,
|
|
207
|
+
onDragOver: S,
|
|
208
|
+
onDrop: C,
|
|
209
|
+
onDragEnd: w
|
|
210
|
+
}, e.id))
|
|
211
|
+
})]
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
function z({ items: n, color: r = "primary", expandable: i = !0, selectable: a = !1, defaultExpanded: o = [], expanded: s, onExpandChange: c, selected: l, onSelect: u, checkable: d = !1, defaultChecked: f = [], checked: p, onCheckedChange: m, indent: h = 20, showLines: g = !0, fileIcons: _ = !0, draggable: v = !1, canDrop: y, onMove: b, keyboardMove: x = !0, contextMenuItems: S, onContextMenuAction: C, className: w, "aria-label": T, "aria-labelledby": E, ...D }) {
|
|
215
|
+
let O = e(), [ee, k] = P(o), [te, ne] = P(null), [A, ae] = P(f), [M, se] = P(null), [le, ue] = P(null), [R, de] = P(null), [z, Se] = P(null), [Ce, we] = P(""), [B, V] = P(null), H = N(null), Te = N(null), Ee = N(/* @__PURE__ */ new Map()), De = N([]), Oe = N({
|
|
216
|
+
buffer: "",
|
|
217
|
+
timer: null
|
|
218
|
+
}), U = s ?? ee, W = new Set(U), G = l === void 0 ? te : l, ke = new Set(p ?? A), Ae = d ? pe(n, ke) : /* @__PURE__ */ new Set(), { nodeMap: K, descendants: je, parentMap: Me } = fe(n), q = M ? K.get(M) ?? null : null, Ne = v && !!b && x, J = z ? K.get(z) ?? null : null, Y = ye(n, W), X = Y.map((e) => e.node.id), Pe = R && X.includes(R) ? R : G && X.includes(G) ? G : X[0] ?? null, { onKeyDown: Fe, getItemProps: Ie, focusItem: Le } = re({
|
|
219
|
+
itemCount: B?.items.length ?? 0,
|
|
220
|
+
isOpen: !!B,
|
|
221
|
+
mode: "roving",
|
|
222
|
+
selectOnSpace: !0,
|
|
223
|
+
isItemDisabled: (e) => !!B?.items[e]?.disabled,
|
|
224
|
+
getItemLabel: (e) => {
|
|
225
|
+
let t = B?.items[e]?.label;
|
|
226
|
+
return typeof t == "string" || typeof t == "number" ? String(t) : "";
|
|
227
|
+
},
|
|
228
|
+
onSelect: (e) => De.current[e]?.click(),
|
|
229
|
+
onClose: () => Be(!0)
|
|
230
|
+
});
|
|
231
|
+
ce(() => {
|
|
232
|
+
if (!B) return;
|
|
233
|
+
function e(e) {
|
|
234
|
+
e && H.current && H.current.contains(e.target) || V(null);
|
|
235
|
+
}
|
|
236
|
+
function t(e) {
|
|
237
|
+
e.key === "Escape" && !e.defaultPrevented && V(null);
|
|
238
|
+
}
|
|
239
|
+
return document.addEventListener("mousedown", e), document.addEventListener("scroll", e, !0), window.addEventListener("resize", e), document.addEventListener("keydown", t), () => {
|
|
240
|
+
document.removeEventListener("mousedown", e), document.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e), document.removeEventListener("keydown", t);
|
|
241
|
+
};
|
|
242
|
+
}, [B]), ce(() => {
|
|
243
|
+
if (!B) return;
|
|
244
|
+
let e = B.items.findIndex((e) => !e.disabled);
|
|
245
|
+
e >= 0 ? Le(e) : H.current?.focus();
|
|
246
|
+
}, [B]), ce(() => {
|
|
247
|
+
let e = Oe.current;
|
|
248
|
+
return () => {
|
|
249
|
+
e.timer && clearTimeout(e.timer);
|
|
250
|
+
};
|
|
251
|
+
}, []);
|
|
252
|
+
function Re(e, t) {
|
|
253
|
+
t ? Ee.current.set(e, t) : Ee.current.delete(e);
|
|
254
|
+
}
|
|
255
|
+
function Z(e) {
|
|
256
|
+
de(e), Ee.current.get(e)?.focus();
|
|
257
|
+
}
|
|
258
|
+
function ze(e) {
|
|
259
|
+
we(e);
|
|
260
|
+
}
|
|
261
|
+
function Be(e) {
|
|
262
|
+
let t = B?.node;
|
|
263
|
+
V(null), e && t && Z(t.id);
|
|
264
|
+
}
|
|
265
|
+
function Q(e) {
|
|
266
|
+
let t = W.has(e) ? U.filter((t) => t !== e) : [...U, e];
|
|
267
|
+
c ? c(t) : k(t);
|
|
268
|
+
}
|
|
269
|
+
function Ve(e) {
|
|
270
|
+
let t = e.filter((e) => !W.has(e));
|
|
271
|
+
if (!t.length) return;
|
|
272
|
+
let n = [...U, ...t];
|
|
273
|
+
c ? c(n) : k(n);
|
|
274
|
+
}
|
|
275
|
+
function $(e, t) {
|
|
276
|
+
u ? u(e, t) : ne(e);
|
|
277
|
+
}
|
|
278
|
+
function He(e) {
|
|
279
|
+
let t = K.get(e);
|
|
280
|
+
if (!t || t.disabled) return;
|
|
281
|
+
let n = new Set(ke), r = n.has(e), i = [e, ...Array.from(je.get(e) ?? [])];
|
|
282
|
+
if (r) for (let e of i) n.delete(e);
|
|
283
|
+
else for (let e of i) {
|
|
284
|
+
let t = K.get(e);
|
|
285
|
+
t && !t.disabled && n.add(e);
|
|
286
|
+
}
|
|
287
|
+
let a = Me.get(e);
|
|
288
|
+
for (; a;) {
|
|
289
|
+
let e = K.get(a);
|
|
290
|
+
if (!e) break;
|
|
291
|
+
let t = (e.children ?? []).every((e) => e.disabled || n.has(e.id)), r = (e.children ?? []).some((e) => !e.disabled);
|
|
292
|
+
t && r ? n.add(a) : n.delete(a), a = Me.get(a);
|
|
293
|
+
}
|
|
294
|
+
let o = Array.from(n);
|
|
295
|
+
p === void 0 && ae(o), m?.(o);
|
|
296
|
+
}
|
|
297
|
+
function Ue() {
|
|
298
|
+
se(null), ue(null);
|
|
299
|
+
}
|
|
300
|
+
function We(e, t) {
|
|
301
|
+
return !e || !v || !b || t.disabled || !L(t) || t.id === e.id || je.get(e.id)?.has(t.id) || Me.get(e.id) === t.id ? !1 : y ? y(e, t) : !0;
|
|
302
|
+
}
|
|
303
|
+
function Ge(e) {
|
|
304
|
+
return We(q, e);
|
|
305
|
+
}
|
|
306
|
+
function Ke(e) {
|
|
307
|
+
!Ne || e.disabled || (Se(e.id), ze(t(O.cutAnnouncement, { label: e.label })));
|
|
308
|
+
}
|
|
309
|
+
function qe(e) {
|
|
310
|
+
return !J || !We(J, e) ? !1 : (b?.({
|
|
311
|
+
draggedId: J.id,
|
|
312
|
+
draggedNode: J,
|
|
313
|
+
targetId: e.id,
|
|
314
|
+
targetNode: e
|
|
315
|
+
}), i && !W.has(e.id) && Q(e.id), Se(null), ze(t(O.movedAnnouncement, {
|
|
316
|
+
label: J.label,
|
|
317
|
+
target: e.label
|
|
318
|
+
})), !0);
|
|
319
|
+
}
|
|
320
|
+
function Je() {
|
|
321
|
+
Se(null), ze(O.moveCancelled);
|
|
322
|
+
}
|
|
323
|
+
function Ye(e) {
|
|
324
|
+
if (!Ne) return [];
|
|
325
|
+
let t = [];
|
|
326
|
+
return J && J.id !== e.id && We(J, e) && t.push({
|
|
327
|
+
id: ge,
|
|
328
|
+
label: O.moveHere
|
|
329
|
+
}), !e.disabled && z !== e.id && t.push({
|
|
330
|
+
id: he,
|
|
331
|
+
label: O.cut
|
|
332
|
+
}), z && t.push({
|
|
333
|
+
id: _e,
|
|
334
|
+
label: O.cancelMove
|
|
335
|
+
}), t;
|
|
336
|
+
}
|
|
337
|
+
function Xe(e) {
|
|
338
|
+
return [...S ? S(e).filter(Boolean) : [], ...Ye(e)];
|
|
339
|
+
}
|
|
340
|
+
function Ze(e, t, n) {
|
|
341
|
+
if (e.disabled) return !1;
|
|
342
|
+
let r = Xe(e);
|
|
343
|
+
if (!r.length) return !1;
|
|
344
|
+
$(e.id, e);
|
|
345
|
+
let i = me(t, n);
|
|
346
|
+
return V({
|
|
347
|
+
node: e,
|
|
348
|
+
items: r,
|
|
349
|
+
x: i.x,
|
|
350
|
+
y: i.y
|
|
351
|
+
}), !0;
|
|
352
|
+
}
|
|
353
|
+
function Qe(e, t) {
|
|
354
|
+
t.disabled || !Xe(t).length || (e.preventDefault(), Ze(t, e.clientX, e.clientY));
|
|
355
|
+
}
|
|
356
|
+
function $e(e, t) {
|
|
357
|
+
if (e.disabled) return;
|
|
358
|
+
let n = !!H.current?.contains(document.activeElement);
|
|
359
|
+
e.id === he ? Ke(t) : e.id === ge ? qe(t) : e.id === _e && Je(), ve.has(e.id) || C?.(e.id, t), Be(n);
|
|
360
|
+
}
|
|
361
|
+
function et(e) {
|
|
362
|
+
if (e.key === "Tab") {
|
|
363
|
+
e.preventDefault(), Be(!0);
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
Fe(e);
|
|
367
|
+
}
|
|
368
|
+
function tt(e, t) {
|
|
369
|
+
!v || t.disabled || (e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData("text/plain", t.id), V(null), se(t.id));
|
|
370
|
+
}
|
|
371
|
+
function nt(e, t) {
|
|
372
|
+
Ge(t) && (e.preventDefault(), e.dataTransfer.dropEffect = "move", ue(t.id));
|
|
373
|
+
}
|
|
374
|
+
function rt(e, t) {
|
|
375
|
+
if (e.preventDefault(), !q || !Ge(t)) {
|
|
376
|
+
Ue();
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
b?.({
|
|
380
|
+
draggedId: q.id,
|
|
381
|
+
draggedNode: q,
|
|
382
|
+
targetId: t.id,
|
|
383
|
+
targetNode: t
|
|
384
|
+
}), i && !W.has(t.id) && Q(t.id), Ue();
|
|
385
|
+
}
|
|
386
|
+
function it(e) {
|
|
387
|
+
e.disabled || (L(e) && i && Q(e.id), a && $(e.id, e));
|
|
388
|
+
}
|
|
389
|
+
function at(e, t) {
|
|
390
|
+
let n = Oe.current;
|
|
391
|
+
n.timer && clearTimeout(n.timer), n.buffer += e.toLowerCase(), n.timer = setTimeout(() => {
|
|
392
|
+
n.buffer = "", n.timer = null;
|
|
393
|
+
}, 500);
|
|
394
|
+
let r = n.buffer, i = r.split("").every((e) => e === r[0]) ? r[0] : r, a = +(i.length === 1);
|
|
395
|
+
for (let e = 0; e < Y.length; e++) {
|
|
396
|
+
let n = Y[(t + a + e) % Y.length];
|
|
397
|
+
if (n.node.label.toLowerCase().startsWith(i)) return Z(n.node.id), !0;
|
|
398
|
+
}
|
|
399
|
+
return !1;
|
|
400
|
+
}
|
|
401
|
+
function ot(e) {
|
|
402
|
+
let t = e.target;
|
|
403
|
+
if (t.getAttribute("role") !== "treeitem") return;
|
|
404
|
+
let r = t.dataset.nodeId ?? "", o = X.indexOf(r);
|
|
405
|
+
if (o < 0) return;
|
|
406
|
+
let { node: s, parentId: c } = Y[o], l = L(s), u = W.has(r), f = e.ctrlKey || e.metaKey, p = e.key;
|
|
407
|
+
if (p === "ContextMenu" || p === "F10" && e.shiftKey) {
|
|
408
|
+
let n = t.querySelector(".item")?.getBoundingClientRect() ?? t.getBoundingClientRect();
|
|
409
|
+
Ze(s, n.left + 16, n.bottom) && e.preventDefault();
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
if (f && !e.altKey && (p === "x" || p === "X")) {
|
|
413
|
+
Ne && !s.disabled && (e.preventDefault(), Ke(s));
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
if (f && !e.altKey && (p === "v" || p === "V")) {
|
|
417
|
+
J && (e.preventDefault(), qe(s));
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
if (p === "Escape" && z) {
|
|
421
|
+
e.preventDefault(), Je();
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
if (f || e.altKey) return;
|
|
425
|
+
let m = oe(Te.current), h = m ? "ArrowLeft" : "ArrowRight", g = m ? "ArrowRight" : "ArrowLeft";
|
|
426
|
+
switch (p) {
|
|
427
|
+
case "ArrowDown":
|
|
428
|
+
o < Y.length - 1 && Z(X[o + 1]);
|
|
429
|
+
break;
|
|
430
|
+
case "ArrowUp":
|
|
431
|
+
o > 0 && Z(X[o - 1]);
|
|
432
|
+
break;
|
|
433
|
+
case "Home":
|
|
434
|
+
Z(X[0]);
|
|
435
|
+
break;
|
|
436
|
+
case "End":
|
|
437
|
+
Z(X[X.length - 1]);
|
|
438
|
+
break;
|
|
439
|
+
case h:
|
|
440
|
+
l && !u ? i && !s.disabled && Q(r) : l && u && s.children?.length && Z(X[o + 1]);
|
|
441
|
+
break;
|
|
442
|
+
case g:
|
|
443
|
+
l && u && i && !s.disabled ? Q(r) : c && Z(c);
|
|
444
|
+
break;
|
|
445
|
+
case "Enter":
|
|
446
|
+
it(s);
|
|
447
|
+
break;
|
|
448
|
+
case " ":
|
|
449
|
+
Oe.current.buffer ? at(" ", o) : d ? He(r) : a && !s.disabled && $(r, s);
|
|
450
|
+
break;
|
|
451
|
+
case "*":
|
|
452
|
+
if (!i) return;
|
|
453
|
+
Ve((c ? K.get(c)?.children ?? [] : n).filter((e) => L(e) && !e.disabled).map((e) => e.id));
|
|
454
|
+
break;
|
|
455
|
+
default:
|
|
456
|
+
if (p.length === 1 && p !== " " && at(p, o)) break;
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
e.preventDefault();
|
|
460
|
+
}
|
|
461
|
+
let st = {
|
|
462
|
+
tabbableId: Pe,
|
|
463
|
+
cutId: z,
|
|
464
|
+
registerItem: Re,
|
|
465
|
+
onItemFocus: de
|
|
466
|
+
};
|
|
467
|
+
return /* @__PURE__ */ I("div", {
|
|
468
|
+
className: j("tree", `color-${r}`, g && "lines", w),
|
|
469
|
+
...D,
|
|
470
|
+
children: [
|
|
471
|
+
/* @__PURE__ */ F(be.Provider, {
|
|
472
|
+
value: st,
|
|
473
|
+
children: /* @__PURE__ */ F("ul", {
|
|
474
|
+
ref: Te,
|
|
475
|
+
className: "list",
|
|
476
|
+
role: "tree",
|
|
477
|
+
"aria-label": T,
|
|
478
|
+
"aria-labelledby": E,
|
|
479
|
+
onKeyDown: ot,
|
|
480
|
+
children: n.map((e) => /* @__PURE__ */ F(xe, {
|
|
481
|
+
node: e,
|
|
482
|
+
color: r,
|
|
483
|
+
level: 0,
|
|
484
|
+
expandable: i,
|
|
485
|
+
selectable: a,
|
|
486
|
+
expandedIds: W,
|
|
487
|
+
selectedId: G,
|
|
488
|
+
draggedId: M,
|
|
489
|
+
dropTargetId: le,
|
|
490
|
+
onToggle: Q,
|
|
491
|
+
onSelect: $,
|
|
492
|
+
checkable: d,
|
|
493
|
+
checkedIds: ke,
|
|
494
|
+
indeterminateIds: Ae,
|
|
495
|
+
onCheck: He,
|
|
496
|
+
indent: h,
|
|
497
|
+
showLines: g,
|
|
498
|
+
fileIcons: _,
|
|
499
|
+
draggable: v,
|
|
500
|
+
canDropOnNode: Ge,
|
|
501
|
+
onContextMenu: Qe,
|
|
502
|
+
onDragStart: tt,
|
|
503
|
+
onDragOver: nt,
|
|
504
|
+
onDrop: rt,
|
|
505
|
+
onDragEnd: Ue
|
|
506
|
+
}, e.id))
|
|
507
|
+
})
|
|
508
|
+
}),
|
|
509
|
+
/* @__PURE__ */ F("div", {
|
|
510
|
+
className: "tree-live",
|
|
511
|
+
role: "status",
|
|
512
|
+
"aria-live": "polite",
|
|
513
|
+
"aria-atomic": "true",
|
|
514
|
+
children: Ce
|
|
515
|
+
}),
|
|
516
|
+
B && /* @__PURE__ */ F(ie, { children: /* @__PURE__ */ F("div", {
|
|
517
|
+
ref: H,
|
|
518
|
+
className: "tree menu",
|
|
519
|
+
style: {
|
|
520
|
+
top: B.y,
|
|
521
|
+
left: B.x
|
|
522
|
+
},
|
|
523
|
+
role: "menu",
|
|
524
|
+
tabIndex: -1,
|
|
525
|
+
"aria-label": t(O.menuLabel, { label: B.node.label }),
|
|
526
|
+
onKeyDown: et,
|
|
527
|
+
children: B.items.map((e, t) => {
|
|
528
|
+
let n = Ie(t);
|
|
529
|
+
return /* @__PURE__ */ I("button", {
|
|
530
|
+
id: n.id,
|
|
531
|
+
ref: (e) => {
|
|
532
|
+
n.ref?.(e), De.current[t] = e;
|
|
533
|
+
},
|
|
534
|
+
tabIndex: n.tabIndex,
|
|
535
|
+
onFocus: n.onFocus,
|
|
536
|
+
type: "button",
|
|
537
|
+
className: j("action", e.color, e.disabled && "disabled"),
|
|
538
|
+
role: "menuitem",
|
|
539
|
+
disabled: e.disabled,
|
|
540
|
+
onClick: () => $e(e, B.node),
|
|
541
|
+
children: [e.icon && /* @__PURE__ */ F("span", {
|
|
542
|
+
className: "icon",
|
|
543
|
+
children: e.icon
|
|
544
|
+
}), /* @__PURE__ */ F("span", { children: e.label })]
|
|
545
|
+
}, e.id);
|
|
546
|
+
})
|
|
547
|
+
}) })
|
|
548
|
+
]
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
//#endregion
|
|
552
|
+
export { z as t };
|
|
553
|
+
|
|
554
|
+
//# sourceMappingURL=MTreeView-CWcMwE-Z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MTreeView-CWcMwE-Z.js","names":[],"sources":["../src/components/data/MTreeView/MTreeView.tsx"],"sourcesContent":["import {createContext, useContext, useEffect, useRef, useState} from 'react'\nimport type {CSSProperties, DragEvent, KeyboardEvent as ReactKeyboardEvent, MouseEvent, ReactNode} from 'react'\nimport type {\n MTreeViewProps,\n MTreeItemProps,\n MTreeNode,\n MTreeViewContextMenuItem,\n MTreeViewMoveEvent,\n} from './MTreeView.types'\nimport {cn} from '../../../utils/cn'\nimport {formatMText, useMTreeViewTexts} from '../../../i18n/frameworkTexts'\nimport {MCheckbox} from '../../controls'\nimport {MPortal} from '../../primitives'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport {isRtlElement} from '../../../utils/radioGroupKeys'\nimport {\n MChevronRightIcon,\n MFileCodeIcon,\n MFileCsvIcon,\n MFileCssIcon,\n MFileExeIcon,\n MFileGifIcon,\n MFileHtmlIcon,\n MFileIcon,\n MFileImageIcon,\n MFileJpgIcon,\n MFileJsIcon,\n MFileJsonIcon,\n MFileMdIcon,\n MFileMp3Icon,\n MFileMp4Icon,\n MFileOdtIcon,\n MFilePdfIcon,\n MFilePhpIcon,\n MFilePngIcon,\n MFilePptIcon,\n MFileRarIcon,\n MFileSvgIcon,\n MFileTextIcon,\n MFileTsIcon,\n MFileTsxIcon,\n MFileTxtIcon,\n MFileWebpIcon,\n MFileXlsIcon,\n MFileXmlIcon,\n MFileZipIcon,\n MFolderIcon,\n MFolderOpenIcon,\n} from '../../../icons'\nimport './MTreeView.css'\nconst fileTypeMap: Record<string, ReactNode> = {\n pdf: <MFilePdfIcon />,\n ts: <MFileTsIcon />,\n tsx: <MFileTsxIcon />,\n js: <MFileJsIcon />,\n jsx: <MFileCodeIcon />,\n css: <MFileCssIcon />,\n scss: <MFileCssIcon />,\n html: <MFileHtmlIcon />,\n json: <MFileJsonIcon />,\n md: <MFileMdIcon />,\n txt: <MFileTxtIcon />,\n csv: <MFileCsvIcon />,\n zip: <MFileZipIcon />,\n rar: <MFileRarIcon />,\n svg: <MFileSvgIcon />,\n png: <MFilePngIcon />,\n jpg: <MFileJpgIcon />,\n jpeg: <MFileImageIcon />,\n gif: <MFileGifIcon />,\n webp: <MFileWebpIcon />,\n php: <MFilePhpIcon />,\n xml: <MFileXmlIcon />,\n xls: <MFileXlsIcon />,\n ppt: <MFilePptIcon />,\n odt: <MFileOdtIcon />,\n exe: <MFileExeIcon />,\n mp3: <MFileMp3Icon />,\n mp4: <MFileMp4Icon />,\n}\n\n// Read the file extension once so icon logic stays predictable.\nfunction getFileExtension(label: string): string | null {\n const dot = label.lastIndexOf('.')\n if (dot < 1) return null\n return label.slice(dot + 1).toLowerCase()\n}\n\n// Treat explicit folders and nodes with children as directory-like.\nfunction isFolderNode(node: MTreeNode) {\n return node.kind === 'folder' || Boolean(node.children?.length)\n}\n\n// Resolve the proper file icon by extension.\nfunction getFileIcon(label: string): ReactNode {\n const ext = getFileExtension(label)\n if (!ext) return <MFileIcon />\n\n return fileTypeMap[ext] ?? <MFileTextIcon />\n}\n\n// Prefer custom icons first, then fall back to folder or file visuals.\nfunction getDefaultIcon(node: MTreeNode, isExpanded: boolean, fileIcons: boolean) {\n if (node.icon) return node.icon\n if (!fileIcons) return null\n\n if (isFolderNode(node)) return isExpanded ? <MFolderOpenIcon /> : <MFolderIcon />\n\n return getFileIcon(node.label)\n}\n\n// Cache nodes and descendants so drag-drop validation stays fast.\nfunction buildTreeLookup(items: MTreeNode[]) {\n const nodeMap = new Map<string, MTreeNode>()\n const descendants = new Map<string, Set<string>>()\n const parentMap = new Map<string, string>()\n\n function walk(node: MTreeNode) {\n nodeMap.set(node.id, node)\n\n const childIds = new Set<string>()\n\n for (const child of node.children ?? []) {\n parentMap.set(child.id, node.id)\n childIds.add(child.id)\n\n const nestedIds = walk(child)\n nestedIds.forEach((id) => childIds.add(id))\n }\n\n descendants.set(node.id, childIds)\n return childIds\n }\n\n items.forEach(walk)\n\n return {nodeMap, descendants, parentMap}\n}\n\n// Compute indeterminate ids: a node where some but not all leaf descendants are checked.\nfunction computeIndeterminate(items: MTreeNode[], checked: Set<string>): Set<string> {\n const indeterminate = new Set<string>()\n\n function walk(node: MTreeNode): {checked: number; total: number} {\n if (!node.children?.length) {\n return checked.has(node.id) ? {checked: 1, total: 1} : {checked: 0, total: 1}\n }\n\n let c = 0\n let t = 0\n\n for (const child of node.children) {\n const r = walk(child)\n c += r.checked\n t += r.total\n }\n\n if (c > 0 && c < t) indeterminate.add(node.id)\n return {checked: c, total: t}\n }\n\n items.forEach(walk)\n return indeterminate\n}\n\n// Keep the context menu inside the viewport.\nfunction clampMenuPosition(x: number, y: number) {\n if (typeof window === 'undefined') {\n return {x, y}\n }\n\n return {\n x: Math.max(8, Math.min(x, window.innerWidth - 220)),\n y: Math.max(8, Math.min(y, window.innerHeight - 16)),\n }\n}\n\n// Built-in context-menu actions (keyboard / single-pointer alternative to dragging, WCAG 2.5.7).\nconst CUT_ACTION = '__mineral-tree-cut'\nconst MOVE_HERE_ACTION = '__mineral-tree-move-here'\nconst CANCEL_MOVE_ACTION = '__mineral-tree-cancel-move'\nconst BUILT_IN_ACTIONS = new Set([CUT_ACTION, MOVE_HERE_ACTION, CANCEL_MOVE_ACTION])\n\ninterface VisibleNode {\n node: MTreeNode\n parentId: string | null\n}\n\n// Visible nodes in document order (the rows a keyboard user walks through).\nfunction flattenVisible(items: MTreeNode[], expandedIds: Set<string>): VisibleNode[] {\n const result: VisibleNode[] = []\n\n function walk(nodes: MTreeNode[], parentId: string | null) {\n for (const node of nodes) {\n result.push({node, parentId})\n if (isFolderNode(node) && expandedIds.has(node.id)) walk(node.children ?? [], node.id)\n }\n }\n\n walk(items, null)\n return result\n}\n\n// Roving-focus state shared with every row (APG tree: one tab stop, focus moves with the arrows).\ninterface TreeNavState {\n tabbableId: string | null\n cutId: string | null\n registerItem: (id: string, element: HTMLLIElement | null) => void\n onItemFocus: (id: string) => void\n}\n\nconst TreeNavContext = createContext<TreeNavState | null>(null)\n\n// Render one visible row and recurse into children when expanded.\nfunction TreeItem({\n node,\n color,\n level,\n expandable,\n selectable,\n expandedIds,\n selectedId,\n draggedId,\n dropTargetId,\n onToggle,\n onSelect,\n checkable,\n checkedIds,\n indeterminateIds,\n onCheck,\n indent,\n showLines,\n fileIcons,\n draggable,\n canDropOnNode,\n onContextMenu,\n onDragStart,\n onDragOver,\n onDrop,\n onDragEnd,\n}: MTreeItemProps) {\n const nav = useContext(TreeNavContext)\n const hasChildren = isFolderNode(node)\n const isExpanded = expandedIds.has(node.id)\n const isSelected = selectedId === node.id\n const isDragging = draggedId === node.id\n const isDropTarget = dropTargetId === node.id\n const canDrop = canDropOnNode?.(node)\n const icon = getDefaultIcon(node, isExpanded, !!fileIcons)\n const isChecked = checkedIds?.has(node.id) ?? false\n const isIndeterminate = indeterminateIds?.has(node.id) ?? false\n const isCut = nav?.cutId === node.id\n\n return (\n <li\n ref={nav ? (element) => nav.registerItem(node.id, element) : undefined}\n role=\"treeitem\"\n aria-expanded={hasChildren ? isExpanded : undefined}\n aria-selected={selectable ? isSelected : undefined}\n aria-checked={checkable ? (isIndeterminate ? 'mixed' : isChecked) : undefined}\n aria-disabled={node.disabled || undefined}\n aria-level={level + 1}\n // Name the row by its own label, not by the text of its whole subtree.\n aria-label={node.label}\n tabIndex={nav ? (nav.tabbableId === node.id ? 0 : -1) : undefined}\n data-node-id={node.id}\n onFocus={(event) => {\n if (event.target === event.currentTarget) nav?.onItemFocus(node.id)\n }}\n >\n <div\n className={cn(\n 'item',\n isSelected && 'selected',\n node.disabled && 'disabled',\n selectable && !node.disabled && 'selectable',\n draggable && !node.disabled && 'draggable',\n isDragging && 'dragging',\n canDrop && 'can-drop',\n isDropTarget && 'drop-target',\n isCut && 'cut'\n )}\n data-color={color}\n style={{paddingLeft: level * indent}}\n draggable={draggable && !node.disabled}\n onClick={() => {\n if (node.disabled) return\n if (hasChildren && expandable) onToggle(node.id)\n if (selectable) onSelect?.(node.id, node)\n }}\n onContextMenu={(event) => onContextMenu?.(event, node)}\n onDragStart={(event) => onDragStart?.(event, node)}\n onDragOver={(event) => onDragOver?.(event, node)}\n onDrop={(event) => onDrop?.(event, node)}\n onDragEnd={onDragEnd}\n >\n <span className=\"toggle\">\n {hasChildren && expandable ? (\n <span className={cn('arrow', isExpanded && 'expanded')}>\n <MChevronRightIcon />\n </span>\n ) : (\n <span className=\"spacer\" />\n )}\n </span>\n {checkable && (\n // The row carries `aria-checked` (APG tree); the checkbox is a pointer target only,\n // so it stays out of the tab order and the accessibility tree.\n <span\n className=\"check\"\n aria-hidden=\"true\"\n onClick={(event) => event.stopPropagation()}\n onMouseDown={(event) => event.preventDefault()}\n >\n <MCheckbox\n ref={(element) => {\n if (element) element.tabIndex = -1\n }}\n size=\"sm\"\n clickEffect=\"none\"\n disabled={node.disabled}\n checked={isChecked}\n indeterminate={isIndeterminate}\n aria-label={node.label}\n onChange={() => onCheck?.(node.id)}\n />\n </span>\n )}\n {icon && <span className=\"icon\">{icon}</span>}\n <span className=\"label\">{node.label}</span>\n </div>\n {hasChildren && isExpanded && (\n <ul\n className=\"list\"\n role=\"group\"\n style={showLines ? ({'--line-left': `${level * indent + 17}px`} as CSSProperties) : undefined}\n >\n {(node.children ?? []).map((child) => (\n <TreeItem\n key={child.id}\n node={child}\n color={color}\n level={level + 1}\n expandable={expandable}\n selectable={selectable}\n expandedIds={expandedIds}\n selectedId={selectedId}\n draggedId={draggedId}\n dropTargetId={dropTargetId}\n onToggle={onToggle}\n onSelect={onSelect}\n checkable={checkable}\n checkedIds={checkedIds}\n indeterminateIds={indeterminateIds}\n onCheck={onCheck}\n indent={indent}\n showLines={showLines}\n fileIcons={fileIcons}\n draggable={draggable}\n canDropOnNode={canDropOnNode}\n onContextMenu={onContextMenu}\n onDragStart={onDragStart}\n onDragOver={onDragOver}\n onDrop={onDrop}\n onDragEnd={onDragEnd}\n />\n ))}\n </ul>\n )}\n </li>\n )\n}\n\n// Render a file tree with selection, context actions and folder moves.\nexport function MTreeView({\n items,\n color = 'primary',\n expandable = true,\n selectable = false,\n defaultExpanded = [],\n expanded: controlledExpanded,\n onExpandChange,\n selected: controlledSelected,\n onSelect,\n checkable = false,\n defaultChecked = [],\n checked: controlledChecked,\n onCheckedChange,\n indent = 20,\n showLines = true,\n fileIcons = true,\n draggable = false,\n canDrop,\n onMove,\n keyboardMove = true,\n contextMenuItems,\n onContextMenuAction,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...rest\n}: MTreeViewProps) {\n const texts = useMTreeViewTexts()\n const [internalExpanded, setInternalExpanded] = useState<string[]>(defaultExpanded)\n const [internalSelected, setInternalSelected] = useState<string | null>(null)\n const [internalChecked, setInternalChecked] = useState<string[]>(defaultChecked)\n const [draggedId, setDraggedId] = useState<string | null>(null)\n const [dropTargetId, setDropTargetId] = useState<string | null>(null)\n const [focusedId, setFocusedId] = useState<string | null>(null)\n const [cutId, setCutId] = useState<string | null>(null)\n const [announcement, setAnnouncement] = useState('')\n const [menu, setMenu] = useState<{\n node: MTreeNode\n items: MTreeViewContextMenuItem[]\n x: number\n y: number\n } | null>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n const treeRef = useRef<HTMLUListElement>(null)\n const itemEls = useRef(new Map<string, HTMLLIElement>())\n const menuItemEls = useRef<(HTMLButtonElement | null)[]>([])\n const typeahead = useRef<{buffer: string; timer: ReturnType<typeof setTimeout> | null}>({buffer: '', timer: null})\n\n const expandedArr = controlledExpanded ?? internalExpanded\n const expandedIds = new Set(expandedArr)\n const selectedId = controlledSelected !== undefined ? controlledSelected : internalSelected\n const checkedArr = controlledChecked ?? internalChecked\n const checkedIds = new Set(checkedArr)\n const indeterminateIds = checkable ? computeIndeterminate(items, checkedIds) : new Set<string>()\n const {nodeMap, descendants, parentMap} = buildTreeLookup(items)\n const draggedNode = draggedId ? (nodeMap.get(draggedId) ?? null) : null\n const moveEnabled = draggable && !!onMove && keyboardMove\n const cutNode = cutId ? (nodeMap.get(cutId) ?? null) : null\n\n const visible = flattenVisible(items, expandedIds)\n const visibleIds = visible.map((entry) => entry.node.id)\n const tabbableId =\n focusedId && visibleIds.includes(focusedId)\n ? focusedId\n : selectedId && visibleIds.includes(selectedId)\n ? selectedId\n : (visibleIds[0] ?? null)\n\n const menuItemCount = menu?.items.length ?? 0\n const {\n onKeyDown: onMenuNavKeyDown,\n getItemProps: getMenuItemProps,\n focusItem: focusMenuItem,\n } = useKeyboardNav({\n itemCount: menuItemCount,\n isOpen: !!menu,\n mode: 'roving',\n selectOnSpace: true,\n isItemDisabled: (index) => !!menu?.items[index]?.disabled,\n getItemLabel: (index) => {\n const label = menu?.items[index]?.label\n return typeof label === 'string' || typeof label === 'number' ? String(label) : ''\n },\n onSelect: (index) => menuItemEls.current[index]?.click(),\n onClose: () => closeMenu(true),\n })\n\n useEffect(() => {\n if (!menu) return\n\n function closeOnOutside(event?: Event) {\n if (event && menuRef.current && menuRef.current.contains(event.target as Node)) {\n return\n }\n\n setMenu(null)\n }\n\n function handleKey(event: KeyboardEvent) {\n if (event.key === 'Escape' && !event.defaultPrevented) {\n setMenu(null)\n }\n }\n\n document.addEventListener('mousedown', closeOnOutside)\n document.addEventListener('scroll', closeOnOutside, true)\n window.addEventListener('resize', closeOnOutside)\n document.addEventListener('keydown', handleKey)\n\n return () => {\n document.removeEventListener('mousedown', closeOnOutside)\n document.removeEventListener('scroll', closeOnOutside, true)\n window.removeEventListener('resize', closeOnOutside)\n document.removeEventListener('keydown', handleKey)\n }\n }, [menu])\n\n // APG menu: focus lands on the first enabled item when the menu opens.\n useEffect(() => {\n if (!menu) return\n const first = menu.items.findIndex((item) => !item.disabled)\n if (first >= 0) focusMenuItem(first)\n else menuRef.current?.focus()\n // Only on open: `menu` is a new object per opening.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [menu])\n\n useEffect(() => {\n const state = typeahead.current\n return () => {\n if (state.timer) clearTimeout(state.timer)\n }\n }, [])\n\n function registerItem(id: string, element: HTMLLIElement | null) {\n if (element) itemEls.current.set(id, element)\n else itemEls.current.delete(id)\n }\n\n function focusNode(id: string) {\n setFocusedId(id)\n itemEls.current.get(id)?.focus()\n }\n\n function announce(message: string) {\n setAnnouncement(message)\n }\n\n function closeMenu(restoreFocus: boolean) {\n const node = menu?.node\n setMenu(null)\n if (restoreFocus && node) focusNode(node.id)\n }\n\n function handleToggle(id: string) {\n const next = expandedIds.has(id) ? expandedArr.filter((e) => e !== id) : [...expandedArr, id]\n if (onExpandChange) onExpandChange(next)\n else setInternalExpanded(next)\n }\n\n function expandMany(ids: string[]) {\n const missing = ids.filter((id) => !expandedIds.has(id))\n if (!missing.length) return\n const next = [...expandedArr, ...missing]\n if (onExpandChange) onExpandChange(next)\n else setInternalExpanded(next)\n }\n\n function handleSelect(id: string, node: MTreeNode) {\n if (onSelect) onSelect(id, node)\n else setInternalSelected(id)\n }\n\n function handleCheck(id: string) {\n const node = nodeMap.get(id)\n if (!node || node.disabled) return\n\n const next = new Set(checkedIds)\n const isCurrentlyChecked = next.has(id)\n const subtree = [id, ...Array.from(descendants.get(id) ?? [])]\n\n if (isCurrentlyChecked) {\n for (const sid of subtree) next.delete(sid)\n } else {\n for (const sid of subtree) {\n const sNode = nodeMap.get(sid)\n if (sNode && !sNode.disabled) next.add(sid)\n }\n }\n\n let parentId = parentMap.get(id)\n\n while (parentId) {\n const parent = nodeMap.get(parentId)\n if (!parent) break\n\n const allChildrenChecked = (parent.children ?? []).every((child) => child.disabled || next.has(child.id))\n const hasEnabledChild = (parent.children ?? []).some((child) => !child.disabled)\n\n if (allChildrenChecked && hasEnabledChild) next.add(parentId)\n else next.delete(parentId)\n\n parentId = parentMap.get(parentId)\n }\n\n const nextArr = Array.from(next)\n\n if (controlledChecked === undefined) setInternalChecked(nextArr)\n onCheckedChange?.(nextArr)\n }\n\n function closeDrag() {\n setDraggedId(null)\n setDropTargetId(null)\n }\n\n // Shared by drag-and-drop and the keyboard / menu move.\n function canMoveNode(sourceNode: MTreeNode | null, targetNode: MTreeNode) {\n if (!sourceNode || !draggable || !onMove) return false\n if (targetNode.disabled || !isFolderNode(targetNode)) return false\n if (targetNode.id === sourceNode.id) return false\n if (descendants.get(sourceNode.id)?.has(targetNode.id)) return false\n // Dropping into the folder that already holds the node would be an empty move.\n if (parentMap.get(sourceNode.id) === targetNode.id) return false\n\n return canDrop ? canDrop(sourceNode, targetNode) : true\n }\n\n function isValidDropTarget(targetNode: MTreeNode) {\n return canMoveNode(draggedNode, targetNode)\n }\n\n /* ── Keyboard / single-pointer move (cut → move here) ── */\n\n function cutForMove(node: MTreeNode) {\n if (!moveEnabled || node.disabled) return\n setCutId(node.id)\n announce(formatMText(texts.cutAnnouncement, {label: node.label}))\n }\n\n function moveCutInto(targetNode: MTreeNode) {\n if (!cutNode || !canMoveNode(cutNode, targetNode)) return false\n\n onMove?.({\n draggedId: cutNode.id,\n draggedNode: cutNode,\n targetId: targetNode.id,\n targetNode,\n } satisfies MTreeViewMoveEvent)\n\n if (expandable && !expandedIds.has(targetNode.id)) {\n handleToggle(targetNode.id)\n }\n\n setCutId(null)\n announce(formatMText(texts.movedAnnouncement, {label: cutNode.label, target: targetNode.label}))\n return true\n }\n\n function cancelMove() {\n setCutId(null)\n announce(texts.moveCancelled)\n }\n\n function builtInMenuItems(node: MTreeNode): MTreeViewContextMenuItem[] {\n if (!moveEnabled) return []\n\n const result: MTreeViewContextMenuItem[] = []\n if (cutNode && cutNode.id !== node.id && canMoveNode(cutNode, node)) {\n result.push({id: MOVE_HERE_ACTION, label: texts.moveHere})\n }\n if (!node.disabled && cutId !== node.id) {\n result.push({id: CUT_ACTION, label: texts.cut})\n }\n if (cutId) {\n result.push({id: CANCEL_MOVE_ACTION, label: texts.cancelMove})\n }\n\n return result\n }\n\n function menuItemsFor(node: MTreeNode) {\n const custom = contextMenuItems ? contextMenuItems(node).filter(Boolean) : []\n return [...custom, ...builtInMenuItems(node)]\n }\n\n function openMenu(node: MTreeNode, x: number, y: number) {\n if (node.disabled) return false\n\n const nextItems = menuItemsFor(node)\n if (!nextItems.length) return false\n\n handleSelect(node.id, node)\n\n const pos = clampMenuPosition(x, y)\n setMenu({\n node,\n items: nextItems,\n x: pos.x,\n y: pos.y,\n })\n return true\n }\n\n function handleContextMenu(event: MouseEvent<HTMLDivElement>, node: MTreeNode) {\n if (node.disabled || !menuItemsFor(node).length) return\n\n event.preventDefault()\n openMenu(node, event.clientX, event.clientY)\n }\n\n function handleMenuAction(item: MTreeViewContextMenuItem, node: MTreeNode) {\n if (item.disabled) return\n\n const restore = !!menuRef.current?.contains(document.activeElement)\n\n if (item.id === CUT_ACTION) cutForMove(node)\n else if (item.id === MOVE_HERE_ACTION) moveCutInto(node)\n else if (item.id === CANCEL_MOVE_ACTION) cancelMove()\n\n if (!BUILT_IN_ACTIONS.has(item.id)) onContextMenuAction?.(item.id, node)\n closeMenu(restore)\n }\n\n function handleMenuKeyDown(event: ReactKeyboardEvent<HTMLDivElement>) {\n if (event.key === 'Tab') {\n // Leaving the menu closes it and puts focus back on its node.\n event.preventDefault()\n closeMenu(true)\n return\n }\n onMenuNavKeyDown(event)\n }\n\n function handleDragStart(event: DragEvent<HTMLDivElement>, node: MTreeNode) {\n if (!draggable || node.disabled) return\n\n event.dataTransfer.effectAllowed = 'move'\n event.dataTransfer.setData('text/plain', node.id)\n setMenu(null)\n setDraggedId(node.id)\n }\n\n function handleDragOver(event: DragEvent<HTMLDivElement>, targetNode: MTreeNode) {\n if (!isValidDropTarget(targetNode)) return\n\n event.preventDefault()\n event.dataTransfer.dropEffect = 'move'\n setDropTargetId(targetNode.id)\n }\n\n function handleDrop(event: DragEvent<HTMLDivElement>, targetNode: MTreeNode) {\n event.preventDefault()\n\n if (!draggedNode || !isValidDropTarget(targetNode)) {\n closeDrag()\n return\n }\n\n onMove?.({\n draggedId: draggedNode.id,\n draggedNode,\n targetId: targetNode.id,\n targetNode,\n } satisfies MTreeViewMoveEvent)\n\n if (expandable && !expandedIds.has(targetNode.id)) {\n handleToggle(targetNode.id)\n }\n\n closeDrag()\n }\n\n /* ── APG tree keyboard ── */\n\n function activateNode(node: MTreeNode) {\n if (node.disabled) return\n if (isFolderNode(node) && expandable) handleToggle(node.id)\n if (selectable) handleSelect(node.id, node)\n }\n\n function typeaheadTo(char: string, from: number) {\n const state = typeahead.current\n if (state.timer) clearTimeout(state.timer)\n state.buffer += char.toLowerCase()\n state.timer = setTimeout(() => {\n state.buffer = ''\n state.timer = null\n }, 500)\n\n const buffer = state.buffer\n const sameChar = buffer.split('').every((c) => c === buffer[0])\n const search = sameChar ? buffer[0] : buffer\n const offset = search.length === 1 ? 1 : 0\n for (let n = 0; n < visible.length; n++) {\n const entry = visible[(from + offset + n) % visible.length]\n if (entry.node.label.toLowerCase().startsWith(search)) {\n focusNode(entry.node.id)\n return true\n }\n }\n return false\n }\n\n function handleTreeKeyDown(event: ReactKeyboardEvent<HTMLUListElement>) {\n const target = event.target as HTMLElement\n if (target.getAttribute('role') !== 'treeitem') return\n\n const id = target.dataset.nodeId ?? ''\n const position = visibleIds.indexOf(id)\n if (position < 0) return\n\n const {node, parentId} = visible[position]\n const folder = isFolderNode(node)\n const open = expandedIds.has(id)\n const ctrl = event.ctrlKey || event.metaKey\n const key = event.key\n\n // Context menu from the keyboard.\n if (key === 'ContextMenu' || (key === 'F10' && event.shiftKey)) {\n const rect = target.querySelector('.item')?.getBoundingClientRect() ?? target.getBoundingClientRect()\n if (openMenu(node, rect.left + 16, rect.bottom)) event.preventDefault()\n return\n }\n\n if (ctrl && !event.altKey && (key === 'x' || key === 'X')) {\n if (moveEnabled && !node.disabled) {\n event.preventDefault()\n cutForMove(node)\n }\n return\n }\n\n if (ctrl && !event.altKey && (key === 'v' || key === 'V')) {\n if (cutNode) {\n event.preventDefault()\n moveCutInto(node)\n }\n return\n }\n\n if (key === 'Escape' && cutId) {\n event.preventDefault()\n cancelMove()\n return\n }\n\n if (ctrl || event.altKey) return\n\n const rtl = isRtlElement(treeRef.current)\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight'\n const backward = rtl ? 'ArrowRight' : 'ArrowLeft'\n\n switch (key) {\n case 'ArrowDown':\n if (position < visible.length - 1) focusNode(visibleIds[position + 1])\n break\n case 'ArrowUp':\n if (position > 0) focusNode(visibleIds[position - 1])\n break\n case 'Home':\n focusNode(visibleIds[0])\n break\n case 'End':\n focusNode(visibleIds[visibleIds.length - 1])\n break\n case forward:\n if (folder && !open) {\n if (expandable && !node.disabled) handleToggle(id)\n } else if (folder && open && node.children?.length) {\n focusNode(visibleIds[position + 1])\n }\n break\n case backward:\n if (folder && open && expandable && !node.disabled) handleToggle(id)\n else if (parentId) focusNode(parentId)\n break\n case 'Enter':\n activateNode(node)\n break\n case ' ':\n if (typeahead.current.buffer) {\n typeaheadTo(' ', position)\n } else if (checkable) {\n handleCheck(id)\n } else if (selectable && !node.disabled) {\n handleSelect(id, node)\n }\n break\n case '*': {\n if (!expandable) return\n const siblings = parentId ? (nodeMap.get(parentId)?.children ?? []) : items\n expandMany(siblings.filter((sibling) => isFolderNode(sibling) && !sibling.disabled).map((s) => s.id))\n break\n }\n default:\n if (key.length === 1 && key !== ' ' && typeaheadTo(key, position)) break\n return\n }\n\n event.preventDefault()\n }\n\n const navState: TreeNavState = {\n tabbableId,\n cutId,\n registerItem,\n onItemFocus: setFocusedId,\n }\n\n return (\n <div className={cn('tree', `color-${color}`, showLines && 'lines', className)} {...rest}>\n <TreeNavContext.Provider value={navState}>\n <ul\n ref={treeRef}\n className=\"list\"\n role=\"tree\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n onKeyDown={handleTreeKeyDown}\n >\n {items.map((item) => (\n <TreeItem\n key={item.id}\n node={item}\n color={color}\n level={0}\n expandable={expandable}\n selectable={selectable}\n expandedIds={expandedIds}\n selectedId={selectedId}\n draggedId={draggedId}\n dropTargetId={dropTargetId}\n onToggle={handleToggle}\n onSelect={handleSelect}\n checkable={checkable}\n checkedIds={checkedIds}\n indeterminateIds={indeterminateIds}\n onCheck={handleCheck}\n indent={indent}\n showLines={showLines}\n fileIcons={fileIcons}\n draggable={draggable}\n canDropOnNode={isValidDropTarget}\n onContextMenu={handleContextMenu}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onDragEnd={closeDrag}\n />\n ))}\n </ul>\n </TreeNavContext.Provider>\n <div className=\"tree-live\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </div>\n {menu && (\n <MPortal>\n <div\n ref={menuRef}\n className=\"tree menu\"\n style={{top: menu.y, left: menu.x}}\n role=\"menu\"\n tabIndex={-1}\n aria-label={formatMText(texts.menuLabel, {label: menu.node.label})}\n onKeyDown={handleMenuKeyDown}\n >\n {menu.items.map((item, index) => {\n const navProps = getMenuItemProps(index)\n return (\n <button\n key={item.id}\n id={navProps.id}\n ref={(element) => {\n navProps.ref?.(element)\n menuItemEls.current[index] = element\n }}\n tabIndex={navProps.tabIndex}\n onFocus={navProps.onFocus}\n type=\"button\"\n className={cn('action', item.color, item.disabled && 'disabled')}\n role=\"menuitem\"\n disabled={item.disabled}\n onClick={() => handleMenuAction(item, menu.node)}\n >\n {item.icon && <span className=\"icon\">{item.icon}</span>}\n <span>{item.label}</span>\n </button>\n )\n })}\n </div>\n </MPortal>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
|