@eifi1/ui-kit 0.51.7 → 0.53.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 (775) hide show
  1. package/README.md +178 -67
  2. package/dist/account/account-parts.d.ts +10 -8
  3. package/dist/account/account-parts.js +1 -18
  4. package/dist/account/account-parts.js.map +1 -1
  5. package/dist/account/data-export-setting-labels.js +1 -1
  6. package/dist/account/data-export-setting-labels.js.map +1 -1
  7. package/dist/account/delete-account-setting-labels.js +1 -1
  8. package/dist/account/delete-account-setting-labels.js.map +1 -1
  9. package/dist/account/email-change-setting-labels.js +1 -1
  10. package/dist/account/email-change-setting-labels.js.map +1 -1
  11. package/dist/account/passkeys-setting.d.ts +9 -2
  12. package/dist/account/passkeys-setting.js +41 -29
  13. package/dist/account/passkeys-setting.js.map +1 -1
  14. package/dist/account/sessions-setting.d.ts +3 -2
  15. package/dist/account/sessions-setting.js +10 -8
  16. package/dist/account/sessions-setting.js.map +1 -1
  17. package/dist/admin/admin-action-confirm.js +1 -3
  18. package/dist/admin/admin-action-confirm.js.map +1 -1
  19. package/dist/admin/admin-parts.d.ts +6 -3
  20. package/dist/admin/admin-parts.js +6 -21
  21. package/dist/admin/admin-parts.js.map +1 -1
  22. package/dist/admin/mail-test-card-labels.js +1 -1
  23. package/dist/admin/mail-test-card-labels.js.map +1 -1
  24. package/dist/admin/plan-change-labels.d.ts +2 -2
  25. package/dist/admin/plan-change-labels.js +1 -17
  26. package/dist/admin/plan-change-labels.js.map +1 -1
  27. package/dist/admin/plan-change.d.ts +3 -42
  28. package/dist/admin/plan-change.js +1 -1
  29. package/dist/admin/plan-change.js.map +1 -1
  30. package/dist/admin/reviewer-scope-editor.js +3 -3
  31. package/dist/admin/reviewer-scope-editor.js.map +1 -1
  32. package/dist/auth/auth-errors-labels.d.ts +11 -0
  33. package/dist/auth/auth-errors-labels.js +13 -0
  34. package/dist/auth/auth-errors-labels.js.map +1 -0
  35. package/dist/auth/auth-errors.d.ts +7 -23
  36. package/dist/auth/auth-errors.js +2 -15
  37. package/dist/auth/auth-errors.js.map +1 -1
  38. package/dist/auth/complete-name-dialog.js +2 -1
  39. package/dist/auth/complete-name-dialog.js.map +1 -1
  40. package/dist/auth/forgot-password-form-labels.js +1 -1
  41. package/dist/auth/forgot-password-form-labels.js.map +1 -1
  42. package/dist/auth/forgot-password-form.js +7 -2
  43. package/dist/auth/forgot-password-form.js.map +1 -1
  44. package/dist/auth/register-form-labels.js +1 -1
  45. package/dist/auth/register-form-labels.js.map +1 -1
  46. package/dist/auth/reset-password-form-labels.js +1 -1
  47. package/dist/auth/reset-password-form-labels.js.map +1 -1
  48. package/dist/auth/reset-password-form.js +5 -1
  49. package/dist/auth/reset-password-form.js.map +1 -1
  50. package/dist/auth/sign-in-form-labels.js +1 -1
  51. package/dist/auth/sign-in-form-labels.js.map +1 -1
  52. package/dist/auth/status-parts.d.ts +0 -3
  53. package/dist/auth/status-parts.js +0 -4
  54. package/dist/auth/status-parts.js.map +1 -1
  55. package/dist/auth/verify-email-labels.js +1 -1
  56. package/dist/auth/verify-email-labels.js.map +1 -1
  57. package/dist/auth/verify-email.js +7 -2
  58. package/dist/auth/verify-email.js.map +1 -1
  59. package/dist/billing/cancel-subscription.d.ts +10 -7
  60. package/dist/billing/cancel-subscription.js +6 -6
  61. package/dist/billing/cancel-subscription.js.map +1 -1
  62. package/dist/billing/plan-card.d.ts +5 -3
  63. package/dist/billing/plan-card.js +7 -8
  64. package/dist/billing/plan-card.js.map +1 -1
  65. package/dist/billing/plan-change-labels.d.ts +42 -0
  66. package/dist/billing/plan-change-labels.js +22 -0
  67. package/dist/billing/plan-change-labels.js.map +1 -0
  68. package/dist/billing/plan-switch.d.ts +9 -6
  69. package/dist/billing/plan-switch.js +7 -5
  70. package/dist/billing/plan-switch.js.map +1 -1
  71. package/dist/chart.d.ts +4 -3
  72. package/dist/chart.js +72 -4
  73. package/dist/chart.js.map +1 -1
  74. package/dist/components/account-chips.d.ts +5 -5
  75. package/dist/components/account-chips.js +11 -13
  76. package/dist/components/account-chips.js.map +1 -1
  77. package/dist/components/alert-banner.d.ts +16 -5
  78. package/dist/components/alert-banner.js +46 -1
  79. package/dist/components/alert-banner.js.map +1 -1
  80. package/dist/components/amount-input.d.ts +13 -0
  81. package/dist/components/amount-input.js +1 -0
  82. package/dist/components/amount-input.js.map +1 -1
  83. package/dist/components/autocomplete.js +57 -65
  84. package/dist/components/autocomplete.js.map +1 -1
  85. package/dist/components/bulk-action-bar.d.ts +12 -2
  86. package/dist/components/bulk-action-bar.js +65 -21
  87. package/dist/components/bulk-action-bar.js.map +1 -1
  88. package/dist/components/button-look.d.ts +5 -5
  89. package/dist/components/button-look.js.map +1 -1
  90. package/dist/components/button.d.ts +2 -2
  91. package/dist/components/button.js.map +1 -1
  92. package/dist/components/chart-edge.d.ts +16 -0
  93. package/dist/components/chart-edge.js +14 -1
  94. package/dist/components/chart-edge.js.map +1 -1
  95. package/dist/components/chart-figure.d.ts +13 -0
  96. package/dist/components/chart-figure.js +15 -0
  97. package/dist/components/chart-figure.js.map +1 -0
  98. package/dist/components/chart-zoom-core.js +1 -4
  99. package/dist/components/chart-zoom-core.js.map +1 -1
  100. package/dist/components/chart.d.ts +8 -1
  101. package/dist/components/chart.js +19 -10
  102. package/dist/components/chart.js.map +1 -1
  103. package/dist/components/combobox-core.d.ts +111 -2
  104. package/dist/components/combobox-core.js +148 -42
  105. package/dist/components/combobox-core.js.map +1 -1
  106. package/dist/components/combobox.d.ts +1 -1
  107. package/dist/components/combobox.js +141 -130
  108. package/dist/components/combobox.js.map +1 -1
  109. package/dist/components/copy-button.d.ts +6 -5
  110. package/dist/components/copy-button.js +5 -3
  111. package/dist/components/copy-button.js.map +1 -1
  112. package/dist/components/country-select.js +2 -2
  113. package/dist/components/country-select.js.map +1 -1
  114. package/dist/components/data-table-column-settings.d.ts +1 -1
  115. package/dist/components/data-table-column-settings.js +33 -7
  116. package/dist/components/data-table-column-settings.js.map +1 -1
  117. package/dist/components/data-table-filters.d.ts +4 -2
  118. package/dist/components/data-table-filters.js +2 -2
  119. package/dist/components/data-table-filters.js.map +1 -1
  120. package/dist/components/data-table-fit.d.ts +6 -4
  121. package/dist/components/data-table-fit.js +4 -1
  122. package/dist/components/data-table-fit.js.map +1 -1
  123. package/dist/components/data-table-groups.d.ts +1 -1
  124. package/dist/components/data-table-groups.js.map +1 -1
  125. package/dist/components/data-table-head.d.ts +1 -1
  126. package/dist/components/data-table-head.js +15 -12
  127. package/dist/components/data-table-head.js.map +1 -1
  128. package/dist/components/data-table-mobile.d.ts +12 -7
  129. package/dist/components/data-table-mobile.js +43 -30
  130. package/dist/components/data-table-mobile.js.map +1 -1
  131. package/dist/components/data-table-pagination.js +11 -6
  132. package/dist/components/data-table-pagination.js.map +1 -1
  133. package/dist/components/data-table-resize.d.ts +1 -1
  134. package/dist/components/data-table-resize.js.map +1 -1
  135. package/dist/components/data-table-row-actions.d.ts +2 -2
  136. package/dist/components/data-table-row-actions.js.map +1 -1
  137. package/dist/components/data-table-row.d.ts +6 -2
  138. package/dist/components/data-table-row.js +17 -10
  139. package/dist/components/data-table-row.js.map +1 -1
  140. package/dist/components/data-table-selection.d.ts +1 -1
  141. package/dist/components/data-table-selection.js.map +1 -1
  142. package/dist/components/data-table-shared.d.ts +10 -2
  143. package/dist/components/data-table-shared.js +18 -0
  144. package/dist/components/data-table-shared.js.map +1 -1
  145. package/dist/components/data-table-sort.d.ts +21 -2
  146. package/dist/components/data-table-sort.js +24 -0
  147. package/dist/components/data-table-sort.js.map +1 -1
  148. package/dist/components/data-table-virtual.d.ts +1 -1
  149. package/dist/components/data-table-virtual.js +18 -6
  150. package/dist/components/data-table-virtual.js.map +1 -1
  151. package/dist/components/data-table.d.ts +13 -4
  152. package/dist/components/data-table.js +139 -36
  153. package/dist/components/data-table.js.map +1 -1
  154. package/dist/components/date-field.d.ts +25 -3
  155. package/dist/components/date-field.js +33 -8
  156. package/dist/components/date-field.js.map +1 -1
  157. package/dist/components/date-picker.d.ts +16 -3
  158. package/dist/components/date-picker.js +55 -26
  159. package/dist/components/date-picker.js.map +1 -1
  160. package/dist/components/date-range-picker.d.ts +38 -24
  161. package/dist/components/date-range-picker.js +23 -7
  162. package/dist/components/date-range-picker.js.map +1 -1
  163. package/dist/components/error-boundary.js +37 -30
  164. package/dist/components/error-boundary.js.map +1 -1
  165. package/dist/components/{ui-labels.d.ts → field-base-labels.d.ts} +0 -2
  166. package/dist/components/{ui-labels.js → field-base-labels.js} +2 -9
  167. package/dist/components/field-base-labels.js.map +1 -0
  168. package/dist/components/field-base.d.ts +4 -3
  169. package/dist/components/field-base.js +3 -3
  170. package/dist/components/field-base.js.map +1 -1
  171. package/dist/components/form-actions.js +11 -5
  172. package/dist/components/form-actions.js.map +1 -1
  173. package/dist/components/hover-menu.d.ts +3 -0
  174. package/dist/components/hover-menu.js +5 -3
  175. package/dist/components/hover-menu.js.map +1 -1
  176. package/dist/components/icon-button.js +14 -9
  177. package/dist/components/icon-button.js.map +1 -1
  178. package/dist/components/inline-confirm.d.ts +43 -0
  179. package/dist/components/inline-confirm.js +67 -0
  180. package/dist/components/inline-confirm.js.map +1 -0
  181. package/dist/components/inline-entity-combobox.d.ts +4 -3
  182. package/dist/components/inline-entity-combobox.js +148 -140
  183. package/dist/components/inline-entity-combobox.js.map +1 -1
  184. package/dist/components/input.js +1 -1
  185. package/dist/components/input.js.map +1 -1
  186. package/dist/components/jump-calendar.js +28 -112
  187. package/dist/components/jump-calendar.js.map +1 -1
  188. package/dist/components/legal-page.d.ts +3 -1
  189. package/dist/components/legal-page.js +3 -2
  190. package/dist/components/legal-page.js.map +1 -1
  191. package/dist/components/legal.d.ts +4 -2
  192. package/dist/components/legal.js.map +1 -1
  193. package/dist/components/lightbox.d.ts +2 -2
  194. package/dist/components/lightbox.js +17 -6
  195. package/dist/components/lightbox.js.map +1 -1
  196. package/dist/components/list.d.ts +6 -2
  197. package/dist/components/list.js +3 -2
  198. package/dist/components/list.js.map +1 -1
  199. package/dist/components/measured-grid.d.ts +1 -1
  200. package/dist/components/measured-grid.js +2 -1
  201. package/dist/components/measured-grid.js.map +1 -1
  202. package/dist/components/mini-calendar.js +3 -5
  203. package/dist/components/mini-calendar.js.map +1 -1
  204. package/dist/components/modal.js +3 -1
  205. package/dist/components/modal.js.map +1 -1
  206. package/dist/components/month-grid.d.ts +55 -0
  207. package/dist/components/month-grid.js +148 -0
  208. package/dist/components/month-grid.js.map +1 -0
  209. package/dist/components/month-picker.d.ts +36 -4
  210. package/dist/components/month-picker.js +123 -146
  211. package/dist/components/month-picker.js.map +1 -1
  212. package/dist/components/multi-select.d.ts +2 -2
  213. package/dist/components/multi-select.js +11 -6
  214. package/dist/components/multi-select.js.map +1 -1
  215. package/dist/components/nav-pills.d.ts +1 -1
  216. package/dist/components/nav-pills.js.map +1 -1
  217. package/dist/components/picker-sheet.js +2 -1
  218. package/dist/components/picker-sheet.js.map +1 -1
  219. package/dist/components/pie-chart-labels.d.ts +7 -0
  220. package/dist/components/pie-chart-labels.js +1 -0
  221. package/dist/components/pie-chart-labels.js.map +1 -1
  222. package/dist/components/pie-chart.d.ts +5 -3
  223. package/dist/components/pie-chart.js +7 -22
  224. package/dist/components/pie-chart.js.map +1 -1
  225. package/dist/components/popover.d.ts +3 -0
  226. package/dist/components/popover.js +7 -1
  227. package/dist/components/popover.js.map +1 -1
  228. package/dist/components/row-actions.js +2 -1
  229. package/dist/components/row-actions.js.map +1 -1
  230. package/dist/components/series-chart-axes.d.ts +4 -4
  231. package/dist/components/series-chart-axes.js.map +1 -1
  232. package/dist/components/series-chart-labels.d.ts +7 -4
  233. package/dist/components/series-chart-labels.js.map +1 -1
  234. package/dist/components/series-chart.d.ts +92 -23
  235. package/dist/components/series-chart.js +74 -30
  236. package/dist/components/series-chart.js.map +1 -1
  237. package/dist/components/share-card.js +3 -3
  238. package/dist/components/share-card.js.map +1 -1
  239. package/dist/components/tabs-labels.d.ts +2 -0
  240. package/dist/components/tabs-labels.js +11 -0
  241. package/dist/components/tabs-labels.js.map +1 -0
  242. package/dist/components/tabs.d.ts +1 -1
  243. package/dist/components/tabs.js +1 -1
  244. package/dist/components/tabs.js.map +1 -1
  245. package/dist/components/toggle-legend.d.ts +2 -2
  246. package/dist/components/toggle-legend.js +6 -6
  247. package/dist/components/toggle-legend.js.map +1 -1
  248. package/dist/components/translation-review-editor.d.ts +4 -2
  249. package/dist/components/translation-review-editor.js +2 -3
  250. package/dist/components/translation-review-editor.js.map +1 -1
  251. package/dist/components/translation-review.d.ts +2 -1
  252. package/dist/components/translation-review.js +2 -2
  253. package/dist/components/translation-review.js.map +1 -1
  254. package/dist/components/treemap-labels.d.ts +31 -0
  255. package/dist/components/treemap-labels.js +10 -0
  256. package/dist/components/treemap-labels.js.map +1 -0
  257. package/dist/components/treemap-layout.d.ts +62 -0
  258. package/dist/components/treemap-layout.js +126 -0
  259. package/dist/components/treemap-layout.js.map +1 -0
  260. package/dist/components/treemap.d.ts +167 -19
  261. package/dist/components/treemap.js +340 -100
  262. package/dist/components/treemap.js.map +1 -1
  263. package/dist/components/use-table-state.d.ts +5 -5
  264. package/dist/components/use-table-state.js +4 -1
  265. package/dist/components/use-table-state.js.map +1 -1
  266. package/dist/data-table.d.ts +1 -2
  267. package/dist/data-table.js +1 -4
  268. package/dist/data-table.js.map +1 -1
  269. package/dist/demo/demo-countdown.d.ts +0 -5
  270. package/dist/demo/demo-countdown.js +0 -4
  271. package/dist/demo/demo-countdown.js.map +1 -1
  272. package/dist/eslint/index.js +1 -1
  273. package/dist/eslint/role-utilities.d.ts +36 -7
  274. package/dist/eslint/role-utilities.js +42 -9
  275. package/dist/eslint/role-utilities.js.map +1 -1
  276. package/dist/feedback/feedback-dialog.d.ts +25 -16
  277. package/dist/feedback/feedback-dialog.js +6 -2
  278. package/dist/feedback/feedback-dialog.js.map +1 -1
  279. package/dist/feedback/feedback-mutation.d.ts +18 -0
  280. package/dist/feedback/feedback-mutation.js +8 -0
  281. package/dist/feedback/feedback-mutation.js.map +1 -0
  282. package/dist/feedback/feedback-page-link.d.ts +53 -0
  283. package/dist/feedback/feedback-page-link.js +37 -0
  284. package/dist/feedback/feedback-page-link.js.map +1 -0
  285. package/dist/feedback/feedback-public-list.d.ts +8 -4
  286. package/dist/feedback/feedback-public-list.js +2 -2
  287. package/dist/feedback/feedback-public-list.js.map +1 -1
  288. package/dist/feedback/feedback-replies.d.ts +3 -1
  289. package/dist/feedback/feedback-replies.js +5 -4
  290. package/dist/feedback/feedback-replies.js.map +1 -1
  291. package/dist/feedback/feedback-row-detail-labels.js +0 -3
  292. package/dist/feedback/feedback-row-detail-labels.js.map +1 -1
  293. package/dist/feedback/feedback-row-detail.d.ts +33 -44
  294. package/dist/feedback/feedback-row-detail.js +28 -34
  295. package/dist/feedback/feedback-row-detail.js.map +1 -1
  296. package/dist/feedback/feedback-status-undo.d.ts +17 -14
  297. package/dist/feedback/feedback-status-undo.js +10 -15
  298. package/dist/feedback/feedback-status-undo.js.map +1 -1
  299. package/dist/feedback/feedback-submit-dialog.d.ts +1 -1
  300. package/dist/feedback/feedback-submit-dialog.js +1 -1
  301. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  302. package/dist/feedback/feedback-submit.js +9 -3
  303. package/dist/feedback/feedback-submit.js.map +1 -1
  304. package/dist/feedback/feedback-swipe.d.ts +1 -1
  305. package/dist/feedback/feedback-swipe.js.map +1 -1
  306. package/dist/feedback/feedback-table.d.ts +21 -9
  307. package/dist/feedback/feedback-table.js +45 -25
  308. package/dist/feedback/feedback-table.js.map +1 -1
  309. package/dist/feedback/feedback-thread-labels.d.ts +2 -2
  310. package/dist/feedback/feedback-thread-labels.js.map +1 -1
  311. package/dist/feedback/feedback-thread.d.ts +15 -23
  312. package/dist/feedback/feedback-thread.js +2 -1
  313. package/dist/feedback/feedback-thread.js.map +1 -1
  314. package/dist/feedback.d.ts +6 -6
  315. package/dist/feedback.js +90 -6
  316. package/dist/feedback.js.map +1 -1
  317. package/dist/hooks/use-focus-trap.d.ts +35 -0
  318. package/dist/hooks/use-focus-trap.js +6 -4
  319. package/dist/hooks/use-focus-trap.js.map +1 -1
  320. package/dist/hooks/use-hotkey.d.ts +5 -2
  321. package/dist/hooks/use-hotkey.js +5 -4
  322. package/dist/hooks/use-hotkey.js.map +1 -1
  323. package/dist/hooks/use-long-press.d.ts +7 -4
  324. package/dist/hooks/use-long-press.js +3 -0
  325. package/dist/hooks/use-long-press.js.map +1 -1
  326. package/dist/hooks/use-media-query.js +12 -4
  327. package/dist/hooks/use-media-query.js.map +1 -1
  328. package/dist/hooks/use-mounted.d.ts +22 -0
  329. package/dist/hooks/use-mounted.js +24 -0
  330. package/dist/hooks/use-mounted.js.map +1 -0
  331. package/dist/hooks/use-overlay-history.js +19 -3
  332. package/dist/hooks/use-overlay-history.js.map +1 -1
  333. package/dist/i18n/defaults.js +4 -9
  334. package/dist/i18n/defaults.js.map +1 -1
  335. package/dist/i18n/german.js +7 -18
  336. package/dist/i18n/german.js.map +1 -1
  337. package/dist/i18n/kit-labels.d.ts +9 -11
  338. package/dist/i18n/kit-labels.js.map +1 -1
  339. package/dist/i18n/locales/en.js +15 -64
  340. package/dist/i18n/locales/en.js.map +3 -3
  341. package/dist/i18n/locales/es.js +7 -18
  342. package/dist/i18n/locales/es.js.map +1 -1
  343. package/dist/i18n/locales/fr.js +20 -27
  344. package/dist/i18n/locales/fr.js.map +1 -1
  345. package/dist/i18n/locales/hu.js +9 -18
  346. package/dist/i18n/locales/hu.js.map +1 -1
  347. package/dist/i18n/locales/it.js +7 -19
  348. package/dist/i18n/locales/it.js.map +1 -1
  349. package/dist/i18n/locales/zh.js +8 -18
  350. package/dist/i18n/locales/zh.js.map +1 -1
  351. package/dist/i18n/review.js +12 -2
  352. package/dist/i18n/review.js.map +1 -1
  353. package/dist/i18n/shared-labels.js +0 -1
  354. package/dist/i18n/shared-labels.js.map +1 -1
  355. package/dist/index.d.ts +21 -23
  356. package/dist/index.js +50 -65
  357. package/dist/index.js.map +1 -1
  358. package/dist/landing/routing.d.ts +3 -1
  359. package/dist/landing/routing.js +4 -7
  360. package/dist/landing/routing.js.map +1 -1
  361. package/dist/lib/broadcast.d.ts +17 -0
  362. package/dist/lib/broadcast.js +30 -0
  363. package/dist/lib/broadcast.js.map +1 -0
  364. package/dist/lib/date-format.d.ts +37 -2
  365. package/dist/lib/date-format.js +34 -8
  366. package/dist/lib/date-format.js.map +1 -1
  367. package/dist/lib/day-format.d.ts +46 -0
  368. package/dist/lib/day-format.js +46 -0
  369. package/dist/lib/day-format.js.map +1 -0
  370. package/dist/lib/describe-failure.d.ts +14 -0
  371. package/dist/lib/describe-failure.js +9 -0
  372. package/dist/lib/describe-failure.js.map +1 -0
  373. package/dist/lib/direction.d.ts +16 -0
  374. package/dist/lib/direction.js +9 -1
  375. package/dist/lib/direction.js.map +1 -1
  376. package/dist/lib/focus-left.d.ts +63 -0
  377. package/dist/lib/focus-left.js +67 -0
  378. package/dist/lib/focus-left.js.map +1 -0
  379. package/dist/lib/format.js +5 -14
  380. package/dist/lib/format.js.map +1 -1
  381. package/dist/lib/http-status.d.ts +24 -0
  382. package/dist/lib/http-status.js +14 -0
  383. package/dist/lib/http-status.js.map +1 -0
  384. package/dist/lib/intl-cache.d.ts +14 -0
  385. package/dist/lib/intl-cache.js +15 -0
  386. package/dist/lib/intl-cache.js.map +1 -0
  387. package/dist/lib/iso-day.d.ts +11 -0
  388. package/dist/lib/iso-day.js +8 -0
  389. package/dist/lib/iso-day.js.map +1 -0
  390. package/dist/lib/lazy-with-fallback.d.ts +31 -0
  391. package/dist/lib/lazy-with-fallback.js +40 -0
  392. package/dist/lib/lazy-with-fallback.js.map +1 -0
  393. package/dist/lib/path-pattern.d.ts +34 -0
  394. package/dist/lib/path-pattern.js +24 -0
  395. package/dist/lib/path-pattern.js.map +1 -0
  396. package/dist/lib/reduced-motion.d.ts +2 -1
  397. package/dist/lib/reduced-motion.js.map +1 -1
  398. package/dist/lib/round.d.ts +2 -1
  399. package/dist/lib/round.js +2 -1
  400. package/dist/lib/round.js.map +1 -1
  401. package/dist/lib/safe-storage.d.ts +24 -5
  402. package/dist/lib/safe-storage.js +27 -2
  403. package/dist/lib/safe-storage.js.map +1 -1
  404. package/dist/lib/session-refresh.js +1 -1
  405. package/dist/lib/session-refresh.js.map +1 -1
  406. package/dist/lib/share-format.d.ts +13 -0
  407. package/dist/lib/share-format.js +10 -0
  408. package/dist/lib/share-format.js.map +1 -0
  409. package/dist/lib/text-case.d.ts +17 -0
  410. package/dist/lib/text-case.js +8 -0
  411. package/dist/lib/text-case.js.map +1 -0
  412. package/dist/lib/text-match.d.ts +29 -0
  413. package/dist/lib/text-match.js +20 -2
  414. package/dist/lib/text-match.js.map +1 -1
  415. package/dist/lib/thenable.d.ts +13 -0
  416. package/dist/lib/thenable.js +8 -0
  417. package/dist/lib/thenable.js.map +1 -0
  418. package/dist/lib/translation-review.d.ts +7 -2
  419. package/dist/lib/translation-review.js +4 -4
  420. package/dist/lib/translation-review.js.map +1 -1
  421. package/dist/notifications/device-zone-report.js +1 -1
  422. package/dist/notifications/device-zone-report.js.map +1 -1
  423. package/dist/notifications/notification-bell.d.ts +2 -1
  424. package/dist/notifications/notification-bell.js +3 -3
  425. package/dist/notifications/notification-bell.js.map +1 -1
  426. package/dist/notifications/notification-inbox.d.ts +10 -6
  427. package/dist/notifications/notification-inbox.js +26 -48
  428. package/dist/notifications/notification-inbox.js.map +1 -1
  429. package/dist/notifications/notification-parts.d.ts +3 -2
  430. package/dist/notifications/notification-parts.js +1 -3
  431. package/dist/notifications/notification-parts.js.map +1 -1
  432. package/dist/notifications/notification-types-setting.js +1 -1
  433. package/dist/notifications/notification-types-setting.js.map +1 -1
  434. package/dist/notifications/notifications-labels.d.ts +6 -0
  435. package/dist/notifications/notifications-labels.js +1 -0
  436. package/dist/notifications/notifications-labels.js.map +1 -1
  437. package/dist/notifications/push-device-setting.js +1 -1
  438. package/dist/notifications/push-device-setting.js.map +1 -1
  439. package/dist/notifications/push-devices-setting.d.ts +2 -1
  440. package/dist/notifications/push-devices-setting.js +27 -49
  441. package/dist/notifications/push-devices-setting.js.map +1 -1
  442. package/dist/notifications/quiet-hours-setting.d.ts +10 -3
  443. package/dist/notifications/quiet-hours-setting.js +65 -26
  444. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  445. package/dist/notifications/unsubscribe-panel.js +4 -7
  446. package/dist/notifications/unsubscribe-panel.js.map +1 -1
  447. package/dist/notifications/use-push-device.d.ts +39 -1
  448. package/dist/notifications/use-push-device.js +28 -7
  449. package/dist/notifications/use-push-device.js.map +1 -1
  450. package/dist/offline/query-persistence.d.ts +3 -1
  451. package/dist/offline/query-persistence.js +19 -2
  452. package/dist/offline/query-persistence.js.map +1 -1
  453. package/dist/rhf/fields.d.ts +11 -4
  454. package/dist/rhf/fields.js.map +1 -1
  455. package/dist/search/command-palette.js +1 -1
  456. package/dist/search/command-palette.js.map +1 -1
  457. package/dist/search/global-search.js +19 -9
  458. package/dist/search/global-search.js.map +1 -1
  459. package/dist/search/search-index.d.ts +0 -6
  460. package/dist/search/search-index.js +0 -4
  461. package/dist/search/search-index.js.map +1 -1
  462. package/dist/search/use-command-key.d.ts +12 -1
  463. package/dist/search/use-command-key.js +3 -12
  464. package/dist/search/use-command-key.js.map +1 -1
  465. package/dist/search.d.ts +1 -1
  466. package/dist/search.js +6 -1
  467. package/dist/search.js.map +1 -1
  468. package/dist/settings/use-settings-focus.js +1 -0
  469. package/dist/settings/use-settings-focus.js.map +1 -1
  470. package/dist/shell/account-menu-language.d.ts +5 -3
  471. package/dist/shell/account-menu-language.js +2 -2
  472. package/dist/shell/account-menu-language.js.map +1 -1
  473. package/dist/shell/account-menu-text-size.d.ts +9 -6
  474. package/dist/shell/account-menu-text-size.js +2 -2
  475. package/dist/shell/account-menu-text-size.js.map +1 -1
  476. package/dist/shell/app-shell.d.ts +0 -10
  477. package/dist/shell/app-shell.js +1 -7
  478. package/dist/shell/app-shell.js.map +1 -1
  479. package/dist/shell/company-switcher.d.ts +1 -1
  480. package/dist/shell/company-switcher.js.map +1 -1
  481. package/dist/shell/dev-menu.d.ts +1 -1
  482. package/dist/shell/dev-menu.js +5 -18
  483. package/dist/shell/dev-menu.js.map +1 -1
  484. package/dist/shell/top-bar-actions.d.ts +1 -1
  485. package/dist/shell/top-bar-actions.js.map +1 -1
  486. package/dist/shell/top-bar-parts-labels.d.ts +1 -3
  487. package/dist/shell/top-bar-parts-labels.js +0 -1
  488. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  489. package/dist/shell.d.ts +7 -10
  490. package/dist/shell.js +14 -23
  491. package/dist/shell.js.map +1 -1
  492. package/dist/sync/engine.d.ts +30 -4
  493. package/dist/sync/engine.js +172 -52
  494. package/dist/sync/engine.js.map +1 -1
  495. package/dist/sync.d.ts +2 -2
  496. package/dist/sync.js +2 -10
  497. package/dist/sync.js.map +1 -1
  498. package/dist/testing/css-variables.js +3 -8
  499. package/dist/testing/css-variables.js.map +1 -1
  500. package/dist/theme/chart-palette.d.ts +0 -5
  501. package/dist/theme/chart-palette.js +0 -2
  502. package/dist/theme/chart-palette.js.map +1 -1
  503. package/dist/theme/contrast.d.ts +2 -1
  504. package/dist/theme/contrast.js +3 -8
  505. package/dist/theme/contrast.js.map +1 -1
  506. package/dist/theme/palette-store.js +6 -6
  507. package/dist/theme/palette-store.js.map +1 -1
  508. package/dist/theme/text-size.js +3 -8
  509. package/dist/theme/text-size.js.map +1 -1
  510. package/dist/theme/theme-store.js +3 -6
  511. package/dist/theme/theme-store.js.map +1 -1
  512. package/dist/tour/tour-catalogue.d.ts +7 -4
  513. package/dist/tour/tour-catalogue.js +12 -10
  514. package/dist/tour/tour-catalogue.js.map +1 -1
  515. package/dist/tour/tour-dock.d.ts +0 -2
  516. package/dist/tour/tour-dock.js +0 -2
  517. package/dist/tour/tour-dock.js.map +1 -1
  518. package/dist/tour/tour-gates.d.ts +4 -0
  519. package/dist/tour/tour-gates.js +14 -0
  520. package/dist/tour/tour-gates.js.map +1 -1
  521. package/dist/tour/tour-overlay.d.ts +27 -0
  522. package/dist/tour/tour-overlay.js +741 -0
  523. package/dist/tour/tour-overlay.js.map +1 -0
  524. package/dist/tour/tour.d.ts +13 -3
  525. package/dist/tour/tour.js +59 -781
  526. package/dist/tour/tour.js.map +1 -1
  527. package/dist/tour/use-tour-progress.js +1 -1
  528. package/dist/tour/use-tour-progress.js.map +1 -1
  529. package/dist/wizard/stepper-nav.d.ts +5 -1
  530. package/dist/wizard/stepper-nav.js.map +1 -1
  531. package/dist/wizard/types.d.ts +6 -2
  532. package/dist/wizard/types.js.map +1 -1
  533. package/dist/wizard/use-wizard.d.ts +3 -1
  534. package/dist/wizard/use-wizard.js.map +1 -1
  535. package/dist/wizard/validation.d.ts +3 -1
  536. package/dist/wizard/validation.js.map +1 -1
  537. package/package.json +10 -6
  538. package/src/account/account-parts.ts +5 -25
  539. package/src/account/data-export-setting-labels.ts +1 -1
  540. package/src/account/delete-account-setting-labels.ts +1 -1
  541. package/src/account/email-change-setting-labels.ts +1 -1
  542. package/src/account/passkeys-setting.tsx +60 -38
  543. package/src/account/sessions-setting.tsx +18 -12
  544. package/src/admin/admin-action-confirm.tsx +1 -5
  545. package/src/admin/admin-parts.ts +11 -25
  546. package/src/admin/mail-test-card-labels.ts +1 -1
  547. package/src/admin/plan-change-labels.ts +5 -23
  548. package/src/admin/plan-change.tsx +7 -44
  549. package/src/admin/reviewer-scope-editor.tsx +3 -3
  550. package/src/auth/auth-errors-labels.ts +23 -0
  551. package/src/auth/auth-errors.ts +11 -38
  552. package/src/auth/complete-name-dialog.tsx +4 -1
  553. package/src/auth/forgot-password-form-labels.ts +1 -1
  554. package/src/auth/forgot-password-form.tsx +11 -6
  555. package/src/auth/register-form-labels.ts +1 -1
  556. package/src/auth/reset-password-form-labels.ts +1 -1
  557. package/src/auth/reset-password-form.tsx +8 -4
  558. package/src/auth/sign-in-form-labels.ts +1 -1
  559. package/src/auth/status-parts.tsx +0 -6
  560. package/src/auth/verify-email-labels.ts +1 -1
  561. package/src/auth/verify-email.tsx +11 -6
  562. package/src/billing/cancel-subscription.tsx +15 -12
  563. package/src/billing/plan-card.tsx +18 -10
  564. package/src/billing/plan-change-labels.ts +66 -0
  565. package/src/billing/plan-switch.tsx +15 -12
  566. package/src/chart.ts +73 -6
  567. package/src/components/account-chips.tsx +20 -23
  568. package/src/components/alert-banner.tsx +82 -5
  569. package/src/components/amount-input.tsx +18 -7
  570. package/src/components/autocomplete.tsx +64 -70
  571. package/src/components/bulk-action-bar.tsx +70 -2
  572. package/src/components/button-look.ts +5 -5
  573. package/src/components/button.tsx +2 -2
  574. package/src/components/chart-edge.ts +34 -1
  575. package/src/components/chart-figure.tsx +35 -0
  576. package/src/components/chart-zoom-core.tsx +6 -5
  577. package/src/components/chart.tsx +26 -5
  578. package/src/components/combobox-core.tsx +293 -62
  579. package/src/components/combobox.tsx +183 -153
  580. package/src/components/copy-button.tsx +34 -23
  581. package/src/components/country-select.tsx +16 -11
  582. package/src/components/data-table-column-settings.tsx +52 -10
  583. package/src/components/data-table-filters.ts +6 -4
  584. package/src/components/data-table-fit.ts +19 -5
  585. package/src/components/data-table-groups.tsx +1 -1
  586. package/src/components/data-table-head.tsx +32 -22
  587. package/src/components/data-table-mobile.tsx +61 -26
  588. package/src/components/data-table-pagination.tsx +21 -6
  589. package/src/components/data-table-resize.ts +1 -1
  590. package/src/components/data-table-row-actions.tsx +3 -3
  591. package/src/components/data-table-row.tsx +25 -14
  592. package/src/components/data-table-selection.ts +1 -1
  593. package/src/components/data-table-shared.tsx +33 -1
  594. package/src/components/data-table-sort.ts +57 -2
  595. package/src/components/data-table-virtual.ts +32 -8
  596. package/src/components/data-table.tsx +239 -68
  597. package/src/components/date-field.tsx +66 -9
  598. package/src/components/date-picker.tsx +125 -49
  599. package/src/components/date-range-picker.tsx +71 -36
  600. package/src/components/error-boundary.tsx +53 -39
  601. package/src/components/field-base-labels.ts +20 -0
  602. package/src/components/field-base.tsx +13 -7
  603. package/src/components/form-actions.tsx +20 -5
  604. package/src/components/hover-menu.tsx +18 -8
  605. package/src/components/icon-button.tsx +14 -9
  606. package/src/components/inline-confirm.tsx +116 -0
  607. package/src/components/inline-entity-combobox.tsx +197 -153
  608. package/src/components/input.tsx +1 -1
  609. package/src/components/jump-calendar.tsx +30 -146
  610. package/src/components/legal-page.tsx +10 -7
  611. package/src/components/legal.tsx +4 -2
  612. package/src/components/lightbox.tsx +21 -8
  613. package/src/components/list.tsx +10 -4
  614. package/src/components/measured-grid.tsx +8 -4
  615. package/src/components/mini-calendar.tsx +6 -5
  616. package/src/components/modal.tsx +6 -1
  617. package/src/components/month-grid.tsx +229 -0
  618. package/src/components/month-picker.tsx +192 -200
  619. package/src/components/multi-select.tsx +21 -9
  620. package/src/components/nav-pills.tsx +1 -1
  621. package/src/components/picker-sheet.tsx +12 -9
  622. package/src/components/pie-chart-labels.ts +8 -0
  623. package/src/components/pie-chart.tsx +22 -28
  624. package/src/components/popover.tsx +18 -1
  625. package/src/components/row-actions.tsx +2 -1
  626. package/src/components/series-chart-axes.ts +9 -4
  627. package/src/components/series-chart-labels.ts +7 -4
  628. package/src/components/series-chart.tsx +253 -87
  629. package/src/components/share-card.tsx +6 -6
  630. package/src/components/tabs-labels.ts +13 -0
  631. package/src/components/tabs.tsx +2 -2
  632. package/src/components/toggle-legend.tsx +16 -11
  633. package/src/components/translation-review-editor.tsx +6 -5
  634. package/src/components/translation-review.tsx +4 -3
  635. package/src/components/treemap-labels.ts +47 -0
  636. package/src/components/treemap-layout.ts +210 -0
  637. package/src/components/treemap.tsx +780 -138
  638. package/src/components/use-table-state.ts +12 -9
  639. package/src/data-table.ts +1 -4
  640. package/src/demo/demo-countdown.ts +3 -8
  641. package/src/eslint/role-utilities.ts +97 -19
  642. package/src/feedback/feedback-dialog.tsx +30 -19
  643. package/src/feedback/feedback-mutation.ts +20 -0
  644. package/src/feedback/feedback-page-link.ts +90 -0
  645. package/src/feedback/feedback-public-list.tsx +13 -7
  646. package/src/feedback/feedback-replies.tsx +13 -6
  647. package/src/feedback/feedback-row-detail-labels.ts +0 -3
  648. package/src/feedback/feedback-row-detail.tsx +70 -84
  649. package/src/feedback/feedback-status-undo.ts +28 -28
  650. package/src/feedback/feedback-submit-dialog.tsx +2 -2
  651. package/src/feedback/feedback-submit.tsx +21 -7
  652. package/src/feedback/feedback-swipe.tsx +1 -1
  653. package/src/feedback/feedback-table.tsx +86 -38
  654. package/src/feedback/feedback-thread-labels.ts +2 -2
  655. package/src/feedback/feedback-thread.tsx +18 -26
  656. package/src/feedback.ts +89 -6
  657. package/src/hooks/use-focus-trap.ts +8 -24
  658. package/src/hooks/use-hotkey.ts +24 -7
  659. package/src/hooks/use-long-press.ts +16 -2
  660. package/src/hooks/use-media-query.ts +20 -4
  661. package/src/hooks/use-mounted.ts +39 -0
  662. package/src/hooks/use-overlay-history.ts +32 -3
  663. package/src/i18n/defaults.ts +4 -9
  664. package/src/i18n/german.ts +8 -19
  665. package/src/i18n/kit-labels.tsx +9 -11
  666. package/src/i18n/locales/es.ts +8 -19
  667. package/src/i18n/locales/fr.ts +21 -30
  668. package/src/i18n/locales/hu.ts +10 -19
  669. package/src/i18n/locales/it.ts +8 -20
  670. package/src/i18n/locales/zh.ts +9 -19
  671. package/src/i18n/review.ts +12 -2
  672. package/src/i18n/shared-labels.ts +0 -1
  673. package/src/index.ts +57 -49
  674. package/src/landing/routing.tsx +14 -10
  675. package/src/lib/broadcast.ts +52 -0
  676. package/src/lib/date-format.ts +89 -13
  677. package/src/lib/day-format.ts +96 -0
  678. package/src/lib/describe-failure.ts +18 -0
  679. package/src/lib/direction.ts +39 -0
  680. package/src/lib/focus-left.ts +156 -0
  681. package/src/lib/format.ts +5 -17
  682. package/src/lib/http-status.ts +38 -0
  683. package/src/lib/intl-cache.ts +25 -0
  684. package/src/lib/iso-day.ts +13 -0
  685. package/src/lib/lazy-with-fallback.ts +82 -0
  686. package/src/lib/path-pattern.ts +55 -0
  687. package/src/lib/reduced-motion.ts +2 -1
  688. package/src/lib/round.ts +7 -2
  689. package/src/lib/safe-storage.ts +48 -6
  690. package/src/lib/session-refresh.ts +1 -1
  691. package/src/lib/share-format.ts +18 -0
  692. package/src/lib/text-case.ts +19 -0
  693. package/src/lib/text-match.ts +57 -2
  694. package/src/lib/thenable.ts +19 -0
  695. package/src/lib/translation-review.ts +13 -5
  696. package/src/notifications/device-zone-report.ts +1 -1
  697. package/src/notifications/notification-bell.tsx +7 -4
  698. package/src/notifications/notification-inbox.tsx +40 -58
  699. package/src/notifications/notification-parts.tsx +3 -4
  700. package/src/notifications/notification-types-setting.tsx +1 -1
  701. package/src/notifications/notifications-labels.ts +7 -0
  702. package/src/notifications/push-device-setting.tsx +1 -1
  703. package/src/notifications/push-devices-setting.tsx +30 -55
  704. package/src/notifications/quiet-hours-setting.tsx +93 -31
  705. package/src/notifications/unsubscribe-panel.tsx +4 -7
  706. package/src/notifications/use-push-device.ts +76 -10
  707. package/src/offline/query-persistence.ts +35 -3
  708. package/src/rhf/fields.tsx +11 -4
  709. package/src/search/command-palette.tsx +2 -4
  710. package/src/search/global-search.tsx +36 -15
  711. package/src/search/search-index.ts +0 -15
  712. package/src/search/use-command-key.ts +13 -12
  713. package/src/search.ts +10 -1
  714. package/src/settings/use-settings-focus.ts +3 -0
  715. package/src/shell/account-menu-language.tsx +6 -4
  716. package/src/shell/account-menu-text-size.tsx +10 -7
  717. package/src/shell/app-shell.tsx +0 -13
  718. package/src/shell/company-switcher.tsx +1 -1
  719. package/src/shell/dev-menu.tsx +8 -22
  720. package/src/shell/top-bar-actions.tsx +1 -1
  721. package/src/shell/top-bar-parts-labels.ts +1 -4
  722. package/src/shell.ts +21 -17
  723. package/src/sync/engine.ts +339 -61
  724. package/src/sync.ts +2 -8
  725. package/src/testing/css-variables.ts +8 -9
  726. package/src/theme/chart-palette.ts +0 -2
  727. package/src/theme/contrast.ts +8 -9
  728. package/src/theme/palette-store.ts +9 -9
  729. package/src/theme/text-size.ts +6 -8
  730. package/src/theme/theme-store.ts +7 -9
  731. package/src/tour/tour-catalogue.tsx +26 -15
  732. package/src/tour/tour-dock.ts +0 -2
  733. package/src/tour/tour-gates.ts +23 -0
  734. package/src/tour/tour-overlay.tsx +1170 -0
  735. package/src/tour/tour.tsx +108 -1202
  736. package/src/tour/use-tour-progress.ts +1 -1
  737. package/src/wizard/stepper-nav.tsx +3 -1
  738. package/src/wizard/types.ts +11 -2
  739. package/src/wizard/use-wizard.ts +2 -1
  740. package/src/wizard/validation.ts +8 -2
  741. package/tokens.css +6 -5
  742. package/dist/components/field-sync-labels.d.ts +0 -2
  743. package/dist/components/field-sync-labels.js +0 -12
  744. package/dist/components/field-sync-labels.js.map +0 -1
  745. package/dist/components/field-sync.d.ts +0 -164
  746. package/dist/components/field-sync.js +0 -269
  747. package/dist/components/field-sync.js.map +0 -1
  748. package/dist/components/section-nav.d.ts +0 -37
  749. package/dist/components/section-nav.js +0 -33
  750. package/dist/components/section-nav.js.map +0 -1
  751. package/dist/components/sign-chip-labels.d.ts +0 -2
  752. package/dist/components/sign-chip-labels.js +0 -11
  753. package/dist/components/sign-chip-labels.js.map +0 -1
  754. package/dist/components/sign-chip.d.ts +0 -68
  755. package/dist/components/sign-chip.js +0 -47
  756. package/dist/components/sign-chip.js.map +0 -1
  757. package/dist/components/ui-labels.js.map +0 -1
  758. package/dist/lib/isin.d.ts +0 -28
  759. package/dist/lib/isin.js +0 -36
  760. package/dist/lib/isin.js.map +0 -1
  761. package/dist/shell/dev-switchers.d.ts +0 -6
  762. package/dist/shell/dev-switchers.js +0 -12
  763. package/dist/shell/dev-switchers.js.map +0 -1
  764. package/dist/shell/role-switcher.d.ts +0 -21
  765. package/dist/shell/role-switcher.js +0 -31
  766. package/dist/shell/role-switcher.js.map +0 -1
  767. package/src/components/field-sync-labels.ts +0 -13
  768. package/src/components/field-sync.tsx +0 -482
  769. package/src/components/section-nav.tsx +0 -65
  770. package/src/components/sign-chip-labels.ts +0 -12
  771. package/src/components/sign-chip.tsx +0 -124
  772. package/src/components/ui-labels.ts +0 -24
  773. package/src/lib/isin.ts +0 -62
  774. package/src/shell/dev-switchers.tsx +0 -18
  775. package/src/shell/role-switcher.tsx +0 -46
