@banzamel/mineralui 2.4.0 → 2.4.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 (227) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-xI5aZ-bP.cjs → MAvatar-Capz5Gbc.cjs} +2 -2
  3. package/dist/{MAvatar-xI5aZ-bP.cjs.map → MAvatar-Capz5Gbc.cjs.map} +1 -1
  4. package/dist/{MButton-CMbmWmMI.cjs → MButton-sTKnano6.cjs} +2 -2
  5. package/dist/{MButton-CMbmWmMI.cjs.map → MButton-sTKnano6.cjs.map} +1 -1
  6. package/dist/{MButtonGroup-agnKWUPy.cjs → MButtonGroup-iPv14c0V.cjs} +2 -2
  7. package/dist/{MButtonGroup-agnKWUPy.cjs.map → MButtonGroup-iPv14c0V.cjs.map} +1 -1
  8. package/dist/{MCard-CADu7UUA.cjs → MCard-DK-_FkpE.cjs} +2 -2
  9. package/dist/{MCard-CADu7UUA.cjs.map → MCard-DK-_FkpE.cjs.map} +1 -1
  10. package/dist/{MCheckbox-stBujis6.cjs → MCheckbox-CIX7wp41.cjs} +2 -2
  11. package/dist/{MCheckbox-stBujis6.cjs.map → MCheckbox-CIX7wp41.cjs.map} +1 -1
  12. package/dist/MConflictIllustration-CZ3Md38Z.cjs +2 -0
  13. package/dist/MConflictIllustration-CZ3Md38Z.cjs.map +1 -0
  14. package/dist/{MConflictIllustration-Drsm8_8C.js → MConflictIllustration-znC7ijmP.js} +70 -70
  15. package/dist/MConflictIllustration-znC7ijmP.js.map +1 -0
  16. package/dist/{MDetailList-CQ2sJ7Jl.cjs → MDetailList-Ce7KzUKC.cjs} +2 -2
  17. package/dist/{MDetailList-CQ2sJ7Jl.cjs.map → MDetailList-Ce7KzUKC.cjs.map} +1 -1
  18. package/dist/{MDropdownMenu-DAzieAOs.cjs → MDropdownMenu-B_QWQhxy.cjs} +2 -2
  19. package/dist/{MDropdownMenu-DAzieAOs.cjs.map → MDropdownMenu-B_QWQhxy.cjs.map} +1 -1
  20. package/dist/{MDropdownMenu-B7RR8d8x.js → MDropdownMenu-C4CuKMRZ.js} +1 -1
  21. package/dist/{MDropdownMenu-B7RR8d8x.js.map → MDropdownMenu-C4CuKMRZ.js.map} +1 -1
  22. package/dist/{MGrid-LHi7TY5J.cjs → MGrid-fTx6wFq_.cjs} +2 -2
  23. package/dist/{MGrid-LHi7TY5J.cjs.map → MGrid-fTx6wFq_.cjs.map} +1 -1
  24. package/dist/{MHeading-7yt1C6oS.cjs → MHeading-KDSpnCof.cjs} +2 -2
  25. package/dist/{MHeading-7yt1C6oS.cjs.map → MHeading-KDSpnCof.cjs.map} +1 -1
  26. package/dist/{MI18nProvider-Cx4ZaFtv.cjs → MI18nProvider-DXRbB0VY.cjs} +2 -2
  27. package/dist/{MI18nProvider-Cx4ZaFtv.cjs.map → MI18nProvider-DXRbB0VY.cjs.map} +1 -1
  28. package/dist/{MInput-BSeWCsPi.cjs → MInput-CGl2Q-rM.cjs} +2 -2
  29. package/dist/{MInput-BSeWCsPi.cjs.map → MInput-CGl2Q-rM.cjs.map} +1 -1
  30. package/dist/{MInputCVC-CtHPCx_r.js → MInputCVC-Blv5PeyS.js} +2 -2
  31. package/dist/{MInputCVC-CtHPCx_r.js.map → MInputCVC-Blv5PeyS.js.map} +1 -1
  32. package/dist/{MInputCVC-rNs8w4gH.cjs → MInputCVC-lAFKTV6y.cjs} +2 -2
  33. package/dist/{MInputCVC-rNs8w4gH.cjs.map → MInputCVC-lAFKTV6y.cjs.map} +1 -1
  34. package/dist/{MInputSearch-BfPPgEGZ.cjs → MInputSearch-BZDnbFB4.cjs} +2 -2
  35. package/dist/{MInputSearch-BfPPgEGZ.cjs.map → MInputSearch-BZDnbFB4.cjs.map} +1 -1
  36. package/dist/{MKbd-C6XHWlmE.cjs → MKbd-DqMnZ7Iv.cjs} +2 -2
  37. package/dist/{MKbd-C6XHWlmE.cjs.map → MKbd-DqMnZ7Iv.cjs.map} +1 -1
  38. package/dist/{MLink-CbaDlP5I.cjs → MLink-U24G6KJj.cjs} +2 -2
  39. package/dist/{MLink-CbaDlP5I.cjs.map → MLink-U24G6KJj.cjs.map} +1 -1
  40. package/dist/{MLoader-DELAIhz5.cjs → MLoader-CvFIvytw.cjs} +2 -2
  41. package/dist/{MLoader-DELAIhz5.cjs.map → MLoader-CvFIvytw.cjs.map} +1 -1
  42. package/dist/{MPagination-CgmNEAZX.js → MPagination-BkvOEZpp.js} +1 -1
  43. package/dist/{MPagination-CgmNEAZX.js.map → MPagination-BkvOEZpp.js.map} +1 -1
  44. package/dist/{MPagination-C2lpvPqC.cjs → MPagination-DgQta29Q.cjs} +2 -2
  45. package/dist/{MPagination-C2lpvPqC.cjs.map → MPagination-DgQta29Q.cjs.map} +1 -1
  46. package/dist/{MPopover-DI_7niwe.cjs → MPopover-C-e1CoV0.cjs} +2 -2
  47. package/dist/{MPopover-DI_7niwe.cjs.map → MPopover-C-e1CoV0.cjs.map} +1 -1
  48. package/dist/{MPortal-C9Ucq8Um.cjs → MPortal-DUSIuINN.cjs} +2 -2
  49. package/dist/{MPortal-C9Ucq8Um.cjs.map → MPortal-DUSIuINN.cjs.map} +1 -1
  50. package/dist/{MSimpleGrid-K-8Qg9em.cjs → MSimpleGrid-BzlIitcJ.cjs} +2 -2
  51. package/dist/{MSimpleGrid-K-8Qg9em.cjs.map → MSimpleGrid-BzlIitcJ.cjs.map} +1 -1
  52. package/dist/{MSkeleton-DgU8aktI.cjs → MSkeleton-BoFpowFU.cjs} +2 -2
  53. package/dist/{MSkeleton-DgU8aktI.cjs.map → MSkeleton-BoFpowFU.cjs.map} +1 -1
  54. package/dist/{MSlider-0ApojrDC.cjs → MSlider-BTDBqF8t.cjs} +2 -2
  55. package/dist/{MSlider-0ApojrDC.cjs.map → MSlider-BTDBqF8t.cjs.map} +1 -1
  56. package/dist/{MStack-BOOciEts.cjs → MStack-B3Ldqsc-.cjs} +2 -2
  57. package/dist/{MStack-BOOciEts.cjs.map → MStack-B3Ldqsc-.cjs.map} +1 -1
  58. package/dist/{MSubText-WixraICV.cjs → MSubText-47PsgE8T.cjs} +2 -2
  59. package/dist/{MSubText-WixraICV.cjs.map → MSubText-47PsgE8T.cjs.map} +1 -1
  60. package/dist/{MSurface-CF8BFFn4.cjs → MSurface-QYEygc_0.cjs} +2 -2
  61. package/dist/{MSurface-CF8BFFn4.cjs.map → MSurface-QYEygc_0.cjs.map} +1 -1
  62. package/dist/{MTag-CgXh2PQC.cjs → MTag-BjV-dXkk.cjs} +2 -2
  63. package/dist/{MTag-CgXh2PQC.cjs.map → MTag-BjV-dXkk.cjs.map} +1 -1
  64. package/dist/{MText-CDDEGjBx.cjs → MText-Dni707tS.cjs} +2 -2
  65. package/dist/{MText-CDDEGjBx.cjs.map → MText-Dni707tS.cjs.map} +1 -1
  66. package/dist/{MTooltip-BWqyv6QU.cjs → MTooltip-ChvuN4Ow.cjs} +2 -2
  67. package/dist/{MTooltip-BWqyv6QU.cjs.map → MTooltip-ChvuN4Ow.cjs.map} +1 -1
  68. package/dist/{MTooltip-BTJkzOah.js → MTooltip-H3we0a7w.js} +1 -1
  69. package/dist/{MTooltip-BTJkzOah.js.map → MTooltip-H3we0a7w.js.map} +1 -1
  70. package/dist/{MTreeView-BcVw0Bgz.cjs → MTreeView-VYp0eErQ.cjs} +2 -2
  71. package/dist/{MTreeView-BcVw0Bgz.cjs.map → MTreeView-VYp0eErQ.cjs.map} +1 -1
  72. package/dist/{arduino-Bedph8hQ.cjs → arduino-BdpdaLwK.cjs} +1 -1
  73. package/dist/{arduino-Bedph8hQ.cjs.map → arduino-BdpdaLwK.cjs.map} +1 -1
  74. package/dist/{arduino-BHobW-W2.js → arduino-DDDlP9Yt.js} +1 -1
  75. package/dist/{arduino-BHobW-W2.js.map → arduino-DDDlP9Yt.js.map} +1 -1
  76. package/dist/{bash-oKnFbgn1.js → bash-D8WbAmuA.js} +1 -1
  77. package/dist/{bash-oKnFbgn1.js.map → bash-D8WbAmuA.js.map} +1 -1
  78. package/dist/{bash-CK4DSkpy.cjs → bash-eOUFh3S1.cjs} +1 -1
  79. package/dist/{bash-CK4DSkpy.cjs.map → bash-eOUFh3S1.cjs.map} +1 -1
  80. package/dist/{c-9Uw9QchT.cjs → c-Bur7Mn-u.cjs} +1 -1
  81. package/dist/{c-9Uw9QchT.cjs.map → c-Bur7Mn-u.cjs.map} +1 -1
  82. package/dist/{c-Bjn-r6WZ.js → c-CTKNfUJI.js} +1 -1
  83. package/dist/{c-Bjn-r6WZ.js.map → c-CTKNfUJI.js.map} +1 -1
  84. package/dist/calendar-P7MwKfWS.cjs +2 -0
  85. package/dist/{calendar-BFfeWRa0.cjs.map → calendar-P7MwKfWS.cjs.map} +1 -1
  86. package/dist/{calendar-DhRP5_mS.js → calendar-bzeZRst9.js} +59 -58
  87. package/dist/{calendar-DhRP5_mS.js.map → calendar-bzeZRst9.js.map} +1 -1
  88. package/dist/calendar.cjs +1 -1
  89. package/dist/calendar.js +1 -1
  90. package/dist/calendarDates-AnlGcvZM.cjs +2 -0
  91. package/dist/calendarDates-AnlGcvZM.cjs.map +1 -0
  92. package/dist/calendarDates-CYkJqcnp.js +50 -0
  93. package/dist/calendarDates-CYkJqcnp.js.map +1 -0
  94. package/dist/{cards-Dus8TmSD.js → cards-CFDJsdxR.js} +4 -4
  95. package/dist/{cards-Dus8TmSD.js.map → cards-CFDJsdxR.js.map} +1 -1
  96. package/dist/{cards-Bwos44EP.cjs → cards-DeA7I2KC.cjs} +2 -2
  97. package/dist/{cards-Bwos44EP.cjs.map → cards-DeA7I2KC.cjs.map} +1 -1
  98. package/dist/cards.cjs +1 -1
  99. package/dist/cards.js +1 -1
  100. package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -4
  101. package/dist/{controls-CeHdKaQv.cjs → controls-KK-TyUTT.cjs} +2 -2
  102. package/dist/{controls-CeHdKaQv.cjs.map → controls-KK-TyUTT.cjs.map} +1 -1
  103. package/dist/controls.cjs +1 -1
  104. package/dist/{core-CMHNXulE.js → core-D5-SQcs8.js} +1 -1
  105. package/dist/{core-CMHNXulE.js.map → core-D5-SQcs8.js.map} +1 -1
  106. package/dist/{core-CLRD6sG4.cjs → core-D66c1_Wo.cjs} +1 -1
  107. package/dist/{core-CLRD6sG4.cjs.map → core-D66c1_Wo.cjs.map} +1 -1
  108. package/dist/{cpp-BWqMcMeX.cjs → cpp-BMULAf-B.cjs} +1 -1
  109. package/dist/{cpp-BWqMcMeX.cjs.map → cpp-BMULAf-B.cjs.map} +1 -1
  110. package/dist/{cpp-b3FmFTKl.js → cpp-DAzz2TpY.js} +1 -1
  111. package/dist/{cpp-b3FmFTKl.js.map → cpp-DAzz2TpY.js.map} +1 -1
  112. package/dist/{css-B4MkxW0b.cjs → css-9M03GzKO.cjs} +1 -1
  113. package/dist/{css-B4MkxW0b.cjs.map → css-9M03GzKO.cjs.map} +1 -1
  114. package/dist/{css-8EzLAJKV.js → css-EGOXTWIl.js} +1 -1
  115. package/dist/{css-8EzLAJKV.js.map → css-EGOXTWIl.js.map} +1 -1
  116. package/dist/{data-Dh3C_VTi.js → data-CgLutFxU.js} +245 -230
  117. package/dist/data-CgLutFxU.js.map +1 -0
  118. package/dist/data-DFrkJTlF.cjs +2 -0
  119. package/dist/data-DFrkJTlF.cjs.map +1 -0
  120. package/dist/data.cjs +1 -1
  121. package/dist/data.js +1 -1
  122. package/dist/{display-DU9E_18w.cjs → display--E7rI0tk.cjs} +2 -2
  123. package/dist/{display-DU9E_18w.cjs.map → display--E7rI0tk.cjs.map} +1 -1
  124. package/dist/{display-CYC1AImx.js → display-BnkHKW1n.js} +12 -12
  125. package/dist/{display-CYC1AImx.js.map → display-BnkHKW1n.js.map} +1 -1
  126. package/dist/display.cjs +1 -1
  127. package/dist/display.js +1 -1
  128. package/dist/dropdowns-DGYg9zIh.cjs +2 -0
  129. package/dist/{dropdowns-vaj6vhl6.cjs.map → dropdowns-DGYg9zIh.cjs.map} +1 -1
  130. package/dist/{dropdowns-ByDu8Wbt.js → dropdowns-Dq-xAplH.js} +12 -11
  131. package/dist/{dropdowns-ByDu8Wbt.js.map → dropdowns-Dq-xAplH.js.map} +1 -1
  132. package/dist/dropdowns.cjs +1 -1
  133. package/dist/dropdowns.js +1 -1
  134. package/dist/{feedback-CUGuh4QZ.cjs → feedback-CA77ShtB.cjs} +2 -2
  135. package/dist/{feedback-CUGuh4QZ.cjs.map → feedback-CA77ShtB.cjs.map} +1 -1
  136. package/dist/feedback.cjs +1 -1
  137. package/dist/{form-Dri4AzY9.js → form-CAFcvmUS.js} +1 -1
  138. package/dist/{form-Dri4AzY9.js.map → form-CAFcvmUS.js.map} +1 -1
  139. package/dist/{form-DICGXS6_.cjs → form-DpfzLUOn.cjs} +2 -2
  140. package/dist/{form-DICGXS6_.cjs.map → form-DpfzLUOn.cjs.map} +1 -1
  141. package/dist/form.cjs +1 -1
  142. package/dist/form.js +1 -1
  143. package/dist/{frameworkTexts-C1yvIVm4.js → frameworkTexts-DH0Xp-Vx.js} +30 -61
  144. package/dist/frameworkTexts-DH0Xp-Vx.js.map +1 -0
  145. package/dist/frameworkTexts-iDXhcW6k.cjs +2 -0
  146. package/dist/frameworkTexts-iDXhcW6k.cjs.map +1 -0
  147. package/dist/i18n/frameworkTexts.d.ts +13 -0
  148. package/dist/i18n.cjs +1 -1
  149. package/dist/{icons-BxurYyW-.cjs → icons-D_NB67he.cjs} +2 -2
  150. package/dist/{icons-BxurYyW-.cjs.map → icons-D_NB67he.cjs.map} +1 -1
  151. package/dist/icons.cjs +1 -1
  152. package/dist/illustrations.cjs +1 -1
  153. package/dist/illustrations.js +1 -1
  154. package/dist/index.cjs +1 -1
  155. package/dist/index.js +13 -13
  156. package/dist/{inputs-GCUfD923.cjs → inputs-Clenc4Rm.cjs} +2 -2
  157. package/dist/{inputs-GCUfD923.cjs.map → inputs-Clenc4Rm.cjs.map} +1 -1
  158. package/dist/inputs.cjs +1 -1
  159. package/dist/inputs.js +1 -1
  160. package/dist/{javascript-CH9YvIk2.js → javascript-CHSg4NGc.js} +1 -1
  161. package/dist/{javascript-CH9YvIk2.js.map → javascript-CHSg4NGc.js.map} +1 -1
  162. package/dist/{javascript-BGrveJJw.cjs → javascript-CastOQF5.cjs} +1 -1
  163. package/dist/{javascript-BGrveJJw.cjs.map → javascript-CastOQF5.cjs.map} +1 -1
  164. package/dist/{json-CPWARxtL.js → json-Bejy9Rlg.js} +1 -1
  165. package/dist/{json-CPWARxtL.js.map → json-Bejy9Rlg.js.map} +1 -1
  166. package/dist/{json-D6oa0Lra.cjs → json-DCkJ-m-p.cjs} +1 -1
  167. package/dist/{json-D6oa0Lra.cjs.map → json-DCkJ-m-p.cjs.map} +1 -1
  168. package/dist/{layout-Gr99WWTA.cjs → layout-CNoZdeXw.cjs} +2 -2
  169. package/dist/{layout-Gr99WWTA.cjs.map → layout-CNoZdeXw.cjs.map} +1 -1
  170. package/dist/{layout-CS_dHOLM.js → layout-DsE4zfpg.js} +3 -3
  171. package/dist/{layout-CS_dHOLM.js.map → layout-DsE4zfpg.js.map} +1 -1
  172. package/dist/layout.cjs +1 -1
  173. package/dist/layout.js +2 -2
  174. package/dist/{licensing-DXCHcZd1.cjs → licensing-DGIdtfNg.cjs} +2 -2
  175. package/dist/{licensing-DXCHcZd1.cjs.map → licensing-DGIdtfNg.cjs.map} +1 -1
  176. package/dist/{locale-BGLDTJSi.cjs → locale-DRRl_s5-.cjs} +2 -2
  177. package/dist/{locale-BGLDTJSi.cjs.map → locale-DRRl_s5-.cjs.map} +1 -1
  178. package/dist/{media-CE59IEdY.cjs → media-DRTBXDnn.cjs} +2 -2
  179. package/dist/{media-CE59IEdY.cjs.map → media-DRTBXDnn.cjs.map} +1 -1
  180. package/dist/media.cjs +1 -1
  181. package/dist/{overlays-DCXP_KsX.js → overlays-BKk_ZXue.js} +2 -2
  182. package/dist/{overlays-DCXP_KsX.js.map → overlays-BKk_ZXue.js.map} +1 -1
  183. package/dist/{overlays--Pe-H5TW.cjs → overlays-Qbp4d596.cjs} +2 -2
  184. package/dist/{overlays--Pe-H5TW.cjs.map → overlays-Qbp4d596.cjs.map} +1 -1
  185. package/dist/overlays.cjs +1 -1
  186. package/dist/overlays.js +3 -3
  187. package/dist/{php-DJ1nTQpr.cjs → php-BdVXegqn.cjs} +1 -1
  188. package/dist/{php-DJ1nTQpr.cjs.map → php-BdVXegqn.cjs.map} +1 -1
  189. package/dist/{php-DeBdikHj.js → php-Cb_S1hXT.js} +1 -1
  190. package/dist/{php-DeBdikHj.js.map → php-Cb_S1hXT.js.map} +1 -1
  191. package/dist/primitives.cjs +1 -1
  192. package/dist/style-runtime.cjs +1 -1
  193. package/dist/style-runtime.js +1 -1
  194. package/dist/styles.css +1 -1
  195. package/dist/{theme-Bjs11y3s.cjs → theme-DgaM4CjM.cjs} +2 -2
  196. package/dist/{theme-Bjs11y3s.cjs.map → theme-DgaM4CjM.cjs.map} +1 -1
  197. package/dist/theme.cjs +1 -1
  198. package/dist/{typescript-B5GRzMtL.js → typescript-0VHxrxf2.js} +1 -1
  199. package/dist/{typescript-B5GRzMtL.js.map → typescript-0VHxrxf2.js.map} +1 -1
  200. package/dist/{typescript-qNh_eaB0.cjs → typescript-CcGBfzlS.cjs} +1 -1
  201. package/dist/{typescript-qNh_eaB0.cjs.map → typescript-CcGBfzlS.cjs.map} +1 -1
  202. package/dist/{typography-D4PUdtMV.cjs → typography-C4_O8len.cjs} +2 -2
  203. package/dist/{typography-D4PUdtMV.cjs.map → typography-C4_O8len.cjs.map} +1 -1
  204. package/dist/typography.cjs +1 -1
  205. package/dist/{useGhostText-BTPneo4u.cjs → useGhostText-Dlemg1vw.cjs} +2 -2
  206. package/dist/{useGhostText-BTPneo4u.cjs.map → useGhostText-Dlemg1vw.cjs.map} +1 -1
  207. package/dist/{useInteractionEffect-q_9csNj7.cjs → useInteractionEffect-CFwDX5UF.cjs} +2 -2
  208. package/dist/{useInteractionEffect-q_9csNj7.cjs.map → useInteractionEffect-CFwDX5UF.cjs.map} +1 -1
  209. package/dist/{useKeyboardNav-D_OwIEZp.cjs → useKeyboardNav-Bm-dxVq-.cjs} +2 -2
  210. package/dist/{useKeyboardNav-D_OwIEZp.cjs.map → useKeyboardNav-Bm-dxVq-.cjs.map} +1 -1
  211. package/dist/utils.cjs +1 -1
  212. package/dist/{xml-BTZ6XeQ9.js → xml-8GjNy8SM.js} +1 -1
  213. package/dist/{xml-BTZ6XeQ9.js.map → xml-8GjNy8SM.js.map} +1 -1
  214. package/dist/{xml-_Z3NZw2H.cjs → xml-Dbm3mobK.cjs} +1 -1
  215. package/dist/{xml-_Z3NZw2H.cjs.map → xml-Dbm3mobK.cjs.map} +1 -1
  216. package/package.json +1 -1
  217. package/dist/MConflictIllustration-CWWnskbi.cjs +0 -2
  218. package/dist/MConflictIllustration-CWWnskbi.cjs.map +0 -1
  219. package/dist/MConflictIllustration-Drsm8_8C.js.map +0 -1
  220. package/dist/calendar-BFfeWRa0.cjs +0 -2
  221. package/dist/data-Dh3C_VTi.js.map +0 -1
  222. package/dist/data-Dl6U8Uct.cjs +0 -2
  223. package/dist/data-Dl6U8Uct.cjs.map +0 -1
  224. package/dist/dropdowns-vaj6vhl6.cjs +0 -2
  225. package/dist/frameworkTexts-C1yvIVm4.js.map +0 -1
  226. package/dist/frameworkTexts-D3wbwWCu.cjs +0 -2
  227. package/dist/frameworkTexts-D3wbwWCu.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"display-CYC1AImx.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-BnkHKW1n.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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"}
