@eifi1/ui-kit 0.29.0 → 0.31.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 (307) hide show
  1. package/README.md +65 -6
  2. package/dist/account/account-parts.d.ts +21 -0
  3. package/dist/account/account-parts.js +40 -0
  4. package/dist/account/account-parts.js.map +1 -0
  5. package/dist/account/data-export-setting.d.ts +73 -0
  6. package/dist/account/data-export-setting.js +114 -0
  7. package/dist/account/data-export-setting.js.map +1 -0
  8. package/dist/account/delete-account-setting.d.ts +95 -0
  9. package/dist/account/delete-account-setting.js +200 -0
  10. package/dist/account/delete-account-setting.js.map +1 -0
  11. package/dist/account/email-change-setting.d.ts +136 -0
  12. package/dist/account/email-change-setting.js +278 -0
  13. package/dist/account/email-change-setting.js.map +1 -0
  14. package/dist/account/sessions-setting.d.ts +110 -0
  15. package/dist/account/sessions-setting.js +147 -0
  16. package/dist/account/sessions-setting.js.map +1 -0
  17. package/dist/admin/admin-action-confirm.d.ts +95 -0
  18. package/dist/admin/admin-action-confirm.js +276 -0
  19. package/dist/admin/admin-action-confirm.js.map +1 -0
  20. package/dist/admin/admin-action-log.d.ts +105 -0
  21. package/dist/admin/admin-action-log.js +153 -0
  22. package/dist/admin/admin-action-log.js.map +1 -0
  23. package/dist/admin/admin-parts.d.ts +40 -0
  24. package/dist/admin/admin-parts.js +45 -0
  25. package/dist/admin/admin-parts.js.map +1 -0
  26. package/dist/admin/invitations-panel.d.ts +95 -0
  27. package/dist/admin/invitations-panel.js +290 -0
  28. package/dist/admin/invitations-panel.js.map +1 -0
  29. package/dist/admin/reviewer-scope-editor.d.ts +95 -0
  30. package/dist/admin/reviewer-scope-editor.js +134 -0
  31. package/dist/admin/reviewer-scope-editor.js.map +1 -0
  32. package/dist/admin/role-select.d.ts +95 -0
  33. package/dist/admin/role-select.js +128 -0
  34. package/dist/admin/role-select.js.map +1 -0
  35. package/dist/admin/transfer-ownership-dialog.d.ts +95 -0
  36. package/dist/admin/transfer-ownership-dialog.js +83 -0
  37. package/dist/admin/transfer-ownership-dialog.js.map +1 -0
  38. package/dist/admin/user-roster.d.ts +95 -0
  39. package/dist/admin/user-roster.js +285 -0
  40. package/dist/admin/user-roster.js.map +1 -0
  41. package/dist/auth/auth-errors.d.ts +103 -6
  42. package/dist/auth/auth-errors.js +68 -2
  43. package/dist/auth/auth-errors.js.map +1 -1
  44. package/dist/auth/forgot-password-form.d.ts +10 -3
  45. package/dist/auth/forgot-password-form.js +6 -3
  46. package/dist/auth/forgot-password-form.js.map +1 -1
  47. package/dist/auth/register-form.d.ts +21 -12
  48. package/dist/auth/register-form.js +6 -4
  49. package/dist/auth/register-form.js.map +1 -1
  50. package/dist/auth/reset-password-form.d.ts +10 -3
  51. package/dist/auth/reset-password-form.js +6 -3
  52. package/dist/auth/reset-password-form.js.map +1 -1
  53. package/dist/auth/sign-in-form.d.ts +75 -9
  54. package/dist/auth/sign-in-form.js +105 -15
  55. package/dist/auth/sign-in-form.js.map +1 -1
  56. package/dist/auth/verify-email.d.ts +7 -2
  57. package/dist/auth/verify-email.js +44 -8
  58. package/dist/auth/verify-email.js.map +1 -1
  59. package/dist/chart.d.ts +20 -11
  60. package/dist/components/account-chips.d.ts +47 -7
  61. package/dist/components/account-chips.js +19 -3
  62. package/dist/components/account-chips.js.map +1 -1
  63. package/dist/components/account-settings-labels.d.ts +24 -1
  64. package/dist/components/account-settings-labels.js +6 -2
  65. package/dist/components/account-settings-labels.js.map +1 -1
  66. package/dist/components/account-settings.d.ts +69 -8
  67. package/dist/components/account-settings.js +133 -25
  68. package/dist/components/account-settings.js.map +1 -1
  69. package/dist/components/amount-input.d.ts +21 -12
  70. package/dist/components/button-group.d.ts +21 -12
  71. package/dist/components/calculator.d.ts +21 -12
  72. package/dist/components/confirm-dialog.d.ts +21 -12
  73. package/dist/components/copy-button.d.ts +18 -9
  74. package/dist/components/danger-confirm.d.ts +21 -12
  75. package/dist/components/data-table.js +8 -1
  76. package/dist/components/data-table.js.map +1 -1
  77. package/dist/components/date-picker.js +9 -4
  78. package/dist/components/date-picker.js.map +1 -1
  79. package/dist/components/facing-pair.d.ts +21 -12
  80. package/dist/components/file-button.d.ts +21 -12
  81. package/dist/components/file-dropzone.d.ts +21 -12
  82. package/dist/components/form-actions.d.ts +21 -12
  83. package/dist/components/iban-input.d.ts +21 -12
  84. package/dist/components/language-select.d.ts +21 -12
  85. package/dist/components/legal-page.d.ts +21 -12
  86. package/dist/components/legal.d.ts +21 -12
  87. package/dist/components/money-field.d.ts +21 -12
  88. package/dist/components/number-field.d.ts +21 -12
  89. package/dist/components/number-input.d.ts +21 -12
  90. package/dist/components/numpad-sheet.d.ts +21 -12
  91. package/dist/components/passkeys-setting.js +2 -1
  92. package/dist/components/passkeys-setting.js.map +1 -1
  93. package/dist/components/phone-input.d.ts +21 -12
  94. package/dist/components/series-chart.d.ts +21 -12
  95. package/dist/components/settings-fields.d.ts +55 -13
  96. package/dist/components/settings-fields.js +20 -1
  97. package/dist/components/settings-fields.js.map +1 -1
  98. package/dist/components/share-card.d.ts +20 -11
  99. package/dist/components/text-link.d.ts +21 -12
  100. package/dist/components/time-input.d.ts +21 -12
  101. package/dist/components/ui.d.ts +17 -8
  102. package/dist/{register-form-V1OeNlMr.d.ts → delete-account-setting-DCFS5Vof.d.ts} +6612 -5612
  103. package/dist/demo/demo-banner.d.ts +51 -0
  104. package/dist/demo/demo-banner.js +97 -0
  105. package/dist/demo/demo-banner.js.map +1 -0
  106. package/dist/demo/demo-countdown.d.ts +58 -0
  107. package/dist/demo/demo-countdown.js +79 -0
  108. package/dist/demo/demo-countdown.js.map +1 -0
  109. package/dist/demo/demo-ended.d.ts +45 -0
  110. package/dist/demo/demo-ended.js +42 -0
  111. package/dist/demo/demo-ended.js.map +1 -0
  112. package/dist/demo/demo-labels.d.ts +53 -0
  113. package/dist/demo/demo-labels.js +29 -0
  114. package/dist/demo/demo-labels.js.map +1 -0
  115. package/dist/demo/demo-session.d.ts +30 -0
  116. package/dist/demo/demo-session.js +8 -0
  117. package/dist/demo/demo-session.js.map +1 -0
  118. package/dist/demo/demo-start.d.ts +54 -0
  119. package/dist/demo/demo-start.js +68 -0
  120. package/dist/demo/demo-start.js.map +1 -0
  121. package/dist/feedback/feedback-attachment.d.ts +21 -12
  122. package/dist/feedback/feedback-context.d.ts +21 -12
  123. package/dist/feedback/feedback-crash.d.ts +21 -12
  124. package/dist/feedback/feedback-dialog.d.ts +21 -12
  125. package/dist/feedback/feedback-inbox.d.ts +21 -12
  126. package/dist/feedback/feedback-inbox.js +12 -2
  127. package/dist/feedback/feedback-inbox.js.map +1 -1
  128. package/dist/feedback/feedback-labels.d.ts +21 -12
  129. package/dist/feedback/feedback-labels.js +1 -0
  130. package/dist/feedback/feedback-labels.js.map +1 -1
  131. package/dist/feedback/feedback-menu.d.ts +21 -12
  132. package/dist/feedback/feedback-record.d.ts +21 -12
  133. package/dist/feedback/feedback-record.js +2 -0
  134. package/dist/feedback/feedback-record.js.map +1 -1
  135. package/dist/feedback/feedback-row-detail.d.ts +21 -12
  136. package/dist/feedback/feedback-row-detail.js +7 -0
  137. package/dist/feedback/feedback-row-detail.js.map +1 -1
  138. package/dist/feedback/feedback-status-undo.d.ts +21 -12
  139. package/dist/feedback/feedback-submit.d.ts +21 -12
  140. package/dist/feedback/feedback-swipe.d.ts +22 -13
  141. package/dist/feedback/feedback-swipe.js.map +1 -1
  142. package/dist/feedback/feedback-table.d.ts +18 -9
  143. package/dist/feedback/feedback-thread.d.ts +21 -12
  144. package/dist/feedback.d.ts +21 -12
  145. package/dist/hooks/use-anchored-panel.d.ts +6 -2
  146. package/dist/hooks/use-anchored-panel.js +2 -1
  147. package/dist/hooks/use-anchored-panel.js.map +1 -1
  148. package/dist/hooks/use-file-drop.d.ts +21 -12
  149. package/dist/i18n/defaults.d.ts +21 -12
  150. package/dist/i18n/defaults.js +28 -0
  151. package/dist/i18n/defaults.js.map +1 -1
  152. package/dist/i18n/german.d.ts +21 -12
  153. package/dist/i18n/german.js +298 -12
  154. package/dist/i18n/german.js.map +1 -1
  155. package/dist/i18n/kit-labels.d.ts +14 -5
  156. package/dist/i18n/kit-labels.js.map +1 -1
  157. package/dist/i18n/languages.d.ts +15 -6
  158. package/dist/i18n/locales/de-CH.d.ts +21 -12
  159. package/dist/i18n/locales/en.d.ts +21 -12
  160. package/dist/i18n/locales/es.d.ts +21 -12
  161. package/dist/i18n/locales/es.js +287 -10
  162. package/dist/i18n/locales/es.js.map +1 -1
  163. package/dist/i18n/locales/fr.d.ts +21 -12
  164. package/dist/i18n/locales/fr.js +290 -7
  165. package/dist/i18n/locales/fr.js.map +1 -1
  166. package/dist/i18n/locales/hu.d.ts +21 -12
  167. package/dist/i18n/locales/hu.js +288 -12
  168. package/dist/i18n/locales/hu.js.map +1 -1
  169. package/dist/i18n/locales/it.d.ts +21 -12
  170. package/dist/i18n/locales/it.js +289 -7
  171. package/dist/i18n/locales/it.js.map +1 -1
  172. package/dist/i18n/locales/zh.d.ts +21 -12
  173. package/dist/i18n/locales/zh.js +279 -7
  174. package/dist/i18n/locales/zh.js.map +1 -1
  175. package/dist/i18n/review.d.ts +21 -12
  176. package/dist/i18n/review.js +50 -1
  177. package/dist/i18n/review.js.map +1 -1
  178. package/dist/index.d.ts +31 -4
  179. package/dist/index.js +148 -0
  180. package/dist/index.js.map +1 -1
  181. package/dist/landing/access.d.ts +48 -0
  182. package/dist/landing/access.js +38 -0
  183. package/dist/landing/access.js.map +1 -0
  184. package/dist/landing/landing-actions.d.ts +138 -0
  185. package/dist/landing/landing-actions.js +39 -0
  186. package/dist/landing/landing-actions.js.map +1 -0
  187. package/dist/landing/landing-labels.d.ts +43 -0
  188. package/dist/landing/landing-labels.js +23 -0
  189. package/dist/landing/landing-labels.js.map +1 -0
  190. package/dist/landing/landing-sections.d.ts +218 -0
  191. package/dist/landing/landing-sections.js +167 -0
  192. package/dist/landing/landing-sections.js.map +1 -0
  193. package/dist/landing/page-seo.d.ts +99 -0
  194. package/dist/landing/page-seo.js +121 -0
  195. package/dist/landing/page-seo.js.map +1 -0
  196. package/dist/landing/public-header.d.ts +148 -0
  197. package/dist/landing/public-header.js +49 -0
  198. package/dist/landing/public-header.js.map +1 -0
  199. package/dist/landing/routing.d.ts +218 -0
  200. package/dist/landing/routing.js +81 -0
  201. package/dist/landing/routing.js.map +1 -0
  202. package/dist/rhf/fields.d.ts +21 -12
  203. package/dist/rhf/form.d.ts +21 -12
  204. package/dist/rhf.d.ts +21 -12
  205. package/dist/settings/settings-catalogue.d.ts +84 -0
  206. package/dist/settings/settings-catalogue.js +47 -0
  207. package/dist/settings/settings-catalogue.js.map +1 -0
  208. package/dist/settings/settings-context.d.ts +31 -0
  209. package/dist/settings/settings-context.js +11 -0
  210. package/dist/settings/settings-context.js.map +1 -0
  211. package/dist/settings/settings-heading.d.ts +50 -0
  212. package/dist/settings/settings-heading.js +27 -0
  213. package/dist/settings/settings-heading.js.map +1 -0
  214. package/dist/settings/settings-labels.d.ts +41 -0
  215. package/dist/settings/settings-labels.js +38 -0
  216. package/dist/settings/settings-labels.js.map +1 -0
  217. package/dist/settings/settings-layout.d.ts +77 -0
  218. package/dist/settings/settings-layout.js +242 -0
  219. package/dist/settings/settings-layout.js.map +1 -0
  220. package/dist/settings/settings-section.d.ts +133 -0
  221. package/dist/settings/settings-section.js +63 -0
  222. package/dist/settings/settings-section.js.map +1 -0
  223. package/dist/settings/use-account-language.d.ts +83 -0
  224. package/dist/settings/use-account-language.js +62 -0
  225. package/dist/settings/use-account-language.js.map +1 -0
  226. package/dist/settings/use-settings-focus.d.ts +34 -0
  227. package/dist/settings/use-settings-focus.js +77 -0
  228. package/dist/settings/use-settings-focus.js.map +1 -0
  229. package/dist/settings/use-settings-route.d.ts +118 -0
  230. package/dist/settings/use-settings-route.js +120 -0
  231. package/dist/settings/use-settings-route.js.map +1 -0
  232. package/dist/shell/app-shell.d.ts +27 -12
  233. package/dist/shell/app-shell.js +3 -2
  234. package/dist/shell/app-shell.js.map +1 -1
  235. package/dist/shell/top-bar-brand.d.ts +21 -12
  236. package/dist/shell.d.ts +25 -6
  237. package/dist/shell.js +56 -0
  238. package/dist/shell.js.map +1 -1
  239. package/dist/wizard/stepper-nav.d.ts +21 -12
  240. package/dist/wizard.d.ts +21 -12
  241. package/package.json +2 -1
  242. package/src/account/account-parts.ts +67 -0
  243. package/src/account/data-export-setting.tsx +219 -0
  244. package/src/account/delete-account-setting.tsx +363 -0
  245. package/src/account/email-change-setting.tsx +454 -0
  246. package/src/account/sessions-setting.tsx +284 -0
  247. package/src/admin/admin-action-confirm.tsx +495 -0
  248. package/src/admin/admin-action-log.tsx +297 -0
  249. package/src/admin/admin-parts.ts +82 -0
  250. package/src/admin/invitations-panel.tsx +523 -0
  251. package/src/admin/reviewer-scope-editor.tsx +234 -0
  252. package/src/admin/role-select.tsx +286 -0
  253. package/src/admin/transfer-ownership-dialog.tsx +172 -0
  254. package/src/admin/user-roster.tsx +573 -0
  255. package/src/auth/auth-errors.ts +196 -8
  256. package/src/auth/forgot-password-form.tsx +21 -5
  257. package/src/auth/register-form.tsx +24 -6
  258. package/src/auth/reset-password-form.tsx +19 -5
  259. package/src/auth/sign-in-form.tsx +241 -38
  260. package/src/auth/verify-email.tsx +59 -8
  261. package/src/components/account-chips.tsx +64 -7
  262. package/src/components/account-settings-labels.ts +28 -1
  263. package/src/components/account-settings.tsx +231 -34
  264. package/src/components/data-table.tsx +8 -0
  265. package/src/components/date-picker.tsx +9 -4
  266. package/src/components/passkeys-setting.tsx +2 -1
  267. package/src/components/settings-fields.tsx +50 -1
  268. package/src/demo/demo-banner.tsx +159 -0
  269. package/src/demo/demo-countdown.ts +141 -0
  270. package/src/demo/demo-ended.tsx +89 -0
  271. package/src/demo/demo-labels.ts +78 -0
  272. package/src/demo/demo-session.ts +32 -0
  273. package/src/demo/demo-start.tsx +150 -0
  274. package/src/feedback/feedback-inbox.tsx +21 -8
  275. package/src/feedback/feedback-labels.ts +2 -1
  276. package/src/feedback/feedback-record.ts +10 -7
  277. package/src/feedback/feedback-row-detail.tsx +28 -4
  278. package/src/feedback/feedback-swipe.tsx +1 -1
  279. package/src/hooks/use-anchored-panel.ts +14 -3
  280. package/src/i18n/defaults.ts +28 -0
  281. package/src/i18n/german.ts +327 -5
  282. package/src/i18n/kit-labels.tsx +42 -0
  283. package/src/i18n/locales/es.ts +313 -3
  284. package/src/i18n/locales/fr.ts +316 -0
  285. package/src/i18n/locales/hu.ts +308 -5
  286. package/src/i18n/locales/it.ts +313 -0
  287. package/src/i18n/locales/zh.ts +286 -0
  288. package/src/i18n/review.ts +49 -0
  289. package/src/index.ts +184 -0
  290. package/src/landing/access.ts +97 -0
  291. package/src/landing/landing-actions.tsx +92 -0
  292. package/src/landing/landing-labels.ts +59 -0
  293. package/src/landing/landing-sections.tsx +337 -0
  294. package/src/landing/page-seo.ts +251 -0
  295. package/src/landing/public-header.tsx +120 -0
  296. package/src/landing/routing.tsx +209 -0
  297. package/src/settings/settings-catalogue.ts +132 -0
  298. package/src/settings/settings-context.ts +33 -0
  299. package/src/settings/settings-heading.tsx +65 -0
  300. package/src/settings/settings-labels.ts +75 -0
  301. package/src/settings/settings-layout.tsx +379 -0
  302. package/src/settings/settings-section.tsx +108 -0
  303. package/src/settings/use-account-language.ts +146 -0
  304. package/src/settings/use-settings-focus.ts +120 -0
  305. package/src/settings/use-settings-route.ts +258 -0
  306. package/src/shell/app-shell.tsx +10 -2
  307. package/src/shell.ts +45 -0
