@banzamel/mineralui 2.3.1 → 2.4.1

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 (254) hide show
  1. package/README.md +2 -2
  2. package/dist/{MAvatar-bUWENcq-.cjs → MAvatar-Capz5Gbc.cjs} +2 -2
  3. package/dist/{MAvatar-bUWENcq-.cjs.map → MAvatar-Capz5Gbc.cjs.map} +1 -1
  4. package/dist/{MButton-R08y1HCT.cjs → MButton-sTKnano6.cjs} +2 -2
  5. package/dist/{MButton-R08y1HCT.cjs.map → MButton-sTKnano6.cjs.map} +1 -1
  6. package/dist/{MButtonGroup-C-LiXWRC.cjs → MButtonGroup-iPv14c0V.cjs} +2 -2
  7. package/dist/{MButtonGroup-C-LiXWRC.cjs.map → MButtonGroup-iPv14c0V.cjs.map} +1 -1
  8. package/dist/{MCard-1OVOl4Ql.cjs → MCard-DK-_FkpE.cjs} +2 -2
  9. package/dist/{MCard-1OVOl4Ql.cjs.map → MCard-DK-_FkpE.cjs.map} +1 -1
  10. package/dist/{MCheckbox-CM5HJQWW.cjs → MCheckbox-CIX7wp41.cjs} +2 -2
  11. package/dist/{MCheckbox-CM5HJQWW.cjs.map → MCheckbox-CIX7wp41.cjs.map} +1 -1
  12. package/dist/{MConflictIllustration-Drsm8_8C.js → MConflictIllustration-3K0lCAsD.js} +3 -3
  13. package/dist/MConflictIllustration-3K0lCAsD.js.map +1 -0
  14. package/dist/MConflictIllustration-BuK6cSsc.cjs +2 -0
  15. package/dist/MConflictIllustration-BuK6cSsc.cjs.map +1 -0
  16. package/dist/{MDetailList-DTLU7HQZ.cjs → MDetailList-Ce7KzUKC.cjs} +2 -2
  17. package/dist/{MDetailList-DTLU7HQZ.cjs.map → MDetailList-Ce7KzUKC.cjs.map} +1 -1
  18. package/dist/MDropdownMenu-B_QWQhxy.cjs +2 -0
  19. package/dist/MDropdownMenu-B_QWQhxy.cjs.map +1 -0
  20. package/dist/MDropdownMenu-C4CuKMRZ.js +172 -0
  21. package/dist/MDropdownMenu-C4CuKMRZ.js.map +1 -0
  22. package/dist/{MGrid-B_0kFUws.cjs → MGrid-fTx6wFq_.cjs} +2 -2
  23. package/dist/{MGrid-B_0kFUws.cjs.map → MGrid-fTx6wFq_.cjs.map} +1 -1
  24. package/dist/{MHeading-BLnb3dNv.cjs → MHeading-KDSpnCof.cjs} +2 -2
  25. package/dist/{MHeading-BLnb3dNv.cjs.map → MHeading-KDSpnCof.cjs.map} +1 -1
  26. package/dist/{MI18nProvider-Cg-vxV6j.cjs → MI18nProvider-DXRbB0VY.cjs} +2 -2
  27. package/dist/{MI18nProvider-Cg-vxV6j.cjs.map → MI18nProvider-DXRbB0VY.cjs.map} +1 -1
  28. package/dist/{MInput-BpTlP8GE.cjs → MInput-CGl2Q-rM.cjs} +2 -2
  29. package/dist/{MInput-BpTlP8GE.cjs.map → MInput-CGl2Q-rM.cjs.map} +1 -1
  30. package/dist/{MInputCVC-B4V0QI5h.js → MInputCVC-Blv5PeyS.js} +2 -2
  31. package/dist/{MInputCVC-B4V0QI5h.js.map → MInputCVC-Blv5PeyS.js.map} +1 -1
  32. package/dist/{MInputCVC-BlY5OrVn.cjs → MInputCVC-lAFKTV6y.cjs} +2 -2
  33. package/dist/{MInputCVC-BlY5OrVn.cjs.map → MInputCVC-lAFKTV6y.cjs.map} +1 -1
  34. package/dist/{MInputSearch-9wcXlY8-.cjs → MInputSearch-BZDnbFB4.cjs} +2 -2
  35. package/dist/{MInputSearch-9wcXlY8-.cjs.map → MInputSearch-BZDnbFB4.cjs.map} +1 -1
  36. package/dist/{MKbd-n4fhKIxb.cjs → MKbd-DqMnZ7Iv.cjs} +2 -2
  37. package/dist/{MKbd-n4fhKIxb.cjs.map → MKbd-DqMnZ7Iv.cjs.map} +1 -1
  38. package/dist/{MLink-Biipj7xz.cjs → MLink-U24G6KJj.cjs} +2 -2
  39. package/dist/{MLink-Biipj7xz.cjs.map → MLink-U24G6KJj.cjs.map} +1 -1
  40. package/dist/{MLoader-XcpKlLrd.cjs → MLoader-CvFIvytw.cjs} +2 -2
  41. package/dist/{MLoader-XcpKlLrd.cjs.map → MLoader-CvFIvytw.cjs.map} +1 -1
  42. package/dist/{MPagination-CgmNEAZX.js → MPagination-BkvOEZpp.js} +1 -1
  43. package/dist/{MPagination-CgmNEAZX.js.map → MPagination-BkvOEZpp.js.map} +1 -1
  44. package/dist/{MPagination-C6QQdEj_.cjs → MPagination-DgQta29Q.cjs} +2 -2
  45. package/dist/{MPagination-C6QQdEj_.cjs.map → MPagination-DgQta29Q.cjs.map} +1 -1
  46. package/dist/MPopover-C-e1CoV0.cjs +2 -0
  47. package/dist/MPopover-C-e1CoV0.cjs.map +1 -0
  48. package/dist/{MPopover-C5aaGhma.js → MPopover-Dd-GIBU6.js} +10 -5
  49. package/dist/MPopover-Dd-GIBU6.js.map +1 -0
  50. package/dist/{MPortal-BciZHNDC.cjs → MPortal-DUSIuINN.cjs} +2 -2
  51. package/dist/{MPortal-BciZHNDC.cjs.map → MPortal-DUSIuINN.cjs.map} +1 -1
  52. package/dist/{MSimpleGrid-BwNfaxQP.cjs → MSimpleGrid-BzlIitcJ.cjs} +2 -2
  53. package/dist/{MSimpleGrid-BwNfaxQP.cjs.map → MSimpleGrid-BzlIitcJ.cjs.map} +1 -1
  54. package/dist/{MSkeleton-CLSU5pL6.cjs → MSkeleton-BoFpowFU.cjs} +2 -2
  55. package/dist/{MSkeleton-CLSU5pL6.cjs.map → MSkeleton-BoFpowFU.cjs.map} +1 -1
  56. package/dist/{MSlider-DZnMB49q.cjs → MSlider-BTDBqF8t.cjs} +2 -2
  57. package/dist/{MSlider-DZnMB49q.cjs.map → MSlider-BTDBqF8t.cjs.map} +1 -1
  58. package/dist/{MStack-BP_BUeCc.cjs → MStack-B3Ldqsc-.cjs} +2 -2
  59. package/dist/{MStack-BP_BUeCc.cjs.map → MStack-B3Ldqsc-.cjs.map} +1 -1
  60. package/dist/{MSubText-VHsgFsv2.cjs → MSubText-47PsgE8T.cjs} +2 -2
  61. package/dist/{MSubText-VHsgFsv2.cjs.map → MSubText-47PsgE8T.cjs.map} +1 -1
  62. package/dist/{MSurface-CYeVFOw_.cjs → MSurface-QYEygc_0.cjs} +2 -2
  63. package/dist/{MSurface-CYeVFOw_.cjs.map → MSurface-QYEygc_0.cjs.map} +1 -1
  64. package/dist/{MTag-BzTp1crT.cjs → MTag-BjV-dXkk.cjs} +2 -2
  65. package/dist/{MTag-BzTp1crT.cjs.map → MTag-BjV-dXkk.cjs.map} +1 -1
  66. package/dist/{MText-j6Zbbj5Y.cjs → MText-Dni707tS.cjs} +2 -2
  67. package/dist/{MText-j6Zbbj5Y.cjs.map → MText-Dni707tS.cjs.map} +1 -1
  68. package/dist/{MTooltip-BEfO9jTe.cjs → MTooltip-ChvuN4Ow.cjs} +2 -2
  69. package/dist/{MTooltip-BEfO9jTe.cjs.map → MTooltip-ChvuN4Ow.cjs.map} +1 -1
  70. package/dist/{MTooltip-BTJkzOah.js → MTooltip-H3we0a7w.js} +1 -1
  71. package/dist/{MTooltip-BTJkzOah.js.map → MTooltip-H3we0a7w.js.map} +1 -1
  72. package/dist/{MTreeView-DuQkm0ZV.cjs → MTreeView-VYp0eErQ.cjs} +2 -2
  73. package/dist/{MTreeView-DuQkm0ZV.cjs.map → MTreeView-VYp0eErQ.cjs.map} +1 -1
  74. package/dist/{arduino-DdDHMIWB.cjs → arduino-BdpdaLwK.cjs} +1 -1
  75. package/dist/{arduino-DdDHMIWB.cjs.map → arduino-BdpdaLwK.cjs.map} +1 -1
  76. package/dist/{arduino-UeOrXakL.js → arduino-DDDlP9Yt.js} +1 -1
  77. package/dist/{arduino-UeOrXakL.js.map → arduino-DDDlP9Yt.js.map} +1 -1
  78. package/dist/{bash-CrHemXky.js → bash-D8WbAmuA.js} +1 -1
  79. package/dist/{bash-CrHemXky.js.map → bash-D8WbAmuA.js.map} +1 -1
  80. package/dist/{bash-B17_F5Sw.cjs → bash-eOUFh3S1.cjs} +1 -1
  81. package/dist/{bash-B17_F5Sw.cjs.map → bash-eOUFh3S1.cjs.map} +1 -1
  82. package/dist/{c-ODLxeMV_.cjs → c-Bur7Mn-u.cjs} +1 -1
  83. package/dist/{c-ODLxeMV_.cjs.map → c-Bur7Mn-u.cjs.map} +1 -1
  84. package/dist/{c-D9302r2r.js → c-CTKNfUJI.js} +1 -1
  85. package/dist/{c-D9302r2r.js.map → c-CTKNfUJI.js.map} +1 -1
  86. package/dist/calendar-P7MwKfWS.cjs +2 -0
  87. package/dist/calendar-P7MwKfWS.cjs.map +1 -0
  88. package/dist/calendar-bzeZRst9.js +193 -0
  89. package/dist/calendar-bzeZRst9.js.map +1 -0
  90. package/dist/calendar.cjs +3 -0
  91. package/dist/calendar.d.ts +1 -0
  92. package/dist/calendar.js +4 -0
  93. package/dist/calendarDates-AnlGcvZM.cjs +2 -0
  94. package/dist/calendarDates-AnlGcvZM.cjs.map +1 -0
  95. package/dist/calendarDates-CYkJqcnp.js +50 -0
  96. package/dist/calendarDates-CYkJqcnp.js.map +1 -0
  97. package/dist/{cards-Cpr9B8Mu.js → cards-CFDJsdxR.js} +5 -5
  98. package/dist/{cards-Cpr9B8Mu.js.map → cards-CFDJsdxR.js.map} +1 -1
  99. package/dist/{cards-CQSYgH9U.cjs → cards-DeA7I2KC.cjs} +2 -2
  100. package/dist/{cards-CQSYgH9U.cjs.map → cards-DeA7I2KC.cjs.map} +1 -1
  101. package/dist/cards.cjs +1 -1
  102. package/dist/cards.js +1 -1
  103. package/dist/components/calendar/MMiniCalendar/MMiniCalendar.d.ts +6 -0
  104. package/dist/components/calendar/MMiniCalendar/MMiniCalendar.types.d.ts +35 -0
  105. package/dist/components/calendar/MMiniCalendar/index.d.ts +2 -0
  106. package/dist/components/calendar/index.d.ts +2 -0
  107. package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -4
  108. package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
  109. package/dist/components/dropdowns/MSelect/MSelect.types.d.ts +2 -0
  110. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +1 -1
  111. package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +7 -0
  112. package/dist/components/overlays/MDropdownMenu/index.d.ts +1 -1
  113. package/dist/components/overlays/index.d.ts +1 -1
  114. package/dist/{controls-CT_0lIPr.cjs → controls-KK-TyUTT.cjs} +2 -2
  115. package/dist/{controls-CT_0lIPr.cjs.map → controls-KK-TyUTT.cjs.map} +1 -1
  116. package/dist/controls.cjs +1 -1
  117. package/dist/{core-yRqh2XLu.js → core-D5-SQcs8.js} +1 -1
  118. package/dist/{core-yRqh2XLu.js.map → core-D5-SQcs8.js.map} +1 -1
  119. package/dist/{core-DBpQf3uY.cjs → core-D66c1_Wo.cjs} +1 -1
  120. package/dist/{core-DBpQf3uY.cjs.map → core-D66c1_Wo.cjs.map} +1 -1
  121. package/dist/{cpp-DuTgLZC1.cjs → cpp-BMULAf-B.cjs} +1 -1
  122. package/dist/{cpp-DuTgLZC1.cjs.map → cpp-BMULAf-B.cjs.map} +1 -1
  123. package/dist/{cpp-CLYSpJBB.js → cpp-DAzz2TpY.js} +1 -1
  124. package/dist/{cpp-CLYSpJBB.js.map → cpp-DAzz2TpY.js.map} +1 -1
  125. package/dist/{css-D0f-qByc.cjs → css-9M03GzKO.cjs} +1 -1
  126. package/dist/{css-D0f-qByc.cjs.map → css-9M03GzKO.cjs.map} +1 -1
  127. package/dist/{css-BgGh0eG1.js → css-EGOXTWIl.js} +1 -1
  128. package/dist/{css-BgGh0eG1.js.map → css-EGOXTWIl.js.map} +1 -1
  129. package/dist/{data-C-6DP7iY.js → data-CgLutFxU.js} +246 -231
  130. package/dist/data-CgLutFxU.js.map +1 -0
  131. package/dist/data-DFrkJTlF.cjs +2 -0
  132. package/dist/data-DFrkJTlF.cjs.map +1 -0
  133. package/dist/data.cjs +1 -1
  134. package/dist/data.js +1 -1
  135. package/dist/{display-DMix8BmD.cjs → display--E7rI0tk.cjs} +2 -2
  136. package/dist/{display-DMix8BmD.cjs.map → display--E7rI0tk.cjs.map} +1 -1
  137. package/dist/{display-BF4jASt9.js → display-BnkHKW1n.js} +12 -12
  138. package/dist/{display-BF4jASt9.js.map → display-BnkHKW1n.js.map} +1 -1
  139. package/dist/display.cjs +1 -1
  140. package/dist/display.js +1 -1
  141. package/dist/dropdowns-DGYg9zIh.cjs +2 -0
  142. package/dist/dropdowns-DGYg9zIh.cjs.map +1 -0
  143. package/dist/dropdowns-Dq-xAplH.js +1698 -0
  144. package/dist/dropdowns-Dq-xAplH.js.map +1 -0
  145. package/dist/dropdowns.cjs +1 -1
  146. package/dist/dropdowns.js +1 -1
  147. package/dist/{feedback-BeJpXoKd.cjs → feedback-CA77ShtB.cjs} +2 -2
  148. package/dist/{feedback-BeJpXoKd.cjs.map → feedback-CA77ShtB.cjs.map} +1 -1
  149. package/dist/feedback.cjs +1 -1
  150. package/dist/{form-CgH1hioG.js → form-CAFcvmUS.js} +1 -1
  151. package/dist/{form-CgH1hioG.js.map → form-CAFcvmUS.js.map} +1 -1
  152. package/dist/{form-BWGLrCPi.cjs → form-DpfzLUOn.cjs} +2 -2
  153. package/dist/{form-BWGLrCPi.cjs.map → form-DpfzLUOn.cjs.map} +1 -1
  154. package/dist/form.cjs +1 -1
  155. package/dist/form.js +1 -1
  156. package/dist/frameworkTexts-DH0Xp-Vx.js +78 -0
  157. package/dist/frameworkTexts-DH0Xp-Vx.js.map +1 -0
  158. package/dist/frameworkTexts-iDXhcW6k.cjs +2 -0
  159. package/dist/frameworkTexts-iDXhcW6k.cjs.map +1 -0
  160. package/dist/i18n/frameworkTexts.d.ts +96 -0
  161. package/dist/i18n.cjs +1 -1
  162. package/dist/{icons-D675Im0B.cjs → icons-D_NB67he.cjs} +2 -2
  163. package/dist/{icons-D675Im0B.cjs.map → icons-D_NB67he.cjs.map} +1 -1
  164. package/dist/icons.cjs +1 -1
  165. package/dist/illustrations.cjs +1 -1
  166. package/dist/illustrations.js +1 -1
  167. package/dist/index.cjs +1 -1
  168. package/dist/index.d.ts +1 -0
  169. package/dist/index.js +15 -14
  170. package/dist/{inputs-x6vjAGCq.cjs → inputs-Clenc4Rm.cjs} +2 -2
  171. package/dist/{inputs-x6vjAGCq.cjs.map → inputs-Clenc4Rm.cjs.map} +1 -1
  172. package/dist/inputs.cjs +1 -1
  173. package/dist/inputs.js +1 -1
  174. package/dist/{javascript-CX3JhsYu.js → javascript-CHSg4NGc.js} +1 -1
  175. package/dist/{javascript-CX3JhsYu.js.map → javascript-CHSg4NGc.js.map} +1 -1
  176. package/dist/{javascript-CGjvHPZ1.cjs → javascript-CastOQF5.cjs} +1 -1
  177. package/dist/{javascript-CGjvHPZ1.cjs.map → javascript-CastOQF5.cjs.map} +1 -1
  178. package/dist/{json-BPIcVdlp.js → json-Bejy9Rlg.js} +1 -1
  179. package/dist/{json-BPIcVdlp.js.map → json-Bejy9Rlg.js.map} +1 -1
  180. package/dist/{json-B8svQsK0.cjs → json-DCkJ-m-p.cjs} +1 -1
  181. package/dist/{json-B8svQsK0.cjs.map → json-DCkJ-m-p.cjs.map} +1 -1
  182. package/dist/{layout-Ddo7HUPu.cjs → layout-CNoZdeXw.cjs} +2 -2
  183. package/dist/{layout-Ddo7HUPu.cjs.map → layout-CNoZdeXw.cjs.map} +1 -1
  184. package/dist/{layout-CdSpVJuK.js → layout-DsE4zfpg.js} +3 -3
  185. package/dist/{layout-CdSpVJuK.js.map → layout-DsE4zfpg.js.map} +1 -1
  186. package/dist/layout.cjs +1 -1
  187. package/dist/layout.js +2 -2
  188. package/dist/{licensing-DysMClel.cjs → licensing-DGIdtfNg.cjs} +2 -2
  189. package/dist/licensing-DGIdtfNg.cjs.map +1 -0
  190. package/dist/licensing-f5KYVz7D.js.map +1 -1
  191. package/dist/{locale-CbnstsMH.cjs → locale-DRRl_s5-.cjs} +2 -2
  192. package/dist/{locale-CbnstsMH.cjs.map → locale-DRRl_s5-.cjs.map} +1 -1
  193. package/dist/{media-DRz3JZfr.cjs → media-DRTBXDnn.cjs} +2 -2
  194. package/dist/{media-DRz3JZfr.cjs.map → media-DRTBXDnn.cjs.map} +1 -1
  195. package/dist/media.cjs +1 -1
  196. package/dist/{overlays-C1vO_A2I.js → overlays-BKk_ZXue.js} +3 -3
  197. package/dist/{overlays-C1vO_A2I.js.map → overlays-BKk_ZXue.js.map} +1 -1
  198. package/dist/{overlays-BUZEaZaJ.cjs → overlays-Qbp4d596.cjs} +2 -2
  199. package/dist/{overlays-BUZEaZaJ.cjs.map → overlays-Qbp4d596.cjs.map} +1 -1
  200. package/dist/overlays.cjs +1 -1
  201. package/dist/overlays.js +3 -3
  202. package/dist/{php-CKyelegh.cjs → php-BdVXegqn.cjs} +1 -1
  203. package/dist/{php-CKyelegh.cjs.map → php-BdVXegqn.cjs.map} +1 -1
  204. package/dist/{php-CBRzjinf.js → php-Cb_S1hXT.js} +1 -1
  205. package/dist/{php-CBRzjinf.js.map → php-Cb_S1hXT.js.map} +1 -1
  206. package/dist/primitives.cjs +1 -1
  207. package/dist/primitives.js +1 -1
  208. package/dist/style-runtime.cjs +1 -1
  209. package/dist/style-runtime.js +1 -1
  210. package/dist/styles.css +1 -1
  211. package/dist/{theme-BfNZicWk.cjs → theme-DgaM4CjM.cjs} +2 -2
  212. package/dist/{theme-BfNZicWk.cjs.map → theme-DgaM4CjM.cjs.map} +1 -1
  213. package/dist/theme.cjs +1 -1
  214. package/dist/{typescript-Xt3Sotw5.js → typescript-0VHxrxf2.js} +1 -1
  215. package/dist/{typescript-Xt3Sotw5.js.map → typescript-0VHxrxf2.js.map} +1 -1
  216. package/dist/{typescript-D6PDzwkM.cjs → typescript-CcGBfzlS.cjs} +1 -1
  217. package/dist/{typescript-D6PDzwkM.cjs.map → typescript-CcGBfzlS.cjs.map} +1 -1
  218. package/dist/{typography-Dk9kIORI.cjs → typography-C4_O8len.cjs} +2 -2
  219. package/dist/{typography-Dk9kIORI.cjs.map → typography-C4_O8len.cjs.map} +1 -1
  220. package/dist/typography.cjs +1 -1
  221. package/dist/{useGhostText-Dmkw3Am8.cjs → useGhostText-Dlemg1vw.cjs} +2 -2
  222. package/dist/{useGhostText-Dmkw3Am8.cjs.map → useGhostText-Dlemg1vw.cjs.map} +1 -1
  223. package/dist/{useInteractionEffect-DFTdcWHl.cjs → useInteractionEffect-CFwDX5UF.cjs} +2 -2
  224. package/dist/{useInteractionEffect-DFTdcWHl.cjs.map → useInteractionEffect-CFwDX5UF.cjs.map} +1 -1
  225. package/dist/{useKeyboardNav-HVG9JFD2.cjs → useKeyboardNav-Bm-dxVq-.cjs} +2 -2
  226. package/dist/{useKeyboardNav-HVG9JFD2.cjs.map → useKeyboardNav-Bm-dxVq-.cjs.map} +1 -1
  227. package/dist/utils/calendarDates.d.ts +51 -0
  228. package/dist/utils/licensing.d.ts +1 -1
  229. package/dist/utils/useControllableState.d.ts +5 -0
  230. package/dist/utils/useElementWidth.d.ts +10 -0
  231. package/dist/utils.cjs +1 -1
  232. package/dist/{xml-CrpWqcDk.js → xml-8GjNy8SM.js} +1 -1
  233. package/dist/{xml-CrpWqcDk.js.map → xml-8GjNy8SM.js.map} +1 -1
  234. package/dist/{xml-4YlaGgjP.cjs → xml-Dbm3mobK.cjs} +1 -1
  235. package/dist/{xml-4YlaGgjP.cjs.map → xml-Dbm3mobK.cjs.map} +1 -1
  236. package/package.json +16 -3
  237. package/dist/MConflictIllustration-B2AtfpYO.cjs +0 -2
  238. package/dist/MConflictIllustration-B2AtfpYO.cjs.map +0 -1
  239. package/dist/MConflictIllustration-Drsm8_8C.js.map +0 -1
  240. package/dist/MDropdownMenu-BvN5grK5.cjs +0 -2
  241. package/dist/MDropdownMenu-BvN5grK5.cjs.map +0 -1
  242. package/dist/MDropdownMenu-CFoKJ7V6.js +0 -157
  243. package/dist/MDropdownMenu-CFoKJ7V6.js.map +0 -1
  244. package/dist/MPopover-C5aaGhma.js.map +0 -1
  245. package/dist/MPopover-CV-9MArH.cjs +0 -2
  246. package/dist/MPopover-CV-9MArH.cjs.map +0 -1
  247. package/dist/data-BZ92hzXx.cjs +0 -2
  248. package/dist/data-BZ92hzXx.cjs.map +0 -1
  249. package/dist/data-C-6DP7iY.js.map +0 -1
  250. package/dist/dropdowns-BwAVoncd.js +0 -1752
  251. package/dist/dropdowns-BwAVoncd.js.map +0 -1
  252. package/dist/dropdowns-D5IF0TK7.cjs +0 -2
  253. package/dist/dropdowns-D5IF0TK7.cjs.map +0 -1
  254. package/dist/licensing-DysMClel.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"form-BWGLrCPi.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-DpfzLUOn.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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"}
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-BWGLrCPi.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-DpfzLUOn.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-CgH1hioG.js";
3
+ import { n as e, r as t, t as n } from "./form-CAFcvmUS.js";
4
4
  export { e as MForm, t as useFormContext, n as useFormField };
