@banzamel/mineralui 1.7.1 → 1.8.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 (408) hide show
  1. package/dist/{MAvatar-BHASnoyu.js → MAvatar-BcayQCnp.js} +2 -2
  2. package/dist/{MAvatar-BHASnoyu.js.map → MAvatar-BcayQCnp.js.map} +1 -1
  3. package/dist/{MAvatar-CV3xJOmx.cjs → MAvatar-BgevCYi3.cjs} +2 -2
  4. package/dist/{MAvatar-CV3xJOmx.cjs.map → MAvatar-BgevCYi3.cjs.map} +1 -1
  5. package/dist/MButton-8UCydOik.cjs +2 -0
  6. package/dist/MButton-8UCydOik.cjs.map +1 -0
  7. package/dist/{MButton-y9qXhhGt.js → MButton-DZLLrtQb.js} +38 -36
  8. package/dist/MButton-DZLLrtQb.js.map +1 -0
  9. package/dist/{MCheckbox-B-nT2OBE.js → MCheckbox-B7SpcD4H.js} +1 -1
  10. package/dist/{MCheckbox-B-nT2OBE.js.map → MCheckbox-B7SpcD4H.js.map} +1 -1
  11. package/dist/{MCheckbox-CdDWGVp3.cjs → MCheckbox-Dn3p_9-1.cjs} +2 -2
  12. package/dist/{MCheckbox-CdDWGVp3.cjs.map → MCheckbox-Dn3p_9-1.cjs.map} +1 -1
  13. package/dist/{MCookieBootstrap-3-wyz3Dk.cjs → MCookieBootstrap-BUqtJO3m.cjs} +1 -1
  14. package/dist/{MCookieBootstrap-3-wyz3Dk.cjs.map → MCookieBootstrap-BUqtJO3m.cjs.map} +1 -1
  15. package/dist/{MCookieBootstrap-CGvYxIK8.js → MCookieBootstrap-Btt49Iuq.js} +1 -1
  16. package/dist/{MCookieBootstrap-CGvYxIK8.js.map → MCookieBootstrap-Btt49Iuq.js.map} +1 -1
  17. package/dist/{MDataTable-C3v15no3.cjs → MDataTable-95_Mb6jE.cjs} +2 -2
  18. package/dist/MDataTable-95_Mb6jE.cjs.map +1 -0
  19. package/dist/{MDataTable-C_XiTGTF.js → MDataTable-DxDS5auV.js} +5 -5
  20. package/dist/MDataTable-DxDS5auV.js.map +1 -0
  21. package/dist/{MDrawer-W2WQs1sM.js → MDrawer-CXNHYwPO.js} +2 -2
  22. package/dist/{MDrawer-W2WQs1sM.js.map → MDrawer-CXNHYwPO.js.map} +1 -1
  23. package/dist/{MDrawer-BtA_Xgj0.cjs → MDrawer-DzqtHVeA.cjs} +2 -2
  24. package/dist/{MDrawer-BtA_Xgj0.cjs.map → MDrawer-DzqtHVeA.cjs.map} +1 -1
  25. package/dist/{MDropdownMenu-BWgf92rJ.js → MDropdownMenu-CeiC1tz3.js} +1 -1
  26. package/dist/{MDropdownMenu-BWgf92rJ.js.map → MDropdownMenu-CeiC1tz3.js.map} +1 -1
  27. package/dist/{MDropdownMenu-mGE19gCi.cjs → MDropdownMenu-c9U3sEcl.cjs} +2 -2
  28. package/dist/{MDropdownMenu-mGE19gCi.cjs.map → MDropdownMenu-c9U3sEcl.cjs.map} +1 -1
  29. package/dist/{MGalleryIllustration-D2agVuZM.cjs → MGalleryIllustration-Dglx_Ckc.cjs} +2 -2
  30. package/dist/{MGalleryIllustration-D2agVuZM.cjs.map → MGalleryIllustration-Dglx_Ckc.cjs.map} +1 -1
  31. package/dist/MGrid-C4kPZDSa.cjs +2 -0
  32. package/dist/MGrid-C4kPZDSa.cjs.map +1 -0
  33. package/dist/MGrid-DR0fHItF.js +182 -0
  34. package/dist/MGrid-DR0fHItF.js.map +1 -0
  35. package/dist/{MHeading-BQCe_JhE.cjs → MHeading-CKe5lcM_.cjs} +2 -2
  36. package/dist/{MHeading-BQCe_JhE.cjs.map → MHeading-CKe5lcM_.cjs.map} +1 -1
  37. package/dist/{MI18nProvider-CqAwaswx.cjs → MI18nProvider-DOh5xexz.cjs} +2 -2
  38. package/dist/{MI18nProvider-CqAwaswx.cjs.map → MI18nProvider-DOh5xexz.cjs.map} +1 -1
  39. package/dist/MImage-BZ6SrSao.cjs +2 -0
  40. package/dist/MImage-BZ6SrSao.cjs.map +1 -0
  41. package/dist/{MImage-I0LPhcqF.js → MImage-Btx_7g2Z.js} +5 -6
  42. package/dist/MImage-Btx_7g2Z.js.map +1 -0
  43. package/dist/{MInput-CNSvoRiu.js → MInput-7i0Dy1t4.js} +2 -2
  44. package/dist/{MInput-CNSvoRiu.js.map → MInput-7i0Dy1t4.js.map} +1 -1
  45. package/dist/{MInput-5-alcVsu.cjs → MInput-D_zaoWwX.cjs} +2 -2
  46. package/dist/{MInput-5-alcVsu.cjs.map → MInput-D_zaoWwX.cjs.map} +1 -1
  47. package/dist/MInputExpDate-DWWwjMYK.cjs +2 -0
  48. package/dist/MInputExpDate-DWWwjMYK.cjs.map +1 -0
  49. package/dist/{MInputCVC-BgougfgN.js → MInputExpDate-DhO5zN7L.js} +97 -97
  50. package/dist/MInputExpDate-DhO5zN7L.js.map +1 -0
  51. package/dist/{MInputSearch-BwR-BPh2.js → MInputSearch-CmzHPnmC.js} +2 -2
  52. package/dist/{MInputSearch-BwR-BPh2.js.map → MInputSearch-CmzHPnmC.js.map} +1 -1
  53. package/dist/{MInputSearch-X9yNPuTf.cjs → MInputSearch-DpHSVpmL.cjs} +2 -2
  54. package/dist/{MInputSearch-X9yNPuTf.cjs.map → MInputSearch-DpHSVpmL.cjs.map} +1 -1
  55. package/dist/MKbd-DWTS3iS5.cjs +2 -0
  56. package/dist/MKbd-DWTS3iS5.cjs.map +1 -0
  57. package/dist/MKbd-v6-tJ9sP.js +14 -0
  58. package/dist/MKbd-v6-tJ9sP.js.map +1 -0
  59. package/dist/{MLink-BakLkpKp.cjs → MLink-B3ImjkJV.cjs} +2 -2
  60. package/dist/{MLink-BakLkpKp.cjs.map → MLink-B3ImjkJV.cjs.map} +1 -1
  61. package/dist/{MModal-BYuPCSLG.cjs → MModal-CP0e31pv.cjs} +2 -2
  62. package/dist/{MModal-BYuPCSLG.cjs.map → MModal-CP0e31pv.cjs.map} +1 -1
  63. package/dist/{MModal-K73juXhN.js → MModal-DGmeQlWo.js} +2 -2
  64. package/dist/{MModal-K73juXhN.js.map → MModal-DGmeQlWo.js.map} +1 -1
  65. package/dist/{MPagination-B8BcGks_.cjs → MPagination-CS62B9kZ.cjs} +2 -2
  66. package/dist/{MPagination-B8BcGks_.cjs.map → MPagination-CS62B9kZ.cjs.map} +1 -1
  67. package/dist/{MPagination-BdBpF3Px.js → MPagination-Dr110are.js} +2 -2
  68. package/dist/{MPagination-BdBpF3Px.js.map → MPagination-Dr110are.js.map} +1 -1
  69. package/dist/{MPopover-DfEiRuM9.cjs → MPopover-CxxaY9kr.cjs} +2 -2
  70. package/dist/{MPopover-DfEiRuM9.cjs.map → MPopover-CxxaY9kr.cjs.map} +1 -1
  71. package/dist/{MPortal-CuBXhhl_.cjs → MPortal-BIxPtFYd.cjs} +2 -2
  72. package/dist/{MPortal-CuBXhhl_.cjs.map → MPortal-BIxPtFYd.cjs.map} +1 -1
  73. package/dist/{MQrCode-CCtTkkv9.js → MQrCode-6ANDcExA.js} +150 -100
  74. package/dist/MQrCode-6ANDcExA.js.map +1 -0
  75. package/dist/MQrCode-B0-Np-N3.cjs +2 -0
  76. package/dist/MQrCode-B0-Np-N3.cjs.map +1 -0
  77. package/dist/MSimpleGrid-Bojj4xKH.js +18 -0
  78. package/dist/MSimpleGrid-Bojj4xKH.js.map +1 -0
  79. package/dist/MSimpleGrid-CyLf-9R2.cjs +2 -0
  80. package/dist/MSimpleGrid-CyLf-9R2.cjs.map +1 -0
  81. package/dist/MSkeleton-BdwhPx-k.cjs +2 -0
  82. package/dist/MSkeleton-BdwhPx-k.cjs.map +1 -0
  83. package/dist/MSkeleton-BvXgnYs_.js +136 -0
  84. package/dist/MSkeleton-BvXgnYs_.js.map +1 -0
  85. package/dist/{MSlider-5141rKeH.js → MSlider-CqrusKJQ.js} +1 -1
  86. package/dist/{MSlider-5141rKeH.js.map → MSlider-CqrusKJQ.js.map} +1 -1
  87. package/dist/{MSlider-fhvfj0ft.cjs → MSlider-qCGmD4UA.cjs} +2 -2
  88. package/dist/{MSlider-fhvfj0ft.cjs.map → MSlider-qCGmD4UA.cjs.map} +1 -1
  89. package/dist/MStack-ByFYGSsy.cjs +2 -0
  90. package/dist/MStack-ByFYGSsy.cjs.map +1 -0
  91. package/dist/MStack-DFIc3S4_.js +70 -0
  92. package/dist/MStack-DFIc3S4_.js.map +1 -0
  93. package/dist/{MSubText-C1unzaCF.cjs → MSubText-1ilKSz8e.cjs} +2 -2
  94. package/dist/{MSubText-C1unzaCF.cjs.map → MSubText-1ilKSz8e.cjs.map} +1 -1
  95. package/dist/MSurface-CmVIQC1A.js +43 -0
  96. package/dist/MSurface-CmVIQC1A.js.map +1 -0
  97. package/dist/MSurface-CpAuwpHv.cjs +2 -0
  98. package/dist/MSurface-CpAuwpHv.cjs.map +1 -0
  99. package/dist/{MTabs-Dg31d-_D.js → MTabs-BQZ--mMq.js} +1 -1
  100. package/dist/{MTabs-Dg31d-_D.js.map → MTabs-BQZ--mMq.js.map} +1 -1
  101. package/dist/{MTabs-DuLqttVp.cjs → MTabs-DeUn6bIp.cjs} +2 -2
  102. package/dist/{MTabs-DuLqttVp.cjs.map → MTabs-DeUn6bIp.cjs.map} +1 -1
  103. package/dist/{MTag-CH5nMbm7.js → MTag-C4SUJly2.js} +2 -2
  104. package/dist/{MTag-CH5nMbm7.js.map → MTag-C4SUJly2.js.map} +1 -1
  105. package/dist/{MTag-CeLhZhqT.cjs → MTag-DwQ-j1sV.cjs} +2 -2
  106. package/dist/{MTag-CeLhZhqT.cjs.map → MTag-DwQ-j1sV.cjs.map} +1 -1
  107. package/dist/{MText-BbEkc0Ik.cjs → MText-D0fI_D_Q.cjs} +2 -2
  108. package/dist/{MText-BbEkc0Ik.cjs.map → MText-D0fI_D_Q.cjs.map} +1 -1
  109. package/dist/{MTimeAgo-Dd0JQRGj.cjs → MTimeAgo-DI3DF7bD.cjs} +2 -2
  110. package/dist/{MTimeAgo-Dd0JQRGj.cjs.map → MTimeAgo-DI3DF7bD.cjs.map} +1 -1
  111. package/dist/{MTimeAgo-C4p80NvI.js → MTimeAgo-Db8gOade.js} +2 -2
  112. package/dist/{MTimeAgo-C4p80NvI.js.map → MTimeAgo-Db8gOade.js.map} +1 -1
  113. package/dist/{MToggle-Dt1Ctr5e.js → MToggle-B6emKoKq.js} +1 -1
  114. package/dist/{MToggle-Dt1Ctr5e.js.map → MToggle-B6emKoKq.js.map} +1 -1
  115. package/dist/{MToggle-BZSwJw_z.cjs → MToggle-BVJm5Bdk.cjs} +2 -2
  116. package/dist/{MToggle-BZSwJw_z.cjs.map → MToggle-BVJm5Bdk.cjs.map} +1 -1
  117. package/dist/{MTooltip-BE0GcseJ.cjs → MTooltip-Dq2vYf3G.cjs} +2 -2
  118. package/dist/{MTooltip-BE0GcseJ.cjs.map → MTooltip-Dq2vYf3G.cjs.map} +1 -1
  119. package/dist/{MTooltip-C43aUKMP.js → MTooltip-jSf4VBtB.js} +1 -1
  120. package/dist/{MTooltip-C43aUKMP.js.map → MTooltip-jSf4VBtB.js.map} +1 -1
  121. package/dist/MTreeView-AqH8XMPz.js +516 -0
  122. package/dist/MTreeView-AqH8XMPz.js.map +1 -0
  123. package/dist/MTreeView-Dp9qbqQh.cjs +2 -0
  124. package/dist/MTreeView-Dp9qbqQh.cjs.map +1 -0
  125. package/dist/{arduino-C1gw-z1N.cjs → arduino-Bm509TuR.cjs} +1 -1
  126. package/dist/{arduino-C1gw-z1N.cjs.map → arduino-Bm509TuR.cjs.map} +1 -1
  127. package/dist/{arduino-5iMB2x4D.js → arduino-C5s1z3P1.js} +1 -1
  128. package/dist/{arduino-5iMB2x4D.js.map → arduino-C5s1z3P1.js.map} +1 -1
  129. package/dist/{bash-wzZkpJC-.cjs → bash-CyBbinAU.cjs} +1 -1
  130. package/dist/{bash-wzZkpJC-.cjs.map → bash-CyBbinAU.cjs.map} +1 -1
  131. package/dist/{bash-CNKpaaFe.js → bash-RIFbRcCe.js} +1 -1
  132. package/dist/{bash-CNKpaaFe.js.map → bash-RIFbRcCe.js.map} +1 -1
  133. package/dist/{c-BKjXPJPn.js → c-DAywn1DE.js} +1 -1
  134. package/dist/{c-BKjXPJPn.js.map → c-DAywn1DE.js.map} +1 -1
  135. package/dist/{c-BSPjDa0P.cjs → c-DGOxo0dj.cjs} +1 -1
  136. package/dist/{c-BSPjDa0P.cjs.map → c-DGOxo0dj.cjs.map} +1 -1
  137. package/dist/cards-B9g6Lf1n.cjs +2 -0
  138. package/dist/cards-B9g6Lf1n.cjs.map +1 -0
  139. package/dist/cards-D7oHIHmU.js +1535 -0
  140. package/dist/cards-D7oHIHmU.js.map +1 -0
  141. package/dist/cards.cjs +1 -1
  142. package/dist/cards.js +3 -3
  143. package/dist/components/cards/MCard/MCard.d.ts +1 -1
  144. package/dist/components/cards/MCard/MCard.types.d.ts +2 -5
  145. package/dist/components/cards/MCardActionArea/MCardActionArea.d.ts +2 -0
  146. package/dist/components/cards/MCardActionArea/MCardActionArea.types.d.ts +7 -0
  147. package/dist/components/cards/MCardActionArea/index.d.ts +2 -0
  148. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +2 -0
  149. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.types.d.ts +41 -0
  150. package/dist/components/cards/MCardDaySchedule/index.d.ts +2 -0
  151. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +2 -0
  152. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.types.d.ts +31 -0
  153. package/dist/components/cards/MCardDocumentTree/index.d.ts +2 -0
  154. package/dist/components/cards/MCardFinance/MCardFinance.d.ts +1 -1
  155. package/dist/components/cards/MCardFinance/MCardFinance.types.d.ts +2 -1
  156. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  157. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +2 -0
  158. package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
  159. package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +2 -1
  160. package/dist/components/cards/MCardTile/MCardTile.d.ts +1 -1
  161. package/dist/components/cards/MCardTile/MCardTile.types.d.ts +2 -4
  162. package/dist/components/cards/MCardWidget/MCardWidget.d.ts +1 -1
  163. package/dist/components/cards/MCardWidget/MCardWidget.types.d.ts +2 -1
  164. package/dist/components/cards/MStatCard/MStatCard.d.ts +3 -0
  165. package/dist/components/cards/MStatCard/MStatCard.types.d.ts +16 -0
  166. package/dist/components/cards/MStatCard/index.d.ts +2 -0
  167. package/dist/components/cards/index.d.ts +10 -0
  168. package/dist/components/cards/shared/MCardAction.types.d.ts +12 -0
  169. package/dist/components/cards/shared/MCardAction.utils.d.ts +16 -0
  170. package/dist/components/cards/shared/MCardColor.utils.d.ts +3 -0
  171. package/dist/components/cards/shared/index.d.ts +3 -0
  172. package/dist/components/controls/MButton/MButton.types.d.ts +2 -0
  173. package/dist/components/controls/MQuickActions/MQuickActions.d.ts +2 -0
  174. package/dist/components/controls/MQuickActions/MQuickActions.types.d.ts +33 -0
  175. package/dist/components/controls/MQuickActions/index.d.ts +2 -0
  176. package/dist/components/controls/index.d.ts +2 -0
  177. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  178. package/dist/components/data/MTreeView/MTreeView.types.d.ts +2 -0
  179. package/dist/components/display/MDetailList/MDetailList.d.ts +2 -0
  180. package/dist/components/display/MDetailList/MDetailList.types.d.ts +20 -0
  181. package/dist/components/display/MDetailList/index.d.ts +2 -0
  182. package/dist/components/display/index.d.ts +2 -0
  183. package/dist/components/layout/MAppMenu/MAppMenu.d.ts +2 -0
  184. package/dist/components/layout/MAppMenu/MAppMenu.types.d.ts +63 -0
  185. package/dist/components/layout/MAppMenu/index.d.ts +2 -0
  186. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  187. package/dist/components/layout/MInline/MInline.types.d.ts +1 -1
  188. package/dist/components/layout/MSidebar/MSidebar.d.ts +1 -1
  189. package/dist/components/layout/MSidebar/MSidebar.types.d.ts +7 -0
  190. package/dist/components/layout/MStatGrid/MStatGrid.d.ts +2 -0
  191. package/dist/components/layout/MStatGrid/MStatGrid.types.d.ts +9 -0
  192. package/dist/components/layout/MStatGrid/index.d.ts +2 -0
  193. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  194. package/dist/components/layout/MSurface/MSurface.types.d.ts +6 -1
  195. package/dist/components/layout/index.d.ts +6 -0
  196. package/dist/components/media/MGallery/MGallery.types.d.ts +5 -0
  197. package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +2 -0
  198. package/dist/components/overlays/MCommandPalette/MCommandPalette.types.d.ts +35 -0
  199. package/dist/components/overlays/MCommandPalette/index.d.ts +2 -0
  200. package/dist/components/overlays/index.d.ts +2 -0
  201. package/dist/components/typography/MHeading/MHeading.d.ts +3 -3
  202. package/dist/{controls-DCtMOoQe.js → controls-BczTk73I.js} +141 -100
  203. package/dist/controls-BczTk73I.js.map +1 -0
  204. package/dist/controls-BfV0vxeJ.cjs +2 -0
  205. package/dist/controls-BfV0vxeJ.cjs.map +1 -0
  206. package/dist/controls.cjs +1 -1
  207. package/dist/controls.js +6 -6
  208. package/dist/cookie-consent-bootstrap.cjs +1 -1
  209. package/dist/cookie-consent-bootstrap.js +1 -1
  210. package/dist/{core-B8VC-Umz.js → core-BUYr52VU.js} +1 -1
  211. package/dist/{core-B8VC-Umz.js.map → core-BUYr52VU.js.map} +1 -1
  212. package/dist/{core-w629c4ND.cjs → core-DAox0BHy.cjs} +1 -1
  213. package/dist/{core-w629c4ND.cjs.map → core-DAox0BHy.cjs.map} +1 -1
  214. package/dist/{cpp-LIcuHkFj.cjs → cpp-D-FtdQo9.cjs} +1 -1
  215. package/dist/{cpp-LIcuHkFj.cjs.map → cpp-D-FtdQo9.cjs.map} +1 -1
  216. package/dist/{cpp-bNWmO1Au.js → cpp-Y9cHXDal.js} +1 -1
  217. package/dist/{cpp-bNWmO1Au.js.map → cpp-Y9cHXDal.js.map} +1 -1
  218. package/dist/{css-h_5aJA6y.js → css-C__ffGj6.js} +1 -1
  219. package/dist/{css-h_5aJA6y.js.map → css-C__ffGj6.js.map} +1 -1
  220. package/dist/{css-D6fGBtGV.cjs → css-DCYZ-Rs6.cjs} +1 -1
  221. package/dist/{css-D6fGBtGV.cjs.map → css-DCYZ-Rs6.cjs.map} +1 -1
  222. package/dist/data-7kG1MC1Z.cjs +2 -0
  223. package/dist/data-7kG1MC1Z.cjs.map +1 -0
  224. package/dist/{data-DT1ncDx_.js → data-z3e8XTSt.js} +762 -1067
  225. package/dist/data-z3e8XTSt.js.map +1 -0
  226. package/dist/data.cjs +1 -1
  227. package/dist/data.js +4 -4
  228. package/dist/display-Cw3-bTsm.cjs +3 -0
  229. package/dist/{display-BxVd6MMK.cjs.map → display-Cw3-bTsm.cjs.map} +1 -1
  230. package/dist/{display-CtVfcztO.js → display-DyC7084n.js} +34 -36
  231. package/dist/{display-CtVfcztO.js.map → display-DyC7084n.js.map} +1 -1
  232. package/dist/display.cjs +1 -1
  233. package/dist/display.js +4 -4
  234. package/dist/{dropdowns-BgpcQ9Hq.cjs → dropdowns-6eO0b6eI.cjs} +2 -2
  235. package/dist/{dropdowns-BgpcQ9Hq.cjs.map → dropdowns-6eO0b6eI.cjs.map} +1 -1
  236. package/dist/{dropdowns-C58ur0qF.js → dropdowns-zXgrjNXZ.js} +7 -7
  237. package/dist/{dropdowns-C58ur0qF.js.map → dropdowns-zXgrjNXZ.js.map} +1 -1
  238. package/dist/dropdowns.cjs +1 -1
  239. package/dist/dropdowns.js +1 -1
  240. package/dist/feedback-BvRmoSzV.cjs +2 -0
  241. package/dist/{feedback-BJiO6j28.cjs.map → feedback-BvRmoSzV.cjs.map} +1 -1
  242. package/dist/{feedback-q3oO-E_X.js → feedback-DfBjzJAw.js} +299 -300
  243. package/dist/{feedback-q3oO-E_X.js.map → feedback-DfBjzJAw.js.map} +1 -1
  244. package/dist/feedback.cjs +1 -1
  245. package/dist/feedback.js +6 -7
  246. package/dist/{form-DIOkVhd9.js → form-BiPQ8SRK.js} +1 -1
  247. package/dist/{form-DIOkVhd9.js.map → form-BiPQ8SRK.js.map} +1 -1
  248. package/dist/{form-D7OKrCBM.cjs → form-DlXWN2ul.cjs} +2 -2
  249. package/dist/{form-D7OKrCBM.cjs.map → form-DlXWN2ul.cjs.map} +1 -1
  250. package/dist/form.cjs +1 -1
  251. package/dist/form.js +1 -1
  252. package/dist/{frameworkTexts-CJHzJHsg.cjs → frameworkTexts-BLJcGUXz.cjs} +2 -2
  253. package/dist/{frameworkTexts-CJHzJHsg.cjs.map → frameworkTexts-BLJcGUXz.cjs.map} +1 -1
  254. package/dist/{frameworkTexts-Bzd6bn9s.js → frameworkTexts-BTFyhWFD.js} +1 -1
  255. package/dist/{frameworkTexts-Bzd6bn9s.js.map → frameworkTexts-BTFyhWFD.js.map} +1 -1
  256. package/dist/i18n.cjs +1 -1
  257. package/dist/{icons-lUQfZ4Jr.cjs → icons-qCoE70hn.cjs} +2 -2
  258. package/dist/{icons-lUQfZ4Jr.cjs.map → icons-qCoE70hn.cjs.map} +1 -1
  259. package/dist/icons.cjs +1 -1
  260. package/dist/illustrations.cjs +1 -1
  261. package/dist/index.cjs +2 -1
  262. package/dist/index.cjs.map +1 -0
  263. package/dist/index.d.ts +4 -0
  264. package/dist/index.js +90 -56
  265. package/dist/index.js.map +1 -0
  266. package/dist/{inputs-DOO1tKK9.cjs → inputs-C1I1SLZ8.cjs} +2 -2
  267. package/dist/{inputs-DOO1tKK9.cjs.map → inputs-C1I1SLZ8.cjs.map} +1 -1
  268. package/dist/{inputs-Dwjwa_SJ.js → inputs-Dy1WurNK.js} +16 -7
  269. package/dist/{inputs-Dwjwa_SJ.js.map → inputs-Dy1WurNK.js.map} +1 -1
  270. package/dist/inputs.cjs +1 -1
  271. package/dist/inputs.js +5 -5
  272. package/dist/{javascript-BnTECToz.js → javascript-ClV78Svx.js} +1 -1
  273. package/dist/{javascript-BnTECToz.js.map → javascript-ClV78Svx.js.map} +1 -1
  274. package/dist/{javascript-Oy5hkezl.cjs → javascript-_Sr9cnsG.cjs} +1 -1
  275. package/dist/{javascript-Oy5hkezl.cjs.map → javascript-_Sr9cnsG.cjs.map} +1 -1
  276. package/dist/{json-BP8eqPWc.cjs → json-BFetU4Pi.cjs} +1 -1
  277. package/dist/{json-BP8eqPWc.cjs.map → json-BFetU4Pi.cjs.map} +1 -1
  278. package/dist/{json-Ci-bDynf.js → json-Dz6EkGZR.js} +1 -1
  279. package/dist/{json-Ci-bDynf.js.map → json-Dz6EkGZR.js.map} +1 -1
  280. package/dist/layout-D1-mF4xn.js +772 -0
  281. package/dist/layout-D1-mF4xn.js.map +1 -0
  282. package/dist/layout-Op6GWQ8w.cjs +2 -0
  283. package/dist/layout-Op6GWQ8w.cjs.map +1 -0
  284. package/dist/layout.cjs +1 -1
  285. package/dist/layout.js +8 -7
  286. package/dist/licensing-DmF0ObpG.cjs +2 -0
  287. package/dist/licensing-DmF0ObpG.cjs.map +1 -0
  288. package/dist/{licensing-CwzqhHH9.js → licensing-ZFCUU4Z8.js} +5 -1
  289. package/dist/licensing-ZFCUU4Z8.js.map +1 -0
  290. package/dist/{locale-Ba2yreFR.cjs → locale-Bz2JXxDZ.cjs} +2 -2
  291. package/dist/{locale-Ba2yreFR.cjs.map → locale-Bz2JXxDZ.cjs.map} +1 -1
  292. package/dist/{locale-JX_gX03k.js → locale-CS1-IY_I.js} +1 -1
  293. package/dist/{locale-JX_gX03k.js.map → locale-CS1-IY_I.js.map} +1 -1
  294. package/dist/media-DbToUupt.cjs +2 -0
  295. package/dist/media-DbToUupt.cjs.map +1 -0
  296. package/dist/{media-DdshnqJ1.js → media-DdChr0Cw.js} +7 -7
  297. package/dist/media-DdChr0Cw.js.map +1 -0
  298. package/dist/media.cjs +1 -1
  299. package/dist/media.js +3 -3
  300. package/dist/overlays-B0khU6Wb.js +392 -0
  301. package/dist/overlays-B0khU6Wb.js.map +1 -0
  302. package/dist/overlays-VAh5PqAe.cjs +2 -0
  303. package/dist/overlays-VAh5PqAe.cjs.map +1 -0
  304. package/dist/overlays.cjs +1 -1
  305. package/dist/overlays.js +6 -6
  306. package/dist/{php-DJ5j7KZU.js → php-5Erp5xxI.js} +1 -1
  307. package/dist/{php-DJ5j7KZU.js.map → php-5Erp5xxI.js.map} +1 -1
  308. package/dist/{php-Cwjc-ZYq.cjs → php-jOdR0XS8.cjs} +1 -1
  309. package/dist/{php-Cwjc-ZYq.cjs.map → php-jOdR0XS8.cjs.map} +1 -1
  310. package/dist/primitives.cjs +1 -1
  311. package/dist/style-runtime.cjs +1 -1
  312. package/dist/style-runtime.js +1 -1
  313. package/dist/styles.css +1 -1
  314. package/dist/{theme-Bb_NAEiZ.cjs → theme-BaroO-OB.cjs} +2 -2
  315. package/dist/{theme-Bb_NAEiZ.cjs.map → theme-BaroO-OB.cjs.map} +1 -1
  316. package/dist/theme.cjs +1 -1
  317. package/dist/{typescript-QKlfKtex.cjs → typescript-C65sNL5w.cjs} +1 -1
  318. package/dist/{typescript-QKlfKtex.cjs.map → typescript-C65sNL5w.cjs.map} +1 -1
  319. package/dist/{typescript-DUexJ4gh.js → typescript-wdQKWfxO.js} +1 -1
  320. package/dist/{typescript-DUexJ4gh.js.map → typescript-wdQKWfxO.js.map} +1 -1
  321. package/dist/{typography-BSBsn0f8.js → typography-CldwDFse.js} +2 -11
  322. package/dist/typography-CldwDFse.js.map +1 -0
  323. package/dist/typography-D7COsP1O.cjs +2 -0
  324. package/dist/typography-D7COsP1O.cjs.map +1 -0
  325. package/dist/typography.cjs +1 -1
  326. package/dist/typography.js +4 -3
  327. package/dist/{useGhostText-mibV4s1-.cjs → useGhostText-Dg4P606B.cjs} +2 -2
  328. package/dist/{useGhostText-mibV4s1-.cjs.map → useGhostText-Dg4P606B.cjs.map} +1 -1
  329. package/dist/{useInteractionEffect-CtXlbjhC.cjs → useInteractionEffect-Bo8285cg.cjs} +2 -2
  330. package/dist/{useInteractionEffect-CtXlbjhC.cjs.map → useInteractionEffect-Bo8285cg.cjs.map} +1 -1
  331. package/dist/{useKeyboardNav-CCUoRMgm.cjs → useKeyboardNav-CyeQtqF8.cjs} +2 -2
  332. package/dist/{useKeyboardNav-CCUoRMgm.cjs.map → useKeyboardNav-CyeQtqF8.cjs.map} +1 -1
  333. package/dist/utils/commandPaletteFromAppMenu.d.ts +42 -0
  334. package/dist/utils/licensing.d.ts +4 -0
  335. package/dist/utils.cjs +1 -1
  336. package/dist/utils.js +1 -1
  337. package/dist/{xml-DEtyywwU.cjs → xml-B2okahIr.cjs} +1 -1
  338. package/dist/{xml-DEtyywwU.cjs.map → xml-B2okahIr.cjs.map} +1 -1
  339. package/dist/{xml-DlZghN7m.js → xml-a3b-XevT.js} +1 -1
  340. package/dist/{xml-DlZghN7m.js.map → xml-a3b-XevT.js.map} +1 -1
  341. package/package.json +1 -1
  342. package/dist/MBadge-BoxsfX_h.cjs +0 -2
  343. package/dist/MBadge-BoxsfX_h.cjs.map +0 -1
  344. package/dist/MBadge-_BggwkrM.js +0 -19
  345. package/dist/MBadge-_BggwkrM.js.map +0 -1
  346. package/dist/MButton-B9k45kH-.cjs +0 -2
  347. package/dist/MButton-B9k45kH-.cjs.map +0 -1
  348. package/dist/MButton-y9qXhhGt.js.map +0 -1
  349. package/dist/MDataTable-C3v15no3.cjs.map +0 -1
  350. package/dist/MDataTable-C_XiTGTF.js.map +0 -1
  351. package/dist/MImage-I0LPhcqF.js.map +0 -1
  352. package/dist/MImage-hnSqIPaC.cjs +0 -2
  353. package/dist/MImage-hnSqIPaC.cjs.map +0 -1
  354. package/dist/MInline-CoMhfX5V.js +0 -39
  355. package/dist/MInline-CoMhfX5V.js.map +0 -1
  356. package/dist/MInline-FEXWkr71.cjs +0 -2
  357. package/dist/MInline-FEXWkr71.cjs.map +0 -1
  358. package/dist/MInputCVC-BgougfgN.js.map +0 -1
  359. package/dist/MInputCVC-CRWp1fYi.cjs +0 -2
  360. package/dist/MInputCVC-CRWp1fYi.cjs.map +0 -1
  361. package/dist/MQrCode-BXXTLtBP.cjs +0 -2
  362. package/dist/MQrCode-BXXTLtBP.cjs.map +0 -1
  363. package/dist/MQrCode-CCtTkkv9.js.map +0 -1
  364. package/dist/MSkeleton-BP7H_lsX.js +0 -98
  365. package/dist/MSkeleton-BP7H_lsX.js.map +0 -1
  366. package/dist/MSkeleton-QO2sI-Ni.cjs +0 -2
  367. package/dist/MSkeleton-QO2sI-Ni.cjs.map +0 -1
  368. package/dist/MSparkline-CcM1n7Kh.cjs +0 -2
  369. package/dist/MSparkline-CcM1n7Kh.cjs.map +0 -1
  370. package/dist/MSparkline-voNWOLNz.js +0 -207
  371. package/dist/MSparkline-voNWOLNz.js.map +0 -1
  372. package/dist/MStack-CSaEbepM.js +0 -39
  373. package/dist/MStack-CSaEbepM.js.map +0 -1
  374. package/dist/MStack-Dy8Zl6FW.cjs +0 -2
  375. package/dist/MStack-Dy8Zl6FW.cjs.map +0 -1
  376. package/dist/MSurface-f_3vN0sd.js +0 -39
  377. package/dist/MSurface-f_3vN0sd.js.map +0 -1
  378. package/dist/MSurface-wVqTsi1m.cjs +0 -2
  379. package/dist/MSurface-wVqTsi1m.cjs.map +0 -1
  380. package/dist/cards-BYX8bM2l.js +0 -1163
  381. package/dist/cards-BYX8bM2l.js.map +0 -1
  382. package/dist/cards-lCx9oEVk.cjs +0 -2
  383. package/dist/cards-lCx9oEVk.cjs.map +0 -1
  384. package/dist/controls-CZCxbJgq.cjs +0 -2
  385. package/dist/controls-CZCxbJgq.cjs.map +0 -1
  386. package/dist/controls-DCtMOoQe.js.map +0 -1
  387. package/dist/data-CcS-eYye.cjs +0 -2
  388. package/dist/data-CcS-eYye.cjs.map +0 -1
  389. package/dist/data-DT1ncDx_.js.map +0 -1
  390. package/dist/display-BxVd6MMK.cjs +0 -3
  391. package/dist/feedback-BJiO6j28.cjs +0 -2
  392. package/dist/layout-B3S9bvaP.cjs +0 -2
  393. package/dist/layout-B3S9bvaP.cjs.map +0 -1
  394. package/dist/layout-BqDbW0Qn.js +0 -854
  395. package/dist/layout-BqDbW0Qn.js.map +0 -1
  396. package/dist/licensing-CwzqhHH9.js.map +0 -1
  397. package/dist/licensing-Df1Z1rnQ.cjs +0 -2
  398. package/dist/licensing-Df1Z1rnQ.cjs.map +0 -1
  399. package/dist/media-C5atCcc6.cjs +0 -2
  400. package/dist/media-C5atCcc6.cjs.map +0 -1
  401. package/dist/media-DdshnqJ1.js.map +0 -1
  402. package/dist/overlays-BC_6IATL.cjs +0 -2
  403. package/dist/overlays-BC_6IATL.cjs.map +0 -1
  404. package/dist/overlays-zUoV_Jy7.js +0 -186
  405. package/dist/overlays-zUoV_Jy7.js.map +0 -1
  406. package/dist/typography-BSBsn0f8.js.map +0 -1
  407. package/dist/typography-CRKIyR-B.cjs +0 -2
  408. package/dist/typography-CRKIyR-B.cjs.map +0 -1
