@eifi1/ui-kit 0.51.7 → 0.52.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 (746) hide show
  1. package/README.md +141 -23
  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 +20 -8
  60. package/dist/billing/cancel-subscription.js +7 -5
  61. package/dist/billing/cancel-subscription.js.map +1 -1
  62. package/dist/billing/dialog-close.d.ts +29 -0
  63. package/dist/billing/dialog-close.js +8 -0
  64. package/dist/billing/dialog-close.js.map +1 -0
  65. package/dist/billing/plan-card.d.ts +14 -4
  66. package/dist/billing/plan-card.js +15 -8
  67. package/dist/billing/plan-card.js.map +1 -1
  68. package/dist/billing/plan-change-labels.d.ts +42 -0
  69. package/dist/billing/plan-change-labels.js +22 -0
  70. package/dist/billing/plan-change-labels.js.map +1 -0
  71. package/dist/billing/plan-switch.d.ts +19 -7
  72. package/dist/billing/plan-switch.js +8 -4
  73. package/dist/billing/plan-switch.js.map +1 -1
  74. package/dist/chart.d.ts +12 -0
  75. package/dist/chart.js +16 -1
  76. package/dist/chart.js.map +1 -1
  77. package/dist/components/account-chips.d.ts +5 -5
  78. package/dist/components/account-chips.js +11 -13
  79. package/dist/components/account-chips.js.map +1 -1
  80. package/dist/components/alert-banner.d.ts +16 -5
  81. package/dist/components/alert-banner.js +46 -1
  82. package/dist/components/alert-banner.js.map +1 -1
  83. package/dist/components/amount-input.d.ts +13 -0
  84. package/dist/components/amount-input.js +1 -0
  85. package/dist/components/amount-input.js.map +1 -1
  86. package/dist/components/autocomplete.js +57 -65
  87. package/dist/components/autocomplete.js.map +1 -1
  88. package/dist/components/bulk-action-bar.d.ts +12 -2
  89. package/dist/components/bulk-action-bar.js +65 -21
  90. package/dist/components/bulk-action-bar.js.map +1 -1
  91. package/dist/components/button-look.d.ts +5 -5
  92. package/dist/components/button-look.js.map +1 -1
  93. package/dist/components/button.d.ts +2 -2
  94. package/dist/components/button.js.map +1 -1
  95. package/dist/components/chart-edge.d.ts +16 -0
  96. package/dist/components/chart-edge.js +14 -1
  97. package/dist/components/chart-edge.js.map +1 -1
  98. package/dist/components/chart-figure.d.ts +13 -0
  99. package/dist/components/chart-figure.js +15 -0
  100. package/dist/components/chart-figure.js.map +1 -0
  101. package/dist/components/chart-zoom-core.js +1 -4
  102. package/dist/components/chart-zoom-core.js.map +1 -1
  103. package/dist/components/chart.d.ts +8 -1
  104. package/dist/components/chart.js +19 -10
  105. package/dist/components/chart.js.map +1 -1
  106. package/dist/components/combobox-core.d.ts +111 -2
  107. package/dist/components/combobox-core.js +148 -42
  108. package/dist/components/combobox-core.js.map +1 -1
  109. package/dist/components/combobox.d.ts +1 -1
  110. package/dist/components/combobox.js +141 -130
  111. package/dist/components/combobox.js.map +1 -1
  112. package/dist/components/copy-button.d.ts +6 -5
  113. package/dist/components/copy-button.js +5 -3
  114. package/dist/components/copy-button.js.map +1 -1
  115. package/dist/components/country-select.js +2 -2
  116. package/dist/components/country-select.js.map +1 -1
  117. package/dist/components/data-table-column-settings.d.ts +1 -1
  118. package/dist/components/data-table-column-settings.js +33 -7
  119. package/dist/components/data-table-column-settings.js.map +1 -1
  120. package/dist/components/data-table-filters.d.ts +4 -2
  121. package/dist/components/data-table-filters.js +2 -2
  122. package/dist/components/data-table-filters.js.map +1 -1
  123. package/dist/components/data-table-fit.d.ts +6 -4
  124. package/dist/components/data-table-fit.js +4 -1
  125. package/dist/components/data-table-fit.js.map +1 -1
  126. package/dist/components/data-table-groups.d.ts +1 -1
  127. package/dist/components/data-table-groups.js.map +1 -1
  128. package/dist/components/data-table-head.d.ts +1 -1
  129. package/dist/components/data-table-head.js +15 -12
  130. package/dist/components/data-table-head.js.map +1 -1
  131. package/dist/components/data-table-mobile.d.ts +12 -7
  132. package/dist/components/data-table-mobile.js +43 -30
  133. package/dist/components/data-table-mobile.js.map +1 -1
  134. package/dist/components/data-table-pagination.js +11 -6
  135. package/dist/components/data-table-pagination.js.map +1 -1
  136. package/dist/components/data-table-resize.d.ts +1 -1
  137. package/dist/components/data-table-resize.js.map +1 -1
  138. package/dist/components/data-table-row-actions.d.ts +2 -2
  139. package/dist/components/data-table-row-actions.js.map +1 -1
  140. package/dist/components/data-table-row.d.ts +6 -2
  141. package/dist/components/data-table-row.js +17 -10
  142. package/dist/components/data-table-row.js.map +1 -1
  143. package/dist/components/data-table-selection.d.ts +1 -1
  144. package/dist/components/data-table-selection.js.map +1 -1
  145. package/dist/components/data-table-shared.d.ts +10 -2
  146. package/dist/components/data-table-shared.js +18 -0
  147. package/dist/components/data-table-shared.js.map +1 -1
  148. package/dist/components/data-table-sort.d.ts +21 -2
  149. package/dist/components/data-table-sort.js +24 -0
  150. package/dist/components/data-table-sort.js.map +1 -1
  151. package/dist/components/data-table-virtual.d.ts +1 -1
  152. package/dist/components/data-table-virtual.js +18 -6
  153. package/dist/components/data-table-virtual.js.map +1 -1
  154. package/dist/components/data-table.d.ts +13 -4
  155. package/dist/components/data-table.js +139 -36
  156. package/dist/components/data-table.js.map +1 -1
  157. package/dist/components/date-field.d.ts +24 -2
  158. package/dist/components/date-field.js +33 -8
  159. package/dist/components/date-field.js.map +1 -1
  160. package/dist/components/date-picker.d.ts +15 -2
  161. package/dist/components/date-picker.js +55 -26
  162. package/dist/components/date-picker.js.map +1 -1
  163. package/dist/components/date-range-picker.d.ts +47 -20
  164. package/dist/components/date-range-picker.js +23 -7
  165. package/dist/components/date-range-picker.js.map +1 -1
  166. package/dist/components/error-boundary.js +37 -30
  167. package/dist/components/error-boundary.js.map +1 -1
  168. package/dist/components/{ui-labels.d.ts → field-base-labels.d.ts} +0 -2
  169. package/dist/components/{ui-labels.js → field-base-labels.js} +2 -9
  170. package/dist/components/field-base-labels.js.map +1 -0
  171. package/dist/components/field-base.d.ts +4 -3
  172. package/dist/components/field-base.js +3 -3
  173. package/dist/components/field-base.js.map +1 -1
  174. package/dist/components/field-sync-labels.d.ts +1 -0
  175. package/dist/components/field-sync-labels.js.map +1 -1
  176. package/dist/components/field-sync.d.ts +23 -1
  177. package/dist/components/field-sync.js.map +1 -1
  178. package/dist/components/form-actions.js +11 -5
  179. package/dist/components/form-actions.js.map +1 -1
  180. package/dist/components/hover-menu.d.ts +3 -0
  181. package/dist/components/hover-menu.js +5 -3
  182. package/dist/components/hover-menu.js.map +1 -1
  183. package/dist/components/icon-button.js +14 -9
  184. package/dist/components/icon-button.js.map +1 -1
  185. package/dist/components/inline-confirm.d.ts +43 -0
  186. package/dist/components/inline-confirm.js +67 -0
  187. package/dist/components/inline-confirm.js.map +1 -0
  188. package/dist/components/inline-entity-combobox.d.ts +4 -3
  189. package/dist/components/inline-entity-combobox.js +148 -140
  190. package/dist/components/inline-entity-combobox.js.map +1 -1
  191. package/dist/components/input.js +1 -1
  192. package/dist/components/input.js.map +1 -1
  193. package/dist/components/jump-calendar.js +28 -112
  194. package/dist/components/jump-calendar.js.map +1 -1
  195. package/dist/components/legal-page.d.ts +3 -1
  196. package/dist/components/legal-page.js +3 -2
  197. package/dist/components/legal-page.js.map +1 -1
  198. package/dist/components/legal.d.ts +4 -2
  199. package/dist/components/legal.js.map +1 -1
  200. package/dist/components/lightbox.d.ts +2 -2
  201. package/dist/components/lightbox.js +17 -6
  202. package/dist/components/lightbox.js.map +1 -1
  203. package/dist/components/list.d.ts +6 -2
  204. package/dist/components/list.js +3 -2
  205. package/dist/components/list.js.map +1 -1
  206. package/dist/components/measured-grid.d.ts +1 -1
  207. package/dist/components/measured-grid.js +2 -1
  208. package/dist/components/measured-grid.js.map +1 -1
  209. package/dist/components/mini-calendar.js +3 -5
  210. package/dist/components/mini-calendar.js.map +1 -1
  211. package/dist/components/modal.js +3 -1
  212. package/dist/components/modal.js.map +1 -1
  213. package/dist/components/month-grid.d.ts +55 -0
  214. package/dist/components/month-grid.js +148 -0
  215. package/dist/components/month-grid.js.map +1 -0
  216. package/dist/components/month-picker.d.ts +36 -4
  217. package/dist/components/month-picker.js +123 -146
  218. package/dist/components/month-picker.js.map +1 -1
  219. package/dist/components/multi-select.d.ts +2 -2
  220. package/dist/components/multi-select.js +11 -6
  221. package/dist/components/multi-select.js.map +1 -1
  222. package/dist/components/picker-sheet.js +2 -1
  223. package/dist/components/picker-sheet.js.map +1 -1
  224. package/dist/components/pie-chart-labels.d.ts +7 -0
  225. package/dist/components/pie-chart-labels.js +1 -0
  226. package/dist/components/pie-chart-labels.js.map +1 -1
  227. package/dist/components/pie-chart.d.ts +5 -3
  228. package/dist/components/pie-chart.js +7 -22
  229. package/dist/components/pie-chart.js.map +1 -1
  230. package/dist/components/popover.d.ts +3 -0
  231. package/dist/components/popover.js +7 -1
  232. package/dist/components/popover.js.map +1 -1
  233. package/dist/components/row-actions.js +2 -1
  234. package/dist/components/row-actions.js.map +1 -1
  235. package/dist/components/section-nav.d.ts +7 -0
  236. package/dist/components/section-nav.js.map +1 -1
  237. package/dist/components/series-chart-axes.d.ts +3 -3
  238. package/dist/components/series-chart-axes.js.map +1 -1
  239. package/dist/components/series-chart-labels.d.ts +7 -4
  240. package/dist/components/series-chart-labels.js.map +1 -1
  241. package/dist/components/series-chart.d.ts +31 -7
  242. package/dist/components/series-chart.js +72 -29
  243. package/dist/components/series-chart.js.map +1 -1
  244. package/dist/components/share-card.js +3 -3
  245. package/dist/components/share-card.js.map +1 -1
  246. package/dist/components/sign-chip-labels.d.ts +1 -0
  247. package/dist/components/sign-chip-labels.js.map +1 -1
  248. package/dist/components/sign-chip.d.ts +10 -1
  249. package/dist/components/sign-chip.js.map +1 -1
  250. package/dist/components/tabs-labels.d.ts +2 -0
  251. package/dist/components/tabs-labels.js +11 -0
  252. package/dist/components/tabs-labels.js.map +1 -0
  253. package/dist/components/tabs.d.ts +1 -1
  254. package/dist/components/tabs.js +1 -1
  255. package/dist/components/tabs.js.map +1 -1
  256. package/dist/components/toggle-legend.d.ts +2 -2
  257. package/dist/components/toggle-legend.js +6 -6
  258. package/dist/components/toggle-legend.js.map +1 -1
  259. package/dist/components/translation-review-editor.d.ts +4 -2
  260. package/dist/components/translation-review-editor.js +2 -3
  261. package/dist/components/translation-review-editor.js.map +1 -1
  262. package/dist/components/translation-review.d.ts +2 -1
  263. package/dist/components/translation-review.js +2 -2
  264. package/dist/components/translation-review.js.map +1 -1
  265. package/dist/components/treemap-labels.d.ts +26 -0
  266. package/dist/components/treemap-labels.js +10 -0
  267. package/dist/components/treemap-labels.js.map +1 -0
  268. package/dist/components/treemap-layout.d.ts +62 -0
  269. package/dist/components/treemap-layout.js +126 -0
  270. package/dist/components/treemap-layout.js.map +1 -0
  271. package/dist/components/treemap.d.ts +140 -17
  272. package/dist/components/treemap.js +324 -97
  273. package/dist/components/treemap.js.map +1 -1
  274. package/dist/components/use-table-state.d.ts +5 -5
  275. package/dist/components/use-table-state.js +4 -1
  276. package/dist/components/use-table-state.js.map +1 -1
  277. package/dist/data-table.d.ts +6 -2
  278. package/dist/data-table.js +7 -2
  279. package/dist/data-table.js.map +1 -1
  280. package/dist/eslint/index.js +1 -1
  281. package/dist/eslint/role-utilities.d.ts +36 -7
  282. package/dist/eslint/role-utilities.js +42 -9
  283. package/dist/eslint/role-utilities.js.map +1 -1
  284. package/dist/feedback/feedback-dialog.d.ts +25 -16
  285. package/dist/feedback/feedback-dialog.js +6 -2
  286. package/dist/feedback/feedback-dialog.js.map +1 -1
  287. package/dist/feedback/feedback-mutation.d.ts +30 -0
  288. package/dist/feedback/feedback-mutation.js +16 -0
  289. package/dist/feedback/feedback-mutation.js.map +1 -0
  290. package/dist/feedback/feedback-page-link.d.ts +53 -0
  291. package/dist/feedback/feedback-page-link.js +37 -0
  292. package/dist/feedback/feedback-page-link.js.map +1 -0
  293. package/dist/feedback/feedback-public-list.d.ts +12 -3
  294. package/dist/feedback/feedback-public-list.js +2 -1
  295. package/dist/feedback/feedback-public-list.js.map +1 -1
  296. package/dist/feedback/feedback-replies.d.ts +3 -1
  297. package/dist/feedback/feedback-replies.js +5 -4
  298. package/dist/feedback/feedback-replies.js.map +1 -1
  299. package/dist/feedback/feedback-row-detail-labels.js +5 -0
  300. package/dist/feedback/feedback-row-detail-labels.js.map +1 -1
  301. package/dist/feedback/feedback-row-detail.d.ts +64 -28
  302. package/dist/feedback/feedback-row-detail.js +30 -28
  303. package/dist/feedback/feedback-row-detail.js.map +1 -1
  304. package/dist/feedback/feedback-status-undo.d.ts +30 -11
  305. package/dist/feedback/feedback-status-undo.js +10 -15
  306. package/dist/feedback/feedback-status-undo.js.map +1 -1
  307. package/dist/feedback/feedback-submit-dialog.d.ts +1 -1
  308. package/dist/feedback/feedback-submit-dialog.js +1 -1
  309. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  310. package/dist/feedback/feedback-submit.js +9 -3
  311. package/dist/feedback/feedback-submit.js.map +1 -1
  312. package/dist/feedback/feedback-swipe.d.ts +1 -1
  313. package/dist/feedback/feedback-swipe.js.map +1 -1
  314. package/dist/feedback/feedback-table.d.ts +21 -9
  315. package/dist/feedback/feedback-table.js +45 -25
  316. package/dist/feedback/feedback-table.js.map +1 -1
  317. package/dist/feedback/feedback-thread-labels.d.ts +2 -2
  318. package/dist/feedback/feedback-thread-labels.js.map +1 -1
  319. package/dist/feedback/feedback-thread.d.ts +24 -23
  320. package/dist/feedback/feedback-thread.js +2 -1
  321. package/dist/feedback/feedback-thread.js.map +1 -1
  322. package/dist/feedback.d.ts +34 -0
  323. package/dist/feedback.js +42 -0
  324. package/dist/feedback.js.map +1 -1
  325. package/dist/hooks/use-focus-trap.d.ts +35 -0
  326. package/dist/hooks/use-focus-trap.js +6 -4
  327. package/dist/hooks/use-focus-trap.js.map +1 -1
  328. package/dist/hooks/use-hotkey.d.ts +5 -2
  329. package/dist/hooks/use-hotkey.js +5 -4
  330. package/dist/hooks/use-hotkey.js.map +1 -1
  331. package/dist/hooks/use-long-press.d.ts +7 -4
  332. package/dist/hooks/use-long-press.js +3 -0
  333. package/dist/hooks/use-long-press.js.map +1 -1
  334. package/dist/hooks/use-media-query.js +12 -4
  335. package/dist/hooks/use-media-query.js.map +1 -1
  336. package/dist/hooks/use-mounted.d.ts +22 -0
  337. package/dist/hooks/use-mounted.js +24 -0
  338. package/dist/hooks/use-mounted.js.map +1 -0
  339. package/dist/hooks/use-overlay-history.js +19 -3
  340. package/dist/hooks/use-overlay-history.js.map +1 -1
  341. package/dist/i18n/defaults.js +4 -5
  342. package/dist/i18n/defaults.js.map +1 -1
  343. package/dist/i18n/german.js +7 -1
  344. package/dist/i18n/german.js.map +1 -1
  345. package/dist/i18n/kit-labels.d.ts +9 -2
  346. package/dist/i18n/kit-labels.js.map +1 -1
  347. package/dist/i18n/locales/en.js +20 -41
  348. package/dist/i18n/locales/en.js.map +3 -3
  349. package/dist/i18n/locales/es.js +7 -1
  350. package/dist/i18n/locales/es.js.map +1 -1
  351. package/dist/i18n/locales/fr.js +20 -10
  352. package/dist/i18n/locales/fr.js.map +1 -1
  353. package/dist/i18n/locales/hu.js +9 -1
  354. package/dist/i18n/locales/hu.js.map +1 -1
  355. package/dist/i18n/locales/it.js +7 -1
  356. package/dist/i18n/locales/it.js.map +1 -1
  357. package/dist/i18n/locales/zh.js +8 -1
  358. package/dist/i18n/locales/zh.js.map +1 -1
  359. package/dist/i18n/review.js +5 -0
  360. package/dist/i18n/review.js.map +1 -1
  361. package/dist/index.d.ts +64 -17
  362. package/dist/index.js +77 -12
  363. package/dist/index.js.map +1 -1
  364. package/dist/landing/routing.d.ts +3 -1
  365. package/dist/landing/routing.js +4 -7
  366. package/dist/landing/routing.js.map +1 -1
  367. package/dist/lib/broadcast.d.ts +17 -0
  368. package/dist/lib/broadcast.js +30 -0
  369. package/dist/lib/broadcast.js.map +1 -0
  370. package/dist/lib/date-format.d.ts +37 -2
  371. package/dist/lib/date-format.js +34 -8
  372. package/dist/lib/date-format.js.map +1 -1
  373. package/dist/lib/day-format.d.ts +46 -0
  374. package/dist/lib/day-format.js +46 -0
  375. package/dist/lib/day-format.js.map +1 -0
  376. package/dist/lib/describe-failure.d.ts +14 -0
  377. package/dist/lib/describe-failure.js +9 -0
  378. package/dist/lib/describe-failure.js.map +1 -0
  379. package/dist/lib/direction.d.ts +16 -0
  380. package/dist/lib/direction.js +9 -1
  381. package/dist/lib/direction.js.map +1 -1
  382. package/dist/lib/focus-left.d.ts +63 -0
  383. package/dist/lib/focus-left.js +67 -0
  384. package/dist/lib/focus-left.js.map +1 -0
  385. package/dist/lib/format.js +5 -14
  386. package/dist/lib/format.js.map +1 -1
  387. package/dist/lib/http-status.d.ts +24 -0
  388. package/dist/lib/http-status.js +14 -0
  389. package/dist/lib/http-status.js.map +1 -0
  390. package/dist/lib/intl-cache.d.ts +14 -0
  391. package/dist/lib/intl-cache.js +15 -0
  392. package/dist/lib/intl-cache.js.map +1 -0
  393. package/dist/lib/isin.d.ts +10 -0
  394. package/dist/lib/isin.js.map +1 -1
  395. package/dist/lib/iso-day.d.ts +11 -0
  396. package/dist/lib/iso-day.js +8 -0
  397. package/dist/lib/iso-day.js.map +1 -0
  398. package/dist/lib/lazy-with-fallback.d.ts +31 -0
  399. package/dist/lib/lazy-with-fallback.js +40 -0
  400. package/dist/lib/lazy-with-fallback.js.map +1 -0
  401. package/dist/lib/path-pattern.d.ts +34 -0
  402. package/dist/lib/path-pattern.js +24 -0
  403. package/dist/lib/path-pattern.js.map +1 -0
  404. package/dist/lib/reduced-motion.d.ts +2 -1
  405. package/dist/lib/reduced-motion.js.map +1 -1
  406. package/dist/lib/round.d.ts +2 -1
  407. package/dist/lib/round.js +2 -1
  408. package/dist/lib/round.js.map +1 -1
  409. package/dist/lib/safe-storage.d.ts +24 -5
  410. package/dist/lib/safe-storage.js +27 -2
  411. package/dist/lib/safe-storage.js.map +1 -1
  412. package/dist/lib/session-refresh.js +1 -1
  413. package/dist/lib/session-refresh.js.map +1 -1
  414. package/dist/lib/share-format.d.ts +13 -0
  415. package/dist/lib/share-format.js +10 -0
  416. package/dist/lib/share-format.js.map +1 -0
  417. package/dist/lib/text-case.d.ts +17 -0
  418. package/dist/lib/text-case.js +8 -0
  419. package/dist/lib/text-case.js.map +1 -0
  420. package/dist/lib/text-match.d.ts +29 -0
  421. package/dist/lib/text-match.js +20 -2
  422. package/dist/lib/text-match.js.map +1 -1
  423. package/dist/lib/thenable.d.ts +13 -0
  424. package/dist/lib/thenable.js +8 -0
  425. package/dist/lib/thenable.js.map +1 -0
  426. package/dist/lib/translation-review.d.ts +7 -2
  427. package/dist/lib/translation-review.js +4 -4
  428. package/dist/lib/translation-review.js.map +1 -1
  429. package/dist/notifications/device-zone-report.js +1 -1
  430. package/dist/notifications/device-zone-report.js.map +1 -1
  431. package/dist/notifications/notification-bell.d.ts +2 -1
  432. package/dist/notifications/notification-bell.js +3 -3
  433. package/dist/notifications/notification-bell.js.map +1 -1
  434. package/dist/notifications/notification-inbox.d.ts +10 -6
  435. package/dist/notifications/notification-inbox.js +26 -48
  436. package/dist/notifications/notification-inbox.js.map +1 -1
  437. package/dist/notifications/notification-parts.d.ts +3 -2
  438. package/dist/notifications/notification-parts.js +1 -3
  439. package/dist/notifications/notification-parts.js.map +1 -1
  440. package/dist/notifications/notification-types-setting.js +1 -1
  441. package/dist/notifications/notification-types-setting.js.map +1 -1
  442. package/dist/notifications/notifications-labels.d.ts +6 -0
  443. package/dist/notifications/notifications-labels.js +1 -0
  444. package/dist/notifications/notifications-labels.js.map +1 -1
  445. package/dist/notifications/push-device-setting.js +1 -1
  446. package/dist/notifications/push-device-setting.js.map +1 -1
  447. package/dist/notifications/push-devices-setting.d.ts +2 -1
  448. package/dist/notifications/push-devices-setting.js +27 -49
  449. package/dist/notifications/push-devices-setting.js.map +1 -1
  450. package/dist/notifications/quiet-hours-setting.d.ts +10 -3
  451. package/dist/notifications/quiet-hours-setting.js +65 -26
  452. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  453. package/dist/notifications/unsubscribe-panel.js +4 -7
  454. package/dist/notifications/unsubscribe-panel.js.map +1 -1
  455. package/dist/notifications/use-push-device.d.ts +39 -1
  456. package/dist/notifications/use-push-device.js +28 -7
  457. package/dist/notifications/use-push-device.js.map +1 -1
  458. package/dist/offline/query-persistence.d.ts +3 -1
  459. package/dist/offline/query-persistence.js +19 -2
  460. package/dist/offline/query-persistence.js.map +1 -1
  461. package/dist/rhf/fields.d.ts +11 -4
  462. package/dist/rhf/fields.js.map +1 -1
  463. package/dist/search/command-palette.js +1 -1
  464. package/dist/search/command-palette.js.map +1 -1
  465. package/dist/search/global-search.js +19 -9
  466. package/dist/search/global-search.js.map +1 -1
  467. package/dist/search/use-command-key.d.ts +12 -1
  468. package/dist/search/use-command-key.js +3 -12
  469. package/dist/search/use-command-key.js.map +1 -1
  470. package/dist/search.d.ts +7 -0
  471. package/dist/search.js +10 -0
  472. package/dist/search.js.map +1 -1
  473. package/dist/settings/use-settings-focus.js +1 -0
  474. package/dist/settings/use-settings-focus.js.map +1 -1
  475. package/dist/shell/account-menu-language.d.ts +21 -5
  476. package/dist/shell/account-menu-language.js +3 -1
  477. package/dist/shell/account-menu-language.js.map +1 -1
  478. package/dist/shell/account-menu-text-size.d.ts +26 -9
  479. package/dist/shell/account-menu-text-size.js +3 -2
  480. package/dist/shell/account-menu-text-size.js.map +1 -1
  481. package/dist/shell/dev-menu.js +5 -18
  482. package/dist/shell/dev-menu.js.map +1 -1
  483. package/dist/shell/role-switcher.d.ts +7 -0
  484. package/dist/shell/role-switcher.js.map +1 -1
  485. package/dist/shell/top-bar-actions.d.ts +1 -1
  486. package/dist/shell/top-bar-actions.js.map +1 -1
  487. package/dist/shell/top-bar-parts-labels.d.ts +0 -2
  488. package/dist/shell/top-bar-parts-labels.js +0 -1
  489. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  490. package/dist/shell.d.ts +27 -8
  491. package/dist/shell.js +28 -7
  492. package/dist/shell.js.map +1 -1
  493. package/dist/sync/engine.d.ts +30 -4
  494. package/dist/sync/engine.js +172 -52
  495. package/dist/sync/engine.js.map +1 -1
  496. package/dist/sync.d.ts +6 -2
  497. package/dist/sync.js +6 -1
  498. package/dist/sync.js.map +1 -1
  499. package/dist/testing/css-variables.js +3 -8
  500. package/dist/testing/css-variables.js.map +1 -1
  501. package/dist/theme/contrast.d.ts +2 -1
  502. package/dist/theme/contrast.js +3 -8
  503. package/dist/theme/contrast.js.map +1 -1
  504. package/dist/theme/palette-store.js +6 -6
  505. package/dist/theme/palette-store.js.map +1 -1
  506. package/dist/theme/text-size.js +3 -8
  507. package/dist/theme/text-size.js.map +1 -1
  508. package/dist/theme/theme-store.js +3 -6
  509. package/dist/theme/theme-store.js.map +1 -1
  510. package/dist/tour/tour-catalogue.d.ts +7 -4
  511. package/dist/tour/tour-catalogue.js +12 -10
  512. package/dist/tour/tour-catalogue.js.map +1 -1
  513. package/dist/tour/tour-dock.d.ts +0 -2
  514. package/dist/tour/tour-dock.js +0 -2
  515. package/dist/tour/tour-dock.js.map +1 -1
  516. package/dist/tour/tour-gates.d.ts +4 -0
  517. package/dist/tour/tour-gates.js +14 -0
  518. package/dist/tour/tour-gates.js.map +1 -1
  519. package/dist/tour/tour-overlay.d.ts +27 -0
  520. package/dist/tour/tour-overlay.js +741 -0
  521. package/dist/tour/tour-overlay.js.map +1 -0
  522. package/dist/tour/tour.d.ts +13 -3
  523. package/dist/tour/tour.js +59 -781
  524. package/dist/tour/tour.js.map +1 -1
  525. package/dist/tour/use-tour-progress.js +1 -1
  526. package/dist/tour/use-tour-progress.js.map +1 -1
  527. package/dist/wizard/stepper-nav.d.ts +5 -1
  528. package/dist/wizard/stepper-nav.js.map +1 -1
  529. package/dist/wizard/types.d.ts +6 -2
  530. package/dist/wizard/types.js.map +1 -1
  531. package/dist/wizard/use-wizard.d.ts +3 -1
  532. package/dist/wizard/use-wizard.js.map +1 -1
  533. package/dist/wizard/validation.d.ts +3 -1
  534. package/dist/wizard/validation.js.map +1 -1
  535. package/package.json +10 -6
  536. package/src/account/account-parts.ts +5 -25
  537. package/src/account/data-export-setting-labels.ts +1 -1
  538. package/src/account/delete-account-setting-labels.ts +1 -1
  539. package/src/account/email-change-setting-labels.ts +1 -1
  540. package/src/account/passkeys-setting.tsx +60 -38
  541. package/src/account/sessions-setting.tsx +18 -12
  542. package/src/admin/admin-action-confirm.tsx +1 -5
  543. package/src/admin/admin-parts.ts +11 -25
  544. package/src/admin/mail-test-card-labels.ts +1 -1
  545. package/src/admin/plan-change-labels.ts +5 -23
  546. package/src/admin/plan-change.tsx +7 -44
  547. package/src/admin/reviewer-scope-editor.tsx +3 -3
  548. package/src/auth/auth-errors-labels.ts +23 -0
  549. package/src/auth/auth-errors.ts +11 -38
  550. package/src/auth/complete-name-dialog.tsx +4 -1
  551. package/src/auth/forgot-password-form-labels.ts +1 -1
  552. package/src/auth/forgot-password-form.tsx +11 -6
  553. package/src/auth/register-form-labels.ts +1 -1
  554. package/src/auth/reset-password-form-labels.ts +1 -1
  555. package/src/auth/reset-password-form.tsx +8 -4
  556. package/src/auth/sign-in-form-labels.ts +1 -1
  557. package/src/auth/status-parts.tsx +0 -6
  558. package/src/auth/verify-email-labels.ts +1 -1
  559. package/src/auth/verify-email.tsx +11 -6
  560. package/src/billing/cancel-subscription.tsx +26 -12
  561. package/src/billing/dialog-close.ts +34 -0
  562. package/src/billing/plan-card.tsx +36 -11
  563. package/src/billing/plan-change-labels.ts +66 -0
  564. package/src/billing/plan-switch.tsx +26 -12
  565. package/src/chart.ts +21 -3
  566. package/src/components/account-chips.tsx +20 -23
  567. package/src/components/alert-banner.tsx +82 -5
  568. package/src/components/amount-input.tsx +18 -7
  569. package/src/components/autocomplete.tsx +64 -70
  570. package/src/components/bulk-action-bar.tsx +70 -2
  571. package/src/components/button-look.ts +5 -5
  572. package/src/components/button.tsx +2 -2
  573. package/src/components/chart-edge.ts +34 -1
  574. package/src/components/chart-figure.tsx +35 -0
  575. package/src/components/chart-zoom-core.tsx +6 -5
  576. package/src/components/chart.tsx +26 -5
  577. package/src/components/combobox-core.tsx +293 -62
  578. package/src/components/combobox.tsx +183 -153
  579. package/src/components/copy-button.tsx +34 -23
  580. package/src/components/country-select.tsx +16 -11
  581. package/src/components/data-table-column-settings.tsx +52 -10
  582. package/src/components/data-table-filters.ts +6 -4
  583. package/src/components/data-table-fit.ts +19 -5
  584. package/src/components/data-table-groups.tsx +1 -1
  585. package/src/components/data-table-head.tsx +32 -22
  586. package/src/components/data-table-mobile.tsx +61 -26
  587. package/src/components/data-table-pagination.tsx +21 -6
  588. package/src/components/data-table-resize.ts +1 -1
  589. package/src/components/data-table-row-actions.tsx +3 -3
  590. package/src/components/data-table-row.tsx +25 -14
  591. package/src/components/data-table-selection.ts +1 -1
  592. package/src/components/data-table-shared.tsx +33 -1
  593. package/src/components/data-table-sort.ts +57 -2
  594. package/src/components/data-table-virtual.ts +32 -8
  595. package/src/components/data-table.tsx +239 -68
  596. package/src/components/date-field.tsx +65 -8
  597. package/src/components/date-picker.tsx +125 -48
  598. package/src/components/date-range-picker.tsx +82 -31
  599. package/src/components/error-boundary.tsx +53 -39
  600. package/src/components/field-base-labels.ts +20 -0
  601. package/src/components/field-base.tsx +13 -7
  602. package/src/components/field-sync-labels.ts +1 -0
  603. package/src/components/field-sync.tsx +23 -1
  604. package/src/components/form-actions.tsx +20 -5
  605. package/src/components/hover-menu.tsx +18 -8
  606. package/src/components/icon-button.tsx +14 -9
  607. package/src/components/inline-confirm.tsx +116 -0
  608. package/src/components/inline-entity-combobox.tsx +197 -153
  609. package/src/components/input.tsx +1 -1
  610. package/src/components/jump-calendar.tsx +30 -146
  611. package/src/components/legal-page.tsx +10 -7
  612. package/src/components/legal.tsx +4 -2
  613. package/src/components/lightbox.tsx +21 -8
  614. package/src/components/list.tsx +10 -4
  615. package/src/components/measured-grid.tsx +8 -4
  616. package/src/components/mini-calendar.tsx +6 -5
  617. package/src/components/modal.tsx +6 -1
  618. package/src/components/month-grid.tsx +229 -0
  619. package/src/components/month-picker.tsx +192 -200
  620. package/src/components/multi-select.tsx +21 -9
  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/section-nav.tsx +7 -0
  627. package/src/components/series-chart-axes.ts +3 -3
  628. package/src/components/series-chart-labels.ts +7 -4
  629. package/src/components/series-chart.tsx +178 -69
  630. package/src/components/share-card.tsx +6 -6
  631. package/src/components/sign-chip-labels.ts +1 -0
  632. package/src/components/sign-chip.tsx +10 -1
  633. package/src/components/tabs-labels.ts +13 -0
  634. package/src/components/tabs.tsx +2 -2
  635. package/src/components/toggle-legend.tsx +16 -11
  636. package/src/components/translation-review-editor.tsx +6 -5
  637. package/src/components/translation-review.tsx +4 -3
  638. package/src/components/treemap-labels.ts +39 -0
  639. package/src/components/treemap-layout.ts +210 -0
  640. package/src/components/treemap.tsx +722 -133
  641. package/src/components/use-table-state.ts +12 -9
  642. package/src/data-table.ts +9 -2
  643. package/src/eslint/role-utilities.ts +97 -19
  644. package/src/feedback/feedback-dialog.tsx +30 -19
  645. package/src/feedback/feedback-mutation.ts +41 -0
  646. package/src/feedback/feedback-page-link.ts +90 -0
  647. package/src/feedback/feedback-public-list.tsx +17 -5
  648. package/src/feedback/feedback-replies.tsx +13 -6
  649. package/src/feedback/feedback-row-detail-labels.ts +5 -0
  650. package/src/feedback/feedback-row-detail.tsx +103 -67
  651. package/src/feedback/feedback-status-undo.ts +41 -27
  652. package/src/feedback/feedback-submit-dialog.tsx +2 -2
  653. package/src/feedback/feedback-submit.tsx +21 -7
  654. package/src/feedback/feedback-swipe.tsx +1 -1
  655. package/src/feedback/feedback-table.tsx +86 -38
  656. package/src/feedback/feedback-thread-labels.ts +2 -2
  657. package/src/feedback/feedback-thread.tsx +27 -25
  658. package/src/feedback.ts +42 -0
  659. package/src/hooks/use-focus-trap.ts +8 -24
  660. package/src/hooks/use-hotkey.ts +24 -7
  661. package/src/hooks/use-long-press.ts +16 -2
  662. package/src/hooks/use-media-query.ts +20 -4
  663. package/src/hooks/use-mounted.ts +39 -0
  664. package/src/hooks/use-overlay-history.ts +32 -3
  665. package/src/i18n/defaults.ts +4 -5
  666. package/src/i18n/german.ts +8 -2
  667. package/src/i18n/kit-labels.tsx +9 -2
  668. package/src/i18n/locales/es.ts +8 -2
  669. package/src/i18n/locales/fr.ts +21 -13
  670. package/src/i18n/locales/hu.ts +10 -2
  671. package/src/i18n/locales/it.ts +8 -2
  672. package/src/i18n/locales/zh.ts +9 -2
  673. package/src/i18n/review.ts +5 -0
  674. package/src/index.ts +103 -13
  675. package/src/landing/routing.tsx +14 -10
  676. package/src/lib/broadcast.ts +52 -0
  677. package/src/lib/date-format.ts +89 -13
  678. package/src/lib/day-format.ts +96 -0
  679. package/src/lib/describe-failure.ts +18 -0
  680. package/src/lib/direction.ts +39 -0
  681. package/src/lib/focus-left.ts +156 -0
  682. package/src/lib/format.ts +5 -17
  683. package/src/lib/http-status.ts +38 -0
  684. package/src/lib/intl-cache.ts +25 -0
  685. package/src/lib/isin.ts +10 -0
  686. package/src/lib/iso-day.ts +13 -0
  687. package/src/lib/lazy-with-fallback.ts +82 -0
  688. package/src/lib/path-pattern.ts +55 -0
  689. package/src/lib/reduced-motion.ts +2 -1
  690. package/src/lib/round.ts +7 -2
  691. package/src/lib/safe-storage.ts +48 -6
  692. package/src/lib/session-refresh.ts +1 -1
  693. package/src/lib/share-format.ts +18 -0
  694. package/src/lib/text-case.ts +19 -0
  695. package/src/lib/text-match.ts +57 -2
  696. package/src/lib/thenable.ts +19 -0
  697. package/src/lib/translation-review.ts +13 -5
  698. package/src/notifications/device-zone-report.ts +1 -1
  699. package/src/notifications/notification-bell.tsx +7 -4
  700. package/src/notifications/notification-inbox.tsx +40 -58
  701. package/src/notifications/notification-parts.tsx +3 -4
  702. package/src/notifications/notification-types-setting.tsx +1 -1
  703. package/src/notifications/notifications-labels.ts +7 -0
  704. package/src/notifications/push-device-setting.tsx +1 -1
  705. package/src/notifications/push-devices-setting.tsx +30 -55
  706. package/src/notifications/quiet-hours-setting.tsx +93 -31
  707. package/src/notifications/unsubscribe-panel.tsx +4 -7
  708. package/src/notifications/use-push-device.ts +76 -10
  709. package/src/offline/query-persistence.ts +35 -3
  710. package/src/rhf/fields.tsx +11 -4
  711. package/src/search/command-palette.tsx +2 -4
  712. package/src/search/global-search.tsx +36 -15
  713. package/src/search/use-command-key.ts +13 -12
  714. package/src/search.ts +9 -0
  715. package/src/settings/use-settings-focus.ts +3 -0
  716. package/src/shell/account-menu-language.tsx +27 -5
  717. package/src/shell/account-menu-text-size.tsx +32 -10
  718. package/src/shell/dev-menu.tsx +7 -21
  719. package/src/shell/role-switcher.tsx +7 -0
  720. package/src/shell/top-bar-actions.tsx +1 -1
  721. package/src/shell/top-bar-parts-labels.ts +0 -3
  722. package/src/shell.ts +40 -9
  723. package/src/sync/engine.ts +339 -61
  724. package/src/sync.ts +8 -1
  725. package/src/testing/css-variables.ts +8 -9
  726. package/src/theme/contrast.ts +8 -9
  727. package/src/theme/palette-store.ts +9 -9
  728. package/src/theme/text-size.ts +6 -8
  729. package/src/theme/theme-store.ts +7 -9
  730. package/src/tour/tour-catalogue.tsx +26 -15
  731. package/src/tour/tour-dock.ts +0 -2
  732. package/src/tour/tour-gates.ts +23 -0
  733. package/src/tour/tour-overlay.tsx +1170 -0
  734. package/src/tour/tour.tsx +108 -1202
  735. package/src/tour/use-tour-progress.ts +1 -1
  736. package/src/wizard/stepper-nav.tsx +3 -1
  737. package/src/wizard/types.ts +11 -2
  738. package/src/wizard/use-wizard.ts +2 -1
  739. package/src/wizard/validation.ts +8 -2
  740. package/tokens.css +2 -1
  741. package/dist/components/ui-labels.js.map +0 -1
  742. package/dist/shell/dev-switchers.d.ts +0 -6
  743. package/dist/shell/dev-switchers.js +0 -12
  744. package/dist/shell/dev-switchers.js.map +0 -1
  745. package/src/components/ui-labels.ts +0 -24
  746. package/src/shell/dev-switchers.tsx +0 -18