@@ -0,0 +1,78 @@
1
+ import { r as e } from "./MI18nProvider-VH14CI8u.js";
2
+ import { useCallback as t, useMemo as n } from "react";
3
+ //#region src/i18n/frameworkTexts.ts
4
+ function r() {
5
+ let n = e();
6
+ return t((e, t) => n?.t(e, t) ?? t, [n]);
7
+ }
8
+ function i() {
9
+ let e = r();
10
+ return n(() => ({
11
+ today: e("mineralui.datePicker.today", "Today"),
12
+ clear: e("mineralui.datePicker.clear", "Clear"),
13
+ previousMonth: e("mineralui.datePicker.previousMonth", "Previous month"),
14
+ nextMonth: e("mineralui.datePicker.nextMonth", "Next month")
15
+ }), [e]);
16
+ }
17
+ function a() {
18
+ let e = r();
19
+ return n(() => ({
20
+ today: e("mineralui.dateRangePicker.today", "Today"),
21
+ clear: e("mineralui.dateRangePicker.clear", "Clear"),
22
+ previousMonth: e("mineralui.dateRangePicker.previousMonth", "Previous month"),
23
+ nextMonth: e("mineralui.dateRangePicker.nextMonth", "Next month"),
24
+ rangeSubtitle: e("mineralui.dateRangePicker.rangeSubtitle", "Select start and end dates in one panel."),
25
+ defaultRangePlaceholder: e("mineralui.dateRangePicker.defaultRangePlaceholder", "Select date range..."),
26
+ presets: {
27
+ today: e("mineralui.dateRangePicker.presets.today", "Today"),
28
+ days2: e("mineralui.dateRangePicker.presets.days2", "2 days"),
29
+ days3: e("mineralui.dateRangePicker.presets.days3", "3 days"),
30
+ days7: e("mineralui.dateRangePicker.presets.days7", "7 days"),
31
+ days14: e("mineralui.dateRangePicker.presets.days14", "14 days"),
32
+ days31: e("mineralui.dateRangePicker.presets.days31", "31 days"),
33
+ thisMonth: e("mineralui.dateRangePicker.presets.thisMonth", "This month"),
34
+ previousMonth: e("mineralui.dateRangePicker.presets.previousMonth", "Previous month"),
35
+ months2: e("mineralui.dateRangePicker.presets.months2", "2 months"),
36
+ months3: e("mineralui.dateRangePicker.presets.months3", "3 months"),
37
+ months6: e("mineralui.dateRangePicker.presets.months6", "6 months"),
38
+ year1: e("mineralui.dateRangePicker.presets.year1", "1 year")
39
+ }
40
+ }), [e]);
41
+ }
42
+ function o(e, t) {
43
+ return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : e);
44
+ }
45
+ function s(e) {
46
+ return !!(e && e.toLowerCase().startsWith("pl"));
47
+ }
48
+ function c(e, t) {
49
+ let i = r();
50
+ return n(() => {
51
+ let n = s(e);
52
+ return {
53
+ previousMonth: t?.previousMonth ?? i("mineralui.miniCalendar.previousMonth", n ? "Poprzedni miesiąc" : "Previous month"),
54
+ nextMonth: t?.nextMonth ?? i("mineralui.miniCalendar.nextMonth", n ? "Następny miesiąc" : "Next month")
55
+ };
56
+ }, [
57
+ i,
58
+ e,
59
+ t
60
+ ]);
61
+ }
62
+ function l() {
63
+ let e = r();
64
+ return n(() => ({
65
+ scale: e("mineralui.weekGrid.scale", "Scale: {min} — {max}{unit}"),
66
+ bands: [
67
+ e("mineralui.weekGrid.bands.none", "None"),
68
+ e("mineralui.weekGrid.bands.few", "Few"),
69
+ e("mineralui.weekGrid.bands.some", "Some"),
70
+ e("mineralui.weekGrid.bands.many", "Many")
71
+ ],
72
+ cellLabel: e("mineralui.weekGrid.cellLabel", "{day} {slot}: {value}")
73
+ }), [e]);
74
+ }
75
+ //#endregion
76
+ export { l as a, c as i, i as n, a as r, o as t };
77
+
78
+ //# sourceMappingURL=frameworkTexts-DH0Xp-Vx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworkTexts-DH0Xp-Vx.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 allDayTab: string\n timelineTab: string\n itemsCount: (count: number) => string\n}\n\nexport interface MFileManagerTexts {\n home: string\n searchPlaceholder: string\n emptyText: string\n folders: string\n noFoldersAvailable: string\n currentFolder: string\n filteredBy: (query: string) => string\n listView: string\n gridView: string\n folder: string\n file: string\n preview: string\n path: string\n selectItemToInspect: string\n itemsCount: (count: number) => string\n rename: string\n moveTo: string\n delete: string\n download: string\n newFolder: string\n}\n\nexport function useMDatePickerTexts(): MDatePickerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n today: t('mineralui.datePicker.today', 'Today'),\n clear: t('mineralui.datePicker.clear', 'Clear'),\n previousMonth: t('mineralui.datePicker.previousMonth', 'Previous month'),\n nextMonth: t('mineralui.datePicker.nextMonth', 'Next month'),\n }),\n [t]\n )\n}\n\nexport function useMDateRangePickerTexts(): MDateRangePickerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n today: t('mineralui.dateRangePicker.today', 'Today'),\n clear: t('mineralui.dateRangePicker.clear', 'Clear'),\n previousMonth: t('mineralui.dateRangePicker.previousMonth', 'Previous month'),\n nextMonth: t('mineralui.dateRangePicker.nextMonth', 'Next month'),\n rangeSubtitle: t('mineralui.dateRangePicker.rangeSubtitle', 'Select start and end dates in one panel.'),\n defaultRangePlaceholder: t('mineralui.dateRangePicker.defaultRangePlaceholder', 'Select date range...'),\n presets: {\n today: t('mineralui.dateRangePicker.presets.today', 'Today'),\n days2: t('mineralui.dateRangePicker.presets.days2', '2 days'),\n days3: t('mineralui.dateRangePicker.presets.days3', '3 days'),\n days7: t('mineralui.dateRangePicker.presets.days7', '7 days'),\n days14: t('mineralui.dateRangePicker.presets.days14', '14 days'),\n days31: t('mineralui.dateRangePicker.presets.days31', '31 days'),\n thisMonth: t('mineralui.dateRangePicker.presets.thisMonth', 'This month'),\n previousMonth: t('mineralui.dateRangePicker.presets.previousMonth', 'Previous month'),\n months2: t('mineralui.dateRangePicker.presets.months2', '2 months'),\n months3: t('mineralui.dateRangePicker.presets.months3', '3 months'),\n months6: t('mineralui.dateRangePicker.presets.months6', '6 months'),\n year1: t('mineralui.dateRangePicker.presets.year1', '1 year'),\n },\n }),\n [t]\n )\n}\n\nexport function useMCalendarBoardTexts(): MCalendarBoardTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n monthView: t('mineralui.calendarBoard.monthView', 'Month'),\n weekView: t('mineralui.calendarBoard.weekView', 'Week'),\n previousWeek: t('mineralui.calendarBoard.previousWeek', 'Previous week'),\n nextWeek: t('mineralui.calendarBoard.nextWeek', 'Next week'),\n emptyStateText: t('mineralui.calendarBoard.emptyStateText', 'No events for the selected day.'),\n timelineTitle: t('mineralui.calendarBoard.timelineTitle', 'Daily timeline'),\n timelineEmptyState: t('mineralui.calendarBoard.timelineEmptyState', 'No events in this hour.'),\n allDay: t('mineralui.calendarBoard.allDay', 'All day'),\n allDayTab: t('mineralui.calendarBoard.allDayTab', 'All day'),\n timelineTab: t('mineralui.calendarBoard.timelineTab', 'Hourly timeline'),\n itemsCount: (count) =>\n t('mineralui.calendarBoard.itemsCount', '{count} items').replace('{count}', String(count)),\n }),\n [t]\n )\n}\n\nexport function useMFileManagerTexts(): MFileManagerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n home: t('mineralui.fileManager.home', 'Home'),\n searchPlaceholder: t('mineralui.fileManager.searchPlaceholder', 'Search in folder...'),\n emptyText: t('mineralui.fileManager.emptyText', 'This folder is empty.'),\n folders: t('mineralui.fileManager.folders', 'Folders'),\n noFoldersAvailable: t('mineralui.fileManager.noFoldersAvailable', 'No folders available.'),\n currentFolder: t('mineralui.fileManager.currentFolder', 'Current folder'),\n filteredBy: (query) =>\n t('mineralui.fileManager.filteredBy', 'Filtered by \"{query}\"').replace('{query}', query),\n listView: t('mineralui.fileManager.listView', 'List'),\n gridView: t('mineralui.fileManager.gridView', 'Grid'),\n folder: t('mineralui.fileManager.folder', 'Folder'),\n file: t('mineralui.fileManager.file', 'File'),\n preview: t('mineralui.fileManager.preview', 'Preview'),\n path: t('mineralui.fileManager.path', 'Path'),\n selectItemToInspect: t(\n 'mineralui.fileManager.selectItemToInspect',\n 'Select a file or folder to inspect its details.'\n ),\n itemsCount: (count) =>\n t('mineralui.fileManager.itemsCount', '{count} items').replace('{count}', String(count)),\n rename: t('mineralui.fileManager.rename', 'Rename'),\n moveTo: t('mineralui.fileManager.moveTo', 'Move to...'),\n delete: t('mineralui.fileManager.delete', 'Delete'),\n download: t('mineralui.fileManager.download', 'Download'),\n newFolder: t('mineralui.fileManager.newFolder', 'New folder'),\n }),\n [t]\n )\n}\n\n// Cookie-consent texts moved to @banzamel/honey in mineralui-pro 2.0.0.\n// Consumers that need to retheme cookie copy now pass `texts` directly to\n// `<CookieConsentProvider>` from `@banzamel/honey`.\n\n/** Count-bearing texts accept a `{count}` template or a function, so apps can pluralise. */\nexport type MSchedulerCountText = string | ((count: number) => string)\n\nexport interface MSchedulerTexts {\n today: string\n previous: string\n next: string\n chooseDate: string\n add: string\n viewLabel: string\n viewWeek: string\n viewDay: string\n viewMonth: string\n viewAgenda: string\n showWeekends: string\n filters: string\n filtersActive: MSchedulerCountText\n clearFilters: string\n allOption: string\n searchPlaceholder: string\n noOptions: string\n allDay: string\n more: MSchedulerCountText\n /** `{count}` and `{date}` placeholders. */\n moreAria: string\n eventCount: MSchedulerCountText\n emptyState: string\n loading: string\n now: string\n recurring: string\n cancelled: string\n conflict: string\n eventDetails: string\n eventActions: string\n close: string\n participants: MSchedulerCountText\n /** `{count}` and `{capacity}` placeholders. */\n participantsCapacity: string\n location: string\n /** `{title}` placeholder, announced on every period change. */\n periodAnnouncement: string\n /** `{date}` placeholder — label of a day-number button. */\n openDay: string\n viewTimeline: string\n /** `{view}` and `{set}` placeholders — view-menu entry of a resource set. */\n viewWithSet: string\n move: string\n resize: string\n moveInstructions: string\n /** Announced when the keyboard move mode starts in the month view. */\n moveInstructionsMonth: string\n /** Appended to the native tooltip of a draggable event. */\n dragHint: string\n /** `{title}` and `{when}` placeholders. */\n moved: string\n /** `{title}` and `{time}` placeholders. */\n resized: string\n moveRefused: string\n moveCancelled: string\n unavailable: string\n blocked: string\n /** Caption above the leader row in the event details. */\n leader: string\n /** Visible label of the \"open this day\" action in the month \"+N more\" popover. */\n openDayView: string\n /** Toolbar button shown in the day view after a drill-down from the month view. */\n backToMonth: string\n}\n\nfunction polishPlural(count: number, one: string, few: string, many: string): string {\n const mod10 = count % 10\n const mod100 = count % 100\n if (count === 1) {\n return one\n }\n if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n return few\n }\n return many\n}\n\nexport const mineralSchedulerTextsEn: MSchedulerTexts = {\n today: 'Today',\n previous: 'Previous period',\n next: 'Next period',\n chooseDate: 'Choose date',\n add: 'Add',\n viewLabel: 'View',\n viewWeek: 'Week',\n viewDay: 'Day',\n viewMonth: 'Month',\n viewAgenda: 'Agenda',\n showWeekends: 'Show weekends',\n filters: 'Filters',\n filtersActive: 'Filters ({count})',\n clearFilters: 'Clear filters',\n allOption: 'All',\n searchPlaceholder: 'Search…',\n noOptions: 'No results',\n allDay: 'All day',\n more: '+{count} more',\n moreAria: 'Show {count} more events on {date}',\n eventCount: (count) => (count === 1 ? '1 event' : `${count} events`),\n emptyState: 'No events to display',\n loading: 'Loading events',\n now: 'Now',\n recurring: 'Recurring',\n cancelled: 'Cancelled',\n conflict: 'Conflict',\n eventDetails: 'Event details',\n eventActions: 'Event actions',\n close: 'Close',\n participants: 'Participants ({count})',\n participantsCapacity: 'Participants ({count} / {capacity})',\n location: 'Location',\n periodAnnouncement: '{title}',\n openDay: 'Open {date}',\n viewTimeline: 'Timeline',\n viewWithSet: '{view} – {set}',\n move: 'Move',\n resize: 'Resize',\n moveInstructions: 'Arrows move, Shift+arrows move by an hour, Enter drops, Escape cancels.',\n moveInstructionsMonth: 'Left and right arrows move by a day, up and down by a week, Enter drops, Escape cancels.',\n dragHint: 'Drag to move',\n moved: '{title} moved to {when}',\n resized: '{title} now ends at {time}',\n moveRefused: 'Cannot move here',\n moveCancelled: 'Move cancelled',\n unavailable: 'Unavailable',\n blocked: 'Blocked',\n leader: 'Leader',\n openDayView: 'Open day',\n backToMonth: 'Back to month',\n}\n\nexport const mineralSchedulerTextsPl: MSchedulerTexts = {\n today: 'Dzisiaj',\n previous: 'Poprzedni okres',\n next: 'Następny okres',\n chooseDate: 'Wybierz datę',\n add: 'Dodaj',\n viewLabel: 'Widok',\n viewWeek: 'Tydzień',\n viewDay: 'Dzień',\n viewMonth: 'Miesiąc',\n viewAgenda: 'Lista',\n showWeekends: 'Pokaż weekendy',\n filters: 'Filtry',\n filtersActive: 'Filtry ({count})',\n clearFilters: 'Wyczyść filtry',\n allOption: 'Wszystkie',\n searchPlaceholder: 'Szukaj…',\n noOptions: 'Brak wyników',\n allDay: 'Cały dzień',\n more: '+{count} więcej',\n moreAria: 'Pokaż {count} więcej wydarzeń w dniu {date}',\n eventCount: (count) => `${count} ${polishPlural(count, 'wydarzenie', 'wydarzenia', 'wydarzeń')}`,\n emptyState: 'Brak wydarzeń do wyświetlenia',\n loading: 'Wczytywanie wydarzeń',\n now: 'Teraz',\n recurring: 'Cykliczne',\n cancelled: 'Odwołane',\n conflict: 'Konflikt',\n eventDetails: 'Szczegóły wydarzenia',\n eventActions: 'Akcje wydarzenia',\n close: 'Zamknij',\n participants: 'Uczestnicy ({count})',\n participantsCapacity: 'Uczestnicy ({count} / {capacity})',\n location: 'Miejsce',\n periodAnnouncement: '{title}',\n openDay: 'Otwórz {date}',\n viewTimeline: 'Oś czasu',\n viewWithSet: '{view} – {set}',\n move: 'Przenieś',\n resize: 'Zmień długość',\n moveInstructions: 'Strzałki przesuwają, Shift+strzałki o godzinę, Enter upuszcza, Escape anuluje.',\n moveInstructionsMonth:\n 'Strzałki w lewo i w prawo przesuwają o dzień, w górę i w dół o tydzień, Enter upuszcza, Escape anuluje.',\n dragHint: 'Przeciągnij, aby przenieść',\n moved: '{title} przeniesiono na {when}',\n resized: '{title} kończy się o {time}',\n moveRefused: 'Nie można tu przenieść',\n moveCancelled: 'Anulowano przenoszenie',\n unavailable: 'Niedostępne',\n blocked: 'Zablokowane',\n leader: 'Prowadzący',\n openDayView: 'Otwórz dzień',\n backToMonth: 'Wróć do miesiąca',\n}\n\n/** Fills `{name}` placeholders. */\nexport function formatMText(template: string, values: Record<string, string | number>): string {\n return template.replace(/\\{(\\w+)\\}/g, (match, key: string) => (key in values ? String(values[key]) : match))\n}\n\n/** Resolves a count text (template or function) for `count`. */\nexport function formatMCountText(text: MSchedulerCountText, count: number): string {\n return typeof text === 'function' ? text(count) : formatMText(text, {count})\n}\n\nfunction isPolishLocale(locale?: string): boolean {\n return Boolean(locale && locale.toLowerCase().startsWith('pl'))\n}\n\n/**\n * Scheduler texts. Resolution per key: `overrides` → MI18nProvider key\n * `mineralui.scheduler.<key>` → built-in default for `locale` (Polish or English).\n */\nexport function useMSchedulerTexts(locale?: string, overrides?: Partial<MSchedulerTexts>): MSchedulerTexts {\n const t = useTranslate()\n\n return useMemo(() => {\n const defaults = isPolishLocale(locale) ? mineralSchedulerTextsPl : mineralSchedulerTextsEn\n const resolved = {} as Record<keyof MSchedulerTexts, MSchedulerTexts[keyof MSchedulerTexts]>\n ;(Object.keys(defaults) as Array<keyof MSchedulerTexts>).forEach((key) => {\n const override = overrides?.[key]\n if (override !== undefined) {\n resolved[key] = override\n return\n }\n const fallback = defaults[key]\n const i18nKey = `mineralui.scheduler.${key}`\n const translated = t(i18nKey, typeof fallback === 'string' ? fallback : i18nKey)\n resolved[key] = typeof fallback === 'function' && translated === i18nKey ? fallback : translated\n })\n return resolved as MSchedulerTexts\n }, [t, locale, overrides])\n}\n\nexport interface MMiniCalendarTexts {\n previousMonth: string\n nextMonth: string\n}\n\nexport function useMMiniCalendarTexts(locale?: string, overrides?: Partial<MMiniCalendarTexts>): MMiniCalendarTexts {\n const t = useTranslate()\n\n return useMemo(() => {\n const polish = isPolishLocale(locale)\n return {\n previousMonth:\n overrides?.previousMonth ??\n t('mineralui.miniCalendar.previousMonth', polish ? 'Poprzedni miesiąc' : 'Previous month'),\n nextMonth:\n overrides?.nextMonth ??\n t('mineralui.miniCalendar.nextMonth', polish ? 'Następny miesiąc' : 'Next month'),\n }\n }, [t, locale, overrides])\n}\n\nexport interface MWeekGridTexts {\n /** Legend scale text. Placeholders: `{min}`, `{max}`, `{unit}` (with a leading space when set). */\n scale: string\n /** Default density-band labels, lowest to highest. */\n bands: [string, string, string, string]\n /** Accessible name of an interactive cell. Placeholders: `{day}`, `{slot}`, `{value}`. */\n cellLabel: string\n}\n\n/**\n * MWeekGrid texts. Resolution per key: MI18nProvider key `mineralui.weekGrid.<key>`\n * (bands: `mineralui.weekGrid.bands.none|few|some|many`) → built-in English default.\n */\nexport function useMWeekGridTexts(): MWeekGridTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n scale: t('mineralui.weekGrid.scale', 'Scale: {min} — {max}{unit}'),\n bands: [\n t('mineralui.weekGrid.bands.none', 'None'),\n t('mineralui.weekGrid.bands.few', 'Few'),\n t('mineralui.weekGrid.bands.some', 'Some'),\n t('mineralui.weekGrid.bands.many', 'Many'),\n ],\n cellLabel: t('mineralui.weekGrid.cellLabel', '{day} {slot}: {value}'),\n }),\n [t]\n )\n}\n"],"mappings":";;;AAGA,SAAS,IAAe;CACpB,IAAM,IAAO,GAAkB;AAE/B,QAAO,GAAa,GAAa,MAAqB,GAAM,EAAE,GAAK,EAAS,IAAI,GAAU,CAAC,EAAK,CAAC;;AAkErG,SAAgB,IAAwC;CACpD,IAAM,IAAI,GAAc;AAExB,QAAO,SACI;EACH,OAAO,EAAE,8BAA8B,QAAQ;EAC/C,OAAO,EAAE,8BAA8B,QAAQ;EAC/C,eAAe,EAAE,sCAAsC,iBAAiB;EACxE,WAAW,EAAE,kCAAkC,aAAa;EAC/D,GACD,CAAC,EAAE,CACN;;AAGL,SAAgB,IAAkD;CAC9D,IAAM,IAAI,GAAc;AAExB,QAAO,SACI;EACH,OAAO,EAAE,mCAAmC,QAAQ;EACpD,OAAO,EAAE,mCAAmC,QAAQ;EACpD,eAAe,EAAE,2CAA2C,iBAAiB;EAC7E,WAAW,EAAE,uCAAuC,aAAa;EACjE,eAAe,EAAE,2CAA2C,2CAA2C;EACvG,yBAAyB,EAAE,qDAAqD,uBAAuB;EACvG,SAAS;GACL,OAAO,EAAE,2CAA2C,QAAQ;GAC5D,OAAO,EAAE,2CAA2C,SAAS;GAC7D,OAAO,EAAE,2CAA2C,SAAS;GAC7D,OAAO,EAAE,2CAA2C,SAAS;GAC7D,QAAQ,EAAE,4CAA4C,UAAU;GAChE,QAAQ,EAAE,4CAA4C,UAAU;GAChE,WAAW,EAAE,+CAA+C,aAAa;GACzE,eAAe,EAAE,mDAAmD,iBAAiB;GACrF,SAAS,EAAE,6CAA6C,WAAW;GACnE,SAAS,EAAE,6CAA6C,WAAW;GACnE,SAAS,EAAE,6CAA6C,WAAW;GACnE,OAAO,EAAE,2CAA2C,SAAS;GAChE;EACJ,GACD,CAAC,EAAE,CACN;;AA+PL,SAAgB,EAAY,GAAkB,GAAiD;AAC3F,QAAO,EAAS,QAAQ,eAAe,GAAO,MAAiB,KAAO,IAAS,OAAO,EAAO,GAAK,GAAG,EAAO;;AAQhH,SAAS,EAAe,GAA0B;AAC9C,QAAO,GAAQ,KAAU,EAAO,aAAa,CAAC,WAAW,KAAK;;AAiClE,SAAgB,EAAsB,GAAiB,GAA6D;CAChH,IAAM,IAAI,GAAc;AAExB,QAAO,QAAc;EACjB,IAAM,IAAS,EAAe,EAAO;AACrC,SAAO;GACH,eACI,GAAW,iBACX,EAAE,wCAAwC,IAAS,sBAAsB,iBAAiB;GAC9F,WACI,GAAW,aACX,EAAE,oCAAoC,IAAS,qBAAqB,aAAa;GACxF;IACF;EAAC;EAAG;EAAQ;EAAU,CAAC;;AAgB9B,SAAgB,IAAoC;CAChD,IAAM,IAAI,GAAc;AAExB,QAAO,SACI;EACH,OAAO,EAAE,4BAA4B,6BAA6B;EAClE,OAAO;GACH,EAAE,iCAAiC,OAAO;GAC1C,EAAE,gCAAgC,MAAM;GACxC,EAAE,iCAAiC,OAAO;GAC1C,EAAE,iCAAiC,OAAO;GAC7C;EACD,WAAW,EAAE,gCAAgC,wBAAwB;EACxE,GACD,CAAC,EAAE,CACN"}
@@ -0,0 +1,2 @@
1
+ const e=require(`./MI18nProvider-DXRbB0VY.cjs`);require(`./core-D66c1_Wo.cjs`);let t=require(`react`);function n(){let n=e.r();return(0,t.useCallback)((e,t)=>n?.t(e,t)??t,[n])}function r(){let e=n();return(0,t.useMemo)(()=>({today:e(`mineralui.datePicker.today`,`Today`),clear:e(`mineralui.datePicker.clear`,`Clear`),previousMonth:e(`mineralui.datePicker.previousMonth`,`Previous month`),nextMonth:e(`mineralui.datePicker.nextMonth`,`Next month`)}),[e])}function i(){let e=n();return(0,t.useMemo)(()=>({today:e(`mineralui.dateRangePicker.today`,`Today`),clear:e(`mineralui.dateRangePicker.clear`,`Clear`),previousMonth:e(`mineralui.dateRangePicker.previousMonth`,`Previous month`),nextMonth:e(`mineralui.dateRangePicker.nextMonth`,`Next month`),rangeSubtitle:e(`mineralui.dateRangePicker.rangeSubtitle`,`Select start and end dates in one panel.`),defaultRangePlaceholder:e(`mineralui.dateRangePicker.defaultRangePlaceholder`,`Select date range...`),presets:{today:e(`mineralui.dateRangePicker.presets.today`,`Today`),days2:e(`mineralui.dateRangePicker.presets.days2`,`2 days`),days3:e(`mineralui.dateRangePicker.presets.days3`,`3 days`),days7:e(`mineralui.dateRangePicker.presets.days7`,`7 days`),days14:e(`mineralui.dateRangePicker.presets.days14`,`14 days`),days31:e(`mineralui.dateRangePicker.presets.days31`,`31 days`),thisMonth:e(`mineralui.dateRangePicker.presets.thisMonth`,`This month`),previousMonth:e(`mineralui.dateRangePicker.presets.previousMonth`,`Previous month`),months2:e(`mineralui.dateRangePicker.presets.months2`,`2 months`),months3:e(`mineralui.dateRangePicker.presets.months3`,`3 months`),months6:e(`mineralui.dateRangePicker.presets.months6`,`6 months`),year1:e(`mineralui.dateRangePicker.presets.year1`,`1 year`)}}),[e])}function a(e,t){return e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e)}function o(e){return!!(e&&e.toLowerCase().startsWith(`pl`))}function s(e,r){let i=n();return(0,t.useMemo)(()=>{let t=o(e);return{previousMonth:r?.previousMonth??i(`mineralui.miniCalendar.previousMonth`,t?`Poprzedni miesiąc`:`Previous month`),nextMonth:r?.nextMonth??i(`mineralui.miniCalendar.nextMonth`,t?`Następny miesiąc`:`Next month`)}},[i,e,r])}function c(){let e=n();return(0,t.useMemo)(()=>({scale:e(`mineralui.weekGrid.scale`,`Scale: {min} — {max}{unit}`),bands:[e(`mineralui.weekGrid.bands.none`,`None`),e(`mineralui.weekGrid.bands.few`,`Few`),e(`mineralui.weekGrid.bands.some`,`Some`),e(`mineralui.weekGrid.bands.many`,`Many`)],cellLabel:e(`mineralui.weekGrid.cellLabel`,`{day} {slot}: {value}`)}),[e])}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=frameworkTexts-iDXhcW6k.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frameworkTexts-iDXhcW6k.cjs","names":[],"sources":["../src/i18n/frameworkTexts.ts"],"sourcesContent":["import {useCallback, useMemo} from 'react'\nimport {useOptionalMI18n} from './MI18nProvider'\n\nfunction useTranslate() {\n const i18n = useOptionalMI18n()\n\n return useCallback((key: string, fallback: string) => i18n?.t(key, fallback) ?? fallback, [i18n])\n}\n\nexport interface MDatePickerTexts {\n today: string\n clear: string\n previousMonth: string\n nextMonth: string\n}\n\nexport interface MDateRangePickerTexts extends MDatePickerTexts {\n rangeSubtitle: string\n defaultRangePlaceholder: string\n presets: {\n today: string\n days2: string\n days3: string\n days7: string\n days14: string\n days31: string\n thisMonth: string\n previousMonth: string\n months2: string\n months3: string\n months6: string\n year1: string\n }\n}\n\nexport interface MCalendarBoardTexts {\n monthView: string\n weekView: string\n previousWeek: string\n nextWeek: string\n emptyStateText: string\n timelineTitle: string\n timelineEmptyState: string\n allDay: string\n allDayTab: string\n timelineTab: string\n itemsCount: (count: number) => string\n}\n\nexport interface MFileManagerTexts {\n home: string\n searchPlaceholder: string\n emptyText: string\n folders: string\n noFoldersAvailable: string\n currentFolder: string\n filteredBy: (query: string) => string\n listView: string\n gridView: string\n folder: string\n file: string\n preview: string\n path: string\n selectItemToInspect: string\n itemsCount: (count: number) => string\n rename: string\n moveTo: string\n delete: string\n download: string\n newFolder: string\n}\n\nexport function useMDatePickerTexts(): MDatePickerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n today: t('mineralui.datePicker.today', 'Today'),\n clear: t('mineralui.datePicker.clear', 'Clear'),\n previousMonth: t('mineralui.datePicker.previousMonth', 'Previous month'),\n nextMonth: t('mineralui.datePicker.nextMonth', 'Next month'),\n }),\n [t]\n )\n}\n\nexport function useMDateRangePickerTexts(): MDateRangePickerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n today: t('mineralui.dateRangePicker.today', 'Today'),\n clear: t('mineralui.dateRangePicker.clear', 'Clear'),\n previousMonth: t('mineralui.dateRangePicker.previousMonth', 'Previous month'),\n nextMonth: t('mineralui.dateRangePicker.nextMonth', 'Next month'),\n rangeSubtitle: t('mineralui.dateRangePicker.rangeSubtitle', 'Select start and end dates in one panel.'),\n defaultRangePlaceholder: t('mineralui.dateRangePicker.defaultRangePlaceholder', 'Select date range...'),\n presets: {\n today: t('mineralui.dateRangePicker.presets.today', 'Today'),\n days2: t('mineralui.dateRangePicker.presets.days2', '2 days'),\n days3: t('mineralui.dateRangePicker.presets.days3', '3 days'),\n days7: t('mineralui.dateRangePicker.presets.days7', '7 days'),\n days14: t('mineralui.dateRangePicker.presets.days14', '14 days'),\n days31: t('mineralui.dateRangePicker.presets.days31', '31 days'),\n thisMonth: t('mineralui.dateRangePicker.presets.thisMonth', 'This month'),\n previousMonth: t('mineralui.dateRangePicker.presets.previousMonth', 'Previous month'),\n months2: t('mineralui.dateRangePicker.presets.months2', '2 months'),\n months3: t('mineralui.dateRangePicker.presets.months3', '3 months'),\n months6: t('mineralui.dateRangePicker.presets.months6', '6 months'),\n year1: t('mineralui.dateRangePicker.presets.year1', '1 year'),\n },\n }),\n [t]\n )\n}\n\nexport function useMCalendarBoardTexts(): MCalendarBoardTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n monthView: t('mineralui.calendarBoard.monthView', 'Month'),\n weekView: t('mineralui.calendarBoard.weekView', 'Week'),\n previousWeek: t('mineralui.calendarBoard.previousWeek', 'Previous week'),\n nextWeek: t('mineralui.calendarBoard.nextWeek', 'Next week'),\n emptyStateText: t('mineralui.calendarBoard.emptyStateText', 'No events for the selected day.'),\n timelineTitle: t('mineralui.calendarBoard.timelineTitle', 'Daily timeline'),\n timelineEmptyState: t('mineralui.calendarBoard.timelineEmptyState', 'No events in this hour.'),\n allDay: t('mineralui.calendarBoard.allDay', 'All day'),\n allDayTab: t('mineralui.calendarBoard.allDayTab', 'All day'),\n timelineTab: t('mineralui.calendarBoard.timelineTab', 'Hourly timeline'),\n itemsCount: (count) =>\n t('mineralui.calendarBoard.itemsCount', '{count} items').replace('{count}', String(count)),\n }),\n [t]\n )\n}\n\nexport function useMFileManagerTexts(): MFileManagerTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n home: t('mineralui.fileManager.home', 'Home'),\n searchPlaceholder: t('mineralui.fileManager.searchPlaceholder', 'Search in folder...'),\n emptyText: t('mineralui.fileManager.emptyText', 'This folder is empty.'),\n folders: t('mineralui.fileManager.folders', 'Folders'),\n noFoldersAvailable: t('mineralui.fileManager.noFoldersAvailable', 'No folders available.'),\n currentFolder: t('mineralui.fileManager.currentFolder', 'Current folder'),\n filteredBy: (query) =>\n t('mineralui.fileManager.filteredBy', 'Filtered by \"{query}\"').replace('{query}', query),\n listView: t('mineralui.fileManager.listView', 'List'),\n gridView: t('mineralui.fileManager.gridView', 'Grid'),\n folder: t('mineralui.fileManager.folder', 'Folder'),\n file: t('mineralui.fileManager.file', 'File'),\n preview: t('mineralui.fileManager.preview', 'Preview'),\n path: t('mineralui.fileManager.path', 'Path'),\n selectItemToInspect: t(\n 'mineralui.fileManager.selectItemToInspect',\n 'Select a file or folder to inspect its details.'\n ),\n itemsCount: (count) =>\n t('mineralui.fileManager.itemsCount', '{count} items').replace('{count}', String(count)),\n rename: t('mineralui.fileManager.rename', 'Rename'),\n moveTo: t('mineralui.fileManager.moveTo', 'Move to...'),\n delete: t('mineralui.fileManager.delete', 'Delete'),\n download: t('mineralui.fileManager.download', 'Download'),\n newFolder: t('mineralui.fileManager.newFolder', 'New folder'),\n }),\n [t]\n )\n}\n\n// Cookie-consent texts moved to @banzamel/honey in mineralui-pro 2.0.0.\n// Consumers that need to retheme cookie copy now pass `texts` directly to\n// `<CookieConsentProvider>` from `@banzamel/honey`.\n\n/** Count-bearing texts accept a `{count}` template or a function, so apps can pluralise. */\nexport type MSchedulerCountText = string | ((count: number) => string)\n\nexport interface MSchedulerTexts {\n today: string\n previous: string\n next: string\n chooseDate: string\n add: string\n viewLabel: string\n viewWeek: string\n viewDay: string\n viewMonth: string\n viewAgenda: string\n showWeekends: string\n filters: string\n filtersActive: MSchedulerCountText\n clearFilters: string\n allOption: string\n searchPlaceholder: string\n noOptions: string\n allDay: string\n more: MSchedulerCountText\n /** `{count}` and `{date}` placeholders. */\n moreAria: string\n eventCount: MSchedulerCountText\n emptyState: string\n loading: string\n now: string\n recurring: string\n cancelled: string\n conflict: string\n eventDetails: string\n eventActions: string\n close: string\n participants: MSchedulerCountText\n /** `{count}` and `{capacity}` placeholders. */\n participantsCapacity: string\n location: string\n /** `{title}` placeholder, announced on every period change. */\n periodAnnouncement: string\n /** `{date}` placeholder — label of a day-number button. */\n openDay: string\n viewTimeline: string\n /** `{view}` and `{set}` placeholders — view-menu entry of a resource set. */\n viewWithSet: string\n move: string\n resize: string\n moveInstructions: string\n /** Announced when the keyboard move mode starts in the month view. */\n moveInstructionsMonth: string\n /** Appended to the native tooltip of a draggable event. */\n dragHint: string\n /** `{title}` and `{when}` placeholders. */\n moved: string\n /** `{title}` and `{time}` placeholders. */\n resized: string\n moveRefused: string\n moveCancelled: string\n unavailable: string\n blocked: string\n /** Caption above the leader row in the event details. */\n leader: string\n /** Visible label of the \"open this day\" action in the month \"+N more\" popover. */\n openDayView: string\n /** Toolbar button shown in the day view after a drill-down from the month view. */\n backToMonth: string\n}\n\nfunction polishPlural(count: number, one: string, few: string, many: string): string {\n const mod10 = count % 10\n const mod100 = count % 100\n if (count === 1) {\n return one\n }\n if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) {\n return few\n }\n return many\n}\n\nexport const mineralSchedulerTextsEn: MSchedulerTexts = {\n today: 'Today',\n previous: 'Previous period',\n next: 'Next period',\n chooseDate: 'Choose date',\n add: 'Add',\n viewLabel: 'View',\n viewWeek: 'Week',\n viewDay: 'Day',\n viewMonth: 'Month',\n viewAgenda: 'Agenda',\n showWeekends: 'Show weekends',\n filters: 'Filters',\n filtersActive: 'Filters ({count})',\n clearFilters: 'Clear filters',\n allOption: 'All',\n searchPlaceholder: 'Search…',\n noOptions: 'No results',\n allDay: 'All day',\n more: '+{count} more',\n moreAria: 'Show {count} more events on {date}',\n eventCount: (count) => (count === 1 ? '1 event' : `${count} events`),\n emptyState: 'No events to display',\n loading: 'Loading events',\n now: 'Now',\n recurring: 'Recurring',\n cancelled: 'Cancelled',\n conflict: 'Conflict',\n eventDetails: 'Event details',\n eventActions: 'Event actions',\n close: 'Close',\n participants: 'Participants ({count})',\n participantsCapacity: 'Participants ({count} / {capacity})',\n location: 'Location',\n periodAnnouncement: '{title}',\n openDay: 'Open {date}',\n viewTimeline: 'Timeline',\n viewWithSet: '{view} – {set}',\n move: 'Move',\n resize: 'Resize',\n moveInstructions: 'Arrows move, Shift+arrows move by an hour, Enter drops, Escape cancels.',\n moveInstructionsMonth: 'Left and right arrows move by a day, up and down by a week, Enter drops, Escape cancels.',\n dragHint: 'Drag to move',\n moved: '{title} moved to {when}',\n resized: '{title} now ends at {time}',\n moveRefused: 'Cannot move here',\n moveCancelled: 'Move cancelled',\n unavailable: 'Unavailable',\n blocked: 'Blocked',\n leader: 'Leader',\n openDayView: 'Open day',\n backToMonth: 'Back to month',\n}\n\nexport const mineralSchedulerTextsPl: MSchedulerTexts = {\n today: 'Dzisiaj',\n previous: 'Poprzedni okres',\n next: 'Następny okres',\n chooseDate: 'Wybierz datę',\n add: 'Dodaj',\n viewLabel: 'Widok',\n viewWeek: 'Tydzień',\n viewDay: 'Dzień',\n viewMonth: 'Miesiąc',\n viewAgenda: 'Lista',\n showWeekends: 'Pokaż weekendy',\n filters: 'Filtry',\n filtersActive: 'Filtry ({count})',\n clearFilters: 'Wyczyść filtry',\n allOption: 'Wszystkie',\n searchPlaceholder: 'Szukaj…',\n noOptions: 'Brak wyników',\n allDay: 'Cały dzień',\n more: '+{count} więcej',\n moreAria: 'Pokaż {count} więcej wydarzeń w dniu {date}',\n eventCount: (count) => `${count} ${polishPlural(count, 'wydarzenie', 'wydarzenia', 'wydarzeń')}`,\n emptyState: 'Brak wydarzeń do wyświetlenia',\n loading: 'Wczytywanie wydarzeń',\n now: 'Teraz',\n recurring: 'Cykliczne',\n cancelled: 'Odwołane',\n conflict: 'Konflikt',\n eventDetails: 'Szczegóły wydarzenia',\n eventActions: 'Akcje wydarzenia',\n close: 'Zamknij',\n participants: 'Uczestnicy ({count})',\n participantsCapacity: 'Uczestnicy ({count} / {capacity})',\n location: 'Miejsce',\n periodAnnouncement: '{title}',\n openDay: 'Otwórz {date}',\n viewTimeline: 'Oś czasu',\n viewWithSet: '{view} – {set}',\n move: 'Przenieś',\n resize: 'Zmień długość',\n moveInstructions: 'Strzałki przesuwają, Shift+strzałki o godzinę, Enter upuszcza, Escape anuluje.',\n moveInstructionsMonth:\n 'Strzałki w lewo i w prawo przesuwają o dzień, w górę i w dół o tydzień, Enter upuszcza, Escape anuluje.',\n dragHint: 'Przeciągnij, aby przenieść',\n moved: '{title} przeniesiono na {when}',\n resized: '{title} kończy się o {time}',\n moveRefused: 'Nie można tu przenieść',\n moveCancelled: 'Anulowano przenoszenie',\n unavailable: 'Niedostępne',\n blocked: 'Zablokowane',\n leader: 'Prowadzący',\n openDayView: 'Otwórz dzień',\n backToMonth: 'Wróć do miesiąca',\n}\n\n/** Fills `{name}` placeholders. */\nexport function formatMText(template: string, values: Record<string, string | number>): string {\n return template.replace(/\\{(\\w+)\\}/g, (match, key: string) => (key in values ? String(values[key]) : match))\n}\n\n/** Resolves a count text (template or function) for `count`. */\nexport function formatMCountText(text: MSchedulerCountText, count: number): string {\n return typeof text === 'function' ? text(count) : formatMText(text, {count})\n}\n\nfunction isPolishLocale(locale?: string): boolean {\n return Boolean(locale && locale.toLowerCase().startsWith('pl'))\n}\n\n/**\n * Scheduler texts. Resolution per key: `overrides` → MI18nProvider key\n * `mineralui.scheduler.<key>` → built-in default for `locale` (Polish or English).\n */\nexport function useMSchedulerTexts(locale?: string, overrides?: Partial<MSchedulerTexts>): MSchedulerTexts {\n const t = useTranslate()\n\n return useMemo(() => {\n const defaults = isPolishLocale(locale) ? mineralSchedulerTextsPl : mineralSchedulerTextsEn\n const resolved = {} as Record<keyof MSchedulerTexts, MSchedulerTexts[keyof MSchedulerTexts]>\n ;(Object.keys(defaults) as Array<keyof MSchedulerTexts>).forEach((key) => {\n const override = overrides?.[key]\n if (override !== undefined) {\n resolved[key] = override\n return\n }\n const fallback = defaults[key]\n const i18nKey = `mineralui.scheduler.${key}`\n const translated = t(i18nKey, typeof fallback === 'string' ? fallback : i18nKey)\n resolved[key] = typeof fallback === 'function' && translated === i18nKey ? fallback : translated\n })\n return resolved as MSchedulerTexts\n }, [t, locale, overrides])\n}\n\nexport interface MMiniCalendarTexts {\n previousMonth: string\n nextMonth: string\n}\n\nexport function useMMiniCalendarTexts(locale?: string, overrides?: Partial<MMiniCalendarTexts>): MMiniCalendarTexts {\n const t = useTranslate()\n\n return useMemo(() => {\n const polish = isPolishLocale(locale)\n return {\n previousMonth:\n overrides?.previousMonth ??\n t('mineralui.miniCalendar.previousMonth', polish ? 'Poprzedni miesiąc' : 'Previous month'),\n nextMonth:\n overrides?.nextMonth ??\n t('mineralui.miniCalendar.nextMonth', polish ? 'Następny miesiąc' : 'Next month'),\n }\n }, [t, locale, overrides])\n}\n\nexport interface MWeekGridTexts {\n /** Legend scale text. Placeholders: `{min}`, `{max}`, `{unit}` (with a leading space when set). */\n scale: string\n /** Default density-band labels, lowest to highest. */\n bands: [string, string, string, string]\n /** Accessible name of an interactive cell. Placeholders: `{day}`, `{slot}`, `{value}`. */\n cellLabel: string\n}\n\n/**\n * MWeekGrid texts. Resolution per key: MI18nProvider key `mineralui.weekGrid.<key>`\n * (bands: `mineralui.weekGrid.bands.none|few|some|many`) → built-in English default.\n */\nexport function useMWeekGridTexts(): MWeekGridTexts {\n const t = useTranslate()\n\n return useMemo(\n () => ({\n scale: t('mineralui.weekGrid.scale', 'Scale: {min} — {max}{unit}'),\n bands: [\n t('mineralui.weekGrid.bands.none', 'None'),\n t('mineralui.weekGrid.bands.few', 'Few'),\n t('mineralui.weekGrid.bands.some', 'Some'),\n t('mineralui.weekGrid.bands.many', 'Many'),\n ],\n cellLabel: t('mineralui.weekGrid.cellLabel', '{day} {slot}: {value}'),\n }),\n [t]\n )\n}\n"],"mappings":"sGAGA,SAAS,GAAe,CACpB,IAAM,EAAO,EAAA,GAAkB,CAE/B,OAAA,EAAA,EAAA,cAAoB,EAAa,IAAqB,GAAM,EAAE,EAAK,EAAS,EAAI,EAAU,CAAC,EAAK,CAAC,CAkErG,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,CA+PL,SAAgB,EAAY,EAAkB,EAAiD,CAC3F,OAAO,EAAS,QAAQ,cAAe,EAAO,IAAiB,KAAO,EAAS,OAAO,EAAO,GAAK,CAAG,EAAO,CAQhH,SAAS,EAAe,EAA0B,CAC9C,MAAO,GAAQ,GAAU,EAAO,aAAa,CAAC,WAAW,KAAK,EAiClE,SAAgB,EAAsB,EAAiB,EAA6D,CAChH,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,aAAqB,CACjB,IAAM,EAAS,EAAe,EAAO,CACrC,MAAO,CACH,cACI,GAAW,eACX,EAAE,uCAAwC,EAAS,oBAAsB,iBAAiB,CAC9F,UACI,GAAW,WACX,EAAE,mCAAoC,EAAS,mBAAqB,aAAa,CACxF,EACF,CAAC,EAAG,EAAQ,EAAU,CAAC,CAgB9B,SAAgB,GAAoC,CAChD,IAAM,EAAI,GAAc,CAExB,OAAA,EAAA,EAAA,cACW,CACH,MAAO,EAAE,2BAA4B,6BAA6B,CAClE,MAAO,CACH,EAAE,gCAAiC,OAAO,CAC1C,EAAE,+BAAgC,MAAM,CACxC,EAAE,gCAAiC,OAAO,CAC1C,EAAE,gCAAiC,OAAO,CAC7C,CACD,UAAW,EAAE,+BAAgC,wBAAwB,CACxE,EACD,CAAC,EAAE,CACN"}
@@ -61,3 +61,99 @@ export declare function useMDatePickerTexts(): MDatePickerTexts;
61
61
  export declare function useMDateRangePickerTexts(): MDateRangePickerTexts;
