@banzamel/mineralui 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. package/README.md +1 -1
  2. package/dist/{MAvatar-CnBVN71i.js → MAvatar-BHASnoyu.js} +5 -5
  3. package/dist/{MAvatar-CnBVN71i.js.map → MAvatar-BHASnoyu.js.map} +1 -1
  4. package/dist/MAvatar-BVJh6kgW.cjs +2 -0
  5. package/dist/{MAvatar-DGEQqUss.cjs.map → MAvatar-BVJh6kgW.cjs.map} +1 -1
  6. package/dist/MBadge-B4x-Lx7e.cjs +2 -0
  7. package/dist/{MBadge-DcIPfPH1.cjs.map → MBadge-B4x-Lx7e.cjs.map} +1 -1
  8. package/dist/{MBadge-C_vK2JdM.js → MBadge-_BggwkrM.js} +3 -3
  9. package/dist/{MBadge-C_vK2JdM.js.map → MBadge-_BggwkrM.js.map} +1 -1
  10. package/dist/MButton-DrkVdRDy.cjs +2 -0
  11. package/dist/{MButton-LUNWBBOV.cjs.map → MButton-DrkVdRDy.cjs.map} +1 -1
  12. package/dist/{MButton-BpSZUhpY.js → MButton-y9qXhhGt.js} +4 -4
  13. package/dist/{MButton-BpSZUhpY.js.map → MButton-y9qXhhGt.js.map} +1 -1
  14. package/dist/{MCheckbox-CNz73bQC.js → MCheckbox-B-nT2OBE.js} +3 -3
  15. package/dist/{MCheckbox-CNz73bQC.js.map → MCheckbox-B-nT2OBE.js.map} +1 -1
  16. package/dist/MCheckbox-C40ESQRe.cjs +2 -0
  17. package/dist/{MCheckbox-PzknJeM2.cjs.map → MCheckbox-C40ESQRe.cjs.map} +1 -1
  18. package/dist/{MCookieBootstrap-DSOT4FQo.cjs → MCookieBootstrap-3-wyz3Dk.cjs} +1 -1
  19. package/dist/{MCookieBootstrap-DSOT4FQo.cjs.map → MCookieBootstrap-3-wyz3Dk.cjs.map} +1 -1
  20. package/dist/{MCookieBootstrap-CNYLvKjW.js → MCookieBootstrap-CGvYxIK8.js} +1 -1
  21. package/dist/{MCookieBootstrap-CNYLvKjW.js.map → MCookieBootstrap-CGvYxIK8.js.map} +1 -1
  22. package/dist/MDataTable-Bx7W-Ari.cjs +2 -0
  23. package/dist/{MDataTable-Bq6UoNJX.cjs.map → MDataTable-Bx7W-Ari.cjs.map} +1 -1
  24. package/dist/{MDataTable-AH5Tnirs.js → MDataTable-ByvNQqNP.js} +6 -6
  25. package/dist/{MDataTable-AH5Tnirs.js.map → MDataTable-ByvNQqNP.js.map} +1 -1
  26. package/dist/MDrawer-DFkrFrnD.cjs +2 -0
  27. package/dist/{MDrawer-DRqMsjMt.cjs.map → MDrawer-DFkrFrnD.cjs.map} +1 -1
  28. package/dist/{MDrawer-C08QXXC4.js → MDrawer-W2WQs1sM.js} +5 -5
  29. package/dist/{MDrawer-C08QXXC4.js.map → MDrawer-W2WQs1sM.js.map} +1 -1
  30. package/dist/MDropdownMenu-BmfXSc46.cjs +2 -0
  31. package/dist/{MDropdownMenu-CymCQqyP.cjs.map → MDropdownMenu-BmfXSc46.cjs.map} +1 -1
  32. package/dist/{MDropdownMenu-CMnBt-wO.js → MDropdownMenu-D79Cm5aS.js} +4 -4
  33. package/dist/{MDropdownMenu-CMnBt-wO.js.map → MDropdownMenu-D79Cm5aS.js.map} +1 -1
  34. package/dist/MGalleryIllustration-BB3DoCl_.cjs +2 -0
  35. package/dist/{MGalleryIllustration-BHtRFizZ.cjs.map → MGalleryIllustration-BB3DoCl_.cjs.map} +1 -1
  36. package/dist/{MGalleryIllustration-DhOtXwhC.js → MGalleryIllustration-D7CVMSwO.js} +2 -2
  37. package/dist/{MGalleryIllustration-DhOtXwhC.js.map → MGalleryIllustration-D7CVMSwO.js.map} +1 -1
  38. package/dist/MHeading-BhCNoJeW.cjs +2 -0
  39. package/dist/{MHeading-DHT1gORD.cjs.map → MHeading-BhCNoJeW.cjs.map} +1 -1
  40. package/dist/{MHeading-BvpWyvjj.js → MHeading-MPh8Qm9q.js} +4 -4
  41. package/dist/{MHeading-BvpWyvjj.js.map → MHeading-MPh8Qm9q.js.map} +1 -1
  42. package/dist/MI18nProvider-B2sE0x5D.cjs +2 -0
  43. package/dist/{MI18nProvider-Bml7Vs2-.cjs.map → MI18nProvider-B2sE0x5D.cjs.map} +1 -1
  44. package/dist/{MI18nProvider-BRZxEMqL.js → MI18nProvider-VH14CI8u.js} +1 -1
  45. package/dist/{MI18nProvider-BRZxEMqL.js.map → MI18nProvider-VH14CI8u.js.map} +1 -1
  46. package/dist/{MImage-BQs91GK-.js → MImage-BKX-xBm3.js} +82 -76
  47. package/dist/MImage-BKX-xBm3.js.map +1 -0
  48. package/dist/MImage-YbDKE-1t.cjs +2 -0
  49. package/dist/MImage-YbDKE-1t.cjs.map +1 -0
  50. package/dist/MInline-CHrh3PHH.cjs +2 -0
  51. package/dist/{MInline-D9p9Sazp.cjs.map → MInline-CHrh3PHH.cjs.map} +1 -1
  52. package/dist/{MInline-DA_ehefx.js → MInline-CoMhfX5V.js} +4 -4
  53. package/dist/{MInline-DA_ehefx.js.map → MInline-CoMhfX5V.js.map} +1 -1
  54. package/dist/MInput-DYqV3-rQ.cjs +2 -0
  55. package/dist/{MInput-DDZ71Qqn.cjs.map → MInput-DYqV3-rQ.cjs.map} +1 -1
  56. package/dist/{MInput-l3MY93Su.js → MInput-bzSwK880.js} +6 -6
  57. package/dist/{MInput-l3MY93Su.js.map → MInput-bzSwK880.js.map} +1 -1
  58. package/dist/MInputCVC-5NkYSxV8.cjs +2 -0
  59. package/dist/{MInputCVC-Sp2uZ5aO.cjs.map → MInputCVC-5NkYSxV8.cjs.map} +1 -1
  60. package/dist/{MInputCVC-CN91scmw.js → MInputCVC-BHpMHTO5.js} +5 -5
  61. package/dist/{MInputCVC-CN91scmw.js.map → MInputCVC-BHpMHTO5.js.map} +1 -1
  62. package/dist/MInputSearch-DfoenJIm.cjs +2 -0
  63. package/dist/{MInputSearch-30o4bcDC.cjs.map → MInputSearch-DfoenJIm.cjs.map} +1 -1
  64. package/dist/{MInputSearch-CdPfJ4v_.js → MInputSearch-Dh4C3Tz5.js} +4 -4
  65. package/dist/{MInputSearch-CdPfJ4v_.js.map → MInputSearch-Dh4C3Tz5.js.map} +1 -1
  66. package/dist/MLink-CY45UR_j.cjs +2 -0
  67. package/dist/{MLink-U_wAUuz1.cjs.map → MLink-CY45UR_j.cjs.map} +1 -1
  68. package/dist/{MLink-CRUWGES-.js → MLink-rFKN1mcM.js} +3 -3
  69. package/dist/{MLink-CRUWGES-.js.map → MLink-rFKN1mcM.js.map} +1 -1
  70. package/dist/{MModal-CHSo5gKE.js → MModal-BDTAgnrm.js} +4 -4
  71. package/dist/{MModal-CHSo5gKE.js.map → MModal-BDTAgnrm.js.map} +1 -1
  72. package/dist/MModal-DT5BBgNZ.cjs +2 -0
  73. package/dist/{MModal-Czy-rR--.cjs.map → MModal-DT5BBgNZ.cjs.map} +1 -1
  74. package/dist/{MPagination-DdT1uNzD.js → MPagination-CTnaW5AW.js} +4 -4
  75. package/dist/{MPagination-DdT1uNzD.js.map → MPagination-CTnaW5AW.js.map} +1 -1
  76. package/dist/MPagination-CZEJMJzZ.cjs +2 -0
  77. package/dist/{MPagination-73z0sQvf.cjs.map → MPagination-CZEJMJzZ.cjs.map} +1 -1
  78. package/dist/MPopover-B4IUb9f0.cjs +2 -0
  79. package/dist/{MPopover-BW23_1Dl.cjs.map → MPopover-B4IUb9f0.cjs.map} +1 -1
  80. package/dist/{MPopover-3tjz5lKh.js → MPopover-Cqz5TsHg.js} +3 -3
  81. package/dist/{MPopover-3tjz5lKh.js.map → MPopover-Cqz5TsHg.js.map} +1 -1
  82. package/dist/{MPortal-Dqlkh3hw.js → MPortal-Ba2Sxset.js} +1 -1
  83. package/dist/{MPortal-Dqlkh3hw.js.map → MPortal-Ba2Sxset.js.map} +1 -1
  84. package/dist/MPortal-Bi24xTGW.cjs +2 -0
  85. package/dist/{MPortal-DE3pL2Xl.cjs.map → MPortal-Bi24xTGW.cjs.map} +1 -1
  86. package/dist/MQrCode-ByfmG33y.cjs +2 -0
  87. package/dist/{MQrCode-CMoru4dD.cjs.map → MQrCode-ByfmG33y.cjs.map} +1 -1
  88. package/dist/{MQrCode-DK5-SBhN.js → MQrCode-CCtTkkv9.js} +4 -4
  89. package/dist/{MQrCode-DK5-SBhN.js.map → MQrCode-CCtTkkv9.js.map} +1 -1
  90. package/dist/MSkeleton-5j1h9s95.cjs +2 -0
  91. package/dist/{MSkeleton-B0Mxe3L7.cjs.map → MSkeleton-5j1h9s95.cjs.map} +1 -1
  92. package/dist/{MSkeleton-Bqq_XJn8.js → MSkeleton-DGhtNmpI.js} +4 -4
  93. package/dist/{MSkeleton-Bqq_XJn8.js.map → MSkeleton-DGhtNmpI.js.map} +1 -1
  94. package/dist/{MSlider-ByVuoFFc.js → MSlider-5141rKeH.js} +2 -2
  95. package/dist/{MSlider-ByVuoFFc.js.map → MSlider-5141rKeH.js.map} +1 -1
  96. package/dist/MSlider-Ch3VjAJC.cjs +2 -0
  97. package/dist/{MSlider-sH2Vt9Lw.cjs.map → MSlider-Ch3VjAJC.cjs.map} +1 -1
  98. package/dist/MSparkline-B6qpt5WM.cjs +2 -0
  99. package/dist/{MSparkline-B-ld7hJu.cjs.map → MSparkline-B6qpt5WM.cjs.map} +1 -1
  100. package/dist/{MSparkline-DbtdM0W6.js → MSparkline-voNWOLNz.js} +2 -2
  101. package/dist/{MSparkline-DbtdM0W6.js.map → MSparkline-voNWOLNz.js.map} +1 -1
  102. package/dist/MStack-Bh-R2opf.cjs +2 -0
  103. package/dist/{MStack-Cy2GplIA.cjs.map → MStack-Bh-R2opf.cjs.map} +1 -1
  104. package/dist/{MStack-BWarX5O9.js → MStack-CSaEbepM.js} +4 -4
  105. package/dist/{MStack-BWarX5O9.js.map → MStack-CSaEbepM.js.map} +1 -1
  106. package/dist/{MSubText-C9VizSn9.js → MSubText-BFdfBlpS.js} +4 -4
  107. package/dist/{MSubText-C9VizSn9.js.map → MSubText-BFdfBlpS.js.map} +1 -1
  108. package/dist/MSubText-C-70zn0m.cjs +2 -0
  109. package/dist/{MSubText-DP9WYlwz.cjs.map → MSubText-C-70zn0m.cjs.map} +1 -1
  110. package/dist/MSurface-CpiV1-7f.cjs +2 -0
  111. package/dist/{MSurface-C467dVMQ.cjs.map → MSurface-CpiV1-7f.cjs.map} +1 -1
  112. package/dist/{MSurface-DfZ1Zy1-.js → MSurface-DJYSftdM.js} +4 -4
  113. package/dist/{MSurface-DfZ1Zy1-.js.map → MSurface-DJYSftdM.js.map} +1 -1
  114. package/dist/{MTag-N-tYZ915.js → MTag-CH5nMbm7.js} +5 -5
  115. package/dist/{MTag-N-tYZ915.js.map → MTag-CH5nMbm7.js.map} +1 -1
  116. package/dist/MTag-Y4Tswmli.cjs +2 -0
  117. package/dist/{MTag-DXqkBvqx.cjs.map → MTag-Y4Tswmli.cjs.map} +1 -1
  118. package/dist/MText-DEJddMB5.cjs +2 -0
  119. package/dist/{MText-COzub3y4.cjs.map → MText-DEJddMB5.cjs.map} +1 -1
  120. package/dist/{MText-B7_HjPym.js → MText-DcB1GAt-.js} +4 -4
  121. package/dist/{MText-B7_HjPym.js.map → MText-DcB1GAt-.js.map} +1 -1
  122. package/dist/{MTimeAgo-D1G2yovw.js → MTimeAgo-C4p80NvI.js} +4 -4
  123. package/dist/{MTimeAgo-D1G2yovw.js.map → MTimeAgo-C4p80NvI.js.map} +1 -1
  124. package/dist/MTimeAgo-DxZGVo2Y.cjs +2 -0
  125. package/dist/{MTimeAgo-DWwXs48z.cjs.map → MTimeAgo-DxZGVo2Y.cjs.map} +1 -1
  126. package/dist/MToggle-C8vYRzpC.cjs +2 -0
  127. package/dist/{MToggle-Cm3f6gm4.cjs.map → MToggle-C8vYRzpC.cjs.map} +1 -1
  128. package/dist/{MToggle-D0DrQirB.js → MToggle-Dt1Ctr5e.js} +3 -3
  129. package/dist/{MToggle-D0DrQirB.js.map → MToggle-Dt1Ctr5e.js.map} +1 -1
  130. package/dist/{MTooltip-w6Aj044c.js → MTooltip-C43aUKMP.js} +3 -3
  131. package/dist/{MTooltip-w6Aj044c.js.map → MTooltip-C43aUKMP.js.map} +1 -1
  132. package/dist/MTooltip-kSTMMpvu.cjs +2 -0
  133. package/dist/{MTooltip-C3PeHgV3.cjs.map → MTooltip-kSTMMpvu.cjs.map} +1 -1
  134. package/dist/arduino-CXUo7Bjy.cjs +2 -0
  135. package/dist/arduino-CXUo7Bjy.cjs.map +1 -0
  136. package/dist/arduino-Eif5KI8O.js +261 -0
  137. package/dist/arduino-Eif5KI8O.js.map +1 -0
  138. package/dist/bash-CCF_TYbb.js +171 -0
  139. package/dist/bash-CCF_TYbb.js.map +1 -0
  140. package/dist/bash-W4h3o_nx.cjs +2 -0
  141. package/dist/bash-W4h3o_nx.cjs.map +1 -0
  142. package/dist/c-DVgkp6T3.js +178 -0
  143. package/dist/c-DVgkp6T3.js.map +1 -0
  144. package/dist/c-Dm60JY-W.cjs +2 -0
  145. package/dist/c-Dm60JY-W.cjs.map +1 -0
  146. package/dist/cards-BiYdorB0.cjs +2 -0
  147. package/dist/{cards-B75QM9JW.cjs.map → cards-BiYdorB0.cjs.map} +1 -1
  148. package/dist/{cards-BKi8MxNx.js → cards-fn61xD_5.js} +17 -17
  149. package/dist/{cards-BKi8MxNx.js.map → cards-fn61xD_5.js.map} +1 -1
  150. package/dist/cards.cjs +1 -1
  151. package/dist/cards.js +2 -2
  152. package/dist/{cn-DYFxgzi2.cjs → cn-CU5TNITO.cjs} +1 -1
  153. package/dist/{cn-DYFxgzi2.cjs.map → cn-CU5TNITO.cjs.map} +1 -1
  154. package/dist/{cn-CUSXNnjF.js → cn-YER3QsV1.js} +1 -1
  155. package/dist/{cn-CUSXNnjF.js.map → cn-YER3QsV1.js.map} +1 -1
  156. package/dist/components/media/MImage/MImage.d.ts +1 -1
  157. package/dist/components/media/MImage/MImage.types.d.ts +6 -1
  158. package/dist/controls-C5PtrGZf.cjs +2 -0
  159. package/dist/{controls-B7wV_kjJ.cjs.map → controls-C5PtrGZf.cjs.map} +1 -1
  160. package/dist/{controls-BEi-0mf4.js → controls-DCtMOoQe.js} +6 -6
  161. package/dist/{controls-BEi-0mf4.js.map → controls-DCtMOoQe.js.map} +1 -1
  162. package/dist/controls.cjs +1 -1
  163. package/dist/controls.js +5 -5
  164. package/dist/cookie-consent-bootstrap.cjs +1 -1
  165. package/dist/cookie-consent-bootstrap.js +1 -1
  166. package/dist/core-AKWkE8Bx.cjs +4 -0
  167. package/dist/core-AKWkE8Bx.cjs.map +1 -0
  168. package/dist/core-CB9-PTLK.js +854 -0
  169. package/dist/core-CB9-PTLK.js.map +1 -0
  170. package/dist/cpp-DyKt1H8n.cjs +2 -0
  171. package/dist/cpp-DyKt1H8n.cjs.map +1 -0
  172. package/dist/cpp-OOenfB17.js +227 -0
  173. package/dist/cpp-OOenfB17.js.map +1 -0
  174. package/dist/{creditCards-BB11bW7D.js → creditCards-CCysEwry.js} +1 -1
  175. package/dist/{creditCards-BB11bW7D.js.map → creditCards-CCysEwry.js.map} +1 -1
  176. package/dist/{creditCards-198KJN0s.cjs → creditCards-ljs044xt.cjs} +1 -1
  177. package/dist/{creditCards-198KJN0s.cjs.map → creditCards-ljs044xt.cjs.map} +1 -1
  178. package/dist/css-DxVbPJLu.cjs +2 -0
  179. package/dist/css-DxVbPJLu.cjs.map +1 -0
  180. package/dist/css-u5LSEAra.js +142 -0
  181. package/dist/css-u5LSEAra.js.map +1 -0
  182. package/dist/{data-DKrj_Hx6.js → data-BiwK5rfx.js} +24 -24
  183. package/dist/{data-DKrj_Hx6.js.map → data-BiwK5rfx.js.map} +1 -1
  184. package/dist/data-DOuPqg8d.cjs +2 -0
  185. package/dist/{data-DHkccnSN.cjs.map → data-DOuPqg8d.cjs.map} +1 -1
  186. package/dist/data.cjs +1 -1
  187. package/dist/data.js +3 -3
  188. package/dist/{dateUtils-Ben8lfvV.js → dateUtils-CUY6CRCf.js} +1 -1
  189. package/dist/{dateUtils-Ben8lfvV.js.map → dateUtils-CUY6CRCf.js.map} +1 -1
  190. package/dist/{dateUtils-vT9rOf1J.cjs → dateUtils-Dq1vaA-D.cjs} +1 -1
  191. package/dist/{dateUtils-vT9rOf1J.cjs.map → dateUtils-Dq1vaA-D.cjs.map} +1 -1
  192. package/dist/display-BafEcBK_.cjs +3 -0
  193. package/dist/display-BafEcBK_.cjs.map +1 -0
  194. package/dist/{display-rQqBLjAN.js → display-Zxj9YHu_.js} +196 -179
  195. package/dist/display-Zxj9YHu_.js.map +1 -0
  196. package/dist/display.cjs +1 -1
  197. package/dist/display.js +3 -3
  198. package/dist/{dropdowns-BKnXb1XJ.js → dropdowns-Bw8obCYl.js} +15 -15
  199. package/dist/{dropdowns-BKnXb1XJ.js.map → dropdowns-Bw8obCYl.js.map} +1 -1
  200. package/dist/dropdowns-DN7j1HhE.cjs +2 -0
  201. package/dist/{dropdowns-cRrLY8FG.cjs.map → dropdowns-DN7j1HhE.cjs.map} +1 -1
  202. package/dist/dropdowns.cjs +1 -1
  203. package/dist/dropdowns.js +1 -1
  204. package/dist/{feedback-CIXmm0XT.js → feedback-8H3bmQw5.js} +18 -18
  205. package/dist/{feedback-CIXmm0XT.js.map → feedback-8H3bmQw5.js.map} +1 -1
  206. package/dist/feedback-Di0SEpRe.cjs +2 -0
  207. package/dist/{feedback-DiMptPJy.cjs.map → feedback-Di0SEpRe.cjs.map} +1 -1
  208. package/dist/feedback.cjs +1 -1
  209. package/dist/feedback.js +6 -6
  210. package/dist/form-BYz99Py5.cjs +2 -0
  211. package/dist/{form-DABPazeN.cjs.map → form-BYz99Py5.cjs.map} +1 -1
  212. package/dist/{form-DZJxDW59.js → form-JHlvtP9r.js} +2 -2
  213. package/dist/{form-DZJxDW59.js.map → form-JHlvtP9r.js.map} +1 -1
  214. package/dist/form.cjs +1 -1
  215. package/dist/form.js +1 -1
  216. package/dist/{formatters-CauWlsnM.cjs → formatters-CNjg_h7-.cjs} +1 -1
  217. package/dist/{formatters-CauWlsnM.cjs.map → formatters-CNjg_h7-.cjs.map} +1 -1
  218. package/dist/{formatters-Doqdu_w1.js → formatters-T0vvjMtB.js} +1 -1
  219. package/dist/{formatters-Doqdu_w1.js.map → formatters-T0vvjMtB.js.map} +1 -1
  220. package/dist/{frameworkTexts-DzujbRBe.js → frameworkTexts-CvxcWRXp.js} +2 -2
  221. package/dist/{frameworkTexts-DzujbRBe.js.map → frameworkTexts-CvxcWRXp.js.map} +1 -1
  222. package/dist/frameworkTexts-abkS5XZK.cjs +2 -0
  223. package/dist/{frameworkTexts-DPX5T2x3.cjs.map → frameworkTexts-abkS5XZK.cjs.map} +1 -1
  224. package/dist/i18n.cjs +1 -1
  225. package/dist/i18n.js +1 -1
  226. package/dist/{icons-DlNO04xH.js → icons-CfpYxnfg.js} +1 -1
  227. package/dist/{icons-DlNO04xH.js.map → icons-CfpYxnfg.js.map} +1 -1
  228. package/dist/icons-DWMgDKgt.cjs +2 -0
  229. package/dist/{icons-BJCV7W0L.cjs.map → icons-DWMgDKgt.cjs.map} +1 -1
  230. package/dist/icons.cjs +1 -1
  231. package/dist/icons.js +1 -1
  232. package/dist/illustrations.cjs +1 -1
  233. package/dist/illustrations.js +1 -1
  234. package/dist/index.cjs +1 -1
  235. package/dist/index.js +57 -57
  236. package/dist/{inputs-CmpB6eyB.js → inputs-Bcwd_UTr.js} +12 -12
  237. package/dist/{inputs-CmpB6eyB.js.map → inputs-Bcwd_UTr.js.map} +1 -1
  238. package/dist/inputs-FP545Yri.cjs +2 -0
  239. package/dist/{inputs-EZBwxk7j.cjs.map → inputs-FP545Yri.cjs.map} +1 -1
  240. package/dist/inputs.cjs +1 -1
  241. package/dist/inputs.js +4 -4
  242. package/dist/javascript-CXjsxb-I.js +438 -0
  243. package/dist/javascript-CXjsxb-I.js.map +1 -0
  244. package/dist/javascript-CzjCTQxn.cjs +2 -0
  245. package/dist/javascript-CzjCTQxn.cjs.map +1 -0
  246. package/dist/json-9Qq5guN0.cjs +2 -0
  247. package/dist/json-9Qq5guN0.cjs.map +1 -0
  248. package/dist/json-CyV5VF8D.js +38 -0
  249. package/dist/json-CyV5VF8D.js.map +1 -0
  250. package/dist/{layout-D72Y7VcW.js → layout-BpEnTocp.js} +11 -11
  251. package/dist/{layout-D72Y7VcW.js.map → layout-BpEnTocp.js.map} +1 -1
  252. package/dist/layout-rtlHrjDb.cjs +2 -0
  253. package/dist/{layout-DZiWboju.cjs.map → layout-rtlHrjDb.cjs.map} +1 -1
  254. package/dist/layout.cjs +1 -1
  255. package/dist/layout.js +5 -5
  256. package/dist/{layoutProps-Ck4VtGm9.cjs → layoutProps-B8y2XwHy.cjs} +1 -1
  257. package/dist/{layoutProps-Ck4VtGm9.cjs.map → layoutProps-B8y2XwHy.cjs.map} +1 -1
  258. package/dist/{layoutProps-Cl6d1KmH.js → layoutProps-CE5-ghKw.js} +1 -1
  259. package/dist/{layoutProps-Cl6d1KmH.js.map → layoutProps-CE5-ghKw.js.map} +1 -1
  260. package/dist/{licensing-Cbpi1toF.js → licensing-CwzqhHH9.js} +1 -1
  261. package/dist/{licensing-Cbpi1toF.js.map → licensing-CwzqhHH9.js.map} +1 -1
  262. package/dist/licensing-ezfo7ZTh.cjs +2 -0
  263. package/dist/{licensing-JchPJhVY.cjs.map → licensing-ezfo7ZTh.cjs.map} +1 -1
  264. package/dist/locale-CZyqh3ON.cjs +2 -0
  265. package/dist/{locale-DIwV_GfN.cjs.map → locale-CZyqh3ON.cjs.map} +1 -1
  266. package/dist/{locale-BNyzqXAU.js → locale-JX_gX03k.js} +1 -1
  267. package/dist/{locale-BNyzqXAU.js.map → locale-JX_gX03k.js.map} +1 -1
  268. package/dist/media-CiHsgOmu.cjs +2 -0
  269. package/dist/{media-p643cb02.cjs.map → media-CiHsgOmu.cjs.map} +1 -1
  270. package/dist/{media-BlGY91Na.js → media-IM9mfVAn.js} +9 -9
  271. package/dist/{media-BlGY91Na.js.map → media-IM9mfVAn.js.map} +1 -1
  272. package/dist/media.cjs +1 -1
  273. package/dist/media.js +3 -3
  274. package/dist/{overlays-51pBvlf9.js → overlays-CGlqD3rl.js} +7 -7
  275. package/dist/{overlays-51pBvlf9.js.map → overlays-CGlqD3rl.js.map} +1 -1
  276. package/dist/overlays-DrSGzbbA.cjs +2 -0
  277. package/dist/{overlays-8htlWp07.cjs.map → overlays-DrSGzbbA.cjs.map} +1 -1
  278. package/dist/overlays.cjs +1 -1
  279. package/dist/overlays.js +5 -5
  280. package/dist/php-Br75m0HU.cjs +3 -0
  281. package/dist/php-Br75m0HU.cjs.map +1 -0
  282. package/dist/php-deNqvHeU.js +296 -0
  283. package/dist/php-deNqvHeU.js.map +1 -0
  284. package/dist/primitives.cjs +1 -1
  285. package/dist/primitives.js +2 -2
  286. package/dist/{relativeTime-BqCuaBqb.js → relativeTime-Cr-NVzij.js} +1 -1
  287. package/dist/{relativeTime-BqCuaBqb.js.map → relativeTime-Cr-NVzij.js.map} +1 -1
  288. package/dist/{relativeTime-DUbW4O44.cjs → relativeTime-DgYBUaVm.cjs} +1 -1
  289. package/dist/{relativeTime-DUbW4O44.cjs.map → relativeTime-DgYBUaVm.cjs.map} +1 -1
  290. package/dist/style-runtime.cjs +1 -1
  291. package/dist/style-runtime.js +1 -1
  292. package/dist/styles.css +1 -1
  293. package/dist/theme-CgS-bND3.cjs +2 -0
  294. package/dist/{theme-Bnwe-wvr.cjs.map → theme-CgS-bND3.cjs.map} +1 -1
  295. package/dist/{theme-KYwqDZxJ.js → theme-D_f-cmSA.js} +1 -1
  296. package/dist/{theme-KYwqDZxJ.js.map → theme-D_f-cmSA.js.map} +1 -1
  297. package/dist/theme.cjs +1 -1
  298. package/dist/theme.js +1 -1
  299. package/dist/typescript-CRgqVaw_.cjs +2 -0
  300. package/dist/typescript-CRgqVaw_.cjs.map +1 -0
  301. package/dist/typescript-jNfCpQvl.js +523 -0
  302. package/dist/typescript-jNfCpQvl.js.map +1 -0
  303. package/dist/{typography-FCWA0UOB.js → typography-BSBsn0f8.js} +3 -3
  304. package/dist/{typography-FCWA0UOB.js.map → typography-BSBsn0f8.js.map} +1 -1
  305. package/dist/typography-Zo4Usx9I.cjs +2 -0
  306. package/dist/{typography-D1s-QFlb.cjs.map → typography-Zo4Usx9I.cjs.map} +1 -1
  307. package/dist/typography.cjs +1 -1
  308. package/dist/typography.js +5 -5
  309. package/dist/{useGhostText-BJZKdZpw.js → useGhostText-DG0bzcao.js} +1 -1
  310. package/dist/{useGhostText-BJZKdZpw.js.map → useGhostText-DG0bzcao.js.map} +1 -1
  311. package/dist/useGhostText-tv1LiSPs.cjs +2 -0
  312. package/dist/{useGhostText-D1DbIs-n.cjs.map → useGhostText-tv1LiSPs.cjs.map} +1 -1
  313. package/dist/useInteractionEffect-D1ZdNbKU.cjs +2 -0
  314. package/dist/{useInteractionEffect-CYHGHV1e.cjs.map → useInteractionEffect-D1ZdNbKU.cjs.map} +1 -1
  315. package/dist/{useInteractionEffect-ClkU3aH5.js → useInteractionEffect-DtpbVd77.js} +1 -1
  316. package/dist/{useInteractionEffect-ClkU3aH5.js.map → useInteractionEffect-DtpbVd77.js.map} +1 -1
  317. package/dist/useKeyboardNav-CkIlAagq.cjs +2 -0
  318. package/dist/{useKeyboardNav-BoibrRUF.cjs.map → useKeyboardNav-CkIlAagq.cjs.map} +1 -1
  319. package/dist/{useKeyboardNav-CBOdeTFM.js → useKeyboardNav-iEXOdEMB.js} +1 -1
  320. package/dist/{useKeyboardNav-CBOdeTFM.js.map → useKeyboardNav-iEXOdEMB.js.map} +1 -1
  321. package/dist/utils.cjs +1 -1
  322. package/dist/utils.js +10 -10
  323. package/dist/{validators-D4aTeaH0.cjs → validators-BeNTD8mf.cjs} +1 -1
  324. package/dist/{validators-D4aTeaH0.cjs.map → validators-BeNTD8mf.cjs.map} +1 -1
  325. package/dist/{validators-YZyyyLvE.js → validators-H8tNxb8O.js} +1 -1
  326. package/dist/{validators-YZyyyLvE.js.map → validators-H8tNxb8O.js.map} +1 -1
  327. package/dist/xml-0Th6YIDv.js +168 -0
  328. package/dist/xml-0Th6YIDv.js.map +1 -0
  329. package/dist/xml-C_ksWBRH.cjs +2 -0
  330. package/dist/xml-C_ksWBRH.cjs.map +1 -0
  331. package/package.json +2 -2
  332. package/dist/MAvatar-DGEQqUss.cjs +0 -2
  333. package/dist/MBadge-DcIPfPH1.cjs +0 -2
  334. package/dist/MButton-LUNWBBOV.cjs +0 -2
  335. package/dist/MCheckbox-PzknJeM2.cjs +0 -2
  336. package/dist/MDataTable-Bq6UoNJX.cjs +0 -2
  337. package/dist/MDrawer-DRqMsjMt.cjs +0 -2
  338. package/dist/MDropdownMenu-CymCQqyP.cjs +0 -2
  339. package/dist/MGalleryIllustration-BHtRFizZ.cjs +0 -2
  340. package/dist/MHeading-DHT1gORD.cjs +0 -2
  341. package/dist/MI18nProvider-Bml7Vs2-.cjs +0 -2
  342. package/dist/MImage-BQs91GK-.js.map +0 -1
  343. package/dist/MImage-CxeuH-cT.cjs +0 -2
  344. package/dist/MImage-CxeuH-cT.cjs.map +0 -1
  345. package/dist/MInline-D9p9Sazp.cjs +0 -2
  346. package/dist/MInput-DDZ71Qqn.cjs +0 -2
  347. package/dist/MInputCVC-Sp2uZ5aO.cjs +0 -2
  348. package/dist/MInputSearch-30o4bcDC.cjs +0 -2
  349. package/dist/MLink-U_wAUuz1.cjs +0 -2
  350. package/dist/MModal-Czy-rR--.cjs +0 -2
  351. package/dist/MPagination-73z0sQvf.cjs +0 -2
  352. package/dist/MPopover-BW23_1Dl.cjs +0 -2
  353. package/dist/MPortal-DE3pL2Xl.cjs +0 -2
  354. package/dist/MQrCode-CMoru4dD.cjs +0 -2
  355. package/dist/MSkeleton-B0Mxe3L7.cjs +0 -2
  356. package/dist/MSlider-sH2Vt9Lw.cjs +0 -2
  357. package/dist/MSparkline-B-ld7hJu.cjs +0 -2
  358. package/dist/MStack-Cy2GplIA.cjs +0 -2
  359. package/dist/MSubText-DP9WYlwz.cjs +0 -2
  360. package/dist/MSurface-C467dVMQ.cjs +0 -2
  361. package/dist/MTag-DXqkBvqx.cjs +0 -2
  362. package/dist/MText-COzub3y4.cjs +0 -2
  363. package/dist/MTimeAgo-DWwXs48z.cjs +0 -2
  364. package/dist/MToggle-Cm3f6gm4.cjs +0 -2
  365. package/dist/MTooltip-C3PeHgV3.cjs +0 -2
  366. package/dist/cards-B75QM9JW.cjs +0 -2
  367. package/dist/chunk-350yNsax.cjs +0 -1
  368. package/dist/chunk-efA98nb6.js +0 -13
  369. package/dist/controls-B7wV_kjJ.cjs +0 -2
  370. package/dist/data-DHkccnSN.cjs +0 -2
  371. package/dist/display-DKJ6Hp3A.cjs +0 -3
  372. package/dist/display-DKJ6Hp3A.cjs.map +0 -1
  373. package/dist/display-rQqBLjAN.js.map +0 -1
  374. package/dist/dropdowns-cRrLY8FG.cjs +0 -2
  375. package/dist/feedback-DiMptPJy.cjs +0 -2
  376. package/dist/form-DABPazeN.cjs +0 -2
  377. package/dist/frameworkTexts-DPX5T2x3.cjs +0 -2
  378. package/dist/icons-BJCV7W0L.cjs +0 -2
  379. package/dist/inputs-EZBwxk7j.cjs +0 -2
  380. package/dist/layout-DZiWboju.cjs +0 -2
  381. package/dist/licensing-JchPJhVY.cjs +0 -2
  382. package/dist/locale-DIwV_GfN.cjs +0 -2
  383. package/dist/media-p643cb02.cjs +0 -2
  384. package/dist/overlays-8htlWp07.cjs +0 -2
  385. package/dist/prism-bash-DSVvpDwH.cjs +0 -2
  386. package/dist/prism-bash-DSVvpDwH.cjs.map +0 -1
  387. package/dist/prism-bash-GQKgVScr.js +0 -177
  388. package/dist/prism-bash-GQKgVScr.js.map +0 -1
  389. package/dist/prism-c-DBlZetAm.js +0 -56
  390. package/dist/prism-c-DBlZetAm.js.map +0 -1
  391. package/dist/prism-c-DwJ0sL1f.cjs +0 -2
  392. package/dist/prism-c-DwJ0sL1f.cjs.map +0 -1
  393. package/dist/prism-clike-BHy7LBAZ.cjs +0 -2
  394. package/dist/prism-clike-BHy7LBAZ.cjs.map +0 -1
  395. package/dist/prism-clike-CrtZga9r.js +0 -30
  396. package/dist/prism-clike-CrtZga9r.js.map +0 -1
  397. package/dist/prism-core-DsZQ3wSm.js +0 -299
  398. package/dist/prism-core-DsZQ3wSm.js.map +0 -1
  399. package/dist/prism-core-Z2NDHfPM.cjs +0 -2
  400. package/dist/prism-core-Z2NDHfPM.cjs.map +0 -1
  401. package/dist/prism-cpp-CXyjGEks.cjs +0 -2
  402. package/dist/prism-cpp-CXyjGEks.cjs.map +0 -1
  403. package/dist/prism-cpp-DerVaWjZ.js +0 -65
  404. package/dist/prism-cpp-DerVaWjZ.js.map +0 -1
  405. package/dist/prism-css-Bx_bUmkm.js +0 -57
  406. package/dist/prism-css-Bx_bUmkm.js.map +0 -1
  407. package/dist/prism-css-q8i9Tl0Y.cjs +0 -2
  408. package/dist/prism-css-q8i9Tl0Y.cjs.map +0 -1
  409. package/dist/prism-javascript-CC_WcCH4.cjs +0 -2
  410. package/dist/prism-javascript-CC_WcCH4.cjs.map +0 -1
  411. package/dist/prism-javascript-uSHTlCK6.js +0 -103
  412. package/dist/prism-javascript-uSHTlCK6.js.map +0 -1
  413. package/dist/prism-json-CRpBxccA.js +0 -27
  414. package/dist/prism-json-CRpBxccA.js.map +0 -1
  415. package/dist/prism-json-CvwHQDim.cjs +0 -2
  416. package/dist/prism-json-CvwHQDim.cjs.map +0 -1
  417. package/dist/prism-jsx-CSsxTxi5.js +0 -48
  418. package/dist/prism-jsx-CSsxTxi5.js.map +0 -1
  419. package/dist/prism-jsx-ZJAX6mJe.cjs +0 -2
  420. package/dist/prism-jsx-ZJAX6mJe.cjs.map +0 -1
  421. package/dist/prism-markup-Cc4COxfn.js +0 -118
  422. package/dist/prism-markup-Cc4COxfn.js.map +0 -1
  423. package/dist/prism-markup-RTw80xRC.cjs +0 -2
  424. package/dist/prism-markup-RTw80xRC.cjs.map +0 -1
  425. package/dist/prism-markup-templating-CylI3Gpj.cjs +0 -2
  426. package/dist/prism-markup-templating-CylI3Gpj.cjs.map +0 -1
  427. package/dist/prism-markup-templating-D4w8OHUw.js +0 -41
  428. package/dist/prism-markup-templating-D4w8OHUw.js.map +0 -1
  429. package/dist/prism-php-CMZ7fRp0.cjs +0 -2
  430. package/dist/prism-php-CMZ7fRp0.cjs.map +0 -1
  431. package/dist/prism-php-nJ_CzHXP.js +0 -279
  432. package/dist/prism-php-nJ_CzHXP.js.map +0 -1
  433. package/dist/prism-tsx-CvHlXV3S.cjs +0 -2
  434. package/dist/prism-tsx-CvHlXV3S.cjs.map +0 -1
  435. package/dist/prism-tsx-UlwV29L3.js +0 -10
  436. package/dist/prism-tsx-UlwV29L3.js.map +0 -1
  437. package/dist/prism-typescript-BA7hsZPZ.js +0 -40
  438. package/dist/prism-typescript-BA7hsZPZ.js.map +0 -1
  439. package/dist/prism-typescript-CDAVIXup.cjs +0 -2
  440. package/dist/prism-typescript-CDAVIXup.cjs.map +0 -1
  441. package/dist/theme-Bnwe-wvr.cjs +0 -2
  442. package/dist/typography-D1s-QFlb.cjs +0 -2
  443. package/dist/useGhostText-D1DbIs-n.cjs +0 -2
  444. package/dist/useInteractionEffect-CYHGHV1e.cjs +0 -2
  445. package/dist/useKeyboardNav-BoibrRUF.cjs +0 -2
