@eifi1/ui-kit 0.31.1 → 0.32.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 (538) hide show
  1. package/README.md +51 -28
  2. package/dist/account/delete-account-setting.d.ts +8 -3
  3. package/dist/admin/admin-action-confirm.d.ts +8 -3
  4. package/dist/admin/invitations-panel.d.ts +8 -3
  5. package/dist/admin/invitations-panel.js +29 -26
  6. package/dist/admin/invitations-panel.js.map +1 -1
  7. package/dist/admin/reviewer-scope-editor.d.ts +8 -3
  8. package/dist/admin/role-select.d.ts +10 -5
  9. package/dist/admin/transfer-ownership-dialog.d.ts +8 -3
  10. package/dist/admin/user-roster.d.ts +10 -5
  11. package/dist/admin/user-roster.js +8 -47
  12. package/dist/admin/user-roster.js.map +1 -1
  13. package/dist/auth/auth-errors.d.ts +43 -8
  14. package/dist/auth/auth-errors.js +24 -1
  15. package/dist/auth/auth-errors.js.map +1 -1
  16. package/dist/auth/register-form.d.ts +8 -3
  17. package/dist/billing/billing-banner.d.ts +184 -0
  18. package/dist/billing/billing-banner.js +98 -0
  19. package/dist/billing/billing-banner.js.map +1 -0
  20. package/dist/billing/billing-labels.d.ts +100 -0
  21. package/dist/billing/billing-labels.js +74 -0
  22. package/dist/billing/billing-labels.js.map +1 -0
  23. package/dist/billing/billing-lock.d.ts +158 -0
  24. package/dist/billing/billing-lock.js +17 -0
  25. package/dist/billing/billing-lock.js.map +1 -0
  26. package/dist/billing/billing-standing.d.ts +149 -0
  27. package/dist/billing/billing-standing.js +28 -0
  28. package/dist/billing/billing-standing.js.map +1 -0
  29. package/dist/billing/plan-card.d.ts +248 -0
  30. package/dist/billing/plan-card.js +248 -0
  31. package/dist/billing/plan-card.js.map +1 -0
  32. package/dist/billing/plan-limit-notice.d.ts +156 -0
  33. package/dist/billing/plan-limit-notice.js +76 -0
  34. package/dist/billing/plan-limit-notice.js.map +1 -0
  35. package/dist/billing/plan-limit.d.ts +34 -0
  36. package/dist/billing/plan-limit.js +20 -0
  37. package/dist/billing/plan-limit.js.map +1 -0
  38. package/dist/billing/plan-price.d.ts +61 -0
  39. package/dist/billing/plan-price.js +45 -0
  40. package/dist/billing/plan-price.js.map +1 -0
  41. package/dist/billing/subscription-actions.d.ts +133 -0
  42. package/dist/billing/subscription-actions.js +28 -0
  43. package/dist/billing/subscription-actions.js.map +1 -0
  44. package/dist/billing/subscription-status-chip.d.ts +149 -0
  45. package/dist/billing/subscription-status-chip.js +48 -0
  46. package/dist/billing/subscription-status-chip.js.map +1 -0
  47. package/dist/chart.d.ts +9 -3
  48. package/dist/components/account-chips.d.ts +16 -4
  49. package/dist/components/account-chips.js +21 -3
  50. package/dist/components/account-chips.js.map +1 -1
  51. package/dist/components/alert-banner.d.ts +6 -1
  52. package/dist/components/alert-banner.js +4 -3
  53. package/dist/components/alert-banner.js.map +1 -1
  54. package/dist/components/amount-input.d.ts +8 -3
  55. package/dist/components/amount-input.js +5 -5
  56. package/dist/components/amount-input.js.map +1 -1
  57. package/dist/components/appearance-labels.d.ts +32 -0
  58. package/dist/components/appearance-labels.js +18 -0
  59. package/dist/components/appearance-labels.js.map +1 -0
  60. package/dist/components/autocomplete.js +2 -2
  61. package/dist/components/autocomplete.js.map +1 -1
  62. package/dist/components/breadcrumbs.js +3 -2
  63. package/dist/components/breadcrumbs.js.map +1 -1
  64. package/dist/components/bulk-action-bar.d.ts +2 -2
  65. package/dist/components/bulk-action-bar.js +7 -12
  66. package/dist/components/bulk-action-bar.js.map +1 -1
  67. package/dist/components/button-group.d.ts +8 -3
  68. package/dist/components/calculator.d.ts +8 -3
  69. package/dist/components/calculator.js +4 -3
  70. package/dist/components/calculator.js.map +1 -1
  71. package/dist/components/calendar-heatmap.js +5 -5
  72. package/dist/components/calendar-heatmap.js.map +1 -1
  73. package/dist/components/chart-height.d.ts +23 -0
  74. package/dist/components/chart-height.js +15 -0
  75. package/dist/components/chart-height.js.map +1 -0
  76. package/dist/components/chart-zoom.js +6 -1
  77. package/dist/components/chart-zoom.js.map +1 -1
  78. package/dist/components/checkbox-group.js +2 -2
  79. package/dist/components/checkbox-group.js.map +1 -1
  80. package/dist/components/checkbox.d.ts +10 -0
  81. package/dist/components/checkbox.js +25 -10
  82. package/dist/components/checkbox.js.map +1 -1
  83. package/dist/components/chip.d.ts +19 -3
  84. package/dist/components/chip.js +47 -21
  85. package/dist/components/chip.js.map +1 -1
  86. package/dist/components/choice-card.d.ts +1 -1
  87. package/dist/components/choice-card.js +8 -7
  88. package/dist/components/choice-card.js.map +1 -1
  89. package/dist/components/column-mapper.js +1 -1
  90. package/dist/components/column-mapper.js.map +1 -1
  91. package/dist/components/combobox-core.js +8 -7
  92. package/dist/components/combobox-core.js.map +1 -1
  93. package/dist/components/combobox.js +8 -8
  94. package/dist/components/combobox.js.map +1 -1
  95. package/dist/components/confirm-dialog.d.ts +8 -3
  96. package/dist/components/copy-button.d.ts +10 -5
  97. package/dist/components/country-select.js +1 -1
  98. package/dist/components/country-select.js.map +1 -1
  99. package/dist/components/currency-select.js +3 -3
  100. package/dist/components/currency-select.js.map +1 -1
  101. package/dist/components/danger-confirm.d.ts +8 -3
  102. package/dist/components/data-table-cells.d.ts +1 -1
  103. package/dist/components/data-table-filter-popover.d.ts +1 -1
  104. package/dist/components/data-table-filter-popover.js +4 -1
  105. package/dist/components/data-table-filter-popover.js.map +1 -1
  106. package/dist/components/data-table-filters.d.ts +1 -1
  107. package/dist/components/data-table-labels.d.ts +1 -1
  108. package/dist/components/data-table-pagination.d.ts +1 -1
  109. package/dist/components/data-table.d.ts +1 -1
  110. package/dist/components/data-table.js +123 -52
  111. package/dist/components/data-table.js.map +1 -1
  112. package/dist/components/date-picker.d.ts +1 -1
  113. package/dist/components/date-picker.js +7 -5
  114. package/dist/components/date-picker.js.map +1 -1
  115. package/dist/components/description-list.js +2 -2
  116. package/dist/components/description-list.js.map +1 -1
  117. package/dist/components/dialog-frame.js +2 -1
  118. package/dist/components/dialog-frame.js.map +1 -1
  119. package/dist/components/disclosure.js +3 -2
  120. package/dist/components/disclosure.js.map +1 -1
  121. package/dist/components/dropdown.d.ts +1 -1
  122. package/dist/components/dropdown.js +7 -1
  123. package/dist/components/dropdown.js.map +1 -1
  124. package/dist/components/facing-pair.d.ts +19 -6
  125. package/dist/components/facing-pair.js +3 -2
  126. package/dist/components/facing-pair.js.map +1 -1
  127. package/dist/components/field-parts.d.ts +102 -6
  128. package/dist/components/field-parts.js +81 -6
  129. package/dist/components/field-parts.js.map +1 -1
  130. package/dist/components/field-sync.d.ts +4 -1
  131. package/dist/components/field-sync.js +12 -2
  132. package/dist/components/field-sync.js.map +1 -1
  133. package/dist/components/field.js +2 -2
  134. package/dist/components/field.js.map +1 -1
  135. package/dist/components/file-button.d.ts +8 -3
  136. package/dist/components/file-dropzone.d.ts +8 -3
  137. package/dist/components/floating-panel.js +7 -4
  138. package/dist/components/floating-panel.js.map +1 -1
  139. package/dist/components/focus-ring.d.ts +12 -0
  140. package/dist/components/focus-ring.js +8 -0
  141. package/dist/components/focus-ring.js.map +1 -0
  142. package/dist/components/form-actions.d.ts +8 -3
  143. package/dist/components/form-actions.js +33 -19
  144. package/dist/components/form-actions.js.map +1 -1
  145. package/dist/components/full-bleed-dialog.d.ts +11 -1
  146. package/dist/components/full-bleed-dialog.js +3 -1
  147. package/dist/components/full-bleed-dialog.js.map +1 -1
  148. package/dist/components/iban-input.d.ts +8 -3
  149. package/dist/components/image-grid.js +1 -1
  150. package/dist/components/image-grid.js.map +1 -1
  151. package/dist/components/inline-edit-field.js +6 -3
  152. package/dist/components/inline-edit-field.js.map +1 -1
  153. package/dist/components/language-select.d.ts +8 -3
  154. package/dist/components/legal-page.d.ts +26 -5
  155. package/dist/components/legal-page.js +3 -1
  156. package/dist/components/legal-page.js.map +1 -1
  157. package/dist/components/legal.d.ts +8 -3
  158. package/dist/components/legal.js +2 -1
  159. package/dist/components/legal.js.map +1 -1
  160. package/dist/components/lightbox.js +24 -2
  161. package/dist/components/lightbox.js.map +1 -1
  162. package/dist/components/line-items.js +2 -1
  163. package/dist/components/line-items.js.map +1 -1
  164. package/dist/components/list.d.ts +5 -0
  165. package/dist/components/list.js +13 -9
  166. package/dist/components/list.js.map +1 -1
  167. package/dist/components/measured-grid.d.ts +3 -1
  168. package/dist/components/measured-grid.js +38 -20
  169. package/dist/components/measured-grid.js.map +1 -1
  170. package/dist/components/menu-item.js +2 -1
  171. package/dist/components/menu-item.js.map +1 -1
  172. package/dist/components/mini-calendar.js +8 -4
  173. package/dist/components/mini-calendar.js.map +1 -1
  174. package/dist/components/money-field.d.ts +8 -3
  175. package/dist/components/month-picker.js +9 -5
  176. package/dist/components/month-picker.js.map +1 -1
  177. package/dist/components/nav-pills.js +1 -1
  178. package/dist/components/nav-pills.js.map +1 -1
  179. package/dist/components/number-field.d.ts +8 -3
  180. package/dist/components/number-input.d.ts +11 -4
  181. package/dist/components/number-input.js +8 -6
  182. package/dist/components/number-input.js.map +1 -1
  183. package/dist/components/numpad-sheet.d.ts +8 -3
  184. package/dist/components/numpad-sheet.js +2 -1
  185. package/dist/components/numpad-sheet.js.map +1 -1
  186. package/dist/components/one-time-code-input.js +2 -2
  187. package/dist/components/one-time-code-input.js.map +1 -1
  188. package/dist/components/page-contents.js +2 -2
  189. package/dist/components/page-contents.js.map +1 -1
  190. package/dist/components/phone-input.d.ts +8 -3
  191. package/dist/components/phone-input.js +2 -2
  192. package/dist/components/phone-input.js.map +1 -1
  193. package/dist/components/pie-chart.d.ts +8 -2
  194. package/dist/components/pie-chart.js +11 -7
  195. package/dist/components/pie-chart.js.map +1 -1
  196. package/dist/components/popover.d.ts +9 -1
  197. package/dist/components/popover.js +8 -4
  198. package/dist/components/popover.js.map +1 -1
  199. package/dist/components/row-actions.d.ts +100 -0
  200. package/dist/components/row-actions.js +165 -0
  201. package/dist/components/row-actions.js.map +1 -0
  202. package/dist/components/scroll-area.js +1 -1
  203. package/dist/components/scroll-area.js.map +1 -1
  204. package/dist/components/search-field.js +3 -2
  205. package/dist/components/search-field.js.map +1 -1
  206. package/dist/components/series-chart-budget.d.ts +30 -7
  207. package/dist/components/series-chart-budget.js +12 -4
  208. package/dist/components/series-chart-budget.js.map +1 -1
  209. package/dist/components/series-chart-ticks.d.ts +7 -1
  210. package/dist/components/series-chart-ticks.js +6 -0
  211. package/dist/components/series-chart-ticks.js.map +1 -1
  212. package/dist/components/series-chart.d.ts +58 -28
  213. package/dist/components/series-chart.js +42 -32
  214. package/dist/components/series-chart.js.map +1 -1
  215. package/dist/components/settings-fields.d.ts +51 -6
  216. package/dist/components/settings-fields.js +37 -0
  217. package/dist/components/settings-fields.js.map +1 -1
  218. package/dist/components/share-card.d.ts +11 -6
  219. package/dist/components/share-card.js +2 -0
  220. package/dist/components/share-card.js.map +1 -1
  221. package/dist/components/sign-chip.d.ts +4 -0
  222. package/dist/components/sign-chip.js +17 -4
  223. package/dist/components/sign-chip.js.map +1 -1
  224. package/dist/components/signature-pad.d.ts +3 -1
  225. package/dist/components/signature-pad.js +8 -5
  226. package/dist/components/signature-pad.js.map +1 -1
  227. package/dist/components/slider.js +7 -6
  228. package/dist/components/slider.js.map +1 -1
  229. package/dist/components/sparkline.d.ts +5 -1
  230. package/dist/components/sparkline.js +4 -2
  231. package/dist/components/sparkline.js.map +1 -1
  232. package/dist/components/stat-tile.d.ts +17 -1
  233. package/dist/components/stat-tile.js +48 -20
  234. package/dist/components/stat-tile.js.map +1 -1
  235. package/dist/components/status-dot.d.ts +4 -0
  236. package/dist/components/swipeable-row.js +2 -1
  237. package/dist/components/swipeable-row.js.map +1 -1
  238. package/dist/components/switch.d.ts +21 -7
  239. package/dist/components/switch.js +24 -11
  240. package/dist/components/switch.js.map +1 -1
  241. package/dist/components/table.js +2 -2
  242. package/dist/components/table.js.map +1 -1
  243. package/dist/components/text-link.d.ts +8 -3
  244. package/dist/components/text-link.js +1 -1
  245. package/dist/components/text-link.js.map +1 -1
  246. package/dist/components/text.d.ts +7 -2
  247. package/dist/components/text.js +5 -5
  248. package/dist/components/text.js.map +1 -1
  249. package/dist/components/tile-radio.js +2 -1
  250. package/dist/components/tile-radio.js.map +1 -1
  251. package/dist/components/time-input.d.ts +8 -3
  252. package/dist/components/toast.d.ts +18 -2
  253. package/dist/components/toast.js +8 -5
  254. package/dist/components/toast.js.map +1 -1
  255. package/dist/components/toggle-group.d.ts +16 -1
  256. package/dist/components/toggle-group.js +40 -11
  257. package/dist/components/toggle-group.js.map +1 -1
  258. package/dist/components/toggle-legend.d.ts +10 -1
  259. package/dist/components/toggle-legend.js +21 -7
  260. package/dist/components/toggle-legend.js.map +1 -1
  261. package/dist/components/translation-review-parts.d.ts +4 -0
  262. package/dist/components/translation-review.d.ts +4 -0
  263. package/dist/components/translation-review.js +3 -3
  264. package/dist/components/translation-review.js.map +1 -1
  265. package/dist/components/tree-view.js +3 -2
  266. package/dist/components/tree-view.js.map +1 -1
  267. package/dist/components/treemap.d.ts +5 -2
  268. package/dist/components/treemap.js +33 -16
  269. package/dist/components/treemap.js.map +1 -1
  270. package/dist/components/ui.d.ts +8 -3
  271. package/dist/components/ui.js +202 -114
  272. package/dist/components/ui.js.map +1 -1
  273. package/dist/components/use-table-state.d.ts +1 -1
  274. package/dist/components/user-avatar.d.ts +5 -1
  275. package/dist/components/user-avatar.js +1 -1
  276. package/dist/components/user-avatar.js.map +1 -1
  277. package/dist/{data-table-labels-DUELeXpa.d.ts → data-table-labels-kpAAVi6g.d.ts} +26 -2
  278. package/dist/data-table.d.ts +1 -1
  279. package/dist/{delete-account-setting-CpIhzxxZ.d.ts → delete-account-setting-BvdQdbv3.d.ts} +605 -58
  280. package/dist/demo/demo-banner.js +1 -0
  281. package/dist/demo/demo-banner.js.map +1 -1
  282. package/dist/feedback/feedback-attachment.d.ts +8 -3
  283. package/dist/feedback/feedback-context.d.ts +8 -3
  284. package/dist/feedback/feedback-crash.d.ts +8 -3
  285. package/dist/feedback/feedback-dialog.d.ts +8 -3
  286. package/dist/feedback/feedback-dialog.js +3 -3
  287. package/dist/feedback/feedback-dialog.js.map +1 -1
  288. package/dist/feedback/feedback-inbox.d.ts +8 -3
  289. package/dist/feedback/feedback-inbox.js +2 -2
  290. package/dist/feedback/feedback-inbox.js.map +1 -1
  291. package/dist/feedback/feedback-labels.d.ts +8 -3
  292. package/dist/feedback/feedback-menu.d.ts +9 -4
  293. package/dist/feedback/feedback-record.d.ts +8 -3
  294. package/dist/feedback/feedback-row-detail.d.ts +8 -3
  295. package/dist/feedback/feedback-status-undo.d.ts +8 -3
  296. package/dist/feedback/feedback-submit.d.ts +8 -3
  297. package/dist/feedback/feedback-swipe.d.ts +8 -3
  298. package/dist/feedback/feedback-table.d.ts +8 -3
  299. package/dist/feedback/feedback-thread.d.ts +8 -3
  300. package/dist/feedback/feedback-thread.js +3 -3
  301. package/dist/feedback/feedback-thread.js.map +1 -1
  302. package/dist/feedback.d.ts +8 -3
  303. package/dist/hooks/use-anchored-panel.d.ts +32 -3
  304. package/dist/hooks/use-anchored-panel.js +21 -3
  305. package/dist/hooks/use-anchored-panel.js.map +1 -1
  306. package/dist/hooks/use-breakpoint.d.ts +77 -0
  307. package/dist/hooks/use-breakpoint.js +50 -0
  308. package/dist/hooks/use-breakpoint.js.map +1 -0
  309. package/dist/hooks/use-file-drop.d.ts +8 -3
  310. package/dist/hooks/use-large-text.d.ts +29 -0
  311. package/dist/hooks/use-large-text.js +20 -0
  312. package/dist/hooks/use-large-text.js.map +1 -0
  313. package/dist/hooks/use-windowed-rows.d.ts +52 -8
  314. package/dist/hooks/use-windowed-rows.js +94 -5
  315. package/dist/hooks/use-windowed-rows.js.map +1 -1
  316. package/dist/i18n/defaults.d.ts +8 -3
  317. package/dist/i18n/defaults.js +8 -0
  318. package/dist/i18n/defaults.js.map +1 -1
  319. package/dist/i18n/german.d.ts +8 -3
  320. package/dist/i18n/german.js +89 -2
  321. package/dist/i18n/german.js.map +1 -1
  322. package/dist/i18n/kit-labels.d.ts +8 -3
  323. package/dist/i18n/kit-labels.js.map +1 -1
  324. package/dist/i18n/languages.d.ts +10 -5
  325. package/dist/i18n/locales/de-CH.d.ts +8 -3
  326. package/dist/i18n/locales/en.d.ts +8 -3
  327. package/dist/i18n/locales/es.d.ts +8 -3
  328. package/dist/i18n/locales/es.js +84 -2
  329. package/dist/i18n/locales/es.js.map +1 -1
  330. package/dist/i18n/locales/fr.d.ts +8 -3
  331. package/dist/i18n/locales/fr.js +86 -2
  332. package/dist/i18n/locales/fr.js.map +1 -1
  333. package/dist/i18n/locales/hu.d.ts +8 -3
  334. package/dist/i18n/locales/hu.js +86 -2
  335. package/dist/i18n/locales/hu.js.map +1 -1
  336. package/dist/i18n/locales/it.d.ts +8 -3
  337. package/dist/i18n/locales/it.js +87 -2
  338. package/dist/i18n/locales/it.js.map +1 -1
  339. package/dist/i18n/locales/zh.d.ts +8 -3
  340. package/dist/i18n/locales/zh.js +84 -2
  341. package/dist/i18n/locales/zh.js.map +1 -1
  342. package/dist/i18n/review.d.ts +8 -3
  343. package/dist/i18n/review.js +15 -1
  344. package/dist/i18n/review.js.map +1 -1
  345. package/dist/index.d.ts +27 -11
  346. package/dist/index.js +75 -4
  347. package/dist/index.js.map +1 -1
  348. package/dist/landing/landing-actions.d.ts +8 -3
  349. package/dist/landing/landing-sections.d.ts +8 -3
  350. package/dist/landing/public-header.d.ts +9 -4
  351. package/dist/landing/public-header.js +3 -3
  352. package/dist/landing/public-header.js.map +1 -1
  353. package/dist/landing/routing.d.ts +8 -3
  354. package/dist/lib/cn.js +3 -2
  355. package/dist/lib/cn.js.map +1 -1
  356. package/dist/rhf/fields.d.ts +8 -3
  357. package/dist/rhf/fields.js +1 -1
  358. package/dist/rhf/fields.js.map +1 -1
  359. package/dist/rhf/form.d.ts +8 -3
  360. package/dist/rhf/form.js +2 -2
  361. package/dist/rhf/form.js.map +1 -1
  362. package/dist/rhf.d.ts +8 -3
  363. package/dist/search/command-palette.d.ts +1 -1
  364. package/dist/search/command-palette.js +9 -8
  365. package/dist/search/command-palette.js.map +1 -1
  366. package/dist/settings/settings-layout.js +2 -1
  367. package/dist/settings/settings-layout.js.map +1 -1
  368. package/dist/settings/settings-section.d.ts +8 -3
  369. package/dist/settings/use-account-appearance.d.ts +92 -0
  370. package/dist/settings/use-account-appearance.js +63 -0
  371. package/dist/settings/use-account-appearance.js.map +1 -0
  372. package/dist/settings/use-settings-route.d.ts +1 -1
  373. package/dist/settings/use-settings-route.js +2 -3
  374. package/dist/settings/use-settings-route.js.map +1 -1
  375. package/dist/shell/app-shell.d.ts +12 -171
  376. package/dist/shell/app-shell.js +144 -28
  377. package/dist/shell/app-shell.js.map +1 -1
  378. package/dist/shell/auth-layout.js +1 -1
  379. package/dist/shell/auth-layout.js.map +1 -1
  380. package/dist/shell/option-switcher-menu.js +1 -1
  381. package/dist/shell/option-switcher-menu.js.map +1 -1
  382. package/dist/shell/top-bar-brand.d.ts +8 -3
  383. package/dist/shell/top-bar-brand.js +3 -1
  384. package/dist/shell/top-bar-brand.js.map +1 -1
  385. package/dist/shell/topbar-action-menu.d.ts +4 -0
  386. package/dist/shell/topbar-action-menu.js +3 -3
  387. package/dist/shell/topbar-action-menu.js.map +1 -1
  388. package/dist/shell/topbar-controls.js +4 -4
  389. package/dist/shell/topbar-controls.js.map +1 -1
  390. package/dist/shell.d.ts +9 -5
  391. package/dist/theme/contrast-tokens.d.ts +41 -0
  392. package/dist/theme/contrast-tokens.js +59 -0
  393. package/dist/theme/contrast-tokens.js.map +1 -0
  394. package/dist/theme/contrast.d.ts +109 -0
  395. package/dist/theme/contrast.js +128 -0
  396. package/dist/theme/contrast.js.map +1 -0
  397. package/dist/theme/palette-presets.d.ts +12 -1
  398. package/dist/theme/palette-presets.js +9 -4
  399. package/dist/theme/palette-presets.js.map +1 -1
  400. package/dist/theme/palette-store.js.map +1 -1
  401. package/dist/theme/text-size.d.ts +157 -0
  402. package/dist/theme/text-size.js +121 -0
  403. package/dist/theme/text-size.js.map +1 -0
  404. package/dist/wizard/stepper-nav.d.ts +8 -3
  405. package/dist/wizard.d.ts +8 -3
  406. package/package.json +1 -1
  407. package/src/admin/invitations-panel.tsx +36 -29
  408. package/src/admin/user-roster.tsx +17 -72
  409. package/src/auth/auth-errors.ts +68 -7
  410. package/src/billing/billing-banner.tsx +205 -0
  411. package/src/billing/billing-labels.ts +224 -0
  412. package/src/billing/billing-lock.ts +75 -0
  413. package/src/billing/billing-standing.ts +72 -0
  414. package/src/billing/plan-card.tsx +458 -0
  415. package/src/billing/plan-limit-notice.tsx +145 -0
  416. package/src/billing/plan-limit.ts +53 -0
  417. package/src/billing/plan-price.ts +101 -0
  418. package/src/billing/subscription-actions.tsx +76 -0
  419. package/src/billing/subscription-status-chip.tsx +95 -0
  420. package/src/components/account-chips.tsx +36 -10
  421. package/src/components/alert-banner.tsx +11 -6
  422. package/src/components/amount-input.tsx +5 -5
  423. package/src/components/appearance-labels.ts +40 -0
  424. package/src/components/autocomplete.tsx +2 -2
  425. package/src/components/breadcrumbs.tsx +3 -3
  426. package/src/components/bulk-action-bar.tsx +11 -14
  427. package/src/components/calculator.tsx +4 -3
  428. package/src/components/calendar-heatmap.tsx +5 -5
  429. package/src/components/chart-height.ts +30 -0
  430. package/src/components/chart-zoom.tsx +6 -1
  431. package/src/components/checkbox-group.tsx +2 -2
  432. package/src/components/checkbox.tsx +62 -20
  433. package/src/components/chip.tsx +105 -24
  434. package/src/components/choice-card.tsx +15 -10
  435. package/src/components/column-mapper.tsx +1 -1
  436. package/src/components/combobox-core.tsx +8 -7
  437. package/src/components/combobox.tsx +8 -8
  438. package/src/components/country-select.tsx +1 -1
  439. package/src/components/currency-select.tsx +3 -3
  440. package/src/components/data-table-filter-popover.tsx +7 -1
  441. package/src/components/data-table.tsx +160 -43
  442. package/src/components/date-picker.tsx +12 -9
  443. package/src/components/description-list.tsx +2 -2
  444. package/src/components/dialog-frame.tsx +2 -1
  445. package/src/components/disclosure.tsx +3 -2
  446. package/src/components/dropdown.tsx +10 -2
  447. package/src/components/facing-pair.ts +12 -5
  448. package/src/components/field-parts.tsx +190 -7
  449. package/src/components/field-sync.tsx +17 -3
  450. package/src/components/field.tsx +2 -2
  451. package/src/components/floating-panel.tsx +7 -4
  452. package/src/components/focus-ring.ts +12 -0
  453. package/src/components/form-actions.tsx +55 -18
  454. package/src/components/full-bleed-dialog.tsx +18 -4
  455. package/src/components/image-grid.tsx +1 -1
  456. package/src/components/inline-edit-field.tsx +6 -3
  457. package/src/components/legal-page.tsx +28 -2
  458. package/src/components/legal.tsx +19 -1
  459. package/src/components/lightbox.tsx +24 -2
  460. package/src/components/line-items.tsx +7 -1
  461. package/src/components/list.tsx +36 -10
  462. package/src/components/measured-grid.tsx +49 -24
  463. package/src/components/menu-item.tsx +2 -2
  464. package/src/components/mini-calendar.tsx +8 -4
  465. package/src/components/month-picker.tsx +9 -5
  466. package/src/components/nav-pills.tsx +1 -1
  467. package/src/components/number-input.tsx +14 -7
  468. package/src/components/numpad-sheet.tsx +2 -2
  469. package/src/components/one-time-code-input.tsx +2 -2
  470. package/src/components/page-contents.tsx +2 -2
  471. package/src/components/phone-input.tsx +2 -2
  472. package/src/components/pie-chart.tsx +19 -9
  473. package/src/components/popover.tsx +22 -5
  474. package/src/components/row-actions.tsx +344 -0
  475. package/src/components/scroll-area.tsx +1 -1
  476. package/src/components/search-field.tsx +4 -2
  477. package/src/components/series-chart-budget.ts +40 -8
  478. package/src/components/series-chart-ticks.ts +10 -0
  479. package/src/components/series-chart.tsx +123 -72
  480. package/src/components/settings-fields.tsx +81 -2
  481. package/src/components/share-card.tsx +10 -0
  482. package/src/components/sign-chip.tsx +28 -4
  483. package/src/components/signature-pad.tsx +13 -7
  484. package/src/components/slider.tsx +22 -9
  485. package/src/components/sparkline.tsx +11 -3
  486. package/src/components/stat-tile.tsx +70 -14
  487. package/src/components/swipeable-row.tsx +2 -1
  488. package/src/components/switch.tsx +57 -23
  489. package/src/components/table.tsx +2 -2
  490. package/src/components/text-link.tsx +1 -1
  491. package/src/components/text.tsx +11 -6
  492. package/src/components/tile-radio.tsx +4 -1
  493. package/src/components/toast.tsx +27 -7
  494. package/src/components/toggle-group.tsx +99 -12
  495. package/src/components/toggle-legend.tsx +53 -8
  496. package/src/components/translation-review.tsx +10 -5
  497. package/src/components/tree-view.tsx +3 -2
  498. package/src/components/treemap.tsx +27 -10
  499. package/src/components/ui.tsx +331 -145
  500. package/src/components/user-avatar.tsx +1 -1
  501. package/src/demo/demo-banner.tsx +5 -0
  502. package/src/feedback/feedback-dialog.tsx +3 -3
  503. package/src/feedback/feedback-inbox.tsx +2 -2
  504. package/src/feedback/feedback-thread.tsx +3 -3
  505. package/src/hooks/use-anchored-panel.ts +67 -5
  506. package/src/hooks/use-breakpoint.ts +121 -0
  507. package/src/hooks/use-large-text.ts +41 -0
  508. package/src/hooks/use-windowed-rows.ts +168 -12
  509. package/src/i18n/defaults.ts +8 -0
  510. package/src/i18n/german.ts +103 -0
  511. package/src/i18n/kit-labels.tsx +12 -0
  512. package/src/i18n/locales/es.ts +94 -0
  513. package/src/i18n/locales/fr.ts +98 -0
  514. package/src/i18n/locales/hu.ts +96 -0
  515. package/src/i18n/locales/it.ts +99 -0
  516. package/src/i18n/locales/zh.ts +90 -0
  517. package/src/i18n/review.ts +14 -0
  518. package/src/index.ts +74 -6
  519. package/src/landing/public-header.tsx +4 -4
  520. package/src/lib/cn.ts +13 -2
  521. package/src/rhf/fields.tsx +1 -1
  522. package/src/rhf/form.tsx +2 -2
  523. package/src/search/command-palette.tsx +10 -9
  524. package/src/settings/settings-layout.tsx +2 -1
  525. package/src/settings/use-account-appearance.ts +148 -0
  526. package/src/settings/use-settings-route.ts +3 -4
  527. package/src/shell/app-shell.tsx +278 -54
  528. package/src/shell/auth-layout.tsx +1 -1
  529. package/src/shell/option-switcher-menu.tsx +1 -1
  530. package/src/shell/top-bar-brand.tsx +3 -1
  531. package/src/shell/topbar-action-menu.tsx +3 -3
  532. package/src/shell/topbar-controls.tsx +4 -4
  533. package/src/theme/contrast-tokens.ts +112 -0
  534. package/src/theme/contrast.ts +224 -0
  535. package/src/theme/palette-presets.ts +24 -4
  536. package/src/theme/palette-store.ts +6 -1
  537. package/src/theme/text-size.ts +267 -0
  538. package/tokens.css +143 -1
