@banzamel/mineralui 2.1.1 → 2.1.3

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 (263) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-BcO8hMnU.js → MAvatar-DtJCj3dD.js} +1 -1
  3. package/dist/{MAvatar-BcO8hMnU.js.map → MAvatar-DtJCj3dD.js.map} +1 -1
  4. package/dist/{MAvatar-C4N2ztLf.cjs → MAvatar-bUWENcq-.cjs} +2 -2
  5. package/dist/{MAvatar-C4N2ztLf.cjs.map → MAvatar-bUWENcq-.cjs.map} +1 -1
  6. package/dist/{MButton-B8kFTOPJ.cjs → MButton-R08y1HCT.cjs} +2 -2
  7. package/dist/{MButton-B8kFTOPJ.cjs.map → MButton-R08y1HCT.cjs.map} +1 -1
  8. package/dist/{MButtonGroup-C3Ar0gfk.cjs → MButtonGroup-C-LiXWRC.cjs} +2 -2
  9. package/dist/{MButtonGroup-C3Ar0gfk.cjs.map → MButtonGroup-C-LiXWRC.cjs.map} +1 -1
  10. package/dist/{MCard-szs5kIek.cjs → MCard-1OVOl4Ql.cjs} +2 -2
  11. package/dist/{MCard-szs5kIek.cjs.map → MCard-1OVOl4Ql.cjs.map} +1 -1
  12. package/dist/{MCard-dLMQQ97e.js → MCard-azpp4YVD.js} +1 -1
  13. package/dist/{MCard-dLMQQ97e.js.map → MCard-azpp4YVD.js.map} +1 -1
  14. package/dist/{MCheckbox-CATWU11D.cjs → MCheckbox-CM5HJQWW.cjs} +2 -2
  15. package/dist/{MCheckbox-CATWU11D.cjs.map → MCheckbox-CM5HJQWW.cjs.map} +1 -1
  16. package/dist/{MConflictIllustration-Mnz1q7Ey.cjs → MConflictIllustration-B2AtfpYO.cjs} +2 -2
  17. package/dist/{MConflictIllustration-Mnz1q7Ey.cjs.map → MConflictIllustration-B2AtfpYO.cjs.map} +1 -1
  18. package/dist/{MDetailList-BBgUaSDJ.cjs → MDetailList-DTLU7HQZ.cjs} +2 -2
  19. package/dist/{MDetailList-BBgUaSDJ.cjs.map → MDetailList-DTLU7HQZ.cjs.map} +1 -1
  20. package/dist/{MDetailList-zlwdeA-r.js → MDetailList-fDhVyhm7.js} +4 -4
  21. package/dist/{MDetailList-zlwdeA-r.js.map → MDetailList-fDhVyhm7.js.map} +1 -1
  22. package/dist/{MDropdownMenu-omTEUh4V.js → MDropdownMenu-BeD_DxPr.js} +2 -2
  23. package/dist/{MDropdownMenu-omTEUh4V.js.map → MDropdownMenu-BeD_DxPr.js.map} +1 -1
  24. package/dist/{MDropdownMenu-1RqWjxHp.cjs → MDropdownMenu-C2lftqSx.cjs} +2 -2
  25. package/dist/{MDropdownMenu-1RqWjxHp.cjs.map → MDropdownMenu-C2lftqSx.cjs.map} +1 -1
  26. package/dist/{MGrid-B2qzYD6S.cjs → MGrid-B_0kFUws.cjs} +2 -2
  27. package/dist/{MGrid-B2qzYD6S.cjs.map → MGrid-B_0kFUws.cjs.map} +1 -1
  28. package/dist/{MGrid-Cy44dWyC.js → MGrid-CYL3cbUI.js} +1 -1
  29. package/dist/{MGrid-Cy44dWyC.js.map → MGrid-CYL3cbUI.js.map} +1 -1
  30. package/dist/{MHeading-CyuxSnhl.cjs → MHeading-BLnb3dNv.cjs} +2 -2
  31. package/dist/{MHeading-CyuxSnhl.cjs.map → MHeading-BLnb3dNv.cjs.map} +1 -1
  32. package/dist/{MI18nProvider-C90EVyFz.cjs → MI18nProvider-Cg-vxV6j.cjs} +2 -2
  33. package/dist/{MI18nProvider-C90EVyFz.cjs.map → MI18nProvider-Cg-vxV6j.cjs.map} +1 -1
  34. package/dist/{MInput-Cw9ZVcNO.cjs → MInput-BpTlP8GE.cjs} +2 -2
  35. package/dist/{MInput-Cw9ZVcNO.cjs.map → MInput-BpTlP8GE.cjs.map} +1 -1
  36. package/dist/{MInput-Baokf17V.js → MInput-C8ObGzQk.js} +2 -2
  37. package/dist/{MInput-Baokf17V.js.map → MInput-C8ObGzQk.js.map} +1 -1
  38. package/dist/{MInputCVC-DNzDAbfU.js → MInputCVC-DvUOzpYp.js} +24 -24
  39. package/dist/{MInputCVC-DNzDAbfU.js.map → MInputCVC-DvUOzpYp.js.map} +1 -1
  40. package/dist/{MInputCVC-Bqcp5Uu3.cjs → MInputCVC-_2ALihF1.cjs} +2 -2
  41. package/dist/{MInputCVC-Bqcp5Uu3.cjs.map → MInputCVC-_2ALihF1.cjs.map} +1 -1
  42. package/dist/{MInputSearch-D9bp1QAz.cjs → MInputSearch-9wcXlY8-.cjs} +2 -2
  43. package/dist/{MInputSearch-D9bp1QAz.cjs.map → MInputSearch-9wcXlY8-.cjs.map} +1 -1
  44. package/dist/{MInputSearch-Bswi-Kj0.js → MInputSearch-BM8gLlJ1.js} +3 -3
  45. package/dist/{MInputSearch-Bswi-Kj0.js.map → MInputSearch-BM8gLlJ1.js.map} +1 -1
  46. package/dist/{MKbd-CiwDwFwA.cjs → MKbd-n4fhKIxb.cjs} +2 -2
  47. package/dist/{MKbd-CiwDwFwA.cjs.map → MKbd-n4fhKIxb.cjs.map} +1 -1
  48. package/dist/{MLink-B7gXA8qY.cjs → MLink-Biipj7xz.cjs} +2 -2
  49. package/dist/{MLink-B7gXA8qY.cjs.map → MLink-Biipj7xz.cjs.map} +1 -1
  50. package/dist/MLoader-CnvWqFtA.js +41 -0
  51. package/dist/MLoader-CnvWqFtA.js.map +1 -0
  52. package/dist/MLoader-XcpKlLrd.cjs +2 -0
  53. package/dist/MLoader-XcpKlLrd.cjs.map +1 -0
  54. package/dist/{MPagination-C2GmGkVA.cjs → MPagination-C6QQdEj_.cjs} +2 -2
  55. package/dist/{MPagination-C2GmGkVA.cjs.map → MPagination-C6QQdEj_.cjs.map} +1 -1
  56. package/dist/{MPagination-DpUtB6t6.js → MPagination-CgmNEAZX.js} +6 -6
  57. package/dist/{MPagination-DpUtB6t6.js.map → MPagination-CgmNEAZX.js.map} +1 -1
  58. package/dist/{MPopover-BVBN5SJi.cjs → MPopover-Cweomcj2.cjs} +2 -2
  59. package/dist/MPopover-Cweomcj2.cjs.map +1 -0
  60. package/dist/{MPopover-BRuwva-c.js → MPopover-DT3vclV1.js} +6 -3
  61. package/dist/MPopover-DT3vclV1.js.map +1 -0
  62. package/dist/{MPortal-Djrw2WhD.cjs → MPortal-BciZHNDC.cjs} +2 -2
  63. package/dist/{MPortal-Djrw2WhD.cjs.map → MPortal-BciZHNDC.cjs.map} +1 -1
  64. package/dist/{MSimpleGrid-BVeCK9Ci.js → MSimpleGrid-BWKurW6H.js} +1 -1
  65. package/dist/{MSimpleGrid-BVeCK9Ci.js.map → MSimpleGrid-BWKurW6H.js.map} +1 -1
  66. package/dist/{MSimpleGrid-BR352NiK.cjs → MSimpleGrid-BwNfaxQP.cjs} +2 -2
  67. package/dist/{MSimpleGrid-BR352NiK.cjs.map → MSimpleGrid-BwNfaxQP.cjs.map} +1 -1
  68. package/dist/{MSkeleton-DyQBeuVT.cjs → MSkeleton-CLSU5pL6.cjs} +2 -2
  69. package/dist/{MSkeleton-DyQBeuVT.cjs.map → MSkeleton-CLSU5pL6.cjs.map} +1 -1
  70. package/dist/{MSlider-Ds2Fls86.cjs → MSlider-DZnMB49q.cjs} +2 -2
  71. package/dist/{MSlider-Ds2Fls86.cjs.map → MSlider-DZnMB49q.cjs.map} +1 -1
  72. package/dist/{MStack-BdVvJN5S.cjs → MStack-BP_BUeCc.cjs} +2 -2
  73. package/dist/{MStack-BdVvJN5S.cjs.map → MStack-BP_BUeCc.cjs.map} +1 -1
  74. package/dist/{MStack-h11pHEmc.js → MStack-CSCw6to2.js} +1 -1
  75. package/dist/{MStack-h11pHEmc.js.map → MStack-CSCw6to2.js.map} +1 -1
  76. package/dist/{MSubText-DWNMJupD.cjs → MSubText-VHsgFsv2.cjs} +2 -2
  77. package/dist/{MSubText-DWNMJupD.cjs.map → MSubText-VHsgFsv2.cjs.map} +1 -1
  78. package/dist/{MSurface-BS9l7GDH.cjs → MSurface-CYeVFOw_.cjs} +2 -2
  79. package/dist/{MSurface-BS9l7GDH.cjs.map → MSurface-CYeVFOw_.cjs.map} +1 -1
  80. package/dist/{MTag-BwQbycZO.cjs → MTag-BzTp1crT.cjs} +2 -2
  81. package/dist/{MTag-BwQbycZO.cjs.map → MTag-BzTp1crT.cjs.map} +1 -1
  82. package/dist/{MTag-BF6htPr-.js → MTag-D9q6faIk.js} +2 -2
  83. package/dist/{MTag-BF6htPr-.js.map → MTag-D9q6faIk.js.map} +1 -1
  84. package/dist/{MText-Cjt1oTPr.cjs → MText-j6Zbbj5Y.cjs} +2 -2
  85. package/dist/{MText-Cjt1oTPr.cjs.map → MText-j6Zbbj5Y.cjs.map} +1 -1
  86. package/dist/{MTooltip-gpvKWQzD.cjs → MTooltip-BEfO9jTe.cjs} +2 -2
  87. package/dist/{MTooltip-gpvKWQzD.cjs.map → MTooltip-BEfO9jTe.cjs.map} +1 -1
  88. package/dist/{MTooltip-Ctyjwxv-.js → MTooltip-BTJkzOah.js} +1 -1
  89. package/dist/{MTooltip-Ctyjwxv-.js.map → MTooltip-BTJkzOah.js.map} +1 -1
  90. package/dist/{MTreeView-DTsi4bye.js → MTreeView-B1J7uqd1.js} +63 -63
  91. package/dist/{MTreeView-DTsi4bye.js.map → MTreeView-B1J7uqd1.js.map} +1 -1
  92. package/dist/{MTreeView-BS60bIj7.cjs → MTreeView-DuQkm0ZV.cjs} +2 -2
  93. package/dist/{MTreeView-BS60bIj7.cjs.map → MTreeView-DuQkm0ZV.cjs.map} +1 -1
  94. package/dist/{arduino-CA8n1Qq3.cjs → arduino-DdDHMIWB.cjs} +1 -1
  95. package/dist/{arduino-CA8n1Qq3.cjs.map → arduino-DdDHMIWB.cjs.map} +1 -1
  96. package/dist/{arduino-WKgN2ikT.js → arduino-UeOrXakL.js} +1 -1
  97. package/dist/{arduino-WKgN2ikT.js.map → arduino-UeOrXakL.js.map} +1 -1
  98. package/dist/{bash-DObE5DDq.cjs → bash-B17_F5Sw.cjs} +1 -1
  99. package/dist/{bash-DObE5DDq.cjs.map → bash-B17_F5Sw.cjs.map} +1 -1
  100. package/dist/{bash-vBtVVub9.js → bash-CrHemXky.js} +1 -1
  101. package/dist/{bash-vBtVVub9.js.map → bash-CrHemXky.js.map} +1 -1
  102. package/dist/{c-7RiNX--m.js → c-D9302r2r.js} +1 -1
  103. package/dist/{c-7RiNX--m.js.map → c-D9302r2r.js.map} +1 -1
  104. package/dist/{c-Bb-MtVny.cjs → c-ODLxeMV_.cjs} +1 -1
  105. package/dist/{c-Bb-MtVny.cjs.map → c-ODLxeMV_.cjs.map} +1 -1
  106. package/dist/{cards-BkRqUJ2V.js → cards-DYmK8TpL.js} +407 -389
  107. package/dist/{cards-BkRqUJ2V.js.map → cards-DYmK8TpL.js.map} +1 -1
  108. package/dist/cards-fRWZkts9.cjs +2 -0
  109. package/dist/cards-fRWZkts9.cjs.map +1 -0
  110. package/dist/cards.cjs +1 -1
  111. package/dist/cards.js +2 -2
  112. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  113. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +16 -0
  114. package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
  115. package/dist/components/data/MDataTable/MDataTable.types.d.ts +16 -0
  116. package/dist/components/data/useMCardGrid.d.ts +2 -0
  117. package/dist/components/data/useMTable.d.ts +2 -0
  118. package/dist/{controls-CSTIosnc.js → controls-BKAhqjNM.js} +3 -3
  119. package/dist/{controls-CSTIosnc.js.map → controls-BKAhqjNM.js.map} +1 -1
  120. package/dist/{controls-BopaNWb_.cjs → controls-CT_0lIPr.cjs} +2 -2
  121. package/dist/{controls-BopaNWb_.cjs.map → controls-CT_0lIPr.cjs.map} +1 -1
  122. package/dist/controls.cjs +1 -1
  123. package/dist/controls.js +1 -1
  124. package/dist/{core-o3cw16Db.cjs → core-DBpQf3uY.cjs} +1 -1
  125. package/dist/{core-o3cw16Db.cjs.map → core-DBpQf3uY.cjs.map} +1 -1
  126. package/dist/{core-DC6zSfZo.js → core-yRqh2XLu.js} +1 -1
  127. package/dist/{core-DC6zSfZo.js.map → core-yRqh2XLu.js.map} +1 -1
  128. package/dist/{cpp-CaNnFjgy.js → cpp-CLYSpJBB.js} +1 -1
  129. package/dist/{cpp-CaNnFjgy.js.map → cpp-CLYSpJBB.js.map} +1 -1
  130. package/dist/{cpp-BVKrJvso.cjs → cpp-DuTgLZC1.cjs} +1 -1
  131. package/dist/{cpp-BVKrJvso.cjs.map → cpp-DuTgLZC1.cjs.map} +1 -1
  132. package/dist/{css-NqBDP7ZC.js → css-BgGh0eG1.js} +1 -1
  133. package/dist/{css-NqBDP7ZC.js.map → css-BgGh0eG1.js.map} +1 -1
  134. package/dist/{css-C2sjPfLl.cjs → css-D0f-qByc.cjs} +1 -1
  135. package/dist/{css-C2sjPfLl.cjs.map → css-D0f-qByc.cjs.map} +1 -1
  136. package/dist/data-CuynADWM.cjs +2 -0
  137. package/dist/data-CuynADWM.cjs.map +1 -0
  138. package/dist/data-D8WFA3Et.js +674 -0
  139. package/dist/data-D8WFA3Et.js.map +1 -0
  140. package/dist/data.cjs +1 -1
  141. package/dist/data.js +2 -2
  142. package/dist/{display-B7Wh5nnM.js → display-BF4jASt9.js} +30 -30
  143. package/dist/{display-B7Wh5nnM.js.map → display-BF4jASt9.js.map} +1 -1
  144. package/dist/{display-BgZbdTDd.cjs → display-DMix8BmD.cjs} +3 -3
  145. package/dist/{display-BgZbdTDd.cjs.map → display-DMix8BmD.cjs.map} +1 -1
  146. package/dist/display.cjs +1 -1
  147. package/dist/display.js +2 -2
  148. package/dist/{dropdowns-DGvRs-VE.js → dropdowns-5cJf-6UG.js} +92 -92
  149. package/dist/{dropdowns-DGvRs-VE.js.map → dropdowns-5cJf-6UG.js.map} +1 -1
  150. package/dist/{dropdowns-Befc3lmC.cjs → dropdowns-C-ASvu7P.cjs} +2 -2
  151. package/dist/{dropdowns-Befc3lmC.cjs.map → dropdowns-C-ASvu7P.cjs.map} +1 -1
  152. package/dist/dropdowns.cjs +1 -1
  153. package/dist/dropdowns.js +1 -1
  154. package/dist/feedback-4TjD57rX.cjs +2 -0
  155. package/dist/{feedback-C8RfsfYJ.cjs.map → feedback-4TjD57rX.cjs.map} +1 -1
  156. package/dist/feedback-DW-cehnb.js +255 -0
  157. package/dist/feedback-DW-cehnb.js.map +1 -0
  158. package/dist/feedback.cjs +1 -1
  159. package/dist/feedback.js +5 -4
  160. package/dist/{form-DSlAmTT1.cjs → form-BWGLrCPi.cjs} +2 -2
  161. package/dist/{form-DSlAmTT1.cjs.map → form-BWGLrCPi.cjs.map} +1 -1
  162. package/dist/{form-BWWLNji0.js → form-CgH1hioG.js} +1 -1
  163. package/dist/{form-BWWLNji0.js.map → form-CgH1hioG.js.map} +1 -1
  164. package/dist/form.cjs +1 -1
  165. package/dist/form.js +1 -1
  166. package/dist/i18n.cjs +1 -1
  167. package/dist/icons/glyphs/MCoinIcon.d.ts +2 -0
  168. package/dist/icons/glyphs/MMoneyIcon.d.ts +2 -0
  169. package/dist/icons/glyphs/MReceiptIcon.d.ts +2 -0
  170. package/dist/icons/glyphs/MWalletIcon.d.ts +2 -0
  171. package/dist/icons/index.d.ts +4 -0
  172. package/dist/{icons-DLP-Rs6z.js → icons-CBMl-kOM.js} +221 -166
  173. package/dist/icons-CBMl-kOM.js.map +1 -0
  174. package/dist/icons-D675Im0B.cjs +2 -0
  175. package/dist/icons-D675Im0B.cjs.map +1 -0
  176. package/dist/icons.cjs +1 -1
  177. package/dist/icons.js +2 -2
  178. package/dist/illustrations.cjs +1 -1
  179. package/dist/index.cjs +1 -1
  180. package/dist/index.js +53 -52
  181. package/dist/{inputs-BZxorlLv.js → inputs-CQoi402V.js} +180 -180
  182. package/dist/{inputs-BZxorlLv.js.map → inputs-CQoi402V.js.map} +1 -1
  183. package/dist/{inputs-BiZXyZSE.cjs → inputs-yaaTPTsY.cjs} +2 -2
  184. package/dist/{inputs-BiZXyZSE.cjs.map → inputs-yaaTPTsY.cjs.map} +1 -1
  185. package/dist/inputs.cjs +1 -1
  186. package/dist/inputs.js +4 -4
  187. package/dist/{javascript-BgwyrBZi.cjs → javascript-CGjvHPZ1.cjs} +1 -1
  188. package/dist/{javascript-BgwyrBZi.cjs.map → javascript-CGjvHPZ1.cjs.map} +1 -1
  189. package/dist/{javascript-BltQGQAn.js → javascript-CX3JhsYu.js} +1 -1
  190. package/dist/{javascript-BltQGQAn.js.map → javascript-CX3JhsYu.js.map} +1 -1
  191. package/dist/{json-DWmLrT_r.cjs → json-B8svQsK0.cjs} +1 -1
  192. package/dist/{json-DWmLrT_r.cjs.map → json-B8svQsK0.cjs.map} +1 -1
  193. package/dist/{json-DbCISZXi.js → json-BPIcVdlp.js} +1 -1
  194. package/dist/{json-DbCISZXi.js.map → json-BPIcVdlp.js.map} +1 -1
  195. package/dist/{layout-Ct6ViwDQ.cjs → layout-CfolwT8L.cjs} +2 -2
  196. package/dist/{layout-Ct6ViwDQ.cjs.map → layout-CfolwT8L.cjs.map} +1 -1
  197. package/dist/{layout-CnEOTJnJ.js → layout-i8H5tIbO.js} +34 -34
  198. package/dist/{layout-CnEOTJnJ.js.map → layout-i8H5tIbO.js.map} +1 -1
  199. package/dist/layout.cjs +1 -1
  200. package/dist/layout.js +5 -5
  201. package/dist/{licensing-hMT26Vnv.cjs → licensing-DysMClel.cjs} +2 -2
  202. package/dist/{licensing-hMT26Vnv.cjs.map → licensing-DysMClel.cjs.map} +1 -1
  203. package/dist/{locale-BNyzqXAU.js → locale-CS1-IY_I.js} +1 -1
  204. package/dist/{locale-BNyzqXAU.js.map → locale-CS1-IY_I.js.map} +1 -1
  205. package/dist/{locale-C5ik0c3d.cjs → locale-CbnstsMH.cjs} +2 -2
  206. package/dist/{locale-C5ik0c3d.cjs.map → locale-CbnstsMH.cjs.map} +1 -1
  207. package/dist/{media-DZaGKh5V.cjs → media-DRz3JZfr.cjs} +2 -2
  208. package/dist/{media-DZaGKh5V.cjs.map → media-DRz3JZfr.cjs.map} +1 -1
  209. package/dist/{media-DxnELIZO.js → media-vOQOIYFD.js} +11 -11
  210. package/dist/{media-DxnELIZO.js.map → media-vOQOIYFD.js.map} +1 -1
  211. package/dist/media.cjs +1 -1
  212. package/dist/media.js +2 -2
  213. package/dist/{overlays-BfIrSHDo.js → overlays-CAcGmqNv.js} +54 -54
  214. package/dist/{overlays-BfIrSHDo.js.map → overlays-CAcGmqNv.js.map} +1 -1
  215. package/dist/{overlays-WsQqxqk1.cjs → overlays-zPzbHW5P.cjs} +2 -2
  216. package/dist/{overlays-WsQqxqk1.cjs.map → overlays-zPzbHW5P.cjs.map} +1 -1
  217. package/dist/overlays.cjs +1 -1
  218. package/dist/overlays.js +3 -3
  219. package/dist/{php-dSXzrC_Z.js → php-CBRzjinf.js} +1 -1
  220. package/dist/{php-dSXzrC_Z.js.map → php-CBRzjinf.js.map} +1 -1
  221. package/dist/{php-CssmZWrI.cjs → php-CKyelegh.cjs} +1 -1
  222. package/dist/{php-CssmZWrI.cjs.map → php-CKyelegh.cjs.map} +1 -1
  223. package/dist/primitives.cjs +1 -1
  224. package/dist/primitives.js +1 -1
  225. package/dist/style-runtime.cjs +1 -1
  226. package/dist/style-runtime.js +1 -1
  227. package/dist/styles.css +1 -1
  228. package/dist/{theme-DltOEniv.cjs → theme-BfNZicWk.cjs} +2 -2
  229. package/dist/{theme-DltOEniv.cjs.map → theme-BfNZicWk.cjs.map} +1 -1
  230. package/dist/theme.cjs +1 -1
  231. package/dist/{typescript-DeaMWtYF.cjs → typescript-D6PDzwkM.cjs} +1 -1
  232. package/dist/{typescript-DeaMWtYF.cjs.map → typescript-D6PDzwkM.cjs.map} +1 -1
  233. package/dist/{typescript-CxKdKTKz.js → typescript-Xt3Sotw5.js} +1 -1
  234. package/dist/{typescript-CxKdKTKz.js.map → typescript-Xt3Sotw5.js.map} +1 -1
  235. package/dist/{typography-vZwd5E5h.cjs → typography-Dk9kIORI.cjs} +2 -2
  236. package/dist/{typography-vZwd5E5h.cjs.map → typography-Dk9kIORI.cjs.map} +1 -1
  237. package/dist/typography.cjs +1 -1
  238. package/dist/{useGhostText-Nw9XCpWS.cjs → useGhostText-Dmkw3Am8.cjs} +2 -2
  239. package/dist/{useGhostText-Nw9XCpWS.cjs.map → useGhostText-Dmkw3Am8.cjs.map} +1 -1
  240. package/dist/{useInteractionEffect-Gs9HBi2T.cjs → useInteractionEffect-DFTdcWHl.cjs} +2 -2
  241. package/dist/{useInteractionEffect-Gs9HBi2T.cjs.map → useInteractionEffect-DFTdcWHl.cjs.map} +1 -1
  242. package/dist/{useKeyboardNav-DDN-oeqd.cjs → useKeyboardNav-HVG9JFD2.cjs} +2 -2
  243. package/dist/{useKeyboardNav-DDN-oeqd.cjs.map → useKeyboardNav-HVG9JFD2.cjs.map} +1 -1
  244. package/dist/utils.cjs +1 -1
  245. package/dist/{xml-BUuYcpx2.cjs → xml-4YlaGgjP.cjs} +1 -1
  246. package/dist/{xml-BUuYcpx2.cjs.map → xml-4YlaGgjP.cjs.map} +1 -1
  247. package/dist/{xml-BPoVPJlJ.js → xml-CrpWqcDk.js} +1 -1
  248. package/dist/{xml-BPoVPJlJ.js.map → xml-CrpWqcDk.js.map} +1 -1
  249. package/package.json +1 -1
  250. package/dist/MPopover-BRuwva-c.js.map +0 -1
  251. package/dist/MPopover-BVBN5SJi.cjs.map +0 -1
  252. package/dist/cards-DK7j03NN.cjs +0 -2
  253. package/dist/cards-DK7j03NN.cjs.map +0 -1
  254. package/dist/data-CjVcevdT.js +0 -654
  255. package/dist/data-CjVcevdT.js.map +0 -1
  256. package/dist/data-D8qUIvWv.cjs +0 -2
  257. package/dist/data-D8qUIvWv.cjs.map +0 -1
  258. package/dist/feedback-C445FEHb.js +0 -290
  259. package/dist/feedback-C445FEHb.js.map +0 -1
  260. package/dist/feedback-C8RfsfYJ.cjs +0 -2
  261. package/dist/icons-DLP-Rs6z.js.map +0 -1
  262. package/dist/icons-DX_cScBq.cjs +0 -2
  263. package/dist/icons-DX_cScBq.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-D8WFA3Et.js","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx","../src/components/data/MTaskList/MTaskList.tsx","../src/components/data/MWeekGrid/MWeekGrid.tsx","../src/components/data/useMTable.ts","../src/components/data/useMCardGrid.ts"],"sourcesContent":["import {useCallback, useMemo, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MButton, MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MPopover} from '../../primitives'\nimport {MLoader} from '../../feedback'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon, MFilterIcon, MSortIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nfunction getNestedValue(obj: unknown, key: string): unknown {\n const parts = key.split('.')\n let val: unknown = obj\n\n for (const p of parts) {\n if (val == null || typeof val !== 'object') return undefined\n val = (val as Record<string, unknown>)[p]\n }\n\n return val\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n loading = false,\n loadingLabel = 'Loading',\n scrollOffset,\n sort: controlledSort,\n onSortChange,\n search: controlledSearch,\n onSearchChange,\n searchKeys,\n filterKeys = [],\n filters: controlledFilters,\n onFiltersChange,\n sortKeys = [],\n page: controlledPage,\n onPageChange,\n total,\n manualSearch = false,\n manualFilters = false,\n manualSort = false,\n manualPagination = false,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n style,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [internalSearch, setInternalSearch] = useState('')\n const [internalFilters, setInternalFilters] = useState<Record<string, string[]>>({})\n const [internalPage, setInternalPage] = useState(1)\n const [filterOpen, setFilterOpen] = useState(false)\n const [sortOpen, setSortOpen] = useState(false)\n const filterBtnRef = useRef<HTMLElement>(null)\n const sortBtnRef = useRef<HTMLElement>(null)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const search = controlledSearch !== undefined ? controlledSearch : internalSearch\n const filters = controlledFilters !== undefined ? controlledFilters : internalFilters\n const page = controlledPage !== undefined ? controlledPage : internalPage\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n const setSearch = useCallback(\n (next: string) => {\n if (controlledSearch === undefined) setInternalSearch(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onSearchChange?.(next)\n },\n [controlledSearch, controlledPage, manualPagination, onSearchChange]\n )\n\n const setFilters = useCallback(\n (next: Record<string, string[]>) => {\n if (controlledFilters === undefined) setInternalFilters(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onFiltersChange?.(next)\n },\n [controlledFilters, controlledPage, manualPagination, onFiltersChange]\n )\n\n const setSort = useCallback(\n (next: MDataTableSort | null) => {\n if (controlledSort === undefined) setInternalSort(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onSortChange?.(next)\n },\n [controlledSort, controlledPage, manualPagination, onSortChange]\n )\n\n const rootRef = useRef<HTMLDivElement>(null)\n\n const setPage = useCallback(\n (next: number) => {\n if (controlledPage === undefined) setInternalPage(next)\n onPageChange?.(next)\n // After page change, bring the top of the table back into view so\n // the user does not stay scrolled deep into the previous page's rows.\n rootRef.current?.scrollIntoView({block: 'start', behavior: 'smooth'})\n },\n [controlledPage, onPageChange]\n )\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n setSort(next)\n }\n\n function toggleFilterValue(key: string, value: string) {\n const current = filters[key] ?? []\n const next = current.includes(value) ? current.filter((item) => item !== value) : [...current, value]\n setFilters({...filters, [key]: next})\n }\n\n const filterOptions = useMemo(() => {\n const map: Record<string, string[]> = {}\n\n for (const filterKey of filterKeys) {\n if (filterKey.options) {\n map[filterKey.key] = filterKey.options\n continue\n }\n\n const values = new Set<string>()\n\n for (const row of data) {\n const value = getNestedValue(row, filterKey.key)\n if (value != null) values.add(String(value))\n }\n\n map[filterKey.key] = Array.from(values).sort()\n }\n\n return map\n }, [data, filterKeys])\n\n const filtered = useMemo(() => {\n let result: T[] = data\n\n if (!manualSearch && filterable && search.trim()) {\n const query = search.toLowerCase()\n\n if (searchKeys && searchKeys.length > 0) {\n result = result.filter((row) =>\n searchKeys.some((key) => {\n const value = getNestedValue(row, key)\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n } else {\n result = result.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }\n }\n\n if (!manualFilters) {\n for (const [key, selectedValues] of Object.entries(filters)) {\n if (!selectedValues || selectedValues.length === 0) continue\n\n result = result.filter((row) => {\n const value = getNestedValue(row, key)\n return value != null && selectedValues.includes(String(value))\n })\n }\n }\n\n return result\n }, [data, manualSearch, manualFilters, filterable, search, searchKeys, columns, filters])\n\n const sorted = useMemo(() => {\n if (manualSort || !activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n const sortKeyAllowed = sortKeys.some((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable && !sortKeyAllowed) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable, sortKeys, manualSort])\n\n const totalItems = manualPagination ? (total ?? sorted.length) : sorted.length\n const totalPages = pagination ? Math.max(1, Math.ceil(totalItems / pageSize)) : 1\n const pageData = useMemo(() => {\n if (!pagination || manualPagination) return sorted\n const start = (page - 1) * pageSize\n return sorted.slice(start, start + pageSize)\n }, [sorted, pagination, manualPagination, page, pageSize])\n\n const allKeys = pageData.map((row, index) => getRowKey(row, (page - 1) * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n const openFilter = useCallback(() => {\n setFilterOpen((v) => !v)\n setSortOpen(false)\n }, [])\n\n const openSort = useCallback(() => {\n setSortOpen((v) => !v)\n setFilterOpen(false)\n }, [])\n\n const activeSortMenuItem = sortKeys.find((item) => item.key === activeSort?.key)\n const showToolbar = filterable || filterKeys.length > 0 || sortKeys.length > 0\n\n return (\n <div\n ref={rootRef}\n className={cn('data-table', className)}\n style={scrollOffset !== undefined ? {scrollMarginTop: scrollOffset, ...style} : style}\n {...rest}\n >\n {showToolbar && (\n <div className=\"toolbar\">\n {filterable && (\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n onClear={() => setSearch('')}\n />\n )}\n\n {(filterKeys.length > 0 || sortKeys.length > 0) && (\n <div className=\"toolbar-actions\">\n {filterKeys.length > 0 && (\n <>\n <MButton\n ref={filterBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={<MFilterIcon />}\n aria-expanded={filterOpen}\n onClick={openFilter}\n >\n Filter\n </MButton>\n <MPopover\n open={filterOpen}\n anchorRef={filterBtnRef}\n onClose={() => setFilterOpen(false)}\n placement=\"bottom-end\"\n className=\"data-table-dropdown\"\n >\n {filterKeys.map((filterKey) => (\n <div key={filterKey.key} className=\"data-table-filter-group\">\n <span className=\"data-table-filter-label\">{filterKey.label}</span>\n {(filterOptions[filterKey.key] ?? []).map((option) => (\n <div key={option} className=\"data-table-filter-option\">\n <MCheckbox\n size=\"sm\"\n clickEffect=\"none\"\n checked={filters[filterKey.key]?.includes(option) ?? false}\n onChange={() => toggleFilterValue(filterKey.key, option)}\n label={option}\n />\n </div>\n ))}\n </div>\n ))}\n </MPopover>\n </>\n )}\n\n {sortKeys.length > 0 && (\n <>\n <MButton\n ref={sortBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={\n activeSort ? (\n activeSort.dir === 'asc' ? (\n <MArrowUpIcon />\n ) : (\n <MArrowDownIcon />\n )\n ) : (\n <MSortIcon />\n )\n }\n aria-expanded={sortOpen}\n onClick={openSort}\n >\n {activeSortMenuItem ? `Sort: ${activeSortMenuItem.label}` : 'Sort'}\n </MButton>\n <MPopover\n open={sortOpen}\n anchorRef={sortBtnRef}\n onClose={() => setSortOpen(false)}\n placement=\"bottom-end\"\n className=\"data-table-dropdown\"\n >\n {sortKeys.map((sortItem) => (\n <button\n key={sortItem.key}\n type=\"button\"\n className={cn(\n 'data-table-sort-item',\n activeSort?.key === sortItem.key && 'active'\n )}\n onClick={() => {\n if (activeSort?.key === sortItem.key) {\n setSort({\n key: sortItem.key,\n dir: activeSort.dir === 'asc' ? 'desc' : 'asc',\n })\n } else {\n setSort({key: sortItem.key, dir: 'asc'})\n }\n }}\n >\n {sortItem.label}\n {activeSort?.key === sortItem.key && (\n <span className=\"data-table-sort-dir\">\n {activeSort.dir === 'asc' ? (\n <MArrowUpIcon className=\"data-table-sort-icon\" />\n ) : (\n <MArrowDownIcon className=\"data-table-sort-icon\" />\n )}\n </span>\n )}\n </button>\n ))}\n </MPopover>\n </>\n )}\n </div>\n )}\n </div>\n )}\n <div className={cn('data-table-body', loading && 'loading')} aria-busy={loading || undefined}>\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, (page - 1) * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render(\n (row as any)[col.key],\n row,\n (page - 1) * pageSize + index\n )\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {loading && (\n <div className=\"data-table-loading\" role=\"status\" aria-live=\"polite\">\n <MLoader center={false} minHeight=\"auto\" label={loadingLabel} />\n </div>\n )}\n </div>\n {pagination && totalPages > 1 && (\n <MPagination total={totalItems} page={page} pageSize={pageSize} onChange={setPage} />\n )}\n </div>\n )\n}\n","import type {MTaskListProps} from './MTaskList.types'\nimport {MCheckbox} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './MTaskList.css'\n\n// Render an interactive checklist with toggleable task items.\nexport function MTaskList({\n items,\n color = 'primary',\n size = 'md',\n strikethrough = true,\n onChange,\n className,\n ...rest\n}: MTaskListProps) {\n return (\n <div className={cn('task list', `color-${color}`, `size-${size}`, className)} role=\"list\" {...rest}>\n {items.map((item) => (\n <div\n key={item.id}\n className={cn('task item', item.checked && 'checked', item.disabled && 'disabled')}\n role=\"listitem\"\n onClick={(event) => {\n if (item.disabled) return\n if ((event.target as HTMLElement).closest('.checkbox')) return\n onChange?.(item.id, !(item.checked ?? false))\n }}\n >\n <MCheckbox\n className=\"task control\"\n checked={item.checked ?? false}\n color={color}\n size={size}\n disabled={item.disabled}\n onChange={(e) => onChange?.(item.id, e.target.checked)}\n clickEffect=\"ripple\"\n />\n <span className={cn('task label', item.checked && strikethrough && 'done')}>{item.label}</span>\n </div>\n ))}\n </div>\n )\n}\n","import {Fragment, useMemo, type CSSProperties, type ReactNode} from 'react'\n\nimport {MStack} from '../../layout'\nimport {MTooltip} from '../../overlays'\nimport {MHeading, MSubText, MText} from '../../typography'\nimport {cn} from '../../../utils/cn'\n\nimport type {\n MWeekGridBand,\n MWeekGridCell,\n MWeekGridCellContext,\n MWeekGridProps,\n} from './MWeekGrid.types'\n\nimport './MWeekGrid.css'\n\nconst DEFAULT_DAYS = 7\nconst DEFAULT_SLOTS = 24\n\nconst DEFAULT_DAY_LABELS_FROM_SUNDAY = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\nconst DEFAULT_BAND_LABELS: [string, string, string, string] = ['None', 'Few', 'Some', 'Many']\n\nfunction densityBand(value: number, max: number): MWeekGridBand {\n if (max <= 0 || value <= 0) return 0\n const ratio = value / max\n if (ratio >= 0.66) return 3\n if (ratio >= 0.33) return 2\n return 1\n}\n\nfunction buildGrid(data: MWeekGridProps['data'], days: number, slots: number): number[][] {\n const grid: number[][] = Array.from({length: days}, () => Array.from({length: slots}, () => 0))\n\n if (Array.isArray(data) && data.length > 0 && Array.isArray(data[0])) {\n const matrix = data as number[][]\n for (let day = 0; day < Math.min(days, matrix.length); day += 1) {\n const row = matrix[day]\n if (!row) continue\n for (let slot = 0; slot < Math.min(slots, row.length); slot += 1) {\n grid[day][slot] = row[slot] ?? 0\n }\n }\n return grid\n }\n\n for (const cell of data as MWeekGridCell[]) {\n if (cell.day < 0 || cell.day >= days) continue\n if (cell.slot < 0 || cell.slot >= slots) continue\n grid[cell.day][cell.slot] = cell.value\n }\n return grid\n}\n\nfunction resolveMax(grid: number[][], max?: number): number {\n if (typeof max === 'number') return max\n let best = 0\n for (const row of grid) {\n for (const value of row) {\n if (value > best) best = value\n }\n }\n return best\n}\n\nfunction resolveDayLabels(\n days: number,\n weekStart: 0 | 1,\n custom?: string[]\n): {label: string; calendarDay: number}[] {\n if (custom && custom.length >= days) {\n return Array.from({length: days}, (_, index) => ({label: custom[index], calendarDay: index}))\n }\n\n if (days === 7) {\n const order = weekStart === 1 ? [1, 2, 3, 4, 5, 6, 0] : [0, 1, 2, 3, 4, 5, 6]\n return order.map((calendarDay) => ({\n label: DEFAULT_DAY_LABELS_FROM_SUNDAY[calendarDay],\n calendarDay,\n }))\n }\n\n return Array.from({length: days}, (_, index) => ({\n label: String(index + 1),\n calendarDay: index,\n }))\n}\n\nfunction resolveSlotLabels(slots: number, custom?: string[]): string[] {\n if (custom && custom.length >= slots) return custom.slice(0, slots)\n if (slots === 24) {\n return Array.from({length: 24}, (_, hour) => hour.toString().padStart(2, '0'))\n }\n return Array.from({length: slots}, (_, slot) => String(slot + 1))\n}\n\nfunction defaultRenderCell(ctx: MWeekGridCellContext): ReactNode {\n return ctx.value > 0 ? ctx.value : ''\n}\n\nfunction defaultRenderTooltip(ctx: MWeekGridCellContext, dayLabel: string, slotLabel: string): ReactNode {\n return `${dayLabel} ${slotLabel} — ${ctx.value}`\n}\n\n/**\n * Week-grid heatmap — rows = days, columns = hours (or any fixed slot range).\n * Cells colour-shade by density (four discrete bands) and accept tooltips,\n * custom renderers and click handlers. Common use cases: availability /\n * attendance maps, booking density, opening hours, peak-load views.\n */\nexport function MWeekGrid({\n data,\n max,\n days = DEFAULT_DAYS,\n slots = DEFAULT_SLOTS,\n dayLabels,\n slotLabels,\n weekStart = 1,\n color = 'warning',\n title,\n description,\n hint,\n peakLabel,\n renderCell,\n renderTooltip,\n onCellClick,\n showLegend = true,\n bandLabels = DEFAULT_BAND_LABELS,\n legendUnit,\n rowLabelWidth = 48,\n cellHeight = 24,\n cellMinWidth = 24,\n className,\n style,\n ...rest\n}: MWeekGridProps) {\n const grid = useMemo(() => buildGrid(data, days, slots), [data, days, slots])\n const resolvedMax = useMemo(() => resolveMax(grid, max), [grid, max])\n const rows = useMemo(\n () => resolveDayLabels(days, weekStart, dayLabels),\n [days, weekStart, dayLabels]\n )\n const cols = useMemo(() => resolveSlotLabels(slots, slotLabels), [slots, slotLabels])\n\n const matrixStyle: CSSProperties = {\n gridTemplateColumns: `${rowLabelWidth}px repeat(${slots}, minmax(${cellMinWidth}px, 1fr))`,\n }\n\n const wrapperStyle: CSSProperties = {\n ['--mineral-week-grid-color' as never]: `var(--mineral-${color})`,\n ...style,\n }\n\n const hasHeader = title != null || description != null || hint != null || peakLabel != null\n\n return (\n <div className={cn('mineral-week-grid', className)} style={wrapperStyle} {...rest}>\n {hasHeader && (\n <MStack spacing={'xs'}>\n <div className={'mineral-week-grid__title-row'}>\n <div className={'mineral-week-grid__title-text'}>\n {title != null && (\n typeof title === 'string' ? <MHeading level={5}>{title}</MHeading> : title\n )}\n {description != null && (\n typeof description === 'string' ? (\n <MSubText tone={'muted'}>{description}</MSubText>\n ) : (\n description\n )\n )}\n </div>\n {peakLabel != null && (\n <MText size={'sm'} tone={'muted'}>\n {peakLabel}\n </MText>\n )}\n </div>\n {hint != null && (\n <MSubText size={'xs'} tone={'muted'}>\n {hint}\n </MSubText>\n )}\n </MStack>\n )}\n\n <div className={'mineral-week-grid__matrix'} style={matrixStyle}>\n <div />\n {cols.map((label, slot) => (\n <div key={`col-${slot}`} className={'mineral-week-grid__col-header'}>\n <MSubText size={'xs'} tone={'muted'}>\n {label}\n </MSubText>\n </div>\n ))}\n\n {rows.map(({label: dayLabel, calendarDay}, rowIndex) => (\n <Fragment key={`row-${rowIndex}-${calendarDay}`}>\n <div className={'mineral-week-grid__row-label'}>\n <MSubText size={'xs'} tone={'muted'}>\n {dayLabel}\n </MSubText>\n </div>\n {cols.map((slotLabel, slot) => {\n const value = grid[calendarDay]?.[slot] ?? 0\n const band = densityBand(value, resolvedMax)\n const ctx: MWeekGridCellContext = {day: calendarDay, slot, value, band}\n const cellContent = renderCell ? renderCell(ctx) : defaultRenderCell(ctx)\n const tooltipContent = renderTooltip\n ? renderTooltip(ctx)\n : defaultRenderTooltip(ctx, dayLabel, slotLabel)\n\n const cellClasses = cn(\n 'mineral-week-grid__cell',\n `mineral-week-grid__cell--band-${band}`,\n onCellClick && 'mineral-week-grid__cell--interactive',\n !onCellClick && tooltipContent != null && 'mineral-week-grid__cell--tooltip'\n )\n\n const cellNode = (\n <div\n className={cellClasses}\n style={{height: cellHeight}}\n onClick={onCellClick ? () => onCellClick(ctx) : undefined}\n role={onCellClick ? 'button' : undefined}\n tabIndex={onCellClick ? 0 : undefined}\n >\n {cellContent}\n </div>\n )\n\n if (tooltipContent == null) {\n return <Fragment key={`cell-${rowIndex}-${slot}`}>{cellNode}</Fragment>\n }\n\n return (\n <MTooltip key={`cell-${rowIndex}-${slot}`} content={tooltipContent}>\n {cellNode}\n </MTooltip>\n )\n })}\n </Fragment>\n ))}\n </div>\n\n {showLegend && (\n <div className={'mineral-week-grid__legend'}>\n <MSubText size={'xs'} tone={'muted'}>\n {`Scale: 0 — ${resolvedMax}${legendUnit ? ` ${legendUnit}` : ''}`}\n </MSubText>\n <div className={'mineral-week-grid__legend-bands'}>\n {([0, 1, 2, 3] as const).map((band) => (\n <div key={`legend-${band}`} className={'mineral-week-grid__legend-band'}>\n <span\n className={cn(\n 'mineral-week-grid__legend-swatch',\n `mineral-week-grid__cell--band-${band}`\n )}\n />\n <MSubText size={'xs'} tone={'muted'}>\n {bandLabels[band]}\n </MSubText>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n )\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\n\nimport type {MDataTableSort} from './MDataTable'\n\n/**\n * Generic query shape that backend lists can satisfy. Drop-in adapter between\n * `useMTable` and the API call. The framework does not assume axios/fetch/swr —\n * the consumer plugs whatever fetcher they want.\n */\nexport interface MTableQuery {\n page?: number\n perPage?: number\n search?: string\n filters?: Record<string, string[]>\n sort?: MDataTableSort | null\n}\n\n/**\n * Standard list response. Mirrors the most common server convention\n * (data + meta with pagination total). Adapt your fetcher to this shape if your\n * backend uses different envelope keys.\n */\nexport interface MTableResponse<T> {\n data: T[]\n meta: {\n total: number\n page: number\n perPage: number\n totalPages: number\n }\n}\n\nexport type MTableFetcher<T> = (query: MTableQuery, signal?: AbortSignal) => Promise<MTableResponse<T>>\n\nexport interface MTableOptions {\n perPage?: number\n initialPage?: number\n initialSearch?: string\n initialFilters?: Record<string, string[]>\n initialSort?: MDataTableSort | null\n /** Bump to force a refetch (e.g. after a mutation invalidates the list). */\n invalidationKey?: number | string\n}\n\nexport interface MTableProps<T> {\n data: T[]\n total: number\n page: number\n onPageChange: (page: number) => void\n sort: MDataTableSort | null\n onSortChange: (sort: MDataTableSort | null) => void\n search: string\n onSearchChange: (search: string) => void\n filters: Record<string, string[]>\n onFiltersChange: (filters: Record<string, string[]>) => void\n manualSearch: true\n manualFilters: true\n manualSort: true\n manualPagination: true\n pageSize: number\n /** Mirrors `isLoading`; drives `MDataTable`'s loading scrim when `tableProps` is spread. */\n loading: boolean\n}\n\nexport interface MTableHandle<T> {\n /** Spread directly onto `<MDataTable>` — wires up all manual* + state props. */\n tableProps: MTableProps<T>\n isLoading: boolean\n error: Error | null\n /** Trigger a fresh fetch with current query. */\n refetch: () => void\n}\n\n/**\n * Adapter hook that bridges a fetcher returning `MTableResponse<T>` with\n * `MDataTable` in manual mode. Owns the search / filters / sort / page state,\n * debounces nothing on its own (fetcher decides), and aborts in-flight\n * requests when the query changes. Spread `tableProps` onto your table.\n */\nexport function useMTable<T>(fetcher: MTableFetcher<T>, options: MTableOptions = {}): MTableHandle<T> {\n const {\n perPage = 20,\n initialPage = 1,\n initialSearch = '',\n initialFilters,\n initialSort = null,\n invalidationKey,\n } = options\n\n const [data, setData] = useState<T[]>([])\n const [total, setTotal] = useState(0)\n const [page, setPage] = useState(initialPage)\n const [search, setSearch] = useState(initialSearch)\n const [filters, setFilters] = useState<Record<string, string[]>>(initialFilters ?? {})\n const [sort, setSort] = useState<MDataTableSort | null>(initialSort)\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState<Error | null>(null)\n const [bump, setBump] = useState(0)\n\n const fetcherRef = useRef(fetcher)\n fetcherRef.current = fetcher\n\n const query = useMemo<MTableQuery>(\n () => ({page, perPage, search, filters, sort}),\n [page, perPage, search, filters, sort]\n )\n\n useEffect(() => {\n const controller = typeof AbortController !== 'undefined' ? new AbortController() : undefined\n let cancelled = false\n setIsLoading(true)\n setError(null)\n fetcherRef\n .current(query, controller?.signal)\n .then((response) => {\n if (cancelled) return\n setData(response.data)\n setTotal(response.meta.total)\n })\n .catch((err: unknown) => {\n if (cancelled) return\n if (err instanceof Error && err.name === 'AbortError') return\n setError(err instanceof Error ? err : new Error(String(err)))\n })\n .finally(() => {\n if (!cancelled) setIsLoading(false)\n })\n return () => {\n cancelled = true\n controller?.abort()\n }\n }, [query, invalidationKey, bump])\n\n // Reset to page 1 when search/filters/sort change.\n const handleSearchChange = useCallback((next: string) => {\n setSearch(next)\n setPage(1)\n }, [])\n const handleFiltersChange = useCallback((next: Record<string, string[]>) => {\n setFilters(next)\n setPage(1)\n }, [])\n const handleSortChange = useCallback((next: MDataTableSort | null) => {\n setSort(next)\n setPage(1)\n }, [])\n\n const refetch = useCallback(() => setBump((value) => value + 1), [])\n\n const tableProps: MTableProps<T> = {\n data,\n total,\n page,\n onPageChange: setPage,\n sort,\n onSortChange: handleSortChange,\n search,\n onSearchChange: handleSearchChange,\n filters,\n onFiltersChange: handleFiltersChange,\n manualSearch: true,\n manualFilters: true,\n manualSort: true,\n manualPagination: true,\n pageSize: perPage,\n loading: isLoading,\n }\n\n return {tableProps, isLoading, error, refetch}\n}\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react'\n\nimport type {MCardGridSort} from '../cards/MCardGrid'\nimport type {MTableQuery, MTableResponse, MTableFetcher, MTableOptions} from './useMTable'\n\n/**\n * Card-grid analog of `useMTable`. Same fetcher-agnostic pattern; returns props\n * spreadable onto `<MCardGrid>` in manual mode. Note that `MCardGridSort` uses\n * `direction` (vs `MDataTableSort.dir`) — convert if you reuse a fetcher.\n */\nexport interface MCardGridProps<T> {\n items: T[]\n total: number\n page: number\n onPageChange: (page: number) => void\n sort: MCardGridSort<T> | null\n onSortChange: (sort: MCardGridSort<T> | null) => void\n search: string\n onSearchChange: (search: string) => void\n filters: Record<string, string[]>\n onFiltersChange: (filters: Record<string, string[]>) => void\n manualSearch: true\n manualFilters: true\n manualSort: true\n manualPagination: true\n pageSize: number\n /** Mirrors `isLoading`; drives `MCardGrid`'s loading scrim when `gridProps` is spread. */\n loading: boolean\n}\n\nexport interface MCardGridHandle<T> {\n /** Spread directly onto `<MCardGrid>`. */\n gridProps: MCardGridProps<T>\n isLoading: boolean\n error: Error | null\n refetch: () => void\n}\n\nfunction toTableSort<T>(sort: MCardGridSort<T> | null): MTableQuery['sort'] {\n if (!sort) return null\n return {key: sort.key, dir: sort.direction}\n}\n\n/**\n * Adapter hook for `MCardGrid` in manual mode. Owns search / filters / sort /\n * page state, calls a generic `MTableFetcher`, returns `gridProps` to spread.\n */\nexport function useMCardGrid<T>(fetcher: MTableFetcher<T>, options: MTableOptions = {}): MCardGridHandle<T> {\n const {\n perPage = 12,\n initialPage = 1,\n initialSearch = '',\n initialFilters,\n initialSort = null,\n invalidationKey,\n } = options\n\n const [items, setItems] = useState<T[]>([])\n const [total, setTotal] = useState(0)\n const [page, setPage] = useState(initialPage)\n const [search, setSearch] = useState(initialSearch)\n const [filters, setFilters] = useState<Record<string, string[]>>(initialFilters ?? {})\n const [sort, setSort] = useState<MCardGridSort<T> | null>(\n (initialSort as MCardGridSort<T> | null | undefined) ?? null\n )\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState<Error | null>(null)\n const [bump, setBump] = useState(0)\n\n const fetcherRef = useRef(fetcher)\n fetcherRef.current = fetcher\n\n const query = useMemo<MTableQuery>(\n () => ({page, perPage, search, filters, sort: toTableSort(sort)}),\n [page, perPage, search, filters, sort]\n )\n\n useEffect(() => {\n const controller = typeof AbortController !== 'undefined' ? new AbortController() : undefined\n let cancelled = false\n setIsLoading(true)\n setError(null)\n fetcherRef\n .current(query, controller?.signal)\n .then((response: MTableResponse<T>) => {\n if (cancelled) return\n setItems(response.data)\n setTotal(response.meta.total)\n })\n .catch((err: unknown) => {\n if (cancelled) return\n if (err instanceof Error && err.name === 'AbortError') return\n setError(err instanceof Error ? err : new Error(String(err)))\n })\n .finally(() => {\n if (!cancelled) setIsLoading(false)\n })\n return () => {\n cancelled = true\n controller?.abort()\n }\n }, [query, invalidationKey, bump])\n\n const handleSearchChange = useCallback((next: string) => {\n setSearch(next)\n setPage(1)\n }, [])\n const handleFiltersChange = useCallback((next: Record<string, string[]>) => {\n setFilters(next)\n setPage(1)\n }, [])\n const handleSortChange = useCallback((next: MCardGridSort<T> | null) => {\n setSort(next)\n setPage(1)\n }, [])\n\n const refetch = useCallback(() => setBump((value) => value + 1), [])\n\n const gridProps: MCardGridProps<T> = {\n items,\n total,\n page,\n onPageChange: setPage,\n sort,\n onSortChange: handleSortChange,\n search,\n onSearchChange: handleSearchChange,\n filters,\n onFiltersChange: handleFiltersChange,\n manualSearch: true,\n manualFilters: true,\n manualSort: true,\n manualPagination: true,\n pageSize: perPage,\n loading: isLoading,\n }\n\n return {gridProps, isLoading, error, refetch}\n}\n"],"mappings":"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"}
package/dist/data.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(`./data-D8qUIvWv.cjs`),t=require(`./MTreeView-BS60bIj7.cjs`);exports.MDataTable=e.a,exports.MTaskList=e.i,exports.MTreeView=t.t,exports.MWeekGrid=e.r,exports.useMCardGrid=e.t,exports.useMTable=e.n;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./data-CuynADWM.cjs`),t=require(`./MTreeView-DuQkm0ZV.cjs`);exports.MDataTable=e.a,exports.MTaskList=e.i,exports.MTreeView=t.t,exports.MWeekGrid=e.r,exports.useMCardGrid=e.t,exports.useMTable=e.n;
package/dist/data.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { a as e, i as t, n, r, t as i } from "./data-CjVcevdT.js";
4
- import { t as a } from "./MTreeView-DTsi4bye.js";
3
+ import { a as e, i as t, n, r, t as i } from "./data-D8WFA3Et.js";
4
+ import { t as a } from "./MTreeView-B1J7uqd1.js";
5
5
  export { e as MDataTable, t as MTaskList, a as MTreeView, r as MWeekGrid, i as useMCardGrid, n as useMTable };
@@ -1,24 +1,24 @@
1
- import { Gi as e, Hi as t, Kn as n } from "./icons-DLP-Rs6z.js";
1
+ import { Ki as e, Kn as t, Yi as n } from "./icons-CBMl-kOM.js";
2
2
  import { t as r } from "./cn-YER3QsV1.js";
3
3
  import { a as i, n as a, o, r as s, t as c } from "./relativeTime-Cr-NVzij.js";
4
4
  import { n as l } from "./MSurface-B-sjyczH.js";
5
5
  import { t as u } from "./MText-CL-LPcXi.js";
6
6
  import { t as d } from "./MButton-C1pnL4_j.js";
7
7
  import { n as f } from "./MSkeleton-C5uD4Axo.js";
8
- import { t as p } from "./MStack-h11pHEmc.js";
9
- import { i as m, n as h, t as g } from "./MCard-dLMQQ97e.js";
10
- import { t as _ } from "./locale-BNyzqXAU.js";
8
+ import { t as p } from "./MStack-CSCw6to2.js";
9
+ import { i as m, n as h, t as g } from "./MCard-azpp4YVD.js";
10
+ import { t as _ } from "./locale-CS1-IY_I.js";
11
11
  import { Children as v, cloneElement as y, isValidElement as b, useCallback as x, useEffect as S, useMemo as C, useRef as w, useState as T } from "react";
12
12
  import { jsx as E, jsxs as D } from "react/jsx-runtime";
13
13
  //#region src/components/display/MCollapsible/MCollapsible.tsx
14
- function O({ title: e, defaultOpen: n = !1, open: i, onToggle: a, color: o = "primary", className: s, children: c, ...l }) {
14
+ function O({ title: t, defaultOpen: n = !1, open: i, onToggle: a, color: o = "primary", className: s, children: c, ...l }) {
15
15
  let [u, f] = T(n), m = i ?? u, h = () => {
16
16
  let e = !m;
17
17
  i === void 0 && f(e), a?.(e);
18
18
  }, g = /* @__PURE__ */ E("span", {
19
19
  className: r("chevron", m && "open"),
20
20
  "aria-hidden": "true",
21
- children: /* @__PURE__ */ E(t, {})
21
+ children: /* @__PURE__ */ E(e, {})
22
22
  });
23
23
  return /* @__PURE__ */ D("div", {
24
24
  className: r("collapsible", s),
@@ -30,7 +30,7 @@ function O({ title: e, defaultOpen: n = !1, open: i, onToggle: a, color: o = "pr
30
30
  "aria-expanded": m,
31
31
  onClick: h,
32
32
  endIcon: g,
33
- children: e
33
+ children: t
34
34
  }), /* @__PURE__ */ E("div", {
35
35
  className: r("content-wrap", m && "open"),
36
36
  "aria-hidden": !m,
@@ -167,16 +167,16 @@ var I = {
167
167
  shellscript: "bash",
168
168
  php: "php"
169
169
  }, L = {
170
- xml: () => import("./xml-BPoVPJlJ.js"),
171
- css: () => import("./css-NqBDP7ZC.js"),
172
- javascript: () => import("./javascript-BltQGQAn.js"),
173
- typescript: () => import("./typescript-CxKdKTKz.js"),
174
- json: () => import("./json-DbCISZXi.js"),
175
- bash: () => import("./bash-vBtVVub9.js"),
176
- c: () => import("./c-7RiNX--m.js"),
177
- cpp: () => import("./cpp-CaNnFjgy.js"),
178
- arduino: () => import("./arduino-WKgN2ikT.js"),
179
- php: () => import("./php-dSXzrC_Z.js")
170
+ xml: () => import("./xml-CrpWqcDk.js"),
171
+ css: () => import("./css-BgGh0eG1.js"),
172
+ javascript: () => import("./javascript-CX3JhsYu.js"),
173
+ typescript: () => import("./typescript-Xt3Sotw5.js"),
174
+ json: () => import("./json-BPIcVdlp.js"),
175
+ bash: () => import("./bash-CrHemXky.js"),
176
+ c: () => import("./c-D9302r2r.js"),
177
+ cpp: () => import("./cpp-CLYSpJBB.js"),
178
+ arduino: () => import("./arduino-UeOrXakL.js"),
179
+ php: () => import("./php-CBRzjinf.js")
180
180
  }, R = null, z = 42, B = 200;
181
181
  function V(e) {
182
182
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
@@ -186,7 +186,7 @@ function H(e) {
186
186
  }
187
187
  async function ee() {
188
188
  return R ||= (async () => {
189
- let e = (await import("./core-DC6zSfZo.js")).default.newInstance();
189
+ let e = (await import("./core-yRqh2XLu.js")).default.newInstance();
190
190
  for (let [t, n] of Object.entries(L)) {
191
191
  let r = await n();
192
192
  e.registerLanguage(t, r.default);
@@ -194,8 +194,8 @@ async function ee() {
194
194
  return e.registerAliases(["shell", "shellscript"], { languageName: "bash" }), e.registerAliases("markup", { languageName: "xml" }), e;
195
195
  })(), R;
196
196
  }
197
- function U({ code: e, language: t = "tsx", title: i, showHeader: a = !0, showLanguage: o = !0, showCopyButton: s = !0, copyLabel: c = "Copy", copiedLabel: p = "Copied", maxHeight: _, stretch: v = !1, animated: y = !1, lineNumbers: b = !1, className: x, ...O }) {
198
- let k = C(() => H(t.trim().toLowerCase()), [t]), [A, j] = T(() => y ? 0 : e.length), M = y ? e.slice(0, A) : e, [N, P] = T(() => V(M)), [F, I] = T(!1), L = w(null), R = w(null), U = w(null), W = typeof navigator < "u" && typeof navigator.clipboard?.writeText == "function", G = a && (!!i || o || s), K = C(() => Math.max(1, M.split("\n").length), [M]);
197
+ function U({ code: e, language: n = "tsx", title: i, showHeader: a = !0, showLanguage: o = !0, showCopyButton: s = !0, copyLabel: c = "Copy", copiedLabel: p = "Copied", maxHeight: _, stretch: v = !1, animated: y = !1, lineNumbers: b = !1, className: x, ...O }) {
198
+ let k = C(() => H(n.trim().toLowerCase()), [n]), [A, j] = T(() => y ? 0 : e.length), M = y ? e.slice(0, A) : e, [N, P] = T(() => V(M)), [F, I] = T(!1), L = w(null), R = w(null), U = w(null), W = typeof navigator < "u" && typeof navigator.clipboard?.writeText == "function", G = a && (!!i || o || s), K = C(() => Math.max(1, M.split("\n").length), [M]);
199
199
  S(() => {
200
200
  R.current !== null && (window.clearTimeout(R.current), R.current = null), j(y ? 0 : e.length);
201
201
  }, [y, e]), S(() => {
@@ -262,16 +262,16 @@ function U({ code: e, language: t = "tsx", title: i, showHeader: a = !0, showLan
262
262
  size: "sm",
263
263
  weight: "semibold",
264
264
  children: i
265
- }), o && t && /* @__PURE__ */ E(f, {
265
+ }), o && n && /* @__PURE__ */ E(f, {
266
266
  color: "info",
267
267
  size: "sm",
268
- children: t
268
+ children: n
269
269
  })]
270
270
  }), s && /* @__PURE__ */ E(d, {
271
271
  variant: "ghost",
272
272
  size: "sm",
273
273
  color: "neutral",
274
- startIcon: /* @__PURE__ */ E(n, {
274
+ startIcon: /* @__PURE__ */ E(t, {
275
275
  size: "sm",
276
276
  "aria-hidden": "true"
277
277
  }),
@@ -692,15 +692,15 @@ var ce = {
692
692
  function Q(e) {
693
693
  return null;
694
694
  }
695
- function le({ activeStep: t, variant: n = "horizontal", color: i = "primary", size: a = "md", clickable: o = !1, onChange: s, className: c, children: l, ...u }) {
695
+ function le({ activeStep: e, variant: t = "horizontal", color: i = "primary", size: a = "md", clickable: o = !1, onChange: s, className: c, children: l, ...u }) {
696
696
  let d = v.toArray(l).filter((e) => b(e) && e.type === Q);
697
697
  return /* @__PURE__ */ E("div", {
698
- className: r("stepper", n, `color-${i}`, a, c),
698
+ className: r("stepper", t, `color-${i}`, a, c),
699
699
  role: "list",
700
700
  ...u,
701
- children: d.map((n, i) => {
702
- if (!b(n)) return null;
703
- let { id: c, title: l, description: u, icon: d, disabled: f, optional: p, error: m } = n.props, h = i === t, g = i < t, _ = o && !f, v = () => {
701
+ children: d.map((t, i) => {
702
+ if (!b(t)) return null;
703
+ let { id: c, title: l, description: u, icon: d, disabled: f, optional: p, error: m } = t.props, h = i === e, g = i < e, _ = o && !f, v = () => {
704
704
  _ && s && s(i);
705
705
  };
706
706
  return /* @__PURE__ */ D("div", {
@@ -715,7 +715,7 @@ function le({ activeStep: t, variant: n = "horizontal", color: i = "primary", si
715
715
  onKeyDown: _ ? (e) => {
716
716
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), v());
717
717
  } : void 0,
718
- children: m ? "!" : g ? d ?? /* @__PURE__ */ E(e, { size: ce[a] }) : d ?? i + 1
718
+ children: m ? "!" : g ? d ?? /* @__PURE__ */ E(n, { size: ce[a] }) : d ?? i + 1
719
719
  }), /* @__PURE__ */ D("div", {
720
720
  className: "stepper-content",
721
721
  children: [
@@ -779,4 +779,4 @@ function ue({ align: e = "left", color: t = "primary", size: n = "md", className
779
779
  //#endregion
780
780
  export { se as a, q as c, P as d, N as f, O as h, le as i, G as l, k as m, $ as n, oe as o, A as p, Q as r, ie as s, ue as t, U as u };
781
781
 
782
- //# sourceMappingURL=display-B7Wh5nnM.js.map
782
+ //# sourceMappingURL=display-BF4jASt9.js.map