@@ -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;
@@ -6,11 +6,8 @@ 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
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";
9
+ import { DEFAULT_CHARACTER_COUNT_LABELS, DEFAULT_PASSWORD_REVEAL_LABELS } from "../components/field-base-labels";
10
+ import { DEFAULT_TABS_LABELS } from "../components/tabs-labels";
14
11
  import { DEFAULT_WIZARD_LABELS } from "../wizard/wizard-labels";
15
12
  import { DEFAULT_TOUR_LABELS } from "../tour/tour-labels";
16
13
  import { DEFAULT_TOUR_CATALOGUE_LABELS } from "../tour/tour-catalogue-labels";
@@ -19,6 +16,7 @@ import { DEFAULT_COMMAND_PALETTE_LABELS } from "../search/command-palette-labels
19
16
  import { DEFAULT_GLOBAL_SEARCH_LABELS } from "../search/global-search-labels";
20
17
  import { DEFAULT_SERIES_CHART_LABELS } from "../components/series-chart-labels";
21
18
  import { DEFAULT_PIE_CHART_LABELS } from "../components/pie-chart-labels";
19
+ import { DEFAULT_TREEMAP_LABELS } from "../components/treemap-labels";
22
20
  import { DEFAULT_SPARKLINE_LABELS } from "../components/sparkline-labels";
