@banzamel/mineralui 1.1.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +1 -1
  2. package/dist/MAvatar-B4Y9P5ua.js +57 -0
  3. package/dist/MAvatar-B4Y9P5ua.js.map +1 -0
  4. package/dist/MAvatar-D4ZC9wml.cjs +2 -0
  5. package/dist/MAvatar-D4ZC9wml.cjs.map +1 -0
  6. package/dist/MBadge-BaeeIRhu.js +19 -0
  7. package/dist/MBadge-BaeeIRhu.js.map +1 -0
  8. package/dist/MBadge-DJuqtMP7.cjs +2 -0
  9. package/dist/MBadge-DJuqtMP7.cjs.map +1 -0
  10. package/dist/MButton-Rg85cgO1.cjs +2 -0
  11. package/dist/{MButton-CX8SV1m0.cjs.map → MButton-Rg85cgO1.cjs.map} +1 -1
  12. package/dist/MButton-pSNx-6UK.js +113 -0
  13. package/dist/{MButton-BJdrNg2I.js.map → MButton-pSNx-6UK.js.map} +1 -1
  14. package/dist/{MCheckbox-DfCD0EtS.js → MCheckbox-B7SpcD4H.js} +1 -1
  15. package/dist/{MCheckbox-DfCD0EtS.js.map → MCheckbox-B7SpcD4H.js.map} +1 -1
  16. package/dist/{MCheckbox-CAZA97h7.cjs → MCheckbox-Bea3orrs.cjs} +1 -1
  17. package/dist/{MCheckbox-CAZA97h7.cjs.map → MCheckbox-Bea3orrs.cjs.map} +1 -1
  18. package/dist/{MCookieBootstrap-BhTMPs8T.js → MCookieBootstrap-CNYLvKjW.js} +1 -1
  19. package/dist/{MCookieBootstrap-BhTMPs8T.js.map → MCookieBootstrap-CNYLvKjW.js.map} +1 -1
  20. package/dist/{MCookieBootstrap-Fxpem-gF.cjs → MCookieBootstrap-DSOT4FQo.cjs} +1 -1
  21. package/dist/{MCookieBootstrap-Fxpem-gF.cjs.map → MCookieBootstrap-DSOT4FQo.cjs.map} +1 -1
  22. package/dist/{MDataTable-D-ASD4g3.js → MDataTable-D5SnGm3D.js} +10 -10
  23. package/dist/{MDataTable-D-ASD4g3.js.map → MDataTable-D5SnGm3D.js.map} +1 -1
  24. package/dist/{MDataTable-BZs6Cn9e.cjs → MDataTable-_afEvx2S.cjs} +2 -2
  25. package/dist/{MDataTable-BZs6Cn9e.cjs.map → MDataTable-_afEvx2S.cjs.map} +1 -1
  26. package/dist/{MDrawer-CTVEF34p.cjs → MDrawer-2NDNRU77.cjs} +2 -2
  27. package/dist/{MDrawer-CTVEF34p.cjs.map → MDrawer-2NDNRU77.cjs.map} +1 -1
  28. package/dist/{MDrawer-CscOMXBg.js → MDrawer-CHvOVWPw.js} +2 -2
  29. package/dist/{MDrawer-CscOMXBg.js.map → MDrawer-CHvOVWPw.js.map} +1 -1
  30. package/dist/{MDropdownMenu-B1eOmM7u.js → MDropdownMenu-CxBhYxQb.js} +1 -1
  31. package/dist/{MDropdownMenu-B1eOmM7u.js.map → MDropdownMenu-CxBhYxQb.js.map} +1 -1
  32. package/dist/{MDropdownMenu-CiJ_7DQ2.cjs → MDropdownMenu-X7ywPqth.cjs} +1 -1
  33. package/dist/{MDropdownMenu-CiJ_7DQ2.cjs.map → MDropdownMenu-X7ywPqth.cjs.map} +1 -1
  34. package/dist/MHeading-C5s-kb2D.js +21 -0
  35. package/dist/MHeading-C5s-kb2D.js.map +1 -0
  36. package/dist/MHeading-CvAYmqMN.cjs +2 -0
  37. package/dist/MHeading-CvAYmqMN.cjs.map +1 -0
  38. package/dist/MImage-DqAx0_B0.cjs +2 -0
  39. package/dist/MImage-DqAx0_B0.cjs.map +1 -0
  40. package/dist/MImage-F34N1nhB.js +53 -0
  41. package/dist/MImage-F34N1nhB.js.map +1 -0
  42. package/dist/MInline-BKY7arDg.js +41 -0
  43. package/dist/MInline-BKY7arDg.js.map +1 -0
  44. package/dist/MInline-FgdIt6kv.cjs +2 -0
  45. package/dist/MInline-FgdIt6kv.cjs.map +1 -0
  46. package/dist/{MInput-BZ1ZPuk3.cjs → MInput-C_Prnehc.cjs} +2 -2
  47. package/dist/{MInput-BZ1ZPuk3.cjs.map → MInput-C_Prnehc.cjs.map} +1 -1
  48. package/dist/{MInput-B8RPS-wr.js → MInput-DI066RK9.js} +2 -2
  49. package/dist/{MInput-B8RPS-wr.js.map → MInput-DI066RK9.js.map} +1 -1
  50. package/dist/{MInputCVC-DOBmGhJL.cjs → MInputCVC-B75iBIRt.cjs} +2 -2
  51. package/dist/{MInputCVC-DOBmGhJL.cjs.map → MInputCVC-B75iBIRt.cjs.map} +1 -1
  52. package/dist/{MInputCVC-BJQWuuwR.js → MInputCVC-BlBZjRft.js} +3 -3
  53. package/dist/{MInputCVC-BJQWuuwR.js.map → MInputCVC-BlBZjRft.js.map} +1 -1
  54. package/dist/{MInputSearch-DAAg9FXv.cjs → MInputSearch-BKQnKS-9.cjs} +2 -2
  55. package/dist/{MInputSearch-DAAg9FXv.cjs.map → MInputSearch-BKQnKS-9.cjs.map} +1 -1
  56. package/dist/{MInputSearch-PMHykVrc.js → MInputSearch-CBsBsuqu.js} +2 -2
  57. package/dist/{MInputSearch-PMHykVrc.js.map → MInputSearch-CBsBsuqu.js.map} +1 -1
  58. package/dist/MLink-BgYBHhce.js +31 -0
  59. package/dist/{MLink-CBmT8zaD.js.map → MLink-BgYBHhce.js.map} +1 -1
  60. package/dist/MLink-DmB3rcWB.cjs +2 -0
  61. package/dist/{MLink-D10DD8oX.cjs.map → MLink-DmB3rcWB.cjs.map} +1 -1
  62. package/dist/{MModal-CfzduXaI.cjs → MModal-BaA098nr.cjs} +2 -2
  63. package/dist/{MModal-CfzduXaI.cjs.map → MModal-BaA098nr.cjs.map} +1 -1
  64. package/dist/{MModal-BogYYyZE.js → MModal-DXZ2SrJt.js} +2 -2
  65. package/dist/{MModal-BogYYyZE.js.map → MModal-DXZ2SrJt.js.map} +1 -1
  66. package/dist/{MPagination-CgvjKhLN.js → MPagination-BFI_z3y6.js} +2 -2
  67. package/dist/{MPagination-CgvjKhLN.js.map → MPagination-BFI_z3y6.js.map} +1 -1
  68. package/dist/{MPagination-vg2EqB8z.cjs → MPagination-C6hnhbTp.cjs} +2 -2
  69. package/dist/{MPagination-vg2EqB8z.cjs.map → MPagination-C6hnhbTp.cjs.map} +1 -1
  70. package/dist/{MQrCode-l0FzrNCq.js → MQrCode-DfZwkhZV.js} +2 -2
  71. package/dist/{MQrCode-l0FzrNCq.js.map → MQrCode-DfZwkhZV.js.map} +1 -1
  72. package/dist/{MQrCode-DB9vELHq.cjs → MQrCode-L0trT6n3.cjs} +2 -2
  73. package/dist/{MQrCode-DB9vELHq.cjs.map → MQrCode-L0trT6n3.cjs.map} +1 -1
  74. package/dist/{MSkeleton-D7wnoEE8.cjs → MSkeleton-BEdflu0F.cjs} +2 -2
  75. package/dist/{MSkeleton-D7wnoEE8.cjs.map → MSkeleton-BEdflu0F.cjs.map} +1 -1
  76. package/dist/{MSkeleton-Bh9cCe49.js → MSkeleton-DX9gJ311.js} +2 -2
  77. package/dist/{MSkeleton-Bh9cCe49.js.map → MSkeleton-DX9gJ311.js.map} +1 -1
  78. package/dist/{MSlider-YDSrVUQ8.cjs → MSlider-BCMJkvcA.cjs} +1 -1
  79. package/dist/{MSlider-YDSrVUQ8.cjs.map → MSlider-BCMJkvcA.cjs.map} +1 -1
  80. package/dist/{MSlider-BlgzLtHa.js → MSlider-CqrusKJQ.js} +1 -1
  81. package/dist/{MSlider-BlgzLtHa.js.map → MSlider-CqrusKJQ.js.map} +1 -1
  82. package/dist/{MSparkline-Bl5-EHJr.cjs → MSparkline-BOaNmbeB.cjs} +1 -1
  83. package/dist/{MSparkline-Bl5-EHJr.cjs.map → MSparkline-BOaNmbeB.cjs.map} +1 -1
  84. package/dist/{MSparkline-C8tnqhJm.js → MSparkline-Cb_EwR-E.js} +1 -1
  85. package/dist/{MSparkline-C8tnqhJm.js.map → MSparkline-Cb_EwR-E.js.map} +1 -1
  86. package/dist/MStack-BgwBqm-V.cjs +2 -0
  87. package/dist/MStack-BgwBqm-V.cjs.map +1 -0
  88. package/dist/MStack-Dk0GNVBT.js +41 -0
  89. package/dist/MStack-Dk0GNVBT.js.map +1 -0
  90. package/dist/MSubText-D8VxE877.cjs +2 -0
  91. package/dist/MSubText-D8VxE877.cjs.map +1 -0
  92. package/dist/MSubText-DwNeDGYg.js +17 -0
  93. package/dist/MSubText-DwNeDGYg.js.map +1 -0
  94. package/dist/MSurface-CFbX5C63.cjs +2 -0
  95. package/dist/MSurface-CFbX5C63.cjs.map +1 -0
  96. package/dist/MSurface-COlEjDyo.js +41 -0
  97. package/dist/MSurface-COlEjDyo.js.map +1 -0
  98. package/dist/MTag-DZjcHYn0.cjs +2 -0
  99. package/dist/MTag-DZjcHYn0.cjs.map +1 -0
  100. package/dist/MTag-wsCYRndK.js +39 -0
  101. package/dist/MTag-wsCYRndK.js.map +1 -0
  102. package/dist/MText-CexZuJgV.js +45 -0
  103. package/dist/MText-CexZuJgV.js.map +1 -0
  104. package/dist/MText-YIBipYLh.cjs +2 -0
  105. package/dist/MText-YIBipYLh.cjs.map +1 -0
  106. package/dist/{MTimeAgo-LWntwbKg.cjs → MTimeAgo-91_ndjxU.cjs} +2 -2
  107. package/dist/{MTimeAgo-LWntwbKg.cjs.map → MTimeAgo-91_ndjxU.cjs.map} +1 -1
  108. package/dist/{MTimeAgo-irsvTFAY.js → MTimeAgo-xxl53mct.js} +2 -2
  109. package/dist/{MTimeAgo-irsvTFAY.js.map → MTimeAgo-xxl53mct.js.map} +1 -1
  110. package/dist/{MToggle-BbSDIAJq.js → MToggle-B6emKoKq.js} +1 -1
  111. package/dist/{MToggle-BbSDIAJq.js.map → MToggle-B6emKoKq.js.map} +1 -1
  112. package/dist/{MToggle-GhhAJgUa.cjs → MToggle-CsGS_W3X.cjs} +1 -1
  113. package/dist/{MToggle-GhhAJgUa.cjs.map → MToggle-CsGS_W3X.cjs.map} +1 -1
  114. package/dist/{MTooltip-eTM5DKtM.cjs → MTooltip-CNXoyQEN.cjs} +1 -1
  115. package/dist/{MTooltip-eTM5DKtM.cjs.map → MTooltip-CNXoyQEN.cjs.map} +1 -1
  116. package/dist/{MTooltip-BVQ7wBrO.js → MTooltip-UYOjDBOu.js} +1 -1
  117. package/dist/{MTooltip-BVQ7wBrO.js.map → MTooltip-UYOjDBOu.js.map} +1 -1
  118. package/dist/{cards-JqA2VWit.js → cards-BguCbFp7.js} +64 -64
  119. package/dist/{cards-JqA2VWit.js.map → cards-BguCbFp7.js.map} +1 -1
  120. package/dist/{cards-QoMhQlao.cjs → cards-DgOG2sWk.cjs} +2 -2
  121. package/dist/{cards-QoMhQlao.cjs.map → cards-DgOG2sWk.cjs.map} +1 -1
  122. package/dist/cards.cjs +1 -1
  123. package/dist/cards.js +2 -2
  124. package/dist/components/controls/MButton/MButton.types.d.ts +2 -2
  125. package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
  126. package/dist/components/feedback/MAlert/MAlert.types.d.ts +2 -2
  127. package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
  128. package/dist/components/feedback/MBadge/MBadge.types.d.ts +2 -2
  129. package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
  130. package/dist/components/feedback/MBanner/MBanner.types.d.ts +2 -2
  131. package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.script.d.ts +4 -0
  132. package/dist/components/feedback/MTag/MTag.d.ts +1 -1
  133. package/dist/components/feedback/MTag/MTag.types.d.ts +2 -2
  134. package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
  135. package/dist/components/layout/MContainer/MContainer.types.d.ts +2 -1
  136. package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
  137. package/dist/components/layout/MDivider/MDivider.types.d.ts +2 -1
  138. package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
  139. package/dist/components/layout/MFooter/MFooter.types.d.ts +2 -1
  140. package/dist/components/layout/MGrid/MGrid.d.ts +2 -2
  141. package/dist/components/layout/MGrid/MGrid.types.d.ts +4 -2
  142. package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
  143. package/dist/components/layout/MHeader/MHeader.types.d.ts +2 -1
  144. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  145. package/dist/components/layout/MInline/MInline.types.d.ts +2 -1
  146. package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
  147. package/dist/components/layout/MNavbar/MNavbar.types.d.ts +6 -1
  148. package/dist/components/layout/MNavbar/index.d.ts +1 -1
  149. package/dist/components/layout/MNavs/MNavs.types.d.ts +12 -2
  150. package/dist/components/layout/MNavs/index.d.ts +1 -1
  151. package/dist/components/layout/MSection/MSection.d.ts +1 -1
  152. package/dist/components/layout/MSection/MSection.types.d.ts +2 -1
  153. package/dist/components/layout/MStack/MStack.d.ts +1 -1
  154. package/dist/components/layout/MStack/MStack.types.d.ts +2 -1
  155. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  156. package/dist/components/layout/MSurface/MSurface.types.d.ts +2 -1
  157. package/dist/components/layout/MTopbar/MTopbar.d.ts +1 -1
  158. package/dist/components/layout/MTopbar/MTopbar.types.d.ts +2 -2
  159. package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
  160. package/dist/components/media/MAvatar/MAvatar.types.d.ts +2 -2
  161. package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +1 -1
  162. package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +2 -2
  163. package/dist/components/media/MImage/MImage.d.ts +1 -1
  164. package/dist/components/media/MImage/MImage.types.d.ts +2 -1
  165. package/dist/components/typography/MHeading/MHeading.d.ts +563 -2
  166. package/dist/components/typography/MHeading/MHeading.types.d.ts +2 -2
  167. package/dist/components/typography/MLink/MLink.types.d.ts +2 -1
  168. package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
  169. package/dist/components/typography/MSubText/MSubText.types.d.ts +2 -2
  170. package/dist/components/typography/MText/MText.d.ts +1 -1
  171. package/dist/components/typography/MText/MText.types.d.ts +2 -2
  172. package/dist/controls-CN5d1q6e.cjs +2 -0
  173. package/dist/{controls-BFmZuejK.cjs.map → controls-CN5d1q6e.cjs.map} +1 -1
  174. package/dist/{controls-Dbev0qSy.js → controls-CVdInuMI.js} +145 -143
  175. package/dist/{controls-Dbev0qSy.js.map → controls-CVdInuMI.js.map} +1 -1
  176. package/dist/controls.cjs +1 -1
  177. package/dist/controls.js +6 -6
  178. package/dist/cookie-consent-bootstrap.cjs +1 -1
  179. package/dist/cookie-consent-bootstrap.cjs.map +1 -1
  180. package/dist/cookie-consent-bootstrap.js +45 -32
  181. package/dist/cookie-consent-bootstrap.js.map +1 -1
  182. package/dist/data-BZ3Uio4Z.cjs +2 -0
  183. package/dist/data-BZ3Uio4Z.cjs.map +1 -0
  184. package/dist/{data-B1hbWMzU.js → data-BpGAUxCL.js} +554 -553
  185. package/dist/data-BpGAUxCL.js.map +1 -0
  186. package/dist/data.cjs +1 -1
  187. package/dist/data.js +3 -3
  188. package/dist/{display-B-zP1BEz.cjs → display-CCG1eb0m.cjs} +2 -2
  189. package/dist/{display-B-zP1BEz.cjs.map → display-CCG1eb0m.cjs.map} +1 -1
  190. package/dist/{display-DC0d-nPm.js → display-gwrOWH2c.js} +3 -3
  191. package/dist/{display-DC0d-nPm.js.map → display-gwrOWH2c.js.map} +1 -1
  192. package/dist/display.cjs +1 -1
  193. package/dist/display.js +3 -3
  194. package/dist/{dropdowns-Vo7Oo_ii.js → dropdowns-CNKEy6vf.js} +43 -43
  195. package/dist/{dropdowns-Vo7Oo_ii.js.map → dropdowns-CNKEy6vf.js.map} +1 -1
  196. package/dist/dropdowns-HY56LZkp.cjs +2 -0
  197. package/dist/{dropdowns-CMt9-Jpa.cjs.map → dropdowns-HY56LZkp.cjs.map} +1 -1
  198. package/dist/dropdowns.cjs +1 -1
  199. package/dist/dropdowns.js +1 -1
  200. package/dist/{feedback-D29Er-TD.js → feedback-BfSdnvUS.js} +315 -312
  201. package/dist/feedback-BfSdnvUS.js.map +1 -0
  202. package/dist/feedback-DkQNQVdK.cjs +2 -0
  203. package/dist/feedback-DkQNQVdK.cjs.map +1 -0
  204. package/dist/feedback.cjs +1 -1
  205. package/dist/feedback.js +6 -6
  206. package/dist/{frameworkTexts-BgzNvcs2.js → frameworkTexts-B6oE8pMk.js} +1 -1
  207. package/dist/{frameworkTexts-BgzNvcs2.js.map → frameworkTexts-B6oE8pMk.js.map} +1 -1
  208. package/dist/{frameworkTexts-r4jSfpMt.cjs → frameworkTexts-C_9KZK_A.cjs} +1 -1
  209. package/dist/{frameworkTexts-r4jSfpMt.cjs.map → frameworkTexts-C_9KZK_A.cjs.map} +1 -1
  210. package/dist/index.cjs +1 -1
  211. package/dist/index.js +59 -59
  212. package/dist/{inputs-Bl7ssV3Q.js → inputs-BO7bjvyf.js} +115 -115
  213. package/dist/{inputs-Bl7ssV3Q.js.map → inputs-BO7bjvyf.js.map} +1 -1
  214. package/dist/{inputs-Dw9Uv8f4.cjs → inputs-vov7Kj6q.cjs} +2 -2
  215. package/dist/{inputs-Dw9Uv8f4.cjs.map → inputs-vov7Kj6q.cjs.map} +1 -1
  216. package/dist/inputs.cjs +1 -1
  217. package/dist/inputs.js +4 -4
  218. package/dist/layout-BvKpFxol.js +905 -0
  219. package/dist/layout-BvKpFxol.js.map +1 -0
  220. package/dist/layout-TFV-1uoQ.cjs +2 -0
  221. package/dist/layout-TFV-1uoQ.cjs.map +1 -0
  222. package/dist/layout.cjs +1 -1
  223. package/dist/layout.js +6 -6
  224. package/dist/{locale-uMMj57KX.js → locale-BNyzqXAU.js} +1 -1
  225. package/dist/{locale-uMMj57KX.js.map → locale-BNyzqXAU.js.map} +1 -1
  226. package/dist/{locale-LCAQDJCd.cjs → locale-BltrWJtd.cjs} +1 -1
  227. package/dist/{locale-LCAQDJCd.cjs.map → locale-BltrWJtd.cjs.map} +1 -1
  228. package/dist/media-BhRjHzpA.cjs +2 -0
  229. package/dist/{media-C4WtzWxU.cjs.map → media-BhRjHzpA.cjs.map} +1 -1
  230. package/dist/{media-D5zF3vH6.js → media-BuIEAgV-.js} +145 -143
  231. package/dist/{media-D5zF3vH6.js.map → media-BuIEAgV-.js.map} +1 -1
  232. package/dist/media.cjs +1 -1
  233. package/dist/media.js +3 -3
  234. package/dist/{overlays-D9_8GEse.cjs → overlays-CjEh_HWn.cjs} +2 -2
  235. package/dist/{overlays-D9_8GEse.cjs.map → overlays-CjEh_HWn.cjs.map} +1 -1
  236. package/dist/{overlays-BahWPCPW.js → overlays-D1SAF1F_.js} +3 -3
  237. package/dist/{overlays-BahWPCPW.js.map → overlays-D1SAF1F_.js.map} +1 -1
  238. package/dist/overlays.cjs +1 -1
  239. package/dist/overlays.js +5 -5
  240. package/dist/style-runtime.cjs +1 -1
  241. package/dist/style-runtime.js +1 -1
  242. package/dist/styles.css +1 -1
  243. package/dist/theme/MTheme.types.d.ts +5 -0
  244. package/dist/theme/index.d.ts +2 -1
  245. package/dist/theme/responsive.d.ts +18 -0
  246. package/dist/{theme-DLorpkJc.cjs → theme-CyIOdO9W.cjs} +2 -2
  247. package/dist/theme-CyIOdO9W.cjs.map +1 -0
  248. package/dist/{theme-BV4qkzZU.js → theme-Dl4EpdnW.js} +14 -2
  249. package/dist/theme-Dl4EpdnW.js.map +1 -0
  250. package/dist/theme.cjs +1 -1
  251. package/dist/theme.js +2 -2
  252. package/dist/{typography-BR2o3w3X.js → typography-BrIbvz08.js} +2 -2
  253. package/dist/{typography-BR2o3w3X.js.map → typography-BrIbvz08.js.map} +1 -1
  254. package/dist/{typography-BobOsDbn.cjs → typography-DHjL4YTH.cjs} +2 -2
  255. package/dist/{typography-BobOsDbn.cjs.map → typography-DHjL4YTH.cjs.map} +1 -1
  256. package/dist/typography.cjs +1 -1
  257. package/dist/typography.js +5 -5
  258. package/package.json +1 -1
  259. package/dist/MAvatar-nLlGAprq.cjs +0 -2
  260. package/dist/MAvatar-nLlGAprq.cjs.map +0 -1
  261. package/dist/MAvatar-tpFpLFPO.js +0 -55
  262. package/dist/MAvatar-tpFpLFPO.js.map +0 -1
  263. package/dist/MBadge-UTUlEAik.js +0 -17
  264. package/dist/MBadge-UTUlEAik.js.map +0 -1
  265. package/dist/MBadge-imAk1gYn.cjs +0 -2
  266. package/dist/MBadge-imAk1gYn.cjs.map +0 -1
  267. package/dist/MButton-BJdrNg2I.js +0 -111
  268. package/dist/MButton-CX8SV1m0.cjs +0 -2
  269. package/dist/MHeading-CMGPJwul.js +0 -19
  270. package/dist/MHeading-CMGPJwul.js.map +0 -1
  271. package/dist/MHeading-sW0j7ssI.cjs +0 -2
  272. package/dist/MHeading-sW0j7ssI.cjs.map +0 -1
  273. package/dist/MImage-3UVzZIgA.js +0 -49
  274. package/dist/MImage-3UVzZIgA.js.map +0 -1
  275. package/dist/MImage-BHgzEHMO.cjs +0 -2
  276. package/dist/MImage-BHgzEHMO.cjs.map +0 -1
  277. package/dist/MInline-DUzpnZoB.cjs +0 -2
  278. package/dist/MInline-DUzpnZoB.cjs.map +0 -1
  279. package/dist/MInline-cTj903A4.js +0 -39
  280. package/dist/MInline-cTj903A4.js.map +0 -1
  281. package/dist/MLink-CBmT8zaD.js +0 -29
  282. package/dist/MLink-D10DD8oX.cjs +0 -2
  283. package/dist/MStack-BKDsNitR.cjs +0 -2
  284. package/dist/MStack-BKDsNitR.cjs.map +0 -1
  285. package/dist/MStack-XTsT_kLJ.js +0 -39
  286. package/dist/MStack-XTsT_kLJ.js.map +0 -1
  287. package/dist/MSubText-BIaYgtU4.cjs +0 -2
  288. package/dist/MSubText-BIaYgtU4.cjs.map +0 -1
  289. package/dist/MSubText-uoh7Qx7S.js +0 -15
  290. package/dist/MSubText-uoh7Qx7S.js.map +0 -1
  291. package/dist/MSurface-B1LXFczo.js +0 -39
  292. package/dist/MSurface-B1LXFczo.js.map +0 -1
  293. package/dist/MSurface-BgZ86iYn.cjs +0 -2
  294. package/dist/MSurface-BgZ86iYn.cjs.map +0 -1
  295. package/dist/MTag-BVo9zFIj.cjs +0 -2
  296. package/dist/MTag-BVo9zFIj.cjs.map +0 -1
  297. package/dist/MTag-Bq9b51kE.js +0 -37
  298. package/dist/MTag-Bq9b51kE.js.map +0 -1
  299. package/dist/MText-B4koGfYi.cjs +0 -2
  300. package/dist/MText-B4koGfYi.cjs.map +0 -1
  301. package/dist/MText-CKyns1SE.js +0 -43
  302. package/dist/MText-CKyns1SE.js.map +0 -1
  303. package/dist/controls-BFmZuejK.cjs +0 -2
  304. package/dist/data-B1hbWMzU.js.map +0 -1
  305. package/dist/data-BooVW8q_.cjs +0 -2
  306. package/dist/data-BooVW8q_.cjs.map +0 -1
  307. package/dist/dropdowns-CMt9-Jpa.cjs +0 -2
  308. package/dist/feedback-B-PVXL68.cjs +0 -2
  309. package/dist/feedback-B-PVXL68.cjs.map +0 -1
  310. package/dist/feedback-D29Er-TD.js.map +0 -1
  311. package/dist/layout-C1QKiv2J.cjs +0 -2
  312. package/dist/layout-C1QKiv2J.cjs.map +0 -1
  313. package/dist/layout-UP_12LRD.js +0 -817
  314. package/dist/layout-UP_12LRD.js.map +0 -1
  315. package/dist/media-C4WtzWxU.cjs +0 -2
  316. package/dist/theme-BV4qkzZU.js.map +0 -1
  317. package/dist/theme-DLorpkJc.cjs.map +0 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Modern React UI framework with a sharp admin aesthetic, theming system, and production-ready components.