package/dist/feedback.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  const {ensureStyles}=require('./style-runtime.cjs')
2
2
  ensureStyles()
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MButton-LUNWBBOV.cjs`),t=require(`./feedback-DiMptPJy.cjs`),n=require(`./MBadge-DcIPfPH1.cjs`),r=require(`./MTag-DXqkBvqx.cjs`),i=require(`./MSkeleton-B0Mxe3L7.cjs`),a=require(`./MCookieBootstrap-DSOT4FQo.cjs`);exports.MAlert=t.f,exports.MBadge=n.t,exports.MBanner=t.d,exports.MCOOKIE_BOOTSTRAP_CONFIG_KEY=a.o,exports.MCOOKIE_CONSENT_CHANGE_EVENT=a.s,exports.MCookieBanner=t.n,exports.MCookieConsent=t.r,exports.MCookieConsentProvider=t.o,exports.MCookieDeclaration=t.t,exports.MCookiePreferences=t.i,exports.MCookieTrigger=t.a,exports.MLoader=t.u,exports.MSkeleton=i.t,exports.MSpinner=e.r,exports.MTag=r.t,exports.MToastProvider=t.c,exports.autoBootstrapMCookieConsent=a.t,exports.bootstrapMCookieConsent=a.n,exports.readMCookieBootstrapConfig=a.r,exports.reportMCookieSurface=a.i,exports.scanMCookieSurface=a.a,exports.useMCookieConsent=t.s,exports.useMToast=t.l;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MButton-DrkVdRDy.cjs`),t=require(`./feedback-Di0SEpRe.cjs`),n=require(`./MBadge-B4x-Lx7e.cjs`),r=require(`./MTag-Y4Tswmli.cjs`),i=require(`./MSkeleton-5j1h9s95.cjs`),a=require(`./MCookieBootstrap-3-wyz3Dk.cjs`);exports.MAlert=t.f,exports.MBadge=n.t,exports.MBanner=t.d,exports.MCOOKIE_BOOTSTRAP_CONFIG_KEY=a.o,exports.MCOOKIE_CONSENT_CHANGE_EVENT=a.s,exports.MCookieBanner=t.n,exports.MCookieConsent=t.r,exports.MCookieConsentProvider=t.o,exports.MCookieDeclaration=t.t,exports.MCookiePreferences=t.i,exports.MCookieTrigger=t.a,exports.MLoader=t.u,exports.MSkeleton=i.t,exports.MSpinner=e.r,exports.MTag=r.t,exports.MToastProvider=t.c,exports.autoBootstrapMCookieConsent=a.t,exports.bootstrapMCookieConsent=a.n,exports.readMCookieBootstrapConfig=a.r,exports.reportMCookieSurface=a.i,exports.scanMCookieSurface=a.a,exports.useMCookieConsent=t.s,exports.useMToast=t.l;
package/dist/feedback.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { r as e } from "./MButton-BpSZUhpY.js";
4
- import { a as t, c as n, d as r, f as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "./feedback-CIXmm0XT.js";
5
- import { t as p } from "./MBadge-C_vK2JdM.js";
6
- import { t as m } from "./MTag-N-tYZ915.js";
7
- import { t as h } from "./MSkeleton-Bqq_XJn8.js";
8
- import { a as g, i as _, n as v, o as y, r as b, s as x, t as S } from "./MCookieBootstrap-CNYLvKjW.js";
3
+ import { r as e } from "./MButton-y9qXhhGt.js";
4
+ import { a as t, c as n, d as r, f as i, i as a, l as o, n as s, o as c, r as l, s as u, t as d, u as f } from "./feedback-8H3bmQw5.js";
5
+ import { t as p } from "./MBadge-_BggwkrM.js";
6
+ import { t as m } from "./MTag-CH5nMbm7.js";
7
+ import { t as h } from "./MSkeleton-DGhtNmpI.js";
8
+ import { a as g, i as _, n as v, o as y, r as b, s as x, t as S } from "./MCookieBootstrap-CGvYxIK8.js";
9
9
  export { i as MAlert, p as MBadge, r as MBanner, y as MCOOKIE_BOOTSTRAP_CONFIG_KEY, x as MCOOKIE_CONSENT_CHANGE_EVENT, s as MCookieBanner, l as MCookieConsent, c as MCookieConsentProvider, d as MCookieDeclaration, a as MCookiePreferences, t as MCookieTrigger, f as MLoader, h as MSkeleton, e as MSpinner, m as MTag, n as MToastProvider, S as autoBootstrapMCookieConsent, v as bootstrapMCookieConsent, b as readMCookieBootstrapConfig, _ as reportMCookieSurface, g as scanMCookieSurface, u as useMCookieConsent, o as useMToast };
@@ -0,0 +1,2 @@
1
+ const e=require(`./validators-BeNTD8mf.cjs`);require(`./core-AKWkE8Bx.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.useCallback)(e=>{x.current.set(e.name,e)},[]),C=(0,t.useCallback)(e=>{x.current.delete(e)},[]),w=(0,t.useCallback)((t,n)=>{let r=x.current.get(t);if(!r)return{valid:!0};let i=n===void 0?p[t]:n,a=i==null?``:String(i);if(r.required){let t=e.m(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}},[p]),T=(0,t.useCallback)(e=>{let t=w(e);return g(n=>{if(t.valid){let t={...n};return delete t[e],t}return{...n,[e]:t.error}}),t},[w]),E=(0,t.useCallback)(()=>{let e=!0,t={};for(let[n]of x.current){let r=w(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},[w]),D=(0,t.useCallback)((e,t)=>{m(n=>{let r={...n,[e]:t};return o?.(r),r}),s===`onChange`&&_[e]&&setTimeout(()=>T(e),0)},[o,s,_,T]),O=(0,t.useCallback)((e,t)=>{g(n=>({...n,[e]:t}))},[]),k=(0,t.useCallback)((e,t)=>{v(n=>({...n,[e]:t})),s===`onBlur`&&t&&T(e)},[s,T]),A=(0,t.useCallback)(()=>{m({...i}),g({}),v({}),b(!1)},[i]),j=(0,t.useCallback)(async e=>{if(e.preventDefault(),y||!E())return;b(!0);let t={setSubmitting:b,resetForm:A,setFieldError:O};try{await a?.(p,t)}finally{b(!1)}},[y,E,p,a,A,O]),M=(0,t.useMemo)(()=>({values:p,errors:h,touched:_,registerField:S,unregisterField:C,setFieldValue:D,setFieldError:O,setFieldTouched:k,validateField:T,validateAll:E,resetForm:A,isSubmitting:y}),[p,h,_,S,C,D,O,k,T,E,A,y]);return(0,n.jsx)(r.Provider,{value:M,children:(0,n.jsx)(`form`,{onSubmit:j,noValidate:d,className:`form${l?` ${l}`:``}`,style:u,...f,children:typeof c==`function`?c(M):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-BYz99Py5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-DABPazeN.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\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(\n (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 : values[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 [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\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 setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\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 setValues({...initialValues})\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?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, 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
+ {"version":3,"file":"form-BYz99Py5.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\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(\n (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 : values[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 [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\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 setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\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 setValues({...initialValues})\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?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, 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,4 +1,4 @@
1
- import { m as e } from "./validators-YZyyyLvE.js";
1
+ import { m as e } from "./validators-H8tNxb8O.js";
2
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
3
  import { jsx as c } from "react/jsx-runtime";
4
4
  //#region src/components/form/MForm/FormContext.ts
@@ -164,4 +164,4 @@ function f(e, t) {
164
164
  //#endregion
165
165
  export { d as n, u as r, f as t };
166
166
 
167
- //# sourceMappingURL=form-DZJxDW59.js.map
167
+ //# sourceMappingURL=form-JHlvtP9r.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-DZJxDW59.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\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(\n (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 : values[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 [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\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 setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\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 setValues({...initialValues})\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?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, 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
+ {"version":3,"file":"form-JHlvtP9r.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\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(\n (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 : values[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 [values]\n )\n\n // Persist the latest validation result for a single field.\n const validateField = useCallback(\n (name: string): ValidationResult => {\n const result = validateFieldInternal(name)\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 setValues((prev) => {\n const next = {...prev, [name]: val}\n onChange?.(next)\n return next\n })\n\n if (validationMode === 'onChange' && touched[name]) {\n // Defer validation to next tick so values are updated\n setTimeout(() => validateField(name), 0)\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 setValues({...initialValues})\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?.(values, helpers)\n } finally {\n setIsSubmitting(false)\n }\n },\n [isSubmitting, validateAll, values, 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,EAG9D,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,GACzB,GAAc,MAAoC;EAC/C,IAAM,IAAM,EAAU,QAAQ,IAAI,EAAK;AACvC,MAAI,CAAC,EAAK,QAAO,EAAC,OAAO,IAAK;EAE9B,IAAM,IAAa,MAAQ,KAAA,IAAkB,EAAO,KAAb,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;IAExB,CAAC,EAAO,CACX,EAGK,IAAgB,GACjB,MAAmC;EAChC,IAAM,IAAS,EAAsB,EAAK;AAS1C,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;AAO5B,EANA,GAAW,MAAS;GAChB,IAAM,IAAO;IAAC,GAAG;KAAO,IAAO;IAAI;AAEnC,UADA,IAAW,EAAK,EACT;IACT,EAEE,MAAmB,cAAc,EAAQ,MAEzC,iBAAiB,EAAc,EAAK,EAAE,EAAE;IAGhD;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;AAIhC,EAHA,EAAU,EAAC,GAAG,GAAc,CAAC,EAC7B,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,GAAQ,EAAQ;YAC3B;AACN,KAAgB,GAAM;;IAG9B;EAAC;EAAc;EAAa;EAAQ;EAAU;EAAW;EAAc,CAC1E,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;;;;ACjM/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"}
package/dist/form.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  const {ensureStyles}=require('./style-runtime.cjs')
2
2
  ensureStyles()
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./form-DABPazeN.cjs`);exports.MForm=e.n,exports.useFormContext=e.r,exports.useFormField=e.t;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./form-BYz99Py5.cjs`);exports.MForm=e.n,exports.useFormContext=e.r,exports.useFormField=e.t;
package/dist/form.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { n as e, r as t, t as n } from "./form-DZJxDW59.js";
3
+ import { n as e, r as t, t as n } from "./form-JHlvtP9r.js";
4
4
  export { e as MForm, t as useFormContext, n as useFormField };
@@ -1,2 +1,2 @@
1
1
  function e(e){return e.replace(/\D/g,``)}function t(e){return e.replace(/[^a-zA-Z0-9]/g,``)}function n(e){return e.replace(/\b\w/g,e=>e.toUpperCase())}function r(e){return e.replace(/\s/g,``).toUpperCase().replace(/(.{4})/g,`$1 `).trim()}function i(e){return e.replace(/\s/g,``).toUpperCase()}var a={PL:[3,3,3],DE:[3,4,3],US:[3,3,4],GB:[4,3,3],FR:[2,2,2,2,2],DEFAULT:[3,3,3]};function o(t,n={}){let r=e(t);if(!r)return``;let i=n.groupPattern??a[n.countryCode?.toUpperCase()??``]??a.DEFAULT,o=[],s=0;for(let e of i){if(s>=r.length)break;o.push(r.slice(s,s+e)),s+=e}return s<r.length&&o.push(r.slice(s)),o.join(` `)}function s(t){let n=e(t);return n.length<=3?n:n.length<=6?`${n.slice(0,3)}-${n.slice(3)}`:n.length<=8?`${n.slice(0,3)}-${n.slice(3,6)}-${n.slice(6)}`:`${n.slice(0,3)}-${n.slice(3,6)}-${n.slice(6,8)}-${n.slice(8,10)}`}function c(e,t={}){let{decimalSeparator:n=`,`,thousandSeparator:r=` `,precision:i=2}=t,a=e.replace(/[^\d.,-]/g,``);a=a.replace(`,`,`.`);let o=a.split(`.`),s=o[0]||`0`,c=o.length>1?o[1]:``,l=s.startsWith(`-`);l&&(s=s.slice(1)),s=s.replace(/^0+/,``)||`0`,r&&(s=s.replace(/\B(?=(\d{3})+(?!\d))/g,r)),c=c.slice(0,i);let u=c?`${s}${n}${c}`:s;return l?`-${u}`:u}function l(e,t=` `,n=`,`){let r=e;t&&(r=r.split(t).join(``)),r=r.replace(n,`.`),r=r.replace(/[^\d.-]/g,``);let i=parseFloat(r);return isNaN(i)?null:i}function u(e,t,n){let r=0;for(let t=0;t<n&&t<e.length;t++)e[t]!==` `&&e[t]!==`-`&&r++;let i=0;for(let e=0;e<t.length;e++)if(t[e]!==` `&&t[e]!==`-`&&i++,i===r)return e+1;return t.length}function d(e,t=`DD/MM/YYYY`,n=`/`){return e?t===`YYYY/MM/DD`?e.length<=4?e:e.length<=6?`${e.slice(0,4)}${n}${e.slice(4)}`:`${e.slice(0,4)}${n}${e.slice(4,6)}${n}${e.slice(6,8)}`:e.length<=2?e:e.length<=4?`${e.slice(0,2)}${n}${e.slice(2)}`:`${e.slice(0,2)}${n}${e.slice(2,4)}${n}${e.slice(4,8)}`:``}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return e}});
2
- //# sourceMappingURL=formatters-CauWlsnM.cjs.map
2
+ //# sourceMappingURL=formatters-CNjg_h7-.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters-CauWlsnM.cjs","names":[],"sources":["../src/utils/formatters.ts"],"sourcesContent":["// Remove every non-digit character from the input.\nexport function stripNonDigits(value: string): string {\n return value.replace(/\\D/g, '')\n}\n\n// Keep only letters and digits for identifier-like inputs.\nexport function stripNonAlphanumeric(value: string): string {\n return value.replace(/[^a-zA-Z0-9]/g, '')\n}\n\n// Capitalize the first letter of every detected word.\nexport function capitalizeWords(value: string): string {\n return value.replace(/\\b\\w/g, (ch) => ch.toUpperCase())\n}\n\n// Group IBAN values into blocks of four characters.\nexport function formatIBAN(value: string): string {\n const clean = value.replace(/\\s/g, '').toUpperCase()\n return clean.replace(/(.{4})/g, '$1 ').trim()\n}\n\n// Return a raw IBAN string without grouping spaces.\nexport function unformatIBAN(value: string): string {\n return value.replace(/\\s/g, '').toUpperCase()\n}\n\nexport interface PhoneFormatOptions {\n countryCode?: string\n groupPattern?: number[]\n}\n\nconst PHONE_GROUPS: Record<string, number[]> = {\n PL: [3, 3, 3],\n DE: [3, 4, 3],\n US: [3, 3, 4],\n GB: [4, 3, 3],\n FR: [2, 2, 2, 2, 2],\n DEFAULT: [3, 3, 3],\n}\n\n// Format a phone number using country-specific or custom digit groups.\nexport function formatPhone(value: string, options: PhoneFormatOptions = {}): string {\n const digits = stripNonDigits(value)\n if (!digits) return ''\n\n const groups =\n options.groupPattern ?? PHONE_GROUPS[options.countryCode?.toUpperCase() ?? ''] ?? PHONE_GROUPS.DEFAULT\n\n const parts: string[] = []\n let pos = 0\n for (const len of groups) {\n if (pos >= digits.length) break\n parts.push(digits.slice(pos, pos + len))\n pos += len\n }\n if (pos < digits.length) {\n parts.push(digits.slice(pos))\n }\n return parts.join(' ')\n}\n\n// Format Polish NIP values with dash separators.\nexport function formatNIP(value: string): string {\n const digits = stripNonDigits(value)\n if (digits.length <= 3) return digits\n if (digits.length <= 6) return `${digits.slice(0, 3)}-${digits.slice(3)}`\n if (digits.length <= 8) return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`\n return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6, 8)}-${digits.slice(8, 10)}`\n}\n\nexport interface CurrencyFormatOptions {\n decimalSeparator?: '.' | ','\n thousandSeparator?: ' ' | '.' | ',' | ''\n precision?: number\n}\n\n// Format a numeric string using configurable currency separators and precision.\nexport function formatCurrency(value: string, options: CurrencyFormatOptions = {}): string {\n const {decimalSeparator = ',', thousandSeparator = ' ', precision = 2} = options\n\n let clean = value.replace(/[^\\d.,-]/g, '')\n clean = clean.replace(',', '.')\n\n const parts = clean.split('.')\n let intPart = parts[0] || '0'\n let decPart = parts.length > 1 ? parts[1] : ''\n\n const isNegative = intPart.startsWith('-')\n if (isNegative) intPart = intPart.slice(1)\n\n intPart = intPart.replace(/^0+/, '') || '0'\n\n if (thousandSeparator) {\n intPart = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator)\n }\n\n decPart = decPart.slice(0, precision)\n\n const result = decPart ? `${intPart}${decimalSeparator}${decPart}` : intPart\n\n return isNegative ? `-${result}` : result\n}\n\n// Parse a formatted currency string back into a number.\nexport function parseCurrencyToNumber(\n formatted: string,\n thousandSeparator: string = ' ',\n decimalSeparator: string = ','\n): number | null {\n let clean = formatted\n if (thousandSeparator) {\n clean = clean.split(thousandSeparator).join('')\n }\n clean = clean.replace(decimalSeparator, '.')\n clean = clean.replace(/[^\\d.-]/g, '')\n const num = parseFloat(clean)\n return isNaN(num) ? null : num\n}\n\n// Preserve the logical cursor position after inserting separators into the value.\nexport function adjustCursorAfterFormat(oldValue: string, newValue: string, oldCursor: number): number {\n let realCharsBefore = 0\n for (let i = 0; i < oldCursor && i < oldValue.length; i++) {\n if (oldValue[i] !== ' ' && oldValue[i] !== '-') {\n realCharsBefore++\n }\n }\n\n let count = 0\n for (let i = 0; i < newValue.length; i++) {\n if (newValue[i] !== ' ' && newValue[i] !== '-') {\n count++\n }\n if (count === realCharsBefore) {\n return i + 1\n }\n }\n return newValue.length\n}\n\n// Format date digits into a display string with the chosen separator.\nexport function formatDateInput(\n digits: string,\n format: 'DD/MM/YYYY' | 'MM/DD/YYYY' | 'YYYY/MM/DD' = 'DD/MM/YYYY',\n separator: string = '/'\n): string {\n if (!digits) return ''\n\n if (format === 'YYYY/MM/DD') {\n if (digits.length <= 4) return digits\n if (digits.length <= 6) return `${digits.slice(0, 4)}${separator}${digits.slice(4)}`\n return `${digits.slice(0, 4)}${separator}${digits.slice(4, 6)}${separator}${digits.slice(6, 8)}`\n }\n\n // DD/MM/YYYY or MM/DD/YYYY — first two groups are 2 digits\n if (digits.length <= 2) return digits\n if (digits.length <= 4) return `${digits.slice(0, 2)}${separator}${digits.slice(2)}`\n return `${digits.slice(0, 2)}${separator}${digits.slice(2, 4)}${separator}${digits.slice(4, 8)}`\n}\n\nexport {formatPostCode} from './postalCodes'\nexport {formatCardNumber} from './creditCards'\n"],"mappings":"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"}
1
+ {"version":3,"file":"formatters-CNjg_h7-.cjs","names":[],"sources":["../src/utils/formatters.ts"],"sourcesContent":["// Remove every non-digit character from the input.\nexport function stripNonDigits(value: string): string {\n return value.replace(/\\D/g, '')\n}\n\n// Keep only letters and digits for identifier-like inputs.\nexport function stripNonAlphanumeric(value: string): string {\n return value.replace(/[^a-zA-Z0-9]/g, '')\n}\n\n// Capitalize the first letter of every detected word.\nexport function capitalizeWords(value: string): string {\n return value.replace(/\\b\\w/g, (ch) => ch.toUpperCase())\n}\n\n// Group IBAN values into blocks of four characters.\nexport function formatIBAN(value: string): string {\n const clean = value.replace(/\\s/g, '').toUpperCase()\n return clean.replace(/(.{4})/g, '$1 ').trim()\n}\n\n// Return a raw IBAN string without grouping spaces.\nexport function unformatIBAN(value: string): string {\n return value.replace(/\\s/g, '').toUpperCase()\n}\n\nexport interface PhoneFormatOptions {\n countryCode?: string\n groupPattern?: number[]\n}\n\nconst PHONE_GROUPS: Record<string, number[]> = {\n PL: [3, 3, 3],\n DE: [3, 4, 3],\n US: [3, 3, 4],\n GB: [4, 3, 3],\n FR: [2, 2, 2, 2, 2],\n DEFAULT: [3, 3, 3],\n}\n\n// Format a phone number using country-specific or custom digit groups.\nexport function formatPhone(value: string, options: PhoneFormatOptions = {}): string {\n const digits = stripNonDigits(value)\n if (!digits) return ''\n\n const groups =\n options.groupPattern ?? PHONE_GROUPS[options.countryCode?.toUpperCase() ?? ''] ?? PHONE_GROUPS.DEFAULT\n\n const parts: string[] = []\n let pos = 0\n for (const len of groups) {\n if (pos >= digits.length) break\n parts.push(digits.slice(pos, pos + len))\n pos += len\n }\n if (pos < digits.length) {\n parts.push(digits.slice(pos))\n }\n return parts.join(' ')\n}\n\n// Format Polish NIP values with dash separators.\nexport function formatNIP(value: string): string {\n const digits = stripNonDigits(value)\n if (digits.length <= 3) return digits\n if (digits.length <= 6) return `${digits.slice(0, 3)}-${digits.slice(3)}`\n if (digits.length <= 8) return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`\n return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6, 8)}-${digits.slice(8, 10)}`\n}\n\nexport interface CurrencyFormatOptions {\n decimalSeparator?: '.' | ','\n thousandSeparator?: ' ' | '.' | ',' | ''\n precision?: number\n}\n\n// Format a numeric string using configurable currency separators and precision.\nexport function formatCurrency(value: string, options: CurrencyFormatOptions = {}): string {\n const {decimalSeparator = ',', thousandSeparator = ' ', precision = 2} = options\n\n let clean = value.replace(/[^\\d.,-]/g, '')\n clean = clean.replace(',', '.')\n\n const parts = clean.split('.')\n let intPart = parts[0] || '0'\n let decPart = parts.length > 1 ? parts[1] : ''\n\n const isNegative = intPart.startsWith('-')\n if (isNegative) intPart = intPart.slice(1)\n\n intPart = intPart.replace(/^0+/, '') || '0'\n\n if (thousandSeparator) {\n intPart = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator)\n }\n\n decPart = decPart.slice(0, precision)\n\n const result = decPart ? `${intPart}${decimalSeparator}${decPart}` : intPart\n\n return isNegative ? `-${result}` : result\n}\n\n// Parse a formatted currency string back into a number.\nexport function parseCurrencyToNumber(\n formatted: string,\n thousandSeparator: string = ' ',\n decimalSeparator: string = ','\n): number | null {\n let clean = formatted\n if (thousandSeparator) {\n clean = clean.split(thousandSeparator).join('')\n }\n clean = clean.replace(decimalSeparator, '.')\n clean = clean.replace(/[^\\d.-]/g, '')\n const num = parseFloat(clean)\n return isNaN(num) ? null : num\n}\n\n// Preserve the logical cursor position after inserting separators into the value.\nexport function adjustCursorAfterFormat(oldValue: string, newValue: string, oldCursor: number): number {\n let realCharsBefore = 0\n for (let i = 0; i < oldCursor && i < oldValue.length; i++) {\n if (oldValue[i] !== ' ' && oldValue[i] !== '-') {\n realCharsBefore++\n }\n }\n\n let count = 0\n for (let i = 0; i < newValue.length; i++) {\n if (newValue[i] !== ' ' && newValue[i] !== '-') {\n count++\n }\n if (count === realCharsBefore) {\n return i + 1\n }\n }\n return newValue.length\n}\n\n// Format date digits into a display string with the chosen separator.\nexport function formatDateInput(\n digits: string,\n format: 'DD/MM/YYYY' | 'MM/DD/YYYY' | 'YYYY/MM/DD' = 'DD/MM/YYYY',\n separator: string = '/'\n): string {\n if (!digits) return ''\n\n if (format === 'YYYY/MM/DD') {\n if (digits.length <= 4) return digits\n if (digits.length <= 6) return `${digits.slice(0, 4)}${separator}${digits.slice(4)}`\n return `${digits.slice(0, 4)}${separator}${digits.slice(4, 6)}${separator}${digits.slice(6, 8)}`\n }\n\n // DD/MM/YYYY or MM/DD/YYYY — first two groups are 2 digits\n if (digits.length <= 2) return digits\n if (digits.length <= 4) return `${digits.slice(0, 2)}${separator}${digits.slice(2)}`\n return `${digits.slice(0, 2)}${separator}${digits.slice(2, 4)}${separator}${digits.slice(4, 8)}`\n}\n\nexport {formatPostCode} from './postalCodes'\nexport {formatCardNumber} from './creditCards'\n"],"mappings":"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"}
@@ -89,4 +89,4 @@ function d(e, t = "DD/MM/YYYY", n = "/") {
89
89
  //#endregion
90
90
  export { r as a, l as c, i as d, d as i, t as l, n, s as o, c as r, o as s, u as t, e as u };
91
91
 
92
- //# sourceMappingURL=formatters-Doqdu_w1.js.map
92
+ //# sourceMappingURL=formatters-T0vvjMtB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatters-Doqdu_w1.js","names":[],"sources":["../src/utils/formatters.ts"],"sourcesContent":["// Remove every non-digit character from the input.\nexport function stripNonDigits(value: string): string {\n return value.replace(/\\D/g, '')\n}\n\n// Keep only letters and digits for identifier-like inputs.\nexport function stripNonAlphanumeric(value: string): string {\n return value.replace(/[^a-zA-Z0-9]/g, '')\n}\n\n// Capitalize the first letter of every detected word.\nexport function capitalizeWords(value: string): string {\n return value.replace(/\\b\\w/g, (ch) => ch.toUpperCase())\n}\n\n// Group IBAN values into blocks of four characters.\nexport function formatIBAN(value: string): string {\n const clean = value.replace(/\\s/g, '').toUpperCase()\n return clean.replace(/(.{4})/g, '$1 ').trim()\n}\n\n// Return a raw IBAN string without grouping spaces.\nexport function unformatIBAN(value: string): string {\n return value.replace(/\\s/g, '').toUpperCase()\n}\n\nexport interface PhoneFormatOptions {\n countryCode?: string\n groupPattern?: number[]\n}\n\nconst PHONE_GROUPS: Record<string, number[]> = {\n PL: [3, 3, 3],\n DE: [3, 4, 3],\n US: [3, 3, 4],\n GB: [4, 3, 3],\n FR: [2, 2, 2, 2, 2],\n DEFAULT: [3, 3, 3],\n}\n\n// Format a phone number using country-specific or custom digit groups.\nexport function formatPhone(value: string, options: PhoneFormatOptions = {}): string {\n const digits = stripNonDigits(value)\n if (!digits) return ''\n\n const groups =\n options.groupPattern ?? PHONE_GROUPS[options.countryCode?.toUpperCase() ?? ''] ?? PHONE_GROUPS.DEFAULT\n\n const parts: string[] = []\n let pos = 0\n for (const len of groups) {\n if (pos >= digits.length) break\n parts.push(digits.slice(pos, pos + len))\n pos += len\n }\n if (pos < digits.length) {\n parts.push(digits.slice(pos))\n }\n return parts.join(' ')\n}\n\n// Format Polish NIP values with dash separators.\nexport function formatNIP(value: string): string {\n const digits = stripNonDigits(value)\n if (digits.length <= 3) return digits\n if (digits.length <= 6) return `${digits.slice(0, 3)}-${digits.slice(3)}`\n if (digits.length <= 8) return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`\n return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6, 8)}-${digits.slice(8, 10)}`\n}\n\nexport interface CurrencyFormatOptions {\n decimalSeparator?: '.' | ','\n thousandSeparator?: ' ' | '.' | ',' | ''\n precision?: number\n}\n\n// Format a numeric string using configurable currency separators and precision.\nexport function formatCurrency(value: string, options: CurrencyFormatOptions = {}): string {\n const {decimalSeparator = ',', thousandSeparator = ' ', precision = 2} = options\n\n let clean = value.replace(/[^\\d.,-]/g, '')\n clean = clean.replace(',', '.')\n\n const parts = clean.split('.')\n let intPart = parts[0] || '0'\n let decPart = parts.length > 1 ? parts[1] : ''\n\n const isNegative = intPart.startsWith('-')\n if (isNegative) intPart = intPart.slice(1)\n\n intPart = intPart.replace(/^0+/, '') || '0'\n\n if (thousandSeparator) {\n intPart = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator)\n }\n\n decPart = decPart.slice(0, precision)\n\n const result = decPart ? `${intPart}${decimalSeparator}${decPart}` : intPart\n\n return isNegative ? `-${result}` : result\n}\n\n// Parse a formatted currency string back into a number.\nexport function parseCurrencyToNumber(\n formatted: string,\n thousandSeparator: string = ' ',\n decimalSeparator: string = ','\n): number | null {\n let clean = formatted\n if (thousandSeparator) {\n clean = clean.split(thousandSeparator).join('')\n }\n clean = clean.replace(decimalSeparator, '.')\n clean = clean.replace(/[^\\d.-]/g, '')\n const num = parseFloat(clean)\n return isNaN(num) ? null : num\n}\n\n// Preserve the logical cursor position after inserting separators into the value.\nexport function adjustCursorAfterFormat(oldValue: string, newValue: string, oldCursor: number): number {\n let realCharsBefore = 0\n for (let i = 0; i < oldCursor && i < oldValue.length; i++) {\n if (oldValue[i] !== ' ' && oldValue[i] !== '-') {\n realCharsBefore++\n }\n }\n\n let count = 0\n for (let i = 0; i < newValue.length; i++) {\n if (newValue[i] !== ' ' && newValue[i] !== '-') {\n count++\n }\n if (count === realCharsBefore) {\n return i + 1\n }\n }\n return newValue.length\n}\n\n// Format date digits into a display string with the chosen separator.\nexport function formatDateInput(\n digits: string,\n format: 'DD/MM/YYYY' | 'MM/DD/YYYY' | 'YYYY/MM/DD' = 'DD/MM/YYYY',\n separator: string = '/'\n): string {\n if (!digits) return ''\n\n if (format === 'YYYY/MM/DD') {\n if (digits.length <= 4) return digits\n if (digits.length <= 6) return `${digits.slice(0, 4)}${separator}${digits.slice(4)}`\n return `${digits.slice(0, 4)}${separator}${digits.slice(4, 6)}${separator}${digits.slice(6, 8)}`\n }\n\n // DD/MM/YYYY or MM/DD/YYYY — first two groups are 2 digits\n if (digits.length <= 2) return digits\n if (digits.length <= 4) return `${digits.slice(0, 2)}${separator}${digits.slice(2)}`\n return `${digits.slice(0, 2)}${separator}${digits.slice(2, 4)}${separator}${digits.slice(4, 8)}`\n}\n\nexport {formatPostCode} from './postalCodes'\nexport {formatCardNumber} from './creditCards'\n"],"mappings":"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"}
1
+ {"version":3,"file":"formatters-T0vvjMtB.js","names":[],"sources":["../src/utils/formatters.ts"],"sourcesContent":["// Remove every non-digit character from the input.\nexport function stripNonDigits(value: string): string {\n return value.replace(/\\D/g, '')\n}\n\n// Keep only letters and digits for identifier-like inputs.\nexport function stripNonAlphanumeric(value: string): string {\n return value.replace(/[^a-zA-Z0-9]/g, '')\n}\n\n// Capitalize the first letter of every detected word.\nexport function capitalizeWords(value: string): string {\n return value.replace(/\\b\\w/g, (ch) => ch.toUpperCase())\n}\n\n// Group IBAN values into blocks of four characters.\nexport function formatIBAN(value: string): string {\n const clean = value.replace(/\\s/g, '').toUpperCase()\n return clean.replace(/(.{4})/g, '$1 ').trim()\n}\n\n// Return a raw IBAN string without grouping spaces.\nexport function unformatIBAN(value: string): string {\n return value.replace(/\\s/g, '').toUpperCase()\n}\n\nexport interface PhoneFormatOptions {\n countryCode?: string\n groupPattern?: number[]\n}\n\nconst PHONE_GROUPS: Record<string, number[]> = {\n PL: [3, 3, 3],\n DE: [3, 4, 3],\n US: [3, 3, 4],\n GB: [4, 3, 3],\n FR: [2, 2, 2, 2, 2],\n DEFAULT: [3, 3, 3],\n}\n\n// Format a phone number using country-specific or custom digit groups.\nexport function formatPhone(value: string, options: PhoneFormatOptions = {}): string {\n const digits = stripNonDigits(value)\n if (!digits) return ''\n\n const groups =\n options.groupPattern ?? PHONE_GROUPS[options.countryCode?.toUpperCase() ?? ''] ?? PHONE_GROUPS.DEFAULT\n\n const parts: string[] = []\n let pos = 0\n for (const len of groups) {\n if (pos >= digits.length) break\n parts.push(digits.slice(pos, pos + len))\n pos += len\n }\n if (pos < digits.length) {\n parts.push(digits.slice(pos))\n }\n return parts.join(' ')\n}\n\n// Format Polish NIP values with dash separators.\nexport function formatNIP(value: string): string {\n const digits = stripNonDigits(value)\n if (digits.length <= 3) return digits\n if (digits.length <= 6) return `${digits.slice(0, 3)}-${digits.slice(3)}`\n if (digits.length <= 8) return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6)}`\n return `${digits.slice(0, 3)}-${digits.slice(3, 6)}-${digits.slice(6, 8)}-${digits.slice(8, 10)}`\n}\n\nexport interface CurrencyFormatOptions {\n decimalSeparator?: '.' | ','\n thousandSeparator?: ' ' | '.' | ',' | ''\n precision?: number\n}\n\n// Format a numeric string using configurable currency separators and precision.\nexport function formatCurrency(value: string, options: CurrencyFormatOptions = {}): string {\n const {decimalSeparator = ',', thousandSeparator = ' ', precision = 2} = options\n\n let clean = value.replace(/[^\\d.,-]/g, '')\n clean = clean.replace(',', '.')\n\n const parts = clean.split('.')\n let intPart = parts[0] || '0'\n let decPart = parts.length > 1 ? parts[1] : ''\n\n const isNegative = intPart.startsWith('-')\n if (isNegative) intPart = intPart.slice(1)\n\n intPart = intPart.replace(/^0+/, '') || '0'\n\n if (thousandSeparator) {\n intPart = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator)\n }\n\n decPart = decPart.slice(0, precision)\n\n const result = decPart ? `${intPart}${decimalSeparator}${decPart}` : intPart\n\n return isNegative ? `-${result}` : result\n}\n\n// Parse a formatted currency string back into a number.\nexport function parseCurrencyToNumber(\n formatted: string,\n thousandSeparator: string = ' ',\n decimalSeparator: string = ','\n): number | null {\n let clean = formatted\n if (thousandSeparator) {\n clean = clean.split(thousandSeparator).join('')\n }\n clean = clean.replace(decimalSeparator, '.')\n clean = clean.replace(/[^\\d.-]/g, '')\n const num = parseFloat(clean)\n return isNaN(num) ? null : num\n}\n\n// Preserve the logical cursor position after inserting separators into the value.\nexport function adjustCursorAfterFormat(oldValue: string, newValue: string, oldCursor: number): number {\n let realCharsBefore = 0\n for (let i = 0; i < oldCursor && i < oldValue.length; i++) {\n if (oldValue[i] !== ' ' && oldValue[i] !== '-') {\n realCharsBefore++\n }\n }\n\n let count = 0\n for (let i = 0; i < newValue.length; i++) {\n if (newValue[i] !== ' ' && newValue[i] !== '-') {\n count++\n }\n if (count === realCharsBefore) {\n return i + 1\n }\n }\n return newValue.length\n}\n\n// Format date digits into a display string with the chosen separator.\nexport function formatDateInput(\n digits: string,\n format: 'DD/MM/YYYY' | 'MM/DD/YYYY' | 'YYYY/MM/DD' = 'DD/MM/YYYY',\n separator: string = '/'\n): string {\n if (!digits) return ''\n\n if (format === 'YYYY/MM/DD') {\n if (digits.length <= 4) return digits\n if (digits.length <= 6) return `${digits.slice(0, 4)}${separator}${digits.slice(4)}`\n return `${digits.slice(0, 4)}${separator}${digits.slice(4, 6)}${separator}${digits.slice(6, 8)}`\n }\n\n // DD/MM/YYYY or MM/DD/YYYY — first two groups are 2 digits\n if (digits.length <= 2) return digits\n if (digits.length <= 4) return `${digits.slice(0, 2)}${separator}${digits.slice(2)}`\n return `${digits.slice(0, 2)}${separator}${digits.slice(2, 4)}${separator}${digits.slice(4, 8)}`\n}\n\nexport {formatPostCode} from './postalCodes'\nexport {formatCardNumber} from './creditCards'\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as e } from "./MI18nProvider-BRZxEMqL.js";
1
+ import { r as e } from "./MI18nProvider-VH14CI8u.js";
2
2
  import { useCallback as t, useMemo as n } from "react";