@@ -26,6 +26,10 @@ export function germanLabels(numberLocale: string): UiKitLabels {
26
26
  !seconds || seconds <= 0
27
27
  ? "Zu viele Versuche. Bitte warten Sie einen Moment und versuchen Sie es dann noch einmal."
28
28
  : `Zu viele Versuche. Versuchen Sie es in ${wait(seconds)} erneut.`;
29
+ // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:
30
+ // 0 (or less) is today, 1 tomorrow.
31
+ const inDays = (days: number) =>
32
+ days <= 0 ? "heute" : days === 1 ? "morgen" : `in ${n(days)} Tagen`;
29
33
 
30
34
  return {
31
35
  feedbackAttachment: {
@@ -816,6 +820,10 @@ export function germanLabels(numberLocale: string): UiKitLabels {
816
820
  disclaimer: {
817
821
  title: "Haftung für Inhalte und Links",
818
822
  body: "Dies ist ein privates, nicht-kommerzielles Projekt, das im Rahmen einer geschlossenen Beta ohne Gewähr bereitgestellt wird. Für verlinkte externe Websites sind deren Betreiber verantwortlich; auf deren Inhalte haben wir keinen Einfluss.",
823
+ // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). "Tarif"
824
+ // and "Abonnement" as the `billing` namespace; "MWST", the Swiss abbreviation.
825
+ commercial:
826
+ "Dies ist ein kommerzieller Dienst. Kostenpflichtige Tarife verkauft unser Wiederverkäufer, der als Merchant of Record auftritt: Er verkauft das Abonnement im eigenen Namen, nimmt die Zahlung entgegen, stellt die Rechnung aus und rechnet die MWST ab, und für den Kauf gelten seine Verkaufsbedingungen. Wir achten darauf, dass die Inhalte dieses Dienstes richtig sind, können aber keine Gewähr für ihre Vollständigkeit und Aktualität übernehmen. Für verlinkte externe Websites sind deren Betreiber verantwortlich; auf deren Inhalte haben wir keinen Einfluss.",
819
827
  },
820
828
  },
821
829
  privacy: {
@@ -1271,6 +1279,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1271
1279
  outflow: "Ausgabe",
1272
1280
  inflow: "Einnahme",
1273
1281
  direction: (current, next) => `Richtung: ${current} – zu ${next} wechseln`,
1282
+ switchTo: (next) => `Zu ${next} wechseln`,
1274
1283
  },
1275
1284
  columnMapper: {
1276
1285
  paste: "Tabelle einfügen",
@@ -1450,5 +1459,99 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1450
1459
  "Die Beispieldaten werden regelmäßig zurückgesetzt; was Sie in der Demo selbst angelegt haben, wird gelöscht.",
1451
1460
  restart: "Neue Demo starten",
1452
1461
  },
1462
+ // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: "Tarif" is what is
1463
+ // bought (Free, Pro), "Abonnement" the standing arrangement and the settings group.
1464
+ // Formal "Sie".
1465
+ billing: {
1466
+ group: "Abonnement",
1467
+ plans: "Tarife",
1468
+ interval: "Abrechnungszeitraum",
1469
+ yearly: "Jährlich",
1470
+ monthly: "Monatlich",
1471
+ // As `currency.currency`.
1472
+ currency: "Währung",
1473
+ perYear: "pro Jahr",
1474
+ perMonth: "pro Monat",
1475
+ // The Swiss abbreviation (§12.17).
1476
+ vatIncluded: "inkl. MWST",
1477
+ free: "Kostenlos",
1478
+ notOffered: "Für diesen Abrechnungszeitraum nicht erhältlich",
1479
+ // As `progressBar.unlimited`.
1480
+ unlimited: "Unbegrenzt",
1481
+ limits: "Limits",
1482
+ features: "Inbegriffen",
1483
+ current: "Aktueller Tarif",
1484
+ choose: (plan) => `${plan} wählen`,
1485
+ upgrade: (plan) => `Auf ${plan} upgraden`,
1486
+ downgrade: (plan) => `Auf ${plan} wechseln`,
1487
+ isCurrent: "Das ist Ihr aktueller Tarif.",
1488
+ pickFirst: "Wählen Sie zuerst einen Tarif.",
1489
+ status: {
1490
+ trialing: "Testphase",
1491
+ active: "Aktiv",
1492
+ past_due: "Zahlung überfällig",
1493
+ canceled: "Gekündigt",
1494
+ // As `invitations.status.expired`.
1495
+ expired: "Abgelaufen",
1496
+ // Not "Kostenlos", the price of the Free plan: free by the operator's grant.
1497
+ comped: "Kostenlos gewährt",
1498
+ },
1499
+ trialEnding: (days) =>
1500
+ `Ihre Testphase endet ${inDays(days)}. Danach können Sie weiterhin alles ansehen, für Änderungen brauchen Sie aber einen Tarif.`,
1501
+ grantEnding: (days) =>
1502
+ `Ihr kostenloser Zugang endet ${inDays(days)}. Danach können Sie weiterhin alles ansehen, für Änderungen brauchen Sie aber einen Tarif.`,
1503
+ paymentFailed:
1504
+ "Ihre letzte Zahlung ist nicht durchgegangen. Aktualisieren Sie Ihre Zahlungsmethode, um Ihren Tarif zu behalten.",
1505
+ planEnded:
1506
+ "Ihr Tarif ist abgelaufen. Sie können weiterhin alles ansehen und exportieren; wählen Sie einen Tarif, um wieder Änderungen vorzunehmen.",
1507
+ // "Nur angesehen", as `writeLock.reason` ("Nur zum Ansehen"). Never why: the owner's
1508
+ // payment status is the owner's personal data (§12.6).
1509
+ guestReadOnly: (item) =>
1510
+ item
1511
+ ? `„${item}“ kann vorerst nur angesehen werden; der Eigentümer kann diese Einschränkung aufheben.`
1512
+ : "Dies kann vorerst nur angesehen werden; der Eigentümer kann diese Einschränkung aufheben.",
1513
+ processing:
1514
+ "Ihre Zahlung wird verarbeitet. Ihr Tarif beginnt, sobald sie bestätigt ist; diese Seite aktualisiert sich von selbst.",
1515
+ choosePlan: "Tarif wählen",
1516
+ updatePayment: "Zahlungsmethode aktualisieren",
1517
+ checkAgain: "Erneut prüfen",
1518
+ lockReason: "Ihr Tarif ist abgelaufen. Wählen Sie einen Tarif, um wieder Änderungen vorzunehmen.",
1519
+ // As `characterCount.limitReached` ("Zeichenlimit erreicht").
1520
+ limitReached: "Tariflimit erreicht",
1521
+ limitUpgrade: "Um mehr hinzuzufügen, wählen Sie einen Tarif mit einem höheren Limit.",
1522
+ limitContact: "Um mehr hinzuzufügen, fragen Sie uns nach einem höheren Limit.",
1523
+ askForMore: "Mehr anfragen",
1524
+ // Both figures arrive formatted.
1525
+ usage: (used, limit) => `${used} von ${limit}`,
1526
+ contactSubject: (dimension) => `Tariflimit: ${dimension}`,
1527
+ manage: "Zahlung und Rechnungen",
1528
+ // §312k BGB: the button that leads to the cancellation says exactly this (§12.26).
1529
+ cancel: "Verträge hier kündigen",
1530
+ waitingChanges: (count) =>
1531
+ count === 1
1532
+ ? `${n(count)} Änderung wartet auf einen Tarif`
1533
+ : `${n(count)} Änderungen warten auf einen Tarif`,
1534
+ // "Verwerfen", as `wizard.cancelConfirmLabel`.
1535
+ discardWaiting: "Wartende Änderungen verwerfen",
1536
+ },
1537
+ // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in
1538
+ // the "Darstellung" group.
1539
+ appearance: {
1540
+ textSize: "Textgröße",
1541
+ textSizeHelp: "Größere Buchstaben und ein Layout, das ihnen Platz macht.",
1542
+ textSizes: { normal: "Normal", large: "Groß", xlarge: "Sehr groß" },
1543
+ contrast: "Kontrast",
1544
+ contrastHelp:
1545
+ "Mehr Kontrast macht dezente Texte und Linien dunkler und Fokusrahmen dicker. „System“ richtet sich nach diesem Gerät.",
1546
+ contrastModes: { system: "System", standard: "Standard", more: "Mehr" },
1547
+ },
1548
+ rowActions: {
1549
+ actions: "Aktionen",
1550
+ actionsFor: (name) => `Aktionen für ${name}`,
1551
+ },
1552
+ appShellMore: {
1553
+ more: "Mehr",
1554
+ moreTitle: "Weitere Seiten",
1555
+ },
1453
1556
  };
1454
1557
  }
@@ -80,6 +80,10 @@ import type { InvitationsLabels } from "../admin/invitations-panel";
80
80
  import type { SettingsLabels } from "../settings/settings-labels";
81
81
  import type { LandingLabels } from "../landing/landing-labels";
82
82
  import type { DemoLabels } from "../demo/demo-labels";
83
+ import type { BillingLabels } from "../billing/billing-labels";
84
+ import type { AppearanceLabels } from "../components/appearance-labels";
85
+ import type { RowActionsLabels } from "../components/row-actions";
86
+ import type { AppShellMoreLabels } from "../shell/app-shell";
83
87
  import type { AccountStateLabels } from "../components/account-chips";
84
88
  import type { ShareCardLabels } from "../components/share-card";
85
89
  import type { ReauthDialogLabels } from "../components/reauth-dialog";
@@ -392,6 +396,14 @@ export interface UiKitLabels {
392
396
  landing: LandingLabels;
393
397
  /** 0.31.0: the demo's start, banner and end (§5). */
394
398
  demo: DemoLabels;
399
+ /** 0.32.0: plans, standing, banners and the limit notice (docs/billing-harmonization.md §7). */
400
+ billing: BillingLabels;
401
+ /** 0.32.0: the text-size and contrast settings (docs/text-size-harmonization.md §6). */
402
+ appearance: AppearanceLabels;
403
+ /** 0.32.0: a row's actions folded into a "⋯" menu at Large (text size §10.8). */
404
+ rowActions: RowActionsLabels;
405
+ /** 0.32.0: the phone bar's "More" cell and sheet (text size §10.7). */
406
+ appShellMore: AppShellMoreLabels;
395
407
  /** 0.22.0: the screen-reader words of `Input` / `Textarea`'s `showCount` counter. */
396
408
  characterCount: CharacterCountLabels;
397
409
  /** 0.22.0: `CountrySelect`. Its list's "no results" and counts are `combobox`'s. */
@@ -23,6 +23,10 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
23
23
  !seconds || seconds <= 0
24
24
  ? "Demasiados intentos. Espere un momento e inténtelo de nuevo."
25
25
  : `Demasiados intentos. Inténtelo de nuevo en ${wait(seconds)}.`;
26
+ // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:
27
+ // 0 (or less) is today, 1 tomorrow.
28
+ const inDays = (days: number) =>
29
+ days <= 0 ? "hoy" : days === 1 ? "mañana" : `dentro de ${n(days)} ${plural(days, "día", "días")}`;
26
30
 
27
31
  return {
28
32
  feedbackAttachment: {
@@ -796,6 +800,10 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
796
800
  disclaimer: {
797
801
  title: "Responsabilidad por contenidos y enlaces",
798
802
  body: "Este es un proyecto privado y sin fines comerciales, que se ofrece sin garantía durante una beta cerrada. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.",
803
+ // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). "Plan"
804
+ // and "suscripción" as the `billing` namespace.
805
+ commercial:
806
+ "Este es un servicio comercial. Los planes de pago los vende nuestro revendedor, que actúa como Merchant of Record: vende la suscripción en su propio nombre, cobra el pago, emite la factura y gestiona el IVA, y sus condiciones de venta se aplican a la compra. Procuramos que el contenido de este servicio sea correcto, pero no podemos garantizar que esté completo ni actualizado. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.",
799
807
  },
800
808
  },
801
809
  privacy: {
@@ -1242,6 +1250,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1242
1250
  outflow: "Salida",
1243
1251
  inflow: "Entrada",
1244
1252
  direction: (current, next) => `Dirección: ${current} — cambiar a ${next}`,
1253
+ switchTo: (next) => `Cambiar a ${next}`,
1245
1254
  },
1246
1255
  columnMapper: {
1247
1256
  paste: "Pegar una tabla",
@@ -1415,6 +1424,91 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1415
1424
  "Los datos de ejemplo se restablecen con regularidad; su propio trabajo en la demo se elimina.",
1416
1425
  restart: "Iniciar una nueva demo",
1417
1426
  },
1427
+ // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: "plan" is what is bought
1428
+ // (Free, Pro), "suscripción" the standing arrangement and the settings group. "Usted".
1429
+ billing: {
1430
+ group: "Suscripción",
1431
+ plans: "Planes",
1432
+ interval: "Periodo de facturación",
1433
+ yearly: "Anual",
1434
+ monthly: "Mensual",
1435
+ // As `currency.currency`.
1436
+ currency: "Moneda",
1437
+ perYear: "al año",
1438
+ perMonth: "al mes",
1439
+ vatIncluded: "IVA incluido",
1440
+ free: "Gratis",
1441
+ notOffered: "No disponible para este periodo de facturación",
1442
+ // As `progressBar.unlimited`.
1443
+ unlimited: "Ilimitado",
1444
+ limits: "Límites",
1445
+ features: "Incluido",
1446
+ current: "Plan actual",
1447
+ choose: (plan) => `Elegir ${plan}`,
1448
+ upgrade: (plan) => `Mejorar a ${plan}`,
1449
+ downgrade: (plan) => `Cambiar a ${plan}`,
1450
+ isCurrent: "Este es su plan actual.",
1451
+ pickFirst: "Elija primero un plan.",
1452
+ // Agreeing with "suscripción"; "caducada", as `invitations.status.expired`.
1453
+ status: {
1454
+ trialing: "Prueba",
1455
+ active: "Activa",
1456
+ past_due: "Pago vencido",
1457
+ canceled: "Cancelada",
1458
+ expired: "Caducada",
1459
+ comped: "De cortesía",
1460
+ },
1461
+ trialEnding: (days) =>
1462
+ `Su periodo de prueba termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,
1463
+ grantEnding: (days) =>
1464
+ `Su acceso gratuito termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,
1465
+ paymentFailed: "Su último pago no se ha completado. Actualice su método de pago para conservar su plan.",
1466
+ planEnded:
1467
+ "Su plan ha terminado. Puede seguir viendo y exportando todo; elija un plan para volver a hacer cambios.",
1468
+ // Never why: the owner's payment status is the owner's personal data (§12.6).
1469
+ guestReadOnly: (item) =>
1470
+ item
1471
+ ? `«${item}» es de solo lectura por ahora; su propietario puede levantar esa restricción.`
1472
+ : "Esto es de solo lectura por ahora; su propietario puede levantar esa restricción.",
1473
+ processing:
1474
+ "Su pago se está procesando. Su plan empieza en cuanto se confirme; esta página se actualiza sola.",
1475
+ choosePlan: "Elegir un plan",
1476
+ updatePayment: "Actualizar el método de pago",
1477
+ checkAgain: "Volver a comprobar",
1478
+ lockReason: "Su plan ha terminado. Elija un plan para volver a hacer cambios.",
1479
+ // As `characterCount.limitReached` ("Límite de caracteres alcanzado").
1480
+ limitReached: "Límite del plan alcanzado",
1481
+ limitUpgrade: "Para añadir más, elija un plan con un límite mayor.",
1482
+ limitContact: "Para añadir más, pídanos un límite mayor.",
1483
+ askForMore: "Pedir más",
1484
+ // Both figures arrive formatted; "de", as `characterCount.count`.
1485
+ usage: (used, limit) => `${used} de ${limit}`,
1486
+ contactSubject: (dimension) => `Límite del plan: ${dimension}`,
1487
+ manage: "Pagos y facturas",
1488
+ cancel: "Cancelar la suscripción",
1489
+ waitingChanges: (count) => `${n(count)} ${plural(count, "cambio", "cambios")} a la espera de un plan`,
1490
+ // "Descartar", as `wizard.cancelConfirmLabel`.
1491
+ discardWaiting: "Descartar los cambios en espera",
1492
+ },
1493
+ // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in
1494
+ // the "Apariencia" group.
1495
+ appearance: {
1496
+ textSize: "Tamaño del texto",
1497
+ textSizeHelp: "Letras más grandes y un diseño que les hace sitio.",
1498
+ textSizes: { normal: "Normal", large: "Grande", xlarge: "Muy grande" },
1499
+ contrast: "Contraste",
1500
+ contrastHelp:
1501
+ "El contraste aumentado oscurece los textos tenues y las líneas, y engrosa los marcos de foco. «Sistema» sigue el ajuste de este dispositivo.",
1502
+ contrastModes: { system: "Sistema", standard: "Estándar", more: "Aumentado" },
1503
+ },
1504
+ rowActions: {
1505
+ actions: "Acciones",
1506
+ actionsFor: (name) => `Acciones de ${name}`,
1507
+ },
1508
+ appShellMore: {
1509
+ more: "Más",
1510
+ moreTitle: "Más páginas",
1511
+ },
1418
1512
  };
1419
1513
  }
1420
1514
 
@@ -23,6 +23,10 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
23
23
  !seconds || seconds <= 0
24
24
  ? "Trop de tentatives. Veuillez patienter un instant, puis réessayer."
25
25
  : `Trop de tentatives. Réessayez dans ${wait(seconds)}.`;
26
+ // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:
27
+ // 0 (or less) is today, 1 tomorrow.
28
+ const inDays = (days: number) =>
29
+ days <= 0 ? "aujourd’hui" : days === 1 ? "demain" : `dans ${n(days)} ${plural(days, "jour", "jours")}`;
26
30
 
27
31
  return {
28
32
  feedbackAttachment: {
@@ -814,6 +818,10 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
814
818
  disclaimer: {
815
819
  title: "Responsabilité pour les contenus et les liens",
816
820
  body: "Il s’agit d’un projet privé et non commercial, proposé dans le cadre d’une bêta fermée, sans garantie. Les sites externes vers lesquels nous renvoyons relèvent de la responsabilité de leurs exploitants respectifs\u202f; nous n’avons aucun contrôle sur leur contenu.",
821
+ // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8).
822
+ // "Formule" and "abonnement" as the `billing` namespace.
823
+ commercial:
824
+ "Il s’agit d’un service commercial. Les formules payantes sont vendues par notre revendeur, qui agit en qualité de Merchant of Record\u00a0: il vend l’abonnement en son nom propre, encaisse le paiement, émet la facture et se charge de la TVA, et ses conditions de vente s’appliquent à l’achat. Nous veillons à l’exactitude du contenu de ce service, mais ne pouvons pas garantir qu’il soit complet ou à jour. Les sites externes vers lesquels nous renvoyons relèvent de la responsabilité de leurs exploitants respectifs\u202f; nous n’avons aucun contrôle sur leur contenu.",
817
825
  },
818
826
  },
819
827
  privacy: {
@@ -1268,6 +1276,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1268
1276
  outflow: "Sortie",
1269
1277
  inflow: "Entrée",
1270
1278
  direction: (current, next) => `Sens\u00a0: ${current} — passer à ${next}`,
1279
+ switchTo: (next) => `Passer à ${next}`,
1271
1280
  },
1272
1281
  columnMapper: {
1273
1282
  paste: "Coller un tableau",
@@ -1443,6 +1452,95 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1443
1452
  "Les données d’exemple sont réinitialisées régulièrement\u202f; ce que vous avez créé dans la démo est supprimé.",
1444
1453
  restart: "Lancer une nouvelle démo",
1445
1454
  },
1455
+ // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: "formule" is what is
1456
+ // bought (Free, Pro), "abonnement" the standing arrangement and the settings group;
1457
+ // "résilier", the word for ending a contract. "Vous".
1458
+ billing: {
1459
+ group: "Abonnement",
1460
+ plans: "Formules",
1461
+ interval: "Période de facturation",
1462
+ // Agreeing with "période".
1463
+ yearly: "Annuelle",
1464
+ monthly: "Mensuelle",
1465
+ // As `currency.currency`.
1466
+ currency: "Devise",
1467
+ perYear: "par an",
1468
+ perMonth: "par mois",
1469
+ vatIncluded: "TVA incluse",
1470
+ free: "Gratuit",
1471
+ notOffered: "Non proposée pour cette période de facturation",
1472
+ // As `progressBar.unlimited`.
1473
+ unlimited: "Illimité",
1474
+ limits: "Limites",
1475
+ features: "Inclus",
1476
+ current: "Formule actuelle",
1477
+ choose: (plan) => `Choisir ${plan}`,
1478
+ upgrade: (plan) => `Passer à ${plan}`,
1479
+ downgrade: (plan) => `Changer pour ${plan}`,
1480
+ isCurrent: "C’est votre formule actuelle.",
1481
+ pickFirst: "Choisissez d’abord une formule.",
1482
+ // Agreeing with "abonnement".
1483
+ status: {
1484
+ trialing: "Essai",
1485
+ active: "Actif",
1486
+ past_due: "Paiement en retard",
1487
+ canceled: "Résilié",
1488
+ expired: "Expiré",
1489
+ comped: "Offert",
1490
+ },
1491
+ trialEnding: (days) =>
1492
+ `Votre période d’essai se termine ${inDays(days)}. Vous pourrez ensuite continuer à tout consulter, mais il vous faudra une formule pour apporter des modifications.`,
1493
+ grantEnding: (days) =>
1494
+ `Votre accès gratuit se termine ${inDays(days)}. Vous pourrez ensuite continuer à tout consulter, mais il vous faudra une formule pour apporter des modifications.`,
1495
+ paymentFailed:
1496
+ "Votre dernier paiement n’a pas abouti. Mettez à jour votre moyen de paiement pour conserver votre formule.",
1497
+ planEnded:
1498
+ "Votre formule a pris fin. Vous pouvez encore tout consulter et exporter\u202f; choisissez une formule pour pouvoir de nouveau apporter des modifications.",
1499
+ // Never why: the owner's payment status is the owner's personal data (§12.6).
1500
+ guestReadOnly: (item) =>
1501
+ item
1502
+ ? `«\u202f${item}\u202f» est en lecture seule pour le moment\u202f; son propriétaire peut lever cette restriction.`
1503
+ : "Ceci est en lecture seule pour le moment\u202f; son propriétaire peut lever cette restriction.",
1504
+ processing:
1505
+ "Votre paiement est en cours de traitement. Votre formule démarre dès qu’il est confirmé\u202f; cette page se met à jour d’elle-même.",
1506
+ choosePlan: "Choisir une formule",
1507
+ updatePayment: "Mettre à jour le moyen de paiement",
1508
+ checkAgain: "Vérifier à nouveau",
1509
+ lockReason: "Votre formule a pris fin. Choisissez une formule pour pouvoir de nouveau apporter des modifications.",
1510
+ // As `characterCount.limitReached` ("Limite de caractères atteinte").
1511
+ limitReached: "Limite de la formule atteinte",
1512
+ limitUpgrade: "Pour en ajouter davantage, choisissez une formule avec une limite plus élevée.",
1513
+ limitContact: "Pour en ajouter davantage, demandez-nous une limite plus élevée.",
1514
+ askForMore: "Demander plus",
1515
+ // Both figures arrive formatted; "sur", as `characterCount.count`.
1516
+ usage: (used, limit) => `${used} sur ${limit}`,
1517
+ contactSubject: (dimension) => `Limite de la formule\u00a0: ${dimension}`,
1518
+ manage: "Paiement et factures",
1519
+ cancel: "Résilier l’abonnement",
1520
+ waitingChanges: (count) =>
1521
+ `${n(count)} ${plural(count, "modification en attente", "modifications en attente")} d’une formule`,
1522
+ // "Abandonner", as `wizard.cancelConfirmLabel`.
1523
+ discardWaiting: "Abandonner les modifications en attente",
1524
+ },
1525
+ // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in
1526
+ // the "Apparence" group. The steps agree with "taille", the modes with "contraste".
1527
+ appearance: {
1528
+ textSize: "Taille du texte",
1529
+ textSizeHelp: "Des lettres plus grandes, et une mise en page qui leur fait de la place.",
1530
+ textSizes: { normal: "Normale", large: "Grande", xlarge: "Très grande" },
1531
+ contrast: "Contraste",
1532
+ contrastHelp:
1533
+ "Le contraste renforcé assombrit les textes discrets et les lignes, et épaissit les contours de focus. «\u202fSystème\u202f» suit le réglage de cet appareil.",
1534
+ contrastModes: { system: "Système", standard: "Standard", more: "Renforcé" },
1535
+ },
1536
+ rowActions: {
1537
+ actions: "Actions",
1538
+ actionsFor: (name) => `Actions pour ${name}`,
1539
+ },
1540
+ appShellMore: {
1541
+ more: "Plus",
1542
+ moreTitle: "Autres pages",
1543
+ },
1446
1544
  };
1447
1545
  }
