@banzamel/mineralui 1.0.2 → 1.0.4

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 (551) hide show
  1. package/README.md +55 -22
  2. package/dist/{MArrowDownIcon-BslRpwqk.js → MArrowDownIcon-BcKSgdTY.js} +1 -1
  3. package/dist/{MArrowDownIcon-BslRpwqk.js.map → MArrowDownIcon-BcKSgdTY.js.map} +1 -1
  4. package/dist/{MArrowDownIcon-DjLz-A0I.cjs → MArrowDownIcon-C8EAODgv.cjs} +1 -1
  5. package/dist/{MArrowDownIcon-DjLz-A0I.cjs.map → MArrowDownIcon-C8EAODgv.cjs.map} +1 -1
  6. package/dist/MArrowUpDownIcon-CW_PWr7Q.cjs +2 -0
  7. package/dist/MArrowUpDownIcon-CW_PWr7Q.cjs.map +1 -0
  8. package/dist/MArrowUpDownIcon-DukXemVA.js +19 -0
  9. package/dist/MArrowUpDownIcon-DukXemVA.js.map +1 -0
  10. package/dist/{MArrowUpIcon-CjLbBZOW.cjs → MArrowUpIcon-DWV_HYrz.cjs} +1 -1
  11. package/dist/{MArrowUpIcon-CjLbBZOW.cjs.map → MArrowUpIcon-DWV_HYrz.cjs.map} +1 -1
  12. package/dist/{MArrowUpIcon-CudFd1sD.js → MArrowUpIcon-Dan-4hs8.js} +1 -1
  13. package/dist/{MArrowUpIcon-CudFd1sD.js.map → MArrowUpIcon-Dan-4hs8.js.map} +1 -1
  14. package/dist/{MAvatar-B_YPaZt9.js → MAvatar-Blh5pfSO.js} +4 -4
  15. package/dist/{MAvatar-B_YPaZt9.js.map → MAvatar-Blh5pfSO.js.map} +1 -1
  16. package/dist/{MAvatar-lzW37S2c.cjs → MAvatar-DMM1CsdO.cjs} +2 -2
  17. package/dist/{MAvatar-lzW37S2c.cjs.map → MAvatar-DMM1CsdO.cjs.map} +1 -1
  18. package/dist/{MBadge-lezDpe-x.cjs → MBadge-Babyr1R9.cjs} +2 -2
  19. package/dist/{MBadge-lezDpe-x.cjs.map → MBadge-Babyr1R9.cjs.map} +1 -1
  20. package/dist/{MBadge-jh7HI3jR.js → MBadge-BjZX0MIC.js} +2 -2
  21. package/dist/{MBadge-jh7HI3jR.js.map → MBadge-BjZX0MIC.js.map} +1 -1
  22. package/dist/MBrandMoreIcons-ClUq3DXO.js +873 -0
  23. package/dist/MBrandMoreIcons-ClUq3DXO.js.map +1 -0
  24. package/dist/MBrandMoreIcons-Xxf9FaIx.cjs +2 -0
  25. package/dist/MBrandMoreIcons-Xxf9FaIx.cjs.map +1 -0
  26. package/dist/{MButton-BIWj6T2J.js → MButton-33EzpGvQ.js} +3 -3
  27. package/dist/{MButton-BIWj6T2J.js.map → MButton-33EzpGvQ.js.map} +1 -1
  28. package/dist/{MButton-DOtMjOTz.cjs → MButton-C_WTyNvw.cjs} +2 -2
  29. package/dist/{MButton-DOtMjOTz.cjs.map → MButton-C_WTyNvw.cjs.map} +1 -1
  30. package/dist/{MCalendarIcon-CgFKAojj.cjs → MCalendarIcon-4PilFCrR.cjs} +1 -1
  31. package/dist/{MCalendarIcon-CgFKAojj.cjs.map → MCalendarIcon-4PilFCrR.cjs.map} +1 -1
  32. package/dist/{MCalendarIcon-Csj_JV9i.js → MCalendarIcon-DXx62vjV.js} +1 -1
  33. package/dist/{MCalendarIcon-Csj_JV9i.js.map → MCalendarIcon-DXx62vjV.js.map} +1 -1
  34. package/dist/MChatIcon-CnDOfqkO.js +102 -0
  35. package/dist/MChatIcon-CnDOfqkO.js.map +1 -0
  36. package/dist/MChatIcon-DX-u8_6S.cjs +2 -0
  37. package/dist/MChatIcon-DX-u8_6S.cjs.map +1 -0
  38. package/dist/MCheckIcon-DQumT4HX.js +15 -0
  39. package/dist/MCheckIcon-DQumT4HX.js.map +1 -0
  40. package/dist/MCheckIcon-ck_21ybZ.cjs +2 -0
  41. package/dist/MCheckIcon-ck_21ybZ.cjs.map +1 -0
  42. package/dist/{MCheckbox-Vbr4IhEn.cjs → MCheckbox-BhtJDdip.cjs} +2 -2
  43. package/dist/{MCheckbox-Vbr4IhEn.cjs.map → MCheckbox-BhtJDdip.cjs.map} +1 -1
  44. package/dist/{MCheckbox-DhDggBnO.js → MCheckbox-CugP7F6H.js} +3 -3
  45. package/dist/{MCheckbox-DhDggBnO.js.map → MCheckbox-CugP7F6H.js.map} +1 -1
  46. package/dist/{MChevronDownIcon-CPXk51nE.js → MChevronDownIcon-D3yTpzni.js} +1 -1
  47. package/dist/{MChevronDownIcon-CPXk51nE.js.map → MChevronDownIcon-D3yTpzni.js.map} +1 -1
  48. package/dist/{MChevronDownIcon-CE25HFYo.cjs → MChevronDownIcon-DCMmxkRt.cjs} +1 -1
  49. package/dist/{MChevronDownIcon-CE25HFYo.cjs.map → MChevronDownIcon-DCMmxkRt.cjs.map} +1 -1
  50. package/dist/{MChevronRightIcon-QbfE-b7g.cjs → MChevronRightIcon-BC08M6g8.cjs} +1 -1
  51. package/dist/{MChevronRightIcon-QbfE-b7g.cjs.map → MChevronRightIcon-BC08M6g8.cjs.map} +1 -1
  52. package/dist/{MChevronRightIcon-BozfuNpv.js → MChevronRightIcon-CXs8IHiV.js} +1 -1
  53. package/dist/{MChevronRightIcon-BozfuNpv.js.map → MChevronRightIcon-CXs8IHiV.js.map} +1 -1
  54. package/dist/{MClockIcon-2NNldTuA.cjs → MClockIcon-C-zYY2A0.cjs} +1 -1
  55. package/dist/{MClockIcon-2NNldTuA.cjs.map → MClockIcon-C-zYY2A0.cjs.map} +1 -1
  56. package/dist/{MClockIcon-D4K6fmV9.js → MClockIcon-DefFl5ks.js} +1 -1
  57. package/dist/{MClockIcon-D4K6fmV9.js.map → MClockIcon-DefFl5ks.js.map} +1 -1
  58. package/dist/{MCloseIcon-BKH33Q51.cjs → MCloseIcon-6cfw9trj.cjs} +1 -1
  59. package/dist/{MCloseIcon-BKH33Q51.cjs.map → MCloseIcon-6cfw9trj.cjs.map} +1 -1
  60. package/dist/{MCloseIcon-BQv01JOS.js → MCloseIcon-lDH3Vc10.js} +1 -1
  61. package/dist/{MCloseIcon-BQv01JOS.js.map → MCloseIcon-lDH3Vc10.js.map} +1 -1
  62. package/dist/MCookieBootstrap-Ct5mIm5P.cjs +2 -0
  63. package/dist/MCookieBootstrap-Ct5mIm5P.cjs.map +1 -0
  64. package/dist/MCookieBootstrap-DEEHYxXi.js +437 -0
  65. package/dist/MCookieBootstrap-DEEHYxXi.js.map +1 -0
  66. package/dist/MDataTable--pUkQHAv.js +151 -0
  67. package/dist/MDataTable--pUkQHAv.js.map +1 -0
  68. package/dist/MDataTable-8ZhnWhqW.cjs +2 -0
  69. package/dist/MDataTable-8ZhnWhqW.cjs.map +1 -0
  70. package/dist/MDrawer-00BvU8Dn.js +122 -0
  71. package/dist/MDrawer-00BvU8Dn.js.map +1 -0
  72. package/dist/MDrawer-FYS50FtQ.cjs +2 -0
  73. package/dist/MDrawer-FYS50FtQ.cjs.map +1 -0
  74. package/dist/MDropdownMenu-BLBdToIz.cjs +2 -0
  75. package/dist/MDropdownMenu-BLBdToIz.cjs.map +1 -0
  76. package/dist/MDropdownMenu-BgOiM5yr.js +152 -0
  77. package/dist/MDropdownMenu-BgOiM5yr.js.map +1 -0
  78. package/dist/MEllipsisVerticalIcon-C87B9UQK.cjs +2 -0
  79. package/dist/MEllipsisVerticalIcon-C87B9UQK.cjs.map +1 -0
  80. package/dist/MEllipsisVerticalIcon-CNn1AQ8W.js +37 -0
  81. package/dist/MEllipsisVerticalIcon-CNn1AQ8W.js.map +1 -0
  82. package/dist/{MFileExtIcons-H7zvI8AL.js → MFileExtIcons-BoG3GPxg.js} +1 -1
  83. package/dist/{MFileExtIcons-H7zvI8AL.js.map → MFileExtIcons-BoG3GPxg.js.map} +1 -1
  84. package/dist/{MFileExtIcons-DzACx_eM.cjs → MFileExtIcons-DH9oZPpf.cjs} +1 -1
  85. package/dist/{MFileExtIcons-DzACx_eM.cjs.map → MFileExtIcons-DH9oZPpf.cjs.map} +1 -1
  86. package/dist/MImage-CKrjXRmf.js +49 -0
  87. package/dist/MImage-CKrjXRmf.js.map +1 -0
  88. package/dist/MImage-f854avZS.cjs +2 -0
  89. package/dist/MImage-f854avZS.cjs.map +1 -0
  90. package/dist/{MInput-DYEAqxod.js → MInput-BUCcLWSI.js} +6 -6
  91. package/dist/{MInput-DYEAqxod.js.map → MInput-BUCcLWSI.js.map} +1 -1
  92. package/dist/{MInput-CjsJRLaz.cjs → MInput-CQ3MqKsk.cjs} +2 -2
  93. package/dist/{MInput-CjsJRLaz.cjs.map → MInput-CQ3MqKsk.cjs.map} +1 -1
  94. package/dist/{MInputSearch-CrVrpYsR.js → MInputSearch-BeXUh4lz.js} +4 -4
  95. package/dist/{MInputSearch-CrVrpYsR.js.map → MInputSearch-BeXUh4lz.js.map} +1 -1
  96. package/dist/{MInputSearch-CQZ-ccri.cjs → MInputSearch-Dt79qbZg.cjs} +2 -2
  97. package/dist/{MInputSearch-CQZ-ccri.cjs.map → MInputSearch-Dt79qbZg.cjs.map} +1 -1
  98. package/dist/{MLink-CAaK6SOG.cjs → MLink-CVN-Vll4.cjs} +2 -2
  99. package/dist/{MLink-CAaK6SOG.cjs.map → MLink-CVN-Vll4.cjs.map} +1 -1
  100. package/dist/{MLink-BfRaT8NU.js → MLink-DH4vk7O5.js} +2 -2
  101. package/dist/{MLink-BfRaT8NU.js.map → MLink-DH4vk7O5.js.map} +1 -1
  102. package/dist/{MMenuIcon-TZ9iJAXz.cjs → MMenuIcon-Brpitjq1.cjs} +1 -1
  103. package/dist/{MMenuIcon-TZ9iJAXz.cjs.map → MMenuIcon-Brpitjq1.cjs.map} +1 -1
  104. package/dist/{MMenuIcon-B13EvS3i.js → MMenuIcon-idfVpVQD.js} +1 -1
  105. package/dist/{MMenuIcon-B13EvS3i.js.map → MMenuIcon-idfVpVQD.js.map} +1 -1
  106. package/dist/MModal-BQvk1KKc.cjs +2 -0
  107. package/dist/MModal-BQvk1KKc.cjs.map +1 -0
  108. package/dist/MModal-D1Knn-bg.js +69 -0
  109. package/dist/MModal-D1Knn-bg.js.map +1 -0
  110. package/dist/MPagination-Bu84ZlVh.cjs +2 -0
  111. package/dist/MPagination-Bu84ZlVh.cjs.map +1 -0
  112. package/dist/MPagination-CbkRMnL1.js +147 -0
  113. package/dist/MPagination-CbkRMnL1.js.map +1 -0
  114. package/dist/MPhoneIcon-efl6BqwU.js +38 -0
  115. package/dist/MPhoneIcon-efl6BqwU.js.map +1 -0
  116. package/dist/MPhoneIcon-lgC9DH5a.cjs +2 -0
  117. package/dist/MPhoneIcon-lgC9DH5a.cjs.map +1 -0
  118. package/dist/{MPopover-BE73Iock.cjs → MPopover-BXPkE575.cjs} +2 -2
  119. package/dist/{MPopover-BE73Iock.cjs.map → MPopover-BXPkE575.cjs.map} +1 -1
  120. package/dist/{MPopover-C7ZJz7Uj.js → MPopover-DKBdLfrw.js} +3 -3
  121. package/dist/{MPopover-C7ZJz7Uj.js.map → MPopover-DKBdLfrw.js.map} +1 -1
  122. package/dist/{MPortal-d1mwLhwx.cjs → MPortal-BysJLuEi.cjs} +1 -1
  123. package/dist/{MPortal-d1mwLhwx.cjs.map → MPortal-BysJLuEi.cjs.map} +1 -1
  124. package/dist/{MPortal-BzordRff.js → MPortal-CbpNkzfC.js} +1 -1
  125. package/dist/{MPortal-BzordRff.js.map → MPortal-CbpNkzfC.js.map} +1 -1
  126. package/dist/MProtectIcon-BPYP06QD.cjs +2 -0
  127. package/dist/MProtectIcon-BPYP06QD.cjs.map +1 -0
  128. package/dist/{MBoltIcon-B1P4i_X4.js → MProtectIcon-BTtMmrib.js} +11 -29
  129. package/dist/MProtectIcon-BTtMmrib.js.map +1 -0
  130. package/dist/MQrCode-AttGRC6v.js +416 -0
  131. package/dist/MQrCode-AttGRC6v.js.map +1 -0
  132. package/dist/MQrCode-CbUPPd4S.cjs +2 -0
  133. package/dist/MQrCode-CbUPPd4S.cjs.map +1 -0
  134. package/dist/{MSearchIcon-Bb-f5JdO.cjs → MSearchIcon-BakfEJQd.cjs} +1 -1
  135. package/dist/{MSearchIcon-Bb-f5JdO.cjs.map → MSearchIcon-BakfEJQd.cjs.map} +1 -1
  136. package/dist/{MSearchIcon-COQaC0mk.js → MSearchIcon-Dlg4Og8t.js} +1 -1
  137. package/dist/{MSearchIcon-COQaC0mk.js.map → MSearchIcon-Dlg4Og8t.js.map} +1 -1
  138. package/dist/MSkeleton-B5jZNFOG.cjs +2 -0
  139. package/dist/MSkeleton-B5jZNFOG.cjs.map +1 -0
  140. package/dist/MSkeleton-BL4C5FkH.js +98 -0
  141. package/dist/MSkeleton-BL4C5FkH.js.map +1 -0
  142. package/dist/{MSlider-KyOhqE6d.js → MSlider-D5ckYDop.js} +2 -2
  143. package/dist/{MSlider-KyOhqE6d.js.map → MSlider-D5ckYDop.js.map} +1 -1
  144. package/dist/{MSlider-VFCviEUW.cjs → MSlider-vD6Sla2p.cjs} +2 -2
  145. package/dist/{MSlider-VFCviEUW.cjs.map → MSlider-vD6Sla2p.cjs.map} +1 -1
  146. package/dist/MSparkline-DjcDtnZH.js +207 -0
  147. package/dist/MSparkline-DjcDtnZH.js.map +1 -0
  148. package/dist/MSparkline-U-XaDvpV.cjs +2 -0
  149. package/dist/MSparkline-U-XaDvpV.cjs.map +1 -0
  150. package/dist/{MStack-SPM68IMq.cjs → MStack-BvFI0AFv.cjs} +2 -2
  151. package/dist/{MStack-SPM68IMq.cjs.map → MStack-BvFI0AFv.cjs.map} +1 -1
  152. package/dist/{MStack-CQLO9e-3.js → MStack-DhdMFSUL.js} +4 -4
  153. package/dist/{MStack-CQLO9e-3.js.map → MStack-DhdMFSUL.js.map} +1 -1
  154. package/dist/{MStarFillIcon-w67ZD64c.js → MStarFillIcon-CGyQPFi8.js} +1 -1
  155. package/dist/{MStarFillIcon-w67ZD64c.js.map → MStarFillIcon-CGyQPFi8.js.map} +1 -1
  156. package/dist/{MStarFillIcon-B2H1b7mD.cjs → MStarFillIcon-DJHfl_Qy.cjs} +1 -1
  157. package/dist/{MStarFillIcon-B2H1b7mD.cjs.map → MStarFillIcon-DJHfl_Qy.cjs.map} +1 -1
  158. package/dist/MSubText-CfWNytoK.cjs +2 -0
  159. package/dist/MSubText-CfWNytoK.cjs.map +1 -0
  160. package/dist/MSubText-uvcBr9Ba.js +15 -0
  161. package/dist/MSubText-uvcBr9Ba.js.map +1 -0
  162. package/dist/MSuccessIcon-CatQ4FmG.cjs +2 -0
  163. package/dist/MSuccessIcon-CatQ4FmG.cjs.map +1 -0
  164. package/dist/MSuccessIcon-D3GrOvye.js +33 -0
  165. package/dist/MSuccessIcon-D3GrOvye.js.map +1 -0
  166. package/dist/MSurface-DlcK6Bre.js +39 -0
  167. package/dist/MSurface-DlcK6Bre.js.map +1 -0
  168. package/dist/MSurface-qcGLaTIK.cjs +2 -0
  169. package/dist/MSurface-qcGLaTIK.cjs.map +1 -0
  170. package/dist/{MTag-CXAmy8tJ.cjs → MTag-BMi1GS7v.cjs} +2 -2
  171. package/dist/{MTag-CXAmy8tJ.cjs.map → MTag-BMi1GS7v.cjs.map} +1 -1
  172. package/dist/{MTag-BbIqugpb.js → MTag-Cor8ZIW3.js} +4 -4
  173. package/dist/{MTag-BbIqugpb.js.map → MTag-Cor8ZIW3.js.map} +1 -1
  174. package/dist/MText-C0FdseW1.js +57 -0
  175. package/dist/MText-C0FdseW1.js.map +1 -0
  176. package/dist/MText-OV0ihtQ6.cjs +2 -0
  177. package/dist/MText-OV0ihtQ6.cjs.map +1 -0
  178. package/dist/MTimeAgo-BOXKcDYN.cjs +2 -0
  179. package/dist/MTimeAgo-BOXKcDYN.cjs.map +1 -0
  180. package/dist/MTimeAgo-DrDs52Y1.js +51 -0
  181. package/dist/MTimeAgo-DrDs52Y1.js.map +1 -0
  182. package/dist/MToggle-B7cKH5Tl.js +48 -0
  183. package/dist/MToggle-B7cKH5Tl.js.map +1 -0
  184. package/dist/MToggle-Hheo-jfZ.cjs +2 -0
  185. package/dist/MToggle-Hheo-jfZ.cjs.map +1 -0
  186. package/dist/{MTooltip-CKS_zgzR.js → MTooltip-D3xuZ5kG.js} +3 -3
  187. package/dist/{MTooltip-CKS_zgzR.js.map → MTooltip-D3xuZ5kG.js.map} +1 -1
  188. package/dist/{MTooltip-CXXYU-j1.cjs → MTooltip-DzwZ637q.cjs} +2 -2
  189. package/dist/{MTooltip-CXXYU-j1.cjs.map → MTooltip-DzwZ637q.cjs.map} +1 -1
  190. package/dist/{MZoomInIcon-CK2aJhDg.js → MZoomInIcon-BEdmglk6.js} +11 -46
  191. package/dist/MZoomInIcon-BEdmglk6.js.map +1 -0
  192. package/dist/MZoomInIcon-dhRm7zT6.cjs +2 -0
  193. package/dist/MZoomInIcon-dhRm7zT6.cjs.map +1 -0
  194. package/dist/cards-CKCr-GuJ.js +934 -0
  195. package/dist/cards-CKCr-GuJ.js.map +1 -0
  196. package/dist/cards-yPK4lBAA.cjs +2 -0
  197. package/dist/cards-yPK4lBAA.cjs.map +1 -0
  198. package/dist/cards.cjs +1 -1
  199. package/dist/cards.js +3 -3
  200. package/dist/{cn-B_veu23e.js → cn-DZLxql0l.js} +1 -1
  201. package/dist/{cn-B_veu23e.js.map → cn-DZLxql0l.js.map} +1 -1
  202. package/dist/{cn-CpRt8Xjj.cjs → cn-SOcVdnX6.cjs} +1 -1
  203. package/dist/{cn-CpRt8Xjj.cjs.map → cn-SOcVdnX6.cjs.map} +1 -1
  204. package/dist/components/cards/MCardBusiness/MCardBusiness.d.ts +2 -0
  205. package/dist/components/cards/MCardBusiness/MCardBusiness.types.d.ts +37 -0
  206. package/dist/components/cards/MCardBusiness/index.d.ts +4 -0
  207. package/dist/components/cards/MCardFinance/MCardFinance.d.ts +2 -0
  208. package/dist/components/cards/MCardFinance/MCardFinance.types.d.ts +16 -0
  209. package/dist/components/cards/MCardFinance/index.d.ts +4 -0
  210. package/dist/components/cards/index.d.ts +8 -0
  211. package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +7 -0
  212. package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +117 -0
  213. package/dist/components/data/MCalendarBoard/index.d.ts +4 -0
  214. package/dist/components/data/MChart/MAreaChart.d.ts +2 -0
  215. package/dist/components/data/MChart/MBarChart.d.ts +2 -0
  216. package/dist/components/data/MChart/MChart.d.ts +2 -0
  217. package/dist/components/data/MChart/MChart.types.d.ts +95 -0
  218. package/dist/components/data/MChart/MLineChart.d.ts +2 -0
  219. package/dist/components/data/MChart/MPieChart.d.ts +2 -0
  220. package/dist/components/data/MChart/charts/MAreaChart.d.ts +27 -0
  221. package/dist/components/data/MChart/charts/MBarChart.d.ts +26 -0
  222. package/dist/components/data/MChart/charts/MLineChart.d.ts +26 -0
  223. package/dist/components/data/MChart/charts/MPieChart.d.ts +19 -0
  224. package/dist/components/data/MChart/index.d.ts +5 -0
  225. package/dist/components/data/MChart/parts/ChartAxis.d.ts +13 -0
  226. package/dist/components/data/MChart/parts/ChartDefs.d.ts +1 -0
  227. package/dist/components/data/MChart/parts/ChartGrid.d.ts +10 -0
  228. package/dist/components/data/MChart/parts/ChartLegend.d.ts +9 -0
  229. package/dist/components/data/MChart/parts/ChartTooltip.d.ts +7 -0
  230. package/dist/components/data/MChart/utils/formats.d.ts +3 -0
  231. package/dist/components/data/MChart/utils/paths.d.ts +10 -0
  232. package/dist/components/data/MChart/utils/scales.d.ts +7 -0
  233. package/dist/components/data/MChat/MChat.d.ts +2 -0
  234. package/dist/components/data/MChat/MChat.types.d.ts +77 -0
  235. package/dist/components/data/MChat/MChatBody.d.ts +2 -0
  236. package/dist/components/data/MChat/MChatContext.d.ts +6 -0
  237. package/dist/components/data/MChat/MChatConversationItem.d.ts +2 -0
  238. package/dist/components/data/MChat/MChatConversationList.d.ts +2 -0
  239. package/dist/components/data/MChat/MChatHeader.d.ts +2 -0
  240. package/dist/components/data/MChat/MChatInput.d.ts +2 -0
  241. package/dist/components/data/MChat/MChatMessage.d.ts +2 -0
  242. package/dist/components/data/MChat/MChatTypingIndicator.d.ts +2 -0
  243. package/dist/components/data/MChat/emojis.d.ts +2 -0
  244. package/dist/components/data/MChat/index.d.ts +9 -0
  245. package/dist/components/data/MFileManager/MFileManager.d.ts +2 -0
  246. package/dist/components/data/MFileManager/MFileManager.types.d.ts +70 -0
  247. package/dist/components/data/MFileManager/index.d.ts +4 -0
  248. package/dist/components/data/MSparkline/MSparkline.d.ts +2 -0
  249. package/dist/components/data/MSparkline/MSparkline.types.d.ts +15 -0
  250. package/dist/components/data/MSparkline/index.d.ts +2 -0
  251. package/dist/components/data/index.d.ts +20 -0
  252. package/dist/components/display/MQrCode/MQrCode.d.ts +2 -0
  253. package/dist/components/display/MQrCode/MQrCode.types.d.ts +11 -0
  254. package/dist/components/display/MQrCode/index.d.ts +4 -0
  255. package/dist/components/display/MStepper/MStepper.d.ts +3 -0
  256. package/dist/components/display/MStepper/MStepper.types.d.ts +20 -0
  257. package/dist/components/display/MStepper/index.d.ts +2 -0
  258. package/dist/components/display/MTimeline/MTimeline.d.ts +3 -0
  259. package/dist/components/display/MTimeline/MTimeline.types.d.ts +16 -0
  260. package/dist/components/display/MTimeline/index.d.ts +2 -0
  261. package/dist/components/display/index.d.ts +12 -0
  262. package/dist/components/feedback/MCookie/MCookieBanner/MCookieBanner.d.ts +3 -0
  263. package/dist/components/feedback/MCookie/MCookieBanner/MCookieBanner.types.d.ts +27 -0
  264. package/dist/components/feedback/MCookie/MCookieBanner/index.d.ts +2 -0
  265. package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.d.ts +6 -0
  266. package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.types.d.ts +90 -0
  267. package/dist/components/feedback/MCookie/MCookieBootstrap/index.d.ts +3 -0
  268. package/dist/components/feedback/MCookie/MCookieConsent/MCookieConsent.d.ts +2 -0
  269. package/dist/components/feedback/MCookie/MCookieConsent/MCookieConsent.types.d.ts +11 -0
  270. package/dist/components/feedback/MCookie/MCookieConsent/index.d.ts +2 -0
  271. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.defaults.d.ts +9 -0
  272. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.inventory.d.ts +6 -0
  273. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.storage.d.ts +11 -0
  274. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.types.d.ts +95 -0
  275. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsentContext.d.ts +4 -0
  276. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsentProvider.d.ts +2 -0
  277. package/dist/components/feedback/MCookie/MCookieConsentProvider/index.d.ts +3 -0
  278. package/dist/components/feedback/MCookie/MCookieDeclaration/MCookieDeclaration.d.ts +2 -0
  279. package/dist/components/feedback/MCookie/MCookieDeclaration/MCookieDeclaration.types.d.ts +18 -0
  280. package/dist/components/feedback/MCookie/MCookieDeclaration/index.d.ts +2 -0
  281. package/dist/components/feedback/MCookie/MCookiePreferences/MCookiePreferences.d.ts +2 -0
  282. package/dist/components/feedback/MCookie/MCookiePreferences/MCookiePreferences.types.d.ts +25 -0
  283. package/dist/components/feedback/MCookie/MCookiePreferences/index.d.ts +2 -0
  284. package/dist/components/feedback/MCookie/MCookieTrigger/MCookieTrigger.d.ts +2 -0
  285. package/dist/components/feedback/MCookie/MCookieTrigger/MCookieTrigger.types.d.ts +7 -0
  286. package/dist/components/feedback/MCookie/MCookieTrigger/index.d.ts +2 -0
  287. package/dist/components/feedback/MCookie/index.d.ts +16 -0
  288. package/dist/components/feedback/index.d.ts +1 -0
  289. package/dist/components/layout/MTopbar/MTopbar.d.ts +2 -0
  290. package/dist/components/layout/MTopbar/MTopbar.types.d.ts +36 -0
  291. package/dist/components/layout/MTopbar/index.d.ts +2 -0
  292. package/dist/components/layout/index.d.ts +4 -0
  293. package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +2 -0
  294. package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +14 -0
  295. package/dist/components/media/MAvatarStack/index.d.ts +2 -0
  296. package/dist/components/media/MMasonry/MMasonry.d.ts +2 -0
  297. package/dist/components/media/MMasonry/MMasonry.types.d.ts +7 -0
  298. package/dist/components/media/MMasonry/index.d.ts +2 -0
  299. package/dist/components/media/MMasonryItem/MMasonryItem.d.ts +2 -0
  300. package/dist/components/media/MMasonryItem/MMasonryItem.types.d.ts +14 -0
  301. package/dist/components/media/MMasonryItem/index.d.ts +2 -0
  302. package/dist/components/media/MShowcaseCarousel/MShowcaseCarousel.d.ts +2 -0
  303. package/dist/components/media/MShowcaseCarousel/MShowcaseCarousel.types.d.ts +19 -0
  304. package/dist/components/media/MShowcaseCarousel/index.d.ts +2 -0
  305. package/dist/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.d.ts +2 -0
  306. package/dist/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.types.d.ts +18 -0
  307. package/dist/components/media/MShowcaseCarouselItem/index.d.ts +2 -0
  308. package/dist/components/media/index.d.ts +16 -0
  309. package/dist/controls-DEEbLT5o.cjs +2 -0
  310. package/dist/controls-DEEbLT5o.cjs.map +1 -0
  311. package/dist/{controls-1nIh1Ih1.js → controls-IsOBNxW0.js} +33 -74
  312. package/dist/controls-IsOBNxW0.js.map +1 -0
  313. package/dist/controls.cjs +1 -1
  314. package/dist/controls.js +6 -5
  315. package/dist/cookie-consent-bootstrap.cjs +2 -0
  316. package/dist/cookie-consent-bootstrap.cjs.map +1 -0
  317. package/dist/cookie-consent-bootstrap.d.ts +1 -0
  318. package/dist/cookie-consent-bootstrap.js +93 -0
  319. package/dist/cookie-consent-bootstrap.js.map +1 -0
  320. package/dist/{creditCards-BVKi47yn.cjs → creditCards-BjHGqAFx.cjs} +1 -1
  321. package/dist/{creditCards-BVKi47yn.cjs.map → creditCards-BjHGqAFx.cjs.map} +1 -1
  322. package/dist/{creditCards-Bk9rsMJf.js → creditCards-CoZpbB1e.js} +1 -1
  323. package/dist/{creditCards-Bk9rsMJf.js.map → creditCards-CoZpbB1e.js.map} +1 -1
  324. package/dist/data-BEH7TbuW.cjs +2 -0
  325. package/dist/data-BEH7TbuW.cjs.map +1 -0
  326. package/dist/data-Bp3Fd2Al.js +2529 -0
  327. package/dist/data-Bp3Fd2Al.js.map +1 -0
  328. package/dist/data.cjs +1 -1
  329. package/dist/data.js +4 -2
  330. package/dist/{dateUtils-BYfEWGkb.js → dateUtils-BOsYyWde.js} +1 -1
  331. package/dist/{dateUtils-BYfEWGkb.js.map → dateUtils-BOsYyWde.js.map} +1 -1
  332. package/dist/{dateUtils-5jacfR5Q.cjs → dateUtils-xSfrXjbY.cjs} +1 -1
  333. package/dist/{dateUtils-5jacfR5Q.cjs.map → dateUtils-xSfrXjbY.cjs.map} +1 -1
  334. package/dist/display-B0Db8pF3.js +468 -0
  335. package/dist/display-B0Db8pF3.js.map +1 -0
  336. package/dist/display-DmB5CZYB.cjs +2 -0
  337. package/dist/display-DmB5CZYB.cjs.map +1 -0
  338. package/dist/display.cjs +1 -1
  339. package/dist/display.js +4 -3
  340. package/dist/dropdowns-BkBtQP4v.js +1689 -0
  341. package/dist/dropdowns-BkBtQP4v.js.map +1 -0
  342. package/dist/dropdowns-CD2myl19.cjs +2 -0
  343. package/dist/dropdowns-CD2myl19.cjs.map +1 -0
  344. package/dist/dropdowns.cjs +1 -1
  345. package/dist/dropdowns.js +1 -1
  346. package/dist/feedback-CuPBnCOw.cjs +2 -0
  347. package/dist/feedback-CuPBnCOw.cjs.map +1 -0
  348. package/dist/feedback-QP7-6I7O.js +1013 -0
  349. package/dist/feedback-QP7-6I7O.js.map +1 -0
  350. package/dist/feedback.cjs +1 -1
  351. package/dist/feedback.js +7 -6
  352. package/dist/{form-DFx61JJJ.cjs → form-BQ6-ieVC.cjs} +2 -2
  353. package/dist/{form-DFx61JJJ.cjs.map → form-BQ6-ieVC.cjs.map} +1 -1
  354. package/dist/{form-C7T4heU2.js → form-JanaUHTQ.js} +2 -2
  355. package/dist/{form-C7T4heU2.js.map → form-JanaUHTQ.js.map} +1 -1
  356. package/dist/form.cjs +1 -1
  357. package/dist/form.js +1 -1
  358. package/dist/{formatters-bW67hwbX.cjs → formatters-BIijIfCB.cjs} +1 -1
  359. package/dist/{formatters-bW67hwbX.cjs.map → formatters-BIijIfCB.cjs.map} +1 -1
  360. package/dist/{formatters-qn3Mj74v.js → formatters-DMI5QqhS.js} +1 -1
  361. package/dist/{formatters-qn3Mj74v.js.map → formatters-DMI5QqhS.js.map} +1 -1
  362. package/dist/frameworkTexts-5_DBGFFg.js +115 -0
  363. package/dist/frameworkTexts-5_DBGFFg.js.map +1 -0
  364. package/dist/frameworkTexts-CwSSRPWS.cjs +2 -0
  365. package/dist/frameworkTexts-CwSSRPWS.cjs.map +1 -0
  366. package/dist/icons/MIconV2.d.ts +7 -0
  367. package/dist/icons/MIconV2Glyph.d.ts +11 -0
  368. package/dist/icons/MIconV2Scenes.d.ts +40 -0
  369. package/dist/icons/glyphs/MCalendarIconV2.d.ts +2 -0
  370. package/dist/icons/glyphs/MChartIconV2.d.ts +2 -0
  371. package/dist/icons/glyphs/MFlagIconsV2.d.ts +19 -0
  372. package/dist/icons/glyphs/MHomeIconV2.d.ts +2 -0
  373. package/dist/icons/glyphs/MNavigationIconsV2.d.ts +14 -0
  374. package/dist/icons/glyphs/MSearchIconV2.d.ts +2 -0
  375. package/dist/icons/glyphs/MSettingsIconV2.d.ts +2 -0
  376. package/dist/icons/glyphs/MUserIconV2.d.ts +2 -0
  377. package/dist/icons/index.d.ts +12 -0
  378. package/dist/icons.cjs +1 -1
  379. package/dist/icons.entry-LwjwnjE2.cjs +2 -0
  380. package/dist/icons.entry-LwjwnjE2.cjs.map +1 -0
  381. package/dist/{icons.entry-CbJp27gc.js → icons.entry-txsQqMvb.js} +1663 -985
  382. package/dist/icons.entry-txsQqMvb.js.map +1 -0
  383. package/dist/icons.js +22 -17
  384. package/dist/illustrations.cjs +1 -1
  385. package/dist/{illustrations.entry-CaBqXBpd.js → illustrations.entry-C0rSNpF1.js} +2 -2
  386. package/dist/{illustrations.entry-CaBqXBpd.js.map → illustrations.entry-C0rSNpF1.js.map} +1 -1
  387. package/dist/{illustrations.entry-D5StzALw.cjs → illustrations.entry-DtMxssXq.cjs} +2 -2
  388. package/dist/{illustrations.entry-D5StzALw.cjs.map → illustrations.entry-DtMxssXq.cjs.map} +1 -1
  389. package/dist/illustrations.js +1 -1
  390. package/dist/index.cjs +1 -1
  391. package/dist/index.js +74 -60
  392. package/dist/inputs-BRjbpf9P.cjs +2 -0
  393. package/dist/{inputs-6TRTzH12.cjs.map → inputs-BRjbpf9P.cjs.map} +1 -1
  394. package/dist/{inputs-Bd_5Xg49.js → inputs-DFoD2MMX.js} +193 -191
  395. package/dist/{inputs-Bd_5Xg49.js.map → inputs-DFoD2MMX.js.map} +1 -1
  396. package/dist/inputs.cjs +1 -1
  397. package/dist/inputs.js +3 -3
  398. package/dist/layout-BWhQ1VXM.cjs +2 -0
  399. package/dist/layout-BWhQ1VXM.cjs.map +1 -0
  400. package/dist/layout-yIAZ4bP6.js +819 -0
  401. package/dist/layout-yIAZ4bP6.js.map +1 -0
  402. package/dist/layout.cjs +1 -1
  403. package/dist/layout.js +5 -5
  404. package/dist/{layoutProps-CAv0VWdN.cjs → layoutProps-CZ-XhpIX.cjs} +1 -1
  405. package/dist/{layoutProps-CAv0VWdN.cjs.map → layoutProps-CZ-XhpIX.cjs.map} +1 -1
  406. package/dist/{layoutProps-D8exMwKp.js → layoutProps-DUPQsWy9.js} +1 -1
  407. package/dist/{layoutProps-D8exMwKp.js.map → layoutProps-DUPQsWy9.js.map} +1 -1
  408. package/dist/licensing-CMLexRJk.cjs +2 -0
  409. package/dist/licensing-CMLexRJk.cjs.map +1 -0
  410. package/dist/licensing-SQAMYrOI.js +105 -0
  411. package/dist/licensing-SQAMYrOI.js.map +1 -0
  412. package/dist/{locale-BJucQij_.js → locale-Crzgecoe.js} +1 -1
  413. package/dist/{locale-BJucQij_.js.map → locale-Crzgecoe.js.map} +1 -1
  414. package/dist/{locale-CjYHLr1l.cjs → locale-DpCe_7mG.cjs} +1 -1
  415. package/dist/{locale-CjYHLr1l.cjs.map → locale-DpCe_7mG.cjs.map} +1 -1
  416. package/dist/media-D0KRmTG_.cjs +2 -0
  417. package/dist/media-D0KRmTG_.cjs.map +1 -0
  418. package/dist/media-DWG2uW1h.js +406 -0
  419. package/dist/media-DWG2uW1h.js.map +1 -0
  420. package/dist/media.cjs +1 -1
  421. package/dist/media.js +4 -3
  422. package/dist/overlays-CROlfKrR.cjs +2 -0
  423. package/dist/overlays-CROlfKrR.cjs.map +1 -0
  424. package/dist/overlays-DQOnI2NS.js +186 -0
  425. package/dist/overlays-DQOnI2NS.js.map +1 -0
  426. package/dist/overlays.cjs +1 -1
  427. package/dist/overlays.js +6 -4
  428. package/dist/primitives.cjs +1 -1
  429. package/dist/primitives.js +2 -2
  430. package/dist/{relativeTime-FdokPH7W.js → relativeTime-3dGgniAK.js} +1 -1
  431. package/dist/{relativeTime-FdokPH7W.js.map → relativeTime-3dGgniAK.js.map} +1 -1
  432. package/dist/{relativeTime-oubkDkrk.cjs → relativeTime-D5qYOJVu.cjs} +1 -1
  433. package/dist/{relativeTime-oubkDkrk.cjs.map → relativeTime-D5qYOJVu.cjs.map} +1 -1
  434. package/dist/style-runtime.cjs +1 -1
  435. package/dist/style-runtime.js +1 -1
  436. package/dist/styles.css +1 -1
  437. package/dist/typography-CCkJaTzp.js +40 -0
  438. package/dist/typography-CCkJaTzp.js.map +1 -0
  439. package/dist/typography-CtITQOAU.cjs +2 -0
  440. package/dist/typography-CtITQOAU.cjs.map +1 -0
  441. package/dist/typography.cjs +1 -1
  442. package/dist/typography.js +5 -4
  443. package/dist/{useGhostText-BrRYBrV_.cjs → useGhostText-CL1kSB_V.cjs} +1 -1
  444. package/dist/{useGhostText-BrRYBrV_.cjs.map → useGhostText-CL1kSB_V.cjs.map} +1 -1
  445. package/dist/{useGhostText-BpSSyl8G.js → useGhostText-Zq3iktss.js} +1 -1
  446. package/dist/{useGhostText-BpSSyl8G.js.map → useGhostText-Zq3iktss.js.map} +1 -1
  447. package/dist/{useInteractionEffect-BaJeiUns.cjs → useInteractionEffect-BLehDk91.cjs} +1 -1
  448. package/dist/{useInteractionEffect-BaJeiUns.cjs.map → useInteractionEffect-BLehDk91.cjs.map} +1 -1
  449. package/dist/{useInteractionEffect-B5_UpgTt.js → useInteractionEffect-Dfqq8lGO.js} +1 -1
  450. package/dist/{useInteractionEffect-B5_UpgTt.js.map → useInteractionEffect-Dfqq8lGO.js.map} +1 -1
  451. package/dist/{useKeyboardNav-DJtFz7Fx.cjs → useKeyboardNav-DBeCcTmg.cjs} +1 -1
  452. package/dist/{useKeyboardNav-DJtFz7Fx.cjs.map → useKeyboardNav-DBeCcTmg.cjs.map} +1 -1
  453. package/dist/{useKeyboardNav-CmUKtJag.js → useKeyboardNav-DXvrPrx9.js} +1 -1
  454. package/dist/{useKeyboardNav-CmUKtJag.js.map → useKeyboardNav-DXvrPrx9.js.map} +1 -1
  455. package/dist/{useReveal-D1YuWN9z.cjs → useReveal-CdIoh0Rk.cjs} +1 -1
  456. package/dist/{useReveal-D1YuWN9z.cjs.map → useReveal-CdIoh0Rk.cjs.map} +1 -1
  457. package/dist/{useReveal-BB9OaMDU.js → useReveal-DzskFHKb.js} +1 -1
  458. package/dist/{useReveal-BB9OaMDU.js.map → useReveal-DzskFHKb.js.map} +1 -1
  459. package/dist/utils/licensing.d.ts +78 -1
  460. package/dist/utils.cjs +1 -1
  461. package/dist/utils.js +11 -11
  462. package/dist/{validators-CA-TznrL.cjs → validators-CyDTl6cC.cjs} +1 -1
  463. package/dist/{validators-CA-TznrL.cjs.map → validators-CyDTl6cC.cjs.map} +1 -1
  464. package/dist/{validators-CAahqOcq.js → validators-ljBWrIca.js} +1 -1
  465. package/dist/{validators-CAahqOcq.js.map → validators-ljBWrIca.js.map} +1 -1
  466. package/package.json +29 -6
  467. package/dist/MBoltIcon-B1P4i_X4.js.map +0 -1
  468. package/dist/MBoltIcon-DB6JHWMo.cjs +0 -2
  469. package/dist/MBoltIcon-DB6JHWMo.cjs.map +0 -1
  470. package/dist/MCard-BBBA2UVf.cjs +0 -2
  471. package/dist/MCard-BBBA2UVf.cjs.map +0 -1
  472. package/dist/MCard-ViJ2Lf73.js +0 -65
  473. package/dist/MCard-ViJ2Lf73.js.map +0 -1
  474. package/dist/MDropdownMenu-BcRbNfoR.js +0 -186
  475. package/dist/MDropdownMenu-BcRbNfoR.js.map +0 -1
  476. package/dist/MDropdownMenu-DOxSG00i.cjs +0 -2
  477. package/dist/MDropdownMenu-DOxSG00i.cjs.map +0 -1
  478. package/dist/MFolderOpenIcon-35Lmw91g.cjs +0 -2
  479. package/dist/MFolderOpenIcon-35Lmw91g.cjs.map +0 -1
  480. package/dist/MFolderOpenIcon-DFahkqXu.js +0 -31
  481. package/dist/MFolderOpenIcon-DFahkqXu.js.map +0 -1
  482. package/dist/MPagination-C8txsdB6.cjs +0 -2
  483. package/dist/MPagination-C8txsdB6.cjs.map +0 -1
  484. package/dist/MPagination-RupoyjxR.js +0 -113
  485. package/dist/MPagination-RupoyjxR.js.map +0 -1
  486. package/dist/MRating-0-_XBF-T.js +0 -38
  487. package/dist/MRating-0-_XBF-T.js.map +0 -1
  488. package/dist/MRating-B-fQMZ8c.cjs +0 -2
  489. package/dist/MRating-B-fQMZ8c.cjs.map +0 -1
  490. package/dist/MSkeleton-7YJwDcvl.cjs +0 -2
  491. package/dist/MSkeleton-7YJwDcvl.cjs.map +0 -1
  492. package/dist/MSkeleton-QQ57uNaL.js +0 -39
  493. package/dist/MSkeleton-QQ57uNaL.js.map +0 -1
  494. package/dist/MSortIcon-3mD9vpMX.cjs +0 -2
  495. package/dist/MSortIcon-3mD9vpMX.cjs.map +0 -1
  496. package/dist/MSortIcon-DGHyltKa.js +0 -84
  497. package/dist/MSortIcon-DGHyltKa.js.map +0 -1
  498. package/dist/MText-BxAcAs-j.cjs +0 -2
  499. package/dist/MText-BxAcAs-j.cjs.map +0 -1
  500. package/dist/MText-CzceD0k5.js +0 -43
  501. package/dist/MText-CzceD0k5.js.map +0 -1
  502. package/dist/MZoomInIcon-BcpTfzRD.cjs +0 -2
  503. package/dist/MZoomInIcon-BcpTfzRD.cjs.map +0 -1
  504. package/dist/MZoomInIcon-CK2aJhDg.js.map +0 -1
  505. package/dist/cards-Bw7aZCIy.cjs +0 -2
  506. package/dist/cards-Bw7aZCIy.cjs.map +0 -1
  507. package/dist/cards-CYzgOCG5.js +0 -613
  508. package/dist/cards-CYzgOCG5.js.map +0 -1
  509. package/dist/controls-1nIh1Ih1.js.map +0 -1
  510. package/dist/controls-2pkUWkOa.cjs +0 -2
  511. package/dist/controls-2pkUWkOa.cjs.map +0 -1
  512. package/dist/data-BGEuiFne.cjs +0 -2
  513. package/dist/data-BGEuiFne.cjs.map +0 -1
  514. package/dist/data-CYb66BuD.js +0 -423
  515. package/dist/data-CYb66BuD.js.map +0 -1
  516. package/dist/display-BEw4iW6N.js +0 -416
  517. package/dist/display-BEw4iW6N.js.map +0 -1
  518. package/dist/display-BVeaSZDJ.cjs +0 -2
  519. package/dist/display-BVeaSZDJ.cjs.map +0 -1
  520. package/dist/dropdowns-CsUSxR0u.cjs +0 -2
  521. package/dist/dropdowns-CsUSxR0u.cjs.map +0 -1
  522. package/dist/dropdowns-DiEsLPoq.js +0 -1729
  523. package/dist/dropdowns-DiEsLPoq.js.map +0 -1
  524. package/dist/feedback-BOPPNYr5.js +0 -217
  525. package/dist/feedback-BOPPNYr5.js.map +0 -1
  526. package/dist/feedback-vTRXpBZw.cjs +0 -2
  527. package/dist/feedback-vTRXpBZw.cjs.map +0 -1
  528. package/dist/icons.entry-BBIBT_e2.cjs +0 -2
  529. package/dist/icons.entry-BBIBT_e2.cjs.map +0 -1
  530. package/dist/icons.entry-CbJp27gc.js.map +0 -1
  531. package/dist/inputs-6TRTzH12.cjs +0 -2
  532. package/dist/layout-DgxSN0QV.js +0 -698
  533. package/dist/layout-DgxSN0QV.js.map +0 -1
  534. package/dist/layout-DsxgXjK_.cjs +0 -2
  535. package/dist/layout-DsxgXjK_.cjs.map +0 -1
  536. package/dist/licensing-C80xLz-j.cjs +0 -2
  537. package/dist/licensing-C80xLz-j.cjs.map +0 -1
  538. package/dist/licensing-DsWLXZiM.js +0 -28
  539. package/dist/licensing-DsWLXZiM.js.map +0 -1
  540. package/dist/media-V8oypokY.js +0 -171
  541. package/dist/media-V8oypokY.js.map +0 -1
  542. package/dist/media-uvYa5r3D.cjs +0 -2
  543. package/dist/media-uvYa5r3D.cjs.map +0 -1
  544. package/dist/overlays-BjO2sRrU.cjs +0 -2
  545. package/dist/overlays-BjO2sRrU.cjs.map +0 -1
  546. package/dist/overlays-DnMM32yB.js +0 -360
  547. package/dist/overlays-DnMM32yB.js.map +0 -1
  548. package/dist/typography-Bcn3mZPw.js +0 -63
  549. package/dist/typography-Bcn3mZPw.js.map +0 -1
  550. package/dist/typography-Cy_-zrZI.cjs +0 -2
  551. package/dist/typography-Cy_-zrZI.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-DgxSN0QV.js","names":[],"sources":["../src/components/layout/MContainer/MContainer.tsx","../src/components/layout/MHeader/MHeader.tsx","../src/components/layout/MFooter/MFooter.tsx","../src/components/layout/MNavbar/MNavbar.tsx","../src/components/layout/MNavs/MNavs.tsx","../src/components/layout/MTabs/MTabs.tsx","../src/components/layout/MSection/MSection.tsx","../src/components/layout/MInline/MInline.tsx","../src/components/layout/MSimpleGrid/MSimpleGrid.tsx","../src/components/layout/MGrid/MGrid.tsx","../src/components/layout/MDivider/MDivider.tsx","../src/components/layout/MSidebar/MSidebar.tsx","../src/components/layout/MBreadcrumb/MBreadcrumb.tsx","../src/components/layout/MAppShell/MAppShell.tsx"],"sourcesContent":["import type {MContainerProps} from './MContainer.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MContainer.css'\n\n// Constrain page content widths and apply shared spacing utilities.\nexport function MContainer({\n size = 'content',\n padded = true,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MContainerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'container',\n size,\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MHeaderProps} from './MHeader.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MHeader.css'\n\n// Render a reusable page header shell aligned to a shared container.\nexport function MHeader({\n container = 'wide',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n layout = 'split',\n className,\n children,\n ...rest\n}: MHeaderProps) {\n return (\n <header className={cn('header', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className={cn('inner', `layout-${layout}`)}>\n {children}\n </MContainer>\n </header>\n )\n}\n","import type {MFooterProps} from './MFooter.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {MContainer} from '../MContainer'\nimport './MFooter.css'\n\n// Render a reusable page footer shell with shared spacing utilities.\nexport function MFooter({\n container = 'wide',\n padded = true,\n bordered = true,\n tone = 'surface',\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MFooterProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <footer\n className={cn(\n 'footer',\n tone,\n bordered && 'bordered',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"inner\" fullWidth>\n {children}\n </MContainer>\n </footer>\n )\n}\n","import type {MNavbarProps} from './MNavbar.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MNavbar.css'\n\n// Render a horizontal app or site navigation shell with container alignment.\nexport function MNavbar({\n container = 'content',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'between',\n wrap = false,\n className,\n children,\n ...rest\n}: MNavbarProps) {\n return (\n <nav className={cn('navbar', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className=\"container\">\n <div className={cn('inner', justify, wrap && 'wrap')}>{children}</div>\n </MContainer>\n </nav>\n )\n}\n","import type {MNavsProps} from './MNavs.types'\nimport {cn} from '../../../utils/cn'\nimport {MLink} from '../../typography'\nimport './MNavs.css'\n\n// Render a lightweight navigation list from data or custom children.\nexport function MNavs({items, orientation = 'horizontal', wrap = false, className, children, ...rest}: MNavsProps) {\n return (\n <div className={cn('navs', orientation, wrap && 'wrap', className)} {...rest}>\n {items\n ? items.map((item) => (\n <MLink\n key={item.key ?? item.href ?? item.title?.toString() ?? item.label?.toString()}\n component={item.component}\n href={item.href}\n to={item.to}\n target={item.target}\n rel={item.rel}\n title={item.title}\n current={item.current}\n disabled={item.disabled}\n className={cn('link', item.className)}\n >\n {item.label}\n </MLink>\n ))\n : children}\n </div>\n )\n}\n","import {useId, useMemo, useState} from 'react'\nimport type {KeyboardEvent} from 'react'\nimport type {MTabsItem, MTabsProps} from './MTabs.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MTabs.css'\n\ninterface MTabsTriggerProps {\n item: MTabsItem\n isActive: boolean\n tabId: string\n panelId: string\n clickEffect: MTabsProps['clickEffect']\n rippleColor: string | undefined\n onSelect: (value: string) => void\n}\n\n// Keep the tab trigger behavior isolated from the list and panel rendering.\nfunction MTabsTrigger({item, isActive, tabId, panelId, clickEffect, rippleColor, onSelect}: MTabsTriggerProps) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: item.disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <button\n type=\"button\"\n id={tabId}\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n disabled={item.disabled}\n className={cn('tabs-trigger', isActive && 'active', item.disabled && 'disabled', effectClassName)}\n onPointerDown={handlePointerDown}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n }}\n onClick={() => onSelect(item.value)}\n >\n {effectLayer}\n {item.icon && <span className=\"tabs-icon\">{item.icon}</span>}\n <span className=\"tabs-label\">{item.label}</span>\n </button>\n )\n}\n\nexport function MTabs({\n items,\n value,\n defaultValue,\n onValueChange,\n variant = 'underline',\n orientation = 'horizontal',\n size = 'md',\n fullWidth = false,\n showPanels = true,\n panelClassName,\n clickEffect = 'ripple',\n rippleColor,\n className,\n ...rest\n}: MTabsProps) {\n // Pick the first enabled item when the caller does not control the active tab.\n const fallbackValue = useMemo(\n () => defaultValue ?? items.find((item) => !item.disabled)?.value ?? '',\n [defaultValue, items]\n )\n const [internalValue, setInternalValue] = useState(fallbackValue)\n const activeValue = value ?? internalValue\n const activeItem = items.find((item) => item.value === activeValue) ?? items[0]\n const baseId = useId()\n\n // Support both controlled and uncontrolled tab state.\n function selectTab(nextValue: string) {\n if (value === undefined) {\n setInternalValue(nextValue)\n }\n onValueChange?.(nextValue)\n }\n\n // Re-map keyboard navigation depending on the rendered orientation.\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const enabledItems = items.filter((item) => !item.disabled)\n const currentIndex = enabledItems.findIndex((item) => item.value === activeItem?.value)\n\n if (currentIndex === -1) {\n return\n }\n\n const nextKeys = orientation === 'vertical' ? ['ArrowDown'] : ['ArrowRight', 'ArrowDown']\n const previousKeys = orientation === 'vertical' ? ['ArrowUp'] : ['ArrowLeft', 'ArrowUp']\n\n if (nextKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex + 1) % enabledItems.length]\n selectTab(nextItem.value)\n }\n\n if (previousKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex - 1 + enabledItems.length) % enabledItems.length]\n selectTab(nextItem.value)\n }\n }\n\n return (\n <div className={cn('tabs', variant, orientation, size, fullWidth && 'full-width', className)} {...rest}>\n <div className=\"tabs-list\" role=\"tablist\" aria-orientation={orientation} onKeyDown={handleKeyDown}>\n {items.map((item) => {\n const isActive = item.value === activeItem?.value\n const tabId = `${baseId}-${item.value}-tab`\n const panelId = `${baseId}-${item.value}-panel`\n\n return (\n <MTabsTrigger\n key={item.value}\n item={item}\n isActive={isActive}\n tabId={tabId}\n panelId={panelId}\n clickEffect={clickEffect}\n rippleColor={rippleColor}\n onSelect={selectTab}\n />\n )\n })}\n </div>\n\n {showPanels && activeItem?.content !== undefined && (\n <div\n key={activeItem.value}\n id={`${baseId}-${activeItem.value}-panel`}\n role=\"tabpanel\"\n aria-labelledby={`${baseId}-${activeItem.value}-tab`}\n className={cn('tabs-panel', panelClassName)}\n >\n {activeItem.content}\n </div>\n )}\n </div>\n )\n}\n","import type React from 'react'\nimport type {MSectionProps} from './MSection.types'\nimport {cn} from '../../../utils/cn'\nimport {useReveal} from '../../../utils/useReveal'\nimport './MSection.css'\n\n// Render a semantic page section with predefined spacing and tone.\nexport function MSection({\n as = 'section',\n spacing = 'lg',\n tone = 'default',\n reveal,\n className,\n style,\n children,\n ...rest\n}: MSectionProps) {\n const Component = as\n const revealRef = useReveal(reveal)\n const hasReveal = reveal !== undefined && reveal !== false\n\n return (\n <Component\n ref={hasReveal ? (revealRef as React.RefObject<never>) : undefined}\n className={cn('section', spacing, tone, hasReveal && 'reveal', className)}\n style={style}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import type {MInlineProps} from './MInline.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {useReveal} from '../../../utils/useReveal'\nimport './MInline.css'\n\n// Arrange children horizontally with shared alignment and wrapping helpers.\nexport function MInline({\n align = 'center',\n justify = 'start',\n wrap = 'wrap',\n reveal,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MInlineProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const revealRef = useReveal<HTMLDivElement>(reveal)\n\n return (\n <div\n ref={reveal !== undefined && reveal !== false ? revealRef : undefined}\n className={cn(\n 'inline',\n align,\n `justify-${justify}`,\n wrap,\n reveal !== undefined && reveal !== false && 'reveal',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MSimpleGridProps} from './MSimpleGrid.types'\nimport {cn} from '../../../utils/cn'\nimport './MSimpleGrid.css'\n\n// Render a simple equal-column grid with a shared default spacing.\nexport function MSimpleGrid({columns = 2, minItemWidth, className, style, children, ...rest}: MSimpleGridProps) {\n return (\n <div\n className={cn('grid', `columns-${columns}`, className)}\n style={{\n ...(minItemWidth ? {'--grid-min-item-width': minItemWidth} : {}),\n ...style,\n }}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport type {ReactElement} from 'react'\nimport type {MGridColumns, MGridItemProps, MGridProps} from './MGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MGrid.css'\n\ntype GridBreakpoint = 'span' | 'xl' | 'lg' | 'md' | 'sm'\n\nfunction isGridColumnElement(child: unknown): child is ReactElement<MGridProps | MGridItemProps> {\n if (!isValidElement(child)) {\n return false\n }\n\n if (child.type === MGridItem) {\n return true\n }\n\n return child.type === MGrid && (child.props as MGridProps).type === 'col'\n}\n\nfunction getNormalizedSpans(props: Partial<MGridProps>) {\n return {\n span: props.span ?? props.xl ?? props.lg ?? props.md ?? props.sm,\n xl: props.xl ?? props.lg ?? props.md ?? props.sm,\n lg: props.lg ?? props.md ?? props.sm,\n md: props.md ?? props.sm,\n sm: props.sm,\n }\n}\n\nfunction distributeRemainingColumns(remaining: number, count: number): Array<MGridColumns | undefined> {\n if (count <= 0) {\n return []\n }\n\n if (remaining <= 0) {\n return Array.from({length: count}, () => undefined)\n }\n\n const base = Math.floor(remaining / count)\n const extra = remaining % count\n\n return Array.from({length: count}, (_, index) => {\n const value = base + (index < extra ? 1 : 0)\n return value >= 1 ? (value as MGridColumns) : undefined\n })\n}\n\nfunction resolveAutoSpans(columnProps: Array<Partial<MGridProps>>) {\n const breakpoints: GridBreakpoint[] = ['span', 'xl', 'lg', 'md', 'sm']\n const normalized = columnProps.map((props) => getNormalizedSpans(props))\n const resolved = normalized.map((spans) => ({...spans}))\n\n for (const breakpoint of breakpoints) {\n const autoIndexes: number[] = []\n let usedColumns = 0\n\n normalized.forEach((spans, index) => {\n const value = spans[breakpoint]\n\n if (value) {\n usedColumns += value\n return\n }\n\n autoIndexes.push(index)\n })\n\n const distributed = distributeRemainingColumns(Math.max(12 - usedColumns, 0), autoIndexes.length)\n\n autoIndexes.forEach((columnIndex, autoIndex) => {\n resolved[columnIndex][breakpoint] = distributed[autoIndex]\n })\n }\n\n return resolved\n}\n\n// Render either a responsive row or a responsive column using one shared grid API.\nexport function MGrid({\n type = 'row',\n span,\n sm,\n md,\n lg,\n xl,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MGridProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const baseSpan = span ?? xl ?? lg\n\n if (type === 'col') {\n return (\n <div\n className={cn(\n 'grid',\n 'col',\n baseSpan ? `span-${baseSpan}` : 'span-auto',\n xl && `xl-${xl}`,\n lg && `lg-${lg}`,\n md && `md-${md}`,\n sm && `sm-${sm}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n }\n\n const childArray = Children.toArray(children)\n const columnEntries = childArray.flatMap((child, index) => (isGridColumnElement(child) ? [{child, index}] : []))\n const autoColumns = Math.min(Math.max(columnEntries.length || childArray.length, 1), 12)\n const hasTrackedSizing = columnEntries.some(({child}) => {\n const p = child.props as MGridProps\n return Boolean(p.span || p.xl || p.lg || p.md || p.sm)\n })\n const resolvedSpans = hasTrackedSizing\n ? resolveAutoSpans(columnEntries.map(({child}) => child.props as Partial<MGridProps>))\n : null\n const resolvedChildren =\n hasTrackedSizing && resolvedSpans\n ? childArray.map((child, childIndex) => {\n const columnIndex = columnEntries.findIndex((entry) => entry.index === childIndex)\n\n if (columnIndex === -1 || !isGridColumnElement(child)) {\n return child\n }\n\n const spans = resolvedSpans[columnIndex]\n\n return cloneElement(child, {\n span: spans.span,\n xl: spans.xl,\n lg: spans.lg,\n md: spans.md,\n sm: spans.sm,\n })\n })\n : childArray\n\n return (\n <div\n className={cn(\n 'grid',\n 'row',\n hasTrackedSizing ? 'tracked' : `auto-cols-${autoColumns}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth: fullWidth ?? true,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {resolvedChildren}\n </div>\n )\n}\n\n// Keep MGridItem as a compatibility alias for explicit column declarations.\nexport function MGridItem({span, sm, md, lg, xl, ...rest}: MGridItemProps) {\n return <MGrid type=\"col\" span={span} sm={sm} md={md} lg={lg} xl={xl} {...rest} />\n}\n","import type {MDividerProps} from './MDivider.types'\nimport {cn} from '../../../utils/cn'\nimport './MDivider.css'\n\n// Render a semantic divider line between related content blocks.\nexport function MDivider({orientation = 'horizontal', variant = 'solid', className, style, ...rest}: MDividerProps) {\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation}\n className={cn('divider', orientation, variant, className)}\n style={style}\n {...rest}\n />\n )\n}\n","import {createContext, useContext, useState, useEffect, useCallback, useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronRightIcon, MMenuIcon} from '../../../icons'\nimport {MDropdownMenu, MTooltip} from '../../overlays'\nimport type {\n MSidebarProps,\n MSidebarHeaderProps,\n MSidebarBodyProps,\n MSidebarNavProps,\n MSidebarItemProps,\n MSidebarGroupProps,\n MSidebarFooterProps,\n MSidebarDividerProps,\n MSidebarMode,\n} from './MSidebar.types'\nimport './MSidebar.css'\n\nconst STORAGE_KEY = 'mineralui-sidebar'\n\ninterface SidebarContextValue {\n mode: MSidebarMode\n mobile: boolean\n mobileOpen: boolean\n canToggle: boolean\n toggleMode: () => void\n}\n\nconst SidebarCtx = createContext<SidebarContextValue>({\n mode: 'expanded',\n mobile: false,\n mobileOpen: false,\n canToggle: false,\n toggleMode: () => {},\n})\n\n// Read shared sidebar state inside slot components.\nfunction useSidebar() {\n return useContext(SidebarCtx)\n}\n\n// Track the responsive breakpoint once for the whole sidebar tree.\nfunction useIsMobile(breakpoint: number): boolean {\n const [mobile, setMobile] = useState(() => (typeof window !== 'undefined' ? window.innerWidth < breakpoint : false))\n\n useEffect(() => {\n const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`)\n const handler = (e: MediaQueryListEvent) => setMobile(e.matches)\n\n setMobile(mq.matches)\n mq.addEventListener('change', handler)\n return () => mq.removeEventListener('change', handler)\n }, [breakpoint])\n\n return mobile\n}\n\n// Render the sidebar shell and coordinate desktop and mobile behavior.\nexport function MSidebar({\n mode: modeProp = 'auto',\n defaultMode = 'expanded',\n onModeChange,\n persist = false,\n side = 'left',\n tone = 'subtle',\n bordered = true,\n mobileBreakpoint = 768,\n className,\n style,\n children,\n}: MSidebarProps) {\n const mobile = useIsMobile(mobileBreakpoint)\n const [mobileOpen, setMobileOpen] = useState(false)\n\n const [internalMode, setInternalMode] = useState<MSidebarMode>(() => {\n if (persist) {\n try {\n const v = localStorage.getItem(STORAGE_KEY)\n if (v === 'expanded' || v === 'collapsed') return v\n } catch {\n /* noop */\n }\n }\n\n return defaultMode\n })\n\n const resolvedMode: MSidebarMode =\n modeProp === 'auto' ? internalMode : modeProp === 'collapsed' ? 'collapsed' : 'expanded'\n\n // MToggle only the desktop width state. Mobile uses its own overlay flow.\n const toggleMode = useCallback(() => {\n const next: MSidebarMode = resolvedMode === 'expanded' ? 'collapsed' : 'expanded'\n\n setInternalMode(next)\n onModeChange?.(next)\n\n if (persist) {\n try {\n localStorage.setItem(STORAGE_KEY, next)\n } catch {\n /* noop */\n }\n }\n }, [resolvedMode, onModeChange, persist])\n\n const closeMobile = useCallback(() => setMobileOpen(false), [])\n\n // Let Escape close the temporary mobile drawer.\n useEffect(() => {\n if (!mobileOpen) return\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setMobileOpen(false)\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [mobileOpen])\n\n const canToggle = !mobile && modeProp === 'auto'\n\n const ctx = useMemo<SidebarContextValue>(\n () => ({mode: resolvedMode, mobile, mobileOpen, canToggle, toggleMode}),\n [resolvedMode, mobile, mobileOpen, canToggle, toggleMode]\n )\n\n const isCollapsed = !mobile && resolvedMode === 'collapsed'\n\n const sidebarCls = cn(\n 'sidebar',\n tone,\n side,\n isCollapsed && 'collapsed',\n bordered && 'bordered',\n mobile && 'mobile',\n mobile && mobileOpen && 'mobile-open',\n className\n )\n\n return (\n <SidebarCtx.Provider value={ctx}>\n {mobile && mobileOpen && <div className=\"sidebar-backdrop\" onClick={closeMobile} />}\n\n <aside className={sidebarCls} style={style}>\n {children}\n </aside>\n\n {mobile && !mobileOpen && (\n <button\n className={cn('sidebar-hamburger', side)}\n onClick={() => setMobileOpen(true)}\n aria-label=\"Open menu\"\n >\n <span className=\"sidebar-hamburger-icon\" aria-hidden=\"true\">\n <MMenuIcon />\n </span>\n </button>\n )}\n </SidebarCtx.Provider>\n )\n}\n\n// Render the top area with branding and an optional collapse toggle.\nexport function MSidebarHeader({bordered = false, className, children}: MSidebarHeaderProps) {\n const {mode, mobile, canToggle, toggleMode} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n return (\n <div className={cn('sidebar-header', bordered && 'bordered', className)}>\n <div className=\"sidebar-header-content\">{children}</div>\n {canToggle && (\n <MButton\n variant=\"outlined\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={toggleMode}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n className=\"sidebar-toggle\"\n >\n <span className={cn('sidebar-chevron', isCollapsed && 'flipped')}>\n <MChevronRightIcon />\n </span>\n </MButton>\n )}\n </div>\n )\n}\n\n// Wrap the scrollable middle area between header and footer.\nexport function MSidebarBody({className, children}: MSidebarBodyProps) {\n return <div className={cn('sidebar-body', className)}>{children}</div>\n}\n\n// Wrap sidebar links in a navigation landmark.\nexport function MSidebarNav({className, children}: MSidebarNavProps) {\n return <nav className={cn('sidebar-nav', className)}>{children}</nav>\n}\n\n// Render one clickable sidebar row as a link, button or custom component.\nexport function MSidebarItem({\n icon,\n label,\n href,\n to,\n onClick,\n active = false,\n disabled = false,\n badge,\n color,\n component,\n className,\n}: MSidebarItemProps) {\n const {mode, mobile} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? (to ? {to} : href ? {href} : {}) : href ? {href} : to ? {href: to} : {}\n const cls = cn('sidebar-item', active && 'active', disabled && 'disabled', color, className)\n\n return (\n <Tag\n className={cls}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled || undefined}\n title={isCollapsed ? label : undefined}\n {...linkProps}\n >\n {icon && <span className=\"sidebar-item-icon\">{icon}</span>}\n {!isCollapsed && (\n <MTooltip content={label} placement=\"top\" className=\"sidebar-item-label-tooltip\">\n <span className=\"sidebar-item-label\">{label}</span>\n </MTooltip>\n )}\n {!isCollapsed && badge && <span className=\"sidebar-item-badge\">{badge}</span>}\n </Tag>\n )\n}\n\n// Group related sidebar items and swap to a dropdown when collapsed.\nexport function MSidebarGroup({\n label,\n icon,\n active = false,\n defaultOpen = true,\n collapsible = true,\n children,\n className,\n}: MSidebarGroupProps) {\n const sidebarCtx = useSidebar()\n const {mode, mobile} = sidebarCtx\n const isCollapsed = !mobile && mode === 'collapsed'\n const [open, setOpen] = useState(defaultOpen)\n\n const expandedCtx = useMemo<SidebarContextValue>(() => ({...sidebarCtx, mode: 'expanded'}), [sidebarCtx])\n\n // Keep expand/collapse local to this group.\n const toggle = () => {\n if (collapsible) setOpen((o) => !o)\n }\n\n if (isCollapsed) {\n const trigger = (\n <span className={cn('sidebar-group-icon collapsed', active && 'active')} title={label}>\n {icon}\n </span>\n )\n\n return (\n <div className={cn('sidebar-group', className)}>\n <MDropdownMenu trigger={trigger} placement=\"right-start\" closeOnSelect openOn=\"hover\">\n <SidebarCtx.Provider value={expandedCtx}>{children}</SidebarCtx.Provider>\n </MDropdownMenu>\n </div>\n )\n }\n\n return (\n <div className={cn('sidebar-group', className)}>\n <button className={cn('sidebar-group-header', active && 'active')} onClick={toggle} aria-expanded={open}>\n {icon && <span className=\"sidebar-group-icon\">{icon}</span>}\n <span className=\"sidebar-group-label\">{label}</span>\n {collapsible && (\n <span className={cn('sidebar-group-arrow', open && 'open')}>\n <MChevronRightIcon />\n </span>\n )}\n </button>\n {open && <div className=\"sidebar-group-items\">{children}</div>}\n </div>\n )\n}\n\n// Render the bottom slot for version info or quick actions.\nexport function MSidebarFooter({bordered = false, className, children}: MSidebarFooterProps) {\n return <div className={cn('sidebar-footer', bordered && 'bordered', className)}>{children}</div>\n}\n\n// Render a spacing-aware divider between sidebar regions.\nexport function MSidebarDivider({className, spacing = 'md'}: MSidebarDividerProps) {\n return <hr className={cn('sidebar-divider', spacing, className)} />\n}\n","import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MBreadcrumbProps} from './MBreadcrumb.types'\nimport './MBreadcrumb.css'\n\n// Render a compact path and collapse the middle when needed.\nexport function MBreadcrumb({items, separator = '/', maxItems, className, ...rest}: MBreadcrumbProps) {\n // Keep the current page visible while shortening deep paths.\n const visible = useMemo(() => {\n if (!maxItems || maxItems >= items.length) return items\n if (maxItems < 2) return [items[items.length - 1]]\n const head = items.slice(0, 1)\n const tail = items.slice(-(maxItems - 1))\n return [...head, null, ...tail]\n }, [items, maxItems])\n\n return (\n <nav aria-label=\"breadcrumb\" className={cn('breadcrumb', className)} {...rest}>\n <ol className=\"trail\">\n {visible.map((item, i) => {\n if (item === null) {\n return (\n <li key=\"ellipsis\" className=\"crumb dots\">\n <span className=\"sep\">{separator}</span>\n <span>&#8230;</span>\n </li>\n )\n }\n\n const isLast = i === visible.length - 1\n\n return (\n <li key={i} className={cn('crumb', isLast && 'active')}>\n {i > 0 && <span className=\"sep\">{separator}</span>}\n {item.href && !isLast ? (\n <a href={item.href} className=\"link\" onClick={item.onClick}>\n {item.label}\n </a>\n ) : item.onClick && !isLast ? (\n <button type=\"button\" className=\"link btn\" onClick={item.onClick}>\n {item.label}\n </button>\n ) : (\n <span className=\"current\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n","import {forwardRef, Children, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {MAppShellProps, MBodyProps} from './MAppShell.types'\nimport {cn} from '../../../utils/cn'\nimport {MSidebar} from '../MSidebar'\nimport './MAppShell.css'\n\nexport const MAppShell = forwardRef<HTMLDivElement, MAppShellProps>(function MAppShell(\n {className, children, ...rest},\n ref\n) {\n const sidebarElements: React.ReactNode[] = []\n const otherElements: React.ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === MSidebar) {\n sidebarElements.push(child)\n } else {\n otherElements.push(child)\n }\n })\n\n return (\n <div ref={ref} className={cn('app-shell', className)} {...rest}>\n {sidebarElements}\n <div className=\"app-main\">{otherElements}</div>\n </div>\n )\n})\n\nexport const MBody = forwardRef<HTMLDivElement, MBodyProps>(function MBody({className, children, ...rest}, ref) {\n return (\n <div ref={ref} className={cn('app-body', className)} {...rest}>\n {children}\n </div>\n )\n})\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./MChevronRightIcon-QbfE-b7g.cjs`),t=require(`./MMenuIcon-TZ9iJAXz.cjs`),n=require(`./cn-CpRt8Xjj.cjs`),r=require(`./useInteractionEffect-BaJeiUns.cjs`),i=require(`./useReveal-D1YuWN9z.cjs`),a=require(`./layoutProps-CAv0VWdN.cjs`),o=require(`./MLink-CAaK6SOG.cjs`),s=require(`./MDropdownMenu-DOxSG00i.cjs`),c=require(`./MButton-DOtMjOTz.cjs`),l=require(`./MTooltip-CXXYU-j1.cjs`);let u=require(`react`),d=require(`react/jsx-runtime`);function f({size:e=`content`,padded:t=!0,spacing:r,padding:i,fsize:o,mt:s,mb:c,ml:l,mr:u,mx:f,my:p,pt:m,pb:h,pl:g,pr:_,px:v,py:y,fullWidth:b,className:x,style:S,children:C,...w}){let T=a.n({fsize:o});return(0,d.jsx)(`div`,{className:n.t(`container`,e,t&&`padded`,...a.t({spacing:r,padding:i,fsize:o,mt:s,mb:c,ml:l,mr:u,mx:f,my:p,pt:m,pb:h,pl:g,pr:_,px:v,py:y,fullWidth:b}),x),style:{...T,...S},...w,children:C})}function p({container:e=`wide`,padded:t=!0,bordered:r=!0,sticky:i=!1,tone:a=`surface`,layout:o=`split`,className:s,children:c,...l}){return(0,d.jsx)(`header`,{className:n.t(`header`,a,r&&`bordered`,i&&`sticky`,s),...l,children:(0,d.jsx)(f,{size:e,padded:t,className:n.t(`inner`,`layout-${o}`),children:c})})}function m({container:e=`wide`,padded:t=!0,bordered:r=!0,tone:i=`surface`,spacing:o,padding:s,fsize:c,mt:l,mb:u,ml:p,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C,className:w,style:T,children:E,...D}){let O=a.n({fsize:c});return(0,d.jsx)(`footer`,{className:n.t(`footer`,i,r&&`bordered`,...a.t({spacing:o,padding:s,fsize:c,mt:l,mb:u,ml:p,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C}),w),style:{...O,...T},...D,children:(0,d.jsx)(f,{size:e,padded:t,className:`inner`,fullWidth:!0,children:E})})}function h({container:e=`content`,padded:t=!0,bordered:r=!0,sticky:i=!1,tone:a=`surface`,justify:o=`between`,wrap:s=!1,className:c,children:l,...u}){return(0,d.jsx)(`nav`,{className:n.t(`navbar`,a,r&&`bordered`,i&&`sticky`,c),...u,children:(0,d.jsx)(f,{size:e,padded:t,className:`container`,children:(0,d.jsx)(`div`,{className:n.t(`inner`,o,s&&`wrap`),children:l})})})}function g({items:e,orientation:t=`horizontal`,wrap:r=!1,className:i,children:a,...s}){return(0,d.jsx)(`div`,{className:n.t(`navs`,t,r&&`wrap`,i),...s,children:e?e.map(e=>(0,d.jsx)(o.t,{component:e.component,href:e.href,to:e.to,target:e.target,rel:e.rel,title:e.title,current:e.current,disabled:e.disabled,className:n.t(`link`,e.className),children:e.label},e.key??e.href??e.title?.toString()??e.label?.toString())):a})}function _({item:e,isActive:t,tabId:i,panelId:a,clickEffect:o,rippleColor:s,onSelect:c}){let{effectClassName:l,effectLayer:u,handlePointerDown:f,triggerEffect:p}=r.t({effect:o,disabled:e.disabled,centered:!0,color:s});return(0,d.jsxs)(`button`,{type:`button`,id:i,role:`tab`,"aria-selected":t,"aria-controls":a,tabIndex:t?0:-1,disabled:e.disabled,className:n.t(`tabs-trigger`,t&&`active`,e.disabled&&`disabled`,l),onPointerDown:f,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&p(e.currentTarget)},onClick:()=>c(e.value),children:[u,e.icon&&(0,d.jsx)(`span`,{className:`tabs-icon`,children:e.icon}),(0,d.jsx)(`span`,{className:`tabs-label`,children:e.label})]})}function v({items:e,value:t,defaultValue:r,onValueChange:i,variant:a=`underline`,orientation:o=`horizontal`,size:s=`md`,fullWidth:c=!1,showPanels:l=!0,panelClassName:f,clickEffect:p=`ripple`,rippleColor:m,className:h,...g}){let[v,y]=(0,u.useState)((0,u.useMemo)(()=>r??e.find(e=>!e.disabled)?.value??``,[r,e])),b=t??v,x=e.find(e=>e.value===b)??e[0],S=(0,u.useId)();function C(e){t===void 0&&y(e),i?.(e)}function w(t){let n=e.filter(e=>!e.disabled),r=n.findIndex(e=>e.value===x?.value);if(r===-1)return;let i=o===`vertical`?[`ArrowDown`]:[`ArrowRight`,`ArrowDown`],a=o===`vertical`?[`ArrowUp`]:[`ArrowLeft`,`ArrowUp`];if(i.includes(t.key)){t.preventDefault();let e=n[(r+1)%n.length];C(e.value)}if(a.includes(t.key)){t.preventDefault();let e=n[(r-1+n.length)%n.length];C(e.value)}}return(0,d.jsxs)(`div`,{className:n.t(`tabs`,a,o,s,c&&`full-width`,h),...g,children:[(0,d.jsx)(`div`,{className:`tabs-list`,role:`tablist`,"aria-orientation":o,onKeyDown:w,children:e.map(e=>(0,d.jsx)(_,{item:e,isActive:e.value===x?.value,tabId:`${S}-${e.value}-tab`,panelId:`${S}-${e.value}-panel`,clickEffect:p,rippleColor:m,onSelect:C},e.value))}),l&&x?.content!==void 0&&(0,d.jsx)(`div`,{id:`${S}-${x.value}-panel`,role:`tabpanel`,"aria-labelledby":`${S}-${x.value}-tab`,className:n.t(`tabs-panel`,f),children:x.content},x.value)]})}function y({as:e=`section`,spacing:t=`lg`,tone:r=`default`,reveal:a,className:o,style:s,children:c,...l}){let u=e,f=i.t(a),p=a!==void 0&&a!==!1;return(0,d.jsx)(u,{ref:p?f:void 0,className:n.t(`section`,t,r,p&&`reveal`,o),style:s,...l,children:c})}function b({align:e=`center`,justify:t=`start`,wrap:r=`wrap`,reveal:o,spacing:s,padding:c,fsize:l,mt:u,mb:f,ml:p,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C,className:w,style:T,children:E,...D}){let O=a.n({fsize:l}),k=i.t(o);return(0,d.jsx)(`div`,{ref:o!==void 0&&o!==!1?k:void 0,className:n.t(`inline`,e,`justify-${t}`,r,o!==void 0&&o!==!1&&`reveal`,...a.t({spacing:s,padding:c,fsize:l,mt:u,mb:f,ml:p,mr:m,mx:h,my:g,pt:_,pb:v,pl:y,pr:b,px:x,py:S,fullWidth:C}),w),style:{...O,...T},...D,children:E})}function x({columns:e=2,minItemWidth:t,className:r,style:i,children:a,...o}){return(0,d.jsx)(`div`,{className:n.t(`grid`,`columns-${e}`,r),style:{...t?{"--grid-min-item-width":t}:{},...i},...o,children:a})}function S(e){return(0,u.isValidElement)(e)?e.type===D?!0:e.type===E&&e.props.type===`col`:!1}function C(e){return{span:e.span??e.xl??e.lg??e.md??e.sm,xl:e.xl??e.lg??e.md??e.sm,lg:e.lg??e.md??e.sm,md:e.md??e.sm,sm:e.sm}}function w(e,t){if(t<=0)return[];if(e<=0)return Array.from({length:t},()=>void 0);let n=Math.floor(e/t),r=e%t;return Array.from({length:t},(e,t)=>{let i=n+ +(t<r);return i>=1?i:void 0})}function T(e){let t=[`span`,`xl`,`lg`,`md`,`sm`],n=e.map(e=>C(e)),r=n.map(e=>({...e}));for(let e of t){let t=[],i=0;n.forEach((n,r)=>{let a=n[e];if(a){i+=a;return}t.push(r)});let a=w(Math.max(12-i,0),t.length);t.forEach((t,n)=>{r[t][e]=a[n]})}return r}function E({type:e=`row`,span:t,sm:r,md:i,lg:o,xl:s,spacing:c,padding:l,fsize:f,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:C,px:w,py:E,fullWidth:D,className:O,style:k,children:A,...j}){let M=a.n({fsize:f}),N=t??s??o;if(e===`col`)return(0,d.jsx)(`div`,{className:n.t(`grid`,`col`,N?`span-${N}`:`span-auto`,s&&`xl-${s}`,o&&`lg-${o}`,i&&`md-${i}`,r&&`sm-${r}`,...a.t({spacing:c,padding:l,fsize:f,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:C,px:w,py:E,fullWidth:D}),O),style:{...M,...k},...j,children:A});let P=u.Children.toArray(A),F=P.flatMap((e,t)=>S(e)?[{child:e,index:t}]:[]),I=Math.min(Math.max(F.length||P.length,1),12),L=F.some(({child:e})=>{let t=e.props;return!!(t.span||t.xl||t.lg||t.md||t.sm)}),R=L?T(F.map(({child:e})=>e.props)):null,z=L&&R?P.map((e,t)=>{let n=F.findIndex(e=>e.index===t);if(n===-1||!S(e))return e;let r=R[n];return(0,u.cloneElement)(e,{span:r.span,xl:r.xl,lg:r.lg,md:r.md,sm:r.sm})}):P;return(0,d.jsx)(`div`,{className:n.t(`grid`,`row`,L?`tracked`:`auto-cols-${I}`,...a.t({spacing:c,padding:l,fsize:f,mt:p,mb:m,ml:h,mr:g,mx:_,my:v,pt:y,pb:b,pl:x,pr:C,px:w,py:E,fullWidth:D??!0}),O),style:{...M,...k},...j,children:z})}function D({span:e,sm:t,md:n,lg:r,xl:i,...a}){return(0,d.jsx)(E,{type:`col`,span:e,sm:t,md:n,lg:r,xl:i,...a})}function O({orientation:e=`horizontal`,variant:t=`solid`,className:r,style:i,...a}){return(0,d.jsx)(`div`,{role:`separator`,"aria-orientation":e,className:n.t(`divider`,e,t,r),style:i,...a})}var k=`mineralui-sidebar`,A=(0,u.createContext)({mode:`expanded`,mobile:!1,mobileOpen:!1,canToggle:!1,toggleMode:()=>{}});function j(){return(0,u.useContext)(A)}function M(e){let[t,n]=(0,u.useState)(()=>typeof window<`u`?window.innerWidth<e:!1);return(0,u.useEffect)(()=>{let t=window.matchMedia(`(max-width: ${e-1}px)`),r=e=>n(e.matches);return n(t.matches),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function N({mode:e=`auto`,defaultMode:r=`expanded`,onModeChange:i,persist:a=!1,side:o=`left`,tone:s=`subtle`,bordered:c=!0,mobileBreakpoint:l=768,className:f,style:p,children:m}){let h=M(l),[g,_]=(0,u.useState)(!1),[v,y]=(0,u.useState)(()=>{if(a)try{let e=localStorage.getItem(k);if(e===`expanded`||e===`collapsed`)return e}catch{}return r}),b=e===`auto`?v:e===`collapsed`?`collapsed`:`expanded`,x=(0,u.useCallback)(()=>{let e=b===`expanded`?`collapsed`:`expanded`;if(y(e),i?.(e),a)try{localStorage.setItem(k,e)}catch{}},[b,i,a]),S=(0,u.useCallback)(()=>_(!1),[]);(0,u.useEffect)(()=>{if(!g)return;let e=e=>{e.key===`Escape`&&_(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[g]);let C=!h&&e===`auto`,w=(0,u.useMemo)(()=>({mode:b,mobile:h,mobileOpen:g,canToggle:C,toggleMode:x}),[b,h,g,C,x]),T=n.t(`sidebar`,s,o,!h&&b===`collapsed`&&`collapsed`,c&&`bordered`,h&&`mobile`,h&&g&&`mobile-open`,f);return(0,d.jsxs)(A.Provider,{value:w,children:[h&&g&&(0,d.jsx)(`div`,{className:`sidebar-backdrop`,onClick:S}),(0,d.jsx)(`aside`,{className:T,style:p,children:m}),h&&!g&&(0,d.jsx)(`button`,{className:n.t(`sidebar-hamburger`,o),onClick:()=>_(!0),"aria-label":`Open menu`,children:(0,d.jsx)(`span`,{className:`sidebar-hamburger-icon`,"aria-hidden":`true`,children:(0,d.jsx)(t.t,{})})})]})}function P({bordered:t=!1,className:r,children:i}){let{mode:a,mobile:o,canToggle:s,toggleMode:l}=j(),u=!o&&a===`collapsed`;return(0,d.jsxs)(`div`,{className:n.t(`sidebar-header`,t&&`bordered`,r),children:[(0,d.jsx)(`div`,{className:`sidebar-header-content`,children:i}),s&&(0,d.jsx)(c.t,{variant:`outlined`,color:`neutral`,iconOnly:!0,size:`sm`,onClick:l,"aria-label":u?`Expand sidebar`:`Collapse sidebar`,className:`sidebar-toggle`,children:(0,d.jsx)(`span`,{className:n.t(`sidebar-chevron`,u&&`flipped`),children:(0,d.jsx)(e.t,{})})})]})}function F({className:e,children:t}){return(0,d.jsx)(`div`,{className:n.t(`sidebar-body`,e),children:t})}function I({className:e,children:t}){return(0,d.jsx)(`nav`,{className:n.t(`sidebar-nav`,e),children:t})}function L({icon:e,label:t,href:r,to:i,onClick:a,active:o=!1,disabled:s=!1,badge:c,color:u,component:f,className:p}){let{mode:m,mobile:h}=j(),g=!h&&m===`collapsed`,_=f??(r||i?`a`:`button`),v=f?i?{to:i}:r?{href:r}:{}:r?{href:r}:i?{href:i}:{};return(0,d.jsxs)(_,{className:n.t(`sidebar-item`,o&&`active`,s&&`disabled`,u,p),onClick:s?void 0:a,"aria-disabled":s||void 0,title:g?t:void 0,...v,children:[e&&(0,d.jsx)(`span`,{className:`sidebar-item-icon`,children:e}),!g&&(0,d.jsx)(l.t,{content:t,placement:`top`,className:`sidebar-item-label-tooltip`,children:(0,d.jsx)(`span`,{className:`sidebar-item-label`,children:t})}),!g&&c&&(0,d.jsx)(`span`,{className:`sidebar-item-badge`,children:c})]})}function R({label:t,icon:r,active:i=!1,defaultOpen:a=!0,collapsible:o=!0,children:c,className:l}){let f=j(),{mode:p,mobile:m}=f,h=!m&&p===`collapsed`,[g,_]=(0,u.useState)(a),v=(0,u.useMemo)(()=>({...f,mode:`expanded`}),[f]),y=()=>{o&&_(e=>!e)};if(h){let e=(0,d.jsx)(`span`,{className:n.t(`sidebar-group-icon collapsed`,i&&`active`),title:t,children:r});return(0,d.jsx)(`div`,{className:n.t(`sidebar-group`,l),children:(0,d.jsx)(s.i,{trigger:e,placement:`right-start`,closeOnSelect:!0,openOn:`hover`,children:(0,d.jsx)(A.Provider,{value:v,children:c})})})}return(0,d.jsxs)(`div`,{className:n.t(`sidebar-group`,l),children:[(0,d.jsxs)(`button`,{className:n.t(`sidebar-group-header`,i&&`active`),onClick:y,"aria-expanded":g,children:[r&&(0,d.jsx)(`span`,{className:`sidebar-group-icon`,children:r}),(0,d.jsx)(`span`,{className:`sidebar-group-label`,children:t}),o&&(0,d.jsx)(`span`,{className:n.t(`sidebar-group-arrow`,g&&`open`),children:(0,d.jsx)(e.t,{})})]}),g&&(0,d.jsx)(`div`,{className:`sidebar-group-items`,children:c})]})}function z({bordered:e=!1,className:t,children:r}){return(0,d.jsx)(`div`,{className:n.t(`sidebar-footer`,e&&`bordered`,t),children:r})}function B({className:e,spacing:t=`md`}){return(0,d.jsx)(`hr`,{className:n.t(`sidebar-divider`,t,e)})}function V({items:e,separator:t=`/`,maxItems:r,className:i,...a}){let o=(0,u.useMemo)(()=>{if(!r||r>=e.length)return e;if(r<2)return[e[e.length-1]];let t=e.slice(0,1),n=e.slice(-(r-1));return[...t,null,...n]},[e,r]);return(0,d.jsx)(`nav`,{"aria-label":`breadcrumb`,className:n.t(`breadcrumb`,i),...a,children:(0,d.jsx)(`ol`,{className:`trail`,children:o.map((e,r)=>{if(e===null)return(0,d.jsxs)(`li`,{className:`crumb dots`,children:[(0,d.jsx)(`span`,{className:`sep`,children:t}),(0,d.jsx)(`span`,{children:`…`})]},`ellipsis`);let i=r===o.length-1;return(0,d.jsxs)(`li`,{className:n.t(`crumb`,i&&`active`),children:[r>0&&(0,d.jsx)(`span`,{className:`sep`,children:t}),e.href&&!i?(0,d.jsx)(`a`,{href:e.href,className:`link`,onClick:e.onClick,children:e.label}):e.onClick&&!i?(0,d.jsx)(`button`,{type:`button`,className:`link btn`,onClick:e.onClick,children:e.label}):(0,d.jsx)(`span`,{className:`current`,"aria-current":i?`page`:void 0,children:e.label})]},r)})})})}var H=(0,u.forwardRef)(function({className:e,children:t,...r},i){let a=[],o=[];return u.Children.forEach(t,e=>{(0,u.isValidElement)(e)&&e.type===N?a.push(e):o.push(e)}),(0,d.jsxs)(`div`,{ref:i,className:n.t(`app-shell`,e),...r,children:[a,(0,d.jsx)(`div`,{className:`app-main`,children:o})]})}),U=(0,u.forwardRef)(function({className:e,children:t,...r},i){return(0,d.jsx)(`div`,{ref:i,className:n.t(`app-body`,e),...r,children:t})});Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return g}});