23
21
  import { DEFAULT_STAT_TILE_LABELS } from "../components/stat-tile-labels";
24
22
  import { DEFAULT_SIGNATURE_PAD_LABELS } from "../components/signature-pad-labels";
@@ -176,6 +174,7 @@ export const DEFAULT_UI_KIT_LABELS: UiKitLabels = {
176
174
  globalSearch: DEFAULT_GLOBAL_SEARCH_LABELS,
177
175
  seriesChart: DEFAULT_SERIES_CHART_LABELS,
178
176
  pieChart: DEFAULT_PIE_CHART_LABELS,
177
+ treemap: DEFAULT_TREEMAP_LABELS,
179
178
  sparkline: DEFAULT_SPARKLINE_LABELS,
180
179
  statTile: DEFAULT_STAT_TILE_LABELS,
181
180
  signaturePad: DEFAULT_SIGNATURE_PAD_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) =>
@@ -749,10 +749,16 @@ export function germanLabels(numberLocale: string): UiKitLabels {
749
749
  pieChart: {
750
750
  slices: "Diagrammsegmente",
751
751
  slice: (label, value, percent) => `${label}: ${value} (${percent})`,
752
+ sliceShare: (label, percent) => `${label}: ${percent}`,
752
753
  total: "Gesamt",
753
754
  empty: "Keine Daten",
754
755
  legend: "Kategorien",
755
756
  },
757
+ treemap: {
758
+ tile: (name, value, share) => `${name}: ${value} (${share})`,
759
+ group: (name, value, share) => `${name}, Gruppe: ${value} (${share})`,
760
+ inGroup: (name, group) => `${name}, in ${group}`,
761
+ },
756
762
  confirmDialog: {
757
763
  confirm: "Bestätigen",
758
764
  cancel: "Abbrechen",
@@ -1303,6 +1309,7 @@ export function germanLabels(numberLocale: string): UiKitLabels {
1303
1309
  stoppedAll: (app) => `Erledigt. Sie erhalten keine Benachrichtigungs-E-Mails von ${app} mehr.`,
1304
1310
  accountMail: "E-Mails zu Ihrem Konto erhalten Sie weiterhin.",
1305
1311
  turnBackOn: "Sie können sie jederzeit in den Einstellungen wieder einschalten.",
1312
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1306
1313
  openSettings: "Einstellungen öffnen",
1307
1314
  invalidLink:
1308
1315
  "Dieser Link funktioniert nicht mehr. Sie können E-Mails stattdessen in den Einstellungen abbestellen.",
@@ -2032,7 +2039,6 @@ export function germanLabels(numberLocale: string): UiKitLabels {
2032
2039
  menu: "Dev-Werkzeuge",
2033
2040
  overridesOn: "Überschreibungen aktiv",
2034
2041
  roleHeading: "Dev · Rolle",
2035
- switchPlan: "Tarif wechseln",
2036
2042
  plan: (value) => `Tarif: ${value}`,
2037
2043
  planHeading: "Dev · Tarif",
2038
2044
  backTo: (role) => `Zurück zu ${role}`,
@@ -33,6 +33,7 @@ import type { MonthPickerLabels } from "../components/month-picker";
33
33
  import type { PageContentsLabels } from "../components/page-contents";
34
34
  import type { SeriesChartLabels } from "../components/series-chart-labels";
35
35
  import type { PieChartLabels } from "../components/pie-chart-labels";
36
+ import type { TreemapLabels } from "../components/treemap-labels";
36
37
  import type { SparklineLabels } from "../components/sparkline";
37
38
  import type { StatTileLabels } from "../components/stat-tile";
38
39
  import type { SignaturePadLabels } from "../components/signature-pad";
@@ -203,7 +204,7 @@ export interface DatePickerLabels {
203
204
  previousDay: string;
204
205
  nextDay: string;
205
206
  today: string;
206
- /** `DateRangePicker commit="apply"`: the button that commits the drafted range. */
207
+ /** `DateRangePicker apply`: the button that commits the drafted range. */
207
208
  apply: string;
208
209
  /** …and the one that discards it. */
209
210
  cancel: string;
@@ -283,6 +284,8 @@ export interface TopBarLabels {
283
284
  /** 0.49 KIT-10: the language menu's trigger, given the current language's name —
284
285
  * "Choose language, current: Deutsch". */
285
286
  languageCurrent: (name: string) => string;
287
+ /** RoleSwitcher's name, and nothing else reads it (DevMenu's flask is `topBarParts.dev`).
288
+ * @deprecated 0.52 — none: it goes with RoleSwitcher (MOD-5); removed in 0.53. */
286
289
  switchRole: string;
287
290
  /** The role switcher's tooltip, given the active role's name. */
288
291
  role: (value: string) => string;
@@ -319,6 +322,7 @@ export interface UiKitLabels {
319
322
  calculator: CalculatorLabels;
320
323
  currency: CurrencyLabels;
321
324
  chipInput: ChipInputLabels;
325
+ /** @deprecated 0.52 — none: it goes with the FieldSync family (MOD-5); removed in 0.53. */
322
326
  fieldSync: FieldSyncLabels;
323
327
  passwordReveal: PasswordRevealLabels;
324
328
  tabs: TabsLabels;
@@ -338,6 +342,8 @@ export interface UiKitLabels {
338
342
  globalSearch: GlobalSearchLabels;
339
343
  seriesChart: SeriesChartLabels;
340
344
  pieChart: PieChartLabels;
345
+ /** 0.52: a tile's accessible name (refactor audit 2026-10-30, DSP-5). */
346
+ treemap: TreemapLabels;
341
347
  sparkline: SparklineLabels;
342
348
  statTile: StatTileLabels;
343
349
  signaturePad: SignaturePadLabels;
@@ -481,7 +487,8 @@ export interface UiKitLabels {
481
487
  ibanInput: IbanInputLabels;
482
488
  /** 0.22.0: `PhoneInput`'s country-code select. */
483
489
  phoneInput: PhoneInputLabels;
484
- /** 0.22.0: `SignChip` — the outflow / inflow toggle beside an amount. */
490
+ /** 0.22.0: `SignChip` — the outflow / inflow toggle beside an amount.
491
+ * @deprecated 0.52 — none: it goes with SignChip (MOD-5); removed in 0.53. */
485
492
  signChip: SignChipLabels;
486
493
  /** 0.23.0: `ColumnMapper` / `ColumnRoleTable` — a pasted or dropped table, a role per
487
494
  * column. */
@@ -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) =>
@@ -737,10 +737,16 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
737
737
  pieChart: {
738
738
  slices: "Sectores del gráfico",
739
739
  slice: (label, value, percent) => `${label}: ${value} (${percent})`,
740
+ sliceShare: (label, percent) => `${label}: ${percent}`,
740
741
  total: "Total",
741
742
  empty: "Sin datos",
742
743
  legend: "Categorías",
743
744
  },
745
+ treemap: {
746
+ tile: (name, value, share) => `${name}: ${value} (${share})`,
747
+ group: (name, value, share) => `${name}, grupo: ${value} (${share})`,
748
+ inGroup: (name, group) => `${name}, en ${group}`,
749
+ },
744
750
  confirmDialog: {
745
751
  confirm: "Confirmar",
746
752
  cancel: "Cancelar",
@@ -1276,6 +1282,7 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1276
1282
  stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,
1277
1283
  accountMail: "Los correos sobre su cuenta seguirán llegando.",
1278
1284
  turnBackOn: "Puede volver a activarlos en cualquier momento en los ajustes.",
1285
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1279
1286
  openSettings: "Abrir los ajustes",
1280
1287
  invalidLink: "Este enlace ya no funciona. Puede desactivar los correos en los ajustes.",
1281
1288
  failed: "No ha funcionado. Inténtelo de nuevo.",
@@ -1970,7 +1977,6 @@ export function uiKitLabelsEs(numberLocale = "es-ES"): UiKitLabels {
1970
1977
  menu: "Herramientas de desarrollo",
1971
1978
  overridesOn: "Anulaciones activas",
1972
1979
  roleHeading: "Dev · rol",
1973
- switchPlan: "Cambiar de plan",
1974
1980
  plan: (value) => `Plan: ${value}`,
1975
1981
  planHeading: "Dev · plan",
1976
1982
  backTo: (role) => `Volver a ${role}`,
@@ -15,7 +15,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
15
15
  const n = (value: number) => num.format(value);
16
16
  const plural = (count: number, one: string, many: string) => (count < 2 ? one : many);
17
17
  // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
18
- // src/auth/auth-errors.ts: no wait → "un instant", under a minute → seconds, else
18
+ // src/auth/auth-errors-labels.ts: no wait → "un instant", under a minute → seconds, else
19
19
  // minutes rounded up. kastlan's reviewed "auth.throttled" is the sentence without one.
20
20
  const wait = (seconds: number) =>
21
21
  seconds < 60 ? `${n(Math.ceil(seconds))}\u00a0s` : `${n(Math.ceil(seconds / 60))}\u00a0min`;
@@ -39,9 +39,11 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
39
39
  attachmentScreenshot: "Capture d’écran",
40
40
  attachmentRemoveFile: (name) => `Retirer ${name}`,
41
41
  attachmentLimit: (max) =>
42
- max === 1
43
- ? `${n(max)} pièce jointe au maximum — retirez-la pour en ajouter une autre.`
44
- : `${n(max)} pièces jointes au maximum — retirez-en une pour en ajouter une autre.`,
42
+ plural(
43
+ max,
44
+ `${n(max)} pièce jointe au maximum — retirez-la pour en ajouter une autre.`,
45
+ `${n(max)} pièces jointes au maximum — retirez-en une pour en ajouter une autre.`,
46
+ ),
45
47
  attachmentUploading: "Envoi en cours…",
46
48
  attachmentUploadFailed: (name) => `«\u202f${name}\u202f» n’a pas pu être envoyé`,
47
49
  },
@@ -123,9 +125,9 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
123
125
  sortUpdated: "Mis à jour récemment",
124
126
  search: "Rechercher dans les titres",
125
127
  columnVotes: "Votes",
126
- total: (count) => (count === 1 ? "1 retour" : `${n(count)} retours`),
127
- comments: (count) => (count === 1 ? "1 commentaire" : `${n(count)} commentaires`),
128
- votes: (count) => (count === 1 ? "1 vote" : `${n(count)} votes`),
128
+ total: (count) => `${n(count)} ${plural(count, "retour", "retours")}`,
129
+ comments: (count) => `${n(count)} ${plural(count, "commentaire", "commentaires")}`,
130
+ votes: (count) => `${n(count)} ${plural(count, "vote", "votes")}`,
129
131
  anonymous: "Une personne",
130
132
  filedBy: (name) => `De ${name}`,
131
133
  body: "Description",
@@ -168,7 +170,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
168
170
  // An id, not a count: printed as it is, like the "#" column.
169
171
  userFallback: (id) => `utilisateur #${id}`,
170
172
  environment: (environment) => String(environment ?? "").toUpperCase(),
171
- reworkChip: (count) => (count === 1 ? "Reprise" : `Reprise ×${n(count)}`),
173
+ reworkChip: (count) => plural(count, "Reprise", `Reprise ×${n(count)}`),
172
174
  awaitingFilter: "Seulement ce qui vous attend",
173
175
  phoneActions: "Actions sur les retours",
174
176
  },
@@ -420,7 +422,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
420
422
  less: "Moins",
421
423
  more: "Plus",
422
424
  truncated: (count) =>
423
- `Affichage des jours les plus récents ; ${n(count)} ${count === 1 ? "jour antérieur n’est pas affiché" : "jours antérieurs ne sont pas affichés"}.`,
425
+ `Affichage des jours les plus récents ; ${n(count)} ${plural(count, "jour antérieur n’est pas affiché", "jours antérieurs ne sont pas affichés")}.`,
424
426
  },
425
427
  datePicker: {
426
428
  apply: "Appliquer",
@@ -556,7 +558,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
556
558
  close: "Fermer",
557
559
  },
558
560
  bulkActionBar: {
559
- selected: (count) => `${n(count)} ${count === 1 ? "sélectionné" : "sélectionnés"}`,
561
+ selected: (count) => `${n(count)} ${plural(count, "sélectionné", "sélectionnés")}`,
560
562
  clear: "Effacer la sélection",
561
563
  cleared: "Sélection effacée",
562
564
  },
@@ -654,7 +656,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
654
656
  badgeUpdated: "Mise à jour",
655
657
  resetOn: (date, reason) => (reason ? `Réinitialisée le ${date}\u202f: ${reason}` : `Réinitialisée le ${date}`),
656
658
  points: (count) => `+${n(count)} pts`,
657
- steps: (count) => (count === 1 ? `${n(count)} étape` : `${n(count)} étapes`),
659
+ steps: (count) => `${n(count)} ${plural(count, "étape", "étapes")}`,
658
660
  duration: (minutes) => `Environ ${n(minutes)} min`,
659
661
  completedOn: (date) => `Terminée le ${date}`,
660
662
  completed: "Terminée",
@@ -746,10 +748,16 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
746
748
  pieChart: {
747
749
  slices: "Secteurs du graphique",
748
750
  slice: (label, value, percent) => `${label}\u00a0: ${value} (${percent})`,
751
+ sliceShare: (label, percent) => `${label}\u00a0: ${percent}`,
749
752
  total: "Total",
750
753
  empty: "Aucune donnée",
751
754
  legend: "Catégories",
752
755
  },
756
+ treemap: {
757
+ tile: (name, value, share) => `${name}\u00a0: ${value} (${share})`,
758
+ group: (name, value, share) => `${name}, groupe\u00a0: ${value} (${share})`,
759
+ inGroup: (name, group) => `${name}, dans ${group}`,
760
+ },
753
761
  confirmDialog: {
754
762
  confirm: "Confirmer",
755
763
  cancel: "Annuler",
@@ -1286,7 +1294,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1286
1294
  clearPrompt: "Supprimer toutes les notifications de votre boîte de réception\u202f?",
1287
1295
  showMore: "Afficher plus",
1288
1296
  bellLabel: "Notifications",
1289
- bellUnread: (count) => (count === 1 ? `${n(count)} non lue` : `${n(count)} non lues`),
1297
+ bellUnread: (count) => `${n(count)} ${plural(count, "non lue", "non lues")}`,
1290
1298
  allNotifications: "Toutes les notifications",
1291
1299
  unsubscribeTitle: "Notifications par e-mail",
1292
1300
  unsubscribeAbout: (type) => `Vous recevez des e-mails concernant\u00a0: ${type}.`,
@@ -1297,6 +1305,7 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
1297
1305
  stoppedAll: (app) => `C’est fait. Vous ne recevrez plus d’e-mails de notification de ${app}.`,
1298
1306
  accountMail: "Les e-mails concernant votre compte continuent d’arriver.",
1299
1307
  turnBackOn: "Vous pouvez les réactiver à tout moment dans les paramètres.",
1308
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1300
1309
  openSettings: "Ouvrir les paramètres",
1301
1310
  invalidLink: "Ce lien ne fonctionne plus. Vous pouvez désactiver les e-mails dans les paramètres.",
1302
1311
  failed: "Cela n’a pas fonctionné. Veuillez réessayer.",
@@ -2006,7 +2015,6 @@ export function uiKitLabelsFr(numberLocale = "fr-FR"): UiKitLabels {
2006
2015
  menu: "Outils de dev",
2007
2016
  overridesOn: "Forçages actifs",
2008
2017
  roleHeading: "Dev · rôle",
2009
- switchPlan: "Changer de formule",
2010
2018
  plan: (value) => `Formule\u00a0: ${value}`,
2011
2019
  planHeading: "Dev · formule",
2012
2020
  backTo: (role) => `Revenir à ${role}`,
@@ -14,7 +14,7 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
14
14
  const num = new Intl.NumberFormat(numberLocale);
15
15
  const n = (value: number) => num.format(value);
16
16
  // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
17
- // src/auth/auth-errors.ts: no wait → "egy kicsit", under a minute → seconds, else
17
+ // src/auth/auth-errors-labels.ts: no wait → "egy kicsit", under a minute → seconds, else
18
18
  // minutes rounded up. The numeral stays bare before its unit ("30 mp múlva").
19
19
  const wait = (seconds: number) =>
20
20
  seconds < 60 ? `${n(Math.ceil(seconds))} mp` : `${n(Math.ceil(seconds / 60))} perc`;
@@ -736,10 +736,18 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
736
736
  pieChart: {
737
737
  slices: "Diagramszeletek",
738
738
  slice: (label, value, percent) => `${label}: ${value} (${percent})`,
739
+ sliceShare: (label, percent) => `${label}: ${percent}`,
739
740
  total: "Összesen",
740
741
  empty: "Nincs adat",
741
742
  legend: "Kategóriák",
742
743
  },
744
+ treemap: {
745
+ tile: (name, value, share) => `${name}: ${value} (${share})`,
746
+ // Appositive, not a case ending: "-ban/-ben" and the article follow the name's own
747
+ // sounds, which a template cannot know.
748
+ group: (name, value, share) => `${name} csoport: ${value} (${share})`,
749
+ inGroup: (name, group) => `${name}, ${group} csoport`,
750
+ },
743
751
  confirmDialog: {
744
752
  confirm: "Megerősítés",
745
753
  cancel: "Mégse",
@@ -1281,6 +1289,7 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1281
1289
  stoppedAll: (app) => `Kész. A(z) ${app} értesítő e-mailjeit többé nem kapja meg.`,
1282
1290
  accountMail: "A fiókjával kapcsolatos e-maileket továbbra is megkapja.",
1283
1291
  turnBackOn: "A beállításokban bármikor újra bekapcsolhatja őket.",
1292
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1284
1293
  openSettings: "Beállítások megnyitása",
1285
1294
  invalidLink: "Ez a link már nem működik. Az e-maileket a beállításokban is kikapcsolhatja.",
1286
1295
  failed: "Ez nem sikerült. Kérjük, próbálja újra.",
@@ -1977,7 +1986,6 @@ export function uiKitLabelsHu(numberLocale = "hu-HU"): UiKitLabels {
1977
1986
  menu: "Fejlesztői eszközök",
1978
1987
  overridesOn: "Felülbírálások bekapcsolva",
1979
1988
  roleHeading: "Dev · szerepkör",
1980
- switchPlan: "Csomag váltása",
1981
1989
  plan: (value) => `Csomag: ${value}`,
1982
1990
  planHeading: "Dev · csomag",
1983
1991
  backTo: (role) => `Vissza: ${role}`,
@@ -15,7 +15,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): 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. kastlan's reviewed "auth.throttled" is the sentence without one.
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) =>
@@ -739,10 +739,16 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
739
739
  pieChart: {
740
740
  slices: "Settori del grafico",
741
741
  slice: (label, value, percent) => `${label}: ${value} (${percent})`,
742
+ sliceShare: (label, percent) => `${label}: ${percent}`,
742
743
  total: "Totale",
743
744
  empty: "Nessun dato",
744
745
  legend: "Categorie",
745
746
  },
747
+ treemap: {
748
+ tile: (name, value, share) => `${name}: ${value} (${share})`,
749
+ group: (name, value, share) => `${name}, gruppo: ${value} (${share})`,
750
+ inGroup: (name, group) => `${name}, in ${group}`,
751
+ },
746
752
  confirmDialog: {
747
753
  confirm: "Conferma",
748
754
  cancel: "Annulla",
@@ -1284,6 +1290,7 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1284
1290
  stoppedAll: (app) => `Fatto. Non riceverà più e-mail di notifica da ${app}.`,
1285
1291
  accountMail: "Le e-mail sul Suo account continuano ad arrivare.",
1286
1292
  turnBackOn: "Può riattivarle in qualsiasi momento nelle impostazioni.",
1293
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail} ${turnBackOn}`,
1287
1294
  openSettings: "Apri le impostazioni",
1288
1295
  invalidLink: "Questo link non funziona più. Può disattivare le e-mail nelle impostazioni.",
1289
1296
  failed: "Non ha funzionato. Riprovi.",
@@ -1986,7 +1993,6 @@ export function uiKitLabelsIt(numberLocale = "it-IT"): UiKitLabels {
1986
1993
  menu: "Strumenti di sviluppo",
1987
1994
  overridesOn: "Override attivi",
1988
1995
  roleHeading: "Dev · ruolo",
1989
- switchPlan: "Cambia piano",
1990
1996
  plan: (value) => `Piano: ${value}`,
1991
1997
  planHeading: "Dev · piano",
1992
1998
  backTo: (role) => `Torna a ${role}`,
@@ -14,7 +14,7 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
14
14
  const num = new Intl.NumberFormat(numberLocale);
15
15
  const n = (value: number) => num.format(value);
16
16
  // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in
17
- // src/auth/auth-errors.ts: no wait → "稍候", under a minute → seconds, else minutes
17
+ // src/auth/auth-errors-labels.ts: no wait → "稍候", under a minute → seconds, else minutes
18
18
  // rounded up. The numeral has a space either side, as everywhere in this catalogue.
19
19
  const wait = (seconds: number) =>
20
20
  seconds < 60 ? `${n(Math.ceil(seconds))} 秒` : `${n(Math.ceil(seconds / 60))} 分钟`;
@@ -720,10 +720,16 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
720
720
  pieChart: {
721
721
  slices: "图表扇区",
722
722
  slice: (label, value, percent) => `${label}:${value}(${percent})`,
723
+ sliceShare: (label, percent) => `${label}:${percent}`,
723
724
  total: "合计",
724
725
  empty: "无数据",
725
726
  legend: "类别",
726
727
  },
728
+ treemap: {
729
+ tile: (name, value, share) => `${name}:${value}(${share})`,
730
+ group: (name, value, share) => `${name}(组):${value}(${share})`,
731
+ inGroup: (name, group) => `${name},属于${group}`,
732
+ },
727
733
  confirmDialog: {
728
734
  confirm: "确认",
729
735
  cancel: "取消",
@@ -1244,6 +1250,8 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1244
1250
  stoppedAll: (app) => `已完成。您将不再收到来自 ${app} 的通知邮件。`,
1245
1251
  accountMail: "有关您账户的邮件仍会照常发送。",
1246
1252
  turnBackOn: "您可以随时在“设置”中重新开启。",
1253
+ // Chinese puts no space between sentences (refactor audit 2026-10-30, DOC-11).
1254
+ stoppedHint: (accountMail, turnBackOn) => `${accountMail}${turnBackOn}`,
1247
1255
  openSettings: "打开设置",
1248
1256
  invalidLink: "此链接已失效。您可以改为在“设置”中关闭这些邮件。",
1249
1257
  failed: "操作未成功,请重试。",
@@ -1888,7 +1896,6 @@ export function uiKitLabelsZh(numberLocale = "zh-CN"): UiKitLabels {
1888
1896
  menu: "开发工具",
1889
1897
  overridesOn: "覆盖已开启",
1890
1898
  roleHeading: "开发 · 角色",
1891
- switchPlan: "切换套餐",
1892
1899
  plan: (value) => `套餐:${value}`,
1893
1900
  planHeading: "开发 · 套餐",
1894
1901
  backTo: (role) => `返回 ${role}`,
@@ -162,6 +162,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
162
162
  "tour.backToStep": [["{{title}}"]],
163
163
  "globalSearch.shortcut": [["{{keys}}"]],
164
164
  "pieChart.slice": [["{{label}}", "{{value}}", "{{percent}}"]],
165
+ "pieChart.sliceShare": [["{{label}}", "{{percent}}"]],
166
+ "treemap.tile": [["{{name}}", "{{value}}", "{{share}}"]],
167
+ "treemap.group": [["{{name}}", "{{value}}", "{{share}}"]],
168
+ "treemap.inGroup": [["{{name}}", "{{group}}"]],
165
169
  "sparkline.rising": [["{{first}}", "{{last}}"]],
166
170
  "sparkline.falling": [["{{first}}", "{{last}}"]],
167
171
  "sparkline.flat": [["{{value}}"]],
@@ -352,6 +356,7 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
352
356
  "notifications.unsubscribeAbout": [["{{type}}"]],
353
357
  "notifications.stopAll": [["{{app}}"]],
354
358
  "notifications.stoppedAll": [["{{app}}"]],
359
+ "notifications.stoppedHint": [["{{accountMail}}", "{{turnBackOn}}"]],
355
360
  "deleteAccount.afterDays": [[1], [30]],
356
361
  "deleteAccount.handOver": [[1], [3]],
357
362
  "deleteAccount.lastAdminOf": [["{{companies}}"]],