package/dist/display.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  const {ensureStyles}=require('./style-runtime.cjs')
2
2
  ensureStyles()
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./display-DU9E_18w.cjs`),t=require(`./MDetailList-CQ2sJ7Jl.cjs`);exports.MAccordion=e.p,exports.MAccordionItem=e.m,exports.MBlur=e.a,exports.MCodeBlock=e.u,exports.MCollapsible=e.h,exports.MColorPicker=e.s,exports.MCountUp=e.d,exports.MDetailList=t.t,exports.MEmptyState=e.o,exports.MProgressBar=e.f,exports.MRating=t.n,exports.MReveal=e.l,exports.MStep=e.r,exports.MStepper=e.i,exports.MTimeAgo=e.c,exports.MTimeline=e.t,exports.MTimelineItem=e.n;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./display--E7rI0tk.cjs`),t=require(`./MDetailList-Ce7KzUKC.cjs`);exports.MAccordion=e.p,exports.MAccordionItem=e.m,exports.MBlur=e.a,exports.MCodeBlock=e.u,exports.MCollapsible=e.h,exports.MColorPicker=e.s,exports.MCountUp=e.d,exports.MDetailList=t.t,exports.MEmptyState=e.o,exports.MProgressBar=e.f,exports.MRating=t.n,exports.MReveal=e.l,exports.MStep=e.r,exports.MStepper=e.i,exports.MTimeAgo=e.c,exports.MTimeline=e.t,exports.MTimelineItem=e.n;
package/dist/display.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "./display-CYC1AImx.js";
3
+ import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, n as c, o as l, p as u, r as d, s as f, t as p, u as m } from "./display-BnkHKW1n.js";
4
4
  import { n as h, t as g } from "./MDetailList-fDhVyhm7.js";