@@ -4,6 +4,8 @@ function uiKitLabelsIt(numberLocale = "it-IT") {
4
4
  const num = new Intl.NumberFormat(numberLocale);
5
5
  const n = (value) => num.format(value);
6
6
  const plural = (count, one, many) => count === 1 ? one : many;
7
+ const wait = (seconds) => seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`;
8
+ const rateLimited = (seconds) => !seconds || seconds <= 0 ? "Troppi tentativi. Attenda un momento e riprovi." : `Troppi tentativi. Riprovi tra ${wait(seconds)}.`;
7
9
  return {
8
10
  feedbackAttachment: {
9
11
  attachmentAdd: "Aggiungi allegato",
@@ -46,6 +48,7 @@ function uiKitLabelsIt(numberLocale = "it-IT") {
46
48
  // 0.27.0. "Feedback" stays, as `feedbackDialog`; "rielaborazione" for rework.
47
49
  feedbackStatus: {
48
50
  OPEN: "Aperto",
51
+ READY: "Pronto da implementare",
49
52
  IN_PROGRESS: "In corso",
50
53
  IN_EVALUATION: "In valutazione",
51
54
  NEEDS_LIVE_TEST: "Da testare in produzione",
@@ -104,6 +107,7 @@ function uiKitLabelsIt(numberLocale = "it-IT") {
104
107
  phoneActions: "Azioni sul feedback"
105
108
  },
106
109
  feedbackDetail: {
110
+ subject: "Oggetto",
107
111
  body: "Descrizione",
108
112
  edit: "Modifica",
109
113
  editDescription: "Modifica descrizione",
@@ -134,7 +138,10 @@ function uiKitLabelsIt(numberLocale = "it-IT") {
134
138
  role: "Ruolo",
135
139
  memberSince: "Membro dal",
136
140
  displayName: "Nome visualizzato",
137
- save: "Salva"
141
+ save: "Salva",
142
+ firstName: "Nome",
143
+ lastName: "Cognome",
144
+ nameRequired: "Inserisca sia il nome sia il cognome."
138
145
  },
139
146
  password: {
140
147
  title: "Cambia password",
@@ -158,7 +165,9 @@ function uiKitLabelsIt(numberLocale = "it-IT") {
158
165
  disable: "Disattiva",
159
166
  qrAlt: "Codice QR per la Sua app di autenticazione",
160
167
  secretHint: "Non riesce a scansionarlo? Inserisca invece questa chiave nell\u2019app:",
161
- copySecret: "Copia chiave"
168
+ copySecret: "Copia chiave",
169
+ // 0.31.0: the card's title; the state ("Attiva") stands beside it.
170
+ title: "Autenticazione a due fattori"
162
171
  },
163
172
  passkeys: {
164
173
  title: "Passkey",
@@ -670,7 +679,9 @@ function uiKitLabelsIt(numberLocale = "it-IT") {
670
679
  invited: "Invitato",
671
680
  registered: "Registrato",
672
681
  unverified: "Non verificato",
673
- passwordChange: "Deve cambiare la password"
682
+ passwordChange: "Deve cambiare la password",
683
+ deletion: "Eliminazione richiesta",
684
+ deletionOn: (date) => `Eliminazione il ${date}`
674
685
  },
675
686
  shareCard: {
676
687
  dialogTitle: "Condividi",
@@ -839,7 +850,18 @@ L\u2019indirizzo postale completo viene fornito su richiesta agli interessati e
839
850
  setPasswordSubmit: "Imposta la password e accedi",
840
851
  setPasswordFailed: "Impossibile impostare la password.",
841
852
  expired: "Questo accesso \xE8 scaduto. Acceda di nuovo.",
842
- backToSignIn: "Torna all\u2019accesso"
853
+ backToSignIn: "Torna all\u2019accesso",
854
+ // kastlan's backup-code words ("codice di riserva" — not keksdose's "codice di
855
+ // recupero", which is the key of its end-to-end encryption).
856
+ useRecoveryCode: "Usa un codice di riserva",
857
+ useAuthenticatorCode: "Usa la Sua app di autenticazione",
858
+ recoveryCode: "Codice di riserva",
859
+ recoveryIntro: "Inserisca uno dei codici di riserva che ha salvato quando ha attivato l\u2019autenticazione a due fattori.",
860
+ recoveryCodeHint: (length) => `${n(length)} lettere e cifre. Trattini e spazi non contano.`,
861
+ recoveryCodeInvalid: "Questo codice di riserva non \xE8 valido o \xE8 gi\xE0 stato usato.",
862
+ rateLimited,
863
+ // 0.31.0: the same words as `landing.requestAccess`.
864
+ requestAccess: "Richiedi l\u2019accesso"
843
865
  },
844
866
  register: {
845
867
  firstName: "Nome",
@@ -860,7 +882,8 @@ L\u2019indirizzo postale completo viene fornito su richiesta agli interessati e
860
882
  registrationClosed: "I nuovi account si creano solo su invito. Chieda al gestore di invitare il Suo indirizzo email.",
861
883
  invitationInvalid: "Questo link di invito non \xE8 valido.",
862
884
  invitationExpired: "Questo invito \xE8 scaduto. Ne chieda uno nuovo.",
863
- failed: "Registrazione non riuscita. Riprovi."
885
+ failed: "Registrazione non riuscita. Riprovi.",
886
+ rateLimited
864
887
  },
865
888
  completeName: {
866
889
  title: "Completi il Suo nome",
@@ -879,7 +902,8 @@ L\u2019indirizzo postale completo viene fornito su richiesta agli interessati e
879
902
  sent: (email) => `Se esiste un account per ${email}, il link \xE8 in arrivo.`,
880
903
  sentHint: "Il link \xE8 valido per un\u2019ora e funziona una sola volta. Controlli anche la cartella spam.",
881
904
  backToSignIn: "Torna all\u2019accesso",
882
- error: "Richiesta non riuscita. Riprovi pi\xF9 tardi."
905
+ error: "Richiesta non riuscita. Riprovi pi\xF9 tardi.",
906
+ rateLimited
883
907
  },
884
908
  resetPassword: {
885
909
  title: "Scelga una nuova password",
@@ -896,7 +920,8 @@ L\u2019indirizzo postale completo viene fornito su richiesta agli interessati e
896
920
  requestNew: "Richiedi un nuovo link",
897
921
  success: "La Sua password \xE8 stata cambiata. Ora pu\xF2 accedere con quella.",
898
922
  sessionsEnded: "I dispositivi connessi sono stati disconnessi: l\xEC dovr\xE0 accedere di nuovo.",
899
- signIn: "Vai all\u2019accesso"
923
+ signIn: "Vai all\u2019accesso",
924
+ rateLimited
900
925
  },
901
926
  verifyEmail: {
902
927
  title: "Confermi il Suo indirizzo email",
@@ -945,6 +970,190 @@ L\u2019indirizzo postale completo viene fornito su richiesta agli interessati e
945
970
  currentMark: "(attuale)",
946
971
  switching: "Cambio azienda in corso\u2026"
947
972
  },
973
+ // 0.30.0 — docs/user-admin-harmonization.md: keksdose's reviewed Italian for the admin
974
+ // words (admin.users.*), Kurvenschmiede's for transfer, invitations and sessions,
975
+ // kastlan's for the company, the throttle and "Esci ovunque"; written fresh where no
976
+ // app had the sentence. "Lei", and phrased so that no sentence about the reader needs
977
+ // a gender ("disconnesso/a").
978
+ emailChange: {
979
+ title: "Indirizzo email",
980
+ current: "Indirizzo attuale",
981
+ newEmail: "Nuovo indirizzo email",
982
+ password: "Password attuale",
983
+ passwordHint: "Accede con il Suo indirizzo, quindi per cambiarlo serve la password.",
984
+ emailTagUse: (address) => `Usa ${address}`,
985
+ emailTagHint: "Molti provider recapitano nome+tag@\u2026 nella stessa casella, cos\xEC la posta di questa app \xE8 filtrabile e riconoscibile. Verifichi che il Suo lo faccia prima di farci affidamento: accederebbe con l\u2019indirizzo con il tag.",
986
+ submit: "Cambia indirizzo email",
987
+ sameAsCurrent: "Questo \xE8 gi\xE0 il Suo indirizzo.",
988
+ emailTaken: "Esiste gi\xE0 un account con questo indirizzo email.",
989
+ wrongPassword: "La password non \xE8 corretta.",
990
+ pending: (newEmail) => `Confermi il link che abbiamo inviato a ${newEmail}.`,
991
+ pendingHint: (currentEmail) => `Fino ad allora continua ad accedere con ${currentEmail}. Controlli anche la cartella spam.`,
992
+ resend: "Invia di nuovo il link",
993
+ resent: "Abbiamo inviato di nuovo il link.",
994
+ cancel: "Annulla la modifica",
995
+ confirmed: (email) => `Il Suo indirizzo email ora \xE8 ${email}.`,
996
+ passkeyNote: "Le Sue passkey continuano a funzionare. Il Suo dispositivo potrebbe ancora mostrarle con il vecchio indirizzo.",
997
+ rateLimited,
998
+ failed: "Non ha funzionato. Riprovi."
999
+ },
1000
+ sessions: {
1001
+ title: "Sessioni",
1002
+ description: "Ha effettuato l\u2019accesso su un dispositivo che non usa pi\xF9 o di cui non si fida? Esca ovunque.",
1003
+ signOutEverywhere: "Esci ovunque\u2026",
1004
+ signOutEverywherePrompt: "Tutte le sessioni terminano, compresa questa: anche questo dispositivo verr\xE0 disconnesso e dovr\xE0 accedere di nuovo da qui.",
1005
+ confirmSignOutEverywhere: "Esci ovunque",
1006
+ list: "Dove ha effettuato l\u2019accesso",
1007
+ loading: "Caricamento delle sessioni\u2026",
1008
+ empty: "Nessuna sessione da mostrare.",
1009
+ current: "Questo dispositivo",
1010
+ unknownDevice: "Dispositivo sconosciuto",
1011
+ // A colon: `when` is either "3 ore fa" or a date.
1012
+ lastActive: (when) => `Ultima attivit\xE0: ${when}`,
1013
+ ip: (address) => `IP ${address}`,
1014
+ revoke: "Disconnetti",
1015
+ // Starts with `revoke`, the button's visible text, for voice control.
1016
+ revokeItem: (device) => `Disconnetti ${device}`,
1017
+ failed: "Non ha funzionato. Riprovi."
1018
+ },
1019
+ deleteAccount: {
1020
+ title: "Elimina account",
1021
+ afterDays: (days) => `Il Suo account viene disattivato subito ed eliminato definitivamente ${n(days)} ${plural(days, "giorno", "giorni")} dopo.`,
1022
+ operator: "Il Suo account viene disattivato subito, poi il gestore lo eliminer\xE0 definitivamente.",
1023
+ arm: "Elimina account\u2026",
1024
+ prompt: "Tutte le Sue sessioni terminano, su ogni dispositivo, e il Suo account non potr\xE0 pi\xF9 essere usato.",
1025
+ handOver: (count) => count === 1 ? "1 elemento visibile ad altri passer\xE0 a un amministratore." : `${n(count)} elementi visibili ad altri passeranno a un amministratore.`,
1026
+ confirm: "Elimina il mio account",
1027
+ done: "Il Suo account \xE8 disattivato. Disconnessione in corso.",
1028
+ wrongPassword: "La password non \xE8 corretta.",
1029
+ confirmationMismatch: "Questo non \xE8 l\u2019indirizzo del Suo account.",
1030
+ lastAdmin: "Il Suo \xE8 l\u2019ultimo account amministratore. Renda prima amministratore qualcun altro.",
1031
+ lastAdminOf: (companies) => `Il Suo \xE8 l\u2019ultimo account amministratore di ${companies}. L\xEC renda prima amministratore qualcun altro.`,
1032
+ // keksdose's "famiglia".
1033
+ householdHasMembers: "La Sua famiglia ha altri membri, quindi l\u2019account non pu\xF2 essere eliminato qui. Scriva al gestore.",
1034
+ rateLimited,
1035
+ failed: "Impossibile eliminare il Suo account. Riprovi."
1036
+ },
1037
+ dataExport: {
1038
+ title: "Esporta i Suoi dati",
1039
+ description: "Scarichi una copia dei dati del Suo account come file JSON.",
1040
+ download: "Scarica i miei dati",
1041
+ started: "Il download \xE8 iniziato.",
1042
+ saveAgain: "Non \xE8 partito? Salva il file",
1043
+ rateLimited: (seconds) => seconds && seconds > 0 ? `Ha appena esportato i Suoi dati. Riprovi tra ${wait(seconds)}.` : "Ha appena esportato i Suoi dati. Riprovi tra un minuto.",
1044
+ failed: "Esportazione non riuscita. Riprovi."
1045
+ },
1046
+ userRoster: {
1047
+ name: "Nome",
1048
+ email: "Email",
1049
+ role: "Ruolo",
1050
+ state: "Stato",
1051
+ created: "Creato il",
1052
+ lastLogin: "Ultimo accesso",
1053
+ never: "Mai",
1054
+ actions: "Azioni",
1055
+ actionsFor: (name) => `Azioni per ${name}`
1056
+ },
1057
+ roleSelect: {
1058
+ label: "Ruolo",
1059
+ rolesLegend: "Ruoli",
1060
+ roleOf: (name) => `Ruolo di ${name}`,
1061
+ lockedLastAdmin: "L\u2019ultimo account amministratore attivo mantiene questo ruolo.",
1062
+ lockedSelf: "Non pu\xF2 cambiare il Suo ruolo.",
1063
+ notForLastAdmin: "non per l\u2019ultimo amministratore",
1064
+ notForSelf: "non per il Suo account",
1065
+ unavailable: (role, reason) => `${role} (${reason})`
1066
+ },
1067
+ reviewerScope: {
1068
+ languages: "Lingue",
1069
+ hint: "Spunti le lingue che questa persona rivede.",
1070
+ none: "Nessuna lingua: salvando si toglie il ruolo di revisore.",
1071
+ areas: "Limita a",
1072
+ legalOnly: "Solo le pagine legali",
1073
+ legalOnlyHint: "Impressum, informativa sulla privacy e condizioni d\u2019uso: per un giurista pi\xF9 che per un madrelingua.",
1074
+ failed: "Impossibile salvare il ruolo di revisore. Riprovi."
1075
+ },
1076
+ adminAction: {
1077
+ confirm: "Conferma",
1078
+ cancel: "Annulla",
1079
+ close: "Chiudi",
1080
+ lastAdmin: "Questo \xE8 l\u2019ultimo account amministratore attivo. Renda prima amministratore qualcun altro.",
1081
+ self: "Non pu\xF2 farlo sul Suo account.",
1082
+ confirmationMismatch: "L\u2019indirizzo non corrisponde a questo account. Controlli su quale account si trova.",
1083
+ otherCompanies: "Questo account appartiene anche ad altre aziende, quindi solo il gestore della piattaforma pu\xF2 farlo. Pu\xF2 invece rimuoverlo da questa azienda.",
1084
+ removeFromCompany: "Rimuovi dall\u2019azienda",
1085
+ failed: "Non ha funzionato. Riprovi."
1086
+ },
1087
+ adminActionLog: {
1088
+ title: "Azioni di amministrazione",
1089
+ empty: "Ancora nessuna azione di amministrazione.",
1090
+ loading: "Caricamento\u2026",
1091
+ by: (actor) => `da ${actor}`,
1092
+ bySelf: "dall\u2019utente stesso",
1093
+ automatic: "automaticamente",
1094
+ erased: "un account cancellato",
1095
+ filteredTo: (target) => `Solo ${target}`,
1096
+ showAll: "Mostra tutte le azioni",
1097
+ filterBy: (target) => `Mostra solo le azioni su ${target}`,
1098
+ // Agreeing with "account" (masculine), like `accountState`.
1099
+ actions: {
1100
+ deactivate: "Disattivato",
1101
+ reactivate: "Riattivato",
1102
+ role: "Ruolo cambiato",
1103
+ membership_remove: "Rimosso dall\u2019azienda",
1104
+ password_change_require: "Nuova password richiesta",
1105
+ password_change_withdraw: "Richiesta di nuova password ritirata",
1106
+ mail_verification: "Email di conferma inviata",
1107
+ mail_reset: "Email di reimpostazione password inviata",
1108
+ reviewer: "Ambito di revisione cambiato",
1109
+ invite: "Invitato",
1110
+ invite_resend: "Invito inviato di nuovo",
1111
+ invite_revoke: "Invito ritirato",
1112
+ transfer: "Lavoro passato ad altri",
1113
+ deletion_request: "Eliminazione richiesta",
1114
+ deletion_cancel: "Eliminazione annullata",
1115
+ erase: "Account cancellato"
1116
+ }
1117
+ },
1118
+ transferOwnership: {
1119
+ title: (name) => `Passa il lavoro di ${name}`,
1120
+ body: "Tutto ci\xF2 che possiede questo account passa all\u2019account scelto, in un solo passo.",
1121
+ recipient: "Passalo a",
1122
+ choose: "Scelga un account\u2026",
1123
+ chooseFirst: "Scelga chi riceve il lavoro",
1124
+ confirm: "Passa il lavoro",
1125
+ customer: "cliente",
1126
+ deactivated: "disattivato",
1127
+ self: "lo stesso account",
1128
+ unavailable: (account, reason) => `${account} (${reason})`,
1129
+ noCandidates: "Nessun altro account pu\xF2 riceverlo."
1130
+ },
1131
+ invitations: {
1132
+ email: "Indirizzo email",
1133
+ invalidEmail: "Inserisca un indirizzo email completo.",
1134
+ role: "Ruolo",
1135
+ scope: "Ambito",
1136
+ scopeNone: "Nessuno",
1137
+ language: "Lingua dell\u2019invito",
1138
+ note: "Nota",
1139
+ invite: "Invita",
1140
+ listTitle: "Inviti",
1141
+ empty: "Non \xE8 ancora stato invitato nessuno.",
1142
+ loading: "Caricamento\u2026",
1143
+ // Agreeing with "invito" (masculine).
1144
+ status: { open: "Aperto", accepted: "Accettato", expired: "Scaduto", revoked: "Ritirato" },
1145
+ sent: (date) => `Inviato il ${date}`,
1146
+ // kastlan's "Valido fino al".
1147
+ expires: (date) => `Valido fino al ${date}`,
1148
+ invitedBy: (name) => `da ${name}`,
1149
+ resend: (email) => `Invia a ${email} un nuovo link`,
1150
+ copyLink: "Copia link di invito",
1151
+ revoke: (email) => `Ritira l\u2019invito per ${email}`,
1152
+ consoleHint: "Questo server non invia email: vengono scritte nel log del server. Copi qui ogni link di invito e lo inoltri Lei stesso: viene mostrato una sola volta.",
1153
+ linkReady: (email) => `Il link di invito per ${email}, mostrato solo questa volta:`,
1154
+ notSent: (email) => `${email} \xE8 invitato, ma non \xE8 stato possibile inviare l\u2019email. La reinvii.`,
1155
+ failed: "Non ha funzionato. Riprovi."
1156
+ },
948
1157
  characterCount: {
949
1158
  count: (used, max) => `${n(used)} di ${n(max)} ${plural(max, "carattere", "caratteri")}`,
950
1159
  remaining: (left) => left === 1 ? "Resta 1 carattere" : `Restano ${n(left)} caratteri`,
@@ -1061,6 +1270,79 @@ L\u2019indirizzo postale completo viene fornito su richiesta agli interessati e
1061
1270
  groupCount: (unreviewed, total) => `${n(unreviewed)} ${plural(unreviewed, "non rivisto", "non rivisti")} / ${n(total)}`,
1062
1271
  approveGroup: (count) => `Approva i non rivisti (${n(count)})`,
1063
1272
  confirmGroup: (count, group) => count === 1 ? `Approvare il testo non rivisto in \xAB${group}\xBB?` : `Approvare tutti i ${n(count)} testi non rivisti in \xAB${group}\xBB, compresi quelli non visibili sullo schermo?`
1273
+ },
1274
+ // 0.31.0 — docs/settings-harmonization.md §4.3 and docs/landing-demo-harmonization.md
1275
+ // §4–§5: the settings shell, the landing page's generic words and the demo. The help
1276
+ // lines name things as `accountSettings`, `sessions` and `dataExport` do. "Lei", and
1277
+ // no sentence about the reader needs a gender ("avvisato/a").
1278
+ settings: {
1279
+ title: "Impostazioni",
1280
+ search: "Cerca nelle impostazioni",
1281
+ searchPlaceholder: "Cerca nelle impostazioni\u2026",
1282
+ results: "Impostazioni corrispondenti",
1283
+ noMatches: (query) => `Nessuna impostazione corrisponde a \xAB${query}\xBB.`,
1284
+ // As `commandPalette.clear`.
1285
+ clearSearch: "Cancella ricerca",
1286
+ back: "Torna alle impostazioni",
1287
+ sections: "Sezioni delle impostazioni",
1288
+ matchCount: (count) => `${n(count)} ${plural(count, "risultato", "risultati")}`,
1289
+ groups: {
1290
+ appearance: {
1291
+ title: "Aspetto",
1292
+ help: "Lingua, tema e aspetto dell\u2019app su questo dispositivo."
1293
+ },
1294
+ account: {
1295
+ title: "Account",
1296
+ help: "Il Suo profilo e il Suo indirizzo email."
1297
+ },
1298
+ security: {
1299
+ title: "Sicurezza",
1300
+ help: "Come accede: password, codici 2FA, passkey e sessioni."
1301
+ },
1302
+ notifications: {
1303
+ title: "Notifiche",
1304
+ help: "Quali notifiche riceve, quando e su quali dispositivi."
1305
+ },
1306
+ data: {
1307
+ title: "Dati",
1308
+ help: "Esporti i Suoi dati o li elimini insieme al Suo account."
1309
+ }
1310
+ }
1311
+ },
1312
+ landing: {
1313
+ signIn: "Accedi",
1314
+ requestAccess: "Richiedi l\u2019accesso",
1315
+ getStarted: "Inizia",
1316
+ tryDemo: "Prova la demo",
1317
+ openApp: "Apri l\u2019app",
1318
+ continueDemo: "Continua la demo",
1319
+ beta: "Beta",
1320
+ // Plain text: a mail's subject and body lines, never HTML.
1321
+ accessSubject: (app) => app ? `Accesso a ${app}` : "Richiesta di accesso",
1322
+ accessName: "Nome:",
1323
+ accessCompany: "Azienda:",
1324
+ accessUse: "Uso previsto:"
1325
+ },
1326
+ demo: {
1327
+ starting: "Avvio della demo\u2026",
1328
+ rateLimited: (minutes) => minutes ? `Troppe demo da questa rete. Riprovi tra ${n(minutes)} min.` : "Troppe demo da questa rete. Riprovi pi\xF9 tardi.",
1329
+ capacity: "La demo \xE8 al completo in questo momento. Riprovi pi\xF9 tardi.",
1330
+ unavailable: "La demo non \xE8 disponibile in questo momento.",
1331
+ failed: "Impossibile avviare la demo. Riprovi.",
1332
+ // As `legal.backHome`.
1333
+ backToStart: "Torna alla pagina iniziale",
1334
+ // "ancora" rather than "mancano", which would have to agree with the count.
1335
+ hoursLeft: (hours, minutes) => `Demo \xB7 ancora ${n(hours)} h ${n(minutes)} min`,
1336
+ minutesLeft: (minutes) => `Demo \xB7 ancora ${n(minutes)} min`,
1337
+ badge: "Demo",
1338
+ readOnly: "Sta guardando dati di esempio. Non \xE8 possibile apportare modifiche.",
1339
+ sandbox: "Quello che crea viene eliminato al termine della demo.",
1340
+ details: "Dettagli della demo",
1341
+ writeLocked: "Non \xE8 possibile nella demo.",
1342
+ endedTitle: "La demo \xE8 terminata",
1343
+ endedReadOnly: "I dati di esempio vengono reimpostati regolarmente.",
1344
+ endedSandbox: "I dati di esempio vengono reimpostati regolarmente; quello che ha creato nella demo viene eliminato.",
1345
+ restart: "Avvia una nuova demo"
1064
1346
  }
1065
1347
  };
1066
1348
  }