@banzamel/mineralui 1.6.3 → 1.7.1

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 (306) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-BVJh6kgW.cjs → MAvatar-CV3xJOmx.cjs} +2 -2
  3. package/dist/{MAvatar-BVJh6kgW.cjs.map → MAvatar-CV3xJOmx.cjs.map} +1 -1
  4. package/dist/{MBadge-B4x-Lx7e.cjs → MBadge-BoxsfX_h.cjs} +2 -2
  5. package/dist/{MBadge-B4x-Lx7e.cjs.map → MBadge-BoxsfX_h.cjs.map} +1 -1
  6. package/dist/{MButton-DrkVdRDy.cjs → MButton-B9k45kH-.cjs} +2 -2
  7. package/dist/{MButton-DrkVdRDy.cjs.map → MButton-B9k45kH-.cjs.map} +1 -1
  8. package/dist/{MCheckbox-C40ESQRe.cjs → MCheckbox-CdDWGVp3.cjs} +2 -2
  9. package/dist/{MCheckbox-C40ESQRe.cjs.map → MCheckbox-CdDWGVp3.cjs.map} +1 -1
  10. package/dist/MDataTable-C3v15no3.cjs +2 -0
  11. package/dist/MDataTable-C3v15no3.cjs.map +1 -0
  12. package/dist/MDataTable-C_XiTGTF.js +297 -0
  13. package/dist/MDataTable-C_XiTGTF.js.map +1 -0
  14. package/dist/{MDrawer-DFkrFrnD.cjs → MDrawer-BtA_Xgj0.cjs} +2 -2
  15. package/dist/{MDrawer-DFkrFrnD.cjs.map → MDrawer-BtA_Xgj0.cjs.map} +1 -1
  16. package/dist/{MDropdownMenu-D79Cm5aS.js → MDropdownMenu-BWgf92rJ.js} +5 -5
  17. package/dist/MDropdownMenu-BWgf92rJ.js.map +1 -0
  18. package/dist/MDropdownMenu-mGE19gCi.cjs +2 -0
  19. package/dist/MDropdownMenu-mGE19gCi.cjs.map +1 -0
  20. package/dist/{MGalleryIllustration-BB3DoCl_.cjs → MGalleryIllustration-D2agVuZM.cjs} +2 -2
  21. package/dist/{MGalleryIllustration-BB3DoCl_.cjs.map → MGalleryIllustration-D2agVuZM.cjs.map} +1 -1
  22. package/dist/{MHeading-BhCNoJeW.cjs → MHeading-BQCe_JhE.cjs} +2 -2
  23. package/dist/{MHeading-BhCNoJeW.cjs.map → MHeading-BQCe_JhE.cjs.map} +1 -1
  24. package/dist/{MI18nProvider-B2sE0x5D.cjs → MI18nProvider-CqAwaswx.cjs} +2 -2
  25. package/dist/{MI18nProvider-B2sE0x5D.cjs.map → MI18nProvider-CqAwaswx.cjs.map} +1 -1
  26. package/dist/{MImage-gwFphZk2.js → MImage-I0LPhcqF.js} +75 -69
  27. package/dist/MImage-I0LPhcqF.js.map +1 -0
  28. package/dist/MImage-hnSqIPaC.cjs +2 -0
  29. package/dist/MImage-hnSqIPaC.cjs.map +1 -0
  30. package/dist/{MInline-CHrh3PHH.cjs → MInline-FEXWkr71.cjs} +2 -2
  31. package/dist/{MInline-CHrh3PHH.cjs.map → MInline-FEXWkr71.cjs.map} +1 -1
  32. package/dist/{MInput-DYqV3-rQ.cjs → MInput-5-alcVsu.cjs} +2 -2
  33. package/dist/{MInput-DYqV3-rQ.cjs.map → MInput-5-alcVsu.cjs.map} +1 -1
  34. package/dist/{MInput-bzSwK880.js → MInput-CNSvoRiu.js} +2 -1
  35. package/dist/{MInput-bzSwK880.js.map → MInput-CNSvoRiu.js.map} +1 -1
  36. package/dist/{MInputCVC-BHpMHTO5.js → MInputCVC-BgougfgN.js} +3 -3
  37. package/dist/{MInputCVC-BHpMHTO5.js.map → MInputCVC-BgougfgN.js.map} +1 -1
  38. package/dist/{MInputCVC-5NkYSxV8.cjs → MInputCVC-CRWp1fYi.cjs} +2 -2
  39. package/dist/{MInputCVC-5NkYSxV8.cjs.map → MInputCVC-CRWp1fYi.cjs.map} +1 -1
  40. package/dist/{MInputSearch-Dh4C3Tz5.js → MInputSearch-BwR-BPh2.js} +2 -2
  41. package/dist/{MInputSearch-Dh4C3Tz5.js.map → MInputSearch-BwR-BPh2.js.map} +1 -1
  42. package/dist/{MInputSearch-DfoenJIm.cjs → MInputSearch-X9yNPuTf.cjs} +2 -2
  43. package/dist/{MInputSearch-DfoenJIm.cjs.map → MInputSearch-X9yNPuTf.cjs.map} +1 -1
  44. package/dist/{MLink-CY45UR_j.cjs → MLink-BakLkpKp.cjs} +2 -2
  45. package/dist/{MLink-CY45UR_j.cjs.map → MLink-BakLkpKp.cjs.map} +1 -1
  46. package/dist/{MModal-DT5BBgNZ.cjs → MModal-BYuPCSLG.cjs} +2 -2
  47. package/dist/{MModal-DT5BBgNZ.cjs.map → MModal-BYuPCSLG.cjs.map} +1 -1
  48. package/dist/{MModal-BDTAgnrm.js → MModal-K73juXhN.js} +2 -2
  49. package/dist/{MModal-BDTAgnrm.js.map → MModal-K73juXhN.js.map} +1 -1
  50. package/dist/{MPagination-CZEJMJzZ.cjs → MPagination-B8BcGks_.cjs} +2 -2
  51. package/dist/{MPagination-CZEJMJzZ.cjs.map → MPagination-B8BcGks_.cjs.map} +1 -1
  52. package/dist/{MPagination-CTnaW5AW.js → MPagination-BdBpF3Px.js} +1 -1
  53. package/dist/{MPagination-CTnaW5AW.js.map → MPagination-BdBpF3Px.js.map} +1 -1
  54. package/dist/{MPopover-B4IUb9f0.cjs → MPopover-DfEiRuM9.cjs} +2 -2
  55. package/dist/{MPopover-B4IUb9f0.cjs.map → MPopover-DfEiRuM9.cjs.map} +1 -1
  56. package/dist/{MPortal-Bi24xTGW.cjs → MPortal-CuBXhhl_.cjs} +2 -2
  57. package/dist/{MPortal-Bi24xTGW.cjs.map → MPortal-CuBXhhl_.cjs.map} +1 -1
  58. package/dist/{MQrCode-ByfmG33y.cjs → MQrCode-BXXTLtBP.cjs} +2 -2
  59. package/dist/{MQrCode-ByfmG33y.cjs.map → MQrCode-BXXTLtBP.cjs.map} +1 -1
  60. package/dist/{MSkeleton-DGhtNmpI.js → MSkeleton-BP7H_lsX.js} +2 -2
  61. package/dist/{MSkeleton-DGhtNmpI.js.map → MSkeleton-BP7H_lsX.js.map} +1 -1
  62. package/dist/{MSkeleton-5j1h9s95.cjs → MSkeleton-QO2sI-Ni.cjs} +2 -2
  63. package/dist/{MSkeleton-5j1h9s95.cjs.map → MSkeleton-QO2sI-Ni.cjs.map} +1 -1
  64. package/dist/{MSlider-Ch3VjAJC.cjs → MSlider-fhvfj0ft.cjs} +2 -2
  65. package/dist/{MSlider-Ch3VjAJC.cjs.map → MSlider-fhvfj0ft.cjs.map} +1 -1
  66. package/dist/{MSparkline-B6qpt5WM.cjs → MSparkline-CcM1n7Kh.cjs} +2 -2
  67. package/dist/{MSparkline-B6qpt5WM.cjs.map → MSparkline-CcM1n7Kh.cjs.map} +1 -1
  68. package/dist/{MStack-Bh-R2opf.cjs → MStack-Dy8Zl6FW.cjs} +2 -2
  69. package/dist/{MStack-Bh-R2opf.cjs.map → MStack-Dy8Zl6FW.cjs.map} +1 -1
  70. package/dist/{MSubText-C-70zn0m.cjs → MSubText-C1unzaCF.cjs} +2 -2
  71. package/dist/{MSubText-C-70zn0m.cjs.map → MSubText-C1unzaCF.cjs.map} +1 -1
  72. package/dist/{MSurface-DJYSftdM.js → MSurface-f_3vN0sd.js} +1 -1
  73. package/dist/{MSurface-DJYSftdM.js.map → MSurface-f_3vN0sd.js.map} +1 -1
  74. package/dist/{MSurface-CpiV1-7f.cjs → MSurface-wVqTsi1m.cjs} +2 -2
  75. package/dist/{MSurface-CpiV1-7f.cjs.map → MSurface-wVqTsi1m.cjs.map} +1 -1
  76. package/dist/MTabs-Dg31d-_D.js +89 -0
  77. package/dist/MTabs-Dg31d-_D.js.map +1 -0
  78. package/dist/MTabs-DuLqttVp.cjs +2 -0
  79. package/dist/MTabs-DuLqttVp.cjs.map +1 -0
  80. package/dist/{MTag-Y4Tswmli.cjs → MTag-CeLhZhqT.cjs} +2 -2
  81. package/dist/{MTag-Y4Tswmli.cjs.map → MTag-CeLhZhqT.cjs.map} +1 -1
  82. package/dist/{MText-DEJddMB5.cjs → MText-BbEkc0Ik.cjs} +2 -2
  83. package/dist/{MText-DEJddMB5.cjs.map → MText-BbEkc0Ik.cjs.map} +1 -1
  84. package/dist/{MTimeAgo-DxZGVo2Y.cjs → MTimeAgo-Dd0JQRGj.cjs} +2 -2
  85. package/dist/{MTimeAgo-DxZGVo2Y.cjs.map → MTimeAgo-Dd0JQRGj.cjs.map} +1 -1
  86. package/dist/{MToggle-C8vYRzpC.cjs → MToggle-BZSwJw_z.cjs} +2 -2
  87. package/dist/{MToggle-C8vYRzpC.cjs.map → MToggle-BZSwJw_z.cjs.map} +1 -1
  88. package/dist/{MTooltip-kSTMMpvu.cjs → MTooltip-BE0GcseJ.cjs} +2 -2
  89. package/dist/{MTooltip-kSTMMpvu.cjs.map → MTooltip-BE0GcseJ.cjs.map} +1 -1
  90. package/dist/{arduino-Eif5KI8O.js → arduino-5iMB2x4D.js} +1 -1
  91. package/dist/{arduino-Eif5KI8O.js.map → arduino-5iMB2x4D.js.map} +1 -1
  92. package/dist/{arduino-CXUo7Bjy.cjs → arduino-C1gw-z1N.cjs} +1 -1
  93. package/dist/{arduino-CXUo7Bjy.cjs.map → arduino-C1gw-z1N.cjs.map} +1 -1
  94. package/dist/{bash-CCF_TYbb.js → bash-CNKpaaFe.js} +1 -1
  95. package/dist/{bash-CCF_TYbb.js.map → bash-CNKpaaFe.js.map} +1 -1
  96. package/dist/{bash-W4h3o_nx.cjs → bash-wzZkpJC-.cjs} +1 -1
  97. package/dist/{bash-W4h3o_nx.cjs.map → bash-wzZkpJC-.cjs.map} +1 -1
  98. package/dist/{c-DVgkp6T3.js → c-BKjXPJPn.js} +1 -1
  99. package/dist/{c-DVgkp6T3.js.map → c-BKjXPJPn.js.map} +1 -1
  100. package/dist/{c-Dm60JY-W.cjs → c-BSPjDa0P.cjs} +1 -1
  101. package/dist/{c-Dm60JY-W.cjs.map → c-BSPjDa0P.cjs.map} +1 -1
  102. package/dist/{cards-fn61xD_5.js → cards-BYX8bM2l.js} +457 -307
  103. package/dist/cards-BYX8bM2l.js.map +1 -0
  104. package/dist/cards-lCx9oEVk.cjs +2 -0
  105. package/dist/cards-lCx9oEVk.cjs.map +1 -0
  106. package/dist/cards.cjs +1 -1
  107. package/dist/cards.js +3 -3
  108. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  109. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +21 -5
  110. package/dist/components/cards/MCardTile/MCardTile.d.ts +2 -0
  111. package/dist/components/cards/MCardTile/MCardTile.types.d.ts +28 -0
  112. package/dist/components/cards/MCardTile/index.d.ts +2 -0
  113. package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.d.ts +1 -1
  114. package/dist/components/cards/ServiceCardsShared/ServiceCardsShared.types.d.ts +1 -3
  115. package/dist/components/cards/index.d.ts +2 -0
  116. package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +8 -7
  117. package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +75 -6
  118. package/dist/components/data/MCalendarBoard/index.d.ts +2 -2
  119. package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
  120. package/dist/components/data/MDataTable/MDataTable.types.d.ts +23 -0
  121. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  122. package/dist/components/data/MTreeView/MTreeView.types.d.ts +9 -1
  123. package/dist/components/data/index.d.ts +2 -2
  124. package/dist/components/display/MBlur/MBlur.d.ts +2 -0
  125. package/dist/components/display/MBlur/MBlur.types.d.ts +13 -0
  126. package/dist/components/display/MBlur/index.d.ts +2 -0
  127. package/dist/components/display/index.d.ts +2 -0
  128. package/dist/components/inputs/MInputIBAN/MInputIBAN.types.d.ts +3 -3
  129. package/dist/components/inputs/MInputPhone/MInputPhone.types.d.ts +2 -0
  130. package/dist/components/layout/MGrid/MGrid.d.ts +2 -2
  131. package/dist/components/layout/MGrid/MGrid.types.d.ts +2 -0
  132. package/dist/components/media/MImage/MImage.d.ts +1 -1
  133. package/dist/components/media/MImage/MImage.types.d.ts +6 -1
  134. package/dist/components/media/MMediaLightbox/MMediaLightbox.d.ts +1 -1
  135. package/dist/components/overlays/MTooltip/MTooltip.types.d.ts +2 -2
  136. package/dist/{controls-C5PtrGZf.cjs → controls-CZCxbJgq.cjs} +2 -2
  137. package/dist/{controls-C5PtrGZf.cjs.map → controls-CZCxbJgq.cjs.map} +1 -1
  138. package/dist/controls.cjs +1 -1
  139. package/dist/{core-CB9-PTLK.js → core-B8VC-Umz.js} +1 -1
  140. package/dist/{core-CB9-PTLK.js.map → core-B8VC-Umz.js.map} +1 -1
  141. package/dist/{core-AKWkE8Bx.cjs → core-w629c4ND.cjs} +1 -1
  142. package/dist/{core-AKWkE8Bx.cjs.map → core-w629c4ND.cjs.map} +1 -1
  143. package/dist/{cpp-DyKt1H8n.cjs → cpp-LIcuHkFj.cjs} +1 -1
  144. package/dist/{cpp-DyKt1H8n.cjs.map → cpp-LIcuHkFj.cjs.map} +1 -1
  145. package/dist/{cpp-OOenfB17.js → cpp-bNWmO1Au.js} +1 -1
  146. package/dist/{cpp-OOenfB17.js.map → cpp-bNWmO1Au.js.map} +1 -1
  147. package/dist/creditCards-D_HwRUBz.cjs +2 -0
  148. package/dist/creditCards-D_HwRUBz.cjs.map +1 -0
  149. package/dist/{creditCards-CCysEwry.js → creditCards-D_iWmtG6.js} +14 -8
  150. package/dist/creditCards-D_iWmtG6.js.map +1 -0
  151. package/dist/{css-DxVbPJLu.cjs → css-D6fGBtGV.cjs} +1 -1
  152. package/dist/{css-DxVbPJLu.cjs.map → css-D6fGBtGV.cjs.map} +1 -1
  153. package/dist/{css-u5LSEAra.js → css-h_5aJA6y.js} +1 -1
  154. package/dist/{css-u5LSEAra.js.map → css-h_5aJA6y.js.map} +1 -1
  155. package/dist/data-CcS-eYye.cjs +2 -0
  156. package/dist/data-CcS-eYye.cjs.map +1 -0
  157. package/dist/data-DT1ncDx_.js +2997 -0
  158. package/dist/data-DT1ncDx_.js.map +1 -0
  159. package/dist/data.cjs +1 -1
  160. package/dist/data.js +3 -3
  161. package/dist/{display-BafEcBK_.cjs → display-BxVd6MMK.cjs} +3 -3
  162. package/dist/display-BxVd6MMK.cjs.map +1 -0
  163. package/dist/{display-Zxj9YHu_.js → display-CtVfcztO.js} +47 -18
  164. package/dist/display-CtVfcztO.js.map +1 -0
  165. package/dist/display.cjs +1 -1
  166. package/dist/display.js +4 -4
  167. package/dist/dropdowns-BgpcQ9Hq.cjs +2 -0
  168. package/dist/dropdowns-BgpcQ9Hq.cjs.map +1 -0
  169. package/dist/{dropdowns-Bw8obCYl.js → dropdowns-C58ur0qF.js} +582 -555
  170. package/dist/dropdowns-C58ur0qF.js.map +1 -0
  171. package/dist/dropdowns.cjs +1 -1
  172. package/dist/dropdowns.js +1 -1
  173. package/dist/{feedback-Di0SEpRe.cjs → feedback-BJiO6j28.cjs} +2 -2
  174. package/dist/{feedback-Di0SEpRe.cjs.map → feedback-BJiO6j28.cjs.map} +1 -1
  175. package/dist/{feedback-8H3bmQw5.js → feedback-q3oO-E_X.js} +5 -5
  176. package/dist/{feedback-8H3bmQw5.js.map → feedback-q3oO-E_X.js.map} +1 -1
  177. package/dist/feedback.cjs +1 -1
  178. package/dist/feedback.js +2 -2
  179. package/dist/{form-BYz99Py5.cjs → form-D7OKrCBM.cjs} +2 -2
  180. package/dist/{form-BYz99Py5.cjs.map → form-D7OKrCBM.cjs.map} +1 -1
  181. package/dist/{form-JHlvtP9r.js → form-DIOkVhd9.js} +2 -2
  182. package/dist/{form-JHlvtP9r.js.map → form-DIOkVhd9.js.map} +1 -1
  183. package/dist/form.cjs +1 -1
  184. package/dist/form.js +1 -1
  185. package/dist/{frameworkTexts-CvxcWRXp.js → frameworkTexts-Bzd6bn9s.js} +3 -1
  186. package/dist/frameworkTexts-Bzd6bn9s.js.map +1 -0
  187. package/dist/frameworkTexts-CJHzJHsg.cjs +2 -0
  188. package/dist/frameworkTexts-CJHzJHsg.cjs.map +1 -0
  189. package/dist/i18n/frameworkTexts.d.ts +2 -0
  190. package/dist/i18n.cjs +1 -1
  191. package/dist/icons-CfpYxnfg.js.map +1 -1
  192. package/dist/{icons-DWMgDKgt.cjs → icons-lUQfZ4Jr.cjs} +2 -2
  193. package/dist/{icons-DWMgDKgt.cjs.map → icons-lUQfZ4Jr.cjs.map} +1 -1
  194. package/dist/icons.cjs +1 -1
  195. package/dist/illustrations.cjs +1 -1
  196. package/dist/index.cjs +1 -1
  197. package/dist/index.js +43 -42
  198. package/dist/inputs-DOO1tKK9.cjs +2 -0
  199. package/dist/inputs-DOO1tKK9.cjs.map +1 -0
  200. package/dist/{inputs-Bcwd_UTr.js → inputs-Dwjwa_SJ.js} +545 -439
  201. package/dist/inputs-Dwjwa_SJ.js.map +1 -0
  202. package/dist/inputs.cjs +1 -1
  203. package/dist/inputs.js +5 -5
  204. package/dist/{javascript-CXjsxb-I.js → javascript-BnTECToz.js} +1 -1
  205. package/dist/{javascript-CXjsxb-I.js.map → javascript-BnTECToz.js.map} +1 -1
  206. package/dist/{javascript-CzjCTQxn.cjs → javascript-Oy5hkezl.cjs} +1 -1
  207. package/dist/{javascript-CzjCTQxn.cjs.map → javascript-Oy5hkezl.cjs.map} +1 -1
  208. package/dist/{json-9Qq5guN0.cjs → json-BP8eqPWc.cjs} +1 -1
  209. package/dist/{json-9Qq5guN0.cjs.map → json-BP8eqPWc.cjs.map} +1 -1
  210. package/dist/{json-CyV5VF8D.js → json-Ci-bDynf.js} +1 -1
  211. package/dist/{json-CyV5VF8D.js.map → json-Ci-bDynf.js.map} +1 -1
  212. package/dist/layout-B3S9bvaP.cjs +2 -0
  213. package/dist/layout-B3S9bvaP.cjs.map +1 -0
  214. package/dist/{layout-BpEnTocp.js → layout-BqDbW0Qn.js} +265 -347
  215. package/dist/layout-BqDbW0Qn.js.map +1 -0
  216. package/dist/layout.cjs +1 -1
  217. package/dist/layout.js +7 -6
  218. package/dist/{licensing-ezfo7ZTh.cjs → licensing-Df1Z1rnQ.cjs} +2 -2
  219. package/dist/{licensing-ezfo7ZTh.cjs.map → licensing-Df1Z1rnQ.cjs.map} +1 -1
  220. package/dist/{locale-CZyqh3ON.cjs → locale-Ba2yreFR.cjs} +2 -2
  221. package/dist/{locale-CZyqh3ON.cjs.map → locale-Ba2yreFR.cjs.map} +1 -1
  222. package/dist/{media-ClgUKDca.cjs → media-C5atCcc6.cjs} +2 -2
  223. package/dist/{media-ClgUKDca.cjs.map → media-C5atCcc6.cjs.map} +1 -1
  224. package/dist/{media-C3M0npGW.js → media-DdshnqJ1.js} +3 -3
  225. package/dist/{media-C3M0npGW.js.map → media-DdshnqJ1.js.map} +1 -1
  226. package/dist/media.cjs +1 -1
  227. package/dist/media.js +2 -2
  228. package/dist/{overlays-DrSGzbbA.cjs → overlays-BC_6IATL.cjs} +2 -2
  229. package/dist/{overlays-DrSGzbbA.cjs.map → overlays-BC_6IATL.cjs.map} +1 -1
  230. package/dist/{overlays-CGlqD3rl.js → overlays-zUoV_Jy7.js} +2 -2
  231. package/dist/{overlays-CGlqD3rl.js.map → overlays-zUoV_Jy7.js.map} +1 -1
  232. package/dist/overlays.cjs +1 -1
  233. package/dist/overlays.js +3 -3
  234. package/dist/{php-Br75m0HU.cjs → php-Cwjc-ZYq.cjs} +1 -1
  235. package/dist/{php-Br75m0HU.cjs.map → php-Cwjc-ZYq.cjs.map} +1 -1
  236. package/dist/{php-deNqvHeU.js → php-DJ5j7KZU.js} +1 -1
  237. package/dist/{php-deNqvHeU.js.map → php-DJ5j7KZU.js.map} +1 -1
  238. package/dist/primitives.cjs +1 -1
  239. package/dist/style-runtime.cjs +1 -1
  240. package/dist/style-runtime.js +1 -1
  241. package/dist/styles.css +1 -1
  242. package/dist/{theme-CgS-bND3.cjs → theme-Bb_NAEiZ.cjs} +2 -2
  243. package/dist/{theme-CgS-bND3.cjs.map → theme-Bb_NAEiZ.cjs.map} +1 -1
  244. package/dist/theme.cjs +1 -1
  245. package/dist/{typescript-jNfCpQvl.js → typescript-DUexJ4gh.js} +1 -1
  246. package/dist/{typescript-jNfCpQvl.js.map → typescript-DUexJ4gh.js.map} +1 -1
  247. package/dist/{typescript-CRgqVaw_.cjs → typescript-QKlfKtex.cjs} +1 -1
  248. package/dist/{typescript-CRgqVaw_.cjs.map → typescript-QKlfKtex.cjs.map} +1 -1
  249. package/dist/{typography-Zo4Usx9I.cjs → typography-CRKIyR-B.cjs} +2 -2
  250. package/dist/{typography-Zo4Usx9I.cjs.map → typography-CRKIyR-B.cjs.map} +1 -1
  251. package/dist/typography.cjs +1 -1
  252. package/dist/{useGhostText-tv1LiSPs.cjs → useGhostText-mibV4s1-.cjs} +2 -2
  253. package/dist/{useGhostText-tv1LiSPs.cjs.map → useGhostText-mibV4s1-.cjs.map} +1 -1
  254. package/dist/{useInteractionEffect-D1ZdNbKU.cjs → useInteractionEffect-CtXlbjhC.cjs} +2 -2
  255. package/dist/{useInteractionEffect-D1ZdNbKU.cjs.map → useInteractionEffect-CtXlbjhC.cjs.map} +1 -1
  256. package/dist/{useKeyboardNav-CkIlAagq.cjs → useKeyboardNav-CCUoRMgm.cjs} +2 -2
  257. package/dist/{useKeyboardNav-CkIlAagq.cjs.map → useKeyboardNav-CCUoRMgm.cjs.map} +1 -1
  258. package/dist/utils/creditCards.d.ts +1 -0
  259. package/dist/utils/validators.d.ts +2 -0
  260. package/dist/utils.cjs +1 -1
  261. package/dist/utils.js +3 -3
  262. package/dist/{validators-H8tNxb8O.js → validators-D5OCyV2h.js} +23 -20
  263. package/dist/validators-D5OCyV2h.js.map +1 -0
  264. package/dist/{validators-BeNTD8mf.cjs → validators-DRhikiAi.cjs} +2 -2
  265. package/dist/validators-DRhikiAi.cjs.map +1 -0
  266. package/dist/{xml-C_ksWBRH.cjs → xml-DEtyywwU.cjs} +1 -1
  267. package/dist/{xml-C_ksWBRH.cjs.map → xml-DEtyywwU.cjs.map} +1 -1
  268. package/dist/{xml-0Th6YIDv.js → xml-DlZghN7m.js} +1 -1
  269. package/dist/{xml-0Th6YIDv.js.map → xml-DlZghN7m.js.map} +1 -1
  270. package/package.json +1 -1
  271. package/dist/MDataTable-Bx7W-Ari.cjs +0 -2
  272. package/dist/MDataTable-Bx7W-Ari.cjs.map +0 -1
  273. package/dist/MDataTable-ByvNQqNP.js +0 -149
  274. package/dist/MDataTable-ByvNQqNP.js.map +0 -1
  275. package/dist/MDropdownMenu-BmfXSc46.cjs +0 -2
  276. package/dist/MDropdownMenu-BmfXSc46.cjs.map +0 -1
  277. package/dist/MDropdownMenu-D79Cm5aS.js.map +0 -1
  278. package/dist/MImage-L_zgfWRY.cjs +0 -2
  279. package/dist/MImage-L_zgfWRY.cjs.map +0 -1
  280. package/dist/MImage-gwFphZk2.js.map +0 -1
  281. package/dist/cards-BiYdorB0.cjs +0 -2
  282. package/dist/cards-BiYdorB0.cjs.map +0 -1
  283. package/dist/cards-fn61xD_5.js.map +0 -1
  284. package/dist/creditCards-CCysEwry.js.map +0 -1
  285. package/dist/creditCards-ljs044xt.cjs +0 -2
  286. package/dist/creditCards-ljs044xt.cjs.map +0 -1
  287. package/dist/data-Bw9FSZ80.cjs +0 -2
  288. package/dist/data-Bw9FSZ80.cjs.map +0 -1
  289. package/dist/data-CMSIr_Ac.js +0 -2527
  290. package/dist/data-CMSIr_Ac.js.map +0 -1
  291. package/dist/display-BafEcBK_.cjs.map +0 -1
  292. package/dist/display-Zxj9YHu_.js.map +0 -1
  293. package/dist/dropdowns-Bw8obCYl.js.map +0 -1
  294. package/dist/dropdowns-DN7j1HhE.cjs +0 -2
  295. package/dist/dropdowns-DN7j1HhE.cjs.map +0 -1
  296. package/dist/frameworkTexts-CvxcWRXp.js.map +0 -1
  297. package/dist/frameworkTexts-abkS5XZK.cjs +0 -2
  298. package/dist/frameworkTexts-abkS5XZK.cjs.map +0 -1
  299. package/dist/inputs-Bcwd_UTr.js.map +0 -1
  300. package/dist/inputs-FP545Yri.cjs +0 -2
  301. package/dist/inputs-FP545Yri.cjs.map +0 -1
  302. package/dist/layout-BpEnTocp.js.map +0 -1
  303. package/dist/layout-rtlHrjDb.cjs +0 -2
  304. package/dist/layout-rtlHrjDb.cjs.map +0 -1
  305. package/dist/validators-BeNTD8mf.cjs.map +0 -1
  306. package/dist/validators-H8tNxb8O.js.map +0 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Modern React UI framework with a sharp admin aesthetic, theming system, and production-ready components.
