@datatechsolutions/tympan 0.3.0

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 (567) hide show
  1. package/LICENSE +105 -0
  2. package/README.md +361 -0
  3. package/THIRD_PARTY_NOTICES.md +180 -0
  4. package/dist/Avatar-BwVXK1gt.d.ts +37 -0
  5. package/dist/Avatar-P14MVkK1.js +2815 -0
  6. package/dist/Avatar-P14MVkK1.js.map +1 -0
  7. package/dist/avatars.d.ts +130 -0
  8. package/dist/avatars.js +531 -0
  9. package/dist/avatars.js.map +1 -0
  10. package/dist/cx-Bn-0YiVq.js +10 -0
  11. package/dist/cx-Bn-0YiVq.js.map +1 -0
  12. package/dist/flags/1x1/ad-BLe4yr61.js +6 -0
  13. package/dist/flags/1x1/ae-DWj10f_-.js +6 -0
  14. package/dist/flags/1x1/af-DavbPdY_.js +6 -0
  15. package/dist/flags/1x1/ag-CQgo5awT.js +6 -0
  16. package/dist/flags/1x1/ai-i1e-tRb-.js +6 -0
  17. package/dist/flags/1x1/al-BUFgcw5S.js +6 -0
  18. package/dist/flags/1x1/am-NU473ju2.js +6 -0
  19. package/dist/flags/1x1/ao-B-pKKU_Z.js +6 -0
  20. package/dist/flags/1x1/aq-BheU24WX.js +6 -0
  21. package/dist/flags/1x1/ar-DNwRSqYh.js +6 -0
  22. package/dist/flags/1x1/arab-88qGIYv0.js +6 -0
  23. package/dist/flags/1x1/as-CGCC07cj.js +6 -0
  24. package/dist/flags/1x1/asean-DdlmT25h.js +6 -0
  25. package/dist/flags/1x1/at-BEu8eDs7.js +6 -0
  26. package/dist/flags/1x1/au-C5Xq8bGD.js +6 -0
  27. package/dist/flags/1x1/aw-CB9G0R84.js +6 -0
  28. package/dist/flags/1x1/ax-Buob1nIg.js +6 -0
  29. package/dist/flags/1x1/az-CcVicXqN.js +6 -0
  30. package/dist/flags/1x1/ba-Cxm2rPWt.js +6 -0
  31. package/dist/flags/1x1/bb-CelcvA2P.js +6 -0
  32. package/dist/flags/1x1/bd-CZOnB2bt.js +6 -0
  33. package/dist/flags/1x1/be-BeSuVKmy.js +6 -0
  34. package/dist/flags/1x1/bf-DCR3ADbo.js +6 -0
  35. package/dist/flags/1x1/bg-DT2du0bc.js +6 -0
  36. package/dist/flags/1x1/bh-C20nQ3k2.js +6 -0
  37. package/dist/flags/1x1/bi-DV69kx68.js +6 -0
  38. package/dist/flags/1x1/bj-Cd_6yaxw.js +6 -0
  39. package/dist/flags/1x1/bl-TaG2WuKM.js +6 -0
  40. package/dist/flags/1x1/bm-Blnd9QyE.js +6 -0
  41. package/dist/flags/1x1/bn-rjF94qbn.js +6 -0
  42. package/dist/flags/1x1/bo-DDdGwBdI.js +6 -0
  43. package/dist/flags/1x1/bq-B5WRxpfU.js +6 -0
  44. package/dist/flags/1x1/br-bpueSDua.js +6 -0
  45. package/dist/flags/1x1/bs-CEEd020S.js +6 -0
  46. package/dist/flags/1x1/bt-JCokd5Ri.js +6 -0
  47. package/dist/flags/1x1/bv-VkQe2kr4.js +6 -0
  48. package/dist/flags/1x1/bw-FyQwptO9.js +6 -0
  49. package/dist/flags/1x1/by-D-0OPUI_.js +6 -0
  50. package/dist/flags/1x1/bz-R83MH-fy.js +6 -0
  51. package/dist/flags/1x1/ca-CmGq-ESK.js +6 -0
  52. package/dist/flags/1x1/cc-BqKVdIBU.js +6 -0
  53. package/dist/flags/1x1/cd-OeN90lUp.js +6 -0
  54. package/dist/flags/1x1/cefta-DoN3C1FP.js +6 -0
  55. package/dist/flags/1x1/cf-c_IWvoMt.js +6 -0
  56. package/dist/flags/1x1/cg-DB6A28kr.js +6 -0
  57. package/dist/flags/1x1/ch-BoUeVhR3.js +6 -0
  58. package/dist/flags/1x1/ci-DO7X3pCD.js +6 -0
  59. package/dist/flags/1x1/ck-DbhiimVc.js +6 -0
  60. package/dist/flags/1x1/cl-D18TvDyU.js +6 -0
  61. package/dist/flags/1x1/cm-BkkRG54s.js +6 -0
  62. package/dist/flags/1x1/cn-DXW0Zc-C.js +6 -0
  63. package/dist/flags/1x1/co-Cy9H7OxQ.js +6 -0
  64. package/dist/flags/1x1/cp-OJP4OSI_.js +6 -0
  65. package/dist/flags/1x1/cr-DjqO_sqT.js +6 -0
  66. package/dist/flags/1x1/cu-DHMTbgXc.js +6 -0
  67. package/dist/flags/1x1/cv-DTvqMV9p.js +6 -0
  68. package/dist/flags/1x1/cw-0DPof2UJ.js +6 -0
  69. package/dist/flags/1x1/cx-PKvWuYvr.js +6 -0
  70. package/dist/flags/1x1/cy-DNqBiZyI.js +6 -0
  71. package/dist/flags/1x1/cz-yXbpq9dW.js +6 -0
  72. package/dist/flags/1x1/de-C8riQ_D-.js +6 -0
  73. package/dist/flags/1x1/dg-Bq-Ud7da.js +6 -0
  74. package/dist/flags/1x1/dj-ND_VVEYo.js +6 -0
  75. package/dist/flags/1x1/dk-Bomd7YHA.js +6 -0
  76. package/dist/flags/1x1/dm-qszJkHRv.js +6 -0
  77. package/dist/flags/1x1/do-Bv0isgHk.js +6 -0
  78. package/dist/flags/1x1/dz-CUA3AvZL.js +6 -0
  79. package/dist/flags/1x1/eac-Ba3w7XxY.js +6 -0
  80. package/dist/flags/1x1/ec-CcdQ1fLf.js +6 -0
  81. package/dist/flags/1x1/ee-B-9UyJkI.js +6 -0
  82. package/dist/flags/1x1/eg-CZg9XtnS.js +6 -0
  83. package/dist/flags/1x1/eh-COr5bQZC.js +6 -0
  84. package/dist/flags/1x1/er-CYCgUEjl.js +6 -0
  85. package/dist/flags/1x1/es-CZgLUvTm.js +6 -0
  86. package/dist/flags/1x1/es-ct-Bx84VtrH.js +6 -0
  87. package/dist/flags/1x1/es-ga-CYZIqZNg.js +6 -0
  88. package/dist/flags/1x1/es-pv-D_xA9FJj.js +6 -0
  89. package/dist/flags/1x1/et-7yKufKNW.js +6 -0
  90. package/dist/flags/1x1/eu-CkGTFKZG.js +6 -0
  91. package/dist/flags/1x1/fi-PhiA7TSZ.js +6 -0
  92. package/dist/flags/1x1/fj-D5HT3L1Q.js +6 -0
  93. package/dist/flags/1x1/fk-D1r8PWRL.js +6 -0
  94. package/dist/flags/1x1/fm-DzWMFpux.js +6 -0
  95. package/dist/flags/1x1/fo-Bu22hwIJ.js +6 -0
  96. package/dist/flags/1x1/fr-DSs3a2MO.js +6 -0
  97. package/dist/flags/1x1/ga-DYufGjqh.js +6 -0
  98. package/dist/flags/1x1/gb-DQrKw26J.js +6 -0
  99. package/dist/flags/1x1/gb-eng-CLG2z7wM.js +6 -0
  100. package/dist/flags/1x1/gb-nir-BBzZa87S.js +6 -0
  101. package/dist/flags/1x1/gb-sct-C0keZmXy.js +6 -0
  102. package/dist/flags/1x1/gb-wls-D2caXmYS.js +6 -0
  103. package/dist/flags/1x1/gd-B-wv-GsF.js +6 -0
  104. package/dist/flags/1x1/ge-CIgkNaAi.js +6 -0
  105. package/dist/flags/1x1/gf-CcFRsGEB.js +6 -0
  106. package/dist/flags/1x1/gg-CRVhi7RS.js +6 -0
  107. package/dist/flags/1x1/gh-ZIIas1gx.js +6 -0
  108. package/dist/flags/1x1/gi-aNP9A0DW.js +6 -0
  109. package/dist/flags/1x1/gl-BzgDzfSn.js +6 -0
  110. package/dist/flags/1x1/gm-D8gqU6yg.js +6 -0
  111. package/dist/flags/1x1/gn-CUq13_pA.js +6 -0
  112. package/dist/flags/1x1/gp-CccqVUWo.js +6 -0
  113. package/dist/flags/1x1/gq-NOK-yjB9.js +6 -0
  114. package/dist/flags/1x1/gr-BuFzOeZR.js +6 -0
  115. package/dist/flags/1x1/gs-BTz9XWE1.js +6 -0
  116. package/dist/flags/1x1/gt-9_0vebb7.js +6 -0
  117. package/dist/flags/1x1/gu-BYwEbw67.js +6 -0
  118. package/dist/flags/1x1/gw-C6MASvA4.js +6 -0
  119. package/dist/flags/1x1/gy-CVJynGMI.js +6 -0
  120. package/dist/flags/1x1/hk-BK85zxRX.js +6 -0
  121. package/dist/flags/1x1/hm-C2DNwCnS.js +6 -0
  122. package/dist/flags/1x1/hn-CovnHmxi.js +6 -0
  123. package/dist/flags/1x1/hr-Xiutii4P.js +6 -0
  124. package/dist/flags/1x1/ht-BW7wprT-.js +6 -0
  125. package/dist/flags/1x1/hu-CYCcM7tq.js +6 -0
  126. package/dist/flags/1x1/ic-D4t41hrd.js +6 -0
  127. package/dist/flags/1x1/id-Ch177K4Q.js +6 -0
  128. package/dist/flags/1x1/ie-jdf-in47.js +6 -0
  129. package/dist/flags/1x1/il-CWEqhQTm.js +6 -0
  130. package/dist/flags/1x1/im-DpubIP14.js +6 -0
  131. package/dist/flags/1x1/in-G0wDC92n.js +6 -0
  132. package/dist/flags/1x1/io-DBkbcbKG.js +6 -0
  133. package/dist/flags/1x1/iq-B0897GsN.js +6 -0
  134. package/dist/flags/1x1/ir-Decsonvj.js +6 -0
  135. package/dist/flags/1x1/is-yn_GGMix.js +6 -0
  136. package/dist/flags/1x1/it-CzpFdgc2.js +6 -0
  137. package/dist/flags/1x1/je-DXwHIhBp.js +6 -0
  138. package/dist/flags/1x1/jm-ByvGfY6R.js +6 -0
  139. package/dist/flags/1x1/jo-Bikg0_s4.js +6 -0
  140. package/dist/flags/1x1/jp-BJaExao-.js +6 -0
  141. package/dist/flags/1x1/ke-KCANUoB9.js +6 -0
  142. package/dist/flags/1x1/kg-DpLGJA_E.js +6 -0
  143. package/dist/flags/1x1/kh-B1cMsgzP.js +6 -0
  144. package/dist/flags/1x1/ki-CyD2gdcT.js +6 -0
  145. package/dist/flags/1x1/km-53bL6Y8i.js +6 -0
  146. package/dist/flags/1x1/kn-BEyi33Ey.js +6 -0
  147. package/dist/flags/1x1/kp-YyqYNIfr.js +6 -0
  148. package/dist/flags/1x1/kr-C6fy0Xrq.js +6 -0
  149. package/dist/flags/1x1/kw-CTe0WExz.js +6 -0
  150. package/dist/flags/1x1/ky-FVDALRC1.js +6 -0
  151. package/dist/flags/1x1/kz-ByrgvZkC.js +6 -0
  152. package/dist/flags/1x1/la-xaxFHwKj.js +6 -0
  153. package/dist/flags/1x1/lb-CVRf8x3C.js +6 -0
  154. package/dist/flags/1x1/lc-DggZ-MAM.js +6 -0
  155. package/dist/flags/1x1/li-BjKARW5X.js +6 -0
  156. package/dist/flags/1x1/lk-DKp1FG25.js +6 -0
  157. package/dist/flags/1x1/lr-CRdeQLZp.js +6 -0
  158. package/dist/flags/1x1/ls-DsmPxnLE.js +6 -0
  159. package/dist/flags/1x1/lt-ppTAzYgZ.js +6 -0
  160. package/dist/flags/1x1/lu-Uh-VRqcJ.js +6 -0
  161. package/dist/flags/1x1/lv-QLDxm2XB.js +6 -0
  162. package/dist/flags/1x1/ly-CALXfGtF.js +6 -0
  163. package/dist/flags/1x1/ma-BUv6slh8.js +6 -0
  164. package/dist/flags/1x1/mc-DbRaSw7Z.js +6 -0
  165. package/dist/flags/1x1/md-BAbGk1u-.js +6 -0
  166. package/dist/flags/1x1/me-Cn9otM5-.js +6 -0
  167. package/dist/flags/1x1/mf-VN2Hxfy5.js +6 -0
  168. package/dist/flags/1x1/mg-DMFg3gWK.js +6 -0
  169. package/dist/flags/1x1/mh-mLFhHPfv.js +6 -0
  170. package/dist/flags/1x1/mk-BYU_KcQn.js +6 -0
  171. package/dist/flags/1x1/ml-CxUloBPA.js +6 -0
  172. package/dist/flags/1x1/mm-B1GvkWeA.js +6 -0
  173. package/dist/flags/1x1/mn-CGxIncf0.js +6 -0
  174. package/dist/flags/1x1/mo-mVFWphva.js +6 -0
  175. package/dist/flags/1x1/mp-n86_oaVp.js +6 -0
  176. package/dist/flags/1x1/mq-BKYfdZ6x.js +6 -0
  177. package/dist/flags/1x1/mr-fpb5SDjH.js +6 -0
  178. package/dist/flags/1x1/ms-DJ2RoBuC.js +6 -0
  179. package/dist/flags/1x1/mt-DRCD8PbR.js +6 -0
  180. package/dist/flags/1x1/mu-DIwBWq5I.js +6 -0
  181. package/dist/flags/1x1/mv-BMA6eE3m.js +6 -0
  182. package/dist/flags/1x1/mw-Ebs1mO8O.js +6 -0
  183. package/dist/flags/1x1/mx-BH8Za6dt.js +6 -0
  184. package/dist/flags/1x1/my-fd4tKRXC.js +6 -0
  185. package/dist/flags/1x1/mz-44mCvMzP.js +6 -0
  186. package/dist/flags/1x1/na-Bc17qIOR.js +6 -0
  187. package/dist/flags/1x1/nc-BEiZyZM6.js +6 -0
  188. package/dist/flags/1x1/ne-3wSQFOSk.js +6 -0
  189. package/dist/flags/1x1/nf-BBG5Bp7Y.js +6 -0
  190. package/dist/flags/1x1/ng-BQyiUScm.js +6 -0
  191. package/dist/flags/1x1/ni-CZP_RJzQ.js +6 -0
  192. package/dist/flags/1x1/nl-Dod3207s.js +6 -0
  193. package/dist/flags/1x1/no-DDekGkfu.js +6 -0
  194. package/dist/flags/1x1/np-DMopwWij.js +6 -0
  195. package/dist/flags/1x1/nr-nDPYj76A.js +6 -0
  196. package/dist/flags/1x1/nu-DEw3csOK.js +6 -0
  197. package/dist/flags/1x1/nz-CxrPsIb1.js +6 -0
  198. package/dist/flags/1x1/om-CyVvqtLi.js +6 -0
  199. package/dist/flags/1x1/pa-BO-gt67V.js +6 -0
  200. package/dist/flags/1x1/pc-CBmqnctk.js +6 -0
  201. package/dist/flags/1x1/pe-B9LhqS9S.js +6 -0
  202. package/dist/flags/1x1/pf-hjhdLHA3.js +6 -0
  203. package/dist/flags/1x1/pg-C-wKaAj0.js +6 -0
  204. package/dist/flags/1x1/ph-C9JTsx92.js +6 -0
  205. package/dist/flags/1x1/pk-DrN39bQT.js +6 -0
  206. package/dist/flags/1x1/pl-CrEpBNNE.js +6 -0
  207. package/dist/flags/1x1/pm-Btdxx1lW.js +6 -0
  208. package/dist/flags/1x1/pn-DzqRGCQA.js +6 -0
  209. package/dist/flags/1x1/pr-U6tnqx1t.js +6 -0
  210. package/dist/flags/1x1/ps-DHIlPg16.js +6 -0
  211. package/dist/flags/1x1/pt-Cj6X3TbL.js +6 -0
  212. package/dist/flags/1x1/pw-UpjwxQ0z.js +6 -0
  213. package/dist/flags/1x1/py-Cn2qwuG7.js +6 -0
  214. package/dist/flags/1x1/qa-Biuy4UWu.js +6 -0
  215. package/dist/flags/1x1/re-B25_JOkL.js +6 -0
  216. package/dist/flags/1x1/ro-B9VO8uV5.js +6 -0
  217. package/dist/flags/1x1/rs-CS2zrjg3.js +6 -0
  218. package/dist/flags/1x1/ru-7-OkapKW.js +6 -0
  219. package/dist/flags/1x1/rw-COm3RNUj.js +6 -0
  220. package/dist/flags/1x1/sa-DhosoqBh.js +6 -0
  221. package/dist/flags/1x1/sb-dEOdp0-U.js +6 -0
  222. package/dist/flags/1x1/sc-DH5lZ-X1.js +6 -0
  223. package/dist/flags/1x1/sd-CjLepWrS.js +6 -0
  224. package/dist/flags/1x1/se-fjKCg3uq.js +6 -0
  225. package/dist/flags/1x1/sg-CvvPJuek.js +6 -0
  226. package/dist/flags/1x1/sh-BACbCuQV.js +6 -0
  227. package/dist/flags/1x1/sh-ac-B8mGy82J.js +6 -0
  228. package/dist/flags/1x1/sh-hl-CdNllvu3.js +6 -0
  229. package/dist/flags/1x1/sh-ta-BpzAidVW.js +6 -0
  230. package/dist/flags/1x1/si-C9wDaOie.js +6 -0
  231. package/dist/flags/1x1/sj-DmQ-l-GG.js +6 -0
  232. package/dist/flags/1x1/sk-csj-UEpd.js +6 -0
  233. package/dist/flags/1x1/sl-66khImvm.js +6 -0
  234. package/dist/flags/1x1/sm-Dw-fwny-.js +6 -0
  235. package/dist/flags/1x1/sn-DFOPTJuS.js +6 -0
  236. package/dist/flags/1x1/so-NmeQT-wa.js +6 -0
  237. package/dist/flags/1x1/sr-DY7R8R1H.js +6 -0
  238. package/dist/flags/1x1/ss-BRaIhTBI.js +6 -0
  239. package/dist/flags/1x1/st-DbWpIgL_.js +6 -0
  240. package/dist/flags/1x1/sv-CCR1P023.js +6 -0
  241. package/dist/flags/1x1/sx-Dqve8sOF.js +6 -0
  242. package/dist/flags/1x1/sy-uUGakD8a.js +6 -0
  243. package/dist/flags/1x1/sz-DnPvNXRi.js +6 -0
  244. package/dist/flags/1x1/tc-sWa0Hka-.js +6 -0
  245. package/dist/flags/1x1/td-BH8NEKMZ.js +6 -0
  246. package/dist/flags/1x1/tf-DGr1cSmp.js +6 -0
  247. package/dist/flags/1x1/tg-CzXZhjV5.js +6 -0
  248. package/dist/flags/1x1/th-Bd7yXeo8.js +6 -0
  249. package/dist/flags/1x1/tj-BXE2hU6d.js +6 -0
  250. package/dist/flags/1x1/tk-BvAJwB5n.js +6 -0
  251. package/dist/flags/1x1/tl-Cf7eXtjJ.js +6 -0
  252. package/dist/flags/1x1/tm-C8XHem7_.js +6 -0
  253. package/dist/flags/1x1/tn-A574RUnc.js +6 -0
  254. package/dist/flags/1x1/to-rZfgCO86.js +6 -0
  255. package/dist/flags/1x1/tr-DRqxGnLc.js +6 -0
  256. package/dist/flags/1x1/tt-BciLQvVK.js +6 -0
  257. package/dist/flags/1x1/tv-DLgi8rdd.js +6 -0
  258. package/dist/flags/1x1/tw-BcCRKYqW.js +6 -0
  259. package/dist/flags/1x1/tz-BjDpP6SA.js +6 -0
  260. package/dist/flags/1x1/ua-DPOXiMzw.js +6 -0
  261. package/dist/flags/1x1/ug-C0vrxL4F.js +6 -0
  262. package/dist/flags/1x1/um-DqpOJgNl.js +6 -0
  263. package/dist/flags/1x1/un-Bk0wLUvy.js +6 -0
  264. package/dist/flags/1x1/us-f-Xdfkne.js +6 -0
  265. package/dist/flags/1x1/uy-BrUGNLWK.js +6 -0
  266. package/dist/flags/1x1/uz-BKDQBNxr.js +6 -0
  267. package/dist/flags/1x1/va-BderRROs.js +6 -0
  268. package/dist/flags/1x1/vc-DPo9h-3V.js +6 -0
  269. package/dist/flags/1x1/ve-DrDTrDyq.js +6 -0
  270. package/dist/flags/1x1/vg-DxocsseP.js +6 -0
  271. package/dist/flags/1x1/vi-DsQ40wwi.js +6 -0
  272. package/dist/flags/1x1/vn-YEvgXi4o.js +6 -0
  273. package/dist/flags/1x1/vu-Dy0sZ3Ly.js +6 -0
  274. package/dist/flags/1x1/wf-BZfYe7wF.js +6 -0
  275. package/dist/flags/1x1/ws-C4FYzmn6.js +6 -0
  276. package/dist/flags/1x1/xk-DZFilPCh.js +6 -0
  277. package/dist/flags/1x1/xx-0UytpHfL.js +6 -0
  278. package/dist/flags/1x1/ye-CZMZu1ZB.js +6 -0
  279. package/dist/flags/1x1/yt-DBYDbgIm.js +6 -0
  280. package/dist/flags/1x1/za-ClvA8Dny.js +6 -0
  281. package/dist/flags/1x1/zm-D7L0dPCl.js +6 -0
  282. package/dist/flags/1x1/zw-DpCNoBk-.js +6 -0
  283. package/dist/flags/4x3/ad-BwDf_AgT.js +6 -0
  284. package/dist/flags/4x3/ae-KPB0rRvk.js +6 -0
  285. package/dist/flags/4x3/af-CPngQm7Z.js +6 -0
  286. package/dist/flags/4x3/ag-Cvrhc-BK.js +6 -0
  287. package/dist/flags/4x3/ai-Dex-oYnB.js +6 -0
  288. package/dist/flags/4x3/al-C2rnSjJ-.js +6 -0
  289. package/dist/flags/4x3/am-u91DPBsf.js +6 -0
  290. package/dist/flags/4x3/ao-B0AdkYiM.js +6 -0
  291. package/dist/flags/4x3/aq-5iFhwg5i.js +6 -0
  292. package/dist/flags/4x3/ar-BLK5U8Sr.js +6 -0
  293. package/dist/flags/4x3/arab-zVkSqGyE.js +6 -0
  294. package/dist/flags/4x3/as-CgVHGYml.js +6 -0
  295. package/dist/flags/4x3/asean-D0zehsSg.js +6 -0
  296. package/dist/flags/4x3/at-Cge2pfYH.js +6 -0
  297. package/dist/flags/4x3/au-BUHitxZ7.js +6 -0
  298. package/dist/flags/4x3/aw-9FVkX8eg.js +6 -0
  299. package/dist/flags/4x3/ax-BhOsTuXD.js +6 -0
  300. package/dist/flags/4x3/az-_xXDkPBy.js +6 -0
  301. package/dist/flags/4x3/ba-czeMkj9F.js +6 -0
  302. package/dist/flags/4x3/bb-CLWVnfR9.js +6 -0
  303. package/dist/flags/4x3/bd-B-3DhjKL.js +6 -0
  304. package/dist/flags/4x3/be-Bpxb3n8W.js +6 -0
  305. package/dist/flags/4x3/bf-DJ8HJgOv.js +6 -0
  306. package/dist/flags/4x3/bg-CcHaZEiP.js +6 -0
  307. package/dist/flags/4x3/bh-CgYuyQai.js +6 -0
  308. package/dist/flags/4x3/bi-DFDeFqbN.js +6 -0
  309. package/dist/flags/4x3/bj-BJ2Mv3Qn.js +6 -0
  310. package/dist/flags/4x3/bl-49c6xkK_.js +6 -0
  311. package/dist/flags/4x3/bm-DUnGX933.js +6 -0
  312. package/dist/flags/4x3/bn-D5OzuSfC.js +6 -0
  313. package/dist/flags/4x3/bo-h7n1xblU.js +6 -0
  314. package/dist/flags/4x3/bq-kCIKVZCB.js +6 -0
  315. package/dist/flags/4x3/br-CeKOfZ4p.js +6 -0
  316. package/dist/flags/4x3/bs-D-dpb2Wt.js +6 -0
  317. package/dist/flags/4x3/bt-DYguJJqP.js +6 -0
  318. package/dist/flags/4x3/bv-CxfcHUGg.js +6 -0
  319. package/dist/flags/4x3/bw-Dmlo2Xrl.js +6 -0
  320. package/dist/flags/4x3/by-DpJ2tbSJ.js +6 -0
  321. package/dist/flags/4x3/bz-C8KkVEct.js +6 -0
  322. package/dist/flags/4x3/ca-B0vqIN4C.js +6 -0
  323. package/dist/flags/4x3/cc-1AhJzny1.js +6 -0
  324. package/dist/flags/4x3/cd-C15eWPm0.js +6 -0
  325. package/dist/flags/4x3/cefta-T0n99-tg.js +6 -0
  326. package/dist/flags/4x3/cf-B-N0dXk3.js +6 -0
  327. package/dist/flags/4x3/cg-RBObVHlS.js +6 -0
  328. package/dist/flags/4x3/ch-BAwraSMD.js +6 -0
  329. package/dist/flags/4x3/ci-LZ8Apa_f.js +6 -0
  330. package/dist/flags/4x3/ck-DxgfUgaV.js +6 -0
  331. package/dist/flags/4x3/cl-Dn5PmBH_.js +6 -0
  332. package/dist/flags/4x3/cm-DT7ZRDLD.js +6 -0
  333. package/dist/flags/4x3/cn-Uxu_n0TL.js +6 -0
  334. package/dist/flags/4x3/co-DUXgiBfK.js +6 -0
  335. package/dist/flags/4x3/cp-DBFQpzcn.js +6 -0
  336. package/dist/flags/4x3/cr-B3r-jfDb.js +6 -0
  337. package/dist/flags/4x3/cu-C2AkPSKm.js +6 -0
  338. package/dist/flags/4x3/cv-BSCHMcjA.js +6 -0
  339. package/dist/flags/4x3/cw-CTl-jMEj.js +6 -0
  340. package/dist/flags/4x3/cx-Blx2-PJu.js +6 -0
  341. package/dist/flags/4x3/cy-CmfldoYM.js +6 -0
  342. package/dist/flags/4x3/cz-Bc4FVt_z.js +6 -0
  343. package/dist/flags/4x3/de-CwT-mfsC.js +6 -0
  344. package/dist/flags/4x3/dg-CMYWTwG_.js +6 -0
  345. package/dist/flags/4x3/dj-Bog9QII6.js +6 -0
  346. package/dist/flags/4x3/dk-CEB1aRPZ.js +6 -0
  347. package/dist/flags/4x3/dm-idTEOH5b.js +6 -0
  348. package/dist/flags/4x3/do-C-xUzrhA.js +6 -0
  349. package/dist/flags/4x3/dz-B0XT3h3L.js +6 -0
  350. package/dist/flags/4x3/eac-BYyC7gTx.js +6 -0
  351. package/dist/flags/4x3/ec-DHPDQJB4.js +6 -0
  352. package/dist/flags/4x3/ee-YEP7-YiI.js +6 -0
  353. package/dist/flags/4x3/eg-DphZyJ3R.js +6 -0
  354. package/dist/flags/4x3/eh-BMMUn6kT.js +6 -0
  355. package/dist/flags/4x3/er-02p7NzRX.js +6 -0
  356. package/dist/flags/4x3/es-CxCY_HyC.js +6 -0
  357. package/dist/flags/4x3/es-ct-COxgK6gN.js +6 -0
  358. package/dist/flags/4x3/es-ga-YtOQPf2W.js +6 -0
  359. package/dist/flags/4x3/es-pv-BJWGTixJ.js +6 -0
  360. package/dist/flags/4x3/et-C9te-XyE.js +6 -0
  361. package/dist/flags/4x3/eu-D3pBiamG.js +6 -0
  362. package/dist/flags/4x3/fi-p8gKOqu5.js +6 -0
  363. package/dist/flags/4x3/fj-WA6Sj14C.js +6 -0
  364. package/dist/flags/4x3/fk-C3YQpfie.js +6 -0
  365. package/dist/flags/4x3/fm-WlAfSSOy.js +6 -0
  366. package/dist/flags/4x3/fo-CnipJFZB.js +6 -0
  367. package/dist/flags/4x3/fr-wcxjBEM6.js +6 -0
  368. package/dist/flags/4x3/ga-D4QkmEbT.js +6 -0
  369. package/dist/flags/4x3/gb-Iu59IqG4.js +6 -0
  370. package/dist/flags/4x3/gb-eng-J2KeRbF6.js +6 -0
  371. package/dist/flags/4x3/gb-nir-D8v4gixn.js +6 -0
  372. package/dist/flags/4x3/gb-sct-eUMUOmec.js +6 -0
  373. package/dist/flags/4x3/gb-wls-DNa6cGuk.js +6 -0
  374. package/dist/flags/4x3/gd-CcutC5Jv.js +6 -0
  375. package/dist/flags/4x3/ge-BT79hKsn.js +6 -0
  376. package/dist/flags/4x3/gf-C6HTKVwe.js +6 -0
  377. package/dist/flags/4x3/gg-CBz1K2KV.js +6 -0
  378. package/dist/flags/4x3/gh-C_hnux9x.js +6 -0
  379. package/dist/flags/4x3/gi-DwDUY2CR.js +6 -0
  380. package/dist/flags/4x3/gl-ul6S0drK.js +6 -0
  381. package/dist/flags/4x3/gm-C8-_GrOJ.js +6 -0
  382. package/dist/flags/4x3/gn-DpAS4Emu.js +6 -0
  383. package/dist/flags/4x3/gp-v6jMGkOl.js +6 -0
  384. package/dist/flags/4x3/gq-BHcHFt2R.js +6 -0
  385. package/dist/flags/4x3/gr-oAWzdDL5.js +6 -0
  386. package/dist/flags/4x3/gs-Bv3j5ihx.js +6 -0
  387. package/dist/flags/4x3/gt-D58m-PIf.js +6 -0
  388. package/dist/flags/4x3/gu-DA1wyGyA.js +6 -0
  389. package/dist/flags/4x3/gw-C4R5CLxA.js +6 -0
  390. package/dist/flags/4x3/gy-B03XmJhj.js +6 -0
  391. package/dist/flags/4x3/hk-DR5PFCoc.js +6 -0
  392. package/dist/flags/4x3/hm-a3gZlVMF.js +6 -0
  393. package/dist/flags/4x3/hn-DxaVMgH9.js +6 -0
  394. package/dist/flags/4x3/hr-BDsdEZ9G.js +6 -0
  395. package/dist/flags/4x3/ht-DgQNMO2Q.js +6 -0
  396. package/dist/flags/4x3/hu-C2qm-xRb.js +6 -0
  397. package/dist/flags/4x3/ic-D9RMzjWn.js +6 -0
  398. package/dist/flags/4x3/id-DEj8jtC8.js +6 -0
  399. package/dist/flags/4x3/ie-6bydCA7G.js +6 -0
  400. package/dist/flags/4x3/il-D0CMPynd.js +6 -0
  401. package/dist/flags/4x3/im-Bk7Igczt.js +6 -0
  402. package/dist/flags/4x3/in-CSwUkXPH.js +6 -0
  403. package/dist/flags/4x3/io-Dr_xhh5f.js +6 -0
  404. package/dist/flags/4x3/iq-C0Met1sv.js +6 -0
  405. package/dist/flags/4x3/ir-CLPSHIql.js +6 -0
  406. package/dist/flags/4x3/is-D5nGt-6k.js +6 -0
  407. package/dist/flags/4x3/it-B2NNW4yZ.js +6 -0
  408. package/dist/flags/4x3/je-BPuVMtBX.js +6 -0
  409. package/dist/flags/4x3/jm-DFjIgq_Z.js +6 -0
  410. package/dist/flags/4x3/jo-DnWyEAoq.js +6 -0
  411. package/dist/flags/4x3/jp-DaC3ftqV.js +6 -0
  412. package/dist/flags/4x3/ke-DQltk3Nm.js +6 -0
  413. package/dist/flags/4x3/kg-B9wByXjn.js +6 -0
  414. package/dist/flags/4x3/kh-DsD475kI.js +6 -0
  415. package/dist/flags/4x3/ki-BYmKP6AJ.js +6 -0
  416. package/dist/flags/4x3/km-Dj1BRPW5.js +6 -0
  417. package/dist/flags/4x3/kn-DFhgS6Sx.js +6 -0
  418. package/dist/flags/4x3/kp-CeyDf8wh.js +6 -0
  419. package/dist/flags/4x3/kr-DruUFoV6.js +6 -0
  420. package/dist/flags/4x3/kw-xFITUXkK.js +6 -0
  421. package/dist/flags/4x3/ky-CDzTcYQP.js +6 -0
  422. package/dist/flags/4x3/kz-CA-J-BrJ.js +6 -0
  423. package/dist/flags/4x3/la-DFsAJIHb.js +6 -0
  424. package/dist/flags/4x3/lb-Bmhu7qDU.js +6 -0
  425. package/dist/flags/4x3/lc-c1kA4IQi.js +6 -0
  426. package/dist/flags/4x3/li-D7EkWWIr.js +6 -0
  427. package/dist/flags/4x3/lk-DjV8GlBc.js +6 -0
  428. package/dist/flags/4x3/lr-D_nRBy7g.js +6 -0
  429. package/dist/flags/4x3/ls-BQtizfhz.js +6 -0
  430. package/dist/flags/4x3/lt-BtwRhwiF.js +6 -0
  431. package/dist/flags/4x3/lu-BuGEmjGI.js +6 -0
  432. package/dist/flags/4x3/lv-BzSskWH0.js +6 -0
  433. package/dist/flags/4x3/ly-BQOllMQt.js +6 -0
  434. package/dist/flags/4x3/ma-Sdg_SxjA.js +6 -0
  435. package/dist/flags/4x3/mc-EjXwAk3n.js +6 -0
  436. package/dist/flags/4x3/md-Dq3fri60.js +6 -0
  437. package/dist/flags/4x3/me-Czx-10De.js +6 -0
  438. package/dist/flags/4x3/mf-Do15dk7j.js +6 -0
  439. package/dist/flags/4x3/mg-CXajwe-a.js +6 -0
  440. package/dist/flags/4x3/mh-DnobhgT4.js +6 -0
  441. package/dist/flags/4x3/mk-BRiJw8Tt.js +6 -0
  442. package/dist/flags/4x3/ml-aAwTONwn.js +6 -0
  443. package/dist/flags/4x3/mm-C1m5tOBJ.js +6 -0
  444. package/dist/flags/4x3/mn-C9ULzcTg.js +6 -0
  445. package/dist/flags/4x3/mo-DeMiFKJD.js +6 -0
  446. package/dist/flags/4x3/mp-BWLTjTll.js +6 -0
  447. package/dist/flags/4x3/mq-DVS4CJ07.js +6 -0
  448. package/dist/flags/4x3/mr-DGqyf4qY.js +6 -0
  449. package/dist/flags/4x3/ms-rAHNRTea.js +6 -0
  450. package/dist/flags/4x3/mt-Bm7FiwOE.js +6 -0
  451. package/dist/flags/4x3/mu-JFEJCkzB.js +6 -0
  452. package/dist/flags/4x3/mv-BTeEwa1J.js +6 -0
  453. package/dist/flags/4x3/mw-D0tRc77D.js +6 -0
  454. package/dist/flags/4x3/mx-CUaww8P5.js +6 -0
  455. package/dist/flags/4x3/my-DAanXl_d.js +6 -0
  456. package/dist/flags/4x3/mz-BIGM9L2m.js +6 -0
  457. package/dist/flags/4x3/na-B0qW9JE2.js +6 -0
  458. package/dist/flags/4x3/nc-WNgLHyf6.js +6 -0
  459. package/dist/flags/4x3/ne-DidYQTz7.js +6 -0
  460. package/dist/flags/4x3/nf-B72F6aJy.js +6 -0
  461. package/dist/flags/4x3/ng-DvIbB1xq.js +6 -0
  462. package/dist/flags/4x3/ni-BH4HRye2.js +6 -0
  463. package/dist/flags/4x3/nl-B43Plb7G.js +6 -0
  464. package/dist/flags/4x3/no-DcP-jaEB.js +6 -0
  465. package/dist/flags/4x3/np-zDFTSsAD.js +6 -0
  466. package/dist/flags/4x3/nr-Dne6n-U4.js +6 -0
  467. package/dist/flags/4x3/nu-BcXVN0pM.js +6 -0
  468. package/dist/flags/4x3/nz-BXB8x6bx.js +6 -0
  469. package/dist/flags/4x3/om-Dv3qsB7p.js +6 -0
  470. package/dist/flags/4x3/pa-CHIJ1Gj2.js +6 -0
  471. package/dist/flags/4x3/pc-VmqK_LID.js +6 -0
  472. package/dist/flags/4x3/pe-RvGqR0R-.js +6 -0
  473. package/dist/flags/4x3/pf-DRmCnqA_.js +6 -0
  474. package/dist/flags/4x3/pg-Df7s4vFf.js +6 -0
  475. package/dist/flags/4x3/ph-B3B1UTrp.js +6 -0
  476. package/dist/flags/4x3/pk-Dk1ksVx0.js +6 -0
  477. package/dist/flags/4x3/pl-D3tYaKmt.js +6 -0
  478. package/dist/flags/4x3/pm-SV9tklTs.js +6 -0
  479. package/dist/flags/4x3/pn-DQGkKgDr.js +6 -0
  480. package/dist/flags/4x3/pr-BPSfxHTy.js +6 -0
  481. package/dist/flags/4x3/ps-mnWMreGY.js +6 -0
  482. package/dist/flags/4x3/pt-VcneVeGg.js +6 -0
  483. package/dist/flags/4x3/pw-KY-EGmiX.js +6 -0
  484. package/dist/flags/4x3/py-CUyHPIqw.js +6 -0
  485. package/dist/flags/4x3/qa-BoCDaZ5y.js +6 -0
  486. package/dist/flags/4x3/re-DZBesO0V.js +6 -0
  487. package/dist/flags/4x3/ro-B7sesSSL.js +6 -0
  488. package/dist/flags/4x3/rs-B7-UORMV.js +6 -0
  489. package/dist/flags/4x3/ru-CdydeEda.js +6 -0
  490. package/dist/flags/4x3/rw-BITmNEbj.js +6 -0
  491. package/dist/flags/4x3/sa-CEgkBKZZ.js +6 -0
  492. package/dist/flags/4x3/sb-23uLUQKM.js +6 -0
  493. package/dist/flags/4x3/sc-DErwXRuR.js +6 -0
  494. package/dist/flags/4x3/sd-CjpBOzMD.js +6 -0
  495. package/dist/flags/4x3/se-XCNX4vGY.js +6 -0
  496. package/dist/flags/4x3/sg-BtnYiuwt.js +6 -0
  497. package/dist/flags/4x3/sh-6GY_cF-o.js +6 -0
  498. package/dist/flags/4x3/sh-ac-CTk21Nif.js +6 -0
  499. package/dist/flags/4x3/sh-hl-8dH1yqR1.js +6 -0
  500. package/dist/flags/4x3/sh-ta-Cdv7EnHK.js +6 -0
  501. package/dist/flags/4x3/si-Cw1Vyq_K.js +6 -0
  502. package/dist/flags/4x3/sj-CL2an3Th.js +6 -0
  503. package/dist/flags/4x3/sk-C4liHPFg.js +6 -0
  504. package/dist/flags/4x3/sl-BEPk-LAG.js +6 -0
  505. package/dist/flags/4x3/sm-C1vEPLxP.js +6 -0
  506. package/dist/flags/4x3/sn-Covr6Xmh.js +6 -0
  507. package/dist/flags/4x3/so-DDPk0fUE.js +6 -0
  508. package/dist/flags/4x3/sr-MDcgyROR.js +6 -0
  509. package/dist/flags/4x3/ss-Dy5O7Lgr.js +6 -0
  510. package/dist/flags/4x3/st-EMIr_lQj.js +6 -0
  511. package/dist/flags/4x3/sv-uTqJibDY.js +6 -0
  512. package/dist/flags/4x3/sx-CgbBHNON.js +6 -0
  513. package/dist/flags/4x3/sy-C4aYR08W.js +6 -0
  514. package/dist/flags/4x3/sz-BAgMx7HS.js +6 -0
  515. package/dist/flags/4x3/tc-DMg2Jb3V.js +6 -0
  516. package/dist/flags/4x3/td-BrA1SxCq.js +6 -0
  517. package/dist/flags/4x3/tf-DoYbh5AE.js +6 -0
  518. package/dist/flags/4x3/tg-CMdw-T1t.js +6 -0
  519. package/dist/flags/4x3/th-B8VvXk2o.js +6 -0
  520. package/dist/flags/4x3/tj-9RifD4z9.js +6 -0
  521. package/dist/flags/4x3/tk-D332FDkf.js +6 -0
  522. package/dist/flags/4x3/tl-DepW4rFc.js +6 -0
  523. package/dist/flags/4x3/tm-DlPsOPJl.js +6 -0
  524. package/dist/flags/4x3/tn-_n6aSOVC.js +6 -0
  525. package/dist/flags/4x3/to-BjHOduFR.js +6 -0
  526. package/dist/flags/4x3/tr-D8FSsqzD.js +6 -0
  527. package/dist/flags/4x3/tt-DF_MyPwW.js +6 -0
  528. package/dist/flags/4x3/tv-CaZzLQ4T.js +6 -0
  529. package/dist/flags/4x3/tw-DwoJdato.js +6 -0
  530. package/dist/flags/4x3/tz-Cwgfqcan.js +6 -0
  531. package/dist/flags/4x3/ua-DczPl-DK.js +6 -0
  532. package/dist/flags/4x3/ug-Bhd5tzWZ.js +6 -0
  533. package/dist/flags/4x3/um-xZ3EHJTJ.js +6 -0
  534. package/dist/flags/4x3/un-DW3M9Rfg.js +6 -0
  535. package/dist/flags/4x3/us-BZHTCCSU.js +6 -0
  536. package/dist/flags/4x3/uy-DkzWeMZ_.js +6 -0
  537. package/dist/flags/4x3/uz-CO7BpRjt.js +6 -0
  538. package/dist/flags/4x3/va-CuzPfqQ5.js +6 -0
  539. package/dist/flags/4x3/vc-Dvt-xnVp.js +6 -0
  540. package/dist/flags/4x3/ve-DUN0cG2f.js +6 -0
  541. package/dist/flags/4x3/vg-BnMCm3Lp.js +6 -0
  542. package/dist/flags/4x3/vi-a5qpfbwf.js +6 -0
  543. package/dist/flags/4x3/vn-Mfo0Etd-.js +6 -0
  544. package/dist/flags/4x3/vu-CMXE67-m.js +6 -0
  545. package/dist/flags/4x3/wf-C2pOdB7O.js +6 -0
  546. package/dist/flags/4x3/ws-UNuo3E3p.js +6 -0
  547. package/dist/flags/4x3/xk-CyeCbLw7.js +6 -0
  548. package/dist/flags/4x3/xx-X7wcWWS4.js +6 -0
  549. package/dist/flags/4x3/ye-BGZWYDat.js +6 -0
  550. package/dist/flags/4x3/yt-zZ_nlbyQ.js +6 -0
  551. package/dist/flags/4x3/za-T6vuGNwj.js +6 -0
  552. package/dist/flags/4x3/zm-BbWQxaas.js +6 -0
  553. package/dist/flags/4x3/zw-CJUOj-vi.js +6 -0
  554. package/dist/flags.d.ts +50 -0
  555. package/dist/flags.js +999 -0
  556. package/dist/flags.js.map +1 -0
  557. package/dist/flow.css +8648 -0
  558. package/dist/flow.d.ts +6452 -0
  559. package/dist/flow.js +29982 -0
  560. package/dist/flow.js.map +1 -0
  561. package/dist/index-C3WAwKdm.d.ts +6363 -0
  562. package/dist/index.d.ts +4 -0
  563. package/dist/index.js +4 -0
  564. package/dist/src-Ds9ArSaP.js +20940 -0
  565. package/dist/src-Ds9ArSaP.js.map +1 -0
  566. package/dist/styles.css +23945 -0
  567. package/package.json +191 -0
