@banzamel/mineralui 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +55 -22
  2. package/dist/{MArrowDownIcon-BslRpwqk.js → MArrowDownIcon-BcKSgdTY.js} +1 -1
  3. package/dist/{MArrowDownIcon-BslRpwqk.js.map → MArrowDownIcon-BcKSgdTY.js.map} +1 -1
  4. package/dist/{MArrowDownIcon-DjLz-A0I.cjs → MArrowDownIcon-C8EAODgv.cjs} +1 -1
  5. package/dist/{MArrowDownIcon-DjLz-A0I.cjs.map → MArrowDownIcon-C8EAODgv.cjs.map} +1 -1
  6. package/dist/MArrowUpDownIcon-CW_PWr7Q.cjs +2 -0
  7. package/dist/MArrowUpDownIcon-CW_PWr7Q.cjs.map +1 -0
  8. package/dist/MArrowUpDownIcon-DukXemVA.js +19 -0
  9. package/dist/MArrowUpDownIcon-DukXemVA.js.map +1 -0
  10. package/dist/{MArrowUpIcon-CjLbBZOW.cjs → MArrowUpIcon-DWV_HYrz.cjs} +1 -1
  11. package/dist/{MArrowUpIcon-CjLbBZOW.cjs.map → MArrowUpIcon-DWV_HYrz.cjs.map} +1 -1
  12. package/dist/{MArrowUpIcon-CudFd1sD.js → MArrowUpIcon-Dan-4hs8.js} +1 -1
  13. package/dist/{MArrowUpIcon-CudFd1sD.js.map → MArrowUpIcon-Dan-4hs8.js.map} +1 -1
  14. package/dist/{MAvatar-B_YPaZt9.js → MAvatar-Blh5pfSO.js} +4 -4
  15. package/dist/{MAvatar-B_YPaZt9.js.map → MAvatar-Blh5pfSO.js.map} +1 -1
  16. package/dist/{MAvatar-lzW37S2c.cjs → MAvatar-DMM1CsdO.cjs} +2 -2
  17. package/dist/{MAvatar-lzW37S2c.cjs.map → MAvatar-DMM1CsdO.cjs.map} +1 -1
  18. package/dist/{MBadge-lezDpe-x.cjs → MBadge-Babyr1R9.cjs} +2 -2
  19. package/dist/{MBadge-lezDpe-x.cjs.map → MBadge-Babyr1R9.cjs.map} +1 -1
  20. package/dist/{MBadge-jh7HI3jR.js → MBadge-BjZX0MIC.js} +2 -2
  21. package/dist/{MBadge-jh7HI3jR.js.map → MBadge-BjZX0MIC.js.map} +1 -1
  22. package/dist/MBrandMoreIcons-ClUq3DXO.js +873 -0
  23. package/dist/MBrandMoreIcons-ClUq3DXO.js.map +1 -0
  24. package/dist/MBrandMoreIcons-Xxf9FaIx.cjs +2 -0
  25. package/dist/MBrandMoreIcons-Xxf9FaIx.cjs.map +1 -0
  26. package/dist/{MButton-BIWj6T2J.js → MButton-33EzpGvQ.js} +3 -3
  27. package/dist/{MButton-BIWj6T2J.js.map → MButton-33EzpGvQ.js.map} +1 -1
  28. package/dist/{MButton-DOtMjOTz.cjs → MButton-C_WTyNvw.cjs} +2 -2
  29. package/dist/{MButton-DOtMjOTz.cjs.map → MButton-C_WTyNvw.cjs.map} +1 -1
  30. package/dist/{MCalendarIcon-CgFKAojj.cjs → MCalendarIcon-4PilFCrR.cjs} +1 -1
  31. package/dist/{MCalendarIcon-CgFKAojj.cjs.map → MCalendarIcon-4PilFCrR.cjs.map} +1 -1
  32. package/dist/{MCalendarIcon-Csj_JV9i.js → MCalendarIcon-DXx62vjV.js} +1 -1
  33. package/dist/{MCalendarIcon-Csj_JV9i.js.map → MCalendarIcon-DXx62vjV.js.map} +1 -1
  34. package/dist/MChatIcon-CnDOfqkO.js +102 -0
  35. package/dist/MChatIcon-CnDOfqkO.js.map +1 -0
  36. package/dist/MChatIcon-DX-u8_6S.cjs +2 -0
  37. package/dist/MChatIcon-DX-u8_6S.cjs.map +1 -0
  38. package/dist/MCheckIcon-DQumT4HX.js +15 -0
  39. package/dist/MCheckIcon-DQumT4HX.js.map +1 -0
  40. package/dist/MCheckIcon-ck_21ybZ.cjs +2 -0
  41. package/dist/MCheckIcon-ck_21ybZ.cjs.map +1 -0
  42. package/dist/{MCheckbox-Vbr4IhEn.cjs → MCheckbox-BhtJDdip.cjs} +2 -2
  43. package/dist/{MCheckbox-Vbr4IhEn.cjs.map → MCheckbox-BhtJDdip.cjs.map} +1 -1
  44. package/dist/{MCheckbox-DhDggBnO.js → MCheckbox-CugP7F6H.js} +3 -3
  45. package/dist/{MCheckbox-DhDggBnO.js.map → MCheckbox-CugP7F6H.js.map} +1 -1
  46. package/dist/{MChevronDownIcon-CPXk51nE.js → MChevronDownIcon-D3yTpzni.js} +1 -1
  47. package/dist/{MChevronDownIcon-CPXk51nE.js.map → MChevronDownIcon-D3yTpzni.js.map} +1 -1
  48. package/dist/{MChevronDownIcon-CE25HFYo.cjs → MChevronDownIcon-DCMmxkRt.cjs} +1 -1
  49. package/dist/{MChevronDownIcon-CE25HFYo.cjs.map → MChevronDownIcon-DCMmxkRt.cjs.map} +1 -1
  50. package/dist/{MChevronRightIcon-QbfE-b7g.cjs → MChevronRightIcon-BC08M6g8.cjs} +1 -1
  51. package/dist/{MChevronRightIcon-QbfE-b7g.cjs.map → MChevronRightIcon-BC08M6g8.cjs.map} +1 -1
  52. package/dist/{MChevronRightIcon-BozfuNpv.js → MChevronRightIcon-CXs8IHiV.js} +1 -1
  53. package/dist/{MChevronRightIcon-BozfuNpv.js.map → MChevronRightIcon-CXs8IHiV.js.map} +1 -1
  54. package/dist/{MClockIcon-2NNldTuA.cjs → MClockIcon-C-zYY2A0.cjs} +1 -1
  55. package/dist/{MClockIcon-2NNldTuA.cjs.map → MClockIcon-C-zYY2A0.cjs.map} +1 -1
  56. package/dist/{MClockIcon-D4K6fmV9.js → MClockIcon-DefFl5ks.js} +1 -1
  57. package/dist/{MClockIcon-D4K6fmV9.js.map → MClockIcon-DefFl5ks.js.map} +1 -1
  58. package/dist/{MCloseIcon-BKH33Q51.cjs → MCloseIcon-6cfw9trj.cjs} +1 -1
  59. package/dist/{MCloseIcon-BKH33Q51.cjs.map → MCloseIcon-6cfw9trj.cjs.map} +1 -1
  60. package/dist/{MCloseIcon-BQv01JOS.js → MCloseIcon-lDH3Vc10.js} +1 -1
  61. package/dist/{MCloseIcon-BQv01JOS.js.map → MCloseIcon-lDH3Vc10.js.map} +1 -1
  62. package/dist/MCookieBootstrap-Ct5mIm5P.cjs +2 -0
  63. package/dist/MCookieBootstrap-Ct5mIm5P.cjs.map +1 -0
  64. package/dist/MCookieBootstrap-DEEHYxXi.js +437 -0
  65. package/dist/MCookieBootstrap-DEEHYxXi.js.map +1 -0
  66. package/dist/MDataTable--pUkQHAv.js +151 -0
  67. package/dist/MDataTable--pUkQHAv.js.map +1 -0
  68. package/dist/MDataTable-8ZhnWhqW.cjs +2 -0
  69. package/dist/MDataTable-8ZhnWhqW.cjs.map +1 -0
  70. package/dist/MDrawer-00BvU8Dn.js +122 -0
  71. package/dist/MDrawer-00BvU8Dn.js.map +1 -0
  72. package/dist/MDrawer-FYS50FtQ.cjs +2 -0
  73. package/dist/MDrawer-FYS50FtQ.cjs.map +1 -0
  74. package/dist/MDropdownMenu-BLBdToIz.cjs +2 -0
  75. package/dist/MDropdownMenu-BLBdToIz.cjs.map +1 -0
  76. package/dist/MDropdownMenu-BgOiM5yr.js +152 -0
  77. package/dist/MDropdownMenu-BgOiM5yr.js.map +1 -0
  78. package/dist/MEllipsisVerticalIcon-C87B9UQK.cjs +2 -0
  79. package/dist/MEllipsisVerticalIcon-C87B9UQK.cjs.map +1 -0
  80. package/dist/MEllipsisVerticalIcon-CNn1AQ8W.js +37 -0
  81. package/dist/MEllipsisVerticalIcon-CNn1AQ8W.js.map +1 -0
  82. package/dist/{MFileExtIcons-H7zvI8AL.js → MFileExtIcons-BoG3GPxg.js} +1 -1
  83. package/dist/{MFileExtIcons-H7zvI8AL.js.map → MFileExtIcons-BoG3GPxg.js.map} +1 -1
  84. package/dist/{MFileExtIcons-DzACx_eM.cjs → MFileExtIcons-DH9oZPpf.cjs} +1 -1
  85. package/dist/{MFileExtIcons-DzACx_eM.cjs.map → MFileExtIcons-DH9oZPpf.cjs.map} +1 -1
  86. package/dist/MImage-CKrjXRmf.js +49 -0
  87. package/dist/MImage-CKrjXRmf.js.map +1 -0
  88. package/dist/MImage-f854avZS.cjs +2 -0
  89. package/dist/MImage-f854avZS.cjs.map +1 -0
  90. package/dist/{MInput-DYEAqxod.js → MInput-BUCcLWSI.js} +6 -6
  91. package/dist/{MInput-DYEAqxod.js.map → MInput-BUCcLWSI.js.map} +1 -1
  92. package/dist/{MInput-CjsJRLaz.cjs → MInput-CQ3MqKsk.cjs} +2 -2
  93. package/dist/{MInput-CjsJRLaz.cjs.map → MInput-CQ3MqKsk.cjs.map} +1 -1
  94. package/dist/{MInputSearch-CrVrpYsR.js → MInputSearch-BeXUh4lz.js} +4 -4
  95. package/dist/{MInputSearch-CrVrpYsR.js.map → MInputSearch-BeXUh4lz.js.map} +1 -1
  96. package/dist/{MInputSearch-CQZ-ccri.cjs → MInputSearch-Dt79qbZg.cjs} +2 -2
  97. package/dist/{MInputSearch-CQZ-ccri.cjs.map → MInputSearch-Dt79qbZg.cjs.map} +1 -1
  98. package/dist/{MLink-CAaK6SOG.cjs → MLink-CVN-Vll4.cjs} +2 -2
  99. package/dist/{MLink-CAaK6SOG.cjs.map → MLink-CVN-Vll4.cjs.map} +1 -1
  100. package/dist/{MLink-BfRaT8NU.js → MLink-DH4vk7O5.js} +2 -2
  101. package/dist/{MLink-BfRaT8NU.js.map → MLink-DH4vk7O5.js.map} +1 -1
  102. package/dist/{MMenuIcon-TZ9iJAXz.cjs → MMenuIcon-Brpitjq1.cjs} +1 -1
  103. package/dist/{MMenuIcon-TZ9iJAXz.cjs.map → MMenuIcon-Brpitjq1.cjs.map} +1 -1
  104. package/dist/{MMenuIcon-B13EvS3i.js → MMenuIcon-idfVpVQD.js} +1 -1
  105. package/dist/{MMenuIcon-B13EvS3i.js.map → MMenuIcon-idfVpVQD.js.map} +1 -1
  106. package/dist/MModal-BQvk1KKc.cjs +2 -0
  107. package/dist/MModal-BQvk1KKc.cjs.map +1 -0
  108. package/dist/MModal-D1Knn-bg.js +69 -0
  109. package/dist/MModal-D1Knn-bg.js.map +1 -0
  110. package/dist/MPagination-Bu84ZlVh.cjs +2 -0
  111. package/dist/MPagination-Bu84ZlVh.cjs.map +1 -0
  112. package/dist/MPagination-CbkRMnL1.js +147 -0
  113. package/dist/MPagination-CbkRMnL1.js.map +1 -0
  114. package/dist/MPhoneIcon-efl6BqwU.js +38 -0
  115. package/dist/MPhoneIcon-efl6BqwU.js.map +1 -0
  116. package/dist/MPhoneIcon-lgC9DH5a.cjs +2 -0
  117. package/dist/MPhoneIcon-lgC9DH5a.cjs.map +1 -0
  118. package/dist/{MPopover-BE73Iock.cjs → MPopover-BXPkE575.cjs} +2 -2
  119. package/dist/{MPopover-BE73Iock.cjs.map → MPopover-BXPkE575.cjs.map} +1 -1
  120. package/dist/{MPopover-C7ZJz7Uj.js → MPopover-DKBdLfrw.js} +3 -3
  121. package/dist/{MPopover-C7ZJz7Uj.js.map → MPopover-DKBdLfrw.js.map} +1 -1
  122. package/dist/{MPortal-d1mwLhwx.cjs → MPortal-BysJLuEi.cjs} +1 -1
  123. package/dist/{MPortal-d1mwLhwx.cjs.map → MPortal-BysJLuEi.cjs.map} +1 -1
  124. package/dist/{MPortal-BzordRff.js → MPortal-CbpNkzfC.js} +1 -1
  125. package/dist/{MPortal-BzordRff.js.map → MPortal-CbpNkzfC.js.map} +1 -1
  126. package/dist/MProtectIcon-BPYP06QD.cjs +2 -0
  127. package/dist/MProtectIcon-BPYP06QD.cjs.map +1 -0
  128. package/dist/{MBoltIcon-B1P4i_X4.js → MProtectIcon-BTtMmrib.js} +11 -29
  129. package/dist/MProtectIcon-BTtMmrib.js.map +1 -0
  130. package/dist/MQrCode-AttGRC6v.js +416 -0
  131. package/dist/MQrCode-AttGRC6v.js.map +1 -0
  132. package/dist/MQrCode-CbUPPd4S.cjs +2 -0
  133. package/dist/MQrCode-CbUPPd4S.cjs.map +1 -0
  134. package/dist/{MSearchIcon-Bb-f5JdO.cjs → MSearchIcon-BakfEJQd.cjs} +1 -1
  135. package/dist/{MSearchIcon-Bb-f5JdO.cjs.map → MSearchIcon-BakfEJQd.cjs.map} +1 -1
  136. package/dist/{MSearchIcon-COQaC0mk.js → MSearchIcon-Dlg4Og8t.js} +1 -1
  137. package/dist/{MSearchIcon-COQaC0mk.js.map → MSearchIcon-Dlg4Og8t.js.map} +1 -1
  138. package/dist/MSkeleton-B5jZNFOG.cjs +2 -0
  139. package/dist/MSkeleton-B5jZNFOG.cjs.map +1 -0
  140. package/dist/MSkeleton-BL4C5FkH.js +98 -0
  141. package/dist/MSkeleton-BL4C5FkH.js.map +1 -0
  142. package/dist/{MSlider-KyOhqE6d.js → MSlider-D5ckYDop.js} +2 -2
  143. package/dist/{MSlider-KyOhqE6d.js.map → MSlider-D5ckYDop.js.map} +1 -1
  144. package/dist/{MSlider-VFCviEUW.cjs → MSlider-vD6Sla2p.cjs} +2 -2
  145. package/dist/{MSlider-VFCviEUW.cjs.map → MSlider-vD6Sla2p.cjs.map} +1 -1
  146. package/dist/MSparkline-DjcDtnZH.js +207 -0
  147. package/dist/MSparkline-DjcDtnZH.js.map +1 -0
  148. package/dist/MSparkline-U-XaDvpV.cjs +2 -0
  149. package/dist/MSparkline-U-XaDvpV.cjs.map +1 -0
  150. package/dist/{MStack-SPM68IMq.cjs → MStack-BvFI0AFv.cjs} +2 -2
  151. package/dist/{MStack-SPM68IMq.cjs.map → MStack-BvFI0AFv.cjs.map} +1 -1
  152. package/dist/{MStack-CQLO9e-3.js → MStack-DhdMFSUL.js} +4 -4
  153. package/dist/{MStack-CQLO9e-3.js.map → MStack-DhdMFSUL.js.map} +1 -1
  154. package/dist/{MStarFillIcon-w67ZD64c.js → MStarFillIcon-CGyQPFi8.js} +1 -1
  155. package/dist/{MStarFillIcon-w67ZD64c.js.map → MStarFillIcon-CGyQPFi8.js.map} +1 -1
  156. package/dist/{MStarFillIcon-B2H1b7mD.cjs → MStarFillIcon-DJHfl_Qy.cjs} +1 -1
  157. package/dist/{MStarFillIcon-B2H1b7mD.cjs.map → MStarFillIcon-DJHfl_Qy.cjs.map} +1 -1
  158. package/dist/MSubText-CfWNytoK.cjs +2 -0
  159. package/dist/MSubText-CfWNytoK.cjs.map +1 -0
  160. package/dist/MSubText-uvcBr9Ba.js +15 -0
  161. package/dist/MSubText-uvcBr9Ba.js.map +1 -0
  162. package/dist/MSuccessIcon-CatQ4FmG.cjs +2 -0
  163. package/dist/MSuccessIcon-CatQ4FmG.cjs.map +1 -0
  164. package/dist/MSuccessIcon-D3GrOvye.js +33 -0
  165. package/dist/MSuccessIcon-D3GrOvye.js.map +1 -0
  166. package/dist/MSurface-DlcK6Bre.js +39 -0
  167. package/dist/MSurface-DlcK6Bre.js.map +1 -0
  168. package/dist/MSurface-qcGLaTIK.cjs +2 -0
  169. package/dist/MSurface-qcGLaTIK.cjs.map +1 -0
  170. package/dist/{MTag-CXAmy8tJ.cjs → MTag-BMi1GS7v.cjs} +2 -2
  171. package/dist/{MTag-CXAmy8tJ.cjs.map → MTag-BMi1GS7v.cjs.map} +1 -1
  172. package/dist/{MTag-BbIqugpb.js → MTag-Cor8ZIW3.js} +4 -4
  173. package/dist/{MTag-BbIqugpb.js.map → MTag-Cor8ZIW3.js.map} +1 -1
  174. package/dist/MText-C0FdseW1.js +57 -0
  175. package/dist/MText-C0FdseW1.js.map +1 -0
  176. package/dist/MText-OV0ihtQ6.cjs +2 -0
  177. package/dist/MText-OV0ihtQ6.cjs.map +1 -0
  178. package/dist/MTimeAgo-BOXKcDYN.cjs +2 -0
  179. package/dist/MTimeAgo-BOXKcDYN.cjs.map +1 -0
  180. package/dist/MTimeAgo-DrDs52Y1.js +51 -0
  181. package/dist/MTimeAgo-DrDs52Y1.js.map +1 -0
  182. package/dist/MToggle-B7cKH5Tl.js +48 -0
  183. package/dist/MToggle-B7cKH5Tl.js.map +1 -0
  184. package/dist/MToggle-Hheo-jfZ.cjs +2 -0
  185. package/dist/MToggle-Hheo-jfZ.cjs.map +1 -0
  186. package/dist/{MTooltip-CKS_zgzR.js → MTooltip-D3xuZ5kG.js} +3 -3
  187. package/dist/{MTooltip-CKS_zgzR.js.map → MTooltip-D3xuZ5kG.js.map} +1 -1
  188. package/dist/{MTooltip-CXXYU-j1.cjs → MTooltip-DzwZ637q.cjs} +2 -2
  189. package/dist/{MTooltip-CXXYU-j1.cjs.map → MTooltip-DzwZ637q.cjs.map} +1 -1
  190. package/dist/{MZoomInIcon-CK2aJhDg.js → MZoomInIcon-BEdmglk6.js} +11 -46
  191. package/dist/MZoomInIcon-BEdmglk6.js.map +1 -0
  192. package/dist/MZoomInIcon-dhRm7zT6.cjs +2 -0
  193. package/dist/MZoomInIcon-dhRm7zT6.cjs.map +1 -0
  194. package/dist/cards-CKCr-GuJ.js +934 -0
  195. package/dist/cards-CKCr-GuJ.js.map +1 -0
  196. package/dist/cards-yPK4lBAA.cjs +2 -0
  197. package/dist/cards-yPK4lBAA.cjs.map +1 -0
  198. package/dist/cards.cjs +1 -1
  199. package/dist/cards.js +3 -3
  200. package/dist/{cn-B_veu23e.js → cn-DZLxql0l.js} +1 -1
  201. package/dist/{cn-B_veu23e.js.map → cn-DZLxql0l.js.map} +1 -1
  202. package/dist/{cn-CpRt8Xjj.cjs → cn-SOcVdnX6.cjs} +1 -1
  203. package/dist/{cn-CpRt8Xjj.cjs.map → cn-SOcVdnX6.cjs.map} +1 -1
  204. package/dist/components/cards/MCardBusiness/MCardBusiness.d.ts +2 -0
  205. package/dist/components/cards/MCardBusiness/MCardBusiness.types.d.ts +37 -0
  206. package/dist/components/cards/MCardBusiness/index.d.ts +4 -0
  207. package/dist/components/cards/MCardFinance/MCardFinance.d.ts +2 -0
  208. package/dist/components/cards/MCardFinance/MCardFinance.types.d.ts +16 -0
  209. package/dist/components/cards/MCardFinance/index.d.ts +4 -0
  210. package/dist/components/cards/index.d.ts +8 -0
  211. package/dist/components/data/MCalendarBoard/MCalendarBoard.d.ts +7 -0
  212. package/dist/components/data/MCalendarBoard/MCalendarBoard.types.d.ts +117 -0
  213. package/dist/components/data/MCalendarBoard/index.d.ts +4 -0
  214. package/dist/components/data/MChart/MAreaChart.d.ts +2 -0
  215. package/dist/components/data/MChart/MBarChart.d.ts +2 -0
  216. package/dist/components/data/MChart/MChart.d.ts +2 -0
  217. package/dist/components/data/MChart/MChart.types.d.ts +95 -0
  218. package/dist/components/data/MChart/MLineChart.d.ts +2 -0
  219. package/dist/components/data/MChart/MPieChart.d.ts +2 -0
  220. package/dist/components/data/MChart/charts/MAreaChart.d.ts +27 -0
  221. package/dist/components/data/MChart/charts/MBarChart.d.ts +26 -0
  222. package/dist/components/data/MChart/charts/MLineChart.d.ts +26 -0
  223. package/dist/components/data/MChart/charts/MPieChart.d.ts +19 -0
  224. package/dist/components/data/MChart/index.d.ts +5 -0
  225. package/dist/components/data/MChart/parts/ChartAxis.d.ts +13 -0
  226. package/dist/components/data/MChart/parts/ChartDefs.d.ts +1 -0
  227. package/dist/components/data/MChart/parts/ChartGrid.d.ts +10 -0
  228. package/dist/components/data/MChart/parts/ChartLegend.d.ts +9 -0
  229. package/dist/components/data/MChart/parts/ChartTooltip.d.ts +7 -0
  230. package/dist/components/data/MChart/utils/formats.d.ts +3 -0
  231. package/dist/components/data/MChart/utils/paths.d.ts +10 -0
  232. package/dist/components/data/MChart/utils/scales.d.ts +7 -0
  233. package/dist/components/data/MChat/MChat.d.ts +2 -0
  234. package/dist/components/data/MChat/MChat.types.d.ts +77 -0
  235. package/dist/components/data/MChat/MChatBody.d.ts +2 -0
  236. package/dist/components/data/MChat/MChatContext.d.ts +6 -0
  237. package/dist/components/data/MChat/MChatConversationItem.d.ts +2 -0
  238. package/dist/components/data/MChat/MChatConversationList.d.ts +2 -0
  239. package/dist/components/data/MChat/MChatHeader.d.ts +2 -0
  240. package/dist/components/data/MChat/MChatInput.d.ts +2 -0
  241. package/dist/components/data/MChat/MChatMessage.d.ts +2 -0
  242. package/dist/components/data/MChat/MChatTypingIndicator.d.ts +2 -0
  243. package/dist/components/data/MChat/emojis.d.ts +2 -0
  244. package/dist/components/data/MChat/index.d.ts +9 -0
  245. package/dist/components/data/MFileManager/MFileManager.d.ts +2 -0
  246. package/dist/components/data/MFileManager/MFileManager.types.d.ts +70 -0
  247. package/dist/components/data/MFileManager/index.d.ts +4 -0
  248. package/dist/components/data/MSparkline/MSparkline.d.ts +2 -0
  249. package/dist/components/data/MSparkline/MSparkline.types.d.ts +15 -0
  250. package/dist/components/data/MSparkline/index.d.ts +2 -0
  251. package/dist/components/data/index.d.ts +20 -0
  252. package/dist/components/display/MQrCode/MQrCode.d.ts +2 -0
  253. package/dist/components/display/MQrCode/MQrCode.types.d.ts +11 -0
  254. package/dist/components/display/MQrCode/index.d.ts +4 -0
  255. package/dist/components/display/MStepper/MStepper.d.ts +3 -0
  256. package/dist/components/display/MStepper/MStepper.types.d.ts +20 -0
  257. package/dist/components/display/MStepper/index.d.ts +2 -0
  258. package/dist/components/display/MTimeline/MTimeline.d.ts +3 -0
  259. package/dist/components/display/MTimeline/MTimeline.types.d.ts +16 -0
  260. package/dist/components/display/MTimeline/index.d.ts +2 -0
  261. package/dist/components/display/index.d.ts +12 -0
  262. package/dist/components/feedback/MCookie/MCookieBanner/MCookieBanner.d.ts +3 -0
  263. package/dist/components/feedback/MCookie/MCookieBanner/MCookieBanner.types.d.ts +27 -0
  264. package/dist/components/feedback/MCookie/MCookieBanner/index.d.ts +2 -0
  265. package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.d.ts +6 -0
  266. package/dist/components/feedback/MCookie/MCookieBootstrap/MCookieBootstrap.types.d.ts +90 -0
  267. package/dist/components/feedback/MCookie/MCookieBootstrap/index.d.ts +3 -0
  268. package/dist/components/feedback/MCookie/MCookieConsent/MCookieConsent.d.ts +2 -0
  269. package/dist/components/feedback/MCookie/MCookieConsent/MCookieConsent.types.d.ts +11 -0
  270. package/dist/components/feedback/MCookie/MCookieConsent/index.d.ts +2 -0
  271. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.defaults.d.ts +9 -0
  272. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.inventory.d.ts +6 -0
  273. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.storage.d.ts +11 -0
  274. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsent.types.d.ts +95 -0
  275. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsentContext.d.ts +4 -0
  276. package/dist/components/feedback/MCookie/MCookieConsentProvider/MCookieConsentProvider.d.ts +2 -0
  277. package/dist/components/feedback/MCookie/MCookieConsentProvider/index.d.ts +3 -0
  278. package/dist/components/feedback/MCookie/MCookieDeclaration/MCookieDeclaration.d.ts +2 -0
  279. package/dist/components/feedback/MCookie/MCookieDeclaration/MCookieDeclaration.types.d.ts +18 -0
  280. package/dist/components/feedback/MCookie/MCookieDeclaration/index.d.ts +2 -0
  281. package/dist/components/feedback/MCookie/MCookiePreferences/MCookiePreferences.d.ts +2 -0
  282. package/dist/components/feedback/MCookie/MCookiePreferences/MCookiePreferences.types.d.ts +25 -0
  283. package/dist/components/feedback/MCookie/MCookiePreferences/index.d.ts +2 -0
  284. package/dist/components/feedback/MCookie/MCookieTrigger/MCookieTrigger.d.ts +2 -0
  285. package/dist/components/feedback/MCookie/MCookieTrigger/MCookieTrigger.types.d.ts +7 -0
  286. package/dist/components/feedback/MCookie/MCookieTrigger/index.d.ts +2 -0
  287. package/dist/components/feedback/MCookie/index.d.ts +16 -0
  288. package/dist/components/feedback/index.d.ts +1 -0
  289. package/dist/components/layout/MTopbar/MTopbar.d.ts +2 -0
  290. package/dist/components/layout/MTopbar/MTopbar.types.d.ts +36 -0
  291. package/dist/components/layout/MTopbar/index.d.ts +2 -0
  292. package/dist/components/layout/index.d.ts +4 -0
  293. package/dist/components/media/MAvatarStack/MAvatarStack.d.ts +2 -0
  294. package/dist/components/media/MAvatarStack/MAvatarStack.types.d.ts +14 -0
  295. package/dist/components/media/MAvatarStack/index.d.ts +2 -0
  296. package/dist/components/media/MMasonry/MMasonry.d.ts +2 -0
  297. package/dist/components/media/MMasonry/MMasonry.types.d.ts +7 -0
  298. package/dist/components/media/MMasonry/index.d.ts +2 -0
  299. package/dist/components/media/MMasonryItem/MMasonryItem.d.ts +2 -0
  300. package/dist/components/media/MMasonryItem/MMasonryItem.types.d.ts +14 -0
  301. package/dist/components/media/MMasonryItem/index.d.ts +2 -0
  302. package/dist/components/media/MShowcaseCarousel/MShowcaseCarousel.d.ts +2 -0
  303. package/dist/components/media/MShowcaseCarousel/MShowcaseCarousel.types.d.ts +19 -0
  304. package/dist/components/media/MShowcaseCarousel/index.d.ts +2 -0
  305. package/dist/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.d.ts +2 -0
  306. package/dist/components/media/MShowcaseCarouselItem/MShowcaseCarouselItem.types.d.ts +18 -0
  307. package/dist/components/media/MShowcaseCarouselItem/index.d.ts +2 -0
  308. package/dist/components/media/index.d.ts +16 -0
  309. package/dist/controls-DEEbLT5o.cjs +2 -0
  310. package/dist/controls-DEEbLT5o.cjs.map +1 -0
  311. package/dist/{controls-1nIh1Ih1.js → controls-IsOBNxW0.js} +33 -74
  312. package/dist/controls-IsOBNxW0.js.map +1 -0
  313. package/dist/controls.cjs +1 -1
  314. package/dist/controls.js +6 -5
  315. package/dist/cookie-consent-bootstrap.cjs +2 -0
  316. package/dist/cookie-consent-bootstrap.cjs.map +1 -0
  317. package/dist/cookie-consent-bootstrap.d.ts +1 -0
  318. package/dist/cookie-consent-bootstrap.js +93 -0
  319. package/dist/cookie-consent-bootstrap.js.map +1 -0
  320. package/dist/{creditCards-BVKi47yn.cjs → creditCards-BjHGqAFx.cjs} +1 -1
  321. package/dist/{creditCards-BVKi47yn.cjs.map → creditCards-BjHGqAFx.cjs.map} +1 -1
  322. package/dist/{creditCards-Bk9rsMJf.js → creditCards-CoZpbB1e.js} +1 -1
  323. package/dist/{creditCards-Bk9rsMJf.js.map → creditCards-CoZpbB1e.js.map} +1 -1
  324. package/dist/data-BEH7TbuW.cjs +2 -0
  325. package/dist/data-BEH7TbuW.cjs.map +1 -0
  326. package/dist/data-Bp3Fd2Al.js +2529 -0
  327. package/dist/data-Bp3Fd2Al.js.map +1 -0
  328. package/dist/data.cjs +1 -1
  329. package/dist/data.js +4 -2
  330. package/dist/{dateUtils-BYfEWGkb.js → dateUtils-BOsYyWde.js} +1 -1
  331. package/dist/{dateUtils-BYfEWGkb.js.map → dateUtils-BOsYyWde.js.map} +1 -1
  332. package/dist/{dateUtils-5jacfR5Q.cjs → dateUtils-xSfrXjbY.cjs} +1 -1
  333. package/dist/{dateUtils-5jacfR5Q.cjs.map → dateUtils-xSfrXjbY.cjs.map} +1 -1
  334. package/dist/display-B0Db8pF3.js +468 -0
  335. package/dist/display-B0Db8pF3.js.map +1 -0
  336. package/dist/display-DmB5CZYB.cjs +2 -0
  337. package/dist/display-DmB5CZYB.cjs.map +1 -0
  338. package/dist/display.cjs +1 -1
  339. package/dist/display.js +4 -3
  340. package/dist/dropdowns-BkBtQP4v.js +1689 -0
  341. package/dist/dropdowns-BkBtQP4v.js.map +1 -0
  342. package/dist/dropdowns-CD2myl19.cjs +2 -0
  343. package/dist/dropdowns-CD2myl19.cjs.map +1 -0
  344. package/dist/dropdowns.cjs +1 -1
  345. package/dist/dropdowns.js +1 -1
  346. package/dist/feedback-CuPBnCOw.cjs +2 -0
  347. package/dist/feedback-CuPBnCOw.cjs.map +1 -0
  348. package/dist/feedback-QP7-6I7O.js +1013 -0
  349. package/dist/feedback-QP7-6I7O.js.map +1 -0
  350. package/dist/feedback.cjs +1 -1
  351. package/dist/feedback.js +7 -6
  352. package/dist/{form-DFx61JJJ.cjs → form-BQ6-ieVC.cjs} +2 -2
  353. package/dist/{form-DFx61JJJ.cjs.map → form-BQ6-ieVC.cjs.map} +1 -1
  354. package/dist/{form-C7T4heU2.js → form-JanaUHTQ.js} +2 -2
  355. package/dist/{form-C7T4heU2.js.map → form-JanaUHTQ.js.map} +1 -1
  356. package/dist/form.cjs +1 -1
  357. package/dist/form.js +1 -1
  358. package/dist/{formatters-bW67hwbX.cjs → formatters-BIijIfCB.cjs} +1 -1
  359. package/dist/{formatters-bW67hwbX.cjs.map → formatters-BIijIfCB.cjs.map} +1 -1
  360. package/dist/{formatters-qn3Mj74v.js → formatters-DMI5QqhS.js} +1 -1
  361. package/dist/{formatters-qn3Mj74v.js.map → formatters-DMI5QqhS.js.map} +1 -1
  362. package/dist/frameworkTexts-5_DBGFFg.js +115 -0
  363. package/dist/frameworkTexts-5_DBGFFg.js.map +1 -0
  364. package/dist/frameworkTexts-CwSSRPWS.cjs +2 -0
  365. package/dist/frameworkTexts-CwSSRPWS.cjs.map +1 -0
  366. package/dist/icons/MIconV2.d.ts +7 -0
  367. package/dist/icons/MIconV2Glyph.d.ts +11 -0
  368. package/dist/icons/MIconV2Scenes.d.ts +40 -0
  369. package/dist/icons/glyphs/MCalendarIconV2.d.ts +2 -0
  370. package/dist/icons/glyphs/MChartIconV2.d.ts +2 -0
  371. package/dist/icons/glyphs/MFlagIconsV2.d.ts +19 -0
  372. package/dist/icons/glyphs/MHomeIconV2.d.ts +2 -0
  373. package/dist/icons/glyphs/MNavigationIconsV2.d.ts +14 -0
  374. package/dist/icons/glyphs/MSearchIconV2.d.ts +2 -0
  375. package/dist/icons/glyphs/MSettingsIconV2.d.ts +2 -0
  376. package/dist/icons/glyphs/MUserIconV2.d.ts +2 -0
  377. package/dist/icons/index.d.ts +12 -0
  378. package/dist/icons.cjs +1 -1
  379. package/dist/icons.entry-LwjwnjE2.cjs +2 -0
  380. package/dist/icons.entry-LwjwnjE2.cjs.map +1 -0
  381. package/dist/{icons.entry-CbJp27gc.js → icons.entry-txsQqMvb.js} +1663 -985
  382. package/dist/icons.entry-txsQqMvb.js.map +1 -0
  383. package/dist/icons.js +22 -17
  384. package/dist/illustrations.cjs +1 -1
  385. package/dist/{illustrations.entry-CaBqXBpd.js → illustrations.entry-C0rSNpF1.js} +2 -2
  386. package/dist/{illustrations.entry-CaBqXBpd.js.map → illustrations.entry-C0rSNpF1.js.map} +1 -1
  387. package/dist/{illustrations.entry-D5StzALw.cjs → illustrations.entry-DtMxssXq.cjs} +2 -2
  388. package/dist/{illustrations.entry-D5StzALw.cjs.map → illustrations.entry-DtMxssXq.cjs.map} +1 -1
  389. package/dist/illustrations.js +1 -1
  390. package/dist/index.cjs +1 -1
  391. package/dist/index.js +74 -60
  392. package/dist/inputs-BRjbpf9P.cjs +2 -0
  393. package/dist/{inputs-6TRTzH12.cjs.map → inputs-BRjbpf9P.cjs.map} +1 -1
  394. package/dist/{inputs-Bd_5Xg49.js → inputs-DFoD2MMX.js} +193 -191
  395. package/dist/{inputs-Bd_5Xg49.js.map → inputs-DFoD2MMX.js.map} +1 -1
  396. package/dist/inputs.cjs +1 -1
  397. package/dist/inputs.js +3 -3
  398. package/dist/layout-BWhQ1VXM.cjs +2 -0
  399. package/dist/layout-BWhQ1VXM.cjs.map +1 -0
  400. package/dist/layout-yIAZ4bP6.js +819 -0
  401. package/dist/layout-yIAZ4bP6.js.map +1 -0
  402. package/dist/layout.cjs +1 -1
  403. package/dist/layout.js +5 -5
  404. package/dist/{layoutProps-CAv0VWdN.cjs → layoutProps-CZ-XhpIX.cjs} +1 -1
  405. package/dist/{layoutProps-CAv0VWdN.cjs.map → layoutProps-CZ-XhpIX.cjs.map} +1 -1
  406. package/dist/{layoutProps-D8exMwKp.js → layoutProps-DUPQsWy9.js} +1 -1
  407. package/dist/{layoutProps-D8exMwKp.js.map → layoutProps-DUPQsWy9.js.map} +1 -1
  408. package/dist/licensing-CMLexRJk.cjs +2 -0
  409. package/dist/licensing-CMLexRJk.cjs.map +1 -0
  410. package/dist/licensing-SQAMYrOI.js +105 -0
  411. package/dist/licensing-SQAMYrOI.js.map +1 -0
  412. package/dist/{locale-BJucQij_.js → locale-Crzgecoe.js} +1 -1
  413. package/dist/{locale-BJucQij_.js.map → locale-Crzgecoe.js.map} +1 -1
  414. package/dist/{locale-CjYHLr1l.cjs → locale-DpCe_7mG.cjs} +1 -1
  415. package/dist/{locale-CjYHLr1l.cjs.map → locale-DpCe_7mG.cjs.map} +1 -1
  416. package/dist/media-D0KRmTG_.cjs +2 -0
  417. package/dist/media-D0KRmTG_.cjs.map +1 -0
  418. package/dist/media-DWG2uW1h.js +406 -0
  419. package/dist/media-DWG2uW1h.js.map +1 -0
  420. package/dist/media.cjs +1 -1
  421. package/dist/media.js +4 -3
  422. package/dist/overlays-CROlfKrR.cjs +2 -0
  423. package/dist/overlays-CROlfKrR.cjs.map +1 -0
  424. package/dist/overlays-DQOnI2NS.js +186 -0
  425. package/dist/overlays-DQOnI2NS.js.map +1 -0
  426. package/dist/overlays.cjs +1 -1
  427. package/dist/overlays.js +6 -4
  428. package/dist/primitives.cjs +1 -1
  429. package/dist/primitives.js +2 -2
  430. package/dist/{relativeTime-FdokPH7W.js → relativeTime-3dGgniAK.js} +1 -1
  431. package/dist/{relativeTime-FdokPH7W.js.map → relativeTime-3dGgniAK.js.map} +1 -1
  432. package/dist/{relativeTime-oubkDkrk.cjs → relativeTime-D5qYOJVu.cjs} +1 -1
  433. package/dist/{relativeTime-oubkDkrk.cjs.map → relativeTime-D5qYOJVu.cjs.map} +1 -1
  434. package/dist/style-runtime.cjs +1 -1
  435. package/dist/style-runtime.js +1 -1
  436. package/dist/styles.css +1 -1
  437. package/dist/typography-CCkJaTzp.js +40 -0
  438. package/dist/typography-CCkJaTzp.js.map +1 -0
  439. package/dist/typography-CtITQOAU.cjs +2 -0
  440. package/dist/typography-CtITQOAU.cjs.map +1 -0
  441. package/dist/typography.cjs +1 -1
  442. package/dist/typography.js +5 -4
  443. package/dist/{useGhostText-BrRYBrV_.cjs → useGhostText-CL1kSB_V.cjs} +1 -1
  444. package/dist/{useGhostText-BrRYBrV_.cjs.map → useGhostText-CL1kSB_V.cjs.map} +1 -1
  445. package/dist/{useGhostText-BpSSyl8G.js → useGhostText-Zq3iktss.js} +1 -1
  446. package/dist/{useGhostText-BpSSyl8G.js.map → useGhostText-Zq3iktss.js.map} +1 -1
  447. package/dist/{useInteractionEffect-BaJeiUns.cjs → useInteractionEffect-BLehDk91.cjs} +1 -1
  448. package/dist/{useInteractionEffect-BaJeiUns.cjs.map → useInteractionEffect-BLehDk91.cjs.map} +1 -1
  449. package/dist/{useInteractionEffect-B5_UpgTt.js → useInteractionEffect-Dfqq8lGO.js} +1 -1
  450. package/dist/{useInteractionEffect-B5_UpgTt.js.map → useInteractionEffect-Dfqq8lGO.js.map} +1 -1
  451. package/dist/{useKeyboardNav-DJtFz7Fx.cjs → useKeyboardNav-DBeCcTmg.cjs} +1 -1
  452. package/dist/{useKeyboardNav-DJtFz7Fx.cjs.map → useKeyboardNav-DBeCcTmg.cjs.map} +1 -1
  453. package/dist/{useKeyboardNav-CmUKtJag.js → useKeyboardNav-DXvrPrx9.js} +1 -1
  454. package/dist/{useKeyboardNav-CmUKtJag.js.map → useKeyboardNav-DXvrPrx9.js.map} +1 -1
  455. package/dist/{useReveal-D1YuWN9z.cjs → useReveal-CdIoh0Rk.cjs} +1 -1
  456. package/dist/{useReveal-D1YuWN9z.cjs.map → useReveal-CdIoh0Rk.cjs.map} +1 -1
  457. package/dist/{useReveal-BB9OaMDU.js → useReveal-DzskFHKb.js} +1 -1
  458. package/dist/{useReveal-BB9OaMDU.js.map → useReveal-DzskFHKb.js.map} +1 -1
  459. package/dist/utils/licensing.d.ts +78 -1
  460. package/dist/utils.cjs +1 -1
  461. package/dist/utils.js +11 -11
  462. package/dist/{validators-CA-TznrL.cjs → validators-CyDTl6cC.cjs} +1 -1
  463. package/dist/{validators-CA-TznrL.cjs.map → validators-CyDTl6cC.cjs.map} +1 -1
  464. package/dist/{validators-CAahqOcq.js → validators-ljBWrIca.js} +1 -1
  465. package/dist/{validators-CAahqOcq.js.map → validators-ljBWrIca.js.map} +1 -1
  466. package/package.json +29 -6
  467. package/dist/MBoltIcon-B1P4i_X4.js.map +0 -1
  468. package/dist/MBoltIcon-DB6JHWMo.cjs +0 -2
  469. package/dist/MBoltIcon-DB6JHWMo.cjs.map +0 -1
  470. package/dist/MCard-BBBA2UVf.cjs +0 -2
  471. package/dist/MCard-BBBA2UVf.cjs.map +0 -1
  472. package/dist/MCard-ViJ2Lf73.js +0 -65
  473. package/dist/MCard-ViJ2Lf73.js.map +0 -1
  474. package/dist/MDropdownMenu-BcRbNfoR.js +0 -186
  475. package/dist/MDropdownMenu-BcRbNfoR.js.map +0 -1
  476. package/dist/MDropdownMenu-DOxSG00i.cjs +0 -2
  477. package/dist/MDropdownMenu-DOxSG00i.cjs.map +0 -1
  478. package/dist/MFolderOpenIcon-35Lmw91g.cjs +0 -2
  479. package/dist/MFolderOpenIcon-35Lmw91g.cjs.map +0 -1
  480. package/dist/MFolderOpenIcon-DFahkqXu.js +0 -31
  481. package/dist/MFolderOpenIcon-DFahkqXu.js.map +0 -1
  482. package/dist/MPagination-C8txsdB6.cjs +0 -2
  483. package/dist/MPagination-C8txsdB6.cjs.map +0 -1
  484. package/dist/MPagination-RupoyjxR.js +0 -113
  485. package/dist/MPagination-RupoyjxR.js.map +0 -1
  486. package/dist/MRating-0-_XBF-T.js +0 -38
  487. package/dist/MRating-0-_XBF-T.js.map +0 -1
  488. package/dist/MRating-B-fQMZ8c.cjs +0 -2
  489. package/dist/MRating-B-fQMZ8c.cjs.map +0 -1
  490. package/dist/MSkeleton-7YJwDcvl.cjs +0 -2
  491. package/dist/MSkeleton-7YJwDcvl.cjs.map +0 -1
  492. package/dist/MSkeleton-QQ57uNaL.js +0 -39
  493. package/dist/MSkeleton-QQ57uNaL.js.map +0 -1
  494. package/dist/MSortIcon-3mD9vpMX.cjs +0 -2
  495. package/dist/MSortIcon-3mD9vpMX.cjs.map +0 -1
  496. package/dist/MSortIcon-DGHyltKa.js +0 -84
  497. package/dist/MSortIcon-DGHyltKa.js.map +0 -1
  498. package/dist/MText-BxAcAs-j.cjs +0 -2
  499. package/dist/MText-BxAcAs-j.cjs.map +0 -1
  500. package/dist/MText-CzceD0k5.js +0 -43
  501. package/dist/MText-CzceD0k5.js.map +0 -1
  502. package/dist/MZoomInIcon-BcpTfzRD.cjs +0 -2
  503. package/dist/MZoomInIcon-BcpTfzRD.cjs.map +0 -1
  504. package/dist/MZoomInIcon-CK2aJhDg.js.map +0 -1
  505. package/dist/cards-Bw7aZCIy.cjs +0 -2
  506. package/dist/cards-Bw7aZCIy.cjs.map +0 -1
  507. package/dist/cards-CYzgOCG5.js +0 -613
  508. package/dist/cards-CYzgOCG5.js.map +0 -1
  509. package/dist/controls-1nIh1Ih1.js.map +0 -1
  510. package/dist/controls-2pkUWkOa.cjs +0 -2
  511. package/dist/controls-2pkUWkOa.cjs.map +0 -1
  512. package/dist/data-BGEuiFne.cjs +0 -2
  513. package/dist/data-BGEuiFne.cjs.map +0 -1
  514. package/dist/data-CYb66BuD.js +0 -423
  515. package/dist/data-CYb66BuD.js.map +0 -1
  516. package/dist/display-BEw4iW6N.js +0 -416
  517. package/dist/display-BEw4iW6N.js.map +0 -1
  518. package/dist/display-BVeaSZDJ.cjs +0 -2
  519. package/dist/display-BVeaSZDJ.cjs.map +0 -1
  520. package/dist/dropdowns-CsUSxR0u.cjs +0 -2
  521. package/dist/dropdowns-CsUSxR0u.cjs.map +0 -1
  522. package/dist/dropdowns-DiEsLPoq.js +0 -1729
  523. package/dist/dropdowns-DiEsLPoq.js.map +0 -1
  524. package/dist/feedback-BOPPNYr5.js +0 -217
  525. package/dist/feedback-BOPPNYr5.js.map +0 -1
  526. package/dist/feedback-vTRXpBZw.cjs +0 -2
  527. package/dist/feedback-vTRXpBZw.cjs.map +0 -1
  528. package/dist/icons.entry-BBIBT_e2.cjs +0 -2
  529. package/dist/icons.entry-BBIBT_e2.cjs.map +0 -1
  530. package/dist/icons.entry-CbJp27gc.js.map +0 -1
  531. package/dist/inputs-6TRTzH12.cjs +0 -2
  532. package/dist/layout-DgxSN0QV.js +0 -698
  533. package/dist/layout-DgxSN0QV.js.map +0 -1
  534. package/dist/layout-DsxgXjK_.cjs +0 -2
  535. package/dist/layout-DsxgXjK_.cjs.map +0 -1
  536. package/dist/licensing-C80xLz-j.cjs +0 -2
  537. package/dist/licensing-C80xLz-j.cjs.map +0 -1
  538. package/dist/licensing-DsWLXZiM.js +0 -28
  539. package/dist/licensing-DsWLXZiM.js.map +0 -1
  540. package/dist/media-V8oypokY.js +0 -171
  541. package/dist/media-V8oypokY.js.map +0 -1
  542. package/dist/media-uvYa5r3D.cjs +0 -2
  543. package/dist/media-uvYa5r3D.cjs.map +0 -1
  544. package/dist/overlays-BjO2sRrU.cjs +0 -2
  545. package/dist/overlays-BjO2sRrU.cjs.map +0 -1
  546. package/dist/overlays-DnMM32yB.js +0 -360
  547. package/dist/overlays-DnMM32yB.js.map +0 -1
  548. package/dist/typography-Bcn3mZPw.js +0 -63
  549. package/dist/typography-Bcn3mZPw.js.map +0 -1
  550. package/dist/typography-Cy_-zrZI.cjs +0 -2
  551. package/dist/typography-Cy_-zrZI.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"cards-CYzgOCG5.js","names":[],"sources":["../src/components/cards/MCardPayment/MCardPayment.tsx","../src/components/cards/ServiceCardsShared/ServiceCardsShared.tsx","../src/components/cards/MCardOffer/MCardOffer.tsx","../src/components/cards/MCardCourse/MCardCourse.tsx","../src/components/cards/MCardProduct/MCardProduct.tsx","../src/components/cards/MCardEvent/MCardEvent.tsx","../src/components/cards/MCardWidget/MCardWidget.tsx","../src/components/cards/MCardGrid/MCardGrid.tsx"],"sourcesContent":["import type {MCardPaymentProps} from './MCardPayment.types'\nimport {cn} from '../../../utils/cn'\nimport {creditCardBrands, detectCardBrand} from '../../../utils/creditCards'\nimport './MCardPayment.css'\n\nfunction maskNumber(raw: string): string {\n const digits = raw.replace(/\\D/g, '')\n if (digits.length <= 4) return digits\n const last4 = digits.slice(-4)\n return `\\u2022\\u2022\\u2022\\u2022 \\u2022\\u2022\\u2022\\u2022 \\u2022\\u2022\\u2022\\u2022 ${last4}`\n}\n\n// Display-only payment card with balance, masked number, holder name and brand badge.\nexport function MCardPayment({\n holder,\n number,\n expiry,\n brand,\n brandIcon,\n balance,\n balanceLabel = 'Current balance',\n color,\n className,\n ...rest\n}: MCardPaymentProps) {\n const detectedDetails = detectCardBrand(number)\n const detected = brand ?? detectedDetails.brand\n const brandDetails = creditCardBrands.find((rule) => rule.brand === detected) ?? detectedDetails\n const masked = maskNumber(number)\n const brandLabel = brandDetails.iconLabel\n\n return (\n <div className={cn('card-payment', color || 'primary', className)} {...rest}>\n {balance !== undefined && (\n <div>\n <p className=\"cp-balance-label\">{balanceLabel}</p>\n <p className=\"cp-balance\">{balance}</p>\n </div>\n )}\n\n <div className=\"cp-row\">\n <span className={cn('cp-brand', !brandIcon && detected)}>{brandIcon ?? brandLabel}</span>\n <span className=\"cp-number\">{masked}</span>\n </div>\n\n <div className=\"cp-details\">\n <div>\n <p className=\"cp-field-label\">MCard holder</p>\n <p className=\"cp-field-value\">{holder}</p>\n </div>\n <div>\n <p className=\"cp-field-label\">Expiration date</p>\n <p className=\"cp-field-value\">{expiry}</p>\n </div>\n </div>\n </div>\n )\n}\n","import {useEffect, useState} from 'react'\nimport type {SharedServiceCardProps} from './ServiceCardsShared.types'\nimport {cn} from '../../../utils/cn'\nimport {\n MArrowDownIcon,\n MArrowUpIcon,\n MClockIcon,\n MEllipsisVerticalIcon,\n MHeartFillIcon,\n MHeartIcon,\n MMinusIcon,\n MPlusIcon,\n} from '../../../icons'\nimport {MButton} from '../../controls'\nimport {MBadge} from '../../feedback'\nimport {MAvatar} from '../../media'\nimport {MRating} from '../../display'\nimport {MDropdownItem, MDropdownMenu} from '../../overlays'\nimport './ServiceCardsShared.css'\n\nexport function SharedServiceCard({\n variant,\n title,\n description,\n price,\n currency = 'PLN',\n duration,\n available,\n image,\n gallery,\n galleryAutoPlay = false,\n rating,\n reviewCount,\n favorite,\n onFavorite,\n menuItems,\n onAddToCart,\n actionLabel,\n icon,\n color = 'primary',\n leader,\n participants,\n maxParticipants,\n quantity: controlledQty,\n onQuantityChange,\n date,\n location,\n status,\n value,\n trend,\n className,\n ...rest\n}: SharedServiceCardProps) {\n const [galleryIdx, setGalleryIdx] = useState(0)\n const [isGalleryTransitioning, setIsGalleryTransitioning] = useState(false)\n const [internalQty, setInternalQty] = useState(1)\n\n const qty = controlledQty ?? internalQty\n const images = gallery && gallery.length > 0 ? gallery : image ? [image] : []\n\n useEffect(() => {\n if (galleryIdx >= images.length) {\n setGalleryIdx(0)\n }\n }, [galleryIdx, images.length])\n\n useEffect(() => {\n if (!isGalleryTransitioning) {\n return\n }\n\n const transitionId = window.setTimeout(() => {\n setIsGalleryTransitioning(false)\n }, 220)\n\n return () => window.clearTimeout(transitionId)\n }, [galleryIdx, isGalleryTransitioning])\n\n function changeGallery(nextIdx: number) {\n if (nextIdx === galleryIdx || nextIdx < 0 || nextIdx >= images.length) {\n return\n }\n\n if (images.length > 1) {\n setIsGalleryTransitioning(true)\n }\n\n setGalleryIdx(nextIdx)\n }\n\n useEffect(() => {\n if (!galleryAutoPlay || images.length <= 1) {\n return\n }\n\n const intervalId = window.setInterval(() => {\n setIsGalleryTransitioning(true)\n setGalleryIdx((current) => (current + 1) % images.length)\n }, 3500)\n\n return () => window.clearInterval(intervalId)\n }, [galleryAutoPlay, images.length])\n\n function changeQty(next: number) {\n const val = Math.max(1, next)\n if (onQuantityChange) onQuantityChange(val)\n else setInternalQty(val)\n }\n\n const availLabel =\n available === true\n ? 'Available'\n : available === false\n ? 'Unavailable'\n : typeof available === 'number'\n ? `${available} spots`\n : null\n\n const parsedDate = date ? (date instanceof Date ? date : new Date(date)) : null\n const dateDay = parsedDate ? parsedDate.getDate() : null\n const dateMonth = parsedDate ? parsedDate.toLocaleString('en', {month: 'short'}).toUpperCase() : null\n\n const trendType = trend !== undefined ? (trend > 0 ? 'up' : trend < 0 ? 'down' : 'neutral') : null\n\n if (variant === 'widget') {\n return (\n <div className={cn('card-service', 'widget', `color-${color}`, className)} {...rest}>\n <div className=\"cs-widget\">\n {icon && <span className=\"cs-widget-icon\">{icon}</span>}\n <div className=\"cs-widget-content\">\n <span className=\"cs-widget-label\">{title}</span>\n <span className=\"cs-widget-value\">{value}</span>\n {trend !== undefined && (\n <span className={cn('cs-widget-trend', trendType)}>\n {trendType === 'up' && <MArrowUpIcon size={14} />}\n {trendType === 'down' && <MArrowDownIcon size={14} />}\n <span>\n {trend > 0 ? '+' : ''}\n {trend}%\n </span>\n </span>\n )}\n </div>\n </div>\n </div>\n )\n }\n\n return (\n <div className={cn('card-service', variant, `color-${color}`, className)} {...rest}>\n {images.length > 0 && (\n <div className=\"cs-gallery\">\n <img\n src={images[galleryIdx]}\n alt={title}\n className={cn('cs-image', isGalleryTransitioning && 'is-transitioning')}\n />\n {images.length > 1 && (\n <div className=\"cs-gallery-dots\">\n {images.map((_, i) => (\n <button\n key={i}\n type=\"button\"\n className={cn('cs-dot', i === galleryIdx && 'active')}\n onClick={() => changeGallery(i)}\n aria-label={`Image ${i + 1}`}\n />\n ))}\n </div>\n )}\n\n {(onFavorite || (menuItems && menuItems.length > 0)) && (\n <div className=\"cs-gallery-actions\">\n {menuItems && menuItems.length > 0 && (\n <MDropdownMenu\n className=\"cs-menu-wrap\"\n trigger={\n <MButton\n variant=\"ghost\"\n iconOnly\n shape=\"circle\"\n aria-label=\"More options\"\n className=\"cs-overlay-btn\"\n >\n <MEllipsisVerticalIcon />\n </MButton>\n }\n placement=\"bottom-end\"\n >\n {menuItems.map((item, i) => (\n <MDropdownItem\n key={i}\n icon={item.icon}\n color={item.danger ? 'error' : undefined}\n label={item.label}\n onClick={item.onClick}\n />\n ))}\n </MDropdownMenu>\n )}\n {onFavorite && (\n <MButton\n variant=\"ghost\"\n iconOnly\n shape=\"circle\"\n onClick={onFavorite}\n aria-label={favorite ? 'Remove from favorites' : 'Add to favorites'}\n className={cn('cs-overlay-btn', favorite && 'cs-fav-active')}\n >\n {favorite ? <MHeartFillIcon /> : <MHeartIcon />}\n </MButton>\n )}\n </div>\n )}\n </div>\n )}\n\n <div className=\"cs-body\">\n {variant === 'event' && parsedDate && (\n <div className=\"cs-event-header\">\n <div className=\"cs-date-block\">\n <span className=\"cs-date-day\">{dateDay}</span>\n <span className=\"cs-date-month\">{dateMonth}</span>\n </div>\n <div className=\"cs-event-info\">\n <h3 className=\"cs-title\">{title}</h3>\n {description && <p className=\"cs-desc\">{description}</p>}\n </div>\n </div>\n )}\n\n {variant !== 'event' && (\n <>\n <div className=\"cs-top\">\n {icon && <span className=\"cs-icon\">{icon}</span>}\n <h3 className=\"cs-title\">{title}</h3>\n </div>\n {description && <p className=\"cs-desc\">{description}</p>}\n </>\n )}\n\n {variant === 'event' && !parsedDate && (\n <>\n <div className=\"cs-top\">\n {icon && <span className=\"cs-icon\">{icon}</span>}\n <h3 className=\"cs-title\">{title}</h3>\n </div>\n {description && <p className=\"cs-desc\">{description}</p>}\n </>\n )}\n\n {rating !== undefined && (\n <div className=\"cs-rating\">\n <MRating value={Math.round(rating)} size=\"sm\" color=\"warning\" readOnly className=\"cs-stars\" />\n <span className=\"cs-rating-value\">{rating.toFixed(1)}</span>\n {reviewCount !== undefined && <span className=\"cs-review-count\">({reviewCount})</span>}\n </div>\n )}\n\n {leader && (\n <div className=\"cs-leader\">\n <MAvatar src={leader.avatar} name={leader.name} size={28} color={color} />\n <span className=\"cs-leader-name\">{leader.name}</span>\n </div>\n )}\n\n {variant === 'course' && participants && (\n <div className=\"cs-participants\">\n <div className=\"cs-participants-avatars\">\n {participants.slice(0, 4).map((participant, index) => (\n <MAvatar\n key={`${participant.name}-${index}`}\n src={participant.avatar}\n name={participant.name}\n size={28}\n color={color}\n className=\"cs-participant-avatar\"\n />\n ))}\n </div>\n {maxParticipants && (\n <span className=\"cs-spots\">\n {participants.length}/{maxParticipants}\n </span>\n )}\n </div>\n )}\n\n <div className=\"cs-meta\">\n {variant === 'event' && location && (\n <MBadge size=\"xs\" color={color}>\n {location}\n </MBadge>\n )}\n {duration && (\n <MBadge size=\"xs\" color={color} icon={<MClockIcon />}>\n {duration}\n </MBadge>\n )}\n {variant === 'event' && status && (\n <MBadge size=\"xs\" color={status.toLowerCase() === 'sold out' ? 'error' : color}>\n {status}\n </MBadge>\n )}\n {availLabel && variant !== 'event' && (\n <MBadge size=\"xs\" color={available === false ? 'error' : color}>\n {availLabel}\n </MBadge>\n )}\n </div>\n </div>\n\n <div className=\"cs-footer\">\n {price !== undefined && (\n <span className=\"cs-price\">\n {typeof price === 'number' ? price.toFixed(2) : price}{' '}\n <span className=\"cs-currency\">{currency}</span>\n </span>\n )}\n\n <div className=\"cs-actions\">\n {variant === 'product' && onAddToCart && (\n <div className=\"cs-qty\">\n <MButton\n variant=\"ghost\"\n iconOnly\n size=\"sm\"\n onClick={() => changeQty(qty - 1)}\n aria-label=\"Decrease\"\n className=\"cs-qty-btn\"\n >\n <MMinusIcon />\n </MButton>\n <span className=\"cs-qty-value\">{qty}</span>\n <MButton\n variant=\"ghost\"\n iconOnly\n size=\"sm\"\n onClick={() => changeQty(qty + 1)}\n aria-label=\"Increase\"\n className=\"cs-qty-btn\"\n >\n <MPlusIcon />\n </MButton>\n </div>\n )}\n {onAddToCart && (\n <MButton\n variant=\"filled\"\n size=\"sm\"\n color={color}\n onClick={() => onAddToCart(qty)}\n disabled={available === false}\n className=\"cs-cart-btn\"\n >\n {actionLabel ?? (variant === 'event' ? 'Register' : 'Add to cart')}\n </MButton>\n )}\n </div>\n </div>\n </div>\n )\n}\n","import type {MCardOfferProps} from './MCardOffer.types'\nimport {SharedServiceCard} from '../ServiceCardsShared/ServiceCardsShared'\n\nexport function MCardOffer(props: MCardOfferProps) {\n const {onAction, actionLabel = 'Book now', ...rest} = props\n\n return (\n <SharedServiceCard\n variant=\"service\"\n onAddToCart={onAction ? () => onAction() : undefined}\n actionLabel={actionLabel}\n {...rest}\n />\n )\n}\n","import type {MCardCourseProps} from './MCardCourse.types'\nimport {SharedServiceCard} from '../ServiceCardsShared/ServiceCardsShared'\n\nexport function MCardCourse(props: MCardCourseProps) {\n const {onAction, actionLabel = 'Join course', ...rest} = props\n\n return (\n <SharedServiceCard\n variant=\"course\"\n onAddToCart={onAction ? () => onAction() : undefined}\n actionLabel={actionLabel}\n {...rest}\n />\n )\n}\n","import type {MCardProductProps} from './MCardProduct.types'\nimport {SharedServiceCard} from '../ServiceCardsShared/ServiceCardsShared'\n\nexport function MCardProduct(props: MCardProductProps) {\n const {addToCartLabel = 'Add to cart', ...rest} = props\n\n return <SharedServiceCard variant=\"product\" actionLabel={addToCartLabel} {...rest} />\n}\n","import type {MCardEventProps} from './MCardEvent.types'\nimport {SharedServiceCard} from '../ServiceCardsShared/ServiceCardsShared'\n\nexport function MCardEvent(props: MCardEventProps) {\n const {onRegister, registerLabel = 'Register', ...rest} = props\n\n return (\n <SharedServiceCard\n variant=\"event\"\n onAddToCart={onRegister ? () => onRegister() : undefined}\n actionLabel={registerLabel}\n {...rest}\n />\n )\n}\n","import type {MCardWidgetProps} from './MCardWidget.types'\nimport {cn} from '../../../utils/cn'\nimport {MArrowDownIcon, MArrowUpIcon} from '../../../icons'\nimport './MCardWidget.css'\n\nfunction resolveTrendType(trend: MCardWidgetProps['trend'], explicit?: MCardWidgetProps['trendType']) {\n if (explicit) return explicit\n if (typeof trend !== 'number' || trend === 0) return 'neutral'\n return trend > 0 ? 'up' : 'down'\n}\n\nfunction formatTrend(trend: MCardWidgetProps['trend']) {\n if (typeof trend === 'number' && trend > 0) {\n return `+${trend}`\n }\n\n return trend\n}\n\nexport function MCardWidget({\n title,\n value,\n trend,\n trendType,\n icon,\n color = 'primary',\n helperText,\n className,\n ...rest\n}: MCardWidgetProps) {\n const hasTrend = trend !== undefined && trend !== null\n const resolvedTrendType = resolveTrendType(trend, trendType)\n const formattedTrend = formatTrend(trend)\n\n return (\n <div className={cn('card-widget', `color-${color}`, className)} {...rest}>\n <div className=\"cw-top\">\n <div className=\"cw-meta\">\n <span className=\"cw-title\">{title}</span>\n <span className=\"cw-value\">{value}</span>\n </div>\n {icon && <span className=\"cw-icon\">{icon}</span>}\n </div>\n\n {hasTrend && (\n <div className=\"cw-bottom\">\n <span className={cn('cw-trend', resolvedTrendType)}>\n {resolvedTrendType === 'up' && <MArrowUpIcon size={14} />}\n {resolvedTrendType === 'down' && <MArrowDownIcon size={14} />}\n <span>{formattedTrend}</span>\n </span>\n </div>\n )}\n\n {helperText && <div className=\"cw-helper\">{helperText}</div>}\n </div>\n )\n}\n","import {useState, useMemo, useRef, useCallback} from 'react'\nimport type {MCardGridProps} from './MCardGrid.types'\nimport {cn} from '../../../utils/cn'\nimport {MButton, MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPopover} from '../../primitives'\nimport {MArrowDownIcon, MArrowUpIcon, MFilterIcon, MSortIcon} from '../../../icons'\nimport './MCardGrid.css'\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 MCardGrid<T extends Record<string, unknown>>({\n items,\n renderCard,\n searchable = false,\n searchKeys,\n searchPlaceholder = 'Search...',\n filterable = false,\n filterKeys = [],\n sortable = false,\n sortKeys = [],\n defaultSort,\n columns = 3,\n emptyMessage = 'No results found.',\n className,\n style,\n ...rest\n}: MCardGridProps<T>) {\n const [search, setSearch] = useState('')\n const [filters, setFilters] = useState<Record<string, Set<string>>>({})\n const [sortKey, setSortKey] = useState<string | null>(defaultSort?.key ?? null)\n const [sortDir, setSortDir] = useState<'asc' | 'desc'>(defaultSort?.direction ?? 'asc')\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 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 processed = useMemo(() => {\n let result = [...items]\n\n if (search && searchKeys && searchKeys.length > 0) {\n const query = search.toLowerCase()\n result = result.filter((item) =>\n searchKeys.some((key) => {\n const value = getNestedValue(item, key)\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }\n\n for (const [key, selected] of Object.entries(filters)) {\n if (selected.size === 0) continue\n\n result = result.filter((item) => {\n const value = getNestedValue(item, key)\n return value != null && selected.has(String(value))\n })\n }\n\n if (sortKey) {\n result.sort((a, b) => {\n const av = getNestedValue(a, sortKey)\n const bv = getNestedValue(b, sortKey)\n\n if (av == null && bv == null) return 0\n if (av == null) return 1\n if (bv == null) return -1\n\n const compare = String(av).localeCompare(String(bv), undefined, {numeric: true})\n return sortDir === 'asc' ? compare : -compare\n })\n }\n\n return result\n }, [items, search, searchKeys, filters, sortKey, sortDir])\n\n function toggleFilter(key: string, value: string) {\n setFilters((prev) => {\n const next = new Set(prev[key] ?? [])\n\n if (next.has(value)) next.delete(value)\n else next.add(value)\n\n return {...prev, [key]: next}\n })\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 item of items) {\n const value = getNestedValue(item, 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 }, [items, filterKeys])\n\n const activeSort = sortKeys.find((item) => item.key === sortKey)\n\n return (\n <div className={cn('card-grid', className)} style={style} {...rest}>\n {(searchable || filterable || sortable) && (\n <div className=\"card-grid-toolbar\">\n {searchable && (\n <MInputSearch\n className=\"card-grid-search\"\n size=\"sm\"\n fullWidth\n placeholder={searchPlaceholder}\n value={search}\n onChange={(event) => setSearch(event.target.value)}\n onClear={() => setSearch('')}\n />\n )}\n\n <div className=\"card-grid-actions\">\n {filterable && 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=\"card-grid-dropdown\"\n >\n {filterKeys.map((filterKey) => (\n <div key={filterKey.key} className=\"card-grid-filter-group\">\n <span className=\"card-grid-filter-label\">{filterKey.label}</span>\n {(filterOptions[filterKey.key] ?? []).map((option) => (\n <div key={option} className=\"card-grid-filter-option\">\n <MCheckbox\n size=\"sm\"\n clickEffect=\"none\"\n checked={filters[filterKey.key]?.has(option) ?? false}\n onChange={() => toggleFilter(filterKey.key, option)}\n label={option}\n />\n </div>\n ))}\n </div>\n ))}\n </MPopover>\n </>\n )}\n\n {sortable && sortKeys.length > 0 && (\n <>\n <MButton\n ref={sortBtnRef}\n variant=\"outlined\"\n size=\"sm\"\n startIcon={\n sortKey ? (\n sortDir === 'asc' ? (\n <MArrowUpIcon />\n ) : (\n <MArrowDownIcon />\n )\n ) : (\n <MSortIcon />\n )\n }\n aria-expanded={sortOpen}\n onClick={openSort}\n >\n {activeSort ? `Sort: ${activeSort.label}` : 'Sort'}\n </MButton>\n <MPopover\n open={sortOpen}\n anchorRef={sortBtnRef}\n onClose={() => setSortOpen(false)}\n placement=\"bottom-end\"\n className=\"card-grid-dropdown\"\n >\n {sortKeys.map((sortItem) => (\n <button\n key={sortItem.key}\n type=\"button\"\n className={cn(\n 'card-grid-sort-item',\n sortKey === sortItem.key && 'active'\n )}\n onClick={() => {\n if (sortKey === sortItem.key) {\n setSortDir(sortDir === 'asc' ? 'desc' : 'asc')\n } else {\n setSortKey(sortItem.key)\n setSortDir('asc')\n }\n setSortOpen(false)\n }}\n >\n {sortItem.label}\n {sortKey === sortItem.key && (\n <span className=\"card-grid-sort-dir\">\n {sortDir === 'asc' ? (\n <MArrowUpIcon className=\"card-grid-sort-icon\" />\n ) : (\n <MArrowDownIcon className=\"card-grid-sort-icon\" />\n )}\n </span>\n )}\n </button>\n ))}\n </MPopover>\n </>\n )}\n </div>\n </div>\n )}\n\n {processed.length > 0 ? (\n <div\n className=\"card-grid-items\"\n style={{\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n }}\n >\n {processed.map((item, index) => renderCard(item, index))}\n </div>\n ) : (\n <div className=\"card-grid-empty\">{emptyMessage}</div>\n )}\n </div>\n )\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls-1nIh1Ih1.js","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MToggle/MToggle.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {forwardRef} from 'react'\nimport type {MToggleProps} from './MToggle.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MToggle.css'\n\n// Render a switch-style boolean control with the same API shape as MCheckbox.\nexport const MToggle = forwardRef<HTMLInputElement, MToggleProps>(function MToggle(\n {\n checked,\n defaultChecked,\n name,\n id,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <label\n className={cn('toggle', size, labelPosition === 'left' && 'label-left', disabled && 'disabled', className)}\n style={style}\n >\n <span className={cn('track', `color-${color}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\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 role=\"switch\"\n aria-checked={checked}\n />\n <span className=\"knob\" />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div\n className=\"load-more-bar-fill\"\n style={{width: `${Math.min((loaded / total) * 100, 100)}%`}}\n />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./MArrowUpIcon-CjLbBZOW.cjs`),t=require(`./cn-CpRt8Xjj.cjs`),n=require(`./useInteractionEffect-BaJeiUns.cjs`),r=require(`./MButton-DOtMjOTz.cjs`);let i=require(`react`),a=require(`react/jsx-runtime`);var o=(0,i.forwardRef)(function({orientation:e=`horizontal`,variant:n,size:o,color:s,attached:c=!0,className:l,children:u,...d},f){let p=(0,i.useMemo)(()=>({variant:n,size:o,color:s}),[n,o,s]);return(0,a.jsx)(r.i.Provider,{value:p,children:(0,a.jsx)(`div`,{ref:f,role:`group`,className:t.t(`button-group`,e,c&&`attached`,l),...d,children:u})})}),s=(0,i.createContext)(null);function c(){return(0,i.useContext)(s)}var l=(0,i.forwardRef)(function({checked:e,defaultChecked:r,name:o,id:s,value:l,disabled:u=!1,size:d=`md`,color:f=`primary`,label:p,labelPosition:m=`right`,onChange:h,clickEffect:g=`ripple`,rippleColor:_,className:v,style:y},b){let x=c(),S=x?.name??o,C=x?.disabled??u,w=x?.size??d,T=x?.color??f,E=x?x.value===l:e,{effectClassName:D,effectLayer:O,handlePointerDown:k,triggerEffect:A}=n.t({effect:g,disabled:C,centered:!0,color:_}),j=(0,i.useCallback)(e=>{h?.(e),x?.onChange&&l&&x.onChange(l)},[h,x,l]);return(0,a.jsxs)(`label`,{className:t.t(`radio`,w,m===`left`&&`label-left`,C&&`disabled`,v),style:y,children:[(0,a.jsxs)(`span`,{className:t.t(`circle`,`color-${T}`,D),onPointerDown:k,children:[O,(0,a.jsx)(`input`,{ref:b,type:`radio`,name:S,id:s,value:l,checked:E,defaultChecked:x?void 0:r,disabled:C,onChange:j,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&A(e.currentTarget.parentElement)},className:`input`})]}),p&&(0,a.jsx)(`span`,{className:`label-text`,children:p})]})});function u({name:e,value:n,defaultValue:r,onChange:o,direction:c=`vertical`,children:l,disabled:u=!1,size:d=`md`,color:f=`primary`,error:p=!1,errorText:m,label:h,className:g,style:_}){let[v,y]=(0,i.useState)(r),b=n===void 0?v:n,x=(0,i.useCallback)(e=>{n===void 0&&y(e),o?.(e)},[o,n]),S=(0,i.useMemo)(()=>({name:e,value:b,disabled:u,size:d,color:f,onChange:x}),[e,b,u,d,f,x]);return(0,a.jsx)(s.Provider,{value:S,children:(0,a.jsxs)(`fieldset`,{className:t.t(`radio-group`,c,g),style:_,role:`radiogroup`,children:[h&&(0,a.jsx)(`legend`,{className:t.t(`label`,p&&`error`),children:h}),l,m&&(0,a.jsx)(`span`,{className:`field-error`,role:`alert`,children:m})]})})}var d=(0,i.forwardRef)(function({checked:e,defaultChecked:r,name:i,id:o,disabled:s=!1,size:c=`md`,color:l=`primary`,label:u,labelPosition:d=`right`,onChange:f,clickEffect:p=`ripple`,rippleColor:m,className:h,style:g},_){let{effectClassName:v,effectLayer:y,handlePointerDown:b,triggerEffect:x}=n.t({effect:p,disabled:s,centered:!0,color:m});return(0,a.jsxs)(`label`,{className:t.t(`toggle`,c,d===`left`&&`label-left`,s&&`disabled`,h),style:g,children:[(0,a.jsxs)(`span`,{className:t.t(`track`,`color-${l}`,v),onPointerDown:b,children:[y,(0,a.jsx)(`input`,{ref:_,type:`checkbox`,checked:e,defaultChecked:r,name:i,id:o,disabled:s,onChange:f,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&x(e.currentTarget.parentElement)},className:`input`,role:`switch`,"aria-checked":e}),(0,a.jsx)(`span`,{className:`knob`})]}),u&&(0,a.jsx)(`span`,{className:`label-text`,children:u})]})});function f({onLoadMore:e,loading:n=!1,hasMore:o=!0,loaded:s,total:c,auto:l=!1,autoThreshold:u=100,variant:d=`outlined`,color:f=`primary`,label:p=`Load more`,loadingLabel:m=`Loading...`,doneLabel:h=`All items loaded`,className:g,..._}){let v=(0,i.useRef)(null),y=(0,i.useRef)(e);y.current=e,(0,i.useEffect)(()=>{if(!l||!o||n)return;let e=v.current;if(!e)return;let t=new IntersectionObserver(e=>{e[0].isIntersecting&&y.current()},{rootMargin:`${u}px`});return t.observe(e),()=>t.disconnect()},[l,o,n,u]);let b=(0,i.useCallback)(()=>{!n&&o&&e()},[e,n,o]),x=s!==void 0&&c!==void 0;return(0,a.jsxs)(`div`,{className:t.t(`load-more`,g),..._,children:[x&&(0,a.jsxs)(`span`,{className:`load-more-count`,children:[s,` / `,c]}),o?(0,a.jsx)(r.t,{variant:d,color:f,loading:n,onClick:b,className:`load-more-btn`,children:n?m:p}):(0,a.jsx)(`span`,{className:`load-more-done`,children:h}),l&&o&&(0,a.jsx)(`div`,{ref:v,className:`load-more-sentinel`}),x&&(0,a.jsx)(`div`,{className:`load-more-bar`,children:(0,a.jsx)(`div`,{className:`load-more-bar-fill`,style:{width:`${Math.min(s/c*100,100)}%`}})})]})}function p({threshold:n=300,variant:o=`filled`,color:s=`primary`,smooth:c=!0,className:l}){let[u,d]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{function e(){d(window.scrollY>n)}return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[n]),(0,a.jsx)(r.t,{variant:o,color:s,shape:`circle`,size:`lg`,iconOnly:!0,onClick:(0,i.useCallback)(()=>{window.scrollTo({top:0,behavior:c?`smooth`:`instant`})},[c]),"aria-label":`Scroll to top`,className:t.t(`scroll-top`,u&&`visible`,l),children:(0,a.jsx)(e.t,{})})}function m(e,t){return(0,a.jsx)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,"aria-hidden":`true`,...t,children:e})}function h(e){return m((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.2`,fill:`#fff`,stroke:`#dadce0`,strokeWidth:`1.2`}),(0,a.jsx)(`path`,{d:`M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z`,fill:`#4285F4`}),(0,a.jsx)(`path`,{d:`M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z`,fill:`#34A853`}),(0,a.jsx)(`path`,{d:`M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z`,fill:`#FBBC05`}),(0,a.jsx)(`path`,{d:`M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z`,fill:`#EA4335`})]}),e)}function g(e){return m((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`rect`,{x:`2.2`,y:`2.2`,width:`19.6`,height:`19.6`,rx:`6.2`,fill:`#1877F2`}),(0,a.jsx)(`path`,{d:`M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z`,fill:`#fff`})]}),e)}function _(e){return m((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`path`,{d:`M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z`,fill:`currentColor`}),(0,a.jsx)(`path`,{d:`M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z`,fill:`currentColor`})]}),e)}function v(e){return m((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`rect`,{x:`3.5`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#F25022`}),(0,a.jsx)(`rect`,{x:`12.7`,y:`3.5`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#7FBA00`}),(0,a.jsx)(`rect`,{x:`3.5`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#00A4EF`}),(0,a.jsx)(`rect`,{x:`12.7`,y:`12.7`,width:`7.8`,height:`7.8`,rx:`1.3`,fill:`#FFB900`})]}),e)}function y(e){return m((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10.1`,fill:`#fff`}),(0,a.jsx)(`path`,{d:`M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z`,fill:`#E60023`})]}),e)}function b(e){return m((0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`rect`,{x:`2.4`,y:`2.4`,width:`19.2`,height:`19.2`,rx:`4.8`,fill:`#fff`}),(0,a.jsx)(`path`,{d:`M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z`,fill:`#0A66C2`})]}),e)}var x={google:{label:`Sign in with Google`,iconLabel:`Google`,mode:`google`,Icon:h},facebook:{label:`Sign in with Facebook`,iconLabel:`Facebook`,mode:`outline`,Icon:g},apple:{label:`Sign in with Apple`,iconLabel:`Apple`,mode:`brand`,Icon:_},microsoft:{label:`Sign in with Microsoft`,iconLabel:`Microsoft`,mode:`brand`,Icon:v},pinterest:{label:`Sign in with Pinterest`,iconLabel:`Pinterest`,mode:`brand`,Icon:y},linkedin:{label:`Sign in with LinkedIn`,iconLabel:`LinkedIn`,mode:`brand`,Icon:b}},S=(0,i.forwardRef)(function({platform:e=`google`,variant:i=`outline`,size:o=`md`,iconOnly:s=!1,iconShape:c=`circle`,fullWidth:l=!1,loading:u=!1,active:d=!1,pulsing:f=!1,clickEffect:p=`ripple`,rippleColor:m,className:h,style:g,children:_,disabled:v=!1,type:y=`button`,onPointerDown:b,onKeyDown:S,"aria-label":C,...w},T){let E=x[e],D=E.Icon,O=_??E.label,k=C??(s?E.iconLabel:void 0),A=E.mode===`google`?i:E.mode,j=v||u,{effectClassName:M,effectLayer:N,handlePointerDown:P,triggerEffect:F}=n.t({effect:p,disabled:j,centered:s,color:m});return(0,a.jsxs)(`button`,{ref:T,type:y,className:t.t(`social-button-root`,e,A,o,l&&`full-width`,s&&`icon-only`,s&&`icon-shape-${c}`,u&&`loading`,d&&`active`,f&&`pulsing`,j&&`disabled`,M,h),style:g,disabled:j,"aria-busy":u||void 0,"aria-label":k,onPointerDown:e=>{P(e),b?.(e)},onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&F(e.currentTarget),S?.(e)},...w,children:[N,u&&(0,a.jsx)(r.r,{size:`sm`,color:`inherit`,className:`social-button-spinner`,"aria-hidden":`true`}),(0,a.jsx)(`span`,{className:`social-button-brand`,"aria-hidden":`true`,children:(0,a.jsx)(D,{className:`social-button-mark`})}),!s&&(0,a.jsx)(`span`,{className:`social-button-label`,children:O})]})});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return S}});
2
- //# sourceMappingURL=controls-2pkUWkOa.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controls-2pkUWkOa.cjs","names":[],"sources":["../src/components/controls/MButtonGroup/MButtonGroup.tsx","../src/components/controls/MRadio/RadioContext.ts","../src/components/controls/MRadio/MRadio.tsx","../src/components/controls/MRadio/MRadioGroup.tsx","../src/components/controls/MToggle/MToggle.tsx","../src/components/controls/MLoadMore/MLoadMore.tsx","../src/components/controls/MScrollTop/MScrollTop.tsx","../src/components/controls/MSocialButton/MSocialButton.icons.tsx","../src/components/controls/MSocialButton/MSocialButton.tsx"],"sourcesContent":["import {forwardRef, useMemo} from 'react'\nimport type {MButtonGroupProps} from './MButtonGroup.types'\nimport {ButtonGroupContext} from './MButtonGroupContext'\nimport type {MButtonGroupContextValue} from './MButtonGroupContext'\nimport {cn} from '../../../utils/cn'\nimport './MButtonGroup.css'\n\nexport const MButtonGroup = forwardRef<HTMLDivElement, MButtonGroupProps>(function MButtonGroup(\n {orientation = 'horizontal', variant, size, color, attached = true, className, children, ...rest},\n ref\n) {\n const ctx = useMemo<MButtonGroupContextValue>(() => ({variant, size, color}), [variant, size, color])\n\n return (\n <ButtonGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={cn('button-group', orientation, attached && 'attached', className)}\n {...rest}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n )\n})\n","import {createContext, useContext} from 'react'\nimport type {MRadioGroupContextValue} from './MRadio.types'\n\nexport const RadioContext = createContext<MRadioGroupContextValue | null>(null)\n\n// Read the nearest radio-group context when a radio participates in grouped state.\nexport function useRadioGroup(): MRadioGroupContextValue | null {\n return useContext(RadioContext)\n}\n","import {forwardRef, useCallback} from 'react'\nimport type * as React from 'react'\nimport type {MRadioProps} from './MRadio.types'\nimport {useRadioGroup} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MRadio.css'\n\n// Render a single radio that can work standalone or inside MRadioGroup.\nexport const MRadio = forwardRef<HTMLInputElement, MRadioProps>(function MRadio(\n {\n checked,\n defaultChecked,\n name,\n id,\n value,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const group = useRadioGroup()\n\n const resolvedName = group?.name ?? name\n const resolvedDisabled = group?.disabled ?? disabled\n const resolvedSize = group?.size ?? size\n const resolvedColor = group?.color ?? color\n const resolvedChecked = group ? group.value === value : checked\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled: resolvedDisabled,\n centered: true,\n color: rippleColor,\n })\n\n // Delegate selection back to the group when one is present.\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event)\n if (group?.onChange && value) {\n group.onChange(value)\n }\n },\n [onChange, group, value]\n )\n\n return (\n <label\n className={cn(\n 'radio',\n resolvedSize,\n labelPosition === 'left' && 'label-left',\n resolvedDisabled && 'disabled',\n className\n )}\n style={style}\n >\n <span className={cn('circle', `color-${resolvedColor}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"radio\"\n name={resolvedName}\n id={id}\n value={value}\n checked={resolvedChecked}\n defaultChecked={!group ? defaultChecked : undefined}\n disabled={resolvedDisabled}\n onChange={handleChange}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget.parentElement as HTMLSpanElement | null)\n }\n }}\n className=\"input\"\n />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useState, useCallback, useMemo} from 'react'\nimport type {MRadioGroupProps} from './MRadio.types'\nimport {RadioContext} from './RadioContext'\nimport {cn} from '../../../utils/cn'\nimport './MRadio.css'\n\n// Coordinate multiple radio items through shared context and optional controlled state.\nexport function MRadioGroup({\n name,\n value,\n defaultValue,\n onChange,\n direction = 'vertical',\n children,\n disabled = false,\n size = 'md',\n color = 'primary',\n error = false,\n errorText,\n label,\n className,\n style,\n}: MRadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n\n // Mirror controlled and uncontrolled usage with the same group API.\n const handleChange = useCallback(\n (val: string) => {\n if (value === undefined) {\n setInternalValue(val)\n }\n onChange?.(val)\n },\n [onChange, value]\n )\n\n // Memoize context so nested radios only update when relevant inputs change.\n const ctx = useMemo(\n () => ({name, value: currentValue, disabled, size, color, onChange: handleChange}),\n [name, currentValue, disabled, size, color, handleChange]\n )\n\n return (\n <RadioContext.Provider value={ctx}>\n <fieldset className={cn('radio-group', direction, className)} style={style} role=\"radiogroup\">\n {label && <legend className={cn('label', error && 'error')}>{label}</legend>}\n {children}\n {errorText && (\n <span className=\"field-error\" role=\"alert\">\n {errorText}\n </span>\n )}\n </fieldset>\n </RadioContext.Provider>\n )\n}\n","import {forwardRef} from 'react'\nimport type {MToggleProps} from './MToggle.types'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MToggle.css'\n\n// Render a switch-style boolean control with the same API shape as MCheckbox.\nexport const MToggle = forwardRef<HTMLInputElement, MToggleProps>(function MToggle(\n {\n checked,\n defaultChecked,\n name,\n id,\n disabled = false,\n size = 'md',\n color = 'primary',\n label,\n labelPosition = 'right',\n onChange,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n },\n ref\n) {\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect,\n disabled,\n centered: true,\n color: rippleColor,\n })\n\n return (\n <label\n className={cn('toggle', size, labelPosition === 'left' && 'label-left', disabled && 'disabled', className)}\n style={style}\n >\n <span className={cn('track', `color-${color}`, effectClassName)} onPointerDown={handlePointerDown}>\n {effectLayer}\n <input\n ref={ref}\n type=\"checkbox\"\n checked={checked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\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 role=\"switch\"\n aria-checked={checked}\n />\n <span className=\"knob\" />\n </span>\n {label && <span className=\"label-text\">{label}</span>}\n </label>\n )\n})\n","import {useEffect, useRef, useCallback} from 'react'\nimport type {MLoadMoreProps} from './MLoadMore.types'\nimport {MButton} from '../MButton'\nimport {cn} from '../../../utils/cn'\nimport './MLoadMore.css'\n\nexport function MLoadMore({\n onLoadMore,\n loading = false,\n hasMore = true,\n loaded,\n total,\n auto = false,\n autoThreshold = 100,\n variant = 'outlined',\n color = 'primary',\n label = 'Load more',\n loadingLabel = 'Loading...',\n doneLabel = 'All items loaded',\n className,\n ...rest\n}: MLoadMoreProps) {\n const sentinelRef = useRef<HTMLDivElement>(null)\n const loadMoreRef = useRef(onLoadMore)\n loadMoreRef.current = onLoadMore\n\n useEffect(() => {\n if (!auto || !hasMore || loading) return\n\n const sentinel = sentinelRef.current\n if (!sentinel) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n loadMoreRef.current()\n }\n },\n {rootMargin: `${autoThreshold}px`}\n )\n\n observer.observe(sentinel)\n return () => observer.disconnect()\n }, [auto, hasMore, loading, autoThreshold])\n\n const handleClick = useCallback(() => {\n if (!loading && hasMore) onLoadMore()\n }, [onLoadMore, loading, hasMore])\n\n const showCount = loaded !== undefined && total !== undefined\n\n return (\n <div className={cn('load-more', className)} {...rest}>\n {showCount && (\n <span className=\"load-more-count\">\n {loaded} / {total}\n </span>\n )}\n\n {hasMore ? (\n <MButton\n variant={variant}\n color={color}\n loading={loading}\n onClick={handleClick}\n className=\"load-more-btn\"\n >\n {loading ? loadingLabel : label}\n </MButton>\n ) : (\n <span className=\"load-more-done\">{doneLabel}</span>\n )}\n\n {auto && hasMore && <div ref={sentinelRef} className=\"load-more-sentinel\" />}\n\n {showCount && (\n <div className=\"load-more-bar\">\n <div\n className=\"load-more-bar-fill\"\n style={{width: `${Math.min((loaded / total) * 100, 100)}%`}}\n />\n </div>\n )}\n </div>\n )\n}\n","import {useState, useEffect, useCallback} from 'react'\nimport type {MScrollTopProps} from './MScrollTop.types'\nimport {MButton} from '../MButton'\nimport {MArrowUpIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MScrollTop.css'\n\nexport function MScrollTop({\n threshold = 300,\n variant = 'filled',\n color = 'primary',\n smooth = true,\n className,\n}: MScrollTopProps) {\n const [visible, setVisible] = useState(false)\n\n useEffect(() => {\n function onScroll() {\n setVisible(window.scrollY > threshold)\n }\n onScroll()\n window.addEventListener('scroll', onScroll, {passive: true})\n return () => window.removeEventListener('scroll', onScroll)\n }, [threshold])\n\n const scrollToTop = useCallback(() => {\n window.scrollTo({top: 0, behavior: smooth ? 'smooth' : 'instant'})\n }, [smooth])\n\n return (\n <MButton\n variant={variant}\n color={color}\n shape=\"circle\"\n size=\"lg\"\n iconOnly\n onClick={scrollToTop}\n aria-label=\"Scroll to top\"\n className={cn('scroll-top', visible && 'visible', className)}\n >\n <MArrowUpIcon />\n </MButton>\n )\n}\n","import type {ReactNode, SVGProps} from 'react'\n\ntype SocialMarkProps = SVGProps<SVGSVGElement>\n\nfunction createMark(children: ReactNode, props: SocialMarkProps) {\n return (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" {...props}>\n {children}\n </svg>\n )\n}\n\nexport function SocialGoogleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.2\" fill=\"#fff\" stroke=\"#dadce0\" strokeWidth=\"1.2\" />\n <path\n d=\"M17.95 12.25c0-.48-.04-.83-.13-1.2H12v2.26h3.42c-.07.56-.48 1.4-1.4 1.97l-.01.08 2 1.52.14.02c1.28-1.15 1.8-2.84 1.8-4.65z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 18.2c1.67 0 3.07-.54 4.1-1.48l-2.13-1.62c-.57.39-1.34.67-1.97.67-1.64 0-3.03-1.06-3.53-2.53l-.08.01-2.08 1.58-.03.08c1.02 1.97 3.09 3.29 5.72 3.29z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M8.47 13.24a3.72 3.72 0 0 1-.2-1.24c0-.43.08-.84.19-1.24l-.01-.08-2.1-1.6-.07.03a6.02 6.02 0 0 0 0 5.78l2.19-1.65z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 8.22c.8 0 1.53.27 2.1.8l1.54-1.48C14.99 6.96 13.67 6.5 12 6.5c-2.63 0-4.7 1.32-5.72 3.29l2.18 1.66c.5-1.47 1.9-2.53 3.54-2.53z\"\n fill=\"#EA4335\"\n />\n </>,\n props\n )\n}\n\nexport function SocialFacebookMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.2\" y=\"2.2\" width=\"19.6\" height=\"19.6\" rx=\"6.2\" fill=\"#1877F2\" />\n <path\n d=\"M13.28 20v-6.02h2.02l.31-2.43h-2.33V10c0-.78.27-1.37 1.35-1.37h1.11V6.4c-.4-.06-1.09-.11-2.03-.11-2.3 0-3.64 1.22-3.64 3.76v1.49h-1.9v2.44h1.9V20z\"\n fill=\"#fff\"\n />\n </>,\n props\n )\n}\n\nexport function SocialAppleMark(props: SocialMarkProps) {\n return createMark(\n <>\n <path\n d=\"M15.38 11.84c.02 2.33 2.04 3.1 2.07 3.12-.03.07-.33 1.09-1.06 2.16-.63.91-1.3 1.84-2.34 1.86-1.03.02-1.37-.61-2.57-.61-1.2 0-1.57.59-2.53.63-1.02.04-1.79-1.01-2.43-1.92-1.3-1.89-2.3-5.33-.97-7.64.67-1.15 1.86-1.88 3.14-1.9.98-.02 1.89.65 2.57.65.67 0 1.92-.81 3.24-.69.55.02 2.1.22 3.09 1.67-.08.05-1.84 1.07-1.81 2.67z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M13.59 4.67c.53-.64.9-1.52.8-2.42-.77.04-1.69.52-2.24 1.15-.5.58-.93 1.49-.82 2.35.86.07 1.72-.44 2.26-1.08z\"\n fill=\"currentColor\"\n />\n </>,\n props\n )\n}\n\nexport function SocialMicrosoftMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"3.5\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#F25022\" />\n <rect x=\"12.7\" y=\"3.5\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#7FBA00\" />\n <rect x=\"3.5\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#00A4EF\" />\n <rect x=\"12.7\" y=\"12.7\" width=\"7.8\" height=\"7.8\" rx=\"1.3\" fill=\"#FFB900\" />\n </>,\n props\n )\n}\n\nexport function SocialPinterestMark(props: SocialMarkProps) {\n return createMark(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10.1\" fill=\"#fff\" />\n <path\n d=\"M12.87 6.76c-2.95 0-4.74 2.03-4.74 4.34 0 1.65.92 3.07 2.38 3.62.1.03.14.01.17-.06l.32-1.23c.05-.14.02-.19-.09-.33-.26-.33-.47-.96-.47-1.57 0-1.52 1.14-2.97 3.08-2.97 1.68 0 2.86 1.14 2.86 2.78 0 1.86-.93 3.13-2.14 3.13-.67 0-1.17-.56-1-1.23.18-.8.55-1.64.55-2.2 0-.51-.28-.93-.84-.93-.67 0-1.2.69-1.2 1.62 0 .59.2.99.2.99l-.78 3.28c-.14.58-.03 1.55.01 1.68.02.08.1.1.15.03.09-.11 1.07-1.49 1.24-2.18l.27-1.06c.25.48.99.89 1.77.89 2.34 0 4.04-2.15 4.04-4.79 0-2.54-2.08-4.44-4.78-4.44z\"\n fill=\"#E60023\"\n />\n </>,\n props\n )\n}\n\nexport function SocialLinkedInMark(props: SocialMarkProps) {\n return createMark(\n <>\n <rect x=\"2.4\" y=\"2.4\" width=\"19.2\" height=\"19.2\" rx=\"4.8\" fill=\"#fff\" />\n <path\n d=\"M8.1 10.02h2.04v7.24H8.1zm1.03-3.22a1.17 1.17 0 1 1 0 2.35 1.17 1.17 0 0 1 0-2.35zm2.68 3.22h1.95v.99c.34-.61 1.08-1.15 2.13-1.15 2.15 0 2.82 1.42 2.82 3.78v3.62h-2.04v-3.26c0-.98-.35-1.67-1.23-1.67-.66 0-1.05.45-1.23.88-.08.16-.08.38-.08.59v3.46h-2.32z\"\n fill=\"#0A66C2\"\n />\n </>,\n props\n )\n}\n","import {forwardRef} from 'react'\nimport type {MSocialButtonProps} from './MSocialButton.types'\nimport {\n SocialAppleMark,\n SocialFacebookMark,\n SocialGoogleMark,\n SocialLinkedInMark,\n SocialMicrosoftMark,\n SocialPinterestMark,\n} from './MSocialButton.icons'\nimport {MSpinner} from '../../feedback'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport './MSocialButton.css'\n\nconst socialButtonConfig = {\n google: {\n label: 'Sign in with Google',\n iconLabel: 'Google',\n mode: 'google',\n Icon: SocialGoogleMark,\n },\n facebook: {\n label: 'Sign in with Facebook',\n iconLabel: 'Facebook',\n mode: 'outline',\n Icon: SocialFacebookMark,\n },\n apple: {\n label: 'Sign in with Apple',\n iconLabel: 'Apple',\n mode: 'brand',\n Icon: SocialAppleMark,\n },\n microsoft: {\n label: 'Sign in with Microsoft',\n iconLabel: 'Microsoft',\n mode: 'brand',\n Icon: SocialMicrosoftMark,\n },\n pinterest: {\n label: 'Sign in with Pinterest',\n iconLabel: 'Pinterest',\n mode: 'brand',\n Icon: SocialPinterestMark,\n },\n linkedin: {\n label: 'Sign in with LinkedIn',\n iconLabel: 'LinkedIn',\n mode: 'brand',\n Icon: SocialLinkedInMark,\n },\n} as const\n\nexport const MSocialButton = forwardRef<HTMLButtonElement, MSocialButtonProps>(function MSocialButton(\n {\n platform = 'google',\n variant = 'outline',\n size = 'md',\n iconOnly = false,\n iconShape = 'circle',\n fullWidth = false,\n loading = false,\n active = false,\n pulsing = false,\n clickEffect = 'ripple',\n rippleColor,\n className,\n style,\n children,\n disabled = false,\n type = 'button',\n onPointerDown,\n onKeyDown,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n) {\n const config = socialButtonConfig[platform]\n const Icon = config.Icon\n const label = children ?? config.label\n const resolvedAriaLabel = ariaLabel ?? (iconOnly ? config.iconLabel : undefined)\n const resolvedVariant = config.mode === 'google' ? variant : config.mode\n const isDisabled = disabled || loading\n const {effectClassName, effectLayer, handlePointerDown, triggerEffect} = useInteractionEffect<HTMLButtonElement>({\n effect: clickEffect,\n disabled: isDisabled,\n centered: iconOnly,\n color: rippleColor,\n })\n\n return (\n <button\n ref={ref}\n type={type}\n className={cn(\n 'social-button-root',\n platform,\n resolvedVariant,\n size,\n fullWidth && 'full-width',\n iconOnly && 'icon-only',\n iconOnly && `icon-shape-${iconShape}`,\n loading && 'loading',\n active && 'active',\n pulsing && 'pulsing',\n isDisabled && 'disabled',\n effectClassName,\n className\n )}\n style={style}\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-label={resolvedAriaLabel}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n onKeyDown={(event) => {\n if (event.key === ' ' || event.key === 'Enter') {\n triggerEffect(event.currentTarget)\n }\n\n onKeyDown?.(event)\n }}\n {...rest}\n >\n {effectLayer}\n {loading && <MSpinner size=\"sm\" color=\"inherit\" className=\"social-button-spinner\" aria-hidden=\"true\" />}\n <span className=\"social-button-brand\" aria-hidden=\"true\">\n <Icon className=\"social-button-mark\" />\n </span>\n {!iconOnly && <span className=\"social-button-label\">{label}</span>}\n </button>\n )\n})\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./MChevronRightIcon-QbfE-b7g.cjs`),t=require(`./MArrowUpIcon-CjLbBZOW.cjs`),n=require(`./MArrowDownIcon-DjLz-A0I.cjs`),r=require(`./MFolderOpenIcon-35Lmw91g.cjs`),i=require(`./MFileExtIcons-DzACx_eM.cjs`),a=require(`./cn-CpRt8Xjj.cjs`),o=require(`./MPortal-d1mwLhwx.cjs`),s=require(`./MCheckbox-Vbr4IhEn.cjs`),c=require(`./MInputSearch-CQZ-ccri.cjs`),l=require(`./MPagination-C8txsdB6.cjs`);let u=require(`react`),d=require(`react/jsx-runtime`);function f(e,t,n){return typeof n==`function`?n(e,t):String(typeof n==`string`?e[n]:e.id??t)}function p({columns:e,data:i,rowKey:o,sortable:p=!1,filterable:m=!1,selectable:h=!1,pagination:g=!1,pageSize:_=10,striped:v=!1,compact:y=!1,stickyHeader:b=!1,sort:x,onSortChange:S,selectedKeys:C,onSelectionChange:w,emptyText:T=`No data`,filterPlaceholder:E=`Search...`,className:D,...O}){let[k,A]=(0,u.useState)(null),[j,M]=(0,u.useState)([]),[N,P]=(0,u.useState)(``),[F,I]=(0,u.useState)(0),L=x===void 0?k:x,R=C??j,z=w??M;function B(e){let t;t=L?.key===e?L.dir===`asc`?{key:e,dir:`desc`}:null:{key:e,dir:`asc`},S?S(t):A(t),I(0)}let V=(0,u.useMemo)(()=>{if(!m||!N.trim())return i;let t=N.toLowerCase();return i.filter(n=>e.some(e=>{if(e.filterable===!1)return!1;let r=n[e.key];return r!=null&&String(r).toLowerCase().includes(t)}))},[i,N,m,e]),H=(0,u.useMemo)(()=>{if(!L||!e.find(e=>e.key===L.key)?.sortable&&!p)return V;let t=L.dir===`asc`?1:-1;return[...V].sort((e,n)=>{let r=e[L.key],i=n[L.key];return r==null&&i==null?0:r==null?1:i==null?-1:typeof r==`number`&&typeof i==`number`?(r-i)*t:String(r).localeCompare(String(i))*t})},[V,L,e,p]),U=g?Math.max(1,Math.ceil(H.length/_)):1,W=g?H.slice(F*_,(F+1)*_):H,G=W.map((e,t)=>f(e,F*_+t,o)),K=G.length>0&&G.every(e=>R.includes(e));function q(){z(K?R.filter(e=>!G.includes(e)):[...new Set([...R,...G])])}function J(e){z(R.includes(e)?R.filter(t=>t!==e):[...R,e])}function Y(e,t){t.target.closest(`button, a, [data-no-row-select]`)||J(e)}return(0,d.jsxs)(`div`,{className:a.t(`data-table`,D),...O,children:[m&&(0,d.jsx)(`div`,{className:`toolbar`,children:(0,d.jsx)(c.t,{className:`filter-search`,size:`sm`,fullWidth:!0,placeholder:E,value:N,onChange:e=>{P(e.target.value),I(0)},onClear:()=>{P(``),I(0)}})}),(0,d.jsx)(`div`,{className:`scroll`,children:(0,d.jsxs)(`table`,{className:a.t(`root`,v&&`striped`,y&&`compact`),children:[(0,d.jsx)(`thead`,{className:a.t(`head`,b&&`sticky`),children:(0,d.jsxs)(`tr`,{children:[h&&(0,d.jsx)(`th`,{className:`th check-col`,children:(0,d.jsx)(s.t,{checked:K,onChange:q,size:`sm`,clickEffect:`none`})}),e.map(e=>{let i=e.sortable??p,o=L?.key===e.key;return(0,d.jsx)(`th`,{className:a.t(`th`,i&&`sortable`,o&&`sorted-${L.dir}`),style:{width:e.width,textAlign:e.align},onClick:i?()=>B(e.key):void 0,children:(0,d.jsxs)(`span`,{className:`th-content`,children:[e.label,i&&(0,d.jsx)(`span`,{className:`sort-icon`,children:o?L.dir===`asc`?(0,d.jsx)(t.t,{"aria-hidden":`true`}):(0,d.jsx)(n.t,{"aria-hidden":`true`}):(0,d.jsx)(r.r,{"aria-hidden":`true`})})]})},e.key)})]})}),(0,d.jsxs)(`tbody`,{children:[W.length===0&&(0,d.jsx)(`tr`,{children:(0,d.jsx)(`td`,{className:`empty`,colSpan:e.length+ +!!h,children:T})}),W.map((t,n)=>{let r=f(t,F*_+n,o),i=R.includes(r);return(0,d.jsxs)(`tr`,{className:a.t(`row`,i&&`selected`,h&&`selectable`),onClick:h?e=>Y(r,e):void 0,children:[h&&(0,d.jsx)(`td`,{className:`td check-col`,children:(0,d.jsx)(s.t,{checked:i,onChange:()=>{},size:`sm`,clickEffect:`none`})}),e.map(e=>(0,d.jsx)(`td`,{className:`td`,style:{textAlign:e.align},children:e.render?e.render(t[e.key],t,F*_+n):t[e.key]},e.key))]},r)})]})]})}),g&&U>1&&(0,d.jsx)(l.t,{total:H.length,page:F+1,pageSize:_,onChange:e=>I(e-1)})]})}var m={pdf:(0,d.jsx)(i.k,{}),ts:(0,d.jsx)(i.b,{}),tsx:(0,d.jsx)(i.x,{}),js:(0,d.jsx)(i.c,{}),jsx:(0,d.jsx)(i.D,{}),css:(0,d.jsx)(i.t,{}),scss:(0,d.jsx)(i.t,{}),html:(0,d.jsx)(i.o,{}),json:(0,d.jsx)(i.l,{}),md:(0,d.jsx)(i.d,{}),txt:(0,d.jsx)(i.S,{}),csv:(0,d.jsx)(i.n,{}),zip:(0,d.jsx)(i.E,{}),rar:(0,d.jsx)(i.v,{}),svg:(0,d.jsx)(i.y,{}),png:(0,d.jsx)(i.g,{}),jpg:(0,d.jsx)(i.s,{}),jpeg:(0,d.jsx)(i.O,{}),gif:(0,d.jsx)(i.a,{}),webp:(0,d.jsx)(i.C,{}),php:(0,d.jsx)(i.h,{}),xml:(0,d.jsx)(i.T,{}),xls:(0,d.jsx)(i.w,{}),ppt:(0,d.jsx)(i._,{}),odt:(0,d.jsx)(i.m,{}),exe:(0,d.jsx)(i.i,{}),mp3:(0,d.jsx)(i.f,{}),mp4:(0,d.jsx)(i.p,{})};function h(e){let t=e.lastIndexOf(`.`);return t<1?null:e.slice(t+1).toLowerCase()}function g(e){return e.kind===`folder`||!!e.children?.length}function _(e){let t=h(e);return t?m[t]??(0,d.jsx)(i.A,{}):(0,d.jsx)(i.j,{})}function v(e,t,n){return e.icon?e.icon:n?g(e)?t?(0,d.jsx)(r.t,{}):(0,d.jsx)(r.n,{}):_(e.label):null}function y(e){let t=new Map,n=new Map;function r(e){t.set(e.id,e);let i=new Set;for(let t of e.children??[])i.add(t.id),r(t).forEach(e=>i.add(e));return n.set(e.id,i),i}return e.forEach(r),{nodeMap:t,descendants:n}}function b(e,t){return typeof window>`u`?{x:e,y:t}:{x:Math.max(8,Math.min(e,window.innerWidth-220)),y:Math.max(8,Math.min(t,window.innerHeight-16))}}function x({node:t,level:n,expandable:r,selectable:i,expandedIds:o,selectedId:s,draggedId:c,dropTargetId:l,onToggle:u,onSelect:f,indent:p,showLines:m,fileIcons:h,draggable:_,canDropOnNode:y,onContextMenu:b,onDragStart:S,onDragOver:C,onDrop:w,onDragEnd:T}){let E=g(t),D=o.has(t.id),O=s===t.id,k=c===t.id,A=l===t.id,j=y?.(t),M=v(t,D,!!h);return(0,d.jsxs)(`li`,{role:`treeitem`,"aria-expanded":E?D:void 0,children:[(0,d.jsxs)(`div`,{className:a.t(`item`,O&&`selected`,t.disabled&&`disabled`,i&&!t.disabled&&`selectable`,_&&!t.disabled&&`draggable`,k&&`dragging`,j&&`can-drop`,A&&`drop-target`),style:{paddingLeft:n*p},draggable:_&&!t.disabled,onClick:()=>{t.disabled||(E&&r&&u(t.id),i&&f?.(t.id,t))},onContextMenu:e=>b?.(e,t),onDragStart:e=>S?.(e,t),onDragOver:e=>C?.(e,t),onDrop:e=>w?.(e,t),onDragEnd:T,children:[(0,d.jsx)(`span`,{className:`toggle`,children:E&&r?(0,d.jsx)(`span`,{className:a.t(`arrow`,D&&`expanded`),children:(0,d.jsx)(e.t,{})}):(0,d.jsx)(`span`,{className:`spacer`})}),M&&(0,d.jsx)(`span`,{className:`icon`,children:M}),(0,d.jsx)(`span`,{className:`label`,children:t.label})]}),E&&D&&(0,d.jsx)(`ul`,{className:`list`,role:`group`,style:m?{"--line-left":`${n*p+17}px`}:void 0,children:(t.children??[]).map(e=>(0,d.jsx)(x,{node:e,level:n+1,expandable:r,selectable:i,expandedIds:o,selectedId:s,draggedId:c,dropTargetId:l,onToggle:u,onSelect:f,indent:p,showLines:m,fileIcons:h,draggable:_,canDropOnNode:y,onContextMenu:b,onDragStart:S,onDragOver:C,onDrop:w,onDragEnd:T},e.id))})]})}function S({items:e,expandable:t=!0,selectable:n=!1,defaultExpanded:r=[],expanded:i,onExpandChange:s,selected:c,onSelect:l,indent:f=20,showLines:p=!0,fileIcons:m=!0,draggable:h=!1,canDrop:_,onMove:v,contextMenuItems:S,onContextMenuAction:C,className:w,...T}){let[E,D]=(0,u.useState)(r),[O,k]=(0,u.useState)(null),[A,j]=(0,u.useState)(null),[M,N]=(0,u.useState)(null),[P,F]=(0,u.useState)(null),I=(0,u.useRef)(null),L=i??E,R=new Set(L),z=c===void 0?O:c,{nodeMap:B,descendants:V}=y(e),H=A?B.get(A)??null:null;(0,u.useEffect)(()=>{if(!P)return;function e(e){e&&I.current&&I.current.contains(e.target)||F(null)}function t(e){e.key===`Escape`&&F(null)}return document.addEventListener(`mousedown`,e),document.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e),document.removeEventListener(`keydown`,t)}},[P]);function U(e){let t=R.has(e)?L.filter(t=>t!==e):[...L,e];s?s(t):D(t)}function W(e,t){l?l(e,t):k(e)}function G(){j(null),N(null)}function K(e){return!H||!h||!v||e.disabled||!g(e)||e.id===H.id||V.get(H.id)?.has(e.id)?!1:_?_(H,e):!0}function q(e,t){if(!S||t.disabled)return;let n=S(t).filter(Boolean);if(!n.length)return;e.preventDefault(),W(t.id,t);let r=b(e.clientX,e.clientY);F({node:t,items:n,x:r.x,y:r.y})}function J(e,t){!h||t.disabled||(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.id),F(null),j(t.id))}function Y(e,t){K(t)&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,N(t.id))}function X(e,n){if(e.preventDefault(),!H||!K(n)){G();return}v?.({draggedId:H.id,draggedNode:H,targetId:n.id,targetNode:n}),t&&!R.has(n.id)&&U(n.id),G()}return(0,d.jsxs)(`div`,{className:a.t(`tree`,p&&`lines`,w),...T,children:[(0,d.jsx)(`ul`,{className:`list`,role:`tree`,children:e.map(e=>(0,d.jsx)(x,{node:e,level:0,expandable:t,selectable:n,expandedIds:R,selectedId:z,draggedId:A,dropTargetId:M,onToggle:U,onSelect:W,indent:f,showLines:p,fileIcons:m,draggable:h,canDropOnNode:K,onContextMenu:q,onDragStart:J,onDragOver:Y,onDrop:X,onDragEnd:G},e.id))}),P&&(0,d.jsx)(o.t,{children:(0,d.jsx)(`div`,{ref:I,className:`tree menu`,style:{top:P.y,left:P.x},role:`menu`,children:P.items.map(e=>(0,d.jsxs)(`button`,{type:`button`,className:a.t(`action`,e.color,e.disabled&&`disabled`),role:`menuitem`,disabled:e.disabled,onClick:()=>{e.disabled||(C?.(e.id,P.node),F(null))},children:[e.icon&&(0,d.jsx)(`span`,{className:`icon`,children:e.icon}),(0,d.jsx)(`span`,{children:e.label})]},e.id))})})]})}function C({items:e,color:t=`primary`,strikethrough:n=!0,onChange:r,className:i,...o}){return(0,d.jsx)(`div`,{className:a.t(`task list`,`color-${t}`,i),role:`list`,...o,children:e.map(e=>(0,d.jsxs)(`div`,{className:a.t(`task item`,e.checked&&`checked`,e.disabled&&`disabled`),role:`listitem`,onClick:t=>{e.disabled||t.target.closest(`.checkbox`)||r?.(e.id,!(e.checked??!1))},children:[(0,d.jsx)(s.t,{className:`task control`,checked:e.checked??!1,color:t,size:`sm`,disabled:e.disabled,onChange:t=>r?.(e.id,t.target.checked),clickEffect:`ripple`}),(0,d.jsx)(`span`,{className:a.t(`task label`,e.checked&&n&&`done`),children:e.label})]},e.id))})}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return C}});
2
- //# sourceMappingURL=data-BGEuiFne.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-BGEuiFne.cjs","names":[],"sources":["../src/components/data/MDataTable/MDataTable.tsx","../src/components/data/MTreeView/MTreeView.tsx","../src/components/data/MTaskList/MTaskList.tsx"],"sourcesContent":["import {useMemo, useState} from 'react'\nimport type * as React from 'react'\nimport type {MDataTableProps, MDataTableSort} from './MDataTable.types'\nimport {MCheckbox} from '../../controls'\nimport {MInputSearch} from '../../inputs'\nimport {MPagination} from '../../layout'\nimport {MArrowDownIcon, MArrowUpDownIcon, MArrowUpIcon} 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\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 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 [filter, setFilter] = useState('')\n const [page, setPage] = useState(0)\n\n const activeSort = controlledSort !== undefined ? controlledSort : internalSort\n const selected = controlledSelected ?? internalSelected\n const setSelected = onSelectionChange ?? setInternalSelected\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 if (onSortChange) onSortChange(next)\n else setInternalSort(next)\n\n setPage(0)\n }\n\n const filtered = useMemo(() => {\n if (!filterable || !filter.trim()) return data\n\n const query = filter.toLowerCase()\n\n return data.filter((row) =>\n columns.some((col) => {\n if (col.filterable === false) return false\n\n const value = (row as any)[col.key]\n return value != null && String(value).toLowerCase().includes(query)\n })\n )\n }, [data, filter, filterable, columns])\n\n const sorted = useMemo(() => {\n if (!activeSort) return filtered\n\n const col = columns.find((item) => item.key === activeSort.key)\n if (!col?.sortable && !sortable) 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])\n\n const totalPages = pagination ? Math.max(1, Math.ceil(sorted.length / pageSize)) : 1\n const pageData = pagination ? sorted.slice(page * pageSize, (page + 1) * pageSize) : sorted\n\n const allKeys = pageData.map((row, index) => getRowKey(row, page * 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 return (\n <div className={cn('data-table', className)} {...rest}>\n {filterable && (\n <div className=\"toolbar\">\n <MInputSearch\n className=\"filter-search\"\n size=\"sm\"\n fullWidth\n placeholder={filterPlaceholder}\n value={filter}\n onChange={(event) => {\n setFilter(event.target.value)\n setPage(0)\n }}\n onClear={() => {\n setFilter('')\n setPage(0)\n }}\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 * 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 * 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\n total={sorted.length}\n page={page + 1}\n pageSize={pageSize}\n onChange={(nextPage) => setPage(nextPage - 1)}\n />\n )}\n </div>\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport type {CSSProperties, DragEvent, MouseEvent, ReactNode} from 'react'\nimport type {\n MTreeViewProps,\n MTreeItemProps,\n MTreeNode,\n MTreeViewContextMenuItem,\n MTreeViewMoveEvent,\n} from './MTreeView.types'\nimport {cn} from '../../../utils/cn'\nimport {MPortal} from '../../primitives'\nimport {\n MChevronRightIcon,\n MFileCodeIcon,\n MFileCsvIcon,\n MFileCssIcon,\n MFileExeIcon,\n MFileGifIcon,\n MFileHtmlIcon,\n MFileIcon,\n MFileImageIcon,\n MFileJpgIcon,\n MFileJsIcon,\n MFileJsonIcon,\n MFileMdIcon,\n MFileMp3Icon,\n MFileMp4Icon,\n MFileOdtIcon,\n MFilePdfIcon,\n MFilePhpIcon,\n MFilePngIcon,\n MFilePptIcon,\n MFileRarIcon,\n MFileSvgIcon,\n MFileTextIcon,\n MFileTsIcon,\n MFileTsxIcon,\n MFileTxtIcon,\n MFileWebpIcon,\n MFileXlsIcon,\n MFileXmlIcon,\n MFileZipIcon,\n MFolderIcon,\n MFolderOpenIcon,\n} from '../../../icons'\nimport './MTreeView.css'\nconst fileTypeMap: Record<string, ReactNode> = {\n pdf: <MFilePdfIcon />,\n ts: <MFileTsIcon />,\n tsx: <MFileTsxIcon />,\n js: <MFileJsIcon />,\n jsx: <MFileCodeIcon />,\n css: <MFileCssIcon />,\n scss: <MFileCssIcon />,\n html: <MFileHtmlIcon />,\n json: <MFileJsonIcon />,\n md: <MFileMdIcon />,\n txt: <MFileTxtIcon />,\n csv: <MFileCsvIcon />,\n zip: <MFileZipIcon />,\n rar: <MFileRarIcon />,\n svg: <MFileSvgIcon />,\n png: <MFilePngIcon />,\n jpg: <MFileJpgIcon />,\n jpeg: <MFileImageIcon />,\n gif: <MFileGifIcon />,\n webp: <MFileWebpIcon />,\n php: <MFilePhpIcon />,\n xml: <MFileXmlIcon />,\n xls: <MFileXlsIcon />,\n ppt: <MFilePptIcon />,\n odt: <MFileOdtIcon />,\n exe: <MFileExeIcon />,\n mp3: <MFileMp3Icon />,\n mp4: <MFileMp4Icon />,\n}\n\n// Read the file extension once so icon logic stays predictable.\nfunction getFileExtension(label: string): string | null {\n const dot = label.lastIndexOf('.')\n if (dot < 1) return null\n return label.slice(dot + 1).toLowerCase()\n}\n\n// Treat explicit folders and nodes with children as directory-like.\nfunction isFolderNode(node: MTreeNode) {\n return node.kind === 'folder' || Boolean(node.children?.length)\n}\n\n// Resolve the proper file icon by extension.\nfunction getFileIcon(label: string): ReactNode {\n const ext = getFileExtension(label)\n if (!ext) return <MFileIcon />\n\n return fileTypeMap[ext] ?? <MFileTextIcon />\n}\n\n// Prefer custom icons first, then fall back to folder or file visuals.\nfunction getDefaultIcon(node: MTreeNode, isExpanded: boolean, fileIcons: boolean) {\n if (node.icon) return node.icon\n if (!fileIcons) return null\n\n if (isFolderNode(node)) return isExpanded ? <MFolderOpenIcon /> : <MFolderIcon />\n\n return getFileIcon(node.label)\n}\n\n// Cache nodes and descendants so drag-drop validation stays fast.\nfunction buildTreeLookup(items: MTreeNode[]) {\n const nodeMap = new Map<string, MTreeNode>()\n const descendants = new Map<string, Set<string>>()\n\n function walk(node: MTreeNode) {\n nodeMap.set(node.id, node)\n\n const childIds = new Set<string>()\n\n for (const child of node.children ?? []) {\n childIds.add(child.id)\n\n const nestedIds = walk(child)\n nestedIds.forEach((id) => childIds.add(id))\n }\n\n descendants.set(node.id, childIds)\n return childIds\n }\n\n items.forEach(walk)\n\n return {nodeMap, descendants}\n}\n\n// Keep the context menu inside the viewport.\nfunction clampMenuPosition(x: number, y: number) {\n if (typeof window === 'undefined') {\n return {x, y}\n }\n\n return {\n x: Math.max(8, Math.min(x, window.innerWidth - 220)),\n y: Math.max(8, Math.min(y, window.innerHeight - 16)),\n }\n}\n\n// Render one visible row and recurse into children when expanded.\nfunction TreeItem({\n node,\n level,\n expandable,\n selectable,\n expandedIds,\n selectedId,\n draggedId,\n dropTargetId,\n onToggle,\n onSelect,\n indent,\n showLines,\n fileIcons,\n draggable,\n canDropOnNode,\n onContextMenu,\n onDragStart,\n onDragOver,\n onDrop,\n onDragEnd,\n}: MTreeItemProps) {\n const hasChildren = isFolderNode(node)\n const isExpanded = expandedIds.has(node.id)\n const isSelected = selectedId === node.id\n const isDragging = draggedId === node.id\n const isDropTarget = dropTargetId === node.id\n const canDrop = canDropOnNode?.(node)\n const icon = getDefaultIcon(node, isExpanded, !!fileIcons)\n\n return (\n <li role=\"treeitem\" aria-expanded={hasChildren ? isExpanded : undefined}>\n <div\n className={cn(\n 'item',\n isSelected && 'selected',\n node.disabled && 'disabled',\n selectable && !node.disabled && 'selectable',\n draggable && !node.disabled && 'draggable',\n isDragging && 'dragging',\n canDrop && 'can-drop',\n isDropTarget && 'drop-target'\n )}\n style={{paddingLeft: level * indent}}\n draggable={draggable && !node.disabled}\n onClick={() => {\n if (node.disabled) return\n if (hasChildren && expandable) onToggle(node.id)\n if (selectable) onSelect?.(node.id, node)\n }}\n onContextMenu={(event) => onContextMenu?.(event, node)}\n onDragStart={(event) => onDragStart?.(event, node)}\n onDragOver={(event) => onDragOver?.(event, node)}\n onDrop={(event) => onDrop?.(event, node)}\n onDragEnd={onDragEnd}\n >\n <span className=\"toggle\">\n {hasChildren && expandable ? (\n <span className={cn('arrow', isExpanded && 'expanded')}>\n <MChevronRightIcon />\n </span>\n ) : (\n <span className=\"spacer\" />\n )}\n </span>\n {icon && <span className=\"icon\">{icon}</span>}\n <span className=\"label\">{node.label}</span>\n </div>\n {hasChildren && isExpanded && (\n <ul\n className=\"list\"\n role=\"group\"\n style={showLines ? ({'--line-left': `${level * indent + 17}px`} as CSSProperties) : undefined}\n >\n {(node.children ?? []).map((child) => (\n <TreeItem\n key={child.id}\n node={child}\n level={level + 1}\n expandable={expandable}\n selectable={selectable}\n expandedIds={expandedIds}\n selectedId={selectedId}\n draggedId={draggedId}\n dropTargetId={dropTargetId}\n onToggle={onToggle}\n onSelect={onSelect}\n indent={indent}\n showLines={showLines}\n fileIcons={fileIcons}\n draggable={draggable}\n canDropOnNode={canDropOnNode}\n onContextMenu={onContextMenu}\n onDragStart={onDragStart}\n onDragOver={onDragOver}\n onDrop={onDrop}\n onDragEnd={onDragEnd}\n />\n ))}\n </ul>\n )}\n </li>\n )\n}\n\n// Render a file tree with selection, context actions and folder moves.\nexport function MTreeView({\n items,\n expandable = true,\n selectable = false,\n defaultExpanded = [],\n expanded: controlledExpanded,\n onExpandChange,\n selected: controlledSelected,\n onSelect,\n indent = 20,\n showLines = true,\n fileIcons = true,\n draggable = false,\n canDrop,\n onMove,\n contextMenuItems,\n onContextMenuAction,\n className,\n ...rest\n}: MTreeViewProps) {\n const [internalExpanded, setInternalExpanded] = useState<string[]>(defaultExpanded)\n const [internalSelected, setInternalSelected] = useState<string | null>(null)\n const [draggedId, setDraggedId] = useState<string | null>(null)\n const [dropTargetId, setDropTargetId] = useState<string | null>(null)\n const [menu, setMenu] = useState<{\n node: MTreeNode\n items: MTreeViewContextMenuItem[]\n x: number\n y: number\n } | null>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n\n const expandedArr = controlledExpanded ?? internalExpanded\n const expandedIds = new Set(expandedArr)\n const selectedId = controlledSelected !== undefined ? controlledSelected : internalSelected\n const {nodeMap, descendants} = buildTreeLookup(items)\n const draggedNode = draggedId ? (nodeMap.get(draggedId) ?? null) : null\n\n useEffect(() => {\n if (!menu) return\n\n function closeMenu(event?: Event) {\n if (event && menuRef.current && menuRef.current.contains(event.target as Node)) {\n return\n }\n\n setMenu(null)\n }\n\n function handleKey(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n setMenu(null)\n }\n }\n\n document.addEventListener('mousedown', closeMenu)\n document.addEventListener('scroll', closeMenu, true)\n window.addEventListener('resize', closeMenu)\n document.addEventListener('keydown', handleKey)\n\n return () => {\n document.removeEventListener('mousedown', closeMenu)\n document.removeEventListener('scroll', closeMenu, true)\n window.removeEventListener('resize', closeMenu)\n document.removeEventListener('keydown', handleKey)\n }\n }, [menu])\n\n function handleToggle(id: string) {\n const next = expandedIds.has(id) ? expandedArr.filter((e) => e !== id) : [...expandedArr, id]\n if (onExpandChange) onExpandChange(next)\n else setInternalExpanded(next)\n }\n\n function handleSelect(id: string, node: MTreeNode) {\n if (onSelect) onSelect(id, node)\n else setInternalSelected(id)\n }\n\n function closeDrag() {\n setDraggedId(null)\n setDropTargetId(null)\n }\n\n function isValidDropTarget(targetNode: MTreeNode) {\n if (!draggedNode || !draggable || !onMove) return false\n if (targetNode.disabled || !isFolderNode(targetNode)) return false\n if (targetNode.id === draggedNode.id) return false\n if (descendants.get(draggedNode.id)?.has(targetNode.id)) return false\n\n return canDrop ? canDrop(draggedNode, targetNode) : true\n }\n\n function handleContextMenu(event: MouseEvent<HTMLDivElement>, node: MTreeNode) {\n if (!contextMenuItems || node.disabled) return\n\n const items = contextMenuItems(node).filter(Boolean)\n if (!items.length) return\n\n event.preventDefault()\n handleSelect(node.id, node)\n\n const pos = clampMenuPosition(event.clientX, event.clientY)\n setMenu({\n node,\n items,\n x: pos.x,\n y: pos.y,\n })\n }\n\n function handleDragStart(event: DragEvent<HTMLDivElement>, node: MTreeNode) {\n if (!draggable || node.disabled) return\n\n event.dataTransfer.effectAllowed = 'move'\n event.dataTransfer.setData('text/plain', node.id)\n setMenu(null)\n setDraggedId(node.id)\n }\n\n function handleDragOver(event: DragEvent<HTMLDivElement>, targetNode: MTreeNode) {\n if (!isValidDropTarget(targetNode)) return\n\n event.preventDefault()\n event.dataTransfer.dropEffect = 'move'\n setDropTargetId(targetNode.id)\n }\n\n function handleDrop(event: DragEvent<HTMLDivElement>, targetNode: MTreeNode) {\n event.preventDefault()\n\n if (!draggedNode || !isValidDropTarget(targetNode)) {\n closeDrag()\n return\n }\n\n onMove?.({\n draggedId: draggedNode.id,\n draggedNode,\n targetId: targetNode.id,\n targetNode,\n } satisfies MTreeViewMoveEvent)\n\n if (expandable && !expandedIds.has(targetNode.id)) {\n handleToggle(targetNode.id)\n }\n\n closeDrag()\n }\n\n return (\n <div className={cn('tree', showLines && 'lines', className)} {...rest}>\n <ul className=\"list\" role=\"tree\">\n {items.map((item) => (\n <TreeItem\n key={item.id}\n node={item}\n level={0}\n expandable={expandable}\n selectable={selectable}\n expandedIds={expandedIds}\n selectedId={selectedId}\n draggedId={draggedId}\n dropTargetId={dropTargetId}\n onToggle={handleToggle}\n onSelect={handleSelect}\n indent={indent}\n showLines={showLines}\n fileIcons={fileIcons}\n draggable={draggable}\n canDropOnNode={isValidDropTarget}\n onContextMenu={handleContextMenu}\n onDragStart={handleDragStart}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onDragEnd={closeDrag}\n />\n ))}\n </ul>\n {menu && (\n <MPortal>\n <div ref={menuRef} className=\"tree menu\" style={{top: menu.y, left: menu.x}} role=\"menu\">\n {menu.items.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n className={cn('action', item.color, item.disabled && 'disabled')}\n role=\"menuitem\"\n disabled={item.disabled}\n onClick={() => {\n if (item.disabled) return\n onContextMenuAction?.(item.id, menu.node)\n setMenu(null)\n }}\n >\n {item.icon && <span className=\"icon\">{item.icon}</span>}\n <span>{item.label}</span>\n </button>\n ))}\n </div>\n </MPortal>\n )}\n </div>\n )\n}\n","import type {MTaskListProps} from './MTaskList.types'\nimport {MCheckbox} from '../../controls'\nimport {cn} from '../../../utils/cn'\nimport './MTaskList.css'\n\n// Render an interactive checklist with toggleable task items.\nexport function MTaskList({\n items,\n color = 'primary',\n strikethrough = true,\n onChange,\n className,\n ...rest\n}: MTaskListProps) {\n return (\n <div className={cn('task list', `color-${color}`, className)} role=\"list\" {...rest}>\n {items.map((item) => (\n <div\n key={item.id}\n className={cn('task item', item.checked && 'checked', item.disabled && 'disabled')}\n role=\"listitem\"\n onClick={(event) => {\n if (item.disabled) return\n if ((event.target as HTMLElement).closest('.checkbox')) return\n onChange?.(item.id, !(item.checked ?? false))\n }}\n >\n <MCheckbox\n className=\"task control\"\n checked={item.checked ?? false}\n color={color}\n size=\"sm\"\n disabled={item.disabled}\n onChange={(e) => onChange?.(item.id, e.target.checked)}\n clickEffect=\"ripple\"\n />\n <span className={cn('task label', item.checked && strikethrough && 'done')}>{item.label}</span>\n </div>\n ))}\n </div>\n )\n}\n"],"mappings":"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"}