1448
1546
 
@@ -22,6 +22,9 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
22
22
  !seconds || seconds <= 0
23
23
  ? "Túl sok próbálkozás. Várjon egy kicsit, majd próbálja újra."
24
24
  : `Túl sok próbálkozás. Próbálja újra ${wait(seconds)} múlva.`;
25
+ // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:
26
+ // 0 (or less) is today, 1 tomorrow. The numeral stays bare ("5 nap múlva").
27
+ const inDays = (days: number) => (days <= 0 ? "ma" : days === 1 ? "holnap" : `${n(days)} nap múlva`);
25
28
 
26
29
  return {
27
30
  feedbackAttachment: {
@@ -804,6 +807,10 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
804
807
  disclaimer: {
805
808
  title: "Felelősség a tartalmakért és a hivatkozásokért",
806
809
  body: "Ez egy magán, nem kereskedelmi projekt, amelyet zárt béta keretében, szavatosság nélkül kínálunk. Az általunk hivatkozott külső oldalakért azok üzemeltetői felelősek; tartalmukra nincs befolyásunk.",
810
+ // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8).
811
+ // "Csomag" and "előfizetés" as the `billing` namespace.
812
+ commercial:
813
+ "Ez egy kereskedelmi szolgáltatás. A fizetős csomagokat viszonteladónk értékesíti, amely Merchant of Record szerepben jár el: a saját nevében értékesíti az előfizetést, beszedi a vételárat, kiállítja a számlát és elszámolja az áfát, a vásárlásra pedig az ő értékesítési feltételei vonatkoznak. Igyekszünk gondoskodni arról, hogy a szolgáltatás tartalma pontos legyen, de nem tudjuk szavatolni, hogy teljes és naprakész legyen. Az általunk hivatkozott külső oldalakért azok üzemeltetői felelősek; tartalmukra nincs befolyásunk.",
807
814
  },
808
815
  },
809
816
  privacy: {
@@ -1245,6 +1252,7 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1245
1252
  outflow: "Kiadás",
1246
1253
  inflow: "Bevétel",
1247
1254
  direction: (current, next) => `Irány: ${current} – váltás erre: ${next}`,
1255
+ switchTo: (next) => `Váltás erre: ${next}`,
1248
1256
  },
1249
1257
  columnMapper: {
1250
1258
  paste: "Táblázat beillesztése",
@@ -1417,6 +1425,94 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1417
1425
  "A mintaadatokat rendszeresen visszaállítjuk, a demóban létrehozott saját munkáját pedig töröljük.",
1418
1426
  restart: "Új demó indítása",
1419
1427
  },
1428
+ // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: "csomag" is what is bought
1429
+ // (Free, Pro), "előfizetés" the standing arrangement and the settings group. The plan's
1430
+ // name takes no case ending: it follows a colon or a possessive ("Pro választása").
1431
+ billing: {
1432
+ group: "Előfizetés",
1433
+ plans: "Csomagok",
1434
+ interval: "Számlázási időszak",
1435
+ yearly: "Éves",
1436
+ monthly: "Havi",
1437
+ // As `currency.currency`.
1438
+ currency: "Pénznem",
1439
+ perYear: "évente",
1440
+ perMonth: "havonta",
1441
+ vatIncluded: "Áfával együtt",
1442
+ free: "Ingyenes",
1443
+ notOffered: "Ebben a számlázási időszakban nem érhető el",
1444
+ // As `progressBar.unlimited`.
1445
+ unlimited: "Korlátlan",
1446
+ limits: "Korlátok",
1447
+ features: "A csomag tartalma",
1448
+ current: "Jelenlegi csomag",
1449
+ choose: (plan) => `${plan} választása`,
1450
+ upgrade: (plan) => `Váltás nagyobb csomagra: ${plan}`,
1451
+ downgrade: (plan) => `Váltás erre a csomagra: ${plan}`,
1452
+ isCurrent: "Ez az Ön jelenlegi csomagja.",
1453
+ pickFirst: "Előbb válasszon egy csomagot.",
1454
+ // "Lejárt", as `invitations.status.expired`.
1455
+ status: {
1456
+ trialing: "Próbaidőszak",
1457
+ active: "Aktív",
1458
+ past_due: "Fizetés késésben",
1459
+ canceled: "Lemondva",
1460
+ expired: "Lejárt",
1461
+ comped: "Ingyenesen biztosítva",
1462
+ },
1463
+ trialEnding: (days) =>
1464
+ `A próbaidőszaka ${inDays(days)} ér véget. Utána is mindent megtekinthet, de a módosításokhoz csomagra lesz szüksége.`,
1465
+ grantEnding: (days) =>
1466
+ `Az ingyenes hozzáférése ${inDays(days)} ér véget. Utána is mindent megtekinthet, de a módosításokhoz csomagra lesz szüksége.`,
1467
+ paymentFailed:
1468
+ "A legutóbbi fizetése nem sikerült. A csomagja megtartásához frissítse a fizetési módját.",
1469
+ planEnded:
1470
+ "A csomagja lejárt. Továbbra is mindent megtekinthet és exportálhat; ha ismét módosítani szeretne, válasszon csomagot.",
1471
+ // Never why: the owner's payment status is the owner's personal data (§12.6).
1472
+ guestReadOnly: (item) =>
1473
+ item
1474
+ ? `„${item}” egyelőre csak olvasható; a tulajdonosa feloldhatja ezt a korlátozást.`
1475
+ : "Ez egyelőre csak olvasható; a tulajdonosa feloldhatja ezt a korlátozást.",
1476
+ processing:
1477
+ "A fizetése feldolgozás alatt áll. A csomagja a megerősítés után azonnal elindul; ez az oldal magától frissül.",
1478
+ choosePlan: "Csomag választása",
1479
+ updatePayment: "Fizetési mód frissítése",
1480
+ checkAgain: "Újraellenőrzés",
1481
+ lockReason: "A csomagja lejárt. Ha ismét módosítani szeretne, válasszon csomagot.",
1482
+ // As `characterCount.limitReached` ("Elérte a karakterkorlátot").
1483
+ limitReached: "Elérte a csomag korlátját",
1484
+ limitUpgrade: "Továbbiak hozzáadásához válasszon magasabb korlátú csomagot.",
1485
+ limitContact: "Továbbiak hozzáadásához kérjen tőlünk magasabb korlátot.",
1486
+ askForMore: "Bővítés kérése",
1487
+ // Both figures arrive formatted and stay bare, as `characterCount.count` (convention 3).
1488
+ usage: (used, limit) => `${used} / ${limit}`,
1489
+ contactSubject: (dimension) => `Csomagkorlát: ${dimension}`,
1490
+ manage: "Fizetés és számlák",
1491
+ cancel: "Előfizetés lemondása",
1492
+ // No plural after a numeral (convention 2).
1493
+ waitingChanges: (count) => `${n(count)} módosítás csomagra vár`,
1494
+ // "Elvetés", as `wizard.cancelConfirmLabel`.
1495
+ discardWaiting: "Várakozó módosítások elvetése",
1496
+ },
1497
+ // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in
1498
+ // the "Megjelenés" group.
1499
+ appearance: {
1500
+ textSize: "Szövegméret",
1501
+ textSizeHelp: "Nagyobb betűk, és olyan elrendezés, amely helyet ad nekik.",
1502
+ textSizes: { normal: "Normál", large: "Nagy", xlarge: "Nagyon nagy" },
1503
+ contrast: "Kontraszt",
1504
+ contrastHelp:
1505
+ "A fokozott kontraszt sötétebbé teszi a halvány szövegeket és vonalakat, a fókuszkereteket pedig vastagabbá. A „Rendszer” ennek az eszköznek a beállítását követi.",
1506
+ contrastModes: { system: "Rendszer", standard: "Normál", more: "Fokozott" },
1507
+ },
1508
+ rowActions: {
1509
+ actions: "Műveletek",
1510
+ actionsFor: (name) => `${name} – műveletek`,
1511
+ },
1512
+ appShellMore: {
1513
+ more: "Továbbiak",
1514
+ moreTitle: "További oldalak",
1515
+ },
1420
1516
  };