@@ -0,0 +1,18 @@
1
+ import { t as e } from "./cn-YER3QsV1.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/layout/MSimpleGrid/MSimpleGrid.tsx
4
+ function n({ columns: n = 2, minItemWidth: r, className: i, style: a, children: o, ...s }) {
5
+ return /* @__PURE__ */ t("div", {
6
+ className: e("grid", `columns-${n}`, i),
7
+ style: {
8
+ ...r ? { "--grid-min-item-width": r } : {},
9
+ ...a
10
+ },
11
+ ...s,
12
+ children: o
13
+ });
14
+ }
15
+ //#endregion
16
+ export { n as t };
17
+
18
+ //# sourceMappingURL=MSimpleGrid-Bojj4xKH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSimpleGrid-Bojj4xKH.js","names":[],"sources":["../src/components/layout/MSimpleGrid/MSimpleGrid.tsx"],"sourcesContent":["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"],"mappings":";;;AAKA,SAAgB,EAAY,EAAC,aAAU,GAAG,iBAAc,cAAW,UAAO,aAAU,GAAG,KAAyB;AAC5G,QACI,kBAAC,OAAD;EACI,WAAW,EAAG,QAAQ,WAAW,KAAW,EAAU;EACtD,OAAO;GACH,GAAI,IAAe,EAAC,yBAAyB,GAAa,GAAG,EAAE;GAC/D,GAAG;GACN;EACD,GAAI;EAEH;EACC,CAAA"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./cn-CU5TNITO.cjs`);require(`./core-DAox0BHy.cjs`);let t=require(`react/jsx-runtime`);function n({columns:n=2,minItemWidth:r,className:i,style:a,children:o,...s}){return(0,t.jsx)(`div`,{className:e.t(`grid`,`columns-${n}`,i),style:{...r?{"--grid-min-item-width":r}:{},...a},...s,children:o})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
2
+ //# sourceMappingURL=MSimpleGrid-CyLf-9R2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSimpleGrid-CyLf-9R2.cjs","names":[],"sources":["../src/components/layout/MSimpleGrid/MSimpleGrid.tsx"],"sourcesContent":["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"],"mappings":"uGAKA,SAAgB,EAAY,CAAC,UAAU,EAAG,eAAc,YAAW,QAAO,WAAU,GAAG,GAAyB,CAC5G,OACI,EAAA,EAAA,KAAC,MAAD,CACI,UAAW,EAAA,EAAG,OAAQ,WAAW,IAAW,EAAU,CACtD,MAAO,CACH,GAAI,EAAe,CAAC,wBAAyB,EAAa,CAAG,EAAE,CAC/D,GAAG,EACN,CACD,GAAI,EAEH,WACC,CAAA"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-BaroO-OB.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-Bo8285cg.cjs`),r=require(`./MSurface-CpAuwpHv.cjs`);require(`./core-DAox0BHy.cjs`);let i=require(`react/jsx-runtime`);function a({color:n=`primary`,size:r=`md`,hidden:a,pulsing:o=!1,rounded:s=!1,fullWidth:c=!1,icon:l,className:u,children:d,...f}){return(0,i.jsxs)(`span`,{className:t.t(`badge`,`color-${n}`,r,o&&`pulsing`,s&&`rounded`,c&&`full-width`,u),...e.r(a),...f,children:[l&&(0,i.jsx)(`span`,{className:`badge-icon`,children:l}),d]})}function o({component:e,to:t,href:n,interactive:r,hasClickHandler:i=!1,hasPointerHandler:a=!1,fallbackComponent:o=`div`}){let s=!!(e||n||t),c=e??(s?`a`:o);return{component:c,href:n??(c===`a`?t:void 0),to:c===`a`?void 0:t,isInteractive:!!(r||i||a||n||t),isLink:s}}function s({component:e,to:a,href:s,target:c,rel:l,interactive:u=!1,stretch:d=!0,tone:p=`raised`,padded:m=!1,color:h,clickEffect:g,rippleColor:_,skeleton:v=!1,spacing:y,mt:b,mb:x,ml:S,mr:C,mx:w,my:T,className:E,children:D,onPointerDown:O,...k}){let{component:A,href:j,to:M,isInteractive:N}=o({component:e,href:s,to:a,interactive:u,hasClickHandler:!!k.onClick,hasPointerHandler:!!O}),{effectClassName:P,effectLayer:F,handlePointerDown:I}=n.t({effect:g??(N?`ripple`:`none`),disabled:!N||v,color:_});return(0,i.jsxs)(r.t,{component:A,href:j,to:M,target:c,rel:l,tone:p,padded:m,spacing:y,mt:b,mb:x,ml:S,mr:C,mx:w,my:T,className:t.t(`card`,!d&&`no-stretch`,h&&`color-${h}`,N&&!v&&`interactive`,v&&`skeleton`,P,E),onPointerDown:e=>{I(e),O?.(e)},...k,children:[F,v?(0,i.jsxs)(`div`,{className:`card-skeleton-content`,children:[(0,i.jsx)(f,{variant:`rectangle`,height:`8rem`}),(0,i.jsx)(f,{variant:`text`,lines:3,className:`card-skeleton-lines`})]}):D]})}function c({className:e,children:n,...r}){return(0,i.jsx)(`div`,{className:t.t(`header`,e),...r,children:n})}function l({className:e,children:n,...r}){return(0,i.jsx)(`div`,{className:t.t(`body`,e),...r,children:n})}function u({className:e,children:n,...r}){return(0,i.jsx)(`div`,{className:t.t(`footer`,e),...r,children:n})}function d(e,t){return t<=1?`100%`:e===t-1?`68%`:e===t-2&&t>3?`88%`:`100%`}function f({variant:e=`text`,width:n,height:r,radius:a,lines:o=3,gap:s,animate:c=!0,className:l,style:u,...f}){let p=c===!1?`none`:c===!0?`shimmer`:c;return e===`text`?(0,i.jsx)(`div`,{className:t.t(`skeleton-group`,l),style:{width:n??void 0,gap:s??void 0,...u},...f,children:Array.from({length:o},(e,n)=>(0,i.jsx)(`div`,{className:t.t(`skeleton`,`text`,p),style:{width:d(n,o),height:r??void 0,borderRadius:a??void 0}},n))}):(0,i.jsx)(`div`,{className:t.t(`skeleton`,e,p,l),style:{width:n??void 0,height:r??void 0,borderRadius:a??void 0,...u},...f})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
2
+ //# sourceMappingURL=MSkeleton-BdwhPx-k.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSkeleton-BdwhPx-k.cjs","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx","../src/components/cards/shared/MCardAction.utils.ts","../src/components/cards/MCard/MCard.tsx","../src/components/feedback/MSkeleton/MSkeleton.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","import type {ElementType} from 'react'\nimport type {MCardActionProps} from './MCardAction.types'\n\ninterface ResolveMCardActionOptions extends Pick<MCardActionProps, 'component' | 'to' | 'href' | 'interactive'> {\n hasClickHandler?: boolean\n hasPointerHandler?: boolean\n fallbackComponent?: ElementType\n}\n\nexport interface ResolvedMCardAction {\n component: ElementType\n href?: string\n to?: string\n isInteractive: boolean\n isLink: boolean\n}\n\nexport function resolveMCardAction({\n component,\n to,\n href,\n interactive,\n hasClickHandler = false,\n hasPointerHandler = false,\n fallbackComponent = 'div',\n}: ResolveMCardActionOptions): ResolvedMCardAction {\n const isLink = Boolean(component || href || to)\n const resolvedComponent = component ?? (isLink ? 'a' : fallbackComponent)\n const resolvedHref = href ?? (resolvedComponent === 'a' ? to : undefined)\n const resolvedTo = resolvedComponent === 'a' ? undefined : to\n\n return {\n component: resolvedComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive: Boolean(interactive || hasClickHandler || hasPointerHandler || href || to),\n isLink,\n }\n}\n","import type {MCardProps, MCardSectionProps} from './MCard.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MSurface} from '../../layout'\nimport {MSkeleton} from '../../feedback'\nimport {resolveMCardAction} from '../shared'\nimport './MCard.css'\n\n// Compose elevated content blocks that can optionally behave like an interactive surface.\nexport function MCard({\n component,\n to,\n href,\n target,\n rel,\n interactive = false,\n stretch = true,\n tone = 'raised',\n padded = false,\n color,\n clickEffect,\n rippleColor,\n skeleton = false,\n spacing,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n className,\n children,\n onPointerDown,\n ...rest\n}: MCardProps) {\n const {\n component: surfaceComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive,\n } = resolveMCardAction({\n component,\n href,\n to,\n interactive,\n hasClickHandler: Boolean(rest.onClick),\n hasPointerHandler: Boolean(onPointerDown),\n })\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n\n return (\n <MSurface\n component={surfaceComponent}\n href={resolvedHref}\n to={resolvedTo}\n target={target}\n rel={rel}\n tone={tone}\n padded={padded}\n spacing={spacing}\n mt={mt}\n mb={mb}\n ml={ml}\n mr={mr}\n mx={mx}\n my={my}\n className={cn(\n 'card',\n !stretch && 'no-stretch',\n color && `color-${color}`,\n isInteractive && !skeleton && 'interactive',\n skeleton && 'skeleton',\n effectClassName,\n className\n )}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {skeleton ? (\n <div className=\"card-skeleton-content\">\n <MSkeleton variant=\"rectangle\" height=\"8rem\" />\n <MSkeleton variant=\"text\" lines={3} className=\"card-skeleton-lines\" />\n </div>\n ) : (\n children\n )}\n </MSurface>\n )\n}\n\n// Render the top section of a card.\nexport function MCardHeader({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('header', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the main content section of a card.\nexport function MCardBody({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('body', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the bottom section of a card.\nexport function MCardFooter({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('footer', className)} {...rest}>\n {children}\n </div>\n )\n}\n","import type {MSkeletonProps} from './MSkeleton.types'\nimport {cn} from '../../../utils/cn'\nimport './MSkeleton.css'\n\nfunction getTextLineWidth(index: number, lines: number) {\n if (lines <= 1) {\n return '100%'\n }\n\n if (index === lines - 1) {\n return '68%'\n }\n\n if (index === lines - 2 && lines > 3) {\n return '88%'\n }\n\n return '100%'\n}\n\n// Animated placeholder shown while content is loading.\nexport function MSkeleton({\n variant = 'text',\n width,\n height,\n radius,\n lines = 3,\n gap,\n animate = true,\n className,\n style,\n ...rest\n}: MSkeletonProps) {\n const animation = animate === false ? 'none' : animate === true ? 'shimmer' : animate\n\n if (variant === 'text') {\n return (\n <div\n className={cn('skeleton-group', className)}\n style={{width: width ?? undefined, gap: gap ?? undefined, ...style}}\n {...rest}\n >\n {Array.from({length: lines}, (_, i) => (\n <div\n key={i}\n className={cn('skeleton', 'text', animation)}\n style={{\n width: getTextLineWidth(i, lines),\n height: height ?? undefined,\n borderRadius: radius ?? undefined,\n }}\n />\n ))}\n </div>\n )\n }\n\n return (\n <div\n className={cn('skeleton', variant, animation, className)}\n style={{\n width: width ?? undefined,\n height: height ?? undefined,\n borderRadius: radius ?? undefined,\n ...style,\n }}\n {...rest}\n />\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { r as e } from "./theme-D_f-cmSA.js";
2
+ import { t } from "./cn-YER3QsV1.js";
3
+ import { t as n } from "./useInteractionEffect-DtpbVd77.js";
4
+ import { t as r } from "./MSurface-CmVIQC1A.js";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ //#region src/components/feedback/MBadge/MBadge.tsx
7
+ function o({ color: n = "primary", size: r = "md", hidden: o, pulsing: s = !1, rounded: c = !1, fullWidth: l = !1, icon: u, className: d, children: f, ...p }) {
8
+ return /* @__PURE__ */ a("span", {
9
+ className: t("badge", `color-${n}`, r, s && "pulsing", c && "rounded", l && "full-width", d),
10
+ ...e(o),
11
+ ...p,
12
+ children: [u && /* @__PURE__ */ i("span", {
13
+ className: "badge-icon",
14
+ children: u
15
+ }), f]
16
+ });
17
+ }
18
+ //#endregion
19
+ //#region src/components/cards/shared/MCardAction.utils.ts
20
+ function s({ component: e, to: t, href: n, interactive: r, hasClickHandler: i = !1, hasPointerHandler: a = !1, fallbackComponent: o = "div" }) {
21
+ let s = !!(e || n || t), c = e ?? (s ? "a" : o);
22
+ return {
23
+ component: c,
24
+ href: n ?? (c === "a" ? t : void 0),
25
+ to: c === "a" ? void 0 : t,
26
+ isInteractive: !!(r || i || a || n || t),
27
+ isLink: s
28
+ };
29
+ }
30
+ //#endregion
31
+ //#region src/components/cards/MCard/MCard.tsx
32
+ function c({ component: e, to: o, href: c, target: l, rel: u, interactive: d = !1, stretch: f = !0, tone: m = "raised", padded: h = !1, color: g, clickEffect: _, rippleColor: v, skeleton: y = !1, spacing: b, mt: x, mb: S, ml: C, mr: w, mx: T, my: E, className: D, children: O, onPointerDown: k, ...A }) {
33
+ let { component: j, href: M, to: N, isInteractive: P } = s({
34
+ component: e,
35
+ href: c,
36
+ to: o,
37
+ interactive: d,
38
+ hasClickHandler: !!A.onClick,
39
+ hasPointerHandler: !!k
40
+ }), { effectClassName: F, effectLayer: I, handlePointerDown: L } = n({
41
+ effect: _ ?? (P ? "ripple" : "none"),
42
+ disabled: !P || y,
43
+ color: v
44
+ });
45
+ return /* @__PURE__ */ a(r, {
46
+ component: j,
47
+ href: M,
48
+ to: N,
49
+ target: l,
50
+ rel: u,
51
+ tone: m,
52
+ padded: h,
53
+ spacing: b,
54
+ mt: x,
55
+ mb: S,
56
+ ml: C,
57
+ mr: w,
58
+ mx: T,
59
+ my: E,
60
+ className: t("card", !f && "no-stretch", g && `color-${g}`, P && !y && "interactive", y && "skeleton", F, D),
61
+ onPointerDown: (e) => {
62
+ L(e), k?.(e);
63
+ },
64
+ ...A,
65
+ children: [I, y ? /* @__PURE__ */ a("div", {
66
+ className: "card-skeleton-content",
67
+ children: [/* @__PURE__ */ i(p, {
68
+ variant: "rectangle",
69
+ height: "8rem"
70
+ }), /* @__PURE__ */ i(p, {
71
+ variant: "text",
72
+ lines: 3,
73
+ className: "card-skeleton-lines"
74
+ })]
75
+ }) : O]
76
+ });
77
+ }
78
+ function l({ className: e, children: n, ...r }) {
79
+ return /* @__PURE__ */ i("div", {
80
+ className: t("header", e),
81
+ ...r,
82
+ children: n
83
+ });
84
+ }
85
+ function u({ className: e, children: n, ...r }) {
86
+ return /* @__PURE__ */ i("div", {
87
+ className: t("body", e),
88
+ ...r,
89
+ children: n
90
+ });
91
+ }
92
+ function d({ className: e, children: n, ...r }) {
93
+ return /* @__PURE__ */ i("div", {
94
+ className: t("footer", e),
95
+ ...r,
96
+ children: n
97
+ });
98
+ }
99
+ //#endregion
100
+ //#region src/components/feedback/MSkeleton/MSkeleton.tsx
101
+ function f(e, t) {
102
+ return t <= 1 ? "100%" : e === t - 1 ? "68%" : e === t - 2 && t > 3 ? "88%" : "100%";
103
+ }
104
+ function p({ variant: e = "text", width: n, height: r, radius: a, lines: o = 3, gap: s, animate: c = !0, className: l, style: u, ...d }) {
105
+ let p = c === !1 ? "none" : c === !0 ? "shimmer" : c;
106
+ return e === "text" ? /* @__PURE__ */ i("div", {
107
+ className: t("skeleton-group", l),
108
+ style: {
109
+ width: n ?? void 0,
110
+ gap: s ?? void 0,
111
+ ...u
112
+ },
113
+ ...d,
114
+ children: Array.from({ length: o }, (e, n) => /* @__PURE__ */ i("div", {
115
+ className: t("skeleton", "text", p),
116
+ style: {
117
+ width: f(n, o),
118
+ height: r ?? void 0,
119
+ borderRadius: a ?? void 0
120
+ }
121
+ }, n))
122
+ }) : /* @__PURE__ */ i("div", {
123
+ className: t("skeleton", e, p, l),
124
+ style: {
125
+ width: n ?? void 0,
126
+ height: r ?? void 0,
127
+ borderRadius: a ?? void 0,
128
+ ...u
129
+ },
130
+ ...d
131
+ });
132
+ }
133
+ //#endregion
134
+ export { l as a, d as i, c as n, s as o, u as r, o as s, p as t };
135
+
136
+ //# sourceMappingURL=MSkeleton-BvXgnYs_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSkeleton-BvXgnYs_.js","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx","../src/components/cards/shared/MCardAction.utils.ts","../src/components/cards/MCard/MCard.tsx","../src/components/feedback/MSkeleton/MSkeleton.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","import type {ElementType} from 'react'\nimport type {MCardActionProps} from './MCardAction.types'\n\ninterface ResolveMCardActionOptions extends Pick<MCardActionProps, 'component' | 'to' | 'href' | 'interactive'> {\n hasClickHandler?: boolean\n hasPointerHandler?: boolean\n fallbackComponent?: ElementType\n}\n\nexport interface ResolvedMCardAction {\n component: ElementType\n href?: string\n to?: string\n isInteractive: boolean\n isLink: boolean\n}\n\nexport function resolveMCardAction({\n component,\n to,\n href,\n interactive,\n hasClickHandler = false,\n hasPointerHandler = false,\n fallbackComponent = 'div',\n}: ResolveMCardActionOptions): ResolvedMCardAction {\n const isLink = Boolean(component || href || to)\n const resolvedComponent = component ?? (isLink ? 'a' : fallbackComponent)\n const resolvedHref = href ?? (resolvedComponent === 'a' ? to : undefined)\n const resolvedTo = resolvedComponent === 'a' ? undefined : to\n\n return {\n component: resolvedComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive: Boolean(interactive || hasClickHandler || hasPointerHandler || href || to),\n isLink,\n }\n}\n","import type {MCardProps, MCardSectionProps} from './MCard.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {MSurface} from '../../layout'\nimport {MSkeleton} from '../../feedback'\nimport {resolveMCardAction} from '../shared'\nimport './MCard.css'\n\n// Compose elevated content blocks that can optionally behave like an interactive surface.\nexport function MCard({\n component,\n to,\n href,\n target,\n rel,\n interactive = false,\n stretch = true,\n tone = 'raised',\n padded = false,\n color,\n clickEffect,\n rippleColor,\n skeleton = false,\n spacing,\n mt,\n mb,\n ml,\n mr,\n mx,\n my,\n className,\n children,\n onPointerDown,\n ...rest\n}: MCardProps) {\n const {\n component: surfaceComponent,\n href: resolvedHref,\n to: resolvedTo,\n isInteractive,\n } = resolveMCardAction({\n component,\n href,\n to,\n interactive,\n hasClickHandler: Boolean(rest.onClick),\n hasPointerHandler: Boolean(onPointerDown),\n })\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLDivElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n\n return (\n <MSurface\n component={surfaceComponent}\n href={resolvedHref}\n to={resolvedTo}\n target={target}\n rel={rel}\n tone={tone}\n padded={padded}\n spacing={spacing}\n mt={mt}\n mb={mb}\n ml={ml}\n mr={mr}\n mx={mx}\n my={my}\n className={cn(\n 'card',\n !stretch && 'no-stretch',\n color && `color-${color}`,\n isInteractive && !skeleton && 'interactive',\n skeleton && 'skeleton',\n effectClassName,\n className\n )}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {skeleton ? (\n <div className=\"card-skeleton-content\">\n <MSkeleton variant=\"rectangle\" height=\"8rem\" />\n <MSkeleton variant=\"text\" lines={3} className=\"card-skeleton-lines\" />\n </div>\n ) : (\n children\n )}\n </MSurface>\n )\n}\n\n// Render the top section of a card.\nexport function MCardHeader({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('header', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the main content section of a card.\nexport function MCardBody({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('body', className)} {...rest}>\n {children}\n </div>\n )\n}\n\n// Render the bottom section of a card.\nexport function MCardFooter({className, children, ...rest}: MCardSectionProps) {\n return (\n <div className={cn('footer', className)} {...rest}>\n {children}\n </div>\n )\n}\n","import type {MSkeletonProps} from './MSkeleton.types'\nimport {cn} from '../../../utils/cn'\nimport './MSkeleton.css'\n\nfunction getTextLineWidth(index: number, lines: number) {\n if (lines <= 1) {\n return '100%'\n }\n\n if (index === lines - 1) {\n return '68%'\n }\n\n if (index === lines - 2 && lines > 3) {\n return '88%'\n }\n\n return '100%'\n}\n\n// Animated placeholder shown while content is loading.\nexport function MSkeleton({\n variant = 'text',\n width,\n height,\n radius,\n lines = 3,\n gap,\n animate = true,\n className,\n style,\n ...rest\n}: MSkeletonProps) {\n const animation = animate === false ? 'none' : animate === true ? 'shimmer' : animate\n\n if (variant === 'text') {\n return (\n <div\n className={cn('skeleton-group', className)}\n style={{width: width ?? undefined, gap: gap ?? undefined, ...style}}\n {...rest}\n >\n {Array.from({length: lines}, (_, i) => (\n <div\n key={i}\n className={cn('skeleton', 'text', animation)}\n style={{\n width: getTextLineWidth(i, lines),\n height: height ?? undefined,\n borderRadius: radius ?? undefined,\n }}\n />\n ))}\n </div>\n )\n }\n\n return (\n <div\n className={cn('skeleton', variant, animation, className)}\n style={{\n width: width ?? undefined,\n height: height ?? undefined,\n borderRadius: radius ?? undefined,\n ...style,\n }}\n {...rest}\n />\n )\n}\n"],"mappings":"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"}
@@ -72,4 +72,4 @@ function a({ min: a = 0, max: o = 100, step: s = 1, value: c, onChange: l, marks
72
72
  //#endregion
73
73
  export { a as t };
74
74
 
75
- //# sourceMappingURL=MSlider-5141rKeH.js.map
75
+ //# sourceMappingURL=MSlider-CqrusKJQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MSlider-5141rKeH.js","names":[],"sources":["../src/components/controls/MSlider/MSlider.tsx"],"sourcesContent":["import {useCallback, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MSliderProps} from './MSlider.types'\nimport {cn} from '../../../utils/cn'\nimport './MSlider.css'\n\nexport function MSlider({\n min = 0,\n max = 100,\n step = 1,\n value,\n onChange,\n marks,\n label,\n color = 'primary',\n disabled = false,\n className,\n ...rest\n}: MSliderProps) {\n const trackRef = useRef<HTMLDivElement>(null)\n\n const percent = ((value - min) / (max - min)) * 100\n\n const clampAndSnap = useCallback(\n (raw: number) => {\n const snapped = Math.round(raw / step) * step\n return Math.min(max, Math.max(min, snapped))\n },\n [min, max, step]\n )\n\n const valueFromPointer = useCallback(\n (clientX: number) => {\n const track = trackRef.current\n if (!track) return value\n const rect = track.getBoundingClientRect()\n const ratio = (clientX - rect.left) / rect.width\n return clampAndSnap(min + ratio * (max - min))\n },\n [min, max, value, clampAndSnap]\n )\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return\n e.preventDefault()\n const target = e.currentTarget as HTMLElement\n target.setPointerCapture(e.pointerId)\n onChange(valueFromPointer(e.clientX))\n\n const onMove = (ev: PointerEvent) => {\n onChange(valueFromPointer(ev.clientX))\n }\n const onUp = () => {\n target.removeEventListener('pointermove', onMove)\n target.removeEventListener('pointerup', onUp)\n }\n target.addEventListener('pointermove', onMove)\n target.addEventListener('pointerup', onUp)\n },\n [disabled, onChange, valueFromPointer]\n )\n\n return (\n <div className={cn('slider', `color-${color}`, disabled && 'disabled', className)} {...rest}>\n {label && <div className=\"label\">{label}</div>}\n <div className=\"track-wrapper\" ref={trackRef} onPointerDown={handlePointerDown}>\n <div className=\"track\">\n <div className=\"fill\" style={{width: `${percent}%`}} />\n <div className=\"thumb\" style={{left: `${percent}%`}} />\n </div>\n {marks && marks.length > 0 && (\n <div className=\"marks\">\n {marks.map((mark) => {\n const markPercent = ((mark.value - min) / (max - min)) * 100\n return (\n <div key={mark.value} className=\"mark\" style={{left: `${markPercent}%`}}>\n <div className=\"tick\" />\n {mark.label && <div className=\"label\">{mark.label}</div>}\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAMA,SAAgB,EAAQ,EACpB,SAAM,GACN,SAAM,KACN,UAAO,GACP,UACA,aACA,UACA,UACA,WAAQ,WACR,cAAW,IACX,cACA,GAAG,KACU;CACb,IAAM,IAAW,EAAuB,KAAK,EAEvC,KAAY,IAAQ,MAAQ,IAAM,KAAQ,KAE1C,IAAe,GAChB,MAAgB;EACb,IAAM,IAAU,KAAK,MAAM,IAAM,EAAK,GAAG;AACzC,SAAO,KAAK,IAAI,GAAK,KAAK,IAAI,GAAK,EAAQ,CAAC;IAEhD;EAAC;EAAK;EAAK;EAAK,CACnB,EAEK,IAAmB,GACpB,MAAoB;EACjB,IAAM,IAAQ,EAAS;AACvB,MAAI,CAAC,EAAO,QAAO;EACnB,IAAM,IAAO,EAAM,uBAAuB;AAE1C,SAAO,EAAa,KADL,IAAU,EAAK,QAAQ,EAAK,SACR,IAAM,GAAK;IAElD;EAAC;EAAK;EAAK;EAAO;EAAa,CAClC,EAEK,IAAoB,GACrB,MAA0B;AACvB,MAAI,EAAU;AACd,IAAE,gBAAgB;EAClB,IAAM,IAAS,EAAE;AAEjB,EADA,EAAO,kBAAkB,EAAE,UAAU,EACrC,EAAS,EAAiB,EAAE,QAAQ,CAAC;EAErC,IAAM,KAAU,MAAqB;AACjC,KAAS,EAAiB,EAAG,QAAQ,CAAC;KAEpC,UAAa;AAEf,GADA,EAAO,oBAAoB,eAAe,EAAO,EACjD,EAAO,oBAAoB,aAAa,EAAK;;AAGjD,EADA,EAAO,iBAAiB,eAAe,EAAO,EAC9C,EAAO,iBAAiB,aAAa,EAAK;IAE9C;EAAC;EAAU;EAAU;EAAiB,CACzC;AAED,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,UAAU,SAAS,KAAS,KAAY,YAAY,EAAU;EAAE,GAAI;YAAvF,CACK,KAAS,kBAAC,OAAD;GAAK,WAAU;aAAS;GAAY,CAAA,EAC9C,kBAAC,OAAD;GAAK,WAAU;GAAgB,KAAK;GAAU,eAAe;aAA7D,CACI,kBAAC,OAAD;IAAK,WAAU;cAAf,CACI,kBAAC,OAAD;KAAK,WAAU;KAAO,OAAO,EAAC,OAAO,GAAG,EAAQ,IAAG;KAAI,CAAA,EACvD,kBAAC,OAAD;KAAK,WAAU;KAAQ,OAAO,EAAC,MAAM,GAAG,EAAQ,IAAG;KAAI,CAAA,CACrD;OACL,KAAS,EAAM,SAAS,KACrB,kBAAC,OAAD;IAAK,WAAU;cACV,EAAM,KAAK,MAGJ,kBAAC,OAAD;KAAsB,WAAU;KAAO,OAAO,EAAC,MAAM,IAFnC,EAAK,QAAQ,MAAQ,IAAM,KAAQ,IAEe,IAAG;eAAvE,CACI,kBAAC,OAAD,EAAK,WAAU,QAAS,CAAA,EACvB,EAAK,SAAS,kBAAC,OAAD;MAAK,WAAU;gBAAS,EAAK;MAAY,CAAA,CACtD;OAHI,EAAK,MAGT,CAEZ;IACA,CAAA,CAER;KACJ"}
1
+ {"version":3,"file":"MSlider-CqrusKJQ.js","names":[],"sources":["../src/components/controls/MSlider/MSlider.tsx"],"sourcesContent":["import {useCallback, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MSliderProps} from './MSlider.types'\nimport {cn} from '../../../utils/cn'\nimport './MSlider.css'\n\nexport function MSlider({\n min = 0,\n max = 100,\n step = 1,\n value,\n onChange,\n marks,\n label,\n color = 'primary',\n disabled = false,\n className,\n ...rest\n}: MSliderProps) {\n const trackRef = useRef<HTMLDivElement>(null)\n\n const percent = ((value - min) / (max - min)) * 100\n\n const clampAndSnap = useCallback(\n (raw: number) => {\n const snapped = Math.round(raw / step) * step\n return Math.min(max, Math.max(min, snapped))\n },\n [min, max, step]\n )\n\n const valueFromPointer = useCallback(\n (clientX: number) => {\n const track = trackRef.current\n if (!track) return value\n const rect = track.getBoundingClientRect()\n const ratio = (clientX - rect.left) / rect.width\n return clampAndSnap(min + ratio * (max - min))\n },\n [min, max, value, clampAndSnap]\n )\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return\n e.preventDefault()\n const target = e.currentTarget as HTMLElement\n target.setPointerCapture(e.pointerId)\n onChange(valueFromPointer(e.clientX))\n\n const onMove = (ev: PointerEvent) => {\n onChange(valueFromPointer(ev.clientX))\n }\n const onUp = () => {\n target.removeEventListener('pointermove', onMove)\n target.removeEventListener('pointerup', onUp)\n }\n target.addEventListener('pointermove', onMove)\n target.addEventListener('pointerup', onUp)\n },\n [disabled, onChange, valueFromPointer]\n )\n\n return (\n <div className={cn('slider', `color-${color}`, disabled && 'disabled', className)} {...rest}>\n {label && <div className=\"label\">{label}</div>}\n <div className=\"track-wrapper\" ref={trackRef} onPointerDown={handlePointerDown}>\n <div className=\"track\">\n <div className=\"fill\" style={{width: `${percent}%`}} />\n <div className=\"thumb\" style={{left: `${percent}%`}} />\n </div>\n {marks && marks.length > 0 && (\n <div className=\"marks\">\n {marks.map((mark) => {\n const markPercent = ((mark.value - min) / (max - min)) * 100\n return (\n <div key={mark.value} className=\"mark\" style={{left: `${markPercent}%`}}>\n <div className=\"tick\" />\n {mark.label && <div className=\"label\">{mark.label}</div>}\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":";;;;AAMA,SAAgB,EAAQ,EACpB,SAAM,GACN,SAAM,KACN,UAAO,GACP,UACA,aACA,UACA,UACA,WAAQ,WACR,cAAW,IACX,cACA,GAAG,KACU;CACb,IAAM,IAAW,EAAuB,KAAK,EAEvC,KAAY,IAAQ,MAAQ,IAAM,KAAQ,KAE1C,IAAe,GAChB,MAAgB;EACb,IAAM,IAAU,KAAK,MAAM,IAAM,EAAK,GAAG;AACzC,SAAO,KAAK,IAAI,GAAK,KAAK,IAAI,GAAK,EAAQ,CAAC;IAEhD;EAAC;EAAK;EAAK;EAAK,CACnB,EAEK,IAAmB,GACpB,MAAoB;EACjB,IAAM,IAAQ,EAAS;AACvB,MAAI,CAAC,EAAO,QAAO;EACnB,IAAM,IAAO,EAAM,uBAAuB;AAE1C,SAAO,EAAa,KADL,IAAU,EAAK,QAAQ,EAAK,SACR,IAAM,GAAK;IAElD;EAAC;EAAK;EAAK;EAAO;EAAa,CAClC,EAEK,IAAoB,GACrB,MAA0B;AACvB,MAAI,EAAU;AACd,IAAE,gBAAgB;EAClB,IAAM,IAAS,EAAE;AAEjB,EADA,EAAO,kBAAkB,EAAE,UAAU,EACrC,EAAS,EAAiB,EAAE,QAAQ,CAAC;EAErC,IAAM,KAAU,MAAqB;AACjC,KAAS,EAAiB,EAAG,QAAQ,CAAC;KAEpC,UAAa;AAEf,GADA,EAAO,oBAAoB,eAAe,EAAO,EACjD,EAAO,oBAAoB,aAAa,EAAK;;AAGjD,EADA,EAAO,iBAAiB,eAAe,EAAO,EAC9C,EAAO,iBAAiB,aAAa,EAAK;IAE9C;EAAC;EAAU;EAAU;EAAiB,CACzC;AAED,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,UAAU,SAAS,KAAS,KAAY,YAAY,EAAU;EAAE,GAAI;YAAvF,CACK,KAAS,kBAAC,OAAD;GAAK,WAAU;aAAS;GAAY,CAAA,EAC9C,kBAAC,OAAD;GAAK,WAAU;GAAgB,KAAK;GAAU,eAAe;aAA7D,CACI,kBAAC,OAAD;IAAK,WAAU;cAAf,CACI,kBAAC,OAAD;KAAK,WAAU;KAAO,OAAO,EAAC,OAAO,GAAG,EAAQ,IAAG;KAAI,CAAA,EACvD,kBAAC,OAAD;KAAK,WAAU;KAAQ,OAAO,EAAC,MAAM,GAAG,EAAQ,IAAG;KAAI,CAAA,CACrD;OACL,KAAS,EAAM,SAAS,KACrB,kBAAC,OAAD;IAAK,WAAU;cACV,EAAM,KAAK,MAGJ,kBAAC,OAAD;KAAsB,WAAU;KAAO,OAAO,EAAC,MAAM,IAFnC,EAAK,QAAQ,MAAQ,IAAM,KAAQ,IAEe,IAAG;eAAvE,CACI,kBAAC,OAAD,EAAK,WAAU,QAAS,CAAA,EACvB,EAAK,SAAS,kBAAC,OAAD;MAAK,WAAU;gBAAS,EAAK;MAAY,CAAA,CACtD;OAHI,EAAK,MAGT,CAEZ;IACA,CAAA,CAER;KACJ"}
@@ -1,2 +1,2 @@
1
- const e=require(`./cn-CU5TNITO.cjs`);require(`./core-w629c4ND.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({min:r=0,max:i=100,step:a=1,value:o,onChange:s,marks:c,label:l,color:u=`primary`,disabled:d=!1,className:f,...p}){let m=(0,t.useRef)(null),h=(o-r)/(i-r)*100,g=(0,t.useCallback)(e=>{let t=Math.round(e/a)*a;return Math.min(i,Math.max(r,t))},[r,i,a]),_=(0,t.useCallback)(e=>{let t=m.current;if(!t)return o;let n=t.getBoundingClientRect();return g(r+(e-n.left)/n.width*(i-r))},[r,i,o,g]),v=(0,t.useCallback)(e=>{if(d)return;e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId),s(_(e.clientX));let n=e=>{s(_(e.clientX))},r=()=>{t.removeEventListener(`pointermove`,n),t.removeEventListener(`pointerup`,r)};t.addEventListener(`pointermove`,n),t.addEventListener(`pointerup`,r)},[d,s,_]);return(0,n.jsxs)(`div`,{className:e.t(`slider`,`color-${u}`,d&&`disabled`,f),...p,children:[l&&(0,n.jsx)(`div`,{className:`label`,children:l}),(0,n.jsxs)(`div`,{className:`track-wrapper`,ref:m,onPointerDown:v,children:[(0,n.jsxs)(`div`,{className:`track`,children:[(0,n.jsx)(`div`,{className:`fill`,style:{width:`${h}%`}}),(0,n.jsx)(`div`,{className:`thumb`,style:{left:`${h}%`}})]}),c&&c.length>0&&(0,n.jsx)(`div`,{className:`marks`,children:c.map(e=>(0,n.jsxs)(`div`,{className:`mark`,style:{left:`${(e.value-r)/(i-r)*100}%`},children:[(0,n.jsx)(`div`,{className:`tick`}),e.label&&(0,n.jsx)(`div`,{className:`label`,children:e.label})]},e.value))})]})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
- //# sourceMappingURL=MSlider-fhvfj0ft.cjs.map
1
+ const e=require(`./cn-CU5TNITO.cjs`);require(`./core-DAox0BHy.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({min:r=0,max:i=100,step:a=1,value:o,onChange:s,marks:c,label:l,color:u=`primary`,disabled:d=!1,className:f,...p}){let m=(0,t.useRef)(null),h=(o-r)/(i-r)*100,g=(0,t.useCallback)(e=>{let t=Math.round(e/a)*a;return Math.min(i,Math.max(r,t))},[r,i,a]),_=(0,t.useCallback)(e=>{let t=m.current;if(!t)return o;let n=t.getBoundingClientRect();return g(r+(e-n.left)/n.width*(i-r))},[r,i,o,g]),v=(0,t.useCallback)(e=>{if(d)return;e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId),s(_(e.clientX));let n=e=>{s(_(e.clientX))},r=()=>{t.removeEventListener(`pointermove`,n),t.removeEventListener(`pointerup`,r)};t.addEventListener(`pointermove`,n),t.addEventListener(`pointerup`,r)},[d,s,_]);return(0,n.jsxs)(`div`,{className:e.t(`slider`,`color-${u}`,d&&`disabled`,f),...p,children:[l&&(0,n.jsx)(`div`,{className:`label`,children:l}),(0,n.jsxs)(`div`,{className:`track-wrapper`,ref:m,onPointerDown:v,children:[(0,n.jsxs)(`div`,{className:`track`,children:[(0,n.jsx)(`div`,{className:`fill`,style:{width:`${h}%`}}),(0,n.jsx)(`div`,{className:`thumb`,style:{left:`${h}%`}})]}),c&&c.length>0&&(0,n.jsx)(`div`,{className:`marks`,children:c.map(e=>(0,n.jsxs)(`div`,{className:`mark`,style:{left:`${(e.value-r)/(i-r)*100}%`},children:[(0,n.jsx)(`div`,{className:`tick`}),e.label&&(0,n.jsx)(`div`,{className:`label`,children:e.label})]},e.value))})]})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=MSlider-qCGmD4UA.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MSlider-fhvfj0ft.cjs","names":[],"sources":["../src/components/controls/MSlider/MSlider.tsx"],"sourcesContent":["import {useCallback, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MSliderProps} from './MSlider.types'\nimport {cn} from '../../../utils/cn'\nimport './MSlider.css'\n\nexport function MSlider({\n min = 0,\n max = 100,\n step = 1,\n value,\n onChange,\n marks,\n label,\n color = 'primary',\n disabled = false,\n className,\n ...rest\n}: MSliderProps) {\n const trackRef = useRef<HTMLDivElement>(null)\n\n const percent = ((value - min) / (max - min)) * 100\n\n const clampAndSnap = useCallback(\n (raw: number) => {\n const snapped = Math.round(raw / step) * step\n return Math.min(max, Math.max(min, snapped))\n },\n [min, max, step]\n )\n\n const valueFromPointer = useCallback(\n (clientX: number) => {\n const track = trackRef.current\n if (!track) return value\n const rect = track.getBoundingClientRect()\n const ratio = (clientX - rect.left) / rect.width\n return clampAndSnap(min + ratio * (max - min))\n },\n [min, max, value, clampAndSnap]\n )\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return\n e.preventDefault()\n const target = e.currentTarget as HTMLElement\n target.setPointerCapture(e.pointerId)\n onChange(valueFromPointer(e.clientX))\n\n const onMove = (ev: PointerEvent) => {\n onChange(valueFromPointer(ev.clientX))\n }\n const onUp = () => {\n target.removeEventListener('pointermove', onMove)\n target.removeEventListener('pointerup', onUp)\n }\n target.addEventListener('pointermove', onMove)\n target.addEventListener('pointerup', onUp)\n },\n [disabled, onChange, valueFromPointer]\n )\n\n return (\n <div className={cn('slider', `color-${color}`, disabled && 'disabled', className)} {...rest}>\n {label && <div className=\"label\">{label}</div>}\n <div className=\"track-wrapper\" ref={trackRef} onPointerDown={handlePointerDown}>\n <div className=\"track\">\n <div className=\"fill\" style={{width: `${percent}%`}} />\n <div className=\"thumb\" style={{left: `${percent}%`}} />\n </div>\n {marks && marks.length > 0 && (\n <div className=\"marks\">\n {marks.map((mark) => {\n const markPercent = ((mark.value - min) / (max - min)) * 100\n return (\n <div key={mark.value} className=\"mark\" style={{left: `${markPercent}%`}}>\n <div className=\"tick\" />\n {mark.label && <div className=\"label\">{mark.label}</div>}\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"0HAMA,SAAgB,EAAQ,CACpB,MAAM,EACN,MAAM,IACN,OAAO,EACP,QACA,WACA,QACA,QACA,QAAQ,UACR,WAAW,GACX,YACA,GAAG,GACU,CACb,IAAM,GAAA,EAAA,EAAA,QAAkC,KAAK,CAEvC,GAAY,EAAQ,IAAQ,EAAM,GAAQ,IAE1C,GAAA,EAAA,EAAA,aACD,GAAgB,CACb,IAAM,EAAU,KAAK,MAAM,EAAM,EAAK,CAAG,EACzC,OAAO,KAAK,IAAI,EAAK,KAAK,IAAI,EAAK,EAAQ,CAAC,EAEhD,CAAC,EAAK,EAAK,EAAK,CACnB,CAEK,GAAA,EAAA,EAAA,aACD,GAAoB,CACjB,IAAM,EAAQ,EAAS,QACvB,GAAI,CAAC,EAAO,OAAO,EACnB,IAAM,EAAO,EAAM,uBAAuB,CAE1C,OAAO,EAAa,GADL,EAAU,EAAK,MAAQ,EAAK,OACR,EAAM,GAAK,EAElD,CAAC,EAAK,EAAK,EAAO,EAAa,CAClC,CAEK,GAAA,EAAA,EAAA,aACD,GAA0B,CACvB,GAAI,EAAU,OACd,EAAE,gBAAgB,CAClB,IAAM,EAAS,EAAE,cACjB,EAAO,kBAAkB,EAAE,UAAU,CACrC,EAAS,EAAiB,EAAE,QAAQ,CAAC,CAErC,IAAM,EAAU,GAAqB,CACjC,EAAS,EAAiB,EAAG,QAAQ,CAAC,EAEpC,MAAa,CACf,EAAO,oBAAoB,cAAe,EAAO,CACjD,EAAO,oBAAoB,YAAa,EAAK,EAEjD,EAAO,iBAAiB,cAAe,EAAO,CAC9C,EAAO,iBAAiB,YAAa,EAAK,EAE9C,CAAC,EAAU,EAAU,EAAiB,CACzC,CAED,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,SAAU,SAAS,IAAS,GAAY,WAAY,EAAU,CAAE,GAAI,WAAvF,CACK,IAAS,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBAAS,EAAY,CAAA,EAC9C,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAgB,IAAK,EAAU,cAAe,WAA7D,EACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,iBAAf,EACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,OAAO,MAAO,CAAC,MAAO,GAAG,EAAQ,GAAG,CAAI,CAAA,EACvD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,QAAQ,MAAO,CAAC,KAAM,GAAG,EAAQ,GAAG,CAAI,CAAA,CACrD,GACL,GAAS,EAAM,OAAS,IACrB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACV,EAAM,IAAK,IAGJ,EAAA,EAAA,MAAC,MAAD,CAAsB,UAAU,OAAO,MAAO,CAAC,KAAM,IAFnC,EAAK,MAAQ,IAAQ,EAAM,GAAQ,IAEe,GAAG,UAAvE,EACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,OAAS,CAAA,CACvB,EAAK,QAAS,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBAAS,EAAK,MAAY,CAAA,CACtD,EAHI,EAAK,MAGT,CAEZ,CACA,CAAA,CAER,GACJ"}
1
+ {"version":3,"file":"MSlider-qCGmD4UA.cjs","names":[],"sources":["../src/components/controls/MSlider/MSlider.tsx"],"sourcesContent":["import {useCallback, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MSliderProps} from './MSlider.types'\nimport {cn} from '../../../utils/cn'\nimport './MSlider.css'\n\nexport function MSlider({\n min = 0,\n max = 100,\n step = 1,\n value,\n onChange,\n marks,\n label,\n color = 'primary',\n disabled = false,\n className,\n ...rest\n}: MSliderProps) {\n const trackRef = useRef<HTMLDivElement>(null)\n\n const percent = ((value - min) / (max - min)) * 100\n\n const clampAndSnap = useCallback(\n (raw: number) => {\n const snapped = Math.round(raw / step) * step\n return Math.min(max, Math.max(min, snapped))\n },\n [min, max, step]\n )\n\n const valueFromPointer = useCallback(\n (clientX: number) => {\n const track = trackRef.current\n if (!track) return value\n const rect = track.getBoundingClientRect()\n const ratio = (clientX - rect.left) / rect.width\n return clampAndSnap(min + ratio * (max - min))\n },\n [min, max, value, clampAndSnap]\n )\n\n const handlePointerDown = useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return\n e.preventDefault()\n const target = e.currentTarget as HTMLElement\n target.setPointerCapture(e.pointerId)\n onChange(valueFromPointer(e.clientX))\n\n const onMove = (ev: PointerEvent) => {\n onChange(valueFromPointer(ev.clientX))\n }\n const onUp = () => {\n target.removeEventListener('pointermove', onMove)\n target.removeEventListener('pointerup', onUp)\n }\n target.addEventListener('pointermove', onMove)\n target.addEventListener('pointerup', onUp)\n },\n [disabled, onChange, valueFromPointer]\n )\n\n return (\n <div className={cn('slider', `color-${color}`, disabled && 'disabled', className)} {...rest}>\n {label && <div className=\"label\">{label}</div>}\n <div className=\"track-wrapper\" ref={trackRef} onPointerDown={handlePointerDown}>\n <div className=\"track\">\n <div className=\"fill\" style={{width: `${percent}%`}} />\n <div className=\"thumb\" style={{left: `${percent}%`}} />\n </div>\n {marks && marks.length > 0 && (\n <div className=\"marks\">\n {marks.map((mark) => {\n const markPercent = ((mark.value - min) / (max - min)) * 100\n return (\n <div key={mark.value} className=\"mark\" style={{left: `${markPercent}%`}}>\n <div className=\"tick\" />\n {mark.label && <div className=\"label\">{mark.label}</div>}\n </div>\n )\n })}\n </div>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"0HAMA,SAAgB,EAAQ,CACpB,MAAM,EACN,MAAM,IACN,OAAO,EACP,QACA,WACA,QACA,QACA,QAAQ,UACR,WAAW,GACX,YACA,GAAG,GACU,CACb,IAAM,GAAA,EAAA,EAAA,QAAkC,KAAK,CAEvC,GAAY,EAAQ,IAAQ,EAAM,GAAQ,IAE1C,GAAA,EAAA,EAAA,aACD,GAAgB,CACb,IAAM,EAAU,KAAK,MAAM,EAAM,EAAK,CAAG,EACzC,OAAO,KAAK,IAAI,EAAK,KAAK,IAAI,EAAK,EAAQ,CAAC,EAEhD,CAAC,EAAK,EAAK,EAAK,CACnB,CAEK,GAAA,EAAA,EAAA,aACD,GAAoB,CACjB,IAAM,EAAQ,EAAS,QACvB,GAAI,CAAC,EAAO,OAAO,EACnB,IAAM,EAAO,EAAM,uBAAuB,CAE1C,OAAO,EAAa,GADL,EAAU,EAAK,MAAQ,EAAK,OACR,EAAM,GAAK,EAElD,CAAC,EAAK,EAAK,EAAO,EAAa,CAClC,CAEK,GAAA,EAAA,EAAA,aACD,GAA0B,CACvB,GAAI,EAAU,OACd,EAAE,gBAAgB,CAClB,IAAM,EAAS,EAAE,cACjB,EAAO,kBAAkB,EAAE,UAAU,CACrC,EAAS,EAAiB,EAAE,QAAQ,CAAC,CAErC,IAAM,EAAU,GAAqB,CACjC,EAAS,EAAiB,EAAG,QAAQ,CAAC,EAEpC,MAAa,CACf,EAAO,oBAAoB,cAAe,EAAO,CACjD,EAAO,oBAAoB,YAAa,EAAK,EAEjD,EAAO,iBAAiB,cAAe,EAAO,CAC9C,EAAO,iBAAiB,YAAa,EAAK,EAE9C,CAAC,EAAU,EAAU,EAAiB,CACzC,CAED,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,SAAU,SAAS,IAAS,GAAY,WAAY,EAAU,CAAE,GAAI,WAAvF,CACK,IAAS,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBAAS,EAAY,CAAA,EAC9C,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,gBAAgB,IAAK,EAAU,cAAe,WAA7D,EACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,iBAAf,EACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,OAAO,MAAO,CAAC,MAAO,GAAG,EAAQ,GAAG,CAAI,CAAA,EACvD,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,QAAQ,MAAO,CAAC,KAAM,GAAG,EAAQ,GAAG,CAAI,CAAA,CACrD,GACL,GAAS,EAAM,OAAS,IACrB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBACV,EAAM,IAAK,IAGJ,EAAA,EAAA,MAAC,MAAD,CAAsB,UAAU,OAAO,MAAO,CAAC,KAAM,IAFnC,EAAK,MAAQ,IAAQ,EAAM,GAAQ,IAEe,GAAG,UAAvE,EACI,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,OAAS,CAAA,CACvB,EAAK,QAAS,EAAA,EAAA,KAAC,MAAD,CAAK,UAAU,iBAAS,EAAK,MAAY,CAAA,CACtD,EAHI,EAAK,MAGT,CAEZ,CACA,CAAA,CAER,GACJ"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-BaroO-OB.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./layoutProps-B8y2XwHy.cjs`);require(`./core-DAox0BHy.cjs`);let r=require(`react/jsx-runtime`);function i({align:i=`center`,justify:a=`start`,wrap:o=`wrap`,hidden:s,padding:c,fsize:l,mt:u,mb:d,ml:f,mr:p,mx:m,my:h,pt:g,pb:_,pl:v,pr:y,px:b,py:x,fullWidth:S,className:C,style:w,children:T,...E}){let D=n.n({fsize:l});return(0,r.jsx)(`div`,{className:t.t(`inline`,i,`justify-${a}`,o,...n.t({padding:c,fsize:l,mt:u,mb:d,ml:f,mr:p,mx:m,my:h,pt:g,pb:_,pl:v,pr:y,px:b,py:x,fullWidth:S}),C),style:{...D,...w},...e.r(s),...E,children:T})}function a({align:i=`stretch`,hidden:a,spacing:o,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:f,mx:p,my:m,pt:h,pb:g,pl:_,pr:v,px:y,py:b,fullWidth:x,className:S,style:C,children:w,...T}){let E=n.n({fsize:c});return(0,r.jsx)(`div`,{className:t.t(`stack`,i!==`stretch`&&i,...n.t({spacing:o,padding:s,fsize:c,mt:l,mb:u,ml:d,mr:f,mx:p,my:m,pt:h,pb:g,pl:_,pr:v,px:y,py:b,fullWidth:x}),S),style:{...E,...C},...e.r(a),...T,children:w})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=MStack-ByFYGSsy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MStack-ByFYGSsy.cjs","names":[],"sources":["../src/components/layout/MInline/MInline.tsx","../src/components/layout/MStack/MStack.tsx"],"sourcesContent":["import type {MInlineProps} from './MInline.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MInline.css'\n\n// Arrange children horizontally with shared alignment and wrapping helpers.\n// `spacing` is not accepted — the flex gap built into `.inline` already spaces children;\n// outer margin should go through `mx/my` or `padding` to avoid overflowing the parent when paired with `fullWidth`.\nexport function MInline({\n align = 'center',\n justify = 'start',\n wrap = 'wrap',\n hidden,\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\n return (\n <div\n className={cn(\n 'inline',\n align,\n `justify-${justify}`,\n wrap,\n ...getLayoutUtilityClassNames({\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 {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MStackProps} from './MStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MStack.css'\n\n// MStack children vertically with shared layout utility props.\nexport function MStack({\n align = 'stretch',\n hidden,\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}: MStackProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'stack',\n align !== 'stretch' && align,\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 {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n"],"mappings":"iLASA,SAAgB,EAAQ,CACpB,QAAQ,SACR,UAAU,QACV,OAAO,OACP,SACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,WACA,GAAG,GACU,CACb,IAAM,EAAe,EAAA,EAAuB,CAAC,QAAM,CAAC,CAEpD,OACI,EAAA,EAAA,KAAC,MAAD,CACI,UAAW,EAAA,EACP,SACA,EACA,WAAW,IACX,EACA,GAAG,EAAA,EAA2B,CAC1B,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACH,CAAC,CACF,EACH,CACD,MAAO,CAAC,GAAG,EAAc,GAAG,EAAM,CAClC,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACC,CAAA,CC5Dd,SAAgB,EAAO,CACnB,QAAQ,UACR,SACA,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,WACA,GAAG,GACS,CACZ,IAAM,EAAe,EAAA,EAAuB,CAAC,QAAM,CAAC,CAEpD,OACI,EAAA,EAAA,KAAC,MAAD,CACI,UAAW,EAAA,EACP,QACA,IAAU,WAAa,EACvB,GAAG,EAAA,EAA2B,CAC1B,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACH,CAAC,CACF,EACH,CACD,MAAO,CAAC,GAAG,EAAc,GAAG,EAAM,CAClC,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACC,CAAA"}
@@ -0,0 +1,70 @@
1
+ import { r as e } from "./theme-D_f-cmSA.js";
2
+ import { t } from "./cn-YER3QsV1.js";
3
+ import { n, t as r } from "./layoutProps-CE5-ghKw.js";
4
+ import { jsx as i } from "react/jsx-runtime";
5
+ //#region src/components/layout/MInline/MInline.tsx
6
+ function a({ align: a = "center", justify: o = "start", wrap: s = "wrap", hidden: c, padding: l, fsize: u, mt: d, 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 }) {
7
+ let O = n({ fsize: u });
8
+ return /* @__PURE__ */ i("div", {
9
+ className: t("inline", a, `justify-${o}`, s, ...r({
10
+ padding: l,
11
+ fsize: u,
12
+ mt: d,
13
+ mb: f,
14
+ ml: p,
15
+ mr: m,
16
+ mx: h,
17
+ my: g,
18
+ pt: _,
19
+ pb: v,
20
+ pl: y,
21
+ pr: b,
22
+ px: x,
23
+ py: S,
24
+ fullWidth: C
25
+ }), w),
26
+ style: {
27
+ ...O,
28
+ ...T
29
+ },
30
+ ...e(c),
31
+ ...D,
32
+ children: E
33
+ });
34
+ }
35
+ //#endregion
36
+ //#region src/components/layout/MStack/MStack.tsx
37
+ function o({ align: a = "stretch", hidden: o, spacing: s, padding: c, fsize: l, mt: u, mb: d, ml: f, mr: p, mx: m, my: h, pt: g, pb: _, pl: v, pr: y, px: b, py: x, fullWidth: S, className: C, style: w, children: T, ...E }) {
38
+ let D = n({ fsize: l });
39
+ return /* @__PURE__ */ i("div", {
40
+ className: t("stack", a !== "stretch" && a, ...r({
41
+ spacing: s,
42
+ padding: c,
43
+ fsize: l,
44
+ mt: u,
45
+ mb: d,
46
+ ml: f,
47
+ mr: p,
48
+ mx: m,
49
+ my: h,
50
+ pt: g,
51
+ pb: _,
52
+ pl: v,
53
+ pr: y,
54
+ px: b,
55
+ py: x,
56
+ fullWidth: S
57
+ }), C),
58
+ style: {
59
+ ...D,
60
+ ...w
61
+ },
62
+ ...e(o),
63
+ ...E,
64
+ children: T
65
+ });
66
+ }
67
+ //#endregion
68
+ export { a as n, o as t };
69
+
70
+ //# sourceMappingURL=MStack-DFIc3S4_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MStack-DFIc3S4_.js","names":[],"sources":["../src/components/layout/MInline/MInline.tsx","../src/components/layout/MStack/MStack.tsx"],"sourcesContent":["import type {MInlineProps} from './MInline.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MInline.css'\n\n// Arrange children horizontally with shared alignment and wrapping helpers.\n// `spacing` is not accepted — the flex gap built into `.inline` already spaces children;\n// outer margin should go through `mx/my` or `padding` to avoid overflowing the parent when paired with `fullWidth`.\nexport function MInline({\n align = 'center',\n justify = 'start',\n wrap = 'wrap',\n hidden,\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\n return (\n <div\n className={cn(\n 'inline',\n align,\n `justify-${justify}`,\n wrap,\n ...getLayoutUtilityClassNames({\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 {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n","import type {MStackProps} from './MStack.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MStack.css'\n\n// MStack children vertically with shared layout utility props.\nexport function MStack({\n align = 'stretch',\n hidden,\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}: MStackProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n\n return (\n <div\n className={cn(\n 'stack',\n align !== 'stretch' && align,\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 {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </div>\n )\n}\n"],"mappings":";;;;;AASA,SAAgB,EAAQ,EACpB,WAAQ,UACR,aAAU,SACV,UAAO,QACP,WACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACU;CACb,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,UACA,GACA,WAAW,KACX,GACA,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACC,CAAA;;;;AC5Dd,SAAgB,EAAO,EACnB,WAAQ,WACR,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACS;CACZ,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC;AAEpD,QACI,kBAAC,OAAD;EACI,WAAW,EACP,SACA,MAAU,aAAa,GACvB,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACC,CAAA"}
@@ -1,2 +1,2 @@
1
- const e=require(`./theme-Bb_NAEiZ.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MText-BbEkc0Ik.cjs`);require(`./core-w629c4ND.cjs`);let r=require(`react/jsx-runtime`);function i({as:i=`span`,size:a=`sm`,tone:o=`muted`,hidden:s,color:c,className:l,children:u,...d}){return(0,r.jsx)(i,{className:t.t(`subtext`,!c&&o,a,...n.n({color:c}),l),...e.r(s),...d,children:u})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=MSubText-C1unzaCF.cjs.map
1
+ const e=require(`./theme-BaroO-OB.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MText-D0fI_D_Q.cjs`);require(`./core-DAox0BHy.cjs`);let r=require(`react/jsx-runtime`);function i({as:i=`span`,size:a=`sm`,tone:o=`muted`,hidden:s,color:c,className:l,children:u,...d}){return(0,r.jsx)(i,{className:t.t(`subtext`,!c&&o,a,...n.n({color:c}),l),...e.r(s),...d,children:u})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=MSubText-1ilKSz8e.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MSubText-C1unzaCF.cjs","names":[],"sources":["../src/components/typography/MSubText/MSubText.tsx"],"sourcesContent":["import type {MSubTextProps} from './MSubText.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport './MSubText.css'\n\n// Render small, muted secondary text for captions, hints and metadata.\nexport function MSubText({\n as = 'span',\n size = 'sm',\n tone = 'muted',\n hidden,\n color,\n className,\n children,\n ...rest\n}: MSubTextProps) {\n const Component = as\n return (\n <Component\n className={cn('subtext', !color && tone, size, ...getAppearanceClassNames({color}), className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":"2KAOA,SAAgB,EAAS,CACrB,KAAK,OACL,OAAO,KACP,OAAO,QACP,SACA,QACA,YACA,WACA,GAAG,GACW,CAEd,OACI,EAAA,EAAA,KAFc,EAEd,CACI,UAAW,EAAA,EAAG,UAAW,CAAC,GAAS,EAAM,EAAM,GAAG,EAAA,EAAwB,CAAC,QAAM,CAAC,CAAE,EAAU,CAC9F,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACO,CAAA"}
1
+ {"version":3,"file":"MSubText-1ilKSz8e.cjs","names":[],"sources":["../src/components/typography/MSubText/MSubText.tsx"],"sourcesContent":["import type {MSubTextProps} from './MSubText.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getAppearanceClassNames} from '../../../utils/appearanceProps'\nimport './MSubText.css'\n\n// Render small, muted secondary text for captions, hints and metadata.\nexport function MSubText({\n as = 'span',\n size = 'sm',\n tone = 'muted',\n hidden,\n color,\n className,\n children,\n ...rest\n}: MSubTextProps) {\n const Component = as\n return (\n <Component\n className={cn('subtext', !color && tone, size, ...getAppearanceClassNames({color}), className)}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":"2KAOA,SAAgB,EAAS,CACrB,KAAK,OACL,OAAO,KACP,OAAO,QACP,SACA,QACA,YACA,WACA,GAAG,GACW,CAEd,OACI,EAAA,EAAA,KAFc,EAEd,CACI,UAAW,EAAA,EAAG,UAAW,CAAC,GAAS,EAAM,EAAM,GAAG,EAAA,EAAwB,CAAC,QAAM,CAAC,CAAE,EAAU,CAC9F,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACO,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { r as e } from "./theme-D_f-cmSA.js";
2
+ import { t } from "./cn-YER3QsV1.js";
3
+ import { n, t as r } from "./layoutProps-CE5-ghKw.js";
4
+ import { jsx as i } from "react/jsx-runtime";
5
+ //#region src/components/layout/MSurface/MSurface.tsx
6
+ function a({ component: a, to: o, href: s, target: c, rel: l, tone: u = "default", outlined: d = !0, padded: f = !0, hidden: p, spacing: m, padding: h, fsize: g, mt: _, mb: v, ml: y, mr: b, mx: x, my: S, pt: C, pb: w, pl: T, pr: E, px: D, py: O, fullWidth: k, className: A, style: j, children: M, ...N }) {
7
+ let P = n({ fsize: g }), F = a ?? "div";
8
+ return /* @__PURE__ */ i(F, {
9
+ href: F === "a" || a ? s : void 0,
10
+ to: a ? o : void 0,
11
+ target: F === "a" || a ? c : void 0,
12
+ rel: F === "a" || a ? l : void 0,
13
+ className: t("surface", u, d && "outlined", f && "padded", ...r({
14
+ spacing: m,
15
+ padding: h,
16
+ fsize: g,
17
+ mt: _,
18
+ mb: v,
19
+ ml: y,
20
+ mr: b,
21
+ mx: x,
22
+ my: S,
23
+ pt: C,
24
+ pb: w,
25
+ pl: T,
26
+ pr: E,
27
+ px: D,
28
+ py: O,
29
+ fullWidth: k
30
+ }), A),
31
+ style: {
32
+ ...P,
33
+ ...j
34
+ },
35
+ ...e(p),
36
+ ...N,
37
+ children: M
38
+ });
39
+ }
40
+ //#endregion
41
+ export { a as t };
42
+
43
+ //# sourceMappingURL=MSurface-CmVIQC1A.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSurface-CmVIQC1A.js","names":[],"sources":["../src/components/layout/MSurface/MSurface.tsx"],"sourcesContent":["import type {MSurfaceProps} from './MSurface.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MSurface.css'\n\n// Render a reusable surface primitive for cards, panels and preview blocks.\nexport function MSurface({\n component,\n to,\n href,\n target,\n rel,\n tone = 'default',\n outlined = true,\n padded = true,\n hidden,\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}: MSurfaceProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const Component = component ?? 'div'\n\n return (\n <Component\n href={Component === 'a' || component ? href : undefined}\n to={component ? to : undefined}\n target={Component === 'a' || component ? target : undefined}\n rel={Component === 'a' || component ? rel : undefined}\n className={cn(\n 'surface',\n tone,\n outlined && 'outlined',\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 {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":";;;;;AAOA,SAAgB,EAAS,EACrB,cACA,OACA,SACA,WACA,QACA,UAAO,WACP,cAAW,IACX,YAAS,IACT,WACA,YACA,YACA,UACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,cACA,cACA,UACA,aACA,GAAG,KACW;CACd,IAAM,IAAe,EAAuB,EAAC,UAAM,CAAC,EAC9C,IAAY,KAAa;AAE/B,QACI,kBAAC,GAAD;EACI,MAAM,MAAc,OAAO,IAAY,IAAO,KAAA;EAC9C,IAAI,IAAY,IAAK,KAAA;EACrB,QAAQ,MAAc,OAAO,IAAY,IAAS,KAAA;EAClD,KAAK,MAAc,OAAO,IAAY,IAAM,KAAA;EAC5C,WAAW,EACP,WACA,GACA,KAAY,YACZ,KAAU,UACV,GAAG,EAA2B;GAC1B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH,CAAC,EACF,EACH;EACD,OAAO;GAAC,GAAG;GAAc,GAAG;GAAM;EAClC,GAAI,EAAe,EAAO;EAC1B,GAAI;EAEH;EACO,CAAA"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./theme-BaroO-OB.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./layoutProps-B8y2XwHy.cjs`);require(`./core-DAox0BHy.cjs`);let r=require(`react/jsx-runtime`);function i({component:i,to:a,href:o,target:s,rel:c,tone:l=`default`,outlined:u=!0,padded:d=!0,hidden:f,spacing:p,padding:m,fsize:h,mt:g,mb:_,ml:v,mr:y,mx:b,my:x,pt:S,pb:C,pl:w,pr:T,px:E,py:D,fullWidth:O,className:k,style:A,children:j,...M}){let N=n.n({fsize:h}),P=i??`div`;return(0,r.jsx)(P,{href:P===`a`||i?o:void 0,to:i?a:void 0,target:P===`a`||i?s:void 0,rel:P===`a`||i?c:void 0,className:t.t(`surface`,l,u&&`outlined`,d&&`padded`,...n.t({spacing:p,padding:m,fsize:h,mt:g,mb:_,ml:v,mr:y,mx:b,my:x,pt:S,pb:C,pl:w,pr:T,px:E,py:D,fullWidth:O}),k),style:{...N,...A},...e.r(f),...M,children:j})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=MSurface-CpAuwpHv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSurface-CpAuwpHv.cjs","names":[],"sources":["../src/components/layout/MSurface/MSurface.tsx"],"sourcesContent":["import type {MSurfaceProps} from './MSurface.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getLayoutUtilityClassNames, getLayoutUtilityStyles} from '../../../utils/layoutProps'\nimport './MSurface.css'\n\n// Render a reusable surface primitive for cards, panels and preview blocks.\nexport function MSurface({\n component,\n to,\n href,\n target,\n rel,\n tone = 'default',\n outlined = true,\n padded = true,\n hidden,\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}: MSurfaceProps) {\n const utilityStyle = getLayoutUtilityStyles({fsize})\n const Component = component ?? 'div'\n\n return (\n <Component\n href={Component === 'a' || component ? href : undefined}\n to={component ? to : undefined}\n target={Component === 'a' || component ? target : undefined}\n rel={Component === 'a' || component ? rel : undefined}\n className={cn(\n 'surface',\n tone,\n outlined && 'outlined',\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 {...getHiddenProps(hidden)}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n"],"mappings":"iLAOA,SAAgB,EAAS,CACrB,YACA,KACA,OACA,SACA,MACA,OAAO,UACP,WAAW,GACX,SAAS,GACT,SACA,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACA,YACA,QACA,WACA,GAAG,GACW,CACd,IAAM,EAAe,EAAA,EAAuB,CAAC,QAAM,CAAC,CAC9C,EAAY,GAAa,MAE/B,OACI,EAAA,EAAA,KAAC,EAAD,CACI,KAAM,IAAc,KAAO,EAAY,EAAO,IAAA,GAC9C,GAAI,EAAY,EAAK,IAAA,GACrB,OAAQ,IAAc,KAAO,EAAY,EAAS,IAAA,GAClD,IAAK,IAAc,KAAO,EAAY,EAAM,IAAA,GAC5C,UAAW,EAAA,EACP,UACA,EACA,GAAY,WACZ,GAAU,SACV,GAAG,EAAA,EAA2B,CAC1B,UACA,UACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,YACH,CAAC,CACF,EACH,CACD,MAAO,CAAC,GAAG,EAAc,GAAG,EAAM,CAClC,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,EAEH,WACO,CAAA"}
@@ -86,4 +86,4 @@ function c({ items: t, value: c, defaultValue: l, onValueChange: u, variant: d =
86
86
  //#endregion
87
87
  export { c as t };
88
88
 
89
- //# sourceMappingURL=MTabs-Dg31d-_D.js.map
89
+ //# sourceMappingURL=MTabs-BQZ--mMq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MTabs-Dg31d-_D.js","names":[],"sources":["../src/components/layout/MTabs/MTabs.tsx"],"sourcesContent":["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"],"mappings":";;;;;AAkBA,SAAS,EAAa,EAAC,SAAM,aAAU,UAAO,YAAS,gBAAa,gBAAa,eAA8B;CAC3G,IAAM,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAwC;EAC7G,QAAQ;EACR,UAAU,EAAK;EACf,UAAU;EACV,OAAO;EACV,CAAC;AAEF,QACI,kBAAC,UAAD;EACI,MAAK;EACL,IAAI;EACJ,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,UAAU,IAAW,IAAI;EACzB,UAAU,EAAK;EACf,WAAW,EAAG,gBAAgB,KAAY,UAAU,EAAK,YAAY,YAAY,EAAgB;EACjG,eAAe;EACf,YAAY,MAAU;AAClB,IAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc;;EAG1C,eAAe,EAAS,EAAK,MAAM;YAfvC;GAiBK;GACA,EAAK,QAAQ,kBAAC,QAAD;IAAM,WAAU;cAAa,EAAK;IAAY,CAAA;GAC5D,kBAAC,QAAD;IAAM,WAAU;cAAc,EAAK;IAAa,CAAA;GAC3C;;;AAIjB,SAAgB,EAAM,EAClB,UACA,UACA,iBACA,kBACA,aAAU,aACV,iBAAc,cACd,UAAO,MACP,eAAY,IACZ,gBAAa,IACb,mBACA,iBAAc,UACd,gBACA,cACA,GAAG,KACQ;CAMX,IAAM,CAAC,GAAe,KAAoB,EAJpB,QACZ,KAAgB,EAAM,MAAM,MAAS,CAAC,EAAK,SAAS,EAAE,SAAS,IACrE,CAAC,GAAc,EAAM,CACxB,CACgE,EAC3D,IAAc,KAAS,GACvB,IAAa,EAAM,MAAM,MAAS,EAAK,UAAU,EAAY,IAAI,EAAM,IACvE,IAAS,GAAO;CAGtB,SAAS,EAAU,GAAmB;AAIlC,EAHI,MAAU,KAAA,KACV,EAAiB,EAAU,EAE/B,IAAgB,EAAU;;CAI9B,SAAS,EAAc,GAAsC;EACzD,IAAM,IAAe,EAAM,QAAQ,MAAS,CAAC,EAAK,SAAS,EACrD,IAAe,EAAa,WAAW,MAAS,EAAK,UAAU,GAAY,MAAM;AAEvF,MAAI,MAAiB,GACjB;EAGJ,IAAM,IAAW,MAAgB,aAAa,CAAC,YAAY,GAAG,CAAC,cAAc,YAAY,EACnF,IAAe,MAAgB,aAAa,CAAC,UAAU,GAAG,CAAC,aAAa,UAAU;AAExF,MAAI,EAAS,SAAS,EAAM,IAAI,EAAE;AAC9B,KAAM,gBAAgB;GACtB,IAAM,IAAW,GAAc,IAAe,KAAK,EAAa;AAChE,KAAU,EAAS,MAAM;;AAG7B,MAAI,EAAa,SAAS,EAAM,IAAI,EAAE;AAClC,KAAM,gBAAgB;GACtB,IAAM,IAAW,GAAc,IAAe,IAAI,EAAa,UAAU,EAAa;AACtF,KAAU,EAAS,MAAM;;;AAIjC,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,QAAQ,GAAS,GAAa,GAAM,KAAa,cAAc,EAAU;EAAE,GAAI;YAAlG,CACI,kBAAC,OAAD;GAAK,WAAU;GAAY,MAAK;GAAU,oBAAkB;GAAa,WAAW;aAC/E,EAAM,KAAK,MAMJ,kBAAC,GAAD;IAEU;IACI,UARD,EAAK,UAAU,GAAY;IAS7B,OARD,GAAG,EAAO,GAAG,EAAK,MAAM;IASrB,SARD,GAAG,EAAO,GAAG,EAAK,MAAM;IASnB;IACA;IACb,UAAU;IACZ,EARO,EAAK,MAQZ,CAER;GACA,CAAA,EAEL,KAAc,GAAY,YAAY,KAAA,KACnC,kBAAC,OAAD;GAEI,IAAI,GAAG,EAAO,GAAG,EAAW,MAAM;GAClC,MAAK;GACL,mBAAiB,GAAG,EAAO,GAAG,EAAW,MAAM;GAC/C,WAAW,EAAG,cAAc,EAAe;aAE1C,EAAW;GACV,EAPG,EAAW,MAOd,CAER"}
1
+ {"version":3,"file":"MTabs-BQZ--mMq.js","names":[],"sources":["../src/components/layout/MTabs/MTabs.tsx"],"sourcesContent":["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"],"mappings":";;;;;AAkBA,SAAS,EAAa,EAAC,SAAM,aAAU,UAAO,YAAS,gBAAa,gBAAa,eAA8B;CAC3G,IAAM,EAAC,oBAAiB,gBAAa,sBAAmB,qBAAiB,EAAwC;EAC7G,QAAQ;EACR,UAAU,EAAK;EACf,UAAU;EACV,OAAO;EACV,CAAC;AAEF,QACI,kBAAC,UAAD;EACI,MAAK;EACL,IAAI;EACJ,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,UAAU,IAAW,IAAI;EACzB,UAAU,EAAK;EACf,WAAW,EAAG,gBAAgB,KAAY,UAAU,EAAK,YAAY,YAAY,EAAgB;EACjG,eAAe;EACf,YAAY,MAAU;AAClB,IAAI,EAAM,QAAQ,OAAO,EAAM,QAAQ,YACnC,EAAc,EAAM,cAAc;;EAG1C,eAAe,EAAS,EAAK,MAAM;YAfvC;GAiBK;GACA,EAAK,QAAQ,kBAAC,QAAD;IAAM,WAAU;cAAa,EAAK;IAAY,CAAA;GAC5D,kBAAC,QAAD;IAAM,WAAU;cAAc,EAAK;IAAa,CAAA;GAC3C;;;AAIjB,SAAgB,EAAM,EAClB,UACA,UACA,iBACA,kBACA,aAAU,aACV,iBAAc,cACd,UAAO,MACP,eAAY,IACZ,gBAAa,IACb,mBACA,iBAAc,UACd,gBACA,cACA,GAAG,KACQ;CAMX,IAAM,CAAC,GAAe,KAAoB,EAJpB,QACZ,KAAgB,EAAM,MAAM,MAAS,CAAC,EAAK,SAAS,EAAE,SAAS,IACrE,CAAC,GAAc,EAAM,CACxB,CACgE,EAC3D,IAAc,KAAS,GACvB,IAAa,EAAM,MAAM,MAAS,EAAK,UAAU,EAAY,IAAI,EAAM,IACvE,IAAS,GAAO;CAGtB,SAAS,EAAU,GAAmB;AAIlC,EAHI,MAAU,KAAA,KACV,EAAiB,EAAU,EAE/B,IAAgB,EAAU;;CAI9B,SAAS,EAAc,GAAsC;EACzD,IAAM,IAAe,EAAM,QAAQ,MAAS,CAAC,EAAK,SAAS,EACrD,IAAe,EAAa,WAAW,MAAS,EAAK,UAAU,GAAY,MAAM;AAEvF,MAAI,MAAiB,GACjB;EAGJ,IAAM,IAAW,MAAgB,aAAa,CAAC,YAAY,GAAG,CAAC,cAAc,YAAY,EACnF,IAAe,MAAgB,aAAa,CAAC,UAAU,GAAG,CAAC,aAAa,UAAU;AAExF,MAAI,EAAS,SAAS,EAAM,IAAI,EAAE;AAC9B,KAAM,gBAAgB;GACtB,IAAM,IAAW,GAAc,IAAe,KAAK,EAAa;AAChE,KAAU,EAAS,MAAM;;AAG7B,MAAI,EAAa,SAAS,EAAM,IAAI,EAAE;AAClC,KAAM,gBAAgB;GACtB,IAAM,IAAW,GAAc,IAAe,IAAI,EAAa,UAAU,EAAa;AACtF,KAAU,EAAS,MAAM;;;AAIjC,QACI,kBAAC,OAAD;EAAK,WAAW,EAAG,QAAQ,GAAS,GAAa,GAAM,KAAa,cAAc,EAAU;EAAE,GAAI;YAAlG,CACI,kBAAC,OAAD;GAAK,WAAU;GAAY,MAAK;GAAU,oBAAkB;GAAa,WAAW;aAC/E,EAAM,KAAK,MAMJ,kBAAC,GAAD;IAEU;IACI,UARD,EAAK,UAAU,GAAY;IAS7B,OARD,GAAG,EAAO,GAAG,EAAK,MAAM;IASrB,SARD,GAAG,EAAO,GAAG,EAAK,MAAM;IASnB;IACA;IACb,UAAU;IACZ,EARO,EAAK,MAQZ,CAER;GACA,CAAA,EAEL,KAAc,GAAY,YAAY,KAAA,KACnC,kBAAC,OAAD;GAEI,IAAI,GAAG,EAAO,GAAG,EAAW,MAAM;GAClC,MAAK;GACL,mBAAiB,GAAG,EAAO,GAAG,EAAW,MAAM;GAC/C,WAAW,EAAG,cAAc,EAAe;aAE1C,EAAW;GACV,EAPG,EAAW,MAOd,CAER"}
@@ -1,2 +1,2 @@
1
- const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-CtXlbjhC.cjs`);require(`./core-w629c4ND.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i({item:n,isActive:i,tabId:a,panelId:o,clickEffect:s,rippleColor:c,onSelect:l}){let{effectClassName:u,effectLayer:d,handlePointerDown:f,triggerEffect:p}=t.t({effect:s,disabled:n.disabled,centered:!0,color:c});return(0,r.jsxs)(`button`,{type:`button`,id:a,role:`tab`,"aria-selected":i,"aria-controls":o,tabIndex:i?0:-1,disabled:n.disabled,className:e.t(`tabs-trigger`,i&&`active`,n.disabled&&`disabled`,u),onPointerDown:f,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&p(e.currentTarget)},onClick:()=>l(n.value),children:[d,n.icon&&(0,r.jsx)(`span`,{className:`tabs-icon`,children:n.icon}),(0,r.jsx)(`span`,{className:`tabs-label`,children:n.label})]})}function a({items:t,value:a,defaultValue:o,onValueChange:s,variant:c=`underline`,orientation:l=`horizontal`,size:u=`md`,fullWidth:d=!1,showPanels:f=!0,panelClassName:p,clickEffect:m=`ripple`,rippleColor:h,className:g,..._}){let[v,y]=(0,n.useState)((0,n.useMemo)(()=>o??t.find(e=>!e.disabled)?.value??``,[o,t])),b=a??v,x=t.find(e=>e.value===b)??t[0],S=(0,n.useId)();function C(e){a===void 0&&y(e),s?.(e)}function w(e){let n=t.filter(e=>!e.disabled),r=n.findIndex(e=>e.value===x?.value);if(r===-1)return;let i=l===`vertical`?[`ArrowDown`]:[`ArrowRight`,`ArrowDown`],a=l===`vertical`?[`ArrowUp`]:[`ArrowLeft`,`ArrowUp`];if(i.includes(e.key)){e.preventDefault();let t=n[(r+1)%n.length];C(t.value)}if(a.includes(e.key)){e.preventDefault();let t=n[(r-1+n.length)%n.length];C(t.value)}}return(0,r.jsxs)(`div`,{className:e.t(`tabs`,c,l,u,d&&`full-width`,g),..._,children:[(0,r.jsx)(`div`,{className:`tabs-list`,role:`tablist`,"aria-orientation":l,onKeyDown:w,children:t.map(e=>(0,r.jsx)(i,{item:e,isActive:e.value===x?.value,tabId:`${S}-${e.value}-tab`,panelId:`${S}-${e.value}-panel`,clickEffect:m,rippleColor:h,onSelect:C},e.value))}),f&&x?.content!==void 0&&(0,r.jsx)(`div`,{id:`${S}-${x.value}-panel`,role:`tabpanel`,"aria-labelledby":`${S}-${x.value}-tab`,className:e.t(`tabs-panel`,p),children:x.content},x.value)]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=MTabs-DuLqttVp.cjs.map
1
+ const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-Bo8285cg.cjs`);require(`./core-DAox0BHy.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);function i({item:n,isActive:i,tabId:a,panelId:o,clickEffect:s,rippleColor:c,onSelect:l}){let{effectClassName:u,effectLayer:d,handlePointerDown:f,triggerEffect:p}=t.t({effect:s,disabled:n.disabled,centered:!0,color:c});return(0,r.jsxs)(`button`,{type:`button`,id:a,role:`tab`,"aria-selected":i,"aria-controls":o,tabIndex:i?0:-1,disabled:n.disabled,className:e.t(`tabs-trigger`,i&&`active`,n.disabled&&`disabled`,u),onPointerDown:f,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&p(e.currentTarget)},onClick:()=>l(n.value),children:[d,n.icon&&(0,r.jsx)(`span`,{className:`tabs-icon`,children:n.icon}),(0,r.jsx)(`span`,{className:`tabs-label`,children:n.label})]})}function a({items:t,value:a,defaultValue:o,onValueChange:s,variant:c=`underline`,orientation:l=`horizontal`,size:u=`md`,fullWidth:d=!1,showPanels:f=!0,panelClassName:p,clickEffect:m=`ripple`,rippleColor:h,className:g,..._}){let[v,y]=(0,n.useState)((0,n.useMemo)(()=>o??t.find(e=>!e.disabled)?.value??``,[o,t])),b=a??v,x=t.find(e=>e.value===b)??t[0],S=(0,n.useId)();function C(e){a===void 0&&y(e),s?.(e)}function w(e){let n=t.filter(e=>!e.disabled),r=n.findIndex(e=>e.value===x?.value);if(r===-1)return;let i=l===`vertical`?[`ArrowDown`]:[`ArrowRight`,`ArrowDown`],a=l===`vertical`?[`ArrowUp`]:[`ArrowLeft`,`ArrowUp`];if(i.includes(e.key)){e.preventDefault();let t=n[(r+1)%n.length];C(t.value)}if(a.includes(e.key)){e.preventDefault();let t=n[(r-1+n.length)%n.length];C(t.value)}}return(0,r.jsxs)(`div`,{className:e.t(`tabs`,c,l,u,d&&`full-width`,g),..._,children:[(0,r.jsx)(`div`,{className:`tabs-list`,role:`tablist`,"aria-orientation":l,onKeyDown:w,children:t.map(e=>(0,r.jsx)(i,{item:e,isActive:e.value===x?.value,tabId:`${S}-${e.value}-tab`,panelId:`${S}-${e.value}-panel`,clickEffect:m,rippleColor:h,onSelect:C},e.value))}),f&&x?.content!==void 0&&(0,r.jsx)(`div`,{id:`${S}-${x.value}-panel`,role:`tabpanel`,"aria-labelledby":`${S}-${x.value}-tab`,className:e.t(`tabs-panel`,p),children:x.content},x.value)]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=MTabs-DeUn6bIp.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MTabs-DuLqttVp.cjs","names":[],"sources":["../src/components/layout/MTabs/MTabs.tsx"],"sourcesContent":["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"],"mappings":"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"}
1
+ {"version":3,"file":"MTabs-DeUn6bIp.cjs","names":[],"sources":["../src/components/layout/MTabs/MTabs.tsx"],"sourcesContent":["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"],"mappings":"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"}