3
3
  //#region src/i18n/frameworkTexts.ts
4
4
  function r() {
@@ -112,4 +112,4 @@ function c() {
112
112
  //#endregion
113
113
  export { s as a, a as i, c as n, i as r, o as t };
114
114
 
115
- //# sourceMappingURL=frameworkTexts-DzujbRBe.js.map
115
+ //# sourceMappingURL=frameworkTexts-CvxcWRXp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkTexts-DzujbRBe.js","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 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 interface MCookieConsentTexts {\n bannerTitle: string\n bannerDescription: string\n manage: string\n preferencesTitle: string\n preferencesDescription: string\n acceptAll: string\n rejectAll: string\n preferences: string\n savePreferences: string\n close: string\n requiredLabel: string\n necessaryLabel: string\n necessaryDescription: string\n preferencesLabel: string\n preferencesDescriptionLabel: string\n analyticsLabel: string\n analyticsDescription: string\n marketingLabel: string\n marketingDescription: string\n declarationTitle: string\n declarationDescription: string\n noDeclarationItems: string\n searchDeclaration: string\n triggerLabel: string\n detectedCookiesLabel: string\n noDetectedCookies: 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 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\nexport function useMCookieConsentTexts(): MCookieConsentTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n bannerTitle: t('mineralui.cookieConsent.bannerTitle', 'We use cookies'),\n bannerDescription: t(\n 'mineralui.cookieConsent.bannerDescription',\n 'We use necessary cookies to keep the site working and optional cookies to improve experience, analytics and marketing.'\n ),\n manage: t('mineralui.cookieConsent.manage', 'Manage'),\n preferencesTitle: t('mineralui.cookieConsent.preferencesTitle', 'Cookie preferences'),\n preferencesDescription: t(\n 'mineralui.cookieConsent.preferencesDescription',\n 'Choose which optional cookie categories you allow. Necessary cookies are always active.'\n ),\n acceptAll: t('mineralui.cookieConsent.acceptAll', 'Accept all'),\n rejectAll: t('mineralui.cookieConsent.rejectAll', 'Reject optional'),\n preferences: t('mineralui.cookieConsent.preferences', 'Preferences'),\n savePreferences: t('mineralui.cookieConsent.savePreferences', 'Save preferences'),\n close: t('mineralui.cookieConsent.close', 'Close'),\n requiredLabel: t('mineralui.cookieConsent.requiredLabel', 'Required'),\n necessaryLabel: t('mineralui.cookieConsent.necessaryLabel', 'Necessary'),\n necessaryDescription: t(\n 'mineralui.cookieConsent.necessaryDescription',\n 'These cookies are required for core site functionality and cannot be disabled.'\n ),\n preferencesLabel: t('mineralui.cookieConsent.preferencesLabel', 'Preferences'),\n preferencesDescriptionLabel: t(\n 'mineralui.cookieConsent.preferencesDescriptionLabel',\n 'These cookies remember settings such as language, theme or saved interface choices.'\n ),\n analyticsLabel: t('mineralui.cookieConsent.analyticsLabel', 'Analytics'),\n analyticsDescription: t(\n 'mineralui.cookieConsent.analyticsDescription',\n 'These cookies help measure usage and improve content, performance and navigation.'\n ),\n marketingLabel: t('mineralui.cookieConsent.marketingLabel', 'Marketing'),\n marketingDescription: t(\n 'mineralui.cookieConsent.marketingDescription',\n 'These cookies support campaigns, advertising attribution and embedded marketing tools.'\n ),\n declarationTitle: t('mineralui.cookieConsent.declarationTitle', 'Cookie declaration'),\n declarationDescription: t(\n 'mineralui.cookieConsent.declarationDescription',\n 'Review the cookies and storage technologies used by this page, grouped by purpose.'\n ),\n noDeclarationItems: t('mineralui.cookieConsent.noDeclarationItems', 'No declaration items available.'),\n searchDeclaration: t('mineralui.cookieConsent.searchDeclaration', 'Search cookies...'),\n triggerLabel: t('mineralui.cookieConsent.triggerLabel', 'Cookie settings'),\n detectedCookiesLabel: t('mineralui.cookieConsent.detectedCookiesLabel', 'Detected storage and trackers'),\n noDetectedCookies: t(\n 'mineralui.cookieConsent.noDetectedCookies',\n 'No storage or trackers detected in this category yet.'\n ),\n }),\n [t]\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"frameworkTexts-CvxcWRXp.js","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 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 interface MCookieConsentTexts {\n bannerTitle: string\n bannerDescription: string\n manage: string\n preferencesTitle: string\n preferencesDescription: string\n acceptAll: string\n rejectAll: string\n preferences: string\n savePreferences: string\n close: string\n requiredLabel: string\n necessaryLabel: string\n necessaryDescription: string\n preferencesLabel: string\n preferencesDescriptionLabel: string\n analyticsLabel: string\n analyticsDescription: string\n marketingLabel: string\n marketingDescription: string\n declarationTitle: string\n declarationDescription: string\n noDeclarationItems: string\n searchDeclaration: string\n triggerLabel: string\n detectedCookiesLabel: string\n noDetectedCookies: 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 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\nexport function useMCookieConsentTexts(): MCookieConsentTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n bannerTitle: t('mineralui.cookieConsent.bannerTitle', 'We use cookies'),\n bannerDescription: t(\n 'mineralui.cookieConsent.bannerDescription',\n 'We use necessary cookies to keep the site working and optional cookies to improve experience, analytics and marketing.'\n ),\n manage: t('mineralui.cookieConsent.manage', 'Manage'),\n preferencesTitle: t('mineralui.cookieConsent.preferencesTitle', 'Cookie preferences'),\n preferencesDescription: t(\n 'mineralui.cookieConsent.preferencesDescription',\n 'Choose which optional cookie categories you allow. Necessary cookies are always active.'\n ),\n acceptAll: t('mineralui.cookieConsent.acceptAll', 'Accept all'),\n rejectAll: t('mineralui.cookieConsent.rejectAll', 'Reject optional'),\n preferences: t('mineralui.cookieConsent.preferences', 'Preferences'),\n savePreferences: t('mineralui.cookieConsent.savePreferences', 'Save preferences'),\n close: t('mineralui.cookieConsent.close', 'Close'),\n requiredLabel: t('mineralui.cookieConsent.requiredLabel', 'Required'),\n necessaryLabel: t('mineralui.cookieConsent.necessaryLabel', 'Necessary'),\n necessaryDescription: t(\n 'mineralui.cookieConsent.necessaryDescription',\n 'These cookies are required for core site functionality and cannot be disabled.'\n ),\n preferencesLabel: t('mineralui.cookieConsent.preferencesLabel', 'Preferences'),\n preferencesDescriptionLabel: t(\n 'mineralui.cookieConsent.preferencesDescriptionLabel',\n 'These cookies remember settings such as language, theme or saved interface choices.'\n ),\n analyticsLabel: t('mineralui.cookieConsent.analyticsLabel', 'Analytics'),\n analyticsDescription: t(\n 'mineralui.cookieConsent.analyticsDescription',\n 'These cookies help measure usage and improve content, performance and navigation.'\n ),\n marketingLabel: t('mineralui.cookieConsent.marketingLabel', 'Marketing'),\n marketingDescription: t(\n 'mineralui.cookieConsent.marketingDescription',\n 'These cookies support campaigns, advertising attribution and embedded marketing tools.'\n ),\n declarationTitle: t('mineralui.cookieConsent.declarationTitle', 'Cookie declaration'),\n declarationDescription: t(\n 'mineralui.cookieConsent.declarationDescription',\n 'Review the cookies and storage technologies used by this page, grouped by purpose.'\n ),\n noDeclarationItems: t('mineralui.cookieConsent.noDeclarationItems', 'No declaration items available.'),\n searchDeclaration: t('mineralui.cookieConsent.searchDeclaration', 'Search cookies...'),\n triggerLabel: t('mineralui.cookieConsent.triggerLabel', 'Cookie settings'),\n detectedCookiesLabel: t('mineralui.cookieConsent.detectedCookiesLabel', 'Detected storage and trackers'),\n noDetectedCookies: t(\n 'mineralui.cookieConsent.noDetectedCookies',\n 'No storage or trackers detected in this category yet.'\n ),\n }),\n [t]\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./MI18nProvider-B2sE0x5D.cjs`);require(`./core-AKWkE8Bx.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(){let e=n();return(0,t.useMemo)(()=>({monthView:e(`mineralui.calendarBoard.monthView`,`Month`),weekView:e(`mineralui.calendarBoard.weekView`,`Week`),previousWeek:e(`mineralui.calendarBoard.previousWeek`,`Previous week`),nextWeek:e(`mineralui.calendarBoard.nextWeek`,`Next week`),emptyStateText:e(`mineralui.calendarBoard.emptyStateText`,`No events for the selected day.`),timelineTitle:e(`mineralui.calendarBoard.timelineTitle`,`Daily timeline`),timelineEmptyState:e(`mineralui.calendarBoard.timelineEmptyState`,`No events in this hour.`),allDay:e(`mineralui.calendarBoard.allDay`,`All day`),itemsCount:t=>e(`mineralui.calendarBoard.itemsCount`,`{count} items`).replace(`{count}`,String(t))}),[e])}function o(){let e=n();return(0,t.useMemo)(()=>({home:e(`mineralui.fileManager.home`,`Home`),searchPlaceholder:e(`mineralui.fileManager.searchPlaceholder`,`Search in folder...`),emptyText:e(`mineralui.fileManager.emptyText`,`This folder is empty.`),folders:e(`mineralui.fileManager.folders`,`Folders`),noFoldersAvailable:e(`mineralui.fileManager.noFoldersAvailable`,`No folders available.`),currentFolder:e(`mineralui.fileManager.currentFolder`,`Current folder`),filteredBy:t=>e(`mineralui.fileManager.filteredBy`,`Filtered by "{query}"`).replace(`{query}`,t),listView:e(`mineralui.fileManager.listView`,`List`),gridView:e(`mineralui.fileManager.gridView`,`Grid`),folder:e(`mineralui.fileManager.folder`,`Folder`),file:e(`mineralui.fileManager.file`,`File`),preview:e(`mineralui.fileManager.preview`,`Preview`),path:e(`mineralui.fileManager.path`,`Path`),selectItemToInspect:e(`mineralui.fileManager.selectItemToInspect`,`Select a file or folder to inspect its details.`),itemsCount:t=>e(`mineralui.fileManager.itemsCount`,`{count} items`).replace(`{count}`,String(t)),rename:e(`mineralui.fileManager.rename`,`Rename`),moveTo:e(`mineralui.fileManager.moveTo`,`Move to...`),delete:e(`mineralui.fileManager.delete`,`Delete`),download:e(`mineralui.fileManager.download`,`Download`),newFolder:e(`mineralui.fileManager.newFolder`,`New folder`)}),[e])}function s(){let e=n();return(0,t.useMemo)(()=>({bannerTitle:e(`mineralui.cookieConsent.bannerTitle`,`We use cookies`),bannerDescription:e(`mineralui.cookieConsent.bannerDescription`,`We use necessary cookies to keep the site working and optional cookies to improve experience, analytics and marketing.`),manage:e(`mineralui.cookieConsent.manage`,`Manage`),preferencesTitle:e(`mineralui.cookieConsent.preferencesTitle`,`Cookie preferences`),preferencesDescription:e(`mineralui.cookieConsent.preferencesDescription`,`Choose which optional cookie categories you allow. Necessary cookies are always active.`),acceptAll:e(`mineralui.cookieConsent.acceptAll`,`Accept all`),rejectAll:e(`mineralui.cookieConsent.rejectAll`,`Reject optional`),preferences:e(`mineralui.cookieConsent.preferences`,`Preferences`),savePreferences:e(`mineralui.cookieConsent.savePreferences`,`Save preferences`),close:e(`mineralui.cookieConsent.close`,`Close`),requiredLabel:e(`mineralui.cookieConsent.requiredLabel`,`Required`),necessaryLabel:e(`mineralui.cookieConsent.necessaryLabel`,`Necessary`),necessaryDescription:e(`mineralui.cookieConsent.necessaryDescription`,`These cookies are required for core site functionality and cannot be disabled.`),preferencesLabel:e(`mineralui.cookieConsent.preferencesLabel`,`Preferences`),preferencesDescriptionLabel:e(`mineralui.cookieConsent.preferencesDescriptionLabel`,`These cookies remember settings such as language, theme or saved interface choices.`),analyticsLabel:e(`mineralui.cookieConsent.analyticsLabel`,`Analytics`),analyticsDescription:e(`mineralui.cookieConsent.analyticsDescription`,`These cookies help measure usage and improve content, performance and navigation.`),marketingLabel:e(`mineralui.cookieConsent.marketingLabel`,`Marketing`),marketingDescription:e(`mineralui.cookieConsent.marketingDescription`,`These cookies support campaigns, advertising attribution and embedded marketing tools.`),declarationTitle:e(`mineralui.cookieConsent.declarationTitle`,`Cookie declaration`),declarationDescription:e(`mineralui.cookieConsent.declarationDescription`,`Review the cookies and storage technologies used by this page, grouped by purpose.`),noDeclarationItems:e(`mineralui.cookieConsent.noDeclarationItems`,`No declaration items available.`),searchDeclaration:e(`mineralui.cookieConsent.searchDeclaration`,`Search cookies...`),triggerLabel:e(`mineralui.cookieConsent.triggerLabel`,`Cookie settings`),detectedCookiesLabel:e(`mineralui.cookieConsent.detectedCookiesLabel`,`Detected storage and trackers`),noDetectedCookies:e(`mineralui.cookieConsent.noDetectedCookies`,`No storage or trackers detected in this category yet.`)}),[e])}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=frameworkTexts-abkS5XZK.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkTexts-DPX5T2x3.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 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 interface MCookieConsentTexts {\n bannerTitle: string\n bannerDescription: string\n manage: string\n preferencesTitle: string\n preferencesDescription: string\n acceptAll: string\n rejectAll: string\n preferences: string\n savePreferences: string\n close: string\n requiredLabel: string\n necessaryLabel: string\n necessaryDescription: string\n preferencesLabel: string\n preferencesDescriptionLabel: string\n analyticsLabel: string\n analyticsDescription: string\n marketingLabel: string\n marketingDescription: string\n declarationTitle: string\n declarationDescription: string\n noDeclarationItems: string\n searchDeclaration: string\n triggerLabel: string\n detectedCookiesLabel: string\n noDetectedCookies: 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 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\nexport function useMCookieConsentTexts(): MCookieConsentTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n bannerTitle: t('mineralui.cookieConsent.bannerTitle', 'We use cookies'),\n bannerDescription: t(\n 'mineralui.cookieConsent.bannerDescription',\n 'We use necessary cookies to keep the site working and optional cookies to improve experience, analytics and marketing.'\n ),\n manage: t('mineralui.cookieConsent.manage', 'Manage'),\n preferencesTitle: t('mineralui.cookieConsent.preferencesTitle', 'Cookie preferences'),\n preferencesDescription: t(\n 'mineralui.cookieConsent.preferencesDescription',\n 'Choose which optional cookie categories you allow. Necessary cookies are always active.'\n ),\n acceptAll: t('mineralui.cookieConsent.acceptAll', 'Accept all'),\n rejectAll: t('mineralui.cookieConsent.rejectAll', 'Reject optional'),\n preferences: t('mineralui.cookieConsent.preferences', 'Preferences'),\n savePreferences: t('mineralui.cookieConsent.savePreferences', 'Save preferences'),\n close: t('mineralui.cookieConsent.close', 'Close'),\n requiredLabel: t('mineralui.cookieConsent.requiredLabel', 'Required'),\n necessaryLabel: t('mineralui.cookieConsent.necessaryLabel', 'Necessary'),\n necessaryDescription: t(\n 'mineralui.cookieConsent.necessaryDescription',\n 'These cookies are required for core site functionality and cannot be disabled.'\n ),\n preferencesLabel: t('mineralui.cookieConsent.preferencesLabel', 'Preferences'),\n preferencesDescriptionLabel: t(\n 'mineralui.cookieConsent.preferencesDescriptionLabel',\n 'These cookies remember settings such as language, theme or saved interface choices.'\n ),\n analyticsLabel: t('mineralui.cookieConsent.analyticsLabel', 'Analytics'),\n analyticsDescription: t(\n 'mineralui.cookieConsent.analyticsDescription',\n 'These cookies help measure usage and improve content, performance and navigation.'\n ),\n marketingLabel: t('mineralui.cookieConsent.marketingLabel', 'Marketing'),\n marketingDescription: t(\n 'mineralui.cookieConsent.marketingDescription',\n 'These cookies support campaigns, advertising attribution and embedded marketing tools.'\n ),\n declarationTitle: t('mineralui.cookieConsent.declarationTitle', 'Cookie declaration'),\n declarationDescription: t(\n 'mineralui.cookieConsent.declarationDescription',\n 'Review the cookies and storage technologies used by this page, grouped by purpose.'\n ),\n noDeclarationItems: t('mineralui.cookieConsent.noDeclarationItems', 'No declaration items available.'),\n searchDeclaration: t('mineralui.cookieConsent.searchDeclaration', 'Search cookies...'),\n triggerLabel: t('mineralui.cookieConsent.triggerLabel', 'Cookie settings'),\n detectedCookiesLabel: t('mineralui.cookieConsent.detectedCookiesLabel', 'Detected storage and trackers'),\n noDetectedCookies: t(\n 'mineralui.cookieConsent.noDetectedCookies',\n 'No storage or trackers detected in this category yet.'\n ),\n }),\n [t]\n )\n}\n"],"mappings":"uGAGA,SAAS,GAAe,CACpB,IAAM,EAAO,EAAA,GAAkB,CAE/B,OAAA,EAAA,EAAA,cAAoB,EAAa,IAAqB,GAAM,EAAE,EAAK,EAAS,EAAI,EAAU,CAAC,EAAK,CAAC,CA6FrG,SAAgB,GAAwC,CACpD,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,cACW,CACH,MAAO,EAAE,6BAA8B,QAAQ,CAC/C,MAAO,EAAE,6BAA8B,QAAQ,CAC/C,cAAe,EAAE,qCAAsC,iBAAiB,CACxE,UAAW,EAAE,iCAAkC,aAAa,CAC/D,EACD,CAAC,EAAE,CACN,CAGL,SAAgB,GAAkD,CAC9D,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,cACW,CACH,MAAO,EAAE,kCAAmC,QAAQ,CACpD,MAAO,EAAE,kCAAmC,QAAQ,CACpD,cAAe,EAAE,0CAA2C,iBAAiB,CAC7E,UAAW,EAAE,sCAAuC,aAAa,CACjE,cAAe,EAAE,0CAA2C,2CAA2C,CACvG,wBAAyB,EAAE,oDAAqD,uBAAuB,CACvG,QAAS,CACL,MAAO,EAAE,0CAA2C,QAAQ,CAC5D,MAAO,EAAE,0CAA2C,SAAS,CAC7D,MAAO,EAAE,0CAA2C,SAAS,CAC7D,MAAO,EAAE,0CAA2C,SAAS,CAC7D,OAAQ,EAAE,2CAA4C,UAAU,CAChE,OAAQ,EAAE,2CAA4C,UAAU,CAChE,UAAW,EAAE,8CAA+C,aAAa,CACzE,cAAe,EAAE,kDAAmD,iBAAiB,CACrF,QAAS,EAAE,4CAA6C,WAAW,CACnE,QAAS,EAAE,4CAA6C,WAAW,CACnE,QAAS,EAAE,4CAA6C,WAAW,CACnE,MAAO,EAAE,0CAA2C,SAAS,CAChE,CACJ,EACD,CAAC,EAAE,CACN,CAGL,SAAgB,GAA8C,CAC1D,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,cACW,CACH,UAAW,EAAE,oCAAqC,QAAQ,CAC1D,SAAU,EAAE,mCAAoC,OAAO,CACvD,aAAc,EAAE,uCAAwC,gBAAgB,CACxE,SAAU,EAAE,mCAAoC,YAAY,CAC5D,eAAgB,EAAE,yCAA0C,kCAAkC,CAC9F,cAAe,EAAE,wCAAyC,iBAAiB,CAC3E,mBAAoB,EAAE,6CAA8C,0BAA0B,CAC9F,OAAQ,EAAE,iCAAkC,UAAU,CACtD,WAAa,GACT,EAAE,qCAAsC,gBAAgB,CAAC,QAAQ,UAAW,OAAO,EAAM,CAAC,CACjG,EACD,CAAC,EAAE,CACN,CAGL,SAAgB,GAA0C,CACtD,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,cACW,CACH,KAAM,EAAE,6BAA8B,OAAO,CAC7C,kBAAmB,EAAE,0CAA2C,sBAAsB,CACtF,UAAW,EAAE,kCAAmC,wBAAwB,CACxE,QAAS,EAAE,gCAAiC,UAAU,CACtD,mBAAoB,EAAE,2CAA4C,wBAAwB,CAC1F,cAAe,EAAE,sCAAuC,iBAAiB,CACzE,WAAa,GACT,EAAE,mCAAoC,wBAAwB,CAAC,QAAQ,UAAW,EAAM,CAC5F,SAAU,EAAE,iCAAkC,OAAO,CACrD,SAAU,EAAE,iCAAkC,OAAO,CACrD,OAAQ,EAAE,+BAAgC,SAAS,CACnD,KAAM,EAAE,6BAA8B,OAAO,CAC7C,QAAS,EAAE,gCAAiC,UAAU,CACtD,KAAM,EAAE,6BAA8B,OAAO,CAC7C,oBAAqB,EACjB,4CACA,kDACH,CACD,WAAa,GACT,EAAE,mCAAoC,gBAAgB,CAAC,QAAQ,UAAW,OAAO,EAAM,CAAC,CAC5F,OAAQ,EAAE,+BAAgC,SAAS,CACnD,OAAQ,EAAE,+BAAgC,aAAa,CACvD,OAAQ,EAAE,+BAAgC,SAAS,CACnD,SAAU,EAAE,iCAAkC,WAAW,CACzD,UAAW,EAAE,kCAAmC,aAAa,CAChE,EACD,CAAC,EAAE,CACN,CAGL,SAAgB,GAA8C,CAC1D,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,cACW,CACH,YAAa,EAAE,sCAAuC,iBAAiB,CACvE,kBAAmB,EACf,4CACA,yHACH,CACD,OAAQ,EAAE,iCAAkC,SAAS,CACrD,iBAAkB,EAAE,2CAA4C,qBAAqB,CACrF,uBAAwB,EACpB,iDACA,0FACH,CACD,UAAW,EAAE,oCAAqC,aAAa,CAC/D,UAAW,EAAE,oCAAqC,kBAAkB,CACpE,YAAa,EAAE,sCAAuC,cAAc,CACpE,gBAAiB,EAAE,0CAA2C,mBAAmB,CACjF,MAAO,EAAE,gCAAiC,QAAQ,CAClD,cAAe,EAAE,wCAAyC,WAAW,CACrE,eAAgB,EAAE,yCAA0C,YAAY,CACxE,qBAAsB,EAClB,+CACA,iFACH,CACD,iBAAkB,EAAE,2CAA4C,cAAc,CAC9E,4BAA6B,EACzB,sDACA,sFACH,CACD,eAAgB,EAAE,yCAA0C,YAAY,CACxE,qBAAsB,EAClB,+CACA,oFACH,CACD,eAAgB,EAAE,yCAA0C,YAAY,CACxE,qBAAsB,EAClB,+CACA,yFACH,CACD,iBAAkB,EAAE,2CAA4C,qBAAqB,CACrF,uBAAwB,EACpB,iDACA,qFACH,CACD,mBAAoB,EAAE,6CAA8C,kCAAkC,CACtG,kBAAmB,EAAE,4CAA6C,oBAAoB,CACtF,aAAc,EAAE,uCAAwC,kBAAkB,CAC1E,qBAAsB,EAAE,+CAAgD,gCAAgC,CACxG,kBAAmB,EACf,4CACA,wDACH,CACJ,EACD,CAAC,EAAE,CACN"}
1
+ {"version":3,"file":"frameworkTexts-abkS5XZK.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 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 interface MCookieConsentTexts {\n bannerTitle: string\n bannerDescription: string\n manage: string\n preferencesTitle: string\n preferencesDescription: string\n acceptAll: string\n rejectAll: string\n preferences: string\n savePreferences: string\n close: string\n requiredLabel: string\n necessaryLabel: string\n necessaryDescription: string\n preferencesLabel: string\n preferencesDescriptionLabel: string\n analyticsLabel: string\n analyticsDescription: string\n marketingLabel: string\n marketingDescription: string\n declarationTitle: string\n declarationDescription: string\n noDeclarationItems: string\n searchDeclaration: string\n triggerLabel: string\n detectedCookiesLabel: string\n noDetectedCookies: 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 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\nexport function useMCookieConsentTexts(): MCookieConsentTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n bannerTitle: t('mineralui.cookieConsent.bannerTitle', 'We use cookies'),\n bannerDescription: t(\n 'mineralui.cookieConsent.bannerDescription',\n 'We use necessary cookies to keep the site working and optional cookies to improve experience, analytics and marketing.'\n ),\n manage: t('mineralui.cookieConsent.manage', 'Manage'),\n preferencesTitle: t('mineralui.cookieConsent.preferencesTitle', 'Cookie preferences'),\n preferencesDescription: t(\n 'mineralui.cookieConsent.preferencesDescription',\n 'Choose which optional cookie categories you allow. Necessary cookies are always active.'\n ),\n acceptAll: t('mineralui.cookieConsent.acceptAll', 'Accept all'),\n rejectAll: t('mineralui.cookieConsent.rejectAll', 'Reject optional'),\n preferences: t('mineralui.cookieConsent.preferences', 'Preferences'),\n savePreferences: t('mineralui.cookieConsent.savePreferences', 'Save preferences'),\n close: t('mineralui.cookieConsent.close', 'Close'),\n requiredLabel: t('mineralui.cookieConsent.requiredLabel', 'Required'),\n necessaryLabel: t('mineralui.cookieConsent.necessaryLabel', 'Necessary'),\n necessaryDescription: t(\n 'mineralui.cookieConsent.necessaryDescription',\n 'These cookies are required for core site functionality and cannot be disabled.'\n ),\n preferencesLabel: t('mineralui.cookieConsent.preferencesLabel', 'Preferences'),\n preferencesDescriptionLabel: t(\n 'mineralui.cookieConsent.preferencesDescriptionLabel',\n 'These cookies remember settings such as language, theme or saved interface choices.'\n ),\n analyticsLabel: t('mineralui.cookieConsent.analyticsLabel', 'Analytics'),\n analyticsDescription: t(\n 'mineralui.cookieConsent.analyticsDescription',\n 'These cookies help measure usage and improve content, performance and navigation.'\n ),\n marketingLabel: t('mineralui.cookieConsent.marketingLabel', 'Marketing'),\n marketingDescription: t(\n 'mineralui.cookieConsent.marketingDescription',\n 'These cookies support campaigns, advertising attribution and embedded marketing tools.'\n ),\n declarationTitle: t('mineralui.cookieConsent.declarationTitle', 'Cookie declaration'),\n declarationDescription: t(\n 'mineralui.cookieConsent.declarationDescription',\n 'Review the cookies and storage technologies used by this page, grouped by purpose.'\n ),\n noDeclarationItems: t('mineralui.cookieConsent.noDeclarationItems', 'No declaration items available.'),\n searchDeclaration: t('mineralui.cookieConsent.searchDeclaration', 'Search cookies...'),\n triggerLabel: t('mineralui.cookieConsent.triggerLabel', 'Cookie settings'),\n detectedCookiesLabel: t('mineralui.cookieConsent.detectedCookiesLabel', 'Detected storage and trackers'),\n noDetectedCookies: t(\n 'mineralui.cookieConsent.noDetectedCookies',\n 'No storage or trackers detected in this category yet.'\n ),\n }),\n [t]\n )\n}\n"],"mappings":"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"}
package/dist/i18n.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  const {ensureStyles}=require('./style-runtime.cjs')
2
2
  ensureStyles()
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MI18nProvider-Bml7Vs2-.cjs`);exports.MI18nProvider=e.t,exports.useMI18n=e.n;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MI18nProvider-B2sE0x5D.cjs`);exports.MI18nProvider=e.t,exports.useMI18n=e.n;
package/dist/i18n.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import {ensureStyles} from './style-runtime.js'
2
2
  ensureStyles()