4
4
 
5
5
  - npm: `@banzamel/mineralui`
6
- - version: `1.6.3`
6
+ - version: `1.7.1`
7
7
  - peer dependencies: `react >= 19`, `react-dom >= 19`
8
8
  - repository: `https://github.com/Banzamel/mineralui`
9
9
  - homepage: `https://mineralui.io`
@@ -1,2 +1,2 @@
1
- const e=require(`./theme-CgS-bND3.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-D1ZdNbKU.cjs`),r=require(`./MButton-DrkVdRDy.cjs`);require(`./core-AKWkE8Bx.cjs`);let i=require(`react/jsx-runtime`);function a(e,t){if(t)return t.slice(0,2).toUpperCase();if(!e)return`?`;let n=e.trim().split(/\s+/).filter(Boolean);return n.length===0?`?`:n.length===1?n[0].slice(0,2).toUpperCase():`${n[0][0]}${n[1][0]}`.toUpperCase()}function o({src:o,alt:s,name:c,initials:l,size:u=`md`,shape:d=`circle`,hidden:f,color:p,badge:m,badgeColor:h,badgePulsing:g=!1,backgroundColor:_,clickEffect:v,rippleColor:y,skeleton:b=!1,className:x,style:S,onPointerDown:C,...w}){let T=a(c,l),E=typeof w.onClick==`function`||w.role===`button`||w.tabIndex!==void 0,{effectClassName:D,effectLayer:O,handlePointerDown:k}=n.t({effect:v??(E?`ripple`:`none`),disabled:!E||b,color:y}),A=typeof u==`number`?{width:`${u}px`,height:`${u}px`,...S,..._&&!b?{backgroundColor:_}:{}}:{...S,..._&&!b?{backgroundColor:_}:{}};return(0,i.jsxs)(`span`,{className:t.t(`avatar`,typeof u==`string`&&u,d,b&&`skeleton animate`,E&&!b&&`interactive`,D,!b&&p&&`color-${p}`,x),style:A,"aria-label":b?`Loading`:s??c??`MAvatar`,onPointerDown:e=>{k(e),C?.(e)},...e.r(f),...w,children:[O,r.n({badge:m,badgeColor:h,badgePulsing:g}),b?null:o?(0,i.jsx)(`img`,{src:o,alt:s??c??``,className:`image`}):(0,i.jsx)(`span`,{className:`fallback`,children:T})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
- //# sourceMappingURL=MAvatar-BVJh6kgW.cjs.map
1
+ const e=require(`./theme-Bb_NAEiZ.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-CtXlbjhC.cjs`),r=require(`./MButton-B9k45kH-.cjs`);require(`./core-w629c4ND.cjs`);let i=require(`react/jsx-runtime`);function a(e,t){if(t)return t.slice(0,2).toUpperCase();if(!e)return`?`;let n=e.trim().split(/\s+/).filter(Boolean);return n.length===0?`?`:n.length===1?n[0].slice(0,2).toUpperCase():`${n[0][0]}${n[1][0]}`.toUpperCase()}function o({src:o,alt:s,name:c,initials:l,size:u=`md`,shape:d=`circle`,hidden:f,color:p,badge:m,badgeColor:h,badgePulsing:g=!1,backgroundColor:_,clickEffect:v,rippleColor:y,skeleton:b=!1,className:x,style:S,onPointerDown:C,...w}){let T=a(c,l),E=typeof w.onClick==`function`||w.role===`button`||w.tabIndex!==void 0,{effectClassName:D,effectLayer:O,handlePointerDown:k}=n.t({effect:v??(E?`ripple`:`none`),disabled:!E||b,color:y}),A=typeof u==`number`?{width:`${u}px`,height:`${u}px`,...S,..._&&!b?{backgroundColor:_}:{}}:{...S,..._&&!b?{backgroundColor:_}:{}};return(0,i.jsxs)(`span`,{className:t.t(`avatar`,typeof u==`string`&&u,d,b&&`skeleton animate`,E&&!b&&`interactive`,D,!b&&p&&`color-${p}`,x),style:A,"aria-label":b?`Loading`:s??c??`MAvatar`,onPointerDown:e=>{k(e),C?.(e)},...e.r(f),...w,children:[O,r.n({badge:m,badgeColor:h,badgePulsing:g}),b?null:o?(0,i.jsx)(`img`,{src:o,alt:s??c??``,className:`image`}):(0,i.jsx)(`span`,{className:`fallback`,children:T})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
+ //# sourceMappingURL=MAvatar-CV3xJOmx.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MAvatar-BVJh6kgW.cjs","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarProps} from './MAvatar.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing = false,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":"8NAQA,SAAS,EAAoB,EAAe,EAAmB,CAC3D,GAAI,EAAU,OAAO,EAAS,MAAM,EAAG,EAAE,CAAC,aAAa,CACvD,GAAI,CAAC,EAAM,MAAO,IAClB,IAAM,EAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ,CAGtD,OAFI,EAAM,SAAW,EAAU,IAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,EAAE,CAAC,aAAa,CAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa,CAIvD,SAAgB,EAAQ,CACpB,MACA,MACA,OACA,WACA,OAAO,KACP,QAAQ,SACR,SACA,QACA,QACA,aACA,eAAe,GACf,kBACA,cACA,cACA,WAAW,GACX,YACA,QACA,gBACA,GAAG,GACU,CACb,IAAM,EAAmB,EAAoB,EAAM,EAAS,CACtD,EAAgB,OAAO,EAAK,SAAY,YAAc,EAAK,OAAS,UAAY,EAAK,WAAa,IAAA,GAClG,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAsC,CAC5F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CACI,EACF,OAAO,GAAS,SACV,CACI,MAAO,GAAG,EAAK,IACf,OAAQ,GAAG,EAAK,IAChB,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CACD,CACI,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CAEX,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,SACA,OAAO,GAAS,UAAY,EAC5B,EACA,GAAY,mBACZ,GAAiB,CAAC,GAAY,cAC9B,EACA,CAAC,GAAY,GAAS,SAAS,IAC/B,EACH,CACD,MAAO,EACP,aAAY,EAAW,UAAa,GAAO,GAAQ,UACnD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlBR,CAoBK,EACA,EAAA,EAAmB,CAAC,QAAO,aAAY,eAAa,CAAC,CACrD,EAAW,KAAO,GACf,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,IAAK,GAAO,GAAQ,GAAI,UAAW,QAAW,CAAA,EAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,oBAAa,EAAwB,CAAA,CAEvD"}
1
+ {"version":3,"file":"MAvatar-CV3xJOmx.cjs","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarProps} from './MAvatar.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing = false,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":"8NAQA,SAAS,EAAoB,EAAe,EAAmB,CAC3D,GAAI,EAAU,OAAO,EAAS,MAAM,EAAG,EAAE,CAAC,aAAa,CACvD,GAAI,CAAC,EAAM,MAAO,IAClB,IAAM,EAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ,CAGtD,OAFI,EAAM,SAAW,EAAU,IAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,EAAE,CAAC,aAAa,CAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa,CAIvD,SAAgB,EAAQ,CACpB,MACA,MACA,OACA,WACA,OAAO,KACP,QAAQ,SACR,SACA,QACA,QACA,aACA,eAAe,GACf,kBACA,cACA,cACA,WAAW,GACX,YACA,QACA,gBACA,GAAG,GACU,CACb,IAAM,EAAmB,EAAoB,EAAM,EAAS,CACtD,EAAgB,OAAO,EAAK,SAAY,YAAc,EAAK,OAAS,UAAY,EAAK,WAAa,IAAA,GAClG,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAsC,CAC5F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CACI,EACF,OAAO,GAAS,SACV,CACI,MAAO,GAAG,EAAK,IACf,OAAQ,GAAG,EAAK,IAChB,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CACD,CACI,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CAEX,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,SACA,OAAO,GAAS,UAAY,EAC5B,EACA,GAAY,mBACZ,GAAiB,CAAC,GAAY,cAC9B,EACA,CAAC,GAAY,GAAS,SAAS,IAC/B,EACH,CACD,MAAO,EACP,aAAY,EAAW,UAAa,GAAO,GAAQ,UACnD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlBR,CAoBK,EACA,EAAA,EAAmB,CAAC,QAAO,aAAY,eAAa,CAAC,CACrD,EAAW,KAAO,GACf,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,IAAK,GAAO,GAAQ,GAAI,UAAW,QAAW,CAAA,EAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,oBAAa,EAAwB,CAAA,CAEvD"}
@@ -1,2 +1,2 @@
1
- const e=require(`./theme-CgS-bND3.cjs`),t=require(`./cn-CU5TNITO.cjs`);require(`./core-AKWkE8Bx.cjs`);let n=require(`react/jsx-runtime`);function r({color:r=`primary`,size:i=`md`,hidden:a,pulsing:o=!1,rounded:s=!1,fullWidth:c=!1,icon:l,className:u,children:d,...f}){return(0,n.jsxs)(`span`,{className:t.t(`badge`,`color-${r}`,i,o&&`pulsing`,s&&`rounded`,c&&`full-width`,u),...e.r(a),...f,children:[l&&(0,n.jsx)(`span`,{className:`badge-icon`,children:l}),d]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
- //# sourceMappingURL=MBadge-B4x-Lx7e.cjs.map
1
+ const e=require(`./theme-Bb_NAEiZ.cjs`),t=require(`./cn-CU5TNITO.cjs`);require(`./core-w629c4ND.cjs`);let n=require(`react/jsx-runtime`);function r({color:r=`primary`,size:i=`md`,hidden:a,pulsing:o=!1,rounded:s=!1,fullWidth:c=!1,icon:l,className:u,children:d,...f}){return(0,n.jsxs)(`span`,{className:t.t(`badge`,`color-${r}`,i,o&&`pulsing`,s&&`rounded`,c&&`full-width`,u),...e.r(a),...f,children:[l&&(0,n.jsx)(`span`,{className:`badge-icon`,children:l}),d]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=MBadge-BoxsfX_h.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MBadge-B4x-Lx7e.cjs","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx"],"sourcesContent":["import type {MBadgeProps} from './MBadge.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MBadge.css'\n\n// Render a compact semantic label for status and metadata.\nexport function MBadge({\n color = 'primary',\n size = 'md',\n hidden,\n pulsing = false,\n rounded = false,\n fullWidth = false,\n icon,\n className,\n children,\n ...rest\n}: MBadgeProps) {\n return (\n <span\n className={cn(\n 'badge',\n `color-${color}`,\n size,\n pulsing && 'pulsing',\n rounded && 'rounded',\n fullWidth && 'full-width',\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"badge-icon\">{icon}</span>}\n {children}\n </span>\n )\n}\n"],"mappings":"yIAMA,SAAgB,EAAO,CACnB,QAAQ,UACR,OAAO,KACP,SACA,UAAU,GACV,UAAU,GACV,YAAY,GACZ,OACA,YACA,WACA,GAAG,GACS,CACZ,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,QACA,SAAS,IACT,EACA,GAAW,UACX,GAAW,UACX,GAAa,aACb,EACH,CACD,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAXR,CAaK,IAAQ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAY,CAAA,CAClD,EACE"}
1
+ {"version":3,"file":"MBadge-BoxsfX_h.cjs","names":[],"sources":["../src/components/feedback/MBadge/MBadge.tsx"],"sourcesContent":["import type {MBadgeProps} from './MBadge.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport './MBadge.css'\n\n// Render a compact semantic label for status and metadata.\nexport function MBadge({\n color = 'primary',\n size = 'md',\n hidden,\n pulsing = false,\n rounded = false,\n fullWidth = false,\n icon,\n className,\n children,\n ...rest\n}: MBadgeProps) {\n return (\n <span\n className={cn(\n 'badge',\n `color-${color}`,\n size,\n pulsing && 'pulsing',\n rounded && 'rounded',\n fullWidth && 'full-width',\n className\n )}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {icon && <span className=\"badge-icon\">{icon}</span>}\n {children}\n </span>\n )\n}\n"],"mappings":"yIAMA,SAAgB,EAAO,CACnB,QAAQ,UACR,OAAO,KACP,SACA,UAAU,GACV,UAAU,GACV,YAAY,GACZ,OACA,YACA,WACA,GAAG,GACS,CACZ,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,QACA,SAAS,IACT,EACA,GAAW,UACX,GAAW,UACX,GAAa,aACb,EACH,CACD,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAXR,CAaK,IAAQ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,sBAAc,EAAY,CAAA,CAClD,EACE"}
@@ -1,2 +1,2 @@
1
- const e=require(`./theme-CgS-bND3.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-D1ZdNbKU.cjs`);require(`./core-AKWkE8Bx.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.createContext)(null);function o(){return(0,r.useContext)(a)}function s({color:e=`primary`,size:n=`md`,label:r=`Loading`,className:a,style:o,...s}){let c=typeof n==`number`?{width:`${n}px`,height:`${n}px`,...o}:o||{};return(0,i.jsx)(`span`,{className:t.t(`spinner`,typeof n==`string`&&n,e&&`color-${e}`,a),style:c,role:`status`,"aria-label":r,...s})}function c(e){return e!=null&&e!==!1}function l({badge:e,badgeColor:t,badgePulsing:n}){return c(e)}function u({badge:e,badgeColor:n=`primary`,badgePulsing:r=!1,className:a}){if(!l({badge:e,badgeColor:n,badgePulsing:r}))return null;let o=e===!0;return(0,i.jsx)(`span`,{className:t.t(`overlay-badge`,`color-${n}`,o&&`dot`,r&&`pulsing`,a),"aria-hidden":`true`,children:o?null:e})}var d=(0,r.forwardRef)(function({component:r,to:a,href:c,variant:l,size:d,color:f,hidden:p,fullWidth:m=!1,rounded:h=!1,shape:g,iconOnly:_=!1,loading:v=!1,active:y=!1,pulsing:b=!1,badge:x,badgeColor:S,badgePulsing:C=!1,startIcon:w,endIcon:T,clickEffect:E=`ripple`,rippleColor:D,className:O,style:k,children:A,disabled:j=!1,type:M=`button`,onClick:N,onPointerDown:P,onKeyDown:F,...I},L){let R=r??`button`,z=!r||R===`button`,B=o(),V=l??B?.variant??`filled`,H=d??B?.size??`md`,U=f??B?.color??`primary`,W=j||v,{effectClassName:G,effectLayer:K,handlePointerDown:q,triggerEffect:J}=n.t({effect:E,disabled:W,centered:_,color:D});function Y(e){if(W&&!z){e.preventDefault();return}N?.(e)}return(0,i.jsxs)(R,{ref:L,type:z?M:void 0,to:r?W?void 0:a:void 0,href:r?W?void 0:c:void 0,className:t.t(`button`,V,H,`color-${U}`,m&&`full-width`,h&&`rounded`,g===`circle`&&`circle`,_&&`icon-only`,v&&`loading`,y&&`active`,b&&`pulsing`,W&&`disabled`,G,O),style:k,disabled:z?W:void 0,"aria-busy":v||void 0,"aria-disabled":!z&&W?!0:void 0,onClick:Y,onPointerDown:e=>{q(e),P?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&J(e.currentTarget),F?.(e)},...e.r(p),...I,children:[K,u({badge:x,badgeColor:S,badgePulsing:C}),v&&(0,i.jsx)(s,{size:`sm`,color:`inherit`,"aria-hidden":`true`}),w&&(0,i.jsx)(`span`,{className:`icon start`,children:w}),A&&(0,i.jsx)(`span`,{className:`content`,children:A}),T&&(0,i.jsx)(`span`,{className:`icon end`,children:T})]})});Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
2
- //# sourceMappingURL=MButton-DrkVdRDy.cjs.map
1
+ const e=require(`./theme-Bb_NAEiZ.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-CtXlbjhC.cjs`);require(`./core-w629c4ND.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`);var a=(0,r.createContext)(null);function o(){return(0,r.useContext)(a)}function s({color:e=`primary`,size:n=`md`,label:r=`Loading`,className:a,style:o,...s}){let c=typeof n==`number`?{width:`${n}px`,height:`${n}px`,...o}:o||{};return(0,i.jsx)(`span`,{className:t.t(`spinner`,typeof n==`string`&&n,e&&`color-${e}`,a),style:c,role:`status`,"aria-label":r,...s})}function c(e){return e!=null&&e!==!1}function l({badge:e,badgeColor:t,badgePulsing:n}){return c(e)}function u({badge:e,badgeColor:n=`primary`,badgePulsing:r=!1,className:a}){if(!l({badge:e,badgeColor:n,badgePulsing:r}))return null;let o=e===!0;return(0,i.jsx)(`span`,{className:t.t(`overlay-badge`,`color-${n}`,o&&`dot`,r&&`pulsing`,a),"aria-hidden":`true`,children:o?null:e})}var d=(0,r.forwardRef)(function({component:r,to:a,href:c,variant:l,size:d,color:f,hidden:p,fullWidth:m=!1,rounded:h=!1,shape:g,iconOnly:_=!1,loading:v=!1,active:y=!1,pulsing:b=!1,badge:x,badgeColor:S,badgePulsing:C=!1,startIcon:w,endIcon:T,clickEffect:E=`ripple`,rippleColor:D,className:O,style:k,children:A,disabled:j=!1,type:M=`button`,onClick:N,onPointerDown:P,onKeyDown:F,...I},L){let R=r??`button`,z=!r||R===`button`,B=o(),V=l??B?.variant??`filled`,H=d??B?.size??`md`,U=f??B?.color??`primary`,W=j||v,{effectClassName:G,effectLayer:K,handlePointerDown:q,triggerEffect:J}=n.t({effect:E,disabled:W,centered:_,color:D});function Y(e){if(W&&!z){e.preventDefault();return}N?.(e)}return(0,i.jsxs)(R,{ref:L,type:z?M:void 0,to:r?W?void 0:a:void 0,href:r?W?void 0:c:void 0,className:t.t(`button`,V,H,`color-${U}`,m&&`full-width`,h&&`rounded`,g===`circle`&&`circle`,_&&`icon-only`,v&&`loading`,y&&`active`,b&&`pulsing`,W&&`disabled`,G,O),style:k,disabled:z?W:void 0,"aria-busy":v||void 0,"aria-disabled":!z&&W?!0:void 0,onClick:Y,onPointerDown:e=>{q(e),P?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&J(e.currentTarget),F?.(e)},...e.r(p),...I,children:[K,u({badge:x,badgeColor:S,badgePulsing:C}),v&&(0,i.jsx)(s,{size:`sm`,color:`inherit`,"aria-hidden":`true`}),w&&(0,i.jsx)(`span`,{className:`icon start`,children:w}),A&&(0,i.jsx)(`span`,{className:`content`,children:A}),T&&(0,i.jsx)(`span`,{className:`icon end`,children:T})]})});Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
2
+ //# sourceMappingURL=MButton-B9k45kH-.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MButton-DrkVdRDy.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"MButton-B9k45kH-.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroupContext.ts","../src/components/feedback/MSpinner/MSpinner.tsx","../src/utils/overlayBadge.tsx","../src/components/controls/MButton/MButton.tsx"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MButtonVariant} from '../MButton/MButton.types'\nimport type {MColor, MSize} from '../../../theme'\n\nexport interface MButtonGroupContextValue {\n variant?: MButtonVariant\n size?: MSize\n color?: MColor\n}\n\nexport const ButtonGroupContext = createContext<MButtonGroupContextValue | null>(null)\n\nexport function useButtonGroup(): MButtonGroupContextValue | null {\n return useContext(ButtonGroupContext)\n}\n","import type {CSSProperties} from 'react'\nimport type {MSpinnerProps} from './MSpinner.types'\nimport {cn} from '../../../utils/cn'\nimport './MSpinner.css'\n\n// Render a minimal semantic loading indicator with token-aware sizing and color.\nexport function MSpinner({\n color = 'primary',\n size = 'md',\n label = 'Loading',\n className,\n style,\n ...rest\n}: MSpinnerProps) {\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n }\n : style || {}\n\n return (\n <span\n className={cn('spinner', typeof size === 'string' && size, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"status\"\n aria-label={label}\n {...rest}\n />\n )\n}\n","import type {ReactNode} from 'react'\nimport type {MColor} from '../theme'\nimport {cn} from './cn'\n\nexport interface MOverlayBadgeProps {\n badge?: ReactNode | number | boolean\n badgeColor?: MColor\n badgePulsing?: boolean\n className?: string\n}\n\nfunction hasBadgeContent(badge: MOverlayBadgeProps['badge']) {\n return badge !== undefined && badge !== null && badge !== false\n}\n\nexport function shouldRenderOverlayBadge({badge, badgeColor, badgePulsing}: MOverlayBadgeProps) {\n return hasBadgeContent(badge)\n}\n\nexport function renderOverlayBadge({\n badge,\n badgeColor = 'primary',\n badgePulsing = false,\n className,\n}: MOverlayBadgeProps) {\n if (!shouldRenderOverlayBadge({badge, badgeColor, badgePulsing})) {\n return null\n }\n\n const dotOnly = badge === true\n\n return (\n <span\n className={cn(\n 'overlay-badge',\n `color-${badgeColor}`,\n dotOnly && 'dot',\n badgePulsing && 'pulsing',\n className\n )}\n aria-hidden=\"true\"\n >\n {dotOnly ? null : badge}\n </span>\n )\n}\n","import {forwardRef} from 'react'\nimport type {KeyboardEvent, MouseEvent, PointerEvent} from 'react'\nimport type {MButtonProps} from './MButton.types'\nimport {getHiddenProps} from '../../../theme'\nimport {useButtonGroup} from '../MButtonGroup/MButtonGroupContext'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MButton.css'\n\n// Render the main action primitive with semantic variants and built-in click feedback.\nexport const MButton = forwardRef<HTMLElement, MButtonProps>(function MButton(\n {\n component,\n to,\n href,\n variant: variantProp,\n size: sizeProp,\n color: colorProp,\n hidden,\n fullWidth = false,\n rounded = false,\n shape,\n iconOnly = false,\n loading = false,\n active = false,\n pulsing = false,\n badge,\n badgeColor,\n badgePulsing = false,\n startIcon,\n endIcon,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onClick,\n onPointerDown,\n onKeyDown,\n ...rest\n },\n ref\n) {\n const Component = component ?? 'button'\n const isNativeButton = !component || Component === 'button'\n const group = useButtonGroup()\n const variant = variantProp ?? group?.variant ?? 'filled'\n const size = sizeProp ?? group?.size ?? 'md'\n const color = colorProp ?? group?.color ?? 'primary'\n\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n function handleClick(event: MouseEvent<HTMLElement>) {\n if (isDisabled && !isNativeButton) {\n event.preventDefault()\n return\n }\n\n onClick?.(event as never)\n }\n\n return (\n <Component\n ref={ref}\n type={isNativeButton ? type : undefined}\n to={component ? (isDisabled ? undefined : to) : undefined}\n href={component ? (isDisabled ? undefined : href) : undefined}\n className={cn(\n 'button',\n variant,\n size,\n `color-${color}`,\n fullWidth && 'full-width',\n rounded && 'rounded',\n shape === 'circle' && 'circle',\n iconOnly && 'icon-only',\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isNativeButton ? isDisabled : undefined}\n aria-busy={loading || undefined}\n aria-disabled={!isNativeButton && isDisabled ? true : undefined}\n onClick={handleClick}\n onPointerDown={(event: PointerEvent<HTMLElement>) => {\n handlePointerDown(event as never)\n onPointerDown?.(event as never)\n }}\n onKeyDown={(event: KeyboardEvent<HTMLElement>) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget as HTMLElement)\n }\n\n onKeyDown?.(event as never)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge, badgeColor, badgePulsing})}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" aria-hidden=\"true\" />}\n {startIcon && <span className=\"icon start\">{startIcon}</span>}\n {children && <span className=\"content\">{children}</span>}\n {endIcon && <span className=\"icon end\">{endIcon}</span>}\n </Component>\n )\n})\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require(`./cn-CU5TNITO.cjs`),t=require(`./useInteractionEffect-D1ZdNbKU.cjs`);require(`./core-AKWkE8Bx.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`);var i=(0,n.forwardRef)(function({checked:i,defaultChecked:a,indeterminate:o=!1,name:s,id:c,value:l,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,error:h=!1,errorText:g,onChange:_,clickEffect:v=`ripple`,rippleColor:y,className:b,style:x},S){let C=(0,n.useRef)(null),w=S??C,{effectClassName:T,effectLayer:E,handlePointerDown:D,triggerEffect:O}=t.t({effect:v,disabled:u,centered:!0,color:y});(0,n.useEffect)(()=>{w.current&&(w.current.indeterminate=o)},[o,w]);let k=h||!!g;return(0,r.jsxs)(`div`,{className:e.t(`checkbox`,b),style:x,children:[(0,r.jsxs)(`label`,{className:e.t(`label`,d,m===`left`&&`label-left`,u&&`disabled`),children:[(0,r.jsxs)(`span`,{className:e.t(`box`,`color-${f}`,k&&`error`,T),onPointerDown:D,children:[E,(0,r.jsx)(`input`,{ref:w,type:`checkbox`,checked:i,defaultChecked:a,name:s,id:c,value:l,disabled:u,onChange:_,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&O(e.currentTarget.parentElement)},className:`input`,"aria-invalid":k||void 0}),(0,r.jsx)(`span`,{className:`indeterminate-mark`})]}),p&&(0,r.jsx)(`span`,{className:e.t(`label-text`,k&&`error`),children:p})]}),g&&(0,r.jsx)(`span`,{className:`field-error`,role:`alert`,children:g})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=MCheckbox-C40ESQRe.cjs.map
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`);var i=(0,n.forwardRef)(function({checked:i,defaultChecked:a,indeterminate:o=!1,name:s,id:c,value:l,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,error:h=!1,errorText:g,onChange:_,clickEffect:v=`ripple`,rippleColor:y,className:b,style:x},S){let C=(0,n.useRef)(null),w=S??C,{effectClassName:T,effectLayer:E,handlePointerDown:D,triggerEffect:O}=t.t({effect:v,disabled:u,centered:!0,color:y});(0,n.useEffect)(()=>{w.current&&(w.current.indeterminate=o)},[o,w]);let k=h||!!g;return(0,r.jsxs)(`div`,{className:e.t(`checkbox`,b),style:x,children:[(0,r.jsxs)(`label`,{className:e.t(`label`,d,m===`left`&&`label-left`,u&&`disabled`),children:[(0,r.jsxs)(`span`,{className:e.t(`box`,`color-${f}`,k&&`error`,T),onPointerDown:D,children:[E,(0,r.jsx)(`input`,{ref:w,type:`checkbox`,checked:i,defaultChecked:a,name:s,id:c,value:l,disabled:u,onChange:_,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&O(e.currentTarget.parentElement)},className:`input`,"aria-invalid":k||void 0}),(0,r.jsx)(`span`,{className:`indeterminate-mark`})]}),p&&(0,r.jsx)(`span`,{className:e.t(`label-text`,k&&`error`),children:p})]}),g&&(0,r.jsx)(`span`,{className:`field-error`,role:`alert`,children:g})]})});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=MCheckbox-CdDWGVp3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCheckbox-C40ESQRe.cjs","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":"2KAQA,IAAa,GAAA,EAAA,EAAA,YAAyD,SAClE,CACI,UACA,iBACA,gBAAgB,GAChB,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,QAAQ,GACR,YACA,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,GAAA,EAAA,EAAA,QAAuC,KAAK,CAC5C,EAAY,GAA6C,EACzD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,EAGF,EAAA,EAAA,eAAgB,CACR,EAAS,UACT,EAAS,QAAQ,cAAgB,IAEtC,CAAC,EAAe,EAAS,CAAC,CAE7B,IAAM,EAAW,GAAS,CAAC,CAAC,EAE5B,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,WAAY,EAAU,CAAS,iBAAlD,EACI,EAAA,EAAA,MAAC,QAAD,CAAO,UAAW,EAAA,EAAG,QAAS,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAW,UAArG,EACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,MAAO,SAAS,IAAS,GAAY,QAAS,EAAgB,CAC5E,cAAe,WAFnB,CAIK,GACD,EAAA,EAAA,KAAC,QAAD,CACI,IAAK,EACL,KAAK,WACI,UACO,iBACV,OACF,KACG,QACG,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,eAAc,GAAY,IAAA,GAC5B,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,EAAG,aAAc,GAAY,QAAQ,UAAG,EAAa,CAAA,CAC5E,GACP,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAET,IAEZ"}
1
+ {"version":3,"file":"MCheckbox-CdDWGVp3.cjs","names":[],"sources":["../src/components/controls/MCheckbox/MCheckbox.tsx"],"sourcesContent":["import {forwardRef, useEffect, useRef} from 'react'\nimport type * as React from 'react'\nimport type {MCheckboxProps} from './MCheckbox.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MCheckbox.css'\n\n// Render a styled checkbox while keeping the native input for accessibility.\nexport const MCheckbox = forwardRef<HTMLInputElement, MCheckboxProps>(function MCheckbox(\n {\n checked,\n defaultChecked,\n indeterminate = false,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n error = false,\n errorText,\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const internalRef = useRef<HTMLInputElement>(null)\n const inputRef = (ref as React.RefObject<HTMLInputElement>) ?? internalRef\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n // Keep the browser indeterminate flag in sync with React props.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate, inputRef])\n\n const hasError = error || !!errorText\n\n return (\n <div className={cn('checkbox', className)} style={style}>\n <label className={cn('label', size, labelPosition === 'left' && 'label-left', disabled && 'disabled')}>\n <span\n className={cn('box', `color-${color}`, hasError && 'error', effectClassName)}\n onPointerDown={handlePointerDown}\n >\n {effectLayer}\n <input\n ref={inputRef}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n onChange={onChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n aria-invalid={hasError || undefined}\n />\n <span className=\"indeterminate-mark\" />\n </span>\n {label && <span className={cn('label-text', hasError && 'error')}>{label}</span>}\n </label>\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </div>\n )\n})\n"],"mappings":"2KAQA,IAAa,GAAA,EAAA,EAAA,YAAyD,SAClE,CACI,UACA,iBACA,gBAAgB,GAChB,OACA,KACA,QACA,WAAW,GACX,OAAO,KACP,QAAQ,UACR,QACA,gBAAgB,QAChB,QAAQ,GACR,YACA,WACA,cAAc,SACd,cACA,YACA,SAEJ,EACF,CACE,IAAM,GAAA,EAAA,EAAA,QAAuC,KAAK,CAC5C,EAAY,GAA6C,EACzD,CAAC,kBAAiB,cAAa,oBAAmB,iBAAiB,EAAA,EAAsC,CAC3G,OAAQ,EACR,WACA,SAAU,GACV,MAAO,EACV,CAAC,EAGF,EAAA,EAAA,eAAgB,CACR,EAAS,UACT,EAAS,QAAQ,cAAgB,IAEtC,CAAC,EAAe,EAAS,CAAC,CAE7B,IAAM,EAAW,GAAS,CAAC,CAAC,EAE5B,OACI,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,EAAG,WAAY,EAAU,CAAS,iBAAlD,EACI,EAAA,EAAA,MAAC,QAAD,CAAO,UAAW,EAAA,EAAG,QAAS,EAAM,IAAkB,QAAU,aAAc,GAAY,WAAW,UAArG,EACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EAAG,MAAO,SAAS,IAAS,GAAY,QAAS,EAAgB,CAC5E,cAAe,WAFnB,CAIK,GACD,EAAA,EAAA,KAAC,QAAD,CACI,IAAK,EACL,KAAK,WACI,UACO,iBACV,OACF,KACG,QACG,WACA,WACV,UAAY,GAAU,EACd,EAAM,MAAQ,KAAO,EAAM,MAAQ,UACnC,EAAc,EAAM,cAAc,cAAwC,EAGlF,UAAU,QACV,eAAc,GAAY,IAAA,GAC5B,CAAA,EACF,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,qBAAuB,CAAA,CACpC,GACN,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,EAAG,aAAc,GAAY,QAAQ,UAAG,EAAa,CAAA,CAC5E,GACP,IACG,EAAA,EAAA,KAAC,OAAD,CAAM,UAAU,cAAc,KAAK,iBAC9B,EACE,CAAA,CAET,IAEZ"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./icons-lUQfZ4Jr.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./MPopover-DfEiRuM9.cjs`),r=require(`./MButton-B9k45kH-.cjs`),i=require(`./MCheckbox-CdDWGVp3.cjs`),a=require(`./MInputSearch-X9yNPuTf.cjs`),ee=require(`./MPagination-B8BcGks_.cjs`);require(`./core-w629c4ND.cjs`);let o=require(`react`),s=require(`react/jsx-runtime`);function c(e,t,n){return typeof n==`function`?n(e,t):String(typeof n==`string`?e[n]:e.id??t)}function l(e,t){let n=t.split(`.`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function u({columns:u,data:d,rowKey:f,sortable:p=!1,filterable:m=!1,selectable:h=!1,pagination:g=!1,pageSize:_=10,striped:te=!1,compact:ne=!1,stickyHeader:re=!1,sort:v,onSortChange:y,search:b,onSearchChange:x,searchKeys:S,filterKeys:C=[],filters:w,onFiltersChange:T,sortKeys:E=[],page:D,onPageChange:O,total:ie,manualSearch:k=!1,manualFilters:A=!1,manualSort:j=!1,manualPagination:M=!1,selectedKeys:ae,onSelectionChange:oe,emptyText:se=`No data`,filterPlaceholder:ce=`Search...`,className:le,...ue}){let[de,fe]=(0,o.useState)(null),[pe,me]=(0,o.useState)([]),[he,ge]=(0,o.useState)(``),[_e,ve]=(0,o.useState)({}),[ye,N]=(0,o.useState)(1),[P,F]=(0,o.useState)(!1),[I,L]=(0,o.useState)(!1),R=(0,o.useRef)(null),z=(0,o.useRef)(null),B=v===void 0?de:v,V=b===void 0?he:b,H=w===void 0?_e:w,U=D===void 0?ye:D,W=ae??pe,G=oe??me,K=(0,o.useCallback)(e=>{b===void 0&&ge(e),!M&&D===void 0&&N(1),x?.(e)},[b,D,M,x]),be=(0,o.useCallback)(e=>{w===void 0&&ve(e),!M&&D===void 0&&N(1),T?.(e)},[w,D,M,T]),q=(0,o.useCallback)(e=>{v===void 0&&fe(e),!M&&D===void 0&&N(1),y?.(e)},[v,D,M,y]),xe=(0,o.useCallback)(e=>{D===void 0&&N(e),O?.(e)},[D,O]);function Se(e){let t;t=B?.key===e?B.dir===`asc`?{key:e,dir:`desc`}:null:{key:e,dir:`asc`},q(t)}function Ce(e,t){let n=H[e]??[],r=n.includes(t)?n.filter(e=>e!==t):[...n,t];be({...H,[e]:r})}let we=(0,o.useMemo)(()=>{let e={};for(let t of C){if(t.options){e[t.key]=t.options;continue}let n=new Set;for(let e of d){let r=l(e,t.key);r!=null&&n.add(String(r))}e[t.key]=Array.from(n).sort()}return e},[d,C]),J=(0,o.useMemo)(()=>{let e=d;if(!k&&m&&V.trim()){let t=V.toLowerCase();e=S&&S.length>0?e.filter(e=>S.some(n=>{let r=l(e,n);return r!=null&&String(r).toLowerCase().includes(t)})):e.filter(e=>u.some(n=>{if(n.filterable===!1)return!1;let r=e[n.key];return r!=null&&String(r).toLowerCase().includes(t)}))}if(!A)for(let[t,n]of Object.entries(H))!n||n.length===0||(e=e.filter(e=>{let r=l(e,t);return r!=null&&n.includes(String(r))}));return e},[d,k,A,m,V,S,u,H]),Y=(0,o.useMemo)(()=>{if(j||!B)return J;let e=u.find(e=>e.key===B.key),t=E.some(e=>e.key===B.key);if(!e?.sortable&&!p&&!t)return J;let n=B.dir===`asc`?1:-1;return[...J].sort((e,t)=>{let r=e[B.key],i=t[B.key];return r==null&&i==null?0:r==null?1:i==null?-1:typeof r==`number`&&typeof i==`number`?(r-i)*n:String(r).localeCompare(String(i))*n})},[J,B,u,p,E,j]),X=M?ie??Y.length:Y.length,Te=g?Math.max(1,Math.ceil(X/_)):1,Z=(0,o.useMemo)(()=>{if(!g||M)return Y;let e=(U-1)*_;return Y.slice(e,e+_)},[Y,g,M,U,_]),Q=Z.map((e,t)=>c(e,(U-1)*_+t,f)),$=Q.length>0&&Q.every(e=>W.includes(e));function Ee(){G($?W.filter(e=>!Q.includes(e)):[...new Set([...W,...Q])])}function De(e){G(W.includes(e)?W.filter(t=>t!==e):[...W,e])}function Oe(e,t){t.target.closest(`button, a, [data-no-row-select]`)||De(e)}let ke=(0,o.useCallback)(()=>{F(e=>!e),L(!1)},[]),Ae=(0,o.useCallback)(()=>{L(e=>!e),F(!1)},[]),je=E.find(e=>e.key===B?.key),Me=m||C.length>0||E.length>0;return(0,s.jsxs)(`div`,{className:t.t(`data-table`,le),...ue,children:[Me&&(0,s.jsxs)(`div`,{className:`toolbar`,children:[m&&(0,s.jsx)(a.t,{className:`filter-search`,size:`sm`,fullWidth:!0,placeholder:ce,value:V,onChange:e=>K(e.target.value),onClear:()=>K(``)}),(C.length>0||E.length>0)&&(0,s.jsxs)(`div`,{className:`toolbar-actions`,children:[C.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.t,{ref:R,variant:`outlined`,size:`sm`,startIcon:(0,s.jsx)(e.an,{}),"aria-expanded":P,onClick:ke,children:`Filter`}),(0,s.jsx)(n.t,{open:P,anchorRef:R,onClose:()=>F(!1),placement:`bottom-end`,className:`data-table-dropdown`,children:C.map(e=>(0,s.jsxs)(`div`,{className:`data-table-filter-group`,children:[(0,s.jsx)(`span`,{className:`data-table-filter-label`,children:e.label}),(we[e.key]??[]).map(t=>(0,s.jsx)(`div`,{className:`data-table-filter-option`,children:(0,s.jsx)(i.t,{size:`sm`,clickEffect:`none`,checked:H[e.key]?.includes(t)??!1,onChange:()=>Ce(e.key,t),label:t})},t))]},e.key))})]}),E.length>0&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.t,{ref:z,variant:`outlined`,size:`sm`,startIcon:B?B.dir===`asc`?(0,s.jsx)(e.ki,{}):(0,s.jsx)(e.Oi,{}):(0,s.jsx)(e.in,{}),"aria-expanded":I,onClick:Ae,children:je?`Sort: ${je.label}`:`Sort`}),(0,s.jsx)(n.t,{open:I,anchorRef:z,onClose:()=>L(!1),placement:`bottom-end`,className:`data-table-dropdown`,children:E.map(n=>(0,s.jsxs)(`button`,{type:`button`,className:t.t(`data-table-sort-item`,B?.key===n.key&&`active`),onClick:()=>{B?.key===n.key?q({key:n.key,dir:B.dir===`asc`?`desc`:`asc`}):q({key:n.key,dir:`asc`})},children:[n.label,B?.key===n.key&&(0,s.jsx)(`span`,{className:`data-table-sort-dir`,children:B.dir===`asc`?(0,s.jsx)(e.ki,{className:`data-table-sort-icon`}):(0,s.jsx)(e.Oi,{className:`data-table-sort-icon`})})]},n.key))})]})]})]}),(0,s.jsx)(`div`,{className:`scroll`,children:(0,s.jsxs)(`table`,{className:t.t(`root`,te&&`striped`,ne&&`compact`),children:[(0,s.jsx)(`thead`,{className:t.t(`head`,re&&`sticky`),children:(0,s.jsxs)(`tr`,{children:[h&&(0,s.jsx)(`th`,{className:`th check-col`,children:(0,s.jsx)(i.t,{checked:$,onChange:Ee,size:`sm`,clickEffect:`none`})}),u.map(n=>{let r=n.sortable??p,i=B?.key===n.key;return(0,s.jsx)(`th`,{className:t.t(`th`,r&&`sortable`,i&&`sorted-${B.dir}`),style:{width:n.width,textAlign:n.align},onClick:r?()=>Se(n.key):void 0,children:(0,s.jsxs)(`span`,{className:`th-content`,children:[n.label,r&&(0,s.jsx)(`span`,{className:`sort-icon`,children:i?B.dir===`asc`?(0,s.jsx)(e.ki,{"aria-hidden":`true`}):(0,s.jsx)(e.Oi,{"aria-hidden":`true`}):(0,s.jsx)(e.Di,{"aria-hidden":`true`})})]})},n.key)})]})}),(0,s.jsxs)(`tbody`,{children:[Z.length===0&&(0,s.jsx)(`tr`,{children:(0,s.jsx)(`td`,{className:`empty`,colSpan:u.length+ +!!h,children:se})}),Z.map((e,n)=>{let r=c(e,(U-1)*_+n,f),a=W.includes(r);return(0,s.jsxs)(`tr`,{className:t.t(`row`,a&&`selected`,h&&`selectable`),onClick:h?e=>Oe(r,e):void 0,children:[h&&(0,s.jsx)(`td`,{className:`td check-col`,children:(0,s.jsx)(i.t,{checked:a,onChange:()=>{},size:`sm`,clickEffect:`none`})}),u.map(t=>(0,s.jsx)(`td`,{className:`td`,style:{textAlign:t.align},children:t.render?t.render(e[t.key],e,(U-1)*_+n):e[t.key]},t.key))]},r)})]})]})}),g&&Te>1&&(0,s.jsx)(ee.t,{total:X,page:U,pageSize:_,onChange:xe})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
2
+ //# sourceMappingURL=MDataTable-C3v15no3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MDataTable-C3v15no3.cjs","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx"],"sourcesContent":["import {useCallback, useMemo, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MButton, MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MPopover} from '../../primitives'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon, MFilterIcon, MSortIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MDataTable.css'\n\nfunction getRowKey<T>(row: T, index: number, rowKey?: string | ((row: T, index: number) => string)): string {\n if (typeof rowKey === 'function') return rowKey(row, index)\n if (typeof rowKey === 'string') return String((row as any)[rowKey])\n return String((row as any).id ?? index)\n}\n\nfunction getNestedValue(obj: unknown, key: string): unknown {\n const parts = key.split('.')\n let val: unknown = obj\n\n for (const p of parts) {\n if (val == null || typeof val !== 'object') return undefined\n val = (val as Record<string, unknown>)[p]\n }\n\n return val\n}\n\nexport function MDataTable<T = any>({\n columns,\n data,\n rowKey,\n sortable = false,\n filterable = false,\n selectable = false,\n pagination = false,\n pageSize = 10,\n striped = false,\n compact = false,\n stickyHeader = false,\n sort: controlledSort,\n onSortChange,\n search: controlledSearch,\n onSearchChange,\n searchKeys,\n filterKeys = [],\n filters: controlledFilters,\n onFiltersChange,\n sortKeys = [],\n page: controlledPage,\n onPageChange,\n total,\n manualSearch = false,\n manualFilters = false,\n manualSort = false,\n manualPagination = false,\n selectedKeys: controlledSelected,\n onSelectionChange,\n emptyText = 'No data',\n filterPlaceholder = 'Search...',\n className,\n ...rest\n}: MDataTableProps<T>) {\n const [internalSort, setInternalSort] = useState<MDataTableSort | null>(null)\n const [internalSelected, setInternalSelected] = useState<string[]>([])\n const [internalSearch, setInternalSearch] = useState('')\n const [internalFilters, setInternalFilters] = useState<Record<string, string[]>>({})\n const [internalPage, setInternalPage] = useState(1)\n const [filterOpen, setFilterOpen] = useState(false)\n const [sortOpen, setSortOpen] = useState(false)\n const filterBtnRef = useRef<HTMLElement>(null)\n const sortBtnRef = useRef<HTMLElement>(null)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const search = controlledSearch !== undefined ? controlledSearch : internalSearch\n const filters = controlledFilters !== undefined ? controlledFilters : internalFilters\n const page = controlledPage !== undefined ? controlledPage : internalPage\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\n\n const setSearch = useCallback(\n (next: string) => {\n if (controlledSearch === undefined) setInternalSearch(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onSearchChange?.(next)\n },\n [controlledSearch, controlledPage, manualPagination, onSearchChange]\n )\n\n const setFilters = useCallback(\n (next: Record<string, string[]>) => {\n if (controlledFilters === undefined) setInternalFilters(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onFiltersChange?.(next)\n },\n [controlledFilters, controlledPage, manualPagination, onFiltersChange]\n )\n\n const setSort = useCallback(\n (next: MDataTableSort | null) => {\n if (controlledSort === undefined) setInternalSort(next)\n if (!manualPagination && controlledPage === undefined) setInternalPage(1)\n onSortChange?.(next)\n },\n [controlledSort, controlledPage, manualPagination, onSortChange]\n )\n\n const setPage = useCallback(\n (next: number) => {\n if (controlledPage === undefined) setInternalPage(next)\n onPageChange?.(next)\n },\n [controlledPage, onPageChange]\n )\n\n function handleSort(key: string) {\n let next: MDataTableSort | null\n\n if (activeSort?.key === key) {\n next = activeSort.dir === 'asc' ? {key, dir: 'desc'} : null\n } else {\n next = {key, dir: 'asc'}\n }\n\n setSort(next)\n }\n\n function toggleFilterValue(key: string, value: string) {\n const current = filters[key] ?? []\n const next = current.includes(value) ? current.filter((item) => item !== value) : [...current, value]\n setFilters({...filters, [key]: next})\n }\n\n const filterOptions = useMemo(() => {\n const map: Record<string, string[]> = {}\n\n for (const filterKey of filterKeys) {\n if (filterKey.options) {\n map[filterKey.key] = filterKey.options\n continue\n }\n\n const values = new Set<string>()\n\n for (const row of data) {\n const value = getNestedValue(row, filterKey.key)\n if (value != null) values.add(String(value))\n }\n\n map[filterKey.key] = Array.from(values).sort()\n }\n\n return map\n }, [data, filterKeys])\n\n const filtered = useMemo(() => {\n let result: T[] = data\n\n if (!manualSearch && filterable && search.trim()) {\n const query = search.toLowerCase()\n\n if (searchKeys && searchKeys.length > 0) {\n result = result.filter((row) =>\n searchKeys.some((key) => {\n const value = getNestedValue(row, key)\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n } else {\n result = result.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }\n }\n\n if (!manualFilters) {\n for (const [key, selectedValues] of Object.entries(filters)) {\n if (!selectedValues || selectedValues.length === 0) continue\n\n result = result.filter((row) => {\n const value = getNestedValue(row, key)\n return value != null && selectedValues.includes(String(value))\n })\n }\n }\n\n return result\n }, [data, manualSearch, manualFilters, filterable, search, searchKeys, columns, filters])\n\n const sorted = useMemo(() => {\n if (manualSort || !activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n const sortKeyAllowed = sortKeys.some((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable && !sortKeyAllowed) return filtered\n\n const dir = activeSort.dir === 'asc' ? 1 : -1\n\n return [...filtered].sort((a, b) => {\n const va = (a as any)[activeSort.key]\n const vb = (b as any)[activeSort.key]\n\n if (va == null && vb == null) return 0\n if (va == null) return 1\n if (vb == null) return -1\n if (typeof va === 'number' && typeof vb === 'number') return (va - vb) * dir\n\n return String(va).localeCompare(String(vb)) * dir\n })\n }, [filtered, activeSort, columns, sortable, sortKeys, manualSort])\n\n const totalItems = manualPagination ? (total ?? sorted.length) : sorted.length\n const totalPages = pagination ? Math.max(1, Math.ceil(totalItems / pageSize)) : 1\n const pageData = useMemo(() => {\n if (!pagination || manualPagination) return sorted\n const start = (page - 1) * pageSize\n return sorted.slice(start, start + pageSize)\n }, [sorted, pagination, manualPagination, page, pageSize])\n\n const allKeys = pageData.map((row, index) => getRowKey(row, (page - 1) * pageSize + index, rowKey))\n const allSelected = allKeys.length > 0 && allKeys.every((key) => selected.includes(key))\n\n function toggleAll() {\n if (allSelected) {\n setSelected(selected.filter((key) => !allKeys.includes(key)))\n } else {\n setSelected([...new Set([...selected, ...allKeys])])\n }\n }\n\n function toggleRow(key: string) {\n setSelected(selected.includes(key) ? selected.filter((item) => item !== key) : [...selected, key])\n }\n\n function handleRowClick(key: string, event: React.MouseEvent) {\n const target = event.target as HTMLElement\n if (target.closest('button, a, [data-no-row-select]')) return\n toggleRow(key)\n }\n\n const openFilter = useCallback(() => {\n setFilterOpen((v) => !v)\n setSortOpen(false)\n }, [])\n\n const openSort = useCallback(() => {\n setSortOpen((v) => !v)\n setFilterOpen(false)\n }, [])\n\n const activeSortMenuItem = sortKeys.find((item) => item.key === activeSort?.key)\n const showToolbar = filterable || filterKeys.length > 0 || sortKeys.length > 0\n\n return (\n <div className={cn('data-table', className)} {...rest}>\n {showToolbar && (\n <div className=\"toolbar\">\n {filterable && (\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n onClear={() => setSearch('')}\n />\n )}\n\n {(filterKeys.length > 0 || sortKeys.length > 0) && (\n <div className=\"toolbar-actions\">\n {filterKeys.length > 0 && (\n <>\n <MButton\n ref={filterBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={<MFilterIcon />}\n aria-expanded={filterOpen}\n onClick={openFilter}\n >\n Filter\n </MButton>\n <MPopover\n open={filterOpen}\n anchorRef={filterBtnRef}\n onClose={() => setFilterOpen(false)}\n placement=\"bottom-end\"\n className=\"data-table-dropdown\"\n >\n {filterKeys.map((filterKey) => (\n <div key={filterKey.key} className=\"data-table-filter-group\">\n <span className=\"data-table-filter-label\">{filterKey.label}</span>\n {(filterOptions[filterKey.key] ?? []).map((option) => (\n <div key={option} className=\"data-table-filter-option\">\n <MCheckbox\n size=\"sm\"\n clickEffect=\"none\"\n checked={\n filters[filterKey.key]?.includes(option) ?? false\n }\n onChange={() =>\n toggleFilterValue(filterKey.key, option)\n }\n label={option}\n />\n </div>\n ))}\n </div>\n ))}\n </MPopover>\n </>\n )}\n\n {sortKeys.length > 0 && (\n <>\n <MButton\n ref={sortBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={\n activeSort ? (\n activeSort.dir === 'asc' ? (\n <MArrowUpIcon />\n ) : (\n <MArrowDownIcon />\n )\n ) : (\n <MSortIcon />\n )\n }\n aria-expanded={sortOpen}\n onClick={openSort}\n >\n {activeSortMenuItem ? `Sort: ${activeSortMenuItem.label}` : 'Sort'}\n </MButton>\n <MPopover\n open={sortOpen}\n anchorRef={sortBtnRef}\n onClose={() => setSortOpen(false)}\n placement=\"bottom-end\"\n className=\"data-table-dropdown\"\n >\n {sortKeys.map((sortItem) => (\n <button\n key={sortItem.key}\n type=\"button\"\n className={cn(\n 'data-table-sort-item',\n activeSort?.key === sortItem.key && 'active'\n )}\n onClick={() => {\n if (activeSort?.key === sortItem.key) {\n setSort({\n key: sortItem.key,\n dir: activeSort.dir === 'asc' ? 'desc' : 'asc',\n })\n } else {\n setSort({key: sortItem.key, dir: 'asc'})\n }\n }}\n >\n {sortItem.label}\n {activeSort?.key === sortItem.key && (\n <span className=\"data-table-sort-dir\">\n {activeSort.dir === 'asc' ? (\n <MArrowUpIcon className=\"data-table-sort-icon\" />\n ) : (\n <MArrowDownIcon className=\"data-table-sort-icon\" />\n )}\n </span>\n )}\n </button>\n ))}\n </MPopover>\n </>\n )}\n </div>\n )}\n </div>\n )}\n <div className=\"scroll\">\n <table className={cn('root', striped && 'striped', compact && 'compact')}>\n <thead className={cn('head', stickyHeader && 'sticky')}>\n <tr>\n {selectable && (\n <th className=\"th check-col\">\n <MCheckbox\n checked={allSelected}\n onChange={toggleAll}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </th>\n )}\n {columns.map((col) => {\n const isSortable = col.sortable ?? sortable\n const isSorted = activeSort?.key === col.key\n\n return (\n <th\n key={col.key}\n className={cn(\n 'th',\n isSortable && 'sortable',\n isSorted && `sorted-${activeSort!.dir}`\n )}\n style={{\n width: col.width,\n textAlign: col.align,\n }}\n onClick={isSortable ? () => handleSort(col.key) : undefined}\n >\n <span className=\"th-content\">\n {col.label}\n {isSortable && (\n <span className=\"sort-icon\">\n {isSorted ? (\n activeSort!.dir === 'asc' ? (\n <MArrowUpIcon aria-hidden=\"true\" />\n ) : (\n <MArrowDownIcon aria-hidden=\"true\" />\n )\n ) : (\n <MArrowUpDownIcon aria-hidden=\"true\" />\n )}\n </span>\n )}\n </span>\n </th>\n )\n })}\n </tr>\n </thead>\n <tbody>\n {pageData.length === 0 && (\n <tr>\n <td className=\"empty\" colSpan={columns.length + (selectable ? 1 : 0)}>\n {emptyText}\n </td>\n </tr>\n )}\n {pageData.map((row, index) => {\n const key = getRowKey(row, (page - 1) * pageSize + index, rowKey)\n const isSelected = selected.includes(key)\n\n return (\n <tr\n key={key}\n className={cn('row', isSelected && 'selected', selectable && 'selectable')}\n onClick={selectable ? (event) => handleRowClick(key, event) : undefined}\n >\n {selectable && (\n <td className=\"td check-col\">\n <MCheckbox\n checked={isSelected}\n onChange={() => {}}\n size=\"sm\"\n clickEffect=\"none\"\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={col.key} className=\"td\" style={{textAlign: col.align}}>\n {col.render\n ? col.render((row as any)[col.key], row, (page - 1) * pageSize + index)\n : (row as any)[col.key]}\n </td>\n ))}\n </tr>\n )\n })}\n </tbody>\n </table>\n </div>\n {pagination && totalPages > 1 && (\n <MPagination total={totalItems} page={page} pageSize={pageSize} onChange={setPage} />\n )}\n </div>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,297 @@
1
+ import { Di as e, Oi as t, an as n, in as r, ki as i } from "./icons-CfpYxnfg.js";
2
+ import { t as a } from "./cn-YER3QsV1.js";
3
+ import { t as o } from "./MPopover-Cqz5TsHg.js";
4
+ import { t as s } from "./MButton-y9qXhhGt.js";
5
+ import { t as c } from "./MCheckbox-B-nT2OBE.js";
6
+ import { t as ee } from "./MInputSearch-BwR-BPh2.js";
7
+ import { t as te } from "./MPagination-BdBpF3Px.js";
8
+ import { useCallback as l, useMemo as u, useRef as ne, useState as d } from "react";
9
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
10
+ //#region src/components/data/MDataTable/MDataTable.tsx
11
+ function re(e, t, n) {
12
+ return typeof n == "function" ? n(e, t) : String(typeof n == "string" ? e[n] : e.id ?? t);
13
+ }
14
+ function h(e, t) {
15
+ let n = t.split("."), r = e;
16
+ for (let e of n) {
17
+ if (typeof r != "object" || !r) return;
18
+ r = r[e];
19
+ }
20
+ return r;
21
+ }
22
+ function g({ columns: g, data: _, rowKey: v, sortable: y = !1, filterable: b = !1, selectable: x = !1, pagination: S = !1, pageSize: C = 10, striped: ie = !1, compact: ae = !1, stickyHeader: oe = !1, sort: w, onSortChange: T, search: E, onSearchChange: D, searchKeys: O, filterKeys: k = [], filters: A, onFiltersChange: se, sortKeys: j = [], page: M, onPageChange: ce, total: le, manualSearch: ue = !1, manualFilters: N = !1, manualSort: P = !1, manualPagination: F = !1, selectedKeys: de, onSelectionChange: fe, emptyText: pe = "No data", filterPlaceholder: me = "Search...", className: he, ...ge }) {
23
+ let [_e, ve] = d(null), [ye, be] = d([]), [xe, Se] = d(""), [Ce, we] = d({}), [Te, I] = d(1), [L, R] = d(!1), [z, B] = d(!1), V = ne(null), H = ne(null), U = w === void 0 ? _e : w, W = E === void 0 ? xe : E, G = A === void 0 ? Ce : A, K = M === void 0 ? Te : M, q = de ?? ye, Ee = fe ?? be, De = l((e) => {
24
+ E === void 0 && Se(e), !F && M === void 0 && I(1), D?.(e);
25
+ }, [
26
+ E,
27
+ M,
28
+ F,
29
+ D
30
+ ]), Oe = l((e) => {
31
+ A === void 0 && we(e), !F && M === void 0 && I(1), se?.(e);
32
+ }, [
33
+ A,
34
+ M,
35
+ F,
36
+ se
37
+ ]), J = l((e) => {
38
+ w === void 0 && ve(e), !F && M === void 0 && I(1), T?.(e);
39
+ }, [
40
+ w,
41
+ M,
42
+ F,
43
+ T
44
+ ]), ke = l((e) => {
45
+ M === void 0 && I(e), ce?.(e);
46
+ }, [M, ce]);
47
+ function Ae(e) {
48
+ let t;
49
+ t = U?.key === e ? U.dir === "asc" ? {
50
+ key: e,
51
+ dir: "desc"
52
+ } : null : {
53
+ key: e,
54
+ dir: "asc"
55
+ }, J(t);
56
+ }
57
+ function je(e, t) {
58
+ let n = G[e] ?? [], r = n.includes(t) ? n.filter((e) => e !== t) : [...n, t];
59
+ Oe({
60
+ ...G,
61
+ [e]: r
62
+ });
63
+ }
64
+ let Me = u(() => {
65
+ let e = {};
66
+ for (let t of k) {
67
+ if (t.options) {
68
+ e[t.key] = t.options;
69
+ continue;
70
+ }
71
+ let n = /* @__PURE__ */ new Set();
72
+ for (let e of _) {
73
+ let r = h(e, t.key);
74
+ r != null && n.add(String(r));
75
+ }
76
+ e[t.key] = Array.from(n).sort();
77
+ }
78
+ return e;
79
+ }, [_, k]), Y = u(() => {
80
+ let e = _;
81
+ if (!ue && b && W.trim()) {
82
+ let t = W.toLowerCase();
83
+ e = O && O.length > 0 ? e.filter((e) => O.some((n) => {
84
+ let r = h(e, n);
85
+ return r != null && String(r).toLowerCase().includes(t);
86
+ })) : e.filter((e) => g.some((n) => {
87
+ if (n.filterable === !1) return !1;
88
+ let r = e[n.key];
89
+ return r != null && String(r).toLowerCase().includes(t);
90
+ }));
91
+ }
92
+ if (!N) for (let [t, n] of Object.entries(G)) !n || n.length === 0 || (e = e.filter((e) => {
93
+ let r = h(e, t);
94
+ return r != null && n.includes(String(r));
95
+ }));
96
+ return e;
97
+ }, [
98
+ _,
99
+ ue,
100
+ N,
101
+ b,
102
+ W,
103
+ O,
104
+ g,
105
+ G
106
+ ]), X = u(() => {
107
+ if (P || !U) return Y;
108
+ let e = g.find((e) => e.key === U.key), t = j.some((e) => e.key === U.key);
109
+ if (!e?.sortable && !y && !t) return Y;
110
+ let n = U.dir === "asc" ? 1 : -1;
111
+ return [...Y].sort((e, t) => {
112
+ let r = e[U.key], i = t[U.key];
113
+ return r == null && i == null ? 0 : r == null ? 1 : i == null ? -1 : typeof r == "number" && typeof i == "number" ? (r - i) * n : String(r).localeCompare(String(i)) * n;
114
+ });
115
+ }, [
116
+ Y,
117
+ U,
118
+ g,
119
+ y,
120
+ j,
121
+ P
122
+ ]), Z = F ? le ?? X.length : X.length, Ne = S ? Math.max(1, Math.ceil(Z / C)) : 1, Q = u(() => {
123
+ if (!S || F) return X;
124
+ let e = (K - 1) * C;
125
+ return X.slice(e, e + C);
126
+ }, [
127
+ X,
128
+ S,
129
+ F,
130
+ K,
131
+ C
132
+ ]), $ = Q.map((e, t) => re(e, (K - 1) * C + t, v)), Pe = $.length > 0 && $.every((e) => q.includes(e));
133
+ function Fe() {
134
+ Ee(Pe ? q.filter((e) => !$.includes(e)) : [...new Set([...q, ...$])]);
135
+ }
136
+ function Ie(e) {
137
+ Ee(q.includes(e) ? q.filter((t) => t !== e) : [...q, e]);
138
+ }
139
+ function Le(e, t) {
140
+ t.target.closest("button, a, [data-no-row-select]") || Ie(e);
141
+ }
142
+ let Re = l(() => {
143
+ R((e) => !e), B(!1);
144
+ }, []), ze = l(() => {
145
+ B((e) => !e), R(!1);
146
+ }, []), Be = j.find((e) => e.key === U?.key), Ve = b || k.length > 0 || j.length > 0;
147
+ return /* @__PURE__ */ m("div", {
148
+ className: a("data-table", he),
149
+ ...ge,
150
+ children: [
151
+ Ve && /* @__PURE__ */ m("div", {
152
+ className: "toolbar",
153
+ children: [b && /* @__PURE__ */ p(ee, {
154
+ className: "filter-search",
155
+ size: "sm",
156
+ fullWidth: !0,
157
+ placeholder: me,
158
+ value: W,
159
+ onChange: (e) => De(e.target.value),
160
+ onClear: () => De("")
161
+ }), (k.length > 0 || j.length > 0) && /* @__PURE__ */ m("div", {
162
+ className: "toolbar-actions",
163
+ children: [k.length > 0 && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(s, {
164
+ ref: V,
165
+ variant: "outlined",
166
+ size: "sm",
167
+ startIcon: /* @__PURE__ */ p(n, {}),
168
+ "aria-expanded": L,
169
+ onClick: Re,
170
+ children: "Filter"
171
+ }), /* @__PURE__ */ p(o, {
172
+ open: L,
173
+ anchorRef: V,
174
+ onClose: () => R(!1),
175
+ placement: "bottom-end",
176
+ className: "data-table-dropdown",
177
+ children: k.map((e) => /* @__PURE__ */ m("div", {
178
+ className: "data-table-filter-group",
179
+ children: [/* @__PURE__ */ p("span", {
180
+ className: "data-table-filter-label",
181
+ children: e.label
182
+ }), (Me[e.key] ?? []).map((t) => /* @__PURE__ */ p("div", {
183
+ className: "data-table-filter-option",
184
+ children: /* @__PURE__ */ p(c, {
185
+ size: "sm",
186
+ clickEffect: "none",
187
+ checked: G[e.key]?.includes(t) ?? !1,
188
+ onChange: () => je(e.key, t),
189
+ label: t
190
+ })
191
+ }, t))]
192
+ }, e.key))
193
+ })] }), j.length > 0 && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p(s, {
194
+ ref: H,
195
+ variant: "outlined",
196
+ size: "sm",
197
+ startIcon: U ? U.dir === "asc" ? /* @__PURE__ */ p(i, {}) : /* @__PURE__ */ p(t, {}) : /* @__PURE__ */ p(r, {}),
198
+ "aria-expanded": z,
199
+ onClick: ze,
200
+ children: Be ? `Sort: ${Be.label}` : "Sort"
201
+ }), /* @__PURE__ */ p(o, {
202
+ open: z,
203
+ anchorRef: H,
204
+ onClose: () => B(!1),
205
+ placement: "bottom-end",
206
+ className: "data-table-dropdown",
207
+ children: j.map((e) => /* @__PURE__ */ m("button", {
208
+ type: "button",
209
+ className: a("data-table-sort-item", U?.key === e.key && "active"),
210
+ onClick: () => {
211
+ U?.key === e.key ? J({
212
+ key: e.key,
213
+ dir: U.dir === "asc" ? "desc" : "asc"
214
+ }) : J({
215
+ key: e.key,
216
+ dir: "asc"
217
+ });
218
+ },
219
+ children: [e.label, U?.key === e.key && /* @__PURE__ */ p("span", {
220
+ className: "data-table-sort-dir",
221
+ children: U.dir === "asc" ? /* @__PURE__ */ p(i, { className: "data-table-sort-icon" }) : /* @__PURE__ */ p(t, { className: "data-table-sort-icon" })
222
+ })]
223
+ }, e.key))
224
+ })] })]
225
+ })]
226
+ }),
227
+ /* @__PURE__ */ p("div", {
228
+ className: "scroll",
229
+ children: /* @__PURE__ */ m("table", {
230
+ className: a("root", ie && "striped", ae && "compact"),
231
+ children: [/* @__PURE__ */ p("thead", {
232
+ className: a("head", oe && "sticky"),
233
+ children: /* @__PURE__ */ m("tr", { children: [x && /* @__PURE__ */ p("th", {
234
+ className: "th check-col",
235
+ children: /* @__PURE__ */ p(c, {
236
+ checked: Pe,
237
+ onChange: Fe,
238
+ size: "sm",
239
+ clickEffect: "none"
240
+ })
241
+ }), g.map((n) => {
242
+ let r = n.sortable ?? y, o = U?.key === n.key;
243
+ return /* @__PURE__ */ p("th", {
244
+ className: a("th", r && "sortable", o && `sorted-${U.dir}`),
245
+ style: {
246
+ width: n.width,
247
+ textAlign: n.align
248
+ },
249
+ onClick: r ? () => Ae(n.key) : void 0,
250
+ children: /* @__PURE__ */ m("span", {
251
+ className: "th-content",
252
+ children: [n.label, r && /* @__PURE__ */ p("span", {
253
+ className: "sort-icon",
254
+ children: o ? U.dir === "asc" ? /* @__PURE__ */ p(i, { "aria-hidden": "true" }) : /* @__PURE__ */ p(t, { "aria-hidden": "true" }) : /* @__PURE__ */ p(e, { "aria-hidden": "true" })
255
+ })]
256
+ })
257
+ }, n.key);
258
+ })] })
259
+ }), /* @__PURE__ */ m("tbody", { children: [Q.length === 0 && /* @__PURE__ */ p("tr", { children: /* @__PURE__ */ p("td", {
260
+ className: "empty",
261
+ colSpan: g.length + +!!x,
262
+ children: pe
263
+ }) }), Q.map((e, t) => {
264
+ let n = re(e, (K - 1) * C + t, v), r = q.includes(n);
265
+ return /* @__PURE__ */ m("tr", {
266
+ className: a("row", r && "selected", x && "selectable"),
267
+ onClick: x ? (e) => Le(n, e) : void 0,
268
+ children: [x && /* @__PURE__ */ p("td", {
269
+ className: "td check-col",
270
+ children: /* @__PURE__ */ p(c, {
271
+ checked: r,
272
+ onChange: () => {},
273
+ size: "sm",
274
+ clickEffect: "none"
275
+ })
276
+ }), g.map((n) => /* @__PURE__ */ p("td", {
277
+ className: "td",
278
+ style: { textAlign: n.align },
279
+ children: n.render ? n.render(e[n.key], e, (K - 1) * C + t) : e[n.key]
280
+ }, n.key))]
281
+ }, n);
282
+ })] })]
283
+ })
284
+ }),
285
+ S && Ne > 1 && /* @__PURE__ */ p(te, {
286
+ total: Z,
287
+ page: K,
288
+ pageSize: C,
289
+ onChange: ke
290
+ })
291
+ ]
292
+ });
293
+ }
294
+ //#endregion
295
+ export { g as t };
296
+
297
+ //# sourceMappingURL=MDataTable-C_XiTGTF.js.map