62
62
  export declare function useMCalendarBoardTexts(): MCalendarBoardTexts;
63
63
  export declare function useMFileManagerTexts(): MFileManagerTexts;
64
+ /** Count-bearing texts accept a `{count}` template or a function, so apps can pluralise. */
65
+ export type MSchedulerCountText = string | ((count: number) => string);
66
+ export interface MSchedulerTexts {
67
+ today: string;
68
+ previous: string;
69
+ next: string;
70
+ chooseDate: string;
71
+ add: string;
72
+ viewLabel: string;
73
+ viewWeek: string;
74
+ viewDay: string;
75
+ viewMonth: string;
76
+ viewAgenda: string;
77
+ showWeekends: string;
78
+ filters: string;
79
+ filtersActive: MSchedulerCountText;
80
+ clearFilters: string;
81
+ allOption: string;
82
+ searchPlaceholder: string;
83
+ noOptions: string;
84
+ allDay: string;
85
+ more: MSchedulerCountText;
86
+ /** `{count}` and `{date}` placeholders. */
87
+ moreAria: string;
88
+ eventCount: MSchedulerCountText;
89
+ emptyState: string;
90
+ loading: string;
91
+ now: string;
92
+ recurring: string;
93
+ cancelled: string;
94
+ conflict: string;
95
+ eventDetails: string;
96
+ eventActions: string;
97
+ close: string;
98
+ participants: MSchedulerCountText;
99
+ /** `{count}` and `{capacity}` placeholders. */
100
+ participantsCapacity: string;
101
+ location: string;
102
+ /** `{title}` placeholder, announced on every period change. */
103
+ periodAnnouncement: string;
104
+ /** `{date}` placeholder — label of a day-number button. */
105
+ openDay: string;
106
+ viewTimeline: string;
107
+ /** `{view}` and `{set}` placeholders — view-menu entry of a resource set. */
108
+ viewWithSet: string;
109
+ move: string;
110
+ resize: string;
111
+ moveInstructions: string;
112
+ /** Announced when the keyboard move mode starts in the month view. */
113
+ moveInstructionsMonth: string;
114
+ /** Appended to the native tooltip of a draggable event. */
115
+ dragHint: string;
116
+ /** `{title}` and `{when}` placeholders. */
117
+ moved: string;
118
+ /** `{title}` and `{time}` placeholders. */
119
+ resized: string;
120
+ moveRefused: string;
121
+ moveCancelled: string;
122
+ unavailable: string;
123
+ blocked: string;
124
+ /** Caption above the leader row in the event details. */
125
+ leader: string;
126
+ /** Visible label of the "open this day" action in the month "+N more" popover. */
127
+ openDayView: string;
128
+ /** Toolbar button shown in the day view after a drill-down from the month view. */
129
+ backToMonth: string;
130
+ }
131
+ export declare const mineralSchedulerTextsEn: MSchedulerTexts;
132
+ export declare const mineralSchedulerTextsPl: MSchedulerTexts;
133
+ /** Fills `{name}` placeholders. */
134
+ export declare function formatMText(template: string, values: Record<string, string | number>): string;
135
+ /** Resolves a count text (template or function) for `count`. */
136
+ export declare function formatMCountText(text: MSchedulerCountText, count: number): string;
137
+ /**
138
+ * Scheduler texts. Resolution per key: `overrides` → MI18nProvider key
139
+ * `mineralui.scheduler.<key>` → built-in default for `locale` (Polish or English).
140
+ */
141
+ export declare function useMSchedulerTexts(locale?: string, overrides?: Partial<MSchedulerTexts>): MSchedulerTexts;
142
+ export interface MMiniCalendarTexts {
143
+ previousMonth: string;
144
+ nextMonth: string;
145
+ }
146
+ export declare function useMMiniCalendarTexts(locale?: string, overrides?: Partial<MMiniCalendarTexts>): MMiniCalendarTexts;
147
+ export interface MWeekGridTexts {
148
+ /** Legend scale text. Placeholders: `{min}`, `{max}`, `{unit}` (with a leading space when set). */
149
+ scale: string;
150
+ /** Default density-band labels, lowest to highest. */
151
+ bands: [string, string, string, string];
152
+ /** Accessible name of an interactive cell. Placeholders: `{day}`, `{slot}`, `{value}`. */
153
+ cellLabel: string;
154
+ }
155
+ /**
156
+ * MWeekGrid texts. Resolution per key: MI18nProvider key `mineralui.weekGrid.<key>`
157
+ * (bands: `mineralui.weekGrid.bands.none|few|some|many`) → built-in English default.
158
+ */
159
+ export declare function useMWeekGridTexts(): MWeekGridTexts;
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-Cg-vxV6j.cjs`);exports.MI18nProvider=e.t,exports.useMI18n=e.n;
3
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./MI18nProvider-DXRbB0VY.cjs`);exports.MI18nProvider=e.t,exports.useMI18n=e.n;