@banzamel/mineralui 2.4.3 → 2.5.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 (545) hide show
  1. package/README.md +1 -1
  2. package/dist/MAvatar-CvQuiGvT.cjs +2 -0
  3. package/dist/MAvatar-CvQuiGvT.cjs.map +1 -0
  4. package/dist/MAvatar-EkOBrEtS.js +73 -0
  5. package/dist/MAvatar-EkOBrEtS.js.map +1 -0
  6. package/dist/MButton-BxEky3xQ.cjs +2 -0
  7. package/dist/MButton-BxEky3xQ.cjs.map +1 -0
  8. package/dist/MButton-KELyyBw1.js +123 -0
  9. package/dist/MButton-KELyyBw1.js.map +1 -0
  10. package/dist/{MButtonGroup-BEJxXZ8u.js → MButtonGroup-DDnn8Wfy.js} +3 -3
  11. package/dist/{MButtonGroup-BEJxXZ8u.js.map → MButtonGroup-DDnn8Wfy.js.map} +1 -1
  12. package/dist/{MButtonGroup-DO1Tq3Za.cjs → MButtonGroup-Dz8Fm-oA.cjs} +2 -2
  13. package/dist/{MButtonGroup-DO1Tq3Za.cjs.map → MButtonGroup-Dz8Fm-oA.cjs.map} +1 -1
  14. package/dist/{MCard-P8OoswWM.cjs → MCard-Bqm4BjK_.cjs} +2 -2
  15. package/dist/MCard-Bqm4BjK_.cjs.map +1 -0
  16. package/dist/{MCard-BqSkGAgf.js → MCard-CqZYGaS2.js} +4 -4
  17. package/dist/MCard-CqZYGaS2.js.map +1 -0
  18. package/dist/MCheckbox-CaWgyUn5.js +72 -0
  19. package/dist/MCheckbox-CaWgyUn5.js.map +1 -0
  20. package/dist/MCheckbox-DpKJpnFF.cjs +2 -0
  21. package/dist/MCheckbox-DpKJpnFF.cjs.map +1 -0
  22. package/dist/{MConflictIllustration-znC7ijmP.js → MConflictIllustration-dwZS44ye.js} +1517 -1515
  23. package/dist/MConflictIllustration-dwZS44ye.js.map +1 -0
  24. package/dist/MConflictIllustration-vfHs-jad.cjs +2 -0
  25. package/dist/MConflictIllustration-vfHs-jad.cjs.map +1 -0
  26. package/dist/MDetailList-C3othNs3.js +127 -0
  27. package/dist/MDetailList-C3othNs3.js.map +1 -0
  28. package/dist/MDetailList-DkDHLdJ8.cjs +2 -0
  29. package/dist/MDetailList-DkDHLdJ8.cjs.map +1 -0
  30. package/dist/MDropdownMenu-C4-r7UZM.cjs +2 -0
  31. package/dist/MDropdownMenu-C4-r7UZM.cjs.map +1 -0
  32. package/dist/MDropdownMenu-Dvg9UsHB.js +219 -0
  33. package/dist/MDropdownMenu-Dvg9UsHB.js.map +1 -0
  34. package/dist/MGrid-CQqT8nHi.js +271 -0
  35. package/dist/MGrid-CQqT8nHi.js.map +1 -0
  36. package/dist/MGrid-tBsqShLG.cjs +2 -0
  37. package/dist/MGrid-tBsqShLG.cjs.map +1 -0
  38. package/dist/MHeading-DQSQ8c7L.js +21 -0
  39. package/dist/MHeading-DQSQ8c7L.js.map +1 -0
  40. package/dist/MHeading-DiGYs1FJ.cjs +2 -0
  41. package/dist/MHeading-DiGYs1FJ.cjs.map +1 -0
  42. package/dist/MInput-BeEGufZG.cjs +2 -0
  43. package/dist/MInput-BeEGufZG.cjs.map +1 -0
  44. package/dist/MInput-QnQV9L8U.js +190 -0
  45. package/dist/MInput-QnQV9L8U.js.map +1 -0
  46. package/dist/MInputCVC-CCNRAqHw.cjs +2 -0
  47. package/dist/MInputCVC-CCNRAqHw.cjs.map +1 -0
  48. package/dist/MInputCVC-IXIYZwex.js +410 -0
  49. package/dist/MInputCVC-IXIYZwex.js.map +1 -0
  50. package/dist/MInputSearch-BSIc6m2P.cjs +2 -0
  51. package/dist/MInputSearch-BSIc6m2P.cjs.map +1 -0
  52. package/dist/MInputSearch-CNuTAbYs.js +44 -0
  53. package/dist/MInputSearch-CNuTAbYs.js.map +1 -0
  54. package/dist/{MKbd-BR1GX5oK.cjs → MKbd-CnW3NUIu.cjs} +2 -2
  55. package/dist/{MKbd-BR1GX5oK.cjs.map → MKbd-CnW3NUIu.cjs.map} +1 -1
  56. package/dist/{MKbd-COb7oh_k.js → MKbd-DjfGyajR.js} +2 -2
  57. package/dist/{MKbd-COb7oh_k.js.map → MKbd-DjfGyajR.js.map} +1 -1
  58. package/dist/MLink-C6uwA6db.cjs +2 -0
  59. package/dist/MLink-C6uwA6db.cjs.map +1 -0
  60. package/dist/MLink-ixg0xFFI.js +31 -0
  61. package/dist/MLink-ixg0xFFI.js.map +1 -0
  62. package/dist/MLoader-CViA3zBo.js +44 -0
  63. package/dist/MLoader-CViA3zBo.js.map +1 -0
  64. package/dist/MLoader-DUOoOoNE.cjs +2 -0
  65. package/dist/MLoader-DUOoOoNE.cjs.map +1 -0
  66. package/dist/MPagination-BTGenxWW.js +122 -0
  67. package/dist/MPagination-BTGenxWW.js.map +1 -0
  68. package/dist/MPagination-DitmdtCc.cjs +2 -0
  69. package/dist/MPagination-DitmdtCc.cjs.map +1 -0
  70. package/dist/MPopover-CBDbUOW6.js +183 -0
  71. package/dist/MPopover-CBDbUOW6.js.map +1 -0
  72. package/dist/MPopover-ZeoU9hb5.cjs +2 -0
  73. package/dist/MPopover-ZeoU9hb5.cjs.map +1 -0
  74. package/dist/{MSimpleGrid-Ui8cI0ho.js → MSimpleGrid-C_QvLmck.js} +3 -3
  75. package/dist/MSimpleGrid-C_QvLmck.js.map +1 -0
  76. package/dist/MSimpleGrid-wgvjnxwM.cjs +2 -0
  77. package/dist/MSimpleGrid-wgvjnxwM.cjs.map +1 -0
  78. package/dist/{MSkeleton-Dhu-loDO.js → MSkeleton-BpcpBBJq.js} +12 -10
  79. package/dist/MSkeleton-BpcpBBJq.js.map +1 -0
  80. package/dist/MSkeleton-DuAN8Vcv.cjs +2 -0
  81. package/dist/MSkeleton-DuAN8Vcv.cjs.map +1 -0
  82. package/dist/MSlider-CLASUc2H.js +134 -0
  83. package/dist/MSlider-CLASUc2H.js.map +1 -0
  84. package/dist/MSlider-hONQBulE.cjs +2 -0
  85. package/dist/MSlider-hONQBulE.cjs.map +1 -0
  86. package/dist/MStack-BwAFeGGg.js +39 -0
  87. package/dist/MStack-BwAFeGGg.js.map +1 -0
  88. package/dist/MStack-CGII4A-q.cjs +2 -0
  89. package/dist/MStack-CGII4A-q.cjs.map +1 -0
  90. package/dist/MSubText-BeZk-fhz.js +17 -0
  91. package/dist/MSubText-BeZk-fhz.js.map +1 -0
  92. package/dist/MSubText-Dl1PfToZ.cjs +2 -0
  93. package/dist/MSubText-Dl1PfToZ.cjs.map +1 -0
  94. package/dist/MSurface-B_QnRLr5.js +74 -0
  95. package/dist/MSurface-B_QnRLr5.js.map +1 -0
  96. package/dist/MSurface-BrFo-JMJ.cjs +2 -0
  97. package/dist/MSurface-BrFo-JMJ.cjs.map +1 -0
  98. package/dist/MTag-BZrKN_DS.js +41 -0
  99. package/dist/MTag-BZrKN_DS.js.map +1 -0
  100. package/dist/MTag-DCE1vRJM.cjs +2 -0
  101. package/dist/MTag-DCE1vRJM.cjs.map +1 -0
  102. package/dist/MText-BUWQPoBM.js +45 -0
  103. package/dist/MText-BUWQPoBM.js.map +1 -0
  104. package/dist/MText-nsvLFsSv.cjs +2 -0
  105. package/dist/MText-nsvLFsSv.cjs.map +1 -0
  106. package/dist/MTooltip-BRSPJ3RY.js +100 -0
  107. package/dist/MTooltip-BRSPJ3RY.js.map +1 -0
  108. package/dist/MTooltip-Cj2Fxmzc.cjs +2 -0
  109. package/dist/MTooltip-Cj2Fxmzc.cjs.map +1 -0
  110. package/dist/MTreeView-BWCTlsU-.cjs +2 -0
  111. package/dist/MTreeView-BWCTlsU-.cjs.map +1 -0
  112. package/dist/MTreeView-CWcMwE-Z.js +554 -0
  113. package/dist/MTreeView-CWcMwE-Z.js.map +1 -0
  114. package/dist/calendar-2yhnCkGW.cjs +2 -0
  115. package/dist/calendar-2yhnCkGW.cjs.map +1 -0
  116. package/dist/calendar-DcNYDTVb.js +195 -0
  117. package/dist/calendar-DcNYDTVb.js.map +1 -0
  118. package/dist/calendar.cjs +1 -1
  119. package/dist/calendar.js +1 -1
  120. package/dist/{calendarDates-M_Dawj0j.js → calendarDates-Bpw_G_QR.js} +30 -19
  121. package/dist/calendarDates-Bpw_G_QR.js.map +1 -0
  122. package/dist/calendarDates-Cg0nm69Y.cjs +2 -0
  123. package/dist/calendarDates-Cg0nm69Y.cjs.map +1 -0
  124. package/dist/cards-Bp886TRb.cjs +2 -0
  125. package/dist/cards-Bp886TRb.cjs.map +1 -0
  126. package/dist/cards-BvER6Gx0.js +1277 -0
  127. package/dist/cards-BvER6Gx0.js.map +1 -0
  128. package/dist/cards.cjs +1 -1
  129. package/dist/cards.js +2 -2
  130. package/dist/{cn-YER3QsV1.js → cn-CUSXNnjF.js} +1 -1
  131. package/dist/{cn-YER3QsV1.js.map → cn-CUSXNnjF.js.map} +1 -1
  132. package/dist/{cn-CU5TNITO.cjs → cn-DYFxgzi2.cjs} +1 -1
  133. package/dist/{cn-CU5TNITO.cjs.map → cn-DYFxgzi2.cjs.map} +1 -1
  134. package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +1 -1
  135. package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +1 -1
  136. package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
  137. package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
  138. package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +4 -0
  139. package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +1 -1
  140. package/dist/components/cards/MStatCard/MStatCard.d.ts +1 -1
  141. package/dist/components/controls/MCheckbox/MCheckbox.types.d.ts +6 -0
  142. package/dist/components/controls/MLoadMore/MLoadMore.d.ts +1 -1
  143. package/dist/components/controls/MSlider/MSlider.d.ts +1 -1
  144. package/dist/components/controls/MSlider/MSlider.types.d.ts +5 -0
  145. package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
  146. package/dist/components/data/MTreeView/MTreeView.types.d.ts +6 -0
  147. package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +1 -1
  148. package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -3
  149. package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +1 -1
  150. package/dist/components/dropdowns/MAutocomplete/MAutocomplete.d.ts +1 -1
  151. package/dist/components/dropdowns/MAutocomplete/MAutocomplete.types.d.ts +8 -2
  152. package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
  153. package/dist/components/dropdowns/shared/TimeColumnListbox.d.ts +20 -0
  154. package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
  155. package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
  156. package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
  157. package/dist/components/feedback/MLoader/MLoader.d.ts +1 -1
  158. package/dist/components/feedback/MSpinner/MSpinner.d.ts +1 -1
  159. package/dist/components/feedback/MTag/MTag.d.ts +1 -1
  160. package/dist/components/inputs/MInput/MInput.types.d.ts +6 -1
  161. package/dist/components/inputs/MInput/useFormatCaret.d.ts +8 -0
  162. package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +5 -0
  163. package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
  164. package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
  165. package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
  166. package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
  167. package/dist/components/layout/MInline/MInline.d.ts +1 -1
  168. package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
  169. package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -0
  170. package/dist/components/layout/MSection/MSection.d.ts +1 -1
  171. package/dist/components/layout/MStack/MStack.d.ts +1 -1
  172. package/dist/components/layout/MStickyPanel/MStickyPanel.types.d.ts +4 -0
  173. package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
  174. package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
  175. package/dist/components/media/MAvatar/MAvatar.types.d.ts +10 -0
  176. package/dist/components/media/MCarousel/MCarousel.d.ts +1 -1
  177. package/dist/components/media/MImage/MImage.d.ts +1 -1
  178. package/dist/components/media/carouselA11y.d.ts +9 -0
  179. package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +1 -1
  180. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +4 -2
  181. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +3 -1
  182. package/dist/components/overlays/MPopconfirm/MPopconfirm.d.ts +1 -1
  183. package/dist/components/overlays/scrollLock.d.ts +14 -0
  184. package/dist/components/primitives/MPopover/MPopover.d.ts +1 -1
  185. package/dist/components/primitives/MPopover/MPopover.types.d.ts +32 -1
  186. package/dist/components/primitives/MPopover/popoverStack.d.ts +6 -0
  187. package/dist/components/typography/MHeading/MHeading.d.ts +2 -3
  188. package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
  189. package/dist/components/typography/MText/MText.d.ts +1 -1
  190. package/dist/controls-B4Dxaab4.js +491 -0
  191. package/dist/controls-B4Dxaab4.js.map +1 -0
  192. package/dist/controls-CyXEIOXD.cjs +2 -0
  193. package/dist/controls-CyXEIOXD.cjs.map +1 -0
  194. package/dist/controls.cjs +1 -1
  195. package/dist/controls.js +5 -5
  196. package/dist/creditCards-Bo2mrc53.cjs +2 -0
  197. package/dist/creditCards-Bo2mrc53.cjs.map +1 -0
  198. package/dist/{creditCards-D_iWmtG6.js → creditCards-DmDOyvcw.js} +20 -31
  199. package/dist/creditCards-DmDOyvcw.js.map +1 -0
  200. package/dist/data-BM3KG8oN.cjs +2 -0
  201. package/dist/data-BM3KG8oN.cjs.map +1 -0
  202. package/dist/data-qnR8OBmj.js +808 -0
  203. package/dist/data-qnR8OBmj.js.map +1 -0
  204. package/dist/data.cjs +1 -1
  205. package/dist/data.js +2 -2
  206. package/dist/{dateUtils-CUY6CRCf.js → dateUtils-B-ToNZq_.js} +5 -6
  207. package/dist/dateUtils-B-ToNZq_.js.map +1 -0
  208. package/dist/dateUtils-z2L7ZaxA.cjs +2 -0
  209. package/dist/dateUtils-z2L7ZaxA.cjs.map +1 -0
  210. package/dist/display-BLMOBofj.cjs +3 -0
  211. package/dist/display-BLMOBofj.cjs.map +1 -0
  212. package/dist/display-Dlb79lkA.js +968 -0
  213. package/dist/display-Dlb79lkA.js.map +1 -0
  214. package/dist/display.cjs +1 -1
  215. package/dist/display.js +2 -2
  216. package/dist/dropdowns-2_7VMEDo.js +2009 -0
  217. package/dist/dropdowns-2_7VMEDo.js.map +1 -0
  218. package/dist/dropdowns-DN7j8J-V.cjs +2 -0
  219. package/dist/dropdowns-DN7j8J-V.cjs.map +1 -0
  220. package/dist/dropdowns.cjs +1 -1
  221. package/dist/dropdowns.js +1 -1
  222. package/dist/feedback-CECayytY.js +335 -0
  223. package/dist/feedback-CECayytY.js.map +1 -0
  224. package/dist/feedback-paV8Ls-h.cjs +2 -0
  225. package/dist/feedback-paV8Ls-h.cjs.map +1 -0
  226. package/dist/feedback.cjs +1 -1
  227. package/dist/feedback.js +5 -5
  228. package/dist/form-Br56h5EF.cjs +2 -0
  229. package/dist/form-Br56h5EF.cjs.map +1 -0
  230. package/dist/form-CJmMZgsH.js +165 -0
  231. package/dist/form-CJmMZgsH.js.map +1 -0
  232. package/dist/form.cjs +1 -1
  233. package/dist/form.js +1 -1
  234. package/dist/{formatters-CNjg_h7-.cjs → formatters-CauWlsnM.cjs} +1 -1
  235. package/dist/{formatters-CNjg_h7-.cjs.map → formatters-CauWlsnM.cjs.map} +1 -1
  236. package/dist/{formatters-T0vvjMtB.js → formatters-Doqdu_w1.js} +1 -1
  237. package/dist/{formatters-T0vvjMtB.js.map → formatters-Doqdu_w1.js.map} +1 -1
  238. package/dist/frameworkTexts-CaqdiKHW.cjs +2 -0
  239. package/dist/frameworkTexts-CaqdiKHW.cjs.map +1 -0
  240. package/dist/frameworkTexts-o43FqY1A.js +505 -0
  241. package/dist/frameworkTexts-o43FqY1A.js.map +1 -0
  242. package/dist/i18n/MI18nProvider.d.ts +6 -1
  243. package/dist/i18n/frameworkTexts.d.ts +511 -0
  244. package/dist/i18n/index.d.ts +1 -0
  245. package/dist/i18n.cjs +1 -1
  246. package/dist/i18n.js +2 -2
  247. package/dist/icons-Bp8bB9TP.cjs +2 -0
  248. package/dist/icons-Bp8bB9TP.cjs.map +1 -0
  249. package/dist/{icons-CBMl-kOM.js → icons-IqEBmGh3.js} +1223 -1220
  250. package/dist/icons-IqEBmGh3.js.map +1 -0
  251. package/dist/icons.cjs +1 -1
  252. package/dist/icons.js +1 -1
  253. package/dist/illustrations.cjs +1 -1
  254. package/dist/illustrations.js +1 -1
  255. package/dist/index.cjs +1 -1
  256. package/dist/index.d.ts +4 -2
  257. package/dist/index.js +56 -56
  258. package/dist/inputs-C0BJzlA-.js +1923 -0
  259. package/dist/inputs-C0BJzlA-.js.map +1 -0
  260. package/dist/inputs-CvNBBLFA.cjs +2 -0
  261. package/dist/inputs-CvNBBLFA.cjs.map +1 -0
  262. package/dist/inputs.cjs +1 -1
  263. package/dist/inputs.js +4 -4
  264. package/dist/layout-BSFqGXLZ.js +1101 -0
  265. package/dist/layout-BSFqGXLZ.js.map +1 -0
  266. package/dist/layout-MKqvUkPv.cjs +2 -0
  267. package/dist/layout-MKqvUkPv.cjs.map +1 -0
  268. package/dist/layout.cjs +1 -1
  269. package/dist/layout.js +6 -6
  270. package/dist/{layoutProps-Ck4VtGm9.cjs → layoutProps-B8y2XwHy.cjs} +1 -1
  271. package/dist/{layoutProps-Ck4VtGm9.cjs.map → layoutProps-B8y2XwHy.cjs.map} +1 -1
  272. package/dist/{layoutProps-Cl6d1KmH.js → layoutProps-CE5-ghKw.js} +1 -1
  273. package/dist/{layoutProps-Cl6d1KmH.js.map → layoutProps-CE5-ghKw.js.map} +1 -1
  274. package/dist/{licensing-f5KYVz7D.js → licensing-BKmoAdfr.js} +5 -4
  275. package/dist/licensing-BKmoAdfr.js.map +1 -0
  276. package/dist/licensing-DVgjkw-s.cjs +2 -0
  277. package/dist/licensing-DVgjkw-s.cjs.map +1 -0
  278. package/dist/media-fiasAbBv.js +485 -0
  279. package/dist/media-fiasAbBv.js.map +1 -0
  280. package/dist/media-tr1s386v.cjs +2 -0
  281. package/dist/media-tr1s386v.cjs.map +1 -0
  282. package/dist/media.cjs +1 -1
  283. package/dist/media.js +2 -2
  284. package/dist/overlays-Df-NpmkW.cjs +2 -0
  285. package/dist/overlays-Df-NpmkW.cjs.map +1 -0
  286. package/dist/overlays-W0WW3fn7.js +607 -0
  287. package/dist/overlays-W0WW3fn7.js.map +1 -0
  288. package/dist/overlays.cjs +1 -1
  289. package/dist/overlays.js +3 -3
  290. package/dist/primitives.cjs +1 -1
  291. package/dist/primitives.js +2 -2
  292. package/dist/radioGroupKeys-Bm-Qeh8G.js +28 -0
  293. package/dist/radioGroupKeys-Bm-Qeh8G.js.map +1 -0
  294. package/dist/radioGroupKeys-COL8uXbH.cjs +2 -0
  295. package/dist/radioGroupKeys-COL8uXbH.cjs.map +1 -0
  296. package/dist/{relativeTime-Cr-NVzij.js → relativeTime-BqCuaBqb.js} +1 -1
  297. package/dist/{relativeTime-Cr-NVzij.js.map → relativeTime-BqCuaBqb.js.map} +1 -1
  298. package/dist/{relativeTime-DgYBUaVm.cjs → relativeTime-DUbW4O44.cjs} +1 -1
  299. package/dist/{relativeTime-DgYBUaVm.cjs.map → relativeTime-DUbW4O44.cjs.map} +1 -1
  300. package/dist/scrollLock-C9P9o6wH.cjs +2 -0
  301. package/dist/scrollLock-C9P9o6wH.cjs.map +1 -0
  302. package/dist/scrollLock-D27VmgPV.js +14 -0
  303. package/dist/scrollLock-D27VmgPV.js.map +1 -0
  304. package/dist/style-runtime.cjs +1 -1
  305. package/dist/style-runtime.js +1 -1
  306. package/dist/styles.css +1 -1
  307. package/dist/theme/MThemeProvider.d.ts +18 -1
  308. package/dist/theme/index.d.ts +2 -2
  309. package/dist/{theme-DAOU1aPs.js → theme-B_juOenJ.js} +71 -61
  310. package/dist/theme-B_juOenJ.js.map +1 -0
  311. package/dist/theme-ByPZH0dh.cjs +2 -0
  312. package/dist/theme-ByPZH0dh.cjs.map +1 -0
  313. package/dist/theme.cjs +1 -1
  314. package/dist/theme.js +2 -2
  315. package/dist/{typography-C806GYT4.js → typography-DNcB8dOy.js} +3 -3
  316. package/dist/{typography-C806GYT4.js.map → typography-DNcB8dOy.js.map} +1 -1
  317. package/dist/{typography-4v01oNWx.cjs → typography-I7aeG8pH.cjs} +2 -2
  318. package/dist/{typography-4v01oNWx.cjs.map → typography-I7aeG8pH.cjs.map} +1 -1
  319. package/dist/typography.cjs +1 -1
  320. package/dist/typography.js +6 -6
  321. package/dist/useGhostText-CKsb8Ufa.js +240 -0
  322. package/dist/useGhostText-CKsb8Ufa.js.map +1 -0
  323. package/dist/useGhostText-DO-tfxS0.cjs +2 -0
  324. package/dist/useGhostText-DO-tfxS0.cjs.map +1 -0
  325. package/dist/useModalLayer-CpOPSDbf.js +128 -0
  326. package/dist/useModalLayer-CpOPSDbf.js.map +1 -0
  327. package/dist/useModalLayer-Cyt93Prs.cjs +2 -0
  328. package/dist/useModalLayer-Cyt93Prs.cjs.map +1 -0
  329. package/dist/utils/calendarDates.d.ts +5 -0
  330. package/dist/utils/radioGroupKeys.d.ts +9 -0
  331. package/dist/utils/useDateGridNav.d.ts +39 -0
  332. package/dist/utils/useGhostText.d.ts +2 -1
  333. package/dist/utils/useKeyboardNav.d.ts +51 -5
  334. package/dist/utils/useModalLayer.d.ts +4 -0
  335. package/dist/utils/useRovingToolbar.d.ts +26 -0
  336. package/dist/utils/validationMessages.d.ts +15 -0
  337. package/dist/utils.cjs +1 -1
  338. package/dist/utils.entry.d.ts +3 -1
  339. package/dist/utils.js +11 -11
  340. package/dist/validationMessages-BFimXxlT.js +23 -0
  341. package/dist/validationMessages-BFimXxlT.js.map +1 -0
  342. package/dist/validationMessages-iHu7apWr.cjs +2 -0
  343. package/dist/validationMessages-iHu7apWr.cjs.map +1 -0
  344. package/dist/validators-SZmLxnir.cjs +2 -0
  345. package/dist/validators-SZmLxnir.cjs.map +1 -0
  346. package/dist/{validators-DVYOtFnw.js → validators-ULebNme2.js} +107 -106
  347. package/dist/validators-ULebNme2.js.map +1 -0
  348. package/package.json +1 -1
  349. package/dist/MAvatar-DHNB3829.cjs +0 -2
  350. package/dist/MAvatar-DHNB3829.cjs.map +0 -1
  351. package/dist/MAvatar-GeRL-CNO.js +0 -63
  352. package/dist/MAvatar-GeRL-CNO.js.map +0 -1
  353. package/dist/MButton-CEwo8lUB.js +0 -115
  354. package/dist/MButton-CEwo8lUB.js.map +0 -1
  355. package/dist/MButton-CnAr77Za.cjs +0 -2
  356. package/dist/MButton-CnAr77Za.cjs.map +0 -1
  357. package/dist/MCard-BqSkGAgf.js.map +0 -1
  358. package/dist/MCard-P8OoswWM.cjs.map +0 -1
  359. package/dist/MCheckbox-BxFBADcE.js +0 -59
  360. package/dist/MCheckbox-BxFBADcE.js.map +0 -1
  361. package/dist/MCheckbox-DozwF2ai.cjs +0 -2
  362. package/dist/MCheckbox-DozwF2ai.cjs.map +0 -1
  363. package/dist/MConflictIllustration-2QL-BHYv.cjs +0 -2
  364. package/dist/MConflictIllustration-2QL-BHYv.cjs.map +0 -1
  365. package/dist/MConflictIllustration-znC7ijmP.js.map +0 -1
  366. package/dist/MDetailList-CThQvoyf.cjs +0 -2
  367. package/dist/MDetailList-CThQvoyf.cjs.map +0 -1
  368. package/dist/MDetailList-Cx9H81xT.js +0 -98
  369. package/dist/MDetailList-Cx9H81xT.js.map +0 -1
  370. package/dist/MDropdownMenu-DnKcCyW6.cjs +0 -2
  371. package/dist/MDropdownMenu-DnKcCyW6.cjs.map +0 -1
  372. package/dist/MDropdownMenu-DxbKN7Ui.js +0 -172
  373. package/dist/MDropdownMenu-DxbKN7Ui.js.map +0 -1
  374. package/dist/MGrid-BkRSGN2t.cjs +0 -2
  375. package/dist/MGrid-BkRSGN2t.cjs.map +0 -1
  376. package/dist/MGrid-CIz-2i6X.js +0 -265
  377. package/dist/MGrid-CIz-2i6X.js.map +0 -1
  378. package/dist/MHeading-AYQ8_GFP.cjs +0 -2
  379. package/dist/MHeading-AYQ8_GFP.cjs.map +0 -1
  380. package/dist/MHeading-DcGxUMwC.js +0 -21
  381. package/dist/MHeading-DcGxUMwC.js.map +0 -1
  382. package/dist/MI18nProvider-CqAwaswx.cjs +0 -2
  383. package/dist/MI18nProvider-CqAwaswx.cjs.map +0 -1
  384. package/dist/MI18nProvider-VH14CI8u.js +0 -72
  385. package/dist/MI18nProvider-VH14CI8u.js.map +0 -1
  386. package/dist/MInput-BYj2BdUe.cjs +0 -2
  387. package/dist/MInput-BYj2BdUe.cjs.map +0 -1
  388. package/dist/MInput-nodE-CZF.js +0 -188
  389. package/dist/MInput-nodE-CZF.js.map +0 -1
  390. package/dist/MInputCVC-9XWryaTz.cjs +0 -2
  391. package/dist/MInputCVC-9XWryaTz.cjs.map +0 -1
  392. package/dist/MInputCVC-CrDTaUXm.js +0 -321
  393. package/dist/MInputCVC-CrDTaUXm.js.map +0 -1
  394. package/dist/MInputSearch-BMgCHjFk.js +0 -43
  395. package/dist/MInputSearch-BMgCHjFk.js.map +0 -1
  396. package/dist/MInputSearch-BiVI1jNc.cjs +0 -2
  397. package/dist/MInputSearch-BiVI1jNc.cjs.map +0 -1
  398. package/dist/MLink-CAl6N6_z.js +0 -31
  399. package/dist/MLink-CAl6N6_z.js.map +0 -1
  400. package/dist/MLink-Dk_ReE6i.cjs +0 -2
  401. package/dist/MLink-Dk_ReE6i.cjs.map +0 -1
  402. package/dist/MLoader-CYp0OJU_.js +0 -41
  403. package/dist/MLoader-CYp0OJU_.js.map +0 -1
  404. package/dist/MLoader-DvmFle31.cjs +0 -2
  405. package/dist/MLoader-DvmFle31.cjs.map +0 -1
  406. package/dist/MPagination-E7IixIeo.js +0 -113
  407. package/dist/MPagination-E7IixIeo.js.map +0 -1
  408. package/dist/MPagination-reDU9xTW.cjs +0 -2
  409. package/dist/MPagination-reDU9xTW.cjs.map +0 -1
  410. package/dist/MPopover-8gYD3Ogq.js +0 -118
  411. package/dist/MPopover-8gYD3Ogq.js.map +0 -1
  412. package/dist/MPopover-B3npyAkL.cjs +0 -2
  413. package/dist/MPopover-B3npyAkL.cjs.map +0 -1
  414. package/dist/MPortal-Ba2Sxset.js +0 -10
  415. package/dist/MPortal-Ba2Sxset.js.map +0 -1
  416. package/dist/MPortal-CuBXhhl_.cjs +0 -2
  417. package/dist/MPortal-CuBXhhl_.cjs.map +0 -1
  418. package/dist/MSimpleGrid-BchGYPMi.cjs +0 -2
  419. package/dist/MSimpleGrid-BchGYPMi.cjs.map +0 -1
  420. package/dist/MSimpleGrid-Ui8cI0ho.js.map +0 -1
  421. package/dist/MSkeleton-DPa_G_2X.cjs +0 -2
  422. package/dist/MSkeleton-DPa_G_2X.cjs.map +0 -1
  423. package/dist/MSkeleton-Dhu-loDO.js.map +0 -1
  424. package/dist/MSlider-BRjhyBSc.js +0 -75
  425. package/dist/MSlider-BRjhyBSc.js.map +0 -1
  426. package/dist/MSlider-w5214a-W.cjs +0 -2
  427. package/dist/MSlider-w5214a-W.cjs.map +0 -1
  428. package/dist/MStack-Dt-rWvg3.js +0 -39
  429. package/dist/MStack-Dt-rWvg3.js.map +0 -1
  430. package/dist/MStack-nc6Y_9K3.cjs +0 -2
  431. package/dist/MStack-nc6Y_9K3.cjs.map +0 -1
  432. package/dist/MSubText-B0tXiuAp.js +0 -17
  433. package/dist/MSubText-B0tXiuAp.js.map +0 -1
  434. package/dist/MSubText-C6v6Exa2.cjs +0 -2
  435. package/dist/MSubText-C6v6Exa2.cjs.map +0 -1
  436. package/dist/MSurface-BjE-mL1L.cjs +0 -2
  437. package/dist/MSurface-BjE-mL1L.cjs.map +0 -1
  438. package/dist/MSurface-CpDJCdb5.js +0 -74
  439. package/dist/MSurface-CpDJCdb5.js.map +0 -1
  440. package/dist/MTag-BgOxiahL.cjs +0 -2
  441. package/dist/MTag-BgOxiahL.cjs.map +0 -1
  442. package/dist/MTag-cw3cIGHX.js +0 -41
  443. package/dist/MTag-cw3cIGHX.js.map +0 -1
  444. package/dist/MText-BDI4mdw8.cjs +0 -2
  445. package/dist/MText-BDI4mdw8.cjs.map +0 -1
  446. package/dist/MText-DhbAjtUE.js +0 -45
  447. package/dist/MText-DhbAjtUE.js.map +0 -1
  448. package/dist/MTooltip-BAgHlv5I.cjs +0 -2
  449. package/dist/MTooltip-BAgHlv5I.cjs.map +0 -1
  450. package/dist/MTooltip-CJxvlkOX.js +0 -92
  451. package/dist/MTooltip-CJxvlkOX.js.map +0 -1
  452. package/dist/MTreeView-DsBnYQMT.js +0 -315
  453. package/dist/MTreeView-DsBnYQMT.js.map +0 -1
  454. package/dist/MTreeView-LiJ5o-zy.cjs +0 -2
  455. package/dist/MTreeView-LiJ5o-zy.cjs.map +0 -1
  456. package/dist/calendar-Bq6NMNnS.js +0 -193
  457. package/dist/calendar-Bq6NMNnS.js.map +0 -1
  458. package/dist/calendar-C57BH8Nd.cjs +0 -2
  459. package/dist/calendar-C57BH8Nd.cjs.map +0 -1
  460. package/dist/calendarDates-M_Dawj0j.js.map +0 -1
  461. package/dist/calendarDates-qm047RW2.cjs +0 -2
  462. package/dist/calendarDates-qm047RW2.cjs.map +0 -1
  463. package/dist/cards-D4xJVd4q.js +0 -1227
  464. package/dist/cards-D4xJVd4q.js.map +0 -1
  465. package/dist/cards-Du6dbZSQ.cjs +0 -2
  466. package/dist/cards-Du6dbZSQ.cjs.map +0 -1
  467. package/dist/controls-BKoc_yel.js +0 -475
  468. package/dist/controls-BKoc_yel.js.map +0 -1
  469. package/dist/controls-Ck-PMt__.cjs +0 -2
  470. package/dist/controls-Ck-PMt__.cjs.map +0 -1
  471. package/dist/creditCards-D_HwRUBz.cjs +0 -2
  472. package/dist/creditCards-D_HwRUBz.cjs.map +0 -1
  473. package/dist/creditCards-D_iWmtG6.js.map +0 -1
  474. package/dist/data-CdQximqm.js +0 -689
  475. package/dist/data-CdQximqm.js.map +0 -1
  476. package/dist/data-PS4ygCyj.cjs +0 -2
  477. package/dist/data-PS4ygCyj.cjs.map +0 -1
  478. package/dist/dateUtils-CUY6CRCf.js.map +0 -1
  479. package/dist/dateUtils-Dq1vaA-D.cjs +0 -2
  480. package/dist/dateUtils-Dq1vaA-D.cjs.map +0 -1
  481. package/dist/display-YC1fVpXA.js +0 -782
  482. package/dist/display-YC1fVpXA.js.map +0 -1
  483. package/dist/display-slIo1bQI.cjs +0 -3
  484. package/dist/display-slIo1bQI.cjs.map +0 -1
  485. package/dist/dropdowns-DFbUoZ8Q.cjs +0 -2
  486. package/dist/dropdowns-DFbUoZ8Q.cjs.map +0 -1
  487. package/dist/dropdowns-nW3MY5XG.js +0 -1715
  488. package/dist/dropdowns-nW3MY5XG.js.map +0 -1
  489. package/dist/feedback-6MNb2Xyk.cjs +0 -2
  490. package/dist/feedback-6MNb2Xyk.cjs.map +0 -1
  491. package/dist/feedback-CPwJaQHY.js +0 -259
  492. package/dist/feedback-CPwJaQHY.js.map +0 -1
  493. package/dist/form-CMsZo6Dm.cjs +0 -2
  494. package/dist/form-CMsZo6Dm.cjs.map +0 -1
  495. package/dist/form-WU6DcQGD.js +0 -164
  496. package/dist/form-WU6DcQGD.js.map +0 -1
  497. package/dist/frameworkTexts-BSXUtXOp.cjs +0 -2
  498. package/dist/frameworkTexts-BSXUtXOp.cjs.map +0 -1
  499. package/dist/frameworkTexts-DP5RUl19.js +0 -131
  500. package/dist/frameworkTexts-DP5RUl19.js.map +0 -1
  501. package/dist/icons-CBMl-kOM.js.map +0 -1
  502. package/dist/icons-D3n9-919.cjs +0 -2
  503. package/dist/icons-D3n9-919.cjs.map +0 -1
  504. package/dist/inputs-B7rGMLMr.js +0 -1753
  505. package/dist/inputs-B7rGMLMr.js.map +0 -1
  506. package/dist/inputs-BiN62hgH.cjs +0 -2
  507. package/dist/inputs-BiN62hgH.cjs.map +0 -1
  508. package/dist/layout-BMggJ_qO.cjs +0 -2
  509. package/dist/layout-BMggJ_qO.cjs.map +0 -1
  510. package/dist/layout-DBYHyCTr.js +0 -883
  511. package/dist/layout-DBYHyCTr.js.map +0 -1
  512. package/dist/licensing-Be3g-PJt.cjs +0 -2
  513. package/dist/licensing-Be3g-PJt.cjs.map +0 -1
  514. package/dist/licensing-f5KYVz7D.js.map +0 -1
  515. package/dist/media-BPzMgzqE.js +0 -405
  516. package/dist/media-BPzMgzqE.js.map +0 -1
  517. package/dist/media-D63hxCAJ.cjs +0 -2
  518. package/dist/media-D63hxCAJ.cjs.map +0 -1
  519. package/dist/overlays-CCeYD6hT.js +0 -555
  520. package/dist/overlays-CCeYD6hT.js.map +0 -1
  521. package/dist/overlays-CsRN5OG8.cjs +0 -2
  522. package/dist/overlays-CsRN5OG8.cjs.map +0 -1
  523. package/dist/popoverStack--0r2oJCD.js +0 -44
  524. package/dist/popoverStack--0r2oJCD.js.map +0 -1
  525. package/dist/popoverStack-BmMk-VZJ.cjs +0 -2
  526. package/dist/popoverStack-BmMk-VZJ.cjs.map +0 -1
  527. package/dist/theme-CJuqObWL.cjs +0 -2
  528. package/dist/theme-CJuqObWL.cjs.map +0 -1
  529. package/dist/theme-DAOU1aPs.js.map +0 -1
  530. package/dist/useGhostText-DG0bzcao.js +0 -68
  531. package/dist/useGhostText-DG0bzcao.js.map +0 -1
  532. package/dist/useGhostText-mibV4s1-.cjs +0 -2
  533. package/dist/useGhostText-mibV4s1-.cjs.map +0 -1
  534. package/dist/useKeyboardNav-CCUoRMgm.cjs +0 -2
  535. package/dist/useKeyboardNav-CCUoRMgm.cjs.map +0 -1
  536. package/dist/useKeyboardNav-iEXOdEMB.js +0 -43
  537. package/dist/useKeyboardNav-iEXOdEMB.js.map +0 -1
  538. package/dist/useModalLayer-Bf4TcEz-.js +0 -58
  539. package/dist/useModalLayer-Bf4TcEz-.js.map +0 -1
  540. package/dist/useModalLayer-DxYhhgRO.cjs +0 -2
  541. package/dist/useModalLayer-DxYhhgRO.cjs.map +0 -1
  542. package/dist/utils/proActivationWarning.d.ts +0 -7
  543. package/dist/validators-B6yWdsu2.cjs +0 -2
  544. package/dist/validators-B6yWdsu2.cjs.map +0 -1
  545. package/dist/validators-DVYOtFnw.js.map +0 -1
