@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.
Files changed (582) hide show
  1. package/README.md +1 -1
  2. package/dist/MAvatar-CvQuiGvT.cjs +2 -0
  3. package/dist/MAvatar-CvQuiGvT.cjs.map +1 -0
  4. package/dist/MAvatar-EkOBrEtS.js +73 -0
  5. package/dist/MAvatar-EkOBrEtS.js.map +1 -0
  6. package/dist/MButton-BxEky3xQ.cjs +2 -0
  7. package/dist/MButton-BxEky3xQ.cjs.map +1 -0
  8. package/dist/MButton-KELyyBw1.js +123 -0
  9. package/dist/MButton-KELyyBw1.js.map +1 -0
  10. package/dist/{MButtonGroup-BkNf7fzo.js → MButtonGroup-DDnn8Wfy.js} +3 -3
  11. package/dist/{MButtonGroup-BkNf7fzo.js.map → MButtonGroup-DDnn8Wfy.js.map} +1 -1
  12. package/dist/{MButtonGroup-iPv14c0V.cjs → MButtonGroup-Dz8Fm-oA.cjs} +2 -2
  13. package/dist/{MButtonGroup-iPv14c0V.cjs.map → MButtonGroup-Dz8Fm-oA.cjs.map} +1 -1
  14. package/dist/{MCard-DK-_FkpE.cjs → MCard-Bqm4BjK_.cjs} +2 -2
  15. package/dist/MCard-Bqm4BjK_.cjs.map +1 -0
  16. package/dist/{MCard-azpp4YVD.js → MCard-CqZYGaS2.js} +4 -4
  17. package/dist/MCard-CqZYGaS2.js.map +1 -0
  18. package/dist/MCheckbox-CaWgyUn5.js +72 -0
  19. package/dist/MCheckbox-CaWgyUn5.js.map +1 -0
  20. package/dist/MCheckbox-DpKJpnFF.cjs +2 -0
  21. package/dist/MCheckbox-DpKJpnFF.cjs.map +1 -0
  22. package/dist/{MConflictIllustration-znC7ijmP.js → MConflictIllustration-dwZS44ye.js} +1517 -1515
  23. package/dist/MConflictIllustration-dwZS44ye.js.map +1 -0
  24. package/dist/MConflictIllustration-vfHs-jad.cjs +2 -0
  25. package/dist/MConflictIllustration-vfHs-jad.cjs.map +1 -0
  26. package/dist/MDetailList-C3othNs3.js +127 -0
  27. package/dist/MDetailList-C3othNs3.js.map +1 -0
  28. package/dist/MDetailList-DkDHLdJ8.cjs +2 -0
  29. package/dist/MDetailList-DkDHLdJ8.cjs.map +1 -0
  30. package/dist/MDropdownMenu-C4-r7UZM.cjs +2 -0
  31. package/dist/MDropdownMenu-C4-r7UZM.cjs.map +1 -0
  32. package/dist/MDropdownMenu-Dvg9UsHB.js +219 -0
  33. package/dist/MDropdownMenu-Dvg9UsHB.js.map +1 -0
  34. package/dist/MGrid-CQqT8nHi.js +271 -0
  35. package/dist/MGrid-CQqT8nHi.js.map +1 -0
  36. package/dist/MGrid-tBsqShLG.cjs +2 -0
  37. package/dist/MGrid-tBsqShLG.cjs.map +1 -0
  38. package/dist/MHeading-DQSQ8c7L.js +21 -0
  39. package/dist/MHeading-DQSQ8c7L.js.map +1 -0
  40. package/dist/MHeading-DiGYs1FJ.cjs +2 -0
  41. package/dist/MHeading-DiGYs1FJ.cjs.map +1 -0
  42. package/dist/MInput-BeEGufZG.cjs +2 -0
  43. package/dist/MInput-BeEGufZG.cjs.map +1 -0
  44. package/dist/MInput-QnQV9L8U.js +190 -0
  45. package/dist/MInput-QnQV9L8U.js.map +1 -0
  46. package/dist/MInputCVC-CCNRAqHw.cjs +2 -0
  47. package/dist/MInputCVC-CCNRAqHw.cjs.map +1 -0
  48. package/dist/MInputCVC-IXIYZwex.js +410 -0
  49. package/dist/MInputCVC-IXIYZwex.js.map +1 -0
  50. package/dist/MInputSearch-BSIc6m2P.cjs +2 -0
  51. package/dist/MInputSearch-BSIc6m2P.cjs.map +1 -0
  52. package/dist/MInputSearch-CNuTAbYs.js +44 -0
  53. package/dist/MInputSearch-CNuTAbYs.js.map +1 -0
  54. package/dist/{MKbd-DqMnZ7Iv.cjs → MKbd-CnW3NUIu.cjs} +2 -2
  55. package/dist/{MKbd-DqMnZ7Iv.cjs.map → MKbd-CnW3NUIu.cjs.map} +1 -1
  56. package/dist/{MKbd-v6-tJ9sP.js → MKbd-DjfGyajR.js} +2 -2
  57. package/dist/{MKbd-v6-tJ9sP.js.map → MKbd-DjfGyajR.js.map} +1 -1
  58. package/dist/MLink-C6uwA6db.cjs +2 -0
  59. package/dist/MLink-C6uwA6db.cjs.map +1 -0
  60. package/dist/MLink-ixg0xFFI.js +31 -0
  61. package/dist/MLink-ixg0xFFI.js.map +1 -0
  62. package/dist/MLoader-CViA3zBo.js +44 -0
  63. package/dist/MLoader-CViA3zBo.js.map +1 -0
  64. package/dist/MLoader-DUOoOoNE.cjs +2 -0
  65. package/dist/MLoader-DUOoOoNE.cjs.map +1 -0
  66. package/dist/MPagination-BTGenxWW.js +122 -0
  67. package/dist/MPagination-BTGenxWW.js.map +1 -0
  68. package/dist/MPagination-DitmdtCc.cjs +2 -0
  69. package/dist/MPagination-DitmdtCc.cjs.map +1 -0
  70. package/dist/MPopover-CBDbUOW6.js +183 -0
  71. package/dist/MPopover-CBDbUOW6.js.map +1 -0
  72. package/dist/MPopover-ZeoU9hb5.cjs +2 -0
  73. package/dist/MPopover-ZeoU9hb5.cjs.map +1 -0
  74. package/dist/{MSimpleGrid-BWKurW6H.js → MSimpleGrid-C_QvLmck.js} +3 -3
  75. package/dist/MSimpleGrid-C_QvLmck.js.map +1 -0
  76. package/dist/MSimpleGrid-wgvjnxwM.cjs +2 -0
  77. package/dist/MSimpleGrid-wgvjnxwM.cjs.map +1 -0
  78. package/dist/{MSkeleton-C5uD4Axo.js → MSkeleton-BpcpBBJq.js} +12 -10
  79. package/dist/MSkeleton-BpcpBBJq.js.map +1 -0
  80. package/dist/MSkeleton-DuAN8Vcv.cjs +2 -0
  81. package/dist/MSkeleton-DuAN8Vcv.cjs.map +1 -0
  82. package/dist/MSlider-CLASUc2H.js +134 -0
  83. package/dist/MSlider-CLASUc2H.js.map +1 -0
  84. package/dist/MSlider-hONQBulE.cjs +2 -0
  85. package/dist/MSlider-hONQBulE.cjs.map +1 -0
  86. package/dist/MStack-BwAFeGGg.js +39 -0
  87. package/dist/MStack-BwAFeGGg.js.map +1 -0
  88. package/dist/MStack-CGII4A-q.cjs +2 -0
  89. package/dist/MStack-CGII4A-q.cjs.map +1 -0
  90. package/dist/MSubText-BeZk-fhz.js +17 -0
  91. package/dist/MSubText-BeZk-fhz.js.map +1 -0
  92. package/dist/MSubText-Dl1PfToZ.cjs +2 -0
  93. package/dist/MSubText-Dl1PfToZ.cjs.map +1 -0
  94. package/dist/MSurface-B_QnRLr5.js +74 -0
  95. package/dist/MSurface-B_QnRLr5.js.map +1 -0
  96. package/dist/MSurface-BrFo-JMJ.cjs +2 -0
  97. package/dist/MSurface-BrFo-JMJ.cjs.map +1 -0
  98. package/dist/MTag-BZrKN_DS.js +41 -0
  99. package/dist/MTag-BZrKN_DS.js.map +1 -0
  100. package/dist/MTag-DCE1vRJM.cjs +2 -0
  101. package/dist/MTag-DCE1vRJM.cjs.map +1 -0
  102. package/dist/MText-BUWQPoBM.js +45 -0
  103. package/dist/MText-BUWQPoBM.js.map +1 -0
  104. package/dist/MText-nsvLFsSv.cjs +2 -0
  105. package/dist/MText-nsvLFsSv.cjs.map +1 -0
  106. package/dist/MTooltip-BRSPJ3RY.js +100 -0
  107. package/dist/MTooltip-BRSPJ3RY.js.map +1 -0
  108. package/dist/MTooltip-Cj2Fxmzc.cjs +2 -0
  109. package/dist/MTooltip-Cj2Fxmzc.cjs.map +1 -0
  110. package/dist/MTreeView-BWCTlsU-.cjs +2 -0
  111. package/dist/MTreeView-BWCTlsU-.cjs.map +1 -0
  112. package/dist/MTreeView-CWcMwE-Z.js +554 -0
  113. package/dist/MTreeView-CWcMwE-Z.js.map +1 -0
  114. package/dist/{arduino-BdpdaLwK.cjs → arduino-C1gw-z1N.cjs} +1 -1
  115. package/dist/{arduino-BdpdaLwK.cjs.map → arduino-C1gw-z1N.cjs.map} +1 -1
  116. package/dist/{arduino-DDDlP9Yt.js → arduino-CcVvzDWF.js} +1 -1
  117. package/dist/{arduino-DDDlP9Yt.js.map → arduino-CcVvzDWF.js.map} +1 -1
  118. package/dist/{bash-D8WbAmuA.js → bash-DkMiO80l.js} +1 -1
  119. package/dist/{bash-D8WbAmuA.js.map → bash-DkMiO80l.js.map} +1 -1
  120. package/dist/{bash-eOUFh3S1.cjs → bash-wzZkpJC-.cjs} +1 -1
  121. package/dist/{bash-eOUFh3S1.cjs.map → bash-wzZkpJC-.cjs.map} +1 -1
  122. package/dist/{c-Bur7Mn-u.cjs → c-BSPjDa0P.cjs} +1 -1
  123. package/dist/{c-Bur7Mn-u.cjs.map → c-BSPjDa0P.cjs.map} +1 -1
  124. package/dist/{c-CTKNfUJI.js → c-DtlFV5Pa.js} +1 -1
  125. package/dist/{c-CTKNfUJI.js.map → c-DtlFV5Pa.js.map} +1 -1
  126. package/dist/calendar-2yhnCkGW.cjs +2 -0
  127. package/dist/calendar-2yhnCkGW.cjs.map +1 -0
  128. package/dist/calendar-DcNYDTVb.js +195 -0
  129. package/dist/calendar-DcNYDTVb.js.map +1 -0
  130. package/dist/calendar.cjs +1 -1
  131. package/dist/calendar.js +1 -1
  132. package/dist/{calendarDates-CYkJqcnp.js → calendarDates-Bpw_G_QR.js} +30 -19
  133. package/dist/calendarDates-Bpw_G_QR.js.map +1 -0
  134. package/dist/calendarDates-Cg0nm69Y.cjs +2 -0
  135. package/dist/calendarDates-Cg0nm69Y.cjs.map +1 -0
  136. package/dist/cards-Bp886TRb.cjs +2 -0
  137. package/dist/cards-Bp886TRb.cjs.map +1 -0
  138. package/dist/cards-BvER6Gx0.js +1277 -0
  139. package/dist/cards-BvER6Gx0.js.map +1 -0
  140. package/dist/cards.cjs +1 -1
  141. package/dist/cards.js +2 -2
  142. package/dist/{cn-YER3QsV1.js → cn-CUSXNnjF.js} +1 -1
  143. package/dist/{cn-YER3QsV1.js.map → cn-CUSXNnjF.js.map} +1 -1
  144. package/dist/{cn-CU5TNITO.cjs → cn-DYFxgzi2.cjs} +1 -1
  145. package/dist/{cn-CU5TNITO.cjs.map → cn-DYFxgzi2.cjs.map} +1 -1
  146. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +1 -1
  147. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +1 -1
  148. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  149. package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
  150. package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +4 -0
  151. package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +1 -1
  152. package/dist/components/cards/MStatCard/MStatCard.d.ts +1 -1
  153. package/dist/components/controls/MCheckbox/MCheckbox.types.d.ts +6 -0
  154. package/dist/components/controls/MLoadMore/MLoadMore.d.ts +1 -1
  155. package/dist/components/controls/MSlider/MSlider.d.ts +1 -1
  156. package/dist/components/controls/MSlider/MSlider.types.d.ts +5 -0
  157. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  158. package/dist/components/data/MTreeView/MTreeView.types.d.ts +6 -0
  159. package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +1 -1
  160. package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -3
  161. package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +1 -1
  162. package/dist/components/dropdowns/MAutocomplete/MAutocomplete.d.ts +1 -1
  163. package/dist/components/dropdowns/MAutocomplete/MAutocomplete.types.d.ts +8 -2
  164. package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
  165. package/dist/components/dropdowns/shared/TimeColumnListbox.d.ts +20 -0
  166. package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
  167. package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
  168. package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
  169. package/dist/components/feedback/MLoader/MLoader.d.ts +1 -1
  170. package/dist/components/feedback/MSpinner/MSpinner.d.ts +1 -1
  171. package/dist/components/feedback/MTag/MTag.d.ts +1 -1
  172. package/dist/components/inputs/MInput/MInput.types.d.ts +6 -1
  173. package/dist/components/inputs/MInput/useFormatCaret.d.ts +8 -0
  174. package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +5 -0
  175. package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
  176. package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
  177. package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
  178. package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
  179. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  180. package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
  181. package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -0
  182. package/dist/components/layout/MSection/MSection.d.ts +1 -1
  183. package/dist/components/layout/MStack/MStack.d.ts +1 -1
  184. package/dist/components/layout/MStickyPanel/MStickyPanel.types.d.ts +4 -0
  185. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  186. package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
  187. package/dist/components/media/MAvatar/MAvatar.types.d.ts +10 -0
  188. package/dist/components/media/MCarousel/MCarousel.d.ts +1 -1
  189. package/dist/components/media/MImage/MImage.d.ts +1 -1
  190. package/dist/components/media/carouselA11y.d.ts +9 -0
  191. package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +1 -1
  192. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +4 -2
  193. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +3 -1
  194. package/dist/components/overlays/MPopconfirm/MPopconfirm.d.ts +1 -1
  195. package/dist/components/overlays/scrollLock.d.ts +14 -0
  196. package/dist/components/primitives/MPopover/MPopover.d.ts +1 -1
  197. package/dist/components/primitives/MPopover/MPopover.types.d.ts +32 -1
  198. package/dist/components/primitives/MPopover/popoverStack.d.ts +8 -0
  199. package/dist/components/typography/MHeading/MHeading.d.ts +2 -3
  200. package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
  201. package/dist/components/typography/MText/MText.d.ts +1 -1
  202. package/dist/controls-B4Dxaab4.js +491 -0
  203. package/dist/controls-B4Dxaab4.js.map +1 -0
  204. package/dist/controls-CyXEIOXD.cjs +2 -0
  205. package/dist/controls-CyXEIOXD.cjs.map +1 -0
  206. package/dist/controls.cjs +1 -1
  207. package/dist/controls.js +5 -5
  208. package/dist/{core-D5-SQcs8.js → core-B8VC-Umz.js} +1 -1
  209. package/dist/{core-D5-SQcs8.js.map → core-B8VC-Umz.js.map} +1 -1
  210. package/dist/{core-D66c1_Wo.cjs → core-w629c4ND.cjs} +1 -1
  211. package/dist/{core-D66c1_Wo.cjs.map → core-w629c4ND.cjs.map} +1 -1
  212. package/dist/{cpp-DAzz2TpY.js → cpp-BraS2arf.js} +1 -1
  213. package/dist/{cpp-DAzz2TpY.js.map → cpp-BraS2arf.js.map} +1 -1
  214. package/dist/{cpp-BMULAf-B.cjs → cpp-LIcuHkFj.cjs} +1 -1
  215. package/dist/{cpp-BMULAf-B.cjs.map → cpp-LIcuHkFj.cjs.map} +1 -1
  216. package/dist/creditCards-Bo2mrc53.cjs +2 -0
  217. package/dist/creditCards-Bo2mrc53.cjs.map +1 -0
  218. package/dist/{creditCards-D_iWmtG6.js → creditCards-DmDOyvcw.js} +20 -31
  219. package/dist/creditCards-DmDOyvcw.js.map +1 -0
  220. package/dist/{css-9M03GzKO.cjs → css-D6fGBtGV.cjs} +1 -1
  221. package/dist/{css-9M03GzKO.cjs.map → css-D6fGBtGV.cjs.map} +1 -1
  222. package/dist/{css-EGOXTWIl.js → css-Dy8pFAWa.js} +1 -1
  223. package/dist/{css-EGOXTWIl.js.map → css-Dy8pFAWa.js.map} +1 -1
  224. package/dist/data-BM3KG8oN.cjs +2 -0
  225. package/dist/data-BM3KG8oN.cjs.map +1 -0
  226. package/dist/data-qnR8OBmj.js +808 -0
  227. package/dist/data-qnR8OBmj.js.map +1 -0
  228. package/dist/data.cjs +1 -1
  229. package/dist/data.js +2 -2
  230. package/dist/{dateUtils-CUY6CRCf.js → dateUtils-B-ToNZq_.js} +5 -6
  231. package/dist/dateUtils-B-ToNZq_.js.map +1 -0
  232. package/dist/dateUtils-z2L7ZaxA.cjs +2 -0
  233. package/dist/dateUtils-z2L7ZaxA.cjs.map +1 -0
  234. package/dist/display-BLMOBofj.cjs +3 -0
  235. package/dist/display-BLMOBofj.cjs.map +1 -0
  236. package/dist/display-Dlb79lkA.js +968 -0
  237. package/dist/display-Dlb79lkA.js.map +1 -0
  238. package/dist/display.cjs +1 -1
  239. package/dist/display.js +2 -2
  240. package/dist/dropdowns-2_7VMEDo.js +2009 -0
  241. package/dist/dropdowns-2_7VMEDo.js.map +1 -0
  242. package/dist/dropdowns-DN7j8J-V.cjs +2 -0
  243. package/dist/dropdowns-DN7j8J-V.cjs.map +1 -0
  244. package/dist/dropdowns.cjs +1 -1
  245. package/dist/dropdowns.js +1 -1
  246. package/dist/feedback-CECayytY.js +335 -0
  247. package/dist/feedback-CECayytY.js.map +1 -0
  248. package/dist/feedback-paV8Ls-h.cjs +2 -0
  249. package/dist/feedback-paV8Ls-h.cjs.map +1 -0
  250. package/dist/feedback.cjs +1 -1
  251. package/dist/feedback.js +5 -5
  252. package/dist/form-Br56h5EF.cjs +2 -0
  253. package/dist/form-Br56h5EF.cjs.map +1 -0
  254. package/dist/form-CJmMZgsH.js +165 -0
  255. package/dist/form-CJmMZgsH.js.map +1 -0
  256. package/dist/form.cjs +1 -1
  257. package/dist/form.js +1 -1
  258. package/dist/{formatters-CNjg_h7-.cjs → formatters-CauWlsnM.cjs} +1 -1
  259. package/dist/{formatters-CNjg_h7-.cjs.map → formatters-CauWlsnM.cjs.map} +1 -1
  260. package/dist/{formatters-T0vvjMtB.js → formatters-Doqdu_w1.js} +1 -1
  261. package/dist/{formatters-T0vvjMtB.js.map → formatters-Doqdu_w1.js.map} +1 -1
  262. package/dist/frameworkTexts-CaqdiKHW.cjs +2 -0
  263. package/dist/frameworkTexts-CaqdiKHW.cjs.map +1 -0
  264. package/dist/frameworkTexts-o43FqY1A.js +505 -0
  265. package/dist/frameworkTexts-o43FqY1A.js.map +1 -0
  266. package/dist/i18n/MI18nProvider.d.ts +6 -1
  267. package/dist/i18n/frameworkTexts.d.ts +572 -0
  268. package/dist/i18n/index.d.ts +1 -0
  269. package/dist/i18n.cjs +1 -1
  270. package/dist/i18n.js +2 -2
  271. package/dist/icons-Bp8bB9TP.cjs +2 -0
  272. package/dist/icons-Bp8bB9TP.cjs.map +1 -0
  273. package/dist/{icons-CBMl-kOM.js → icons-IqEBmGh3.js} +1223 -1220
  274. package/dist/icons-IqEBmGh3.js.map +1 -0
  275. package/dist/icons.cjs +1 -1
  276. package/dist/icons.js +1 -1
  277. package/dist/illustrations.cjs +1 -1
  278. package/dist/illustrations.js +1 -1
  279. package/dist/index.cjs +1 -1
  280. package/dist/index.d.ts +4 -2
  281. package/dist/index.js +56 -56
  282. package/dist/inputs-C0BJzlA-.js +1923 -0
  283. package/dist/inputs-C0BJzlA-.js.map +1 -0
  284. package/dist/inputs-CvNBBLFA.cjs +2 -0
  285. package/dist/inputs-CvNBBLFA.cjs.map +1 -0
  286. package/dist/inputs.cjs +1 -1
  287. package/dist/inputs.js +4 -4
  288. package/dist/{javascript-CHSg4NGc.js → javascript-CqKLBRqa.js} +1 -1
  289. package/dist/{javascript-CHSg4NGc.js.map → javascript-CqKLBRqa.js.map} +1 -1
  290. package/dist/{javascript-CastOQF5.cjs → javascript-Oy5hkezl.cjs} +1 -1
  291. package/dist/{javascript-CastOQF5.cjs.map → javascript-Oy5hkezl.cjs.map} +1 -1
  292. package/dist/{json-DCkJ-m-p.cjs → json-BP8eqPWc.cjs} +1 -1
  293. package/dist/{json-DCkJ-m-p.cjs.map → json-BP8eqPWc.cjs.map} +1 -1
  294. package/dist/{json-Bejy9Rlg.js → json-DJkyYaPe.js} +1 -1
  295. package/dist/{json-Bejy9Rlg.js.map → json-DJkyYaPe.js.map} +1 -1
  296. package/dist/layout-BSFqGXLZ.js +1101 -0
  297. package/dist/layout-BSFqGXLZ.js.map +1 -0
  298. package/dist/layout-MKqvUkPv.cjs +2 -0
  299. package/dist/layout-MKqvUkPv.cjs.map +1 -0
  300. package/dist/layout.cjs +1 -1
  301. package/dist/layout.js +6 -6
  302. package/dist/{licensing-f5KYVz7D.js → licensing-BKmoAdfr.js} +5 -4
  303. package/dist/licensing-BKmoAdfr.js.map +1 -0
  304. package/dist/licensing-DVgjkw-s.cjs +2 -0
  305. package/dist/licensing-DVgjkw-s.cjs.map +1 -0
  306. package/dist/{locale-DRRl_s5-.cjs → locale-C08q7FjE.cjs} +2 -2
  307. package/dist/{locale-DRRl_s5-.cjs.map → locale-C08q7FjE.cjs.map} +1 -1
  308. package/dist/{locale-CS1-IY_I.js → locale-CjJpk9GN.js} +1 -1
  309. package/dist/{locale-CS1-IY_I.js.map → locale-CjJpk9GN.js.map} +1 -1
  310. package/dist/media-fiasAbBv.js +485 -0
  311. package/dist/media-fiasAbBv.js.map +1 -0
  312. package/dist/media-tr1s386v.cjs +2 -0
  313. package/dist/media-tr1s386v.cjs.map +1 -0
  314. package/dist/media.cjs +1 -1
  315. package/dist/media.js +2 -2
  316. package/dist/overlays-Df-NpmkW.cjs +2 -0
  317. package/dist/overlays-Df-NpmkW.cjs.map +1 -0
  318. package/dist/overlays-W0WW3fn7.js +607 -0
  319. package/dist/overlays-W0WW3fn7.js.map +1 -0
  320. package/dist/overlays.cjs +1 -1
  321. package/dist/overlays.js +3 -3
  322. package/dist/{php-BdVXegqn.cjs → php-Cwjc-ZYq.cjs} +1 -1
  323. package/dist/{php-BdVXegqn.cjs.map → php-Cwjc-ZYq.cjs.map} +1 -1
  324. package/dist/{php-Cb_S1hXT.js → php-Db8PWzaX.js} +1 -1
  325. package/dist/{php-Cb_S1hXT.js.map → php-Db8PWzaX.js.map} +1 -1
  326. package/dist/primitives.cjs +1 -1
  327. package/dist/primitives.js +2 -2
  328. package/dist/radioGroupKeys-Bm-Qeh8G.js +28 -0
  329. package/dist/radioGroupKeys-Bm-Qeh8G.js.map +1 -0
  330. package/dist/radioGroupKeys-COL8uXbH.cjs +2 -0
  331. package/dist/radioGroupKeys-COL8uXbH.cjs.map +1 -0
  332. package/dist/{relativeTime-Cr-NVzij.js → relativeTime-BqCuaBqb.js} +1 -1
  333. package/dist/{relativeTime-Cr-NVzij.js.map → relativeTime-BqCuaBqb.js.map} +1 -1
  334. package/dist/{relativeTime-DgYBUaVm.cjs → relativeTime-DUbW4O44.cjs} +1 -1
  335. package/dist/{relativeTime-DgYBUaVm.cjs.map → relativeTime-DUbW4O44.cjs.map} +1 -1
  336. package/dist/scrollLock-C9P9o6wH.cjs +2 -0
  337. package/dist/scrollLock-C9P9o6wH.cjs.map +1 -0
  338. package/dist/scrollLock-D27VmgPV.js +14 -0
  339. package/dist/scrollLock-D27VmgPV.js.map +1 -0
  340. package/dist/style-runtime.cjs +1 -1
  341. package/dist/style-runtime.js +1 -1
  342. package/dist/styles.css +1 -1
  343. package/dist/theme/MThemeProvider.d.ts +18 -1
  344. package/dist/theme/index.d.ts +2 -2
  345. package/dist/{theme-DAOU1aPs.js → theme-B_juOenJ.js} +71 -61
  346. package/dist/theme-B_juOenJ.js.map +1 -0
  347. package/dist/theme-ByPZH0dh.cjs +2 -0
  348. package/dist/theme-ByPZH0dh.cjs.map +1 -0
  349. package/dist/theme.cjs +1 -1
  350. package/dist/theme.js +2 -2
  351. package/dist/{typescript-CcGBfzlS.cjs → typescript-QKlfKtex.cjs} +1 -1
  352. package/dist/{typescript-CcGBfzlS.cjs.map → typescript-QKlfKtex.cjs.map} +1 -1
  353. package/dist/{typescript-0VHxrxf2.js → typescript-chdf_txx.js} +1 -1
  354. package/dist/{typescript-0VHxrxf2.js.map → typescript-chdf_txx.js.map} +1 -1
  355. package/dist/{typography-CAW17MDj.js → typography-DNcB8dOy.js} +3 -3
  356. package/dist/{typography-CAW17MDj.js.map → typography-DNcB8dOy.js.map} +1 -1
  357. package/dist/{typography-C4_O8len.cjs → typography-I7aeG8pH.cjs} +2 -2
  358. package/dist/{typography-C4_O8len.cjs.map → typography-I7aeG8pH.cjs.map} +1 -1
  359. package/dist/typography.cjs +1 -1
  360. package/dist/typography.js +6 -6
  361. package/dist/useGhostText-CKsb8Ufa.js +240 -0
  362. package/dist/useGhostText-CKsb8Ufa.js.map +1 -0
  363. package/dist/useGhostText-DO-tfxS0.cjs +2 -0
  364. package/dist/useGhostText-DO-tfxS0.cjs.map +1 -0
  365. package/dist/{useInteractionEffect-CFwDX5UF.cjs → useInteractionEffect-CtXlbjhC.cjs} +2 -2
  366. package/dist/{useInteractionEffect-CFwDX5UF.cjs.map → useInteractionEffect-CtXlbjhC.cjs.map} +1 -1
  367. package/dist/useModalLayer-CpOPSDbf.js +128 -0
  368. package/dist/useModalLayer-CpOPSDbf.js.map +1 -0
  369. package/dist/useModalLayer-Cyt93Prs.cjs +2 -0
  370. package/dist/useModalLayer-Cyt93Prs.cjs.map +1 -0
  371. package/dist/utils/calendarDates.d.ts +5 -0
  372. package/dist/utils/radioGroupKeys.d.ts +9 -0
  373. package/dist/utils/useDateGridNav.d.ts +39 -0
  374. package/dist/utils/useGhostText.d.ts +2 -1
  375. package/dist/utils/useKeyboardNav.d.ts +51 -5
  376. package/dist/utils/useModalLayer.d.ts +14 -0
  377. package/dist/utils/useRovingToolbar.d.ts +26 -0
  378. package/dist/utils/validationMessages.d.ts +15 -0
  379. package/dist/utils.cjs +1 -1
  380. package/dist/utils.entry.d.ts +3 -1
  381. package/dist/utils.js +11 -11
  382. package/dist/validationMessages-BFimXxlT.js +23 -0
  383. package/dist/validationMessages-BFimXxlT.js.map +1 -0
  384. package/dist/validationMessages-iHu7apWr.cjs +2 -0
  385. package/dist/validationMessages-iHu7apWr.cjs.map +1 -0
  386. package/dist/validators-SZmLxnir.cjs +2 -0
  387. package/dist/validators-SZmLxnir.cjs.map +1 -0
  388. package/dist/{validators-DVYOtFnw.js → validators-ULebNme2.js} +107 -106
  389. package/dist/validators-ULebNme2.js.map +1 -0
  390. package/dist/{xml-Dbm3mobK.cjs → xml-DEtyywwU.cjs} +1 -1
  391. package/dist/{xml-Dbm3mobK.cjs.map → xml-DEtyywwU.cjs.map} +1 -1
  392. package/dist/{xml-8GjNy8SM.js → xml-DnydRpfh.js} +1 -1
  393. package/dist/{xml-8GjNy8SM.js.map → xml-DnydRpfh.js.map} +1 -1
  394. package/package.json +1 -1
  395. package/dist/MAvatar-Capz5Gbc.cjs +0 -2
  396. package/dist/MAvatar-Capz5Gbc.cjs.map +0 -1
  397. package/dist/MAvatar-DtJCj3dD.js +0 -63
  398. package/dist/MAvatar-DtJCj3dD.js.map +0 -1
  399. package/dist/MButton-C1pnL4_j.js +0 -115
  400. package/dist/MButton-C1pnL4_j.js.map +0 -1
  401. package/dist/MButton-sTKnano6.cjs +0 -2
  402. package/dist/MButton-sTKnano6.cjs.map +0 -1
  403. package/dist/MCard-DK-_FkpE.cjs.map +0 -1
  404. package/dist/MCard-azpp4YVD.js.map +0 -1
  405. package/dist/MCheckbox-B7SpcD4H.js +0 -59
  406. package/dist/MCheckbox-B7SpcD4H.js.map +0 -1
  407. package/dist/MCheckbox-CIX7wp41.cjs +0 -2
  408. package/dist/MCheckbox-CIX7wp41.cjs.map +0 -1
  409. package/dist/MConflictIllustration-CZ3Md38Z.cjs +0 -2
  410. package/dist/MConflictIllustration-CZ3Md38Z.cjs.map +0 -1
  411. package/dist/MConflictIllustration-znC7ijmP.js.map +0 -1
  412. package/dist/MDetailList-Ce7KzUKC.cjs +0 -2
  413. package/dist/MDetailList-Ce7KzUKC.cjs.map +0 -1
  414. package/dist/MDetailList-fDhVyhm7.js +0 -98
  415. package/dist/MDetailList-fDhVyhm7.js.map +0 -1
  416. package/dist/MDropdownMenu-B_QWQhxy.cjs +0 -2
  417. package/dist/MDropdownMenu-B_QWQhxy.cjs.map +0 -1
  418. package/dist/MDropdownMenu-C4CuKMRZ.js +0 -172
  419. package/dist/MDropdownMenu-C4CuKMRZ.js.map +0 -1
  420. package/dist/MGrid-CYL3cbUI.js +0 -265
  421. package/dist/MGrid-CYL3cbUI.js.map +0 -1
  422. package/dist/MGrid-fTx6wFq_.cjs +0 -2
  423. package/dist/MGrid-fTx6wFq_.cjs.map +0 -1
  424. package/dist/MHeading-B7KgSP4T.js +0 -21
  425. package/dist/MHeading-B7KgSP4T.js.map +0 -1
  426. package/dist/MHeading-KDSpnCof.cjs +0 -2
  427. package/dist/MHeading-KDSpnCof.cjs.map +0 -1
  428. package/dist/MI18nProvider-DXRbB0VY.cjs +0 -2
  429. package/dist/MI18nProvider-DXRbB0VY.cjs.map +0 -1
  430. package/dist/MI18nProvider-VH14CI8u.js +0 -72
  431. package/dist/MI18nProvider-VH14CI8u.js.map +0 -1
  432. package/dist/MInput-C8ObGzQk.js +0 -187
  433. package/dist/MInput-C8ObGzQk.js.map +0 -1
  434. package/dist/MInput-CGl2Q-rM.cjs +0 -2
  435. package/dist/MInput-CGl2Q-rM.cjs.map +0 -1
  436. package/dist/MInputCVC-Blv5PeyS.js +0 -320
  437. package/dist/MInputCVC-Blv5PeyS.js.map +0 -1
  438. package/dist/MInputCVC-lAFKTV6y.cjs +0 -2
  439. package/dist/MInputCVC-lAFKTV6y.cjs.map +0 -1
  440. package/dist/MInputSearch-BM8gLlJ1.js +0 -43
  441. package/dist/MInputSearch-BM8gLlJ1.js.map +0 -1
  442. package/dist/MInputSearch-BZDnbFB4.cjs +0 -2
  443. package/dist/MInputSearch-BZDnbFB4.cjs.map +0 -1
  444. package/dist/MLink-Bd8fLH1N.js +0 -31
  445. package/dist/MLink-Bd8fLH1N.js.map +0 -1
  446. package/dist/MLink-U24G6KJj.cjs +0 -2
  447. package/dist/MLink-U24G6KJj.cjs.map +0 -1
  448. package/dist/MLoader-CnvWqFtA.js +0 -41
  449. package/dist/MLoader-CnvWqFtA.js.map +0 -1
  450. package/dist/MLoader-CvFIvytw.cjs +0 -2
  451. package/dist/MLoader-CvFIvytw.cjs.map +0 -1
  452. package/dist/MPagination-BkvOEZpp.js +0 -113
  453. package/dist/MPagination-BkvOEZpp.js.map +0 -1
  454. package/dist/MPagination-DgQta29Q.cjs +0 -2
  455. package/dist/MPagination-DgQta29Q.cjs.map +0 -1
  456. package/dist/MPopover-C-e1CoV0.cjs +0 -2
  457. package/dist/MPopover-C-e1CoV0.cjs.map +0 -1
  458. package/dist/MPopover-Dd-GIBU6.js +0 -155
  459. package/dist/MPopover-Dd-GIBU6.js.map +0 -1
  460. package/dist/MPortal-Ba2Sxset.js +0 -10
  461. package/dist/MPortal-Ba2Sxset.js.map +0 -1
  462. package/dist/MPortal-DUSIuINN.cjs +0 -2
  463. package/dist/MPortal-DUSIuINN.cjs.map +0 -1
  464. package/dist/MSimpleGrid-BWKurW6H.js.map +0 -1
  465. package/dist/MSimpleGrid-BzlIitcJ.cjs +0 -2
  466. package/dist/MSimpleGrid-BzlIitcJ.cjs.map +0 -1
  467. package/dist/MSkeleton-BoFpowFU.cjs +0 -2
  468. package/dist/MSkeleton-BoFpowFU.cjs.map +0 -1
  469. package/dist/MSkeleton-C5uD4Axo.js.map +0 -1
  470. package/dist/MSlider-BTDBqF8t.cjs +0 -2
  471. package/dist/MSlider-BTDBqF8t.cjs.map +0 -1
  472. package/dist/MSlider-CqrusKJQ.js +0 -75
  473. package/dist/MSlider-CqrusKJQ.js.map +0 -1
  474. package/dist/MStack-B3Ldqsc-.cjs +0 -2
  475. package/dist/MStack-B3Ldqsc-.cjs.map +0 -1
  476. package/dist/MStack-CSCw6to2.js +0 -39
  477. package/dist/MStack-CSCw6to2.js.map +0 -1
  478. package/dist/MSubText-47PsgE8T.cjs +0 -2
  479. package/dist/MSubText-47PsgE8T.cjs.map +0 -1
  480. package/dist/MSubText-C-N15d4Z.js +0 -17
  481. package/dist/MSubText-C-N15d4Z.js.map +0 -1
  482. package/dist/MSurface-B-sjyczH.js +0 -74
  483. package/dist/MSurface-B-sjyczH.js.map +0 -1
  484. package/dist/MSurface-QYEygc_0.cjs +0 -2
  485. package/dist/MSurface-QYEygc_0.cjs.map +0 -1
  486. package/dist/MTag-BjV-dXkk.cjs +0 -2
  487. package/dist/MTag-BjV-dXkk.cjs.map +0 -1
  488. package/dist/MTag-D9q6faIk.js +0 -39
  489. package/dist/MTag-D9q6faIk.js.map +0 -1
  490. package/dist/MText-CL-LPcXi.js +0 -45
  491. package/dist/MText-CL-LPcXi.js.map +0 -1
  492. package/dist/MText-Dni707tS.cjs +0 -2
  493. package/dist/MText-Dni707tS.cjs.map +0 -1
  494. package/dist/MTooltip-ChvuN4Ow.cjs +0 -2
  495. package/dist/MTooltip-ChvuN4Ow.cjs.map +0 -1
  496. package/dist/MTooltip-H3we0a7w.js +0 -57
  497. package/dist/MTooltip-H3we0a7w.js.map +0 -1
  498. package/dist/MTreeView-B1J7uqd1.js +0 -315
  499. package/dist/MTreeView-B1J7uqd1.js.map +0 -1
  500. package/dist/MTreeView-VYp0eErQ.cjs +0 -2
  501. package/dist/MTreeView-VYp0eErQ.cjs.map +0 -1
  502. package/dist/calendar-P7MwKfWS.cjs +0 -2
  503. package/dist/calendar-P7MwKfWS.cjs.map +0 -1
  504. package/dist/calendar-bzeZRst9.js +0 -193
  505. package/dist/calendar-bzeZRst9.js.map +0 -1
  506. package/dist/calendarDates-AnlGcvZM.cjs +0 -2
  507. package/dist/calendarDates-AnlGcvZM.cjs.map +0 -1
  508. package/dist/calendarDates-CYkJqcnp.js.map +0 -1
  509. package/dist/cards-CFDJsdxR.js +0 -1226
  510. package/dist/cards-CFDJsdxR.js.map +0 -1
  511. package/dist/cards-DeA7I2KC.cjs +0 -2
  512. package/dist/cards-DeA7I2KC.cjs.map +0 -1
  513. package/dist/controls-BKAhqjNM.js +0 -474
  514. package/dist/controls-BKAhqjNM.js.map +0 -1
  515. package/dist/controls-KK-TyUTT.cjs +0 -2
  516. package/dist/controls-KK-TyUTT.cjs.map +0 -1
  517. package/dist/creditCards-D_HwRUBz.cjs +0 -2
  518. package/dist/creditCards-D_HwRUBz.cjs.map +0 -1
  519. package/dist/creditCards-D_iWmtG6.js.map +0 -1
  520. package/dist/data-CgLutFxU.js +0 -689
  521. package/dist/data-CgLutFxU.js.map +0 -1
  522. package/dist/data-DFrkJTlF.cjs +0 -2
  523. package/dist/data-DFrkJTlF.cjs.map +0 -1
  524. package/dist/dateUtils-CUY6CRCf.js.map +0 -1
  525. package/dist/dateUtils-Dq1vaA-D.cjs +0 -2
  526. package/dist/dateUtils-Dq1vaA-D.cjs.map +0 -1
  527. package/dist/display--E7rI0tk.cjs +0 -3
  528. package/dist/display--E7rI0tk.cjs.map +0 -1
  529. package/dist/display-BnkHKW1n.js +0 -782
  530. package/dist/display-BnkHKW1n.js.map +0 -1
  531. package/dist/dropdowns-DGYg9zIh.cjs +0 -2
  532. package/dist/dropdowns-DGYg9zIh.cjs.map +0 -1
  533. package/dist/dropdowns-Dq-xAplH.js +0 -1698
  534. package/dist/dropdowns-Dq-xAplH.js.map +0 -1
  535. package/dist/feedback-CA77ShtB.cjs +0 -2
  536. package/dist/feedback-CA77ShtB.cjs.map +0 -1
  537. package/dist/feedback-CCwbdNZu.js +0 -255
  538. package/dist/feedback-CCwbdNZu.js.map +0 -1
  539. package/dist/form-CAFcvmUS.js +0 -167
  540. package/dist/form-CAFcvmUS.js.map +0 -1
  541. package/dist/form-DpfzLUOn.cjs +0 -2
  542. package/dist/form-DpfzLUOn.cjs.map +0 -1
  543. package/dist/frameworkTexts-DH0Xp-Vx.js +0 -78
  544. package/dist/frameworkTexts-DH0Xp-Vx.js.map +0 -1
  545. package/dist/frameworkTexts-iDXhcW6k.cjs +0 -2
  546. package/dist/frameworkTexts-iDXhcW6k.cjs.map +0 -1
  547. package/dist/icons-CBMl-kOM.js.map +0 -1
  548. package/dist/icons-D_NB67he.cjs +0 -2
  549. package/dist/icons-D_NB67he.cjs.map +0 -1
  550. package/dist/inputs-B1LCddA4.js +0 -1752
  551. package/dist/inputs-B1LCddA4.js.map +0 -1
  552. package/dist/inputs-Clenc4Rm.cjs +0 -2
  553. package/dist/inputs-Clenc4Rm.cjs.map +0 -1
  554. package/dist/layout-CNoZdeXw.cjs +0 -2
  555. package/dist/layout-CNoZdeXw.cjs.map +0 -1
  556. package/dist/layout-DsE4zfpg.js +0 -882
  557. package/dist/layout-DsE4zfpg.js.map +0 -1
  558. package/dist/licensing-DGIdtfNg.cjs +0 -2
  559. package/dist/licensing-DGIdtfNg.cjs.map +0 -1
  560. package/dist/licensing-f5KYVz7D.js.map +0 -1
  561. package/dist/media-DRTBXDnn.cjs +0 -2
  562. package/dist/media-DRTBXDnn.cjs.map +0 -1
  563. package/dist/media-vOQOIYFD.js +0 -402
  564. package/dist/media-vOQOIYFD.js.map +0 -1
  565. package/dist/overlays-BKk_ZXue.js +0 -568
  566. package/dist/overlays-BKk_ZXue.js.map +0 -1
  567. package/dist/overlays-Qbp4d596.cjs +0 -2
  568. package/dist/overlays-Qbp4d596.cjs.map +0 -1
  569. package/dist/theme-DAOU1aPs.js.map +0 -1
  570. package/dist/theme-DgaM4CjM.cjs +0 -2
  571. package/dist/theme-DgaM4CjM.cjs.map +0 -1
  572. package/dist/useGhostText-DG0bzcao.js +0 -68
  573. package/dist/useGhostText-DG0bzcao.js.map +0 -1
  574. package/dist/useGhostText-Dlemg1vw.cjs +0 -2
  575. package/dist/useGhostText-Dlemg1vw.cjs.map +0 -1
  576. package/dist/useKeyboardNav-Bm-dxVq-.cjs +0 -2
  577. package/dist/useKeyboardNav-Bm-dxVq-.cjs.map +0 -1
  578. package/dist/useKeyboardNav-iEXOdEMB.js +0 -43
  579. package/dist/useKeyboardNav-iEXOdEMB.js.map +0 -1
  580. package/dist/validators-B6yWdsu2.cjs +0 -2
  581. package/dist/validators-B6yWdsu2.cjs.map +0 -1
  582. 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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"}