@eifi1/ui-kit 0.53.0 → 0.55.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 (902) hide show
  1. package/README.md +96 -82
  2. package/dist/account/delete-account-setting.d.ts +3 -2
  3. package/dist/account/delete-account-setting.js.map +1 -1
  4. package/dist/admin/plan-change.js +2 -2
  5. package/dist/admin/plan-change.js.map +1 -1
  6. package/dist/admin/user-roster.d.ts +6 -0
  7. package/dist/admin/user-roster.js +4 -0
  8. package/dist/admin/user-roster.js.map +1 -1
  9. package/dist/auth/auth-errors.d.ts +36 -0
  10. package/dist/auth/auth-errors.js +20 -0
  11. package/dist/auth/auth-errors.js.map +1 -1
  12. package/dist/billing/billing-labels.d.ts +26 -0
  13. package/dist/billing/billing-labels.js +9 -0
  14. package/dist/billing/billing-labels.js.map +1 -1
  15. package/dist/billing/subscription-standing.d.ts +61 -0
  16. package/dist/billing/subscription-standing.js +51 -0
  17. package/dist/billing/subscription-standing.js.map +1 -0
  18. package/dist/billing/usage-meter.d.ts +52 -0
  19. package/dist/billing/usage-meter.js +52 -0
  20. package/dist/billing/usage-meter.js.map +1 -0
  21. package/dist/chart.d.ts +1 -0
  22. package/dist/chart.js +4 -0
  23. package/dist/chart.js.map +1 -1
  24. package/dist/components/alert-banner.js +2 -3
  25. package/dist/components/alert-banner.js.map +1 -1
  26. package/dist/components/amount-input.d.ts +2 -1
  27. package/dist/components/amount-input.js +3 -15
  28. package/dist/components/amount-input.js.map +1 -1
  29. package/dist/components/autocomplete.js +2 -2
  30. package/dist/components/autocomplete.js.map +1 -1
  31. package/dist/components/bulk-action-bar.js +2 -1
  32. package/dist/components/bulk-action-bar.js.map +1 -1
  33. package/dist/components/button.d.ts +35 -1
  34. package/dist/components/button.js +5 -9
  35. package/dist/components/button.js.map +1 -1
  36. package/dist/components/calendar-heatmap.js +6 -4
  37. package/dist/components/calendar-heatmap.js.map +1 -1
  38. package/dist/components/camera-button.d.ts +89 -0
  39. package/dist/components/camera-button.js +122 -0
  40. package/dist/components/camera-button.js.map +1 -0
  41. package/dist/components/camera-capture.d.ts +66 -0
  42. package/dist/components/camera-capture.js +190 -0
  43. package/dist/components/camera-capture.js.map +1 -0
  44. package/dist/components/camera-labels.d.ts +20 -0
  45. package/dist/components/camera-labels.js +15 -0
  46. package/dist/components/camera-labels.js.map +1 -0
  47. package/dist/components/chart-edge.d.ts +9 -0
  48. package/dist/components/chart-edge.js +14 -3
  49. package/dist/components/chart-edge.js.map +1 -1
  50. package/dist/components/chart-zoom-core.js +34 -29
  51. package/dist/components/chart-zoom-core.js.map +1 -1
  52. package/dist/components/checkbox-group.js +1 -1
  53. package/dist/components/checkbox-group.js.map +1 -1
  54. package/dist/components/combobox-core.js +3 -2
  55. package/dist/components/combobox-core.js.map +1 -1
  56. package/dist/components/combobox.js +2 -2
  57. package/dist/components/combobox.js.map +1 -1
  58. package/dist/components/consent-again-notice-labels.d.ts +25 -0
  59. package/dist/components/consent-again-notice-labels.js +15 -0
  60. package/dist/components/consent-again-notice-labels.js.map +1 -0
  61. package/dist/components/consent-again-notice.d.ts +85 -0
  62. package/dist/components/consent-again-notice.js +94 -0
  63. package/dist/components/consent-again-notice.js.map +1 -0
  64. package/dist/components/country-select.js +2 -7
  65. package/dist/components/country-select.js.map +1 -1
  66. package/dist/components/currency-option-list.d.ts +2 -1
  67. package/dist/components/currency-option-list.js +10 -3
  68. package/dist/components/currency-option-list.js.map +1 -1
  69. package/dist/components/currency-select.d.ts +3 -1
  70. package/dist/components/currency-select.js +2 -2
  71. package/dist/components/currency-select.js.map +1 -1
  72. package/dist/components/danger-confirm.d.ts +22 -1
  73. package/dist/components/danger-confirm.js +52 -30
  74. package/dist/components/danger-confirm.js.map +1 -1
  75. package/dist/components/data-table-column-settings.js +2 -2
  76. package/dist/components/data-table-column-settings.js.map +1 -1
  77. package/dist/components/data-table-filter-popover.d.ts +2 -1
  78. package/dist/components/data-table-filter-popover.js +3 -2
  79. package/dist/components/data-table-filter-popover.js.map +1 -1
  80. package/dist/components/data-table-filters.d.ts +33 -3
  81. package/dist/components/data-table-filters.js +6 -4
  82. package/dist/components/data-table-filters.js.map +1 -1
  83. package/dist/components/data-table-fit.js.map +1 -1
  84. package/dist/components/data-table-virtual.js +13 -3
  85. package/dist/components/data-table-virtual.js.map +1 -1
  86. package/dist/components/date-field.js +2 -2
  87. package/dist/components/date-field.js.map +1 -1
  88. package/dist/components/date-picker.js +2 -2
  89. package/dist/components/date-picker.js.map +1 -1
  90. package/dist/components/date-range-picker.js +2 -6
  91. package/dist/components/date-range-picker.js.map +1 -1
  92. package/dist/components/dialog-frame.d.ts +5 -1
  93. package/dist/components/dialog-frame.js +6 -2
  94. package/dist/components/dialog-frame.js.map +1 -1
  95. package/dist/components/dropdown.js +7 -3
  96. package/dist/components/dropdown.js.map +1 -1
  97. package/dist/components/entity-combobox.js +2 -2
  98. package/dist/components/entity-combobox.js.map +1 -1
  99. package/dist/components/field-parts.d.ts +108 -6
  100. package/dist/components/field-parts.js +59 -6
  101. package/dist/components/field-parts.js.map +1 -1
  102. package/dist/components/field-suggestion-labels.d.ts +2 -0
  103. package/dist/components/field-suggestion-labels.js +10 -0
  104. package/dist/components/field-suggestion-labels.js.map +1 -0
  105. package/dist/components/field.js +1 -1
  106. package/dist/components/field.js.map +1 -1
  107. package/dist/components/file-button.d.ts +1 -1
  108. package/dist/components/file-button.js.map +1 -1
  109. package/dist/components/floating-panel.d.ts +7 -6
  110. package/dist/components/floating-panel.js +3 -17
  111. package/dist/components/floating-panel.js.map +1 -1
  112. package/dist/components/form-actions.d.ts +3 -2
  113. package/dist/components/form-actions.js.map +1 -1
  114. package/dist/components/hover-menu.js +3 -2
  115. package/dist/components/hover-menu.js.map +1 -1
  116. package/dist/components/icon-button.d.ts +23 -5
  117. package/dist/components/icon-button.js +6 -8
  118. package/dist/components/icon-button.js.map +1 -1
  119. package/dist/components/inline-confirm.js +2 -1
  120. package/dist/components/inline-confirm.js.map +1 -1
  121. package/dist/components/inline-entity-combobox.js +2 -2
  122. package/dist/components/inline-entity-combobox.js.map +1 -1
  123. package/dist/components/input.js +2 -2
  124. package/dist/components/input.js.map +1 -1
  125. package/dist/components/jump-calendar.js +3 -3
  126. package/dist/components/jump-calendar.js.map +1 -1
  127. package/dist/components/legal.d.ts +13 -1
  128. package/dist/components/legal.js +12 -0
  129. package/dist/components/legal.js.map +1 -1
  130. package/dist/components/legended-series-chart.d.ts +80 -0
  131. package/dist/components/legended-series-chart.js +70 -0
  132. package/dist/components/legended-series-chart.js.map +1 -0
  133. package/dist/components/lightbox.js +2 -1
  134. package/dist/components/lightbox.js.map +1 -1
  135. package/dist/components/mini-calendar.js +16 -7
  136. package/dist/components/mini-calendar.js.map +1 -1
  137. package/dist/components/modal.d.ts +48 -0
  138. package/dist/components/modal.js +26 -6
  139. package/dist/components/modal.js.map +1 -1
  140. package/dist/components/month-picker.d.ts +1 -1
  141. package/dist/components/month-picker.js +6 -6
  142. package/dist/components/month-picker.js.map +1 -1
  143. package/dist/components/multi-entity-combobox.js +2 -2
  144. package/dist/components/multi-entity-combobox.js.map +1 -1
  145. package/dist/components/multi-select.js +2 -6
  146. package/dist/components/multi-select.js.map +1 -1
  147. package/dist/components/number-input.js +2 -2
  148. package/dist/components/number-input.js.map +1 -1
  149. package/dist/components/page-header-layout.d.ts +18 -0
  150. package/dist/components/page-header-layout.js +23 -0
  151. package/dist/components/page-header-layout.js.map +1 -0
  152. package/dist/components/page-header-skeleton.d.ts +41 -0
  153. package/dist/components/page-header-skeleton.js +52 -0
  154. package/dist/components/page-header-skeleton.js.map +1 -0
  155. package/dist/components/page-header.js +4 -17
  156. package/dist/components/page-header.js.map +1 -1
  157. package/dist/components/popover.js +7 -2
  158. package/dist/components/popover.js.map +1 -1
  159. package/dist/components/release-notes-labels.d.ts +16 -0
  160. package/dist/components/release-notes-labels.js +18 -0
  161. package/dist/components/release-notes-labels.js.map +1 -0
  162. package/dist/components/release-notes.d.ts +65 -0
  163. package/dist/components/release-notes.js +65 -0
  164. package/dist/components/release-notes.js.map +1 -0
  165. package/dist/components/select.js +2 -2
  166. package/dist/components/select.js.map +1 -1
  167. package/dist/components/series-chart-labels.d.ts +9 -0
  168. package/dist/components/series-chart-labels.js +3 -1
  169. package/dist/components/series-chart-labels.js.map +1 -1
  170. package/dist/components/series-chart.d.ts +5 -0
  171. package/dist/components/series-chart.js +89 -36
  172. package/dist/components/series-chart.js.map +1 -1
  173. package/dist/components/stat-tile.d.ts +21 -2
  174. package/dist/components/stat-tile.js +4 -2
  175. package/dist/components/stat-tile.js.map +1 -1
  176. package/dist/components/toggle-group.js +3 -2
  177. package/dist/components/toggle-group.js.map +1 -1
  178. package/dist/components/treemap-layout.js.map +1 -1
  179. package/dist/components/treemap.d.ts +17 -15
  180. package/dist/components/treemap.js +167 -85
  181. package/dist/components/treemap.js.map +1 -1
  182. package/dist/currencies.d.ts +16 -2
  183. package/dist/currencies.js +2 -1
  184. package/dist/currencies.js.map +1 -1
  185. package/dist/eslint/index.js +1 -1
  186. package/dist/eslint/role-utilities.d.ts +2 -2
  187. package/dist/eslint/role-utilities.js.map +1 -1
  188. package/dist/feedback/feedback-context-labels.js +2 -1
  189. package/dist/feedback/feedback-context-labels.js.map +1 -1
  190. package/dist/feedback/feedback-context.d.ts +19 -3
  191. package/dist/feedback/feedback-context.js +12 -1
  192. package/dist/feedback/feedback-context.js.map +1 -1
  193. package/dist/feedback/feedback-diagnostics.d.ts +17 -0
  194. package/dist/feedback/feedback-diagnostics.js +27 -0
  195. package/dist/feedback/feedback-diagnostics.js.map +1 -0
  196. package/dist/feedback/feedback-dialog.d.ts +10 -0
  197. package/dist/feedback/feedback-dialog.js +6 -4
  198. package/dist/feedback/feedback-dialog.js.map +1 -1
  199. package/dist/feedback/feedback-inbox-page.d.ts +260 -0
  200. package/dist/feedback/feedback-inbox-page.js +207 -0
  201. package/dist/feedback/feedback-inbox-page.js.map +1 -0
  202. package/dist/feedback/feedback-record.d.ts +5 -0
  203. package/dist/feedback/feedback-record.js.map +1 -1
  204. package/dist/feedback/feedback-row-detail-labels.js +1 -0
  205. package/dist/feedback/feedback-row-detail-labels.js.map +1 -1
  206. package/dist/feedback/feedback-row-detail.d.ts +3 -0
  207. package/dist/feedback/feedback-row-detail.js +3 -0
  208. package/dist/feedback/feedback-row-detail.js.map +1 -1
  209. package/dist/feedback/feedback-submit-dialog.d.ts +5 -1
  210. package/dist/feedback/feedback-submit-dialog.js +15 -3
  211. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  212. package/dist/feedback/feedback-submit.d.ts +30 -2
  213. package/dist/feedback/feedback-submit.js +5 -2
  214. package/dist/feedback/feedback-submit.js.map +1 -1
  215. package/dist/feedback/feedback-vocabulary.js +2 -2
  216. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  217. package/dist/feedback.d.ts +1 -0
  218. package/dist/feedback.js +6 -0
  219. package/dist/feedback.js.map +1 -1
  220. package/dist/hooks/use-debounce.d.ts +32 -5
  221. package/dist/hooks/use-debounce.js +6 -5
  222. package/dist/hooks/use-debounce.js.map +1 -1
  223. package/dist/hooks/use-file-picker.d.ts +3 -1
  224. package/dist/hooks/use-file-picker.js.map +1 -1
  225. package/dist/hooks/use-focus-trap.d.ts +19 -3
  226. package/dist/hooks/use-focus-trap.js +15 -5
  227. package/dist/hooks/use-focus-trap.js.map +1 -1
  228. package/dist/hooks/use-has-camera.d.ts +36 -0
  229. package/dist/hooks/use-has-camera.js +53 -0
  230. package/dist/hooks/use-has-camera.js.map +1 -0
  231. package/dist/hooks/use-hotkey.js +2 -1
  232. package/dist/hooks/use-hotkey.js.map +1 -1
  233. package/dist/hooks/use-overlay-history.d.ts +6 -1
  234. package/dist/hooks/use-overlay-history.js +10 -2
  235. package/dist/hooks/use-overlay-history.js.map +1 -1
  236. package/dist/i18n/defaults.js +11 -1
  237. package/dist/i18n/defaults.js.map +1 -1
  238. package/dist/i18n/german.js +78 -4
  239. package/dist/i18n/german.js.map +1 -1
  240. package/dist/i18n/kit-labels.d.ts +20 -0
  241. package/dist/i18n/kit-labels.js.map +1 -1
  242. package/dist/i18n/locales/en.js +95 -5
  243. package/dist/i18n/locales/en.js.map +3 -3
  244. package/dist/i18n/locales/es.js +74 -4
  245. package/dist/i18n/locales/es.js.map +1 -1
  246. package/dist/i18n/locales/fr.js +75 -3
  247. package/dist/i18n/locales/fr.js.map +1 -1
  248. package/dist/i18n/locales/hu.js +77 -4
  249. package/dist/i18n/locales/hu.js.map +1 -1
  250. package/dist/i18n/locales/it.js +77 -4
  251. package/dist/i18n/locales/it.js.map +1 -1
  252. package/dist/i18n/locales/zh.js +74 -4
  253. package/dist/i18n/locales/zh.js.map +1 -1
  254. package/dist/i18n/review.js +22 -1
  255. package/dist/i18n/review.js.map +1 -1
  256. package/dist/index.d.ts +27 -8
  257. package/dist/index.js +41 -2
  258. package/dist/index.js.map +1 -1
  259. package/dist/landing/landing-labels.d.ts +8 -0
  260. package/dist/landing/landing-labels.js +2 -1
  261. package/dist/landing/landing-labels.js.map +1 -1
  262. package/dist/lib/changelog.d.ts +130 -0
  263. package/dist/lib/changelog.js +137 -0
  264. package/dist/lib/changelog.js.map +1 -0
  265. package/dist/lib/clipboard-minus.js +2 -2
  266. package/dist/lib/clipboard-minus.js.map +1 -1
  267. package/dist/lib/dates.d.ts +36 -4
  268. package/dist/lib/dates.js +49 -13
  269. package/dist/lib/dates.js.map +1 -1
  270. package/dist/lib/editable-content.d.ts +33 -0
  271. package/dist/lib/editable-content.js +15 -0
  272. package/dist/lib/editable-content.js.map +1 -0
  273. package/dist/lib/focus-left.d.ts +47 -1
  274. package/dist/lib/focus-left.js +11 -2
  275. package/dist/lib/focus-left.js.map +1 -1
  276. package/dist/lib/format.d.ts +37 -2
  277. package/dist/lib/format.js +25 -1
  278. package/dist/lib/format.js.map +1 -1
  279. package/dist/lib/intl-cache.d.ts +4 -2
  280. package/dist/lib/intl-cache.js.map +1 -1
  281. package/dist/lib/server-wake.d.ts +49 -9
  282. package/dist/lib/server-wake.js +25 -14
  283. package/dist/lib/server-wake.js.map +1 -1
  284. package/dist/lib/session-refresh.d.ts +53 -0
  285. package/dist/lib/session-refresh.js +27 -1
  286. package/dist/lib/session-refresh.js.map +1 -1
  287. package/dist/lib/translation-review.d.ts +26 -0
  288. package/dist/lib/translation-review.js +14 -0
  289. package/dist/lib/translation-review.js.map +1 -1
  290. package/dist/rhf/fields.js +3 -3
  291. package/dist/rhf/fields.js.map +1 -1
  292. package/dist/shell/app-shell.d.ts +25 -1
  293. package/dist/shell/app-shell.js +3 -1
  294. package/dist/shell/app-shell.js.map +1 -1
  295. package/dist/shell/dev-menu.d.ts +3 -0
  296. package/dist/shell/dev-menu.js +4 -2
  297. package/dist/shell/dev-menu.js.map +1 -1
  298. package/dist/shell/held-changes-banner-labels.d.ts +23 -0
  299. package/dist/shell/held-changes-banner-labels.js +14 -0
  300. package/dist/shell/held-changes-banner-labels.js.map +1 -0
  301. package/dist/shell/held-changes-banner.d.ts +75 -0
  302. package/dist/shell/held-changes-banner.js +106 -0
  303. package/dist/shell/held-changes-banner.js.map +1 -0
  304. package/dist/shell/sync-status-indicator.d.ts +27 -12
  305. package/dist/shell/sync-status-indicator.js +13 -4
  306. package/dist/shell/sync-status-indicator.js.map +1 -1
  307. package/dist/shell/top-bar-parts-labels.d.ts +5 -0
  308. package/dist/shell/top-bar-parts-labels.js +3 -1
  309. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  310. package/dist/shell.d.ts +2 -0
  311. package/dist/shell.js +3 -0
  312. package/dist/shell.js.map +1 -1
  313. package/dist/sync/engine.d.ts +11 -2
  314. package/dist/sync/engine.js +13 -5
  315. package/dist/sync/engine.js.map +1 -1
  316. package/dist/sync/hooks.d.ts +3 -2
  317. package/dist/sync/hooks.js +4 -2
  318. package/dist/sync/hooks.js.map +1 -1
  319. package/dist/testing/css-variables.generated.d.ts +2 -2
  320. package/dist/testing/css-variables.generated.js +1 -1
  321. package/dist/testing/css-variables.generated.js.map +1 -1
  322. package/dist/theme/chart-palette.d.ts +18 -0
  323. package/dist/theme/chart-palette.js +17 -1
  324. package/dist/theme/chart-palette.js.map +1 -1
  325. package/dist/theme/contrast-tokens.d.ts +3 -3
  326. package/dist/theme/contrast-tokens.js.map +1 -1
  327. package/dist/theme/contrast.d.ts +4 -4
  328. package/dist/theme/contrast.js.map +1 -1
  329. package/dist/tour/tour-overlay.js +2 -1
  330. package/dist/tour/tour-overlay.js.map +1 -1
  331. package/package.json +5 -9
  332. package/tokens.css +19 -54
  333. package/src/account/account-parts.ts +0 -47
  334. package/src/account/account-settings-labels.ts +0 -240
  335. package/src/account/account-settings.tsx +0 -698
  336. package/src/account/data-export-setting-labels.ts +0 -20
  337. package/src/account/data-export-setting.tsx +0 -200
  338. package/src/account/delete-account-setting-labels.ts +0 -33
  339. package/src/account/delete-account-setting.tsx +0 -341
  340. package/src/account/email-change-setting-labels.ts +0 -31
  341. package/src/account/email-change-setting.tsx +0 -443
  342. package/src/account/passkeys-setting.tsx +0 -445
  343. package/src/account/sessions-setting-labels.ts +0 -24
  344. package/src/account/sessions-setting.tsx +0 -283
  345. package/src/admin/admin-action-confirm-labels.ts +0 -19
  346. package/src/admin/admin-action-confirm.tsx +0 -509
  347. package/src/admin/admin-action-log-labels.ts +0 -83
  348. package/src/admin/admin-action-log.tsx +0 -464
  349. package/src/admin/admin-area-labels.ts +0 -114
  350. package/src/admin/admin-forbidden.tsx +0 -75
  351. package/src/admin/admin-overview.tsx +0 -258
  352. package/src/admin/admin-parts.ts +0 -68
  353. package/src/admin/admin-sections.tsx +0 -208
  354. package/src/admin/admin-tool-links.tsx +0 -90
  355. package/src/admin/invitations-panel-labels.ts +0 -31
  356. package/src/admin/invitations-panel.tsx +0 -516
  357. package/src/admin/mail-test-card-labels.ts +0 -19
  358. package/src/admin/mail-test-card.tsx +0 -189
  359. package/src/admin/plan-change-labels.ts +0 -5
  360. package/src/admin/plan-change.tsx +0 -474
  361. package/src/admin/reviewer-scope-editor-labels.ts +0 -16
  362. package/src/admin/reviewer-scope-editor.tsx +0 -224
  363. package/src/admin/role-select-labels.ts +0 -16
  364. package/src/admin/role-select.tsx +0 -282
  365. package/src/admin/transfer-ownership-dialog-labels.ts +0 -20
  366. package/src/admin/transfer-ownership-dialog.tsx +0 -162
  367. package/src/admin/user-roster-labels.ts +0 -17
  368. package/src/admin/user-roster.tsx +0 -559
  369. package/src/auth/accept-invitation-labels.ts +0 -21
  370. package/src/auth/accept-invitation.tsx +0 -210
  371. package/src/auth/auth-errors-labels.ts +0 -23
  372. package/src/auth/auth-errors.ts +0 -370
  373. package/src/auth/complete-name-dialog-labels.ts +0 -16
  374. package/src/auth/complete-name-dialog.tsx +0 -253
  375. package/src/auth/email-tag.ts +0 -75
  376. package/src/auth/forgot-password-form-labels.ts +0 -20
  377. package/src/auth/forgot-password-form.tsx +0 -221
  378. package/src/auth/form-rules.ts +0 -40
  379. package/src/auth/new-password-fields.tsx +0 -85
  380. package/src/auth/not-found-page-labels.ts +0 -12
  381. package/src/auth/not-found-page.tsx +0 -95
  382. package/src/auth/register-form-labels.ts +0 -31
  383. package/src/auth/register-form.tsx +0 -456
  384. package/src/auth/reset-password-form-labels.ts +0 -27
  385. package/src/auth/reset-password-form.tsx +0 -341
  386. package/src/auth/sign-in-form-labels.ts +0 -44
  387. package/src/auth/sign-in-form.tsx +0 -858
  388. package/src/auth/status-parts.tsx +0 -132
  389. package/src/auth/verify-email-labels.ts +0 -26
  390. package/src/auth/verify-email.tsx +0 -445
  391. package/src/billing/billing-banner.tsx +0 -258
  392. package/src/billing/billing-labels.ts +0 -381
  393. package/src/billing/billing-lock.ts +0 -108
  394. package/src/billing/billing-overview.ts +0 -157
  395. package/src/billing/billing-standing.ts +0 -80
  396. package/src/billing/cancel-request.ts +0 -97
  397. package/src/billing/cancel-subscription.tsx +0 -98
  398. package/src/billing/checkout-processing.ts +0 -394
  399. package/src/billing/checkout-return.ts +0 -90
  400. package/src/billing/pay-page.ts +0 -330
  401. package/src/billing/plan-card.tsx +0 -562
  402. package/src/billing/plan-change-labels.ts +0 -66
  403. package/src/billing/plan-limit-notice.tsx +0 -148
  404. package/src/billing/plan-limit-toast.tsx +0 -90
  405. package/src/billing/plan-limit.ts +0 -52
  406. package/src/billing/plan-price.ts +0 -98
  407. package/src/billing/plan-switch.tsx +0 -216
  408. package/src/billing/provider-page.ts +0 -84
  409. package/src/billing/subscription-actions.tsx +0 -247
  410. package/src/billing/subscription-status-chip.tsx +0 -95
  411. package/src/chart.ts +0 -103
  412. package/src/components/account-chips-labels.ts +0 -16
  413. package/src/components/account-chips.tsx +0 -474
  414. package/src/components/alert-banner.tsx +0 -670
  415. package/src/components/amount-input.tsx +0 -815
  416. package/src/components/appearance-labels.ts +0 -63
  417. package/src/components/authed-image-labels.ts +0 -11
  418. package/src/components/authed-image.tsx +0 -209
  419. package/src/components/autocomplete.tsx +0 -645
  420. package/src/components/breadcrumbs-labels.ts +0 -10
  421. package/src/components/breadcrumbs.tsx +0 -205
  422. package/src/components/bulk-action-bar-labels.ts +0 -11
  423. package/src/components/bulk-action-bar.tsx +0 -443
  424. package/src/components/button-group.tsx +0 -223
  425. package/src/components/button-look.ts +0 -256
  426. package/src/components/button.tsx +0 -339
  427. package/src/components/calculator.tsx +0 -341
  428. package/src/components/calendar-heatmap-labels.ts +0 -15
  429. package/src/components/calendar-heatmap.tsx +0 -594
  430. package/src/components/card.tsx +0 -377
  431. package/src/components/chart-edge.ts +0 -106
  432. package/src/components/chart-figure.tsx +0 -35
  433. package/src/components/chart-height.ts +0 -30
  434. package/src/components/chart-zoom-core.tsx +0 -627
  435. package/src/components/chart-zoom.tsx +0 -22
  436. package/src/components/chart.tsx +0 -554
  437. package/src/components/checkbox-group.tsx +0 -247
  438. package/src/components/checkbox.tsx +0 -346
  439. package/src/components/chip-input.tsx +0 -370
  440. package/src/components/chip-labels.ts +0 -13
  441. package/src/components/chip.tsx +0 -843
  442. package/src/components/choice-card.tsx +0 -544
  443. package/src/components/column-mapper-labels.ts +0 -38
  444. package/src/components/column-mapper.tsx +0 -655
  445. package/src/components/combobox-core.tsx +0 -1321
  446. package/src/components/combobox-suggestions.tsx +0 -131
  447. package/src/components/combobox.tsx +0 -716
  448. package/src/components/confirm-context.ts +0 -7
  449. package/src/components/confirm-dialog-labels.ts +0 -13
  450. package/src/components/confirm-dialog.tsx +0 -341
  451. package/src/components/copy-button-labels.ts +0 -13
  452. package/src/components/copy-button.tsx +0 -192
  453. package/src/components/country-select-labels.ts +0 -11
  454. package/src/components/country-select.tsx +0 -539
  455. package/src/components/currency-option-list.tsx +0 -180
  456. package/src/components/currency-select.tsx +0 -341
  457. package/src/components/danger-confirm-labels.ts +0 -20
  458. package/src/components/danger-confirm.tsx +0 -934
  459. package/src/components/data-table-cells.tsx +0 -118
  460. package/src/components/data-table-column-settings.tsx +0 -198
  461. package/src/components/data-table-filter-popover.tsx +0 -281
  462. package/src/components/data-table-filters.ts +0 -287
  463. package/src/components/data-table-fit.ts +0 -301
  464. package/src/components/data-table-groups.tsx +0 -288
  465. package/src/components/data-table-head.tsx +0 -280
  466. package/src/components/data-table-labels.ts +0 -198
  467. package/src/components/data-table-leading-row.tsx +0 -58
  468. package/src/components/data-table-mobile.tsx +0 -1117
  469. package/src/components/data-table-pagination.tsx +0 -202
  470. package/src/components/data-table-resize.ts +0 -188
  471. package/src/components/data-table-row-actions.tsx +0 -302
  472. package/src/components/data-table-row.tsx +0 -496
  473. package/src/components/data-table-selection.ts +0 -71
  474. package/src/components/data-table-shared.tsx +0 -287
  475. package/src/components/data-table-sort.ts +0 -163
  476. package/src/components/data-table-virtual.ts +0 -576
  477. package/src/components/data-table.tsx +0 -2598
  478. package/src/components/date-field.tsx +0 -684
  479. package/src/components/date-format-setting.tsx +0 -64
  480. package/src/components/date-picker.tsx +0 -404
  481. package/src/components/date-range-picker.tsx +0 -518
  482. package/src/components/description-list-labels.ts +0 -9
  483. package/src/components/description-list.tsx +0 -386
  484. package/src/components/dialog-frame-labels.ts +0 -7
  485. package/src/components/dialog-frame.tsx +0 -276
  486. package/src/components/disclosure.tsx +0 -476
  487. package/src/components/dropdown.tsx +0 -461
  488. package/src/components/empty-state.tsx +0 -136
  489. package/src/components/entity-combobox.tsx +0 -422
  490. package/src/components/error-boundary-labels.ts +0 -20
  491. package/src/components/error-boundary.tsx +0 -675
  492. package/src/components/facing-pair.ts +0 -93
  493. package/src/components/field-base-labels.ts +0 -20
  494. package/src/components/field-base.tsx +0 -656
  495. package/src/components/field-parts.tsx +0 -825
  496. package/src/components/field-strip.tsx +0 -129
  497. package/src/components/field.tsx +0 -206
  498. package/src/components/file-button.tsx +0 -295
  499. package/src/components/file-dropzone.tsx +0 -559
  500. package/src/components/floating-panel-labels.ts +0 -10
  501. package/src/components/floating-panel.tsx +0 -828
  502. package/src/components/focus-ring.ts +0 -16
  503. package/src/components/form-actions-labels.ts +0 -11
  504. package/src/components/form-actions.tsx +0 -578
  505. package/src/components/full-bleed-dialog.tsx +0 -294
  506. package/src/components/grouped-picker.tsx +0 -184
  507. package/src/components/help-popover.tsx +0 -117
  508. package/src/components/hover-menu.tsx +0 -343
  509. package/src/components/iban-input-labels.ts +0 -14
  510. package/src/components/iban-input.tsx +0 -236
  511. package/src/components/icon-button.tsx +0 -959
  512. package/src/components/icon-picker-labels.ts +0 -13
  513. package/src/components/icon-picker.tsx +0 -232
  514. package/src/components/image-grid-labels.ts +0 -11
  515. package/src/components/image-grid.tsx +0 -202
  516. package/src/components/inline-confirm.tsx +0 -116
  517. package/src/components/inline-edit-field-labels.ts +0 -11
  518. package/src/components/inline-edit-field.tsx +0 -552
  519. package/src/components/inline-entity-combobox.tsx +0 -849
  520. package/src/components/input.tsx +0 -394
  521. package/src/components/jump-calendar.tsx +0 -265
  522. package/src/components/language-select.tsx +0 -93
  523. package/src/components/legal-labels.ts +0 -105
  524. package/src/components/legal-page.tsx +0 -711
  525. package/src/components/legal.tsx +0 -668
  526. package/src/components/lightbox-labels.ts +0 -18
  527. package/src/components/lightbox.tsx +0 -399
  528. package/src/components/line-items-labels.ts +0 -14
  529. package/src/components/line-items.tsx +0 -602
  530. package/src/components/list-labels.ts +0 -12
  531. package/src/components/list.tsx +0 -870
  532. package/src/components/loading-state.tsx +0 -78
  533. package/src/components/measured-grid-labels.ts +0 -25
  534. package/src/components/measured-grid.tsx +0 -837
  535. package/src/components/menu-item.tsx +0 -241
  536. package/src/components/mini-calendar-labels.ts +0 -17
  537. package/src/components/mini-calendar.tsx +0 -789
  538. package/src/components/modal.tsx +0 -505
  539. package/src/components/money-draft.ts +0 -83
  540. package/src/components/money-field.tsx +0 -76
  541. package/src/components/month-grid.tsx +0 -229
  542. package/src/components/month-picker-labels.ts +0 -22
  543. package/src/components/month-picker.tsx +0 -1087
  544. package/src/components/multi-entity-combobox.tsx +0 -369
  545. package/src/components/multi-select.tsx +0 -376
  546. package/src/components/nav-pills.tsx +0 -198
  547. package/src/components/number-field.tsx +0 -327
  548. package/src/components/number-input.tsx +0 -558
  549. package/src/components/numeric-field.ts +0 -169
  550. package/src/components/numpad-sheet.tsx +0 -285
  551. package/src/components/one-time-code-input.tsx +0 -270
  552. package/src/components/page-contents-labels.ts +0 -9
  553. package/src/components/page-contents.tsx +0 -282
  554. package/src/components/page-header-context.ts +0 -8
  555. package/src/components/page-header.tsx +0 -298
  556. package/src/components/password-strength-labels.ts +0 -22
  557. package/src/components/password-strength.tsx +0 -241
  558. package/src/components/phone-input-labels.ts +0 -10
  559. package/src/components/phone-input.tsx +0 -282
  560. package/src/components/picker-sheet.tsx +0 -330
  561. package/src/components/pie-chart-labels.ts +0 -40
  562. package/src/components/pie-chart.tsx +0 -480
  563. package/src/components/popover-labels.ts +0 -14
  564. package/src/components/popover.tsx +0 -268
  565. package/src/components/progress-bar-labels.ts +0 -10
  566. package/src/components/progress-bar.tsx +0 -479
  567. package/src/components/qr-code.tsx +0 -76
  568. package/src/components/reauth-dialog-labels.ts +0 -13
  569. package/src/components/reauth-dialog.tsx +0 -265
  570. package/src/components/row-actions-labels.ts +0 -12
  571. package/src/components/row-actions.tsx +0 -795
  572. package/src/components/scroll-area.tsx +0 -123
  573. package/src/components/search-field.tsx +0 -192
  574. package/src/components/select.tsx +0 -294
  575. package/src/components/separator.tsx +0 -33
  576. package/src/components/series-chart-axes.ts +0 -342
  577. package/src/components/series-chart-budget.ts +0 -150
  578. package/src/components/series-chart-labels.ts +0 -33
  579. package/src/components/series-chart-thin.ts +0 -180
  580. package/src/components/series-chart-ticks.ts +0 -194
  581. package/src/components/series-chart.tsx +0 -1906
  582. package/src/components/server-wake-labels.ts +0 -11
  583. package/src/components/server-wake.tsx +0 -129
  584. package/src/components/settings-fields.tsx +0 -237
  585. package/src/components/share-card-labels.ts +0 -30
  586. package/src/components/share-card.tsx +0 -675
  587. package/src/components/signature-pad-labels.ts +0 -24
  588. package/src/components/signature-pad.tsx +0 -747
  589. package/src/components/signed-amount-labels.ts +0 -10
  590. package/src/components/signed-amount.tsx +0 -336
  591. package/src/components/skeleton.tsx +0 -80
  592. package/src/components/slider.tsx +0 -338
  593. package/src/components/sparkline-labels.ts +0 -14
  594. package/src/components/sparkline.tsx +0 -322
  595. package/src/components/spinner.tsx +0 -81
  596. package/src/components/stat-tile-labels.ts +0 -15
  597. package/src/components/stat-tile.tsx +0 -725
  598. package/src/components/status-dot.tsx +0 -170
  599. package/src/components/swatch-picker-labels.ts +0 -10
  600. package/src/components/swatch-picker.tsx +0 -283
  601. package/src/components/swipeable-row.tsx +0 -386
  602. package/src/components/switch.tsx +0 -273
  603. package/src/components/table-skeleton.tsx +0 -136
  604. package/src/components/table.tsx +0 -647
  605. package/src/components/tabs-labels.ts +0 -13
  606. package/src/components/tabs.tsx +0 -693
  607. package/src/components/text-link.tsx +0 -359
  608. package/src/components/text.tsx +0 -150
  609. package/src/components/textarea.tsx +0 -330
  610. package/src/components/tile-radio.tsx +0 -332
  611. package/src/components/time-input.tsx +0 -121
  612. package/src/components/toast-labels.ts +0 -12
  613. package/src/components/toast.tsx +0 -519
  614. package/src/components/toggle-group.tsx +0 -752
  615. package/src/components/toggle-legend.tsx +0 -394
  616. package/src/components/tooltip.tsx +0 -1149
  617. package/src/components/translation-review-editor.tsx +0 -290
  618. package/src/components/translation-review-labels.ts +0 -181
  619. package/src/components/translation-review-parts.tsx +0 -272
  620. package/src/components/translation-review.tsx +0 -1240
  621. package/src/components/tree-view.tsx +0 -589
  622. package/src/components/treemap-labels.ts +0 -47
  623. package/src/components/treemap-layout.ts +0 -210
  624. package/src/components/treemap.tsx +0 -1184
  625. package/src/components/trigger-aria.ts +0 -44
  626. package/src/components/use-anchor-dir.ts +0 -20
  627. package/src/components/use-mobile-reveal.ts +0 -62
  628. package/src/components/use-table-state.ts +0 -753
  629. package/src/components/user-avatar.tsx +0 -116
  630. package/src/components/wizard-stepper.tsx +0 -42
  631. package/src/components/write-lock-labels.ts +0 -10
  632. package/src/components/write-lock.tsx +0 -253
  633. package/src/currencies.ts +0 -70
  634. package/src/data-table.ts +0 -42
  635. package/src/demo/demo-banner.tsx +0 -153
  636. package/src/demo/demo-countdown.ts +0 -136
  637. package/src/demo/demo-ended.tsx +0 -90
  638. package/src/demo/demo-labels.ts +0 -78
  639. package/src/demo/demo-session.ts +0 -32
  640. package/src/demo/demo-start.tsx +0 -156
  641. package/src/eslint/index.ts +0 -161
  642. package/src/eslint/role-utilities.generated.ts +0 -146
  643. package/src/eslint/role-utilities.ts +0 -233
  644. package/src/feedback/feedback-attachment-download.tsx +0 -77
  645. package/src/feedback/feedback-attachment-labels.ts +0 -37
  646. package/src/feedback/feedback-attachment.tsx +0 -1239
  647. package/src/feedback/feedback-capture.ts +0 -287
  648. package/src/feedback/feedback-comment-thread.tsx +0 -353
  649. package/src/feedback/feedback-context-labels.ts +0 -10
  650. package/src/feedback/feedback-context.tsx +0 -213
  651. package/src/feedback/feedback-crash.ts +0 -547
  652. package/src/feedback/feedback-dialog-labels.ts +0 -29
  653. package/src/feedback/feedback-dialog.tsx +0 -440
  654. package/src/feedback/feedback-entry-file.tsx +0 -150
  655. package/src/feedback/feedback-inbox.tsx +0 -552
  656. package/src/feedback/feedback-labels.ts +0 -144
  657. package/src/feedback/feedback-menu-labels.ts +0 -12
  658. package/src/feedback/feedback-menu.tsx +0 -177
  659. package/src/feedback/feedback-mutation.ts +0 -20
  660. package/src/feedback/feedback-page-link.ts +0 -90
  661. package/src/feedback/feedback-public-labels.ts +0 -81
  662. package/src/feedback/feedback-public-list.tsx +0 -524
  663. package/src/feedback/feedback-public-switch.tsx +0 -102
  664. package/src/feedback/feedback-public-types.ts +0 -101
  665. package/src/feedback/feedback-record.ts +0 -423
  666. package/src/feedback/feedback-replies-context.ts +0 -9
  667. package/src/feedback/feedback-replies.tsx +0 -343
  668. package/src/feedback/feedback-rework-entry-chip.tsx +0 -18
  669. package/src/feedback/feedback-row-detail-labels.ts +0 -30
  670. package/src/feedback/feedback-row-detail.tsx +0 -858
  671. package/src/feedback/feedback-status-undo.ts +0 -109
  672. package/src/feedback/feedback-submit-dialog.tsx +0 -118
  673. package/src/feedback/feedback-submit.tsx +0 -237
  674. package/src/feedback/feedback-swipe.tsx +0 -192
  675. package/src/feedback/feedback-table-labels.ts +0 -27
  676. package/src/feedback/feedback-table.tsx +0 -912
  677. package/src/feedback/feedback-thread-labels.ts +0 -22
  678. package/src/feedback/feedback-thread-parts-labels.ts +0 -41
  679. package/src/feedback/feedback-thread.tsx +0 -905
  680. package/src/feedback/feedback-vocabulary.ts +0 -263
  681. package/src/feedback/feedback-vote-button.tsx +0 -124
  682. package/src/feedback.ts +0 -116
  683. package/src/hooks/use-anchored-panel.ts +0 -396
  684. package/src/hooks/use-anchored-rect.ts +0 -77
  685. package/src/hooks/use-announce.ts +0 -85
  686. package/src/hooks/use-authed-src.ts +0 -167
  687. package/src/hooks/use-body-scroll-lock.ts +0 -119
  688. package/src/hooks/use-breakpoint.ts +0 -133
  689. package/src/hooks/use-close-transition.ts +0 -107
  690. package/src/hooks/use-copy-to-clipboard.ts +0 -122
  691. package/src/hooks/use-debounce.ts +0 -114
  692. package/src/hooks/use-dismiss.ts +0 -371
  693. package/src/hooks/use-document-title.ts +0 -33
  694. package/src/hooks/use-file-drop.ts +0 -121
  695. package/src/hooks/use-file-picker-labels.ts +0 -28
  696. package/src/hooks/use-file-picker.tsx +0 -359
  697. package/src/hooks/use-focus-trap.ts +0 -199
  698. package/src/hooks/use-hotkey.ts +0 -189
  699. package/src/hooks/use-large-text.ts +0 -41
  700. package/src/hooks/use-long-press.ts +0 -140
  701. package/src/hooks/use-media-query.ts +0 -39
  702. package/src/hooks/use-mounted.ts +0 -39
  703. package/src/hooks/use-noindex.ts +0 -37
  704. package/src/hooks/use-overlay-history.ts +0 -714
  705. package/src/hooks/use-row-swipe.ts +0 -207
  706. package/src/hooks/use-search-param-state.ts +0 -434
  707. package/src/hooks/use-windowed-rows.ts +0 -225
  708. package/src/i18n/defaults.ts +0 -267
  709. package/src/i18n/german.ts +0 -2057
  710. package/src/i18n/kit-labels.tsx +0 -1003
  711. package/src/i18n/languages.ts +0 -349
  712. package/src/i18n/locales/de-CH.ts +0 -24
  713. package/src/i18n/locales/en.ts +0 -267
  714. package/src/i18n/locales/es.ts +0 -1997
  715. package/src/i18n/locales/fr.ts +0 -2035
  716. package/src/i18n/locales/hu.ts +0 -2002
  717. package/src/i18n/locales/it.ts +0 -2012
  718. package/src/i18n/locales/zh.ts +0 -1910
  719. package/src/i18n/plurals.ts +0 -86
  720. package/src/i18n/review.ts +0 -475
  721. package/src/i18n/shared-labels.ts +0 -138
  722. package/src/i18n/swiss.ts +0 -29
  723. package/src/index.ts +0 -1179
  724. package/src/landing/access.ts +0 -93
  725. package/src/landing/landing-actions.tsx +0 -97
  726. package/src/landing/landing-labels.ts +0 -59
  727. package/src/landing/landing-sections.tsx +0 -341
  728. package/src/landing/page-seo.ts +0 -261
  729. package/src/landing/public-header.tsx +0 -121
  730. package/src/landing/public-page.tsx +0 -106
  731. package/src/landing/routing.tsx +0 -225
  732. package/src/lib/broadcast.ts +0 -52
  733. package/src/lib/calc.ts +0 -323
  734. package/src/lib/chip-edge-snap.ts +0 -212
  735. package/src/lib/clipboard-minus.ts +0 -107
  736. package/src/lib/clipping.ts +0 -34
  737. package/src/lib/cn.ts +0 -28
  738. package/src/lib/column-mapping.ts +0 -234
  739. package/src/lib/countries.ts +0 -91
  740. package/src/lib/data-attributes.ts +0 -14
  741. package/src/lib/date-format.ts +0 -227
  742. package/src/lib/dates.ts +0 -266
  743. package/src/lib/day-format.ts +0 -96
  744. package/src/lib/decimal-marks.ts +0 -108
  745. package/src/lib/describe-failure.ts +0 -18
  746. package/src/lib/device-settings.ts +0 -147
  747. package/src/lib/direction.ts +0 -74
  748. package/src/lib/document-navigation.ts +0 -17
  749. package/src/lib/document-title.ts +0 -41
  750. package/src/lib/download.ts +0 -172
  751. package/src/lib/float-clearance.ts +0 -70
  752. package/src/lib/floating-stack.ts +0 -70
  753. package/src/lib/focus-left.ts +0 -156
  754. package/src/lib/format.ts +0 -522
  755. package/src/lib/http-status.ts +0 -38
  756. package/src/lib/iban.ts +0 -251
  757. package/src/lib/ime.ts +0 -24
  758. package/src/lib/intl-cache.ts +0 -25
  759. package/src/lib/iso-day.ts +0 -13
  760. package/src/lib/lazy-with-fallback.ts +0 -82
  761. package/src/lib/logger.ts +0 -69
  762. package/src/lib/minus.ts +0 -50
  763. package/src/lib/path-pattern.ts +0 -55
  764. package/src/lib/person-name.ts +0 -155
  765. package/src/lib/phone.ts +0 -208
  766. package/src/lib/plain-text.ts +0 -22
  767. package/src/lib/presence.ts +0 -18
  768. package/src/lib/qr-encode.ts +0 -444
  769. package/src/lib/quiet-focus.ts +0 -32
  770. package/src/lib/reduced-motion.ts +0 -22
  771. package/src/lib/refs.ts +0 -22
  772. package/src/lib/round.ts +0 -43
  773. package/src/lib/safe-storage.ts +0 -119
  774. package/src/lib/server-wake.ts +0 -315
  775. package/src/lib/session-refresh.ts +0 -472
  776. package/src/lib/share-format.ts +0 -18
  777. package/src/lib/status-tone.ts +0 -43
  778. package/src/lib/strip-fade.ts +0 -287
  779. package/src/lib/table-text.ts +0 -554
  780. package/src/lib/text-case.ts +0 -19
  781. package/src/lib/text-match.ts +0 -169
  782. package/src/lib/thenable.ts +0 -19
  783. package/src/lib/translation-review.ts +0 -717
  784. package/src/notifications/device-zone-report.ts +0 -67
  785. package/src/notifications/feedback-notification-types-labels.ts +0 -33
  786. package/src/notifications/feedback-notification-types.ts +0 -71
  787. package/src/notifications/notification-bell.tsx +0 -119
  788. package/src/notifications/notification-inbox.tsx +0 -309
  789. package/src/notifications/notification-parts.tsx +0 -81
  790. package/src/notifications/notification-types-setting.tsx +0 -406
  791. package/src/notifications/notification-types.ts +0 -89
  792. package/src/notifications/notifications-labels.ts +0 -287
  793. package/src/notifications/push-device-setting.tsx +0 -230
  794. package/src/notifications/push-devices-setting.tsx +0 -374
  795. package/src/notifications/push-worker.ts +0 -168
  796. package/src/notifications/quiet-hours-setting.tsx +0 -238
  797. package/src/notifications/unsubscribe-panel.tsx +0 -200
  798. package/src/notifications/use-push-device.ts +0 -448
  799. package/src/offline/local-first.ts +0 -100
  800. package/src/offline/pwa-update-prompt-labels.ts +0 -9
  801. package/src/offline/pwa-update-prompt.tsx +0 -78
  802. package/src/offline/query-persistence.ts +0 -391
  803. package/src/offline/service-worker-updates.ts +0 -81
  804. package/src/offline/shared-computer-labels.ts +0 -8
  805. package/src/offline/shared-computer.tsx +0 -87
  806. package/src/offline/sign-out-pending-dialog-labels.ts +0 -21
  807. package/src/offline/sign-out-pending-dialog.tsx +0 -135
  808. package/src/offline.ts +0 -37
  809. package/src/push-worker.ts +0 -25
  810. package/src/rhf/fields.tsx +0 -2187
  811. package/src/rhf/form-core.tsx +0 -324
  812. package/src/rhf/form.tsx +0 -12
  813. package/src/rhf/line-items.tsx +0 -135
  814. package/src/rhf/use-rhf-wizard-step.ts +0 -104
  815. package/src/rhf.ts +0 -21
  816. package/src/search/command-palette-labels.ts +0 -16
  817. package/src/search/command-palette.tsx +0 -624
  818. package/src/search/global-search-labels.ts +0 -13
  819. package/src/search/global-search.tsx +0 -660
  820. package/src/search/search-index.ts +0 -283
  821. package/src/search/use-command-key.ts +0 -23
  822. package/src/search.ts +0 -14
  823. package/src/settings/device-reset-setting-labels.ts +0 -20
  824. package/src/settings/device-reset-setting.tsx +0 -116
  825. package/src/settings/settings-card-classes.ts +0 -11
  826. package/src/settings/settings-catalogue.ts +0 -150
  827. package/src/settings/settings-context.ts +0 -33
  828. package/src/settings/settings-heading.tsx +0 -67
  829. package/src/settings/settings-labels.ts +0 -87
  830. package/src/settings/settings-layout.tsx +0 -471
  831. package/src/settings/settings-section.tsx +0 -108
  832. package/src/settings/use-account-appearance.ts +0 -148
  833. package/src/settings/use-account-language.ts +0 -146
  834. package/src/settings/use-settings-focus.ts +0 -128
  835. package/src/settings/use-settings-route.ts +0 -258
  836. package/src/shell/account-menu-language.tsx +0 -130
  837. package/src/shell/account-menu-text-size.tsx +0 -80
  838. package/src/shell/admin-menu.tsx +0 -183
  839. package/src/shell/app-shell-labels.ts +0 -11
  840. package/src/shell/app-shell.tsx +0 -1560
  841. package/src/shell/auth-layout.tsx +0 -186
  842. package/src/shell/company-switcher-labels.ts +0 -13
  843. package/src/shell/company-switcher.tsx +0 -136
  844. package/src/shell/dev-menu.tsx +0 -257
  845. package/src/shell/fill-height.tsx +0 -45
  846. package/src/shell/language-code.ts +0 -5
  847. package/src/shell/option-switcher-menu.tsx +0 -84
  848. package/src/shell/sync-status-indicator.tsx +0 -303
  849. package/src/shell/top-bar-actions.tsx +0 -87
  850. package/src/shell/top-bar-brand.tsx +0 -78
  851. package/src/shell/top-bar-parts-labels.ts +0 -148
  852. package/src/shell/top-bar.tsx +0 -40
  853. package/src/shell/topbar-action-menu.tsx +0 -567
  854. package/src/shell/topbar-controls.tsx +0 -269
  855. package/src/shell/tour-menu.tsx +0 -187
  856. package/src/shell.ts +0 -108
  857. package/src/sync/db.ts +0 -129
  858. package/src/sync/engine.ts +0 -1011
  859. package/src/sync/hooks.ts +0 -98
  860. package/src/sync/testing.ts +0 -73
  861. package/src/sync/wire.ts +0 -61
  862. package/src/sync.ts +0 -37
  863. package/src/table-text.ts +0 -8
  864. package/src/testing/css-variables.generated.ts +0 -112
  865. package/src/testing/css-variables.ts +0 -189
  866. package/src/testing/index.ts +0 -29
  867. package/src/testing/react.ts +0 -58
  868. package/src/testing/tour.ts +0 -41
  869. package/src/testing/viewport.ts +0 -357
  870. package/src/theme/chart-palette.ts +0 -232
  871. package/src/theme/color.ts +0 -272
  872. package/src/theme/contrast-tokens.ts +0 -268
  873. package/src/theme/contrast.ts +0 -250
  874. package/src/theme/palette-derive.ts +0 -825
  875. package/src/theme/palette-presets.ts +0 -544
  876. package/src/theme/palette-store.ts +0 -108
  877. package/src/theme/text-size.ts +0 -289
  878. package/src/theme/theme-store.ts +0 -157
  879. package/src/tour/tour-catalogue-labels.ts +0 -75
  880. package/src/tour/tour-catalogue.tsx +0 -335
  881. package/src/tour/tour-dock.ts +0 -134
  882. package/src/tour/tour-engine.ts +0 -37
  883. package/src/tour/tour-gates.ts +0 -218
  884. package/src/tour/tour-guide-button.tsx +0 -64
  885. package/src/tour/tour-guide-labels.ts +0 -15
  886. package/src/tour/tour-info.ts +0 -144
  887. package/src/tour/tour-labels.ts +0 -23
  888. package/src/tour/tour-overlay.tsx +0 -1170
  889. package/src/tour/tour.tsx +0 -750
  890. package/src/tour/use-tour-progress.ts +0 -671
  891. package/src/tour/use-tour-url-sync.ts +0 -266
  892. package/src/tour.ts +0 -21
  893. package/src/vite-env.d.ts +0 -23
  894. package/src/wizard/stepper-nav.tsx +0 -360
  895. package/src/wizard/types.ts +0 -275
  896. package/src/wizard/use-wizard.ts +0 -560
  897. package/src/wizard/validation.ts +0 -39
  898. package/src/wizard/wizard-context.tsx +0 -74
  899. package/src/wizard/wizard-labels.ts +0 -29
  900. package/src/wizard/wizard-step.tsx +0 -76
  901. package/src/wizard/wizard-summary.tsx +0 -84
  902. package/src/wizard.ts +0 -15