@@ -1,259 +0,0 @@
1
- import { r as e } from "./theme-DAOU1aPs.js";
2
- import { Ci as t, Ei as n, In as r, Ln as i, Pn as a, Si as o, Ti as s, Xi as c, wi as l } from "./icons-CBMl-kOM.js";
3
- import { t as u } from "./cn-YER3QsV1.js";
4
- import { t as d } from "./MPortal-Ba2Sxset.js";
5
- import { t as f } from "./MButton-CEwo8lUB.js";
6
- import { n as p } from "./frameworkTexts-DP5RUl19.js";
7
- import { createContext as m, useCallback as h, useContext as g, useEffect as _, useMemo as v, useRef as y, useState as b } from "react";
8
- import { jsx as x, jsxs as S } from "react/jsx-runtime";
9
- //#region src/components/feedback/statusIcons.tsx
10
- var C = {
11
- success: /* @__PURE__ */ x(t, {}),
12
- warning: /* @__PURE__ */ x(n, {}),
13
- error: /* @__PURE__ */ x(l, {}),
14
- info: /* @__PURE__ */ x(s, {}),
15
- primary: /* @__PURE__ */ x(s, {}),
16
- neutral: /* @__PURE__ */ x(o, {}),
17
- light: /* @__PURE__ */ x(i, {}),
18
- dark: /* @__PURE__ */ x(r, {}),
19
- news: /* @__PURE__ */ x(a, {})
20
- };
21
- function w(e) {
22
- return e ? C[e] ?? C.info : C.info;
23
- }
24
- //#endregion
25
- //#region src/components/feedback/MAlert/MAlert.tsx
26
- function T({ color: t = "info", icon: n = !0, title: r, hidden: i, className: a, children: o, ...s }) {
27
- let c = n === !1 ? null : n === !0 ? w(t) : n;
28
- return /* @__PURE__ */ S("div", {
29
- className: u("alert", `color-${t}`, a),
30
- role: "status",
31
- ...e(i),
32
- ...s,
33
- children: [c && /* @__PURE__ */ x("span", {
34
- className: "icon",
35
- children: c
36
- }), /* @__PURE__ */ S("div", {
37
- className: "main",
38
- children: [r && /* @__PURE__ */ x("div", {
39
- className: "title",
40
- children: r
41
- }), o && /* @__PURE__ */ x("div", {
42
- className: "content",
43
- children: o
44
- })]
45
- })]
46
- });
47
- }
48
- //#endregion
49
- //#region src/components/feedback/MBanner/MBanner.tsx
50
- function E({ color: t = "primary", variant: n = "filled", icon: r, action: i, hidden: a, dismissible: o = !1, onDismiss: s, className: l, children: d, ...m }) {
51
- let h = p(), [g, _] = b(!0), [v, C] = b(!1), w = y(null);
52
- if (!g) return null;
53
- let T = () => {
54
- if (v) return;
55
- C(!0);
56
- let e = w.current;
57
- if (!e) {
58
- _(!1), s?.();
59
- return;
60
- }
61
- let t = !1, n = () => {
62
- t || (t = !0, e.removeEventListener("transitionend", r), window.clearTimeout(i), _(!1), C(!1), s?.());
63
- }, r = (t) => {
64
- t.target === e && t.propertyName === "grid-template-rows" && n();
65
- };
66
- e.addEventListener("transitionend", r);
67
- let i = window.setTimeout(n, 1e3);
68
- };
69
- return /* @__PURE__ */ x("div", {
70
- ref: w,
71
- className: u("banner-wrap", v && "dismissing"),
72
- ...e(a),
73
- children: /* @__PURE__ */ S("div", {
74
- className: u("banner", `color-${t}`, n, l),
75
- ...m,
76
- children: [
77
- r && /* @__PURE__ */ x("span", {
78
- className: "banner-icon",
79
- children: r
80
- }),
81
- /* @__PURE__ */ x("div", {
82
- className: "banner-content",
83
- children: d
84
- }),
85
- i && /* @__PURE__ */ x("div", {
86
- className: "banner-action",
87
- children: i
88
- }),
89
- o && /* @__PURE__ */ x(f, {
90
- variant: "link",
91
- color: "neutral",
92
- iconOnly: !0,
93
- size: "sm",
94
- className: "banner-dismiss",
95
- onClick: T,
96
- "aria-label": h.dismiss,
97
- children: /* @__PURE__ */ x(c, {})
98
- })
99
- ]
100
- })
101
- });
102
- }
103
- //#endregion
104
- //#region src/components/feedback/MProgressRing/MProgressRing.tsx
105
- var D = {
106
- xs: 24,
107
- sm: 36,
108
- md: 56,
109
- lg: 88,
110
- xl: 128
111
- }, O = {
112
- xs: 2,
113
- sm: 3,
114
- md: 4,
115
- lg: 6,
116
- xl: 8
117
- };
118
- function k(e, t, n) {
119
- return Math.max(t, Math.min(n, e));
120
- }
121
- function A(e) {
122
- return typeof e == "number" ? e : D[e ?? "md"] ?? D.md;
123
- }
124
- function j(e, t) {
125
- return typeof e == "number" ? e : typeof t == "number" ? Math.max(2, Math.round(t / 14)) : O[t ?? "md"] ?? O.md;
126
- }
127
- function M({ value: e, size: t = "md", color: n = "primary", thickness: r, showPercent: i = !0, label: a, ariaLabel: o, className: s, style: c, ...l }) {
128
- let d = k(Math.round(e), 0, 100), f = A(t), p = j(r, t), m = (f - p) / 2, h = 2 * Math.PI * m, g = h * (1 - d / 100), _ = {
129
- width: `${f}px`,
130
- height: `${f}px`,
131
- ...c
132
- }, v = typeof t == "string" ? t : "custom", y = o ?? `Loading ${d}%`, b = a === void 0 ? i : a !== null;
133
- return /* @__PURE__ */ S("div", {
134
- className: u("progress-ring", v, n && `color-${n}`, s),
135
- style: _,
136
- role: "progressbar",
137
- "aria-valuenow": d,
138
- "aria-valuemin": 0,
139
- "aria-valuemax": 100,
140
- "aria-label": y,
141
- ...l,
142
- children: [/* @__PURE__ */ S("svg", {
143
- className: "progress-ring-svg",
144
- width: f,
145
- height: f,
146
- viewBox: `0 0 ${f} ${f}`,
147
- "aria-hidden": "true",
148
- children: [/* @__PURE__ */ x("circle", {
149
- className: "progress-ring-track",
150
- cx: f / 2,
151
- cy: f / 2,
152
- r: m,
153
- fill: "none",
154
- strokeWidth: p
155
- }), /* @__PURE__ */ x("circle", {
156
- className: "progress-ring-indicator",
157
- cx: f / 2,
158
- cy: f / 2,
159
- r: m,
160
- fill: "none",
161
- strokeWidth: p,
162
- strokeDasharray: h,
163
- strokeDashoffset: g,
164
- strokeLinecap: "round",
165
- transform: `rotate(-90 ${f / 2} ${f / 2})`
166
- })]
167
- }), b ? /* @__PURE__ */ x("span", {
168
- className: "progress-ring-label",
169
- "aria-hidden": "true",
170
- children: a === void 0 ? `${d}%` : a
171
- }) : null]
172
- });
173
- }
174
- //#endregion
175
- //#region src/components/feedback/MToast/MToastContext.ts
176
- var N = m(null), P = N.Provider;
177
- function F() {
178
- let e = g(N);
179
- if (!e) throw Error("useMToast must be used inside MToastProvider");
180
- return e;
181
- }
182
- //#endregion
183
- //#region src/components/feedback/MToast/MToastItem.tsx
184
- function I({ entry: e, onDismiss: t }) {
185
- let n = p(), [r, i] = b(!1), a = e.duration ?? 4e3;
186
- _(() => {
187
- if (a <= 0) return;
188
- let e = setTimeout(() => i(!0), a);
189
- return () => clearTimeout(e);
190
- }, [a]);
191
- function o() {
192
- r && t(e.id);
193
- }
194
- let s = e.color || "info", l = e.icon === !1 ? null : e.icon === void 0 || e.icon === !0 ? w(s) : e.icon;
195
- return /* @__PURE__ */ S("div", {
196
- className: u("toast item", `color-${s}`, r && "exit"),
197
- role: "status",
198
- onAnimationEnd: o,
199
- children: [/* @__PURE__ */ S("div", {
200
- className: "toast body",
201
- children: [l && /* @__PURE__ */ x("span", {
202
- className: "toast icon",
203
- children: l
204
- }), /* @__PURE__ */ S("div", {
205
- className: "toast content",
206
- children: [e.title && /* @__PURE__ */ x("div", {
207
- className: "toast title",
208
- children: e.title
209
- }), e.message !== void 0 && e.message !== null && e.message !== "" && /* @__PURE__ */ x("div", {
210
- className: "toast message",
211
- children: e.message
212
- })]
213
- })]
214
- }), /* @__PURE__ */ x(f, {
215
- variant: "ghost",
216
- color: "neutral",
217
- iconOnly: !0,
218
- size: "xs",
219
- className: "toast close",
220
- onClick: () => i(!0),
221
- "aria-label": n.close,
222
- children: /* @__PURE__ */ x(c, {})
223
- })]
224
- });
225
- }
226
- //#endregion
227
- //#region src/components/feedback/MToast/MToastProvider.tsx
228
- var L = 0;
229
- function R({ position: e = "top-right", duration: t = 4e3, children: n }) {
230
- let [r, i] = b([]), a = y(t);
231
- a.current = t;
232
- let o = h((e) => {
233
- i((t) => t.filter((t) => t.id !== e));
234
- }, []), s = h((e) => {
235
- let t = `toast-${++L}`, n = {
236
- id: t,
237
- ...e,
238
- duration: e.duration ?? a.current
239
- };
240
- return i((e) => [...e, n]), t;
241
- }, []);
242
- return /* @__PURE__ */ S(P, {
243
- value: v(() => ({
244
- toast: s,
245
- dismiss: o
246
- }), [s, o]),
247
- children: [n, /* @__PURE__ */ x(d, { children: /* @__PURE__ */ x("div", {
248
- className: u("toast container", e),
249
- children: r.map((e) => /* @__PURE__ */ x(I, {
250
- entry: e,
251
- onDismiss: o
252
- }, e.id))
253
- }) })]
254
- });
255
- }
256
- //#endregion
257
- export { T as a, E as i, F as n, M as r, R as t };
258
-
259
- //# sourceMappingURL=feedback-CPwJaQHY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"feedback-CPwJaQHY.js","names":[],"sources":["../src/components/feedback/statusIcons.tsx","../src/components/feedback/MAlert/MAlert.tsx","../src/components/feedback/MBanner/MBanner.tsx","../src/components/feedback/MProgressRing/MProgressRing.tsx","../src/components/feedback/MToast/MToastContext.ts","../src/components/feedback/MToast/MToastItem.tsx","../src/components/feedback/MToast/MToastProvider.tsx"],"sourcesContent":["import type {ReactNode} from 'react'\nimport {\n MBoltIcon,\n MErrorIcon,\n MInfoIcon,\n MMoonIcon,\n MNeutralIcon,\n MSunIcon,\n MSuccessIcon,\n MWarningIcon,\n} from '../../icons'\n\nconst statusIcons: Record<string, ReactNode> = {\n success: <MSuccessIcon />,\n warning: <MWarningIcon />,\n error: <MErrorIcon />,\n info: <MInfoIcon />,\n primary: <MInfoIcon />,\n neutral: <MNeutralIcon />,\n light: <MSunIcon />,\n dark: <MMoonIcon />,\n news: <MBoltIcon />,\n}\n\nexport function getStatusIcon(color?: string) {\n if (!color) {\n return statusIcons.info\n }\n\n return statusIcons[color] ?? statusIcons.info\n}\n","import type {MAlertProps} from './MAlert.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {getStatusIcon} from '../statusIcons'\nimport './MAlert.css'\n\n// Render inline status messaging with optional heading content.\nexport function MAlert({color = 'info', icon = true, title, hidden, className, children, ...rest}: MAlertProps) {\n const iconView = icon === false ? null : icon === true ? getStatusIcon(color) : icon\n\n return (\n <div className={cn('alert', `color-${color}`, className)} role=\"status\" {...getHiddenProps(hidden)} {...rest}>\n {iconView && <span className=\"icon\">{iconView}</span>}\n <div className=\"main\">\n {title && <div className=\"title\">{title}</div>}\n {children && <div className=\"content\">{children}</div>}\n </div>\n </div>\n )\n}\n","import {useState, useRef} from 'react'\nimport type {MBannerProps} from './MBanner.types'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {MButton} from '../../controls'\nimport {MCloseIcon} from '../../../icons'\nimport './MBanner.css'\nimport {useMCommonTexts} from '../../../i18n/frameworkTexts'\n\n// Render a prominent banner for announcements, CTAs or dismissible messages.\nexport function MBanner({\n color = 'primary',\n variant = 'filled',\n icon,\n action,\n hidden,\n dismissible = false,\n onDismiss,\n className,\n children,\n ...rest\n}: MBannerProps) {\n const texts = useMCommonTexts()\n const [visible, setVisible] = useState(true)\n const [dismissing, setDismissing] = useState(false)\n const wrapRef = useRef<HTMLDivElement>(null)\n\n if (!visible) return null\n\n const handleDismiss = () => {\n if (dismissing) return\n setDismissing(true)\n const el = wrapRef.current\n if (!el) {\n setVisible(false)\n onDismiss?.()\n return\n }\n // Finish once: when the wrapper's height collapse ends, or after the fallback timeout.\n let done = false\n const finish = () => {\n if (done) return\n done = true\n el.removeEventListener('transitionend', onTransitionEnd)\n window.clearTimeout(fallback)\n setVisible(false)\n setDismissing(false)\n onDismiss?.()\n }\n const onTransitionEnd = (event: TransitionEvent) => {\n if (event.target === el && event.propertyName === 'grid-template-rows') finish()\n }\n el.addEventListener('transitionend', onTransitionEnd)\n const fallback = window.setTimeout(finish, 1000)\n }\n\n return (\n <div ref={wrapRef} className={cn('banner-wrap', dismissing && 'dismissing')} {...getHiddenProps(hidden)}>\n <div className={cn('banner', `color-${color}`, variant, className)} {...rest}>\n {icon && <span className=\"banner-icon\">{icon}</span>}\n <div className=\"banner-content\">{children}</div>\n {action && <div className=\"banner-action\">{action}</div>}\n {dismissible && (\n <MButton\n variant=\"link\"\n color=\"neutral\"\n iconOnly\n size=\"sm\"\n className=\"banner-dismiss\"\n onClick={handleDismiss}\n aria-label={texts.dismiss}\n >\n <MCloseIcon />\n </MButton>\n )}\n </div>\n </div>\n )\n}\n","import type {CSSProperties} from 'react'\nimport type {MProgressRingProps} from './MProgressRing.types'\nimport {cn} from '../../../utils/cn'\nimport './MProgressRing.css'\n\nconst SIZE_PX: Record<string, number> = {xs: 24, sm: 36, md: 56, lg: 88, xl: 128}\nconst DEFAULT_THICKNESS: Record<string, number> = {xs: 2, sm: 3, md: 4, lg: 6, xl: 8}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value))\n}\n\nfunction resolveDiameter(size: MProgressRingProps['size']): number {\n if (typeof size === 'number') return size\n return SIZE_PX[size ?? 'md'] ?? SIZE_PX.md\n}\n\nfunction resolveThickness(thickness: number | undefined, size: MProgressRingProps['size']): number {\n if (typeof thickness === 'number') return thickness\n if (typeof size === 'number') return Math.max(2, Math.round(size / 14))\n return DEFAULT_THICKNESS[size ?? 'md'] ?? DEFAULT_THICKNESS.md\n}\n\n/**\n * Determinate ring progress — 0–100 with optional centered percent label.\n * Visually consistent with `MLoader`/`MSpinner`: same MColor palette, same\n * size tokens (xs/sm/md/lg/xl). Use a number for a custom diameter when the\n * design needs an off-token size.\n */\nexport function MProgressRing({\n value,\n size = 'md',\n color = 'primary',\n thickness,\n showPercent = true,\n label,\n ariaLabel,\n className,\n style,\n ...rest\n}: MProgressRingProps) {\n const clampedValue = clamp(Math.round(value), 0, 100)\n const diameter = resolveDiameter(size)\n const stroke = resolveThickness(thickness, size)\n const radius = (diameter - stroke) / 2\n const circumference = 2 * Math.PI * radius\n const dashOffset = circumference * (1 - clampedValue / 100)\n\n const inlineStyle: CSSProperties = {\n width: `${diameter}px`,\n height: `${diameter}px`,\n ...style,\n }\n\n const sizeClass = typeof size === 'string' ? size : 'custom'\n const accessibleLabel = ariaLabel ?? `Loading ${clampedValue}%`\n const showLabel = label !== undefined ? label !== null : showPercent\n\n return (\n <div\n className={cn('progress-ring', sizeClass, color && `color-${color}`, className)}\n style={inlineStyle}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={accessibleLabel}\n {...rest}\n >\n <svg className=\"progress-ring-svg\" width={diameter} height={diameter} viewBox={`0 0 ${diameter} ${diameter}`} aria-hidden=\"true\">\n <circle\n className=\"progress-ring-track\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n />\n <circle\n className=\"progress-ring-indicator\"\n cx={diameter / 2}\n cy={diameter / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${diameter / 2} ${diameter / 2})`}\n />\n </svg>\n {showLabel ? (\n <span className=\"progress-ring-label\" aria-hidden=\"true\">\n {label !== undefined ? label : `${clampedValue}%`}\n </span>\n ) : null}\n </div>\n )\n}\n","import {createContext, useContext} from 'react'\nimport type {MToastContext as MToastContextType} from './MToast.types'\n\nconst ToastCtx = createContext<MToastContextType | null>(null)\n\nexport const MToastContextProvider = ToastCtx.Provider\n\nexport function useMToast(): MToastContextType {\n const ctx = useContext(ToastCtx)\n if (!ctx) throw new Error('useMToast must be used inside MToastProvider')\n return ctx\n}\n","import {useEffect, useState} from 'react'\nimport type {MToastEntry} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport {MCloseIcon} from '../../../icons'\nimport {MButton} from '../../controls'\nimport {getStatusIcon} from '../statusIcons'\nimport {useMCommonTexts} from '../../../i18n/frameworkTexts'\n\n// Single toast notification with enter/exit animation.\nexport function MToastItem({entry, onDismiss}: {entry: MToastEntry; onDismiss: (id: string) => void}) {\n const texts = useMCommonTexts()\n const [exiting, setExiting] = useState(false)\n const duration = entry.duration ?? 4000\n\n useEffect(() => {\n if (duration <= 0) return\n const timer = setTimeout(() => setExiting(true), duration)\n return () => clearTimeout(timer)\n }, [duration])\n\n function handleEnd() {\n if (exiting) onDismiss(entry.id)\n }\n\n const color = entry.color || 'info'\n const icon =\n entry.icon === false\n ? null\n : entry.icon === undefined || entry.icon === true\n ? getStatusIcon(color)\n : entry.icon\n\n return (\n <div className={cn('toast item', `color-${color}`, exiting && 'exit')} role=\"status\" onAnimationEnd={handleEnd}>\n <div className=\"toast body\">\n {icon && <span className=\"toast icon\">{icon}</span>}\n <div className=\"toast content\">\n {entry.title && <div className=\"toast title\">{entry.title}</div>}\n {entry.message !== undefined && entry.message !== null && entry.message !== '' && (\n <div className=\"toast message\">{entry.message}</div>\n )}\n </div>\n </div>\n <MButton\n variant=\"ghost\"\n color=\"neutral\"\n iconOnly\n size=\"xs\"\n className=\"toast close\"\n onClick={() => setExiting(true)}\n aria-label={texts.close}\n >\n <MCloseIcon />\n </MButton>\n </div>\n )\n}\n","import {useCallback, useMemo, useRef, useState} from 'react'\nimport {MPortal} from '../../primitives'\nimport {MToastContextProvider, useMToast} from './MToastContext'\nimport {MToastItem} from './MToastItem'\nimport type {MToastEntry, MToastOptions, MToastProviderProps} from './MToast.types'\nimport {cn} from '../../../utils/cn'\nimport './MToast.css'\n\nlet counter = 0\n\n// Global toast container with auto-dismiss and stacking.\nexport function MToastProvider({position = 'top-right', duration = 4000, children}: MToastProviderProps) {\n const [toasts, setToasts] = useState<MToastEntry[]>([])\n const defaultDuration = useRef(duration)\n defaultDuration.current = duration\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const toast = useCallback((options: MToastOptions) => {\n const id = `toast-${++counter}`\n const entry: MToastEntry = {\n id,\n ...options,\n duration: options.duration ?? defaultDuration.current,\n }\n setToasts((prev) => [...prev, entry])\n return id\n }, [])\n\n const ctx = useMemo(() => ({toast, dismiss}), [toast, dismiss])\n\n return (\n <MToastContextProvider value={ctx}>\n {children}\n <MPortal>\n <div className={cn('toast container', position)}>\n {toasts.map((entry) => (\n <MToastItem key={entry.id} entry={entry} onDismiss={dismiss} />\n ))}\n </div>\n </MPortal>\n </MToastContextProvider>\n )\n}\n\nexport {useMToast}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- const e=require(`./validators-B6yWdsu2.cjs`);require(`./core-w629c4ND.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(null);function i(){return(0,t.useContext)(r)}function a({initialValues:i={},onSubmit:a,onChange:o,validationMode:s=`onBlur`,children:c,className:l,style:u,noValidate:d=!0,...f}){let[p,m]=(0,t.useState)({...i}),[h,g]=(0,t.useState)({}),[_,v]=(0,t.useState)({}),[y,b]=(0,t.useState)(!1),x=(0,t.useRef)(new Map),S=(0,t.useRef)(p),C=(0,t.useCallback)(e=>{x.current.set(e.name,e)},[]),w=(0,t.useCallback)(e=>{x.current.delete(e)},[]),T=(0,t.useCallback)((t,n)=>{let r=x.current.get(t);if(!r)return{valid:!0};let i=n===void 0?S.current[t]:n,a=i==null?``:String(i);if(r.required){let t=e.g(a);if(!t.valid)return t}if(r.validate)for(let e of r.validate){let t=e(a);if(!t.valid)return t}return{valid:!0}},[]),E=(0,t.useCallback)((e,t)=>{let n=T(e,t);return g(t=>{if(n.valid){let n={...t};return delete n[e],n}return{...t,[e]:n.error}}),n},[T]),D=(0,t.useCallback)(()=>{let e=!0,t={};for(let[n]of x.current){let r=T(n);r.valid||(e=!1,t[n]=r.error)}g(t);let n={};for(let[e]of x.current)n[e]=!0;return v(n),e},[T]),O=(0,t.useCallback)((e,t)=>{let n={...S.current,[e]:t};S.current=n,m(n),o?.(n),s===`onChange`&&_[e]&&E(e,t)},[o,s,_,E]),k=(0,t.useCallback)((e,t)=>{g(n=>({...n,[e]:t}))},[]),A=(0,t.useCallback)((e,t)=>{v(n=>({...n,[e]:t})),s===`onBlur`&&t&&E(e)},[s,E]),j=(0,t.useCallback)(()=>{S.current={...i},m(S.current),g({}),v({}),b(!1)},[i]),M=(0,t.useCallback)(async e=>{if(e.preventDefault(),y||!D())return;b(!0);let t={setSubmitting:b,resetForm:j,setFieldError:k};try{await a?.(S.current,t)}finally{b(!1)}},[y,D,a,j,k]),N=(0,t.useMemo)(()=>({values:p,errors:h,touched:_,registerField:C,unregisterField:w,setFieldValue:O,setFieldError:k,setFieldTouched:A,validateField:E,validateAll:D,resetForm:j,isSubmitting:y}),[p,h,_,C,w,O,k,A,E,D,j,y]);return(0,n.jsx)(r.Provider,{value:N,children:(0,n.jsx)(`form`,{onSubmit:M,noValidate:d,className:`form${l?` ${l}`:``}`,style:u,...f,children:typeof c==`function`?c(N):c})})}function o(e,n){let r=i();(0,t.useEffect)(()=>{if(r)return r.registerField({name:e,validate:n?.validate,required:n?.required}),()=>r.unregisterField(e)},[r,e,n?.validate,n?.required]);let a=(0,t.useCallback)(t=>{r?.setFieldValue(e,t)},[r,e]),o=(0,t.useCallback)(()=>{r?.setFieldTouched(e,!0)},[r,e]);return{value:r?.values[e]??``,error:r?.errors[e],touched:r?.touched[e]??!1,onChange:a,onBlur:o}}Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return o}});
2
- //# sourceMappingURL=form-CMsZo6Dm.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-CMsZo6Dm.cjs","names":[],"sources":["../src/components/form/MForm/FormContext.ts","../src/components/form/MForm/MForm.tsx","../src/components/form/MForm/useFormField.ts"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MFormContextValue} from './MForm.types'\n\nexport const FormContext = createContext<MFormContextValue | null>(null)\n\n// Read the nearest form context to integrate custom fields with shared state.\nexport function useFormContext(): MFormContextValue | null {\n return useContext(FormContext)\n}\n","import {useState, useRef, useCallback, useMemo} from 'react'\nimport type * as React from 'react'\nimport type {MFormProps, MFieldRegistration, MFormContextValue, MFormHelpers} from './MForm.types'\nimport {FormContext} from './FormContext'\nimport {validateRequired} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './MForm.css'\n\n// Coordinate form values, validation state and submit helpers through context.\nexport function MForm({\n initialValues = {},\n onSubmit,\n onChange,\n validationMode = 'onBlur',\n children,\n className,\n style,\n noValidate = true,\n ...rest\n}: MFormProps) {\n const [values, setValues] = useState<Record<string, unknown>>({...initialValues})\n const [errors, setErrors] = useState<Record<string, string>>({})\n const [touched, setTouched] = useState<Record<string, boolean>>({})\n const [isSubmitting, setIsSubmitting] = useState(false)\n const fieldsRef = useRef<Map<string, MFieldRegistration>>(new Map())\n // Latest values outside the render cycle, so validation never reads a stale closure.\n const valuesRef = useRef<Record<string, unknown>>(values)\n\n // Track mounted fields so validation stays aligned with active inputs.\n const registerField = useCallback((reg: MFieldRegistration) => {\n fieldsRef.current.set(reg.name, reg)\n }, [])\n\n const unregisterField = useCallback((name: string) => {\n fieldsRef.current.delete(name)\n }, [])\n\n // Run required and custom validators without mutating visible error state yet.\n const validateFieldInternal = useCallback((name: string, val?: unknown): ValidationResult => {\n const reg = fieldsRef.current.get(name)\n if (!reg) return {valid: true}\n\n const fieldValue = val !== undefined ? val : valuesRef.current[name]\n const strValue = fieldValue != null ? String(fieldValue) : ''\n\n // Required check\n if (reg.required) {\n const reqResult = validateRequired(strValue)\n if (!reqResult.valid) return reqResult\n }\n\n // Custom validators\n if (reg.validate) {\n for (const validator of reg.validate) {\n const result = validator(strValue)\n if (!result.valid) return result\n }\n }\n\n return {valid: true}\n }, [])\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string, val?: unknown): ValidationResult => {\n const result = validateFieldInternal(name, val)\n setErrors((prev) => {\n if (result.valid) {\n const next = {...prev}\n delete next[name]\n return next\n }\n return {...prev, [name]: result.error!}\n })\n return result\n },\n [validateFieldInternal]\n )\n\n // Validate every registered field before submit.\n const validateAll = useCallback((): boolean => {\n let allValid = true\n const newErrors: Record<string, string> = {}\n\n for (const [name] of fieldsRef.current) {\n const result = validateFieldInternal(name)\n if (!result.valid) {\n allValid = false\n newErrors[name] = result.error!\n }\n }\n\n setErrors(newErrors)\n // Mark all as touched\n const allTouched: Record<string, boolean> = {}\n for (const [name] of fieldsRef.current) {\n allTouched[name] = true\n }\n setTouched(allTouched)\n\n return allValid\n }, [validateFieldInternal])\n\n // Update field values and trigger onChange or validation according to mode.\n const setFieldValue = useCallback(\n (name: string, val: unknown) => {\n const next = {...valuesRef.current, [name]: val}\n valuesRef.current = next\n setValues(next)\n onChange?.(next)\n\n if (validationMode === 'onChange' && touched[name]) {\n validateField(name, val)\n }\n },\n [onChange, validationMode, touched, validateField]\n )\n\n const setFieldError = useCallback((name: string, error: string) => {\n setErrors((prev) => ({...prev, [name]: error}))\n }, [])\n\n // Mark fields as touched so blur validation can start surfacing errors.\n const setFieldTouched = useCallback(\n (name: string, isTouched: boolean) => {\n setTouched((prev) => ({...prev, [name]: isTouched}))\n if (validationMode === 'onBlur' && isTouched) {\n validateField(name)\n }\n },\n [validationMode, validateField]\n )\n\n const resetForm = useCallback(() => {\n valuesRef.current = {...initialValues}\n setValues(valuesRef.current)\n setErrors({})\n setTouched({})\n setIsSubmitting(false)\n }, [initialValues])\n\n // Guard submit flow with validation and a single in-flight submission state.\n const handleSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (isSubmitting) return\n\n const valid = validateAll()\n if (!valid) return\n\n setIsSubmitting(true)\n const helpers: MFormHelpers = {\n setSubmitting: setIsSubmitting,\n resetForm,\n setFieldError,\n }\n\n try {\n await onSubmit?.(valuesRef.current, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, onSubmit, resetForm, setFieldError]\n )\n\n // Memoize the public form context to limit downstream re-renders.\n const ctx = useMemo<MFormContextValue>(\n () => ({\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n }),\n [\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n ]\n )\n\n return (\n <FormContext.Provider value={ctx}>\n <form\n onSubmit={handleSubmit}\n noValidate={noValidate}\n className={`form${className ? ` ${className}` : ''}`}\n style={style}\n {...rest}\n >\n {typeof children === 'function' ? children(ctx) : children}\n </form>\n </FormContext.Provider>\n )\n}\n","import {useEffect, useCallback} from 'react'\nimport {useFormContext} from './FormContext'\nimport type {ValidatorFn} from '../../../utils/validators'\n\nexport interface MUseFormFieldOptions {\n validate?: ValidatorFn[]\n required?: boolean\n}\n\nexport interface MUseFormFieldReturn {\n value: unknown\n error: string | undefined\n touched: boolean\n onChange: (value: unknown) => void\n onBlur: () => void\n}\n\n// Connect a field name to the nearest form context and expose field-level helpers.\nexport function useFormField(name: string, options?: MUseFormFieldOptions): MUseFormFieldReturn {\n const ctx = useFormContext()\n\n // Register the field definition so the form can validate and reset it centrally.\n useEffect(() => {\n if (!ctx) return\n ctx.registerField({\n name,\n validate: options?.validate,\n required: options?.required,\n })\n return () => ctx.unregisterField(name)\n }, [ctx, name, options?.validate, options?.required])\n\n // Forward value updates into the form state.\n const onChange = useCallback(\n (val: unknown) => {\n ctx?.setFieldValue(name, val)\n },\n [ctx, name]\n )\n\n // Mark the field as touched when the control loses focus.\n const onBlur = useCallback(() => {\n ctx?.setFieldTouched(name, true)\n }, [ctx, name])\n\n return {\n value: ctx?.values[name] ?? '',\n error: ctx?.errors[name],\n touched: ctx?.touched[name] ?? false,\n onChange,\n onBlur,\n }\n}\n"],"mappings":"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"}
@@ -1,164 +0,0 @@
1
- import { g as e } from "./validators-DVYOtFnw.js";
2
- import { createContext as t, useCallback as n, useContext as r, useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
3
- import { jsx as c } from "react/jsx-runtime";
4
- //#region src/components/form/MForm/FormContext.ts
5
- var l = t(null);
6
- function u() {
7
- return r(l);
8
- }
9
- //#endregion
10
- //#region src/components/form/MForm/MForm.tsx
11
- function d({ initialValues: t = {}, onSubmit: r, onChange: i, validationMode: u = "onBlur", children: d, className: f, style: p, noValidate: m = !0, ...h }) {
12
- let [g, _] = s({ ...t }), [v, y] = s({}), [b, x] = s({}), [S, C] = s(!1), w = o(/* @__PURE__ */ new Map()), T = o(g), E = n((e) => {
13
- w.current.set(e.name, e);
14
- }, []), D = n((e) => {
15
- w.current.delete(e);
16
- }, []), O = n((t, n) => {
17
- let r = w.current.get(t);
18
- if (!r) return { valid: !0 };
19
- let i = n === void 0 ? T.current[t] : n, a = i == null ? "" : String(i);
20
- if (r.required) {
21
- let t = e(a);
22
- if (!t.valid) return t;
23
- }
24
- if (r.validate) for (let e of r.validate) {
25
- let t = e(a);
26
- if (!t.valid) return t;
27
- }
28
- return { valid: !0 };
29
- }, []), k = n((e, t) => {
30
- let n = O(e, t);
31
- return y((t) => {
32
- if (n.valid) {
33
- let n = { ...t };
34
- return delete n[e], n;
35
- }
36
- return {
37
- ...t,
38
- [e]: n.error
39
- };
40
- }), n;
41
- }, [O]), A = n(() => {
42
- let e = !0, t = {};
43
- for (let [n] of w.current) {
44
- let r = O(n);
45
- r.valid || (e = !1, t[n] = r.error);
46
- }
47
- y(t);
48
- let n = {};
49
- for (let [e] of w.current) n[e] = !0;
50
- return x(n), e;
51
- }, [O]), j = n((e, t) => {
52
- let n = {
53
- ...T.current,
54
- [e]: t
55
- };
56
- T.current = n, _(n), i?.(n), u === "onChange" && b[e] && k(e, t);
57
- }, [
58
- i,
59
- u,
60
- b,
61
- k
62
- ]), M = n((e, t) => {
63
- y((n) => ({
64
- ...n,
65
- [e]: t
66
- }));
67
- }, []), N = n((e, t) => {
68
- x((n) => ({
69
- ...n,
70
- [e]: t
71
- })), u === "onBlur" && t && k(e);
72
- }, [u, k]), P = n(() => {
73
- T.current = { ...t }, _(T.current), y({}), x({}), C(!1);
74
- }, [t]), F = n(async (e) => {
75
- if (e.preventDefault(), S || !A()) return;
76
- C(!0);
77
- let t = {
78
- setSubmitting: C,
79
- resetForm: P,
80
- setFieldError: M
81
- };
82
- try {
83
- await r?.(T.current, t);
84
- } finally {
85
- C(!1);
86
- }
87
- }, [
88
- S,
89
- A,
90
- r,
91
- P,
92
- M
93
- ]), I = a(() => ({
94
- values: g,
95
- errors: v,
96
- touched: b,
97
- registerField: E,
98
- unregisterField: D,
99
- setFieldValue: j,
100
- setFieldError: M,
101
- setFieldTouched: N,
102
- validateField: k,
103
- validateAll: A,
104
- resetForm: P,
105
- isSubmitting: S
106
- }), [
107
- g,
108
- v,
109
- b,
110
- E,
111
- D,
112
- j,
113
- M,
114
- N,
115
- k,
116
- A,
117
- P,
118
- S
119
- ]);
120
- return /* @__PURE__ */ c(l.Provider, {
121
- value: I,
122
- children: /* @__PURE__ */ c("form", {
123
- onSubmit: F,
124
- noValidate: m,
125
- className: `form${f ? ` ${f}` : ""}`,
126
- style: p,
127
- ...h,
128
- children: typeof d == "function" ? d(I) : d
129
- })
130
- });
131
- }
132
- //#endregion
133
- //#region src/components/form/MForm/useFormField.ts
134
- function f(e, t) {
135
- let r = u();
136
- i(() => {
137
- if (r) return r.registerField({
138
- name: e,
139
- validate: t?.validate,
140
- required: t?.required
141
- }), () => r.unregisterField(e);
142
- }, [
143
- r,
144
- e,
145
- t?.validate,
146
- t?.required
147
- ]);
148
- let a = n((t) => {
149
- r?.setFieldValue(e, t);
150
- }, [r, e]), o = n(() => {
151
- r?.setFieldTouched(e, !0);
152
- }, [r, e]);
153
- return {
154
- value: r?.values[e] ?? "",
155
- error: r?.errors[e],
156
- touched: r?.touched[e] ?? !1,
157
- onChange: a,
158
- onBlur: o
159
- };
160
- }
161
- //#endregion
162
- export { d as n, u as r, f as t };
163
-
164
- //# sourceMappingURL=form-WU6DcQGD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-WU6DcQGD.js","names":[],"sources":["../src/components/form/MForm/FormContext.ts","../src/components/form/MForm/MForm.tsx","../src/components/form/MForm/useFormField.ts"],"sourcesContent":["import {createContext, useContext} from 'react'\nimport type {MFormContextValue} from './MForm.types'\n\nexport const FormContext = createContext<MFormContextValue | null>(null)\n\n// Read the nearest form context to integrate custom fields with shared state.\nexport function useFormContext(): MFormContextValue | null {\n return useContext(FormContext)\n}\n","import {useState, useRef, useCallback, useMemo} from 'react'\nimport type * as React from 'react'\nimport type {MFormProps, MFieldRegistration, MFormContextValue, MFormHelpers} from './MForm.types'\nimport {FormContext} from './FormContext'\nimport {validateRequired} from '../../../utils/validators'\nimport type {ValidationResult} from '../../../utils/validators'\nimport './MForm.css'\n\n// Coordinate form values, validation state and submit helpers through context.\nexport function MForm({\n initialValues = {},\n onSubmit,\n onChange,\n validationMode = 'onBlur',\n children,\n className,\n style,\n noValidate = true,\n ...rest\n}: MFormProps) {\n const [values, setValues] = useState<Record<string, unknown>>({...initialValues})\n const [errors, setErrors] = useState<Record<string, string>>({})\n const [touched, setTouched] = useState<Record<string, boolean>>({})\n const [isSubmitting, setIsSubmitting] = useState(false)\n const fieldsRef = useRef<Map<string, MFieldRegistration>>(new Map())\n // Latest values outside the render cycle, so validation never reads a stale closure.\n const valuesRef = useRef<Record<string, unknown>>(values)\n\n // Track mounted fields so validation stays aligned with active inputs.\n const registerField = useCallback((reg: MFieldRegistration) => {\n fieldsRef.current.set(reg.name, reg)\n }, [])\n\n const unregisterField = useCallback((name: string) => {\n fieldsRef.current.delete(name)\n }, [])\n\n // Run required and custom validators without mutating visible error state yet.\n const validateFieldInternal = useCallback((name: string, val?: unknown): ValidationResult => {\n const reg = fieldsRef.current.get(name)\n if (!reg) return {valid: true}\n\n const fieldValue = val !== undefined ? val : valuesRef.current[name]\n const strValue = fieldValue != null ? String(fieldValue) : ''\n\n // Required check\n if (reg.required) {\n const reqResult = validateRequired(strValue)\n if (!reqResult.valid) return reqResult\n }\n\n // Custom validators\n if (reg.validate) {\n for (const validator of reg.validate) {\n const result = validator(strValue)\n if (!result.valid) return result\n }\n }\n\n return {valid: true}\n }, [])\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string, val?: unknown): ValidationResult => {\n const result = validateFieldInternal(name, val)\n setErrors((prev) => {\n if (result.valid) {\n const next = {...prev}\n delete next[name]\n return next\n }\n return {...prev, [name]: result.error!}\n })\n return result\n },\n [validateFieldInternal]\n )\n\n // Validate every registered field before submit.\n const validateAll = useCallback((): boolean => {\n let allValid = true\n const newErrors: Record<string, string> = {}\n\n for (const [name] of fieldsRef.current) {\n const result = validateFieldInternal(name)\n if (!result.valid) {\n allValid = false\n newErrors[name] = result.error!\n }\n }\n\n setErrors(newErrors)\n // Mark all as touched\n const allTouched: Record<string, boolean> = {}\n for (const [name] of fieldsRef.current) {\n allTouched[name] = true\n }\n setTouched(allTouched)\n\n return allValid\n }, [validateFieldInternal])\n\n // Update field values and trigger onChange or validation according to mode.\n const setFieldValue = useCallback(\n (name: string, val: unknown) => {\n const next = {...valuesRef.current, [name]: val}\n valuesRef.current = next\n setValues(next)\n onChange?.(next)\n\n if (validationMode === 'onChange' && touched[name]) {\n validateField(name, val)\n }\n },\n [onChange, validationMode, touched, validateField]\n )\n\n const setFieldError = useCallback((name: string, error: string) => {\n setErrors((prev) => ({...prev, [name]: error}))\n }, [])\n\n // Mark fields as touched so blur validation can start surfacing errors.\n const setFieldTouched = useCallback(\n (name: string, isTouched: boolean) => {\n setTouched((prev) => ({...prev, [name]: isTouched}))\n if (validationMode === 'onBlur' && isTouched) {\n validateField(name)\n }\n },\n [validationMode, validateField]\n )\n\n const resetForm = useCallback(() => {\n valuesRef.current = {...initialValues}\n setValues(valuesRef.current)\n setErrors({})\n setTouched({})\n setIsSubmitting(false)\n }, [initialValues])\n\n // Guard submit flow with validation and a single in-flight submission state.\n const handleSubmit = useCallback(\n async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n if (isSubmitting) return\n\n const valid = validateAll()\n if (!valid) return\n\n setIsSubmitting(true)\n const helpers: MFormHelpers = {\n setSubmitting: setIsSubmitting,\n resetForm,\n setFieldError,\n }\n\n try {\n await onSubmit?.(valuesRef.current, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, onSubmit, resetForm, setFieldError]\n )\n\n // Memoize the public form context to limit downstream re-renders.\n const ctx = useMemo<MFormContextValue>(\n () => ({\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n }),\n [\n values,\n errors,\n touched,\n registerField,\n unregisterField,\n setFieldValue,\n setFieldError,\n setFieldTouched,\n validateField,\n validateAll,\n resetForm,\n isSubmitting,\n ]\n )\n\n return (\n <FormContext.Provider value={ctx}>\n <form\n onSubmit={handleSubmit}\n noValidate={noValidate}\n className={`form${className ? ` ${className}` : ''}`}\n style={style}\n {...rest}\n >\n {typeof children === 'function' ? children(ctx) : children}\n </form>\n </FormContext.Provider>\n )\n}\n","import {useEffect, useCallback} from 'react'\nimport {useFormContext} from './FormContext'\nimport type {ValidatorFn} from '../../../utils/validators'\n\nexport interface MUseFormFieldOptions {\n validate?: ValidatorFn[]\n required?: boolean\n}\n\nexport interface MUseFormFieldReturn {\n value: unknown\n error: string | undefined\n touched: boolean\n onChange: (value: unknown) => void\n onBlur: () => void\n}\n\n// Connect a field name to the nearest form context and expose field-level helpers.\nexport function useFormField(name: string, options?: MUseFormFieldOptions): MUseFormFieldReturn {\n const ctx = useFormContext()\n\n // Register the field definition so the form can validate and reset it centrally.\n useEffect(() => {\n if (!ctx) return\n ctx.registerField({\n name,\n validate: options?.validate,\n required: options?.required,\n })\n return () => ctx.unregisterField(name)\n }, [ctx, name, options?.validate, options?.required])\n\n // Forward value updates into the form state.\n const onChange = useCallback(\n (val: unknown) => {\n ctx?.setFieldValue(name, val)\n },\n [ctx, name]\n )\n\n // Mark the field as touched when the control loses focus.\n const onBlur = useCallback(() => {\n ctx?.setFieldTouched(name, true)\n }, [ctx, name])\n\n return {\n value: ctx?.values[name] ?? '',\n error: ctx?.errors[name],\n touched: ctx?.touched[name] ?? false,\n onChange,\n onBlur,\n }\n}\n"],"mappings":";;;;AAGA,IAAa,IAAc,EAAwC,KAAK;AAGxE,SAAgB,IAA2C;AACvD,QAAO,EAAW,EAAY;;;;ACElC,SAAgB,EAAM,EAClB,mBAAgB,EAAE,EAClB,aACA,aACA,oBAAiB,UACjB,aACA,cACA,UACA,gBAAa,IACb,GAAG,KACQ;CACX,IAAM,CAAC,GAAQ,KAAa,EAAkC,EAAC,GAAG,GAAc,CAAC,EAC3E,CAAC,GAAQ,KAAa,EAAiC,EAAE,CAAC,EAC1D,CAAC,GAAS,KAAc,EAAkC,EAAE,CAAC,EAC7D,CAAC,GAAc,KAAmB,EAAS,GAAM,EACjD,IAAY,kBAAwC,IAAI,KAAK,CAAC,EAE9D,IAAY,EAAgC,EAAO,EAGnD,IAAgB,GAAa,MAA4B;AAC3D,IAAU,QAAQ,IAAI,EAAI,MAAM,EAAI;IACrC,EAAE,CAAC,EAEA,IAAkB,GAAa,MAAiB;AAClD,IAAU,QAAQ,OAAO,EAAK;IAC/B,EAAE,CAAC,EAGA,IAAwB,GAAa,GAAc,MAAoC;EACzF,IAAM,IAAM,EAAU,QAAQ,IAAI,EAAK;AACvC,MAAI,CAAC,EAAK,QAAO,EAAC,OAAO,IAAK;EAE9B,IAAM,IAAa,MAAQ,KAAA,IAAkB,EAAU,QAAQ,KAAxB,GACjC,IAAW,KAAc,OAA4B,KAArB,OAAO,EAAW;AAGxD,MAAI,EAAI,UAAU;GACd,IAAM,IAAY,EAAiB,EAAS;AAC5C,OAAI,CAAC,EAAU,MAAO,QAAO;;AAIjC,MAAI,EAAI,SACJ,MAAK,IAAM,KAAa,EAAI,UAAU;GAClC,IAAM,IAAS,EAAU,EAAS;AAClC,OAAI,CAAC,EAAO,MAAO,QAAO;;AAIlC,SAAO,EAAC,OAAO,IAAK;IACrB,EAAE,CAAC,EAGA,IAAgB,GACjB,GAAc,MAAoC;EAC/C,IAAM,IAAS,EAAsB,GAAM,EAAI;AAS/C,SARA,GAAW,MAAS;AAChB,OAAI,EAAO,OAAO;IACd,IAAM,IAAO,EAAC,GAAG,GAAK;AAEtB,WADA,OAAO,EAAK,IACL;;AAEX,UAAO;IAAC,GAAG;KAAO,IAAO,EAAO;IAAO;IACzC,EACK;IAEX,CAAC,EAAsB,CAC1B,EAGK,IAAc,QAA2B;EAC3C,IAAI,IAAW,IACT,IAAoC,EAAE;AAE5C,OAAK,IAAM,CAAC,MAAS,EAAU,SAAS;GACpC,IAAM,IAAS,EAAsB,EAAK;AAC1C,GAAK,EAAO,UACR,IAAW,IACX,EAAU,KAAQ,EAAO;;AAIjC,IAAU,EAAU;EAEpB,IAAM,IAAsC,EAAE;AAC9C,OAAK,IAAM,CAAC,MAAS,EAAU,QAC3B,GAAW,KAAQ;AAIvB,SAFA,EAAW,EAAW,EAEf;IACR,CAAC,EAAsB,CAAC,EAGrB,IAAgB,GACjB,GAAc,MAAiB;EAC5B,IAAM,IAAO;GAAC,GAAG,EAAU;IAAU,IAAO;GAAI;AAKhD,EAJA,EAAU,UAAU,GACpB,EAAU,EAAK,EACf,IAAW,EAAK,EAEZ,MAAmB,cAAc,EAAQ,MACzC,EAAc,GAAM,EAAI;IAGhC;EAAC;EAAU;EAAgB;EAAS;EAAc,CACrD,EAEK,IAAgB,GAAa,GAAc,MAAkB;AAC/D,KAAW,OAAU;GAAC,GAAG;IAAO,IAAO;GAAM,EAAE;IAChD,EAAE,CAAC,EAGA,IAAkB,GACnB,GAAc,MAAuB;AAElC,EADA,GAAY,OAAU;GAAC,GAAG;IAAO,IAAO;GAAU,EAAE,EAChD,MAAmB,YAAY,KAC/B,EAAc,EAAK;IAG3B,CAAC,GAAgB,EAAc,CAClC,EAEK,IAAY,QAAkB;AAKhC,EAJA,EAAU,UAAU,EAAC,GAAG,GAAc,EACtC,EAAU,EAAU,QAAQ,EAC5B,EAAU,EAAE,CAAC,EACb,EAAW,EAAE,CAAC,EACd,EAAgB,GAAM;IACvB,CAAC,EAAc,CAAC,EAGb,IAAe,EACjB,OAAO,MAAwC;AAK3C,MAJA,EAAE,gBAAgB,EACd,KAGA,CADU,GAAa,CACf;AAEZ,IAAgB,GAAK;EACrB,IAAM,IAAwB;GAC1B,eAAe;GACf;GACA;GACH;AAED,MAAI;AACA,SAAM,IAAW,EAAU,SAAS,EAAQ;YACtC;AACN,KAAgB,GAAM;;IAG9B;EAAC;EAAc;EAAa;EAAU;EAAW;EAAc,CAClE,EAGK,IAAM,SACD;EACH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACH,GACD;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACH,CACJ;AAED,QACI,kBAAC,EAAY,UAAb;EAAsB,OAAO;YACzB,kBAAC,QAAD;GACI,UAAU;GACE;GACZ,WAAW,OAAO,IAAY,IAAI,MAAc;GACzC;GACP,GAAI;aAEH,OAAO,KAAa,aAAa,EAAS,EAAI,GAAG;GAC/C,CAAA;EACY,CAAA;;;;AC/L/B,SAAgB,EAAa,GAAc,GAAqD;CAC5F,IAAM,IAAM,GAAgB;AAG5B,SAAgB;AACP,QAML,QALA,EAAI,cAAc;GACd;GACA,UAAU,GAAS;GACnB,UAAU,GAAS;GACtB,CAAC,QACW,EAAI,gBAAgB,EAAK;IACvC;EAAC;EAAK;EAAM,GAAS;EAAU,GAAS;EAAS,CAAC;CAGrD,IAAM,IAAW,GACZ,MAAiB;AACd,KAAK,cAAc,GAAM,EAAI;IAEjC,CAAC,GAAK,EAAK,CACd,EAGK,IAAS,QAAkB;AAC7B,KAAK,gBAAgB,GAAM,GAAK;IACjC,CAAC,GAAK,EAAK,CAAC;AAEf,QAAO;EACH,OAAO,GAAK,OAAO,MAAS;EAC5B,OAAO,GAAK,OAAO;EACnB,SAAS,GAAK,QAAQ,MAAS;EAC/B;EACA;EACH"}
@@ -1,2 +0,0 @@
1
- const e=require(`./MI18nProvider-CqAwaswx.cjs`);require(`./core-w629c4ND.cjs`);let t=require(`react`);function n(){let n=e.r();return(0,t.useCallback)((e,t)=>n?.t(e,t)??t,[n])}function r(){let e=n();return(0,t.useMemo)(()=>({today:e(`mineralui.datePicker.today`,`Today`),clear:e(`mineralui.datePicker.clear`,`Clear`),previousMonth:e(`mineralui.datePicker.previousMonth`,`Previous month`),nextMonth:e(`mineralui.datePicker.nextMonth`,`Next month`)}),[e])}function i(){let e=n();return(0,t.useMemo)(()=>({today:e(`mineralui.dateRangePicker.today`,`Today`),clear:e(`mineralui.dateRangePicker.clear`,`Clear`),previousMonth:e(`mineralui.dateRangePicker.previousMonth`,`Previous month`),nextMonth:e(`mineralui.dateRangePicker.nextMonth`,`Next month`),rangeSubtitle:e(`mineralui.dateRangePicker.rangeSubtitle`,`Select start and end dates in one panel.`),defaultRangePlaceholder:e(`mineralui.dateRangePicker.defaultRangePlaceholder`,`Select date range...`),presets:{today:e(`mineralui.dateRangePicker.presets.today`,`Today`),days2:e(`mineralui.dateRangePicker.presets.days2`,`2 days`),days3:e(`mineralui.dateRangePicker.presets.days3`,`3 days`),days7:e(`mineralui.dateRangePicker.presets.days7`,`7 days`),days14:e(`mineralui.dateRangePicker.presets.days14`,`14 days`),days31:e(`mineralui.dateRangePicker.presets.days31`,`31 days`),thisMonth:e(`mineralui.dateRangePicker.presets.thisMonth`,`This month`),previousMonth:e(`mineralui.dateRangePicker.presets.previousMonth`,`Previous month`),months2:e(`mineralui.dateRangePicker.presets.months2`,`2 months`),months3:e(`mineralui.dateRangePicker.presets.months3`,`3 months`),months6:e(`mineralui.dateRangePicker.presets.months6`,`6 months`),year1:e(`mineralui.dateRangePicker.presets.year1`,`1 year`)}}),[e])}function a(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function o(e){return!!(e&&e.toLowerCase().startsWith(`pl`))}function s(e,r){let i=n();return(0,t.useMemo)(()=>{let t=o(e);return{previousMonth:r?.previousMonth??i(`mineralui.miniCalendar.previousMonth`,t?`Poprzedni miesiąc`:`Previous month`),nextMonth:r?.nextMonth??i(`mineralui.miniCalendar.nextMonth`,t?`Następny miesiąc`:`Next month`)}},[i,e,r])}function c(){let e=n();return(0,t.useMemo)(()=>({scale:e(`mineralui.weekGrid.scale`,`Scale: {min} — {max}{unit}`),bands:[e(`mineralui.weekGrid.bands.none`,`None`),e(`mineralui.weekGrid.bands.few`,`Few`),e(`mineralui.weekGrid.bands.some`,`Some`),e(`mineralui.weekGrid.bands.many`,`Many`)],cellLabel:e(`mineralui.weekGrid.cellLabel`,`{day} {slot}: {value}`)}),[e])}function l(){let e=n();return(0,t.useMemo)(()=>({close:e(`mineralui.common.close`,`Close`),dismiss:e(`mineralui.common.dismiss`,`Dismiss`),remove:e(`mineralui.common.remove`,`Remove`),removeItem:e(`mineralui.common.removeItem`,`Remove {name}`),clearInput:e(`mineralui.common.clearInput`,`Clear input`),clearSelection:e(`mineralui.common.clearSelection`,`Clear selection`),clearTime:e(`mineralui.common.clearTime`,`Clear time`),clearFiles:e(`mineralui.common.clearFiles`,`Clear files`),clearCode:e(`mineralui.common.clearCode`,`Clear code`),increment:e(`mineralui.common.increment`,`Increment`),decrement:e(`mineralui.common.decrement`,`Decrement`),increase:e(`mineralui.common.increase`,`Increase`),decrease:e(`mineralui.common.decrease`,`Decrease`),moreOptions:e(`mineralui.common.moreOptions`,`More options`),scrollToTop:e(`mineralui.common.scrollToTop`,`Scroll to top`),openMenu:e(`mineralui.common.openMenu`,`Open menu`),openCalendar:e(`mineralui.common.openCalendar`,`Open calendar`),loading:e(`mineralui.common.loading`,`Loading`),preview:e(`mineralui.common.preview`,`Preview`),imagePreview:e(`mineralui.common.imagePreview`,`Image preview`),closePreview:e(`mineralui.common.closePreview`,`Close preview`),previewItem:e(`mineralui.common.previewItem`,`Preview {name}`),image:e(`mineralui.common.image`,`image`),imageNumber:e(`mineralui.common.imageNumber`,`Image {index}`),previousImage:e(`mineralui.common.previousImage`,`Previous image`),nextImage:e(`mineralui.common.nextImage`,`Next image`),previousSlide:e(`mineralui.common.previousSlide`,`Previous slide`),nextSlide:e(`mineralui.common.nextSlide`,`Next slide`),slideNumber:e(`mineralui.common.slideNumber`,`Slide {index}`),dragToClose:e(`mineralui.common.dragToClose`,`Drag down to close`),scrollLeft:e(`mineralui.common.scrollLeft`,`Scroll topbar left`),scrollRight:e(`mineralui.common.scrollRight`,`Scroll topbar right`),editTile:e(`mineralui.common.editTile`,`Edit tile`),expandTile:e(`mineralui.common.expandTile`,`Expand tile`),removeTile:e(`mineralui.common.removeTile`,`Remove tile`),expirationDate:e(`mineralui.common.expirationDate`,`Expiration date`),postalCodeCountry:e(`mineralui.common.postalCodeCountry`,`Postal code country`),digitNumber:e(`mineralui.common.digitNumber`,`Digit {index}`),removeImage:e(`mineralui.common.removeImage`,`Remove image`),emoji:e(`mineralui.common.emoji`,`Emoji`),attachImage:e(`mineralui.common.attachImage`,`Attach image`),send:e(`mineralui.common.send`,`Send`),eventActions:e(`mineralui.common.eventActions`,`Event actions`),documentActions:e(`mineralui.common.documentActions`,`Open document actions`),dayNavigator:e(`mineralui.common.dayNavigator`,`Day navigator`),previousDay:e(`mineralui.common.previousDay`,`Previous day`),nextDay:e(`mineralui.common.nextDay`,`Next day`),timeline:e(`mineralui.common.timeline`,`Timeline`)}),[e])}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=frameworkTexts-BSXUtXOp.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"frameworkTexts-BSXUtXOp.cjs","names":[],"sources":["../src/i18n/frameworkTexts.ts"],"sourcesContent":["import {useCallback, useMemo} from 'react'\nimport {useOptionalMI18n} from './MI18nProvider'\n\nfunction useTranslate() {\n const i18n = useOptionalMI18n()\n\n return useCallback((key: string, fallback: string) => i18n?.t(key, fallback) ?? fallback, [i18n])\n}\n\nexport interface MDatePickerTexts {\n today: string\n clear: string\n previousMonth: string\n nextMonth: string\n}\n\nexport interface MDateRangePickerTexts extends MDatePickerTexts {\n rangeSubtitle: string\n defaultRangePlaceholder: string\n presets: {\n today: string\n days2: string\n days3: string\n days7: string\n days14: string\n days31: string\n thisMonth: string\n previousMonth: string\n months2: string\n months3: string\n months6: string\n year1: string\n }\n}\n\nexport interface MCalendarBoardTexts {\n monthView: string\n weekView: string\n previousWeek: string\n nextWeek: string\n emptyStateText: string\n timelineTitle: string\n timelineEmptyState: string\n allDay: string\n allDayTab: string\n timelineTab: string\n itemsCount: (count: number) => string\n}\n\nexport interface MFileManagerTexts {\n home: string\n searchPlaceholder: string\n emptyText: string\n folders: string\n noFoldersAvailable: string\n currentFolder: string\n filteredBy: (query: string) => string\n listView: string\n gridView: string\n folder: string\n file: string\n preview: string\n path: string\n selectItemToInspect: string\n itemsCount: (count: number) => string\n rename: string\n moveTo: string\n delete: string\n download: string\n newFolder: string\n}\n\nexport function useMDatePickerTexts(): MDatePickerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n today: t('mineralui.datePicker.today', 'Today'),\n clear: t('mineralui.datePicker.clear', 'Clear'),\n previousMonth: t('mineralui.datePicker.previousMonth', 'Previous month'),\n nextMonth: t('mineralui.datePicker.nextMonth', 'Next month'),\n }),\n [t]\n )\n}\n\nexport function useMDateRangePickerTexts(): MDateRangePickerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n today: t('mineralui.dateRangePicker.today', 'Today'),\n clear: t('mineralui.dateRangePicker.clear', 'Clear'),\n previousMonth: t('mineralui.dateRangePicker.previousMonth', 'Previous month'),\n nextMonth: t('mineralui.dateRangePicker.nextMonth', 'Next month'),\n rangeSubtitle: t('mineralui.dateRangePicker.rangeSubtitle', 'Select start and end dates in one panel.'),\n defaultRangePlaceholder: t('mineralui.dateRangePicker.defaultRangePlaceholder', 'Select date range...'),\n presets: {\n today: t('mineralui.dateRangePicker.presets.today', 'Today'),\n days2: t('mineralui.dateRangePicker.presets.days2', '2 days'),\n days3: t('mineralui.dateRangePicker.presets.days3', '3 days'),\n days7: t('mineralui.dateRangePicker.presets.days7', '7 days'),\n days14: t('mineralui.dateRangePicker.presets.days14', '14 days'),\n days31: t('mineralui.dateRangePicker.presets.days31', '31 days'),\n thisMonth: t('mineralui.dateRangePicker.presets.thisMonth', 'This month'),\n previousMonth: t('mineralui.dateRangePicker.presets.previousMonth', 'Previous month'),\n months2: t('mineralui.dateRangePicker.presets.months2', '2 months'),\n months3: t('mineralui.dateRangePicker.presets.months3', '3 months'),\n months6: t('mineralui.dateRangePicker.presets.months6', '6 months'),\n year1: t('mineralui.dateRangePicker.presets.year1', '1 year'),\n },\n }),\n [t]\n )\n}\n\nexport function useMCalendarBoardTexts(): MCalendarBoardTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n monthView: t('mineralui.calendarBoard.monthView', 'Month'),\n weekView: t('mineralui.calendarBoard.weekView', 'Week'),\n previousWeek: t('mineralui.calendarBoard.previousWeek', 'Previous week'),\n nextWeek: t('mineralui.calendarBoard.nextWeek', 'Next week'),\n emptyStateText: t('mineralui.calendarBoard.emptyStateText', 'No events for the selected day.'),\n timelineTitle: t('mineralui.calendarBoard.timelineTitle', 'Daily timeline'),\n timelineEmptyState: t('mineralui.calendarBoard.timelineEmptyState', 'No events in this hour.'),\n allDay: t('mineralui.calendarBoard.allDay', 'All day'),\n allDayTab: t('mineralui.calendarBoard.allDayTab', 'All day'),\n timelineTab: t('mineralui.calendarBoard.timelineTab', 'Hourly timeline'),\n itemsCount: (count) =>\n t('mineralui.calendarBoard.itemsCount', '{count} items').replace('{count}', String(count)),\n }),\n [t]\n )\n}\n\nexport function useMFileManagerTexts(): MFileManagerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n home: t('mineralui.fileManager.home', 'Home'),\n searchPlaceholder: t('mineralui.fileManager.searchPlaceholder', 'Search in folder...'),\n emptyText: t('mineralui.fileManager.emptyText', 'This folder is empty.'),\n folders: t('mineralui.fileManager.folders', 'Folders'),\n noFoldersAvailable: t('mineralui.fileManager.noFoldersAvailable', 'No folders available.'),\n currentFolder: t('mineralui.fileManager.currentFolder', 'Current folder'),\n filteredBy: (query) =>\n t('mineralui.fileManager.filteredBy', 'Filtered by \"{query}\"').replace('{query}', query),\n listView: t('mineralui.fileManager.listView', 'List'),\n gridView: t('mineralui.fileManager.gridView', 'Grid'),\n folder: t('mineralui.fileManager.folder', 'Folder'),\n file: t('mineralui.fileManager.file', 'File'),\n preview: t('mineralui.fileManager.preview', 'Preview'),\n path: t('mineralui.fileManager.path', 'Path'),\n selectItemToInspect: t(\n 'mineralui.fileManager.selectItemToInspect',\n 'Select a file or folder to inspect its details.'\n ),\n itemsCount: (count) =>\n t('mineralui.fileManager.itemsCount', '{count} items').replace('{count}', String(count)),\n rename: t('mineralui.fileManager.rename', 'Rename'),\n moveTo: t('mineralui.fileManager.moveTo', 'Move to...'),\n delete: t('mineralui.fileManager.delete', 'Delete'),\n download: t('mineralui.fileManager.download', 'Download'),\n newFolder: t('mineralui.fileManager.newFolder', 'New folder'),\n }),\n [t]\n )\n}\n\n// Cookie-consent texts moved to @banzamel/honey in mineralui-pro 2.0.0.\n// Consumers that need to retheme cookie copy now pass `texts` directly to\n// `<CookieConsentProvider>` from `@banzamel/honey`.\n\n/** Count-bearing texts accept a `{count}` template or a function, so apps can pluralise. */\nexport type MSchedulerCountText = string | ((count: number) => string)\n\nexport interface MSchedulerTexts {\n today: string\n previous: string\n next: string\n chooseDate: string\n add: string\n viewLabel: string\n viewWeek: string\n viewDay: string\n viewMonth: string\n viewAgenda: string\n showWeekends: string\n filters: string\n filtersActive: MSchedulerCountText\n clearFilters: string\n allOption: string\n searchPlaceholder: string\n noOptions: string\n allDay: string\n more: MSchedulerCountText\n /** `{count}` and `{date}` placeholders. */\n moreAria: string\n eventCount: MSchedulerCountText\n emptyState: string\n loading: string\n now: string\n recurring: string\n cancelled: string\n conflict: string\n eventDetails: string\n eventActions: string\n close: string\n participants: MSchedulerCountText\n /** `{count}` and `{capacity}` placeholders. */\n participantsCapacity: string\n location: string\n /** `{title}` placeholder, announced on every period change. */\n periodAnnouncement: string\n /** `{date}` placeholder — label of a day-number button. */\n openDay: string\n viewTimeline: string\n /** `{view}` and `{set}` placeholders — view-menu entry of a resource set. */\n viewWithSet: string\n move: string\n resize: string\n moveInstructions: string\n /** Announced when the keyboard move mode starts in the month view. */\n moveInstructionsMonth: string\n /** Appended to the native tooltip of a draggable event. */\n dragHint: string\n /** `{title}` and `{when}` placeholders. */\n moved: string\n /** `{title}` and `{time}` placeholders. */\n resized: string\n moveRefused: string\n moveCancelled: string\n unavailable: string\n blocked: string\n /** Caption above the leader row in the event details. */\n leader: string\n /** Visible label of the \"open this day\" action in the month \"+N more\" popover. */\n openDayView: string\n /** Toolbar button shown in the day view after a drill-down from the month view. */\n backToMonth: string\n}\n\nfunction polishPlural(count: number, one: string, few: string, many: string): string {\n const mod10 = count % 10\n const mod100 = count % 100\n if (count === 1) {\n return one\n }\n if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n return few\n }\n return many\n}\n\nexport const mineralSchedulerTextsEn: MSchedulerTexts = {\n today: 'Today',\n previous: 'Previous period',\n next: 'Next period',\n chooseDate: 'Choose date',\n add: 'Add',\n viewLabel: 'View',\n viewWeek: 'Week',\n viewDay: 'Day',\n viewMonth: 'Month',\n viewAgenda: 'Agenda',\n showWeekends: 'Show weekends',\n filters: 'Filters',\n filtersActive: 'Filters ({count})',\n clearFilters: 'Clear filters',\n allOption: 'All',\n searchPlaceholder: 'Search…',\n noOptions: 'No results',\n allDay: 'All day',\n more: '+{count} more',\n moreAria: 'Show {count} more events on {date}',\n eventCount: (count) => (count === 1 ? '1 event' : `${count} events`),\n emptyState: 'No events to display',\n loading: 'Loading events',\n now: 'Now',\n recurring: 'Recurring',\n cancelled: 'Cancelled',\n conflict: 'Conflict',\n eventDetails: 'Event details',\n eventActions: 'Event actions',\n close: 'Close',\n participants: 'Participants ({count})',\n participantsCapacity: 'Participants ({count} / {capacity})',\n location: 'Location',\n periodAnnouncement: '{title}',\n openDay: 'Open {date}',\n viewTimeline: 'Timeline',\n viewWithSet: '{view} – {set}',\n move: 'Move',\n resize: 'Resize',\n moveInstructions: 'Arrows move, Shift+arrows move by an hour, Enter drops, Escape cancels.',\n moveInstructionsMonth: 'Left and right arrows move by a day, up and down by a week, Enter drops, Escape cancels.',\n dragHint: 'Drag to move',\n moved: '{title} moved to {when}',\n resized: '{title} now ends at {time}',\n moveRefused: 'Cannot move here',\n moveCancelled: 'Move cancelled',\n unavailable: 'Unavailable',\n blocked: 'Blocked',\n leader: 'Leader',\n openDayView: 'Open day',\n backToMonth: 'Back to month',\n}\n\nexport const mineralSchedulerTextsPl: MSchedulerTexts = {\n today: 'Dzisiaj',\n previous: 'Poprzedni okres',\n next: 'Następny okres',\n chooseDate: 'Wybierz datę',\n add: 'Dodaj',\n viewLabel: 'Widok',\n viewWeek: 'Tydzień',\n viewDay: 'Dzień',\n viewMonth: 'Miesiąc',\n viewAgenda: 'Lista',\n showWeekends: 'Pokaż weekendy',\n filters: 'Filtry',\n filtersActive: 'Filtry ({count})',\n clearFilters: 'Wyczyść filtry',\n allOption: 'Wszystkie',\n searchPlaceholder: 'Szukaj…',\n noOptions: 'Brak wyników',\n allDay: 'Cały dzień',\n more: '+{count} więcej',\n moreAria: 'Pokaż {count} więcej wydarzeń w dniu {date}',\n eventCount: (count) => `${count} ${polishPlural(count, 'wydarzenie', 'wydarzenia', 'wydarzeń')}`,\n emptyState: 'Brak wydarzeń do wyświetlenia',\n loading: 'Wczytywanie wydarzeń',\n now: 'Teraz',\n recurring: 'Cykliczne',\n cancelled: 'Odwołane',\n conflict: 'Konflikt',\n eventDetails: 'Szczegóły wydarzenia',\n eventActions: 'Akcje wydarzenia',\n close: 'Zamknij',\n participants: 'Uczestnicy ({count})',\n participantsCapacity: 'Uczestnicy ({count} / {capacity})',\n location: 'Miejsce',\n periodAnnouncement: '{title}',\n openDay: 'Otwórz {date}',\n viewTimeline: 'Oś czasu',\n viewWithSet: '{view} – {set}',\n move: 'Przenieś',\n resize: 'Zmień długość',\n moveInstructions: 'Strzałki przesuwają, Shift+strzałki o godzinę, Enter upuszcza, Escape anuluje.',\n moveInstructionsMonth:\n 'Strzałki w lewo i w prawo przesuwają o dzień, w górę i w dół o tydzień, Enter upuszcza, Escape anuluje.',\n dragHint: 'Przeciągnij, aby przenieść',\n moved: '{title} przeniesiono na {when}',\n resized: '{title} kończy się o {time}',\n moveRefused: 'Nie można tu przenieść',\n moveCancelled: 'Anulowano przenoszenie',\n unavailable: 'Niedostępne',\n blocked: 'Zablokowane',\n leader: 'Prowadzący',\n openDayView: 'Otwórz dzień',\n backToMonth: 'Wróć do miesiąca',\n}\n\n/** Fills `{name}` placeholders. */\nexport function formatMText(template: string, values: Record<string, string | number>): string {\n return template.replace(/\\{(\\w+)\\}/g, (match, key: string) => (key in values ? String(values[key]) : match))\n}\n\n/** Resolves a count text (template or function) for `count`. */\nexport function formatMCountText(text: MSchedulerCountText, count: number): string {\n return typeof text === 'function' ? text(count) : formatMText(text, {count})\n}\n\nfunction isPolishLocale(locale?: string): boolean {\n return Boolean(locale && locale.toLowerCase().startsWith('pl'))\n}\n\n/**\n * Scheduler texts. Resolution per key: `overrides` → MI18nProvider key\n * `mineralui.scheduler.<key>` → built-in default for `locale` (Polish or English).\n */\nexport function useMSchedulerTexts(locale?: string, overrides?: Partial<MSchedulerTexts>): MSchedulerTexts {\n const t = useTranslate()\n\n return useMemo(() => {\n const defaults = isPolishLocale(locale) ? mineralSchedulerTextsPl : mineralSchedulerTextsEn\n const resolved = {} as Record<keyof MSchedulerTexts, MSchedulerTexts[keyof MSchedulerTexts]>\n ;(Object.keys(defaults) as Array<keyof MSchedulerTexts>).forEach((key) => {\n const override = overrides?.[key]\n if (override !== undefined) {\n resolved[key] = override\n return\n }\n const fallback = defaults[key]\n const i18nKey = `mineralui.scheduler.${key}`\n const translated = t(i18nKey, typeof fallback === 'string' ? fallback : i18nKey)\n resolved[key] = typeof fallback === 'function' && translated === i18nKey ? fallback : translated\n })\n return resolved as MSchedulerTexts\n }, [t, locale, overrides])\n}\n\nexport interface MMiniCalendarTexts {\n previousMonth: string\n nextMonth: string\n}\n\nexport function useMMiniCalendarTexts(locale?: string, overrides?: Partial<MMiniCalendarTexts>): MMiniCalendarTexts {\n const t = useTranslate()\n\n return useMemo(() => {\n const polish = isPolishLocale(locale)\n return {\n previousMonth:\n overrides?.previousMonth ??\n t('mineralui.miniCalendar.previousMonth', polish ? 'Poprzedni miesiąc' : 'Previous month'),\n nextMonth:\n overrides?.nextMonth ??\n t('mineralui.miniCalendar.nextMonth', polish ? 'Następny miesiąc' : 'Next month'),\n }\n }, [t, locale, overrides])\n}\n\nexport interface MWeekGridTexts {\n /** Legend scale text. Placeholders: `{min}`, `{max}`, `{unit}` (with a leading space when set). */\n scale: string\n /** Default density-band labels, lowest to highest. */\n bands: [string, string, string, string]\n /** Accessible name of an interactive cell. Placeholders: `{day}`, `{slot}`, `{value}`. */\n cellLabel: string\n}\n\n/**\n * MWeekGrid texts. Resolution per key: MI18nProvider key `mineralui.weekGrid.<key>`\n * (bands: `mineralui.weekGrid.bands.none|few|some|many`) → built-in English default.\n */\nexport function useMWeekGridTexts(): MWeekGridTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n scale: t('mineralui.weekGrid.scale', 'Scale: {min} — {max}{unit}'),\n bands: [\n t('mineralui.weekGrid.bands.none', 'None'),\n t('mineralui.weekGrid.bands.few', 'Few'),\n t('mineralui.weekGrid.bands.some', 'Some'),\n t('mineralui.weekGrid.bands.many', 'Many'),\n ],\n cellLabel: t('mineralui.weekGrid.cellLabel', '{day} {slot}: {value}'),\n }),\n [t]\n )\n}\n\n/** Shared accessible names and short labels used across components. */\nexport interface MCommonTexts {\n close: string\n dismiss: string\n remove: string\n /** Placeholder: `{name}`. */\n removeItem: string\n clearInput: string\n clearSelection: string\n clearTime: string\n clearFiles: string\n clearCode: string\n increment: string\n decrement: string\n increase: string\n decrease: string\n moreOptions: string\n scrollToTop: string\n openMenu: string\n openCalendar: string\n loading: string\n preview: string\n imagePreview: string\n closePreview: string\n /** Placeholder: `{name}`. */\n previewItem: string\n image: string\n /** Placeholder: `{index}`. */\n imageNumber: string\n previousImage: string\n nextImage: string\n previousSlide: string\n nextSlide: string\n /** Placeholder: `{index}`. */\n slideNumber: string\n dragToClose: string\n scrollLeft: string\n scrollRight: string\n editTile: string\n expandTile: string\n removeTile: string\n expirationDate: string\n postalCodeCountry: string\n /** Placeholder: `{index}`. */\n digitNumber: string\n removeImage: string\n emoji: string\n attachImage: string\n send: string\n eventActions: string\n documentActions: string\n dayNavigator: string\n previousDay: string\n nextDay: string\n timeline: string\n}\n\n/**\n * Common texts. Resolution per key: MI18nProvider key `mineralui.common.<key>`\n * → built-in English default.\n */\nexport function useMCommonTexts(): MCommonTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n close: t('mineralui.common.close', 'Close'),\n dismiss: t('mineralui.common.dismiss', 'Dismiss'),\n remove: t('mineralui.common.remove', 'Remove'),\n removeItem: t('mineralui.common.removeItem', 'Remove {name}'),\n clearInput: t('mineralui.common.clearInput', 'Clear input'),\n clearSelection: t('mineralui.common.clearSelection', 'Clear selection'),\n clearTime: t('mineralui.common.clearTime', 'Clear time'),\n clearFiles: t('mineralui.common.clearFiles', 'Clear files'),\n clearCode: t('mineralui.common.clearCode', 'Clear code'),\n increment: t('mineralui.common.increment', 'Increment'),\n decrement: t('mineralui.common.decrement', 'Decrement'),\n increase: t('mineralui.common.increase', 'Increase'),\n decrease: t('mineralui.common.decrease', 'Decrease'),\n moreOptions: t('mineralui.common.moreOptions', 'More options'),\n scrollToTop: t('mineralui.common.scrollToTop', 'Scroll to top'),\n openMenu: t('mineralui.common.openMenu', 'Open menu'),\n openCalendar: t('mineralui.common.openCalendar', 'Open calendar'),\n loading: t('mineralui.common.loading', 'Loading'),\n preview: t('mineralui.common.preview', 'Preview'),\n imagePreview: t('mineralui.common.imagePreview', 'Image preview'),\n closePreview: t('mineralui.common.closePreview', 'Close preview'),\n previewItem: t('mineralui.common.previewItem', 'Preview {name}'),\n image: t('mineralui.common.image', 'image'),\n imageNumber: t('mineralui.common.imageNumber', 'Image {index}'),\n previousImage: t('mineralui.common.previousImage', 'Previous image'),\n nextImage: t('mineralui.common.nextImage', 'Next image'),\n previousSlide: t('mineralui.common.previousSlide', 'Previous slide'),\n nextSlide: t('mineralui.common.nextSlide', 'Next slide'),\n slideNumber: t('mineralui.common.slideNumber', 'Slide {index}'),\n dragToClose: t('mineralui.common.dragToClose', 'Drag down to close'),\n scrollLeft: t('mineralui.common.scrollLeft', 'Scroll topbar left'),\n scrollRight: t('mineralui.common.scrollRight', 'Scroll topbar right'),\n editTile: t('mineralui.common.editTile', 'Edit tile'),\n expandTile: t('mineralui.common.expandTile', 'Expand tile'),\n removeTile: t('mineralui.common.removeTile', 'Remove tile'),\n expirationDate: t('mineralui.common.expirationDate', 'Expiration date'),\n postalCodeCountry: t('mineralui.common.postalCodeCountry', 'Postal code country'),\n digitNumber: t('mineralui.common.digitNumber', 'Digit {index}'),\n removeImage: t('mineralui.common.removeImage', 'Remove image'),\n emoji: t('mineralui.common.emoji', 'Emoji'),\n attachImage: t('mineralui.common.attachImage', 'Attach image'),\n send: t('mineralui.common.send', 'Send'),\n eventActions: t('mineralui.common.eventActions', 'Event actions'),\n documentActions: t('mineralui.common.documentActions', 'Open document actions'),\n dayNavigator: t('mineralui.common.dayNavigator', 'Day navigator'),\n previousDay: t('mineralui.common.previousDay', 'Previous day'),\n nextDay: t('mineralui.common.nextDay', 'Next day'),\n timeline: t('mineralui.common.timeline', 'Timeline'),\n }),\n [t]\n )\n}\n"],"mappings":"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"}