@@ -0,0 +1,2815 @@
1
+ "use client";
2
+ import { t as cx } from "./cx-Bn-0YiVq.js";
3
+ import { createContext, useContext, useEffect, useMemo, useState } from "react";
4
+ import { Button, I18nProvider, Link, RouterProvider } from "react-aria-components";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { Bot, User } from "lucide-react";
7
+ //#region src/utilities/i18n-adapter/icu.ts
8
+ var Cursor = class {
9
+ src;
10
+ i = 0;
11
+ constructor(src) {
12
+ this.src = src;
13
+ }
14
+ get done() {
15
+ return this.i >= this.src.length;
16
+ }
17
+ peek() {
18
+ return this.src[this.i];
19
+ }
20
+ skipSpace() {
21
+ while (!this.done && /\s/.test(this.src[this.i])) this.i++;
22
+ }
23
+ word() {
24
+ this.skipSpace();
25
+ const start = this.i;
26
+ while (!this.done && !/[\s,{}]/.test(this.src[this.i])) this.i++;
27
+ if (start === this.i) throw new SyntaxError(`identifier expected at ${start}`);
28
+ return this.src.slice(start, this.i);
29
+ }
30
+ expect(ch) {
31
+ this.skipSpace();
32
+ if (this.src[this.i] !== ch) throw new SyntaxError(`"${ch}" expected at ${this.i}`);
33
+ this.i++;
34
+ }
35
+ };
36
+ function parseSequence(c, inChoice) {
37
+ const out = [];
38
+ let text = "";
39
+ const flush = () => {
40
+ if (text) out.push({
41
+ k: "text",
42
+ v: text
43
+ });
44
+ text = "";
45
+ };
46
+ while (!c.done) {
47
+ const ch = c.peek();
48
+ if (ch === "}") {
49
+ if (!inChoice) throw new SyntaxError(`unbalanced "}" at ${c.i}`);
50
+ break;
51
+ }
52
+ if (ch === "{") {
53
+ flush();
54
+ out.push(parseArgument(c));
55
+ continue;
56
+ }
57
+ if (ch === "#" && inChoice) {
58
+ flush();
59
+ out.push({ k: "hash" });
60
+ c.i++;
61
+ continue;
62
+ }
63
+ if (ch === "'") {
64
+ const next = c.src[c.i + 1];
65
+ if (next === "'") {
66
+ text += "'";
67
+ c.i += 2;
68
+ continue;
69
+ }
70
+ if (next === "{" || next === "}" || next === "#") {
71
+ const end = c.src.indexOf("'", c.i + 1);
72
+ if (end > 0) {
73
+ text += c.src.slice(c.i + 1, end);
74
+ c.i = end + 1;
75
+ continue;
76
+ }
77
+ }
78
+ }
79
+ text += ch;
80
+ c.i++;
81
+ }
82
+ flush();
83
+ return out;
84
+ }
85
+ function parseArgument(c) {
86
+ c.expect("{");
87
+ const name = c.word();
88
+ c.skipSpace();
89
+ if (c.peek() === "}") {
90
+ c.i++;
91
+ return {
92
+ k: "arg",
93
+ name
94
+ };
95
+ }
96
+ c.expect(",");
97
+ const kind = c.word();
98
+ c.skipSpace();
99
+ if (kind === "number" || kind === "date" || kind === "time") {
100
+ let style;
101
+ if (c.peek() === ",") {
102
+ c.i++;
103
+ style = c.word();
104
+ }
105
+ c.expect("}");
106
+ return {
107
+ k: "arg",
108
+ name,
109
+ fmt: kind,
110
+ style
111
+ };
112
+ }
113
+ if (kind !== "plural" && kind !== "select" && kind !== "selectordinal") throw new SyntaxError(`unknown argument type "${kind}"`);
114
+ c.expect(",");
115
+ const cases = /* @__PURE__ */ new Map();
116
+ for (;;) {
117
+ c.skipSpace();
118
+ if (c.peek() === "}") {
119
+ c.i++;
120
+ break;
121
+ }
122
+ if (c.done) throw new SyntaxError("unterminated choice");
123
+ const key = c.word();
124
+ if (key.startsWith("offset:")) continue;
125
+ c.expect("{");
126
+ cases.set(key, parseSequence(c, true));
127
+ c.expect("}");
128
+ }
129
+ if (!cases.has("other")) throw new SyntaxError(`"${name}" needs an "other" case`);
130
+ return {
131
+ k: "choice",
132
+ name,
133
+ mode: kind,
134
+ cases
135
+ };
136
+ }
137
+ const cache = /* @__PURE__ */ new Map();
138
+ function parseMessage(message) {
139
+ let ast = cache.get(message);
140
+ if (!ast) {
141
+ const c = new Cursor(message);
142
+ ast = parseSequence(c, false);
143
+ if (!c.done) throw new SyntaxError(`unexpected "${c.peek()}" at ${c.i}`);
144
+ cache.set(message, ast);
145
+ }
146
+ return ast;
147
+ }
148
+ function asDate(value) {
149
+ const d = value instanceof Date ? value : typeof value === "string" || typeof value === "number" ? new Date(value) : null;
150
+ return d && !Number.isNaN(d.getTime()) ? d : null;
151
+ }
152
+ function render(parts, params, locale, hashValue) {
153
+ let out = "";
154
+ for (const p of parts) switch (p.k) {
155
+ case "text":
156
+ out += p.v;
157
+ break;
158
+ case "hash":
159
+ out += hashValue === null ? "#" : new Intl.NumberFormat(locale).format(hashValue);
160
+ break;
161
+ case "arg": {
162
+ const v = params[p.name];
163
+ if (v === void 0) out += `{${p.name}}`;
164
+ else if (p.fmt === "number" && typeof v === "number") {
165
+ const opts = p.style === "percent" ? { style: "percent" } : p.style === "integer" ? { maximumFractionDigits: 0 } : {};
166
+ out += new Intl.NumberFormat(locale, opts).format(v);
167
+ } else if ((p.fmt === "date" || p.fmt === "time") && asDate(v)) {
168
+ const style = [
169
+ "short",
170
+ "medium",
171
+ "long",
172
+ "full"
173
+ ].includes(p.style ?? "") ? p.style : "medium";
174
+ const opts = p.fmt === "date" ? { dateStyle: style } : { timeStyle: style };
175
+ out += new Intl.DateTimeFormat(locale, opts).format(asDate(v));
176
+ } else out += String(v);
177
+ break;
178
+ }
179
+ case "choice": {
180
+ const v = params[p.name];
181
+ let branch;
182
+ let hash = hashValue;
183
+ if (p.mode === "select") branch = p.cases.get(String(v));
184
+ else {
185
+ const n = Number(v);
186
+ hash = n;
187
+ branch = p.cases.get(`=${n}`);
188
+ if (!branch && Number.isFinite(n)) {
189
+ const rules = new Intl.PluralRules(locale, { type: p.mode === "selectordinal" ? "ordinal" : "cardinal" });
190
+ branch = p.cases.get(rules.select(n));
191
+ }
192
+ }
193
+ out += render(branch ?? p.cases.get("other"), params, locale, hash);
194
+ break;
195
+ }
196
+ }
197
+ return out;
198
+ }
199
+ /** Plain `{name}` substitution, the fallback for unparsable messages. */
200
+ function substitute(message, params = {}) {
201
+ return message.replace(/\{\s*([\w.-]+)\s*\}/g, (whole, key) => params[key] === void 0 ? whole : String(params[key]));
202
+ }
203
+ /** Formats an ICU message; never throws. */
204
+ function formatMessage(message, params = {}, locale = "en") {
205
+ try {
206
+ return render(parseMessage(message), params, locale, null);
207
+ } catch {
208
+ return substitute(message, params);
209
+ }
210
+ }
211
+ //#endregion
212
+ //#region src/internal/icuCatalogue.ts
213
+ const isTree = (v) => !!v && typeof v === "object" && !Array.isArray(v);
214
+ /** Compiles ICU strings (shaped like the catalogue) into catalogue overrides for `locale`. */
215
+ function compileIcuMessages(icu, base, locale) {
216
+ const walk = (source, reference) => {
217
+ const out = {};
218
+ for (const [key, value] of Object.entries(source)) {
219
+ const ref = isTree(reference) ? reference[key] : void 0;
220
+ if (typeof value === "string") out[key] = typeof ref === "function" ? (...args) => formatMessage(value, Object.fromEntries(args.map((a, i) => [String(i), a])), locale) : formatMessage(value, {}, locale);
221
+ else out[key] = walk(value, ref);
222
+ }
223
+ return out;
224
+ };
225
+ return walk(icu, base);
226
+ }
227
+ const ACCENTED = {
228
+ a: "à",
229
+ b: "ƀ",
230
+ c: "ç",
231
+ d: "ď",
232
+ e: "é",
233
+ f: "ƒ",
234
+ g: "ĝ",
235
+ h: "ĥ",
236
+ i: "î",
237
+ j: "ĵ",
238
+ k: "ķ",
239
+ l: "ļ",
240
+ m: "ɱ",
241
+ n: "ñ",
242
+ o: "ö",
243
+ p: "þ",
244
+ q: "ǫ",
245
+ r: "ŕ",
246
+ s: "š",
247
+ t: "ţ",
248
+ u: "û",
249
+ v: "ṽ",
250
+ w: "ŵ",
251
+ x: "ẋ",
252
+ y: "ý",
253
+ z: "ž",
254
+ A: "Å",
255
+ B: "Ɓ",
256
+ C: "Ç",
257
+ D: "Đ",
258
+ E: "É",
259
+ F: "Ƒ",
260
+ G: "Ĝ",
261
+ H: "Ĥ",
262
+ I: "Î",
263
+ J: "Ĵ",
264
+ K: "Ķ",
265
+ L: "Ļ",
266
+ M: "Ṁ",
267
+ N: "Ñ",
268
+ O: "Ö",
269
+ P: "Þ",
270
+ Q: "Ǫ",
271
+ R: "Ŕ",
272
+ S: "Š",
273
+ T: "Ţ",
274
+ U: "Û",
275
+ V: "Ṽ",
276
+ W: "Ŵ",
277
+ X: "Ẋ",
278
+ Y: "Ý",
279
+ Z: "Ž"
280
+ };
281
+ /** One pseudo-localized string: accented, about 40 % longer, bracketed so clipping shows. */
282
+ function pseudoString(text) {
283
+ if (!text) return text;
284
+ const accented = [...text].map((ch) => ACCENTED[ch] ?? ch).join("");
285
+ const letters = [...text].filter((ch) => /\p{L}/u.test(ch)).length;
286
+ return `⟦${accented}${"~".repeat(Math.ceil(letters * .4))}⟧`;
287
+ }
288
+ /** Pseudo-localizes a whole catalogue (strings and the output of message functions). */
289
+ function pseudoLocalize(messages) {
290
+ const walk = (node) => {
291
+ if (typeof node === "string") return pseudoString(node);
292
+ if (typeof node === "function") return (...args) => pseudoString(String(node(...args)));
293
+ if (isTree(node)) return Object.fromEntries(Object.entries(node).map(([k, v]) => [k, walk(v)]));
294
+ return node;
295
+ };
296
+ return walk(messages);
297
+ }
298
+ //#endregion
299
+ //#region src/internal/messages/plural.ts
300
+ function speaker(language) {
301
+ const rules = new Intl.PluralRules(language);
302
+ const numbers = new Intl.NumberFormat(language);
303
+ return {
304
+ /** Formats a number in the catalogue's language. */
305
+ n: (value) => numbers.format(value),
306
+ /** The word for `count`, by CLDR plural category. */
307
+ word: (count, words) => words[rules.select(count)] ?? words.other
308
+ };
309
+ }
310
+ //#endregion
311
+ //#region src/internal/messages/forms-a.ts
312
+ const en$4 = speaker("en");
313
+ const pt$4 = speaker("pt-BR");
314
+ const es$4 = speaker("es");
315
+ const formsAEn = {
316
+ themeSwitcher: {
317
+ label: "Dark mode",
318
+ toLight: "Switch to light mode",
319
+ toDark: "Switch to dark mode"
320
+ },
321
+ themePalette: {
322
+ label: "Choose a theme",
323
+ placeholder: "Search themes",
324
+ groupInterface: "Interface",
325
+ groupPrint: "Book styles",
326
+ recent: "Recent",
327
+ noResults: (q) => `No theme matches “${q}”.`,
328
+ results: (n) => `${en$4.n(n)} ${en$4.word(n, {
329
+ one: "theme",
330
+ other: "themes"
331
+ })}`,
332
+ count: (n) => en$4.n(n),
333
+ applied: (name) => `Theme applied: ${name}`,
334
+ trigger: (name) => `Theme: ${name}`,
335
+ preview: "Preview",
336
+ sample: "The same content, another engraving.",
337
+ mode: "Mode",
338
+ modeSystem: "System",
339
+ modeLight: "Light",
340
+ modeDark: "Dark",
341
+ density: "Density",
342
+ densityCompact: "Compact",
343
+ densityDefault: "Default",
344
+ densityComfortable: "Comfortable",
345
+ hints: {
346
+ move: "preview",
347
+ apply: "apply",
348
+ revert: "revert"
349
+ }
350
+ },
351
+ stateSwitch: {
352
+ off: "Inactive",
353
+ on: "Active"
354
+ },
355
+ oneTimeCode: {
356
+ label: "Verification code",
357
+ box: (n, total) => `Character ${en$4.n(n)} of ${en$4.n(total)}`
358
+ },
359
+ passwordStrength: {
360
+ label: "Password strength",
361
+ levels: [
362
+ "Weak",
363
+ "Fair",
364
+ "Good",
365
+ "Strong"
366
+ ],
367
+ met: "met:",
368
+ notMet: "not met:",
369
+ announce: (word) => `Password strength: ${word}`,
370
+ rules: {
371
+ minLength: (n) => `At least ${en$4.n(n)} ${en$4.word(n, {
372
+ one: "character",
373
+ other: "characters"
374
+ })}`,
375
+ uppercase: "An uppercase letter",
376
+ lowercase: "A lowercase letter",
377
+ digit: "A digit",
378
+ symbol: "A symbol"
379
+ }
380
+ },
381
+ searchBar: {
382
+ label: "Search",
383
+ placeholder: "Search",
384
+ refinePlaceholder: "Refine within the filters",
385
+ clearSearch: "Clear search",
386
+ clearAll: "Clear all",
387
+ cancel: "Cancel",
388
+ filters: "Filters",
389
+ filtersActive: (n) => `Filters, ${en$4.n(n)} active`,
390
+ filtersTitle: "Filters",
391
+ clear: "Clear",
392
+ done: "Done"
393
+ },
394
+ filterField: { clear: "Clear filter" },
395
+ filterChips: {
396
+ group: "Active filters",
397
+ remove: (label) => `Remove ${label}`,
398
+ removed: (label) => `${label} removed`,
399
+ clearAll: "Clear all"
400
+ },
401
+ choiceCard: { unavailable: "Unavailable" },
402
+ chipGroup: {
403
+ selected: (n) => `${en$4.n(n)} selected`,
404
+ selectAll: "Select all",
405
+ clear: "Clear",
406
+ empty: "No items to choose from",
407
+ loading: "Loading items",
408
+ addPlaceholder: "Add and press Enter",
409
+ addLabel: "Add an item",
410
+ remove: (name) => `Remove ${name}`
411
+ },
412
+ flagSetPicker: {
413
+ presets: "Presets",
414
+ options: "Options"
415
+ }
416
+ };
417
+ const formsAPtBR = {
418
+ themeSwitcher: {
419
+ label: "Modo escuro",
420
+ toLight: "Mudar para o modo claro",
421
+ toDark: "Mudar para o modo escuro"
422
+ },
423
+ themePalette: {
424
+ label: "Escolher o tema",
425
+ placeholder: "Buscar tema",
426
+ groupInterface: "Interface",
427
+ groupPrint: "Estilos de livro",
428
+ recent: "Recentes",
429
+ noResults: (q) => `Nenhum tema corresponde a “${q}”.`,
430
+ results: (n) => `${pt$4.n(n)} ${pt$4.word(n, {
431
+ one: "tema",
432
+ other: "temas"
433
+ })}`,
434
+ count: (n) => pt$4.n(n),
435
+ applied: (name) => `Tema aplicado: ${name}`,
436
+ trigger: (name) => `Tema: ${name}`,
437
+ preview: "Prévia",
438
+ sample: "O mesmo conteúdo, outra gravação.",
439
+ mode: "Modo",
440
+ modeSystem: "Sistema",
441
+ modeLight: "Claro",
442
+ modeDark: "Escuro",
443
+ density: "Densidade",
444
+ densityCompact: "Compacta",
445
+ densityDefault: "Padrão",
446
+ densityComfortable: "Confortável",
447
+ hints: {
448
+ move: "prévia",
449
+ apply: "aplicar",
450
+ revert: "desfazer"
451
+ }
452
+ },
453
+ stateSwitch: {
454
+ off: "Inativo",
455
+ on: "Ativo"
456
+ },
457
+ oneTimeCode: {
458
+ label: "Código de verificação",
459
+ box: (n, total) => `Caractere ${pt$4.n(n)} de ${pt$4.n(total)}`
460
+ },
461
+ passwordStrength: {
462
+ label: "Força da senha",
463
+ levels: [
464
+ "Fraca",
465
+ "Razoável",
466
+ "Boa",
467
+ "Forte"
468
+ ],
469
+ met: "atendido:",
470
+ notMet: "não atendido:",
471
+ announce: (word) => `Força da senha: ${word}`,
472
+ rules: {
473
+ minLength: (n) => `Pelo menos ${pt$4.n(n)} ${pt$4.word(n, {
474
+ one: "caractere",
475
+ other: "caracteres"
476
+ })}`,
477
+ uppercase: "Uma letra maiúscula",
478
+ lowercase: "Uma letra minúscula",
479
+ digit: "Um número",
480
+ symbol: "Um símbolo"
481
+ }
482
+ },
483
+ searchBar: {
484
+ label: "Busca",
485
+ placeholder: "Buscar",
486
+ refinePlaceholder: "Refinar dentro dos filtros",
487
+ clearSearch: "Limpar busca",
488
+ clearAll: "Limpar tudo",
489
+ cancel: "Cancelar",
490
+ filters: "Filtros",
491
+ filtersActive: (n) => `Filtros, ${pt$4.n(n)} ${pt$4.word(n, {
492
+ one: "ativo",
493
+ other: "ativos"
494
+ })}`,
495
+ filtersTitle: "Filtros",
496
+ clear: "Limpar",
497
+ done: "Concluir"
498
+ },
499
+ filterField: { clear: "Limpar filtro" },
500
+ filterChips: {
501
+ group: "Filtros ativos",
502
+ remove: (label) => `Remover ${label}`,
503
+ removed: (label) => `${label} removido`,
504
+ clearAll: "Limpar tudo"
505
+ },
506
+ choiceCard: { unavailable: "Indisponível" },
507
+ chipGroup: {
508
+ selected: (n) => `${pt$4.n(n)} ${pt$4.word(n, {
509
+ one: "selecionado",
510
+ other: "selecionados"
511
+ })}`,
512
+ selectAll: "Selecionar todos",
513
+ clear: "Limpar",
514
+ empty: "Nenhum item para escolher",
515
+ loading: "Carregando itens",
516
+ addPlaceholder: "Digite e pressione Enter",
517
+ addLabel: "Adicionar item",
518
+ remove: (name) => `Remover ${name}`
519
+ },
520
+ flagSetPicker: {
521
+ presets: "Predefinições",
522
+ options: "Opções"
523
+ }
524
+ };
525
+ /** Spanish (neutral Latin-American). */
526
+ const formsAEs = {
527
+ themeSwitcher: {
528
+ label: "Modo oscuro",
529
+ toLight: "Cambiar al modo claro",
530
+ toDark: "Cambiar al modo oscuro"
531
+ },
532
+ themePalette: {
533
+ label: "Elegir el tema",
534
+ placeholder: "Buscar tema",
535
+ groupInterface: "Interfaz",
536
+ groupPrint: "Estilos de libro",
537
+ recent: "Recientes",
538
+ noResults: (q) => `Ningún tema coincide con «${q}».`,
539
+ results: (n) => `${es$4.n(n)} ${es$4.word(n, {
540
+ one: "tema",
541
+ other: "temas"
542
+ })}`,
543
+ count: (n) => es$4.n(n),
544
+ applied: (name) => `Tema aplicado: ${name}`,
545
+ trigger: (name) => `Tema: ${name}`,
546
+ preview: "Vista previa",
547
+ sample: "El mismo contenido, otro grabado.",
548
+ mode: "Modo",
549
+ modeSystem: "Sistema",
550
+ modeLight: "Claro",
551
+ modeDark: "Oscuro",
552
+ density: "Densidad",
553
+ densityCompact: "Compacta",
554
+ densityDefault: "Normal",
555
+ densityComfortable: "Cómoda",
556
+ hints: {
557
+ move: "vista previa",
558
+ apply: "aplicar",
559
+ revert: "deshacer"
560
+ }
561
+ },
562
+ stateSwitch: {
563
+ off: "Inactivo",
564
+ on: "Activo"
565
+ },
566
+ oneTimeCode: {
567
+ label: "Código de verificación",
568
+ box: (n, total) => `Carácter ${es$4.n(n)} de ${es$4.n(total)}`
569
+ },
570
+ passwordStrength: {
571
+ label: "Seguridad de la contraseña",
572
+ levels: [
573
+ "Débil",
574
+ "Aceptable",
575
+ "Buena",
576
+ "Fuerte"
577
+ ],
578
+ met: "cumplido:",
579
+ notMet: "no cumplido:",
580
+ announce: (word) => `Seguridad de la contraseña: ${word}`,
581
+ rules: {
582
+ minLength: (n) => `Al menos ${es$4.n(n)} ${es$4.word(n, {
583
+ one: "carácter",
584
+ other: "caracteres"
585
+ })}`,
586
+ uppercase: "Una letra mayúscula",
587
+ lowercase: "Una letra minúscula",
588
+ digit: "Un número",
589
+ symbol: "Un símbolo"
590
+ }
591
+ },
592
+ searchBar: {
593
+ label: "Búsqueda",
594
+ placeholder: "Buscar",
595
+ refinePlaceholder: "Refinar dentro de los filtros",
596
+ clearSearch: "Borrar búsqueda",
597
+ clearAll: "Borrar todo",
598
+ cancel: "Cancelar",
599
+ filters: "Filtros",
600
+ filtersActive: (n) => `Filtros, ${es$4.n(n)} ${es$4.word(n, {
601
+ one: "activo",
602
+ other: "activos"
603
+ })}`,
604
+ filtersTitle: "Filtros",
605
+ clear: "Borrar",
606
+ done: "Listo"
607
+ },
608
+ filterField: { clear: "Borrar filtro" },
609
+ filterChips: {
610
+ group: "Filtros activos",
611
+ remove: (label) => `Quitar ${label}`,
612
+ removed: (label) => `${label} quitado`,
613
+ clearAll: "Borrar todo"
614
+ },
615
+ choiceCard: { unavailable: "No disponible" },
616
+ chipGroup: {
617
+ selected: (n) => `${es$4.n(n)} ${es$4.word(n, {
618
+ one: "seleccionado",
619
+ other: "seleccionados"
620
+ })}`,
621
+ selectAll: "Seleccionar todo",
622
+ clear: "Borrar",
623
+ empty: "No hay elementos para elegir",
624
+ loading: "Cargando elementos",
625
+ addPlaceholder: "Escribe y presiona Enter",
626
+ addLabel: "Agregar un elemento",
627
+ remove: (name) => `Quitar ${name}`
628
+ },
629
+ flagSetPicker: {
630
+ presets: "Ajustes predefinidos",
631
+ options: "Opciones"
632
+ }
633
+ };
634
+ //#endregion
635
+ //#region src/internal/messages/forms-b.ts
636
+ const en$3 = speaker("en");
637
+ const pt$3 = speaker("pt-BR");
638
+ const es$3 = speaker("es");
639
+ const formsBEn = {
640
+ tagField: {
641
+ remove: (d) => `Remove ${d}`,
642
+ chosen: (f) => `${f}: chosen values`,
643
+ suggestions: "Suggestions"
644
+ },
645
+ currencyField: { currency: (name) => `Currency: ${name}` },
646
+ dateField: {
647
+ placeholder: "Select a date",
648
+ previousMonth: "Previous month",
649
+ nextMonth: "Next month",
650
+ previousYear: "Previous year",
651
+ nextYear: "Next year",
652
+ today: "Today",
653
+ todayMarker: "today",
654
+ chooseMonth: (c) => `${c}, choose month and year`,
655
+ backToDays: "Back to days",
656
+ months: "Months",
657
+ years: "Years"
658
+ },
659
+ timeField: {
660
+ placeholder: "Select a time",
661
+ hours: "Hours",
662
+ minutes: "Minutes",
663
+ confirm: "Confirm",
664
+ future: "This time is still in the future. Choose a time up to now."
665
+ },
666
+ monthField: {
667
+ placeholder: "Select a month",
668
+ previousYear: "Previous year",
669
+ nextYear: "Next year",
670
+ months: "Months",
671
+ years: "Years with data"
672
+ },
673
+ localePicker: {
674
+ title: "Language",
675
+ trigger: (t, l) => `${t}: ${l}`,
676
+ current: (l, c) => `Current language: ${l} (${c})`,
677
+ list: "Available languages"
678
+ },
679
+ imagePicker: {
680
+ change: "Change picture",
681
+ wrongType: "This file type is not accepted. Choose a JPEG, PNG or WebP image.",
682
+ tooLarge: (limit) => `The file is larger than ${limit}. Choose a smaller image.`,
683
+ failed: "The picture could not be uploaded. Try again.",
684
+ updated: "Picture updated",
685
+ uploading: "Uploading the picture"
686
+ },
687
+ requestForm: {
688
+ submit: "Submit",
689
+ reject: "Reject",
690
+ sending: "Sending",
691
+ choose: "Choose…",
692
+ required: "Fill in this field.",
693
+ notNumber: "Enter a number.",
694
+ atLeast: (n) => `Enter ${en$3.n(n)} or more.`,
695
+ atMost: (n) => `Enter ${en$3.n(n)} or less.`,
696
+ defaultReason: "Rejected by the reviewer",
697
+ approved: "Approved",
698
+ rejected: "Rejected",
699
+ approvedSentence: "Answer sent. The run resumed.",
700
+ rejectedSentence: "Request rejected. The run was closed.",
701
+ failed: "The answer could not be sent."
702
+ },
703
+ formActions: { saving: "Saving" }
704
+ };
705
+ const formsBPtBR = {
706
+ tagField: {
707
+ remove: (d) => `Remover ${d}`,
708
+ chosen: (f) => `${f}: valores escolhidos`,
709
+ suggestions: "Sugestões"
710
+ },
711
+ currencyField: { currency: (name) => `Moeda: ${name}` },
712
+ dateField: {
713
+ placeholder: "Selecione uma data",
714
+ previousMonth: "Mês anterior",
715
+ nextMonth: "Próximo mês",
716
+ previousYear: "Ano anterior",
717
+ nextYear: "Próximo ano",
718
+ today: "Hoje",
719
+ todayMarker: "hoje",
720
+ chooseMonth: (c) => `${c}, escolher mês e ano`,
721
+ backToDays: "Voltar aos dias",
722
+ months: "Meses",
723
+ years: "Anos"
724
+ },
725
+ timeField: {
726
+ placeholder: "Selecione um horário",
727
+ hours: "Horas",
728
+ minutes: "Minutos",
729
+ confirm: "Confirmar",
730
+ future: "Este horário ainda está no futuro. Escolha um horário até agora."
731
+ },
732
+ monthField: {
733
+ placeholder: "Selecione um mês",
734
+ previousYear: "Ano anterior",
735
+ nextYear: "Próximo ano",
736
+ months: "Meses",
737
+ years: "Anos com dados"
738
+ },
739
+ localePicker: {
740
+ title: "Idioma",
741
+ trigger: (t, l) => `${t}: ${l}`,
742
+ current: (l, c) => `Idioma atual: ${l} (${c})`,
743
+ list: "Idiomas disponíveis"
744
+ },
745
+ imagePicker: {
746
+ change: "Trocar imagem",
747
+ wrongType: "Este tipo de arquivo não é aceito. Escolha uma imagem JPEG, PNG ou WebP.",
748
+ tooLarge: (limit) => `O arquivo tem mais de ${limit}. Escolha uma imagem menor.`,
749
+ failed: "Não foi possível enviar a imagem. Tente de novo.",
750
+ updated: "Imagem atualizada",
751
+ uploading: "Enviando a imagem"
752
+ },
753
+ requestForm: {
754
+ submit: "Enviar",
755
+ reject: "Rejeitar",
756
+ sending: "Enviando",
757
+ choose: "Escolha…",
758
+ required: "Preencha este campo.",
759
+ notNumber: "Digite um número.",
760
+ atLeast: (n) => `Digite ${pt$3.n(n)} ou mais.`,
761
+ atMost: (n) => `Digite ${pt$3.n(n)} ou menos.`,
762
+ defaultReason: "Rejeitado por quem revisou",
763
+ approved: "Aprovado",
764
+ rejected: "Rejeitado",
765
+ approvedSentence: "Resposta enviada. A execução foi retomada.",
766
+ rejectedSentence: "Pedido rejeitado. A execução foi encerrada.",
767
+ failed: "Não foi possível enviar a resposta."
768
+ },
769
+ formActions: { saving: "Salvando" }
770
+ };
771
+ /** Spanish (neutral Latin American). */
772
+ const formsBEs = {
773
+ tagField: {
774
+ remove: (d) => `Quitar ${d}`,
775
+ chosen: (f) => `${f}: valores elegidos`,
776
+ suggestions: "Sugerencias"
777
+ },
778
+ currencyField: { currency: (name) => `Moneda: ${name}` },
779
+ dateField: {
780
+ placeholder: "Seleccione una fecha",
781
+ previousMonth: "Mes anterior",
782
+ nextMonth: "Mes siguiente",
783
+ previousYear: "Año anterior",
784
+ nextYear: "Año siguiente",
785
+ today: "Hoy",
786
+ todayMarker: "hoy",
787
+ chooseMonth: (c) => `${c}, elegir mes y año`,
788
+ backToDays: "Volver a los días",
789
+ months: "Meses",
790
+ years: "Años"
791
+ },
792
+ timeField: {
793
+ placeholder: "Seleccione una hora",
794
+ hours: "Horas",
795
+ minutes: "Minutos",
796
+ confirm: "Confirmar",
797
+ future: "Esta hora todavía está en el futuro. Elija una hora hasta ahora."
798
+ },
799
+ monthField: {
800
+ placeholder: "Seleccione un mes",
801
+ previousYear: "Año anterior",
802
+ nextYear: "Año siguiente",
803
+ months: "Meses",
804
+ years: "Años con datos"
805
+ },
806
+ localePicker: {
807
+ title: "Idioma",
808
+ trigger: (t, l) => `${t}: ${l}`,
809
+ current: (l, c) => `Idioma actual: ${l} (${c})`,
810
+ list: "Idiomas disponibles"
811
+ },
812
+ imagePicker: {
813
+ change: "Cambiar imagen",
814
+ wrongType: "Este tipo de archivo no se acepta. Elija una imagen JPEG, PNG o WebP.",
815
+ tooLarge: (limit) => `El archivo supera ${limit}. Elija una imagen más pequeña.`,
816
+ failed: "No se pudo subir la imagen. Inténtelo de nuevo.",
817
+ updated: "Imagen actualizada",
818
+ uploading: "Subiendo la imagen"
819
+ },
820
+ requestForm: {
821
+ submit: "Enviar",
822
+ reject: "Rechazar",
823
+ sending: "Enviando",
824
+ choose: "Elija…",
825
+ required: "Complete este campo.",
826
+ notNumber: "Escriba un número.",
827
+ atLeast: (n) => `Escriba ${es$3.n(n)} o más.`,
828
+ atMost: (n) => `Escriba ${es$3.n(n)} o menos.`,
829
+ defaultReason: "Rechazado por quien revisó",
830
+ approved: "Aprobado",
831
+ rejected: "Rechazado",
832
+ approvedSentence: "Respuesta enviada. La ejecución se reanudó.",
833
+ rejectedSentence: "Solicitud rechazada. La ejecución se cerró.",
834
+ failed: "No se pudo enviar la respuesta."
835
+ },
836
+ formActions: { saving: "Guardando" }
837
+ };
838
+ //#endregion
839
+ //#region src/internal/messages/overlays-nav.ts
840
+ const en$2 = speaker("en");
841
+ const pt$2 = speaker("pt-BR");
842
+ const es$2 = speaker("es");
843
+ const overlaysNavEn = {
844
+ sectionedModal: {
845
+ close: "Close",
846
+ cancel: "Cancel",
847
+ save: "Save",
848
+ sectionPicker: "Section"
849
+ },
850
+ settingsDialog: {
851
+ placeholder: "Nothing to configure in this section yet.",
852
+ copy: (f) => `Copy ${f}`,
853
+ copied: "Copied",
854
+ changePicture: "Change picture",
855
+ currentPassword: "Current password",
856
+ newPassword: "New password",
857
+ confirmPassword: "Confirm the new password",
858
+ changePassword: "Change password",
859
+ passwordMismatch: "The two new passwords are different."
860
+ },
861
+ confirm: {
862
+ confirm: "Confirm",
863
+ cancel: "Cancel",
864
+ caution: "Caution"
865
+ },
866
+ detailsPopover: { tone: {
867
+ success: "Success",
868
+ pending: "Pending",
869
+ error: "Error"
870
+ } },
871
+ navigationFlyout: {
872
+ title: "Navigation",
873
+ search: "Search destinations",
874
+ noResults: "No destination matches this search.",
875
+ count: (n) => `${en$2.n(n)} ${en$2.word(n, {
876
+ one: "destination",
877
+ other: "destinations"
878
+ })}`,
879
+ notifications: "Notifications",
880
+ unseen: (n) => `${en$2.n(n)} unseen`,
881
+ darkTheme: "Dark theme",
882
+ profile: "Profile",
883
+ signOut: "Sign out",
884
+ destinations: "Destinations"
885
+ },
886
+ appNavigation: {
887
+ landmark: "Primary navigation",
888
+ home: "Home",
889
+ profile: "Profile",
890
+ signOut: "Sign out",
891
+ theme: "Theme",
892
+ themeLight: "Light",
893
+ themeDark: "Dark",
894
+ language: "Language",
895
+ account: "Account",
896
+ openMenu: "Open navigation",
897
+ closeMenu: "Close navigation",
898
+ collapse: "Collapse navigation",
899
+ expand: "Expand navigation",
900
+ pending: (label, n) => `${label}, ${en$2.n(n)} pending`,
901
+ submenu: (label) => `More in ${label}`
902
+ },
903
+ appLauncher: {
904
+ actions: "Actions",
905
+ more: (label) => `More for ${label}`,
906
+ shortcuts: (label) => `Shortcuts of ${label}`,
907
+ withCount: (label, n) => `${label}, ${en$2.n(n)} new`,
908
+ withAlerts: (label, n) => `${label}, ${en$2.n(n)} ${en$2.word(n, {
909
+ one: "alert",
910
+ other: "alerts"
911
+ })}`,
912
+ profileLoading: "Loading the profile",
913
+ profile: "Profile"
914
+ },
915
+ commandPalette: {
916
+ label: "Search and commands",
917
+ placeholder: "Search or type a command",
918
+ empty: "Type to search records, sources and screens.",
919
+ noResults: (q) => `Nothing matches “${q}”.`,
920
+ loading: "Loading results",
921
+ removeScope: (s) => `Remove scope ${s}`,
922
+ actionsFor: (item) => `Actions for ${item}`,
923
+ recent: "Recent",
924
+ results: (n) => `${en$2.n(n)} ${en$2.word(n, {
925
+ one: "result",
926
+ other: "results"
927
+ })}`,
928
+ scopes: "Scopes",
929
+ fallback: "Other actions",
930
+ hints: {
931
+ navigate: "move",
932
+ select: "open",
933
+ actions: "actions",
934
+ back: "back",
935
+ close: "close"
936
+ }
937
+ },
938
+ longPressMenu: { hint: "More actions: long press, right click or Shift+F10." },
939
+ floatingActionButton: { busy: "Working" },
940
+ stepList: {
941
+ position: (n, total) => `Step ${en$2.n(n)} of ${en$2.n(total)}`,
942
+ status: {
943
+ complete: "completed",
944
+ current: "current",
945
+ upcoming: "not started"
946
+ }
947
+ },
948
+ pageDots: {
949
+ label: "Pages",
950
+ dot: (n, total) => `Page ${en$2.n(n)} of ${en$2.n(total)}`,
951
+ counter: (n, total) => `${en$2.n(n)} of ${en$2.n(total)}`
952
+ },
953
+ wizardPage: {
954
+ previous: "Previous",
955
+ next: "Next",
956
+ cancel: "Cancel",
957
+ submit: "Submit",
958
+ submitting: "Submitting",
959
+ close: "Close",
960
+ actions: "Step actions",
961
+ documentTitle: (step, flow) => `${step}: ${flow}`
962
+ }
963
+ };
964
+ const overlaysNavPtBR = {
965
+ sectionedModal: {
966
+ close: "Fechar",
967
+ cancel: "Cancelar",
968
+ save: "Salvar",
969
+ sectionPicker: "Seção"
970
+ },
971
+ settingsDialog: {
972
+ placeholder: "Ainda não há o que configurar nesta seção.",
973
+ copy: (f) => `Copiar ${f}`,
974
+ copied: "Copiado",
975
+ changePicture: "Trocar foto",
976
+ currentPassword: "Senha atual",
977
+ newPassword: "Nova senha",
978
+ confirmPassword: "Confirme a nova senha",
979
+ changePassword: "Trocar senha",
980
+ passwordMismatch: "As duas senhas novas são diferentes."
981
+ },
982
+ confirm: {
983
+ confirm: "Confirmar",
984
+ cancel: "Cancelar",
985
+ caution: "Atenção"
986
+ },
987
+ detailsPopover: { tone: {
988
+ success: "Sucesso",
989
+ pending: "Pendente",
990
+ error: "Erro"
991
+ } },
992
+ navigationFlyout: {
993
+ title: "Navegação",
994
+ search: "Buscar destinos",
995
+ noResults: "Nenhum destino corresponde à busca.",
996
+ count: (n) => `${pt$2.n(n)} ${pt$2.word(n, {
997
+ one: "destino",
998
+ other: "destinos"
999
+ })}`,
1000
+ notifications: "Notificações",
1001
+ unseen: (n) => `${pt$2.n(n)} ${pt$2.word(n, {
1002
+ one: "não vista",
1003
+ other: "não vistas"
1004
+ })}`,
1005
+ darkTheme: "Tema escuro",
1006
+ profile: "Perfil",
1007
+ signOut: "Sair",
1008
+ destinations: "Destinos"
1009
+ },
1010
+ appNavigation: {
1011
+ landmark: "Navegação principal",
1012
+ home: "Início",
1013
+ profile: "Perfil",
1014
+ signOut: "Sair",
1015
+ theme: "Tema",
1016
+ themeLight: "Claro",
1017
+ themeDark: "Escuro",
1018
+ language: "Idioma",
1019
+ account: "Conta",
1020
+ openMenu: "Abrir navegação",
1021
+ closeMenu: "Fechar navegação",
1022
+ collapse: "Recolher navegação",
1023
+ expand: "Expandir navegação",
1024
+ pending: (label, n) => `${label}, ${pt$2.n(n)} ${pt$2.word(n, {
1025
+ one: "pendente",
1026
+ other: "pendentes"
1027
+ })}`,
1028
+ submenu: (label) => `Mais em ${label}`
1029
+ },
1030
+ appLauncher: {
1031
+ actions: "Ações",
1032
+ more: (label) => `Mais opções de ${label}`,
1033
+ shortcuts: (label) => `Atalhos de ${label}`,
1034
+ withCount: (label, n) => `${label}, ${pt$2.n(n)} ${pt$2.word(n, {
1035
+ one: "novo",
1036
+ other: "novos"
1037
+ })}`,
1038
+ withAlerts: (label, n) => `${label}, ${pt$2.n(n)} ${pt$2.word(n, {
1039
+ one: "alerta",
1040
+ other: "alertas"
1041
+ })}`,
1042
+ profileLoading: "Carregando o perfil",
1043
+ profile: "Perfil"
1044
+ },
1045
+ commandPalette: {
1046
+ label: "Busca e comandos",
1047
+ placeholder: "Busque ou digite um comando",
1048
+ empty: "Digite para buscar registros, fontes e telas.",
1049
+ noResults: (q) => `Nada corresponde a “${q}”.`,
1050
+ loading: "Carregando resultados",
1051
+ removeScope: (s) => `Remover o escopo ${s}`,
1052
+ actionsFor: (item) => `Ações de ${item}`,
1053
+ recent: "Recentes",
1054
+ results: (n) => `${pt$2.n(n)} ${pt$2.word(n, {
1055
+ one: "resultado",
1056
+ other: "resultados"
1057
+ })}`,
1058
+ scopes: "Escopos",
1059
+ fallback: "Outras ações",
1060
+ hints: {
1061
+ navigate: "mover",
1062
+ select: "abrir",
1063
+ actions: "ações",
1064
+ back: "voltar",
1065
+ close: "fechar"
1066
+ }
1067
+ },
1068
+ longPressMenu: { hint: "Mais ações: toque longo, clique direito ou Shift+F10." },
1069
+ floatingActionButton: { busy: "Processando" },
1070
+ stepList: {
1071
+ position: (n, total) => `Etapa ${pt$2.n(n)} de ${pt$2.n(total)}`,
1072
+ status: {
1073
+ complete: "concluída",
1074
+ current: "atual",
1075
+ upcoming: "não iniciada"
1076
+ }
1077
+ },
1078
+ pageDots: {
1079
+ label: "Páginas",
1080
+ dot: (n, total) => `Página ${pt$2.n(n)} de ${pt$2.n(total)}`,
1081
+ counter: (n, total) => `${pt$2.n(n)} de ${pt$2.n(total)}`
1082
+ },
1083
+ wizardPage: {
1084
+ previous: "Anterior",
1085
+ next: "Próxima",
1086
+ cancel: "Cancelar",
1087
+ submit: "Enviar",
1088
+ submitting: "Enviando",
1089
+ close: "Fechar",
1090
+ actions: "Ações da etapa",
1091
+ documentTitle: (step, flow) => `${step}: ${flow}`
1092
+ }
1093
+ };
1094
+ /** Spanish (neutral Latin American). */
1095
+ const overlaysNavEs = {
1096
+ sectionedModal: {
1097
+ close: "Cerrar",
1098
+ cancel: "Cancelar",
1099
+ save: "Guardar",
1100
+ sectionPicker: "Sección"
1101
+ },
1102
+ settingsDialog: {
1103
+ placeholder: "Todavía no hay nada que configurar en esta sección.",
1104
+ copy: (f) => `Copiar ${f}`,
1105
+ copied: "Copiado",
1106
+ changePicture: "Cambiar imagen",
1107
+ currentPassword: "Contraseña actual",
1108
+ newPassword: "Contraseña nueva",
1109
+ confirmPassword: "Confirme la contraseña nueva",
1110
+ changePassword: "Cambiar contraseña",
1111
+ passwordMismatch: "Las dos contraseñas nuevas son distintas."
1112
+ },
1113
+ confirm: {
1114
+ confirm: "Confirmar",
1115
+ cancel: "Cancelar",
1116
+ caution: "Atención"
1117
+ },
1118
+ detailsPopover: { tone: {
1119
+ success: "Éxito",
1120
+ pending: "Pendiente",
1121
+ error: "Error"
1122
+ } },
1123
+ navigationFlyout: {
1124
+ title: "Navegación",
1125
+ search: "Buscar destinos",
1126
+ noResults: "Ningún destino coincide con esta búsqueda.",
1127
+ count: (n) => `${es$2.n(n)} ${es$2.word(n, {
1128
+ one: "destino",
1129
+ other: "destinos"
1130
+ })}`,
1131
+ notifications: "Notificaciones",
1132
+ unseen: (n) => `${es$2.n(n)} ${es$2.word(n, {
1133
+ one: "sin ver",
1134
+ other: "sin ver"
1135
+ })}`,
1136
+ darkTheme: "Tema oscuro",
1137
+ profile: "Perfil",
1138
+ signOut: "Cerrar sesión",
1139
+ destinations: "Destinos"
1140
+ },
1141
+ appNavigation: {
1142
+ landmark: "Navegación principal",
1143
+ home: "Inicio",
1144
+ profile: "Perfil",
1145
+ signOut: "Cerrar sesión",
1146
+ theme: "Tema",
1147
+ themeLight: "Claro",
1148
+ themeDark: "Oscuro",
1149
+ language: "Idioma",
1150
+ account: "Cuenta",
1151
+ openMenu: "Abrir navegación",
1152
+ closeMenu: "Cerrar navegación",
1153
+ collapse: "Contraer navegación",
1154
+ expand: "Expandir navegación",
1155
+ pending: (label, n) => `${label}, ${es$2.n(n)} ${es$2.word(n, {
1156
+ one: "pendiente",
1157
+ other: "pendientes"
1158
+ })}`,
1159
+ submenu: (label) => `Más en ${label}`
1160
+ },
1161
+ appLauncher: {
1162
+ actions: "Acciones",
1163
+ more: (label) => `Más para ${label}`,
1164
+ shortcuts: (label) => `Atajos de ${label}`,
1165
+ withCount: (label, n) => `${label}, ${es$2.n(n)} ${es$2.word(n, {
1166
+ one: "nuevo",
1167
+ other: "nuevos"
1168
+ })}`,
1169
+ withAlerts: (label, n) => `${label}, ${es$2.n(n)} ${es$2.word(n, {
1170
+ one: "alerta",
1171
+ other: "alertas"
1172
+ })}`,
1173
+ profileLoading: "Cargando el perfil",
1174
+ profile: "Perfil"
1175
+ },
1176
+ commandPalette: {
1177
+ label: "Búsqueda y comandos",
1178
+ placeholder: "Busque o escriba un comando",
1179
+ empty: "Escriba para buscar registros, fuentes y pantallas.",
1180
+ noResults: (q) => `Nada coincide con «${q}».`,
1181
+ loading: "Cargando resultados",
1182
+ removeScope: (s) => `Quitar el ámbito ${s}`,
1183
+ actionsFor: (item) => `Acciones de ${item}`,
1184
+ recent: "Recientes",
1185
+ results: (n) => `${es$2.n(n)} ${es$2.word(n, {
1186
+ one: "resultado",
1187
+ other: "resultados"
1188
+ })}`,
1189
+ scopes: "Ámbitos",
1190
+ fallback: "Otras acciones",
1191
+ hints: {
1192
+ navigate: "mover",
1193
+ select: "abrir",
1194
+ actions: "acciones",
1195
+ back: "volver",
1196
+ close: "cerrar"
1197
+ }
1198
+ },
1199
+ longPressMenu: { hint: "Más acciones: mantenga pulsado, clic derecho o Mayús+F10." },
1200
+ floatingActionButton: { busy: "Trabajando" },
1201
+ stepList: {
1202
+ position: (n, total) => `Paso ${es$2.n(n)} de ${es$2.n(total)}`,
1203
+ status: {
1204
+ complete: "completado",
1205
+ current: "actual",
1206
+ upcoming: "sin empezar"
1207
+ }
1208
+ },
1209
+ pageDots: {
1210
+ label: "Páginas",
1211
+ dot: (n, total) => `Página ${es$2.n(n)} de ${es$2.n(total)}`,
1212
+ counter: (n, total) => `${es$2.n(n)} de ${es$2.n(total)}`
1213
+ },
1214
+ wizardPage: {
1215
+ previous: "Anterior",
1216
+ next: "Siguiente",
1217
+ cancel: "Cancelar",
1218
+ submit: "Enviar",
1219
+ submitting: "Enviando",
1220
+ close: "Cerrar",
1221
+ actions: "Acciones del paso",
1222
+ documentTitle: (step, flow) => `${step}: ${flow}`
1223
+ }
1224
+ };
1225
+ //#endregion
1226
+ //#region src/internal/messages/data-a.ts
1227
+ const en$1 = speaker("en");
1228
+ const pt$1 = speaker("pt-BR");
1229
+ const es$1 = speaker("es");
1230
+ /** "n units ago" in the catalogue's language (Intl.RelativeTimeFormat). */
1231
+ const ago = (language, unit) => (n) => new Intl.RelativeTimeFormat(language, { numeric: "auto" }).format(-n, unit);
1232
+ const dataAEn = {
1233
+ listRow: { current: "Current" },
1234
+ countBadge: {
1235
+ item: {
1236
+ one: "item",
1237
+ other: "items"
1238
+ },
1239
+ describe: (n, noun) => `${en$1.n(n)} ${noun}`
1240
+ },
1241
+ notificationCenter: {
1242
+ bell: "Notifications",
1243
+ bellUnseen: (label, n) => `${label}, ${en$1.n(n)} unread`,
1244
+ title: "Notifications",
1245
+ clearAll: "Clear all",
1246
+ cleared: "Notifications cleared",
1247
+ empty: "There are no notifications in this session.",
1248
+ dismiss: (title) => `Dismiss, ${title}`,
1249
+ tone: {
1250
+ success: "Success",
1251
+ error: "Error",
1252
+ warning: "Warning",
1253
+ info: "Information"
1254
+ },
1255
+ time: {
1256
+ justNow: "just now",
1257
+ minutes: ago("en", "minute"),
1258
+ hours: ago("en", "hour"),
1259
+ days: ago("en", "day")
1260
+ }
1261
+ },
1262
+ profileAvatar: { profile: "Profile" },
1263
+ copyIdentifier: {
1264
+ copy: "Copy",
1265
+ copied: "copied",
1266
+ copiedStatus: (v) => `Copied ${v}`,
1267
+ failed: "Copying failed. Select the text to copy it by hand."
1268
+ },
1269
+ recoveryCodes: {
1270
+ hidden: "The recovery codes are hidden.",
1271
+ reveal: "Show codes",
1272
+ copyAll: "Copy all",
1273
+ copied: "Copied",
1274
+ copyFailed: "The clipboard is not available. Select the codes to copy them.",
1275
+ download: "Download",
1276
+ fileTitle: "Recovery codes",
1277
+ generatedAt: (iso) => `Generated at ${iso}`,
1278
+ keepSafe: "Keep these codes somewhere safe. Each code works once.",
1279
+ fileName: "recovery-codes.txt",
1280
+ listLabel: "Recovery codes"
1281
+ },
1282
+ markdown: { codeBlock: (lang) => lang ? `Code block, ${lang}` : "Code block" }
1283
+ };
1284
+ const dataAPtBR = {
1285
+ listRow: { current: "Atual" },
1286
+ countBadge: {
1287
+ item: {
1288
+ one: "item",
1289
+ other: "itens"
1290
+ },
1291
+ describe: (n, noun) => `${pt$1.n(n)} ${noun}`
1292
+ },
1293
+ notificationCenter: {
1294
+ bell: "Notificações",
1295
+ bellUnseen: (label, n) => `${label}, ${pt$1.n(n)} ${pt$1.word(n, {
1296
+ one: "não lida",
1297
+ other: "não lidas"
1298
+ })}`,
1299
+ title: "Notificações",
1300
+ clearAll: "Limpar tudo",
1301
+ cleared: "Notificações apagadas",
1302
+ empty: "Não há notificações nesta sessão.",
1303
+ dismiss: (title) => `Dispensar, ${title}`,
1304
+ tone: {
1305
+ success: "Sucesso",
1306
+ error: "Erro",
1307
+ warning: "Atenção",
1308
+ info: "Informação"
1309
+ },
1310
+ time: {
1311
+ justNow: "agora mesmo",
1312
+ minutes: ago("pt-BR", "minute"),
1313
+ hours: ago("pt-BR", "hour"),
1314
+ days: ago("pt-BR", "day")
1315
+ }
1316
+ },
1317
+ profileAvatar: { profile: "Perfil" },
1318
+ copyIdentifier: {
1319
+ copy: "Copiar",
1320
+ copied: "copiado",
1321
+ copiedStatus: (v) => `${v} copiado`,
1322
+ failed: "Não foi possível copiar. Selecione o texto para copiar à mão."
1323
+ },
1324
+ recoveryCodes: {
1325
+ hidden: "Os códigos de recuperação estão ocultos.",
1326
+ reveal: "Mostrar códigos",
1327
+ copyAll: "Copiar todos",
1328
+ copied: "Copiados",
1329
+ copyFailed: "A área de transferência não está disponível. Selecione os códigos para copiá-los.",
1330
+ download: "Baixar",
1331
+ fileTitle: "Códigos de recuperação",
1332
+ generatedAt: (iso) => `Gerados em ${iso}`,
1333
+ keepSafe: "Guarde estes códigos em lugar seguro. Cada código funciona uma vez.",
1334
+ fileName: "codigos-de-recuperacao.txt",
1335
+ listLabel: "Códigos de recuperação"
1336
+ },
1337
+ markdown: { codeBlock: (lang) => lang ? `Bloco de código, ${lang}` : "Bloco de código" }
1338
+ };
1339
+ /** Spanish (neutral Latin American). */
1340
+ const dataAEs = {
1341
+ listRow: { current: "Actual" },
1342
+ countBadge: {
1343
+ item: {
1344
+ one: "elemento",
1345
+ other: "elementos"
1346
+ },
1347
+ describe: (n, noun) => `${es$1.n(n)} ${noun}`
1348
+ },
1349
+ notificationCenter: {
1350
+ bell: "Notificaciones",
1351
+ bellUnseen: (label, n) => `${label}, ${es$1.n(n)} ${es$1.word(n, {
1352
+ one: "sin leer",
1353
+ other: "sin leer"
1354
+ })}`,
1355
+ title: "Notificaciones",
1356
+ clearAll: "Borrar todo",
1357
+ cleared: "Notificaciones borradas",
1358
+ empty: "No hay notificaciones en esta sesión.",
1359
+ dismiss: (title) => `Descartar, ${title}`,
1360
+ tone: {
1361
+ success: "Éxito",
1362
+ error: "Error",
1363
+ warning: "Atención",
1364
+ info: "Información"
1365
+ },
1366
+ time: {
1367
+ justNow: "ahora mismo",
1368
+ minutes: ago("es", "minute"),
1369
+ hours: ago("es", "hour"),
1370
+ days: ago("es", "day")
1371
+ }
1372
+ },
1373
+ profileAvatar: { profile: "Perfil" },
1374
+ copyIdentifier: {
1375
+ copy: "Copiar",
1376
+ copied: "copiado",
1377
+ copiedStatus: (v) => `${v} copiado`,
1378
+ failed: "No se pudo copiar. Seleccione el texto para copiarlo a mano."
1379
+ },
1380
+ recoveryCodes: {
1381
+ hidden: "Los códigos de recuperación están ocultos.",
1382
+ reveal: "Mostrar códigos",
1383
+ copyAll: "Copiar todos",
1384
+ copied: "Copiados",
1385
+ copyFailed: "El portapapeles no está disponible. Seleccione los códigos para copiarlos.",
1386
+ download: "Descargar",
1387
+ fileTitle: "Códigos de recuperación",
1388
+ generatedAt: (iso) => `Generados el ${iso}`,
1389
+ keepSafe: "Guarde estos códigos en un lugar seguro. Cada código funciona una sola vez.",
1390
+ fileName: "codigos-de-recuperacion.txt",
1391
+ listLabel: "Códigos de recuperación"
1392
+ },
1393
+ markdown: { codeBlock: (lang) => lang ? `Bloque de código, ${lang}` : "Bloque de código" }
1394
+ };
1395
+ //#endregion
1396
+ //#region src/internal/messages/data-b.ts
1397
+ const dataBEn = {
1398
+ statTile: {
1399
+ filtered: "filtered",
1400
+ explain: (label) => `How "${label}" is computed`,
1401
+ attention: "needs action"
1402
+ },
1403
+ delta: {
1404
+ up: "up",
1405
+ down: "down",
1406
+ flat: "no change"
1407
+ },
1408
+ agentOutput: {
1409
+ outcome: {
1410
+ completed: "completed",
1411
+ failed: "failed",
1412
+ pending: "pending"
1413
+ },
1414
+ duration: (d) => `took ${d}`
1415
+ },
1416
+ recordCard: {
1417
+ cancel: "Cancel",
1418
+ working: "Working"
1419
+ },
1420
+ contact: {
1421
+ email: "E-mail",
1422
+ phone: "Phone"
1423
+ },
1424
+ insight: {
1425
+ actions: "Actions on this proposal",
1426
+ pending: "Working",
1427
+ proposedBy: "Proposed by",
1428
+ failed: "The action could not be completed."
1429
+ },
1430
+ ticker: {
1431
+ value: "value",
1432
+ change: "change",
1433
+ empty: "No entries to show.",
1434
+ loading: "Loading entries"
1435
+ }
1436
+ };
1437
+ const dataBPtBR = {
1438
+ statTile: {
1439
+ filtered: "filtrado",
1440
+ explain: (label) => `Como "${label}" é calculado`,
1441
+ attention: "pede ação"
1442
+ },
1443
+ delta: {
1444
+ up: "subiu",
1445
+ down: "caiu",
1446
+ flat: "sem mudança"
1447
+ },
1448
+ agentOutput: {
1449
+ outcome: {
1450
+ completed: "concluída",
1451
+ failed: "falhou",
1452
+ pending: "pendente"
1453
+ },
1454
+ duration: (d) => `levou ${d}`
1455
+ },
1456
+ recordCard: {
1457
+ cancel: "Cancelar",
1458
+ working: "Processando"
1459
+ },
1460
+ contact: {
1461
+ email: "E-mail",
1462
+ phone: "Telefone"
1463
+ },
1464
+ insight: {
1465
+ actions: "Ações sobre esta proposta",
1466
+ pending: "Processando",
1467
+ proposedBy: "Proposta de",
1468
+ failed: "Não foi possível concluir a ação."
1469
+ },
1470
+ ticker: {
1471
+ value: "valor",
1472
+ change: "variação",
1473
+ empty: "Nenhuma entrada para mostrar.",
1474
+ loading: "Carregando entradas"
1475
+ }
1476
+ };
1477
+ const dataBEs = {
1478
+ statTile: {
1479
+ filtered: "filtrado",
1480
+ explain: (label) => `Cómo se calcula «${label}»`,
1481
+ attention: "requiere acción"
1482
+ },
1483
+ delta: {
1484
+ up: "subió",
1485
+ down: "bajó",
1486
+ flat: "sin cambios"
1487
+ },
1488
+ agentOutput: {
1489
+ outcome: {
1490
+ completed: "completada",
1491
+ failed: "falló",
1492
+ pending: "pendiente"
1493
+ },
1494
+ duration: (d) => `tardó ${d}`
1495
+ },
1496
+ recordCard: {
1497
+ cancel: "Cancelar",
1498
+ working: "Procesando"
1499
+ },
1500
+ contact: {
1501
+ email: "Correo electrónico",
1502
+ phone: "Teléfono"
1503
+ },
1504
+ insight: {
1505
+ actions: "Acciones sobre esta propuesta",
1506
+ pending: "Procesando",
1507
+ proposedBy: "Propuesta de",
1508
+ failed: "No se pudo completar la acción."
1509
+ },
1510
+ ticker: {
1511
+ value: "valor",
1512
+ change: "variación",
1513
+ empty: "No hay entradas para mostrar.",
1514
+ loading: "Cargando entradas"
1515
+ }
1516
+ };
1517
+ //#endregion
1518
+ //#region src/internal/messages/charts-geo.ts
1519
+ const chartsGeoEn = {
1520
+ chart: {
1521
+ viewSwitch: "Show as",
1522
+ chartView: "Chart",
1523
+ tableView: "Table",
1524
+ noData: "No data to plot",
1525
+ noDataHint: "The chart appears once the analysis returns values.",
1526
+ plotHint: (title) => `${title}. Use the arrow keys to read each value.`,
1527
+ readout: (category, series, value) => `${category}, ${series}: ${value}`,
1528
+ missing: "no value",
1529
+ categoryColumn: "Category",
1530
+ legend: "Legend"
1531
+ },
1532
+ report: {
1533
+ empty: "This report is empty",
1534
+ emptyHint: "Content appears here when the run produces it.",
1535
+ noValue: "no value",
1536
+ recommendation: "Recommendation",
1537
+ unknownSection: (kind) => `Section of an unknown kind (${kind})`,
1538
+ inputRequestPending: "Waiting for input",
1539
+ receipt: {
1540
+ description: "Description",
1541
+ quantity: "Quantity",
1542
+ unitPrice: "Unit price",
1543
+ total: "Total",
1544
+ subtotal: "Subtotal",
1545
+ tax: "Tax",
1546
+ grandTotal: "Total due"
1547
+ },
1548
+ approval: {
1549
+ approved: "Approved",
1550
+ rejected: "Rejected",
1551
+ pending: "Pending",
1552
+ by: (who) => `by ${who}`,
1553
+ prompt: "Original request",
1554
+ reason: "Reason"
1555
+ },
1556
+ document: {
1557
+ identifier: "Identifier",
1558
+ accessKey: "Access key",
1559
+ number: "Number",
1560
+ series: "Series",
1561
+ environment: "Environment",
1562
+ open: "Open document"
1563
+ },
1564
+ lifecycle: {
1565
+ complete: "complete",
1566
+ current: "current",
1567
+ upcoming: "upcoming"
1568
+ },
1569
+ score: {
1570
+ outOf: (score) => `${new Intl.NumberFormat("en").format(score)} of ${new Intl.NumberFormat("en").format(100)}`,
1571
+ reasoning: "Reasoning"
1572
+ },
1573
+ duration: (s) => new Intl.NumberFormat("en", {
1574
+ style: "unit",
1575
+ unit: "second",
1576
+ unitDisplay: "short"
1577
+ }).format(s),
1578
+ meta: "Report details"
1579
+ },
1580
+ liveReport: {
1581
+ phase: {
1582
+ pending: "Pending",
1583
+ running: "Running",
1584
+ paused: "Paused",
1585
+ completed: "Completed",
1586
+ failed: "Failed",
1587
+ cancelled: "Cancelled"
1588
+ },
1589
+ step: {
1590
+ running: "running",
1591
+ done: "done",
1592
+ failed: "failed",
1593
+ paused: "paused"
1594
+ },
1595
+ steps: "Steps",
1596
+ waiting: "Waiting for data",
1597
+ pausedWaiting: "Paused, waiting for input",
1598
+ failed: "The run failed",
1599
+ approve: "Approve",
1600
+ reject: "Reject"
1601
+ },
1602
+ regionMap: {
1603
+ map: "Map of regions",
1604
+ zoomIn: "Zoom in",
1605
+ zoomOut: "Zoom out",
1606
+ zoomValue: (p) => `Zoom ${new Intl.NumberFormat("en", { style: "percent" }).format(p / 100)}`,
1607
+ legendTitle: "Regions with most items",
1608
+ more: (n) => `+${new Intl.NumberFormat("en").format(n)} more`,
1609
+ regionList: "Regions",
1610
+ regionItems: (name, count) => `${name}, ${new Intl.NumberFormat("en").format(count)} ${new Intl.PluralRules("en").select(count) === "one" ? "item" : "items"}`,
1611
+ loadError: "The map shapes could not be loaded. The list of regions still works.",
1612
+ loading: "Loading the map"
1613
+ },
1614
+ regionKind: {
1615
+ state: "State",
1616
+ province: "Province",
1617
+ region: "Region",
1618
+ department: "Department",
1619
+ governorate: "Governorate",
1620
+ prefecture: "Prefecture",
1621
+ county: "County",
1622
+ voivodeship: "Voivodeship",
1623
+ district: "District",
1624
+ nation: "Nation"
1625
+ }
1626
+ };
1627
+ const chartsGeoPtBR = {
1628
+ chart: {
1629
+ viewSwitch: "Mostrar como",
1630
+ chartView: "Gráfico",
1631
+ tableView: "Tabela",
1632
+ noData: "Sem dados para o gráfico",
1633
+ noDataHint: "O gráfico aparece quando a análise devolver valores.",
1634
+ plotHint: (title) => `${title}. Use as setas para ler cada valor.`,
1635
+ readout: (category, series, value) => `${category}, ${series}: ${value}`,
1636
+ missing: "sem valor",
1637
+ categoryColumn: "Categoria",
1638
+ legend: "Legenda"
1639
+ },
1640
+ report: {
1641
+ empty: "Este relatório está vazio",
1642
+ emptyHint: "O conteúdo aparece aqui quando a execução o produzir.",
1643
+ noValue: "sem valor",
1644
+ recommendation: "Recomendação",
1645
+ unknownSection: (kind) => `Seção de tipo desconhecido (${kind})`,
1646
+ inputRequestPending: "Aguardando resposta",
1647
+ receipt: {
1648
+ description: "Descrição",
1649
+ quantity: "Quantidade",
1650
+ unitPrice: "Preço unitário",
1651
+ total: "Total",
1652
+ subtotal: "Subtotal",
1653
+ tax: "Imposto",
1654
+ grandTotal: "Total devido"
1655
+ },
1656
+ approval: {
1657
+ approved: "Aprovado",
1658
+ rejected: "Rejeitado",
1659
+ pending: "Pendente",
1660
+ by: (who) => `por ${who}`,
1661
+ prompt: "Pedido original",
1662
+ reason: "Motivo"
1663
+ },
1664
+ document: {
1665
+ identifier: "Identificador",
1666
+ accessKey: "Chave de acesso",
1667
+ number: "Número",
1668
+ series: "Série",
1669
+ environment: "Ambiente",
1670
+ open: "Abrir documento"
1671
+ },
1672
+ lifecycle: {
1673
+ complete: "concluída",
1674
+ current: "atual",
1675
+ upcoming: "próxima"
1676
+ },
1677
+ score: {
1678
+ outOf: (score) => `${new Intl.NumberFormat("pt-BR").format(score)} de ${new Intl.NumberFormat("pt-BR").format(100)}`,
1679
+ reasoning: "Justificativa"
1680
+ },
1681
+ duration: (s) => new Intl.NumberFormat("pt-BR", {
1682
+ style: "unit",
1683
+ unit: "second",
1684
+ unitDisplay: "short"
1685
+ }).format(s),
1686
+ meta: "Detalhes do relatório"
1687
+ },
1688
+ liveReport: {
1689
+ phase: {
1690
+ pending: "Pendente",
1691
+ running: "Em execução",
1692
+ paused: "Pausada",
1693
+ completed: "Concluída",
1694
+ failed: "Falhou",
1695
+ cancelled: "Cancelada"
1696
+ },
1697
+ step: {
1698
+ running: "em execução",
1699
+ done: "concluído",
1700
+ failed: "falhou",
1701
+ paused: "pausado"
1702
+ },
1703
+ steps: "Passos",
1704
+ waiting: "Aguardando dados",
1705
+ pausedWaiting: "Pausada, aguardando resposta",
1706
+ failed: "A execução falhou",
1707
+ approve: "Aprovar",
1708
+ reject: "Rejeitar"
1709
+ },
1710
+ regionMap: {
1711
+ map: "Mapa das regiões",
1712
+ zoomIn: "Aproximar",
1713
+ zoomOut: "Afastar",
1714
+ zoomValue: (p) => `Zoom ${new Intl.NumberFormat("pt-BR", { style: "percent" }).format(p / 100)}`,
1715
+ legendTitle: "Regiões com mais itens",
1716
+ more: (n) => `+${new Intl.NumberFormat("pt-BR").format(n)} outras`,
1717
+ regionList: "Regiões",
1718
+ regionItems: (name, count) => `${name}, ${new Intl.NumberFormat("pt-BR").format(count)} ${new Intl.PluralRules("pt-BR").select(count) === "one" ? "item" : "itens"}`,
1719
+ loadError: "Não foi possível carregar as formas do mapa. A lista de regiões continua funcionando.",
1720
+ loading: "Carregando o mapa"
1721
+ },
1722
+ regionKind: {
1723
+ state: "Estado",
1724
+ province: "Província",
1725
+ region: "Região",
1726
+ department: "Departamento",
1727
+ governorate: "Governadoria",
1728
+ prefecture: "Prefeitura",
1729
+ county: "Condado",
1730
+ voivodeship: "Voivodia",
1731
+ district: "Distrito",
1732
+ nation: "Nação"
1733
+ }
1734
+ };
1735
+ const chartsGeoEs = {
1736
+ chart: {
1737
+ viewSwitch: "Mostrar como",
1738
+ chartView: "Gráfico",
1739
+ tableView: "Tabla",
1740
+ noData: "No hay datos para el gráfico",
1741
+ noDataHint: "El gráfico aparece cuando el análisis devuelve valores.",
1742
+ plotHint: (title) => `${title}. Use las flechas para leer cada valor.`,
1743
+ readout: (category, series, value) => `${category}, ${series}: ${value}`,
1744
+ missing: "sin valor",
1745
+ categoryColumn: "Categoría",
1746
+ legend: "Leyenda"
1747
+ },
1748
+ report: {
1749
+ empty: "Este informe está vacío",
1750
+ emptyHint: "El contenido aparece aquí cuando la ejecución lo produce.",
1751
+ noValue: "sin valor",
1752
+ recommendation: "Recomendación",
1753
+ unknownSection: (kind) => `Sección de un tipo desconocido (${kind})`,
1754
+ inputRequestPending: "Esperando respuesta",
1755
+ receipt: {
1756
+ description: "Descripción",
1757
+ quantity: "Cantidad",
1758
+ unitPrice: "Precio unitario",
1759
+ total: "Total",
1760
+ subtotal: "Subtotal",
1761
+ tax: "Impuesto",
1762
+ grandTotal: "Total a pagar"
1763
+ },
1764
+ approval: {
1765
+ approved: "Aprobado",
1766
+ rejected: "Rechazado",
1767
+ pending: "Pendiente",
1768
+ by: (who) => `por ${who}`,
1769
+ prompt: "Solicitud original",
1770
+ reason: "Motivo"
1771
+ },
1772
+ document: {
1773
+ identifier: "Identificador",
1774
+ accessKey: "Clave de acceso",
1775
+ number: "Número",
1776
+ series: "Serie",
1777
+ environment: "Entorno",
1778
+ open: "Abrir documento"
1779
+ },
1780
+ lifecycle: {
1781
+ complete: "concluida",
1782
+ current: "actual",
1783
+ upcoming: "siguiente"
1784
+ },
1785
+ score: {
1786
+ outOf: (score) => `${new Intl.NumberFormat("es").format(score)} de ${new Intl.NumberFormat("es").format(100)}`,
1787
+ reasoning: "Justificación"
1788
+ },
1789
+ duration: (s) => new Intl.NumberFormat("es", {
1790
+ style: "unit",
1791
+ unit: "second",
1792
+ unitDisplay: "short"
1793
+ }).format(s),
1794
+ meta: "Detalles del informe"
1795
+ },
1796
+ liveReport: {
1797
+ phase: {
1798
+ pending: "Pendiente",
1799
+ running: "En ejecución",
1800
+ paused: "En pausa",
1801
+ completed: "Completada",
1802
+ failed: "Falló",
1803
+ cancelled: "Cancelada"
1804
+ },
1805
+ step: {
1806
+ running: "en ejecución",
1807
+ done: "hecho",
1808
+ failed: "falló",
1809
+ paused: "en pausa"
1810
+ },
1811
+ steps: "Pasos",
1812
+ waiting: "Esperando datos",
1813
+ pausedWaiting: "En pausa, esperando respuesta",
1814
+ failed: "La ejecución falló",
1815
+ approve: "Aprobar",
1816
+ reject: "Rechazar"
1817
+ },
1818
+ regionMap: {
1819
+ map: "Mapa de las regiones",
1820
+ zoomIn: "Acercar",
1821
+ zoomOut: "Alejar",
1822
+ zoomValue: (p) => `Zoom ${new Intl.NumberFormat("es", { style: "percent" }).format(p / 100)}`,
1823
+ legendTitle: "Regiones con más elementos",
1824
+ more: (n) => `+${new Intl.NumberFormat("es").format(n)} más`,
1825
+ regionList: "Regiones",
1826
+ regionItems: (name, count) => `${name}, ${new Intl.NumberFormat("es").format(count)} ${new Intl.PluralRules("es").select(count) === "one" ? "elemento" : "elementos"}`,
1827
+ loadError: "No se pudieron cargar las formas del mapa. La lista de regiones sigue funcionando.",
1828
+ loading: "Cargando el mapa"
1829
+ },
1830
+ regionKind: {
1831
+ state: "Estado",
1832
+ province: "Provincia",
1833
+ region: "Región",
1834
+ department: "Departamento",
1835
+ governorate: "Gobernación",
1836
+ prefecture: "Prefectura",
1837
+ county: "Condado",
1838
+ voivodeship: "Voivodato",
1839
+ district: "Distrito",
1840
+ nation: "Nación"
1841
+ }
1842
+ };
1843
+ //#endregion
1844
+ //#region src/internal/messages/auth-brand.ts
1845
+ const authBrandEn = {
1846
+ brand: { productName: "Tympan" },
1847
+ federatedSignIn: {
1848
+ continueWith: (p) => `Continue with ${p}`,
1849
+ groupLabel: "Other ways to sign in"
1850
+ },
1851
+ providerMark: { otherProvider: "Other provider" },
1852
+ upgradeGate: {
1853
+ eyebrow: "Subscription",
1854
+ title: "Your organisation has no active plan",
1855
+ description: "Choose a plan to keep working. This screen stays until a plan is active.",
1856
+ cannotDismiss: "This message cannot be closed.",
1857
+ noticeTitle: "Projects are read only",
1858
+ noticeBody: "You can still sign out. Research data is kept and nothing is deleted.",
1859
+ viewPlans: "View plans",
1860
+ signOut: "Sign out"
1861
+ },
1862
+ httpError: {
1863
+ "not-found": {
1864
+ title: "Page not found",
1865
+ message: "The address may be wrong, or the page was moved or removed."
1866
+ },
1867
+ "bad-request": {
1868
+ title: "The request could not be read",
1869
+ message: "Something in the address or the form was not understood. Check it and try again."
1870
+ },
1871
+ "server-error": {
1872
+ title: "The server failed",
1873
+ message: "The server could not complete the request. Try again in a moment."
1874
+ },
1875
+ codeLabel: (code) => `Error ${code}`,
1876
+ problemType: "Problem type"
1877
+ },
1878
+ routeProgress: { label: "Loading page" },
1879
+ consent: {
1880
+ label: "Cookie choice",
1881
+ message: "We use essential cookies to keep you signed in. With your consent we also measure how the platform is used.",
1882
+ learnMore: "Privacy policy",
1883
+ accept: "Accept measurement",
1884
+ reject: "Only essential cookies"
1885
+ },
1886
+ environment: {
1887
+ label: "Environment",
1888
+ message: "Not the production platform. Data may be simulated.",
1889
+ appName: "App",
1890
+ port: "Port",
1891
+ apiBase: "API",
1892
+ email: "User",
1893
+ role: "Role"
1894
+ },
1895
+ legalDocument: {
1896
+ contents: "Contents",
1897
+ showContents: "Show contents"
1898
+ }
1899
+ };
1900
+ const authBrandPtBR = {
1901
+ brand: { productName: "Tympan" },
1902
+ federatedSignIn: {
1903
+ continueWith: (p) => `Continuar com ${p}`,
1904
+ groupLabel: "Outras formas de entrar"
1905
+ },
1906
+ providerMark: { otherProvider: "Outro provedor" },
1907
+ upgradeGate: {
1908
+ eyebrow: "Assinatura",
1909
+ title: "Sua organização não tem plano ativo",
1910
+ description: "Escolha um plano para continuar. Esta tela fica até que um plano esteja ativo.",
1911
+ cannotDismiss: "Esta mensagem não pode ser fechada.",
1912
+ noticeTitle: "Os projetos estão só para leitura",
1913
+ noticeBody: "Você ainda pode sair. Os dados da pesquisa são mantidos e nada é apagado.",
1914
+ viewPlans: "Ver planos",
1915
+ signOut: "Sair"
1916
+ },
1917
+ httpError: {
1918
+ "not-found": {
1919
+ title: "Página não encontrada",
1920
+ message: "O endereço pode estar errado, ou a página foi movida ou removida."
1921
+ },
1922
+ "bad-request": {
1923
+ title: "O pedido não pôde ser lido",
1924
+ message: "Algo no endereço ou no formulário não foi entendido. Confira e tente de novo."
1925
+ },
1926
+ "server-error": {
1927
+ title: "O servidor falhou",
1928
+ message: "O servidor não concluiu o pedido. Tente de novo em instantes."
1929
+ },
1930
+ codeLabel: (code) => `Erro ${code}`,
1931
+ problemType: "Tipo do problema"
1932
+ },
1933
+ routeProgress: { label: "Carregando a página" },
1934
+ consent: {
1935
+ label: "Escolha de cookies",
1936
+ message: "Usamos cookies essenciais para manter você conectado. Com seu consentimento, também medimos como a plataforma é usada.",
1937
+ learnMore: "Política de privacidade",
1938
+ accept: "Aceitar medição",
1939
+ reject: "Só cookies essenciais"
1940
+ },
1941
+ environment: {
1942
+ label: "Ambiente",
1943
+ message: "Não é a plataforma de produção. Os dados podem ser simulados.",
1944
+ appName: "App",
1945
+ port: "Porta",
1946
+ apiBase: "API",
1947
+ email: "Usuário",
1948
+ role: "Papel"
1949
+ },
1950
+ legalDocument: {
1951
+ contents: "Sumário",
1952
+ showContents: "Mostrar sumário"
1953
+ }
1954
+ };
1955
+ const authBrandEs = {
1956
+ brand: { productName: "Tympan" },
1957
+ federatedSignIn: {
1958
+ continueWith: (p) => `Continuar con ${p}`,
1959
+ groupLabel: "Otras formas de iniciar sesión"
1960
+ },
1961
+ providerMark: { otherProvider: "Otro proveedor" },
1962
+ upgradeGate: {
1963
+ eyebrow: "Suscripción",
1964
+ title: "Su organización no tiene un plan activo",
1965
+ description: "Elija un plan para seguir trabajando. Esta pantalla permanece hasta que haya un plan activo.",
1966
+ cannotDismiss: "Este mensaje no se puede cerrar.",
1967
+ noticeTitle: "Los proyectos son de solo lectura",
1968
+ noticeBody: "Todavía puede cerrar la sesión. Los datos de la investigación se conservan y no se borra nada.",
1969
+ viewPlans: "Ver planes",
1970
+ signOut: "Cerrar sesión"
1971
+ },
1972
+ httpError: {
1973
+ "not-found": {
1974
+ title: "Página no encontrada",
1975
+ message: "La dirección puede estar mal, o la página se movió o se eliminó."
1976
+ },
1977
+ "bad-request": {
1978
+ title: "No se pudo leer la solicitud",
1979
+ message: "Algo en la dirección o en el formulario no se entendió. Revíselo e inténtelo de nuevo."
1980
+ },
1981
+ "server-error": {
1982
+ title: "El servidor falló",
1983
+ message: "El servidor no completó la solicitud. Inténtelo de nuevo en un momento."
1984
+ },
1985
+ codeLabel: (code) => `Error ${code}`,
1986
+ problemType: "Tipo de problema"
1987
+ },
1988
+ routeProgress: { label: "Cargando la página" },
1989
+ consent: {
1990
+ label: "Elección de cookies",
1991
+ message: "Usamos cookies esenciales para mantener su sesión. Con su consentimiento también medimos cómo se usa la plataforma.",
1992
+ learnMore: "Política de privacidad",
1993
+ accept: "Aceptar la medición",
1994
+ reject: "Solo cookies esenciales"
1995
+ },
1996
+ environment: {
1997
+ label: "Entorno",
1998
+ message: "No es la plataforma de producción. Los datos pueden ser simulados.",
1999
+ appName: "Aplicación",
2000
+ port: "Puerto",
2001
+ apiBase: "API",
2002
+ email: "Usuario",
2003
+ role: "Rol"
2004
+ },
2005
+ legalDocument: {
2006
+ contents: "Índice",
2007
+ showContents: "Mostrar el índice"
2008
+ }
2009
+ };
2010
+ //#endregion
2011
+ //#region src/internal/messages/platform.ts
2012
+ const platformEn = {
2013
+ formatters: { placeholder: "not informed" },
2014
+ swipeRow: {
2015
+ actionsFor: (row) => `Actions for ${row}`,
2016
+ delete: "Delete",
2017
+ archive: "Archive",
2018
+ edit: "Edit",
2019
+ favourite: "Favourite"
2020
+ },
2021
+ pullToRefresh: { refreshing: "Refreshing" },
2022
+ glassCheck: {
2023
+ label: "Glass check",
2024
+ notApplicable: "Surfaces are opaque in this display mode, so the check does not apply."
2025
+ }
2026
+ };
2027
+ const platformPtBR = {
2028
+ formatters: { placeholder: "não informado" },
2029
+ swipeRow: {
2030
+ actionsFor: (row) => `Ações de ${row}`,
2031
+ delete: "Excluir",
2032
+ archive: "Arquivar",
2033
+ edit: "Editar",
2034
+ favourite: "Favoritar"
2035
+ },
2036
+ pullToRefresh: { refreshing: "Atualizando" },
2037
+ glassCheck: {
2038
+ label: "Teste do vidro",
2039
+ notApplicable: "As superfícies ficam opacas neste modo de exibição, então o teste não se aplica."
2040
+ }
2041
+ };
2042
+ const platformEs = {
2043
+ formatters: { placeholder: "no informado" },
2044
+ swipeRow: {
2045
+ actionsFor: (row) => `Acciones de ${row}`,
2046
+ delete: "Eliminar",
2047
+ archive: "Archivar",
2048
+ edit: "Editar",
2049
+ favourite: "Marcar como favorito"
2050
+ },
2051
+ pullToRefresh: { refreshing: "Actualizando" },
2052
+ glassCheck: {
2053
+ label: "Prueba del vidrio",
2054
+ notApplicable: "Las superficies son opacas en este modo de visualización, así que la prueba no se aplica."
2055
+ }
2056
+ };
2057
+ //#endregion
2058
+ //#region src/internal/messages/showcase.ts
2059
+ const showcaseEn = {};
2060
+ const showcasePtBR = {};
2061
+ /** Spanish (placeholder until translated: falls back to English). */
2062
+ const showcaseEs = showcaseEn;
2063
+ //#endregion
2064
+ //#region src/internal/messages/shell.ts
2065
+ const shellEn = {
2066
+ actionBar: {
2067
+ label: "Actions",
2068
+ more: "More",
2069
+ openMenu: (item) => `Open the menu of ${item}`,
2070
+ count: (n) => new Intl.PluralRules("en").select(n) === "one" ? `${n} pending` : `${n} pending`,
2071
+ loading: "Loading actions",
2072
+ skipTo: "Skip to the action bar",
2073
+ allSections: "All sections",
2074
+ confirm: "Confirm",
2075
+ capped: (cap) => `${cap}+`,
2076
+ cancel: "Cancel"
2077
+ },
2078
+ rail: {
2079
+ label: "Main",
2080
+ openNavigation: "Open navigation",
2081
+ closeNavigation: "Close navigation",
2082
+ count: (n) => new Intl.PluralRules("en").select(n) === "one" ? `${n} pending` : `${n} pending`,
2083
+ capped: (cap) => `${cap}+`
2084
+ },
2085
+ pageTrail: { label: "Breadcrumb" },
2086
+ evidencePanel: {
2087
+ close: "Close panel",
2088
+ resize: "Resize panel"
2089
+ },
2090
+ stageStrip: { status: {
2091
+ done: "done",
2092
+ current: "current",
2093
+ upcoming: "upcoming",
2094
+ attention: "needs attention"
2095
+ } },
2096
+ attentionList: {
2097
+ empty: "Nothing needs you right now.",
2098
+ seeAll: "See all",
2099
+ actionName: (action, title) => `${action}: ${title}`,
2100
+ actionTarget: (title) => `: ${title}`
2101
+ },
2102
+ activityFeed: { empty: "No activity yet." },
2103
+ phaseBar: {
2104
+ part: (label, value) => `${label} ${value}`,
2105
+ empty: "No data yet",
2106
+ named: (label, parts) => `${label}: ${parts}`
2107
+ }
2108
+ };
2109
+ const shellPtBR = {
2110
+ actionBar: {
2111
+ label: "Ações",
2112
+ more: "Mais",
2113
+ openMenu: (item) => `Abrir o menu de ${item}`,
2114
+ count: (n) => new Intl.PluralRules("pt-BR").select(n) === "one" ? `${n} pendente` : `${n} pendentes`,
2115
+ loading: "Carregando as ações",
2116
+ skipTo: "Ir para a barra de ações",
2117
+ allSections: "Todas as seções",
2118
+ confirm: "Confirmar",
2119
+ capped: (cap) => `${cap}+`,
2120
+ cancel: "Cancelar"
2121
+ },
2122
+ rail: {
2123
+ label: "Principal",
2124
+ openNavigation: "Abrir navegação",
2125
+ closeNavigation: "Fechar navegação",
2126
+ count: (n) => new Intl.PluralRules("pt-BR").select(n) === "one" ? `${n} pendente` : `${n} pendentes`,
2127
+ capped: (cap) => `${cap}+`
2128
+ },
2129
+ pageTrail: { label: "Trilha de navegação" },
2130
+ evidencePanel: {
2131
+ close: "Fechar painel",
2132
+ resize: "Redimensionar painel"
2133
+ },
2134
+ stageStrip: { status: {
2135
+ done: "concluída",
2136
+ current: "em curso",
2137
+ upcoming: "a seguir",
2138
+ attention: "pede atenção"
2139
+ } },
2140
+ attentionList: {
2141
+ empty: "Nada precisa de você agora.",
2142
+ seeAll: "Ver tudo",
2143
+ actionName: (action, title) => `${action}: ${title}`,
2144
+ actionTarget: (title) => `: ${title}`
2145
+ },
2146
+ activityFeed: { empty: "Ainda não há atividade." },
2147
+ phaseBar: {
2148
+ part: (label, value) => `${label} ${value}`,
2149
+ empty: "Ainda sem dados",
2150
+ named: (label, parts) => `${label}: ${parts}`
2151
+ }
2152
+ };
2153
+ const shellEs = {
2154
+ actionBar: {
2155
+ label: "Acciones",
2156
+ more: "Más",
2157
+ openMenu: (item) => `Abrir el menú de ${item}`,
2158
+ count: (n) => new Intl.PluralRules("es").select(n) === "one" ? `${n} pendiente` : `${n} pendientes`,
2159
+ loading: "Cargando las acciones",
2160
+ skipTo: "Ir a la barra de acciones",
2161
+ allSections: "Todas las secciones",
2162
+ confirm: "Confirmar",
2163
+ capped: (cap) => `${cap}+`,
2164
+ cancel: "Cancelar"
2165
+ },
2166
+ rail: {
2167
+ label: "Principal",
2168
+ openNavigation: "Abrir navegación",
2169
+ closeNavigation: "Cerrar navegación",
2170
+ count: (n) => new Intl.PluralRules("es").select(n) === "one" ? `${n} pendiente` : `${n} pendientes`,
2171
+ capped: (cap) => `${cap}+`
2172
+ },
2173
+ pageTrail: { label: "Ruta de navegación" },
2174
+ evidencePanel: {
2175
+ close: "Cerrar panel",
2176
+ resize: "Redimensionar panel"
2177
+ },
2178
+ stageStrip: { status: {
2179
+ done: "concluida",
2180
+ current: "en curso",
2181
+ upcoming: "siguiente",
2182
+ attention: "requiere atención"
2183
+ } },
2184
+ attentionList: {
2185
+ empty: "Nada requiere su atención ahora.",
2186
+ seeAll: "Ver todo",
2187
+ actionName: (action, title) => `${action}: ${title}`,
2188
+ actionTarget: (title) => `: ${title}`
2189
+ },
2190
+ activityFeed: { empty: "Todavía no hay actividad." },
2191
+ phaseBar: {
2192
+ part: (label, value) => `${label} ${value}`,
2193
+ empty: "Todavía sin datos",
2194
+ named: (label, parts) => `${label}: ${parts}`
2195
+ }
2196
+ };
2197
+ //#endregion
2198
+ //#region src/internal/messages/core-es.ts
2199
+ const es = speaker("es");
2200
+ const coreEs = {
2201
+ close: "Cerrar",
2202
+ dismiss: "Descartar",
2203
+ loading: "Cargando",
2204
+ required: "obligatorio",
2205
+ moreActions: "Más acciones",
2206
+ inProgress: "En curso",
2207
+ breadcrumbs: {
2208
+ label: "Ruta de navegación",
2209
+ backTo: (p) => `Volver a ${p}`,
2210
+ overflow: "Mostrar niveles ocultos"
2211
+ },
2212
+ link: { opensInNewTab: "(se abre en una pestaña nueva)" },
2213
+ textField: {
2214
+ clear: "Borrar",
2215
+ showPassword: "Mostrar contraseña",
2216
+ hidePassword: "Ocultar contraseña",
2217
+ counter: (n, max) => `${es.n(n)} de ${es.n(max)} ${es.word(max, {
2218
+ one: "carácter",
2219
+ other: "caracteres"
2220
+ })}`,
2221
+ overLimit: (n, max) => `${es.n(n)} de ${es.n(max)} ${es.word(max, {
2222
+ one: "carácter",
2223
+ other: "caracteres"
2224
+ })}, ${es.n(n - max)} por encima del límite`
2225
+ },
2226
+ select: {
2227
+ placeholder: "Seleccione…",
2228
+ done: "Listo"
2229
+ },
2230
+ notice: { toneWord: {
2231
+ danger: "Error:",
2232
+ warning: "Atención:",
2233
+ info: "Información:",
2234
+ success: "Éxito:"
2235
+ } },
2236
+ empty: {
2237
+ "no-data": {
2238
+ title: "Todavía no hay nada aquí",
2239
+ description: "Los elementos aparecen aquí cuando se agregan."
2240
+ },
2241
+ "no-results": {
2242
+ title: "Ningún registro con estos filtros",
2243
+ description: "Cambie los filtros o bórrelos para ver todos los registros."
2244
+ },
2245
+ offline: {
2246
+ title: "Está sin conexión",
2247
+ description: "Compruebe la conexión e inténtelo de nuevo."
2248
+ },
2249
+ clearFilters: "Borrar filtros",
2250
+ retry: "Intentar de nuevo"
2251
+ },
2252
+ error: {
2253
+ generic: {
2254
+ title: "Algo salió mal",
2255
+ message: "No se pudo cargar el contenido."
2256
+ },
2257
+ network: {
2258
+ title: "Problema de conexión",
2259
+ message: "No se pudo contactar con el servidor. Compruebe la conexión e inténtelo de nuevo."
2260
+ },
2261
+ server: {
2262
+ title: "El servidor falló",
2263
+ message: "El servidor no completó la solicitud. Inténtelo de nuevo en un momento."
2264
+ },
2265
+ permission: {
2266
+ title: "Sin acceso",
2267
+ message: "Su rol no permite ver este contenido."
2268
+ },
2269
+ "not-found": {
2270
+ title: "No encontrado",
2271
+ message: "Este elemento no existe o fue eliminado."
2272
+ },
2273
+ conflict: {
2274
+ title: "Modificado por otra persona",
2275
+ message: "Alguien modificó este elemento antes que usted. Recárguelo para ver la versión actual."
2276
+ },
2277
+ retry: "Intentar de nuevo",
2278
+ details: "Detalles técnicos",
2279
+ statusCode: (code) => `Código ${code}`
2280
+ },
2281
+ pagination: {
2282
+ navigation: "Paginación",
2283
+ previous: "Anterior",
2284
+ next: "Siguiente",
2285
+ pageSize: "Elementos por página",
2286
+ range: (from, to, total) => `${es.n(from)} a ${es.n(to)} de ${es.n(total)}`,
2287
+ page: (n) => `Página ${es.n(n)}`,
2288
+ pageOf: (n, count) => `Página ${es.n(n)} de ${es.n(count)}`
2289
+ },
2290
+ skipLink: "Ir al contenido",
2291
+ status: {
2292
+ pending: "Pendiente",
2293
+ approved: "Aprobado",
2294
+ rejected: "Rechazado",
2295
+ active: "Activo",
2296
+ inactive: "Inactivo",
2297
+ processing: "Procesando",
2298
+ error: "Error",
2299
+ success: "Éxito"
2300
+ },
2301
+ tag: { remove: (text) => `Quitar ${text}` },
2302
+ toast: {
2303
+ region: "Notificaciones",
2304
+ dismiss: "Descartar notificación"
2305
+ },
2306
+ avatar: { open: (name) => `Abrir el perfil de ${name}` },
2307
+ frame: {
2308
+ navigation: "Principal",
2309
+ openNavigation: "Abrir navegación",
2310
+ closeNavigation: "Cerrar navegación",
2311
+ collapseNavigation: "Contraer navegación",
2312
+ expandNavigation: "Expandir navegación",
2313
+ loadingPage: "Cargando la página",
2314
+ closePanel: "Cerrar panel"
2315
+ },
2316
+ table: {
2317
+ loading: "Cargando la lista",
2318
+ selectAll: "Seleccionar todas las filas",
2319
+ selectRow: (label) => `Seleccionar ${label}`,
2320
+ empty: "No hay filas para mostrar",
2321
+ sortAscending: "en orden ascendente",
2322
+ sortDescending: "en orden descendente"
2323
+ },
2324
+ proof: {
2325
+ proved: "probada",
2326
+ pending: "pendiente",
2327
+ refuted: "refutada",
2328
+ not_disclosed: "no informada",
2329
+ none: "sin prueba",
2330
+ provedBy: (who) => `por ${who}`,
2331
+ rule: (rule) => `regla ${rule}`
2332
+ },
2333
+ actor: {
2334
+ person: "persona",
2335
+ agent: "agente",
2336
+ system: "sistema"
2337
+ }
2338
+ };
2339
+ //#endregion
2340
+ //#region src/internal/messages.ts
2341
+ const en = speaker("en");
2342
+ const pt = speaker("pt-BR");
2343
+ const defaultMessages = {
2344
+ ...formsAEn,
2345
+ ...formsBEn,
2346
+ ...overlaysNavEn,
2347
+ ...dataAEn,
2348
+ ...dataBEn,
2349
+ ...chartsGeoEn,
2350
+ ...authBrandEn,
2351
+ ...platformEn,
2352
+ ...showcaseEn,
2353
+ ...shellEn,
2354
+ close: "Close",
2355
+ dismiss: "Dismiss",
2356
+ loading: "Loading",
2357
+ required: "required",
2358
+ moreActions: "More actions",
2359
+ inProgress: "In progress",
2360
+ breadcrumbs: {
2361
+ label: "Breadcrumb",
2362
+ backTo: (p) => `Back to ${p}`,
2363
+ overflow: "Show hidden levels"
2364
+ },
2365
+ link: { opensInNewTab: "(opens in a new tab)" },
2366
+ textField: {
2367
+ clear: "Clear",
2368
+ showPassword: "Show password",
2369
+ hidePassword: "Hide password",
2370
+ counter: (n, max) => `${en.n(n)} of ${en.n(max)} ${en.word(max, {
2371
+ one: "character",
2372
+ other: "characters"
2373
+ })}`,
2374
+ overLimit: (n, max) => `${en.n(n)} of ${en.n(max)} ${en.word(max, {
2375
+ one: "character",
2376
+ other: "characters"
2377
+ })}, ${en.n(n - max)} over the limit`
2378
+ },
2379
+ select: {
2380
+ placeholder: "Select…",
2381
+ done: "Done"
2382
+ },
2383
+ notice: { toneWord: {
2384
+ danger: "Error:",
2385
+ warning: "Warning:",
2386
+ info: "Information:",
2387
+ success: "Success:"
2388
+ } },
2389
+ empty: {
2390
+ "no-data": {
2391
+ title: "Nothing here yet",
2392
+ description: "Items appear here once they are added."
2393
+ },
2394
+ "no-results": {
2395
+ title: "No records match these filters",
2396
+ description: "Change the filters or clear them to see every record."
2397
+ },
2398
+ offline: {
2399
+ title: "You are offline",
2400
+ description: "Check the connection and try again."
2401
+ },
2402
+ clearFilters: "Clear filters",
2403
+ retry: "Try again"
2404
+ },
2405
+ error: {
2406
+ generic: {
2407
+ title: "Something went wrong",
2408
+ message: "The content could not be loaded."
2409
+ },
2410
+ network: {
2411
+ title: "Connection problem",
2412
+ message: "The server could not be reached. Check the connection and try again."
2413
+ },
2414
+ server: {
2415
+ title: "The server failed",
2416
+ message: "The server could not complete the request. Try again in a moment."
2417
+ },
2418
+ permission: {
2419
+ title: "No access",
2420
+ message: "Your role does not allow you to see this content."
2421
+ },
2422
+ "not-found": {
2423
+ title: "Not found",
2424
+ message: "This item does not exist or was removed."
2425
+ },
2426
+ conflict: {
2427
+ title: "Changed by someone else",
2428
+ message: "Someone changed this item before you. Reload it to see the latest version."
2429
+ },
2430
+ retry: "Try again",
2431
+ details: "Technical details",
2432
+ statusCode: (code) => `Status ${code}`
2433
+ },
2434
+ pagination: {
2435
+ navigation: "Pagination",
2436
+ previous: "Previous",
2437
+ next: "Next",
2438
+ pageSize: "Items per page",
2439
+ range: (from, to, total) => `${en.n(from)} to ${en.n(to)} of ${en.n(total)}`,
2440
+ page: (n) => `Page ${en.n(n)}`,
2441
+ pageOf: (n, count) => `Page ${en.n(n)} of ${en.n(count)}`
2442
+ },
2443
+ skipLink: "Skip to main content",
2444
+ status: {
2445
+ pending: "Pending",
2446
+ approved: "Approved",
2447
+ rejected: "Rejected",
2448
+ active: "Active",
2449
+ inactive: "Inactive",
2450
+ processing: "Processing",
2451
+ error: "Error",
2452
+ success: "Success"
2453
+ },
2454
+ tag: { remove: (text) => `Remove ${text}` },
2455
+ toast: {
2456
+ region: "Notifications",
2457
+ dismiss: "Dismiss notification"
2458
+ },
2459
+ avatar: { open: (name) => `Open profile of ${name}` },
2460
+ frame: {
2461
+ navigation: "Main",
2462
+ openNavigation: "Open navigation",
2463
+ closeNavigation: "Close navigation",
2464
+ collapseNavigation: "Collapse navigation",
2465
+ expandNavigation: "Expand navigation",
2466
+ loadingPage: "Loading the page",
2467
+ closePanel: "Close panel"
2468
+ },
2469
+ table: {
2470
+ loading: "Loading the list",
2471
+ selectAll: "Select all rows",
2472
+ selectRow: (label) => `Select ${label}`,
2473
+ empty: "No rows to show",
2474
+ sortAscending: "sorted ascending",
2475
+ sortDescending: "sorted descending"
2476
+ },
2477
+ proof: {
2478
+ proved: "proved",
2479
+ pending: "pending",
2480
+ refuted: "refuted",
2481
+ not_disclosed: "not disclosed",
2482
+ none: "no proof",
2483
+ provedBy: (who) => `by ${who}`,
2484
+ rule: (rule) => `rule ${rule}`
2485
+ },
2486
+ actor: {
2487
+ person: "person",
2488
+ agent: "agent",
2489
+ system: "system"
2490
+ }
2491
+ };
2492
+ /** Portuguese (Brazil) catalogue, the platform's first language. */
2493
+ const messagesPtBR = {
2494
+ ...formsAPtBR,
2495
+ ...formsBPtBR,
2496
+ ...overlaysNavPtBR,
2497
+ ...dataAPtBR,
2498
+ ...dataBPtBR,
2499
+ ...chartsGeoPtBR,
2500
+ ...authBrandPtBR,
2501
+ ...platformPtBR,
2502
+ ...showcasePtBR,
2503
+ ...shellPtBR,
2504
+ close: "Fechar",
2505
+ dismiss: "Dispensar",
2506
+ loading: "Carregando",
2507
+ required: "obrigatório",
2508
+ moreActions: "Mais ações",
2509
+ inProgress: "Em andamento",
2510
+ breadcrumbs: {
2511
+ label: "Trilha de navegação",
2512
+ backTo: (p) => `Voltar para ${p}`,
2513
+ overflow: "Mostrar níveis ocultos"
2514
+ },
2515
+ link: { opensInNewTab: "(abre em nova aba)" },
2516
+ textField: {
2517
+ clear: "Limpar",
2518
+ showPassword: "Mostrar senha",
2519
+ hidePassword: "Ocultar senha",
2520
+ counter: (n, max) => `${pt.n(n)} de ${pt.n(max)} ${pt.word(max, {
2521
+ one: "caractere",
2522
+ other: "caracteres"
2523
+ })}`,
2524
+ overLimit: (n, max) => `${pt.n(n)} de ${pt.n(max)} ${pt.word(max, {
2525
+ one: "caractere",
2526
+ other: "caracteres"
2527
+ })}, ${pt.n(n - max)} acima do limite`
2528
+ },
2529
+ select: {
2530
+ placeholder: "Selecione…",
2531
+ done: "Concluir"
2532
+ },
2533
+ notice: { toneWord: {
2534
+ danger: "Erro:",
2535
+ warning: "Atenção:",
2536
+ info: "Informação:",
2537
+ success: "Sucesso:"
2538
+ } },
2539
+ empty: {
2540
+ "no-data": {
2541
+ title: "Ainda não há nada aqui",
2542
+ description: "Os itens aparecem aqui quando forem adicionados."
2543
+ },
2544
+ "no-results": {
2545
+ title: "Nenhum registro com esses filtros",
2546
+ description: "Mude os filtros ou limpe-os para ver todos os registros."
2547
+ },
2548
+ offline: {
2549
+ title: "Você está sem conexão",
2550
+ description: "Confira a conexão e tente de novo."
2551
+ },
2552
+ clearFilters: "Limpar filtros",
2553
+ retry: "Tentar de novo"
2554
+ },
2555
+ error: {
2556
+ generic: {
2557
+ title: "Algo deu errado",
2558
+ message: "O conteúdo não pôde ser carregado."
2559
+ },
2560
+ network: {
2561
+ title: "Problema de conexão",
2562
+ message: "Não foi possível falar com o servidor. Confira a conexão e tente de novo."
2563
+ },
2564
+ server: {
2565
+ title: "O servidor falhou",
2566
+ message: "O servidor não concluiu o pedido. Tente de novo em instantes."
2567
+ },
2568
+ permission: {
2569
+ title: "Sem acesso",
2570
+ message: "Seu papel não permite ver este conteúdo."
2571
+ },
2572
+ "not-found": {
2573
+ title: "Não encontrado",
2574
+ message: "Este item não existe ou foi removido."
2575
+ },
2576
+ conflict: {
2577
+ title: "Alterado por outra pessoa",
2578
+ message: "Alguém alterou este item antes de você. Recarregue para ver a versão atual."
2579
+ },
2580
+ retry: "Tentar de novo",
2581
+ details: "Detalhes técnicos",
2582
+ statusCode: (code) => `Código ${code}`
2583
+ },
2584
+ pagination: {
2585
+ navigation: "Paginação",
2586
+ previous: "Anterior",
2587
+ next: "Próxima",
2588
+ pageSize: "Itens por página",
2589
+ range: (from, to, total) => `${pt.n(from)} a ${pt.n(to)} de ${pt.n(total)}`,
2590
+ page: (n) => `Página ${pt.n(n)}`,
2591
+ pageOf: (n, count) => `Página ${pt.n(n)} de ${pt.n(count)}`
2592
+ },
2593
+ skipLink: "Ir para o conteúdo",
2594
+ status: {
2595
+ pending: "Pendente",
2596
+ approved: "Aprovado",
2597
+ rejected: "Rejeitado",
2598
+ active: "Ativo",
2599
+ inactive: "Inativo",
2600
+ processing: "Processando",
2601
+ error: "Erro",
2602
+ success: "Sucesso"
2603
+ },
2604
+ tag: { remove: (text) => `Remover ${text}` },
2605
+ toast: {
2606
+ region: "Notificações",
2607
+ dismiss: "Dispensar notificação"
2608
+ },
2609
+ avatar: { open: (name) => `Abrir perfil de ${name}` },
2610
+ frame: {
2611
+ navigation: "Principal",
2612
+ openNavigation: "Abrir navegação",
2613
+ closeNavigation: "Fechar navegação",
2614
+ collapseNavigation: "Recolher navegação",
2615
+ expandNavigation: "Expandir navegação",
2616
+ loadingPage: "Carregando a página",
2617
+ closePanel: "Fechar painel"
2618
+ },
2619
+ table: {
2620
+ loading: "Carregando a lista",
2621
+ selectAll: "Selecionar todas as linhas",
2622
+ selectRow: (label) => `Selecionar ${label}`,
2623
+ empty: "Nenhuma linha para mostrar",
2624
+ sortAscending: "em ordem crescente",
2625
+ sortDescending: "em ordem decrescente"
2626
+ },
2627
+ proof: {
2628
+ proved: "provada",
2629
+ pending: "pendente",
2630
+ refuted: "refutada",
2631
+ not_disclosed: "não informada",
2632
+ none: "sem prova",
2633
+ provedBy: (who) => `por ${who}`,
2634
+ rule: (rule) => `regra ${rule}`
2635
+ },
2636
+ actor: {
2637
+ person: "pessoa",
2638
+ agent: "agente",
2639
+ system: "sistema"
2640
+ }
2641
+ };
2642
+ const messagesEs = {
2643
+ ...formsAEs,
2644
+ ...formsBEs,
2645
+ ...overlaysNavEs,
2646
+ ...dataAEs,
2647
+ ...dataBEs,
2648
+ ...chartsGeoEs,
2649
+ ...authBrandEs,
2650
+ ...platformEs,
2651
+ ...showcaseEs,
2652
+ ...shellEs,
2653
+ ...coreEs
2654
+ };
2655
+ /** Catalogues shipped as defaults. Other locales fall back to English copy with locale-aware formatting. */
2656
+ const shippedCatalogues = {
2657
+ en: defaultMessages,
2658
+ "pt-BR": messagesPtBR,
2659
+ es: messagesEs
2660
+ };
2661
+ /** Default catalogue for a BCP 47 locale: Portuguese and Spanish by language subtag, English otherwise. */
2662
+ function catalogueForLocale(locale) {
2663
+ const language = (locale ?? "en").toLowerCase().split(/[-_]/)[0];
2664
+ return language === "pt" ? messagesPtBR : language === "es" ? messagesEs : defaultMessages;
2665
+ }
2666
+ function isPlainObject(v) {
2667
+ return !!v && typeof v === "object" && !Array.isArray(v);
2668
+ }
2669
+ function mergeMessages(base, overrides) {
2670
+ if (!overrides) return base;
2671
+ const walk = (a, b) => {
2672
+ const out = { ...a };
2673
+ for (const [k, v] of Object.entries(b)) {
2674
+ if (v === void 0) continue;
2675
+ out[k] = isPlainObject(v) && isPlainObject(a[k]) ? walk(a[k], v) : v;
2676
+ }
2677
+ return out;
2678
+ };
2679
+ return walk(base, overrides);
2680
+ }
2681
+ //#endregion
2682
+ //#region src/internal/provider.tsx
2683
+ const MessagesContext = createContext(defaultMessages);
2684
+ /**
2685
+ * Root provider: supplies copy (I18n adapter) and the router adapter used by
2686
+ * every link-like component. Optional: components fall back to English copy
2687
+ * and native navigation without it.
2688
+ */
2689
+ function TympanProvider({ messages, baseMessages, icuMessages, pseudo = false, navigate, useHref, locale, children }) {
2690
+ const merged = useMemo(() => {
2691
+ let out = mergeMessages(baseMessages ?? (locale ? catalogueForLocale(locale) : defaultMessages), messages);
2692
+ if (icuMessages) out = mergeMessages(out, compileIcuMessages(icuMessages, out, locale ?? "en"));
2693
+ return pseudo ? pseudoLocalize(out) : out;
2694
+ }, [
2695
+ baseMessages,
2696
+ messages,
2697
+ icuMessages,
2698
+ pseudo,
2699
+ locale
2700
+ ]);
2701
+ let tree = /* @__PURE__ */ jsx(MessagesContext.Provider, {
2702
+ value: merged,
2703
+ children
2704
+ });
2705
+ if (navigate) tree = /* @__PURE__ */ jsx(RouterProvider, {
2706
+ navigate,
2707
+ ...useHref ? { useHref } : {},
2708
+ children: tree
2709
+ });
2710
+ if (locale) tree = /* @__PURE__ */ jsx(I18nProvider, {
2711
+ locale,
2712
+ children: tree
2713
+ });
2714
+ return tree;
2715
+ }
2716
+ /** Current copy catalogue. */
2717
+ function useMessages() {
2718
+ return useContext(MessagesContext);
2719
+ }
2720
+ //#endregion
2721
+ //#region src/internal/dev.ts
2722
+ const isDev = (() => {
2723
+ try {
2724
+ return globalThis.process?.env?.NODE_ENV !== "production";
2725
+ } catch {
2726
+ return true;
2727
+ }
2728
+ })();
2729
+ /** Logs a development-only warning with the library prefix. */
2730
+ function devWarning(condition, message) {
2731
+ if (isDev && condition) console.warn(`[@datatechsolutions/tympan] ${message}`);
2732
+ }
2733
+ //#endregion
2734
+ //#region src/components/avatar/Avatar.tsx
2735
+ /** The first `count` user-perceived characters (grapheme clusters), so marks and emoji stay whole. */
2736
+ function leadingGraphemes(text, count) {
2737
+ const Segmenter = Intl.Segmenter;
2738
+ if (!Segmenter) return Array.from(text).slice(0, count).join("");
2739
+ let out = "";
2740
+ let taken = 0;
2741
+ for (const { segment } of new Segmenter(void 0, { granularity: "grapheme" }).segment(text)) {
2742
+ if (taken === count) break;
2743
+ out += segment;
2744
+ taken += 1;
2745
+ }
2746
+ return out;
2747
+ }
2748
+ /** Person or agent picture with fallback (spec: wave-1/avatar.md; design direction §2.11). */
2749
+ function Avatar({ src, fallbackText, name, decorative = false, actorKind = "person", size = "regular", tint = "accent", artwork, onPress, href, className }) {
2750
+ const messages = useMessages();
2751
+ const [failed, setFailed] = useState(false);
2752
+ useEffect(() => setFailed(false), [src]);
2753
+ const pressable = !!(onPress || href);
2754
+ devWarning(!decorative && !name, "Avatar: `name` is required unless `decorative`.");
2755
+ const isAgent = actorKind === "agent";
2756
+ const showImage = !!src && !failed;
2757
+ const showArtwork = !showImage && artwork != null;
2758
+ const hidden = decorative || pressable;
2759
+ let inner;
2760
+ if (showImage) inner = /* @__PURE__ */ jsx("img", {
2761
+ className: "ty-avatar__image",
2762
+ src: src ?? void 0,
2763
+ alt: hidden ? "" : name ?? "",
2764
+ onError: () => setFailed(true)
2765
+ });
2766
+ else if (showArtwork) inner = artwork;
2767
+ else if (isAgent) inner = /* @__PURE__ */ jsx(Bot, {
2768
+ className: "ty-avatar__icon",
2769
+ "aria-hidden": "true",
2770
+ focusable: "false"
2771
+ });
2772
+ else if (fallbackText) inner = /* @__PURE__ */ jsx("span", {
2773
+ className: "ty-avatar__initials",
2774
+ "aria-hidden": "true",
2775
+ children: leadingGraphemes(fallbackText, 2)
2776
+ });
2777
+ else inner = /* @__PURE__ */ jsx(User, {
2778
+ className: "ty-avatar__icon",
2779
+ "aria-hidden": "true",
2780
+ focusable: "false"
2781
+ });
2782
+ const visual = /* @__PURE__ */ jsx("span", {
2783
+ className: cx("ty-avatar", !pressable && className),
2784
+ "data-kind": actorKind,
2785
+ "data-size": size,
2786
+ "data-tint": tint,
2787
+ "data-image": showImage || void 0,
2788
+ "data-artwork": showArtwork || void 0,
2789
+ "aria-hidden": hidden ? true : void 0,
2790
+ role: !hidden && !showImage ? "img" : void 0,
2791
+ "aria-label": !hidden && !showImage ? name : void 0,
2792
+ children: inner
2793
+ });
2794
+ if (!pressable) return visual;
2795
+ const label = name ? messages.avatar.open(name) : void 0;
2796
+ if (href) return /* @__PURE__ */ jsx(Link, {
2797
+ href,
2798
+ onPress,
2799
+ "aria-label": label,
2800
+ className: cx("ty-avatar-control", className),
2801
+ "data-size": size,
2802
+ children: visual
2803
+ });
2804
+ return /* @__PURE__ */ jsx(Button, {
2805
+ onPress,
2806
+ "aria-label": label,
2807
+ className: cx("ty-avatar-control", className),
2808
+ "data-size": size,
2809
+ children: visual
2810
+ });
2811
+ }
2812
+ //#endregion
2813
+ export { catalogueForLocale as a, messagesEs as c, compileIcuMessages as d, pseudoLocalize as f, substitute as h, useMessages as i, messagesPtBR as l, formatMessage as m, devWarning as n, defaultMessages as o, pseudoString as p, TympanProvider as r, mergeMessages as s, Avatar as t, shippedCatalogues as u };
2814
+
2815
+ //# sourceMappingURL=Avatar-P14MVkK1.js.map