@banzamel/mineralui 1.12.0 → 2.1.0

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 (268) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-CIvYzQV4.js → MAvatar-BcO8hMnU.js} +2 -2
  3. package/dist/{MAvatar-CIvYzQV4.js.map → MAvatar-BcO8hMnU.js.map} +1 -1
  4. package/dist/{MAvatar-BElYyQXH.cjs → MAvatar-C4N2ztLf.cjs} +2 -2
  5. package/dist/{MAvatar-BElYyQXH.cjs.map → MAvatar-C4N2ztLf.cjs.map} +1 -1
  6. package/dist/{MButton-ouB6903s.cjs → MButton-B8kFTOPJ.cjs} +2 -2
  7. package/dist/{MButton-ouB6903s.cjs.map → MButton-B8kFTOPJ.cjs.map} +1 -1
  8. package/dist/{MButton-C94fZ3l9.js → MButton-C1pnL4_j.js} +1 -1
  9. package/dist/{MButton-C94fZ3l9.js.map → MButton-C1pnL4_j.js.map} +1 -1
  10. package/dist/{MButtonGroup-BhGt-Yy1.js → MButtonGroup-BkNf7fzo.js} +2 -2
  11. package/dist/{MButtonGroup-BhGt-Yy1.js.map → MButtonGroup-BkNf7fzo.js.map} +1 -1
  12. package/dist/{MButtonGroup-yumQneDa.cjs → MButtonGroup-C3Ar0gfk.cjs} +2 -2
  13. package/dist/{MButtonGroup-yumQneDa.cjs.map → MButtonGroup-C3Ar0gfk.cjs.map} +1 -1
  14. package/dist/{MCard-9ucghJJs.js → MCard-dLMQQ97e.js} +2 -2
  15. package/dist/{MCard-9ucghJJs.js.map → MCard-dLMQQ97e.js.map} +1 -1
  16. package/dist/{MCard-Bg_R86Gr.cjs → MCard-szs5kIek.cjs} +2 -2
  17. package/dist/{MCard-Bg_R86Gr.cjs.map → MCard-szs5kIek.cjs.map} +1 -1
  18. package/dist/{MCheckbox-B-nT2OBE.js → MCheckbox-B7SpcD4H.js} +1 -1
  19. package/dist/{MCheckbox-B-nT2OBE.js.map → MCheckbox-B7SpcD4H.js.map} +1 -1
  20. package/dist/{MCheckbox-Cbk5hwzJ.cjs → MCheckbox-CATWU11D.cjs} +2 -2
  21. package/dist/{MCheckbox-Cbk5hwzJ.cjs.map → MCheckbox-CATWU11D.cjs.map} +1 -1
  22. package/dist/{MConflictIllustration-Ctggjn7z.js → MConflictIllustration-Drsm8_8C.js} +41 -99
  23. package/dist/MConflictIllustration-Drsm8_8C.js.map +1 -0
  24. package/dist/MConflictIllustration-Mnz1q7Ey.cjs +2 -0
  25. package/dist/MConflictIllustration-Mnz1q7Ey.cjs.map +1 -0
  26. package/dist/{MDetailList-t0ixZflO.cjs → MDetailList-BBgUaSDJ.cjs} +2 -2
  27. package/dist/{MDetailList-t0ixZflO.cjs.map → MDetailList-BBgUaSDJ.cjs.map} +1 -1
  28. package/dist/{MDetailList-CELXTmJw.js → MDetailList-zlwdeA-r.js} +2 -2
  29. package/dist/{MDetailList-CELXTmJw.js.map → MDetailList-zlwdeA-r.js.map} +1 -1
  30. package/dist/{MDropdownMenu-Coy-0Wee.cjs → MDropdownMenu-1RqWjxHp.cjs} +2 -2
  31. package/dist/{MDropdownMenu-Coy-0Wee.cjs.map → MDropdownMenu-1RqWjxHp.cjs.map} +1 -1
  32. package/dist/{MDropdownMenu-BgEtrL-T.js → MDropdownMenu-omTEUh4V.js} +1 -1
  33. package/dist/{MDropdownMenu-BgEtrL-T.js.map → MDropdownMenu-omTEUh4V.js.map} +1 -1
  34. package/dist/{MGrid-Di7laCq4.cjs → MGrid-B2qzYD6S.cjs} +2 -2
  35. package/dist/{MGrid-Di7laCq4.cjs.map → MGrid-B2qzYD6S.cjs.map} +1 -1
  36. package/dist/{MGrid-yLmEteNw.js → MGrid-Cy44dWyC.js} +1 -1
  37. package/dist/{MGrid-yLmEteNw.js.map → MGrid-Cy44dWyC.js.map} +1 -1
  38. package/dist/{MHeading-TJ5yvklz.cjs → MHeading-CyuxSnhl.cjs} +2 -2
  39. package/dist/{MHeading-TJ5yvklz.cjs.map → MHeading-CyuxSnhl.cjs.map} +1 -1
  40. package/dist/{MI18nProvider-bf1G7lTP.cjs → MI18nProvider-C90EVyFz.cjs} +2 -2
  41. package/dist/{MI18nProvider-bf1G7lTP.cjs.map → MI18nProvider-C90EVyFz.cjs.map} +1 -1
  42. package/dist/{MInput-CkbgK8eU.js → MInput-Baokf17V.js} +2 -2
  43. package/dist/{MInput-CkbgK8eU.js.map → MInput-Baokf17V.js.map} +1 -1
  44. package/dist/{MInput-ClHpIrDG.cjs → MInput-Cw9ZVcNO.cjs} +2 -2
  45. package/dist/{MInput-ClHpIrDG.cjs.map → MInput-Cw9ZVcNO.cjs.map} +1 -1
  46. package/dist/{MInputCVC-D1rSjwXj.cjs → MInputCVC-Bqcp5Uu3.cjs} +2 -2
  47. package/dist/{MInputCVC-D1rSjwXj.cjs.map → MInputCVC-Bqcp5Uu3.cjs.map} +1 -1
  48. package/dist/{MInputCVC-DFtAStrY.js → MInputCVC-DNzDAbfU.js} +3 -3
  49. package/dist/{MInputCVC-DFtAStrY.js.map → MInputCVC-DNzDAbfU.js.map} +1 -1
  50. package/dist/{MInputSearch-Dj55a3oO.js → MInputSearch-Bswi-Kj0.js} +2 -2
  51. package/dist/{MInputSearch-Dj55a3oO.js.map → MInputSearch-Bswi-Kj0.js.map} +1 -1
  52. package/dist/{MInputSearch-D2Fr_34s.cjs → MInputSearch-D9bp1QAz.cjs} +2 -2
  53. package/dist/{MInputSearch-D2Fr_34s.cjs.map → MInputSearch-D9bp1QAz.cjs.map} +1 -1
  54. package/dist/{MKbd-CGkzxJhi.cjs → MKbd-CiwDwFwA.cjs} +2 -2
  55. package/dist/{MKbd-CGkzxJhi.cjs.map → MKbd-CiwDwFwA.cjs.map} +1 -1
  56. package/dist/{MKbd-I4xDtsqc.js → MKbd-v6-tJ9sP.js} +1 -1
  57. package/dist/{MKbd-I4xDtsqc.js.map → MKbd-v6-tJ9sP.js.map} +1 -1
  58. package/dist/{MLink-CZ2FfQ0N.cjs → MLink-B7gXA8qY.cjs} +2 -2
  59. package/dist/{MLink-CZ2FfQ0N.cjs.map → MLink-B7gXA8qY.cjs.map} +1 -1
  60. package/dist/{MPagination-CAzIIP2o.cjs → MPagination-C2GmGkVA.cjs} +2 -2
  61. package/dist/{MPagination-CAzIIP2o.cjs.map → MPagination-C2GmGkVA.cjs.map} +1 -1
  62. package/dist/{MPagination-CnFI794t.js → MPagination-DpUtB6t6.js} +2 -2
  63. package/dist/{MPagination-CnFI794t.js.map → MPagination-DpUtB6t6.js.map} +1 -1
  64. package/dist/{MPopover-BbgAAM5Z.cjs → MPopover-BVBN5SJi.cjs} +2 -2
  65. package/dist/{MPopover-BbgAAM5Z.cjs.map → MPopover-BVBN5SJi.cjs.map} +1 -1
  66. package/dist/{MPortal-DokH9TfY.cjs → MPortal-Djrw2WhD.cjs} +2 -2
  67. package/dist/{MPortal-DokH9TfY.cjs.map → MPortal-Djrw2WhD.cjs.map} +1 -1
  68. package/dist/{MSimpleGrid-B6Uh1XJY.cjs → MSimpleGrid-BR352NiK.cjs} +2 -2
  69. package/dist/{MSimpleGrid-B6Uh1XJY.cjs.map → MSimpleGrid-BR352NiK.cjs.map} +1 -1
  70. package/dist/{MSimpleGrid-Ds14eBrD.js → MSimpleGrid-BVeCK9Ci.js} +1 -1
  71. package/dist/{MSimpleGrid-Ds14eBrD.js.map → MSimpleGrid-BVeCK9Ci.js.map} +1 -1
  72. package/dist/{MSkeleton-BpylRABV.js → MSkeleton-C5uD4Axo.js} +1 -1
  73. package/dist/{MSkeleton-BpylRABV.js.map → MSkeleton-C5uD4Axo.js.map} +1 -1
  74. package/dist/{MSkeleton-JMkJFzu9.cjs → MSkeleton-DyQBeuVT.cjs} +2 -2
  75. package/dist/{MSkeleton-JMkJFzu9.cjs.map → MSkeleton-DyQBeuVT.cjs.map} +1 -1
  76. package/dist/{MSlider-5141rKeH.js → MSlider-CqrusKJQ.js} +1 -1
  77. package/dist/{MSlider-5141rKeH.js.map → MSlider-CqrusKJQ.js.map} +1 -1
  78. package/dist/{MSlider-PyXLKckL.cjs → MSlider-Ds2Fls86.cjs} +2 -2
  79. package/dist/{MSlider-PyXLKckL.cjs.map → MSlider-Ds2Fls86.cjs.map} +1 -1
  80. package/dist/{MStack-DDn2bYBQ.cjs → MStack-BdVvJN5S.cjs} +2 -2
  81. package/dist/{MStack-DDn2bYBQ.cjs.map → MStack-BdVvJN5S.cjs.map} +1 -1
  82. package/dist/{MStack-B8JtyM10.js → MStack-h11pHEmc.js} +1 -1
  83. package/dist/{MStack-B8JtyM10.js.map → MStack-h11pHEmc.js.map} +1 -1
  84. package/dist/MSubText-C-N15d4Z.js +17 -0
  85. package/dist/MSubText-C-N15d4Z.js.map +1 -0
  86. package/dist/MSubText-DWNMJupD.cjs +2 -0
  87. package/dist/MSubText-DWNMJupD.cjs.map +1 -0
  88. package/dist/{MSurface-WsYGNGX5.cjs → MSurface-BS9l7GDH.cjs} +2 -2
  89. package/dist/{MSurface-WsYGNGX5.cjs.map → MSurface-BS9l7GDH.cjs.map} +1 -1
  90. package/dist/{MTag-CKM8lXD6.js → MTag-BF6htPr-.js} +2 -2
  91. package/dist/{MTag-CKM8lXD6.js.map → MTag-BF6htPr-.js.map} +1 -1
  92. package/dist/{MTag-Dez1GOX0.cjs → MTag-BwQbycZO.cjs} +2 -2
  93. package/dist/{MTag-Dez1GOX0.cjs.map → MTag-BwQbycZO.cjs.map} +1 -1
  94. package/dist/{MText-CAbqC2qZ.cjs → MText-Cjt1oTPr.cjs} +2 -2
  95. package/dist/{MText-CAbqC2qZ.cjs.map → MText-Cjt1oTPr.cjs.map} +1 -1
  96. package/dist/{MTooltip-Cbj80F3o.js → MTooltip-Ctyjwxv-.js} +1 -1
  97. package/dist/{MTooltip-Cbj80F3o.js.map → MTooltip-Ctyjwxv-.js.map} +1 -1
  98. package/dist/{MTooltip-C-x_SqMx.cjs → MTooltip-gpvKWQzD.cjs} +2 -2
  99. package/dist/{MTooltip-C-x_SqMx.cjs.map → MTooltip-gpvKWQzD.cjs.map} +1 -1
  100. package/dist/{MTreeView-B7IWHmGc.cjs → MTreeView-BS60bIj7.cjs} +2 -2
  101. package/dist/{MTreeView-B7IWHmGc.cjs.map → MTreeView-BS60bIj7.cjs.map} +1 -1
  102. package/dist/{MTreeView-DMTzRk6c.js → MTreeView-DTsi4bye.js} +2 -2
  103. package/dist/{MTreeView-DMTzRk6c.js.map → MTreeView-DTsi4bye.js.map} +1 -1
  104. package/dist/{arduino-CFZS94LP.cjs → arduino-CA8n1Qq3.cjs} +1 -1
  105. package/dist/{arduino-CFZS94LP.cjs.map → arduino-CA8n1Qq3.cjs.map} +1 -1
  106. package/dist/{arduino-DWEBiENP.js → arduino-WKgN2ikT.js} +1 -1
  107. package/dist/{arduino-DWEBiENP.js.map → arduino-WKgN2ikT.js.map} +1 -1
  108. package/dist/{bash-Dl1TvWHd.cjs → bash-DObE5DDq.cjs} +1 -1
  109. package/dist/{bash-Dl1TvWHd.cjs.map → bash-DObE5DDq.cjs.map} +1 -1
  110. package/dist/{bash-DQsQM8so.js → bash-vBtVVub9.js} +1 -1
  111. package/dist/{bash-DQsQM8so.js.map → bash-vBtVVub9.js.map} +1 -1
  112. package/dist/{c-BgkSGJWN.js → c-7RiNX--m.js} +1 -1
  113. package/dist/{c-BgkSGJWN.js.map → c-7RiNX--m.js.map} +1 -1
  114. package/dist/{c-PUMyVGnz.cjs → c-Bb-MtVny.cjs} +1 -1
  115. package/dist/{c-PUMyVGnz.cjs.map → c-Bb-MtVny.cjs.map} +1 -1
  116. package/dist/{cards-C2t-pM0r.js → cards-BkRqUJ2V.js} +14 -14
  117. package/dist/{cards-C2t-pM0r.js.map → cards-BkRqUJ2V.js.map} +1 -1
  118. package/dist/{cards-D7_hH3Q8.cjs → cards-DK7j03NN.cjs} +2 -2
  119. package/dist/{cards-D7_hH3Q8.cjs.map → cards-DK7j03NN.cjs.map} +1 -1
  120. package/dist/cards.cjs +1 -1
  121. package/dist/cards.js +2 -2
  122. package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +8 -0
  123. package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +74 -0
  124. package/dist/components/data/MWeekGrid/index.d.ts +2 -0
  125. package/dist/components/data/index.d.ts +2 -0
  126. package/dist/{controls-DwWfqfDX.cjs → controls-BopaNWb_.cjs} +2 -2
  127. package/dist/{controls-DwWfqfDX.cjs.map → controls-BopaNWb_.cjs.map} +1 -1
  128. package/dist/{controls-B3P4zKoA.js → controls-CSTIosnc.js} +4 -4
  129. package/dist/{controls-B3P4zKoA.js.map → controls-CSTIosnc.js.map} +1 -1
  130. package/dist/controls.cjs +1 -1
  131. package/dist/controls.js +5 -5
  132. package/dist/{core-BdOw9NlN.js → core-DC6zSfZo.js} +1 -1
  133. package/dist/{core-BdOw9NlN.js.map → core-DC6zSfZo.js.map} +1 -1
  134. package/dist/{core-B2klLGki.cjs → core-o3cw16Db.cjs} +1 -1
  135. package/dist/{core-B2klLGki.cjs.map → core-o3cw16Db.cjs.map} +1 -1
  136. package/dist/{cpp-C_DS-imi.cjs → cpp-BVKrJvso.cjs} +1 -1
  137. package/dist/{cpp-C_DS-imi.cjs.map → cpp-BVKrJvso.cjs.map} +1 -1
  138. package/dist/{cpp-ChrqJwqu.js → cpp-CaNnFjgy.js} +1 -1
  139. package/dist/{cpp-ChrqJwqu.js.map → cpp-CaNnFjgy.js.map} +1 -1
  140. package/dist/{css-Brdthutg.cjs → css-C2sjPfLl.cjs} +1 -1
  141. package/dist/{css-Brdthutg.cjs.map → css-C2sjPfLl.cjs.map} +1 -1
  142. package/dist/{css-DL_ID0lZ.js → css-NqBDP7ZC.js} +1 -1
  143. package/dist/{css-DL_ID0lZ.js.map → css-NqBDP7ZC.js.map} +1 -1
  144. package/dist/data-CjVcevdT.js +654 -0
  145. package/dist/data-CjVcevdT.js.map +1 -0
  146. package/dist/data-D8qUIvWv.cjs +2 -0
  147. package/dist/data-D8qUIvWv.cjs.map +1 -0
  148. package/dist/data.cjs +1 -1
  149. package/dist/data.js +3 -3
  150. package/dist/{display-ChhvaSPc.js → display-B7Wh5nnM.js} +17 -17
  151. package/dist/{display-ChhvaSPc.js.map → display-B7Wh5nnM.js.map} +1 -1
  152. package/dist/{display-2Vak-RyH.cjs → display-BgZbdTDd.cjs} +2 -2
  153. package/dist/{display-2Vak-RyH.cjs.map → display-BgZbdTDd.cjs.map} +1 -1
  154. package/dist/display.cjs +1 -1
  155. package/dist/display.js +2 -2
  156. package/dist/{dropdowns-BLd4lyr6.cjs → dropdowns-Befc3lmC.cjs} +2 -2
  157. package/dist/dropdowns-Befc3lmC.cjs.map +1 -0
  158. package/dist/{dropdowns-BJ8s18h2.js → dropdowns-DGvRs-VE.js} +6 -6
  159. package/dist/dropdowns-DGvRs-VE.js.map +1 -0
  160. package/dist/dropdowns.cjs +1 -1
  161. package/dist/dropdowns.js +1 -1
  162. package/dist/{feedback-urwS5wps.js → feedback-C445FEHb.js} +3 -3
  163. package/dist/{feedback-urwS5wps.js.map → feedback-C445FEHb.js.map} +1 -1
  164. package/dist/{feedback-DnuJtYUI.cjs → feedback-C8RfsfYJ.cjs} +2 -2
  165. package/dist/{feedback-DnuJtYUI.cjs.map → feedback-C8RfsfYJ.cjs.map} +1 -1
  166. package/dist/feedback.cjs +1 -1
  167. package/dist/feedback.js +4 -4
  168. package/dist/{form-CFhDAU18.js → form-BWWLNji0.js} +1 -1
  169. package/dist/{form-CFhDAU18.js.map → form-BWWLNji0.js.map} +1 -1
  170. package/dist/{form-Bni0Gf_s.cjs → form-DSlAmTT1.cjs} +2 -2
  171. package/dist/{form-Bni0Gf_s.cjs.map → form-DSlAmTT1.cjs.map} +1 -1
  172. package/dist/form.cjs +1 -1
  173. package/dist/form.js +1 -1
  174. package/dist/i18n/frameworkTexts.d.ts +0 -29
  175. package/dist/i18n.cjs +1 -1
  176. package/dist/{icons-BHFwX7ri.cjs → icons-DX_cScBq.cjs} +2 -2
  177. package/dist/{icons-BHFwX7ri.cjs.map → icons-DX_cScBq.cjs.map} +1 -1
  178. package/dist/icons.cjs +1 -1
  179. package/dist/illustrations/index.d.ts +0 -1
  180. package/dist/illustrations.cjs +1 -1
  181. package/dist/illustrations.js +2 -2
  182. package/dist/index.cjs +1 -1
  183. package/dist/index.js +50 -49
  184. package/dist/{inputs-CyDoEfL3.js → inputs-BZxorlLv.js} +5 -5
  185. package/dist/{inputs-CyDoEfL3.js.map → inputs-BZxorlLv.js.map} +1 -1
  186. package/dist/{inputs-BpdfT9Hp.cjs → inputs-BiZXyZSE.cjs} +2 -2
  187. package/dist/{inputs-BpdfT9Hp.cjs.map → inputs-BiZXyZSE.cjs.map} +1 -1
  188. package/dist/inputs.cjs +1 -1
  189. package/dist/inputs.js +4 -4
  190. package/dist/{javascript-DFYAIwfO.cjs → javascript-BgwyrBZi.cjs} +1 -1
  191. package/dist/{javascript-DFYAIwfO.cjs.map → javascript-BgwyrBZi.cjs.map} +1 -1
  192. package/dist/{javascript-B5hepBcv.js → javascript-BltQGQAn.js} +1 -1
  193. package/dist/{javascript-B5hepBcv.js.map → javascript-BltQGQAn.js.map} +1 -1
  194. package/dist/{json-BTHMevf2.cjs → json-DWmLrT_r.cjs} +1 -1
  195. package/dist/{json-BTHMevf2.cjs.map → json-DWmLrT_r.cjs.map} +1 -1
  196. package/dist/{json-DTBnkegk.js → json-DbCISZXi.js} +1 -1
  197. package/dist/{json-DTBnkegk.js.map → json-DbCISZXi.js.map} +1 -1
  198. package/dist/{layout-BT7KtJVE.js → layout-CnEOTJnJ.js} +6 -6
  199. package/dist/{layout-BT7KtJVE.js.map → layout-CnEOTJnJ.js.map} +1 -1
  200. package/dist/{layout-C0WsXFln.cjs → layout-Ct6ViwDQ.cjs} +2 -2
  201. package/dist/{layout-C0WsXFln.cjs.map → layout-Ct6ViwDQ.cjs.map} +1 -1
  202. package/dist/layout.cjs +1 -1
  203. package/dist/layout.js +5 -5
  204. package/dist/{licensing-sRHTvX0B.cjs → licensing-hMT26Vnv.cjs} +2 -2
  205. package/dist/{licensing-sRHTvX0B.cjs.map → licensing-hMT26Vnv.cjs.map} +1 -1
  206. package/dist/{locale-JX_gX03k.js → locale-BNyzqXAU.js} +1 -1
  207. package/dist/{locale-JX_gX03k.js.map → locale-BNyzqXAU.js.map} +1 -1
  208. package/dist/{locale-CJWWjFm-.cjs → locale-C5ik0c3d.cjs} +2 -2
  209. package/dist/{locale-CJWWjFm-.cjs.map → locale-C5ik0c3d.cjs.map} +1 -1
  210. package/dist/{media-CnjA4Ruo.cjs → media-DZaGKh5V.cjs} +2 -2
  211. package/dist/{media-CnjA4Ruo.cjs.map → media-DZaGKh5V.cjs.map} +1 -1
  212. package/dist/{media-CM-uEUrV.js → media-DxnELIZO.js} +3 -3
  213. package/dist/{media-CM-uEUrV.js.map → media-DxnELIZO.js.map} +1 -1
  214. package/dist/media.cjs +1 -1
  215. package/dist/media.js +2 -2
  216. package/dist/{overlays-NwVsvmlb.js → overlays-BfIrSHDo.js} +9 -9
  217. package/dist/{overlays-NwVsvmlb.js.map → overlays-BfIrSHDo.js.map} +1 -1
  218. package/dist/{overlays-BpDz9ddf.cjs → overlays-WsQqxqk1.cjs} +2 -2
  219. package/dist/{overlays-BpDz9ddf.cjs.map → overlays-WsQqxqk1.cjs.map} +1 -1
  220. package/dist/overlays.cjs +1 -1
  221. package/dist/overlays.js +3 -3
  222. package/dist/{php-ClxZCTCr.cjs → php-CssmZWrI.cjs} +1 -1
  223. package/dist/{php-ClxZCTCr.cjs.map → php-CssmZWrI.cjs.map} +1 -1
  224. package/dist/{php-DwgDg57J.js → php-dSXzrC_Z.js} +1 -1
  225. package/dist/{php-DwgDg57J.js.map → php-dSXzrC_Z.js.map} +1 -1
  226. package/dist/primitives.cjs +1 -1
  227. package/dist/style-runtime.cjs +1 -1
  228. package/dist/style-runtime.js +1 -1
  229. package/dist/styles.css +1 -1
  230. package/dist/{theme-yQQAPTkp.cjs → theme-DltOEniv.cjs} +2 -2
  231. package/dist/{theme-yQQAPTkp.cjs.map → theme-DltOEniv.cjs.map} +1 -1
  232. package/dist/theme.cjs +1 -1
  233. package/dist/{typescript-MSi2XC0t.js → typescript-CxKdKTKz.js} +1 -1
  234. package/dist/{typescript-MSi2XC0t.js.map → typescript-CxKdKTKz.js.map} +1 -1
  235. package/dist/{typescript-C8NJZXwD.cjs → typescript-DeaMWtYF.cjs} +1 -1
  236. package/dist/{typescript-C8NJZXwD.cjs.map → typescript-DeaMWtYF.cjs.map} +1 -1
  237. package/dist/typography-CAW17MDj.js +31 -0
  238. package/dist/typography-CAW17MDj.js.map +1 -0
  239. package/dist/typography-vZwd5E5h.cjs +2 -0
  240. package/dist/typography-vZwd5E5h.cjs.map +1 -0
  241. package/dist/typography.cjs +1 -1
  242. package/dist/typography.js +4 -3
  243. package/dist/{useGhostText-BFaUUKid.cjs → useGhostText-Nw9XCpWS.cjs} +2 -2
  244. package/dist/{useGhostText-BFaUUKid.cjs.map → useGhostText-Nw9XCpWS.cjs.map} +1 -1
  245. package/dist/{useInteractionEffect-BH2dgQla.cjs → useInteractionEffect-Gs9HBi2T.cjs} +2 -2
  246. package/dist/{useInteractionEffect-BH2dgQla.cjs.map → useInteractionEffect-Gs9HBi2T.cjs.map} +1 -1
  247. package/dist/{useKeyboardNav-CtGPfQX7.cjs → useKeyboardNav-DDN-oeqd.cjs} +2 -2
  248. package/dist/{useKeyboardNav-CtGPfQX7.cjs.map → useKeyboardNav-DDN-oeqd.cjs.map} +1 -1
  249. package/dist/utils.cjs +1 -1
  250. package/dist/{xml-CnKYdLjT.js → xml-BPoVPJlJ.js} +1 -1
  251. package/dist/{xml-CnKYdLjT.js.map → xml-BPoVPJlJ.js.map} +1 -1
  252. package/dist/{xml-jypnnWFn.cjs → xml-BUuYcpx2.cjs} +1 -1
  253. package/dist/{xml-jypnnWFn.cjs.map → xml-BUuYcpx2.cjs.map} +1 -1
  254. package/package.json +1 -1
  255. package/dist/MConflictIllustration-CfYeZVmf.cjs +0 -2
  256. package/dist/MConflictIllustration-CfYeZVmf.cjs.map +0 -1
  257. package/dist/MConflictIllustration-Ctggjn7z.js.map +0 -1
  258. package/dist/data-0_KXny56.cjs +0 -2
  259. package/dist/data-0_KXny56.cjs.map +0 -1
  260. package/dist/data-9Ej9tlwW.js +0 -463
  261. package/dist/data-9Ej9tlwW.js.map +0 -1
  262. package/dist/dropdowns-BJ8s18h2.js.map +0 -1
  263. package/dist/dropdowns-BLd4lyr6.cjs.map +0 -1
  264. package/dist/illustrations/scenes/MCookieConsentIllustration.d.ts +0 -2
  265. package/dist/typography-BHhyTO1V.js +0 -42
  266. package/dist/typography-BHhyTO1V.js.map +0 -1
  267. package/dist/typography-Qb1U4eiY.cjs +0 -2
  268. package/dist/typography-Qb1U4eiY.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"overlays-NwVsvmlb.js","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx","../src/components/overlays/MSheet/MSheet.tsx","../src/components/overlays/MCommandPalette/MCommandPalette.tsx","../src/components/overlays/MDrawer/MDrawer.tsx","../src/components/overlays/MPopconfirm/MPopconfirm.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useId, useRef, useState} from 'react'\nimport type {PointerEvent as ReactPointerEvent, MouseEvent} from 'react'\nimport type {MSheetProps, MSheetSize} from './MSheet.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MPortal} from '../../primitives'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MSheet.css'\n\nconst EXIT_DURATION = 540\nconst CLOSE_DRAG_THRESHOLD = 72\n\nconst SHEET_HEIGHTS: Record<MSheetSize, string> = {\n sm: '32vh',\n md: '52vh',\n lg: '72vh',\n full: '92vh',\n}\n\nexport function MSheet({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n style,\n ...rest\n}: MSheetProps) {\n const titleId = useId()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const [dragOffset, setDragOffset] = useState(0)\n\n const dragStateRef = useRef<{pointerId: number; startY: number} | null>(null)\n const dragOffsetRef = useRef(0)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = window.setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => window.clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n function handleBackdropClick(event: MouseEvent<HTMLDivElement>) {\n if (closeOnBackdrop && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n function handleHandlePointerDown(event: ReactPointerEvent<HTMLButtonElement>) {\n event.preventDefault()\n event.currentTarget.setPointerCapture(event.pointerId)\n\n dragStateRef.current = {\n pointerId: event.pointerId,\n startY: event.clientY,\n }\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n function handleHandlePointerMove(event: ReactPointerEvent<HTMLButtonElement>) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== event.pointerId) {\n return\n }\n\n const nextOffset = Math.max(event.clientY - dragState.startY, 0)\n dragOffsetRef.current = nextOffset\n setDragOffset(nextOffset)\n }\n\n function finishDrag(pointerId: number) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== pointerId) {\n return\n }\n\n dragStateRef.current = null\n\n if (dragOffsetRef.current > CLOSE_DRAG_THRESHOLD) {\n setDragOffset(0)\n dragOffsetRef.current = 0\n onClose()\n return\n }\n\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n if (!mounted) return null\n\n const resolvedHeight = SHEET_HEIGHTS[size]\n const transformStyle = dragOffset > 0 ? `translateY(${dragOffset}px)` : undefined\n\n return (\n <MPortal>\n <div\n className={cn('mineral-backdrop', 'sheet-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className=\"sheet-shell\" style={{transform: transformStyle}}>\n <MCard\n className={cn('sheet', `size-${size}`, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n style={{\n ...style,\n height: size === 'full' ? resolvedHeight : undefined,\n maxHeight: resolvedHeight,\n }}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"sheet-grabber\"\n onPointerDown={handleHandlePointerDown}\n onPointerMove={handleHandlePointerMove}\n onPointerUp={(event) => finishDrag(event.pointerId)}\n onPointerCancel={(event) => finishDrag(event.pointerId)}\n aria-label=\"Drag down to close\"\n >\n <span className=\"sheet-handle\" />\n </button>\n\n {(title || description) && (\n <MCardHeader className=\"sheet-header\">\n <div className=\"sheet-copy\">\n {title && (\n <div id={titleId} className=\"sheet-title\">\n {title}\n </div>\n )}\n {description && <div className=\"sheet-description\">{description}</div>}\n </div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"sheet-close\"\n >\n <MCloseIcon />\n </MButton>\n </MCardHeader>\n )}\n\n <MCardBody className=\"sheet-body\">{children}</MCardBody>\n\n {footer && <MCardFooter className=\"sheet-footer\">{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {KeyboardEvent as ReactKeyboardEvent, ReactNode} from 'react'\nimport type {MCommandPaletteItem, MCommandPaletteProps} from './MCommandPalette.types'\nimport {MButton} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MInline, MSimpleGrid, MStack} from '../../layout'\nimport {MSheet} from '../MSheet'\nimport {MTooltip} from '../MTooltip'\nimport {MBadge} from '../../feedback'\nimport {MLinkIcon, MSearchIcon} from '../../../icons'\nimport {MKbd, MHeading, MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport './MCommandPalette.css'\n\nfunction normalizeText(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value.toString()\n }\n\n return ''\n}\n\nfunction matchesShortcut(event: KeyboardEvent, shortcut: string) {\n const normalized = shortcut.toLowerCase().replace(/\\s+/g, '')\n const parts = normalized.split('+')\n const key = parts[parts.length - 1]\n\n if (!key) {\n return false\n }\n\n const expectsCtrl = parts.includes('ctrl')\n const expectsMeta = parts.includes('meta') || parts.includes('cmd')\n const expectsShift = parts.includes('shift')\n const expectsAlt = parts.includes('alt') || parts.includes('option')\n\n return (\n event.key.toLowerCase() === key &&\n !!expectsCtrl === event.ctrlKey &&\n !!expectsMeta === event.metaKey &&\n !!expectsShift === event.shiftKey &&\n !!expectsAlt === event.altKey\n )\n}\n\nfunction filterItems(items: MCommandPaletteItem[], query: string) {\n if (!query.trim()) {\n return items\n }\n\n const normalizedQuery = query.trim().toLowerCase()\n\n return items.filter((item) =>\n [\n normalizeText(item.title),\n normalizeText(item.description),\n normalizeText(item.group),\n normalizeText(item.actionLabel),\n ...(item.keywords ?? []),\n ].some((value) => value.toLowerCase().includes(normalizedQuery))\n )\n}\n\nfunction groupItems(items: MCommandPaletteItem[]) {\n const groups = new Map<string, {label: ReactNode; items: MCommandPaletteItem[]}>()\n\n items.forEach((item) => {\n const key = normalizeText(item.group) || 'General'\n const current = groups.get(key) ?? {label: item.group ?? 'General', items: []}\n current.items.push(item)\n groups.set(key, current)\n })\n\n return Array.from(groups.values())\n}\n\nexport function MCommandPalette({\n items,\n featuredItems = [],\n open,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n title = 'Command palette',\n description,\n trigger,\n shortcut = 'ctrl+k',\n placeholder = 'Search modules, records and actions...',\n emptyLabel = 'No matching results.',\n footer,\n size = 'lg',\n closeOnSelect = true,\n}: MCommandPaletteProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const [query, setQuery] = useState('')\n const [activeItemId, setActiveItemId] = useState<string | null>(null)\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : internalOpen\n const inputRef = useRef<HTMLInputElement>(null)\n\n function setOpenState(nextOpen: boolean) {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n }\n\n const filteredItems = useMemo(() => filterItems(items, query), [items, query])\n const groupedItems = useMemo(() => groupItems(filteredItems), [filteredItems])\n const flattenedItems = useMemo(() => groupedItems.flatMap((group) => group.items), [groupedItems])\n const featured = useMemo(() => (featuredItems.length ? featuredItems : items.slice(0, 6)), [featuredItems, items])\n\n function executeItem(item: MCommandPaletteItem) {\n item.onSelect?.()\n onSelect?.(item)\n\n if (!item.onSelect && item.href) {\n window.location.assign(item.href)\n }\n\n if (closeOnSelect) {\n setOpenState(false)\n setQuery('')\n setActiveItemId(null)\n }\n }\n\n const {activeIndex, setActiveIndex, resetIndex, onKeyDown} = useKeyboardNav({\n itemCount: flattenedItems.length,\n isOpen,\n onClose: () => setOpenState(false),\n onSelect: (index) => {\n const item = flattenedItems[index]\n\n if (item) {\n executeItem(item)\n }\n },\n })\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (matchesShortcut(event, shortcut)) {\n event.preventDefault()\n setOpenState(true)\n }\n }\n\n window.addEventListener('keydown', handleKeydown)\n\n return () => {\n window.removeEventListener('keydown', handleKeydown)\n }\n }, [shortcut])\n\n useEffect(() => {\n if (!isOpen) {\n resetIndex()\n setActiveItemId(null)\n return\n }\n\n queueMicrotask(() => inputRef.current?.focus())\n }, [isOpen, resetIndex])\n\n useEffect(() => {\n if (activeIndex < 0 || activeIndex >= flattenedItems.length) {\n setActiveItemId(null)\n return\n }\n\n setActiveItemId(flattenedItems[activeIndex]?.id ?? null)\n }, [activeIndex, flattenedItems])\n\n function handleSearchKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n onKeyDown(event)\n }\n\n return (\n <>\n {trigger ?? (\n <MButton\n variant={'filled'}\n size={'sm'}\n color={'primary'}\n iconOnly\n startIcon={<MSearchIcon />}\n aria-label={typeof title === 'string' ? title : 'Open command palette'}\n onClick={() => setOpenState(true)}\n />\n )}\n\n <MSheet\n open={isOpen}\n onClose={() => setOpenState(false)}\n title={title}\n description={description}\n size={size}\n footer={footer}\n >\n <div className=\"command-palette-body\">\n <div className=\"command-palette-search\">\n <MInputSearch\n ref={inputRef}\n value={query}\n onChange={(event) => {\n setQuery(event.target.value)\n setActiveIndex(-1)\n }}\n onKeyDown={handleSearchKeyDown}\n placeholder={placeholder}\n clearable\n fullWidth\n />\n </div>\n\n <div className=\"command-palette-grid\">\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Featured</MHeading>\n <MText size={'sm'} tone={'muted'}>\n Quick launch for the most frequent dashboard actions.\n </MText>\n </MCardHeader>\n <MCardBody>\n <MSimpleGrid columns={4}>\n {featured.map((item) => {\n const label = item.actionLabel ?? item.title\n const ariaLabel = typeof label === 'string' ? label : normalizeText(label)\n\n return (\n <MTooltip key={item.id} content={label}>\n <MButton\n variant={'ghost'}\n color={'primary'}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n startIcon={item.icon ?? <MLinkIcon />}\n iconOnly\n aria-label={ariaLabel || undefined}\n onClick={() => executeItem(item)}\n />\n </MTooltip>\n )\n })}\n </MSimpleGrid>\n </MCardBody>\n </MCard>\n\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Results</MHeading>\n <MInline align={'center'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {flattenedItems.length} ready\n </MText>\n <MKbd>{shortcut.toUpperCase()}</MKbd>\n </MInline>\n </MCardHeader>\n <MCardBody>\n {groupedItems.length ? (\n <MStack padding={'xs'} className=\"command-palette-results\">\n {groupedItems.map((group) => (\n <MStack key={normalizeText(group.label) || 'general'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {group.label}\n </MText>\n {group.items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={cn(\n 'command-palette-item',\n activeItemId === item.id && 'active'\n )}\n onMouseEnter={() => setActiveItemId(item.id)}\n onClick={() => executeItem(item)}\n >\n <span className=\"command-palette-item-icon\">\n {item.icon ?? <MLinkIcon />}\n </span>\n <span className=\"command-palette-item-copy\">\n <span className=\"command-palette-item-title\">\n {item.title}\n </span>\n {item.description && (\n <span className=\"command-palette-item-description\">\n {item.description}\n </span>\n )}\n </span>\n {item.badge && (\n <span className=\"command-palette-item-badge\">\n <MBadge color={'primary'} size={'sm'}>\n {item.badge}\n </MBadge>\n </span>\n )}\n </button>\n ))}\n </MStack>\n ))}\n </MStack>\n ) : (\n <MText tone={'muted'}>{emptyLabel}</MText>\n )}\n </MCardBody>\n </MCard>\n </div>\n </div>\n </MSheet>\n </>\n )\n}\n","import {Children, isValidElement, useEffect, useState, useRef} from 'react'\nimport type {MouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MDrawerProps, MDrawerSectionProps} from './MDrawer.types'\nimport {MPortal} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDrawer.css'\n\nconst EXIT_DURATION = 600\n\ntype DrawerSlotElement = ReactElement<MDrawerSectionProps>\n\nfunction isDrawerHeader(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerHeader\n}\n\nfunction isDrawerBody(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerBody\n}\n\nfunction isDrawerFooter(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerFooter\n}\n\nexport function MDrawerHeader({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerHeader as any).__drawerHeader = true\n\nexport function MDrawerBody({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerBody as any).__drawerBody = true\n\nexport function MDrawerFooter({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerFooter as any).__drawerFooter = true\n\nexport function MDrawer({\n open,\n onClose,\n side = 'right',\n size = 'md',\n overlay = true,\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MDrawerProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [open, closeOnEscape, onClose])\n\n useEffect(() => {\n if (!mounted) return\n\n const prev = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = prev\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (e: MouseEvent<HTMLDivElement>) => {\n if (closeOnBackdrop && e.target === e.currentTarget) onClose()\n }\n\n let header: ReactNode = null\n let headerProps: MDrawerSectionProps | null = null\n let bodyProps: MDrawerSectionProps | null = null\n let footer: ReactNode = null\n let footerProps: MDrawerSectionProps | null = null\n const body: ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isDrawerHeader(child)) {\n header = child.props.children\n headerProps = child.props\n return\n }\n\n if (isDrawerBody(child)) {\n bodyProps = child.props\n body.push(child.props.children)\n return\n }\n\n if (isDrawerFooter(child)) {\n footer = child.props.children\n footerProps = child.props\n return\n }\n\n body.push(child)\n })\n\n const headerSection = headerProps ?? ({children: undefined} as MDrawerSectionProps)\n const bodySection = bodyProps ?? ({children: undefined} as MDrawerSectionProps)\n const footerSection = footerProps ?? ({children: undefined} as MDrawerSectionProps)\n const {\n children: _headerChildren,\n className: headerClassName,\n bordered: headerBordered = false,\n ...headerRest\n } = headerSection\n const {children: _bodyChildren, className: bodyClassName, ...bodyRest} = bodySection\n const {\n children: _footerChildren,\n className: footerClassName,\n bordered: footerBordered = false,\n ...footerRest\n } = footerSection\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'drawer-backdrop', !overlay && 'no-overlay', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={cn('drawer', side, size, className)} role=\"dialog\" aria-modal=\"true\" {...rest}>\n {header && (\n <div\n {...headerRest}\n className={cn('drawer-header', headerBordered && 'bordered', headerClassName)}\n >\n <div className=\"drawer-title\">{header}</div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )}\n <div {...bodyRest} className={cn('drawer-body', bodyClassName)}>\n {body}\n </div>\n {footer && (\n <div\n {...footerRest}\n className={cn('drawer-footer', footerBordered && 'bordered', footerClassName)}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useCallback} from 'react'\nimport type {MPopconfirmProps} from './MPopconfirm.types'\nimport {MPopover} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './MPopconfirm.css'\n\nexport function MPopconfirm({\n title,\n description,\n onConfirm,\n onCancel,\n confirmText = 'Yes',\n cancelText = 'No',\n color = 'warning',\n icon,\n placement = 'top-start',\n open,\n onOpenChange,\n anchorRef,\n className,\n}: MPopconfirmProps) {\n const handleCancel = useCallback(() => {\n onOpenChange(false)\n onCancel?.()\n }, [onOpenChange, onCancel])\n\n const handleConfirm = useCallback(() => {\n onOpenChange(false)\n onConfirm()\n }, [onOpenChange, onConfirm])\n\n return (\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={handleCancel}\n placement={placement}\n className={cn('popconfirm', `color-${color}`, className)}\n >\n <div className=\"body\">\n {icon && <div className=\"icon\">{icon}</div>}\n <div className=\"content\">\n <div className=\"title\">{title}</div>\n {description && <div className=\"description\">{description}</div>}\n </div>\n </div>\n <div className=\"actions\">\n <MButton variant=\"ghost\" size=\"sm\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </MButton>\n <MButton variant=\"ghost\" size=\"sm\" color={color} onClick={handleConfirm}>\n {confirmText}\n </MButton>\n </div>\n </MPopover>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,IAAM,IAAgB;AAGtB,SAAgB,EAAO,EACnB,SACA,YACA,UACA,gBACA,WACA,UAAO,MACP,qBAAkB,IAClB,mBAAgB,IAChB,cACA,aACA,GAAG,KACS;CACZ,IAAM,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,IAAc,EAAuB,KAAK;AAmDhD,QAhDA,QAAgB;AACZ,EAAI,MACA,EAAW,GAAK,EAChB,EAAW,GAAM;IAEtB,CAAC,EAAK,CAAC,EAGV,QAAgB;AACZ,MAAI,CAAC,KAAQ,GAAS;AAClB,KAAW,GAAK;GAChB,IAAM,IAAQ,iBAAiB;AAE3B,IADA,EAAW,GAAM,EACjB,EAAW,GAAM;MAClB,EAAc;AACjB,gBAAa,aAAa,EAAM;;IAErC,CAAC,GAAM,EAAQ,CAAC,EAEnB,QAAgB;AACZ,MAAI,CAAC,KAAQ,CAAC,EAAe;EAE7B,IAAM,KAAiB,MAAyB;AAC5C,GAAI,EAAM,QAAQ,YAAU,GAAS;;AAIzC,SADA,SAAS,iBAAiB,WAAW,EAAc,QACtC,SAAS,oBAAoB,WAAW,EAAc;IACpE;EAAC;EAAe;EAAS;EAAK,CAAC,EAElC,QAAgB;AACZ,MAAI,CAAC,EAAS;EAEd,IAAM,IAAmB,SAAS,KAAK,MAAM;AAG7C,SAFA,SAAS,KAAK,MAAM,WAAW,gBAElB;AACT,YAAS,KAAK,MAAM,WAAW;;IAEpC,CAAC,EAAQ,CAAC,EAER,IAQD,kBAAC,GAAD,EAAA,UACI,kBAAC,OAAD;EACI,KAAK;EACL,WAAW,EAAG,oBAAoB,kBAAkB,KAAW,UAAU;EACzE,cAViB,MAAsC;AAC1D,QACD,EAAM,WAAW,EAAM,iBAAe,GAAS;;YAU3C,kBAAC,OAAD;GAAK,WAAW;aACZ,kBAAC,GAAD;IACI,WAAW,EAAG,SAAS,GAAM,EAAU;IACvC,MAAM;IACN,cAAY;IACZ,mBAAiB,IAAQ,wBAAwB,KAAA;IACjD,GAAI;cALR;MAOM,KAAS,MACP,kBAAC,GAAD,EAAA,UAAA,CACK,KACG,kBAAC,OAAD;MAAK,IAAI;MAAuB,WAAW;gBACtC;MACC,CAAA,EAET,KAAe,kBAAC,OAAD;MAAK,WAAW;gBAAsB;MAAkB,CAAA,CAC9D,EAAA,CAAA;KAElB,kBAAC,GAAD,EAAY,aAAqB,CAAA;KAChC,KAAU,kBAAC,GAAD,EAAA,UAAc,GAAqB,CAAA;KAC1C;;GACN,CAAA;EACJ,CAAA,EACA,CAAA,GArCO;;;;AC5DzB,IAAM,IAAgB,KAChB,IAAuB,IAEvB,IAA4C;CAC9C,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;CACT;AAED,SAAgB,EAAO,EACnB,SACA,YACA,UACA,gBACA,WACA,UAAO,MACP,qBAAkB,IAClB,mBAAgB,IAChB,cACA,aACA,UACA,GAAG,KACS;CACZ,IAAM,IAAU,GAAO,EACjB,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAY,KAAiB,EAAS,EAAE,EAEzC,IAAe,EAAmD,KAAK,EACvE,IAAgB,EAAO,EAAE;AAiC/B,CA/BA,QAAgB;AACZ,EAAI,MACA,EAAW,GAAK,EAChB,EAAW,GAAM,EACjB,EAAc,EAAE,EAChB,EAAc,UAAU;IAE7B,CAAC,EAAK,CAAC,EAEV,QAAgB;AACZ,MAAI,CAAC,KAAQ,GAAS;AAClB,KAAW,GAAK;GAChB,IAAM,IAAQ,OAAO,iBAAiB;AAElC,IADA,EAAW,GAAM,EACjB,EAAW,GAAM;MAClB,EAAc;AACjB,gBAAa,OAAO,aAAa,EAAM;;IAE5C,CAAC,GAAM,EAAQ,CAAC,EAEnB,QAAgB;AACZ,MAAI,CAAC,EAAS;EAEd,IAAM,IAAmB,SAAS,KAAK,MAAM;AAG7C,SAFA,SAAS,KAAK,MAAM,WAAW,gBAElB;AACT,YAAS,KAAK,MAAM,WAAW;;IAEpC,CAAC,EAAQ,CAAC,EAEb,QAAgB;AACZ,MAAI,CAAC,KAAQ,CAAC,EAAe;EAE7B,IAAM,KAAiB,MAAyB;AAC5C,GAAI,EAAM,QAAQ,YAAU,GAAS;;AAIzC,SADA,SAAS,iBAAiB,WAAW,EAAc,QACtC,SAAS,oBAAoB,WAAW,EAAc;IACpE;EAAC;EAAe;EAAS;EAAK,CAAC;CAElC,SAAS,EAAoB,GAAmC;AAC5D,EAAI,KAAmB,EAAM,WAAW,EAAM,iBAC1C,GAAS;;CAIjB,SAAS,GAAwB,GAA6C;AAS1E,EARA,EAAM,gBAAgB,EACtB,EAAM,cAAc,kBAAkB,EAAM,UAAU,EAEtD,EAAa,UAAU;GACnB,WAAW,EAAM;GACjB,QAAQ,EAAM;GACjB,EACD,EAAc,EAAE,EAChB,EAAc,UAAU;;CAG5B,SAAS,EAAwB,GAA6C;EAC1E,IAAM,IAAY,EAAa;AAC/B,MAAI,CAAC,KAAa,EAAU,cAAc,EAAM,UAC5C;EAGJ,IAAM,IAAa,KAAK,IAAI,EAAM,UAAU,EAAU,QAAQ,EAAE;AAEhE,EADA,EAAc,UAAU,GACxB,EAAc,EAAW;;CAG7B,SAAS,EAAW,GAAmB;EACnC,IAAM,IAAY,EAAa;AAC3B,SAAC,KAAa,EAAU,cAAc,IAM1C;OAFA,EAAa,UAAU,MAEnB,EAAc,UAAU,GAAsB;AAG9C,IAFA,EAAc,EAAE,EAChB,EAAc,UAAU,GACxB,GAAS;AACT;;AAIJ,GADA,EAAc,EAAE,EAChB,EAAc,UAAU;;;AAG5B,KAAI,CAAC,EAAS,QAAO;CAErB,IAAM,IAAiB,EAAc,IAC/B,IAAiB,IAAa,IAAI,cAAc,EAAW,OAAO,KAAA;AAExE,QACI,kBAAC,GAAD,EAAA,UACI,kBAAC,OAAD;EACI,WAAW,EAAG,oBAAoB,kBAAkB,KAAW,UAAU;EACzE,aAAa;YAEb,kBAAC,OAAD;GAAK,WAAU;GAAc,OAAO,EAAC,WAAW,GAAe;aAC3D,kBAAC,GAAD;IACI,WAAW,EAAG,SAAS,QAAQ,KAAQ,EAAU;IACjD,MAAK;IACL,cAAW;IACX,mBAAiB,IAAQ,IAAU,KAAA;IACnC,OAAO;KACH,GAAG;KACH,QAAQ,MAAS,SAAS,IAAiB,KAAA;KAC3C,WAAW;KACd;IACD,GAAI;cAVR;KAYI,kBAAC,UAAD;MACI,MAAK;MACL,WAAU;MACV,eAAe;MACf,eAAe;MACf,cAAc,MAAU,EAAW,EAAM,UAAU;MACnD,kBAAkB,MAAU,EAAW,EAAM,UAAU;MACvD,cAAW;gBAEX,kBAAC,QAAD,EAAM,WAAU,gBAAiB,CAAA;MAC5B,CAAA;MAEP,KAAS,MACP,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACI,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACK,KACG,kBAAC,OAAD;QAAK,IAAI;QAAS,WAAU;kBACvB;QACC,CAAA,EAET,KAAe,kBAAC,OAAD;QAAK,WAAU;kBAAqB;QAAkB,CAAA,CACpE;UACN,kBAAC,GAAD;OACI,SAAQ;OACR,OAAM;OACN,UAAA;OACA,MAAK;OACL,SAAS;OACT,cAAW;OACX,WAAU;iBAEV,kBAAC,GAAD,EAAc,CAAA;OACR,CAAA,CACA;;KAGlB,kBAAC,GAAD;MAAW,WAAU;MAAc;MAAqB,CAAA;KAEvD,KAAU,kBAAC,GAAD;MAAa,WAAU;gBAAgB;MAAqB,CAAA;KACnE;;GACN,CAAA;EACJ,CAAA,EACA,CAAA;;;;ACtLlB,SAAS,EAAc,GAAkB;AAKrC,QAJI,OAAO,KAAU,YAAY,OAAO,KAAU,WACvC,EAAM,UAAU,GAGpB;;AAGX,SAAS,GAAgB,GAAsB,GAAkB;CAE7D,IAAM,IADa,EAAS,aAAa,CAAC,QAAQ,QAAQ,GAAG,CACpC,MAAM,IAAI,EAC7B,IAAM,EAAM,EAAM,SAAS;AAEjC,KAAI,CAAC,EACD,QAAO;CAGX,IAAM,IAAc,EAAM,SAAS,OAAO,EACpC,IAAc,EAAM,SAAS,OAAO,IAAI,EAAM,SAAS,MAAM,EAC7D,IAAe,EAAM,SAAS,QAAQ,EACtC,IAAa,EAAM,SAAS,MAAM,IAAI,EAAM,SAAS,SAAS;AAEpE,QACI,EAAM,IAAI,aAAa,KAAK,KAC5B,CAAC,CAAC,MAAgB,EAAM,WACxB,CAAC,CAAC,MAAgB,EAAM,WACxB,CAAC,CAAC,MAAiB,EAAM,YACzB,CAAC,CAAC,MAAe,EAAM;;AAI/B,SAAS,EAAY,GAA8B,GAAe;AAC9D,KAAI,CAAC,EAAM,MAAM,CACb,QAAO;CAGX,IAAM,IAAkB,EAAM,MAAM,CAAC,aAAa;AAElD,QAAO,EAAM,QAAQ,MACjB;EACI,EAAc,EAAK,MAAM;EACzB,EAAc,EAAK,YAAY;EAC/B,EAAc,EAAK,MAAM;EACzB,EAAc,EAAK,YAAY;EAC/B,GAAI,EAAK,YAAY,EAAE;EAC1B,CAAC,MAAM,MAAU,EAAM,aAAa,CAAC,SAAS,EAAgB,CAAC,CACnE;;AAGL,SAAS,EAAW,GAA8B;CAC9C,IAAM,oBAAS,IAAI,KAA+D;AASlF,QAPA,EAAM,SAAS,MAAS;EACpB,IAAM,IAAM,EAAc,EAAK,MAAM,IAAI,WACnC,IAAU,EAAO,IAAI,EAAI,IAAI;GAAC,OAAO,EAAK,SAAS;GAAW,OAAO,EAAE;GAAC;AAE9E,EADA,EAAQ,MAAM,KAAK,EAAK,EACxB,EAAO,IAAI,GAAK,EAAQ;GAC1B,EAEK,MAAM,KAAK,EAAO,QAAQ,CAAC;;AAGtC,SAAgB,EAAgB,EAC5B,UACA,mBAAgB,EAAE,EAClB,SACA,iBAAc,IACd,iBACA,aACA,WAAQ,mBACR,gBACA,YACA,cAAW,UACX,iBAAc,0CACd,gBAAa,wBACb,WACA,UAAO,MACP,mBAAgB,MACK;CACrB,IAAM,CAAC,IAAc,MAAmB,EAAS,EAAY,EACvD,CAAC,GAAO,KAAY,EAAS,GAAG,EAChC,CAAC,GAAc,KAAmB,EAAwB,KAAK,EAC/D,IAAe,MAAS,KAAA,GACxB,IAAS,IAAe,IAAO,IAC/B,KAAW,EAAyB,KAAK;CAE/C,SAAS,EAAa,GAAmB;AAKrC,EAJK,KACD,GAAgB,EAAS,EAG7B,IAAe,EAAS;;CAG5B,IAAM,KAAgB,QAAc,EAAY,GAAO,EAAM,EAAE,CAAC,GAAO,EAAM,CAAC,EACxE,IAAe,QAAc,EAAW,GAAc,EAAE,CAAC,GAAc,CAAC,EACxE,IAAiB,QAAc,EAAa,SAAS,MAAU,EAAM,MAAM,EAAE,CAAC,EAAa,CAAC,EAC5F,KAAW,QAAe,EAAc,SAAS,IAAgB,EAAM,MAAM,GAAG,EAAE,EAAG,CAAC,GAAe,EAAM,CAAC;CAElH,SAAS,EAAY,GAA2B;AAQ5C,EAPA,EAAK,YAAY,EACjB,IAAW,EAAK,EAEZ,CAAC,EAAK,YAAY,EAAK,QACvB,OAAO,SAAS,OAAO,EAAK,KAAK,EAGjC,MACA,EAAa,GAAM,EACnB,EAAS,GAAG,EACZ,EAAgB,KAAK;;CAI7B,IAAM,EAAC,gBAAa,oBAAgB,gBAAY,kBAAa,EAAe;EACxE,WAAW,EAAe;EAC1B;EACA,eAAe,EAAa,GAAM;EAClC,WAAW,MAAU;GACjB,IAAM,IAAO,EAAe;AAE5B,GAAI,KACA,EAAY,EAAK;;EAG5B,CAAC;AA2BF,CAzBA,QAAgB;EACZ,IAAM,KAAiB,MAAyB;AAC5C,GAAI,GAAgB,GAAO,EAAS,KAChC,EAAM,gBAAgB,EACtB,EAAa,GAAK;;AAM1B,SAFA,OAAO,iBAAiB,WAAW,EAAc,QAEpC;AACT,UAAO,oBAAoB,WAAW,EAAc;;IAEzD,CAAC,EAAS,CAAC,EAEd,QAAgB;AACZ,MAAI,CAAC,GAAQ;AAET,GADA,IAAY,EACZ,EAAgB,KAAK;AACrB;;AAGJ,uBAAqB,GAAS,SAAS,OAAO,CAAC;IAChD,CAAC,GAAQ,GAAW,CAAC,EAExB,QAAgB;AACZ,MAAI,IAAc,KAAK,KAAe,EAAe,QAAQ;AACzD,KAAgB,KAAK;AACrB;;AAGJ,IAAgB,EAAe,IAAc,MAAM,KAAK;IACzD,CAAC,GAAa,EAAe,CAAC;CAEjC,SAAS,GAAoB,GAA6C;AACtE,KAAU,EAAM;;AAGpB,QACI,kBAAA,GAAA,EAAA,UAAA,CACK,KACG,kBAAC,GAAD;EACI,SAAS;EACT,MAAM;EACN,OAAO;EACP,UAAA;EACA,WAAW,kBAAC,GAAD,EAAe,CAAA;EAC1B,cAAY,OAAO,KAAU,WAAW,IAAQ;EAChD,eAAe,EAAa,GAAK;EACnC,CAAA,EAGN,kBAAC,GAAD;EACI,MAAM;EACN,eAAe,EAAa,GAAM;EAC3B;EACM;EACP;EACE;YAER,kBAAC,OAAD;GAAK,WAAU;aAAf,CACI,kBAAC,OAAD;IAAK,WAAU;cACX,kBAAC,GAAD;KACI,KAAK;KACL,OAAO;KACP,WAAW,MAAU;AAEjB,MADA,EAAS,EAAM,OAAO,MAAM,EAC5B,GAAe,GAAG;;KAEtB,WAAW;KACE;KACb,WAAA;KACA,WAAA;KACF,CAAA;IACA,CAAA,EAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACI,kBAAC,GAAD;KAAO,SAAS;eAAhB,CACI,kBAAC,GAAD,EAAA,UAAA,CACI,kBAAC,GAAD;MAAU,OAAO;gBAAG;MAAmB,CAAA,EACvC,kBAAC,GAAD;MAAO,MAAM;MAAM,MAAM;gBAAS;MAE1B,CAAA,CACE,EAAA,CAAA,EACd,kBAAC,GAAD,EAAA,UACI,kBAAC,GAAD;MAAa,SAAS;gBACjB,GAAS,KAAK,MAAS;OACpB,IAAM,IAAQ,EAAK,eAAe,EAAK,OACjC,IAAY,OAAO,KAAU,WAAW,IAAQ,EAAc,EAAM;AAE1E,cACI,kBAAC,GAAD;QAAwB,SAAS;kBAC7B,kBAAC,GAAD;SACI,SAAS;SACT,OAAO;SACP,WAAW,EAAK;SAChB,IAAI,EAAK;SACT,MAAM,EAAK;SACX,QAAQ,EAAK;SACb,KAAK,EAAK;SACV,WAAW,EAAK,QAAQ,kBAAC,GAAD,EAAa,CAAA;SACrC,UAAA;SACA,cAAY,KAAa,KAAA;SACzB,eAAe,EAAY,EAAK;SAClC,CAAA;QACK,EAdI,EAAK,GAcT;QAEjB;MACQ,CAAA,EACN,CAAA,CACR;QAER,kBAAC,GAAD;KAAO,SAAS;eAAhB,CACI,kBAAC,GAAD,EAAA,UAAA,CACI,kBAAC,GAAD;MAAU,OAAO;gBAAG;MAAkB,CAAA,EACtC,kBAAC,GAAD;MAAS,OAAO;MAAU,SAAS;gBAAnC,CACI,kBAAC,GAAD;OAAO,MAAM;OAAM,MAAM;iBAAzB,CACK,EAAe,QAAO,SACnB;UACR,kBAAC,GAAD,EAAA,UAAO,EAAS,aAAa,EAAQ,CAAA,CAC/B;QACA,EAAA,CAAA,EACd,kBAAC,GAAD,EAAA,UACK,EAAa,SACV,kBAAC,GAAD;MAAQ,SAAS;MAAM,WAAU;gBAC5B,EAAa,KAAK,MACf,kBAAC,GAAD;OAAsD,SAAS;iBAA/D,CACI,kBAAC,GAAD;QAAO,MAAM;QAAM,MAAM;kBACpB,EAAM;QACH,CAAA,EACP,EAAM,MAAM,KAAK,MACd,kBAAC,UAAD;QAEI,MAAK;QACL,WAAW,EACP,wBACA,MAAiB,EAAK,MAAM,SAC/B;QACD,oBAAoB,EAAgB,EAAK,GAAG;QAC5C,eAAe,EAAY,EAAK;kBARpC;SAUI,kBAAC,QAAD;UAAM,WAAU;oBACX,EAAK,QAAQ,kBAAC,GAAD,EAAa,CAAA;UACxB,CAAA;SACP,kBAAC,QAAD;UAAM,WAAU;oBAAhB,CACI,kBAAC,QAAD;WAAM,WAAU;qBACX,EAAK;WACH,CAAA,EACN,EAAK,eACF,kBAAC,QAAD;WAAM,WAAU;qBACX,EAAK;WACH,CAAA,CAER;;SACN,EAAK,SACF,kBAAC,QAAD;UAAM,WAAU;oBACZ,kBAAC,GAAD;WAAQ,OAAO;WAAW,MAAM;qBAC3B,EAAK;WACD,CAAA;UACN,CAAA;SAEN;UA7BA,EAAK,GA6BL,CACX,CACG;SArCI,EAAc,EAAM,MAAM,IAAI,UAqClC,CACX;MACG,CAAA,GAET,kBAAC,GAAD;MAAO,MAAM;gBAAU;MAAmB,CAAA,EAEtC,CAAA,CACR;OACN;MACJ;;EACD,CAAA,CACV,EAAA,CAAA;;;;ACpTX,IAAM,IAAgB;AAItB,SAAS,GAAe,GAA8C;AAClE,QAAO,EAAe,EAAM,IAAI,CAAC,CAAE,EAAM,KAAa;;AAG1D,SAAS,GAAa,GAA8C;AAChE,QAAO,EAAe,EAAM,IAAI,CAAC,CAAE,EAAM,KAAa;;AAG1D,SAAS,EAAe,GAA8C;AAClE,QAAO,EAAe,EAAM,IAAI,CAAC,CAAE,EAAM,KAAa;;AAG1D,SAAgB,EAAc,EAAC,eAAgC;AAC3D,QAAO,kBAAA,GAAA,EAAG,aAAY,CAAA;;AAEzB,EAAuB,iBAAiB;AAEzC,SAAgB,EAAY,EAAC,eAAgC;AACzD,QAAO,kBAAA,GAAA,EAAG,aAAY,CAAA;;AAEzB,EAAqB,eAAe;AAErC,SAAgB,EAAc,EAAC,eAAgC;AAC3D,QAAO,kBAAA,GAAA,EAAG,aAAY,CAAA;;AAEzB,EAAuB,iBAAiB;AAEzC,SAAgB,EAAQ,EACpB,SACA,YACA,UAAO,SACP,UAAO,MACP,aAAU,IACV,qBAAkB,IAClB,mBAAgB,IAChB,cACA,aACA,GAAG,KACU;CACb,IAAM,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,CAAC,GAAS,KAAc,EAAS,GAAM,EACvC,IAAc,EAAuB,KAAK;AAyChD,KAvCA,QAAgB;AACZ,EAAI,MACA,EAAW,GAAK,EAChB,EAAW,GAAM;IAEtB,CAAC,EAAK,CAAC,EAEV,QAAgB;AACZ,MAAI,CAAC,KAAQ,GAAS;AAClB,KAAW,GAAK;GAChB,IAAM,IAAQ,iBAAiB;AAE3B,IADA,EAAW,GAAM,EACjB,EAAW,GAAM;MAClB,EAAc;AACjB,gBAAa,aAAa,EAAM;;IAErC,CAAC,GAAM,EAAQ,CAAC,EAEnB,QAAgB;AACZ,MAAI,CAAC,KAAQ,CAAC,EAAe;EAE7B,IAAM,KAAiB,MAAqB;AACxC,GAAI,EAAE,QAAQ,YAAU,GAAS;;AAIrC,SADA,SAAS,iBAAiB,WAAW,EAAc,QACtC,SAAS,oBAAoB,WAAW,EAAc;IACpE;EAAC;EAAM;EAAe;EAAQ,CAAC,EAElC,QAAgB;AACZ,MAAI,CAAC,EAAS;EAEd,IAAM,IAAO,SAAS,KAAK,MAAM;AAEjC,SADA,SAAS,KAAK,MAAM,WAAW,gBAClB;AACT,YAAS,KAAK,MAAM,WAAW;;IAEpC,CAAC,EAAQ,CAAC,EAET,CAAC,EAAS,QAAO;CAErB,IAAM,KAAuB,MAAkC;AAC3D,EAAI,KAAmB,EAAE,WAAW,EAAE,iBAAe,GAAS;IAG9D,IAAoB,MACpB,IAA0C,MAC1C,IAAwC,MACxC,IAAoB,MACpB,IAA0C,MACxC,IAAoB,EAAE;AAE5B,GAAS,QAAQ,IAAW,MAAU;AAClC,MAAI,GAAe,EAAM,EAAE;AAEvB,GADA,IAAS,EAAM,MAAM,UACrB,IAAc,EAAM;AACpB;;AAGJ,MAAI,GAAa,EAAM,EAAE;AAErB,GADA,IAAY,EAAM,OAClB,EAAK,KAAK,EAAM,MAAM,SAAS;AAC/B;;AAGJ,MAAI,EAAe,EAAM,EAAE;AAEvB,GADA,IAAS,EAAM,MAAM,UACrB,IAAc,EAAM;AACpB;;AAGJ,IAAK,KAAK,EAAM;GAClB;CAEF,IAAM,IAAgB,KAAgB,EAAC,UAAU,KAAA,GAAU,EACrD,IAAc,KAAc,EAAC,UAAU,KAAA,GAAU,EACjD,IAAgB,KAAgB,EAAC,UAAU,KAAA,GAAU,EACrD,EACF,UAAU,GACV,WAAW,GACX,UAAU,IAAiB,IAC3B,GAAG,MACH,GACE,EAAC,UAAU,IAAe,WAAW,GAAe,GAAG,MAAY,GACnE,EACF,UAAU,GACV,WAAW,GACX,UAAU,IAAiB,IAC3B,GAAG,MACH;AAEJ,QACI,kBAAC,GAAD,EAAA,UACI,kBAAC,OAAD;EACI,KAAK;EACL,WAAW,EAAG,oBAAoB,mBAAmB,CAAC,KAAW,cAAc,KAAW,UAAU;EACpG,aAAa;YAEb,kBAAC,OAAD;GAAK,WAAW,EAAG,UAAU,GAAM,GAAM,EAAU;GAAE,MAAK;GAAS,cAAW;GAAO,GAAI;aAAzF;IACK,KACG,kBAAC,OAAD;KACI,GAAI;KACJ,WAAW,EAAG,iBAAiB,KAAkB,YAAY,EAAgB;eAFjF,CAII,kBAAC,OAAD;MAAK,WAAU;gBAAgB;MAAa,CAAA,EAC5C,kBAAC,GAAD;MACI,SAAQ;MACR,OAAM;MACN,UAAA;MACA,MAAK;MACL,SAAS;MACT,cAAW;MACX,WAAU;gBAEV,kBAAC,GAAD,EAAc,CAAA;MACR,CAAA,CACR;;IAEV,kBAAC,OAAD;KAAK,GAAI;KAAU,WAAW,EAAG,eAAe,EAAc;eACzD;KACC,CAAA;IACL,KACG,kBAAC,OAAD;KACI,GAAI;KACJ,WAAW,EAAG,iBAAiB,KAAkB,YAAY,EAAgB;eAE5E;KACC,CAAA;IAER;;EACJ,CAAA,EACA,CAAA;;;;ACpLlB,SAAgB,EAAY,EACxB,UACA,gBACA,cACA,aACA,iBAAc,OACd,gBAAa,MACb,WAAQ,WACR,SACA,eAAY,aACZ,SACA,iBACA,cACA,gBACiB;CACjB,IAAM,IAAe,QAAkB;AAEnC,EADA,EAAa,GAAM,EACnB,KAAY;IACb,CAAC,GAAc,EAAS,CAAC,EAEtB,IAAgB,QAAkB;AAEpC,EADA,EAAa,GAAM,EACnB,GAAW;IACZ,CAAC,GAAc,EAAU,CAAC;AAE7B,QACI,kBAAC,GAAD;EACU;EACK;EACX,SAAS;EACE;EACX,WAAW,EAAG,cAAc,SAAS,KAAS,EAAU;YAL5D,CAOI,kBAAC,OAAD;GAAK,WAAU;aAAf,CACK,KAAQ,kBAAC,OAAD;IAAK,WAAU;cAAQ;IAAW,CAAA,EAC3C,kBAAC,OAAD;IAAK,WAAU;cAAf,CACI,kBAAC,OAAD;KAAK,WAAU;eAAS;KAAY,CAAA,EACnC,KAAe,kBAAC,OAAD;KAAK,WAAU;eAAe;KAAkB,CAAA,CAC9D;MACJ;MACN,kBAAC,OAAD;GAAK,WAAU;aAAf,CACI,kBAAC,GAAD;IAAS,SAAQ;IAAQ,MAAK;IAAK,OAAM;IAAU,SAAS;cACvD;IACK,CAAA,EACV,kBAAC,GAAD;IAAS,SAAQ;IAAQ,MAAK;IAAY;IAAO,SAAS;cACrD;IACK,CAAA,CACR;KACC"}
