@banzamel/mineralui 2.1.1 → 2.1.2

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 (244) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-BcO8hMnU.js → MAvatar-DtJCj3dD.js} +1 -1
  3. package/dist/{MAvatar-BcO8hMnU.js.map → MAvatar-DtJCj3dD.js.map} +1 -1
  4. package/dist/{MAvatar-C4N2ztLf.cjs → MAvatar-bUWENcq-.cjs} +2 -2
  5. package/dist/{MAvatar-C4N2ztLf.cjs.map → MAvatar-bUWENcq-.cjs.map} +1 -1
  6. package/dist/{MButton-B8kFTOPJ.cjs → MButton-R08y1HCT.cjs} +2 -2
  7. package/dist/{MButton-B8kFTOPJ.cjs.map → MButton-R08y1HCT.cjs.map} +1 -1
  8. package/dist/{MButtonGroup-C3Ar0gfk.cjs → MButtonGroup-C-LiXWRC.cjs} +2 -2
  9. package/dist/{MButtonGroup-C3Ar0gfk.cjs.map → MButtonGroup-C-LiXWRC.cjs.map} +1 -1
  10. package/dist/{MCard-szs5kIek.cjs → MCard-1OVOl4Ql.cjs} +2 -2
  11. package/dist/{MCard-szs5kIek.cjs.map → MCard-1OVOl4Ql.cjs.map} +1 -1
  12. package/dist/{MCard-dLMQQ97e.js → MCard-azpp4YVD.js} +1 -1
  13. package/dist/{MCard-dLMQQ97e.js.map → MCard-azpp4YVD.js.map} +1 -1
  14. package/dist/{MCheckbox-CATWU11D.cjs → MCheckbox-CM5HJQWW.cjs} +2 -2
  15. package/dist/{MCheckbox-CATWU11D.cjs.map → MCheckbox-CM5HJQWW.cjs.map} +1 -1
  16. package/dist/{MConflictIllustration-Mnz1q7Ey.cjs → MConflictIllustration-B2AtfpYO.cjs} +2 -2
  17. package/dist/{MConflictIllustration-Mnz1q7Ey.cjs.map → MConflictIllustration-B2AtfpYO.cjs.map} +1 -1
  18. package/dist/{MDetailList-BBgUaSDJ.cjs → MDetailList-BhKBJwpd.cjs} +2 -2
  19. package/dist/{MDetailList-BBgUaSDJ.cjs.map → MDetailList-BhKBJwpd.cjs.map} +1 -1
  20. package/dist/{MDetailList-zlwdeA-r.js → MDetailList-BjvZUyNj.js} +2 -2
  21. package/dist/{MDetailList-zlwdeA-r.js.map → MDetailList-BjvZUyNj.js.map} +1 -1
  22. package/dist/{MDropdownMenu-omTEUh4V.js → MDropdownMenu-CZmU3uku.js} +1 -1
  23. package/dist/{MDropdownMenu-omTEUh4V.js.map → MDropdownMenu-CZmU3uku.js.map} +1 -1
  24. package/dist/{MDropdownMenu-1RqWjxHp.cjs → MDropdownMenu-hXaIMkAj.cjs} +2 -2
  25. package/dist/{MDropdownMenu-1RqWjxHp.cjs.map → MDropdownMenu-hXaIMkAj.cjs.map} +1 -1
  26. package/dist/{MGrid-B2qzYD6S.cjs → MGrid-B_0kFUws.cjs} +2 -2
  27. package/dist/{MGrid-B2qzYD6S.cjs.map → MGrid-B_0kFUws.cjs.map} +1 -1
  28. package/dist/{MGrid-Cy44dWyC.js → MGrid-CYL3cbUI.js} +1 -1
  29. package/dist/{MGrid-Cy44dWyC.js.map → MGrid-CYL3cbUI.js.map} +1 -1
  30. package/dist/{MHeading-CyuxSnhl.cjs → MHeading-BLnb3dNv.cjs} +2 -2
  31. package/dist/{MHeading-CyuxSnhl.cjs.map → MHeading-BLnb3dNv.cjs.map} +1 -1
  32. package/dist/{MI18nProvider-C90EVyFz.cjs → MI18nProvider-Cg-vxV6j.cjs} +2 -2
  33. package/dist/{MI18nProvider-C90EVyFz.cjs.map → MI18nProvider-Cg-vxV6j.cjs.map} +1 -1
  34. package/dist/{MInput-Cw9ZVcNO.cjs → MInput-BhTAfpYS.cjs} +2 -2
  35. package/dist/{MInput-Cw9ZVcNO.cjs.map → MInput-BhTAfpYS.cjs.map} +1 -1
  36. package/dist/{MInput-Baokf17V.js → MInput-CgtX0fUN.js} +1 -1
  37. package/dist/{MInput-Baokf17V.js.map → MInput-CgtX0fUN.js.map} +1 -1
  38. package/dist/{MInputCVC-DNzDAbfU.js → MInputCVC-BGYhUGDE.js} +3 -3
  39. package/dist/{MInputCVC-DNzDAbfU.js.map → MInputCVC-BGYhUGDE.js.map} +1 -1
  40. package/dist/{MInputCVC-Bqcp5Uu3.cjs → MInputCVC-E2Z2hYfy.cjs} +2 -2
  41. package/dist/{MInputCVC-Bqcp5Uu3.cjs.map → MInputCVC-E2Z2hYfy.cjs.map} +1 -1
  42. package/dist/{MInputSearch-D9bp1QAz.cjs → MInputSearch-DE9Jqp0i.cjs} +2 -2
  43. package/dist/{MInputSearch-D9bp1QAz.cjs.map → MInputSearch-DE9Jqp0i.cjs.map} +1 -1
  44. package/dist/{MInputSearch-Bswi-Kj0.js → MInputSearch-DEr5HBgw.js} +2 -2
  45. package/dist/{MInputSearch-Bswi-Kj0.js.map → MInputSearch-DEr5HBgw.js.map} +1 -1
  46. package/dist/{MKbd-CiwDwFwA.cjs → MKbd-n4fhKIxb.cjs} +2 -2
  47. package/dist/{MKbd-CiwDwFwA.cjs.map → MKbd-n4fhKIxb.cjs.map} +1 -1
  48. package/dist/{MLink-B7gXA8qY.cjs → MLink-Biipj7xz.cjs} +2 -2
  49. package/dist/{MLink-B7gXA8qY.cjs.map → MLink-Biipj7xz.cjs.map} +1 -1
  50. package/dist/MLoader-CnvWqFtA.js +41 -0
  51. package/dist/MLoader-CnvWqFtA.js.map +1 -0
  52. package/dist/MLoader-XcpKlLrd.cjs +2 -0
  53. package/dist/MLoader-XcpKlLrd.cjs.map +1 -0
  54. package/dist/{MPagination-DpUtB6t6.js → MPagination-7yTbB8dZ.js} +1 -1
  55. package/dist/{MPagination-DpUtB6t6.js.map → MPagination-7yTbB8dZ.js.map} +1 -1
  56. package/dist/{MPagination-C2GmGkVA.cjs → MPagination-DTqT33Mx.cjs} +2 -2
  57. package/dist/{MPagination-C2GmGkVA.cjs.map → MPagination-DTqT33Mx.cjs.map} +1 -1
  58. package/dist/{MPopover-BVBN5SJi.cjs → MPopover-hDqrn317.cjs} +2 -2
  59. package/dist/{MPopover-BVBN5SJi.cjs.map → MPopover-hDqrn317.cjs.map} +1 -1
  60. package/dist/{MPortal-Djrw2WhD.cjs → MPortal-BciZHNDC.cjs} +2 -2
  61. package/dist/{MPortal-Djrw2WhD.cjs.map → MPortal-BciZHNDC.cjs.map} +1 -1
  62. package/dist/{MSimpleGrid-BVeCK9Ci.js → MSimpleGrid-BWKurW6H.js} +1 -1
  63. package/dist/{MSimpleGrid-BVeCK9Ci.js.map → MSimpleGrid-BWKurW6H.js.map} +1 -1
  64. package/dist/{MSimpleGrid-BR352NiK.cjs → MSimpleGrid-BwNfaxQP.cjs} +2 -2
  65. package/dist/{MSimpleGrid-BR352NiK.cjs.map → MSimpleGrid-BwNfaxQP.cjs.map} +1 -1
  66. package/dist/{MSkeleton-DyQBeuVT.cjs → MSkeleton-CLSU5pL6.cjs} +2 -2
  67. package/dist/{MSkeleton-DyQBeuVT.cjs.map → MSkeleton-CLSU5pL6.cjs.map} +1 -1
  68. package/dist/{MSlider-Ds2Fls86.cjs → MSlider-DZnMB49q.cjs} +2 -2
  69. package/dist/{MSlider-Ds2Fls86.cjs.map → MSlider-DZnMB49q.cjs.map} +1 -1
  70. package/dist/{MStack-BdVvJN5S.cjs → MStack-BP_BUeCc.cjs} +2 -2
  71. package/dist/{MStack-BdVvJN5S.cjs.map → MStack-BP_BUeCc.cjs.map} +1 -1
  72. package/dist/{MStack-h11pHEmc.js → MStack-CSCw6to2.js} +1 -1
  73. package/dist/{MStack-h11pHEmc.js.map → MStack-CSCw6to2.js.map} +1 -1
  74. package/dist/{MSubText-DWNMJupD.cjs → MSubText-VHsgFsv2.cjs} +2 -2
  75. package/dist/{MSubText-DWNMJupD.cjs.map → MSubText-VHsgFsv2.cjs.map} +1 -1
  76. package/dist/{MSurface-BS9l7GDH.cjs → MSurface-CYeVFOw_.cjs} +2 -2
  77. package/dist/{MSurface-BS9l7GDH.cjs.map → MSurface-CYeVFOw_.cjs.map} +1 -1
  78. package/dist/{MTag-BwQbycZO.cjs → MTag-BtlOVMRl.cjs} +2 -2
  79. package/dist/{MTag-BwQbycZO.cjs.map → MTag-BtlOVMRl.cjs.map} +1 -1
  80. package/dist/{MText-Cjt1oTPr.cjs → MText-j6Zbbj5Y.cjs} +2 -2
  81. package/dist/{MText-Cjt1oTPr.cjs.map → MText-j6Zbbj5Y.cjs.map} +1 -1
  82. package/dist/{MTooltip-gpvKWQzD.cjs → MTooltip-BEfO9jTe.cjs} +2 -2
  83. package/dist/{MTooltip-gpvKWQzD.cjs.map → MTooltip-BEfO9jTe.cjs.map} +1 -1
  84. package/dist/{MTooltip-Ctyjwxv-.js → MTooltip-BTJkzOah.js} +1 -1
  85. package/dist/{MTooltip-Ctyjwxv-.js.map → MTooltip-BTJkzOah.js.map} +1 -1
  86. package/dist/{MTreeView-BS60bIj7.cjs → MTreeView-1IqmVPMv.cjs} +2 -2
  87. package/dist/{MTreeView-BS60bIj7.cjs.map → MTreeView-1IqmVPMv.cjs.map} +1 -1
  88. package/dist/{MTreeView-DTsi4bye.js → MTreeView-DQaRF0ty.js} +1 -1
  89. package/dist/{MTreeView-DTsi4bye.js.map → MTreeView-DQaRF0ty.js.map} +1 -1
  90. package/dist/{arduino-CA8n1Qq3.cjs → arduino-DdDHMIWB.cjs} +1 -1
  91. package/dist/{arduino-CA8n1Qq3.cjs.map → arduino-DdDHMIWB.cjs.map} +1 -1
  92. package/dist/{arduino-WKgN2ikT.js → arduino-UeOrXakL.js} +1 -1
  93. package/dist/{arduino-WKgN2ikT.js.map → arduino-UeOrXakL.js.map} +1 -1
  94. package/dist/{bash-DObE5DDq.cjs → bash-B17_F5Sw.cjs} +1 -1
  95. package/dist/{bash-DObE5DDq.cjs.map → bash-B17_F5Sw.cjs.map} +1 -1
  96. package/dist/{bash-vBtVVub9.js → bash-CrHemXky.js} +1 -1
  97. package/dist/{bash-vBtVVub9.js.map → bash-CrHemXky.js.map} +1 -1
  98. package/dist/{c-7RiNX--m.js → c-D9302r2r.js} +1 -1
  99. package/dist/{c-7RiNX--m.js.map → c-D9302r2r.js.map} +1 -1
  100. package/dist/{c-Bb-MtVny.cjs → c-ODLxeMV_.cjs} +1 -1
  101. package/dist/{c-Bb-MtVny.cjs.map → c-ODLxeMV_.cjs.map} +1 -1
  102. package/dist/cards-BBYh24NQ.cjs +2 -0
  103. package/dist/cards-BBYh24NQ.cjs.map +1 -0
  104. package/dist/{cards-BkRqUJ2V.js → cards-Du2kX3Br.js} +377 -359
  105. package/dist/{cards-BkRqUJ2V.js.map → cards-Du2kX3Br.js.map} +1 -1
  106. package/dist/cards.cjs +1 -1
  107. package/dist/cards.js +2 -2
  108. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  109. package/dist/components/cards/MCardGrid/MCardGrid.types.d.ts +16 -0
  110. package/dist/components/data/MDataTable/MDataTable.d.ts +1 -1
  111. package/dist/components/data/MDataTable/MDataTable.types.d.ts +16 -0
  112. package/dist/components/data/useMCardGrid.d.ts +2 -0
  113. package/dist/components/data/useMTable.d.ts +2 -0
  114. package/dist/{controls-CSTIosnc.js → controls-Cbv4FmNq.js} +2 -2
  115. package/dist/{controls-CSTIosnc.js.map → controls-Cbv4FmNq.js.map} +1 -1
  116. package/dist/{controls-BopaNWb_.cjs → controls-DrdHBBtm.cjs} +2 -2
  117. package/dist/{controls-BopaNWb_.cjs.map → controls-DrdHBBtm.cjs.map} +1 -1
  118. package/dist/controls.cjs +1 -1
  119. package/dist/controls.js +1 -1
  120. package/dist/{core-o3cw16Db.cjs → core-DBpQf3uY.cjs} +1 -1
  121. package/dist/{core-o3cw16Db.cjs.map → core-DBpQf3uY.cjs.map} +1 -1
  122. package/dist/{core-DC6zSfZo.js → core-yRqh2XLu.js} +1 -1
  123. package/dist/{core-DC6zSfZo.js.map → core-yRqh2XLu.js.map} +1 -1
  124. package/dist/{cpp-CaNnFjgy.js → cpp-CLYSpJBB.js} +1 -1
  125. package/dist/{cpp-CaNnFjgy.js.map → cpp-CLYSpJBB.js.map} +1 -1
  126. package/dist/{cpp-BVKrJvso.cjs → cpp-DuTgLZC1.cjs} +1 -1
  127. package/dist/{cpp-BVKrJvso.cjs.map → cpp-DuTgLZC1.cjs.map} +1 -1
  128. package/dist/{css-NqBDP7ZC.js → css-BgGh0eG1.js} +1 -1
  129. package/dist/{css-NqBDP7ZC.js.map → css-BgGh0eG1.js.map} +1 -1
  130. package/dist/{css-C2sjPfLl.cjs → css-D0f-qByc.cjs} +1 -1
  131. package/dist/{css-C2sjPfLl.cjs.map → css-D0f-qByc.cjs.map} +1 -1
  132. package/dist/data-BgTkBMkP.js +674 -0
  133. package/dist/data-BgTkBMkP.js.map +1 -0
  134. package/dist/data-Csb03WFo.cjs +2 -0
  135. package/dist/data-Csb03WFo.cjs.map +1 -0
  136. package/dist/data.cjs +1 -1
  137. package/dist/data.js +2 -2
  138. package/dist/{display-B7Wh5nnM.js → display-D9H8MP8D.js} +15 -15
  139. package/dist/{display-B7Wh5nnM.js.map → display-D9H8MP8D.js.map} +1 -1
  140. package/dist/{display-BgZbdTDd.cjs → display-IMWtdmxS.cjs} +2 -2
  141. package/dist/{display-BgZbdTDd.cjs.map → display-IMWtdmxS.cjs.map} +1 -1
  142. package/dist/display.cjs +1 -1
  143. package/dist/display.js +2 -2
  144. package/dist/{dropdowns-Befc3lmC.cjs → dropdowns-D_nUdflh.cjs} +2 -2
  145. package/dist/{dropdowns-Befc3lmC.cjs.map → dropdowns-D_nUdflh.cjs.map} +1 -1
  146. package/dist/{dropdowns-DGvRs-VE.js → dropdowns-oj4--GbK.js} +3 -3
  147. package/dist/{dropdowns-DGvRs-VE.js.map → dropdowns-oj4--GbK.js.map} +1 -1
  148. package/dist/dropdowns.cjs +1 -1
  149. package/dist/dropdowns.js +1 -1
  150. package/dist/{feedback-C445FEHb.js → feedback-D7BTlioj.js} +79 -114
  151. package/dist/feedback-D7BTlioj.js.map +1 -0
  152. package/dist/feedback-u1ssUT7e.cjs +2 -0
  153. package/dist/{feedback-C8RfsfYJ.cjs.map → feedback-u1ssUT7e.cjs.map} +1 -1
  154. package/dist/feedback.cjs +1 -1
  155. package/dist/feedback.js +5 -4
  156. package/dist/{form-DSlAmTT1.cjs → form-BWGLrCPi.cjs} +2 -2
  157. package/dist/{form-DSlAmTT1.cjs.map → form-BWGLrCPi.cjs.map} +1 -1
  158. package/dist/{form-BWWLNji0.js → form-CgH1hioG.js} +1 -1
  159. package/dist/{form-BWWLNji0.js.map → form-CgH1hioG.js.map} +1 -1
  160. package/dist/form.cjs +1 -1
  161. package/dist/form.js +1 -1
  162. package/dist/i18n.cjs +1 -1
  163. package/dist/{icons-DX_cScBq.cjs → icons-BfdQ45F2.cjs} +2 -2
  164. package/dist/{icons-DX_cScBq.cjs.map → icons-BfdQ45F2.cjs.map} +1 -1
  165. package/dist/icons.cjs +1 -1
  166. package/dist/illustrations.cjs +1 -1
  167. package/dist/index.cjs +1 -1
  168. package/dist/index.js +31 -30
  169. package/dist/{inputs-BZxorlLv.js → inputs-DQrjGfwd.js} +2 -2
  170. package/dist/{inputs-BZxorlLv.js.map → inputs-DQrjGfwd.js.map} +1 -1
  171. package/dist/{inputs-BiZXyZSE.cjs → inputs-DsFdc0Io.cjs} +2 -2
  172. package/dist/{inputs-BiZXyZSE.cjs.map → inputs-DsFdc0Io.cjs.map} +1 -1
  173. package/dist/inputs.cjs +1 -1
  174. package/dist/inputs.js +4 -4
  175. package/dist/{javascript-BgwyrBZi.cjs → javascript-CGjvHPZ1.cjs} +1 -1
  176. package/dist/{javascript-BgwyrBZi.cjs.map → javascript-CGjvHPZ1.cjs.map} +1 -1
  177. package/dist/{javascript-BltQGQAn.js → javascript-CX3JhsYu.js} +1 -1
  178. package/dist/{javascript-BltQGQAn.js.map → javascript-CX3JhsYu.js.map} +1 -1
  179. package/dist/{json-DWmLrT_r.cjs → json-B8svQsK0.cjs} +1 -1
  180. package/dist/{json-DWmLrT_r.cjs.map → json-B8svQsK0.cjs.map} +1 -1
  181. package/dist/{json-DbCISZXi.js → json-BPIcVdlp.js} +1 -1
  182. package/dist/{json-DbCISZXi.js.map → json-BPIcVdlp.js.map} +1 -1
  183. package/dist/{layout-Ct6ViwDQ.cjs → layout-B_2yBP1M.cjs} +2 -2
  184. package/dist/{layout-Ct6ViwDQ.cjs.map → layout-B_2yBP1M.cjs.map} +1 -1
  185. package/dist/{layout-CnEOTJnJ.js → layout-BuvV-N9H.js} +4 -4
  186. package/dist/{layout-CnEOTJnJ.js.map → layout-BuvV-N9H.js.map} +1 -1
  187. package/dist/layout.cjs +1 -1
  188. package/dist/layout.js +5 -5
  189. package/dist/{licensing-hMT26Vnv.cjs → licensing-DysMClel.cjs} +2 -2
  190. package/dist/{licensing-hMT26Vnv.cjs.map → licensing-DysMClel.cjs.map} +1 -1
  191. package/dist/{locale-BNyzqXAU.js → locale-CS1-IY_I.js} +1 -1
  192. package/dist/{locale-BNyzqXAU.js.map → locale-CS1-IY_I.js.map} +1 -1
  193. package/dist/{locale-C5ik0c3d.cjs → locale-CbnstsMH.cjs} +2 -2
  194. package/dist/{locale-C5ik0c3d.cjs.map → locale-CbnstsMH.cjs.map} +1 -1
  195. package/dist/{media-DxnELIZO.js → media-5IsYrhIQ.js} +1 -1
  196. package/dist/{media-DxnELIZO.js.map → media-5IsYrhIQ.js.map} +1 -1
  197. package/dist/{media-DZaGKh5V.cjs → media-Xt6MkVhb.cjs} +2 -2
  198. package/dist/{media-DZaGKh5V.cjs.map → media-Xt6MkVhb.cjs.map} +1 -1
  199. package/dist/media.cjs +1 -1
  200. package/dist/media.js +2 -2
  201. package/dist/{overlays-WsQqxqk1.cjs → overlays-BAJDNT1m.cjs} +2 -2
  202. package/dist/{overlays-WsQqxqk1.cjs.map → overlays-BAJDNT1m.cjs.map} +1 -1
  203. package/dist/{overlays-BfIrSHDo.js → overlays-WA3jnWTG.js} +6 -6
  204. package/dist/{overlays-BfIrSHDo.js.map → overlays-WA3jnWTG.js.map} +1 -1
  205. package/dist/overlays.cjs +1 -1
  206. package/dist/overlays.js +3 -3
  207. package/dist/{php-dSXzrC_Z.js → php-CBRzjinf.js} +1 -1
  208. package/dist/{php-dSXzrC_Z.js.map → php-CBRzjinf.js.map} +1 -1
  209. package/dist/{php-CssmZWrI.cjs → php-CKyelegh.cjs} +1 -1
  210. package/dist/{php-CssmZWrI.cjs.map → php-CKyelegh.cjs.map} +1 -1
  211. package/dist/primitives.cjs +1 -1
  212. package/dist/style-runtime.cjs +1 -1
  213. package/dist/style-runtime.js +1 -1
  214. package/dist/styles.css +1 -1
  215. package/dist/{theme-DltOEniv.cjs → theme-BfNZicWk.cjs} +2 -2
  216. package/dist/{theme-DltOEniv.cjs.map → theme-BfNZicWk.cjs.map} +1 -1
  217. package/dist/theme.cjs +1 -1
  218. package/dist/{typescript-DeaMWtYF.cjs → typescript-D6PDzwkM.cjs} +1 -1
  219. package/dist/{typescript-DeaMWtYF.cjs.map → typescript-D6PDzwkM.cjs.map} +1 -1
  220. package/dist/{typescript-CxKdKTKz.js → typescript-Xt3Sotw5.js} +1 -1
  221. package/dist/{typescript-CxKdKTKz.js.map → typescript-Xt3Sotw5.js.map} +1 -1
  222. package/dist/{typography-vZwd5E5h.cjs → typography-Dk9kIORI.cjs} +2 -2
  223. package/dist/{typography-vZwd5E5h.cjs.map → typography-Dk9kIORI.cjs.map} +1 -1
  224. package/dist/typography.cjs +1 -1
  225. package/dist/{useGhostText-Nw9XCpWS.cjs → useGhostText-Dmkw3Am8.cjs} +2 -2
  226. package/dist/{useGhostText-Nw9XCpWS.cjs.map → useGhostText-Dmkw3Am8.cjs.map} +1 -1
  227. package/dist/{useInteractionEffect-Gs9HBi2T.cjs → useInteractionEffect-DFTdcWHl.cjs} +2 -2
  228. package/dist/{useInteractionEffect-Gs9HBi2T.cjs.map → useInteractionEffect-DFTdcWHl.cjs.map} +1 -1
  229. package/dist/{useKeyboardNav-DDN-oeqd.cjs → useKeyboardNav-HVG9JFD2.cjs} +2 -2
  230. package/dist/{useKeyboardNav-DDN-oeqd.cjs.map → useKeyboardNav-HVG9JFD2.cjs.map} +1 -1
  231. package/dist/utils.cjs +1 -1
  232. package/dist/{xml-BUuYcpx2.cjs → xml-4YlaGgjP.cjs} +1 -1
  233. package/dist/{xml-BUuYcpx2.cjs.map → xml-4YlaGgjP.cjs.map} +1 -1
  234. package/dist/{xml-BPoVPJlJ.js → xml-CrpWqcDk.js} +1 -1
  235. package/dist/{xml-BPoVPJlJ.js.map → xml-CrpWqcDk.js.map} +1 -1
  236. package/package.json +1 -1
  237. package/dist/cards-DK7j03NN.cjs +0 -2
  238. package/dist/cards-DK7j03NN.cjs.map +0 -1
  239. package/dist/data-CjVcevdT.js +0 -654
  240. package/dist/data-CjVcevdT.js.map +0 -1
  241. package/dist/data-D8qUIvWv.cjs +0 -2
  242. package/dist/data-D8qUIvWv.cjs.map +0 -1
  243. package/dist/feedback-C445FEHb.js.map +0 -1
  244. package/dist/feedback-C8RfsfYJ.cjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"display-B7Wh5nnM.js","names":[],"sources":["../src/components/display/MCollapsible/MCollapsible.tsx","../src/components/display/MAccordion/MAccordion.tsx","../src/components/display/MProgressBar/MProgressBar.tsx","../src/components/display/MCountUp/MCountUp.tsx","../src/components/display/MCodeBlock/MCodeBlock.tsx","../src/components/display/MReveal/MReveal.tsx","../src/components/display/MTimeAgo/MTimeAgo.tsx","../src/components/display/MColorPicker/MColorPicker.tsx","../src/components/display/MEmptyState/MEmptyState.tsx","../src/components/display/MBlur/MBlur.tsx","../src/components/display/MStepper/MStepper.tsx","../src/components/display/MTimeline/MTimeline.tsx"],"sourcesContent":["import {useState} from 'react'\nimport {MButton} from '../../controls'\nimport {MStack} from '../../layout'\nimport {cn} from '../../../utils/cn'\nimport type {MCollapsibleProps} from './MCollapsible.types'\nimport {MChevronDownIcon} from '../../../icons'\nimport './MCollapsible.css'\n\n// MToggle a section of content with a built-in trigger and disclosure state.\nexport function MCollapsible({\n title,\n defaultOpen = false,\n open: controlledOpen,\n onToggle,\n color = 'primary',\n className,\n children,\n ...rest\n}: MCollapsibleProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n const handleToggle = () => {\n const nextOpen = !open\n\n if (controlledOpen === undefined) {\n setInternalOpen(nextOpen)\n }\n\n onToggle?.(nextOpen)\n }\n\n const chevronIcon = (\n <span className={cn('chevron', open && 'open')} aria-hidden=\"true\">\n <MChevronDownIcon />\n </span>\n )\n\n return (\n <div className={cn('collapsible', className)} {...rest}>\n <MButton\n variant=\"ghost\"\n color={color}\n className=\"trigger\"\n aria-expanded={open}\n onClick={handleToggle}\n endIcon={chevronIcon}\n >\n {title}\n </MButton>\n <div className={cn('content-wrap', open && 'open')} aria-hidden={!open}>\n <MStack className=\"content\">{children}</MStack>\n </div>\n </div>\n )\n}\n","import {useState, useCallback, Children, isValidElement} from 'react'\nimport {MCollapsible} from '../MCollapsible'\nimport {cn} from '../../../utils/cn'\nimport type {MAccordionProps, MAccordionItemProps} from './MAccordion.types'\nimport './MAccordion.css'\n\nexport function MAccordionItem(_props: MAccordionItemProps) {\n return null\n}\n\nexport function MAccordion({\n multiple = false,\n defaultOpen,\n onChange,\n bordered = false,\n color,\n className,\n children,\n ...rest\n}: MAccordionProps) {\n const initialOpen = Array.isArray(defaultOpen) ? defaultOpen : defaultOpen ? [defaultOpen] : []\n\n const [openIds, setOpenIds] = useState<string[]>(initialOpen)\n\n const handleToggle = useCallback(\n (id: string, isOpen: boolean) => {\n setOpenIds((prev) => {\n let next: string[]\n if (isOpen) {\n next = multiple ? [...prev, id] : [id]\n } else {\n next = prev.filter((v) => v !== id)\n }\n onChange?.(next)\n return next\n })\n },\n [multiple, onChange]\n )\n\n const items = Children.toArray(children).filter(\n (child) => isValidElement(child) && (child.type as any) === MAccordionItem\n )\n\n return (\n <div className={cn('accordion', bordered && 'bordered', className)} {...rest}>\n {items.map((child) => {\n if (!isValidElement<MAccordionItemProps>(child)) return null\n const {id, title, children: content, disabled, color: itemColor} = child.props\n const isOpen = openIds.includes(id)\n\n return (\n <div key={id} className={cn('accordion-item', disabled && 'disabled')}>\n <MCollapsible\n title={title}\n open={isOpen}\n onToggle={disabled ? undefined : (open) => handleToggle(id, open)}\n color={itemColor ?? color}\n >\n {content}\n </MCollapsible>\n </div>\n )\n })}\n </div>\n )\n}\n","import {useState, useEffect, useRef, useCallback} from 'react'\nimport type {MProgressBarProps} from './MProgressBar.types'\nimport {cn} from '../../../utils/cn'\nimport './MProgressBar.css'\n\nconst DURATION = 800\n\nfunction easeOutCubic(t: number) {\n return 1 - Math.pow(1 - t, 3)\n}\n\n// Render a horizontal bar that fills to represent progress as a percentage.\nexport function MProgressBar({\n value,\n max = 100,\n color = 'primary',\n size = 'md',\n label,\n showValue = false,\n animated = false,\n striped = false,\n className,\n ...rest\n}: MProgressBarProps) {\n const percent = Math.min(100, Math.max(0, (value / max) * 100))\n const [displayPercent, setDisplayPercent] = useState(0)\n const [barPercent, setBarPercent] = useState(0)\n const prevPercent = useRef(0)\n const rafRef = useRef(0)\n\n const animate = useCallback((from: number, to: number) => {\n cancelAnimationFrame(rafRef.current)\n const start = performance.now()\n\n const step = (now: number) => {\n const elapsed = now - start\n const progress = Math.min(elapsed / DURATION, 1)\n const eased = easeOutCubic(progress)\n const current = from + (to - from) * eased\n\n setDisplayPercent(current)\n if (progress < 1) {\n rafRef.current = requestAnimationFrame(step)\n }\n }\n\n // Set bar width immediately for CSS transition\n setBarPercent(to)\n rafRef.current = requestAnimationFrame(step)\n }, [])\n\n useEffect(() => {\n animate(prevPercent.current, percent)\n prevPercent.current = percent\n return () => cancelAnimationFrame(rafRef.current)\n }, [percent, animate])\n\n return (\n <div\n className={cn('progress-bar', `color-${color}`, size, className)}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label}\n {...rest}\n >\n {(label || showValue) && (\n <div className=\"progress-bar-header\">\n {label && <span className=\"progress-bar-label\">{label}</span>}\n {showValue && <span className=\"progress-bar-value\">{Math.round(displayPercent)}%</span>}\n </div>\n )}\n <div className=\"progress-bar-track\">\n <div\n className={cn('progress-bar-fill', animated && 'animated', striped && 'striped')}\n style={{width: `${barPercent}%`}}\n />\n </div>\n </div>\n )\n}\n","import {useState, useEffect, useRef} from 'react'\nimport type {MCountUpProps} from './MCountUp.types'\nimport {cn} from '../../../utils/cn'\n\n// Animate a number from a start value to a target, with an easing curve.\nexport function MCountUp({\n value,\n from = 0,\n duration = 1000,\n decimals = 0,\n prefix = '',\n suffix = '',\n separator = '',\n className,\n ...rest\n}: MCountUpProps) {\n const [display, setDisplay] = useState(from)\n const rafRef = useRef<number>(0)\n const startRef = useRef<number | null>(null)\n\n useEffect(() => {\n const startValue = display\n startRef.current = null\n\n const step = (timestamp: number) => {\n if (startRef.current === null) startRef.current = timestamp\n const elapsed = timestamp - startRef.current\n const progress = Math.min(elapsed / duration, 1)\n const eased = 1 - Math.pow(1 - progress, 3)\n const current = startValue + (value - startValue) * eased\n\n setDisplay(current)\n\n if (progress < 1) {\n rafRef.current = requestAnimationFrame(step)\n }\n }\n\n rafRef.current = requestAnimationFrame(step)\n return () => cancelAnimationFrame(rafRef.current)\n }, [value, duration])\n\n const formatted = formatNumber(display, decimals, separator)\n\n return (\n <span className={cn('count-up', className)} {...rest}>\n {prefix}\n {formatted}\n {suffix}\n </span>\n )\n}\n\nfunction formatNumber(num: number, decimals: number, separator: string): string {\n const fixed = num.toFixed(decimals)\n if (!separator) return fixed\n\n const [int, dec] = fixed.split('.')\n const withSep = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator)\n return dec !== undefined ? `${withSep}.${dec}` : withSep\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {MCodeBlockProps} from './MCodeBlock.types'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MBadge} from '../../feedback'\nimport {MInline} from '../../layout'\nimport {MText} from '../../typography'\nimport {MCopyIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MCodeBlock.css'\nimport type {HLJSApi, LanguageFn} from 'highlight.js'\n\nconst languageMap: Record<string, string> = {\n c: 'c',\n cpp: 'cpp',\n 'c++': 'cpp',\n arduino: 'arduino',\n ino: 'arduino',\n ts: 'typescript',\n typescript: 'typescript',\n tsx: 'tsx',\n js: 'javascript',\n javascript: 'javascript',\n jsx: 'jsx',\n json: 'json',\n css: 'css',\n html: 'html',\n markup: 'html',\n bash: 'bash',\n shell: 'bash',\n shellscript: 'bash',\n php: 'php',\n}\n\nconst languageLoaders: Record<string, () => Promise<{default: LanguageFn}>> = {\n xml: () => import('highlight.js/lib/languages/xml'),\n css: () => import('highlight.js/lib/languages/css'),\n javascript: () => import('highlight.js/lib/languages/javascript'),\n typescript: () => import('highlight.js/lib/languages/typescript'),\n json: () => import('highlight.js/lib/languages/json'),\n bash: () => import('highlight.js/lib/languages/bash'),\n c: () => import('highlight.js/lib/languages/c'),\n cpp: () => import('highlight.js/lib/languages/cpp'),\n arduino: () => import('highlight.js/lib/languages/arduino'),\n php: () => import('highlight.js/lib/languages/php'),\n}\n\nlet highlightJsPromise: Promise<HLJSApi> | null = null\nconst codeBlockTypingSpeed = 42\nconst codeBlockTypingStartDelay = 200\n\nfunction escapeHtml(value: string): string {\n return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\nfunction resolveLanguage(language: string): string {\n return languageMap[language] ?? language\n}\n\nasync function getHighlightJs(): Promise<HLJSApi> {\n if (!highlightJsPromise) {\n highlightJsPromise = (async () => {\n const highlightJsCore = (await import('highlight.js/lib/core')).default\n const highlightJs = highlightJsCore.newInstance()\n\n for (const [language, loadLanguage] of Object.entries(languageLoaders)) {\n const definition = await loadLanguage()\n highlightJs.registerLanguage(language, definition.default)\n }\n\n highlightJs.registerAliases(['shell', 'shellscript'], {languageName: 'bash'})\n highlightJs.registerAliases('markup', {languageName: 'xml'})\n\n return highlightJs\n })()\n }\n\n return highlightJsPromise\n}\n\n// Render a syntax-highlighted code block with optional card header and copy action.\nexport function MCodeBlock({\n code,\n language = 'tsx',\n title,\n showHeader = true,\n showLanguage = true,\n showCopyButton = true,\n copyLabel = 'Copy',\n copiedLabel = 'Copied',\n maxHeight,\n stretch = false,\n animated = false,\n lineNumbers = false,\n className,\n ...rest\n}: MCodeBlockProps) {\n const normalizedLanguage = useMemo(() => resolveLanguage(language.trim().toLowerCase()), [language])\n const [visibleLength, setVisibleLength] = useState(() => (animated ? 0 : code.length))\n const renderedCode = animated ? code.slice(0, visibleLength) : code\n const [highlightedCode, setHighlightedCode] = useState(() => escapeHtml(renderedCode))\n const [copied, setCopied] = useState(false)\n const copyTimeoutRef = useRef<number | null>(null)\n const typingTimeoutRef = useRef<number | null>(null)\n const scrollRef = useRef<HTMLDivElement | null>(null)\n const canCopy = typeof navigator !== 'undefined' && typeof navigator.clipboard?.writeText === 'function'\n const hasHeader = showHeader && (Boolean(title) || showLanguage || showCopyButton)\n const lineCount = useMemo(() => Math.max(1, renderedCode.split('\\n').length), [renderedCode])\n\n useEffect(() => {\n if (typingTimeoutRef.current !== null) {\n window.clearTimeout(typingTimeoutRef.current)\n typingTimeoutRef.current = null\n }\n\n setVisibleLength(animated ? 0 : code.length)\n }, [animated, code])\n\n useEffect(() => {\n if (!animated || code.length === 0) {\n return\n }\n\n if (visibleLength < code.length) {\n typingTimeoutRef.current = window.setTimeout(\n () => {\n setVisibleLength((current) => Math.min(current + 1, code.length))\n typingTimeoutRef.current = null\n },\n visibleLength === 0 ? codeBlockTypingStartDelay : codeBlockTypingSpeed\n )\n }\n\n return () => {\n if (typingTimeoutRef.current !== null) {\n window.clearTimeout(typingTimeoutRef.current)\n typingTimeoutRef.current = null\n }\n }\n }, [animated, code.length, visibleLength])\n\n useEffect(() => {\n let active = true\n\n async function highlightCode() {\n try {\n const highlightJs = await getHighlightJs()\n const languageDefinition = highlightJs.getLanguage(normalizedLanguage)\n const html = languageDefinition\n ? highlightJs.highlight(renderedCode, {\n language: normalizedLanguage,\n ignoreIllegals: true,\n }).value\n : escapeHtml(renderedCode)\n\n if (active) {\n setHighlightedCode(html)\n }\n } catch {\n if (active) {\n setHighlightedCode(escapeHtml(renderedCode))\n }\n }\n }\n\n void highlightCode()\n\n return () => {\n active = false\n }\n }, [normalizedLanguage, renderedCode])\n\n useEffect(() => {\n return () => {\n if (copyTimeoutRef.current !== null) {\n window.clearTimeout(copyTimeoutRef.current)\n }\n\n if (typingTimeoutRef.current !== null) {\n window.clearTimeout(typingTimeoutRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (!animated || !scrollRef.current) {\n return\n }\n\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight\n }, [animated, visibleLength])\n\n async function handleCopy() {\n if (!canCopy) {\n return\n }\n\n try {\n await navigator.clipboard.writeText(code)\n setCopied(true)\n\n if (copyTimeoutRef.current !== null) {\n window.clearTimeout(copyTimeoutRef.current)\n }\n\n copyTimeoutRef.current = window.setTimeout(() => {\n setCopied(false)\n copyTimeoutRef.current = null\n }, 1200)\n } catch {\n setCopied(false)\n }\n }\n\n return (\n <MCard className={cn('code-block-card', className)} {...rest} padded={false} stretch={stretch}>\n {hasHeader && (\n <MCardHeader className=\"code-block-header\">\n <MInline\n className=\"code-block-header-layout\"\n align=\"center\"\n justify=\"between\"\n wrap=\"nowrap\"\n px=\"lg\"\n py=\"md\"\n >\n <MInline className=\"code-block-header-meta\" align=\"center\" wrap=\"wrap\">\n {title && (\n <MText as=\"span\" className=\"code-block-title\" size=\"sm\" weight=\"semibold\">\n {title}\n </MText>\n )}\n {showLanguage && language && (\n <MBadge color=\"info\" size=\"sm\">\n {language}\n </MBadge>\n )}\n </MInline>\n {showCopyButton && (\n <MButton\n variant=\"ghost\"\n size=\"sm\"\n color=\"neutral\"\n startIcon={<MCopyIcon size=\"sm\" aria-hidden=\"true\" />}\n onClick={handleCopy}\n disabled={!canCopy}\n >\n {copied ? copiedLabel : copyLabel}\n </MButton>\n )}\n </MInline>\n </MCardHeader>\n )}\n\n <MCardBody className=\"code-block-body\">\n <div\n ref={scrollRef}\n className=\"code-block-scroll\"\n style={maxHeight ? {maxHeight, overflowY: 'auto'} : undefined}\n >\n <pre\n className={cn(\n 'code-block-pre',\n lineNumbers && 'with-line-numbers',\n `language-${normalizedLanguage}`\n )}\n >\n {lineNumbers && (\n <span className=\"code-block-line-numbers\" aria-hidden=\"true\">\n {Array.from({length: lineCount}, (_, index) => (\n <span key={index + 1} className=\"code-block-line-number\">\n {index + 1}\n </span>\n ))}\n </span>\n )}\n <span className=\"code-block-code-shell\">\n <code\n className={cn('code-block-code', 'hljs', `language-${normalizedLanguage}`)}\n dangerouslySetInnerHTML={{__html: highlightedCode}}\n />\n </span>\n </pre>\n </div>\n </MCardBody>\n </MCard>\n )\n}\n","import {useEffect, useRef} from 'react'\nimport type {CSSProperties} from 'react'\nimport type {MRevealProps} from './MReveal.types'\nimport {cn} from '../../../utils/cn'\n\nfunction getRevealOffset(direction: MRevealProps['direction'], distance: number) {\n switch (direction) {\n case 'down':\n return {x: 0, y: -distance}\n case 'left':\n return {x: distance, y: 0}\n case 'right':\n return {x: -distance, y: 0}\n case 'none':\n return {x: 0, y: 0}\n case 'up':\n default:\n return {x: 0, y: distance}\n }\n}\n\nexport function MReveal({\n children,\n direction = 'up',\n delay = 0,\n duration = 0.46,\n distance = 20,\n once = true,\n trigger = 'view',\n className,\n style,\n ...rest\n}: MRevealProps) {\n const revealRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const node = revealRef.current\n if (!node) {\n return\n }\n\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n node.classList.remove('revealed')\n\n if (prefersReducedMotion) {\n node.classList.add('revealed')\n return\n }\n\n if (trigger === 'mount') {\n const frame = window.requestAnimationFrame(() => {\n node.classList.add('revealed')\n })\n\n return () => window.cancelAnimationFrame(frame)\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n node.classList.add('revealed')\n if (once) {\n observer.disconnect()\n }\n } else if (!once) {\n node.classList.remove('revealed')\n }\n }\n },\n {threshold: 0.2}\n )\n\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [delay, direction, distance, duration, once, trigger])\n\n const offset = getRevealOffset(direction, distance)\n const revealStyle = {\n minWidth: 0,\n maxWidth: '100%',\n '--reveal-delay': `${delay}s`,\n '--reveal-duration': `${duration}s`,\n '--reveal-translate-x': `${offset.x}px`,\n '--reveal-translate-y': `${offset.y}px`,\n ...style,\n } as CSSProperties\n\n return (\n <div ref={revealRef} className={cn('reveal', className)} style={revealStyle} {...rest}>\n {children}\n </div>\n )\n}\n","import {useEffect, useMemo, useState} from 'react'\nimport type {MTimeAgoProps, MTimeAgoUpdate} from './MTimeAgo.types'\nimport {cn} from '../../../utils/cn'\nimport {useDocumentLocale} from '../../../utils/locale'\nimport {\n formatAbsoluteTime,\n formatRelativeTime,\n getAutoUpdateInterval,\n parseRelativeThreshold,\n toDate,\n} from '../../../utils/relativeTime'\nimport './MTimeAgo.css'\n\nfunction getUpdateInterval(update: MTimeAgoUpdate, value: Date | string | number, now: number): number | null {\n if (update === 'none') return null\n if (update === 'minute') return 60 * 1000\n if (update === 'hour') return 60 * 60 * 1000\n if (update === 'day') return 24 * 60 * 60 * 1000\n return getAutoUpdateInterval(value, now)\n}\n\nexport function MTimeAgo({\n value,\n locale: localeOverride,\n maxRelative,\n fallbackFormat = 'date',\n titleAbsolute = true,\n update = 'auto',\n className,\n ...rest\n}: MTimeAgoProps) {\n const locale = useDocumentLocale(localeOverride)\n const [now, setNow] = useState(() => Date.now())\n const interval = useMemo(() => getUpdateInterval(update, value, now), [now, update, value])\n\n useEffect(() => {\n if (!interval) return\n\n const id = window.setInterval(() => setNow(Date.now()), interval)\n return () => window.clearInterval(id)\n }, [interval])\n\n const date = useMemo(() => toDate(value), [value])\n const maxRelativeMs = useMemo(() => parseRelativeThreshold(maxRelative), [maxRelative])\n\n const absolute = useMemo(() => formatAbsoluteTime(value, locale, fallbackFormat), [value, locale, fallbackFormat])\n\n const content = useMemo(() => {\n if (!date) return String(value)\n\n const diff = Math.abs(date.getTime() - now)\n if (maxRelativeMs != null && diff > maxRelativeMs) {\n return absolute ?? String(value)\n }\n\n return formatRelativeTime(date, {locale, now}) ?? absolute ?? String(value)\n }, [absolute, date, locale, maxRelativeMs, now, value])\n\n return (\n <time\n className={cn('time ago', className)}\n dateTime={date?.toISOString()}\n title={titleAbsolute ? (absolute ?? undefined) : undefined}\n {...rest}\n >\n {content}\n </time>\n )\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MColorPickerProps} from './MColorPicker.types'\nimport {cn} from '../../../utils/cn'\nimport './MColorPicker.css'\n\nfunction hsvToHex(h: number, s: number, v: number): string {\n const f = (n: number) => {\n const k = (n + h / 60) % 6\n return v - v * s * Math.max(0, Math.min(k, 4 - k, 1))\n }\n const r = Math.round(f(5) * 255)\n const g = Math.round(f(3) * 255)\n const b = Math.round(f(1) * 255)\n return `#${[r, g, b].map((c) => c.toString(16).padStart(2, '0')).join('')}`\n}\n\nfunction hexToHsv(hex: string): [number, number, number] {\n const m = hex.replace('#', '').match(/.{2}/g)\n if (!m) return [0, 0, 1]\n const [r, g, b] = m.map((c) => parseInt(c, 16) / 255)\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const d = max - min\n let h = 0\n if (d !== 0) {\n if (max === r) h = ((g - b) / d + 6) % 6\n else if (max === g) h = (b - r) / d + 2\n else h = (r - g) / d + 4\n h *= 60\n }\n const s = max === 0 ? 0 : d / max\n return [h, s, max]\n}\n\nfunction hexToRgb(hex: string): string {\n const m = hex.replace('#', '').match(/.{2}/g)\n if (!m) return 'rgb(0, 0, 0)'\n const [r, g, b] = m.map((c) => parseInt(c, 16))\n return `rgb(${r}, ${g}, ${b})`\n}\n\nfunction hexToHsl(hex: string): string {\n const m = hex.replace('#', '').match(/.{2}/g)\n if (!m) return 'hsl(0, 0%, 0%)'\n const [r, g, b] = m.map((c) => parseInt(c, 16) / 255)\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const l = (max + min) / 2\n let h = 0\n let s = 0\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n if (max === r) h = ((g - b) / d + 6) % 6\n else if (max === g) h = (b - r) / d + 2\n else h = (r - g) / d + 4\n h *= 60\n }\n return `hsl(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`\n}\n\nfunction formatOutput(hex: string, format: string): string {\n if (format === 'rgb') return hexToRgb(hex)\n if (format === 'hsl') return hexToHsl(hex)\n return hex\n}\n\nfunction normalizeToHex(value: string): string {\n if (!value) return '#000000'\n if (value.startsWith('#')) return value.length === 7 ? value : '#000000'\n const rgbMatch = value.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/)\n if (rgbMatch) {\n return `#${[rgbMatch[1], rgbMatch[2], rgbMatch[3]]\n .map((c) => parseInt(c).toString(16).padStart(2, '0'))\n .join('')}`\n }\n return '#000000'\n}\n\nconst DEFAULT_SWATCHES = [\n '#ef4444',\n '#f97316',\n '#eab308',\n '#22c55e',\n '#06b6d4',\n '#3b82f6',\n '#8b5cf6',\n '#ec4899',\n '#000000',\n '#ffffff',\n]\n\nexport function MColorPicker({\n value,\n onChange,\n swatches = DEFAULT_SWATCHES,\n format = 'hex',\n size = 'md',\n label,\n disabled = false,\n className,\n ...rest\n}: MColorPickerProps) {\n const hex = normalizeToHex(value ?? '#3b82f6')\n const [hsv, setHsv] = useState<[number, number, number]>(() => hexToHsv(hex))\n const [inputValue, setInputValue] = useState(formatOutput(hex, format))\n const areaRef = useRef<HTMLDivElement>(null)\n const hueRef = useRef<HTMLDivElement>(null)\n const dragging = useRef<'area' | 'hue' | null>(null)\n\n useEffect(() => {\n const newHex = normalizeToHex(value ?? '#3b82f6')\n setHsv(hexToHsv(newHex))\n setInputValue(formatOutput(newHex, format))\n }, [value, format])\n\n const emit = useCallback(\n (h: number, s: number, v: number) => {\n const newHex = hsvToHex(h, s, v)\n setHsv([h, s, v])\n setInputValue(formatOutput(newHex, format))\n onChange?.(formatOutput(newHex, format))\n },\n [onChange, format]\n )\n\n function handleAreaPointer(e: React.PointerEvent | PointerEvent) {\n const rect = areaRef.current?.getBoundingClientRect()\n if (!rect) return\n const s = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width))\n const v = Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height))\n emit(hsv[0], s, v)\n }\n\n function handleHuePointer(e: React.PointerEvent | PointerEvent) {\n const rect = hueRef.current?.getBoundingClientRect()\n if (!rect) return\n const h = Math.max(0, Math.min(360, ((e.clientX - rect.left) / rect.width) * 360))\n emit(h, hsv[1], hsv[2])\n }\n\n useEffect(() => {\n function onMove(e: PointerEvent) {\n if (dragging.current === 'area') handleAreaPointer(e)\n else if (dragging.current === 'hue') handleHuePointer(e)\n }\n function onUp() {\n dragging.current = null\n }\n window.addEventListener('pointermove', onMove)\n window.addEventListener('pointerup', onUp)\n return () => {\n window.removeEventListener('pointermove', onMove)\n window.removeEventListener('pointerup', onUp)\n }\n })\n\n function handleInputChange(val: string) {\n setInputValue(val)\n try {\n const h = normalizeToHex(val)\n if (h !== '#000000' || val === '#000000' || val.toLowerCase() === 'rgb(0, 0, 0)') {\n setHsv(hexToHsv(h))\n onChange?.(formatOutput(h, format))\n }\n } catch {\n // ignore invalid input while typing\n }\n }\n\n const currentHex = hsvToHex(hsv[0], hsv[1], hsv[2])\n\n return (\n <div className={cn('color-picker', size, disabled && 'disabled', className)} {...rest}>\n {label && <label className=\"label\">{label}</label>}\n\n <div\n ref={areaRef}\n className=\"area\"\n style={{background: `hsl(${hsv[0]}, 100%, 50%)`}}\n onPointerDown={(e) => {\n if (disabled) return\n dragging.current = 'area'\n handleAreaPointer(e)\n }}\n >\n <div className=\"white\" />\n <div className=\"black\" />\n <div\n className=\"cursor\"\n style={{\n left: `${hsv[1] * 100}%`,\n top: `${(1 - hsv[2]) * 100}%`,\n background: currentHex,\n }}\n />\n </div>\n\n <div\n ref={hueRef}\n className=\"hue\"\n onPointerDown={(e) => {\n if (disabled) return\n dragging.current = 'hue'\n handleHuePointer(e)\n }}\n >\n <div className=\"hue-thumb\" style={{left: `${(hsv[0] / 360) * 100}%`}} />\n </div>\n\n <div className=\"controls\">\n <div className=\"preview\" style={{background: currentHex}} />\n <input\n type=\"text\"\n className=\"input\"\n value={inputValue}\n onChange={(e) => handleInputChange(e.target.value)}\n disabled={disabled}\n />\n </div>\n\n {swatches.length > 0 && (\n <div className=\"swatches\">\n {swatches.map((swatch) => (\n <button\n key={swatch}\n type=\"button\"\n className={cn('swatch', currentHex.toLowerCase() === swatch.toLowerCase() && 'active')}\n style={{background: swatch}}\n onClick={() => {\n if (disabled) return\n const [h, s, v] = hexToHsv(swatch)\n emit(h, s, v)\n }}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","import {isValidElement, cloneElement} from 'react'\nimport type {MEmptyStateProps} from './MEmptyState.types'\nimport {MButton} from '../../controls/MButton'\nimport {cn} from '../../../utils/cn'\nimport './MEmptyState.css'\n\nconst BUTTON_SIZE_MAP = {xs: 'xs', sm: 'sm', md: 'sm', lg: 'md', xl: 'lg'} as const\n\nexport function MEmptyState({\n icon,\n illustration,\n title,\n description,\n buttonText,\n onAction,\n color = 'neutral',\n size = 'md',\n className,\n children,\n ...rest\n}: MEmptyStateProps) {\n return (\n <div className={cn('empty-state', `color-${color}`, size, className)} {...rest}>\n {illustration && (\n <div className=\"empty-state-illustration\">\n {isValidElement(illustration) ? cloneElement(illustration, {color} as any) : illustration}\n </div>\n )}\n {!illustration && icon && <div className=\"empty-state-icon\">{icon}</div>}\n <div className=\"empty-state-content\">\n <div className=\"empty-state-title\">{title}</div>\n {description && <div className=\"empty-state-description\">{description}</div>}\n </div>\n {buttonText && onAction && (\n <div className=\"empty-state-action\">\n <MButton size={BUTTON_SIZE_MAP[size]} variant=\"outlined\" color={color} onClick={onAction}>\n {buttonText}\n </MButton>\n </div>\n )}\n {children}\n </div>\n )\n}\n","import {useCallback, useState} from 'react'\nimport type {CSSProperties, KeyboardEvent, MouseEvent} from 'react'\nimport type {MBlurProps} from './MBlur.types'\nimport {cn} from '../../../utils/cn'\nimport './MBlur.css'\n\n// Obscure inline content with a CSS blur filter until the viewer opts in to reveal it.\nexport function MBlur({\n children,\n amount = 6,\n reveal = 'hover',\n revealed,\n defaultRevealed = false,\n onToggle,\n inline = true,\n className,\n style,\n onClick,\n onKeyDown,\n ...rest\n}: MBlurProps) {\n const controlled = revealed !== undefined\n const [internal, setInternal] = useState(defaultRevealed)\n const isRevealed = controlled ? revealed : internal\n const interactive = reveal !== 'none'\n\n const setRevealed = useCallback(\n (next: boolean) => {\n if (!controlled) {\n setInternal(next)\n }\n onToggle?.(next)\n },\n [controlled, onToggle]\n )\n\n const handleClick = (event: MouseEvent<HTMLSpanElement>) => {\n if (reveal === 'click') {\n setRevealed(!isRevealed)\n }\n onClick?.(event)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLSpanElement>) => {\n if (reveal === 'click' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n setRevealed(!isRevealed)\n }\n onKeyDown?.(event)\n }\n\n const mergedStyle: CSSProperties = {\n ...style,\n ['--mineral-blur-amount' as string]: `${amount}px`,\n }\n\n return (\n <span\n className={cn('blur', inline ? 'inline' : 'block', `reveal-${reveal}`, isRevealed && 'revealed', className)}\n style={mergedStyle}\n tabIndex={interactive && reveal === 'click' ? 0 : undefined}\n role={reveal === 'click' ? 'button' : undefined}\n aria-pressed={reveal === 'click' ? isRevealed : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <span className={'blur-inner'} aria-hidden={!isRevealed}>\n {children}\n </span>\n </span>\n )\n}\n","import {Children, isValidElement} from 'react'\nimport type {MStepperProps, MStepProps} from './MStepper.types'\nimport type {MSize} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MCheckIcon} from '../../../icons'\nimport './MStepper.css'\n\nconst CHECK_SIZE: Record<MSize, number> = {xs: 10, sm: 14, md: 18, lg: 22, xl: 28}\n\nexport function MStep(_props: MStepProps) {\n return null\n}\n\nexport function MStepper({\n activeStep,\n variant = 'horizontal',\n color = 'primary',\n size = 'md',\n clickable = false,\n onChange,\n className,\n children,\n ...rest\n}: MStepperProps) {\n const steps = Children.toArray(children).filter((child) => isValidElement(child) && (child.type as any) === MStep)\n\n return (\n <div className={cn('stepper', variant, `color-${color}`, size, className)} role=\"list\" {...rest}>\n {steps.map((child, index) => {\n if (!isValidElement<MStepProps>(child)) return null\n const {id, title, description, icon, disabled, optional, error} = child.props\n const isActive = index === activeStep\n const isCompleted = index < activeStep\n const isClickable = clickable && !disabled\n\n const handleClick = () => {\n if (isClickable && onChange) {\n onChange(index)\n }\n }\n\n return (\n <div\n key={id}\n className={cn(\n 'stepper-step',\n isActive && 'active',\n isCompleted && 'completed',\n disabled && 'disabled',\n error && 'error',\n isClickable && 'clickable'\n )}\n role=\"listitem\"\n aria-current={isActive ? 'step' : undefined}\n >\n <div\n className=\"stepper-indicator\"\n onClick={isClickable ? handleClick : undefined}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleClick()\n }\n }\n : undefined\n }\n >\n {error\n ? '!'\n : isCompleted\n ? (icon ?? <MCheckIcon size={CHECK_SIZE[size]} />)\n : (icon ?? index + 1)}\n </div>\n <div className=\"stepper-content\">\n <span className=\"stepper-title\">{title}</span>\n {description && <span className=\"stepper-description\">{description}</span>}\n {optional && <span className=\"stepper-optional\">Optional</span>}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n","import {Children, isValidElement} from 'react'\nimport type {MTimelineProps, MTimelineItemProps} from './MTimeline.types'\nimport {cn} from '../../../utils/cn'\nimport './MTimeline.css'\n\nexport function MTimelineItem(_props: MTimelineItemProps) {\n return null\n}\n\nexport function MTimeline({\n align = 'left',\n color = 'primary',\n size = 'md',\n className,\n children,\n ...rest\n}: MTimelineProps) {\n const items = Children.toArray(children).filter(\n (child) => isValidElement(child) && (child.type as any) === MTimelineItem\n )\n\n return (\n <div className={cn('timeline', `align-${align}`, `color-${color}`, size, className)} {...rest}>\n {items.map((child, index) => {\n if (!isValidElement<MTimelineItemProps>(child)) return null\n const {id, title, description, date, icon, color: itemColor} = child.props\n const side = align === 'alternate' ? (index % 2 === 0 ? 'left' : 'right') : undefined\n\n return (\n <div key={id} className={cn('timeline-item', side && `side-${side}`)}>\n <div className={cn('timeline-dot', itemColor && `color-${itemColor}`)}>{icon}</div>\n <div className=\"timeline-content\">\n <span className=\"timeline-title\">{title}</span>\n {description && <span className=\"timeline-description\">{description}</span>}\n {date && <span className=\"timeline-date\">{date}</span>}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"display-D9H8MP8D.js","names":[],"sources":["../src/components/display/MCollapsible/MCollapsible.tsx","../src/components/display/MAccordion/MAccordion.tsx","../src/components/display/MProgressBar/MProgressBar.tsx","../src/components/display/MCountUp/MCountUp.tsx","../src/components/display/MCodeBlock/MCodeBlock.tsx","../src/components/display/MReveal/MReveal.tsx","../src/components/display/MTimeAgo/MTimeAgo.tsx","../src/components/display/MColorPicker/MColorPicker.tsx","../src/components/display/MEmptyState/MEmptyState.tsx","../src/components/display/MBlur/MBlur.tsx","../src/components/display/MStepper/MStepper.tsx","../src/components/display/MTimeline/MTimeline.tsx"],"sourcesContent":["import {useState} from 'react'\nimport {MButton} from '../../controls'\nimport {MStack} from '../../layout'\nimport {cn} from '../../../utils/cn'\nimport type {MCollapsibleProps} from './MCollapsible.types'\nimport {MChevronDownIcon} from '../../../icons'\nimport './MCollapsible.css'\n\n// MToggle a section of content with a built-in trigger and disclosure state.\nexport function MCollapsible({\n title,\n defaultOpen = false,\n open: controlledOpen,\n onToggle,\n color = 'primary',\n className,\n children,\n ...rest\n}: MCollapsibleProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n const handleToggle = () => {\n const nextOpen = !open\n\n if (controlledOpen === undefined) {\n setInternalOpen(nextOpen)\n }\n\n onToggle?.(nextOpen)\n }\n\n const chevronIcon = (\n <span className={cn('chevron', open && 'open')} aria-hidden=\"true\">\n <MChevronDownIcon />\n </span>\n )\n\n return (\n <div className={cn('collapsible', className)} {...rest}>\n <MButton\n variant=\"ghost\"\n color={color}\n className=\"trigger\"\n aria-expanded={open}\n onClick={handleToggle}\n endIcon={chevronIcon}\n >\n {title}\n </MButton>\n <div className={cn('content-wrap', open && 'open')} aria-hidden={!open}>\n <MStack className=\"content\">{children}</MStack>\n </div>\n </div>\n )\n}\n","import {useState, useCallback, Children, isValidElement} from 'react'\nimport {MCollapsible} from '../MCollapsible'\nimport {cn} from '../../../utils/cn'\nimport type {MAccordionProps, MAccordionItemProps} from './MAccordion.types'\nimport './MAccordion.css'\n\nexport function MAccordionItem(_props: MAccordionItemProps) {\n return null\n}\n\nexport function MAccordion({\n multiple = false,\n defaultOpen,\n onChange,\n bordered = false,\n color,\n className,\n children,\n ...rest\n}: MAccordionProps) {\n const initialOpen = Array.isArray(defaultOpen) ? defaultOpen : defaultOpen ? [defaultOpen] : []\n\n const [openIds, setOpenIds] = useState<string[]>(initialOpen)\n\n const handleToggle = useCallback(\n (id: string, isOpen: boolean) => {\n setOpenIds((prev) => {\n let next: string[]\n if (isOpen) {\n next = multiple ? [...prev, id] : [id]\n } else {\n next = prev.filter((v) => v !== id)\n }\n onChange?.(next)\n return next\n })\n },\n [multiple, onChange]\n )\n\n const items = Children.toArray(children).filter(\n (child) => isValidElement(child) && (child.type as any) === MAccordionItem\n )\n\n return (\n <div className={cn('accordion', bordered && 'bordered', className)} {...rest}>\n {items.map((child) => {\n if (!isValidElement<MAccordionItemProps>(child)) return null\n const {id, title, children: content, disabled, color: itemColor} = child.props\n const isOpen = openIds.includes(id)\n\n return (\n <div key={id} className={cn('accordion-item', disabled && 'disabled')}>\n <MCollapsible\n title={title}\n open={isOpen}\n onToggle={disabled ? undefined : (open) => handleToggle(id, open)}\n color={itemColor ?? color}\n >\n {content}\n </MCollapsible>\n </div>\n )\n })}\n </div>\n )\n}\n","import {useState, useEffect, useRef, useCallback} from 'react'\nimport type {MProgressBarProps} from './MProgressBar.types'\nimport {cn} from '../../../utils/cn'\nimport './MProgressBar.css'\n\nconst DURATION = 800\n\nfunction easeOutCubic(t: number) {\n return 1 - Math.pow(1 - t, 3)\n}\n\n// Render a horizontal bar that fills to represent progress as a percentage.\nexport function MProgressBar({\n value,\n max = 100,\n color = 'primary',\n size = 'md',\n label,\n showValue = false,\n animated = false,\n striped = false,\n className,\n ...rest\n}: MProgressBarProps) {\n const percent = Math.min(100, Math.max(0, (value / max) * 100))\n const [displayPercent, setDisplayPercent] = useState(0)\n const [barPercent, setBarPercent] = useState(0)\n const prevPercent = useRef(0)\n const rafRef = useRef(0)\n\n const animate = useCallback((from: number, to: number) => {\n cancelAnimationFrame(rafRef.current)\n const start = performance.now()\n\n const step = (now: number) => {\n const elapsed = now - start\n const progress = Math.min(elapsed / DURATION, 1)\n const eased = easeOutCubic(progress)\n const current = from + (to - from) * eased\n\n setDisplayPercent(current)\n if (progress < 1) {\n rafRef.current = requestAnimationFrame(step)\n }\n }\n\n // Set bar width immediately for CSS transition\n setBarPercent(to)\n rafRef.current = requestAnimationFrame(step)\n }, [])\n\n useEffect(() => {\n animate(prevPercent.current, percent)\n prevPercent.current = percent\n return () => cancelAnimationFrame(rafRef.current)\n }, [percent, animate])\n\n return (\n <div\n className={cn('progress-bar', `color-${color}`, size, className)}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label}\n {...rest}\n >\n {(label || showValue) && (\n <div className=\"progress-bar-header\">\n {label && <span className=\"progress-bar-label\">{label}</span>}\n {showValue && <span className=\"progress-bar-value\">{Math.round(displayPercent)}%</span>}\n </div>\n )}\n <div className=\"progress-bar-track\">\n <div\n className={cn('progress-bar-fill', animated && 'animated', striped && 'striped')}\n style={{width: `${barPercent}%`}}\n />\n </div>\n </div>\n )\n}\n","import {useState, useEffect, useRef} from 'react'\nimport type {MCountUpProps} from './MCountUp.types'\nimport {cn} from '../../../utils/cn'\n\n// Animate a number from a start value to a target, with an easing curve.\nexport function MCountUp({\n value,\n from = 0,\n duration = 1000,\n decimals = 0,\n prefix = '',\n suffix = '',\n separator = '',\n className,\n ...rest\n}: MCountUpProps) {\n const [display, setDisplay] = useState(from)\n const rafRef = useRef<number>(0)\n const startRef = useRef<number | null>(null)\n\n useEffect(() => {\n const startValue = display\n startRef.current = null\n\n const step = (timestamp: number) => {\n if (startRef.current === null) startRef.current = timestamp\n const elapsed = timestamp - startRef.current\n const progress = Math.min(elapsed / duration, 1)\n const eased = 1 - Math.pow(1 - progress, 3)\n const current = startValue + (value - startValue) * eased\n\n setDisplay(current)\n\n if (progress < 1) {\n rafRef.current = requestAnimationFrame(step)\n }\n }\n\n rafRef.current = requestAnimationFrame(step)\n return () => cancelAnimationFrame(rafRef.current)\n }, [value, duration])\n\n const formatted = formatNumber(display, decimals, separator)\n\n return (\n <span className={cn('count-up', className)} {...rest}>\n {prefix}\n {formatted}\n {suffix}\n </span>\n )\n}\n\nfunction formatNumber(num: number, decimals: number, separator: string): string {\n const fixed = num.toFixed(decimals)\n if (!separator) return fixed\n\n const [int, dec] = fixed.split('.')\n const withSep = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator)\n return dec !== undefined ? `${withSep}.${dec}` : withSep\n}\n","import {useEffect, useMemo, useRef, useState} from 'react'\nimport type {MCodeBlockProps} from './MCodeBlock.types'\nimport {MCard, MCardBody, MCardHeader} from '../../cards'\nimport {MButton} from '../../controls'\nimport {MBadge} from '../../feedback'\nimport {MInline} from '../../layout'\nimport {MText} from '../../typography'\nimport {MCopyIcon} from '../../../icons'\nimport {cn} from '../../../utils/cn'\nimport './MCodeBlock.css'\nimport type {HLJSApi, LanguageFn} from 'highlight.js'\n\nconst languageMap: Record<string, string> = {\n c: 'c',\n cpp: 'cpp',\n 'c++': 'cpp',\n arduino: 'arduino',\n ino: 'arduino',\n ts: 'typescript',\n typescript: 'typescript',\n tsx: 'tsx',\n js: 'javascript',\n javascript: 'javascript',\n jsx: 'jsx',\n json: 'json',\n css: 'css',\n html: 'html',\n markup: 'html',\n bash: 'bash',\n shell: 'bash',\n shellscript: 'bash',\n php: 'php',\n}\n\nconst languageLoaders: Record<string, () => Promise<{default: LanguageFn}>> = {\n xml: () => import('highlight.js/lib/languages/xml'),\n css: () => import('highlight.js/lib/languages/css'),\n javascript: () => import('highlight.js/lib/languages/javascript'),\n typescript: () => import('highlight.js/lib/languages/typescript'),\n json: () => import('highlight.js/lib/languages/json'),\n bash: () => import('highlight.js/lib/languages/bash'),\n c: () => import('highlight.js/lib/languages/c'),\n cpp: () => import('highlight.js/lib/languages/cpp'),\n arduino: () => import('highlight.js/lib/languages/arduino'),\n php: () => import('highlight.js/lib/languages/php'),\n}\n\nlet highlightJsPromise: Promise<HLJSApi> | null = null\nconst codeBlockTypingSpeed = 42\nconst codeBlockTypingStartDelay = 200\n\nfunction escapeHtml(value: string): string {\n return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')\n}\n\nfunction resolveLanguage(language: string): string {\n return languageMap[language] ?? language\n}\n\nasync function getHighlightJs(): Promise<HLJSApi> {\n if (!highlightJsPromise) {\n highlightJsPromise = (async () => {\n const highlightJsCore = (await import('highlight.js/lib/core')).default\n const highlightJs = highlightJsCore.newInstance()\n\n for (const [language, loadLanguage] of Object.entries(languageLoaders)) {\n const definition = await loadLanguage()\n highlightJs.registerLanguage(language, definition.default)\n }\n\n highlightJs.registerAliases(['shell', 'shellscript'], {languageName: 'bash'})\n highlightJs.registerAliases('markup', {languageName: 'xml'})\n\n return highlightJs\n })()\n }\n\n return highlightJsPromise\n}\n\n// Render a syntax-highlighted code block with optional card header and copy action.\nexport function MCodeBlock({\n code,\n language = 'tsx',\n title,\n showHeader = true,\n showLanguage = true,\n showCopyButton = true,\n copyLabel = 'Copy',\n copiedLabel = 'Copied',\n maxHeight,\n stretch = false,\n animated = false,\n lineNumbers = false,\n className,\n ...rest\n}: MCodeBlockProps) {\n const normalizedLanguage = useMemo(() => resolveLanguage(language.trim().toLowerCase()), [language])\n const [visibleLength, setVisibleLength] = useState(() => (animated ? 0 : code.length))\n const renderedCode = animated ? code.slice(0, visibleLength) : code\n const [highlightedCode, setHighlightedCode] = useState(() => escapeHtml(renderedCode))\n const [copied, setCopied] = useState(false)\n const copyTimeoutRef = useRef<number | null>(null)\n const typingTimeoutRef = useRef<number | null>(null)\n const scrollRef = useRef<HTMLDivElement | null>(null)\n const canCopy = typeof navigator !== 'undefined' && typeof navigator.clipboard?.writeText === 'function'\n const hasHeader = showHeader && (Boolean(title) || showLanguage || showCopyButton)\n const lineCount = useMemo(() => Math.max(1, renderedCode.split('\\n').length), [renderedCode])\n\n useEffect(() => {\n if (typingTimeoutRef.current !== null) {\n window.clearTimeout(typingTimeoutRef.current)\n typingTimeoutRef.current = null\n }\n\n setVisibleLength(animated ? 0 : code.length)\n }, [animated, code])\n\n useEffect(() => {\n if (!animated || code.length === 0) {\n return\n }\n\n if (visibleLength < code.length) {\n typingTimeoutRef.current = window.setTimeout(\n () => {\n setVisibleLength((current) => Math.min(current + 1, code.length))\n typingTimeoutRef.current = null\n },\n visibleLength === 0 ? codeBlockTypingStartDelay : codeBlockTypingSpeed\n )\n }\n\n return () => {\n if (typingTimeoutRef.current !== null) {\n window.clearTimeout(typingTimeoutRef.current)\n typingTimeoutRef.current = null\n }\n }\n }, [animated, code.length, visibleLength])\n\n useEffect(() => {\n let active = true\n\n async function highlightCode() {\n try {\n const highlightJs = await getHighlightJs()\n const languageDefinition = highlightJs.getLanguage(normalizedLanguage)\n const html = languageDefinition\n ? highlightJs.highlight(renderedCode, {\n language: normalizedLanguage,\n ignoreIllegals: true,\n }).value\n : escapeHtml(renderedCode)\n\n if (active) {\n setHighlightedCode(html)\n }\n } catch {\n if (active) {\n setHighlightedCode(escapeHtml(renderedCode))\n }\n }\n }\n\n void highlightCode()\n\n return () => {\n active = false\n }\n }, [normalizedLanguage, renderedCode])\n\n useEffect(() => {\n return () => {\n if (copyTimeoutRef.current !== null) {\n window.clearTimeout(copyTimeoutRef.current)\n }\n\n if (typingTimeoutRef.current !== null) {\n window.clearTimeout(typingTimeoutRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n if (!animated || !scrollRef.current) {\n return\n }\n\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight\n }, [animated, visibleLength])\n\n async function handleCopy() {\n if (!canCopy) {\n return\n }\n\n try {\n await navigator.clipboard.writeText(code)\n setCopied(true)\n\n if (copyTimeoutRef.current !== null) {\n window.clearTimeout(copyTimeoutRef.current)\n }\n\n copyTimeoutRef.current = window.setTimeout(() => {\n setCopied(false)\n copyTimeoutRef.current = null\n }, 1200)\n } catch {\n setCopied(false)\n }\n }\n\n return (\n <MCard className={cn('code-block-card', className)} {...rest} padded={false} stretch={stretch}>\n {hasHeader && (\n <MCardHeader className=\"code-block-header\">\n <MInline\n className=\"code-block-header-layout\"\n align=\"center\"\n justify=\"between\"\n wrap=\"nowrap\"\n px=\"lg\"\n py=\"md\"\n >\n <MInline className=\"code-block-header-meta\" align=\"center\" wrap=\"wrap\">\n {title && (\n <MText as=\"span\" className=\"code-block-title\" size=\"sm\" weight=\"semibold\">\n {title}\n </MText>\n )}\n {showLanguage && language && (\n <MBadge color=\"info\" size=\"sm\">\n {language}\n </MBadge>\n )}\n </MInline>\n {showCopyButton && (\n <MButton\n variant=\"ghost\"\n size=\"sm\"\n color=\"neutral\"\n startIcon={<MCopyIcon size=\"sm\" aria-hidden=\"true\" />}\n onClick={handleCopy}\n disabled={!canCopy}\n >\n {copied ? copiedLabel : copyLabel}\n </MButton>\n )}\n </MInline>\n </MCardHeader>\n )}\n\n <MCardBody className=\"code-block-body\">\n <div\n ref={scrollRef}\n className=\"code-block-scroll\"\n style={maxHeight ? {maxHeight, overflowY: 'auto'} : undefined}\n >\n <pre\n className={cn(\n 'code-block-pre',\n lineNumbers && 'with-line-numbers',\n `language-${normalizedLanguage}`\n )}\n >\n {lineNumbers && (\n <span className=\"code-block-line-numbers\" aria-hidden=\"true\">\n {Array.from({length: lineCount}, (_, index) => (\n <span key={index + 1} className=\"code-block-line-number\">\n {index + 1}\n </span>\n ))}\n </span>\n )}\n <span className=\"code-block-code-shell\">\n <code\n className={cn('code-block-code', 'hljs', `language-${normalizedLanguage}`)}\n dangerouslySetInnerHTML={{__html: highlightedCode}}\n />\n </span>\n </pre>\n </div>\n </MCardBody>\n </MCard>\n )\n}\n","import {useEffect, useRef} from 'react'\nimport type {CSSProperties} from 'react'\nimport type {MRevealProps} from './MReveal.types'\nimport {cn} from '../../../utils/cn'\n\nfunction getRevealOffset(direction: MRevealProps['direction'], distance: number) {\n switch (direction) {\n case 'down':\n return {x: 0, y: -distance}\n case 'left':\n return {x: distance, y: 0}\n case 'right':\n return {x: -distance, y: 0}\n case 'none':\n return {x: 0, y: 0}\n case 'up':\n default:\n return {x: 0, y: distance}\n }\n}\n\nexport function MReveal({\n children,\n direction = 'up',\n delay = 0,\n duration = 0.46,\n distance = 20,\n once = true,\n trigger = 'view',\n className,\n style,\n ...rest\n}: MRevealProps) {\n const revealRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const node = revealRef.current\n if (!node) {\n return\n }\n\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches\n\n node.classList.remove('revealed')\n\n if (prefersReducedMotion) {\n node.classList.add('revealed')\n return\n }\n\n if (trigger === 'mount') {\n const frame = window.requestAnimationFrame(() => {\n node.classList.add('revealed')\n })\n\n return () => window.cancelAnimationFrame(frame)\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n node.classList.add('revealed')\n if (once) {\n observer.disconnect()\n }\n } else if (!once) {\n node.classList.remove('revealed')\n }\n }\n },\n {threshold: 0.2}\n )\n\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [delay, direction, distance, duration, once, trigger])\n\n const offset = getRevealOffset(direction, distance)\n const revealStyle = {\n minWidth: 0,\n maxWidth: '100%',\n '--reveal-delay': `${delay}s`,\n '--reveal-duration': `${duration}s`,\n '--reveal-translate-x': `${offset.x}px`,\n '--reveal-translate-y': `${offset.y}px`,\n ...style,\n } as CSSProperties\n\n return (\n <div ref={revealRef} className={cn('reveal', className)} style={revealStyle} {...rest}>\n {children}\n </div>\n )\n}\n","import {useEffect, useMemo, useState} from 'react'\nimport type {MTimeAgoProps, MTimeAgoUpdate} from './MTimeAgo.types'\nimport {cn} from '../../../utils/cn'\nimport {useDocumentLocale} from '../../../utils/locale'\nimport {\n formatAbsoluteTime,\n formatRelativeTime,\n getAutoUpdateInterval,\n parseRelativeThreshold,\n toDate,\n} from '../../../utils/relativeTime'\nimport './MTimeAgo.css'\n\nfunction getUpdateInterval(update: MTimeAgoUpdate, value: Date | string | number, now: number): number | null {\n if (update === 'none') return null\n if (update === 'minute') return 60 * 1000\n if (update === 'hour') return 60 * 60 * 1000\n if (update === 'day') return 24 * 60 * 60 * 1000\n return getAutoUpdateInterval(value, now)\n}\n\nexport function MTimeAgo({\n value,\n locale: localeOverride,\n maxRelative,\n fallbackFormat = 'date',\n titleAbsolute = true,\n update = 'auto',\n className,\n ...rest\n}: MTimeAgoProps) {\n const locale = useDocumentLocale(localeOverride)\n const [now, setNow] = useState(() => Date.now())\n const interval = useMemo(() => getUpdateInterval(update, value, now), [now, update, value])\n\n useEffect(() => {\n if (!interval) return\n\n const id = window.setInterval(() => setNow(Date.now()), interval)\n return () => window.clearInterval(id)\n }, [interval])\n\n const date = useMemo(() => toDate(value), [value])\n const maxRelativeMs = useMemo(() => parseRelativeThreshold(maxRelative), [maxRelative])\n\n const absolute = useMemo(() => formatAbsoluteTime(value, locale, fallbackFormat), [value, locale, fallbackFormat])\n\n const content = useMemo(() => {\n if (!date) return String(value)\n\n const diff = Math.abs(date.getTime() - now)\n if (maxRelativeMs != null && diff > maxRelativeMs) {\n return absolute ?? String(value)\n }\n\n return formatRelativeTime(date, {locale, now}) ?? absolute ?? String(value)\n }, [absolute, date, locale, maxRelativeMs, now, value])\n\n return (\n <time\n className={cn('time ago', className)}\n dateTime={date?.toISOString()}\n title={titleAbsolute ? (absolute ?? undefined) : undefined}\n {...rest}\n >\n {content}\n </time>\n )\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport type * as React from 'react'\nimport type {MColorPickerProps} from './MColorPicker.types'\nimport {cn} from '../../../utils/cn'\nimport './MColorPicker.css'\n\nfunction hsvToHex(h: number, s: number, v: number): string {\n const f = (n: number) => {\n const k = (n + h / 60) % 6\n return v - v * s * Math.max(0, Math.min(k, 4 - k, 1))\n }\n const r = Math.round(f(5) * 255)\n const g = Math.round(f(3) * 255)\n const b = Math.round(f(1) * 255)\n return `#${[r, g, b].map((c) => c.toString(16).padStart(2, '0')).join('')}`\n}\n\nfunction hexToHsv(hex: string): [number, number, number] {\n const m = hex.replace('#', '').match(/.{2}/g)\n if (!m) return [0, 0, 1]\n const [r, g, b] = m.map((c) => parseInt(c, 16) / 255)\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const d = max - min\n let h = 0\n if (d !== 0) {\n if (max === r) h = ((g - b) / d + 6) % 6\n else if (max === g) h = (b - r) / d + 2\n else h = (r - g) / d + 4\n h *= 60\n }\n const s = max === 0 ? 0 : d / max\n return [h, s, max]\n}\n\nfunction hexToRgb(hex: string): string {\n const m = hex.replace('#', '').match(/.{2}/g)\n if (!m) return 'rgb(0, 0, 0)'\n const [r, g, b] = m.map((c) => parseInt(c, 16))\n return `rgb(${r}, ${g}, ${b})`\n}\n\nfunction hexToHsl(hex: string): string {\n const m = hex.replace('#', '').match(/.{2}/g)\n if (!m) return 'hsl(0, 0%, 0%)'\n const [r, g, b] = m.map((c) => parseInt(c, 16) / 255)\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n const l = (max + min) / 2\n let h = 0\n let s = 0\n if (max !== min) {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n if (max === r) h = ((g - b) / d + 6) % 6\n else if (max === g) h = (b - r) / d + 2\n else h = (r - g) / d + 4\n h *= 60\n }\n return `hsl(${Math.round(h)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`\n}\n\nfunction formatOutput(hex: string, format: string): string {\n if (format === 'rgb') return hexToRgb(hex)\n if (format === 'hsl') return hexToHsl(hex)\n return hex\n}\n\nfunction normalizeToHex(value: string): string {\n if (!value) return '#000000'\n if (value.startsWith('#')) return value.length === 7 ? value : '#000000'\n const rgbMatch = value.match(/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/)\n if (rgbMatch) {\n return `#${[rgbMatch[1], rgbMatch[2], rgbMatch[3]]\n .map((c) => parseInt(c).toString(16).padStart(2, '0'))\n .join('')}`\n }\n return '#000000'\n}\n\nconst DEFAULT_SWATCHES = [\n '#ef4444',\n '#f97316',\n '#eab308',\n '#22c55e',\n '#06b6d4',\n '#3b82f6',\n '#8b5cf6',\n '#ec4899',\n '#000000',\n '#ffffff',\n]\n\nexport function MColorPicker({\n value,\n onChange,\n swatches = DEFAULT_SWATCHES,\n format = 'hex',\n size = 'md',\n label,\n disabled = false,\n className,\n ...rest\n}: MColorPickerProps) {\n const hex = normalizeToHex(value ?? '#3b82f6')\n const [hsv, setHsv] = useState<[number, number, number]>(() => hexToHsv(hex))\n const [inputValue, setInputValue] = useState(formatOutput(hex, format))\n const areaRef = useRef<HTMLDivElement>(null)\n const hueRef = useRef<HTMLDivElement>(null)\n const dragging = useRef<'area' | 'hue' | null>(null)\n\n useEffect(() => {\n const newHex = normalizeToHex(value ?? '#3b82f6')\n setHsv(hexToHsv(newHex))\n setInputValue(formatOutput(newHex, format))\n }, [value, format])\n\n const emit = useCallback(\n (h: number, s: number, v: number) => {\n const newHex = hsvToHex(h, s, v)\n setHsv([h, s, v])\n setInputValue(formatOutput(newHex, format))\n onChange?.(formatOutput(newHex, format))\n },\n [onChange, format]\n )\n\n function handleAreaPointer(e: React.PointerEvent | PointerEvent) {\n const rect = areaRef.current?.getBoundingClientRect()\n if (!rect) return\n const s = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width))\n const v = Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height))\n emit(hsv[0], s, v)\n }\n\n function handleHuePointer(e: React.PointerEvent | PointerEvent) {\n const rect = hueRef.current?.getBoundingClientRect()\n if (!rect) return\n const h = Math.max(0, Math.min(360, ((e.clientX - rect.left) / rect.width) * 360))\n emit(h, hsv[1], hsv[2])\n }\n\n useEffect(() => {\n function onMove(e: PointerEvent) {\n if (dragging.current === 'area') handleAreaPointer(e)\n else if (dragging.current === 'hue') handleHuePointer(e)\n }\n function onUp() {\n dragging.current = null\n }\n window.addEventListener('pointermove', onMove)\n window.addEventListener('pointerup', onUp)\n return () => {\n window.removeEventListener('pointermove', onMove)\n window.removeEventListener('pointerup', onUp)\n }\n })\n\n function handleInputChange(val: string) {\n setInputValue(val)\n try {\n const h = normalizeToHex(val)\n if (h !== '#000000' || val === '#000000' || val.toLowerCase() === 'rgb(0, 0, 0)') {\n setHsv(hexToHsv(h))\n onChange?.(formatOutput(h, format))\n }\n } catch {\n // ignore invalid input while typing\n }\n }\n\n const currentHex = hsvToHex(hsv[0], hsv[1], hsv[2])\n\n return (\n <div className={cn('color-picker', size, disabled && 'disabled', className)} {...rest}>\n {label && <label className=\"label\">{label}</label>}\n\n <div\n ref={areaRef}\n className=\"area\"\n style={{background: `hsl(${hsv[0]}, 100%, 50%)`}}\n onPointerDown={(e) => {\n if (disabled) return\n dragging.current = 'area'\n handleAreaPointer(e)\n }}\n >\n <div className=\"white\" />\n <div className=\"black\" />\n <div\n className=\"cursor\"\n style={{\n left: `${hsv[1] * 100}%`,\n top: `${(1 - hsv[2]) * 100}%`,\n background: currentHex,\n }}\n />\n </div>\n\n <div\n ref={hueRef}\n className=\"hue\"\n onPointerDown={(e) => {\n if (disabled) return\n dragging.current = 'hue'\n handleHuePointer(e)\n }}\n >\n <div className=\"hue-thumb\" style={{left: `${(hsv[0] / 360) * 100}%`}} />\n </div>\n\n <div className=\"controls\">\n <div className=\"preview\" style={{background: currentHex}} />\n <input\n type=\"text\"\n className=\"input\"\n value={inputValue}\n onChange={(e) => handleInputChange(e.target.value)}\n disabled={disabled}\n />\n </div>\n\n {swatches.length > 0 && (\n <div className=\"swatches\">\n {swatches.map((swatch) => (\n <button\n key={swatch}\n type=\"button\"\n className={cn('swatch', currentHex.toLowerCase() === swatch.toLowerCase() && 'active')}\n style={{background: swatch}}\n onClick={() => {\n if (disabled) return\n const [h, s, v] = hexToHsv(swatch)\n emit(h, s, v)\n }}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n","import {isValidElement, cloneElement} from 'react'\nimport type {MEmptyStateProps} from './MEmptyState.types'\nimport {MButton} from '../../controls/MButton'\nimport {cn} from '../../../utils/cn'\nimport './MEmptyState.css'\n\nconst BUTTON_SIZE_MAP = {xs: 'xs', sm: 'sm', md: 'sm', lg: 'md', xl: 'lg'} as const\n\nexport function MEmptyState({\n icon,\n illustration,\n title,\n description,\n buttonText,\n onAction,\n color = 'neutral',\n size = 'md',\n className,\n children,\n ...rest\n}: MEmptyStateProps) {\n return (\n <div className={cn('empty-state', `color-${color}`, size, className)} {...rest}>\n {illustration && (\n <div className=\"empty-state-illustration\">\n {isValidElement(illustration) ? cloneElement(illustration, {color} as any) : illustration}\n </div>\n )}\n {!illustration && icon && <div className=\"empty-state-icon\">{icon}</div>}\n <div className=\"empty-state-content\">\n <div className=\"empty-state-title\">{title}</div>\n {description && <div className=\"empty-state-description\">{description}</div>}\n </div>\n {buttonText && onAction && (\n <div className=\"empty-state-action\">\n <MButton size={BUTTON_SIZE_MAP[size]} variant=\"outlined\" color={color} onClick={onAction}>\n {buttonText}\n </MButton>\n </div>\n )}\n {children}\n </div>\n )\n}\n","import {useCallback, useState} from 'react'\nimport type {CSSProperties, KeyboardEvent, MouseEvent} from 'react'\nimport type {MBlurProps} from './MBlur.types'\nimport {cn} from '../../../utils/cn'\nimport './MBlur.css'\n\n// Obscure inline content with a CSS blur filter until the viewer opts in to reveal it.\nexport function MBlur({\n children,\n amount = 6,\n reveal = 'hover',\n revealed,\n defaultRevealed = false,\n onToggle,\n inline = true,\n className,\n style,\n onClick,\n onKeyDown,\n ...rest\n}: MBlurProps) {\n const controlled = revealed !== undefined\n const [internal, setInternal] = useState(defaultRevealed)\n const isRevealed = controlled ? revealed : internal\n const interactive = reveal !== 'none'\n\n const setRevealed = useCallback(\n (next: boolean) => {\n if (!controlled) {\n setInternal(next)\n }\n onToggle?.(next)\n },\n [controlled, onToggle]\n )\n\n const handleClick = (event: MouseEvent<HTMLSpanElement>) => {\n if (reveal === 'click') {\n setRevealed(!isRevealed)\n }\n onClick?.(event)\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLSpanElement>) => {\n if (reveal === 'click' && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault()\n setRevealed(!isRevealed)\n }\n onKeyDown?.(event)\n }\n\n const mergedStyle: CSSProperties = {\n ...style,\n ['--mineral-blur-amount' as string]: `${amount}px`,\n }\n\n return (\n <span\n className={cn('blur', inline ? 'inline' : 'block', `reveal-${reveal}`, isRevealed && 'revealed', className)}\n style={mergedStyle}\n tabIndex={interactive && reveal === 'click' ? 0 : undefined}\n role={reveal === 'click' ? 'button' : undefined}\n aria-pressed={reveal === 'click' ? isRevealed : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <span className={'blur-inner'} aria-hidden={!isRevealed}>\n {children}\n </span>\n </span>\n )\n}\n","import {Children, isValidElement} from 'react'\nimport type {MStepperProps, MStepProps} from './MStepper.types'\nimport type {MSize} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MCheckIcon} from '../../../icons'\nimport './MStepper.css'\n\nconst CHECK_SIZE: Record<MSize, number> = {xs: 10, sm: 14, md: 18, lg: 22, xl: 28}\n\nexport function MStep(_props: MStepProps) {\n return null\n}\n\nexport function MStepper({\n activeStep,\n variant = 'horizontal',\n color = 'primary',\n size = 'md',\n clickable = false,\n onChange,\n className,\n children,\n ...rest\n}: MStepperProps) {\n const steps = Children.toArray(children).filter((child) => isValidElement(child) && (child.type as any) === MStep)\n\n return (\n <div className={cn('stepper', variant, `color-${color}`, size, className)} role=\"list\" {...rest}>\n {steps.map((child, index) => {\n if (!isValidElement<MStepProps>(child)) return null\n const {id, title, description, icon, disabled, optional, error} = child.props\n const isActive = index === activeStep\n const isCompleted = index < activeStep\n const isClickable = clickable && !disabled\n\n const handleClick = () => {\n if (isClickable && onChange) {\n onChange(index)\n }\n }\n\n return (\n <div\n key={id}\n className={cn(\n 'stepper-step',\n isActive && 'active',\n isCompleted && 'completed',\n disabled && 'disabled',\n error && 'error',\n isClickable && 'clickable'\n )}\n role=\"listitem\"\n aria-current={isActive ? 'step' : undefined}\n >\n <div\n className=\"stepper-indicator\"\n onClick={isClickable ? handleClick : undefined}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleClick()\n }\n }\n : undefined\n }\n >\n {error\n ? '!'\n : isCompleted\n ? (icon ?? <MCheckIcon size={CHECK_SIZE[size]} />)\n : (icon ?? index + 1)}\n </div>\n <div className=\"stepper-content\">\n <span className=\"stepper-title\">{title}</span>\n {description && <span className=\"stepper-description\">{description}</span>}\n {optional && <span className=\"stepper-optional\">Optional</span>}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n","import {Children, isValidElement} from 'react'\nimport type {MTimelineProps, MTimelineItemProps} from './MTimeline.types'\nimport {cn} from '../../../utils/cn'\nimport './MTimeline.css'\n\nexport function MTimelineItem(_props: MTimelineItemProps) {\n return null\n}\n\nexport function MTimeline({\n align = 'left',\n color = 'primary',\n size = 'md',\n className,\n children,\n ...rest\n}: MTimelineProps) {\n const items = Children.toArray(children).filter(\n (child) => isValidElement(child) && (child.type as any) === MTimelineItem\n )\n\n return (\n <div className={cn('timeline', `align-${align}`, `color-${color}`, size, className)} {...rest}>\n {items.map((child, index) => {\n if (!isValidElement<MTimelineItemProps>(child)) return null\n const {id, title, description, date, icon, color: itemColor} = child.props\n const side = align === 'alternate' ? (index % 2 === 0 ? 'left' : 'right') : undefined\n\n return (\n <div key={id} className={cn('timeline-item', side && `side-${side}`)}>\n <div className={cn('timeline-dot', itemColor && `color-${itemColor}`)}>{icon}</div>\n <div className=\"timeline-content\">\n <span className=\"timeline-title\">{title}</span>\n {description && <span className=\"timeline-description\">{description}</span>}\n {date && <span className=\"timeline-date\">{date}</span>}\n </div>\n </div>\n )\n })}\n </div>\n )\n}\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- const e=require(`./icons-DX_cScBq.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./relativeTime-DgYBUaVm.cjs`),r=require(`./MSurface-BS9l7GDH.cjs`),i=require(`./MText-Cjt1oTPr.cjs`),a=require(`./MButton-B8kFTOPJ.cjs`),o=require(`./MSkeleton-DyQBeuVT.cjs`),s=require(`./MStack-BdVvJN5S.cjs`),c=require(`./MCard-szs5kIek.cjs`),l=require(`./locale-C5ik0c3d.cjs`);require(`./core-o3cw16Db.cjs`);let u=require(`react`),d=require(`react/jsx-runtime`);function f({title:n,defaultOpen:r=!1,open:i,onToggle:o,color:c=`primary`,className:l,children:f,...p}){let[m,h]=(0,u.useState)(r),g=i??m,_=()=>{let e=!g;i===void 0&&h(e),o?.(e)},v=(0,d.jsx)(`span`,{className:t.t(`chevron`,g&&`open`),"aria-hidden":`true`,children:(0,d.jsx)(e.Hi,{})});return(0,d.jsxs)(`div`,{className:t.t(`collapsible`,l),...p,children:[(0,d.jsx)(a.t,{variant:`ghost`,color:c,className:`trigger`,"aria-expanded":g,onClick:_,endIcon:v,children:n}),(0,d.jsx)(`div`,{className:t.t(`content-wrap`,g&&`open`),"aria-hidden":!g,children:(0,d.jsx)(s.t,{className:`content`,children:f})})]})}function p(e){return null}function m({multiple:e=!1,defaultOpen:n,onChange:r,bordered:i=!1,color:a,className:o,children:s,...c}){let[l,m]=(0,u.useState)(Array.isArray(n)?n:n?[n]:[]),h=(0,u.useCallback)((t,n)=>{m(i=>{let a;return a=n?e?[...i,t]:[t]:i.filter(e=>e!==t),r?.(a),a})},[e,r]),g=u.Children.toArray(s).filter(e=>(0,u.isValidElement)(e)&&e.type===p);return(0,d.jsx)(`div`,{className:t.t(`accordion`,i&&`bordered`,o),...c,children:g.map(e=>{if(!(0,u.isValidElement)(e))return null;let{id:n,title:r,children:i,disabled:o,color:s}=e.props,c=l.includes(n);return(0,d.jsx)(`div`,{className:t.t(`accordion-item`,o&&`disabled`),children:(0,d.jsx)(f,{title:r,open:c,onToggle:o?void 0:e=>h(n,e),color:s??a,children:i})},n)})})}var h=800;function g(e){return 1-(1-e)**3}function _({value:e,max:n=100,color:r=`primary`,size:i=`md`,label:a,showValue:o=!1,animated:s=!1,striped:c=!1,className:l,...f}){let p=Math.min(100,Math.max(0,e/n*100)),[m,_]=(0,u.useState)(0),[v,y]=(0,u.useState)(0),b=(0,u.useRef)(0),x=(0,u.useRef)(0),S=(0,u.useCallback)((e,t)=>{cancelAnimationFrame(x.current);let n=performance.now(),r=i=>{let a=i-n,o=Math.min(a/h,1),s=g(o);_(e+(t-e)*s),o<1&&(x.current=requestAnimationFrame(r))};y(t),x.current=requestAnimationFrame(r)},[]);return(0,u.useEffect)(()=>(S(b.current,p),b.current=p,()=>cancelAnimationFrame(x.current)),[p,S]),(0,d.jsxs)(`div`,{className:t.t(`progress-bar`,`color-${r}`,i,l),role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":n,"aria-label":a,...f,children:[(a||o)&&(0,d.jsxs)(`div`,{className:`progress-bar-header`,children:[a&&(0,d.jsx)(`span`,{className:`progress-bar-label`,children:a}),o&&(0,d.jsxs)(`span`,{className:`progress-bar-value`,children:[Math.round(m),`%`]})]}),(0,d.jsx)(`div`,{className:`progress-bar-track`,children:(0,d.jsx)(`div`,{className:t.t(`progress-bar-fill`,s&&`animated`,c&&`striped`),style:{width:`${v}%`}})})]})}function v({value:e,from:n=0,duration:r=1e3,decimals:i=0,prefix:a=``,suffix:o=``,separator:s=``,className:c,...l}){let[f,p]=(0,u.useState)(n),m=(0,u.useRef)(0),h=(0,u.useRef)(null);(0,u.useEffect)(()=>{let t=f;h.current=null;let n=i=>{h.current===null&&(h.current=i);let a=i-h.current,o=Math.min(a/r,1),s=1-(1-o)**3;p(t+(e-t)*s),o<1&&(m.current=requestAnimationFrame(n))};return m.current=requestAnimationFrame(n),()=>cancelAnimationFrame(m.current)},[e,r]);let g=y(f,i,s);return(0,d.jsxs)(`span`,{className:t.t(`count-up`,c),...l,children:[a,g,o]})}function y(e,t,n){let r=e.toFixed(t);if(!n)return r;let[i,a]=r.split(`.`),o=i.replace(/\B(?=(\d{3})+(?!\d))/g,n);return a===void 0?o:`${o}.${a}`}var b={c:`c`,cpp:`cpp`,"c++":`cpp`,arduino:`arduino`,ino:`arduino`,ts:`typescript`,typescript:`typescript`,tsx:`tsx`,js:`javascript`,javascript:`javascript`,jsx:`jsx`,json:`json`,css:`css`,html:`html`,markup:`html`,bash:`bash`,shell:`bash`,shellscript:`bash`,php:`php`},x={xml:()=>Promise.resolve().then(()=>require(`./xml-BUuYcpx2.cjs`)),css:()=>Promise.resolve().then(()=>require(`./css-C2sjPfLl.cjs`)),javascript:()=>Promise.resolve().then(()=>require(`./javascript-BgwyrBZi.cjs`)),typescript:()=>Promise.resolve().then(()=>require(`./typescript-DeaMWtYF.cjs`)),json:()=>Promise.resolve().then(()=>require(`./json-DWmLrT_r.cjs`)),bash:()=>Promise.resolve().then(()=>require(`./bash-DObE5DDq.cjs`)),c:()=>Promise.resolve().then(()=>require(`./c-Bb-MtVny.cjs`)),cpp:()=>Promise.resolve().then(()=>require(`./cpp-BVKrJvso.cjs`)),arduino:()=>Promise.resolve().then(()=>require(`./arduino-CA8n1Qq3.cjs`)),php:()=>Promise.resolve().then(()=>require(`./php-CssmZWrI.cjs`))},S=null,C=42,w=200;function T(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function E(e){return b[e]??e}async function D(){return S||=(async()=>{let e=(await Promise.resolve().then(()=>require(`./core-o3cw16Db.cjs`))).default.newInstance();for(let[t,n]of Object.entries(x)){let r=await n();e.registerLanguage(t,r.default)}return e.registerAliases([`shell`,`shellscript`],{languageName:`bash`}),e.registerAliases(`markup`,{languageName:`xml`}),e})(),S}function O({code:n,language:s=`tsx`,title:l,showHeader:f=!0,showLanguage:p=!0,showCopyButton:m=!0,copyLabel:h=`Copy`,copiedLabel:g=`Copied`,maxHeight:_,stretch:v=!1,animated:y=!1,lineNumbers:b=!1,className:x,...S}){let O=(0,u.useMemo)(()=>E(s.trim().toLowerCase()),[s]),[k,A]=(0,u.useState)(()=>y?0:n.length),j=y?n.slice(0,k):n,[M,N]=(0,u.useState)(()=>T(j)),[P,F]=(0,u.useState)(!1),I=(0,u.useRef)(null),L=(0,u.useRef)(null),R=(0,u.useRef)(null),z=typeof navigator<`u`&&typeof navigator.clipboard?.writeText==`function`,B=f&&(!!l||p||m),V=(0,u.useMemo)(()=>Math.max(1,j.split(`
1
+ const e=require(`./icons-BfdQ45F2.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./relativeTime-DgYBUaVm.cjs`),r=require(`./MSurface-CYeVFOw_.cjs`),i=require(`./MText-j6Zbbj5Y.cjs`),a=require(`./MButton-R08y1HCT.cjs`),o=require(`./MSkeleton-CLSU5pL6.cjs`),s=require(`./MStack-BP_BUeCc.cjs`),c=require(`./MCard-1OVOl4Ql.cjs`),l=require(`./locale-CbnstsMH.cjs`);require(`./core-DBpQf3uY.cjs`);let u=require(`react`),d=require(`react/jsx-runtime`);function f({title:n,defaultOpen:r=!1,open:i,onToggle:o,color:c=`primary`,className:l,children:f,...p}){let[m,h]=(0,u.useState)(r),g=i??m,_=()=>{let e=!g;i===void 0&&h(e),o?.(e)},v=(0,d.jsx)(`span`,{className:t.t(`chevron`,g&&`open`),"aria-hidden":`true`,children:(0,d.jsx)(e.Hi,{})});return(0,d.jsxs)(`div`,{className:t.t(`collapsible`,l),...p,children:[(0,d.jsx)(a.t,{variant:`ghost`,color:c,className:`trigger`,"aria-expanded":g,onClick:_,endIcon:v,children:n}),(0,d.jsx)(`div`,{className:t.t(`content-wrap`,g&&`open`),"aria-hidden":!g,children:(0,d.jsx)(s.t,{className:`content`,children:f})})]})}function p(e){return null}function m({multiple:e=!1,defaultOpen:n,onChange:r,bordered:i=!1,color:a,className:o,children:s,...c}){let[l,m]=(0,u.useState)(Array.isArray(n)?n:n?[n]:[]),h=(0,u.useCallback)((t,n)=>{m(i=>{let a;return a=n?e?[...i,t]:[t]:i.filter(e=>e!==t),r?.(a),a})},[e,r]),g=u.Children.toArray(s).filter(e=>(0,u.isValidElement)(e)&&e.type===p);return(0,d.jsx)(`div`,{className:t.t(`accordion`,i&&`bordered`,o),...c,children:g.map(e=>{if(!(0,u.isValidElement)(e))return null;let{id:n,title:r,children:i,disabled:o,color:s}=e.props,c=l.includes(n);return(0,d.jsx)(`div`,{className:t.t(`accordion-item`,o&&`disabled`),children:(0,d.jsx)(f,{title:r,open:c,onToggle:o?void 0:e=>h(n,e),color:s??a,children:i})},n)})})}var h=800;function g(e){return 1-(1-e)**3}function _({value:e,max:n=100,color:r=`primary`,size:i=`md`,label:a,showValue:o=!1,animated:s=!1,striped:c=!1,className:l,...f}){let p=Math.min(100,Math.max(0,e/n*100)),[m,_]=(0,u.useState)(0),[v,y]=(0,u.useState)(0),b=(0,u.useRef)(0),x=(0,u.useRef)(0),S=(0,u.useCallback)((e,t)=>{cancelAnimationFrame(x.current);let n=performance.now(),r=i=>{let a=i-n,o=Math.min(a/h,1),s=g(o);_(e+(t-e)*s),o<1&&(x.current=requestAnimationFrame(r))};y(t),x.current=requestAnimationFrame(r)},[]);return(0,u.useEffect)(()=>(S(b.current,p),b.current=p,()=>cancelAnimationFrame(x.current)),[p,S]),(0,d.jsxs)(`div`,{className:t.t(`progress-bar`,`color-${r}`,i,l),role:`progressbar`,"aria-valuenow":e,"aria-valuemin":0,"aria-valuemax":n,"aria-label":a,...f,children:[(a||o)&&(0,d.jsxs)(`div`,{className:`progress-bar-header`,children:[a&&(0,d.jsx)(`span`,{className:`progress-bar-label`,children:a}),o&&(0,d.jsxs)(`span`,{className:`progress-bar-value`,children:[Math.round(m),`%`]})]}),(0,d.jsx)(`div`,{className:`progress-bar-track`,children:(0,d.jsx)(`div`,{className:t.t(`progress-bar-fill`,s&&`animated`,c&&`striped`),style:{width:`${v}%`}})})]})}function v({value:e,from:n=0,duration:r=1e3,decimals:i=0,prefix:a=``,suffix:o=``,separator:s=``,className:c,...l}){let[f,p]=(0,u.useState)(n),m=(0,u.useRef)(0),h=(0,u.useRef)(null);(0,u.useEffect)(()=>{let t=f;h.current=null;let n=i=>{h.current===null&&(h.current=i);let a=i-h.current,o=Math.min(a/r,1),s=1-(1-o)**3;p(t+(e-t)*s),o<1&&(m.current=requestAnimationFrame(n))};return m.current=requestAnimationFrame(n),()=>cancelAnimationFrame(m.current)},[e,r]);let g=y(f,i,s);return(0,d.jsxs)(`span`,{className:t.t(`count-up`,c),...l,children:[a,g,o]})}function y(e,t,n){let r=e.toFixed(t);if(!n)return r;let[i,a]=r.split(`.`),o=i.replace(/\B(?=(\d{3})+(?!\d))/g,n);return a===void 0?o:`${o}.${a}`}var b={c:`c`,cpp:`cpp`,"c++":`cpp`,arduino:`arduino`,ino:`arduino`,ts:`typescript`,typescript:`typescript`,tsx:`tsx`,js:`javascript`,javascript:`javascript`,jsx:`jsx`,json:`json`,css:`css`,html:`html`,markup:`html`,bash:`bash`,shell:`bash`,shellscript:`bash`,php:`php`},x={xml:()=>Promise.resolve().then(()=>require(`./xml-4YlaGgjP.cjs`)),css:()=>Promise.resolve().then(()=>require(`./css-D0f-qByc.cjs`)),javascript:()=>Promise.resolve().then(()=>require(`./javascript-CGjvHPZ1.cjs`)),typescript:()=>Promise.resolve().then(()=>require(`./typescript-D6PDzwkM.cjs`)),json:()=>Promise.resolve().then(()=>require(`./json-B8svQsK0.cjs`)),bash:()=>Promise.resolve().then(()=>require(`./bash-B17_F5Sw.cjs`)),c:()=>Promise.resolve().then(()=>require(`./c-ODLxeMV_.cjs`)),cpp:()=>Promise.resolve().then(()=>require(`./cpp-DuTgLZC1.cjs`)),arduino:()=>Promise.resolve().then(()=>require(`./arduino-DdDHMIWB.cjs`)),php:()=>Promise.resolve().then(()=>require(`./php-CKyelegh.cjs`))},S=null,C=42,w=200;function T(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function E(e){return b[e]??e}async function D(){return S||=(async()=>{let e=(await Promise.resolve().then(()=>require(`./core-DBpQf3uY.cjs`))).default.newInstance();for(let[t,n]of Object.entries(x)){let r=await n();e.registerLanguage(t,r.default)}return e.registerAliases([`shell`,`shellscript`],{languageName:`bash`}),e.registerAliases(`markup`,{languageName:`xml`}),e})(),S}function O({code:n,language:s=`tsx`,title:l,showHeader:f=!0,showLanguage:p=!0,showCopyButton:m=!0,copyLabel:h=`Copy`,copiedLabel:g=`Copied`,maxHeight:_,stretch:v=!1,animated:y=!1,lineNumbers:b=!1,className:x,...S}){let O=(0,u.useMemo)(()=>E(s.trim().toLowerCase()),[s]),[k,A]=(0,u.useState)(()=>y?0:n.length),j=y?n.slice(0,k):n,[M,N]=(0,u.useState)(()=>T(j)),[P,F]=(0,u.useState)(!1),I=(0,u.useRef)(null),L=(0,u.useRef)(null),R=(0,u.useRef)(null),z=typeof navigator<`u`&&typeof navigator.clipboard?.writeText==`function`,B=f&&(!!l||p||m),V=(0,u.useMemo)(()=>Math.max(1,j.split(`
2
2
  `).length),[j]);(0,u.useEffect)(()=>{L.current!==null&&(window.clearTimeout(L.current),L.current=null),A(y?0:n.length)},[y,n]),(0,u.useEffect)(()=>{if(!(!y||n.length===0))return k<n.length&&(L.current=window.setTimeout(()=>{A(e=>Math.min(e+1,n.length)),L.current=null},k===0?w:C)),()=>{L.current!==null&&(window.clearTimeout(L.current),L.current=null)}},[y,n.length,k]),(0,u.useEffect)(()=>{let e=!0;async function t(){try{let t=await D(),n=t.getLanguage(O)?t.highlight(j,{language:O,ignoreIllegals:!0}).value:T(j);e&&N(n)}catch{e&&N(T(j))}}return t(),()=>{e=!1}},[O,j]),(0,u.useEffect)(()=>()=>{I.current!==null&&window.clearTimeout(I.current),L.current!==null&&window.clearTimeout(L.current)},[]),(0,u.useEffect)(()=>{!y||!R.current||(R.current.scrollTop=R.current.scrollHeight)},[y,k]);async function H(){if(z)try{await navigator.clipboard.writeText(n),F(!0),I.current!==null&&window.clearTimeout(I.current),I.current=window.setTimeout(()=>{F(!1),I.current=null},1200)}catch{F(!1)}}return(0,d.jsxs)(c.t,{className:t.t(`code-block-card`,x),...S,padded:!1,stretch:v,children:[B&&(0,d.jsx)(c.i,{className:`code-block-header`,children:(0,d.jsxs)(r.n,{className:`code-block-header-layout`,align:`center`,justify:`between`,wrap:`nowrap`,px:`lg`,py:`md`,children:[(0,d.jsxs)(r.n,{className:`code-block-header-meta`,align:`center`,wrap:`wrap`,children:[l&&(0,d.jsx)(i.t,{as:`span`,className:`code-block-title`,size:`sm`,weight:`semibold`,children:l}),p&&s&&(0,d.jsx)(o.n,{color:`info`,size:`sm`,children:s})]}),m&&(0,d.jsx)(a.t,{variant:`ghost`,size:`sm`,color:`neutral`,startIcon:(0,d.jsx)(e.Kn,{size:`sm`,"aria-hidden":`true`}),onClick:H,disabled:!z,children:P?g:h})]})}),(0,d.jsx)(c.n,{className:`code-block-body`,children:(0,d.jsx)(`div`,{ref:R,className:`code-block-scroll`,style:_?{maxHeight:_,overflowY:`auto`}:void 0,children:(0,d.jsxs)(`pre`,{className:t.t(`code-block-pre`,b&&`with-line-numbers`,`language-${O}`),children:[b&&(0,d.jsx)(`span`,{className:`code-block-line-numbers`,"aria-hidden":`true`,children:Array.from({length:V},(e,t)=>(0,d.jsx)(`span`,{className:`code-block-line-number`,children:t+1},t+1))}),(0,d.jsx)(`span`,{className:`code-block-code-shell`,children:(0,d.jsx)(`code`,{className:t.t(`code-block-code`,`hljs`,`language-${O}`),dangerouslySetInnerHTML:{__html:M}})})]})})})]})}function k(e,t){switch(e){case`down`:return{x:0,y:-t};case`left`:return{x:t,y:0};case`right`:return{x:-t,y:0};case`none`:return{x:0,y:0};default:return{x:0,y:t}}}function A({children:e,direction:n=`up`,delay:r=0,duration:i=.46,distance:a=20,once:o=!0,trigger:s=`view`,className:c,style:l,...f}){let p=(0,u.useRef)(null);(0,u.useEffect)(()=>{let e=p.current;if(!e)return;let t=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;if(e.classList.remove(`revealed`),t){e.classList.add(`revealed`);return}if(s===`mount`){let t=window.requestAnimationFrame(()=>{e.classList.add(`revealed`)});return()=>window.cancelAnimationFrame(t)}let n=new IntersectionObserver(t=>{for(let r of t)r.isIntersecting?(e.classList.add(`revealed`),o&&n.disconnect()):o||e.classList.remove(`revealed`)},{threshold:.2});return n.observe(e),()=>n.disconnect()},[r,n,a,i,o,s]);let m=k(n,a),h={minWidth:0,maxWidth:`100%`,"--reveal-delay":`${r}s`,"--reveal-duration":`${i}s`,"--reveal-translate-x":`${m.x}px`,"--reveal-translate-y":`${m.y}px`,...l};return(0,d.jsx)(`div`,{ref:p,className:t.t(`reveal`,c),style:h,...f,children:e})}function j(e,t,r){return e===`none`?null:e===`minute`?60*1e3:e===`hour`?3600*1e3:e===`day`?1440*60*1e3:n.r(t,r)}function M({value:e,locale:r,maxRelative:i,fallbackFormat:a=`date`,titleAbsolute:o=!0,update:s=`auto`,className:c,...f}){let p=l.t(r),[m,h]=(0,u.useState)(()=>Date.now()),g=(0,u.useMemo)(()=>j(s,e,m),[m,s,e]);(0,u.useEffect)(()=>{if(!g)return;let e=window.setInterval(()=>h(Date.now()),g);return()=>window.clearInterval(e)},[g]);let _=(0,u.useMemo)(()=>n.o(e),[e]),v=(0,u.useMemo)(()=>n.a(i),[i]),y=(0,u.useMemo)(()=>n.t(e,p,a),[e,p,a]),b=(0,u.useMemo)(()=>{if(!_)return String(e);let t=Math.abs(_.getTime()-m);return v!=null&&t>v?y??String(e):n.n(_,{locale:p,now:m})??y??String(e)},[y,_,p,v,m,e]);return(0,d.jsx)(`time`,{className:t.t(`time ago`,c),dateTime:_?.toISOString(),title:o?y??void 0:void 0,...f,children:b})}function N(e,t,n){let r=r=>{let i=(r+e/60)%6;return n-n*t*Math.max(0,Math.min(i,4-i,1))};return`#${[Math.round(r(5)*255),Math.round(r(3)*255),Math.round(r(1)*255)].map(e=>e.toString(16).padStart(2,`0`)).join(``)}`}function P(e){let t=e.replace(`#`,``).match(/.{2}/g);if(!t)return[0,0,1];let[n,r,i]=t.map(e=>parseInt(e,16)/255),a=Math.max(n,r,i),o=a-Math.min(n,r,i),s=0;o!==0&&(s=a===n?((r-i)/o+6)%6:a===r?(i-n)/o+2:(n-r)/o+4,s*=60);let c=a===0?0:o/a;return[s,c,a]}function F(e){let t=e.replace(`#`,``).match(/.{2}/g);if(!t)return`rgb(0, 0, 0)`;let[n,r,i]=t.map(e=>parseInt(e,16));return`rgb(${n}, ${r}, ${i})`}function I(e){let t=e.replace(`#`,``).match(/.{2}/g);if(!t)return`hsl(0, 0%, 0%)`;let[n,r,i]=t.map(e=>parseInt(e,16)/255),a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=0,l=0;if(a!==o){let e=a-o;l=s>.5?e/(2-a-o):e/(a+o),c=a===n?((r-i)/e+6)%6:a===r?(i-n)/e+2:(n-r)/e+4,c*=60}return`hsl(${Math.round(c)}, ${Math.round(l*100)}%, ${Math.round(s*100)}%)`}function L(e,t){return t===`rgb`?F(e):t===`hsl`?I(e):e}function R(e){if(!e)return`#000000`;if(e.startsWith(`#`))return e.length===7?e:`#000000`;let t=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);return t?`#${[t[1],t[2],t[3]].map(e=>parseInt(e).toString(16).padStart(2,`0`)).join(``)}`:`#000000`}var z=[`#ef4444`,`#f97316`,`#eab308`,`#22c55e`,`#06b6d4`,`#3b82f6`,`#8b5cf6`,`#ec4899`,`#000000`,`#ffffff`];function B({value:e,onChange:n,swatches:r=z,format:i=`hex`,size:a=`md`,label:o,disabled:s=!1,className:c,...l}){let f=R(e??`#3b82f6`),[p,m]=(0,u.useState)(()=>P(f)),[h,g]=(0,u.useState)(L(f,i)),_=(0,u.useRef)(null),v=(0,u.useRef)(null),y=(0,u.useRef)(null);(0,u.useEffect)(()=>{let t=R(e??`#3b82f6`);m(P(t)),g(L(t,i))},[e,i]);let b=(0,u.useCallback)((e,t,r)=>{let a=N(e,t,r);m([e,t,r]),g(L(a,i)),n?.(L(a,i))},[n,i]);function x(e){let t=_.current?.getBoundingClientRect();if(!t)return;let n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width)),r=Math.max(0,Math.min(1,1-(e.clientY-t.top)/t.height));b(p[0],n,r)}function S(e){let t=v.current?.getBoundingClientRect();t&&b(Math.max(0,Math.min(360,(e.clientX-t.left)/t.width*360)),p[1],p[2])}(0,u.useEffect)(()=>{function e(e){y.current===`area`?x(e):y.current===`hue`&&S(e)}function t(){y.current=null}return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}});function C(e){g(e);try{let t=R(e);(t!==`#000000`||e===`#000000`||e.toLowerCase()===`rgb(0, 0, 0)`)&&(m(P(t)),n?.(L(t,i)))}catch{}}let w=N(p[0],p[1],p[2]);return(0,d.jsxs)(`div`,{className:t.t(`color-picker`,a,s&&`disabled`,c),...l,children:[o&&(0,d.jsx)(`label`,{className:`label`,children:o}),(0,d.jsxs)(`div`,{ref:_,className:`area`,style:{background:`hsl(${p[0]}, 100%, 50%)`},onPointerDown:e=>{s||(y.current=`area`,x(e))},children:[(0,d.jsx)(`div`,{className:`white`}),(0,d.jsx)(`div`,{className:`black`}),(0,d.jsx)(`div`,{className:`cursor`,style:{left:`${p[1]*100}%`,top:`${(1-p[2])*100}%`,background:w}})]}),(0,d.jsx)(`div`,{ref:v,className:`hue`,onPointerDown:e=>{s||(y.current=`hue`,S(e))},children:(0,d.jsx)(`div`,{className:`hue-thumb`,style:{left:`${p[0]/360*100}%`}})}),(0,d.jsxs)(`div`,{className:`controls`,children:[(0,d.jsx)(`div`,{className:`preview`,style:{background:w}}),(0,d.jsx)(`input`,{type:`text`,className:`input`,value:h,onChange:e=>C(e.target.value),disabled:s})]}),r.length>0&&(0,d.jsx)(`div`,{className:`swatches`,children:r.map(e=>(0,d.jsx)(`button`,{type:`button`,className:t.t(`swatch`,w.toLowerCase()===e.toLowerCase()&&`active`),style:{background:e},onClick:()=>{if(s)return;let[t,n,r]=P(e);b(t,n,r)}},e))})]})}var V={xs:`xs`,sm:`sm`,md:`sm`,lg:`md`,xl:`lg`};function H({icon:e,illustration:n,title:r,description:i,buttonText:o,onAction:s,color:c=`neutral`,size:l=`md`,className:f,children:p,...m}){return(0,d.jsxs)(`div`,{className:t.t(`empty-state`,`color-${c}`,l,f),...m,children:[n&&(0,d.jsx)(`div`,{className:`empty-state-illustration`,children:(0,u.isValidElement)(n)?(0,u.cloneElement)(n,{color:c}):n}),!n&&e&&(0,d.jsx)(`div`,{className:`empty-state-icon`,children:e}),(0,d.jsxs)(`div`,{className:`empty-state-content`,children:[(0,d.jsx)(`div`,{className:`empty-state-title`,children:r}),i&&(0,d.jsx)(`div`,{className:`empty-state-description`,children:i})]}),o&&s&&(0,d.jsx)(`div`,{className:`empty-state-action`,children:(0,d.jsx)(a.t,{size:V[l],variant:`outlined`,color:c,onClick:s,children:o})}),p]})}function U({children:e,amount:n=6,reveal:r=`hover`,revealed:i,defaultRevealed:a=!1,onToggle:o,inline:s=!0,className:c,style:l,onClick:f,onKeyDown:p,...m}){let h=i!==void 0,[g,_]=(0,u.useState)(a),v=h?i:g,y=r!==`none`,b=(0,u.useCallback)(e=>{h||_(e),o?.(e)},[h,o]),x=e=>{r===`click`&&b(!v),f?.(e)},S=e=>{r===`click`&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),b(!v)),p?.(e)},C={...l,"--mineral-blur-amount":`${n}px`};return(0,d.jsx)(`span`,{className:t.t(`blur`,s?`inline`:`block`,`reveal-${r}`,v&&`revealed`,c),style:C,tabIndex:y&&r===`click`?0:void 0,role:r===`click`?`button`:void 0,"aria-pressed":r===`click`?v:void 0,onClick:x,onKeyDown:S,...m,children:(0,d.jsx)(`span`,{className:`blur-inner`,"aria-hidden":!v,children:e})})}var W={xs:10,sm:14,md:18,lg:22,xl:28};function G(e){return null}function K({activeStep:n,variant:r=`horizontal`,color:i=`primary`,size:a=`md`,clickable:o=!1,onChange:s,className:c,children:l,...f}){let p=u.Children.toArray(l).filter(e=>(0,u.isValidElement)(e)&&e.type===G);return(0,d.jsx)(`div`,{className:t.t(`stepper`,r,`color-${i}`,a,c),role:`list`,...f,children:p.map((r,i)=>{if(!(0,u.isValidElement)(r))return null;let{id:c,title:l,description:f,icon:p,disabled:m,optional:h,error:g}=r.props,_=i===n,v=i<n,y=o&&!m,b=()=>{y&&s&&s(i)};return(0,d.jsxs)(`div`,{className:t.t(`stepper-step`,_&&`active`,v&&`completed`,m&&`disabled`,g&&`error`,y&&`clickable`),role:`listitem`,"aria-current":_?`step`:void 0,children:[(0,d.jsx)(`div`,{className:`stepper-indicator`,onClick:y?b:void 0,role:y?`button`:void 0,tabIndex:y?0:void 0,onKeyDown:y?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),b())}:void 0,children:g?`!`:v?p??(0,d.jsx)(e.Gi,{size:W[a]}):p??i+1}),(0,d.jsxs)(`div`,{className:`stepper-content`,children:[(0,d.jsx)(`span`,{className:`stepper-title`,children:l}),f&&(0,d.jsx)(`span`,{className:`stepper-description`,children:f}),h&&(0,d.jsx)(`span`,{className:`stepper-optional`,children:`Optional`})]})]},c)})})}function q(e){return null}function J({align:e=`left`,color:n=`primary`,size:r=`md`,className:i,children:a,...o}){let s=u.Children.toArray(a).filter(e=>(0,u.isValidElement)(e)&&e.type===q);return(0,d.jsx)(`div`,{className:t.t(`timeline`,`align-${e}`,`color-${n}`,r,i),...o,children:s.map((n,r)=>{if(!(0,u.isValidElement)(n))return null;let{id:i,title:a,description:o,date:s,icon:c,color:l}=n.props,f=e===`alternate`?r%2==0?`left`:`right`:void 0;return(0,d.jsxs)(`div`,{className:t.t(`timeline-item`,f&&`side-${f}`),children:[(0,d.jsx)(`div`,{className:t.t(`timeline-dot`,l&&`color-${l}`),children:c}),(0,d.jsxs)(`div`,{className:`timeline-content`,children:[(0,d.jsx)(`span`,{className:`timeline-title`,children:a}),o&&(0,d.jsx)(`span`,{className:`timeline-description`,children:o}),s&&(0,d.jsx)(`span`,{className:`timeline-date`,children:s})]})]},i)})})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return O}});
3
- //# sourceMappingURL=display-BgZbdTDd.cjs.map
3
+ //# sourceMappingURL=display-IMWtdmxS.cjs.map