@@ -4,7 +4,8 @@ import { useCallback, useEffect, useRef, type PointerEvent as ReactPointerEvent
4
4
  // keksdose live #421). Taken over from keksdose's register list
5
5
  // (frontend/src/shared/hooks/use-long-press.ts, its feedback #153) so the kit's cards
6
6
  // and kk's register answer the same gesture the same way: 500 ms, an 8 px dead zone,
7
- // cancelled by a scroll, the trailing click swallowed.
7
+ // cancelled by a scroll, the trailing click swallowed. Public since 0.52 (DUP-8, refactor
8
+ // audit 2026-10-30): private, it left keksdose keeping the original beside the copy.
8
9
 
9
10
  const LONG_PRESS_MS = 500;
10
11
  /** The same 8 px dead zone `useRowSwipe` locks its axis at: the press is dead by the
@@ -14,6 +15,13 @@ const SLOP_PX = 8;
14
15
  const movedBeyondSlop = (from: { x: number; y: number }, x: number, y: number) =>
15
16
  Math.hypot(x - from.x, y - from.y) > SLOP_PX;
16
17
 
18
+ export interface LongPressOptions {
19
+ /** Default `true`. Off, a press does nothing and the context menu is the browser's. */
20
+ enabled?: boolean;
21
+ /** How long a press is held, in ms. Default 500. */
22
+ delay?: number;
23
+ }
24
+
17
25
  export interface LongPressResult {
18
26
  handlers: {
19
27
  onPointerDown: (e: ReactPointerEvent) => void;
@@ -40,7 +48,7 @@ export interface LongPressResult {
40
48
  */
41
49
  export function useLongPress(
42
50
  onLongPress: () => void,
43
- { enabled = true, delay = LONG_PRESS_MS }: { enabled?: boolean; delay?: number } = {},
51
+ { enabled = true, delay = LONG_PRESS_MS }: LongPressOptions = {},
44
52
  ): LongPressResult {
45
53
  const timer = useRef<number | null>(null);
46
54
  const start = useRef({ x: 0, y: 0 });
@@ -120,6 +128,12 @@ export function useLongPress(
120
128
  return true;
121
129
  }, []);
122
130
 
131
+ // Turned off mid-press: the armed timer still fired, entering selection mode against the
132
+ // caller's wish and arming `consumeClick` for the next click (0.52 code review).
133
+ useEffect(() => {
134
+ if (!enabled) cancel();
135
+ }, [enabled, cancel]);
136
+
123
137
  useEffect(() => cancel, [cancel]);
124
138
 
125
139
  return { handlers: { onPointerDown, onPointerMove, onContextMenu }, consumeClick };
@@ -1,4 +1,4 @@
1
- import { useEffect, useState } from "react";
1
+ import { useEffect, useEffectEvent, useState } from "react";
2
2
 
3
3
  /**
4
4
  * Subscribe to a CSS media query, returning whether it currently matches and
@@ -10,12 +10,28 @@ export function useMediaQuery(query: string, fallback: boolean): boolean {
10
10
  typeof window !== "undefined" && typeof window.matchMedia === "function"
11
11
  ? window.matchMedia(query).matches
12
12
  : fallback;
13
- const [matches, setMatches] = useState<boolean>(get);
13
+ // The answer is kept with the query it answers, and a new query is asked during the
14
+ // render that brings it. Read at mount only, the first commit after a new query still
15
+ // answered the OLD one, until the effect corrected it: `useBreakpoint` asks a new query
16
+ // when the text size changes, and at Large in a 700 px window the tour card was drawn
17
+ // un-docked for a frame before it docked (0.52 code review, use-breakpoint.ts).
18
+ const [state, setState] = useState(() => ({ query, matches: get() }));
19
+ let matches = state.matches;
20
+ if (state.query !== query) {
21
+ matches = get();
22
+ setState({ query, matches });
23
+ }
24
+ const answered = useEffectEvent(() => matches);
14
25
  useEffect(() => {
15
26
  if (typeof window === "undefined" || typeof window.matchMedia !== "function") return;
16
27
  const mql = window.matchMedia(query);
17
- const update = () => setMatches(mql.matches);
18
- update();
28
+ const update = () =>
29
+ setState((prev) =>
30
+ prev.query === query && prev.matches === mql.matches ? prev : { query, matches: mql.matches },
31
+ );
32
+ // A change between the render and this subscription. Only then: an update that
33
+ // changes nothing still costs a render (and a commit) right after a new query.
34
+ if (mql.matches !== answered()) update();
19
35
  mql.addEventListener("change", update);
20
36
  return () => mql.removeEventListener("change", update);
21
37
  }, [query]);
@@ -0,0 +1,39 @@
1
+ import { useEffect, useRef } from "react";
2
+
3
+ /**
4
+ * A mounted guard and a callback-to-promise bridge, for a card that awaits an app's
5
+ * callback and must not set state after the page moved on.
6
+ *
7
+ * Written for the account settings parts (0.34) and then imported by seven notifications
8
+ * modules out of `account/account-parts.ts`: a generic helper living in a feature folder
9
+ * that the folder beside it reached into sideways (refactor audit 2026-10-30, MOD-6).
10
+ * `account-parts.ts` re-exports both, so nothing that imported them there moved, and
11
+ * `admin/admin-parts.ts` re-exports `settle` in place of its own copy (0.52 code review).
12
+ *
13
+ * @internal Not part of the barrel.
14
+ */
15
+
16
+ /** Whether the component is still mounted — a late answer after the app navigated away
17
+ * (the deletion signs out) must not set state. */
18
+ export function useMounted(): { readonly current: boolean } {
19
+ const mounted = useRef(true);
20
+ useEffect(() => {
21
+ mounted.current = true;
22
+ return () => {
23
+ mounted.current = false;
24
+ };
25
+ }, []);
26
+ return mounted;
27
+ }
28
+
29
+ /** Call `call` and hand back a promise, a throw included — a callback may return
30
+ * nothing (done at once), a promise, or throw before it returns one. Typed by what it
31
+ * answers, so the admin parts' copy, which kept the type, could go (0.52 code review,
32
+ * admin/admin-parts.ts). */
33
+ export function settle<R>(call: () => R): Promise<Awaited<R>> {
34
+ try {
35
+ return Promise.resolve(call());
36
+ } catch (error) {
37
+ return Promise.reject(error);
38
+ }
39
+ }
@@ -161,6 +161,9 @@ const consumed = new Set<string>();
161
161
  * `history.go(-n)` traversal fires exactly ONE popstate however far it travels. */
162
162
  let pendingProgrammatic = 0;
163
163
  let listening = false;
164
+ /** Whether the gesture listeners ({@link noteAddress}, {@link noteSeen}) are on — see
165
+ * {@link syncGestureListeners}. */
166
+ let noting = false;
164
167
  let nextId = 0;
165
168
 
166
169
  /**
@@ -518,6 +521,7 @@ function closeOnPop() {
518
521
  return;
519
522
  }
520
523
  stack.pop();
524
+ syncGestureListeners();
521
525
  // The browser consumed this entry, so the overlay's own cleanup has nothing left
522
526
  // to unwind and nothing to record as owed.
523
527
  consumed.add(top.id);
@@ -551,15 +555,38 @@ function putBack(id: string): void {
551
555
  if (record) record.href = record.seen = currentHref();
552
556
  }
553
557
 
558
+ /** `popstate` stays from the first overlay on: a traversal of ours (an unwind, a buried
559
+ * run to skip) lands after the overlay that caused it has gone. */
554
560
  function ensureListening() {
555
561
  if (listening || typeof window === "undefined") return;
556
562
  window.addEventListener("popstate", handlePop);
557
- window.addEventListener("pointerdown", noteAddress, true);
558
- window.addEventListener("keydown", noteAddress, true);
559
- for (const type of ["click", "keyup", "change", "input"]) window.addEventListener(type, noteSeenNowAndLater);
560
563
  listening = true;
561
564
  }
562
565
 
566
+ const SEEN_EVENTS = ["click", "keyup", "change", "input"] as const;
567
+
568
+ /**
569
+ * The gesture listeners, on while an overlay is open and off when the last one closes.
570
+ * Both notes return at once with no overlay up, but the four bubbling ones scheduled a
571
+ * timer for their second look even then — for every click and every keystroke in every
572
+ * field, for the life of the page after its first dialog (refactor audit 2026-10-30,
573
+ * INP-14). Called after each change to `stack`.
574
+ */
575
+ function syncGestureListeners(): void {
576
+ const want = stack.length > 0;
577
+ if (want === noting || typeof window === "undefined") return;
578
+ noting = want;
579
+ if (want) {
580
+ window.addEventListener("pointerdown", noteAddress, true);
581
+ window.addEventListener("keydown", noteAddress, true);
582
+ for (const type of SEEN_EVENTS) window.addEventListener(type, noteSeenNowAndLater);
583
+ } else {
584
+ window.removeEventListener("pointerdown", noteAddress, true);
585
+ window.removeEventListener("keydown", noteAddress, true);
586
+ for (const type of SEEN_EVENTS) window.removeEventListener(type, noteSeenNowAndLater);
587
+ }
588
+ }
589
+
563
590
  /**
564
591
  * Make the platform Back gesture dismiss an overlay.
565
592
  *
@@ -587,6 +614,7 @@ export function useOverlayHistory(open: boolean, onClose: () => void, { held = f
587
614
  const id = `overlay-${(nextId += 1)}`;
588
615
  const entry: OverlayEntry = { id, close: () => closeRef.current(), held: () => heldRef.current };
589
616
  stack.push(entry);
617
+ syncGestureListeners();
590
618
  const prev = window.history.state;
591
619
  const marked = { ...(prev && typeof prev === "object" ? prev : {}), [SENTINEL_KEY]: id };
592
620
  // An entry that is on its way out and that we are still standing on is ours
@@ -634,6 +662,7 @@ export function useOverlayHistory(open: boolean, onClose: () => void, { held = f
634
662
  return () => {
635
663
  const at = stack.indexOf(entry);
636
664
  if (at >= 0) stack.splice(at, 1);
665
+ syncGestureListeners();
637
666
 
638
667
  // A Back press already took this entry; there is nothing to unwind or to owe.
639
668
  if (consumed.delete(id)) return;
@@ -5,12 +5,8 @@ import { DEFAULT_MONTH_PICKER_LABELS } from "../components/month-picker-labels";
5
5
  import { DEFAULT_PAGE_CONTENTS_LABELS } from "../components/page-contents-labels";
6
6
  import { DEFAULT_POPOVER_LABELS } from "../components/popover-labels";
7
7
  import { DEFAULT_CHIP_INPUT_LABELS } from "../components/chip-labels";
8
- import { DEFAULT_FIELD_SYNC_LABELS } from "../components/field-sync-labels";
9
- import {
10
- DEFAULT_CHARACTER_COUNT_LABELS,
11
- DEFAULT_PASSWORD_REVEAL_LABELS,
12
- DEFAULT_TABS_LABELS,
13
- } from "../components/ui-labels";
8
+ import { DEFAULT_CHARACTER_COUNT_LABELS, DEFAULT_PASSWORD_REVEAL_LABELS } from "../components/field-base-labels";
9
+ import { DEFAULT_TABS_LABELS } from "../components/tabs-labels";
14
10
  import { DEFAULT_WIZARD_LABELS } from "../wizard/wizard-labels";
15
11
  import { DEFAULT_TOUR_LABELS } from "../tour/tour-labels";
16
12
  import { DEFAULT_TOUR_CATALOGUE_LABELS } from "../tour/tour-catalogue-labels";
@@ -19,6 +15,7 @@ import { DEFAULT_COMMAND_PALETTE_LABELS } from "../search/command-palette-labels
19
15
  import { DEFAULT_GLOBAL_SEARCH_LABELS } from "../search/global-search-labels";
20
16
  import { DEFAULT_SERIES_CHART_LABELS } from "../components/series-chart-labels";
21
17
  import { DEFAULT_PIE_CHART_LABELS } from "../components/pie-chart-labels";
18
+ import { DEFAULT_TREEMAP_LABELS } from "../components/treemap-labels";
22
19
  import { DEFAULT_SPARKLINE_LABELS } from "../components/sparkline-labels";
23
20
  import { DEFAULT_STAT_TILE_LABELS } from "../components/stat-tile-labels";
24
21
  import { DEFAULT_SIGNATURE_PAD_LABELS } from "../components/signature-pad-labels";
@@ -111,7 +108,6 @@ import { DEFAULT_COUNTRY_SELECT_LABELS } from "../components/country-select-labe
111
108
  import { DEFAULT_INLINE_EDIT_LABELS } from "../components/inline-edit-field-labels";
112
109
  import { DEFAULT_IBAN_INPUT_LABELS } from "../components/iban-input-labels";
113
110
  import { DEFAULT_PHONE_INPUT_LABELS } from "../components/phone-input-labels";
114
- import { DEFAULT_SIGN_CHIP_LABELS } from "../components/sign-chip-labels";
115
111
  import { DEFAULT_COLUMN_MAPPER_LABELS } from "../components/column-mapper-labels";
116
112
  import { DEFAULT_NOTIFICATIONS_LABELS } from "../notifications/notifications-labels";
117
113
  import {
@@ -159,7 +155,6 @@ export const DEFAULT_UI_KIT_LABELS: UiKitLabels = {
159
155
  calculator: DEFAULT_CALCULATOR_LABELS,
160
156
  currency: DEFAULT_CURRENCY_LABELS,
161
157
  chipInput: DEFAULT_CHIP_INPUT_LABELS,
162
- fieldSync: DEFAULT_FIELD_SYNC_LABELS,
163
158
  passwordReveal: DEFAULT_PASSWORD_REVEAL_LABELS,
164
159
  tabs: DEFAULT_TABS_LABELS,
165
160
  appShell: DEFAULT_APP_SHELL_LABELS,
@@ -176,6 +171,7 @@ export const DEFAULT_UI_KIT_LABELS: UiKitLabels = {
176
171
  globalSearch: DEFAULT_GLOBAL_SEARCH_LABELS,
177
172
  seriesChart: DEFAULT_SERIES_CHART_LABELS,
178
173
  pieChart: DEFAULT_PIE_CHART_LABELS,
174
+ treemap: DEFAULT_TREEMAP_LABELS,
179
175
  sparkline: DEFAULT_SPARKLINE_LABELS,
180
176
  statTile: DEFAULT_STAT_TILE_LABELS,
181
177
  signaturePad: DEFAULT_SIGNATURE_PAD_LABELS,
@@ -260,7 +256,6 @@ export const DEFAULT_UI_KIT_LABELS: UiKitLabels = {
260
256
  inlineEdit: DEFAULT_INLINE_EDIT_LABELS,
261
257
  ibanInput: DEFAULT_IBAN_INPUT_LABELS,
262
258
  phoneInput: DEFAULT_PHONE_INPUT_LABELS,
263
- signChip: DEFAULT_SIGN_CHIP_LABELS,
264
259
  columnMapper: DEFAULT_COLUMN_MAPPER_LABELS,
265
260
  notifications: DEFAULT_NOTIFICATIONS_LABELS,
266
261
  adminArea: DEFAULT_ADMIN_AREA_LABELS,
@@ -18,7 +18,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
18
18
  const num = new Intl.NumberFormat(numberLocale);
19
19
  const n = (value: number) => num.format(value);
20
20
  // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
21
- // src/auth/auth-errors.ts: no wait → "einen Moment", under a minute → seconds, else
21
+ // src/auth/auth-errors-labels.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
23
  const wait = (seconds: number) => (seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`);
24
24
  const rateLimited = (seconds?: number) =>
@@ -196,9 +196,6 @@ export function germanLabels(numberLocale: string): UiKitLabels {
196
196
  outcome: "Ergebnis",
197
197
  replies: "Antworten",
198
198
  resolvedAt: (date) => `Erledigt am: ${date}`,
199
- outcomeAdd: "Ergebnis hinzufügen",
200
- outcomeUpdate: "Aktualisieren",
201
- outcomePlaceholder: "Was wurde umgesetzt, entschieden oder warum nicht.",
202
199
  rework: "Nacharbeit",
203
200
  reworkTitle: "Zur Nacharbeit senden",
204
201
  reworkSend: "Nacharbeit senden",
@@ -513,13 +510,6 @@ export function germanLabels(numberLocale: string): UiKitLabels {
513
510
  noResults: "Keine passenden Symbole",
514
511
  resultCount: (count) => `${n(count)} ${count === 1 ? "Symbol" : "Symbole"}`,
515
512
  },
516
- fieldSync: {
517
- synced: "Gespeichert",
518
- edited: "Nicht gespeicherte Änderungen",
519
- pending: "Wird gespeichert…",
520
- error: "Speichern fehlgeschlagen",
521
- retry: "Erneut versuchen",
522
- },
523
513
  passwordReveal: {
524
514
  show: "Passwort anzeigen",
525
515
  hide: "Passwort verbergen",
@@ -553,7 +543,6 @@ export function germanLabels(numberLocale: string): UiKitLabels {
553
543
  palette: "Darstellungsvorlage",
554
544
  language: "Sprache",
555
545
  languageCurrent: (name) => `Sprache wählen, aktuell: ${name}`,
556
- switchRole: "Rolle wechseln",
557
546
  role: (value) => `Rolle: ${value}`,
558
547
  },
559
548
  pickerSheet: {
@@ -749,10 +738,16 @@ export function germanLabels(numberLocale: string): UiKitLabels {
749
738
  pieChart: {
750
739
  slices: "Diagrammsegmente",
751
740
  slice: (label, value, percent) => `${label}: ${value} (${percent})`,
741
+ sliceShare: (label, percent) => `${label}: ${percent}`,
752
742
  total: "Gesamt",
753
743
  empty: "Keine Daten",
754
744
  legend: "Kategorien",
755
745
  },
746
+ treemap: {
747
+ tile: (name, value, share) => `${name}: ${value}${share ? ` (${share})` : ""}`,
748
+ group: (name, value, share) => `${name}, Gruppe: ${value}${share ? ` (${share})` : ""}`,
749
+ inGroup: (name, group) => `${name}, in ${group}`,
750
+ },
756
751
  confirmDialog: {
757
752
  confirm: "Bestätigen",
758
753
  cancel: "Abbrechen",
@@ -1303,6 +1298,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1303
1298
  stoppedAll: (app) => `Erledigt. Sie erhalten keine Benachrichtigungs-E-Mails von ${app} mehr.`,
1304
1299
  accountMail: "E-Mails zu Ihrem Konto erhalten Sie weiterhin.",
1305
1300
  turnBackOn: "Sie können sie jederzeit in den Einstellungen wieder einschalten.",
1301
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1306
1302
  openSettings: "Einstellungen öffnen",
1307
1303
  invalidLink:
1308
1304
  "Dieser Link funktioniert nicht mehr. Sie können E-Mails stattdessen in den Einstellungen abbestellen.",
@@ -1562,12 +1558,6 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1562
1558
  countryCode: "Ländervorwahl",
1563
1559
  other: "Andere",
1564
1560
  },
1565
- signChip: {
1566
- outflow: "Ausgabe",
1567
- inflow: "Einnahme",
1568
- direction: (current, next) => `Richtung: ${current} – zu ${next} wechseln`,
1569
- switchTo: (next) => `Zu ${next} wechseln`,
1570
- },
1571
1561
  columnMapper: {
1572
1562
  paste: "Tabelle einfügen",
1573
1563
  pasteHint:
@@ -2032,7 +2022,6 @@ export function germanLabels(numberLocale: string): UiKitLabels {
2032
2022
  menu: "Dev-Werkzeuge",
2033
2023
  overridesOn: "Überschreibungen aktiv",
2034
2024
  roleHeading: "Dev · Rolle",
2035
- switchPlan: "Tarif wechseln",
2036
2025
  plan: (value) => `Tarif: ${value}`,
2037
2026
  planHeading: "Dev · Tarif",
2038
2027
  backTo: (role) => `Zurück zu ${role}`,
@@ -20,7 +20,6 @@ import type { MiniCalendarLabels, WeekDay } from "../components/mini-calendar";
20
20
  import type { CalendarHeatmapLabels } from "../components/calendar-heatmap";
21
21
  import type { PopoverLabels } from "../components/popover";
22
22
  import type { ChipInputLabels } from "../components/chip";
23
- import type { FieldSyncLabels } from "../components/field-sync";
24
23
  import type { CharacterCountLabels, PasswordRevealLabels } from "../components/field-base";
25
24
  import type { TabsLabels } from "../components/tabs";
26
25
  import type { WizardLabels } from "../wizard/types";
@@ -33,6 +32,7 @@ import type { MonthPickerLabels } from "../components/month-picker";
33
32
  import type { PageContentsLabels } from "../components/page-contents";
34
33
  import type { SeriesChartLabels } from "../components/series-chart-labels";
35
34
  import type { PieChartLabels } from "../components/pie-chart-labels";
35
+ import type { TreemapLabels } from "../components/treemap-labels";
36
36
  import type { SparklineLabels } from "../components/sparkline";
37
37
  import type { StatTileLabels } from "../components/stat-tile";
38
38
  import type { SignaturePadLabels } from "../components/signature-pad";
@@ -45,7 +45,7 @@ import type { FilePickerLabels } from "../components/file-button";
45
45
  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
- import type { FeedbackComposerLabels, FeedbackThreadLabels } from "../feedback/feedback-thread";
48
+ import type { ChatComposerLabels, FeedbackThreadLabels } from "../feedback/feedback-thread";
49
49
  import type { FeedbackCategoryLabels, FeedbackStatusLabels, FeedbackToastLabels } from "../feedback/feedback-labels";
50
50
  import type { FeedbackMenuLabels } from "../feedback/feedback-menu";
51
51
  import type { FeedbackPublicLabels } from "../feedback/feedback-public-labels";
@@ -113,7 +113,6 @@ import type { CountrySelectLabels } from "../components/country-select";
113
113
  import type { InlineEditLabels } from "../components/inline-edit-field";
114
114
  import type { IbanInputLabels } from "../components/iban-input";
115
115
  import type { PhoneInputLabels } from "../components/phone-input";
116
- import type { SignChipLabels } from "../components/sign-chip";
117
116
  import type { ColumnMapperLabels } from "../components/column-mapper";
118
117
  import type { NotificationsLabels } from "../notifications/notifications-labels";
119
118
  import type { AdminAreaLabels } from "../admin/admin-area-labels";
@@ -203,7 +202,7 @@ export interface DatePickerLabels {
203
202
  previousDay: string;
204
203
  nextDay: string;
205
204
  today: string;
206
- /** `DateRangePicker commit="apply"`: the button that commits the drafted range. */
205
+ /** `DateRangePicker apply`: the button that commits the drafted range. */
207
206
  apply: string;
208
207
  /** …and the one that discards it. */
209
208
  cancel: string;
@@ -283,8 +282,7 @@ export interface TopBarLabels {
283
282
  /** 0.49 KIT-10: the language menu's trigger, given the current language's name —
284
283
  * "Choose language, current: Deutsch". */
285
284
  languageCurrent: (name: string) => string;
286
- switchRole: string;
287
- /** The role switcher's tooltip, given the active role's name. */
285
+ /** The dev flask's role, given the active role's name (`DevMenu`'s name ends with it). */
288
286
  role: (value: string) => string;
289
287
  }
290
288
 
@@ -319,7 +317,6 @@ export interface UiKitLabels {
319
317
  calculator: CalculatorLabels;
320
318
  currency: CurrencyLabels;
321
319
  chipInput: ChipInputLabels;
322
- fieldSync: FieldSyncLabels;
323
320
  passwordReveal: PasswordRevealLabels;
324
321
  tabs: TabsLabels;
325
322
  appShell: AppShellLabels;
@@ -338,6 +335,8 @@ export interface UiKitLabels {
338
335
  globalSearch: GlobalSearchLabels;
339
336
  seriesChart: SeriesChartLabels;
340
337
  pieChart: PieChartLabels;
338
+ /** 0.52: a tile's accessible name (refactor audit 2026-10-30, DSP-5). */
339
+ treemap: TreemapLabels;
341
340
  sparkline: SparklineLabels;
342
341
  statTile: StatTileLabels;
343
342
  signaturePad: SignaturePadLabels;
@@ -349,10 +348,11 @@ export interface UiKitLabels {
349
348
  filePicker: FilePickerLabels;
350
349
  measuredGrid: MeasuredGridLabels;
351
350
  feedbackAttachment: FeedbackAttachmentFieldLabels;
352
- /** 0.12.0: `FeedbackDialog`'s own strings; `FeedbackThread` / `FeedbackComposer`. */
351
+ /** 0.12.0: `FeedbackDialog`'s own strings; `FeedbackThread` / `ChatComposer` (the
352
+ * namespace keeps the composer's 0.12 name). */
353
353
  feedbackDialog: FeedbackDialogTextLabels;
354
354
  feedbackThread: FeedbackThreadLabels;
355
- feedbackComposer: FeedbackComposerLabels;
355
+ feedbackComposer: ChatComposerLabels;
356
356
  /** 0.27.0: the feedback harmonisation (docs/feedback-harmonization.md §4) — a report's
357
357
  * status and category words, keyed by the enum value; the toasts a feedback page
358
358
  * shows; `FeedbackMenu`; `FeedbackContextBox`; the two pages' table; the row detail.
@@ -481,8 +481,6 @@ export interface UiKitLabels {
481
481
  ibanInput: IbanInputLabels;
482
482
  /** 0.22.0: `PhoneInput`'s country-code select. */
483
483
  phoneInput: PhoneInputLabels;
484
- /** 0.22.0: `SignChip` — the outflow / inflow toggle beside an amount. */
485
- signChip: SignChipLabels;
486
484
  /** 0.23.0: `ColumnMapper` / `ColumnRoleTable` — a pasted or dropped table, a role per
487
485
  * column. */
488
486
  columnMapper: ColumnMapperLabels;
@@ -15,7 +15,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
15
15
  const n = (value: number) => num.format(value);
16
16
  const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);
17
17
  // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
18
- // src/auth/auth-errors.ts: no wait → "un momento", under a minute → seconds, else
18
+ // src/auth/auth-errors-labels.ts: no wait → "un momento", under a minute → seconds, else
19
19
  // minutes rounded up.
20
20
  const wait = (seconds: number) => (seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`);
21
21
  const rateLimited = (seconds?: number) =>
@@ -188,9 +188,6 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
188
188
  outcome: "Resultado",
189
189
  replies: "Respuestas",
190
190
  resolvedAt: (date) => `Resuelto el ${date}`,
191
- outcomeAdd: "Añadir resultado",
192
- outcomeUpdate: "Actualizar",
193
- outcomePlaceholder: "Qué se ha hecho o decidido, o por qué no se abordará.",
194
191
  rework: "Corrección",
195
192
  reworkTitle: "Devolver para corrección",
196
193
  reworkSend: "Solicitar corrección",
@@ -502,13 +499,6 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
502
499
  noResults: "Ningún icono coincide",
503
500
  resultCount: (count) => `${n(count)} ${plural(count, "icono", "iconos")}`,
504
501
  },
505
- fieldSync: {
506
- synced: "Guardado",
507
- edited: "Cambios sin guardar",
508
- pending: "Guardando…",
509
- error: "No se pudo guardar",
510
- retry: "Reintentar",
511
- },
512
502
  passwordReveal: {
513
503
  show: "Mostrar contraseña",
514
504
  hide: "Ocultar contraseña",
@@ -541,7 +531,6 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
541
531
  palette: "Ajuste de apariencia",
542
532
  language: "Idioma",
543
533
  languageCurrent: (name) => `Elegir idioma, actual: ${name}`,
544
- switchRole: "Cambiar de rol",
545
534
  role: (value) => `Rol: ${value}`,
546
535
  },
547
536
  pickerSheet: {
@@ -737,10 +726,16 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
737
726
  pieChart: {
738
727
  slices: "Sectores del gráfico",
739
728
  slice: (label, value, percent) => `${label}: ${value} (${percent})`,
729
+ sliceShare: (label, percent) => `${label}: ${percent}`,
740
730
  total: "Total",
741
731
  empty: "Sin datos",
742
732
  legend: "Categorías",
743
733
  },
734
+ treemap: {
735
+ tile: (name, value, share) => `${name}: ${value}${share ? ` (${share})` : ""}`,
736
+ group: (name, value, share) => `${name}, grupo: ${value}${share ? ` (${share})` : ""}`,
737
+ inGroup: (name, group) => `${name}, en ${group}`,
738
+ },
744
739
  confirmDialog: {
745
740
  confirm: "Confirmar",
746
741
  cancel: "Cancelar",
@@ -1276,6 +1271,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1276
1271
  stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,
1277
1272
  accountMail: "Los correos sobre su cuenta seguirán llegando.",
1278
1273
  turnBackOn: "Puede volver a activarlos en cualquier momento en los ajustes.",
1274
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1279
1275
  openSettings: "Abrir los ajustes",
1280
1276
  invalidLink: "Este enlace ya no funciona. Puede desactivar los correos en los ajustes.",
1281
1277
  failed: "No ha funcionado. Inténtelo de nuevo.",
@@ -1527,12 +1523,6 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1527
1523
  countryCode: "Prefijo del país",
1528
1524
  other: "Otro",
1529
1525
  },
1530
- signChip: {
1531
- outflow: "Salida",
1532
- inflow: "Entrada",
1533
- direction: (current, next) => `Dirección: ${current} — cambiar a ${next}`,
1534
- switchTo: (next) => `Cambiar a ${next}`,
1535
- },
1536
1526
  columnMapper: {
1537
1527
  paste: "Pegar una tabla",
1538
1528
  pasteHint: "Copie las filas de una hoja de cálculo y péguelas aquí, o suelte un archivo CSV o de texto.",
@@ -1970,7 +1960,6 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1970
1960
  menu: "Herramientas de desarrollo",
1971
1961
  overridesOn: "Anulaciones activas",
1972
1962
  roleHeading: "Dev · rol",
1973
- switchPlan: "Cambiar de plan",
1974
1963
  plan: (value) => `Plan: ${value}`,
1975
1964
  planHeading: "Dev · plan",
1976
1965
  backTo: (role) => `Volver a ${role}`,