2
- //# sourceMappingURL=layout-DsxgXjK_.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-DsxgXjK_.cjs","names":[],"sources":["../src/components/layout/MContainer/MContainer.tsx","../src/components/layout/MHeader/MHeader.tsx","../src/components/layout/MFooter/MFooter.tsx","../src/components/layout/MNavbar/MNavbar.tsx","../src/components/layout/MNavs/MNavs.tsx","../src/components/layout/MTabs/MTabs.tsx","../src/components/layout/MSection/MSection.tsx","../src/components/layout/MInline/MInline.tsx","../src/components/layout/MSimpleGrid/MSimpleGrid.tsx","../src/components/layout/MGrid/MGrid.tsx","../src/components/layout/MDivider/MDivider.tsx","../src/components/layout/MSidebar/MSidebar.tsx","../src/components/layout/MBreadcrumb/MBreadcrumb.tsx","../src/components/layout/MAppShell/MAppShell.tsx"],"sourcesContent":["import type {MContainerProps} from './MContainer.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MContainer.css'\n\n// Constrain page content widths and apply shared spacing utilities.\nexport function MContainer({\n size = 'content',\n padded = true,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MContainerProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'container',\n size,\n padded && 'padded',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MHeaderProps} from './MHeader.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MHeader.css'\n\n// Render a reusable page header shell aligned to a shared container.\nexport function MHeader({\n container = 'wide',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n layout = 'split',\n className,\n children,\n ...rest\n}: MHeaderProps) {\n return (\n <header className={cn('header', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className={cn('inner', `layout-${layout}`)}>\n {children}\n </MContainer>\n </header>\n )\n}\n","import type {MFooterProps} from './MFooter.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {MContainer} from '../MContainer'\nimport './MFooter.css'\n\n// Render a reusable page footer shell with shared spacing utilities.\nexport function MFooter({\n container = 'wide',\n padded = true,\n bordered = true,\n tone = 'surface',\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MFooterProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <footer\n className={cn(\n 'footer',\n tone,\n bordered && 'bordered',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n <MContainer size={container} padded={padded} className=\"inner\" fullWidth>\n {children}\n </MContainer>\n </footer>\n )\n}\n","import type {MNavbarProps} from './MNavbar.types'\nimport {cn} from '../../../utils/cn'\nimport {MContainer} from '../MContainer'\nimport './MNavbar.css'\n\n// Render a horizontal app or site navigation shell with container alignment.\nexport function MNavbar({\n container = 'content',\n padded = true,\n bordered = true,\n sticky = false,\n tone = 'surface',\n justify = 'between',\n wrap = false,\n className,\n children,\n ...rest\n}: MNavbarProps) {\n return (\n <nav className={cn('navbar', tone, bordered && 'bordered', sticky && 'sticky', className)} {...rest}>\n <MContainer size={container} padded={padded} className=\"container\">\n <div className={cn('inner', justify, wrap && 'wrap')}>{children}</div>\n </MContainer>\n </nav>\n )\n}\n","import type {MNavsProps} from './MNavs.types'\nimport {cn} from '../../../utils/cn'\nimport {MLink} from '../../typography'\nimport './MNavs.css'\n\n// Render a lightweight navigation list from data or custom children.\nexport function MNavs({items, orientation = 'horizontal', wrap = false, className, children, ...rest}: MNavsProps) {\n return (\n <div className={cn('navs', orientation, wrap && 'wrap', className)} {...rest}>\n {items\n ? items.map((item) => (\n <MLink\n key={item.key ?? item.href ?? item.title?.toString() ?? item.label?.toString()}\n component={item.component}\n href={item.href}\n to={item.to}\n target={item.target}\n rel={item.rel}\n title={item.title}\n current={item.current}\n disabled={item.disabled}\n className={cn('link', item.className)}\n >\n {item.label}\n </MLink>\n ))\n : children}\n </div>\n )\n}\n","import {useId, useMemo, useState} from 'react'\nimport type {KeyboardEvent} from 'react'\nimport type {MTabsItem, MTabsProps} from './MTabs.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MTabs.css'\n\ninterface MTabsTriggerProps {\n item: MTabsItem\n isActive: boolean\n tabId: string\n panelId: string\n clickEffect: MTabsProps['clickEffect']\n rippleColor: string | undefined\n onSelect: (value: string) => void\n}\n\n// Keep the tab trigger behavior isolated from the list and panel rendering.\nfunction MTabsTrigger({item, isActive, tabId, panelId, clickEffect, rippleColor, onSelect}: MTabsTriggerProps) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: item.disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <button\n type=\"button\"\n id={tabId}\n role=\"tab\"\n aria-selected={isActive}\n aria-controls={panelId}\n tabIndex={isActive ? 0 : -1}\n disabled={item.disabled}\n className={cn('tabs-trigger', isActive && 'active', item.disabled && 'disabled', effectClassName)}\n onPointerDown={handlePointerDown}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n }}\n onClick={() => onSelect(item.value)}\n >\n {effectLayer}\n {item.icon && <span className=\"tabs-icon\">{item.icon}</span>}\n <span className=\"tabs-label\">{item.label}</span>\n </button>\n )\n}\n\nexport function MTabs({\n items,\n value,\n defaultValue,\n onValueChange,\n variant = 'underline',\n orientation = 'horizontal',\n size = 'md',\n fullWidth = false,\n showPanels = true,\n panelClassName,\n clickEffect = 'ripple',\n rippleColor,\n className,\n ...rest\n}: MTabsProps) {\n // Pick the first enabled item when the caller does not control the active tab.\n const fallbackValue = useMemo(\n () => defaultValue ?? items.find((item) => !item.disabled)?.value ?? '',\n [defaultValue, items]\n )\n const [internalValue, setInternalValue] = useState(fallbackValue)\n const activeValue = value ?? internalValue\n const activeItem = items.find((item) => item.value === activeValue) ?? items[0]\n const baseId = useId()\n\n // Support both controlled and uncontrolled tab state.\n function selectTab(nextValue: string) {\n if (value === undefined) {\n setInternalValue(nextValue)\n }\n onValueChange?.(nextValue)\n }\n\n // Re-map keyboard navigation depending on the rendered orientation.\n function handleKeyDown(event: KeyboardEvent<HTMLDivElement>) {\n const enabledItems = items.filter((item) => !item.disabled)\n const currentIndex = enabledItems.findIndex((item) => item.value === activeItem?.value)\n\n if (currentIndex === -1) {\n return\n }\n\n const nextKeys = orientation === 'vertical' ? ['ArrowDown'] : ['ArrowRight', 'ArrowDown']\n const previousKeys = orientation === 'vertical' ? ['ArrowUp'] : ['ArrowLeft', 'ArrowUp']\n\n if (nextKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex + 1) % enabledItems.length]\n selectTab(nextItem.value)\n }\n\n if (previousKeys.includes(event.key)) {\n event.preventDefault()\n const nextItem = enabledItems[(currentIndex - 1 + enabledItems.length) % enabledItems.length]\n selectTab(nextItem.value)\n }\n }\n\n return (\n <div className={cn('tabs', variant, orientation, size, fullWidth && 'full-width', className)} {...rest}>\n <div className=\"tabs-list\" role=\"tablist\" aria-orientation={orientation} onKeyDown={handleKeyDown}>\n {items.map((item) => {\n const isActive = item.value === activeItem?.value\n const tabId = `${baseId}-${item.value}-tab`\n const panelId = `${baseId}-${item.value}-panel`\n\n return (\n <MTabsTrigger\n key={item.value}\n item={item}\n isActive={isActive}\n tabId={tabId}\n panelId={panelId}\n clickEffect={clickEffect}\n rippleColor={rippleColor}\n onSelect={selectTab}\n />\n )\n })}\n </div>\n\n {showPanels && activeItem?.content !== undefined && (\n <div\n key={activeItem.value}\n id={`${baseId}-${activeItem.value}-panel`}\n role=\"tabpanel\"\n aria-labelledby={`${baseId}-${activeItem.value}-tab`}\n className={cn('tabs-panel', panelClassName)}\n >\n {activeItem.content}\n </div>\n )}\n </div>\n )\n}\n","import type React from 'react'\nimport type {MSectionProps} from './MSection.types'\nimport {cn} from '../../../utils/cn'\nimport {useReveal} from '../../../utils/useReveal'\nimport './MSection.css'\n\n// Render a semantic page section with predefined spacing and tone.\nexport function MSection({\n as = 'section',\n spacing = 'lg',\n tone = 'default',\n reveal,\n className,\n style,\n children,\n ...rest\n}: MSectionProps) {\n const Component = as\n const revealRef = useReveal(reveal)\n const hasReveal = reveal !== undefined && reveal !== false\n\n return (\n <Component\n ref={hasReveal ? (revealRef as React.RefObject<never>) : undefined}\n className={cn('section', spacing, tone, hasReveal && 'reveal', className)}\n style={style}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import type {MInlineProps} from './MInline.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport {useReveal} from '../../../utils/useReveal'\nimport './MInline.css'\n\n// Arrange children horizontally with shared alignment and wrapping helpers.\nexport function MInline({\n align = 'center',\n justify = 'start',\n wrap = 'wrap',\n reveal,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MInlineProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const revealRef = useReveal<HTMLDivElement>(reveal)\n\n return (\n <div\n ref={reveal !== undefined && reveal !== false ? revealRef : undefined}\n className={cn(\n 'inline',\n align,\n `justify-${justify}`,\n wrap,\n reveal !== undefined && reveal !== false && 'reveal',\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MSimpleGridProps} from './MSimpleGrid.types'\nimport {cn} from '../../../utils/cn'\nimport './MSimpleGrid.css'\n\n// Render a simple equal-column grid with a shared default spacing.\nexport function MSimpleGrid({columns = 2, minItemWidth, className, style, children, ...rest}: MSimpleGridProps) {\n return (\n <div\n className={cn('grid', `columns-${columns}`, className)}\n style={{\n ...(minItemWidth ? {'--grid-min-item-width': minItemWidth} : {}),\n ...style,\n }}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import {Children, cloneElement, isValidElement} from 'react'\nimport type {ReactElement} from 'react'\nimport type {MGridColumns, MGridItemProps, MGridProps} from './MGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MGrid.css'\n\ntype GridBreakpoint = 'span' | 'xl' | 'lg' | 'md' | 'sm'\n\nfunction isGridColumnElement(child: unknown): child is ReactElement<MGridProps | MGridItemProps> {\n if (!isValidElement(child)) {\n return false\n }\n\n if (child.type === MGridItem) {\n return true\n }\n\n return child.type === MGrid && (child.props as MGridProps).type === 'col'\n}\n\nfunction getNormalizedSpans(props: Partial<MGridProps>) {\n return {\n span: props.span ?? props.xl ?? props.lg ?? props.md ?? props.sm,\n xl: props.xl ?? props.lg ?? props.md ?? props.sm,\n lg: props.lg ?? props.md ?? props.sm,\n md: props.md ?? props.sm,\n sm: props.sm,\n }\n}\n\nfunction distributeRemainingColumns(remaining: number, count: number): Array<MGridColumns | undefined> {\n if (count <= 0) {\n return []\n }\n\n if (remaining <= 0) {\n return Array.from({length: count}, () => undefined)\n }\n\n const base = Math.floor(remaining / count)\n const extra = remaining % count\n\n return Array.from({length: count}, (_, index) => {\n const value = base + (index < extra ? 1 : 0)\n return value >= 1 ? (value as MGridColumns) : undefined\n })\n}\n\nfunction resolveAutoSpans(columnProps: Array<Partial<MGridProps>>) {\n const breakpoints: GridBreakpoint[] = ['span', 'xl', 'lg', 'md', 'sm']\n const normalized = columnProps.map((props) => getNormalizedSpans(props))\n const resolved = normalized.map((spans) => ({...spans}))\n\n for (const breakpoint of breakpoints) {\n const autoIndexes: number[] = []\n let usedColumns = 0\n\n normalized.forEach((spans, index) => {\n const value = spans[breakpoint]\n\n if (value) {\n usedColumns += value\n return\n }\n\n autoIndexes.push(index)\n })\n\n const distributed = distributeRemainingColumns(Math.max(12 - usedColumns, 0), autoIndexes.length)\n\n autoIndexes.forEach((columnIndex, autoIndex) => {\n resolved[columnIndex][breakpoint] = distributed[autoIndex]\n })\n }\n\n return resolved\n}\n\n// Render either a responsive row or a responsive column using one shared grid API.\nexport function MGrid({\n type = 'row',\n span,\n sm,\n md,\n lg,\n xl,\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n className,\n style,\n children,\n ...rest\n}: MGridProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const baseSpan = span ?? xl ?? lg\n\n if (type === 'col') {\n return (\n <div\n className={cn(\n 'grid',\n 'col',\n baseSpan ? `span-${baseSpan}` : 'span-auto',\n xl && `xl-${xl}`,\n lg && `lg-${lg}`,\n md && `md-${md}`,\n sm && `sm-${sm}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {children}\n </div>\n )\n }\n\n const childArray = Children.toArray(children)\n const columnEntries = childArray.flatMap((child, index) => (isGridColumnElement(child) ? [{child, index}] : []))\n const autoColumns = Math.min(Math.max(columnEntries.length || childArray.length, 1), 12)\n const hasTrackedSizing = columnEntries.some(({child}) => {\n const p = child.props as MGridProps\n return Boolean(p.span || p.xl || p.lg || p.md || p.sm)\n })\n const resolvedSpans = hasTrackedSizing\n ? resolveAutoSpans(columnEntries.map(({child}) => child.props as Partial<MGridProps>))\n : null\n const resolvedChildren =\n hasTrackedSizing && resolvedSpans\n ? childArray.map((child, childIndex) => {\n const columnIndex = columnEntries.findIndex((entry) => entry.index === childIndex)\n\n if (columnIndex === -1 || !isGridColumnElement(child)) {\n return child\n }\n\n const spans = resolvedSpans[columnIndex]\n\n return cloneElement(child, {\n span: spans.span,\n xl: spans.xl,\n lg: spans.lg,\n md: spans.md,\n sm: spans.sm,\n })\n })\n : childArray\n\n return (\n <div\n className={cn(\n 'grid',\n 'row',\n hasTrackedSizing ? 'tracked' : `auto-cols-${autoColumns}`,\n ...getLayoutUtilityClassNames({\n spacing,\n padding,\n fsize,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n pt,\n pb,\n pl,\n pr,\n px,\n py,\n fullWidth: fullWidth ?? true,\n }),\n className\n )}\n style={{...utilityStyle, ...style}}\n {...rest}\n >\n {resolvedChildren}\n </div>\n )\n}\n\n// Keep MGridItem as a compatibility alias for explicit column declarations.\nexport function MGridItem({span, sm, md, lg, xl, ...rest}: MGridItemProps) {\n return <MGrid type=\"col\" span={span} sm={sm} md={md} lg={lg} xl={xl} {...rest} />\n}\n","import type {MDividerProps} from './MDivider.types'\nimport {cn} from '../../../utils/cn'\nimport './MDivider.css'\n\n// Render a semantic divider line between related content blocks.\nexport function MDivider({orientation = 'horizontal', variant = 'solid', className, style, ...rest}: MDividerProps) {\n return (\n <div\n role=\"separator\"\n aria-orientation={orientation}\n className={cn('divider', orientation, variant, className)}\n style={style}\n {...rest}\n />\n )\n}\n","import {createContext, useContext, useState, useEffect, useCallback, useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronRightIcon, MMenuIcon} from '../../../icons'\nimport {MDropdownMenu, MTooltip} from '../../overlays'\nimport type {\n MSidebarProps,\n MSidebarHeaderProps,\n MSidebarBodyProps,\n MSidebarNavProps,\n MSidebarItemProps,\n MSidebarGroupProps,\n MSidebarFooterProps,\n MSidebarDividerProps,\n MSidebarMode,\n} from './MSidebar.types'\nimport './MSidebar.css'\n\nconst STORAGE_KEY = 'mineralui-sidebar'\n\ninterface SidebarContextValue {\n mode: MSidebarMode\n mobile: boolean\n mobileOpen: boolean\n canToggle: boolean\n toggleMode: () => void\n}\n\nconst SidebarCtx = createContext<SidebarContextValue>({\n mode: 'expanded',\n mobile: false,\n mobileOpen: false,\n canToggle: false,\n toggleMode: () => {},\n})\n\n// Read shared sidebar state inside slot components.\nfunction useSidebar() {\n return useContext(SidebarCtx)\n}\n\n// Track the responsive breakpoint once for the whole sidebar tree.\nfunction useIsMobile(breakpoint: number): boolean {\n const [mobile, setMobile] = useState(() => (typeof window !== 'undefined' ? window.innerWidth < breakpoint : false))\n\n useEffect(() => {\n const mq = window.matchMedia(`(max-width: ${breakpoint - 1}px)`)\n const handler = (e: MediaQueryListEvent) => setMobile(e.matches)\n\n setMobile(mq.matches)\n mq.addEventListener('change', handler)\n return () => mq.removeEventListener('change', handler)\n }, [breakpoint])\n\n return mobile\n}\n\n// Render the sidebar shell and coordinate desktop and mobile behavior.\nexport function MSidebar({\n mode: modeProp = 'auto',\n defaultMode = 'expanded',\n onModeChange,\n persist = false,\n side = 'left',\n tone = 'subtle',\n bordered = true,\n mobileBreakpoint = 768,\n className,\n style,\n children,\n}: MSidebarProps) {\n const mobile = useIsMobile(mobileBreakpoint)\n const [mobileOpen, setMobileOpen] = useState(false)\n\n const [internalMode, setInternalMode] = useState<MSidebarMode>(() => {\n if (persist) {\n try {\n const v = localStorage.getItem(STORAGE_KEY)\n if (v === 'expanded' || v === 'collapsed') return v\n } catch {\n /* noop */\n }\n }\n\n return defaultMode\n })\n\n const resolvedMode: MSidebarMode =\n modeProp === 'auto' ? internalMode : modeProp === 'collapsed' ? 'collapsed' : 'expanded'\n\n // MToggle only the desktop width state. Mobile uses its own overlay flow.\n const toggleMode = useCallback(() => {\n const next: MSidebarMode = resolvedMode === 'expanded' ? 'collapsed' : 'expanded'\n\n setInternalMode(next)\n onModeChange?.(next)\n\n if (persist) {\n try {\n localStorage.setItem(STORAGE_KEY, next)\n } catch {\n /* noop */\n }\n }\n }, [resolvedMode, onModeChange, persist])\n\n const closeMobile = useCallback(() => setMobileOpen(false), [])\n\n // Let Escape close the temporary mobile drawer.\n useEffect(() => {\n if (!mobileOpen) return\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setMobileOpen(false)\n }\n\n document.addEventListener('keydown', handler)\n return () => document.removeEventListener('keydown', handler)\n }, [mobileOpen])\n\n const canToggle = !mobile && modeProp === 'auto'\n\n const ctx = useMemo<SidebarContextValue>(\n () => ({mode: resolvedMode, mobile, mobileOpen, canToggle, toggleMode}),\n [resolvedMode, mobile, mobileOpen, canToggle, toggleMode]\n )\n\n const isCollapsed = !mobile && resolvedMode === 'collapsed'\n\n const sidebarCls = cn(\n 'sidebar',\n tone,\n side,\n isCollapsed && 'collapsed',\n bordered && 'bordered',\n mobile && 'mobile',\n mobile && mobileOpen && 'mobile-open',\n className\n )\n\n return (\n <SidebarCtx.Provider value={ctx}>\n {mobile && mobileOpen && <div className=\"sidebar-backdrop\" onClick={closeMobile} />}\n\n <aside className={sidebarCls} style={style}>\n {children}\n </aside>\n\n {mobile && !mobileOpen && (\n <button\n className={cn('sidebar-hamburger', side)}\n onClick={() => setMobileOpen(true)}\n aria-label=\"Open menu\"\n >\n <span className=\"sidebar-hamburger-icon\" aria-hidden=\"true\">\n <MMenuIcon />\n </span>\n </button>\n )}\n </SidebarCtx.Provider>\n )\n}\n\n// Render the top area with branding and an optional collapse toggle.\nexport function MSidebarHeader({bordered = false, className, children}: MSidebarHeaderProps) {\n const {mode, mobile, canToggle, toggleMode} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n return (\n <div className={cn('sidebar-header', bordered && 'bordered', className)}>\n <div className=\"sidebar-header-content\">{children}</div>\n {canToggle && (\n <MButton\n variant=\"outlined\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n onClick={toggleMode}\n aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}\n className=\"sidebar-toggle\"\n >\n <span className={cn('sidebar-chevron', isCollapsed && 'flipped')}>\n <MChevronRightIcon />\n </span>\n </MButton>\n )}\n </div>\n )\n}\n\n// Wrap the scrollable middle area between header and footer.\nexport function MSidebarBody({className, children}: MSidebarBodyProps) {\n return <div className={cn('sidebar-body', className)}>{children}</div>\n}\n\n// Wrap sidebar links in a navigation landmark.\nexport function MSidebarNav({className, children}: MSidebarNavProps) {\n return <nav className={cn('sidebar-nav', className)}>{children}</nav>\n}\n\n// Render one clickable sidebar row as a link, button or custom component.\nexport function MSidebarItem({\n icon,\n label,\n href,\n to,\n onClick,\n active = false,\n disabled = false,\n badge,\n color,\n component,\n className,\n}: MSidebarItemProps) {\n const {mode, mobile} = useSidebar()\n const isCollapsed = !mobile && mode === 'collapsed'\n\n const Tag = component ?? (href || to ? 'a' : 'button')\n const linkProps = component ? (to ? {to} : href ? {href} : {}) : href ? {href} : to ? {href: to} : {}\n const cls = cn('sidebar-item', active && 'active', disabled && 'disabled', color, className)\n\n return (\n <Tag\n className={cls}\n onClick={disabled ? undefined : onClick}\n aria-disabled={disabled || undefined}\n title={isCollapsed ? label : undefined}\n {...linkProps}\n >\n {icon && <span className=\"sidebar-item-icon\">{icon}</span>}\n {!isCollapsed && (\n <MTooltip content={label} placement=\"top\" className=\"sidebar-item-label-tooltip\">\n <span className=\"sidebar-item-label\">{label}</span>\n </MTooltip>\n )}\n {!isCollapsed && badge && <span className=\"sidebar-item-badge\">{badge}</span>}\n </Tag>\n )\n}\n\n// Group related sidebar items and swap to a dropdown when collapsed.\nexport function MSidebarGroup({\n label,\n icon,\n active = false,\n defaultOpen = true,\n collapsible = true,\n children,\n className,\n}: MSidebarGroupProps) {\n const sidebarCtx = useSidebar()\n const {mode, mobile} = sidebarCtx\n const isCollapsed = !mobile && mode === 'collapsed'\n const [open, setOpen] = useState(defaultOpen)\n\n const expandedCtx = useMemo<SidebarContextValue>(() => ({...sidebarCtx, mode: 'expanded'}), [sidebarCtx])\n\n // Keep expand/collapse local to this group.\n const toggle = () => {\n if (collapsible) setOpen((o) => !o)\n }\n\n if (isCollapsed) {\n const trigger = (\n <span className={cn('sidebar-group-icon collapsed', active && 'active')} title={label}>\n {icon}\n </span>\n )\n\n return (\n <div className={cn('sidebar-group', className)}>\n <MDropdownMenu trigger={trigger} placement=\"right-start\" closeOnSelect openOn=\"hover\">\n <SidebarCtx.Provider value={expandedCtx}>{children}</SidebarCtx.Provider>\n </MDropdownMenu>\n </div>\n )\n }\n\n return (\n <div className={cn('sidebar-group', className)}>\n <button className={cn('sidebar-group-header', active && 'active')} onClick={toggle} aria-expanded={open}>\n {icon && <span className=\"sidebar-group-icon\">{icon}</span>}\n <span className=\"sidebar-group-label\">{label}</span>\n {collapsible && (\n <span className={cn('sidebar-group-arrow', open && 'open')}>\n <MChevronRightIcon />\n </span>\n )}\n </button>\n {open && <div className=\"sidebar-group-items\">{children}</div>}\n </div>\n )\n}\n\n// Render the bottom slot for version info or quick actions.\nexport function MSidebarFooter({bordered = false, className, children}: MSidebarFooterProps) {\n return <div className={cn('sidebar-footer', bordered && 'bordered', className)}>{children}</div>\n}\n\n// Render a spacing-aware divider between sidebar regions.\nexport function MSidebarDivider({className, spacing = 'md'}: MSidebarDividerProps) {\n return <hr className={cn('sidebar-divider', spacing, className)} />\n}\n","import {useMemo} from 'react'\nimport {cn} from '../../../utils/cn'\nimport type {MBreadcrumbProps} from './MBreadcrumb.types'\nimport './MBreadcrumb.css'\n\n// Render a compact path and collapse the middle when needed.\nexport function MBreadcrumb({items, separator = '/', maxItems, className, ...rest}: MBreadcrumbProps) {\n // Keep the current page visible while shortening deep paths.\n const visible = useMemo(() => {\n if (!maxItems || maxItems >= items.length) return items\n if (maxItems < 2) return [items[items.length - 1]]\n const head = items.slice(0, 1)\n const tail = items.slice(-(maxItems - 1))\n return [...head, null, ...tail]\n }, [items, maxItems])\n\n return (\n <nav aria-label=\"breadcrumb\" className={cn('breadcrumb', className)} {...rest}>\n <ol className=\"trail\">\n {visible.map((item, i) => {\n if (item === null) {\n return (\n <li key=\"ellipsis\" className=\"crumb dots\">\n <span className=\"sep\">{separator}</span>\n <span>&#8230;</span>\n </li>\n )\n }\n\n const isLast = i === visible.length - 1\n\n return (\n <li key={i} className={cn('crumb', isLast && 'active')}>\n {i > 0 && <span className=\"sep\">{separator}</span>}\n {item.href && !isLast ? (\n <a href={item.href} className=\"link\" onClick={item.onClick}>\n {item.label}\n </a>\n ) : item.onClick && !isLast ? (\n <button type=\"button\" className=\"link btn\" onClick={item.onClick}>\n {item.label}\n </button>\n ) : (\n <span className=\"current\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n </li>\n )\n })}\n </ol>\n </nav>\n )\n}\n","import {forwardRef, Children, isValidElement} from 'react'\nimport type * as React from 'react'\nimport type {MAppShellProps, MBodyProps} from './MAppShell.types'\nimport {cn} from '../../../utils/cn'\nimport {MSidebar} from '../MSidebar'\nimport './MAppShell.css'\n\nexport const MAppShell = forwardRef<HTMLDivElement, MAppShellProps>(function MAppShell(\n {className, children, ...rest},\n ref\n) {\n const sidebarElements: React.ReactNode[] = []\n const otherElements: React.ReactNode[] = []\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && child.type === MSidebar) {\n sidebarElements.push(child)\n } else {\n otherElements.push(child)\n }\n })\n\n return (\n <div ref={ref} className={cn('app-shell', className)} {...rest}>\n {sidebarElements}\n <div className=\"app-main\">{otherElements}</div>\n </div>\n )\n})\n\nexport const MBody = forwardRef<HTMLDivElement, MBodyProps>(function MBody({className, children, ...rest}, ref) {\n return (\n <div ref={ref} className={cn('app-body', className)} {...rest}>\n {children}\n </div>\n )\n})\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- let e=require(`react`);function t(t,n){(0,e.useEffect)(()=>{let e=e=>{!t.current||t.current.contains(e.target)||n()};return document.addEventListener(`mousedown`,e),document.addEventListener(`touchstart`,e),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`touchstart`,e)}},[t,n])}var n={},r=Object.keys(n);function i(e){return Object.prototype.hasOwnProperty.call(n,e)}function a(e){if(i(e))return n[e]}function o(e){return a(e)?.plan??`free`}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=licensing-C80xLz-j.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"licensing-C80xLz-j.cjs","names":[],"sources":["../src/utils/useClickOutside.ts","../src/utils/licensing.ts"],"sourcesContent":["import {useEffect, type RefObject} from 'react'\n\n// Trigger a callback when pointer interaction happens outside the referenced element.\nexport function useClickOutside(ref: RefObject<HTMLElement | null>, handler: () => void): void {\n useEffect(() => {\n const listener = (e: MouseEvent | TouchEvent) => {\n if (!ref.current || ref.current.contains(e.target as Node)) return\n handler()\n }\n\n document.addEventListener('mousedown', listener)\n document.addEventListener('touchstart', listener)\n return () => {\n document.removeEventListener('mousedown', listener)\n document.removeEventListener('touchstart', listener)\n }\n }, [ref, handler])\n}\n","export type MineralPlan = 'free' | 'pro'\n\nexport interface MineralComponentLicense {\n group: 'cards' | 'charts' | 'data' | 'display' | 'media' | 'icons' | 'layout' | 'feedback'\n plan: MineralPlan\n}\n\nexport const mineralComponentLicenses = {} as const satisfies Record<string, MineralComponentLicense>\n\nexport type MineralProComponentName = keyof typeof mineralComponentLicenses\n\nexport const mineralProComponents = Object.keys(mineralComponentLicenses) as MineralProComponentName[]\n\nexport function isMineralProComponent(componentName: string): componentName is MineralProComponentName {\n return Object.prototype.hasOwnProperty.call(mineralComponentLicenses, componentName)\n}\n\nexport function getMineralComponentLicense(componentName: string): MineralComponentLicense | undefined {\n if (!isMineralProComponent(componentName)) {\n return undefined\n }\n\n return mineralComponentLicenses[componentName]\n}\n\nexport function getMineralComponentPlan(componentName: string): MineralPlan {\n return getMineralComponentLicense(componentName)?.plan ?? 'free'\n}\n"],"mappings":"uBAGA,SAAgB,EAAgB,EAAoC,EAA2B,EAC3F,EAAA,EAAA,eAAgB,CACZ,IAAM,EAAY,GAA+B,CACzC,CAAC,EAAI,SAAW,EAAI,QAAQ,SAAS,EAAE,OAAe,EAC1D,GAAS,EAKb,OAFA,SAAS,iBAAiB,YAAa,EAAS,CAChD,SAAS,iBAAiB,aAAc,EAAS,KACpC,CACT,SAAS,oBAAoB,YAAa,EAAS,CACnD,SAAS,oBAAoB,aAAc,EAAS,GAEzD,CAAC,EAAK,EAAQ,CAAC,CCTtB,IAAa,EAA2B,EAAE,CAI7B,EAAuB,OAAO,KAAK,EAAyB,CAEzE,SAAgB,EAAsB,EAAiE,CACnG,OAAO,OAAO,UAAU,eAAe,KAAK,EAA0B,EAAc,CAGxF,SAAgB,EAA2B,EAA4D,CAC9F,KAAsB,EAAc,CAIzC,OAAO,EAAyB,GAGpC,SAAgB,EAAwB,EAAoC,CACxE,OAAO,EAA2B,EAAc,EAAE,MAAQ"}
@@ -1,28 +0,0 @@
1
- import { useEffect as e } from "react";
2
- //#region src/utils/useClickOutside.ts
3
- function t(t, n) {
4
- e(() => {
5
- let e = (e) => {
6
- !t.current || t.current.contains(e.target) || n();
7
- };
8
- return document.addEventListener("mousedown", e), document.addEventListener("touchstart", e), () => {
9
- document.removeEventListener("mousedown", e), document.removeEventListener("touchstart", e);
10
- };
11
- }, [t, n]);
12
- }
13
- //#endregion
14
- //#region src/utils/licensing.ts
15
- var n = {}, r = Object.keys(n);
16
- function i(e) {
17
- return Object.prototype.hasOwnProperty.call(n, e);
18
- }
19
- function a(e) {
20
- if (i(e)) return n[e];
21
- }
22
- function o(e) {
23
- return a(e)?.plan ?? "free";
24
- }
25
- //#endregion
26
- export { r as a, n as i, o as n, t as o, i as r, a as t };
27
-
28
- //# sourceMappingURL=licensing-DsWLXZiM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"licensing-DsWLXZiM.js","names":[],"sources":["../src/utils/useClickOutside.ts","../src/utils/licensing.ts"],"sourcesContent":["import {useEffect, type RefObject} from 'react'\n\n// Trigger a callback when pointer interaction happens outside the referenced element.\nexport function useClickOutside(ref: RefObject<HTMLElement | null>, handler: () => void): void {\n useEffect(() => {\n const listener = (e: MouseEvent | TouchEvent) => {\n if (!ref.current || ref.current.contains(e.target as Node)) return\n handler()\n }\n\n document.addEventListener('mousedown', listener)\n document.addEventListener('touchstart', listener)\n return () => {\n document.removeEventListener('mousedown', listener)\n document.removeEventListener('touchstart', listener)\n }\n }, [ref, handler])\n}\n","export type MineralPlan = 'free' | 'pro'\n\nexport interface MineralComponentLicense {\n group: 'cards' | 'charts' | 'data' | 'display' | 'media' | 'icons' | 'layout' | 'feedback'\n plan: MineralPlan\n}\n\nexport const mineralComponentLicenses = {} as const satisfies Record<string, MineralComponentLicense>\n\nexport type MineralProComponentName = keyof typeof mineralComponentLicenses\n\nexport const mineralProComponents = Object.keys(mineralComponentLicenses) as MineralProComponentName[]\n\nexport function isMineralProComponent(componentName: string): componentName is MineralProComponentName {\n return Object.prototype.hasOwnProperty.call(mineralComponentLicenses, componentName)\n}\n\nexport function getMineralComponentLicense(componentName: string): MineralComponentLicense | undefined {\n if (!isMineralProComponent(componentName)) {\n return undefined\n }\n\n return mineralComponentLicenses[componentName]\n}\n\nexport function getMineralComponentPlan(componentName: string): MineralPlan {\n return getMineralComponentLicense(componentName)?.plan ?? 'free'\n}\n"],"mappings":";;AAGA,SAAgB,EAAgB,GAAoC,GAA2B;AAC3F,SAAgB;EACZ,IAAM,KAAY,MAA+B;AACzC,IAAC,EAAI,WAAW,EAAI,QAAQ,SAAS,EAAE,OAAe,IAC1D,GAAS;;AAKb,SAFA,SAAS,iBAAiB,aAAa,EAAS,EAChD,SAAS,iBAAiB,cAAc,EAAS,QACpC;AAET,GADA,SAAS,oBAAoB,aAAa,EAAS,EACnD,SAAS,oBAAoB,cAAc,EAAS;;IAEzD,CAAC,GAAK,EAAQ,CAAC;;;;ACTtB,IAAa,IAA2B,EAAE,EAI7B,IAAuB,OAAO,KAAK,EAAyB;AAEzE,SAAgB,EAAsB,GAAiE;AACnG,QAAO,OAAO,UAAU,eAAe,KAAK,GAA0B,EAAc;;AAGxF,SAAgB,EAA2B,GAA4D;AAC9F,OAAsB,EAAc,CAIzC,QAAO,EAAyB;;AAGpC,SAAgB,EAAwB,GAAoC;AACxE,QAAO,EAA2B,EAAc,EAAE,QAAQ"}
@@ -1,171 +0,0 @@
1
- import { n as e, t } from "./MChevronRightIcon-BozfuNpv.js";
2
- import { t as n } from "./cn-B_veu23e.js";
3
- import { t as r } from "./useInteractionEffect-B5_UpgTt.js";
4
- import { t as i } from "./MButton-BIWj6T2J.js";
5
- import { t as a } from "./MSkeleton-QQ57uNaL.js";
6
- import { Children as o, useCallback as s, useEffect as c, useRef as l, useState as u } from "react";
7
- import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
8
- //#region src/components/media/MImage/MImage.tsx
9
- var m = {
10
- "1:1": "1 / 1",
11
- "4:3": "4 / 3",
12
- "16:9": "16 / 9",
13
- "21:9": "21 / 9"
14
- };
15
- function h({ fit: e = "cover", ratio: t = "auto", rounded: i = !1, bordered: o = !1, shadow: s = !1, clickEffect: c = "none", fallback: l, skeleton: d = !1, className: h, style: g, alt: _, onError: v, ...y }) {
16
- let [b, x] = u(!1), { effectClassName: S, effectLayer: C, handlePointerDown: w } = r({ effect: d ? "none" : c }), T = (e) => {
17
- l && !b && (x(!0), e.currentTarget.src = l), v?.(e);
18
- }, E = t !== "auto" && !!m[t], D = E ? {
19
- aspectRatio: m[t],
20
- ...g
21
- } : g;
22
- if (d) return /* @__PURE__ */ f(a, {
23
- variant: "rectangle",
24
- animate: "pulse",
25
- className: n("image-skeleton", i && "rounded", o && "bordered", h),
26
- style: D,
27
- "aria-label": "Loading"
28
- });
29
- let O = n("image", e, !C && i && "rounded", !C && o && "bordered", !C && s && "shadow");
30
- return C ? /* @__PURE__ */ p("span", {
31
- className: n("image-wrap", E && "has-ratio", i && "rounded", o && "bordered", s && "shadow", S, h),
32
- style: D,
33
- onPointerDown: w,
34
- children: [C, /* @__PURE__ */ f("img", {
35
- className: O,
36
- onError: T,
37
- ...y,
38
- alt: _ ?? ""
39
- })]
40
- }) : /* @__PURE__ */ f("img", {
41
- className: n(O, h),
42
- style: D,
43
- onError: T,
44
- ...y,
45
- alt: _ ?? ""
46
- });
47
- }
48
- //#endregion
49
- //#region src/components/media/MGallery/MGallery.tsx
50
- function g({ items: e, columns: t = 3, rounded: r = !0, clickEffect: i = "ripple", className: a, ...o }) {
51
- return /* @__PURE__ */ f("div", {
52
- className: n("gallery", `columns-${t}`, a),
53
- ...o,
54
- children: e.map((e, t) => /* @__PURE__ */ f(_, {
55
- item: e,
56
- rounded: r,
57
- clickEffect: i
58
- }, t))
59
- });
60
- }
61
- function _({ item: e, rounded: t, clickEffect: i }) {
62
- let { effectClassName: a, effectLayer: o, handlePointerDown: s } = r({ effect: i });
63
- return /* @__PURE__ */ p("figure", {
64
- className: n("gallery-item", t && "rounded", a),
65
- onPointerDown: s,
66
- children: [
67
- /* @__PURE__ */ f("img", {
68
- className: "gallery-image",
69
- src: e.src,
70
- alt: e.alt || "",
71
- loading: "lazy"
72
- }),
73
- e.caption && /* @__PURE__ */ f("figcaption", {
74
- className: "gallery-caption",
75
- children: e.caption
76
- }),
77
- o
78
- ]
79
- });
80
- }
81
- //#endregion
82
- //#region src/components/media/MCarousel/MCarousel.tsx
83
- function v({ autoPlay: r = !1, interval: a = 5e3, showDots: m = !0, showArrows: h = !0, loop: g = !0, draggable: _ = !0, transition: v = "slide", className: y, children: b, ...x }) {
84
- let S = o.toArray(b), C = S.length, [w, T] = u(0), [E, D] = u(0), [O, k] = u(!1), A = l(0), j = l(null), M = s((e) => {
85
- T(g ? (e + C) % C : Math.max(0, Math.min(e, C - 1)));
86
- }, [C, g]), N = s(() => M(w - 1), [w, M]), P = s(() => M(w + 1), [w, M]);
87
- c(() => {
88
- if (!r || C <= 1 || O) return;
89
- let e = setInterval(P, a);
90
- return () => clearInterval(e);
91
- }, [
92
- r,
93
- a,
94
- P,
95
- C,
96
- O
97
- ]);
98
- let F = (e) => {
99
- _ && (k(!0), A.current = e, D(0));
100
- }, I = (e) => {
101
- O && D(e - A.current);
102
- }, L = () => {
103
- O && (k(!1), E < -50 ? P() : E > 50 && N(), D(0));
104
- }, R = (e) => {
105
- _ && (e.currentTarget.setPointerCapture(e.pointerId), F(e.clientX));
106
- }, z = (e) => {
107
- I(e.clientX);
108
- }, B = () => {
109
- L();
110
- };
111
- if (C === 0) return null;
112
- let V = v === "fade", H = V ? void 0 : { transform: `translateX(calc(-${w * 100}% + ${O ? E : 0}px))` };
113
- return /* @__PURE__ */ p("div", {
114
- className: n("carousel", V && "fade", y),
115
- ...x,
116
- children: [
117
- /* @__PURE__ */ f("div", {
118
- className: "carousel-viewport",
119
- onPointerDown: R,
120
- onPointerMove: z,
121
- onPointerUp: B,
122
- onPointerCancel: B,
123
- style: {
124
- touchAction: _ ? "pan-y" : void 0,
125
- cursor: _ ? O ? "grabbing" : "grab" : void 0
126
- },
127
- children: /* @__PURE__ */ f("div", {
128
- ref: j,
129
- className: n("carousel-track", O && "dragging"),
130
- style: H,
131
- children: S.map((e, t) => /* @__PURE__ */ f("div", {
132
- className: n("carousel-slide", V && t === w && "active", V && t !== w && "hidden"),
133
- children: e
134
- }, t))
135
- })
136
- }),
137
- h && C > 1 && /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f(i, {
138
- variant: "ghost",
139
- color: "primary",
140
- iconOnly: !0,
141
- shape: "circle",
142
- onClick: N,
143
- "aria-label": "Previous slide",
144
- className: "carousel-arrow carousel-arrow-prev",
145
- children: /* @__PURE__ */ f(e, {})
146
- }), /* @__PURE__ */ f(i, {
147
- variant: "ghost",
148
- color: "primary",
149
- iconOnly: !0,
150
- shape: "circle",
151
- onClick: P,
152
- "aria-label": "Next slide",
153
- className: "carousel-arrow carousel-arrow-next",
154
- children: /* @__PURE__ */ f(t, {})
155
- })] }),
156
- m && C > 1 && /* @__PURE__ */ f("div", {
157
- className: "carousel-dots",
158
- children: S.map((e, t) => /* @__PURE__ */ f("button", {
159
- className: n("carousel-dot", t === w && "active"),
160
- onClick: () => M(t),
161
- "aria-label": `Slide ${t + 1}`,
162
- type: "button"
163
- }, t))
164
- })
165
- ]
166
- });
167
- }
168
- //#endregion
169
- export { g as n, h as r, v as t };
170
-
171
- //# sourceMappingURL=media-V8oypokY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-V8oypokY.js","names":[],"sources":["../src/components/media/MImage/MImage.tsx","../src/components/media/MGallery/MGallery.tsx","../src/components/media/MCarousel/MCarousel.tsx"],"sourcesContent":["import {useState} from 'react'\nimport type * as React from 'react'\nimport type {MImageProps} from './MImage.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MSkeleton} from '../../feedback'\nimport './MImage.css'\n\nconst RATIO_MAP: Record<string, string> = {\n '1:1': '1 / 1',\n '4:3': '4 / 3',\n '16:9': '16 / 9',\n '21:9': '21 / 9',\n}\n\n// Render a styled image with aspect ratio, fit, and optional fallback.\nexport function MImage({\n fit = 'cover',\n ratio = 'auto',\n rounded = false,\n bordered = false,\n shadow = false,\n clickEffect = 'none',\n fallback,\n skeleton = false,\n className,\n style,\n alt,\n onError,\n ...rest\n}: MImageProps) {\n const [errored, setErrored] = useState(false)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: skeleton ? 'none' : clickEffect,\n })\n\n const handleError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n if (fallback && !errored) {\n setErrored(true)\n e.currentTarget.src = fallback\n }\n onError?.(e)\n }\n\n const hasFixedRatio = ratio !== 'auto' && !!RATIO_MAP[ratio]\n const ratioStyle = hasFixedRatio ? {aspectRatio: RATIO_MAP[ratio], ...style} : style\n\n // Skeleton placeholder\n if (skeleton) {\n return (\n <MSkeleton\n variant=\"rectangle\"\n animate=\"pulse\"\n className={cn(\n 'image-skeleton',\n rounded && 'rounded',\n bordered && 'bordered',\n className\n )}\n style={ratioStyle}\n aria-label=\"Loading\"\n />\n )\n }\n\n const imgClassName = cn(\n 'image',\n fit,\n !effectLayer && rounded && 'rounded',\n !effectLayer && bordered && 'bordered',\n !effectLayer && shadow && 'shadow'\n )\n\n if (effectLayer) {\n return (\n <span\n className={cn(\n 'image-wrap',\n hasFixedRatio && 'has-ratio',\n rounded && 'rounded',\n bordered && 'bordered',\n shadow && 'shadow',\n effectClassName,\n className\n )}\n style={ratioStyle}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <img className={imgClassName} onError={handleError} {...rest} alt={alt ?? ''} />\n </span>\n )\n }\n\n return (\n <img\n className={cn(imgClassName, className)}\n style={ratioStyle}\n onError={handleError}\n {...rest}\n alt={alt ?? ''}\n />\n )\n}\n","import type {MGalleryProps} from './MGallery.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MGallery.css'\n\n// Render a responsive image grid gallery.\nexport function MGallery({\n items,\n columns = 3,\n rounded = true,\n clickEffect = 'ripple',\n className,\n ...rest\n}: MGalleryProps) {\n return (\n <div className={cn('gallery', `columns-${columns}`, className)} {...rest}>\n {items.map((item, i) => (\n <GalleryFigure key={i} item={item} rounded={rounded} clickEffect={clickEffect} />\n ))}\n </div>\n )\n}\n\nfunction GalleryFigure({\n item,\n rounded,\n clickEffect,\n}: {\n item: {src: string; alt?: string; caption?: string}\n rounded: boolean\n clickEffect: 'none' | 'ripple'\n}) {\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n })\n\n return (\n <figure className={cn('gallery-item', rounded && 'rounded', effectClassName)} onPointerDown={handlePointerDown}>\n <img className=\"gallery-image\" src={item.src} alt={item.alt || ''} loading=\"lazy\" />\n {item.caption && <figcaption className=\"gallery-caption\">{item.caption}</figcaption>}\n {effectLayer}\n </figure>\n )\n}\n","import {useState, useEffect, useCallback, useRef, Children} from 'react'\nimport type * as React from 'react'\nimport type {MCarouselProps} from './MCarousel.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MChevronLeftIcon, MChevronRightIcon} from '../../../icons'\nimport './MCarousel.css'\n\n// Render a swipeable content slider with arrows, dots and transition modes.\nexport function MCarousel({\n autoPlay = false,\n interval = 5000,\n showDots = true,\n showArrows = true,\n loop = true,\n draggable = true,\n transition = 'slide',\n className,\n children,\n ...rest\n}: MCarouselProps) {\n const slides = Children.toArray(children)\n const count = slides.length\n const [active, setActive] = useState(0)\n const [dragOffset, setDragOffset] = useState(0)\n const [isDragging, setIsDragging] = useState(false)\n const dragStartX = useRef(0)\n const trackRef = useRef<HTMLDivElement>(null)\n\n const goTo = useCallback(\n (index: number) => {\n if (loop) {\n setActive((index + count) % count)\n } else {\n setActive(Math.max(0, Math.min(index, count - 1)))\n }\n },\n [count, loop]\n )\n\n const prev = useCallback(() => goTo(active - 1), [active, goTo])\n const next = useCallback(() => goTo(active + 1), [active, goTo])\n\n useEffect(() => {\n if (!autoPlay || count <= 1 || isDragging) return\n const timer = setInterval(next, interval)\n return () => clearInterval(timer)\n }, [autoPlay, interval, next, count, isDragging])\n\n const handleDragStart = (clientX: number) => {\n if (!draggable) return\n setIsDragging(true)\n dragStartX.current = clientX\n setDragOffset(0)\n }\n\n const handleDragMove = (clientX: number) => {\n if (!isDragging) return\n const diff = clientX - dragStartX.current\n setDragOffset(diff)\n }\n\n const handleDragEnd = () => {\n if (!isDragging) return\n setIsDragging(false)\n const threshold = 50\n if (dragOffset < -threshold) {\n next()\n } else if (dragOffset > threshold) {\n prev()\n }\n setDragOffset(0)\n }\n\n const onPointerDown = (e: React.PointerEvent) => {\n if (!draggable) return\n e.currentTarget.setPointerCapture(e.pointerId)\n handleDragStart(e.clientX)\n }\n\n const onPointerMove = (e: React.PointerEvent) => {\n handleDragMove(e.clientX)\n }\n\n const onPointerUp = () => {\n handleDragEnd()\n }\n\n if (count === 0) return null\n\n const isFade = transition === 'fade'\n const trackStyle = !isFade\n ? {transform: `translateX(calc(-${active * 100}% + ${isDragging ? dragOffset : 0}px))`}\n : undefined\n\n return (\n <div className={cn('carousel', isFade && 'fade', className)} {...rest}>\n <div\n className=\"carousel-viewport\"\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n onPointerCancel={onPointerUp}\n style={{\n touchAction: draggable ? 'pan-y' : undefined,\n cursor: draggable ? (isDragging ? 'grabbing' : 'grab') : undefined,\n }}\n >\n <div ref={trackRef} className={cn('carousel-track', isDragging && 'dragging')} style={trackStyle}>\n {slides.map((slide, i) => (\n <div\n key={i}\n className={cn(\n 'carousel-slide',\n isFade && i === active && 'active',\n isFade && i !== active && 'hidden'\n )}\n >\n {slide}\n </div>\n ))}\n </div>\n </div>\n\n {showArrows && count > 1 && (\n <>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={prev}\n aria-label=\"Previous slide\"\n className=\"carousel-arrow carousel-arrow-prev\"\n >\n <MChevronLeftIcon />\n </MButton>\n <MButton\n variant=\"ghost\"\n color=\"primary\"\n iconOnly\n shape=\"circle\"\n onClick={next}\n aria-label=\"Next slide\"\n className=\"carousel-arrow carousel-arrow-next\"\n >\n <MChevronRightIcon />\n </MButton>\n </>\n )}\n\n {showDots && count > 1 && (\n <div className=\"carousel-dots\">\n {slides.map((_, i) => (\n <button\n key={i}\n className={cn('carousel-dot', i === active && 'active')}\n onClick={() => goTo(i)}\n aria-label={`Slide ${i + 1}`}\n type=\"button\"\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./MChevronRightIcon-QbfE-b7g.cjs`),t=require(`./cn-CpRt8Xjj.cjs`),n=require(`./useInteractionEffect-BaJeiUns.cjs`),r=require(`./MButton-DOtMjOTz.cjs`),i=require(`./MSkeleton-7YJwDcvl.cjs`);let a=require(`react`),o=require(`react/jsx-runtime`);var s={"1:1":`1 / 1`,"4:3":`4 / 3`,"16:9":`16 / 9`,"21:9":`21 / 9`};function c({fit:e=`cover`,ratio:r=`auto`,rounded:c=!1,bordered:l=!1,shadow:u=!1,clickEffect:d=`none`,fallback:f,skeleton:p=!1,className:m,style:h,alt:g,onError:_,...v}){let[y,b]=(0,a.useState)(!1),{effectClassName:x,effectLayer:S,handlePointerDown:C}=n.t({effect:p?`none`:d}),w=e=>{f&&!y&&(b(!0),e.currentTarget.src=f),_?.(e)},T=r!==`auto`&&!!s[r],E=T?{aspectRatio:s[r],...h}:h;if(p)return(0,o.jsx)(i.t,{variant:`rectangle`,animate:`pulse`,className:t.t(`image-skeleton`,c&&`rounded`,l&&`bordered`,m),style:E,"aria-label":`Loading`});let D=t.t(`image`,e,!S&&c&&`rounded`,!S&&l&&`bordered`,!S&&u&&`shadow`);return S?(0,o.jsxs)(`span`,{className:t.t(`image-wrap`,T&&`has-ratio`,c&&`rounded`,l&&`bordered`,u&&`shadow`,x,m),style:E,onPointerDown:C,children:[S,(0,o.jsx)(`img`,{className:D,onError:w,...v,alt:g??``})]}):(0,o.jsx)(`img`,{className:t.t(D,m),style:E,onError:w,...v,alt:g??``})}function l({items:e,columns:n=3,rounded:r=!0,clickEffect:i=`ripple`,className:a,...s}){return(0,o.jsx)(`div`,{className:t.t(`gallery`,`columns-${n}`,a),...s,children:e.map((e,t)=>(0,o.jsx)(u,{item:e,rounded:r,clickEffect:i},t))})}function u({item:e,rounded:r,clickEffect:i}){let{effectClassName:a,effectLayer:s,handlePointerDown:c}=n.t({effect:i});return(0,o.jsxs)(`figure`,{className:t.t(`gallery-item`,r&&`rounded`,a),onPointerDown:c,children:[(0,o.jsx)(`img`,{className:`gallery-image`,src:e.src,alt:e.alt||``,loading:`lazy`}),e.caption&&(0,o.jsx)(`figcaption`,{className:`gallery-caption`,children:e.caption}),s]})}function d({autoPlay:n=!1,interval:i=5e3,showDots:s=!0,showArrows:c=!0,loop:l=!0,draggable:u=!0,transition:d=`slide`,className:f,children:p,...m}){let h=a.Children.toArray(p),g=h.length,[_,v]=(0,a.useState)(0),[y,b]=(0,a.useState)(0),[x,S]=(0,a.useState)(!1),C=(0,a.useRef)(0),w=(0,a.useRef)(null),T=(0,a.useCallback)(e=>{v(l?(e+g)%g:Math.max(0,Math.min(e,g-1)))},[g,l]),E=(0,a.useCallback)(()=>T(_-1),[_,T]),D=(0,a.useCallback)(()=>T(_+1),[_,T]);(0,a.useEffect)(()=>{if(!n||g<=1||x)return;let e=setInterval(D,i);return()=>clearInterval(e)},[n,i,D,g,x]);let O=e=>{u&&(S(!0),C.current=e,b(0))},k=e=>{x&&b(e-C.current)},A=()=>{x&&(S(!1),y<-50?D():y>50&&E(),b(0))},j=e=>{u&&(e.currentTarget.setPointerCapture(e.pointerId),O(e.clientX))},M=e=>{k(e.clientX)},N=()=>{A()};if(g===0)return null;let P=d===`fade`,F=P?void 0:{transform:`translateX(calc(-${_*100}% + ${x?y:0}px))`};return(0,o.jsxs)(`div`,{className:t.t(`carousel`,P&&`fade`,f),...m,children:[(0,o.jsx)(`div`,{className:`carousel-viewport`,onPointerDown:j,onPointerMove:M,onPointerUp:N,onPointerCancel:N,style:{touchAction:u?`pan-y`:void 0,cursor:u?x?`grabbing`:`grab`:void 0},children:(0,o.jsx)(`div`,{ref:w,className:t.t(`carousel-track`,x&&`dragging`),style:F,children:h.map((e,n)=>(0,o.jsx)(`div`,{className:t.t(`carousel-slide`,P&&n===_&&`active`,P&&n!==_&&`hidden`),children:e},n))})}),c&&g>1&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.t,{variant:`ghost`,color:`primary`,iconOnly:!0,shape:`circle`,onClick:E,"aria-label":`Previous slide`,className:`carousel-arrow carousel-arrow-prev`,children:(0,o.jsx)(e.n,{})}),(0,o.jsx)(r.t,{variant:`ghost`,color:`primary`,iconOnly:!0,shape:`circle`,onClick:D,"aria-label":`Next slide`,className:`carousel-arrow carousel-arrow-next`,children:(0,o.jsx)(e.t,{})})]}),s&&g>1&&(0,o.jsx)(`div`,{className:`carousel-dots`,children:h.map((e,n)=>(0,o.jsx)(`button`,{className:t.t(`carousel-dot`,n===_&&`active`),onClick:()=>T(n),"aria-label":`Slide ${n+1}`,type:`button`},n))})]})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
2
- //# sourceMappingURL=media-uvYa5r3D.cjs.map