3
- import { n as e, t } from "./MI18nProvider-BRZxEMqL.js";
3
+ import { n as e, t } from "./MI18nProvider-VH14CI8u.js";
4
4
  export { t as MI18nProvider, e as useMI18n };
@@ -4948,4 +4948,4 @@ var pi = $("MAppleIcon", /* @__PURE__ */ r(t, { children: [/* @__PURE__ */ n("pa
4948
4948
  //#endregion
4949
4949
  export { Wr as $, Kt as $n, Ve as $r, Wn as $t, Vi as A, ue as Ai, sn as An, Ye as Ar, pr as At, qr as B, o as Bi, Qt as Bn, mt as Br, rr as Bt, Ri as C, _e as Ci, bn as Cn, yt as Cr, br as Ct, wi as D, pe as Di, fn as Dn, Ze as Dr, gr as Dt, zi as E, me as Ei, _n as En, Je as Er, _r as Et, ci as F, ae as Fi, en as Fn, _t as Fr, cr as Ft, fi as G, Xt as Gn, qe as Gr, Qn as Gt, Zr as H, ln as Hn, at as Hr, tr as Ht, si as I, ie as Ii, mn as In, vt as Ir, sr as It, li as J, Zt as Jn, dt as Jr, Yn as Jt, di as K, qt as Kn, st as Kr, Zn as Kt, ii as L, re as Li, on as Ln, Qe as Lr, or as Lt, ai as M, ce as Mi, tn as Mn, Xe as Mr, dr as Mt, Xr as N, se as Ni, an as Nn, ut as Nr, ur as Nt, Ci as O, fe as Oi, pn as On, ot as Or, hr as Ot, Yr as P, oe as Pi, nn as Pn, $e as Pr, lr as Pt, Gr as Q, Wt as Qn, He as Qr, Gn as Qt, ri as R, ne as Ri, un as Rn, rt as Rr, ar as Rt, Fi as S, ve as Si, xn as Sn, bt as Sr, xr as St, Bi as T, he as Ti, vn as Tn, ft as Tr, vr as Tt, ei as U, rn as Un, ct as Ur, er as Ut, Qr as V, dn as Vn, gt as Vr, nr as Vt, $r as W, $t as Wn, lt as Wr, $n as Wt, ti as X, Gt as Xn, We as Xr, qn as Xt, ni as Y, Yt as Yn, ht as Yr, Jn as Yt, Kr as Z, Ut as Zn, Ue as Zr, Kn as Zt, Ai as _, Ce as _i, En as _n, Tt as _r, Er as _t, bi as a, Fe as ai, Rn as an, Lt as ar, Rr as at, Ni as b, be as bi, Cn as bn, St as br, Cr as bt, Ti as c, Me as ci, Fn as cn, Pt as cr, Fr as ct, vi as d, ke as di, Mn as dn, jt as dr, Mr as dt, Be as ei, Un as en, Bt as er, Ur as et, _i as f, Oe as fi, jn as fn, At as fr, jr as ft, ji as g, we as gi, Dn as gn, Et as gr, Dr as gt, Mi as h, Te as hi, On as hn, Dt as hr, Or as ht, pi as i, Ie as ii, zn as in, Rt as ir, zr as it, oi as j, le as ji, cn as jn, et as jr, fr as jt, Hi as k, de as ki, hn as kn, tt as kr, mr as kt, Si as l, je as li, Pn as ln, Nt as lr, Pr as lt, Di as m, Ee as mi, kn as mn, Ot as mr, kr as mt, hi as n, Re as ni, Vn as nn, Ht as nr, Vr as nt, yi as o, Pe as oi, Ln as on, It as or, Lr as ot, Oi as p, De as pi, An as pn, kt as pr, Ar as pt, ui as q, Jt as qn, pt as qr, Xn as qt, mi as r, Le as ri, Bn as rn, Vt as rr, Br as rt, Ei as s, Ne as si, In as sn, Ft as sr, Ir as st, gi as t, ze as ti, Hn as tn, zt as tr, Hr as tt, xi as u, Ae as ui, Nn as un, Mt as ur, Nr as ut, ki as v, Se as vi, Tn as vn, wt as vr, Tr as vt, Li as w, ge as wi, yn as wn, nt as wr, yr as wt, Ii as x, ye as xi, Sn as xn, xt as xr, Sr as xt, Pi as y, xe as yi, wn as yn, Ct as yr, wr as yt, Jr as z, Y as zi, gn as zn, it as zr, ir as zt };
4950
4950
 
4951
- //# sourceMappingURL=icons-DlNO04xH.js.map
4951
+ //# sourceMappingURL=icons-CfpYxnfg.js.map