1
+ {"version":3,"file":"overlays-BfIrSHDo.js","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx","../src/components/overlays/MSheet/MSheet.tsx","../src/components/overlays/MCommandPalette/MCommandPalette.tsx","../src/components/overlays/MDrawer/MDrawer.tsx","../src/components/overlays/MPopconfirm/MPopconfirm.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useId, useRef, useState} from 'react'\nimport type {PointerEvent as ReactPointerEvent, MouseEvent} from 'react'\nimport type {MSheetProps, MSheetSize} from './MSheet.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MPortal} from '../../primitives'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MSheet.css'\n\nconst EXIT_DURATION = 540\nconst CLOSE_DRAG_THRESHOLD = 72\n\nconst SHEET_HEIGHTS: Record<MSheetSize, string> = {\n sm: '32vh',\n md: '52vh',\n lg: '72vh',\n full: '92vh',\n}\n\nexport function MSheet({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n style,\n ...rest\n}: MSheetProps) {\n const titleId = useId()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const [dragOffset, setDragOffset] = useState(0)\n\n const dragStateRef = useRef<{pointerId: number; startY: number} | null>(null)\n const dragOffsetRef = useRef(0)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = window.setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => window.clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n function handleBackdropClick(event: MouseEvent<HTMLDivElement>) {\n if (closeOnBackdrop && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n function handleHandlePointerDown(event: ReactPointerEvent<HTMLButtonElement>) {\n event.preventDefault()\n event.currentTarget.setPointerCapture(event.pointerId)\n\n dragStateRef.current = {\n pointerId: event.pointerId,\n startY: event.clientY,\n }\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n function handleHandlePointerMove(event: ReactPointerEvent<HTMLButtonElement>) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== event.pointerId) {\n return\n }\n\n const nextOffset = Math.max(event.clientY - dragState.startY, 0)\n dragOffsetRef.current = nextOffset\n setDragOffset(nextOffset)\n }\n\n function finishDrag(pointerId: number) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== pointerId) {\n return\n }\n\n dragStateRef.current = null\n\n if (dragOffsetRef.current > CLOSE_DRAG_THRESHOLD) {\n setDragOffset(0)\n dragOffsetRef.current = 0\n onClose()\n return\n }\n\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n if (!mounted) return null\n\n const resolvedHeight = SHEET_HEIGHTS[size]\n const transformStyle = dragOffset > 0 ? `translateY(${dragOffset}px)` : undefined\n\n return (\n <MPortal>\n <div\n className={cn('mineral-backdrop', 'sheet-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className=\"sheet-shell\" style={{transform: transformStyle}}>\n <MCard\n className={cn('sheet', `size-${size}`, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n style={{\n ...style,\n height: size === 'full' ? resolvedHeight : undefined,\n maxHeight: resolvedHeight,\n }}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"sheet-grabber\"\n onPointerDown={handleHandlePointerDown}\n onPointerMove={handleHandlePointerMove}\n onPointerUp={(event) => finishDrag(event.pointerId)}\n onPointerCancel={(event) => finishDrag(event.pointerId)}\n aria-label=\"Drag down to close\"\n >\n <span className=\"sheet-handle\" />\n </button>\n\n {(title || description) && (\n <MCardHeader className=\"sheet-header\">\n <div className=\"sheet-copy\">\n {title && (\n <div id={titleId} className=\"sheet-title\">\n {title}\n </div>\n )}\n {description && <div className=\"sheet-description\">{description}</div>}\n </div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"sheet-close\"\n >\n <MCloseIcon />\n </MButton>\n </MCardHeader>\n )}\n\n <MCardBody className=\"sheet-body\">{children}</MCardBody>\n\n {footer && <MCardFooter className=\"sheet-footer\">{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {KeyboardEvent as ReactKeyboardEvent, ReactNode} from 'react'\nimport type {MCommandPaletteItem, MCommandPaletteProps} from './MCommandPalette.types'\nimport {MButton} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MInline, MSimpleGrid, MStack} from '../../layout'\nimport {MSheet} from '../MSheet'\nimport {MTooltip} from '../MTooltip'\nimport {MBadge} from '../../feedback'\nimport {MLinkIcon, MSearchIcon} from '../../../icons'\nimport {MKbd, MHeading, MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport './MCommandPalette.css'\n\nfunction normalizeText(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value.toString()\n }\n\n return ''\n}\n\nfunction matchesShortcut(event: KeyboardEvent, shortcut: string) {\n const normalized = shortcut.toLowerCase().replace(/\\s+/g, '')\n const parts = normalized.split('+')\n const key = parts[parts.length - 1]\n\n if (!key) {\n return false\n }\n\n const expectsCtrl = parts.includes('ctrl')\n const expectsMeta = parts.includes('meta') || parts.includes('cmd')\n const expectsShift = parts.includes('shift')\n const expectsAlt = parts.includes('alt') || parts.includes('option')\n\n return (\n event.key.toLowerCase() === key &&\n !!expectsCtrl === event.ctrlKey &&\n !!expectsMeta === event.metaKey &&\n !!expectsShift === event.shiftKey &&\n !!expectsAlt === event.altKey\n )\n}\n\nfunction filterItems(items: MCommandPaletteItem[], query: string) {\n if (!query.trim()) {\n return items\n }\n\n const normalizedQuery = query.trim().toLowerCase()\n\n return items.filter((item) =>\n [\n normalizeText(item.title),\n normalizeText(item.description),\n normalizeText(item.group),\n normalizeText(item.actionLabel),\n ...(item.keywords ?? []),\n ].some((value) => value.toLowerCase().includes(normalizedQuery))\n )\n}\n\nfunction groupItems(items: MCommandPaletteItem[]) {\n const groups = new Map<string, {label: ReactNode; items: MCommandPaletteItem[]}>()\n\n items.forEach((item) => {\n const key = normalizeText(item.group) || 'General'\n const current = groups.get(key) ?? {label: item.group ?? 'General', items: []}\n current.items.push(item)\n groups.set(key, current)\n })\n\n return Array.from(groups.values())\n}\n\nexport function MCommandPalette({\n items,\n featuredItems = [],\n open,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n title = 'Command palette',\n description,\n trigger,\n shortcut = 'ctrl+k',\n placeholder = 'Search modules, records and actions...',\n emptyLabel = 'No matching results.',\n footer,\n size = 'lg',\n closeOnSelect = true,\n}: MCommandPaletteProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const [query, setQuery] = useState('')\n const [activeItemId, setActiveItemId] = useState<string | null>(null)\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : internalOpen\n const inputRef = useRef<HTMLInputElement>(null)\n\n function setOpenState(nextOpen: boolean) {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n }\n\n const filteredItems = useMemo(() => filterItems(items, query), [items, query])\n const groupedItems = useMemo(() => groupItems(filteredItems), [filteredItems])\n const flattenedItems = useMemo(() => groupedItems.flatMap((group) => group.items), [groupedItems])\n const featured = useMemo(() => (featuredItems.length ? featuredItems : items.slice(0, 6)), [featuredItems, items])\n\n function executeItem(item: MCommandPaletteItem) {\n item.onSelect?.()\n onSelect?.(item)\n\n if (!item.onSelect && item.href) {\n window.location.assign(item.href)\n }\n\n if (closeOnSelect) {\n setOpenState(false)\n setQuery('')\n setActiveItemId(null)\n }\n }\n\n const {activeIndex, setActiveIndex, resetIndex, onKeyDown} = useKeyboardNav({\n itemCount: flattenedItems.length,\n isOpen,\n onClose: () => setOpenState(false),\n onSelect: (index) => {\n const item = flattenedItems[index]\n\n if (item) {\n executeItem(item)\n }\n },\n })\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (matchesShortcut(event, shortcut)) {\n event.preventDefault()\n setOpenState(true)\n }\n }\n\n window.addEventListener('keydown', handleKeydown)\n\n return () => {\n window.removeEventListener('keydown', handleKeydown)\n }\n }, [shortcut])\n\n useEffect(() => {\n if (!isOpen) {\n resetIndex()\n setActiveItemId(null)\n return\n }\n\n queueMicrotask(() => inputRef.current?.focus())\n }, [isOpen, resetIndex])\n\n useEffect(() => {\n if (activeIndex < 0 || activeIndex >= flattenedItems.length) {\n setActiveItemId(null)\n return\n }\n\n setActiveItemId(flattenedItems[activeIndex]?.id ?? null)\n }, [activeIndex, flattenedItems])\n\n function handleSearchKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n onKeyDown(event)\n }\n\n return (\n <>\n {trigger ?? (\n <MButton\n variant={'filled'}\n size={'sm'}\n color={'primary'}\n iconOnly\n startIcon={<MSearchIcon />}\n aria-label={typeof title === 'string' ? title : 'Open command palette'}\n onClick={() => setOpenState(true)}\n />\n )}\n\n <MSheet\n open={isOpen}\n onClose={() => setOpenState(false)}\n title={title}\n description={description}\n size={size}\n footer={footer}\n >\n <div className=\"command-palette-body\">\n <div className=\"command-palette-search\">\n <MInputSearch\n ref={inputRef}\n value={query}\n onChange={(event) => {\n setQuery(event.target.value)\n setActiveIndex(-1)\n }}\n onKeyDown={handleSearchKeyDown}\n placeholder={placeholder}\n clearable\n fullWidth\n />\n </div>\n\n <div className=\"command-palette-grid\">\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Featured</MHeading>\n <MText size={'sm'} tone={'muted'}>\n Quick launch for the most frequent dashboard actions.\n </MText>\n </MCardHeader>\n <MCardBody>\n <MSimpleGrid columns={4}>\n {featured.map((item) => {\n const label = item.actionLabel ?? item.title\n const ariaLabel = typeof label === 'string' ? label : normalizeText(label)\n\n return (\n <MTooltip key={item.id} content={label}>\n <MButton\n variant={'ghost'}\n color={'primary'}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n startIcon={item.icon ?? <MLinkIcon />}\n iconOnly\n aria-label={ariaLabel || undefined}\n onClick={() => executeItem(item)}\n />\n </MTooltip>\n )\n })}\n </MSimpleGrid>\n </MCardBody>\n </MCard>\n\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Results</MHeading>\n <MInline align={'center'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {flattenedItems.length} ready\n </MText>\n <MKbd>{shortcut.toUpperCase()}</MKbd>\n </MInline>\n </MCardHeader>\n <MCardBody>\n {groupedItems.length ? (\n <MStack padding={'xs'} className=\"command-palette-results\">\n {groupedItems.map((group) => (\n <MStack key={normalizeText(group.label) || 'general'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {group.label}\n </MText>\n {group.items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={cn(\n 'command-palette-item',\n activeItemId === item.id && 'active'\n )}\n onMouseEnter={() => setActiveItemId(item.id)}\n onClick={() => executeItem(item)}\n >\n <span className=\"command-palette-item-icon\">\n {item.icon ?? <MLinkIcon />}\n </span>\n <span className=\"command-palette-item-copy\">\n <span className=\"command-palette-item-title\">\n {item.title}\n </span>\n {item.description && (\n <span className=\"command-palette-item-description\">\n {item.description}\n </span>\n )}\n </span>\n {item.badge && (\n <span className=\"command-palette-item-badge\">\n <MBadge color={'primary'} size={'sm'}>\n {item.badge}\n </MBadge>\n </span>\n )}\n </button>\n ))}\n </MStack>\n ))}\n </MStack>\n ) : (\n <MText tone={'muted'}>{emptyLabel}</MText>\n )}\n </MCardBody>\n </MCard>\n </div>\n </div>\n </MSheet>\n </>\n )\n}\n","import {Children, isValidElement, useEffect, useState, useRef} from 'react'\nimport type {MouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MDrawerProps, MDrawerSectionProps} from './MDrawer.types'\nimport {MPortal} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDrawer.css'\n\nconst EXIT_DURATION = 600\n\ntype DrawerSlotElement = ReactElement<MDrawerSectionProps>\n\nfunction isDrawerHeader(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerHeader\n}\n\nfunction isDrawerBody(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerBody\n}\n\nfunction isDrawerFooter(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerFooter\n}\n\nexport function MDrawerHeader({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerHeader as any).__drawerHeader = true\n\nexport function MDrawerBody({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerBody as any).__drawerBody = true\n\nexport function MDrawerFooter({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerFooter as any).__drawerFooter = true\n\nexport function MDrawer({\n open,\n onClose,\n side = 'right',\n size = 'md',\n overlay = true,\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MDrawerProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [open, closeOnEscape, onClose])\n\n useEffect(() => {\n if (!mounted) return\n\n const prev = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = prev\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (e: MouseEvent<HTMLDivElement>) => {\n if (closeOnBackdrop && e.target === e.currentTarget) onClose()\n }\n\n let header: ReactNode = null\n let headerProps: MDrawerSectionProps | null = null\n let bodyProps: MDrawerSectionProps | null = null\n let footer: ReactNode = null\n let footerProps: MDrawerSectionProps | null = null\n const body: ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isDrawerHeader(child)) {\n header = child.props.children\n headerProps = child.props\n return\n }\n\n if (isDrawerBody(child)) {\n bodyProps = child.props\n body.push(child.props.children)\n return\n }\n\n if (isDrawerFooter(child)) {\n footer = child.props.children\n footerProps = child.props\n return\n }\n\n body.push(child)\n })\n\n const headerSection = headerProps ?? ({children: undefined} as MDrawerSectionProps)\n const bodySection = bodyProps ?? ({children: undefined} as MDrawerSectionProps)\n const footerSection = footerProps ?? ({children: undefined} as MDrawerSectionProps)\n const {\n children: _headerChildren,\n className: headerClassName,\n bordered: headerBordered = false,\n ...headerRest\n } = headerSection\n const {children: _bodyChildren, className: bodyClassName, ...bodyRest} = bodySection\n const {\n children: _footerChildren,\n className: footerClassName,\n bordered: footerBordered = false,\n ...footerRest\n } = footerSection\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'drawer-backdrop', !overlay && 'no-overlay', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={cn('drawer', side, size, className)} role=\"dialog\" aria-modal=\"true\" {...rest}>\n {header && (\n <div\n {...headerRest}\n className={cn('drawer-header', headerBordered && 'bordered', headerClassName)}\n >\n <div className=\"drawer-title\">{header}</div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )}\n <div {...bodyRest} className={cn('drawer-body', bodyClassName)}>\n {body}\n </div>\n {footer && (\n <div\n {...footerRest}\n className={cn('drawer-footer', footerBordered && 'bordered', footerClassName)}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useCallback} from 'react'\nimport type {MPopconfirmProps} from './MPopconfirm.types'\nimport {MPopover} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './MPopconfirm.css'\n\nexport function MPopconfirm({\n title,\n description,\n onConfirm,\n onCancel,\n confirmText = 'Yes',\n cancelText = 'No',\n color = 'warning',\n icon,\n placement = 'top-start',\n open,\n onOpenChange,\n anchorRef,\n className,\n}: MPopconfirmProps) {\n const handleCancel = useCallback(() => {\n onOpenChange(false)\n onCancel?.()\n }, [onOpenChange, onCancel])\n\n const handleConfirm = useCallback(() => {\n onOpenChange(false)\n onConfirm()\n }, [onOpenChange, onConfirm])\n\n return (\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={handleCancel}\n placement={placement}\n className={cn('popconfirm', `color-${color}`, className)}\n >\n <div className=\"body\">\n {icon && <div className=\"icon\">{icon}</div>}\n <div className=\"content\">\n <div className=\"title\">{title}</div>\n {description && <div className=\"description\">{description}</div>}\n </div>\n </div>\n <div className=\"actions\">\n <MButton variant=\"ghost\" size=\"sm\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </MButton>\n <MButton variant=\"ghost\" size=\"sm\" color={color} onClick={handleConfirm}>\n {confirmText}\n </MButton>\n </div>\n </MPopover>\n )\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require(`./icons-BHFwX7ri.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useKeyboardNav-CtGPfQX7.cjs`),r=require(`./MPortal-DokH9TfY.cjs`),i=require(`./MPopover-BbgAAM5Z.cjs`),a=require(`./MSurface-WsYGNGX5.cjs`),o=require(`./MText-CAbqC2qZ.cjs`),s=require(`./MHeading-TJ5yvklz.cjs`),c=require(`./MKbd-CGkzxJhi.cjs`),l=require(`./MButton-ouB6903s.cjs`),u=require(`./MSkeleton-JMkJFzu9.cjs`),d=require(`./MStack-DDn2bYBQ.cjs`),f=require(`./MSimpleGrid-B6Uh1XJY.cjs`),p=require(`./MCard-Bg_R86Gr.cjs`),m=require(`./MInputSearch-D2Fr_34s.cjs`),h=require(`./MTooltip-C-x_SqMx.cjs`);require(`./core-B2klLGki.cjs`);let g=require(`react`),_=require(`react/jsx-runtime`);var v=540;function y({open:e,onClose:n,title:i,description:a,footer:o,size:s=`md`,closeOnBackdrop:c=!0,closeOnEscape:l=!0,className:u,children:d,...f}){let[m,h]=(0,g.useState)(!1),[y,b]=(0,g.useState)(!1),x=(0,g.useRef)(null);return(0,g.useEffect)(()=>{e&&(h(!0),b(!1))},[e]),(0,g.useEffect)(()=>{if(!e&&m){b(!0);let e=setTimeout(()=>{h(!1),b(!1)},v);return()=>clearTimeout(e)}},[e,m]),(0,g.useEffect)(()=>{if(!e||!l)return;let t=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[l,n,e]),(0,g.useEffect)(()=>{if(!m)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[m]),m?(0,_.jsx)(r.t,{children:(0,_.jsx)(`div`,{ref:x,className:t.t(`mineral-backdrop`,`modal-backdrop`,y&&`closing`),onMouseDown:e=>{c&&e.target===e.currentTarget&&n()},children:(0,_.jsx)(`div`,{className:`modal-shell`,children:(0,_.jsxs)(p.t,{className:t.t(`modal`,s,u),role:`dialog`,"aria-modal":`true`,"aria-labelledby":i?`mineral-modal-title`:void 0,...f,children:[(i||a)&&(0,_.jsxs)(p.i,{children:[i&&(0,_.jsx)(`div`,{id:`mineral-modal-title`,className:`modal-title`,children:i}),a&&(0,_.jsx)(`div`,{className:`modal-description`,children:a})]}),(0,_.jsx)(p.n,{children:d}),o&&(0,_.jsx)(p.r,{children:o})]})})})}):null}var b=540,x=72,S={sm:`32vh`,md:`52vh`,lg:`72vh`,full:`92vh`};function C({open:n,onClose:i,title:a,description:o,footer:s,size:c=`md`,closeOnBackdrop:u=!0,closeOnEscape:d=!0,className:f,children:m,style:h,...v}){let y=(0,g.useId)(),[C,w]=(0,g.useState)(!1),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(0),k=(0,g.useRef)(null),A=(0,g.useRef)(0);(0,g.useEffect)(()=>{n&&(w(!0),E(!1),O(0),A.current=0)},[n]),(0,g.useEffect)(()=>{if(!n&&C){E(!0);let e=window.setTimeout(()=>{w(!1),E(!1)},b);return()=>window.clearTimeout(e)}},[n,C]),(0,g.useEffect)(()=>{if(!C)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[C]),(0,g.useEffect)(()=>{if(!n||!d)return;let e=e=>{e.key===`Escape`&&i()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[d,i,n]);function j(e){u&&e.target===e.currentTarget&&i()}function M(e){e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),k.current={pointerId:e.pointerId,startY:e.clientY},O(0),A.current=0}function N(e){let t=k.current;if(!t||t.pointerId!==e.pointerId)return;let n=Math.max(e.clientY-t.startY,0);A.current=n,O(n)}function P(e){let t=k.current;if(!(!t||t.pointerId!==e)){if(k.current=null,A.current>x){O(0),A.current=0,i();return}O(0),A.current=0}}if(!C)return null;let F=S[c],I=D>0?`translateY(${D}px)`:void 0;return(0,_.jsx)(r.t,{children:(0,_.jsx)(`div`,{className:t.t(`mineral-backdrop`,`sheet-backdrop`,T&&`closing`),onMouseDown:j,children:(0,_.jsx)(`div`,{className:`sheet-shell`,style:{transform:I},children:(0,_.jsxs)(p.t,{className:t.t(`sheet`,`size-${c}`,f),role:`dialog`,"aria-modal":`true`,"aria-labelledby":a?y:void 0,style:{...h,height:c===`full`?F:void 0,maxHeight:F},...v,children:[(0,_.jsx)(`button`,{type:`button`,className:`sheet-grabber`,onPointerDown:M,onPointerMove:N,onPointerUp:e=>P(e.pointerId),onPointerCancel:e=>P(e.pointerId),"aria-label":`Drag down to close`,children:(0,_.jsx)(`span`,{className:`sheet-handle`})}),(a||o)&&(0,_.jsxs)(p.i,{className:`sheet-header`,children:[(0,_.jsxs)(`div`,{className:`sheet-copy`,children:[a&&(0,_.jsx)(`div`,{id:y,className:`sheet-title`,children:a}),o&&(0,_.jsx)(`div`,{className:`sheet-description`,children:o})]}),(0,_.jsx)(l.t,{variant:`link`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:i,"aria-label":`Close`,className:`sheet-close`,children:(0,_.jsx)(e.Ki,{})})]}),(0,_.jsx)(p.n,{className:`sheet-body`,children:m}),s&&(0,_.jsx)(p.r,{className:`sheet-footer`,children:s})]})})})})}function w(e){return typeof e==`string`||typeof e==`number`?e.toString():``}function T(e,t){let n=t.toLowerCase().replace(/\s+/g,``).split(`+`),r=n[n.length-1];if(!r)return!1;let i=n.includes(`ctrl`),a=n.includes(`meta`)||n.includes(`cmd`),o=n.includes(`shift`),s=n.includes(`alt`)||n.includes(`option`);return e.key.toLowerCase()===r&&!!i===e.ctrlKey&&!!a===e.metaKey&&!!o===e.shiftKey&&!!s===e.altKey}function E(e,t){if(!t.trim())return e;let n=t.trim().toLowerCase();return e.filter(e=>[w(e.title),w(e.description),w(e.group),w(e.actionLabel),...e.keywords??[]].some(e=>e.toLowerCase().includes(n)))}function D(e){let t=new Map;return e.forEach(e=>{let n=w(e.group)||`General`,r=t.get(n)??{label:e.group??`General`,items:[]};r.items.push(e),t.set(n,r)}),Array.from(t.values())}function O({items:r,featuredItems:i=[],open:v,defaultOpen:y=!1,onOpenChange:b,onSelect:x,title:S=`Command palette`,description:O,trigger:k,shortcut:A=`ctrl+k`,placeholder:j=`Search modules, records and actions...`,emptyLabel:M=`No matching results.`,footer:N,size:P=`lg`,closeOnSelect:F=!0}){let[I,L]=(0,g.useState)(y),[R,z]=(0,g.useState)(``),[B,V]=(0,g.useState)(null),H=v!==void 0,U=H?v:I,W=(0,g.useRef)(null);function G(e){H||L(e),b?.(e)}let K=(0,g.useMemo)(()=>E(r,R),[r,R]),q=(0,g.useMemo)(()=>D(K),[K]),J=(0,g.useMemo)(()=>q.flatMap(e=>e.items),[q]),Y=(0,g.useMemo)(()=>i.length?i:r.slice(0,6),[i,r]);function X(e){e.onSelect?.(),x?.(e),!e.onSelect&&e.href&&window.location.assign(e.href),F&&(G(!1),z(``),V(null))}let{activeIndex:Z,setActiveIndex:Q,resetIndex:$,onKeyDown:ee}=n.t({itemCount:J.length,isOpen:U,onClose:()=>G(!1),onSelect:e=>{let t=J[e];t&&X(t)}});(0,g.useEffect)(()=>{let e=e=>{T(e,A)&&(e.preventDefault(),G(!0))};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[A]),(0,g.useEffect)(()=>{if(!U){$(),V(null);return}queueMicrotask(()=>W.current?.focus())},[U,$]),(0,g.useEffect)(()=>{if(Z<0||Z>=J.length){V(null);return}V(J[Z]?.id??null)},[Z,J]);function te(e){ee(e)}return(0,_.jsxs)(_.Fragment,{children:[k??(0,_.jsx)(l.t,{variant:`filled`,size:`sm`,color:`primary`,iconOnly:!0,startIcon:(0,_.jsx)(e.qi,{}),"aria-label":typeof S==`string`?S:`Open command palette`,onClick:()=>G(!0)}),(0,_.jsx)(C,{open:U,onClose:()=>G(!1),title:S,description:O,size:P,footer:N,children:(0,_.jsxs)(`div`,{className:`command-palette-body`,children:[(0,_.jsx)(`div`,{className:`command-palette-search`,children:(0,_.jsx)(m.t,{ref:W,value:R,onChange:e=>{z(e.target.value),Q(-1)},onKeyDown:te,placeholder:j,clearable:!0,fullWidth:!0})}),(0,_.jsxs)(`div`,{className:`command-palette-grid`,children:[(0,_.jsxs)(p.t,{stretch:!1,children:[(0,_.jsxs)(p.i,{children:[(0,_.jsx)(s.t,{level:4,children:`Featured`}),(0,_.jsx)(o.t,{size:`sm`,tone:`muted`,children:`Quick launch for the most frequent dashboard actions.`})]}),(0,_.jsx)(p.n,{children:(0,_.jsx)(f.t,{columns:4,children:Y.map(t=>{let n=t.actionLabel??t.title,r=typeof n==`string`?n:w(n);return(0,_.jsx)(h.t,{content:n,children:(0,_.jsx)(l.t,{variant:`ghost`,color:`primary`,component:t.component,to:t.to,href:t.href,target:t.target,rel:t.rel,startIcon:t.icon??(0,_.jsx)(e.On,{}),iconOnly:!0,"aria-label":r||void 0,onClick:()=>X(t)})},t.id)})})})]}),(0,_.jsxs)(p.t,{stretch:!1,children:[(0,_.jsxs)(p.i,{children:[(0,_.jsx)(s.t,{level:4,children:`Results`}),(0,_.jsxs)(a.n,{align:`center`,padding:`xs`,children:[(0,_.jsxs)(o.t,{size:`sm`,tone:`muted`,children:[J.length,` ready`]}),(0,_.jsx)(c.t,{children:A.toUpperCase()})]})]}),(0,_.jsx)(p.n,{children:q.length?(0,_.jsx)(d.t,{padding:`xs`,className:`command-palette-results`,children:q.map(n=>(0,_.jsxs)(d.t,{padding:`xs`,children:[(0,_.jsx)(o.t,{size:`sm`,tone:`muted`,children:n.label}),n.items.map(n=>(0,_.jsxs)(`button`,{type:`button`,className:t.t(`command-palette-item`,B===n.id&&`active`),onMouseEnter:()=>V(n.id),onClick:()=>X(n),children:[(0,_.jsx)(`span`,{className:`command-palette-item-icon`,children:n.icon??(0,_.jsx)(e.On,{})}),(0,_.jsxs)(`span`,{className:`command-palette-item-copy`,children:[(0,_.jsx)(`span`,{className:`command-palette-item-title`,children:n.title}),n.description&&(0,_.jsx)(`span`,{className:`command-palette-item-description`,children:n.description})]}),n.badge&&(0,_.jsx)(`span`,{className:`command-palette-item-badge`,children:(0,_.jsx)(u.n,{color:`primary`,size:`sm`,children:n.badge})})]},n.id))]},w(n.label)||`general`))}):(0,_.jsx)(o.t,{tone:`muted`,children:M})})]})]})]})})]})}var k=600;function A(e){return(0,g.isValidElement)(e)&&!!e.type.__drawerHeader}function j(e){return(0,g.isValidElement)(e)&&!!e.type.__drawerBody}function M(e){return(0,g.isValidElement)(e)&&!!e.type.__drawerFooter}function N({children:e}){return(0,_.jsx)(_.Fragment,{children:e})}N.__drawerHeader=!0;function P({children:e}){return(0,_.jsx)(_.Fragment,{children:e})}P.__drawerBody=!0;function F({children:e}){return(0,_.jsx)(_.Fragment,{children:e})}F.__drawerFooter=!0;function I({open:n,onClose:i,side:a=`right`,size:o=`md`,overlay:s=!0,closeOnBackdrop:c=!0,closeOnEscape:u=!0,className:d,children:f,...p}){let[m,h]=(0,g.useState)(!1),[v,y]=(0,g.useState)(!1),b=(0,g.useRef)(null);if((0,g.useEffect)(()=>{n&&(h(!0),y(!1))},[n]),(0,g.useEffect)(()=>{if(!n&&m){y(!0);let e=setTimeout(()=>{h(!1),y(!1)},k);return()=>clearTimeout(e)}},[n,m]),(0,g.useEffect)(()=>{if(!n||!u)return;let e=e=>{e.key===`Escape`&&i()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n,u,i]),(0,g.useEffect)(()=>{if(!m)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[m]),!m)return null;let x=e=>{c&&e.target===e.currentTarget&&i()},S=null,C=null,w=null,T=null,E=null,D=[];g.Children.forEach(f,e=>{if(A(e)){S=e.props.children,C=e.props;return}if(j(e)){w=e.props,D.push(e.props.children);return}if(M(e)){T=e.props.children,E=e.props;return}D.push(e)});let O=C??{children:void 0},N=w??{children:void 0},P=E??{children:void 0},{children:F,className:I,bordered:L=!1,...R}=O,{children:z,className:B,...V}=N,{children:H,className:U,bordered:W=!1,...G}=P;return(0,_.jsx)(r.t,{children:(0,_.jsx)(`div`,{ref:b,className:t.t(`mineral-backdrop`,`drawer-backdrop`,!s&&`no-overlay`,v&&`closing`),onMouseDown:x,children:(0,_.jsxs)(`div`,{className:t.t(`drawer`,a,o,d),role:`dialog`,"aria-modal":`true`,...p,children:[S&&(0,_.jsxs)(`div`,{...R,className:t.t(`drawer-header`,L&&`bordered`,I),children:[(0,_.jsx)(`div`,{className:`drawer-title`,children:S}),(0,_.jsx)(l.t,{variant:`link`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:i,"aria-label":`Close`,className:`close`,children:(0,_.jsx)(e.Ki,{})})]}),(0,_.jsx)(`div`,{...V,className:t.t(`drawer-body`,B),children:D}),T&&(0,_.jsx)(`div`,{...G,className:t.t(`drawer-footer`,W&&`bordered`,U),children:T})]})})})}function L({title:e,description:n,onConfirm:r,onCancel:a,confirmText:o=`Yes`,cancelText:s=`No`,color:c=`warning`,icon:u,placement:d=`top-start`,open:f,onOpenChange:p,anchorRef:m,className:h}){let v=(0,g.useCallback)(()=>{p(!1),a?.()},[p,a]),y=(0,g.useCallback)(()=>{p(!1),r()},[p,r]);return(0,_.jsxs)(i.t,{open:f,anchorRef:m,onClose:v,placement:d,className:t.t(`popconfirm`,`color-${c}`,h),children:[(0,_.jsxs)(`div`,{className:`body`,children:[u&&(0,_.jsx)(`div`,{className:`icon`,children:u}),(0,_.jsxs)(`div`,{className:`content`,children:[(0,_.jsx)(`div`,{className:`title`,children:e}),n&&(0,_.jsx)(`div`,{className:`description`,children:n})]})]}),(0,_.jsxs)(`div`,{className:`actions`,children:[(0,_.jsx)(l.t,{variant:`ghost`,size:`sm`,color:`neutral`,onClick:v,children:s}),(0,_.jsx)(l.t,{variant:`ghost`,size:`sm`,color:c,onClick:y,children:o})]})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return L}});
2
- //# sourceMappingURL=overlays-BpDz9ddf.cjs.map
1
+ const e=require(`./icons-DX_cScBq.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useKeyboardNav-DDN-oeqd.cjs`),r=require(`./MPortal-Djrw2WhD.cjs`),i=require(`./MPopover-BVBN5SJi.cjs`),a=require(`./MSurface-BS9l7GDH.cjs`),o=require(`./MText-Cjt1oTPr.cjs`),s=require(`./MHeading-CyuxSnhl.cjs`),c=require(`./MKbd-CiwDwFwA.cjs`),l=require(`./MButton-B8kFTOPJ.cjs`),u=require(`./MSkeleton-DyQBeuVT.cjs`),d=require(`./MStack-BdVvJN5S.cjs`),f=require(`./MSimpleGrid-BR352NiK.cjs`),p=require(`./MCard-szs5kIek.cjs`),m=require(`./MInputSearch-D9bp1QAz.cjs`),h=require(`./MTooltip-gpvKWQzD.cjs`);require(`./core-o3cw16Db.cjs`);let g=require(`react`),_=require(`react/jsx-runtime`);var v=540;function y({open:e,onClose:n,title:i,description:a,footer:o,size:s=`md`,closeOnBackdrop:c=!0,closeOnEscape:l=!0,className:u,children:d,...f}){let[m,h]=(0,g.useState)(!1),[y,b]=(0,g.useState)(!1),x=(0,g.useRef)(null);return(0,g.useEffect)(()=>{e&&(h(!0),b(!1))},[e]),(0,g.useEffect)(()=>{if(!e&&m){b(!0);let e=setTimeout(()=>{h(!1),b(!1)},v);return()=>clearTimeout(e)}},[e,m]),(0,g.useEffect)(()=>{if(!e||!l)return;let t=e=>{e.key===`Escape`&&n()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[l,n,e]),(0,g.useEffect)(()=>{if(!m)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[m]),m?(0,_.jsx)(r.t,{children:(0,_.jsx)(`div`,{ref:x,className:t.t(`mineral-backdrop`,`modal-backdrop`,y&&`closing`),onMouseDown:e=>{c&&e.target===e.currentTarget&&n()},children:(0,_.jsx)(`div`,{className:`modal-shell`,children:(0,_.jsxs)(p.t,{className:t.t(`modal`,s,u),role:`dialog`,"aria-modal":`true`,"aria-labelledby":i?`mineral-modal-title`:void 0,...f,children:[(i||a)&&(0,_.jsxs)(p.i,{children:[i&&(0,_.jsx)(`div`,{id:`mineral-modal-title`,className:`modal-title`,children:i}),a&&(0,_.jsx)(`div`,{className:`modal-description`,children:a})]}),(0,_.jsx)(p.n,{children:d}),o&&(0,_.jsx)(p.r,{children:o})]})})})}):null}var b=540,x=72,S={sm:`32vh`,md:`52vh`,lg:`72vh`,full:`92vh`};function C({open:n,onClose:i,title:a,description:o,footer:s,size:c=`md`,closeOnBackdrop:u=!0,closeOnEscape:d=!0,className:f,children:m,style:h,...v}){let y=(0,g.useId)(),[C,w]=(0,g.useState)(!1),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(0),k=(0,g.useRef)(null),A=(0,g.useRef)(0);(0,g.useEffect)(()=>{n&&(w(!0),E(!1),O(0),A.current=0)},[n]),(0,g.useEffect)(()=>{if(!n&&C){E(!0);let e=window.setTimeout(()=>{w(!1),E(!1)},b);return()=>window.clearTimeout(e)}},[n,C]),(0,g.useEffect)(()=>{if(!C)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[C]),(0,g.useEffect)(()=>{if(!n||!d)return;let e=e=>{e.key===`Escape`&&i()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[d,i,n]);function j(e){u&&e.target===e.currentTarget&&i()}function M(e){e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),k.current={pointerId:e.pointerId,startY:e.clientY},O(0),A.current=0}function N(e){let t=k.current;if(!t||t.pointerId!==e.pointerId)return;let n=Math.max(e.clientY-t.startY,0);A.current=n,O(n)}function P(e){let t=k.current;if(!(!t||t.pointerId!==e)){if(k.current=null,A.current>x){O(0),A.current=0,i();return}O(0),A.current=0}}if(!C)return null;let F=S[c],I=D>0?`translateY(${D}px)`:void 0;return(0,_.jsx)(r.t,{children:(0,_.jsx)(`div`,{className:t.t(`mineral-backdrop`,`sheet-backdrop`,T&&`closing`),onMouseDown:j,children:(0,_.jsx)(`div`,{className:`sheet-shell`,style:{transform:I},children:(0,_.jsxs)(p.t,{className:t.t(`sheet`,`size-${c}`,f),role:`dialog`,"aria-modal":`true`,"aria-labelledby":a?y:void 0,style:{...h,height:c===`full`?F:void 0,maxHeight:F},...v,children:[(0,_.jsx)(`button`,{type:`button`,className:`sheet-grabber`,onPointerDown:M,onPointerMove:N,onPointerUp:e=>P(e.pointerId),onPointerCancel:e=>P(e.pointerId),"aria-label":`Drag down to close`,children:(0,_.jsx)(`span`,{className:`sheet-handle`})}),(a||o)&&(0,_.jsxs)(p.i,{className:`sheet-header`,children:[(0,_.jsxs)(`div`,{className:`sheet-copy`,children:[a&&(0,_.jsx)(`div`,{id:y,className:`sheet-title`,children:a}),o&&(0,_.jsx)(`div`,{className:`sheet-description`,children:o})]}),(0,_.jsx)(l.t,{variant:`link`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:i,"aria-label":`Close`,className:`sheet-close`,children:(0,_.jsx)(e.Ki,{})})]}),(0,_.jsx)(p.n,{className:`sheet-body`,children:m}),s&&(0,_.jsx)(p.r,{className:`sheet-footer`,children:s})]})})})})}function w(e){return typeof e==`string`||typeof e==`number`?e.toString():``}function T(e,t){let n=t.toLowerCase().replace(/\s+/g,``).split(`+`),r=n[n.length-1];if(!r)return!1;let i=n.includes(`ctrl`),a=n.includes(`meta`)||n.includes(`cmd`),o=n.includes(`shift`),s=n.includes(`alt`)||n.includes(`option`);return e.key.toLowerCase()===r&&!!i===e.ctrlKey&&!!a===e.metaKey&&!!o===e.shiftKey&&!!s===e.altKey}function E(e,t){if(!t.trim())return e;let n=t.trim().toLowerCase();return e.filter(e=>[w(e.title),w(e.description),w(e.group),w(e.actionLabel),...e.keywords??[]].some(e=>e.toLowerCase().includes(n)))}function D(e){let t=new Map;return e.forEach(e=>{let n=w(e.group)||`General`,r=t.get(n)??{label:e.group??`General`,items:[]};r.items.push(e),t.set(n,r)}),Array.from(t.values())}function O({items:r,featuredItems:i=[],open:v,defaultOpen:y=!1,onOpenChange:b,onSelect:x,title:S=`Command palette`,description:O,trigger:k,shortcut:A=`ctrl+k`,placeholder:j=`Search modules, records and actions...`,emptyLabel:M=`No matching results.`,footer:N,size:P=`lg`,closeOnSelect:F=!0}){let[I,L]=(0,g.useState)(y),[R,z]=(0,g.useState)(``),[B,V]=(0,g.useState)(null),H=v!==void 0,U=H?v:I,W=(0,g.useRef)(null);function G(e){H||L(e),b?.(e)}let K=(0,g.useMemo)(()=>E(r,R),[r,R]),q=(0,g.useMemo)(()=>D(K),[K]),J=(0,g.useMemo)(()=>q.flatMap(e=>e.items),[q]),Y=(0,g.useMemo)(()=>i.length?i:r.slice(0,6),[i,r]);function X(e){e.onSelect?.(),x?.(e),!e.onSelect&&e.href&&window.location.assign(e.href),F&&(G(!1),z(``),V(null))}let{activeIndex:Z,setActiveIndex:Q,resetIndex:$,onKeyDown:ee}=n.t({itemCount:J.length,isOpen:U,onClose:()=>G(!1),onSelect:e=>{let t=J[e];t&&X(t)}});(0,g.useEffect)(()=>{let e=e=>{T(e,A)&&(e.preventDefault(),G(!0))};return window.addEventListener(`keydown`,e),()=>{window.removeEventListener(`keydown`,e)}},[A]),(0,g.useEffect)(()=>{if(!U){$(),V(null);return}queueMicrotask(()=>W.current?.focus())},[U,$]),(0,g.useEffect)(()=>{if(Z<0||Z>=J.length){V(null);return}V(J[Z]?.id??null)},[Z,J]);function te(e){ee(e)}return(0,_.jsxs)(_.Fragment,{children:[k??(0,_.jsx)(l.t,{variant:`filled`,size:`sm`,color:`primary`,iconOnly:!0,startIcon:(0,_.jsx)(e.qi,{}),"aria-label":typeof S==`string`?S:`Open command palette`,onClick:()=>G(!0)}),(0,_.jsx)(C,{open:U,onClose:()=>G(!1),title:S,description:O,size:P,footer:N,children:(0,_.jsxs)(`div`,{className:`command-palette-body`,children:[(0,_.jsx)(`div`,{className:`command-palette-search`,children:(0,_.jsx)(m.t,{ref:W,value:R,onChange:e=>{z(e.target.value),Q(-1)},onKeyDown:te,placeholder:j,clearable:!0,fullWidth:!0})}),(0,_.jsxs)(`div`,{className:`command-palette-grid`,children:[(0,_.jsxs)(p.t,{stretch:!1,children:[(0,_.jsxs)(p.i,{children:[(0,_.jsx)(s.t,{level:4,children:`Featured`}),(0,_.jsx)(o.t,{size:`sm`,tone:`muted`,children:`Quick launch for the most frequent dashboard actions.`})]}),(0,_.jsx)(p.n,{children:(0,_.jsx)(f.t,{columns:4,children:Y.map(t=>{let n=t.actionLabel??t.title,r=typeof n==`string`?n:w(n);return(0,_.jsx)(h.t,{content:n,children:(0,_.jsx)(l.t,{variant:`ghost`,color:`primary`,component:t.component,to:t.to,href:t.href,target:t.target,rel:t.rel,startIcon:t.icon??(0,_.jsx)(e.On,{}),iconOnly:!0,"aria-label":r||void 0,onClick:()=>X(t)})},t.id)})})})]}),(0,_.jsxs)(p.t,{stretch:!1,children:[(0,_.jsxs)(p.i,{children:[(0,_.jsx)(s.t,{level:4,children:`Results`}),(0,_.jsxs)(a.n,{align:`center`,padding:`xs`,children:[(0,_.jsxs)(o.t,{size:`sm`,tone:`muted`,children:[J.length,` ready`]}),(0,_.jsx)(c.t,{children:A.toUpperCase()})]})]}),(0,_.jsx)(p.n,{children:q.length?(0,_.jsx)(d.t,{padding:`xs`,className:`command-palette-results`,children:q.map(n=>(0,_.jsxs)(d.t,{padding:`xs`,children:[(0,_.jsx)(o.t,{size:`sm`,tone:`muted`,children:n.label}),n.items.map(n=>(0,_.jsxs)(`button`,{type:`button`,className:t.t(`command-palette-item`,B===n.id&&`active`),onMouseEnter:()=>V(n.id),onClick:()=>X(n),children:[(0,_.jsx)(`span`,{className:`command-palette-item-icon`,children:n.icon??(0,_.jsx)(e.On,{})}),(0,_.jsxs)(`span`,{className:`command-palette-item-copy`,children:[(0,_.jsx)(`span`,{className:`command-palette-item-title`,children:n.title}),n.description&&(0,_.jsx)(`span`,{className:`command-palette-item-description`,children:n.description})]}),n.badge&&(0,_.jsx)(`span`,{className:`command-palette-item-badge`,children:(0,_.jsx)(u.n,{color:`primary`,size:`sm`,children:n.badge})})]},n.id))]},w(n.label)||`general`))}):(0,_.jsx)(o.t,{tone:`muted`,children:M})})]})]})]})})]})}var k=600;function A(e){return(0,g.isValidElement)(e)&&!!e.type.__drawerHeader}function j(e){return(0,g.isValidElement)(e)&&!!e.type.__drawerBody}function M(e){return(0,g.isValidElement)(e)&&!!e.type.__drawerFooter}function N({children:e}){return(0,_.jsx)(_.Fragment,{children:e})}N.__drawerHeader=!0;function P({children:e}){return(0,_.jsx)(_.Fragment,{children:e})}P.__drawerBody=!0;function F({children:e}){return(0,_.jsx)(_.Fragment,{children:e})}F.__drawerFooter=!0;function I({open:n,onClose:i,side:a=`right`,size:o=`md`,overlay:s=!0,closeOnBackdrop:c=!0,closeOnEscape:u=!0,className:d,children:f,...p}){let[m,h]=(0,g.useState)(!1),[v,y]=(0,g.useState)(!1),b=(0,g.useRef)(null);if((0,g.useEffect)(()=>{n&&(h(!0),y(!1))},[n]),(0,g.useEffect)(()=>{if(!n&&m){y(!0);let e=setTimeout(()=>{h(!1),y(!1)},k);return()=>clearTimeout(e)}},[n,m]),(0,g.useEffect)(()=>{if(!n||!u)return;let e=e=>{e.key===`Escape`&&i()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[n,u,i]),(0,g.useEffect)(()=>{if(!m)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[m]),!m)return null;let x=e=>{c&&e.target===e.currentTarget&&i()},S=null,C=null,w=null,T=null,E=null,D=[];g.Children.forEach(f,e=>{if(A(e)){S=e.props.children,C=e.props;return}if(j(e)){w=e.props,D.push(e.props.children);return}if(M(e)){T=e.props.children,E=e.props;return}D.push(e)});let O=C??{children:void 0},N=w??{children:void 0},P=E??{children:void 0},{children:F,className:I,bordered:L=!1,...R}=O,{children:z,className:B,...V}=N,{children:H,className:U,bordered:W=!1,...G}=P;return(0,_.jsx)(r.t,{children:(0,_.jsx)(`div`,{ref:b,className:t.t(`mineral-backdrop`,`drawer-backdrop`,!s&&`no-overlay`,v&&`closing`),onMouseDown:x,children:(0,_.jsxs)(`div`,{className:t.t(`drawer`,a,o,d),role:`dialog`,"aria-modal":`true`,...p,children:[S&&(0,_.jsxs)(`div`,{...R,className:t.t(`drawer-header`,L&&`bordered`,I),children:[(0,_.jsx)(`div`,{className:`drawer-title`,children:S}),(0,_.jsx)(l.t,{variant:`link`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:i,"aria-label":`Close`,className:`close`,children:(0,_.jsx)(e.Ki,{})})]}),(0,_.jsx)(`div`,{...V,className:t.t(`drawer-body`,B),children:D}),T&&(0,_.jsx)(`div`,{...G,className:t.t(`drawer-footer`,W&&`bordered`,U),children:T})]})})})}function L({title:e,description:n,onConfirm:r,onCancel:a,confirmText:o=`Yes`,cancelText:s=`No`,color:c=`warning`,icon:u,placement:d=`top-start`,open:f,onOpenChange:p,anchorRef:m,className:h}){let v=(0,g.useCallback)(()=>{p(!1),a?.()},[p,a]),y=(0,g.useCallback)(()=>{p(!1),r()},[p,r]);return(0,_.jsxs)(i.t,{open:f,anchorRef:m,onClose:v,placement:d,className:t.t(`popconfirm`,`color-${c}`,h),children:[(0,_.jsxs)(`div`,{className:`body`,children:[u&&(0,_.jsx)(`div`,{className:`icon`,children:u}),(0,_.jsxs)(`div`,{className:`content`,children:[(0,_.jsx)(`div`,{className:`title`,children:e}),n&&(0,_.jsx)(`div`,{className:`description`,children:n})]})]}),(0,_.jsxs)(`div`,{className:`actions`,children:[(0,_.jsx)(l.t,{variant:`ghost`,size:`sm`,color:`neutral`,onClick:v,children:s}),(0,_.jsx)(l.t,{variant:`ghost`,size:`sm`,color:c,onClick:y,children:o})]})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return L}});
2
+ //# sourceMappingURL=overlays-WsQqxqk1.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlays-BpDz9ddf.cjs","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx","../src/components/overlays/MSheet/MSheet.tsx","../src/components/overlays/MCommandPalette/MCommandPalette.tsx","../src/components/overlays/MDrawer/MDrawer.tsx","../src/components/overlays/MPopconfirm/MPopconfirm.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useId, useRef, useState} from 'react'\nimport type {PointerEvent as ReactPointerEvent, MouseEvent} from 'react'\nimport type {MSheetProps, MSheetSize} from './MSheet.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MPortal} from '../../primitives'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MSheet.css'\n\nconst EXIT_DURATION = 540\nconst CLOSE_DRAG_THRESHOLD = 72\n\nconst SHEET_HEIGHTS: Record<MSheetSize, string> = {\n sm: '32vh',\n md: '52vh',\n lg: '72vh',\n full: '92vh',\n}\n\nexport function MSheet({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n style,\n ...rest\n}: MSheetProps) {\n const titleId = useId()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const [dragOffset, setDragOffset] = useState(0)\n\n const dragStateRef = useRef<{pointerId: number; startY: number} | null>(null)\n const dragOffsetRef = useRef(0)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = window.setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => window.clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n function handleBackdropClick(event: MouseEvent<HTMLDivElement>) {\n if (closeOnBackdrop && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n function handleHandlePointerDown(event: ReactPointerEvent<HTMLButtonElement>) {\n event.preventDefault()\n event.currentTarget.setPointerCapture(event.pointerId)\n\n dragStateRef.current = {\n pointerId: event.pointerId,\n startY: event.clientY,\n }\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n function handleHandlePointerMove(event: ReactPointerEvent<HTMLButtonElement>) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== event.pointerId) {\n return\n }\n\n const nextOffset = Math.max(event.clientY - dragState.startY, 0)\n dragOffsetRef.current = nextOffset\n setDragOffset(nextOffset)\n }\n\n function finishDrag(pointerId: number) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== pointerId) {\n return\n }\n\n dragStateRef.current = null\n\n if (dragOffsetRef.current > CLOSE_DRAG_THRESHOLD) {\n setDragOffset(0)\n dragOffsetRef.current = 0\n onClose()\n return\n }\n\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n if (!mounted) return null\n\n const resolvedHeight = SHEET_HEIGHTS[size]\n const transformStyle = dragOffset > 0 ? `translateY(${dragOffset}px)` : undefined\n\n return (\n <MPortal>\n <div\n className={cn('mineral-backdrop', 'sheet-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className=\"sheet-shell\" style={{transform: transformStyle}}>\n <MCard\n className={cn('sheet', `size-${size}`, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n style={{\n ...style,\n height: size === 'full' ? resolvedHeight : undefined,\n maxHeight: resolvedHeight,\n }}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"sheet-grabber\"\n onPointerDown={handleHandlePointerDown}\n onPointerMove={handleHandlePointerMove}\n onPointerUp={(event) => finishDrag(event.pointerId)}\n onPointerCancel={(event) => finishDrag(event.pointerId)}\n aria-label=\"Drag down to close\"\n >\n <span className=\"sheet-handle\" />\n </button>\n\n {(title || description) && (\n <MCardHeader className=\"sheet-header\">\n <div className=\"sheet-copy\">\n {title && (\n <div id={titleId} className=\"sheet-title\">\n {title}\n </div>\n )}\n {description && <div className=\"sheet-description\">{description}</div>}\n </div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"sheet-close\"\n >\n <MCloseIcon />\n </MButton>\n </MCardHeader>\n )}\n\n <MCardBody className=\"sheet-body\">{children}</MCardBody>\n\n {footer && <MCardFooter className=\"sheet-footer\">{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {KeyboardEvent as ReactKeyboardEvent, ReactNode} from 'react'\nimport type {MCommandPaletteItem, MCommandPaletteProps} from './MCommandPalette.types'\nimport {MButton} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MInline, MSimpleGrid, MStack} from '../../layout'\nimport {MSheet} from '../MSheet'\nimport {MTooltip} from '../MTooltip'\nimport {MBadge} from '../../feedback'\nimport {MLinkIcon, MSearchIcon} from '../../../icons'\nimport {MKbd, MHeading, MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport './MCommandPalette.css'\n\nfunction normalizeText(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value.toString()\n }\n\n return ''\n}\n\nfunction matchesShortcut(event: KeyboardEvent, shortcut: string) {\n const normalized = shortcut.toLowerCase().replace(/\\s+/g, '')\n const parts = normalized.split('+')\n const key = parts[parts.length - 1]\n\n if (!key) {\n return false\n }\n\n const expectsCtrl = parts.includes('ctrl')\n const expectsMeta = parts.includes('meta') || parts.includes('cmd')\n const expectsShift = parts.includes('shift')\n const expectsAlt = parts.includes('alt') || parts.includes('option')\n\n return (\n event.key.toLowerCase() === key &&\n !!expectsCtrl === event.ctrlKey &&\n !!expectsMeta === event.metaKey &&\n !!expectsShift === event.shiftKey &&\n !!expectsAlt === event.altKey\n )\n}\n\nfunction filterItems(items: MCommandPaletteItem[], query: string) {\n if (!query.trim()) {\n return items\n }\n\n const normalizedQuery = query.trim().toLowerCase()\n\n return items.filter((item) =>\n [\n normalizeText(item.title),\n normalizeText(item.description),\n normalizeText(item.group),\n normalizeText(item.actionLabel),\n ...(item.keywords ?? []),\n ].some((value) => value.toLowerCase().includes(normalizedQuery))\n )\n}\n\nfunction groupItems(items: MCommandPaletteItem[]) {\n const groups = new Map<string, {label: ReactNode; items: MCommandPaletteItem[]}>()\n\n items.forEach((item) => {\n const key = normalizeText(item.group) || 'General'\n const current = groups.get(key) ?? {label: item.group ?? 'General', items: []}\n current.items.push(item)\n groups.set(key, current)\n })\n\n return Array.from(groups.values())\n}\n\nexport function MCommandPalette({\n items,\n featuredItems = [],\n open,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n title = 'Command palette',\n description,\n trigger,\n shortcut = 'ctrl+k',\n placeholder = 'Search modules, records and actions...',\n emptyLabel = 'No matching results.',\n footer,\n size = 'lg',\n closeOnSelect = true,\n}: MCommandPaletteProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const [query, setQuery] = useState('')\n const [activeItemId, setActiveItemId] = useState<string | null>(null)\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : internalOpen\n const inputRef = useRef<HTMLInputElement>(null)\n\n function setOpenState(nextOpen: boolean) {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n }\n\n const filteredItems = useMemo(() => filterItems(items, query), [items, query])\n const groupedItems = useMemo(() => groupItems(filteredItems), [filteredItems])\n const flattenedItems = useMemo(() => groupedItems.flatMap((group) => group.items), [groupedItems])\n const featured = useMemo(() => (featuredItems.length ? featuredItems : items.slice(0, 6)), [featuredItems, items])\n\n function executeItem(item: MCommandPaletteItem) {\n item.onSelect?.()\n onSelect?.(item)\n\n if (!item.onSelect && item.href) {\n window.location.assign(item.href)\n }\n\n if (closeOnSelect) {\n setOpenState(false)\n setQuery('')\n setActiveItemId(null)\n }\n }\n\n const {activeIndex, setActiveIndex, resetIndex, onKeyDown} = useKeyboardNav({\n itemCount: flattenedItems.length,\n isOpen,\n onClose: () => setOpenState(false),\n onSelect: (index) => {\n const item = flattenedItems[index]\n\n if (item) {\n executeItem(item)\n }\n },\n })\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (matchesShortcut(event, shortcut)) {\n event.preventDefault()\n setOpenState(true)\n }\n }\n\n window.addEventListener('keydown', handleKeydown)\n\n return () => {\n window.removeEventListener('keydown', handleKeydown)\n }\n }, [shortcut])\n\n useEffect(() => {\n if (!isOpen) {\n resetIndex()\n setActiveItemId(null)\n return\n }\n\n queueMicrotask(() => inputRef.current?.focus())\n }, [isOpen, resetIndex])\n\n useEffect(() => {\n if (activeIndex < 0 || activeIndex >= flattenedItems.length) {\n setActiveItemId(null)\n return\n }\n\n setActiveItemId(flattenedItems[activeIndex]?.id ?? null)\n }, [activeIndex, flattenedItems])\n\n function handleSearchKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n onKeyDown(event)\n }\n\n return (\n <>\n {trigger ?? (\n <MButton\n variant={'filled'}\n size={'sm'}\n color={'primary'}\n iconOnly\n startIcon={<MSearchIcon />}\n aria-label={typeof title === 'string' ? title : 'Open command palette'}\n onClick={() => setOpenState(true)}\n />\n )}\n\n <MSheet\n open={isOpen}\n onClose={() => setOpenState(false)}\n title={title}\n description={description}\n size={size}\n footer={footer}\n >\n <div className=\"command-palette-body\">\n <div className=\"command-palette-search\">\n <MInputSearch\n ref={inputRef}\n value={query}\n onChange={(event) => {\n setQuery(event.target.value)\n setActiveIndex(-1)\n }}\n onKeyDown={handleSearchKeyDown}\n placeholder={placeholder}\n clearable\n fullWidth\n />\n </div>\n\n <div className=\"command-palette-grid\">\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Featured</MHeading>\n <MText size={'sm'} tone={'muted'}>\n Quick launch for the most frequent dashboard actions.\n </MText>\n </MCardHeader>\n <MCardBody>\n <MSimpleGrid columns={4}>\n {featured.map((item) => {\n const label = item.actionLabel ?? item.title\n const ariaLabel = typeof label === 'string' ? label : normalizeText(label)\n\n return (\n <MTooltip key={item.id} content={label}>\n <MButton\n variant={'ghost'}\n color={'primary'}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n startIcon={item.icon ?? <MLinkIcon />}\n iconOnly\n aria-label={ariaLabel || undefined}\n onClick={() => executeItem(item)}\n />\n </MTooltip>\n )\n })}\n </MSimpleGrid>\n </MCardBody>\n </MCard>\n\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Results</MHeading>\n <MInline align={'center'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {flattenedItems.length} ready\n </MText>\n <MKbd>{shortcut.toUpperCase()}</MKbd>\n </MInline>\n </MCardHeader>\n <MCardBody>\n {groupedItems.length ? (\n <MStack padding={'xs'} className=\"command-palette-results\">\n {groupedItems.map((group) => (\n <MStack key={normalizeText(group.label) || 'general'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {group.label}\n </MText>\n {group.items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={cn(\n 'command-palette-item',\n activeItemId === item.id && 'active'\n )}\n onMouseEnter={() => setActiveItemId(item.id)}\n onClick={() => executeItem(item)}\n >\n <span className=\"command-palette-item-icon\">\n {item.icon ?? <MLinkIcon />}\n </span>\n <span className=\"command-palette-item-copy\">\n <span className=\"command-palette-item-title\">\n {item.title}\n </span>\n {item.description && (\n <span className=\"command-palette-item-description\">\n {item.description}\n </span>\n )}\n </span>\n {item.badge && (\n <span className=\"command-palette-item-badge\">\n <MBadge color={'primary'} size={'sm'}>\n {item.badge}\n </MBadge>\n </span>\n )}\n </button>\n ))}\n </MStack>\n ))}\n </MStack>\n ) : (\n <MText tone={'muted'}>{emptyLabel}</MText>\n )}\n </MCardBody>\n </MCard>\n </div>\n </div>\n </MSheet>\n </>\n )\n}\n","import {Children, isValidElement, useEffect, useState, useRef} from 'react'\nimport type {MouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MDrawerProps, MDrawerSectionProps} from './MDrawer.types'\nimport {MPortal} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDrawer.css'\n\nconst EXIT_DURATION = 600\n\ntype DrawerSlotElement = ReactElement<MDrawerSectionProps>\n\nfunction isDrawerHeader(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerHeader\n}\n\nfunction isDrawerBody(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerBody\n}\n\nfunction isDrawerFooter(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerFooter\n}\n\nexport function MDrawerHeader({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerHeader as any).__drawerHeader = true\n\nexport function MDrawerBody({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerBody as any).__drawerBody = true\n\nexport function MDrawerFooter({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerFooter as any).__drawerFooter = true\n\nexport function MDrawer({\n open,\n onClose,\n side = 'right',\n size = 'md',\n overlay = true,\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MDrawerProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [open, closeOnEscape, onClose])\n\n useEffect(() => {\n if (!mounted) return\n\n const prev = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = prev\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (e: MouseEvent<HTMLDivElement>) => {\n if (closeOnBackdrop && e.target === e.currentTarget) onClose()\n }\n\n let header: ReactNode = null\n let headerProps: MDrawerSectionProps | null = null\n let bodyProps: MDrawerSectionProps | null = null\n let footer: ReactNode = null\n let footerProps: MDrawerSectionProps | null = null\n const body: ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isDrawerHeader(child)) {\n header = child.props.children\n headerProps = child.props\n return\n }\n\n if (isDrawerBody(child)) {\n bodyProps = child.props\n body.push(child.props.children)\n return\n }\n\n if (isDrawerFooter(child)) {\n footer = child.props.children\n footerProps = child.props\n return\n }\n\n body.push(child)\n })\n\n const headerSection = headerProps ?? ({children: undefined} as MDrawerSectionProps)\n const bodySection = bodyProps ?? ({children: undefined} as MDrawerSectionProps)\n const footerSection = footerProps ?? ({children: undefined} as MDrawerSectionProps)\n const {\n children: _headerChildren,\n className: headerClassName,\n bordered: headerBordered = false,\n ...headerRest\n } = headerSection\n const {children: _bodyChildren, className: bodyClassName, ...bodyRest} = bodySection\n const {\n children: _footerChildren,\n className: footerClassName,\n bordered: footerBordered = false,\n ...footerRest\n } = footerSection\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'drawer-backdrop', !overlay && 'no-overlay', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={cn('drawer', side, size, className)} role=\"dialog\" aria-modal=\"true\" {...rest}>\n {header && (\n <div\n {...headerRest}\n className={cn('drawer-header', headerBordered && 'bordered', headerClassName)}\n >\n <div className=\"drawer-title\">{header}</div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )}\n <div {...bodyRest} className={cn('drawer-body', bodyClassName)}>\n {body}\n </div>\n {footer && (\n <div\n {...footerRest}\n className={cn('drawer-footer', footerBordered && 'bordered', footerClassName)}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useCallback} from 'react'\nimport type {MPopconfirmProps} from './MPopconfirm.types'\nimport {MPopover} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './MPopconfirm.css'\n\nexport function MPopconfirm({\n title,\n description,\n onConfirm,\n onCancel,\n confirmText = 'Yes',\n cancelText = 'No',\n color = 'warning',\n icon,\n placement = 'top-start',\n open,\n onOpenChange,\n anchorRef,\n className,\n}: MPopconfirmProps) {\n const handleCancel = useCallback(() => {\n onOpenChange(false)\n onCancel?.()\n }, [onOpenChange, onCancel])\n\n const handleConfirm = useCallback(() => {\n onOpenChange(false)\n onConfirm()\n }, [onOpenChange, onConfirm])\n\n return (\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={handleCancel}\n placement={placement}\n className={cn('popconfirm', `color-${color}`, className)}\n >\n <div className=\"body\">\n {icon && <div className=\"icon\">{icon}</div>}\n <div className=\"content\">\n <div className=\"title\">{title}</div>\n {description && <div className=\"description\">{description}</div>}\n </div>\n </div>\n <div className=\"actions\">\n <MButton variant=\"ghost\" size=\"sm\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </MButton>\n <MButton variant=\"ghost\" size=\"sm\" color={color} onClick={handleConfirm}>\n {confirmText}\n </MButton>\n </div>\n </MPopover>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"overlays-WsQqxqk1.cjs","names":[],"sources":["../src/components/overlays/MModal/MModal.tsx","../src/components/overlays/MSheet/MSheet.tsx","../src/components/overlays/MCommandPalette/MCommandPalette.tsx","../src/components/overlays/MDrawer/MDrawer.tsx","../src/components/overlays/MPopconfirm/MPopconfirm.tsx"],"sourcesContent":["import {useEffect, useState, useCallback, useRef} from 'react'\nimport type {MouseEvent} from 'react'\nimport type {MModalProps} from './MModal.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MPortal} from '../../primitives'\nimport {cn} from '../../../utils/cn'\nimport './MModal.css'\n\nconst EXIT_DURATION = 540\n\n// Render blocking overlay content for dense details and mobile-friendly dialogs.\nexport function MModal({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MModalProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n // Open → mount immediately\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n // Close → animate out, then unmount\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (!closeOnBackdrop) return\n if (event.target === event.currentTarget) onClose()\n }\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'modal-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={'modal-shell'}>\n <MCard\n className={cn('modal', size, className)}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={title ? 'mineral-modal-title' : undefined}\n {...rest}\n >\n {(title || description) && (\n <MCardHeader>\n {title && (\n <div id={'mineral-modal-title'} className={'modal-title'}>\n {title}\n </div>\n )}\n {description && <div className={'modal-description'}>{description}</div>}\n </MCardHeader>\n )}\n <MCardBody>{children}</MCardBody>\n {footer && <MCardFooter>{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useId, useRef, useState} from 'react'\nimport type {PointerEvent as ReactPointerEvent, MouseEvent} from 'react'\nimport type {MSheetProps, MSheetSize} from './MSheet.types'\nimport {MCard, MCardBody, MCardFooter, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MPortal} from '../../primitives'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MSheet.css'\n\nconst EXIT_DURATION = 540\nconst CLOSE_DRAG_THRESHOLD = 72\n\nconst SHEET_HEIGHTS: Record<MSheetSize, string> = {\n sm: '32vh',\n md: '52vh',\n lg: '72vh',\n full: '92vh',\n}\n\nexport function MSheet({\n open,\n onClose,\n title,\n description,\n footer,\n size = 'md',\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n style,\n ...rest\n}: MSheetProps) {\n const titleId = useId()\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const [dragOffset, setDragOffset] = useState(0)\n\n const dragStateRef = useRef<{pointerId: number; startY: number} | null>(null)\n const dragOffsetRef = useRef(0)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = window.setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => window.clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!mounted) return\n\n const previousOverflow = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n\n return () => {\n document.body.style.overflow = previousOverflow\n }\n }, [mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [closeOnEscape, onClose, open])\n\n function handleBackdropClick(event: MouseEvent<HTMLDivElement>) {\n if (closeOnBackdrop && event.target === event.currentTarget) {\n onClose()\n }\n }\n\n function handleHandlePointerDown(event: ReactPointerEvent<HTMLButtonElement>) {\n event.preventDefault()\n event.currentTarget.setPointerCapture(event.pointerId)\n\n dragStateRef.current = {\n pointerId: event.pointerId,\n startY: event.clientY,\n }\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n function handleHandlePointerMove(event: ReactPointerEvent<HTMLButtonElement>) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== event.pointerId) {\n return\n }\n\n const nextOffset = Math.max(event.clientY - dragState.startY, 0)\n dragOffsetRef.current = nextOffset\n setDragOffset(nextOffset)\n }\n\n function finishDrag(pointerId: number) {\n const dragState = dragStateRef.current\n if (!dragState || dragState.pointerId !== pointerId) {\n return\n }\n\n dragStateRef.current = null\n\n if (dragOffsetRef.current > CLOSE_DRAG_THRESHOLD) {\n setDragOffset(0)\n dragOffsetRef.current = 0\n onClose()\n return\n }\n\n setDragOffset(0)\n dragOffsetRef.current = 0\n }\n\n if (!mounted) return null\n\n const resolvedHeight = SHEET_HEIGHTS[size]\n const transformStyle = dragOffset > 0 ? `translateY(${dragOffset}px)` : undefined\n\n return (\n <MPortal>\n <div\n className={cn('mineral-backdrop', 'sheet-backdrop', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className=\"sheet-shell\" style={{transform: transformStyle}}>\n <MCard\n className={cn('sheet', `size-${size}`, className)}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n style={{\n ...style,\n height: size === 'full' ? resolvedHeight : undefined,\n maxHeight: resolvedHeight,\n }}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"sheet-grabber\"\n onPointerDown={handleHandlePointerDown}\n onPointerMove={handleHandlePointerMove}\n onPointerUp={(event) => finishDrag(event.pointerId)}\n onPointerCancel={(event) => finishDrag(event.pointerId)}\n aria-label=\"Drag down to close\"\n >\n <span className=\"sheet-handle\" />\n </button>\n\n {(title || description) && (\n <MCardHeader className=\"sheet-header\">\n <div className=\"sheet-copy\">\n {title && (\n <div id={titleId} className=\"sheet-title\">\n {title}\n </div>\n )}\n {description && <div className=\"sheet-description\">{description}</div>}\n </div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"sheet-close\"\n >\n <MCloseIcon />\n </MButton>\n </MCardHeader>\n )}\n\n <MCardBody className=\"sheet-body\">{children}</MCardBody>\n\n {footer && <MCardFooter className=\"sheet-footer\">{footer}</MCardFooter>}\n </MCard>\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {KeyboardEvent as ReactKeyboardEvent, ReactNode} from 'react'\nimport type {MCommandPaletteItem, MCommandPaletteProps} from './MCommandPalette.types'\nimport {MButton} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MInline, MSimpleGrid, MStack} from '../../layout'\nimport {MSheet} from '../MSheet'\nimport {MTooltip} from '../MTooltip'\nimport {MBadge} from '../../feedback'\nimport {MLinkIcon, MSearchIcon} from '../../../icons'\nimport {MKbd, MHeading, MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\nimport {useKeyboardNav} from '../../../utils/useKeyboardNav'\nimport './MCommandPalette.css'\n\nfunction normalizeText(value: ReactNode) {\n if (typeof value === 'string' || typeof value === 'number') {\n return value.toString()\n }\n\n return ''\n}\n\nfunction matchesShortcut(event: KeyboardEvent, shortcut: string) {\n const normalized = shortcut.toLowerCase().replace(/\\s+/g, '')\n const parts = normalized.split('+')\n const key = parts[parts.length - 1]\n\n if (!key) {\n return false\n }\n\n const expectsCtrl = parts.includes('ctrl')\n const expectsMeta = parts.includes('meta') || parts.includes('cmd')\n const expectsShift = parts.includes('shift')\n const expectsAlt = parts.includes('alt') || parts.includes('option')\n\n return (\n event.key.toLowerCase() === key &&\n !!expectsCtrl === event.ctrlKey &&\n !!expectsMeta === event.metaKey &&\n !!expectsShift === event.shiftKey &&\n !!expectsAlt === event.altKey\n )\n}\n\nfunction filterItems(items: MCommandPaletteItem[], query: string) {\n if (!query.trim()) {\n return items\n }\n\n const normalizedQuery = query.trim().toLowerCase()\n\n return items.filter((item) =>\n [\n normalizeText(item.title),\n normalizeText(item.description),\n normalizeText(item.group),\n normalizeText(item.actionLabel),\n ...(item.keywords ?? []),\n ].some((value) => value.toLowerCase().includes(normalizedQuery))\n )\n}\n\nfunction groupItems(items: MCommandPaletteItem[]) {\n const groups = new Map<string, {label: ReactNode; items: MCommandPaletteItem[]}>()\n\n items.forEach((item) => {\n const key = normalizeText(item.group) || 'General'\n const current = groups.get(key) ?? {label: item.group ?? 'General', items: []}\n current.items.push(item)\n groups.set(key, current)\n })\n\n return Array.from(groups.values())\n}\n\nexport function MCommandPalette({\n items,\n featuredItems = [],\n open,\n defaultOpen = false,\n onOpenChange,\n onSelect,\n title = 'Command palette',\n description,\n trigger,\n shortcut = 'ctrl+k',\n placeholder = 'Search modules, records and actions...',\n emptyLabel = 'No matching results.',\n footer,\n size = 'lg',\n closeOnSelect = true,\n}: MCommandPaletteProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const [query, setQuery] = useState('')\n const [activeItemId, setActiveItemId] = useState<string | null>(null)\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : internalOpen\n const inputRef = useRef<HTMLInputElement>(null)\n\n function setOpenState(nextOpen: boolean) {\n if (!isControlled) {\n setInternalOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n }\n\n const filteredItems = useMemo(() => filterItems(items, query), [items, query])\n const groupedItems = useMemo(() => groupItems(filteredItems), [filteredItems])\n const flattenedItems = useMemo(() => groupedItems.flatMap((group) => group.items), [groupedItems])\n const featured = useMemo(() => (featuredItems.length ? featuredItems : items.slice(0, 6)), [featuredItems, items])\n\n function executeItem(item: MCommandPaletteItem) {\n item.onSelect?.()\n onSelect?.(item)\n\n if (!item.onSelect && item.href) {\n window.location.assign(item.href)\n }\n\n if (closeOnSelect) {\n setOpenState(false)\n setQuery('')\n setActiveItemId(null)\n }\n }\n\n const {activeIndex, setActiveIndex, resetIndex, onKeyDown} = useKeyboardNav({\n itemCount: flattenedItems.length,\n isOpen,\n onClose: () => setOpenState(false),\n onSelect: (index) => {\n const item = flattenedItems[index]\n\n if (item) {\n executeItem(item)\n }\n },\n })\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (matchesShortcut(event, shortcut)) {\n event.preventDefault()\n setOpenState(true)\n }\n }\n\n window.addEventListener('keydown', handleKeydown)\n\n return () => {\n window.removeEventListener('keydown', handleKeydown)\n }\n }, [shortcut])\n\n useEffect(() => {\n if (!isOpen) {\n resetIndex()\n setActiveItemId(null)\n return\n }\n\n queueMicrotask(() => inputRef.current?.focus())\n }, [isOpen, resetIndex])\n\n useEffect(() => {\n if (activeIndex < 0 || activeIndex >= flattenedItems.length) {\n setActiveItemId(null)\n return\n }\n\n setActiveItemId(flattenedItems[activeIndex]?.id ?? null)\n }, [activeIndex, flattenedItems])\n\n function handleSearchKeyDown(event: ReactKeyboardEvent<HTMLInputElement>) {\n onKeyDown(event)\n }\n\n return (\n <>\n {trigger ?? (\n <MButton\n variant={'filled'}\n size={'sm'}\n color={'primary'}\n iconOnly\n startIcon={<MSearchIcon />}\n aria-label={typeof title === 'string' ? title : 'Open command palette'}\n onClick={() => setOpenState(true)}\n />\n )}\n\n <MSheet\n open={isOpen}\n onClose={() => setOpenState(false)}\n title={title}\n description={description}\n size={size}\n footer={footer}\n >\n <div className=\"command-palette-body\">\n <div className=\"command-palette-search\">\n <MInputSearch\n ref={inputRef}\n value={query}\n onChange={(event) => {\n setQuery(event.target.value)\n setActiveIndex(-1)\n }}\n onKeyDown={handleSearchKeyDown}\n placeholder={placeholder}\n clearable\n fullWidth\n />\n </div>\n\n <div className=\"command-palette-grid\">\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Featured</MHeading>\n <MText size={'sm'} tone={'muted'}>\n Quick launch for the most frequent dashboard actions.\n </MText>\n </MCardHeader>\n <MCardBody>\n <MSimpleGrid columns={4}>\n {featured.map((item) => {\n const label = item.actionLabel ?? item.title\n const ariaLabel = typeof label === 'string' ? label : normalizeText(label)\n\n return (\n <MTooltip key={item.id} content={label}>\n <MButton\n variant={'ghost'}\n color={'primary'}\n component={item.component}\n to={item.to}\n href={item.href}\n target={item.target}\n rel={item.rel}\n startIcon={item.icon ?? <MLinkIcon />}\n iconOnly\n aria-label={ariaLabel || undefined}\n onClick={() => executeItem(item)}\n />\n </MTooltip>\n )\n })}\n </MSimpleGrid>\n </MCardBody>\n </MCard>\n\n <MCard stretch={false}>\n <MCardHeader>\n <MHeading level={4}>Results</MHeading>\n <MInline align={'center'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {flattenedItems.length} ready\n </MText>\n <MKbd>{shortcut.toUpperCase()}</MKbd>\n </MInline>\n </MCardHeader>\n <MCardBody>\n {groupedItems.length ? (\n <MStack padding={'xs'} className=\"command-palette-results\">\n {groupedItems.map((group) => (\n <MStack key={normalizeText(group.label) || 'general'} padding={'xs'}>\n <MText size={'sm'} tone={'muted'}>\n {group.label}\n </MText>\n {group.items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={cn(\n 'command-palette-item',\n activeItemId === item.id && 'active'\n )}\n onMouseEnter={() => setActiveItemId(item.id)}\n onClick={() => executeItem(item)}\n >\n <span className=\"command-palette-item-icon\">\n {item.icon ?? <MLinkIcon />}\n </span>\n <span className=\"command-palette-item-copy\">\n <span className=\"command-palette-item-title\">\n {item.title}\n </span>\n {item.description && (\n <span className=\"command-palette-item-description\">\n {item.description}\n </span>\n )}\n </span>\n {item.badge && (\n <span className=\"command-palette-item-badge\">\n <MBadge color={'primary'} size={'sm'}>\n {item.badge}\n </MBadge>\n </span>\n )}\n </button>\n ))}\n </MStack>\n ))}\n </MStack>\n ) : (\n <MText tone={'muted'}>{emptyLabel}</MText>\n )}\n </MCardBody>\n </MCard>\n </div>\n </div>\n </MSheet>\n </>\n )\n}\n","import {Children, isValidElement, useEffect, useState, useRef} from 'react'\nimport type {MouseEvent, ReactElement, ReactNode} from 'react'\nimport type {MDrawerProps, MDrawerSectionProps} from './MDrawer.types'\nimport {MPortal} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDrawer.css'\n\nconst EXIT_DURATION = 600\n\ntype DrawerSlotElement = ReactElement<MDrawerSectionProps>\n\nfunction isDrawerHeader(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerHeader\n}\n\nfunction isDrawerBody(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerBody\n}\n\nfunction isDrawerFooter(child: ReactNode): child is DrawerSlotElement {\n return isValidElement(child) && !!(child.type as any).__drawerFooter\n}\n\nexport function MDrawerHeader({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerHeader as any).__drawerHeader = true\n\nexport function MDrawerBody({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerBody as any).__drawerBody = true\n\nexport function MDrawerFooter({children}: MDrawerSectionProps) {\n return <>{children}</>\n}\n;(MDrawerFooter as any).__drawerFooter = true\n\nexport function MDrawer({\n open,\n onClose,\n side = 'right',\n size = 'md',\n overlay = true,\n closeOnBackdrop = true,\n closeOnEscape = true,\n className,\n children,\n ...rest\n}: MDrawerProps) {\n const [mounted, setMounted] = useState(false)\n const [closing, setClosing] = useState(false)\n const backdropRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (open) {\n setMounted(true)\n setClosing(false)\n }\n }, [open])\n\n useEffect(() => {\n if (!open && mounted) {\n setClosing(true)\n const timer = setTimeout(() => {\n setMounted(false)\n setClosing(false)\n }, EXIT_DURATION)\n return () => clearTimeout(timer)\n }\n }, [open, mounted])\n\n useEffect(() => {\n if (!open || !closeOnEscape) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => document.removeEventListener('keydown', handleKeyDown)\n }, [open, closeOnEscape, onClose])\n\n useEffect(() => {\n if (!mounted) return\n\n const prev = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = prev\n }\n }, [mounted])\n\n if (!mounted) return null\n\n const handleBackdropClick = (e: MouseEvent<HTMLDivElement>) => {\n if (closeOnBackdrop && e.target === e.currentTarget) onClose()\n }\n\n let header: ReactNode = null\n let headerProps: MDrawerSectionProps | null = null\n let bodyProps: MDrawerSectionProps | null = null\n let footer: ReactNode = null\n let footerProps: MDrawerSectionProps | null = null\n const body: ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isDrawerHeader(child)) {\n header = child.props.children\n headerProps = child.props\n return\n }\n\n if (isDrawerBody(child)) {\n bodyProps = child.props\n body.push(child.props.children)\n return\n }\n\n if (isDrawerFooter(child)) {\n footer = child.props.children\n footerProps = child.props\n return\n }\n\n body.push(child)\n })\n\n const headerSection = headerProps ?? ({children: undefined} as MDrawerSectionProps)\n const bodySection = bodyProps ?? ({children: undefined} as MDrawerSectionProps)\n const footerSection = footerProps ?? ({children: undefined} as MDrawerSectionProps)\n const {\n children: _headerChildren,\n className: headerClassName,\n bordered: headerBordered = false,\n ...headerRest\n } = headerSection\n const {children: _bodyChildren, className: bodyClassName, ...bodyRest} = bodySection\n const {\n children: _footerChildren,\n className: footerClassName,\n bordered: footerBordered = false,\n ...footerRest\n } = footerSection\n\n return (\n <MPortal>\n <div\n ref={backdropRef}\n className={cn('mineral-backdrop', 'drawer-backdrop', !overlay && 'no-overlay', closing && 'closing')}\n onMouseDown={handleBackdropClick}\n >\n <div className={cn('drawer', side, size, className)} role=\"dialog\" aria-modal=\"true\" {...rest}>\n {header && (\n <div\n {...headerRest}\n className={cn('drawer-header', headerBordered && 'bordered', headerClassName)}\n >\n <div className=\"drawer-title\">{header}</div>\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"close\"\n >\n <MCloseIcon />\n </MButton>\n </div>\n )}\n <div {...bodyRest} className={cn('drawer-body', bodyClassName)}>\n {body}\n </div>\n {footer && (\n <div\n {...footerRest}\n className={cn('drawer-footer', footerBordered && 'bordered', footerClassName)}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </MPortal>\n )\n}\n","import {useCallback} from 'react'\nimport type {MPopconfirmProps} from './MPopconfirm.types'\nimport {MPopover} from '../../primitives'\nimport {MButton} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './MPopconfirm.css'\n\nexport function MPopconfirm({\n title,\n description,\n onConfirm,\n onCancel,\n confirmText = 'Yes',\n cancelText = 'No',\n color = 'warning',\n icon,\n placement = 'top-start',\n open,\n onOpenChange,\n anchorRef,\n className,\n}: MPopconfirmProps) {\n const handleCancel = useCallback(() => {\n onOpenChange(false)\n onCancel?.()\n }, [onOpenChange, onCancel])\n\n const handleConfirm = useCallback(() => {\n onOpenChange(false)\n onConfirm()\n }, [onOpenChange, onConfirm])\n\n return (\n <MPopover\n open={open}\n anchorRef={anchorRef}\n onClose={handleCancel}\n placement={placement}\n className={cn('popconfirm', `color-${color}`, className)}\n >\n <div className=\"body\">\n {icon && <div className=\"icon\">{icon}</div>}\n <div className=\"content\">\n <div className=\"title\">{title}</div>\n {description && <div className=\"description\">{description}</div>}\n </div>\n </div>\n <div className=\"actions\">\n <MButton variant=\"ghost\" size=\"sm\" color=\"neutral\" onClick={handleCancel}>\n {cancelText}\n </MButton>\n <MButton variant=\"ghost\" size=\"sm\" color={color} onClick={handleConfirm}>\n {confirmText}\n </MButton>\n </div>\n </MPopover>\n )\n}\n"],"mappings":"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"}
package/dist/overlays.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  const {ensureStyles}=require('./style-runtime.cjs')
2
2
  ensureStyles()
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./overlays-BpDz9ddf.cjs`),t=require(`./MTooltip-C-x_SqMx.cjs`),n=require(`./MDropdownMenu-Coy-0Wee.cjs`);exports.MCommandPalette=e.o,exports.MDrawer=e.n,exports.MDrawerBody=e.r,exports.MDrawerFooter=e.i,exports.MDrawerHeader=e.a,exports.MDropdownDivider=n.t,exports.MDropdownGroup=n.n,exports.MDropdownItem=n.r,exports.MDropdownMenu=n.i,exports.MModal=e.c,exports.MPopconfirm=e.t,exports.MSheet=e.s,exports.MTooltip=t.t;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./overlays-WsQqxqk1.cjs`),t=require(`./MTooltip-gpvKWQzD.cjs`),n=require(`./MDropdownMenu-1RqWjxHp.cjs`);exports.MCommandPalette=e.o,exports.MDrawer=e.n,exports.MDrawerBody=e.r,exports.MDrawerFooter=e.i,exports.MDrawerHeader=e.a,exports.MDropdownDivider=n.t,exports.MDropdownGroup=n.n,exports.MDropdownItem=n.r,exports.MDropdownMenu=n.i,exports.MModal=e.c,exports.MPopconfirm=e.t,exports.MSheet=e.s,exports.MTooltip=t.t;
package/dist/overlays.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./overlays-NwVsvmlb.js";
4
- import { t as c } from "./MTooltip-Cbj80F3o.js";
5
- import { i as l, n as u, r as d, t as f } from "./MDropdownMenu-BgEtrL-T.js";
3
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./overlays-BfIrSHDo.js";
4
+ import { t as c } from "./MTooltip-Ctyjwxv-.js";
5
+ import { i as l, n as u, r as d, t as f } from "./MDropdownMenu-omTEUh4V.js";
6
6
  export { i as MCommandPalette, r as MDrawer, a as MDrawerBody, n as MDrawerFooter, e as MDrawerHeader, f as MDropdownDivider, u as MDropdownGroup, d as MDropdownItem, l as MDropdownMenu, t as MModal, s as MPopconfirm, o as MSheet, c as MTooltip };
@@ -1,3 +1,3 @@
1
1
  function e(e){let t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a=t.concat(/[A-Z]+/,n),o={scope:`variable`,match:`\\$+`+r},s={scope:`meta`,variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},c={scope:`subst`,variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},l=e.inherit(e.APOS_STRING_MODE,{illegal:null}),u=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c)}),d={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(c),"on:begin":(e,t)=>{t.data._beginMatch=e[1]||e[2]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}},f=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),p=`[
2
2
  ]`,m={scope:`string`,variants:[u,l,d,f]},h={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},g=[`false`,`null`,`true`],_=`__CLASS__.__DIR__.__FILE__.__FUNCTION__.__COMPILER_HALT_OFFSET__.__LINE__.__METHOD__.__NAMESPACE__.__TRAIT__.die.echo.exit.include.include_once.print.require.require_once.array.abstract.and.as.binary.bool.boolean.break.callable.case.catch.class.clone.const.continue.declare.default.do.double.else.elseif.empty.enddeclare.endfor.endforeach.endif.endswitch.endwhile.enum.eval.extends.final.finally.float.for.foreach.from.global.goto.if.implements.instanceof.insteadof.int.integer.interface.isset.iterable.list.match|0.mixed.new.never.object.or.private.protected.public.readonly.real.return.string.switch.throw.trait.try.unset.use.var.void.while.xor.yield`.split(`.`),v=`Error|0.AppendIterator.ArgumentCountError.ArithmeticError.ArrayIterator.ArrayObject.AssertionError.BadFunctionCallException.BadMethodCallException.CachingIterator.CallbackFilterIterator.CompileError.Countable.DirectoryIterator.DivisionByZeroError.DomainException.EmptyIterator.ErrorException.Exception.FilesystemIterator.FilterIterator.GlobIterator.InfiniteIterator.InvalidArgumentException.IteratorIterator.LengthException.LimitIterator.LogicException.MultipleIterator.NoRewindIterator.OutOfBoundsException.OutOfRangeException.OuterIterator.OverflowException.ParentIterator.ParseError.RangeException.RecursiveArrayIterator.RecursiveCachingIterator.RecursiveCallbackFilterIterator.RecursiveDirectoryIterator.RecursiveFilterIterator.RecursiveIterator.RecursiveIteratorIterator.RecursiveRegexIterator.RecursiveTreeIterator.RegexIterator.RuntimeException.SeekableIterator.SplDoublyLinkedList.SplFileInfo.SplFileObject.SplFixedArray.SplHeap.SplMaxHeap.SplMinHeap.SplObjectStorage.SplObserver.SplPriorityQueue.SplQueue.SplStack.SplSubject.SplTempFileObject.TypeError.UnderflowException.UnexpectedValueException.UnhandledMatchError.ArrayAccess.BackedEnum.Closure.Fiber.Generator.Iterator.IteratorAggregate.Serializable.Stringable.Throwable.Traversable.UnitEnum.WeakReference.WeakMap.Directory.__PHP_Incomplete_Class.parent.php_user_filter.self.static.stdClass`.split(`.`),y={keyword:_,literal:(e=>{let t=[];return e.forEach(e=>{t.push(e),e.toLowerCase()===e?t.push(e.toUpperCase()):t.push(e.toLowerCase())}),t})(g),built_in:v},b=e=>e.map(e=>e.replace(/\|\d+$/,``)),x={variants:[{match:[/new/,t.concat(p,`+`),t.concat(`(?!`,b(v).join(`\\b|`),`\\b)`),i],scope:{1:`keyword`,4:`title.class`}}]},S=t.concat(r,`\\b(?!\\()`),C={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),S],scope:{1:`title.class`,3:`variable.constant`}},{match:[i,t.concat(`::`,t.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[i,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},w={scope:`attr`,match:t.concat(r,t.lookahead(`:`),t.lookahead(/(?!::)/))},T={relevance:0,begin:/\(/,end:/\)/,keywords:y,contains:[w,o,C,e.C_BLOCK_COMMENT_MODE,m,h,x]},E={relevance:0,match:[/\b/,t.concat(`(?!fn\\b|function\\b|`,b(_).join(`\\b|`),`|`,b(v).join(`\\b|`),`\\b)`),r,t.concat(p,`*`),t.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[T]};T.contains.push(E);let D=[w,C,e.C_BLOCK_COMMENT_MODE,m,h,x],O={begin:t.concat(/#\[\s*\\?/,t.either(i,a)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:g,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:g,keyword:[`new`,`array`]},contains:[`self`,...D]},...D,{scope:`meta`,variants:[{match:i},{match:a}]}]};return{case_insensitive:!1,keywords:y,contains:[O,e.HASH_COMMENT_MODE,e.COMMENT(`//`,`$`),e.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},s,{scope:`variable.language`,match:/\$this\b/},o,E,C,{match:[/const/,/\s/,r],scope:{1:`keyword`,3:`variable.constant`}},x,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},e.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:y,contains:[`self`,O,o,C,e.C_BLOCK_COMMENT_MODE,m,h]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},e.UNDERSCORE_TITLE_MODE]},m,h]}}exports.default=e;
3
- //# sourceMappingURL=php-ClxZCTCr.cjs.map
3
+ //# sourceMappingURL=php-CssmZWrI.cjs.map