5
5
  export { u as MAccordion, s as MAccordionItem, e as MBlur, m as MCodeBlock, i as MCollapsible, f as MColorPicker, n as MCountUp, g as MDetailList, l as MEmptyState, r as MProgressBar, h as MRating, o as MReveal, d as MStep, a as MStepper, t as MTimeAgo, p as MTimeline, c as MTimelineItem };
@@ -0,0 +1,2 @@
1
+ const e=require(`./icons-D_NB67he.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./validators-B6yWdsu2.cjs`),r=require(`./formatters-CNjg_h7-.cjs`),i=require(`./dateUtils-Dq1vaA-D.cjs`),a=require(`./useGhostText-Dlemg1vw.cjs`),o=require(`./useKeyboardNav-Bm-dxVq-.cjs`),s=require(`./MPopover-C-e1CoV0.cjs`),c=require(`./MButton-sTKnano6.cjs`),l=require(`./MCheckbox-CIX7wp41.cjs`),u=require(`./MTag-BjV-dXkk.cjs`),d=require(`./MInput-CGl2Q-rM.cjs`),f=require(`./locale-DRRl_s5-.cjs`),p=require(`./frameworkTexts-iDXhcW6k.cjs`),m=require(`./calendarDates-AnlGcvZM.cjs`);require(`./core-D66c1_Wo.cjs`);let h=require(`react`),g=require(`react/jsx-runtime`);function ee({options:n,value:r,defaultValue:i,onChange:a,multiple:d=!1,searchable:f=!1,placeholder:p=`Select...`,disabled:m=!1,name:ee,id:te,variant:ne=`outlined`,size:_=`md`,color:v,fullWidth:y=!1,label:re,helperText:b,errorText:x,error:ie=!1,required:ae=!1,loading:oe=!1,clearable:se=!1,maxHeight:S=300,noOptionsText:C=`No options`,renderOption:w,searchPlaceholder:T=`Search...`,renderValue:E,className:D,style:O}){let[k,A]=(0,h.useState)(!1),[j,M]=(0,h.useState)(i??(d?[]:``)),[ce,N]=(0,h.useState)(``),P=(0,h.useRef)(null),F=r===void 0?j:r,I=ie||!!x,L=(0,h.useMemo)(()=>Array.isArray(F)?F:F?[F]:[],[F]),R=(0,h.useMemo)(()=>n.filter(e=>L.includes(e.value)),[n,L]),z=(0,h.useMemo)(()=>{if(!f||!ce)return n;let e=ce.toLowerCase();return n.filter(t=>t.label.toLowerCase().includes(e))},[n,f,ce]),B=(0,h.useMemo)(()=>{let e=new Map;for(let t of z){let n=t.group??``;e.has(n)||e.set(n,[]),e.get(n).push(t)}return e},[z]),V=z,H=(0,h.useCallback)(e=>{let t=V[e];if(!(!t||t.disabled))if(d){let e=Array.isArray(F)?F:[],n=e.includes(t.value)?e.filter(e=>e!==t.value):[...e,t.value];r===void 0&&M(n),a?.(n)}else r===void 0&&M(t.value),a?.(t.value),A(!1),N(``)},[V,d,F,r,a]),{activeIndex:le,setActiveIndex:U,resetIndex:W,onKeyDown:G}=o.t({itemCount:V.length,onSelect:H,onClose:()=>{A(!1),N(``)},isOpen:k}),K=(0,h.useCallback)(()=>{m||(A(e=>!e),W())},[m,W]),ue=(0,h.useCallback)(e=>{e.stopPropagation();let t=d?[]:``;r===void 0&&M(t),a?.(t)},[d,r,a]),de=(0,h.useMemo)(()=>E&&R.length>0?E(d?R:R[0]):d&&R.length>0?(0,g.jsx)(`span`,{className:`tags`,children:R.map(e=>(0,g.jsx)(u.t,{label:e.label,color:v,size:_,variant:`solid`},e.value))}):!d&&R.length>0?R[0].label:(0,g.jsx)(`span`,{className:`placeholder`,children:p}),[R,d,E,p,v,_]);return(0,g.jsxs)(`div`,{className:t.t(`select`,v&&`color-${v}`,y&&`full-width`,D),style:O,children:[re&&(0,g.jsx)(`label`,{htmlFor:te,className:t.t(`field-label`,k&&`focused`,I&&`error`,ae&&`required`),children:re}),(0,g.jsxs)(`div`,{ref:P,className:t.t(`trigger`,`field-${ne}`,`field-${_}`,k&&`focused`,I&&`error`,m&&`disabled`),onClick:K,onKeyDown:G,tabIndex:m?-1:0,role:`combobox`,"aria-expanded":k,"aria-haspopup":`listbox`,"aria-invalid":I||void 0,id:te,children:[(0,g.jsx)(`span`,{className:`value`,children:de}),oe&&(0,g.jsx)(c.r,{size:`sm`,color:v}),se&&L.length>0&&!oe&&!m&&(0,g.jsx)(`button`,{type:`button`,className:`clear-btn clear-btn-base`,onClick:ue,tabIndex:-1,"aria-label":`Clear selection`,children:(0,g.jsx)(e.Xi,{})}),(0,g.jsx)(`span`,{className:t.t(`arrow`,k&&`open`),"aria-hidden":`true`,children:(0,g.jsx)(e.Ki,{})})]}),ee&&(0,g.jsx)(`input`,{type:`hidden`,name:ee,value:Array.isArray(F)?F.join(`,`):F}),(0,g.jsx)(s.t,{className:`select-popover`,open:k,anchorRef:P,onClose:()=>{A(!1),N(``)},matchWidth:!0,placement:`bottom-start`,children:(0,g.jsxs)(`div`,{style:{maxHeight:S},className:`dropdown`,children:[f&&(0,g.jsx)(`div`,{className:`search-box`,children:(0,g.jsx)(`input`,{type:`text`,className:`search-input`,placeholder:T,value:ce,onChange:e=>{N(e.target.value),U(0)},onKeyDown:G,autoFocus:!0})}),V.length===0?(0,g.jsx)(`div`,{className:`no-options`,children:C}):(0,g.jsx)(`div`,{className:`options-list`,role:`listbox`,children:[...B.entries()].map(([e,n])=>(0,g.jsxs)(`div`,{children:[e&&(0,g.jsx)(`div`,{className:`group-header`,children:e}),n.map(e=>{let n=V.indexOf(e),r=n===le,i=L.includes(e.value);return(0,g.jsxs)(`div`,{className:t.t(`option`,r&&`active`,i&&`selected`,e.disabled&&`disabled`),onClick:()=>!e.disabled&&H(n),onMouseEnter:()=>U(n),role:`option`,"aria-selected":i,"aria-disabled":e.disabled,children:[d&&(0,g.jsx)(l.t,{checked:i,size:`sm`,color:v,clickEffect:`none`,className:`select-check`}),w?w(e,r,i):e.label]},e.value)})]},e))})]})}),(x||b)&&(0,g.jsx)(`div`,{className:`bottom-row`,children:x?(0,g.jsx)(`span`,{className:`field-error`,role:`alert`,children:x}):(0,g.jsx)(`span`,{className:`helper-text`,children:b})})]})}function te(e){return typeof e==`string`?e:String(e)}function ne(e){return typeof e==`string`?e:String(e)}function _(e,t,n){if(!t)return e;let r=t.toLowerCase();return e.filter(e=>n(e).toLowerCase().includes(r))}function v({options:n,value:r,onChange:i,getOptionLabel:l=te,getOptionValue:d=ne,filterOptions:f,multiple:p=!1,debounceMs:m=0,onInputChange:ee,loading:v=!1,loadingText:y=`Loading...`,noOptionsText:re=`No options`,placeholder:b=`Type to search...`,disabled:x=!1,name:ie,id:ae,variant:oe=`outlined`,size:se=`md`,color:S,fullWidth:C=!1,label:w,helperText:T,errorText:E,error:D=!1,required:O=!1,clearable:k=!1,maxHeight:A=300,renderOption:j,renderTags:M,className:ce,style:N}){let[P,F]=(0,h.useState)(!1),[I,L]=(0,h.useState)(``),R=(0,h.useRef)(null),z=(0,h.useRef)(null),B=D||!!E,V=(0,h.useMemo)(()=>r==null?[]:Array.isArray(r)?r.filter(e=>e!=null):[r],[r]),H=(0,h.useMemo)(()=>f?f(n,I):_(n,I,l),[n,I,f,l]),le=a.r(e=>ee?.(e),m),U=(0,h.useCallback)(e=>{L(e.target.value),le(e.target.value),P||F(!0)},[P,le]),W=(0,h.useCallback)(e=>{let t=H[e];if(t)if(p){let e=[...V],n=d(t),r=e.findIndex(e=>d(e)===n);r>=0?e.splice(r,1):e.push(t),i?.(e),L(``),z.current?.focus()}else i?.(t),L(l(t)),F(!1)},[H,p,V,d,l,i]),G=(0,h.useCallback)(e=>{let t=[...V];t.splice(e,1),i?.(p?t:t[0]??``)},[V,i,p]),{activeIndex:K,setActiveIndex:ue,resetIndex:de,onKeyDown:fe}=o.t({itemCount:H.length,onSelect:W,onClose:()=>F(!1),isOpen:P}),pe=(0,h.useCallback)(e=>{if(e.key===`Backspace`&&p&&!I&&V.length>0){G(V.length-1);return}fe(e)},[I,p,V,fe,G]),q=(0,h.useCallback)(e=>{e.stopPropagation(),L(``),i?.(p?[]:``),z.current?.focus()},[p,i]);return(0,g.jsxs)(`div`,{className:t.t(`autocomplete`,S&&`color-${S}`,C&&`full-width`,ce),style:N,children:[w&&(0,g.jsx)(`label`,{htmlFor:ae,className:t.t(`field-label`,P&&`focused`,B&&`error`,O&&`required`),children:w}),(0,g.jsxs)(`div`,{ref:R,className:t.t(`input-wrapper`,`field-${oe}`,`field-${se}`,P&&`focused`,B&&`error`,x&&`disabled`),onClick:()=>z.current?.focus(),children:[p&&V.length>0&&(M?M(V,G):(0,g.jsx)(`span`,{className:`tags`,children:V.map((e,t)=>(0,g.jsx)(u.t,{label:l(e),color:S,size:se,variant:`solid`,closable:!0,onClose:()=>G(t)},d(e)))})),(0,g.jsx)(`input`,{ref:z,type:`text`,className:`input`,value:I,onChange:U,onFocus:()=>{F(!0),de()},onKeyDown:pe,placeholder:V.length>0?``:b,disabled:x,id:ae,"aria-expanded":P,"aria-haspopup":`listbox`,"aria-invalid":B||void 0,autoComplete:`off`}),v&&(0,g.jsx)(c.r,{size:`sm`,color:S}),k&&(V.length>0||I)&&!v&&!x&&(0,g.jsx)(`button`,{type:`button`,className:`clear-btn clear-btn-base`,onClick:q,tabIndex:-1,children:(0,g.jsx)(e.Xi,{})})]}),ie&&(0,g.jsx)(`input`,{type:`hidden`,name:ie,value:V.map(d).join(`,`)}),(0,g.jsx)(s.t,{className:t.t(`autocomplete-popover`,S&&`color-${S}`),open:P&&(H.length>0||v||!!I),anchorRef:R,onClose:()=>F(!1),matchWidth:!0,placement:`bottom-start`,children:(0,g.jsx)(`div`,{style:{maxHeight:A},className:`dropdown`,children:v?(0,g.jsx)(`div`,{className:`loading-msg`,children:y}):H.length===0?(0,g.jsx)(`div`,{className:`no-options`,children:re}):(0,g.jsx)(`div`,{className:`options-list`,role:`listbox`,children:H.map((e,n)=>{let r=n===K,i=V.some(t=>d(t)===d(e));return(0,g.jsx)(`div`,{className:t.t(`option`,r&&`active`,i&&`selected`),onClick:()=>W(n),onMouseEnter:()=>ue(n),role:`option`,"aria-selected":i,children:j?j(e,r):l(e)},d(e))})})})}),(E||T)&&(0,g.jsx)(`div`,{className:`bottom-row`,children:E?(0,g.jsx)(`span`,{className:`field-error`,role:`alert`,children:E}):(0,g.jsx)(`span`,{className:`helper-text`,children:T})})]})}var y={primary:`var(--mineral-primary-rgb)`,neutral:`var(--mineral-neutral-rgb)`,success:`var(--mineral-success-rgb)`,error:`var(--mineral-error-rgb)`,warning:`var(--mineral-warning-rgb)`,info:`var(--mineral-info-rgb)`,light:`var(--mineral-light-rgb)`,dark:`var(--mineral-dark-color-rgb)`,news:`var(--mineral-news-rgb)`};function re(e){return y[e??`primary`]??y.primary}var b=`Date is unavailable`,x=`Invalid time`;function ie(e){if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:new Date(e.getTime());let t=new Date(e);return isNaN(t.getTime())?null:t}function ae(e){let t=e.replace(/DD/g,`dd`).replace(/YYYY/g,`yyyy`),n=t.match(/dd|MM|yyyy/g),r=t.match(/[^dMy]/)?.[0],i=r===`/`||r===`.`||r===`-`?r:`.`;switch(n?.join(`/`)){case`MM/dd/yyyy`:return{inputFormat:`MM/DD/YYYY`,separator:i};case`yyyy/MM/dd`:return{inputFormat:`YYYY/MM/DD`,separator:i};default:return{inputFormat:`DD/MM/YYYY`,separator:i}}}function oe(e,t){return e===`12h`?t?`hh:mm:ss AM`:`hh:mm AM`:t?`HH:MM:SS`:`HH:MM`}function se(e,t,n,r,i,a){return e||(n?`${t} ${a??oe(r,i)}`:t)}function S(e,t){if(!e)return``;let n=i.o(i._(e),t.format);return t.withTime?`${n} ${i.l(e.getHours(),e.getMinutes(),e.getSeconds(),t.showSeconds,t.timeFormat)}`:n}function C(e,t){return e?e.length<=2?e:e.length<=4?`${e.slice(0,2)}:${e.slice(2)}`:t?`${e.slice(0,2)}:${e.slice(2,4)}:${e.slice(4,6)}`:`${e.slice(0,2)}:${e.slice(2,4)}`:``}function w(e){let t=e.toUpperCase().replace(/[^APM]/g,``);return t?t.startsWith(`AM`)?`AM`:t.startsWith(`PM`)?`PM`:t.startsWith(`A`)?`A`:t.startsWith(`P`)?`P`:``:``}function T(e,t){let n=e.trim();if(!n)return{datePart:``,timePart:``};if(!t)return{datePart:n,timePart:``};let r=n.indexOf(` `);return r===-1?{datePart:n,timePart:``}:{datePart:n.slice(0,r).trim(),timePart:n.slice(r+1).trim()}}function E(e,t){let n=e.toUpperCase(),i=r.u(n),a=i.slice(0,8),o=t.withTime?i.slice(8,8+(t.showSeconds?6:4)):``,s=r.i(a,t.inputFormat,t.separator);if(!t.withTime)return{formatted:s,datePart:s,timePart:``};let c=C(o,t.showSeconds),l=t.timeFormat===`12h`?w(n):``,u=`${c}${l?`${c?` `:``}${l}`:``}`.trim();if(!s)return{formatted:u,datePart:``,timePart:u};let d=a.length===8,f=/\s/.test(n.slice(s.length));return{formatted:u||d&&f?`${s} ${u}`:s,datePart:s,timePart:u}}function D(e,t){return e?i.l(e.getHours(),e.getMinutes(),e.getSeconds(),t,`24h`):``}function O(e,t){let{datePart:r,timePart:a}=T(e,t.withTime);if(!r&&!a)return{status:`empty`};let o=n.a(r,{format:t.inputFormat,minDate:t.minDate??void 0,maxDate:t.maxDate??void 0});if(!o.valid)return o.error===`Incomplete date`?{status:`partial`,datePart:r,timePart:a}:{status:`invalid`,datePart:r,timePart:a,result:o};let s=n.i(r,t.inputFormat);return s?t.isDisabled(s)?{status:`invalid`,datePart:r,timePart:a,result:{valid:!1,error:b}}:t.withTime?a?i.g(a,t.timeFormat)?{status:`valid`,datePart:r,timePart:a,value:i.r(s,a,{format:t.timeFormat,showSeconds:t.showSeconds})}:{status:`invalid`,datePart:r,timePart:a,result:{valid:!1,error:x}}:{status:`valid`,datePart:r,timePart:``,value:i.r(s,``,{format:t.timeFormat,showSeconds:t.showSeconds})}:{status:`valid`,datePart:r,timePart:``,value:i._(s)}:{status:`invalid`,datePart:r,timePart:a,result:{valid:!1,error:`Invalid date`}}}function k(e){let t=e.hours>=12?`PM`:`AM`;return{hours:e.hours%12||12,minutes:e.minutes,seconds:e.seconds,meridiem:t}}function A(e,t){return t===`AM`?e===12?0:e:e===12?12:e+12}function j({value:n,defaultValue:a,onChange:o,format:c=`dd.MM.yyyy`,locale:l,min:u,max:ee,disabledDates:te,placeholder:ne,disabled:_=!1,readOnly:v=!1,name:y,id:b,variant:oe=`outlined`,size:C=`md`,color:w,label:T,helperText:j,errorText:ce,error:N=!1,required:P=!1,clearable:F=!1,withTime:I=!1,validateOnBlur:L=!0,validateOnChange:R=!1,onValidationChange:z,timeFormat:B=`24h`,showSeconds:V=!1,minuteStep:H=1,timePlaceholder:le,inline:U=!1,showTodayButton:W=!0,firstDayOfWeek:G=1,fullWidth:K=!1,className:ue,style:de}){let fe=f.t(l),pe=p.n(),{inputFormat:q,separator:me}=(0,h.useMemo)(()=>ae(c),[c]),[he,ge]=(0,h.useState)(!1),[_e,ve]=(0,h.useState)(()=>ie(a)),[ye,be]=(0,h.useState)({valid:!0}),[J,xe]=(0,h.useState)(!1),Y=n===void 0?_e:ie(n),[Se,Ce]=(0,h.useState)(()=>S(Y,{format:c,withTime:I,timeFormat:B,showSeconds:V})),[we,Te]=(0,h.useState)(()=>D(Y,V)),[Ee,De]=(0,h.useState)(()=>{let e=Y?i._(Y):new Date;return new Date(e.getFullYear(),e.getMonth(),1)}),[Oe,ke]=(0,h.useState)(`days`),Ae=(0,h.useRef)(null),je=Y?.getTime()??null,Me=ie(u),Ne=ie(ee),Pe=N||J&&!ye.valid,Fe=ce||(J&&!ye.valid?ye.error:void 0),Ie=i.u(fe,G),Le=i.d(fe);(0,h.useEffect)(()=>{if(Ce(S(Y,{format:c,withTime:I,timeFormat:B,showSeconds:V})),Te(D(Y,V)),Y){let e=i._(Y);De(new Date(e.getFullYear(),e.getMonth(),1))}},[c,je,V,B,I]);let X=(0,h.useCallback)(e=>i.f(e,Me,Ne)?Array.isArray(te)?te.some(t=>i.p(t,e)):typeof te==`function`?te(e):!1:!0,[te,Ne,Me]),Z=(0,h.useCallback)(e=>{be(e),z?.(e)},[z]),Q=(0,h.useCallback)(e=>{n===void 0&&ve(e),o?.(e)},[o,n]),Re=(0,h.useMemo)(()=>O(Se,{inputFormat:q,minDate:Me,maxDate:Ne,withTime:I,timeFormat:B,showSeconds:V,isDisabled:X}),[q,Se,X,Ne,Me,V,B,I]),ze=(0,h.useMemo)(()=>Re.status===`valid`?i._(Re.value):Y?i._(Y):null,[Re,Y]),$=(0,h.useMemo)(()=>I?i.g(Re.status!==`empty`&&Re.timePart?Re.timePart:we||D(Y,V),B)??{hours:0,minutes:0,seconds:0}:null,[we,Re,Y,V,B,I]),Be=(0,h.useCallback)(e=>{let t=E(e.target.value,{inputFormat:q,separator:me,withTime:I,timeFormat:B,showSeconds:V});Ce(t.formatted),Te(t.timePart);let n=O(t.formatted,{inputFormat:q,minDate:Me,maxDate:Ne,withTime:I,timeFormat:B,showSeconds:V,isDisabled:X});if(n.status===`empty`){Z({valid:!0}),Q(null);return}if(n.status===`invalid`&&R)Z(n.result);else if(n.status===`valid`){Z({valid:!0}),De(new Date(n.value.getFullYear(),n.value.getMonth(),1));let t=V?6:4,i=I?r.u(e.target.value).slice(8).length:0;(!I||i>=t)&&Q(n.value)}},[Q,Z,q,X,Ne,Me,me,V,B,R,I]),Ve=(0,h.useCallback)(()=>{xe(!0);let e=O(Se,{inputFormat:q,minDate:Me,maxDate:Ne,withTime:I,timeFormat:B,showSeconds:V,isDisabled:X});if(e.status===`empty`){Z({valid:!0});return}if(e.status===`partial`){L&&Z({valid:!1,error:`Incomplete date`});return}if(e.status===`invalid`){if(I&&e.result.error===x&&e.datePart){let t=i.l(0,0,0,V,B),n=O(`${e.datePart} ${t}`,{inputFormat:q,minDate:Me,maxDate:Ne,withTime:I,timeFormat:B,showSeconds:V,isDisabled:X});if(n.status===`valid`){Z({valid:!0}),Ce(S(n.value,{format:c,withTime:I,timeFormat:B,showSeconds:V})),Te(D(n.value,V)),Q(n.value);return}}L&&Z(e.result);return}Z({valid:!0}),Ce(S(e.value,{format:c,withTime:I,timeFormat:B,showSeconds:V})),Te(D(e.value,V)),Q(e.value)},[Q,Z,c,q,Se,X,Ne,Me,V,B,L,I]),He=(0,h.useCallback)(e=>{[`Backspace`,`Delete`,`Tab`,`ArrowLeft`,`ArrowRight`,`Home`,`End`,`Enter`].includes(e.key)||e.ctrlKey||e.metaKey||(I?/^[0-9\s:./-APMapm]$/:/^[0-9./-]$/).test(e.key)||e.preventDefault()},[I]),Ue=(0,h.useCallback)(()=>{Ce(``),Te(``),xe(!1),Z({valid:!0}),Q(null)},[Q,Z]),We=(0,h.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),!(_||v||U)&&ge(e=>!e)},[_,U,v]),Ge=(0,h.useCallback)(e=>{if(X(e))return;let t=I?we||i.l(0,0,0,V,B):``,n=I?i.r(e,t,{format:B,showSeconds:V}):i._(e);xe(!0),Z({valid:!0}),Te(t),Ce(S(n,{format:c,withTime:I,timeFormat:B,showSeconds:V})),De(new Date(e.getFullYear(),e.getMonth(),1)),Q(n),!I&&!U&&ge(!1)},[Q,we,Z,c,U,X,V,B,I]),Ke=(0,h.useCallback)(()=>{let e=i._(new Date);X(e)||Ge(e)},[Ge,X]),qe=(0,h.useMemo)(()=>{if(!I)return[];let e=[],t=B===`12h`?12:23,n=+(B===`12h`);for(let r=n;r<=t;r+=1)e.push(r);return e},[B,I]),Je=(0,h.useMemo)(()=>{if(!I)return[];let e=[];for(let t=0;t<60;t+=H)e.push(t);return e},[H,I]),Ye=(0,h.useMemo)(()=>{if(!I||!V)return[];let e=[];for(let t=0;t<60;t+=1)e.push(t);return e},[V,I]),Xe=(0,h.useCallback)((e,t,n=0)=>{let r=i.l(e,t,n,V,B),a=ze;if(xe(!0),Te(r),!a){Ce(r);return}let o=i.r(a,r,{format:B,showSeconds:V});Z({valid:!0}),Ce(S(o,{format:c,withTime:I,timeFormat:B,showSeconds:V})),Q(o)},[Q,ze,Z,c,V,B,I]),Ze=(0,h.useCallback)(e=>{Xe(A($?k($).hours:12,e),$?.minutes??0,$?.seconds??0)},[$,Xe]),Qe=(0,h.useMemo)(()=>m.i(Ee,G).map(e=>({date:e,currentMonth:e.getMonth()===Ee.getMonth()})),[G,Ee]),$e=i._(new Date),et=Y?i._(Y):ze,tt=()=>(0,g.jsxs)(`div`,{className:`calendar`,children:[(0,g.jsxs)(`div`,{className:`calendar-header`,children:[(0,g.jsx)(`button`,{type:`button`,className:`nav-btn`,onClick:()=>De(i.t(Ee,-1)),"aria-label":pe.previousMonth,children:(0,g.jsx)(e.Ji,{})}),(0,g.jsxs)(`button`,{type:`button`,className:`header-title`,onClick:()=>ke(e=>e===`days`?`months`:`days`),children:[Le[Ee.getMonth()],` `,Ee.getFullYear()]}),(0,g.jsx)(`button`,{type:`button`,className:`nav-btn`,onClick:()=>De(i.t(Ee,1)),"aria-label":pe.nextMonth,children:(0,g.jsx)(e.qi,{})})]}),Oe===`days`?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`div`,{className:`day-names`,children:Ie.map(e=>(0,g.jsx)(`span`,{className:`day-name`,children:e},e))}),(0,g.jsx)(`div`,{className:`day-grid`,children:Qe.map(({date:e,currentMonth:n},r)=>{let a=et?i.p(e,et):!1,o=i.p(e,$e),s=X(e);return(0,g.jsx)(`button`,{type:`button`,className:t.t(`day`,!n&&`other-month`,o&&`today`,a&&`selected`,s&&`disabled`),onClick:()=>Ge(e),disabled:s,tabIndex:-1,children:e.getDate()},`${e.toISOString()}-${r}`)})})]}):(0,g.jsx)(`div`,{className:`month-grid`,children:Le.map((e,n)=>(0,g.jsx)(`button`,{type:`button`,className:t.t(`month-cell`,Ee.getMonth()===n&&`selected`),onClick:()=>{De(new Date(Ee.getFullYear(),n,1)),ke(`days`)},children:e.slice(0,3)},e))}),W&&(0,g.jsx)(`div`,{className:`footer`,children:(0,g.jsx)(`button`,{type:`button`,className:`today-btn`,onClick:Ke,children:pe.today})})]}),nt=()=>{if(!I)return null;let e=$?k($):null;return(0,g.jsxs)(`div`,{className:`date-picker-time-panel`,children:[(0,g.jsx)(`div`,{className:`date-picker-time-header`,children:`Time`}),(0,g.jsxs)(`div`,{className:`date-picker-time-columns`,children:[(0,g.jsx)(M,{items:qe,selected:B===`12h`?e?.hours:$?.hours,onSelect:t=>Xe(B===`12h`?A(t,e?.meridiem??`AM`):t,$?.minutes??0,$?.seconds??0),label:`Hr`}),(0,g.jsx)(M,{items:Je,selected:$?.minutes,onSelect:e=>Xe($?.hours??0,e,$?.seconds??0),label:`Min`}),V&&(0,g.jsx)(M,{items:Ye,selected:$?.seconds,onSelect:e=>Xe($?.hours??0,$?.minutes??0,e),label:`Sec`}),B===`12h`&&(0,g.jsx)(M,{items:[`AM`,`PM`],selected:e?.meridiem,onSelect:Ze,label:`AM/PM`})]})]})},rt=()=>(0,g.jsxs)(`div`,{className:t.t(`date-picker-popover-content`,I&&`with-time`),children:[tt(),nt()]}),it=I?B===`12h`?V?22:19:V?19:16:10,at=se(ne,c,I,B,V,le);return U?(0,g.jsxs)(`div`,{className:t.t(`date-picker`,w&&`color-${w}`,K&&`full-width`,ue),style:de,children:[(0,g.jsx)(d.t,{value:Se,onChange:Be,onBlur:Ve,onKeyDown:He,onClear:Ue,type:`text`,inputMode:I?`text`:`numeric`,autoComplete:`off`,maxLength:it,placeholder:at,disabled:_,readOnly:v,id:b,variant:oe,size:C,color:w,label:T,helperText:j,error:Pe,errorText:Fe,required:P,clearable:F,fullWidth:K}),rt(),y&&Y&&(0,g.jsx)(`input`,{type:`hidden`,name:y,value:i.s(Y,I,V)})]}):(0,g.jsxs)(`div`,{className:t.t(`date-picker`,w&&`color-${w}`,K&&`full-width`,ue),style:de,children:[(0,g.jsx)(`div`,{ref:Ae,className:`date-picker-input-anchor`,children:(0,g.jsx)(d.t,{value:Se,onChange:Be,onBlur:Ve,onKeyDown:He,onClear:Ue,type:`text`,inputMode:I?`text`:`numeric`,autoComplete:`off`,maxLength:it,placeholder:at,disabled:_,readOnly:v,id:b,variant:oe,size:C,color:w,label:T,helperText:j,error:Pe,errorText:Fe,required:P,clearable:F,fullWidth:K,endIcon:(0,g.jsx)(`button`,{type:`button`,className:`date-picker-toggle`,onMouseDown:e=>e.preventDefault(),onClick:We,"aria-label":`Open calendar`,disabled:_||v,children:(0,g.jsx)(e.Ri,{})})})}),y&&Y&&(0,g.jsx)(`input`,{type:`hidden`,name:y,value:i.s(Y,I,V)}),(0,g.jsx)(s.t,{className:`date-picker-popover`,style:{"--color-rgb":re(w)},open:he,anchorRef:Ae,onClose:()=>ge(!1),placement:`bottom-start`,children:rt()})]})}function M({items:e,selected:n,onSelect:r,label:i}){let a=(0,h.useRef)(null);(0,h.useEffect)(()=>{if(n===void 0||!a.current)return;let e=a.current.querySelector(`[data-value="${n}"]`);if(e){let t=a.current;t.scrollTop=e.offsetTop-t.clientHeight/2+e.offsetHeight/2}},[n]);let o=e=>typeof e==`number`?e.toString().padStart(2,`0`):e;return(0,g.jsxs)(`div`,{className:`date-picker-time-column`,children:[(0,g.jsx)(`div`,{className:`date-picker-time-column-label`,children:i}),(0,g.jsx)(`div`,{ref:a,className:`date-picker-time-column-list`,children:e.map(e=>(0,g.jsx)(`button`,{type:`button`,"data-value":e,className:t.t(`date-picker-time-column-item`,e===n&&`selected`),onClick:()=>r(e),children:o(e)},e))})]})}function ce(e){let t=e.hours>=12?`PM`:`AM`;return{hours:e.hours%12||12,minutes:e.minutes,seconds:e.seconds,meridiem:t}}function N(e,t){return t===`AM`?e===12?0:e:e===12?12:e+12}function P(e,t,n,r,a){if(a===`24h`)return i.c(e,t,n,r);let o=ce({hours:e,minutes:t,seconds:n}),s=`${o.hours.toString().padStart(2,`0`)}:${o.minutes.toString().padStart(2,`0`)}`;return`${r?`${s}:${o.seconds.toString().padStart(2,`0`)}`:s} ${o.meridiem}`}function F(e,t){if(t===`24h`)return i.h(e);let n=e.trim().toUpperCase().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM)$/);if(n){let e=parseInt(n[1],10),t=parseInt(n[2],10),r=n[3]?parseInt(n[3],10):0,i=n[4];return e<1||e>12||t>59||r>59?null:{hours:N(e,i),minutes:t,seconds:r}}return i.h(e)}function I(e,t){return e.hours===t.hours?e.minutes===t.minutes?e.seconds-t.seconds:e.minutes-t.minutes:e.hours-t.hours}function L(e,t,n){return(!t||I(e,t)>=0)&&(!n||I(e,n)<=0)}function R({value:n,defaultValue:r,onChange:i,format:a=`24h`,showSeconds:o=!1,minuteStep:c=1,min:l,max:u,placeholder:d,disabled:f=!1,readOnly:p=!1,name:m,id:ee,variant:te=`outlined`,size:ne=`md`,color:_,label:v,helperText:y,errorText:re,error:b=!1,required:x=!1,clearable:ie=!1,fullWidth:ae=!1,className:oe,style:se}){let[S,C]=(0,h.useState)(!1),[w,T]=(0,h.useState)(r??``),E=(0,h.useRef)(null),D=n===void 0?w:n,O=b||!!re,k=F(D,a),A=F(l??``,a),j=F(u??``,a),M=k?ce(k):null,I=k?P(k.hours,k.minutes,k.seconds,o,a):D,R=(0,h.useMemo)(()=>{let e=[],t=a===`12h`?12:23,n=+(a===`12h`);for(let r=n;r<=t;r++)e.push(r);return e},[a]),B=(0,h.useMemo)(()=>{let e=[];for(let t=0;t<60;t+=c)e.push(t);return e},[c]),V=(0,h.useMemo)(()=>{if(!o)return[];let e=[];for(let t=0;t<60;t++)e.push(t);return e},[o]),H=(0,h.useCallback)((e,t,n=0)=>L({hours:e,minutes:t,seconds:n},A,j),[j,A]),le=(0,h.useCallback)((e,t,r=0)=>{if(!H(e,t,r))return;let s=P(e,t,r,o,a);n===void 0&&T(s),i?.(s)},[a,H,i,o,n]),U=(0,h.useCallback)(e=>{let t=e.target.value;n===void 0&&T(t)},[n]),W=(0,h.useCallback)(()=>{let e=F(D,a);if(e&&L(e,A,j)){let t=P(e.hours,e.minutes,e.seconds,o,a);n===void 0&&T(t),i?.(t)}},[D,a,j,A,i,o,n]),G=(0,h.useCallback)(e=>{let t=M?.hours??12,n=k?.minutes??0,r=k?.seconds??0;le(N(t,e),n,r)},[M?.hours,le,k?.minutes,k?.seconds]),K=(0,h.useCallback)(e=>{e.stopPropagation(),n===void 0&&T(``),i?.(``)},[i,n]);return(0,g.jsxs)(`div`,{className:t.t(`time picker`,_&&`color-${_}`,ae&&`full-width`,oe),style:se,children:[v&&(0,g.jsx)(`label`,{htmlFor:ee,className:t.t(`field-label`,S&&`focused`,O&&`error`,x&&`required`),children:v}),(0,g.jsxs)(`div`,{ref:E,className:t.t(`time trigger`,`field-${te}`,`field-${ne}`,S&&`focused`,O&&`error`,f&&`disabled`),onClick:()=>!f&&!p&&C(!0),children:[(0,g.jsx)(`span`,{className:`time icon`,children:(0,g.jsx)(e.Li,{})}),(0,g.jsx)(`input`,{type:`text`,className:`time input`,value:I,onChange:U,onBlur:W,placeholder:d??(a===`12h`?o?`hh:mm:ss AM`:`hh:mm AM`:o?`HH:MM:SS`:`HH:MM`),disabled:f,readOnly:p,id:ee,"aria-invalid":O||void 0}),ie&&D&&!f&&(0,g.jsx)(`button`,{type:`button`,className:`time clear clear-btn-base`,onClick:K,tabIndex:-1,"aria-label":`Clear time`,children:(0,g.jsx)(e.Xi,{})})]}),m&&(0,g.jsx)(`input`,{type:`hidden`,name:m,value:I}),(0,g.jsx)(s.t,{className:`time picker popover`,open:S,anchorRef:E,onClose:()=>C(!1),placement:`bottom-start`,children:(0,g.jsxs)(`div`,{className:`time columns`,children:[(0,g.jsx)(z,{items:R,selected:a===`12h`?M?.hours:k?.hours,onSelect:e=>le(a===`12h`?N(e,M?.meridiem??`AM`):e,k?.minutes??0,k?.seconds??0),isDisabled:e=>!H(a===`12h`?N(e,M?.meridiem??`AM`):e,k?.minutes??0,k?.seconds??0),label:`Hr`}),(0,g.jsx)(z,{items:B,selected:k?.minutes,onSelect:e=>le(k?.hours??0,e,k?.seconds??0),isDisabled:e=>!H(k?.hours??0,e,k?.seconds??0),label:`Min`}),o&&(0,g.jsx)(z,{items:V,selected:k?.seconds,onSelect:e=>le(k?.hours??0,k?.minutes??0,e),isDisabled:e=>!H(k?.hours??0,k?.minutes??0,e),label:`Sec`}),a===`12h`&&(0,g.jsx)(z,{items:[`AM`,`PM`],selected:M?.meridiem,onSelect:G,label:`AM/PM`})]})}),(re||y)&&(0,g.jsx)(`div`,{className:`time bottom`,children:re?(0,g.jsx)(`span`,{className:`field-error`,role:`alert`,children:re}):(0,g.jsx)(`span`,{className:`time helper`,children:y})})]})}function z({items:e,selected:n,onSelect:r,isDisabled:i,label:a}){let o=(0,h.useRef)(null);(0,h.useEffect)(()=>{if(n===void 0||!o.current)return;let e=o.current.querySelector(`[data-value="${n}"]`);if(e){let t=o.current;t.scrollTop=e.offsetTop-t.clientHeight/2+e.offsetHeight/2}},[n]);let s=e=>typeof e==`number`?e.toString().padStart(2,`0`):e;return(0,g.jsxs)(`div`,{className:`time column`,children:[(0,g.jsx)(`div`,{className:`time column label`,children:a}),(0,g.jsx)(`div`,{ref:o,className:`time column list`,children:e.map(e=>{let a=i?.(e)??!1;return(0,g.jsx)(`button`,{type:`button`,"data-value":e,className:t.t(`time column item`,e===n&&`selected`,a&&`disabled`),onClick:()=>r(e),disabled:a,children:s(e)},e)})})]})}function B(e){if(!e)return null;if(e instanceof Date)return i._(e);let t=new Date(e);return isNaN(t.getTime())?null:i._(t)}function V(e,t){return e.getTime()<=t.getTime()?{start:e,end:t}:{start:t,end:e}}function H(e,t,n){if(!t||!n)return!1;let r=e.getTime();return r>t.getTime()&&r<n.getTime()}function le(e,t,n){return e&&t?`${i.o(e,n)} - ${i.o(t,n)}`:e?`${i.o(e,n)} - ...`:``}function U(e){return new Date(e.getFullYear(),e.getMonth(),1)}function W(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function G(e){let t=i._(new Date);return t.setDate(t.getDate()-(e-1)),t}function K(e){let t=i._(new Date);return new Date(t.getFullYear(),t.getMonth()-e,t.getDate())}function ue(e){let t=i._(new Date),n=new Date(t.getFullYear(),t.getMonth()-1,1);return[{label:e.presets.today,value:{start:t,end:t}},{label:e.presets.days2,value:{start:G(2),end:t}},{label:e.presets.days3,value:{start:G(3),end:t}},{label:e.presets.days7,value:{start:G(7),end:t}},{label:e.presets.days14,value:{start:G(14),end:t}},{label:e.presets.days31,value:{start:G(31),end:t}},{label:e.presets.thisMonth,value:{start:U(t),end:W(t)}},{label:e.presets.previousMonth,value:{start:U(n),end:W(n)}},{label:e.presets.months2,value:{start:K(2),end:t}},{label:e.presets.months3,value:{start:K(3),end:t}},{label:e.presets.months6,value:{start:K(6),end:t}},{label:e.presets.year1,value:{start:K(12),end:t}}]}function de(e,t){let n=e.getFullYear(),r=e.getMonth(),a=i.i(n,r),o=i.a(n,r);t===1&&(o=o===0?6:o-1);let s=[],c=r===0?11:r-1,l=r===0?n-1:n,u=i.i(l,c);for(let e=o-1;e>=0;--e)s.push({date:new Date(l,c,u-e),currentMonth:!1});for(let e=1;e<=a;e+=1)s.push({date:new Date(n,r,e),currentMonth:!0});let d=42-s.length,f=r===11?0:r+1,p=r===11?n+1:n;for(let e=1;e<=d;e+=1)s.push({date:new Date(p,f,e),currentMonth:!1});return s}function fe({value:n,defaultValue:r,onChange:a,format:o=`dd.MM.yyyy`,locale:c,min:l,max:u,disabledDates:d,placeholder:m,disabled:ee=!1,readOnly:te=!1,name:ne,id:_,variant:v=`outlined`,size:y=`md`,color:b,label:x,helperText:ie,errorText:ae,error:oe=!1,required:se=!1,clearable:S=!1,inline:C=!1,showTodayButton:w=!0,presets:T=!1,presetsSidebar:E=!1,firstDayOfWeek:D=1,fullWidth:O=!1,allowSameDay:k=!0,className:A,style:j}){let M=f.t(c),ce=n?{start:B(n.start),end:B(n.end)}:null,[N,P]=(0,h.useState)(()=>({start:B(r?.start),end:B(r?.end)})),[F,I]=(0,h.useState)(null),[L,R]=(0,h.useState)(!1),z=(0,h.useRef)(null),U=ce??N,W=U.start,G=U.end,K=B(l),fe=B(u),pe=oe||!!ae,q=p.r(),me=i.u(M,D),he=i.d(M),ge=(0,h.useMemo)(()=>T===!0||E&&!T?ue(q):Array.isArray(T)?T:[],[T,E,q]),[_e,ve]=(0,h.useState)(()=>{let e=W??new Date;return new Date(e.getFullYear(),e.getMonth(),1)}),ye=W?.getTime()??null;(0,h.useEffect)(()=>{if(!ye)return;let e=new Date(ye);ve(new Date(e.getFullYear(),e.getMonth(),1))},[ye]);let be=(0,h.useCallback)(e=>i.f(e,K,fe)?Array.isArray(d)?d.some(t=>i.p(t,e)):typeof d==`function`?d(e):!1:!0,[d,fe,K]),J=(0,h.useCallback)(e=>{n===void 0&&P(e),a?.(e)},[a,n]),xe=(0,h.useCallback)(e=>{if(!be(e)){if(!W||W&&G){J({start:e,end:null}),I(null);return}!k&&i.p(e,W)||(J(V(W,e)),I(null),C||R(!1))}},[k,J,G,C,be,W]),Y=(0,h.useCallback)(e=>{e.stopPropagation(),J({start:null,end:null}),I(null)},[J]),Se=(0,h.useCallback)(()=>{let e=i._(new Date);be(e)||(J({start:e,end:e}),ve(new Date(e.getFullYear(),e.getMonth(),1)),I(null),C||R(!1))},[J,C,be]),Ce=(0,h.useCallback)(e=>{let t=B(e.value.start),n=B(e.value.end);if(!t||!n)return;let r=V(t,n);be(r.start)||be(r.end)||(J(r),ve(new Date(r.start.getFullYear(),r.start.getMonth(),1)),I(null),C||R(!1))},[J,C,be]),we=W&&!G?F:null,Te=_e,Ee=i.t(_e,1),De=i._(new Date),Oe=(0,h.useMemo)(()=>le(W,G,o),[G,o,W]),ke=(0,h.useMemo)(()=>[Te,Ee].map(e=>({monthDate:e,days:de(e,D)})),[D,Te,Ee]),Ae=W&&G?`${i.o(W,o)} - ${i.o(G,o)}`:W?`${i.o(W,o)} - ...`:m??q.defaultRangePlaceholder,je=E&&ge.length>0,Me=!E&&ge.length>0,Ne=()=>(0,g.jsx)(`div`,{className:`presets-sidebar`,children:ge.map(e=>(0,g.jsx)(`button`,{type:`button`,className:`preset-sidebar-btn`,onClick:()=>Ce(e),children:e.label},e.label))}),Pe=()=>(0,g.jsxs)(`div`,{className:`calendar-body`,children:[(0,g.jsxs)(`div`,{className:`calendar-top`,children:[(0,g.jsxs)(`div`,{className:`calendar-caption`,children:[(0,g.jsxs)(`span`,{className:`caption-title`,children:[he[Te.getMonth()],` `,Te.getFullYear()]}),(0,g.jsx)(`span`,{className:`caption-subtitle`,children:q.rangeSubtitle})]}),(0,g.jsxs)(`div`,{className:`nav-actions`,children:[(0,g.jsx)(`button`,{type:`button`,className:`nav-btn`,onClick:()=>ve(i.t(_e,-1)),"aria-label":q.previousMonth,children:(0,g.jsx)(e.Ji,{})}),(0,g.jsx)(`button`,{type:`button`,className:`nav-btn`,onClick:()=>ve(i.t(_e,1)),"aria-label":q.nextMonth,children:(0,g.jsx)(e.qi,{})})]})]}),Me&&(0,g.jsx)(`div`,{className:`presets`,children:ge.map(e=>(0,g.jsx)(`button`,{type:`button`,className:`preset-btn`,onClick:()=>Ce(e),children:e.label},e.label))}),(0,g.jsx)(`div`,{className:`months`,children:ke.map(({monthDate:e,days:n})=>(0,g.jsxs)(`div`,{className:`month-panel`,children:[(0,g.jsxs)(`div`,{className:`month-title`,children:[he[e.getMonth()],` `,e.getFullYear()]}),(0,g.jsx)(`div`,{className:`day-names`,children:me.map(t=>(0,g.jsx)(`span`,{className:`day-name`,children:t},`${e.toISOString()}-${t}`))}),(0,g.jsx)(`div`,{className:`day-grid`,children:n.map(({date:n,currentMonth:r},a)=>{let o=be(n),s=W?i.p(n,W):!1,c=G?i.p(n,G):!1,l=H(n,W,G),u=!G&&W&&we?V(W,we):null,d=u?H(n,u.start,u.end):!1,f=u?i.p(n,u.start)||i.p(n,u.end):!1;return(0,g.jsx)(`button`,{type:`button`,className:t.t(`day`,!r&&`other-month`,i.p(n,De)&&`today`,s&&`range-start selected`,c&&`range-end selected`,l&&`in-range`,d&&!f&&`preview-range`,o&&`disabled`),onClick:()=>xe(n),onMouseEnter:()=>W&&!G&&I(n),onFocus:()=>W&&!G&&I(n),disabled:o,tabIndex:-1,children:n.getDate()},`${e.toISOString()}-${a}`)})})]},e.toISOString()))}),(0,g.jsxs)(`div`,{className:`footer`,children:[(0,g.jsx)(`span`,{className:`summary`,children:Ae}),(0,g.jsxs)(`div`,{className:`footer-actions`,children:[S&&(W||G)&&(0,g.jsx)(`button`,{type:`button`,className:`footer-btn`,onClick:e=>{e.preventDefault(),J({start:null,end:null}),I(null)},children:q.clear}),w&&(0,g.jsx)(`button`,{type:`button`,className:`footer-btn`,onClick:Se,children:q.today})]})]})]}),Fe=()=>(0,g.jsxs)(`div`,{className:t.t(`date-range-calendar`,je&&`with-sidebar`),children:[je&&Ne(),Pe()]});return C?(0,g.jsxs)(`div`,{className:t.t(`date-range-picker`,b&&`color-${b}`,O&&`full-width`,A),style:j,children:[x&&(0,g.jsx)(`label`,{className:t.t(`field-label`,pe&&`error`,se&&`required`),children:x}),Fe()]}):(0,g.jsxs)(`div`,{className:t.t(`date-range-picker`,b&&`color-${b}`,O&&`full-width`,A),style:j,children:[x&&(0,g.jsx)(`label`,{htmlFor:_,className:t.t(`field-label`,L&&`focused`,pe&&`error`,se&&`required`),children:x}),(0,g.jsxs)(`div`,{ref:z,className:t.t(`trigger`,`field-${v}`,`field-${y}`,L&&`focused`,pe&&`error`,ee&&`disabled`),onClick:()=>!ee&&!te&&R(!0),children:[(0,g.jsx)(`span`,{className:`icon`,children:(0,g.jsx)(e.Ri,{})}),(0,g.jsx)(`input`,{type:`text`,className:`input`,value:Oe,placeholder:m??q.defaultRangePlaceholder,disabled:ee,readOnly:!0,id:_,"aria-invalid":pe||void 0}),S&&(W||G)&&!ee&&(0,g.jsx)(`button`,{type:`button`,className:`clear-btn clear-btn-base`,onClick:Y,tabIndex:-1,"aria-label":q.clear,children:(0,g.jsx)(e.Xi,{})})]}),ne&&W&&G&&(0,g.jsx)(`input`,{type:`hidden`,name:ne,value:`${W.toISOString().split(`T`)[0]}:${G.toISOString().split(`T`)[0]}`}),(0,g.jsx)(s.t,{className:`date-range-picker-popover`,style:{"--color-rgb":re(b)},open:L,anchorRef:z,onClose:()=>{R(!1),I(null)},placement:`bottom-start`,children:Fe()}),(ae||ie)&&(0,g.jsx)(`div`,{className:`bottom-row`,children:ae?(0,g.jsx)(`span`,{className:`field-error`,role:`alert`,children:ae}):(0,g.jsx)(`span`,{className:`helper-text`,children:ie})})]})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return fe}});
2
+ //# sourceMappingURL=dropdowns-DGYg9zIh.cjs.map