@@ -1,342 +0,0 @@
1
- // The series chart's pure half: the axis bands, the padded and anchored domains, the
2
- // series keys and colours, and the abscissa reduced to a number line. No React, no
3
- // recharts and no JSX here (chart-zoom-core lends the one name `DEFAULT_Y_AXIS`) —
4
- // arithmetic over rows and axes, which is why apps import some of it in
5
- // files that draw no chart (Kurvenschmiede's curve-chart-model.ts builds its series
6
- // keys with `seriesKey`).
7
- //
8
- // Moved out of series-chart.tsx as it was (MOD-9, refactor audit 2026-10). The public
9
- // names are still exported from series-chart.tsx, so `/chart` and the barrel are
10
- // unchanged; this module is not an entry of its own. The names below that series-chart
11
- // does not re-export (the tick-band constants, `xModel`, `finite`, …) stay internal.
12
- import { DEFAULT_Y_AXIS } from "./chart-zoom-core";
13
- import type { TimeTickUnit } from "./series-chart-ticks";
14
- import { paletteFor } from "../theme/chart-palette";
15
- import type {
16
- SeriesChartAxis,
17
- SeriesChartRow,
18
- SeriesChartSeries,
19
- SeriesChartTickValues,
20
- SeriesChartX,
21
- SeriesChartXValue,
22
- } from "./series-chart";
23
-
24
- /** How much of an axis band the rotated title takes, in px at Normal — × the text size's
25
- * scale on the chart (§3.2), since the title is text. Reserved rather than shared with
26
- * the ticks: a title merely offset inside the band prints on top of a five-figure tick,
27
- * and which gives way depends on the data. */
28
- export const AXIS_TITLE_STRIP = 16;
29
-
30
- /** Where inside its strip the rotated title sits. */
31
- export const AXIS_TITLE_OFFSET = 10;
32
-
33
- /** The tallest band tilted x ticks reserve, in px at Normal (× the scale). A category
34
- * name longer than this at its angle is clipped rather than squeezing the plot down to
35
- * a strip. */
36
- const MAX_TILTED_TICK_BAND = 120;
37
-
38
- /** What one character of a tick label is taken to be, in px at Normal, for the tilted
39
- * band — the shell's `text-xs`. An estimate: the SVG is not laid out yet when the band
40
- * is decided. Both grow with the text size, as `text-xs` does (§3.2). */
41
- const TICK_CHAR_WIDTH = 7;
42
- const TICK_LINE_HEIGHT = 12;
43
- /** recharts' gap between the axis line and a bottom tick's text — px, at every size:
44
- * recharts draws it, not the type. */
45
- const TICK_GAP = 8;
46
- /** recharts' own band under level x ticks. */
47
- const LEVEL_TICK_BAND = 30;
48
- /** The least room recharts' x ticks keep between labels, in px at Normal. */
49
- export const MIN_TICK_GAP = 32;
50
-
51
- /**
52
- * The height the x axis reserves for its ticks at a text `scale`: tilted by `angle`
53
- * degrees, the rotated box of the longest label, from its length; level, recharts' own
54
- * 30 px grown with the labels. `undefined` for level ticks at Normal, where recharts'
55
- * default is exactly that.
56
- */
57
- export function tiltedTickBand(labels: readonly string[], angle: number, scale = 1): number | undefined {
58
- if (!angle) return scale === 1 ? undefined : Math.ceil(LEVEL_TICK_BAND * scale);
59
- const rad = (Math.abs(angle) * Math.PI) / 180;
60
- const longest = Math.max(0, ...labels.map((label) => label.length)) * TICK_CHAR_WIDTH * scale;
61
- const band = Math.sin(rad) * longest + Math.cos(rad) * TICK_LINE_HEIGHT * scale + TICK_GAP;
62
- return Math.min(
63
- Math.round(MAX_TILTED_TICK_BAND * scale),
64
- Math.max(Math.ceil(LEVEL_TICK_BAND * scale), Math.ceil(band)),
65
- );
66
- }
67
-
68
- /** The width the ticks of a y axis get when a caller does not say, in px at Normal. */
69
- export const AXIS_TICK_WIDTH = 48;
70
-
71
- /**
72
- * How much air a FITTED axis leaves between the data and its frame, as a fraction of
73
- * the range. Recharts fits `[dataMin, dataMax]`, which draws a peak half a stroke
74
- * outside the plot and a curve running to its limit indistinguishable from the frame.
75
- */
76
- const AUTO_PAD = 0.04;
77
-
78
- /** The band a fitted axis draws, padded — and a real band for constant data, which is
79
- * a zero-height domain recharts cannot scale into. `undefined` when nothing finite. */
80
- export function paddedDomain(values: Iterable<number>): [number, number] | undefined {
81
- let low = Infinity;
82
- let high = -Infinity;
83
- for (const value of values) {
84
- if (!Number.isFinite(value)) continue;
85
- if (value < low) low = value;
86
- if (value > high) high = value;
87
- }
88
- return padBand(low, high);
89
- }
90
-
91
- /**
92
- * {@link paddedDomain} for a caller that has already walked its own data — so a row
93
- * of charts can share one scale without building an array to find two numbers in, and
94
- * without a second padding rule. `low > high` means "nothing was seen": `undefined`.
95
- */
96
- export function padBand(low: number, high: number): [number, number] | undefined {
97
- if (!(low <= high)) return undefined;
98
- const pad = (high - low) * AUTO_PAD || Math.abs(high) * AUTO_PAD || 1;
99
- return [low - pad, high + pad];
100
- }
101
-
102
- /**
103
- * The whole band a y axis occupies: its ticks, and its title when it draws one. For
104
- * lining a heading up over a PLOT rather than over its column.
105
- *
106
- * `scale` is the text size's (`useTextSize().scale`, §3.2, §10.10): the chart draws every
107
- * band — the default 48 px and a caller's own `width` alike (keksdose's
108
- * `MONEY_AXIS_WIDTH`) — this many times wider, because the ticks in it are `text-xs`
109
- * and grow with the text. A heading lined up over the plot has to pass the same scale.
110
- * One factor for both sides of a facing pair, so the mirrored bands stay equal.
111
- */
112
- export function axisBandWidth(tickWidth: number | undefined, titled: boolean, scale = 1): number {
113
- const band = (tickWidth ?? AXIS_TICK_WIDTH) + (titled ? AXIS_TITLE_STRIP : 0);
114
- return scale === 1 ? band : Math.round(band * scale);
115
- }
116
-
117
- /**
118
- * The colour an axis TITLE takes, or `undefined` for the neutral one.
119
- *
120
- * An axis measuring exactly one line is that line's, and saying so in the title lets a
121
- * reader find a channel's scale without counting axes. An axis measuring several is
122
- * nobody's — a title in the first one's colour would be claiming it. Counted off the
123
- * series, so toggling a second line onto an axis gives the colour up in the same render.
124
- */
125
- export function soleSeriesColor(
126
- axis: Pick<SeriesChartAxis, "id" | "color">,
127
- series: readonly Pick<SeriesChartSeries, "axis">[],
128
- ): string | undefined {
129
- const mine = series.filter((entry) => (entry.axis ?? DEFAULT_Y_AXIS) === axis.id);
130
- return mine.length === 1 ? axis.color : undefined;
131
- }
132
-
133
- /** The single-axis case, which is most charts. `width` is what the TICKS need;
134
- * `orientation` is which side they stand on. */
135
- export function oneAxis(
136
- format: ((value: number) => string) | undefined,
137
- title: string,
138
- width?: number,
139
- orientation?: "left" | "right",
140
- ): SeriesChartAxis[] {
141
- return [{ id: DEFAULT_Y_AXIS, format, title, width, orientation }];
142
- }
143
-
144
- /** One source's samples: an abscissa and the channels measured against it. */
145
- export interface SeriesSource {
146
- x: readonly number[];
147
- channels: Readonly<Record<string, readonly number[]>>;
148
- }
149
-
150
- /**
151
- * Merge sources sampled on different grids into rows the chart can draw.
152
- *
153
- * Merged ON THE ABSCISSA VALUE ITSELF, never interpolated onto a common grid: a line
154
- * through invented points looks exactly like one through measured ones. Where a source
155
- * has no sample the key is absent, and `connectNulls` bridges the hole with the same
156
- * straight segment an interpolation would have drawn — without claiming a measurement.
157
- */
158
- export function mergeSeries(sources: readonly SeriesSource[]): Record<string, number>[] {
159
- const byAbscissa = new Map<number, Record<string, number>>();
160
- for (const source of sources) {
161
- source.x.forEach((value, index) => {
162
- const row = byAbscissa.get(value) ?? { x: value };
163
- for (const [key, channel] of Object.entries(source.channels)) row[key] = channel[index];
164
- byAbscissa.set(value, row);
165
- });
166
- }
167
- return [...byAbscissa.values()].sort((a, b) => a.x - b.x);
168
- }
169
-
170
- /**
171
- * A series key built out of parts — as a CSS identifier.
172
- *
173
- * The chart shell paints each series through `--color-<key>`, and skips (with a
174
- * console warning) any key that is not `[A-Za-z_][A-Za-z0-9_-]*`. A line whose colour
175
- * was skipped has no stroke at all: an axis, a grid and nothing between them. So a key
176
- * assembled out of DATA — an id, an enum, a side — goes through here: every other
177
- * character becomes `_`, the parts are joined with `_`, and a key that would start with
178
- * a digit or a hyphen gets a leading `_`.
179
- */
180
- export function seriesKey(...parts: (string | number)[]): string {
181
- const key = parts.map((part) => String(part).replace(/[^A-Za-z0-9_-]/g, "_")).join("_");
182
- return /^[A-Za-z_]/.test(key) ? key : `_${key}`;
183
- }
184
-
185
- /**
186
- * The band an axis carrying bars or areas draws: the data's extent with ZERO in it,
187
- * padded only on the sides that are not zero — bars standing on a frame's bottom edge,
188
- * not floating four per cent above it on a band of air nobody asked for.
189
- * `undefined` when there is nothing to fit.
190
- *
191
- * All-zero data (a quiet period, a zoom window over empty months) is `[0, 1]`: one unit
192
- * on the free side, the unit {@link padBand} pads a zero extent by. d3 maps every value
193
- * of a zero-height domain to the range's midpoint, so `[0, 0]` stood the bars on a
194
- * baseline in the middle of the plot, the "0" tick beside it (audit 2026-10-30 DSP-10;
195
- * keksdose's weekday pattern drew seven 4 px stubs mid-card for a period with no
196
- * spending).
197
- */
198
- export function anchoredBand(extent: readonly [number, number] | undefined): [number, number] | undefined {
199
- if (!extent) return undefined;
200
- const low = Math.min(0, extent[0]);
201
- const high = Math.max(0, extent[1]);
202
- if (low === 0 && high === 0) return [0, 1];
203
- const pad = (high - low) * AUTO_PAD || 1;
204
- return [low < 0 ? low - pad : 0, high > 0 ? high + pad : 0];
205
- }
206
-
207
- /**
208
- * Series with their colours settled BEFORE any are switched off.
209
- *
210
- * A series with no `color` takes `paletteFor(its position)` — and a legend toggle that
211
- * hands the chart a shorter list moves every later series one position up, repainting
212
- * it in its neighbour's colour on each click. Resolving the colours on the full list
213
- * and filtering after keeps each series in the colour its legend entry shows.
214
- */
215
- // Generic so a typed list comes back typed (0.53): a chart of `Month` rows takes it, and
216
- // its `dot`s still read `point.row` as a `Month`.
217
- export function visibleSeries<TRow extends object>(
218
- series: readonly SeriesChartSeries<TRow>[],
219
- hidden: ReadonlySet<string>,
220
- ): SeriesChartSeries<TRow>[] {
221
- return series
222
- .map((entry, index) => ({ ...entry, color: entry.color ?? paletteFor(index) }))
223
- .filter((entry) => !hidden.has(entry.key));
224
- }
225
-
226
- /** Where a category or time chart keeps each row's plotted position. Not the caller's
227
- * key: that one still holds their own value, which `format` and a hit hand back. */
228
- const PLOTTED_X = "__seriesChartX";
229
-
230
- /** A finite number, or `undefined` — the only thing a row cell counts as a sample. */
231
- export const finite = (value: unknown): number | undefined =>
232
- typeof value === "number" && Number.isFinite(value) ? value : undefined;
233
-
234
- /** A time value as epoch ms. A date-only ISO string is LOCAL midnight (see
235
- * `SeriesChartX.type`); anything unreadable is `undefined`, i.e. not plotted. */
236
- function toTime(value: unknown): number | undefined {
237
- if (value instanceof Date) return finite(value.getTime());
238
- if (typeof value === "number") return finite(value);
239
- if (typeof value !== "string") return undefined;
240
- const day = /^(\d{4})-(\d{2})(?:-(\d{2}))?$/.exec(value);
241
- if (day) return new Date(Number(day[1]), Number(day[2]) - 1, Number(day[3] ?? 1)).getTime();
242
- return finite(Date.parse(value));
243
- }
244
-
245
- /** A category's identity, so a Date matches another Date of the same instant. */
246
- const categoryId = (value: unknown) =>
247
- value instanceof Date ? `d:${value.getTime()}` : `${typeof value}:${String(value)}`;
248
-
249
- /**
250
- * The abscissa, reduced to a number line — which is all the plot, the ticks and the
251
- * zoom ever deal in. A number stays itself; a category becomes its slot index; a time
252
- * its epoch ms. Everything the caller sees (ticks, tooltip, hits) is turned back.
253
- */
254
- export interface XModel {
255
- kind: "number" | "category" | "time";
256
- /** The caller's key, still holding their value. */
257
- sourceKey: string;
258
- /** The key the plot reads. The same as `sourceKey` on a number line. */
259
- plotKey: string;
260
- /** The rows as plotted. The caller's own on a number line. */
261
- rows: readonly SeriesChartRow[];
262
- /** The caller's rows, which dots and hits hand back. */
263
- source: readonly SeriesChartRow[];
264
- position: (value: unknown) => number | undefined;
265
- valueAt: (position: number) => SeriesChartXValue;
266
- }
267
-
268
- export function xModel(rows: readonly SeriesChartRow[], x: SeriesChartX): XModel {
269
- const sourceKey = x.key ?? "x";
270
- if (x.type === "category") {
271
- const slots = new Map<string, number>();
272
- rows.forEach((row, index) => {
273
- const id = categoryId(row[sourceKey]);
274
- if (!slots.has(id)) slots.set(id, index);
275
- });
276
- return {
277
- kind: "category",
278
- sourceKey,
279
- plotKey: PLOTTED_X,
280
- rows: rows.map((row, index) => ({ ...row, [PLOTTED_X]: index })),
281
- source: rows,
282
- position: (value) => slots.get(categoryId(value)),
283
- valueAt: (position) => rows[Math.round(position)]?.[sourceKey] as SeriesChartXValue,
284
- };
285
- }
286
- if (x.type === "time") {
287
- return {
288
- kind: "time",
289
- sourceKey,
290
- plotKey: PLOTTED_X,
291
- rows: rows.map((row) => ({ ...row, [PLOTTED_X]: toTime(row[sourceKey]) })),
292
- source: rows,
293
- position: toTime,
294
- valueAt: (position) => new Date(position),
295
- };
296
- }
297
- return {
298
- kind: "number",
299
- sourceKey,
300
- plotKey: sourceKey,
301
- rows,
302
- source: rows,
303
- position: finite,
304
- valueAt: (position) => position,
305
- };
306
- }
307
-
308
- /** Caller ticks, as positions inside the domain on show. */
309
- export function resolveTicks<T>(
310
- values: SeriesChartTickValues<T> | undefined,
311
- domain: [number, number] | undefined,
312
- position: (value: T) => number | undefined,
313
- ): number[] | undefined {
314
- if (!values || !domain) return undefined;
315
- const list = typeof values === "function" ? values(domain) : values;
316
- if (!list) return undefined;
317
- const slack = (domain[1] - domain[0]) * 1e-9;
318
- return list
319
- .map(position)
320
- .filter((at): at is number => at !== undefined && at >= domain[0] - slack && at <= domain[1] + slack);
321
- }
322
-
323
- /** A low/high pair widened by some values, or `undefined` if there is still none. */
324
- export function extend(
325
- span: readonly [number, number] | undefined,
326
- values: readonly (number | undefined)[],
327
- ): [number, number] | undefined {
328
- let out: [number, number] | undefined = span ? [span[0], span[1]] : undefined;
329
- for (const value of values) {
330
- if (value === undefined || !Number.isFinite(value)) continue;
331
- out = out ? [Math.min(out[0], value), Math.max(out[1], value)] : [value, value];
332
- }
333
- return out;
334
- }
335
-
336
- /** How a time tick is written, by what one step of the ticks is. */
337
- export const TIME_TICK_FORMAT: Record<TimeTickUnit, Intl.DateTimeFormatOptions> = {
338
- hour: { hour: "2-digit", minute: "2-digit" },
339
- day: { day: "numeric", month: "short" },
340
- month: { month: "short", year: "2-digit" },
341
- year: { year: "numeric" },
342
- };
@@ -1,150 +0,0 @@
1
- // The axis budget of a series chart: which of its y axes are drawn, when there are more
2
- // than the width can carry. Pure, and apart from the chart, so the rule is tested on
3
- // numbers rather than on a jsdom that has no layout to measure.
4
- //
5
- // lenkbank's curve plot declares four visible axes — velocity, position and acceleration
6
- // on the left, loads on the right — and every one reserves its band of ticks and title.
7
- // At 1280 px that is a quarter of the card; at 390 px it is all of it, and the plot the
8
- // axes are for is ten pixels wide. An axis over budget is drawn the way a `hide: true`
9
- // one always was: it still scales its lines (and the zoom still refits it), but it draws
10
- // no ticks, no title, and reserves no width.
11
-
12
- /**
13
- * How many y axes a chart draws. A number caps the TOTAL; `{ left, right }` caps each
14
- * side (a side left out is not capped). Axes over the cap are hidden in declaration
15
- * order — the first of each side is the last to go, see {@link budgetedAxes}.
16
- */
17
- export type SeriesChartAxisBudget = number | { left?: number; right?: number };
18
-
19
- /** The part of an axis the budget reads. */
20
- interface BudgetAxis {
21
- id: string;
22
- orientation?: "left" | "right";
23
- hide?: boolean;
24
- title?: string;
25
- width?: number;
26
- }
27
-
28
- /**
29
- * The narrowest the plot may get before the automatic budget steps in, in px at Normal —
30
- * × the text size's scale since 0.32 (see {@link autoAxisBudget}).
31
- *
32
- * About a phone's plot with one axis a side (390 px viewport, card padding, two bands
33
- * of 48 + 16), where a curve's shape still reads. It is the point below which the chart
34
- * is already broken today — a plot the width of a thumb between four columns of numbers
35
- * — so the rule changes nothing that was working.
36
- */
37
- export const MIN_PLOT_WIDTH = 160;
38
-
39
- /** The budget the automatic rule applies: one axis a side. */
40
- export const NARROW_AXIS_BUDGET: SeriesChartAxisBudget = { left: 1, right: 1 };
41
-
42
- /**
43
- * The automatic rule's second step: the left axis alone — for a chart with an axis on
44
- * each side that even one a side leaves too little plot (0.32, see {@link autoAxisBudget}).
45
- */
46
- export const LEFT_AXIS_BUDGET: SeriesChartAxisBudget = { left: 1, right: 0 };
47
-
48
- /** The plot's margin on a side no axis band covers — `SeriesPlot`'s own. */
49
- const BARE_SIDE_MARGIN = 10;
50
-
51
- const sideOf = (axis: BudgetAxis) => axis.orientation ?? "left";
52
-
53
- /**
54
- * The ids of the VISIBLE axes a budget hides — axes already `hide: true` are neither
55
- * counted nor returned. Empty for no budget.
56
- *
57
- * Kept, in order of priority: the first visible axis of each side (in declaration order,
58
- * so the axis a caller lists first — the one the grid hangs its rules off — always
59
- * stays), then the rest in declaration order, until the cap. Per side, that is simply the
60
- * first `left` left-hand axes and the first `right` right-hand ones.
61
- */
62
- export function budgetedAxes(axes: readonly BudgetAxis[], budget: SeriesChartAxisBudget | undefined): string[] {
63
- if (budget === undefined) return [];
64
- const visible = axes.filter((axis) => !axis.hide);
65
- if (typeof budget === "number") {
66
- const cap = Math.max(0, Math.floor(budget));
67
- const firsts = new Set<string>();
68
- const seen = new Set<string>();
69
- for (const axis of visible) {
70
- if (!seen.has(sideOf(axis))) firsts.add(axis.id);
71
- seen.add(sideOf(axis));
72
- }
73
- const priority = [
74
- ...visible.filter((axis) => firsts.has(axis.id)),
75
- ...visible.filter((axis) => !firsts.has(axis.id)),
76
- ];
77
- const kept = new Set(priority.slice(0, cap).map((axis) => axis.id));
78
- return visible.filter((axis) => !kept.has(axis.id)).map((axis) => axis.id);
79
- }
80
- const used = { left: 0, right: 0 };
81
- const out: string[] = [];
82
- for (const axis of visible) {
83
- const side = sideOf(axis);
84
- const cap = budget[side];
85
- if (cap !== undefined && used[side] >= Math.max(0, Math.floor(cap))) out.push(axis.id);
86
- else used[side] += 1;
87
- }
88
- return out;
89
- }
90
-
91
- /**
92
- * The automatic budget for a chart `width` px wide, in two steps — each taken only when
93
- * the plot would otherwise be narrower than {@link MIN_PLOT_WIDTH} × `scale`:
94
- *
95
- * 1. {@link NARROW_AXIS_BUDGET}, one axis a side, when some side draws more than one
96
- * (lenkbank's four-axis curve plot on a phone);
97
- * 2. {@link LEFT_AXIS_BUDGET}, the left axis alone, when the chart has an axis on EACH
98
- * side and one a side still leaves the plot too narrow (0.32,
99
- * docs/text-size-harmonization.md §4, §10.10). At 150 % a 390 px phone's two bands
100
- * are 96 px each and the plot kept about 80 px. The right-hand axis is the secondary
101
- * one — the grid hangs its rules off the left — so it goes: its lines keep their own
102
- * scale, and its unit moves into the tooltip, the readout and the legend
103
- * ({@link axisUnit}, `seriesLegendEntries`), where its values stay readable.
104
- *
105
- * `scale` is the text size's (`useTextSize().scale`): the bands grow with the type
106
- * (`bandWidth` is handed the scaled ones), and so does the floor (§3.2, "a chart's axis
107
- * width and tick spacing are multiplied by `scale`") — the room a curve needs between
108
- * labels grows with the labels.
109
- *
110
- * `undefined` when neither step is needed, for a single-axis chart (a facing pair's two
111
- * charts each have one) and for a width that is not known (no layout, no
112
- * `ResizeObserver`).
113
- *
114
- * Decided on the CHART's width and the axes as declared, never on the plot the budget
115
- * produced, so hiding an axis cannot widen the plot back over the line and bring it
116
- * back: the rule has no feedback to oscillate on.
117
- */
118
- export function autoAxisBudget(
119
- axes: readonly BudgetAxis[],
120
- width: number | undefined,
121
- bandWidth: (axis: BudgetAxis) => number,
122
- scale = 1,
123
- ): SeriesChartAxisBudget | undefined {
124
- if (width === undefined || !(width > 0)) return undefined;
125
- const visible = axes.filter((axis) => !axis.hide);
126
- const left = visible.filter((axis) => sideOf(axis) === "left");
127
- const right = visible.filter((axis) => sideOf(axis) === "right");
128
- const floor = MIN_PLOT_WIDTH * scale;
129
- /** The plot's width with `drawn` axes drawn: what their bands and the bare sides leave. */
130
- const plot = (drawn: readonly BudgetAxis[]) => {
131
- const onLeft = drawn.some((axis) => sideOf(axis) === "left");
132
- const onRight = drawn.some((axis) => sideOf(axis) === "right");
133
- const bands = drawn.reduce((sum, axis) => sum + bandWidth(axis), 0);
134
- return width - bands - (onLeft ? 0 : BARE_SIDE_MARGIN) - (onRight ? 0 : BARE_SIDE_MARGIN);
135
- };
136
- if (left.length && right.length && plot([left[0], right[0]]) < floor) return LEFT_AXIS_BUDGET;
137
- if (left.length <= 1 && right.length <= 1) return undefined;
138
- return plot(visible) < floor ? NARROW_AXIS_BUDGET : undefined;
139
- }
140
-
141
- /**
142
- * The unit an axis' series say when the axis is not drawn: its `unit`, or else the
143
- * parenthesised tail of its title — "Load (N)" says "N", which is how the apps write
144
- * every axis title. `undefined` when neither says one.
145
- */
146
- export function axisUnit(axis: { unit?: string; title?: string }): string | undefined {
147
- if (axis.unit !== undefined) return axis.unit || undefined;
148
- const tail = /\(([^()]+)\)\s*$/.exec(axis.title ?? "");
149
- return tail?.[1].trim() || undefined;
150
- }
@@ -1,33 +0,0 @@
1
- // All user-facing strings for the series chart family — `SeriesChart`, its drag-to-zoom
2
- // layer and `ToggleLegend` — as the `seriesChart` namespace of `<UiKitProvider labels>`,
3
- // and per chart the `labels` prop over that.
4
- //
5
- // A module of its own, with no recharts in it, so the label registry (src/i18n) can
6
- // import the defaults without pulling the chart library in behind them.
7
-
8
- export interface SeriesChartLabels {
9
- /** The button that puts a zoomed chart back to its full extent. Visible text. */
10
- resetZoom: string;
11
- /** The drag-to-zoom gesture, said at the end of a zoomable chart's description (the
12
- * figure's `aria-describedby`; until 0.52 the name of the drag surface, an
13
- * `application` nothing could focus). It is the only place the gesture is explained,
14
- * so it says how the drag is read and how to undo it. */
15
- zoomHint: string;
16
- /** What a chart with nothing to draw says, when the caller passes no `empty`. */
17
- empty: string;
18
- /** Accessible name of a `ToggleLegend` — a group of switches, one per series. */
19
- legend: string;
20
- /** Accessible name of the group of keyboard stops a chart lays over its bars or
21
- * periods — one tab stop, arrow keys between them; buttons with `onPointClick`, and
22
- * since 0.52 images to read without. */
23
- points: string;
24
- }
25
-
26
- export const DEFAULT_SERIES_CHART_LABELS: SeriesChartLabels = {
27
- resetZoom: "Reset zoom",
28
- zoomHint:
29
- "Drag to zoom: a roughly square selection zooms both axes, a long thin one only its own. Double-click to reset.",
30
- empty: "No data",
31
- legend: "Series",
32
- points: "Chart values",
33
- };