1421
1517
  }
1422
1518
 
@@ -23,6 +23,10 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
23
23
  !seconds || seconds <= 0
24
24
  ? "Troppi tentativi. Attenda un momento e riprovi."
25
25
  : `Troppi tentativi. Riprovi tra ${wait(seconds)}.`;
26
+ // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:
27
+ // 0 (or less) is today, 1 tomorrow.
28
+ const inDays = (days: number) =>
29
+ days <= 0 ? "oggi" : days === 1 ? "domani" : `tra ${n(days)} ${plural(days, "giorno", "giorni")}`;
26
30
 
27
31
  return {
28
32
  feedbackAttachment: {
@@ -801,6 +805,10 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
801
805
  disclaimer: {
802
806
  title: "Responsabilità per contenuti e link",
803
807
  body: "Questo è un progetto privato e non commerciale, offerto nell’ambito di una beta chiusa, senza garanzia. I siti esterni a cui rimandiamo sono di responsabilità dei rispettivi gestori; non abbiamo alcun controllo sui loro contenuti.",
808
+ // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). "Piano"
809
+ // and "abbonamento" as the `billing` namespace.
810
+ commercial:
811
+ "Questo è un servizio commerciale. I piani a pagamento sono venduti dal nostro rivenditore, che agisce in qualità di Merchant of Record: vende l’abbonamento in nome proprio, incassa il pagamento, emette la fattura e gestisce l’IVA, e all’acquisto si applicano le sue condizioni di vendita. Ci impegniamo affinché i contenuti di questo servizio siano corretti, ma non possiamo garantire che siano completi o aggiornati. I siti esterni a cui rimandiamo sono di responsabilità dei rispettivi gestori; non abbiamo alcun controllo sui loro contenuti.",
804
812
  },
805
813
  },
806
814
  privacy: {
@@ -1253,6 +1261,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1253
1261
  inflow: "Entrata",
1254
1262
  // "premere per…": an instruction without a tu imperative, as the kit's Italian is formal.
1255
1263
  direction: (current, next) => `Direzione: ${current} – premere per passare a ${next}`,
1264
+ switchTo: (next) => `Passa a ${next}`,
1256
1265
  },
1257
1266
  columnMapper: {
1258
1267
  paste: "Incolla una tabella",
@@ -1426,6 +1435,96 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1426
1435
  "I dati di esempio vengono reimpostati regolarmente; quello che ha creato nella demo viene eliminato.",
1427
1436
  restart: "Avvia una nuova demo",
1428
1437
  },
1438
+ // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: "piano" is what is bought
1439
+ // (Free, Pro), "abbonamento" the standing arrangement and the settings group;
1440
+ // "disdire", the word for ending a contract. "Lei" in sentences, the imperative on
1441
+ // buttons, as everywhere in this catalogue.
1442
+ billing: {
1443
+ group: "Abbonamento",
1444
+ plans: "Piani",
1445
+ interval: "Periodo di fatturazione",
1446
+ yearly: "Annuale",
1447
+ monthly: "Mensile",
1448
+ // As `currency.currency`.
1449
+ currency: "Valuta",
1450
+ perYear: "all’anno",
1451
+ perMonth: "al mese",
1452
+ vatIncluded: "IVA inclusa",
1453
+ free: "Gratuito",
1454
+ notOffered: "Non disponibile per questo periodo di fatturazione",
1455
+ // As `progressBar.unlimited`.
1456
+ unlimited: "Illimitato",
1457
+ limits: "Limiti",
1458
+ features: "Incluso",
1459
+ current: "Piano attuale",
1460
+ choose: (plan) => `Scegli ${plan}`,
1461
+ upgrade: (plan) => `Passa a ${plan}`,
1462
+ // "Passare a" either way: Italian has no plain verb for a downgrade.
1463
+ downgrade: (plan) => `Passa a ${plan}`,
1464
+ isCurrent: "Questo è il Suo piano attuale.",
1465
+ pickFirst: "Scelga prima un piano.",
1466
+ // Agreeing with "abbonamento"; "scaduto", as `invitations.status.expired`.
1467
+ status: {
1468
+ trialing: "In prova",
1469
+ active: "Attivo",
1470
+ past_due: "Pagamento in ritardo",
1471
+ canceled: "Disdetto",
1472
+ expired: "Scaduto",
1473
+ comped: "In omaggio",
1474
+ },
1475
+ trialEnding: (days) =>
1476
+ `Il Suo periodo di prova termina ${inDays(days)}. In seguito potrà ancora vedere tutto, ma per apportare modifiche servirà un piano.`,
1477
+ grantEnding: (days) =>
1478
+ `Il Suo accesso gratuito termina ${inDays(days)}. In seguito potrà ancora vedere tutto, ma per apportare modifiche servirà un piano.`,
1479
+ paymentFailed:
1480
+ "Il Suo ultimo pagamento non è andato a buon fine. Aggiorni il metodo di pagamento per mantenere il Suo piano.",
1481
+ planEnded:
1482
+ "Il Suo piano è terminato. Può ancora vedere ed esportare tutto; scelga un piano per apportare di nuovo modifiche.",
1483
+ // Never why: the owner's payment status is the owner's personal data (§12.6).
1484
+ guestReadOnly: (item) =>
1485
+ item
1486
+ ? `«${item}» per ora è in sola lettura; il proprietario può rimuovere questa limitazione.`
1487
+ : "Per ora è in sola lettura; il proprietario può rimuovere questa limitazione.",
1488
+ processing:
1489
+ "Il Suo pagamento è in elaborazione. Il Suo piano inizia non appena viene confermato; questa pagina si aggiorna da sola.",
1490
+ choosePlan: "Scegli un piano",
1491
+ updatePayment: "Aggiorna il metodo di pagamento",
1492
+ checkAgain: "Verifica di nuovo",
1493
+ lockReason: "Il Suo piano è terminato. Scelga un piano per apportare di nuovo modifiche.",
1494
+ // As `characterCount.limitReached` ("Limite di caratteri raggiunto").
1495
+ limitReached: "Limite del piano raggiunto",
1496
+ limitUpgrade: "Per aggiungerne altri, scelga un piano con un limite più alto.",
1497
+ limitContact: "Per aggiungerne altri, ci chieda un limite più alto.",
1498
+ askForMore: "Chiedi di più",
1499
+ // Both figures arrive formatted; "di", as `characterCount.count`.
1500
+ usage: (used, limit) => `${used} di ${limit}`,
1501
+ contactSubject: (dimension) => `Limite del piano: ${dimension}`,
1502
+ manage: "Pagamento e fatture",
1503
+ cancel: "Disdici l’abbonamento",
1504
+ waitingChanges: (count) =>
1505
+ `${n(count)} ${plural(count, "modifica in attesa", "modifiche in attesa")} di un piano`,
1506
+ // "Scarta", as `wizard.cancelConfirmLabel`.
1507
+ discardWaiting: "Scarta le modifiche in attesa",
1508
+ },
1509
+ // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in
1510
+ // the "Aspetto" group.
1511
+ appearance: {
1512
+ textSize: "Dimensione del testo",
1513
+ textSizeHelp: "Lettere più grandi e un layout che fa loro spazio.",
1514
+ textSizes: { normal: "Normale", large: "Grande", xlarge: "Molto grande" },
1515
+ contrast: "Contrasto",
1516
+ contrastHelp:
1517
+ "Il contrasto aumentato scurisce i testi tenui e le linee e ispessisce i riquadri di focus. «Sistema» segue l’impostazione di questo dispositivo.",
1518
+ contrastModes: { system: "Sistema", standard: "Standard", more: "Aumentato" },
1519
+ },
1520
+ rowActions: {
1521
+ actions: "Azioni",
1522
+ actionsFor: (name) => `Azioni per ${name}`,
1523
+ },
1524
+ appShellMore: {
1525
+ more: "Altro",
1526
+ moreTitle: "Altre pagine",
1527
+ },
1429
1528
  };
1430
1529
  }
1431
1530