@eifi1/ui-kit 0.51.3 → 0.51.5

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 (780) hide show
  1. package/README.md +6 -6
  2. package/dist/account/account-settings-labels.js.map +1 -1
  3. package/dist/account/account-settings.js +11 -9
  4. package/dist/account/account-settings.js.map +1 -1
  5. package/dist/account/delete-account-setting.js +56 -65
  6. package/dist/account/delete-account-setting.js.map +1 -1
  7. package/dist/account/email-change-setting-labels.js.map +1 -1
  8. package/dist/account/email-change-setting.js.map +1 -1
  9. package/dist/account/passkeys-setting.js.map +1 -1
  10. package/dist/account/sessions-setting.js.map +1 -1
  11. package/dist/admin/admin-action-confirm.js +1 -3
  12. package/dist/admin/admin-action-confirm.js.map +1 -1
  13. package/dist/admin/admin-action-log.js.map +1 -1
  14. package/dist/admin/admin-area-labels.js +4 -1
  15. package/dist/admin/admin-area-labels.js.map +1 -1
  16. package/dist/admin/admin-overview.js +19 -11
  17. package/dist/admin/admin-overview.js.map +1 -1
  18. package/dist/admin/admin-sections.js.map +1 -1
  19. package/dist/admin/admin-tool-links.d.ts +1 -1
  20. package/dist/admin/admin-tool-links.js +7 -1
  21. package/dist/admin/admin-tool-links.js.map +1 -1
  22. package/dist/admin/invitations-panel.js +2 -13
  23. package/dist/admin/invitations-panel.js.map +1 -1
  24. package/dist/admin/mail-test-card.js.map +1 -1
  25. package/dist/admin/reviewer-scope-editor.js +4 -11
  26. package/dist/admin/reviewer-scope-editor.js.map +1 -1
  27. package/dist/admin/role-select.js.map +1 -1
  28. package/dist/admin/user-roster.js +1 -9
  29. package/dist/admin/user-roster.js.map +1 -1
  30. package/dist/auth/accept-invitation.js.map +1 -1
  31. package/dist/auth/auth-errors.js.map +1 -1
  32. package/dist/auth/forgot-password-form.js +23 -31
  33. package/dist/auth/forgot-password-form.js.map +1 -1
  34. package/dist/auth/register-form.js.map +1 -1
  35. package/dist/auth/reset-password-form.js.map +1 -1
  36. package/dist/auth/sign-in-form.js +13 -5
  37. package/dist/auth/sign-in-form.js.map +1 -1
  38. package/dist/auth/verify-email.js +1 -8
  39. package/dist/auth/verify-email.js.map +1 -1
  40. package/dist/billing/billing-banner.js.map +1 -1
  41. package/dist/billing/billing-labels.js.map +1 -1
  42. package/dist/billing/checkout-processing.js.map +1 -1
  43. package/dist/billing/plan-card.js +91 -85
  44. package/dist/billing/plan-card.js.map +1 -1
  45. package/dist/billing/plan-limit-toast.js.map +1 -1
  46. package/dist/billing/plan-limit.js.map +1 -1
  47. package/dist/billing/plan-price.js.map +1 -1
  48. package/dist/billing/plan-switch.js.map +1 -1
  49. package/dist/billing/subscription-actions.js.map +1 -1
  50. package/dist/bin/eifi1-pay-page.mjs +6 -1
  51. package/dist/components/account-chips.js.map +1 -1
  52. package/dist/components/alert-banner.js +1 -5
  53. package/dist/components/alert-banner.js.map +1 -1
  54. package/dist/components/amount-input.js +29 -12
  55. package/dist/components/amount-input.js.map +1 -1
  56. package/dist/components/authed-image.js.map +1 -1
  57. package/dist/components/autocomplete.js.map +1 -1
  58. package/dist/components/bulk-action-bar.js +1 -4
  59. package/dist/components/bulk-action-bar.js.map +1 -1
  60. package/dist/components/button-group.js.map +1 -1
  61. package/dist/components/button-look.js.map +1 -1
  62. package/dist/components/button.js +1 -7
  63. package/dist/components/button.js.map +1 -1
  64. package/dist/components/calculator.js +5 -5
  65. package/dist/components/calculator.js.map +1 -1
  66. package/dist/components/calendar-heatmap.js +4 -10
  67. package/dist/components/calendar-heatmap.js.map +1 -1
  68. package/dist/components/card.js +1 -8
  69. package/dist/components/card.js.map +1 -1
  70. package/dist/components/chart-zoom-core.js +3 -17
  71. package/dist/components/chart-zoom-core.js.map +1 -1
  72. package/dist/components/chart.d.ts +1 -1
  73. package/dist/components/chart.js +4 -22
  74. package/dist/components/chart.js.map +1 -1
  75. package/dist/components/checkbox-group.js +1 -4
  76. package/dist/components/checkbox-group.js.map +1 -1
  77. package/dist/components/chip-input.js +4 -1
  78. package/dist/components/chip-input.js.map +1 -1
  79. package/dist/components/chip.js +10 -5
  80. package/dist/components/chip.js.map +1 -1
  81. package/dist/components/choice-card.js +58 -74
  82. package/dist/components/choice-card.js.map +1 -1
  83. package/dist/components/column-mapper-labels.js.map +1 -1
  84. package/dist/components/column-mapper.js +167 -227
  85. package/dist/components/column-mapper.js.map +1 -1
  86. package/dist/components/combobox-core.js +5 -9
  87. package/dist/components/combobox-core.js.map +1 -1
  88. package/dist/components/combobox.js +1 -4
  89. package/dist/components/combobox.js.map +1 -1
  90. package/dist/components/confirm-dialog.js.map +1 -1
  91. package/dist/components/copy-button.js.map +1 -1
  92. package/dist/components/country-select.d.ts +5 -4
  93. package/dist/components/country-select.js +3 -19
  94. package/dist/components/country-select.js.map +1 -1
  95. package/dist/components/currency-option-list.js +13 -11
  96. package/dist/components/currency-option-list.js.map +1 -1
  97. package/dist/components/currency-select.js +1 -6
  98. package/dist/components/currency-select.js.map +1 -1
  99. package/dist/components/danger-confirm.js.map +1 -1
  100. package/dist/components/data-table-cells.js.map +1 -1
  101. package/dist/components/data-table-column-settings.js.map +1 -1
  102. package/dist/components/data-table-filter-popover.js +2 -18
  103. package/dist/components/data-table-filter-popover.js.map +1 -1
  104. package/dist/components/data-table-filters.js.map +1 -1
  105. package/dist/components/data-table-fit.js +7 -5
  106. package/dist/components/data-table-fit.js.map +1 -1
  107. package/dist/components/data-table-groups.js +3 -1
  108. package/dist/components/data-table-groups.js.map +1 -1
  109. package/dist/components/data-table-head.js +49 -57
  110. package/dist/components/data-table-head.js.map +1 -1
  111. package/dist/components/data-table-mobile.js +31 -44
  112. package/dist/components/data-table-mobile.js.map +1 -1
  113. package/dist/components/data-table-pagination.js.map +1 -1
  114. package/dist/components/data-table-row-actions.js +19 -16
  115. package/dist/components/data-table-row-actions.js.map +1 -1
  116. package/dist/components/data-table-row.js.map +1 -1
  117. package/dist/components/data-table-shared.js.map +1 -1
  118. package/dist/components/data-table-sort.js.map +1 -1
  119. package/dist/components/data-table-virtual.js +4 -1
  120. package/dist/components/data-table-virtual.js.map +1 -1
  121. package/dist/components/data-table.d.ts +8 -0
  122. package/dist/components/data-table.js +30 -39
  123. package/dist/components/data-table.js.map +1 -1
  124. package/dist/components/date-picker.js +1 -6
  125. package/dist/components/date-picker.js.map +1 -1
  126. package/dist/components/date-range-picker.js.map +1 -1
  127. package/dist/components/description-list.js +10 -10
  128. package/dist/components/description-list.js.map +1 -1
  129. package/dist/components/dialog-frame.js +9 -2
  130. package/dist/components/dialog-frame.js.map +1 -1
  131. package/dist/components/disclosure.js +17 -27
  132. package/dist/components/disclosure.js.map +1 -1
  133. package/dist/components/dropdown.js +25 -35
  134. package/dist/components/dropdown.js.map +1 -1
  135. package/dist/components/empty-state.js.map +1 -1
  136. package/dist/components/entity-combobox.js.map +1 -1
  137. package/dist/components/error-boundary.js.map +1 -1
  138. package/dist/components/field-base.js +5 -5
  139. package/dist/components/field-base.js.map +1 -1
  140. package/dist/components/field-parts.d.ts +1 -1
  141. package/dist/components/field-parts.js +10 -14
  142. package/dist/components/field-parts.js.map +1 -1
  143. package/dist/components/field-sync.js +8 -10
  144. package/dist/components/field-sync.js.map +1 -1
  145. package/dist/components/file-button.js.map +1 -1
  146. package/dist/components/file-dropzone.js.map +1 -1
  147. package/dist/components/floating-panel.js +4 -1
  148. package/dist/components/floating-panel.js.map +1 -1
  149. package/dist/components/focus-ring.js.map +1 -1
  150. package/dist/components/form-actions.js.map +1 -1
  151. package/dist/components/grouped-picker.js +11 -12
  152. package/dist/components/grouped-picker.js.map +1 -1
  153. package/dist/components/hover-menu.js +1 -4
  154. package/dist/components/hover-menu.js.map +1 -1
  155. package/dist/components/iban-input-labels.js.map +1 -1
  156. package/dist/components/icon-button.js +4 -1
  157. package/dist/components/icon-button.js.map +1 -1
  158. package/dist/components/icon-picker.js +6 -10
  159. package/dist/components/icon-picker.js.map +1 -1
  160. package/dist/components/image-grid.js +41 -50
  161. package/dist/components/image-grid.js.map +1 -1
  162. package/dist/components/inline-edit-field.js.map +1 -1
  163. package/dist/components/inline-entity-combobox.js +6 -12
  164. package/dist/components/inline-entity-combobox.js.map +1 -1
  165. package/dist/components/input.js +14 -2
  166. package/dist/components/input.js.map +1 -1
  167. package/dist/components/jump-calendar.js +1 -7
  168. package/dist/components/jump-calendar.js.map +1 -1
  169. package/dist/components/legal-labels.js +8 -2
  170. package/dist/components/legal-labels.js.map +1 -1
  171. package/dist/components/legal-page.d.ts +18 -1
  172. package/dist/components/legal-page.js +27 -2
  173. package/dist/components/legal-page.js.map +1 -1
  174. package/dist/components/legal.d.ts +40 -5
  175. package/dist/components/legal.js +41 -5
  176. package/dist/components/legal.js.map +1 -1
  177. package/dist/components/lightbox.js.map +1 -1
  178. package/dist/components/line-items.js +26 -36
  179. package/dist/components/line-items.js.map +1 -1
  180. package/dist/components/list-labels.js +3 -1
  181. package/dist/components/list-labels.js.map +1 -1
  182. package/dist/components/list.d.ts +18 -1
  183. package/dist/components/list.js +54 -13
  184. package/dist/components/list.js.map +1 -1
  185. package/dist/components/measured-grid.js +29 -53
  186. package/dist/components/measured-grid.js.map +1 -1
  187. package/dist/components/menu-item.js.map +1 -1
  188. package/dist/components/mini-calendar.js +13 -31
  189. package/dist/components/mini-calendar.js.map +1 -1
  190. package/dist/components/money-field.js.map +1 -1
  191. package/dist/components/month-picker.js +10 -21
  192. package/dist/components/month-picker.js.map +1 -1
  193. package/dist/components/multi-entity-combobox.js +3 -16
  194. package/dist/components/multi-entity-combobox.js.map +1 -1
  195. package/dist/components/multi-select.js.map +1 -1
  196. package/dist/components/nav-pills.js +10 -1
  197. package/dist/components/nav-pills.js.map +1 -1
  198. package/dist/components/number-field.js.map +1 -1
  199. package/dist/components/number-input.js +1 -7
  200. package/dist/components/number-input.js.map +1 -1
  201. package/dist/components/numpad-sheet.js +1 -4
  202. package/dist/components/numpad-sheet.js.map +1 -1
  203. package/dist/components/one-time-code-input.js +1 -7
  204. package/dist/components/one-time-code-input.js.map +1 -1
  205. package/dist/components/page-contents.js +13 -22
  206. package/dist/components/page-contents.js.map +1 -1
  207. package/dist/components/page-header.js +1 -11
  208. package/dist/components/page-header.js.map +1 -1
  209. package/dist/components/password-strength-labels.js.map +1 -1
  210. package/dist/components/password-strength.js +2 -8
  211. package/dist/components/password-strength.js.map +1 -1
  212. package/dist/components/phone-input.js +42 -57
  213. package/dist/components/phone-input.js.map +1 -1
  214. package/dist/components/picker-sheet.js.map +1 -1
  215. package/dist/components/pie-chart.js +1 -8
  216. package/dist/components/pie-chart.js.map +1 -1
  217. package/dist/components/popover.js.map +1 -1
  218. package/dist/components/progress-bar.js +16 -9
  219. package/dist/components/progress-bar.js.map +1 -1
  220. package/dist/components/qr-code.js +1 -8
  221. package/dist/components/qr-code.js.map +1 -1
  222. package/dist/components/row-actions.js +5 -1
  223. package/dist/components/row-actions.js.map +1 -1
  224. package/dist/components/search-field.js.map +1 -1
  225. package/dist/components/select.js +28 -38
  226. package/dist/components/select.js.map +1 -1
  227. package/dist/components/separator.js +1 -5
  228. package/dist/components/separator.js.map +1 -1
  229. package/dist/components/series-chart-axes.js +4 -1
  230. package/dist/components/series-chart-axes.js.map +1 -1
  231. package/dist/components/series-chart-budget.js.map +1 -1
  232. package/dist/components/series-chart-ticks.js.map +1 -1
  233. package/dist/components/series-chart.js +29 -45
  234. package/dist/components/series-chart.js.map +1 -1
  235. package/dist/components/settings-fields.js +21 -17
  236. package/dist/components/settings-fields.js.map +1 -1
  237. package/dist/components/share-card.js +4 -9
  238. package/dist/components/share-card.js.map +1 -1
  239. package/dist/components/sign-chip.js.map +1 -1
  240. package/dist/components/signature-pad.js +4 -13
  241. package/dist/components/signature-pad.js.map +1 -1
  242. package/dist/components/signed-amount.js +12 -5
  243. package/dist/components/signed-amount.js.map +1 -1
  244. package/dist/components/skeleton.js +2 -17
  245. package/dist/components/skeleton.js.map +1 -1
  246. package/dist/components/slider.js +13 -36
  247. package/dist/components/slider.js.map +1 -1
  248. package/dist/components/sparkline.js.map +1 -1
  249. package/dist/components/stat-tile.js +14 -10
  250. package/dist/components/stat-tile.js.map +1 -1
  251. package/dist/components/swatch-picker.js +14 -4
  252. package/dist/components/swatch-picker.js.map +1 -1
  253. package/dist/components/swipeable-row.d.ts +1 -1
  254. package/dist/components/swipeable-row.js +1 -8
  255. package/dist/components/swipeable-row.js.map +1 -1
  256. package/dist/components/table-skeleton.js +4 -1
  257. package/dist/components/table-skeleton.js.map +1 -1
  258. package/dist/components/table.js +12 -9
  259. package/dist/components/table.js.map +1 -1
  260. package/dist/components/tabs.js +5 -24
  261. package/dist/components/tabs.js.map +1 -1
  262. package/dist/components/text-link.js.map +1 -1
  263. package/dist/components/text.js.map +1 -1
  264. package/dist/components/tile-radio.js +1 -7
  265. package/dist/components/tile-radio.js.map +1 -1
  266. package/dist/components/time-input.js.map +1 -1
  267. package/dist/components/toast.js.map +1 -1
  268. package/dist/components/toggle-group.js +6 -1
  269. package/dist/components/toggle-group.js.map +1 -1
  270. package/dist/components/toggle-legend.js +2 -11
  271. package/dist/components/toggle-legend.js.map +1 -1
  272. package/dist/components/tooltip.js +2 -22
  273. package/dist/components/tooltip.js.map +1 -1
  274. package/dist/components/translation-review-editor.js +1 -4
  275. package/dist/components/translation-review-editor.js.map +1 -1
  276. package/dist/components/translation-review-parts.d.ts +1 -1
  277. package/dist/components/translation-review-parts.js +7 -1
  278. package/dist/components/translation-review-parts.js.map +1 -1
  279. package/dist/components/translation-review.js +18 -7
  280. package/dist/components/translation-review.js.map +1 -1
  281. package/dist/components/tree-view.js +14 -10
  282. package/dist/components/tree-view.js.map +1 -1
  283. package/dist/components/treemap.js +1 -13
  284. package/dist/components/treemap.js.map +1 -1
  285. package/dist/components/trigger-aria.js.map +1 -1
  286. package/dist/components/use-table-state.js +14 -11
  287. package/dist/components/use-table-state.js.map +1 -1
  288. package/dist/components/user-avatar.js +3 -26
  289. package/dist/components/user-avatar.js.map +1 -1
  290. package/dist/demo/demo-start.js +8 -4
  291. package/dist/demo/demo-start.js.map +1 -1
  292. package/dist/eslint/index.js +1 -1
  293. package/dist/feedback/feedback-attachment-labels.js.map +1 -1
  294. package/dist/feedback/feedback-attachment.js +1 -8
  295. package/dist/feedback/feedback-attachment.js.map +1 -1
  296. package/dist/feedback/feedback-capture.d.ts +1 -1
  297. package/dist/feedback/feedback-capture.js +3 -1
  298. package/dist/feedback/feedback-capture.js.map +1 -1
  299. package/dist/feedback/feedback-comment-thread.js +27 -13
  300. package/dist/feedback/feedback-comment-thread.js.map +1 -1
  301. package/dist/feedback/feedback-context.js +1 -4
  302. package/dist/feedback/feedback-context.js.map +1 -1
  303. package/dist/feedback/feedback-dialog.js.map +1 -1
  304. package/dist/feedback/feedback-inbox.js.map +1 -1
  305. package/dist/feedback/feedback-public-list.js +7 -1
  306. package/dist/feedback/feedback-public-list.js.map +1 -1
  307. package/dist/feedback/feedback-record.js +1 -5
  308. package/dist/feedback/feedback-record.js.map +1 -1
  309. package/dist/feedback/feedback-replies.js +25 -10
  310. package/dist/feedback/feedback-replies.js.map +1 -1
  311. package/dist/feedback/feedback-row-detail.js.map +1 -1
  312. package/dist/feedback/feedback-status-undo.js.map +1 -1
  313. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  314. package/dist/feedback/feedback-table.d.ts +3 -1
  315. package/dist/feedback/feedback-table.js +22 -5
  316. package/dist/feedback/feedback-table.js.map +1 -1
  317. package/dist/feedback/feedback-thread.js +2 -13
  318. package/dist/feedback/feedback-thread.js.map +1 -1
  319. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  320. package/dist/feedback/feedback-vote-button.js.map +1 -1
  321. package/dist/hooks/use-anchored-rect.js.map +1 -1
  322. package/dist/hooks/use-document-title.js.map +1 -1
  323. package/dist/hooks/use-file-drop.js.map +1 -1
  324. package/dist/hooks/use-file-picker-labels.js.map +1 -1
  325. package/dist/hooks/use-file-picker.js.map +1 -1
  326. package/dist/hooks/use-focus-trap.js.map +1 -1
  327. package/dist/hooks/use-overlay-history.js +10 -5
  328. package/dist/hooks/use-overlay-history.js.map +1 -1
  329. package/dist/hooks/use-row-swipe.d.ts +1 -1
  330. package/dist/hooks/use-row-swipe.js +1 -6
  331. package/dist/hooks/use-row-swipe.js.map +1 -1
  332. package/dist/i18n/defaults.js +1 -4
  333. package/dist/i18n/defaults.js.map +1 -1
  334. package/dist/i18n/german.js +15 -4
  335. package/dist/i18n/german.js.map +1 -1
  336. package/dist/i18n/kit-labels.js +2 -8
  337. package/dist/i18n/kit-labels.js.map +1 -1
  338. package/dist/i18n/languages.js.map +1 -1
  339. package/dist/i18n/locales/en.js +19 -4
  340. package/dist/i18n/locales/en.js.map +2 -2
  341. package/dist/i18n/locales/es.js +15 -4
  342. package/dist/i18n/locales/es.js.map +1 -1
  343. package/dist/i18n/locales/fr.js +15 -4
  344. package/dist/i18n/locales/fr.js.map +1 -1
  345. package/dist/i18n/locales/hu.js +15 -4
  346. package/dist/i18n/locales/hu.js.map +1 -1
  347. package/dist/i18n/locales/it.js +15 -4
  348. package/dist/i18n/locales/it.js.map +1 -1
  349. package/dist/i18n/locales/zh.js +11 -3
  350. package/dist/i18n/locales/zh.js.map +1 -1
  351. package/dist/i18n/plurals.js.map +1 -1
  352. package/dist/i18n/review.js +15 -7
  353. package/dist/i18n/review.js.map +1 -1
  354. package/dist/i18n/shared-labels.js.map +1 -1
  355. package/dist/index.d.ts +17 -17
  356. package/dist/index.js +40 -23
  357. package/dist/index.js.map +1 -1
  358. package/dist/landing/access.js +1 -4
  359. package/dist/landing/access.js.map +1 -1
  360. package/dist/landing/landing-sections.js +35 -38
  361. package/dist/landing/landing-sections.js.map +1 -1
  362. package/dist/landing/page-seo.js.map +1 -1
  363. package/dist/lib/calc.js.map +1 -1
  364. package/dist/lib/clipboard-minus.js.map +1 -1
  365. package/dist/lib/dates.js.map +1 -1
  366. package/dist/lib/decimal-marks.js.map +1 -1
  367. package/dist/lib/device-settings.js +2 -1
  368. package/dist/lib/device-settings.js.map +1 -1
  369. package/dist/lib/direction.js.map +1 -1
  370. package/dist/lib/iban.js.map +1 -1
  371. package/dist/lib/logger.js +1 -5
  372. package/dist/lib/logger.js.map +1 -1
  373. package/dist/lib/person-name.js.map +1 -1
  374. package/dist/lib/phone.js.map +1 -1
  375. package/dist/lib/qr-encode.js +344 -8
  376. package/dist/lib/qr-encode.js.map +1 -1
  377. package/dist/lib/session-refresh.js.map +1 -1
  378. package/dist/lib/table-text.js +15 -3
  379. package/dist/lib/table-text.js.map +1 -1
  380. package/dist/lib/text-match.d.ts +20 -0
  381. package/dist/lib/text-match.js +11 -1
  382. package/dist/lib/text-match.js.map +1 -1
  383. package/dist/lib/translation-review.js.map +1 -1
  384. package/dist/notifications/notification-inbox.js +63 -44
  385. package/dist/notifications/notification-inbox.js.map +1 -1
  386. package/dist/notifications/notification-parts.js.map +1 -1
  387. package/dist/notifications/notification-types-setting.js.map +1 -1
  388. package/dist/notifications/notifications-labels.js.map +1 -1
  389. package/dist/notifications/push-device-setting.js +6 -1
  390. package/dist/notifications/push-device-setting.js.map +1 -1
  391. package/dist/notifications/push-devices-setting.js.map +1 -1
  392. package/dist/notifications/push-worker.js.map +1 -1
  393. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  394. package/dist/notifications/use-push-device.js +4 -1
  395. package/dist/notifications/use-push-device.js.map +1 -1
  396. package/dist/offline/pwa-update-prompt.d.ts +1 -1
  397. package/dist/offline/pwa-update-prompt.js +7 -1
  398. package/dist/offline/pwa-update-prompt.js.map +1 -1
  399. package/dist/offline/query-persistence.js.map +1 -1
  400. package/dist/offline.d.ts +1 -1
  401. package/dist/offline.js +6 -1
  402. package/dist/offline.js.map +1 -1
  403. package/dist/pay/pay.css +8 -1
  404. package/dist/rhf/fields.d.ts +1 -2
  405. package/dist/rhf/fields.js +1 -10
  406. package/dist/rhf/fields.js.map +1 -1
  407. package/dist/rhf/form-core.js +1 -4
  408. package/dist/rhf/form-core.js.map +1 -1
  409. package/dist/rhf/line-items.js.map +1 -1
  410. package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
  411. package/dist/search/command-palette.js +71 -62
  412. package/dist/search/command-palette.js.map +1 -1
  413. package/dist/search/global-search.js +34 -5
  414. package/dist/search/global-search.js.map +1 -1
  415. package/dist/search/search-index.js.map +1 -1
  416. package/dist/settings/device-reset-setting.js +1 -6
  417. package/dist/settings/device-reset-setting.js.map +1 -1
  418. package/dist/settings/settings-heading.js.map +1 -1
  419. package/dist/settings/settings-layout.js +9 -20
  420. package/dist/settings/settings-layout.js.map +1 -1
  421. package/dist/settings/use-settings-focus.d.ts +7 -0
  422. package/dist/settings/use-settings-focus.js +2 -0
  423. package/dist/settings/use-settings-focus.js.map +1 -1
  424. package/dist/settings/use-settings-route.js.map +1 -1
  425. package/dist/shell/app-shell.js +62 -31
  426. package/dist/shell/app-shell.js.map +1 -1
  427. package/dist/shell/auth-layout.js +1 -10
  428. package/dist/shell/auth-layout.js.map +1 -1
  429. package/dist/shell/dev-menu.d.ts +5 -0
  430. package/dist/shell/dev-menu.js +14 -7
  431. package/dist/shell/dev-menu.js.map +1 -1
  432. package/dist/shell/option-switcher-menu.js.map +1 -1
  433. package/dist/shell/sync-status-indicator.js +7 -6
  434. package/dist/shell/sync-status-indicator.js.map +1 -1
  435. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  436. package/dist/shell/topbar-action-menu.d.ts +14 -1
  437. package/dist/shell/topbar-action-menu.js +85 -34
  438. package/dist/shell/topbar-action-menu.js.map +1 -1
  439. package/dist/shell/topbar-controls.js +1 -10
  440. package/dist/shell/topbar-controls.js.map +1 -1
  441. package/dist/shell/tour-menu.js +9 -1
  442. package/dist/shell/tour-menu.js.map +1 -1
  443. package/dist/shell.d.ts +1 -1
  444. package/dist/shell.js +2 -1
  445. package/dist/shell.js.map +1 -1
  446. package/dist/sync/db.js.map +1 -1
  447. package/dist/sync/engine.js +24 -6
  448. package/dist/sync/engine.js.map +1 -1
  449. package/dist/sync.d.ts +2 -2
  450. package/dist/sync.js +7 -1
  451. package/dist/sync.js.map +1 -1
  452. package/dist/testing/css-variables.js.map +1 -1
  453. package/dist/testing/index.d.ts +1 -1
  454. package/dist/testing/index.js +1 -3
  455. package/dist/testing/index.js.map +1 -1
  456. package/dist/testing/react.js.map +1 -1
  457. package/dist/testing/viewport.js +7 -4
  458. package/dist/testing/viewport.js.map +1 -1
  459. package/dist/theme/contrast-tokens.js +13 -2
  460. package/dist/theme/contrast-tokens.js.map +1 -1
  461. package/dist/theme/palette-derive.d.ts +1 -1
  462. package/dist/theme/palette-derive.js +18 -29
  463. package/dist/theme/palette-derive.js.map +1 -1
  464. package/dist/theme/palette-presets.js.map +1 -1
  465. package/dist/theme/palette-store.js.map +1 -1
  466. package/dist/theme/text-size.js.map +1 -1
  467. package/dist/theme/theme-store.js +1 -3
  468. package/dist/theme/theme-store.js.map +1 -1
  469. package/dist/tour/tour-catalogue.js.map +1 -1
  470. package/dist/tour/tour-dock.js +5 -1
  471. package/dist/tour/tour-dock.js.map +1 -1
  472. package/dist/tour/tour-engine.js +1 -4
  473. package/dist/tour/tour-engine.js.map +1 -1
  474. package/dist/tour/tour.js +21 -12
  475. package/dist/tour/tour.js.map +1 -1
  476. package/dist/tour/use-tour-progress.js.map +1 -1
  477. package/dist/tour/use-tour-url-sync.js.map +1 -1
  478. package/dist/wizard/stepper-nav.js +3 -24
  479. package/dist/wizard/stepper-nav.js.map +1 -1
  480. package/dist/wizard/types.js.map +1 -1
  481. package/dist/wizard/use-wizard.js +24 -28
  482. package/dist/wizard/use-wizard.js.map +1 -1
  483. package/dist/wizard/validation.js.map +1 -1
  484. package/dist/wizard/wizard-context.js.map +1 -1
  485. package/dist/wizard/wizard-step.d.ts +1 -1
  486. package/dist/wizard/wizard-step.js +1 -8
  487. package/dist/wizard/wizard-step.js.map +1 -1
  488. package/dist/wizard/wizard-summary.js.map +1 -1
  489. package/package.json +5 -2
  490. package/src/account/account-settings-labels.ts +1 -2
  491. package/src/account/account-settings.tsx +11 -17
  492. package/src/account/delete-account-setting.tsx +1 -6
  493. package/src/account/email-change-setting-labels.ts +1 -2
  494. package/src/account/email-change-setting.tsx +3 -1
  495. package/src/account/passkeys-setting.tsx +1 -3
  496. package/src/account/sessions-setting.tsx +4 -2
  497. package/src/admin/admin-action-confirm.tsx +4 -7
  498. package/src/admin/admin-action-log.tsx +29 -29
  499. package/src/admin/admin-area-labels.ts +4 -1
  500. package/src/admin/admin-overview.tsx +8 -2
  501. package/src/admin/admin-sections.tsx +3 -1
  502. package/src/admin/admin-tool-links.tsx +7 -1
  503. package/src/admin/invitations-panel.tsx +5 -11
  504. package/src/admin/mail-test-card.tsx +1 -2
  505. package/src/admin/reviewer-scope-editor.tsx +4 -9
  506. package/src/admin/role-select.tsx +4 -2
  507. package/src/admin/user-roster.tsx +2 -11
  508. package/src/auth/accept-invitation.tsx +1 -7
  509. package/src/auth/auth-errors.ts +1 -6
  510. package/src/auth/forgot-password-form.tsx +2 -7
  511. package/src/auth/register-form.tsx +7 -8
  512. package/src/auth/reset-password-form.tsx +2 -5
  513. package/src/auth/sign-in-form.tsx +15 -14
  514. package/src/auth/verify-email.tsx +2 -7
  515. package/src/billing/billing-banner.tsx +3 -7
  516. package/src/billing/billing-labels.ts +6 -4
  517. package/src/billing/checkout-processing.ts +0 -1
  518. package/src/billing/plan-card.tsx +9 -8
  519. package/src/billing/plan-limit-toast.tsx +1 -2
  520. package/src/billing/plan-limit.ts +1 -2
  521. package/src/billing/plan-price.ts +1 -4
  522. package/src/billing/plan-switch.tsx +1 -2
  523. package/src/billing/subscription-actions.tsx +5 -2
  524. package/src/components/account-chips.tsx +1 -7
  525. package/src/components/alert-banner.tsx +2 -8
  526. package/src/components/amount-input.tsx +206 -178
  527. package/src/components/authed-image.tsx +7 -4
  528. package/src/components/autocomplete.tsx +7 -9
  529. package/src/components/bulk-action-bar.tsx +2 -7
  530. package/src/components/button-group.tsx +1 -2
  531. package/src/components/button-look.ts +6 -17
  532. package/src/components/button.tsx +1 -4
  533. package/src/components/calculator.tsx +6 -9
  534. package/src/components/calendar-heatmap.tsx +5 -10
  535. package/src/components/card.tsx +9 -13
  536. package/src/components/chart-zoom-core.tsx +6 -33
  537. package/src/components/chart.tsx +8 -31
  538. package/src/components/checkbox-group.tsx +1 -4
  539. package/src/components/chip-input.tsx +6 -6
  540. package/src/components/chip.tsx +14 -26
  541. package/src/components/choice-card.tsx +4 -18
  542. package/src/components/column-mapper-labels.ts +3 -10
  543. package/src/components/column-mapper.tsx +33 -122
  544. package/src/components/combobox-core.tsx +17 -47
  545. package/src/components/combobox.tsx +2 -6
  546. package/src/components/confirm-dialog.tsx +1 -3
  547. package/src/components/copy-button.tsx +2 -4
  548. package/src/components/country-select.tsx +9 -21
  549. package/src/components/currency-option-list.tsx +16 -18
  550. package/src/components/currency-select.tsx +2 -7
  551. package/src/components/danger-confirm.tsx +8 -9
  552. package/src/components/data-table-cells.tsx +1 -2
  553. package/src/components/data-table-column-settings.tsx +1 -3
  554. package/src/components/data-table-filter-popover.tsx +5 -19
  555. package/src/components/data-table-filters.ts +1 -6
  556. package/src/components/data-table-fit.ts +7 -7
  557. package/src/components/data-table-groups.tsx +3 -1
  558. package/src/components/data-table-head.tsx +32 -46
  559. package/src/components/data-table-mobile.tsx +99 -108
  560. package/src/components/data-table-pagination.tsx +2 -6
  561. package/src/components/data-table-row-actions.tsx +25 -24
  562. package/src/components/data-table-row.tsx +16 -17
  563. package/src/components/data-table-shared.tsx +10 -16
  564. package/src/components/data-table-sort.ts +1 -2
  565. package/src/components/data-table-virtual.ts +9 -4
  566. package/src/components/data-table.tsx +497 -501
  567. package/src/components/date-picker.tsx +1 -7
  568. package/src/components/date-range-picker.tsx +3 -13
  569. package/src/components/description-list.tsx +7 -13
  570. package/src/components/dialog-frame.tsx +12 -3
  571. package/src/components/disclosure.tsx +8 -12
  572. package/src/components/dropdown.tsx +3 -11
  573. package/src/components/empty-state.tsx +1 -3
  574. package/src/components/entity-combobox.tsx +2 -6
  575. package/src/components/error-boundary.tsx +7 -7
  576. package/src/components/field-base.tsx +8 -14
  577. package/src/components/field-parts.tsx +12 -23
  578. package/src/components/field-sync.tsx +7 -11
  579. package/src/components/file-button.tsx +7 -3
  580. package/src/components/file-dropzone.tsx +7 -12
  581. package/src/components/floating-panel.tsx +44 -51
  582. package/src/components/focus-ring.ts +1 -2
  583. package/src/components/form-actions.tsx +1 -4
  584. package/src/components/grouped-picker.tsx +21 -16
  585. package/src/components/hover-menu.tsx +1 -4
  586. package/src/components/iban-input-labels.ts +1 -2
  587. package/src/components/icon-button.tsx +46 -48
  588. package/src/components/icon-picker.tsx +9 -20
  589. package/src/components/image-grid.tsx +1 -6
  590. package/src/components/inline-edit-field.tsx +1 -5
  591. package/src/components/inline-entity-combobox.tsx +11 -25
  592. package/src/components/input.tsx +14 -2
  593. package/src/components/jump-calendar.tsx +2 -6
  594. package/src/components/legal-labels.ts +8 -3
  595. package/src/components/legal-page.tsx +56 -6
  596. package/src/components/legal.tsx +83 -10
  597. package/src/components/lightbox.tsx +1 -3
  598. package/src/components/line-items.tsx +7 -15
  599. package/src/components/list-labels.ts +2 -0
  600. package/src/components/list.tsx +81 -27
  601. package/src/components/measured-grid.tsx +8 -30
  602. package/src/components/menu-item.tsx +1 -3
  603. package/src/components/mini-calendar.tsx +129 -159
  604. package/src/components/money-field.tsx +4 -2
  605. package/src/components/month-picker.tsx +14 -21
  606. package/src/components/multi-entity-combobox.tsx +6 -26
  607. package/src/components/multi-select.tsx +5 -9
  608. package/src/components/nav-pills.tsx +10 -2
  609. package/src/components/number-field.tsx +18 -15
  610. package/src/components/number-input.tsx +3 -19
  611. package/src/components/numpad-sheet.tsx +9 -13
  612. package/src/components/one-time-code-input.tsx +6 -11
  613. package/src/components/page-contents.tsx +2 -9
  614. package/src/components/page-header.tsx +5 -10
  615. package/src/components/password-strength-labels.ts +1 -2
  616. package/src/components/password-strength.tsx +6 -9
  617. package/src/components/phone-input.tsx +2 -13
  618. package/src/components/picker-sheet.tsx +2 -5
  619. package/src/components/pie-chart.tsx +6 -12
  620. package/src/components/popover.tsx +2 -1
  621. package/src/components/progress-bar.tsx +16 -25
  622. package/src/components/qr-code.tsx +2 -9
  623. package/src/components/row-actions.tsx +9 -1
  624. package/src/components/search-field.tsx +4 -5
  625. package/src/components/select.tsx +2 -10
  626. package/src/components/separator.tsx +1 -5
  627. package/src/components/series-chart-axes.ts +5 -5
  628. package/src/components/series-chart-budget.ts +1 -4
  629. package/src/components/series-chart-ticks.ts +1 -4
  630. package/src/components/series-chart.tsx +43 -83
  631. package/src/components/settings-fields.tsx +20 -15
  632. package/src/components/share-card.tsx +6 -14
  633. package/src/components/sign-chip.tsx +16 -16
  634. package/src/components/signature-pad.tsx +21 -13
  635. package/src/components/signed-amount.tsx +6 -14
  636. package/src/components/skeleton.tsx +2 -13
  637. package/src/components/slider.tsx +9 -20
  638. package/src/components/sparkline.tsx +2 -13
  639. package/src/components/stat-tile.tsx +13 -24
  640. package/src/components/swatch-picker.tsx +8 -3
  641. package/src/components/swipeable-row.tsx +2 -11
  642. package/src/components/table-skeleton.tsx +4 -1
  643. package/src/components/table.tsx +12 -8
  644. package/src/components/tabs.tsx +24 -39
  645. package/src/components/text-link.tsx +6 -6
  646. package/src/components/text.tsx +1 -2
  647. package/src/components/tile-radio.tsx +6 -19
  648. package/src/components/time-input.tsx +4 -5
  649. package/src/components/toast.tsx +3 -12
  650. package/src/components/toggle-group.tsx +9 -9
  651. package/src/components/toggle-legend.tsx +4 -16
  652. package/src/components/tooltip.tsx +9 -48
  653. package/src/components/translation-review-editor.tsx +4 -4
  654. package/src/components/translation-review-parts.tsx +7 -1
  655. package/src/components/translation-review.tsx +15 -16
  656. package/src/components/tree-view.tsx +17 -20
  657. package/src/components/treemap.tsx +3 -15
  658. package/src/components/trigger-aria.ts +1 -4
  659. package/src/components/use-table-state.ts +16 -17
  660. package/src/components/user-avatar.tsx +4 -21
  661. package/src/demo/demo-start.tsx +8 -4
  662. package/src/feedback/feedback-attachment-labels.ts +2 -1
  663. package/src/feedback/feedback-attachment.tsx +16 -29
  664. package/src/feedback/feedback-capture.ts +3 -1
  665. package/src/feedback/feedback-comment-thread.tsx +9 -6
  666. package/src/feedback/feedback-context.tsx +1 -4
  667. package/src/feedback/feedback-dialog.tsx +3 -4
  668. package/src/feedback/feedback-inbox.tsx +3 -9
  669. package/src/feedback/feedback-public-list.tsx +7 -1
  670. package/src/feedback/feedback-record.ts +6 -14
  671. package/src/feedback/feedback-replies.tsx +10 -5
  672. package/src/feedback/feedback-row-detail.tsx +2 -5
  673. package/src/feedback/feedback-status-undo.ts +1 -4
  674. package/src/feedback/feedback-submit-dialog.tsx +4 -4
  675. package/src/feedback/feedback-table.tsx +29 -9
  676. package/src/feedback/feedback-thread.tsx +4 -16
  677. package/src/feedback/feedback-vocabulary.ts +72 -82
  678. package/src/feedback/feedback-vote-button.tsx +9 -8
  679. package/src/hooks/use-anchored-rect.ts +1 -4
  680. package/src/hooks/use-document-title.ts +3 -1
  681. package/src/hooks/use-file-drop.ts +1 -3
  682. package/src/hooks/use-file-picker-labels.ts +1 -2
  683. package/src/hooks/use-file-picker.tsx +1 -5
  684. package/src/hooks/use-focus-trap.ts +1 -2
  685. package/src/hooks/use-overlay-history.ts +10 -5
  686. package/src/hooks/use-row-swipe.ts +1 -6
  687. package/src/i18n/defaults.ts +1 -4
  688. package/src/i18n/german.ts +42 -50
  689. package/src/i18n/kit-labels.tsx +5 -20
  690. package/src/i18n/languages.ts +2 -8
  691. package/src/i18n/locales/en.ts +15 -31
  692. package/src/i18n/locales/es.ts +44 -50
  693. package/src/i18n/locales/fr.ts +43 -52
  694. package/src/i18n/locales/hu.ts +35 -38
  695. package/src/i18n/locales/it.ts +44 -53
  696. package/src/i18n/locales/zh.ts +23 -33
  697. package/src/i18n/plurals.ts +4 -1
  698. package/src/i18n/review.ts +20 -7
  699. package/src/i18n/shared-labels.ts +1 -2
  700. package/src/index.ts +107 -32
  701. package/src/landing/access.ts +2 -7
  702. package/src/landing/landing-sections.tsx +14 -15
  703. package/src/landing/page-seo.ts +1 -3
  704. package/src/lib/calc.ts +4 -1
  705. package/src/lib/clipboard-minus.ts +4 -1
  706. package/src/lib/dates.ts +2 -10
  707. package/src/lib/decimal-marks.ts +1 -3
  708. package/src/lib/device-settings.ts +2 -1
  709. package/src/lib/direction.ts +1 -3
  710. package/src/lib/iban.ts +89 -9
  711. package/src/lib/logger.ts +1 -5
  712. package/src/lib/person-name.ts +1 -3
  713. package/src/lib/phone.ts +5 -8
  714. package/src/lib/qr-encode.ts +32 -8
  715. package/src/lib/session-refresh.ts +5 -6
  716. package/src/lib/table-text.ts +24 -6
  717. package/src/lib/text-match.ts +43 -1
  718. package/src/lib/translation-review.ts +1 -3
  719. package/src/notifications/notification-inbox.tsx +17 -4
  720. package/src/notifications/notification-parts.tsx +1 -2
  721. package/src/notifications/notification-types-setting.tsx +19 -18
  722. package/src/notifications/notifications-labels.ts +1 -2
  723. package/src/notifications/push-device-setting.tsx +7 -1
  724. package/src/notifications/push-devices-setting.tsx +7 -3
  725. package/src/notifications/push-worker.ts +10 -2
  726. package/src/notifications/quiet-hours-setting.tsx +4 -1
  727. package/src/notifications/use-push-device.ts +4 -1
  728. package/src/offline/pwa-update-prompt.tsx +7 -1
  729. package/src/offline/query-persistence.ts +9 -6
  730. package/src/offline.ts +6 -1
  731. package/src/rhf/fields.tsx +50 -19
  732. package/src/rhf/form-core.tsx +2 -6
  733. package/src/rhf/line-items.tsx +5 -7
  734. package/src/rhf/use-rhf-wizard-step.ts +3 -12
  735. package/src/search/command-palette.tsx +15 -23
  736. package/src/search/global-search.tsx +38 -8
  737. package/src/search/search-index.ts +5 -1
  738. package/src/settings/device-reset-setting.tsx +5 -8
  739. package/src/settings/settings-heading.tsx +3 -1
  740. package/src/settings/settings-layout.tsx +6 -13
  741. package/src/settings/use-settings-focus.ts +8 -0
  742. package/src/settings/use-settings-route.ts +4 -3
  743. package/src/shell/app-shell.tsx +48 -24
  744. package/src/shell/auth-layout.tsx +1 -6
  745. package/src/shell/dev-menu.tsx +18 -6
  746. package/src/shell/option-switcher-menu.tsx +1 -3
  747. package/src/shell/sync-status-indicator.tsx +14 -12
  748. package/src/shell/top-bar-parts-labels.ts +1 -3
  749. package/src/shell/topbar-action-menu.tsx +130 -45
  750. package/src/shell/topbar-controls.tsx +5 -19
  751. package/src/shell/tour-menu.tsx +9 -1
  752. package/src/shell.ts +1 -1
  753. package/src/sync/db.ts +5 -1
  754. package/src/sync/engine.ts +44 -12
  755. package/src/sync.ts +16 -2
  756. package/src/testing/css-variables.ts +1 -2
  757. package/src/testing/index.ts +1 -6
  758. package/src/testing/react.ts +1 -2
  759. package/src/testing/viewport.ts +9 -9
  760. package/src/theme/contrast-tokens.ts +13 -2
  761. package/src/theme/palette-derive.ts +24 -50
  762. package/src/theme/palette-presets.ts +0 -1
  763. package/src/theme/palette-store.ts +1 -4
  764. package/src/theme/text-size.ts +1 -1
  765. package/src/theme/theme-store.ts +2 -6
  766. package/src/tour/tour-catalogue.tsx +4 -2
  767. package/src/tour/tour-dock.ts +5 -1
  768. package/src/tour/tour-engine.ts +2 -6
  769. package/src/tour/tour.tsx +28 -12
  770. package/src/tour/use-tour-progress.ts +8 -2
  771. package/src/tour/use-tour-url-sync.ts +3 -1
  772. package/src/vite-env.d.ts +1 -4
  773. package/src/wizard/stepper-nav.tsx +10 -35
  774. package/src/wizard/types.ts +1 -4
  775. package/src/wizard/use-wizard.ts +28 -43
  776. package/src/wizard/validation.ts +1 -5
  777. package/src/wizard/wizard-context.tsx +2 -6
  778. package/src/wizard/wizard-step.tsx +1 -8
  779. package/src/wizard/wizard-summary.tsx +2 -6
  780. package/tokens.css +393 -152