4
4
 
5
5
  - npm: `@banzamel/mineralui`
6
- - version: `1.1.1`
6
+ - version: `1.3.0`
7
7
  - peer dependencies: `react >= 19`, `react-dom >= 19`
8
8
  - repository: `https://github.com/Banzamel/mineralui`
9
9
  - homepage: `https://mineralui.io`
@@ -0,0 +1,57 @@
1
+ import { n as e } from "./theme-Dl4EpdnW.js";
2
+ import { t } from "./cn-YER3QsV1.js";
3
+ import { t as n } from "./useInteractionEffect-DtpbVd77.js";
4
+ import { n as r } from "./MButton-pSNx-6UK.js";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/components/media/MAvatar/MAvatar.tsx
7
+ function o(e, t) {
8
+ if (t) return t.slice(0, 2).toUpperCase();
9
+ if (!e) return "?";
10
+ let n = e.trim().split(/\s+/).filter(Boolean);
11
+ return n.length === 0 ? "?" : n.length === 1 ? n[0].slice(0, 2).toUpperCase() : `${n[0][0]}${n[1][0]}`.toUpperCase();
12
+ }
13
+ function s({ src: s, alt: c, name: l, initials: u, size: d = "md", shape: f = "circle", hidden: p, color: m, badge: h, badgeColor: g, badgePulsing: _ = !1, backgroundColor: v, clickEffect: y, rippleColor: b, skeleton: x = !1, className: S, style: C, onPointerDown: w, ...T }) {
14
+ let E = o(l, u), D = typeof T.onClick == "function" || T.role === "button" || T.tabIndex !== void 0, { effectClassName: O, effectLayer: k, handlePointerDown: A } = n({
15
+ effect: y ?? (D ? "ripple" : "none"),
16
+ disabled: !D || x,
17
+ color: b
18
+ }), j = typeof d == "number" ? {
19
+ width: `${d}px`,
20
+ height: `${d}px`,
21
+ ...C,
22
+ ...v && !x ? { backgroundColor: v } : {}
23
+ } : {
24
+ ...C,
25
+ ...v && !x ? { backgroundColor: v } : {}
26
+ };
27
+ return /* @__PURE__ */ a("span", {
28
+ className: t("avatar", typeof d == "string" && d, f, x && "skeleton animate", D && !x && "interactive", O, !x && m && `color-${m}`, S),
29
+ style: j,
30
+ "aria-label": x ? "Loading" : c ?? l ?? "MAvatar",
31
+ onPointerDown: (e) => {
32
+ A(e), w?.(e);
33
+ },
34
+ ...e(p),
35
+ ...T,
36
+ children: [
37
+ k,
38
+ r({
39
+ badge: h,
40
+ badgeColor: g,
41
+ badgePulsing: _
42
+ }),
43
+ x ? null : s ? /* @__PURE__ */ i("img", {
44
+ src: s,
45
+ alt: c ?? l ?? "",
46
+ className: "image"
47
+ }) : /* @__PURE__ */ i("span", {
48
+ className: "fallback",
49
+ children: E
50
+ })
51
+ ]
52
+ });
53
+ }
54
+ //#endregion
55
+ export { s as t };
56
+
57
+ //# sourceMappingURL=MAvatar-B4Y9P5ua.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MAvatar-B4Y9P5ua.js","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarProps} from './MAvatar.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing = false,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;AAQA,SAAS,EAAoB,GAAe,GAAmB;AAC3D,KAAI,EAAU,QAAO,EAAS,MAAM,GAAG,EAAE,CAAC,aAAa;AACvD,KAAI,CAAC,EAAM,QAAO;CAClB,IAAM,IAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ;AAGtD,QAFI,EAAM,WAAW,IAAU,MAC3B,EAAM,WAAW,IAAU,EAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,GAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa;;AAIvD,SAAgB,EAAQ,EACpB,QACA,QACA,SACA,aACA,UAAO,MACP,WAAQ,UACR,WACA,UACA,UACA,eACA,kBAAe,IACf,oBACA,gBACA,gBACA,cAAW,IACX,cACA,UACA,kBACA,GAAG,KACU;CACb,IAAM,IAAmB,EAAoB,GAAM,EAAS,EACtD,IAAgB,OAAO,EAAK,WAAY,cAAc,EAAK,SAAS,YAAY,EAAK,aAAa,KAAA,GAClG,EAAC,oBAAiB,gBAAa,yBAAqB,EAAsC;EAC5F,QAAQ,MAAgB,IAAgB,WAAW;EACnD,UAAU,CAAC,KAAiB;EAC5B,OAAO;EACV,CAAC,EACI,IACF,OAAO,KAAS,WACV;EACI,OAAO,GAAG,EAAK;EACf,QAAQ,GAAG,EAAK;EAChB,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D,GACD;EACI,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D;AAEX,QACI,kBAAC,QAAD;EACI,WAAW,EACP,UACA,OAAO,KAAS,YAAY,GAC5B,GACA,KAAY,oBACZ,KAAiB,CAAC,KAAY,eAC9B,GACA,CAAC,KAAY,KAAS,SAAS,KAC/B,EACH;EACD,OAAO;EACP,cAAY,IAAW,YAAa,KAAO,KAAQ;EACnD,gBAAgB,MAAU;AAEtB,GADA,EAAkB,EAAM,EACxB,IAAgB,EAAM;;EAE1B,GAAI,EAAe,EAAO;EAC1B,GAAI;YAlBR;GAoBK;GACA,EAAmB;IAAC;IAAO;IAAY;IAAa,CAAC;GACrD,IAAW,OAAO,IACf,kBAAC,OAAD;IAAU;IAAK,KAAK,KAAO,KAAQ;IAAI,WAAW;IAAW,CAAA,GAE7D,kBAAC,QAAD;IAAM,WAAW;cAAa;IAAwB,CAAA;GAEvD"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-CyIOdO9W.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-DnEfbCrX.cjs`),r=require(`./MButton-Rg85cgO1.cjs`);let i=require(`react/jsx-runtime`);function a(e,t){if(t)return t.slice(0,2).toUpperCase();if(!e)return`?`;let n=e.trim().split(/\s+/).filter(Boolean);return n.length===0?`?`:n.length===1?n[0].slice(0,2).toUpperCase():`${n[0][0]}${n[1][0]}`.toUpperCase()}function o({src:o,alt:s,name:c,initials:l,size:u=`md`,shape:d=`circle`,hidden:f,color:p,badge:m,badgeColor:h,badgePulsing:g=!1,backgroundColor:_,clickEffect:v,rippleColor:y,skeleton:b=!1,className:x,style:S,onPointerDown:C,...w}){let T=a(c,l),E=typeof w.onClick==`function`||w.role===`button`||w.tabIndex!==void 0,{effectClassName:D,effectLayer:O,handlePointerDown:k}=n.t({effect:v??(E?`ripple`:`none`),disabled:!E||b,color:y}),A=typeof u==`number`?{width:`${u}px`,height:`${u}px`,...S,..._&&!b?{backgroundColor:_}:{}}:{...S,..._&&!b?{backgroundColor:_}:{}};return(0,i.jsxs)(`span`,{className:t.t(`avatar`,typeof u==`string`&&u,d,b&&`skeleton animate`,E&&!b&&`interactive`,D,!b&&p&&`color-${p}`,x),style:A,"aria-label":b?`Loading`:s??c??`MAvatar`,onPointerDown:e=>{k(e),C?.(e)},...e.n(f),...w,children:[O,r.n({badge:m,badgeColor:h,badgePulsing:g}),b?null:o?(0,i.jsx)(`img`,{src:o,alt:s??c??``,className:`image`}):(0,i.jsx)(`span`,{className:`fallback`,children:T})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=MAvatar-D4ZC9wml.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MAvatar-D4ZC9wml.cjs","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarProps} from './MAvatar.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing = false,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":"+LAQA,SAAS,EAAoB,EAAe,EAAmB,CAC3D,GAAI,EAAU,OAAO,EAAS,MAAM,EAAG,EAAE,CAAC,aAAa,CACvD,GAAI,CAAC,EAAM,MAAO,IAClB,IAAM,EAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ,CAGtD,OAFI,EAAM,SAAW,EAAU,IAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,EAAE,CAAC,aAAa,CAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa,CAIvD,SAAgB,EAAQ,CACpB,MACA,MACA,OACA,WACA,OAAO,KACP,QAAQ,SACR,SACA,QACA,QACA,aACA,eAAe,GACf,kBACA,cACA,cACA,WAAW,GACX,YACA,QACA,gBACA,GAAG,GACU,CACb,IAAM,EAAmB,EAAoB,EAAM,EAAS,CACtD,EAAgB,OAAO,EAAK,SAAY,YAAc,EAAK,OAAS,UAAY,EAAK,WAAa,IAAA,GAClG,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAsC,CAC5F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CACI,EACF,OAAO,GAAS,SACV,CACI,MAAO,GAAG,EAAK,IACf,OAAQ,GAAG,EAAK,IAChB,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CACD,CACI,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CAEX,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,SACA,OAAO,GAAS,UAAY,EAC5B,EACA,GAAY,mBACZ,GAAiB,CAAC,GAAY,cAC9B,EACA,CAAC,GAAY,GAAS,SAAS,IAC/B,EACH,CACD,MAAO,EACP,aAAY,EAAW,UAAa,GAAO,GAAQ,UACnD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlBR,CAoBK,EACA,EAAA,EAAmB,CAAC,QAAO,aAAY,eAAa,CAAC,CACrD,EAAW,KAAO,GACf,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,IAAK,GAAO,GAAQ,GAAI,UAAW,QAAW,CAAA,EAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,oBAAa,EAAwB,CAAA,CAEvD"}
@@ -0,0 +1,19 @@
1
+ import { n as e } from "./theme-Dl4EpdnW.js";
2
+ import { t } from "./cn-YER3QsV1.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/components/feedback/MBadge/MBadge.tsx
5
+ function i({ color: i = "primary", size: a = "md", hidden: o, pulsing: s = !1, rounded: c = !1, fullWidth: l = !1, icon: u, className: d, children: f, ...p }) {
6
+ return /* @__PURE__ */ r("span", {
7
+ className: t("badge", `color-${i}`, a, s && "pulsing", c && "rounded", l && "full-width", d),
8
+ ...e(o),
9
+ ...p,
10
+ children: [u && /* @__PURE__ */ n("span", {
11
+ className: "badge-icon",
12
+ children: u
13
+ }), f]
14
+ });
15
+ }
16
+ //#endregion
17
+ export { i as t };
18
+
19
+ //# sourceMappingURL=MBadge-BaeeIRhu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MBadge-BaeeIRhu.js","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx"],"sourcesContent":["import type {MBadgeProps} from './MBadge.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MBadge.css'\n\n// Render a compact semantic label for status and metadata.\nexport function MBadge({\n color = 'primary',\n size = 'md',\n hidden,\n pulsing = false,\n rounded = false,\n fullWidth = false,\n icon,\n className,\n children,\n ...rest\n}: MBadgeProps) {\n return (\n <span\n className={cn(\n 'badge',\n `color-${color}`,\n size,\n pulsing && 'pulsing',\n rounded && 'rounded',\n fullWidth && 'full-width',\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"badge-icon\">{icon}</span>}\n {children}\n </span>\n )\n}\n"],"mappings":";;;;AAMA,SAAgB,EAAO,EACnB,WAAQ,WACR,UAAO,MACP,WACA,aAAU,IACV,aAAU,IACV,eAAY,IACZ,SACA,cACA,aACA,GAAG,KACS;AACZ,QACI,kBAAC,QAAD;EACI,WAAW,EACP,SACA,SAAS,KACT,GACA,KAAW,WACX,KAAW,WACX,KAAa,cACb,EACH;EACD,GAAI,EAAe,EAAO;EAC1B,GAAI;YAXR,CAaK,KAAQ,kBAAC,QAAD;GAAM,WAAU;aAAc;GAAY,CAAA,EAClD,EACE"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-CyIOdO9W.cjs`),t=require(`./cn-CU5TNITO.cjs`);let n=require(`react/jsx-runtime`);function r({color:r=`primary`,size:i=`md`,hidden:a,pulsing:o=!1,rounded:s=!1,fullWidth:c=!1,icon:l,className:u,children:d,...f}){return(0,n.jsxs)(`span`,{className:t.t(`badge`,`color-${r}`,i,o&&`pulsing`,s&&`rounded`,c&&`full-width`,u),...e.n(a),...f,children:[l&&(0,n.jsx)(`span`,{className:`badge-icon`,children:l}),d]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=MBadge-DJuqtMP7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MBadge-DJuqtMP7.cjs","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx"],"sourcesContent":["import type {MBadgeProps} from './MBadge.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MBadge.css'\n\n// Render a compact semantic label for status and metadata.\nexport function MBadge({\n color = 'primary',\n size = 'md',\n hidden,\n pulsing = false,\n rounded = false,\n fullWidth = false,\n icon,\n className,\n children,\n ...rest\n}: MBadgeProps) {\n return (\n <span\n className={cn(\n 'badge',\n `color-${color}`,\n size,\n pulsing && 'pulsing',\n rounded && 'rounded',\n fullWidth && 'full-width',\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"badge-icon\">{icon}</span>}\n {children}\n </span>\n )\n}\n"],"mappings":"0GAMA,SAAgB,EAAO,CACnB,QAAQ,UACR,OAAO,KACP,SACA,UAAU,GACV,UAAU,GACV,YAAY,GACZ,OACA,YACA,WACA,GAAG,GACS,CACZ,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,QACA,SAAS,IACT,EACA,GAAW,UACX,GAAW,UACX,GAAa,aACb,EACH,CACD,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAXR,CAaK,IAAQ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAY,CAAA,CAClD,EACE"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-CyIOdO9W.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-DnEfbCrX.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.createContext)(null);function o(){return(0,r.useContext)(a)}function s({color:e=`primary`,size:n=`md`,label:r=`Loading`,className:a,style:o,...s}){let c=typeof n==`number`?{width:`${n}px`,height:`${n}px`,...o}:o||{};return(0,i.jsx)(`span`,{className:t.t(`spinner`,typeof n==`string`&&n,e&&`color-${e}`,a),style:c,role:`status`,"aria-label":r,...s})}function c(e){return e!=null&&e!==!1}function l({badge:e,badgeColor:t,badgePulsing:n}){return c(e)}function u({badge:e,badgeColor:n=`primary`,badgePulsing:r=!1,className:a}){if(!l({badge:e,badgeColor:n,badgePulsing:r}))return null;let o=e===!0;return(0,i.jsx)(`span`,{className:t.t(`overlay-badge`,`color-${n}`,o&&`dot`,r&&`pulsing`,a),"aria-hidden":`true`,children:o?null:e})}var d=(0,r.forwardRef)(function({component:r,to:a,href:c,variant:l,size:d,color:f,hidden:p,fullWidth:m=!1,rounded:h=!1,shape:g,iconOnly:_=!1,loading:v=!1,active:y=!1,pulsing:b=!1,badge:x,badgeColor:S,badgePulsing:C=!1,startIcon:w,endIcon:T,clickEffect:E=`ripple`,rippleColor:D,className:O,style:k,children:A,disabled:j=!1,type:M=`button`,onClick:N,onPointerDown:P,onKeyDown:F,...I},L){let R=r??`button`,z=!r||R===`button`,B=o(),V=l??B?.variant??`filled`,H=d??B?.size??`md`,U=f??B?.color??`primary`,W=j||v,{effectClassName:G,effectLayer:K,handlePointerDown:q,triggerEffect:J}=n.t({effect:E,disabled:W,centered:_,color:D});function Y(e){if(W&&!z){e.preventDefault();return}N?.(e)}return(0,i.jsxs)(R,{ref:L,type:z?M:void 0,to:r?W?void 0:a:void 0,href:r?W?void 0:c:void 0,className:t.t(`button`,V,H,`color-${U}`,m&&`full-width`,h&&`rounded`,g===`circle`&&`circle`,_&&`icon-only`,v&&`loading`,y&&`active`,b&&`pulsing`,W&&`disabled`,G,O),style:k,disabled:z?W:void 0,"aria-busy":v||void 0,"aria-disabled":!z&&W?!0:void 0,onClick:Y,onPointerDown:e=>{q(e),P?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&J(e.currentTarget),F?.(e)},...e.n(p),...I,children:[K,u({badge:x,badgeColor:S,badgePulsing:C}),v&&(0,i.jsx)(s,{size:`sm`,color:`inherit`,"aria-hidden":`true`}),w&&(0,i.jsx)(`span`,{className:`icon start`,children:w}),A&&(0,i.jsx)(`span`,{className:`content`,children:A}),T&&(0,i.jsx)(`span`,{className:`icon end`,children:T})]})});Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
2
+ //# sourceMappingURL=MButton-Rg85cgO1.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MButton-CX8SV1m0.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"MButton-Rg85cgO1.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { n as e } from "./theme-Dl4EpdnW.js";
2
+ import { t } from "./cn-YER3QsV1.js";
3
+ import { t as n } from "./useInteractionEffect-DtpbVd77.js";
4
+ import { createContext as r, forwardRef as i, useContext as a } from "react";
5
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ //#region src/components/controls/MButtonGroup/MButtonGroupContext.ts
7
+ var c = r(null);
8
+ function l() {
9
+ return a(c);
10
+ }
11
+ //#endregion
12
+ //#region src/components/feedback/MSpinner/MSpinner.tsx
13
+ function u({ color: e = "primary", size: n = "md", label: r = "Loading", className: i, style: a, ...s }) {
14
+ let c = typeof n == "number" ? {
15
+ width: `${n}px`,
16
+ height: `${n}px`,
17
+ ...a
18
+ } : a || {};
19
+ return /* @__PURE__ */ o("span", {
20
+ className: t("spinner", typeof n == "string" && n, e && `color-${e}`, i),
21
+ style: c,
22
+ role: "status",
23
+ "aria-label": r,
24
+ ...s
25
+ });
26
+ }
27
+ //#endregion
28
+ //#region src/utils/overlayBadge.tsx
29
+ function d(e) {
30
+ return e != null && e !== !1;
31
+ }
32
+ function f({ badge: e, badgeColor: t, badgePulsing: n }) {
33
+ return d(e);
34
+ }
35
+ function p({ badge: e, badgeColor: n = "primary", badgePulsing: r = !1, className: i }) {
36
+ if (!f({
37
+ badge: e,
38
+ badgeColor: n,
39
+ badgePulsing: r
40
+ })) return null;
41
+ let a = e === !0;
42
+ return /* @__PURE__ */ o("span", {
43
+ className: t("overlay-badge", `color-${n}`, a && "dot", r && "pulsing", i),
44
+ "aria-hidden": "true",
45
+ children: a ? null : e
46
+ });
47
+ }
48
+ //#endregion
49
+ //#region src/components/controls/MButton/MButton.tsx
50
+ var m = i(function({ component: r, to: i, href: a, variant: c, size: d, color: f, hidden: m, fullWidth: h = !1, rounded: g = !1, shape: _, iconOnly: v = !1, loading: y = !1, active: b = !1, pulsing: x = !1, badge: S, badgeColor: C, badgePulsing: w = !1, startIcon: T, endIcon: E, clickEffect: D = "ripple", rippleColor: O, className: k, style: A, children: j, disabled: M = !1, type: N = "button", onClick: P, onPointerDown: F, onKeyDown: I, ...L }, R) {
51
+ let z = r ?? "button", B = !r || z === "button", V = l(), H = c ?? V?.variant ?? "filled", U = d ?? V?.size ?? "md", W = f ?? V?.color ?? "primary", G = M || y, { effectClassName: K, effectLayer: q, handlePointerDown: J, triggerEffect: Y } = n({
52
+ effect: D,
53
+ disabled: G,
54
+ centered: v,
55
+ color: O
56
+ });
57
+ function X(e) {
58
+ if (G && !B) {
59
+ e.preventDefault();
60
+ return;
61
+ }
62
+ P?.(e);
63
+ }
64
+ return /* @__PURE__ */ s(z, {
65
+ ref: R,
66
+ type: B ? N : void 0,
67
+ to: r ? G ? void 0 : i : void 0,
68
+ href: r ? G ? void 0 : a : void 0,
69
+ className: t("button", H, U, `color-${W}`, h && "full-width", g && "rounded", _ === "circle" && "circle", v && "icon-only", y && "loading", b && "active", x && "pulsing", G && "disabled", K, k),
70
+ style: A,
71
+ disabled: B ? G : void 0,
72
+ "aria-busy": y || void 0,
73
+ "aria-disabled": !B && G ? !0 : void 0,
74
+ onClick: X,
75
+ onPointerDown: (e) => {
76
+ J(e), F?.(e);
77
+ },
78
+ onKeyDown: (e) => {
79
+ (e.key === " " || e.key === "Enter") && Y(e.currentTarget), I?.(e);
80
+ },
81
+ ...e(m),
82
+ ...L,
83
+ children: [
84
+ q,
85
+ p({
86
+ badge: S,
87
+ badgeColor: C,
88
+ badgePulsing: w
89
+ }),
90
+ y && /* @__PURE__ */ o(u, {
91
+ size: "sm",
92
+ color: "inherit",
93
+ "aria-hidden": "true"
94
+ }),
95
+ T && /* @__PURE__ */ o("span", {
96
+ className: "icon start",
97
+ children: T
98
+ }),
99
+ j && /* @__PURE__ */ o("span", {
100
+ className: "content",
101
+ children: j
102
+ }),
103
+ E && /* @__PURE__ */ o("span", {
104
+ className: "icon end",
105
+ children: E
106
+ })
107
+ ]
108
+ });
109
+ });
110
+ //#endregion
111
+ export { c as i, p as n, u as r, m as t };
112
+
113
+ //# sourceMappingURL=MButton-pSNx-6UK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MButton-BJdrNg2I.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"MButton-pSNx-6UK.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
@@ -56,4 +56,4 @@ var s = n(function({ checked: n, defaultChecked: s, indeterminate: c = !1, name:
56
56
  //#endregion
57
57
  export { s as t };
58
58
 
59
- //# sourceMappingURL=MCheckbox-DfCD0EtS.js.map
59
+ //# sourceMappingURL=MCheckbox-B7SpcD4H.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCheckbox-DfCD0EtS.js","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":";;;;;AAQA,IAAa,IAAY,EAA6C,SAClE,EACI,YACA,mBACA,mBAAgB,IAChB,SACA,OACA,UACA,cAAW,IACX,UAAO,MACP,WAAQ,WACR,UACA,mBAAgB,SAChB,WAAQ,IACR,cACA,aACA,iBAAc,UACd,gBACA,cACA,YAEJ,GACF;CACE,IAAM,IAAc,EAAyB,KAAK,EAC5C,IAAY,KAA6C,GACzD,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAsC;EAC3G,QAAQ;EACR;EACA,UAAU;EACV,OAAO;EACV,CAAC;AAGF,SAAgB;AACZ,EAAI,EAAS,YACT,EAAS,QAAQ,gBAAgB;IAEtC,CAAC,GAAe,EAAS,CAAC;CAE7B,IAAM,IAAW,KAAS,CAAC,CAAC;AAE5B,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,YAAY,EAAU;EAAS;YAAlD,CACI,kBAAC,SAAD;GAAO,WAAW,EAAG,SAAS,GAAM,MAAkB,UAAU,cAAc,KAAY,WAAW;aAArG,CACI,kBAAC,QAAD;IACI,WAAW,EAAG,OAAO,SAAS,KAAS,KAAY,SAAS,EAAgB;IAC5E,eAAe;cAFnB;KAIK;KACD,kBAAC,SAAD;MACI,KAAK;MACL,MAAK;MACI;MACO;MACV;MACF;MACG;MACG;MACA;MACV,YAAY,MAAU;AAClB,QAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc,cAAwC;;MAGlF,WAAU;MACV,gBAAc,KAAY,KAAA;MAC5B,CAAA;KACF,kBAAC,QAAD,EAAM,WAAU,sBAAuB,CAAA;KACpC;OACN,KAAS,kBAAC,QAAD;IAAM,WAAW,EAAG,cAAc,KAAY,QAAQ;cAAG;IAAa,CAAA,CAC5E;MACP,KACG,kBAAC,QAAD;GAAM,WAAU;GAAc,MAAK;aAC9B;GACE,CAAA,CAET;;EAEZ"}
1
+ {"version":3,"file":"MCheckbox-B7SpcD4H.js","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":";;;;;AAQA,IAAa,IAAY,EAA6C,SAClE,EACI,YACA,mBACA,mBAAgB,IAChB,SACA,OACA,UACA,cAAW,IACX,UAAO,MACP,WAAQ,WACR,UACA,mBAAgB,SAChB,WAAQ,IACR,cACA,aACA,iBAAc,UACd,gBACA,cACA,YAEJ,GACF;CACE,IAAM,IAAc,EAAyB,KAAK,EAC5C,IAAY,KAA6C,GACzD,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAsC;EAC3G,QAAQ;EACR;EACA,UAAU;EACV,OAAO;EACV,CAAC;AAGF,SAAgB;AACZ,EAAI,EAAS,YACT,EAAS,QAAQ,gBAAgB;IAEtC,CAAC,GAAe,EAAS,CAAC;CAE7B,IAAM,IAAW,KAAS,CAAC,CAAC;AAE5B,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,YAAY,EAAU;EAAS;YAAlD,CACI,kBAAC,SAAD;GAAO,WAAW,EAAG,SAAS,GAAM,MAAkB,UAAU,cAAc,KAAY,WAAW;aAArG,CACI,kBAAC,QAAD;IACI,WAAW,EAAG,OAAO,SAAS,KAAS,KAAY,SAAS,EAAgB;IAC5E,eAAe;cAFnB;KAIK;KACD,kBAAC,SAAD;MACI,KAAK;MACL,MAAK;MACI;MACO;MACV;MACF;MACG;MACG;MACA;MACV,YAAY,MAAU;AAClB,QAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc,cAAwC;;MAGlF,WAAU;MACV,gBAAc,KAAY,KAAA;MAC5B,CAAA;KACF,kBAAC,QAAD,EAAM,WAAU,sBAAuB,CAAA;KACpC;OACN,KAAS,kBAAC,QAAD;IAAM,WAAW,EAAG,cAAc,KAAY,QAAQ;cAAG;IAAa,CAAA,CAC5E;MACP,KACG,kBAAC,QAAD;GAAM,WAAU;GAAc,MAAK;aAC9B;GACE,CAAA,CAET;;EAEZ"}
@@ -1,2 +1,2 @@
1
1
  const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-DnEfbCrX.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.forwardRef)(function({checked:i,defaultChecked:a,indeterminate:o=!1,name:s,id:c,value:l,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,error:h=!1,errorText:g,onChange:_,clickEffect:v=`ripple`,rippleColor:y,className:b,style:x},S){let C=(0,n.useRef)(null),w=S??C,{effectClassName:T,effectLayer:E,handlePointerDown:D,triggerEffect:O}=t.t({effect:v,disabled:u,centered:!0,color:y});(0,n.useEffect)(()=>{w.current&&(w.current.indeterminate=o)},[o,w]);let k=h||!!g;return(0,r.jsxs)(`div`,{className:e.t(`checkbox`,b),style:x,children:[(0,r.jsxs)(`label`,{className:e.t(`label`,d,m===`left`&&`label-left`,u&&`disabled`),children:[(0,r.jsxs)(`span`,{className:e.t(`box`,`color-${f}`,k&&`error`,T),onPointerDown:D,children:[E,(0,r.jsx)(`input`,{ref:w,type:`checkbox`,checked:i,defaultChecked:a,name:s,id:c,value:l,disabled:u,onChange:_,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&O(e.currentTarget.parentElement)},className:`input`,"aria-invalid":k||void 0}),(0,r.jsx)(`span`,{className:`indeterminate-mark`})]}),p&&(0,r.jsx)(`span`,{className:e.t(`label-text`,k&&`error`),children:p})]}),g&&(0,r.jsx)(`span`,{className:`field-error`,role:`alert`,children:g})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=MCheckbox-CAZA97h7.cjs.map
2
+ //# sourceMappingURL=MCheckbox-Bea3orrs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCheckbox-CAZA97h7.cjs","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":"4IAQA,IAAa,GAAA,EAAA,EAAA,YAAyD,SAClE,CACI,UACA,iBACA,gBAAgB,GAChB,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,QAAQ,GACR,YACA,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,GAAA,EAAA,EAAA,QAAuC,KAAK,CAC5C,EAAY,GAA6C,EACzD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,EAGF,EAAA,EAAA,eAAgB,CACR,EAAS,UACT,EAAS,QAAQ,cAAgB,IAEtC,CAAC,EAAe,EAAS,CAAC,CAE7B,IAAM,EAAW,GAAS,CAAC,CAAC,EAE5B,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,WAAY,EAAU,CAAS,iBAAlD,EACI,EAAA,EAAA,MAAC,QAAD,CAAO,UAAW,EAAA,EAAG,QAAS,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAW,UAArG,EACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,MAAO,SAAS,IAAS,GAAY,QAAS,EAAgB,CAC5E,cAAe,WAFnB,CAIK,GACD,EAAA,EAAA,KAAC,QAAD,CACI,IAAK,EACL,KAAK,WACI,UACO,iBACV,OACF,KACG,QACG,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,eAAc,GAAY,IAAA,GAC5B,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,EAAG,aAAc,GAAY,QAAQ,UAAG,EAAa,CAAA,CAC5E,GACP,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAET,IAEZ"}
1
+ {"version":3,"file":"MCheckbox-Bea3orrs.cjs","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":"4IAQA,IAAa,GAAA,EAAA,EAAA,YAAyD,SAClE,CACI,UACA,iBACA,gBAAgB,GAChB,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,QAAQ,GACR,YACA,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,GAAA,EAAA,EAAA,QAAuC,KAAK,CAC5C,EAAY,GAA6C,EACzD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,EAGF,EAAA,EAAA,eAAgB,CACR,EAAS,UACT,EAAS,QAAQ,cAAgB,IAEtC,CAAC,EAAe,EAAS,CAAC,CAE7B,IAAM,EAAW,GAAS,CAAC,CAAC,EAE5B,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,WAAY,EAAU,CAAS,iBAAlD,EACI,EAAA,EAAA,MAAC,QAAD,CAAO,UAAW,EAAA,EAAG,QAAS,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAW,UAArG,EACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,MAAO,SAAS,IAAS,GAAY,QAAS,EAAgB,CAC5E,cAAe,WAFnB,CAIK,GACD,EAAA,EAAA,KAAC,QAAD,CACI,IAAK,EACL,KAAK,WACI,UACO,iBACV,OACF,KACG,QACG,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,eAAc,GAAY,IAAA,GAC5B,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,EAAG,aAAc,GAAY,QAAQ,UAAG,EAAa,CAAA,CAC5E,GACP,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAET,IAEZ"}
@@ -433,4 +433,4 @@ function q() {
433
433
  //#endregion
434
434
  export { i as _, W as a, S as c, _ as d, v as f, e as g, n as h, G as i, C as l, t as m, K as n, x as o, f as p, U as r, b as s, q as t, y as u, a as v, r as y };
435
435
 
436
- //# sourceMappingURL=MCookieBootstrap-BhTMPs8T.js.map
436
+ //# sourceMappingURL=MCookieBootstrap-CNYLvKjW.js.map