@@ -13,8 +13,7 @@ export const DEFAULT_FILE_PICKER_LABELS: FilePickerLabels = {
13
13
  `“${name}” was not added: at most ${maxFiles} ${maxFiles === 1 ? "file" : "files"}`,
14
14
  rejectedInvalid: (name) => `“${name}” cannot be used here`,
15
15
  rejectedMany: (count) => `${count} files were not added`,
16
- rejectedPick: (count) =>
17
- count === 1 ? "The file was not added" : `None of the ${count} files were added`,
16
+ rejectedPick: (count) => (count === 1 ? "The file was not added" : `None of the ${count} files were added`),
18
17
  selected: (count, firstName) => (count === 1 ? `“${firstName}” selected` : `${count} files selected`),
19
18
  remove: (name) => `Remove “${name}”`,
20
19
  clearAll: "Remove all files",
@@ -215,11 +215,7 @@ export type FilePickHandler = (accepted: File[], rejected: FileRejection[]) => b
215
215
  /** @internal The shared tail of both pickers: run `onPick`, and say whether the pick
216
216
  * stands. A pick with nothing accepted has nothing to refuse, so `false` there is
217
217
  * treated as no verdict and the usual per-file messages are kept. */
218
- export function judgePick(
219
- onPick: FilePickHandler | undefined,
220
- accepted: File[],
221
- rejected: FileRejection[],
222
- ): boolean {
218
+ export function judgePick(onPick: FilePickHandler | undefined, accepted: File[], rejected: FileRejection[]): boolean {
223
219
  if (!onPick) return true;
224
220
  return onPick(accepted, rejected) !== false || accepted.length === 0;
225
221
  }
@@ -56,8 +56,7 @@ const FOCUSABLE =
56
56
  * reaches, so no correct order changes. `visibility: hidden` and closed `<details>` are
57
57
  * still not walked — they need layout, which this list has never read.
58
58
  */
59
- const isTabStop = (el: HTMLElement): boolean =>
60
- el.tabIndex >= 0 && !el.closest("[hidden],[inert]");
59
+ const isTabStop = (el: HTMLElement): boolean => el.tabIndex >= 0 && !el.closest("[hidden],[inert]");
61
60
 
62
61
  /**
63
62
  * Marks a container whose trap is currently active.
@@ -408,10 +408,7 @@ function taggedSentinel(): string | null {
408
408
  * written there — we are a passenger in that object, not its owner. */
409
409
  function retag(id: string): void {
410
410
  const prev = window.history.state;
411
- window.history.replaceState(
412
- { ...(prev && typeof prev === "object" ? prev : {}), [SENTINEL_KEY]: id },
413
- "",
414
- );
411
+ window.history.replaceState({ ...(prev && typeof prev === "object" ? prev : {}), [SENTINEL_KEY]: id }, "");
415
412
  }
416
413
 
417
414
  function currentSentinel(): string | null {
@@ -571,7 +568,15 @@ export function useOverlayHistory(open: boolean, onClose: () => void): void {
571
568
  // The abandoned ones beneath come back owed; ours takes the top slot.
572
569
  for (const owed of inherited.slice(0, -1)) pushed.push({ ...owed, dead: true });
573
570
  const was = inherited[inherited.length - 1];
574
- pushed.push({ id, href: currentHref(), seen: currentHref(), dead: false, idx: was.idx, key: was.key, route: was.route });
571
+ pushed.push({
572
+ id,
573
+ href: currentHref(),
574
+ seen: currentHref(),
575
+ dead: false,
576
+ idx: was.idx,
577
+ key: was.key,
578
+ route: was.route,
579
+ });
575
580
  standing = id;
576
581
  } else {
577
582
  // A push DESTROYS every entry ahead of the one we are on, so anything we
@@ -83,12 +83,7 @@ function lastArmed(stages: SwipeStage[] | undefined, magnitude: number): number
83
83
  return idx;
84
84
  }
85
85
 
86
- export function useRowSwipe({
87
- enabled,
88
- leftStages,
89
- rightStages,
90
- maxDrag = 252,
91
- }: RowSwipeOptions): RowSwipeReturn {
86
+ export function useRowSwipe({ enabled, leftStages, rightStages, maxDrag = 252 }: RowSwipeOptions): RowSwipeReturn {
92
87
  const [dx, setDx] = useState(0);
93
88
  const [dragging, setDragging] = useState(false);
94
89
  const startX = useRef(0);
@@ -33,10 +33,7 @@ import { DEFAULT_CONFIRM_DIALOG_LABELS } from "../components/confirm-dialog-labe
33
33
  import { DEFAULT_FLOATING_PANEL_LABELS } from "../components/floating-panel-labels";
34
34
  import { DEFAULT_FEEDBACK_ATTACHMENT_LABELS } from "../feedback/feedback-attachment-labels";
35
35
  import { DEFAULT_FEEDBACK_DIALOG_LABELS } from "../feedback/feedback-dialog-labels";
36
- import {
37
- DEFAULT_FEEDBACK_COMPOSER_LABELS,
38
- DEFAULT_FEEDBACK_THREAD_LABELS,
39
- } from "../feedback/feedback-thread-labels";
36
+ import { DEFAULT_FEEDBACK_COMPOSER_LABELS, DEFAULT_FEEDBACK_THREAD_LABELS } from "../feedback/feedback-thread-labels";
40
37
  import {
41
38
  DEFAULT_FEEDBACK_CATEGORY_LABELS,
42
39
  DEFAULT_FEEDBACK_STATUS_LABELS,
@@ -20,16 +20,14 @@ export function germanLabels(numberLocale: string): UiKitLabels {
20
20
  // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
21
21
  // src/auth/auth-errors.ts: no wait → "einen Moment", under a minute → seconds, else
22
22
  // minutes rounded up. kastlan's reviewed "auth.throttled" is the sentence without one.
23
- const wait = (seconds: number) =>
24
- seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`;
23
+ const wait = (seconds: number) => (seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`);
25
24
  const rateLimited = (seconds?: number) =>
26
25
  !seconds || seconds <= 0
27
26
  ? "Zu viele Versuche. Bitte warten Sie einen Moment und versuchen Sie es dann noch einmal."
28
27
  : `Zu viele Versuche. Versuchen Sie es in ${wait(seconds)} erneut.`;
29
28
  // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:
30
29
  // 0 (or less) is today, 1 tomorrow.
31
- const inDays = (days: number) =>
32
- days <= 0 ? "heute" : days === 1 ? "morgen" : `in ${n(days)} Tagen`;
30
+ const inDays = (days: number) => (days <= 0 ? "heute" : days === 1 ? "morgen" : `in ${n(days)} Tagen`);
33
31
 
34
32
  return {
35
33
  feedbackAttachment: {
@@ -281,7 +279,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
281
279
  passkeys: {
282
280
  title: "Passkeys",
283
281
  description: "Mit Fingerabdruck, Gesichtserkennung oder Geräte-PIN statt Passwort anmelden.",
284
- descriptionAlongside: "Mit Fingerabdruck, Gesichtserkennung oder Geräte-PIN anmelden. Das Passwort funktioniert weiterhin.",
282
+ descriptionAlongside:
283
+ "Mit Fingerabdruck, Gesichtserkennung oder Geräte-PIN anmelden. Das Passwort funktioniert weiterhin.",
285
284
  empty: "Noch keine Passkeys",
286
285
  loading: "Passkeys werden geladen…",
287
286
  list: "Registrierte Passkeys",
@@ -318,8 +317,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
318
317
  "Pfeiltasten wechseln zwischen Zellen. Tippen ersetzt eine Zelle, F2 bearbeitet sie, Escape macht die Bearbeitung rückgängig. Enter geht nach unten und fügt am Ende eine Zeile hinzu.",
319
318
  lineError: (line) => `Zeile ${line} konnte nicht gelesen werden`,
320
319
  points: (count) => (count === 1 ? "1 Punkt" : `${n(count)} Punkte`),
321
- problems: (count) =>
322
- count === 1 ? "1 Zelle ist keine Zahl" : `${n(count)} Zellen sind keine Zahlen`,
320
+ problems: (count) => (count === 1 ? "1 Zelle ist keine Zahl" : `${n(count)} Zellen sind keine Zahlen`),
323
321
  },
324
322
  pageContents: { title: "Auf dieser Seite" },
325
323
  common: {
@@ -388,8 +386,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
388
386
  last_year: "Letztes Jahr",
389
387
  },
390
388
  table: "Datentabelle",
391
- filterResults: (shown, total) =>
392
- `${n(shown)} von ${n(total)} ${total === 1 ? "Zeile" : "Zeilen"}`,
389
+ filterResults: (shown, total) => `${n(shown)} von ${n(total)} ${total === 1 ? "Zeile" : "Zeilen"}`,
393
390
  sortedAscending: (column) => `Sortiert nach ${column}, aufsteigend`,
394
391
  sortedDescending: (column) => `Sortiert nach ${column}, absteigend`,
395
392
  sortCleared: (column) => `Sortierung nach ${column} aufgehoben`,
@@ -420,8 +417,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
420
417
  chooseStart: "Startdatum wählen",
421
418
  chooseEnd: "Enddatum wählen",
422
419
  startSelected: (date) => `${date} als Startdatum gewählt. Wählen Sie jetzt ein Enddatum.`,
423
- rangeSelected: (from, to) =>
424
- `Zeitraum ${from} bis ${to} gewählt. Wählen Sie ein Startdatum, um neu zu beginnen.`,
420
+ rangeSelected: (from, to) => `Zeitraum ${from} bis ${to} gewählt. Wählen Sie ein Startdatum, um neu zu beginnen.`,
425
421
  },
426
422
  calendarHeatmap: {
427
423
  grid: "Tageswerte",
@@ -587,9 +583,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
587
583
  hint: (accept) => (accept ? `Erlaubt: ${accept}` : "Beliebiger Dateityp"),
588
584
  busy: "Wird hochgeladen…",
589
585
  rejectedPick: (count) =>
590
- count === 1
591
- ? "Die Datei wurde nicht hinzugefügt"
592
- : `Keine der ${n(count)} Dateien wurde hinzugefügt`,
586
+ count === 1 ? "Die Datei wurde nicht hinzugefügt" : `Keine der ${n(count)} Dateien wurde hinzugefügt`,
593
587
  rejectedType: (name) => `„${name}“ hat einen nicht unterstützten Dateityp`,
594
588
  rejectedTypeOnly: (accept) => `Nur ${accept}-Dateien`,
595
589
  rejectedSize: (name, maxSize) => `„${name}“ ist größer als ${maxSize}`,
@@ -597,11 +591,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
597
591
  `„${name}“ wurde nicht hinzugefügt: höchstens ${n(maxFiles)} ${maxFiles === 1 ? "Datei" : "Dateien"}`,
598
592
  rejectedInvalid: (name) => `„${name}“ kann hier nicht verwendet werden`,
599
593
  rejectedMany: (count) =>
600
- count === 1
601
- ? "1 Datei wurde nicht hinzugefügt"
602
- : `${n(count)} Dateien wurden nicht hinzugefügt`,
603
- selected: (count, firstName) =>
604
- count === 1 ? `„${firstName}“ ausgewählt` : `${n(count)} Dateien ausgewählt`,
594
+ count === 1 ? "1 Datei wurde nicht hinzugefügt" : `${n(count)} Dateien wurden nicht hinzugefügt`,
595
+ selected: (count, firstName) => (count === 1 ? `„${firstName}“ ausgewählt` : `${n(count)} Dateien ausgewählt`),
605
596
  remove: (name) => `„${name}“ entfernen`,
606
597
  clearAll: "Alle Dateien entfernen",
607
598
  removed: (name) => `„${name}“ entfernt`,
@@ -745,8 +736,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
745
736
  optional: (rule) => `${rule} (optional)`,
746
737
  met: "Erfüllt:",
747
738
  notMet: "Nicht erfüllt:",
748
- tooLong: (maxBytes) =>
749
- `Höchstens ${n(maxBytes)} Zeichen (Buchstaben mit Akzent und Emojis zählen mehrfach).`,
739
+ tooLong: (maxBytes) => `Höchstens ${n(maxBytes)} Zeichen (Buchstaben mit Akzent und Emojis zählen mehrfach).`,
750
740
  },
751
741
  seriesChart: {
752
742
  resetZoom: "Zoom zurücksetzen",
@@ -782,6 +772,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
782
772
  list: {
783
773
  unread: "Ungelesen",
784
774
  opensInNewTab: "öffnet in einem neuen Tab",
775
+ showAll: (count) => `Alle anzeigen (${n(count)})`,
776
+ showFewer: "Weniger anzeigen",
785
777
  },
786
778
  breadcrumbs: {
787
779
  label: "Brotkrümelnavigation",
@@ -825,9 +817,11 @@ export function germanLabels(numberLocale: string): UiKitLabels {
825
817
  details: "Fehlerdetails",
826
818
  reload: "Neu laden",
827
819
  updateTitle: "Eine neue Version ist verfügbar",
828
- updateMessage: "Ein Teil der App hat sich seit dem Laden dieser Seite geändert. Zum Aktualisieren die Seite neu laden.",
820
+ updateMessage:
821
+ "Ein Teil der App hat sich seit dem Laden dieser Seite geändert. Zum Aktualisieren die Seite neu laden.",
829
822
  offlineTitle: "Keine Internetverbindung",
830
- offlineMessage: "Diese Seite konnte ohne Verbindung nicht geladen werden. Nach dem Wiederherstellen der Verbindung die Seite neu laden.",
823
+ offlineMessage:
824
+ "Diese Seite konnte ohne Verbindung nicht geladen werden. Nach dem Wiederherstellen der Verbindung die Seite neu laden.",
831
825
  copyReport: "Fehlerbericht kopieren",
832
826
  reported: "Der Fehler wurde automatisch gemeldet.",
833
827
  reportedAs: (reference) => `Gemeldet unter ${reference}`,
@@ -917,6 +911,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
917
911
  impressum: "Impressum",
918
912
  privacy: "Datenschutz",
919
913
  terms: "Nutzungsbedingungen",
914
+ security: "Sicherheit",
915
+ accessibility: "Barrierefreiheit",
920
916
  },
921
917
  titles: {
922
918
  impressum: "Impressum",
@@ -936,6 +932,10 @@ export function germanLabels(numberLocale: string): UiKitLabels {
936
932
  show: (o) => `Fassung auf ${o.bindingLanguage} anzeigen`,
937
933
  },
938
934
  updated: (date) => `Stand: ${date}`,
935
+ summary: {
936
+ title: "Das Wichtigste in Kürze",
937
+ note: "Diese Zusammenfassung dient der Orientierung; verbindlich ist allein der vollständige Text.",
938
+ },
939
939
  sections: {
940
940
  impressum: {
941
941
  operator: {
@@ -992,7 +992,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
992
992
  },
993
993
  changes: {
994
994
  title: "Änderungen dieser Bedingungen",
995
- body: "Wir können diese Bedingungen im Zuge der Weiterentwicklung des Dienstes anpassen. Wesentliche Änderungen kündigen wir mindestens 30 Tage vor ihrem Inkrafttreten per E-Mail und in der App an, zusammen mit dem neuen Text. Wenn Sie nicht einverstanden sind, können Sie vor diesem Datum widersprechen oder Ihr Konto löschen und bis dahin Ihre Daten exportieren. Nutzen Sie den Dienst nach diesem Datum weiter, gelten die geänderten Bedingungen.",
995
+ body: "Wir können diese Bedingungen im Zuge der Weiterentwicklung des Dienstes anpassen. Wesentliche Änderungen kündigen wir mindestens 30 Tage vor ihrem Inkrafttreten per E-Mail und in der App an, zusammen mit dem neuen Text. Wenn Sie nicht einverstanden sind, können Sie vor diesem Datum widersprechen oder Ihr Konto löschen und bis dahin Ihre Daten exportieren. Nutzen Sie den Dienst nach diesem Datum weiter, gelten die geänderten Bedingungen. Änderungen, die nur zu Ihrem Vorteil sind oder gesetzlich vorgeschrieben sind, gelten ohne diese Ankündigung; ihnen kann nicht widersprochen werden. Widersprechen Sie einer Änderung, können wir Ihr Konto auf den Tag ihres Inkrafttretens schließen. Haben Sie einen Zeitraum bezahlt, der über dieses Datum hinausgeht, erstatten wir den nicht genutzten Teil.",
996
996
  },
997
997
  language: {
998
998
  title: "Sprache",
@@ -1022,8 +1022,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1022
1022
  failed: "Anmeldung fehlgeschlagen. Bitte versuchen Sie es erneut.",
1023
1023
  passkeyFailed: "Passkey-Anmeldung fehlgeschlagen.",
1024
1024
  deactivatedHint: "Konto deaktiviert? Schreiben Sie an {contact}.",
1025
- tagHint: (taggedAddress) =>
1026
- `Mit ${taggedAddress} registriert? Verwenden Sie diese Adresse.`,
1025
+ tagHint: (taggedAddress) => `Mit ${taggedAddress} registriert? Verwenden Sie diese Adresse.`,
1027
1026
  twoFactorTitle: "Zwei-Faktor-Authentifizierung",
1028
1027
  twoFactorIntro: "Geben Sie den Code aus Ihrer Authenticator-App ein.",
1029
1028
  code: "2FA-Code",
@@ -1256,10 +1255,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1256
1255
  "Der Service Worker der App ist nicht erreichbar. Laden Sie die Seite neu und versuchen Sie es erneut.",
1257
1256
  pushTimeout:
1258
1257
  "Der Push-Dienst des Browsers antwortet nicht. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.",
1259
- testSent: (count) =>
1260
- count === 1 ? `Test an ${n(count)} Gerät gesendet` : `Test an ${n(count)} Geräte gesendet`,
1261
- testNone:
1262
- "Kein Gerät hat den Test angenommen. Schalten Sie zuerst die Benachrichtigungen für dieses Gerät ein.",
1258
+ testSent: (count) => (count === 1 ? `Test an ${n(count)} Gerät gesendet` : `Test an ${n(count)} Geräte gesendet`),
1259
+ testNone: "Kein Gerät hat den Test angenommen. Schalten Sie zuerst die Benachrichtigungen für dieses Gerät ein.",
1263
1260
  testFailed: "Die Test-Benachrichtigung konnte nicht gesendet werden.",
1264
1261
  explainerTitle: "Benachrichtigungen einschalten?",
1265
1262
  explainerBody: (app) =>
@@ -1409,8 +1406,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1409
1406
  lastAdmin:
1410
1407
  "Dies ist das letzte aktive Konto mit Administratorrechten. Geben Sie zuerst einem anderen Konto Administratorrechte.",
1411
1408
  self: "Mit Ihrem eigenen Konto ist das nicht möglich.",
1412
- confirmationMismatch:
1413
- "Die Adresse passt nicht zu diesem Konto. Prüfen Sie, bei welchem Konto Sie sind.",
1409
+ confirmationMismatch: "Die Adresse passt nicht zu diesem Konto. Prüfen Sie, bei welchem Konto Sie sind.",
1414
1410
  otherCompanies:
1415
1411
  "Dieses Konto gehört auch zu anderen Unternehmen, deshalb kann nur der Plattformbetreiber das tun. Sie können es stattdessen aus diesem Unternehmen entfernen.",
1416
1412
  removeFromCompany: "Aus dem Unternehmen entfernen",
@@ -1534,8 +1530,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1534
1530
  consoleHint:
1535
1531
  "Dieser Server verschickt keine Mails – sie werden ins Server-Log geschrieben. Kopieren Sie jeden Einladungslink hier und geben Sie ihn selbst weiter: Er wird nur einmal angezeigt.",
1536
1532
  linkReady: (email) => `Der Einladungslink für ${email}, nur dieses eine Mal angezeigt:`,
1537
- notSent: (email) =>
1538
- `${email} ist eingeladen, aber die Mail konnte nicht gesendet werden. Senden Sie sie erneut.`,
1533
+ notSent: (email) => `${email} ist eingeladen, aber die Mail konnte nicht gesendet werden. Senden Sie sie erneut.`,
1539
1534
  failed: "Das hat nicht geklappt. Bitte erneut versuchen.",
1540
1535
  },
1541
1536
  characterCount: {
@@ -1557,8 +1552,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1557
1552
  ibanInput: {
1558
1553
  format: "Eine IBAN beginnt mit einem Ländercode aus zwei Buchstaben und zwei Prüfziffern.",
1559
1554
  country: (code) => `„${code}“ ist kein Ländercode einer IBAN.`,
1560
- length: (actual, expected) =>
1561
- `Eine IBAN aus diesem Land hat ${n(expected)} Zeichen – diese hat ${n(actual)}.`,
1555
+ length: (actual, expected) => `Eine IBAN aus diesem Land hat ${n(expected)} Zeichen – diese hat ${n(actual)}.`,
1562
1556
  checksum: "Die Prüfziffern stimmen nicht – vermutlich ist ein Zeichen falsch eingegeben.",
1563
1557
  qrRequired: "Dies ist eine reguläre IBAN. Eine QR-Rechnung braucht die QR-IBAN des Kontos.",
1564
1558
  qrNotAllowed:
@@ -1592,9 +1586,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1592
1586
  decimalComma: "Dezimalkomma (1,5)",
1593
1587
  decimalPoint: "Dezimalpunkt (1.5)",
1594
1588
  unreadCount: (count) =>
1595
- count === 1
1596
- ? "1 Zeile konnte nicht gelesen werden"
1597
- : `${n(count)} Zeilen konnten nicht gelesen werden`,
1589
+ count === 1 ? "1 Zeile konnte nicht gelesen werden" : `${n(count)} Zeilen konnten nicht gelesen werden`,
1598
1590
  // A line number is a position, not a count: unformatted, as `measuredGrid.lineError`.
1599
1591
  unreadLine: (line) => `Zeile ${line} konnte nicht gelesen werden`,
1600
1592
  unreadMore: (count) => `…und ${n(count)} weitere`,
@@ -1606,9 +1598,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1606
1598
  requiredRole: (role) => `${role} (erforderlich)`,
1607
1599
  requiredRoleShort: (role) => `${role} *`,
1608
1600
  previewOf: (shown, total) =>
1609
- shown === 1
1610
- ? `Die erste von ${n(total)} Zeilen`
1611
- : `Die ersten ${n(shown)} von ${n(total)} Zeilen`,
1601
+ shown === 1 ? `Die erste von ${n(total)} Zeilen` : `Die ersten ${n(shown)} von ${n(total)} Zeilen`,
1612
1602
  // `roles` arrives joined with "oder" ("Soll oder Haben").
1613
1603
  oneOf: (roles) => `entweder ${roles}`,
1614
1604
  missing: (roles) => `Noch erforderlich: ${roles}.`,
@@ -1664,7 +1654,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1664
1654
  exportCorrections: (count) => `Korrekturen exportieren (${n(count)})`,
1665
1655
  failed: "Das hat nicht geklappt. Bitte erneut versuchen.",
1666
1656
  approvedToast: (count) => (count === 1 ? "Text bestätigt" : `${n(count)} Texte bestätigt`),
1667
- clearedToast: (count) => (count === 1 ? "Text als ungeprüft markiert" : `${n(count)} Texte als ungeprüft markiert`),
1657
+ clearedToast: (count) =>
1658
+ count === 1 ? "Text als ungeprüft markiert" : `${n(count)} Texte als ungeprüft markiert`,
1668
1659
  groupCount: (unreviewed, total) => `${n(unreviewed)} ungeprüft / ${n(total)}`,
1669
1660
  approveGroup: (count) => `Ungeprüfte bestätigen (${n(count)})`,
1670
1661
  // The group's name quoted, as `columnMapper.roleOf`'s column: it is often a key
@@ -1866,9 +1857,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1866
1857
  "Ihr kostenloser Zugang hat kein Enddatum. Solange er läuft, ändert ein Kauf Ihren Tarif nicht: Sie würden für einen Tarif bezahlen, der nicht gilt.",
1867
1858
  grantWarningAction: "Trotzdem kaufen",
1868
1859
  waitingChanges: (count) =>
1869
- count === 1
1870
- ? `${n(count)} Änderung wartet auf einen Tarif`
1871
- : `${n(count)} Änderungen warten auf einen Tarif`,
1860
+ count === 1 ? `${n(count)} Änderung wartet auf einen Tarif` : `${n(count)} Änderungen warten auf einen Tarif`,
1872
1861
  // "Verwerfen", as `wizard.cancelConfirmLabel`.
1873
1862
  discardWaiting: "Wartende Änderungen verwerfen",
1874
1863
  notConfigured: "Zahlungen sind noch nicht eingerichtet. Bitte versuchen Sie es später noch einmal.",
@@ -1880,8 +1869,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1880
1869
  planNotSold:
1881
1870
  "Dieser Tarif ist für diesen Abrechnungszeitraum oder diese Währung nicht erhältlich. Bitte wählen Sie einen anderen.",
1882
1871
  // 0.39 (§15.2.10): the plan switch's refusals.
1883
- notSubscribed:
1884
- "Es läuft kein Abonnement, das sich ändern ließe. Wählen Sie einen Tarif, um eines abzuschließen.",
1872
+ notSubscribed: "Es läuft kein Abonnement, das sich ändern ließe. Wählen Sie einen Tarif, um eines abzuschließen.",
1885
1873
  planUnchanged: "Das ist bereits Ihr Tarif. Wählen Sie einen anderen Tarif oder Abrechnungszeitraum.",
1886
1874
  },
1887
1875
  // 0.33.0 — docs/billing-harmonization.md §14.12: the operator's plan parts, "Tarif" as
@@ -1957,7 +1945,8 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1957
1945
  // Administratoren", which would give the reader a gender (as `transferOwnership`).
1958
1946
  mailTestCard: {
1959
1947
  title: "Testmail",
1960
- description: "Sendet eine Mail an Ihre eigene Adresse, über den Versand, mit dem diese Installation alle Mails verschickt.",
1948
+ description:
1949
+ "Sendet eine Mail an Ihre eigene Adresse, über den Versand, mit dem diese Installation alle Mails verschickt.",
1961
1950
  transport: (backend) => `Versand: ${backend}`,
1962
1951
  action: "Testmail an mich senden",
1963
1952
  sent: (address) => `An ${address} gesendet. Bitte prüfen Sie den Posteingang.`,
@@ -1977,7 +1966,10 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1977
1966
  sections: {
1978
1967
  overview: { title: "Übersicht", help: "Was gerade wartet, auf einen Blick." },
1979
1968
  users: { title: "Benutzer", help: "Wer ein Konto hat und was jede Person darf." },
1980
- invitations: { title: "Einladungen", help: "Laden Sie Personen per E-Mail in ihrer Sprache ein; senden Sie offene Einladungen erneut oder widerrufen Sie sie." },
1969
+ invitations: {
1970
+ title: "Einladungen",
1971
+ help: "Laden Sie Personen per E-Mail in ihrer Sprache ein; senden Sie offene Einladungen erneut oder widerrufen Sie sie.",
1972
+ },
1981
1973
  billing: { title: "Abrechnung", help: "Tarif, Zahlung und Rechnungen." },
1982
1974
  activity: { title: "Aktivität", help: "Was in der Verwaltung getan wurde, das Neueste zuerst." },
1983
1975
  },
@@ -46,11 +46,7 @@ import type { MeasuredGridLabels } from "../components/measured-grid";
46
46
  import type { FeedbackAttachmentFieldLabels } from "../feedback/feedback-attachment";
47
47
  import type { FeedbackDialogTextLabels } from "../feedback/feedback-dialog";
48
48
  import type { FeedbackComposerLabels, FeedbackThreadLabels } from "../feedback/feedback-thread";
49
- import type {
50
- FeedbackCategoryLabels,
51
- FeedbackStatusLabels,
52
- FeedbackToastLabels,
53
- } from "../feedback/feedback-labels";
49
+ import type { FeedbackCategoryLabels, FeedbackStatusLabels, FeedbackToastLabels } from "../feedback/feedback-labels";
54
50
  import type { FeedbackMenuLabels } from "../feedback/feedback-menu";
55
51
  import type { FeedbackPublicLabels } from "../feedback/feedback-public-labels";
56
52
  import type { FeedbackNotificationTypesLabels } from "../notifications/feedback-notification-types-labels";
@@ -893,9 +889,7 @@ function mergeOverrides(
893
889
  * `columnsCount` from `columns`): merge the component's prop over it — a record key by
894
890
  * key — and feed the result to that resolver.
895
891
  */
896
- export function useKitLabelOverrides<K extends keyof UiKitLabels>(
897
- ns: K,
898
- ): LabelOverride<UiKitLabels[K]> | undefined {
892
+ export function useKitLabelOverrides<K extends keyof UiKitLabels>(ns: K): LabelOverride<UiKitLabels[K]> | undefined {
899
893
  return useContext(KitI18nContext).labels?.[ns];
900
894
  }
901
895
 
@@ -912,10 +906,7 @@ export function useKitLabels<K extends keyof UiKitLabels>(
912
906
  prop?: LabelOverride<UiKitLabels[K]>,
913
907
  ): UiKitLabels[K] {
914
908
  const fromProvider = useKitLabelOverrides(ns);
915
- return useMemo(
916
- () => mergeNamespace(mergeNamespace(defaults, fromProvider), prop),
917
- [defaults, fromProvider, prop],
918
- );
909
+ return useMemo(() => mergeNamespace(mergeNamespace(defaults, fromProvider), prop), [defaults, fromProvider, prop]);
919
910
  }
920
911
 
921
912
  /** The component's own `locale` prop, else the provider's, else `undefined` (which
@@ -973,10 +964,7 @@ export function useKitDocumentTitle(): { format: string | undefined; appName: st
973
964
  /** {@link DEFAULT_FILE_LABELS}, but formatting in the provider's locale. */
974
965
  export function useKitFileLabels(prop?: Partial<FileLabels>): FileLabels {
975
966
  const locale = useKitLocale();
976
- const defaults = useMemo<FileLabels>(
977
- () => ({ size: (bytes) => formatFileSize(bytes, locale) }),
978
- [locale],
979
- );
967
+ const defaults = useMemo<FileLabels>(() => ({ size: (bytes) => formatFileSize(bytes, locale) }), [locale]);
980
968
  return useKitLabels("file", defaults, prop);
981
969
  }
982
970
 
@@ -992,10 +980,7 @@ export function useKitFileLabels(prop?: Partial<FileLabels>): FileLabels {
992
980
  * those components. Left out (a test file is not type-checked), it throws saying so
993
981
  * rather than "Cannot convert undefined or null to object" (keksdose, 0.18).
994
982
  */
995
- export function missingKitLabels(
996
- labels: UiKitLabelOverrides | undefined,
997
- reference: UiKitLabels,
998
- ): string[] {
983
+ export function missingKitLabels(labels: UiKitLabelOverrides | undefined, reference: UiKitLabels): string[] {
999
984
  if (!isRecord(reference)) {
1000
985
  throw new TypeError(
1001
986
  "missingKitLabels(labels, reference): pass DEFAULT_UI_KIT_LABELS as the reference — " +
@@ -112,10 +112,7 @@ const languagePart = (tag: string) => tag.split("-")[0].toLowerCase();
112
112
  * rather than landing on a guess. Underscores are read as hyphens (`de_CH`), the way a
113
113
  * Java or Python backend may have stored the account's locale.
114
114
  */
115
- function answer(
116
- candidate: unknown,
117
- offered: readonly KitLanguageCode[],
118
- ): KitLanguageCode | undefined {
115
+ function answer(candidate: unknown, offered: readonly KitLanguageCode[]): KitLanguageCode | undefined {
119
116
  if (typeof candidate !== "string") return undefined;
120
117
  const tag = candidate.trim().replace(/_/g, "-");
121
118
  if (!tag) return undefined;
@@ -275,10 +272,7 @@ function cacheKey(code: string, formatLocale: string): [KitLanguageCode, string]
275
272
  * A rejected fetch (a deploy replaced the chunk, the device went offline) is not
276
273
  * remembered, so the next call tries again.
277
274
  */
278
- export function loadUiKitLabels(
279
- code: string,
280
- formatLocale: string = catalogueFormat(code),
281
- ): Promise<UiKitLabels> {
275
+ export function loadUiKitLabels(code: string, formatLocale: string = catalogueFormat(code)): Promise<UiKitLabels> {
282
276
  const [language, key] = cacheKey(code, formatLocale);
283
277
  let labels = loaded.get(key);
284
278
  if (!labels) {
@@ -24,8 +24,7 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
24
24
  const n = (value: number) => num.format(value);
25
25
  const d = DEFAULT_UI_KIT_LABELS;
26
26
  // As `inDays` in src/billing/billing-labels.ts: 0 (or less) is today, 1 tomorrow.
27
- const inDays = (days: number) =>
28
- days <= 0 ? "today" : days === 1 ? "tomorrow" : `in ${n(days)} days`;
27
+ const inDays = (days: number) => (days <= 0 ? "today" : days === 1 ? "tomorrow" : `in ${n(days)} days`);
29
28
 
30
29
  return {
31
30
  ...d,
@@ -59,10 +58,7 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
59
58
  measuredGrid: {
60
59
  ...d.measuredGrid,
61
60
  points: (count) => (count === 1 ? "1 point" : `${n(count)} points`),
62
- problems: (count) =>
63
- count === 1
64
- ? "1 cell is not a number"
65
- : `${n(count)} cells are not numbers`,
61
+ problems: (count) => (count === 1 ? "1 cell is not a number" : `${n(count)} cells are not numbers`),
66
62
  },
67
63
  dataTable: {
68
64
  ...d.dataTable,
@@ -80,12 +76,8 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
80
76
  combobox: {
81
77
  ...d.combobox,
82
78
  selectedCount: (count) => `${n(count)} selected`,
83
- resultCount: (count) =>
84
- count === 1 ? "1 result" : `${n(count)} results`,
85
- minChars: (count) =>
86
- count === 1
87
- ? "Type at least 1 character"
88
- : `Type at least ${n(count)} characters`,
79
+ resultCount: (count) => (count === 1 ? "1 result" : `${n(count)} results`),
80
+ minChars: (count) => (count === 1 ? "Type at least 1 character" : `Type at least ${n(count)} characters`),
89
81
  },
90
82
  multiSelect: {
91
83
  ...d.multiSelect,
@@ -95,6 +87,10 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
95
87
  ...d.chipInput,
96
88
  atLimit: (max) => `Limit of ${n(max)} reached`,
97
89
  },
90
+ list: {
91
+ ...d.list,
92
+ showAll: (count) => `Show all (${n(count)})`,
93
+ },
98
94
  iconPicker: {
99
95
  ...d.iconPicker,
100
96
  resultCount: (count) => (count === 1 ? "1 icon" : `${n(count)} icons`),
@@ -112,12 +108,8 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
112
108
  rejectedCount: (name, maxFiles) =>
113
109
  `“${name}” was not added: at most ${n(maxFiles)} ${maxFiles === 1 ? "file" : "files"}`,
114
110
  rejectedMany: (count) => `${n(count)} files were not added`,
115
- rejectedPick: (count) =>
116
- count === 1
117
- ? "The file was not added"
118
- : `None of the ${n(count)} files were added`,
119
- selected: (count, firstName) =>
120
- count === 1 ? `“${firstName}” selected` : `${n(count)} files selected`,
111
+ rejectedPick: (count) => (count === 1 ? "The file was not added" : `None of the ${n(count)} files were added`),
112
+ selected: (count, firstName) => (count === 1 ? `“${firstName}” selected` : `${n(count)} files selected`),
121
113
  },
122
114
  wizard: {
123
115
  ...d.wizard,
@@ -130,8 +122,7 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
130
122
  passwordStrength: {
131
123
  ...d.passwordStrength,
132
124
  ruleLength: (minLength) => `At least ${n(minLength)} characters`,
133
- tooLong: (maxBytes) =>
134
- `At most ${n(maxBytes)} characters (accents and emoji count for more than one).`,
125
+ tooLong: (maxBytes) => `At most ${n(maxBytes)} characters (accents and emoji count for more than one).`,
135
126
  },
136
127
  floatingPanel: {
137
128
  ...d.floatingPanel,
@@ -165,8 +156,7 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
165
156
  characterCount: {
166
157
  ...d.characterCount,
167
158
  count: (used, max) => `${n(used)} of ${n(max)} characters`,
168
- remaining: (left) =>
169
- left === 1 ? "1 character left" : `${n(left)} characters left`,
159
+ remaining: (left) => (left === 1 ? "1 character left" : `${n(left)} characters left`),
170
160
  },
171
161
  ibanInput: {
172
162
  ...d.ibanInput,
@@ -177,15 +167,10 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
177
167
  ...d.columnMapper,
178
168
  summary: (columns, rows) =>
179
169
  `${n(columns)} ${columns === 1 ? "column" : "columns"}, ${n(rows)} ${rows === 1 ? "row" : "rows"}`,
180
- unreadCount: (count) =>
181
- count === 1
182
- ? "1 line could not be read"
183
- : `${n(count)} lines could not be read`,
170
+ unreadCount: (count) => (count === 1 ? "1 line could not be read" : `${n(count)} lines could not be read`),
184
171
  unreadMore: (count) => `…and ${n(count)} more`,
185
172
  previewOf: (shown, total) =>
186
- shown === 1
187
- ? `The first of ${n(total)} rows`
188
- : `The first ${n(shown)} of ${n(total)} rows`,
173
+ shown === 1 ? `The first of ${n(total)} rows` : `The first ${n(shown)} of ${n(total)} rows`,
189
174
  },
190
175
  signIn: {
191
176
  ...d.signIn,
@@ -209,8 +194,7 @@ export function uiKitLabelsEn(numberLocale = "en-US"): UiKitLabels {
209
194
  notifications: {
210
195
  ...d.notifications,
211
196
  testSent: (count) => (count === 1 ? "Test sent to 1 device" : `Test sent to ${n(count)} devices`),
212
- failures: (count) =>
213
- count === 1 ? "1 failed delivery in a row" : `${n(count)} failed deliveries in a row`,
197
+ failures: (count) => (count === 1 ? "1 failed delivery in a row" : `${n(count)} failed deliveries in a row`),
214
198
  bellUnread: (count) => `${n(count)} unread`,
215
199
  },
216
200
  settings: {