@eifi1/ui-kit 0.54.0 → 0.56.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 (847) hide show
  1. package/README.md +90 -76
  2. package/dist/admin/plan-change.js +2 -2
  3. package/dist/admin/plan-change.js.map +1 -1
  4. package/dist/admin/user-roster.d.ts +6 -0
  5. package/dist/admin/user-roster.js +4 -0
  6. package/dist/admin/user-roster.js.map +1 -1
  7. package/dist/billing/billing-labels.d.ts +26 -0
  8. package/dist/billing/billing-labels.js +9 -0
  9. package/dist/billing/billing-labels.js.map +1 -1
  10. package/dist/billing/subscription-standing.d.ts +61 -0
  11. package/dist/billing/subscription-standing.js +51 -0
  12. package/dist/billing/subscription-standing.js.map +1 -0
  13. package/dist/billing/usage-meter.d.ts +52 -0
  14. package/dist/billing/usage-meter.js +52 -0
  15. package/dist/billing/usage-meter.js.map +1 -0
  16. package/dist/chart.d.ts +1 -0
  17. package/dist/chart.js +4 -0
  18. package/dist/chart.js.map +1 -1
  19. package/dist/components/alert-banner.js +2 -3
  20. package/dist/components/alert-banner.js.map +1 -1
  21. package/dist/components/amount-input.js +3 -15
  22. package/dist/components/amount-input.js.map +1 -1
  23. package/dist/components/autocomplete.js +2 -2
  24. package/dist/components/autocomplete.js.map +1 -1
  25. package/dist/components/bulk-action-bar.js +2 -1
  26. package/dist/components/bulk-action-bar.js.map +1 -1
  27. package/dist/components/button.d.ts +35 -1
  28. package/dist/components/button.js +6 -9
  29. package/dist/components/button.js.map +1 -1
  30. package/dist/components/calendar-heatmap.js +2 -2
  31. package/dist/components/calendar-heatmap.js.map +1 -1
  32. package/dist/components/camera-button.d.ts +89 -0
  33. package/dist/components/camera-button.js +122 -0
  34. package/dist/components/camera-button.js.map +1 -0
  35. package/dist/components/camera-capture.d.ts +66 -0
  36. package/dist/components/camera-capture.js +190 -0
  37. package/dist/components/camera-capture.js.map +1 -0
  38. package/dist/components/camera-labels.d.ts +20 -0
  39. package/dist/components/camera-labels.js +15 -0
  40. package/dist/components/camera-labels.js.map +1 -0
  41. package/dist/components/chart-edge.d.ts +9 -0
  42. package/dist/components/chart-edge.js +14 -3
  43. package/dist/components/chart-edge.js.map +1 -1
  44. package/dist/components/chart-zoom-core.js +34 -29
  45. package/dist/components/chart-zoom-core.js.map +1 -1
  46. package/dist/components/checkbox-group.js +1 -1
  47. package/dist/components/checkbox-group.js.map +1 -1
  48. package/dist/components/combobox-core.js +3 -2
  49. package/dist/components/combobox-core.js.map +1 -1
  50. package/dist/components/combobox.js +2 -2
  51. package/dist/components/combobox.js.map +1 -1
  52. package/dist/components/consent-again-notice-labels.d.ts +25 -0
  53. package/dist/components/consent-again-notice-labels.js +15 -0
  54. package/dist/components/consent-again-notice-labels.js.map +1 -0
  55. package/dist/components/consent-again-notice.d.ts +85 -0
  56. package/dist/components/consent-again-notice.js +94 -0
  57. package/dist/components/consent-again-notice.js.map +1 -0
  58. package/dist/components/country-select.js +2 -7
  59. package/dist/components/country-select.js.map +1 -1
  60. package/dist/components/currency-select.js +2 -2
  61. package/dist/components/currency-select.js.map +1 -1
  62. package/dist/components/danger-confirm.js +2 -2
  63. package/dist/components/danger-confirm.js.map +1 -1
  64. package/dist/components/data-table-column-settings.js +2 -2
  65. package/dist/components/data-table-column-settings.js.map +1 -1
  66. package/dist/components/data-table-fit.js.map +1 -1
  67. package/dist/components/data-table-virtual.js +13 -3
  68. package/dist/components/data-table-virtual.js.map +1 -1
  69. package/dist/components/date-field.js +2 -2
  70. package/dist/components/date-field.js.map +1 -1
  71. package/dist/components/date-picker.js +2 -2
  72. package/dist/components/date-picker.js.map +1 -1
  73. package/dist/components/date-range-picker.js +2 -6
  74. package/dist/components/date-range-picker.js.map +1 -1
  75. package/dist/components/dialog-frame.d.ts +3 -1
  76. package/dist/components/dialog-frame.js.map +1 -1
  77. package/dist/components/dropdown.js +7 -3
  78. package/dist/components/dropdown.js.map +1 -1
  79. package/dist/components/entity-combobox.js +2 -2
  80. package/dist/components/entity-combobox.js.map +1 -1
  81. package/dist/components/field-parts.d.ts +108 -6
  82. package/dist/components/field-parts.js +59 -6
  83. package/dist/components/field-parts.js.map +1 -1
  84. package/dist/components/field-suggestion-labels.d.ts +2 -0
  85. package/dist/components/field-suggestion-labels.js +10 -0
  86. package/dist/components/field-suggestion-labels.js.map +1 -0
  87. package/dist/components/field.js +1 -1
  88. package/dist/components/field.js.map +1 -1
  89. package/dist/components/file-button.d.ts +1 -1
  90. package/dist/components/file-button.js.map +1 -1
  91. package/dist/components/floating-panel.d.ts +7 -6
  92. package/dist/components/floating-panel.js +3 -17
  93. package/dist/components/floating-panel.js.map +1 -1
  94. package/dist/components/form-actions.d.ts +3 -2
  95. package/dist/components/form-actions.js.map +1 -1
  96. package/dist/components/hover-menu.js +3 -2
  97. package/dist/components/hover-menu.js.map +1 -1
  98. package/dist/components/icon-button.d.ts +23 -5
  99. package/dist/components/icon-button.js +7 -8
  100. package/dist/components/icon-button.js.map +1 -1
  101. package/dist/components/inline-confirm.js +2 -1
  102. package/dist/components/inline-confirm.js.map +1 -1
  103. package/dist/components/inline-entity-combobox.js +2 -2
  104. package/dist/components/inline-entity-combobox.js.map +1 -1
  105. package/dist/components/input.js +2 -2
  106. package/dist/components/input.js.map +1 -1
  107. package/dist/components/jump-calendar.js +3 -3
  108. package/dist/components/jump-calendar.js.map +1 -1
  109. package/dist/components/legal.d.ts +13 -1
  110. package/dist/components/legal.js +12 -0
  111. package/dist/components/legal.js.map +1 -1
  112. package/dist/components/legended-series-chart.d.ts +83 -0
  113. package/dist/components/legended-series-chart.js +77 -0
  114. package/dist/components/legended-series-chart.js.map +1 -0
  115. package/dist/components/lightbox.js +2 -1
  116. package/dist/components/lightbox.js.map +1 -1
  117. package/dist/components/mini-calendar.js +13 -5
  118. package/dist/components/mini-calendar.js.map +1 -1
  119. package/dist/components/modal.d.ts +23 -2
  120. package/dist/components/modal.js +24 -6
  121. package/dist/components/modal.js.map +1 -1
  122. package/dist/components/month-picker.d.ts +1 -1
  123. package/dist/components/month-picker.js +6 -6
  124. package/dist/components/month-picker.js.map +1 -1
  125. package/dist/components/multi-entity-combobox.js +2 -2
  126. package/dist/components/multi-entity-combobox.js.map +1 -1
  127. package/dist/components/multi-select.js +2 -6
  128. package/dist/components/multi-select.js.map +1 -1
  129. package/dist/components/number-input.js +2 -2
  130. package/dist/components/number-input.js.map +1 -1
  131. package/dist/components/page-header-layout.d.ts +18 -0
  132. package/dist/components/page-header-layout.js +23 -0
  133. package/dist/components/page-header-layout.js.map +1 -0
  134. package/dist/components/page-header-skeleton.d.ts +41 -0
  135. package/dist/components/page-header-skeleton.js +52 -0
  136. package/dist/components/page-header-skeleton.js.map +1 -0
  137. package/dist/components/page-header.js +4 -17
  138. package/dist/components/page-header.js.map +1 -1
  139. package/dist/components/popover.js +7 -2
  140. package/dist/components/popover.js.map +1 -1
  141. package/dist/components/release-notes-labels.d.ts +16 -0
  142. package/dist/components/release-notes-labels.js +18 -0
  143. package/dist/components/release-notes-labels.js.map +1 -0
  144. package/dist/components/release-notes.d.ts +65 -0
  145. package/dist/components/release-notes.js +65 -0
  146. package/dist/components/release-notes.js.map +1 -0
  147. package/dist/components/select.js +2 -2
  148. package/dist/components/select.js.map +1 -1
  149. package/dist/components/series-chart-labels.d.ts +9 -0
  150. package/dist/components/series-chart-labels.js +3 -1
  151. package/dist/components/series-chart-labels.js.map +1 -1
  152. package/dist/components/series-chart.d.ts +5 -0
  153. package/dist/components/series-chart.js +89 -36
  154. package/dist/components/series-chart.js.map +1 -1
  155. package/dist/components/toggle-group.js +3 -2
  156. package/dist/components/toggle-group.js.map +1 -1
  157. package/dist/components/treemap-layout.js.map +1 -1
  158. package/dist/components/treemap.d.ts +17 -15
  159. package/dist/components/treemap.js +167 -85
  160. package/dist/components/treemap.js.map +1 -1
  161. package/dist/eslint/index.js +1 -1
  162. package/dist/eslint/role-utilities.d.ts +2 -2
  163. package/dist/eslint/role-utilities.js.map +1 -1
  164. package/dist/feedback/feedback-inbox-page.d.ts +260 -0
  165. package/dist/feedback/feedback-inbox-page.js +207 -0
  166. package/dist/feedback/feedback-inbox-page.js.map +1 -0
  167. package/dist/feedback/feedback-vocabulary.js +2 -2
  168. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  169. package/dist/feedback.d.ts +1 -0
  170. package/dist/feedback.js +6 -0
  171. package/dist/feedback.js.map +1 -1
  172. package/dist/hooks/use-debounce.d.ts +32 -5
  173. package/dist/hooks/use-debounce.js +6 -5
  174. package/dist/hooks/use-debounce.js.map +1 -1
  175. package/dist/hooks/use-file-picker.d.ts +3 -1
  176. package/dist/hooks/use-file-picker.js.map +1 -1
  177. package/dist/hooks/use-focus-trap.d.ts +19 -3
  178. package/dist/hooks/use-focus-trap.js +15 -5
  179. package/dist/hooks/use-focus-trap.js.map +1 -1
  180. package/dist/hooks/use-has-camera.d.ts +36 -0
  181. package/dist/hooks/use-has-camera.js +53 -0
  182. package/dist/hooks/use-has-camera.js.map +1 -0
  183. package/dist/hooks/use-hotkey.js +1 -10
  184. package/dist/hooks/use-hotkey.js.map +1 -1
  185. package/dist/hooks/use-overlay-history.d.ts +6 -1
  186. package/dist/hooks/use-overlay-history.js +10 -2
  187. package/dist/hooks/use-overlay-history.js.map +1 -1
  188. package/dist/i18n/defaults.js +11 -1
  189. package/dist/i18n/defaults.js.map +1 -1
  190. package/dist/i18n/german.js +75 -3
  191. package/dist/i18n/german.js.map +1 -1
  192. package/dist/i18n/kit-labels.d.ts +20 -0
  193. package/dist/i18n/kit-labels.js.map +1 -1
  194. package/dist/i18n/locales/en.js +92 -4
  195. package/dist/i18n/locales/en.js.map +3 -3
  196. package/dist/i18n/locales/es.js +71 -3
  197. package/dist/i18n/locales/es.js.map +1 -1
  198. package/dist/i18n/locales/fr.js +72 -2
  199. package/dist/i18n/locales/fr.js.map +1 -1
  200. package/dist/i18n/locales/hu.js +74 -3
  201. package/dist/i18n/locales/hu.js.map +1 -1
  202. package/dist/i18n/locales/it.js +74 -3
  203. package/dist/i18n/locales/it.js.map +1 -1
  204. package/dist/i18n/locales/zh.js +71 -3
  205. package/dist/i18n/locales/zh.js.map +1 -1
  206. package/dist/i18n/review.js +22 -1
  207. package/dist/i18n/review.js.map +1 -1
  208. package/dist/index.d.ts +24 -5
  209. package/dist/index.js +35 -1
  210. package/dist/index.js.map +1 -1
  211. package/dist/landing/landing-labels.d.ts +8 -0
  212. package/dist/landing/landing-labels.js +2 -1
  213. package/dist/landing/landing-labels.js.map +1 -1
  214. package/dist/lib/changelog.d.ts +130 -0
  215. package/dist/lib/changelog.js +137 -0
  216. package/dist/lib/changelog.js.map +1 -0
  217. package/dist/lib/clipboard-minus.js +2 -2
  218. package/dist/lib/clipboard-minus.js.map +1 -1
  219. package/dist/lib/dates.d.ts +29 -3
  220. package/dist/lib/dates.js +41 -12
  221. package/dist/lib/dates.js.map +1 -1
  222. package/dist/lib/editable-content.d.ts +33 -0
  223. package/dist/lib/editable-content.js +15 -0
  224. package/dist/lib/editable-content.js.map +1 -0
  225. package/dist/lib/focus-left.d.ts +47 -1
  226. package/dist/lib/focus-left.js +11 -2
  227. package/dist/lib/focus-left.js.map +1 -1
  228. package/dist/lib/server-wake.d.ts +49 -9
  229. package/dist/lib/server-wake.js +25 -14
  230. package/dist/lib/server-wake.js.map +1 -1
  231. package/dist/lib/session-refresh.d.ts +53 -0
  232. package/dist/lib/session-refresh.js +27 -1
  233. package/dist/lib/session-refresh.js.map +1 -1
  234. package/dist/rhf/fields.js +3 -3
  235. package/dist/rhf/fields.js.map +1 -1
  236. package/dist/shell/app-shell.d.ts +25 -1
  237. package/dist/shell/app-shell.js +3 -1
  238. package/dist/shell/app-shell.js.map +1 -1
  239. package/dist/shell/dev-menu.d.ts +3 -0
  240. package/dist/shell/dev-menu.js +4 -2
  241. package/dist/shell/dev-menu.js.map +1 -1
  242. package/dist/shell/held-changes-banner-labels.d.ts +23 -0
  243. package/dist/shell/held-changes-banner-labels.js +14 -0
  244. package/dist/shell/held-changes-banner-labels.js.map +1 -0
  245. package/dist/shell/held-changes-banner.d.ts +75 -0
  246. package/dist/shell/held-changes-banner.js +106 -0
  247. package/dist/shell/held-changes-banner.js.map +1 -0
  248. package/dist/shell/sync-status-indicator.d.ts +27 -12
  249. package/dist/shell/sync-status-indicator.js +13 -4
  250. package/dist/shell/sync-status-indicator.js.map +1 -1
  251. package/dist/shell/top-bar-parts-labels.d.ts +5 -0
  252. package/dist/shell/top-bar-parts-labels.js +3 -1
  253. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  254. package/dist/shell.d.ts +2 -0
  255. package/dist/shell.js +3 -0
  256. package/dist/shell.js.map +1 -1
  257. package/dist/sync/engine.d.ts +11 -2
  258. package/dist/sync/engine.js +13 -5
  259. package/dist/sync/engine.js.map +1 -1
  260. package/dist/sync/hooks.d.ts +3 -2
  261. package/dist/sync/hooks.js +4 -2
  262. package/dist/sync/hooks.js.map +1 -1
  263. package/dist/testing/css-variables.generated.d.ts +2 -2
  264. package/dist/testing/css-variables.generated.js +1 -1
  265. package/dist/testing/css-variables.generated.js.map +1 -1
  266. package/dist/theme/chart-palette.d.ts +18 -0
  267. package/dist/theme/chart-palette.js +17 -1
  268. package/dist/theme/chart-palette.js.map +1 -1
  269. package/dist/theme/contrast-tokens.d.ts +3 -3
  270. package/dist/theme/contrast-tokens.js.map +1 -1
  271. package/dist/theme/contrast.d.ts +4 -4
  272. package/dist/theme/contrast.js.map +1 -1
  273. package/dist/tour/tour-overlay.js +2 -1
  274. package/dist/tour/tour-overlay.js.map +1 -1
  275. package/package.json +9 -12
  276. package/tokens.css +19 -54
  277. package/src/account/account-parts.ts +0 -47
  278. package/src/account/account-settings-labels.ts +0 -240
  279. package/src/account/account-settings.tsx +0 -698
  280. package/src/account/data-export-setting-labels.ts +0 -20
  281. package/src/account/data-export-setting.tsx +0 -200
  282. package/src/account/delete-account-setting-labels.ts +0 -33
  283. package/src/account/delete-account-setting.tsx +0 -342
  284. package/src/account/email-change-setting-labels.ts +0 -31
  285. package/src/account/email-change-setting.tsx +0 -443
  286. package/src/account/passkeys-setting.tsx +0 -445
  287. package/src/account/sessions-setting-labels.ts +0 -24
  288. package/src/account/sessions-setting.tsx +0 -283
  289. package/src/admin/admin-action-confirm-labels.ts +0 -19
  290. package/src/admin/admin-action-confirm.tsx +0 -509
  291. package/src/admin/admin-action-log-labels.ts +0 -83
  292. package/src/admin/admin-action-log.tsx +0 -464
  293. package/src/admin/admin-area-labels.ts +0 -114
  294. package/src/admin/admin-forbidden.tsx +0 -75
  295. package/src/admin/admin-overview.tsx +0 -258
  296. package/src/admin/admin-parts.ts +0 -68
  297. package/src/admin/admin-sections.tsx +0 -208
  298. package/src/admin/admin-tool-links.tsx +0 -90
  299. package/src/admin/invitations-panel-labels.ts +0 -31
  300. package/src/admin/invitations-panel.tsx +0 -516
  301. package/src/admin/mail-test-card-labels.ts +0 -19
  302. package/src/admin/mail-test-card.tsx +0 -189
  303. package/src/admin/plan-change-labels.ts +0 -5
  304. package/src/admin/plan-change.tsx +0 -474
  305. package/src/admin/reviewer-scope-editor-labels.ts +0 -16
  306. package/src/admin/reviewer-scope-editor.tsx +0 -224
  307. package/src/admin/role-select-labels.ts +0 -16
  308. package/src/admin/role-select.tsx +0 -282
  309. package/src/admin/transfer-ownership-dialog-labels.ts +0 -20
  310. package/src/admin/transfer-ownership-dialog.tsx +0 -162
  311. package/src/admin/user-roster-labels.ts +0 -17
  312. package/src/admin/user-roster.tsx +0 -559
  313. package/src/auth/accept-invitation-labels.ts +0 -21
  314. package/src/auth/accept-invitation.tsx +0 -210
  315. package/src/auth/auth-errors-labels.ts +0 -23
  316. package/src/auth/auth-errors.ts +0 -439
  317. package/src/auth/complete-name-dialog-labels.ts +0 -16
  318. package/src/auth/complete-name-dialog.tsx +0 -253
  319. package/src/auth/email-tag.ts +0 -75
  320. package/src/auth/forgot-password-form-labels.ts +0 -20
  321. package/src/auth/forgot-password-form.tsx +0 -221
  322. package/src/auth/form-rules.ts +0 -40
  323. package/src/auth/new-password-fields.tsx +0 -85
  324. package/src/auth/not-found-page-labels.ts +0 -12
  325. package/src/auth/not-found-page.tsx +0 -95
  326. package/src/auth/register-form-labels.ts +0 -31
  327. package/src/auth/register-form.tsx +0 -456
  328. package/src/auth/reset-password-form-labels.ts +0 -27
  329. package/src/auth/reset-password-form.tsx +0 -341
  330. package/src/auth/sign-in-form-labels.ts +0 -44
  331. package/src/auth/sign-in-form.tsx +0 -858
  332. package/src/auth/status-parts.tsx +0 -132
  333. package/src/auth/verify-email-labels.ts +0 -26
  334. package/src/auth/verify-email.tsx +0 -445
  335. package/src/billing/billing-banner.tsx +0 -258
  336. package/src/billing/billing-labels.ts +0 -381
  337. package/src/billing/billing-lock.ts +0 -108
  338. package/src/billing/billing-overview.ts +0 -157
  339. package/src/billing/billing-standing.ts +0 -80
  340. package/src/billing/cancel-request.ts +0 -97
  341. package/src/billing/cancel-subscription.tsx +0 -98
  342. package/src/billing/checkout-processing.ts +0 -394
  343. package/src/billing/checkout-return.ts +0 -90
  344. package/src/billing/pay-page.ts +0 -330
  345. package/src/billing/plan-card.tsx +0 -562
  346. package/src/billing/plan-change-labels.ts +0 -66
  347. package/src/billing/plan-limit-notice.tsx +0 -148
  348. package/src/billing/plan-limit-toast.tsx +0 -90
  349. package/src/billing/plan-limit.ts +0 -52
  350. package/src/billing/plan-price.ts +0 -98
  351. package/src/billing/plan-switch.tsx +0 -216
  352. package/src/billing/provider-page.ts +0 -84
  353. package/src/billing/subscription-actions.tsx +0 -247
  354. package/src/billing/subscription-status-chip.tsx +0 -95
  355. package/src/chart.ts +0 -103
  356. package/src/components/account-chips-labels.ts +0 -16
  357. package/src/components/account-chips.tsx +0 -474
  358. package/src/components/alert-banner.tsx +0 -670
  359. package/src/components/amount-input.tsx +0 -816
  360. package/src/components/appearance-labels.ts +0 -63
  361. package/src/components/authed-image-labels.ts +0 -11
  362. package/src/components/authed-image.tsx +0 -209
  363. package/src/components/autocomplete.tsx +0 -645
  364. package/src/components/breadcrumbs-labels.ts +0 -10
  365. package/src/components/breadcrumbs.tsx +0 -205
  366. package/src/components/bulk-action-bar-labels.ts +0 -11
  367. package/src/components/bulk-action-bar.tsx +0 -443
  368. package/src/components/button-group.tsx +0 -223
  369. package/src/components/button-look.ts +0 -256
  370. package/src/components/button.tsx +0 -339
  371. package/src/components/calculator.tsx +0 -341
  372. package/src/components/calendar-heatmap-labels.ts +0 -15
  373. package/src/components/calendar-heatmap.tsx +0 -600
  374. package/src/components/card.tsx +0 -377
  375. package/src/components/chart-edge.ts +0 -106
  376. package/src/components/chart-figure.tsx +0 -35
  377. package/src/components/chart-height.ts +0 -30
  378. package/src/components/chart-zoom-core.tsx +0 -627
  379. package/src/components/chart-zoom.tsx +0 -22
  380. package/src/components/chart.tsx +0 -554
  381. package/src/components/checkbox-group.tsx +0 -247
  382. package/src/components/checkbox.tsx +0 -346
  383. package/src/components/chip-input.tsx +0 -370
  384. package/src/components/chip-labels.ts +0 -13
  385. package/src/components/chip.tsx +0 -843
  386. package/src/components/choice-card.tsx +0 -544
  387. package/src/components/column-mapper-labels.ts +0 -38
  388. package/src/components/column-mapper.tsx +0 -655
  389. package/src/components/combobox-core.tsx +0 -1321
  390. package/src/components/combobox-suggestions.tsx +0 -131
  391. package/src/components/combobox.tsx +0 -716
  392. package/src/components/confirm-context.ts +0 -7
  393. package/src/components/confirm-dialog-labels.ts +0 -13
  394. package/src/components/confirm-dialog.tsx +0 -341
  395. package/src/components/copy-button-labels.ts +0 -13
  396. package/src/components/copy-button.tsx +0 -192
  397. package/src/components/country-select-labels.ts +0 -11
  398. package/src/components/country-select.tsx +0 -539
  399. package/src/components/currency-option-list.tsx +0 -188
  400. package/src/components/currency-select.tsx +0 -343
  401. package/src/components/danger-confirm-labels.ts +0 -20
  402. package/src/components/danger-confirm.tsx +0 -987
  403. package/src/components/data-table-cells.tsx +0 -118
  404. package/src/components/data-table-column-settings.tsx +0 -198
  405. package/src/components/data-table-filter-popover.tsx +0 -289
  406. package/src/components/data-table-filters.ts +0 -315
  407. package/src/components/data-table-fit.ts +0 -301
  408. package/src/components/data-table-groups.tsx +0 -288
  409. package/src/components/data-table-head.tsx +0 -280
  410. package/src/components/data-table-labels.ts +0 -198
  411. package/src/components/data-table-leading-row.tsx +0 -58
  412. package/src/components/data-table-mobile.tsx +0 -1117
  413. package/src/components/data-table-pagination.tsx +0 -202
  414. package/src/components/data-table-resize.ts +0 -188
  415. package/src/components/data-table-row-actions.tsx +0 -302
  416. package/src/components/data-table-row.tsx +0 -496
  417. package/src/components/data-table-selection.ts +0 -71
  418. package/src/components/data-table-shared.tsx +0 -287
  419. package/src/components/data-table-sort.ts +0 -163
  420. package/src/components/data-table-virtual.ts +0 -576
  421. package/src/components/data-table.tsx +0 -2598
  422. package/src/components/date-field.tsx +0 -684
  423. package/src/components/date-format-setting.tsx +0 -64
  424. package/src/components/date-picker.tsx +0 -404
  425. package/src/components/date-range-picker.tsx +0 -518
  426. package/src/components/description-list-labels.ts +0 -9
  427. package/src/components/description-list.tsx +0 -386
  428. package/src/components/dialog-frame-labels.ts +0 -7
  429. package/src/components/dialog-frame.tsx +0 -284
  430. package/src/components/disclosure.tsx +0 -476
  431. package/src/components/dropdown.tsx +0 -461
  432. package/src/components/empty-state.tsx +0 -136
  433. package/src/components/entity-combobox.tsx +0 -422
  434. package/src/components/error-boundary-labels.ts +0 -20
  435. package/src/components/error-boundary.tsx +0 -675
  436. package/src/components/facing-pair.ts +0 -93
  437. package/src/components/field-base-labels.ts +0 -20
  438. package/src/components/field-base.tsx +0 -656
  439. package/src/components/field-parts.tsx +0 -825
  440. package/src/components/field-strip.tsx +0 -129
  441. package/src/components/field.tsx +0 -206
  442. package/src/components/file-button.tsx +0 -295
  443. package/src/components/file-dropzone.tsx +0 -559
  444. package/src/components/floating-panel-labels.ts +0 -10
  445. package/src/components/floating-panel.tsx +0 -828
  446. package/src/components/focus-ring.ts +0 -16
  447. package/src/components/form-actions-labels.ts +0 -11
  448. package/src/components/form-actions.tsx +0 -578
  449. package/src/components/full-bleed-dialog.tsx +0 -294
  450. package/src/components/grouped-picker.tsx +0 -184
  451. package/src/components/help-popover.tsx +0 -117
  452. package/src/components/hover-menu.tsx +0 -343
  453. package/src/components/iban-input-labels.ts +0 -14
  454. package/src/components/iban-input.tsx +0 -236
  455. package/src/components/icon-button.tsx +0 -959
  456. package/src/components/icon-picker-labels.ts +0 -13
  457. package/src/components/icon-picker.tsx +0 -232
  458. package/src/components/image-grid-labels.ts +0 -11
  459. package/src/components/image-grid.tsx +0 -202
  460. package/src/components/inline-confirm.tsx +0 -116
  461. package/src/components/inline-edit-field-labels.ts +0 -11
  462. package/src/components/inline-edit-field.tsx +0 -552
  463. package/src/components/inline-entity-combobox.tsx +0 -849
  464. package/src/components/input.tsx +0 -394
  465. package/src/components/jump-calendar.tsx +0 -265
  466. package/src/components/language-select.tsx +0 -93
  467. package/src/components/legal-labels.ts +0 -105
  468. package/src/components/legal-page.tsx +0 -711
  469. package/src/components/legal.tsx +0 -668
  470. package/src/components/lightbox-labels.ts +0 -18
  471. package/src/components/lightbox.tsx +0 -399
  472. package/src/components/line-items-labels.ts +0 -14
  473. package/src/components/line-items.tsx +0 -602
  474. package/src/components/list-labels.ts +0 -12
  475. package/src/components/list.tsx +0 -870
  476. package/src/components/loading-state.tsx +0 -78
  477. package/src/components/measured-grid-labels.ts +0 -25
  478. package/src/components/measured-grid.tsx +0 -837
  479. package/src/components/menu-item.tsx +0 -241
  480. package/src/components/mini-calendar-labels.ts +0 -17
  481. package/src/components/mini-calendar.tsx +0 -792
  482. package/src/components/modal.tsx +0 -534
  483. package/src/components/money-draft.ts +0 -83
  484. package/src/components/money-field.tsx +0 -76
  485. package/src/components/month-grid.tsx +0 -229
  486. package/src/components/month-picker-labels.ts +0 -22
  487. package/src/components/month-picker.tsx +0 -1087
  488. package/src/components/multi-entity-combobox.tsx +0 -369
  489. package/src/components/multi-select.tsx +0 -376
  490. package/src/components/nav-pills.tsx +0 -198
  491. package/src/components/number-field.tsx +0 -327
  492. package/src/components/number-input.tsx +0 -559
  493. package/src/components/numeric-field.ts +0 -169
  494. package/src/components/numpad-sheet.tsx +0 -285
  495. package/src/components/one-time-code-input.tsx +0 -270
  496. package/src/components/page-contents-labels.ts +0 -9
  497. package/src/components/page-contents.tsx +0 -282
  498. package/src/components/page-header-context.ts +0 -8
  499. package/src/components/page-header.tsx +0 -298
  500. package/src/components/password-strength-labels.ts +0 -22
  501. package/src/components/password-strength.tsx +0 -241
  502. package/src/components/phone-input-labels.ts +0 -10
  503. package/src/components/phone-input.tsx +0 -282
  504. package/src/components/picker-sheet.tsx +0 -330
  505. package/src/components/pie-chart-labels.ts +0 -40
  506. package/src/components/pie-chart.tsx +0 -480
  507. package/src/components/popover-labels.ts +0 -14
  508. package/src/components/popover.tsx +0 -268
  509. package/src/components/progress-bar-labels.ts +0 -10
  510. package/src/components/progress-bar.tsx +0 -479
  511. package/src/components/qr-code.tsx +0 -76
  512. package/src/components/reauth-dialog-labels.ts +0 -13
  513. package/src/components/reauth-dialog.tsx +0 -265
  514. package/src/components/row-actions-labels.ts +0 -12
  515. package/src/components/row-actions.tsx +0 -795
  516. package/src/components/scroll-area.tsx +0 -123
  517. package/src/components/search-field.tsx +0 -192
  518. package/src/components/select.tsx +0 -294
  519. package/src/components/separator.tsx +0 -33
  520. package/src/components/series-chart-axes.ts +0 -342
  521. package/src/components/series-chart-budget.ts +0 -150
  522. package/src/components/series-chart-labels.ts +0 -33
  523. package/src/components/series-chart-thin.ts +0 -180
  524. package/src/components/series-chart-ticks.ts +0 -194
  525. package/src/components/series-chart.tsx +0 -1906
  526. package/src/components/server-wake-labels.ts +0 -11
  527. package/src/components/server-wake.tsx +0 -129
  528. package/src/components/settings-fields.tsx +0 -237
  529. package/src/components/share-card-labels.ts +0 -30
  530. package/src/components/share-card.tsx +0 -675
  531. package/src/components/signature-pad-labels.ts +0 -24
  532. package/src/components/signature-pad.tsx +0 -747
  533. package/src/components/signed-amount-labels.ts +0 -10
  534. package/src/components/signed-amount.tsx +0 -336
  535. package/src/components/skeleton.tsx +0 -80
  536. package/src/components/slider.tsx +0 -338
  537. package/src/components/sparkline-labels.ts +0 -14
  538. package/src/components/sparkline.tsx +0 -322
  539. package/src/components/spinner.tsx +0 -81
  540. package/src/components/stat-tile-labels.ts +0 -15
  541. package/src/components/stat-tile.tsx +0 -754
  542. package/src/components/status-dot.tsx +0 -170
  543. package/src/components/swatch-picker-labels.ts +0 -10
  544. package/src/components/swatch-picker.tsx +0 -283
  545. package/src/components/swipeable-row.tsx +0 -386
  546. package/src/components/switch.tsx +0 -273
  547. package/src/components/table-skeleton.tsx +0 -136
  548. package/src/components/table.tsx +0 -647
  549. package/src/components/tabs-labels.ts +0 -13
  550. package/src/components/tabs.tsx +0 -693
  551. package/src/components/text-link.tsx +0 -359
  552. package/src/components/text.tsx +0 -150
  553. package/src/components/textarea.tsx +0 -330
  554. package/src/components/tile-radio.tsx +0 -332
  555. package/src/components/time-input.tsx +0 -121
  556. package/src/components/toast-labels.ts +0 -12
  557. package/src/components/toast.tsx +0 -519
  558. package/src/components/toggle-group.tsx +0 -752
  559. package/src/components/toggle-legend.tsx +0 -394
  560. package/src/components/tooltip.tsx +0 -1149
  561. package/src/components/translation-review-editor.tsx +0 -290
  562. package/src/components/translation-review-labels.ts +0 -181
  563. package/src/components/translation-review-parts.tsx +0 -272
  564. package/src/components/translation-review.tsx +0 -1240
  565. package/src/components/tree-view.tsx +0 -589
  566. package/src/components/treemap-labels.ts +0 -47
  567. package/src/components/treemap-layout.ts +0 -210
  568. package/src/components/treemap.tsx +0 -1184
  569. package/src/components/trigger-aria.ts +0 -44
  570. package/src/components/use-anchor-dir.ts +0 -20
  571. package/src/components/use-mobile-reveal.ts +0 -62
  572. package/src/components/use-table-state.ts +0 -753
  573. package/src/components/user-avatar.tsx +0 -116
  574. package/src/components/wizard-stepper.tsx +0 -42
  575. package/src/components/write-lock-labels.ts +0 -10
  576. package/src/components/write-lock.tsx +0 -253
  577. package/src/currencies.ts +0 -90
  578. package/src/data-table.ts +0 -42
  579. package/src/demo/demo-banner.tsx +0 -153
  580. package/src/demo/demo-countdown.ts +0 -136
  581. package/src/demo/demo-ended.tsx +0 -90
  582. package/src/demo/demo-labels.ts +0 -78
  583. package/src/demo/demo-session.ts +0 -32
  584. package/src/demo/demo-start.tsx +0 -156
  585. package/src/eslint/index.ts +0 -161
  586. package/src/eslint/role-utilities.generated.ts +0 -146
  587. package/src/eslint/role-utilities.ts +0 -233
  588. package/src/feedback/feedback-attachment-download.tsx +0 -77
  589. package/src/feedback/feedback-attachment-labels.ts +0 -37
  590. package/src/feedback/feedback-attachment.tsx +0 -1239
  591. package/src/feedback/feedback-capture.ts +0 -287
  592. package/src/feedback/feedback-comment-thread.tsx +0 -353
  593. package/src/feedback/feedback-context-labels.ts +0 -11
  594. package/src/feedback/feedback-context.tsx +0 -245
  595. package/src/feedback/feedback-crash.ts +0 -547
  596. package/src/feedback/feedback-diagnostics.tsx +0 -41
  597. package/src/feedback/feedback-dialog-labels.ts +0 -29
  598. package/src/feedback/feedback-dialog.tsx +0 -452
  599. package/src/feedback/feedback-entry-file.tsx +0 -150
  600. package/src/feedback/feedback-inbox.tsx +0 -552
  601. package/src/feedback/feedback-labels.ts +0 -144
  602. package/src/feedback/feedback-menu-labels.ts +0 -12
  603. package/src/feedback/feedback-menu.tsx +0 -177
  604. package/src/feedback/feedback-mutation.ts +0 -20
  605. package/src/feedback/feedback-page-link.ts +0 -90
  606. package/src/feedback/feedback-public-labels.ts +0 -81
  607. package/src/feedback/feedback-public-list.tsx +0 -524
  608. package/src/feedback/feedback-public-switch.tsx +0 -102
  609. package/src/feedback/feedback-public-types.ts +0 -101
  610. package/src/feedback/feedback-record.ts +0 -428
  611. package/src/feedback/feedback-replies-context.ts +0 -9
  612. package/src/feedback/feedback-replies.tsx +0 -343
  613. package/src/feedback/feedback-rework-entry-chip.tsx +0 -18
  614. package/src/feedback/feedback-row-detail-labels.ts +0 -31
  615. package/src/feedback/feedback-row-detail.tsx +0 -871
  616. package/src/feedback/feedback-status-undo.ts +0 -109
  617. package/src/feedback/feedback-submit-dialog.tsx +0 -131
  618. package/src/feedback/feedback-submit.tsx +0 -270
  619. package/src/feedback/feedback-swipe.tsx +0 -192
  620. package/src/feedback/feedback-table-labels.ts +0 -27
  621. package/src/feedback/feedback-table.tsx +0 -912
  622. package/src/feedback/feedback-thread-labels.ts +0 -22
  623. package/src/feedback/feedback-thread-parts-labels.ts +0 -41
  624. package/src/feedback/feedback-thread.tsx +0 -905
  625. package/src/feedback/feedback-vocabulary.ts +0 -263
  626. package/src/feedback/feedback-vote-button.tsx +0 -124
  627. package/src/feedback.ts +0 -116
  628. package/src/hooks/use-anchored-panel.ts +0 -396
  629. package/src/hooks/use-anchored-rect.ts +0 -77
  630. package/src/hooks/use-announce.ts +0 -85
  631. package/src/hooks/use-authed-src.ts +0 -167
  632. package/src/hooks/use-body-scroll-lock.ts +0 -119
  633. package/src/hooks/use-breakpoint.ts +0 -133
  634. package/src/hooks/use-close-transition.ts +0 -107
  635. package/src/hooks/use-copy-to-clipboard.ts +0 -122
  636. package/src/hooks/use-debounce.ts +0 -114
  637. package/src/hooks/use-dismiss.ts +0 -371
  638. package/src/hooks/use-document-title.ts +0 -33
  639. package/src/hooks/use-file-drop.ts +0 -121
  640. package/src/hooks/use-file-picker-labels.ts +0 -28
  641. package/src/hooks/use-file-picker.tsx +0 -359
  642. package/src/hooks/use-focus-trap.ts +0 -199
  643. package/src/hooks/use-hotkey.ts +0 -212
  644. package/src/hooks/use-large-text.ts +0 -41
  645. package/src/hooks/use-long-press.ts +0 -140
  646. package/src/hooks/use-media-query.ts +0 -39
  647. package/src/hooks/use-mounted.ts +0 -39
  648. package/src/hooks/use-noindex.ts +0 -37
  649. package/src/hooks/use-overlay-history.ts +0 -714
  650. package/src/hooks/use-row-swipe.ts +0 -207
  651. package/src/hooks/use-search-param-state.ts +0 -434
  652. package/src/hooks/use-windowed-rows.ts +0 -225
  653. package/src/i18n/defaults.ts +0 -267
  654. package/src/i18n/german.ts +0 -2059
  655. package/src/i18n/kit-labels.tsx +0 -1003
  656. package/src/i18n/languages.ts +0 -349
  657. package/src/i18n/locales/de-CH.ts +0 -24
  658. package/src/i18n/locales/en.ts +0 -267
  659. package/src/i18n/locales/es.ts +0 -1999
  660. package/src/i18n/locales/fr.ts +0 -2037
  661. package/src/i18n/locales/hu.ts +0 -2004
  662. package/src/i18n/locales/it.ts +0 -2014
  663. package/src/i18n/locales/zh.ts +0 -1912
  664. package/src/i18n/plurals.ts +0 -86
  665. package/src/i18n/review.ts +0 -475
  666. package/src/i18n/shared-labels.ts +0 -138
  667. package/src/i18n/swiss.ts +0 -29
  668. package/src/index.ts +0 -1191
  669. package/src/landing/access.ts +0 -93
  670. package/src/landing/landing-actions.tsx +0 -97
  671. package/src/landing/landing-labels.ts +0 -59
  672. package/src/landing/landing-sections.tsx +0 -341
  673. package/src/landing/page-seo.ts +0 -261
  674. package/src/landing/public-header.tsx +0 -121
  675. package/src/landing/public-page.tsx +0 -106
  676. package/src/landing/routing.tsx +0 -225
  677. package/src/lib/broadcast.ts +0 -52
  678. package/src/lib/calc.ts +0 -323
  679. package/src/lib/chip-edge-snap.ts +0 -212
  680. package/src/lib/clipboard-minus.ts +0 -107
  681. package/src/lib/clipping.ts +0 -34
  682. package/src/lib/cn.ts +0 -28
  683. package/src/lib/column-mapping.ts +0 -234
  684. package/src/lib/countries.ts +0 -91
  685. package/src/lib/data-attributes.ts +0 -14
  686. package/src/lib/date-format.ts +0 -227
  687. package/src/lib/dates.ts +0 -288
  688. package/src/lib/day-format.ts +0 -96
  689. package/src/lib/decimal-marks.ts +0 -108
  690. package/src/lib/describe-failure.ts +0 -18
  691. package/src/lib/device-settings.ts +0 -147
  692. package/src/lib/direction.ts +0 -74
  693. package/src/lib/document-navigation.ts +0 -17
  694. package/src/lib/document-title.ts +0 -41
  695. package/src/lib/download.ts +0 -172
  696. package/src/lib/float-clearance.ts +0 -70
  697. package/src/lib/floating-stack.ts +0 -70
  698. package/src/lib/focus-left.ts +0 -156
  699. package/src/lib/format.ts +0 -585
  700. package/src/lib/http-status.ts +0 -38
  701. package/src/lib/iban.ts +0 -251
  702. package/src/lib/ime.ts +0 -24
  703. package/src/lib/intl-cache.ts +0 -27
  704. package/src/lib/iso-day.ts +0 -13
  705. package/src/lib/lazy-with-fallback.ts +0 -82
  706. package/src/lib/logger.ts +0 -69
  707. package/src/lib/minus.ts +0 -50
  708. package/src/lib/path-pattern.ts +0 -55
  709. package/src/lib/person-name.ts +0 -155
  710. package/src/lib/phone.ts +0 -208
  711. package/src/lib/plain-text.ts +0 -22
  712. package/src/lib/presence.ts +0 -18
  713. package/src/lib/qr-encode.ts +0 -444
  714. package/src/lib/quiet-focus.ts +0 -32
  715. package/src/lib/reduced-motion.ts +0 -22
  716. package/src/lib/refs.ts +0 -22
  717. package/src/lib/round.ts +0 -43
  718. package/src/lib/safe-storage.ts +0 -119
  719. package/src/lib/server-wake.ts +0 -315
  720. package/src/lib/session-refresh.ts +0 -472
  721. package/src/lib/share-format.ts +0 -18
  722. package/src/lib/status-tone.ts +0 -43
  723. package/src/lib/strip-fade.ts +0 -287
  724. package/src/lib/table-text.ts +0 -554
  725. package/src/lib/text-case.ts +0 -19
  726. package/src/lib/text-match.ts +0 -169
  727. package/src/lib/thenable.ts +0 -19
  728. package/src/lib/translation-review.ts +0 -769
  729. package/src/notifications/device-zone-report.ts +0 -67
  730. package/src/notifications/feedback-notification-types-labels.ts +0 -33
  731. package/src/notifications/feedback-notification-types.ts +0 -71
  732. package/src/notifications/notification-bell.tsx +0 -119
  733. package/src/notifications/notification-inbox.tsx +0 -309
  734. package/src/notifications/notification-parts.tsx +0 -81
  735. package/src/notifications/notification-types-setting.tsx +0 -406
  736. package/src/notifications/notification-types.ts +0 -89
  737. package/src/notifications/notifications-labels.ts +0 -287
  738. package/src/notifications/push-device-setting.tsx +0 -230
  739. package/src/notifications/push-devices-setting.tsx +0 -374
  740. package/src/notifications/push-worker.ts +0 -168
  741. package/src/notifications/quiet-hours-setting.tsx +0 -238
  742. package/src/notifications/unsubscribe-panel.tsx +0 -200
  743. package/src/notifications/use-push-device.ts +0 -448
  744. package/src/offline/local-first.ts +0 -100
  745. package/src/offline/pwa-update-prompt-labels.ts +0 -9
  746. package/src/offline/pwa-update-prompt.tsx +0 -78
  747. package/src/offline/query-persistence.ts +0 -391
  748. package/src/offline/service-worker-updates.ts +0 -81
  749. package/src/offline/shared-computer-labels.ts +0 -8
  750. package/src/offline/shared-computer.tsx +0 -87
  751. package/src/offline/sign-out-pending-dialog-labels.ts +0 -21
  752. package/src/offline/sign-out-pending-dialog.tsx +0 -135
  753. package/src/offline.ts +0 -37
  754. package/src/push-worker.ts +0 -25
  755. package/src/rhf/fields.tsx +0 -2187
  756. package/src/rhf/form-core.tsx +0 -324
  757. package/src/rhf/form.tsx +0 -12
  758. package/src/rhf/line-items.tsx +0 -135
  759. package/src/rhf/use-rhf-wizard-step.ts +0 -104
  760. package/src/rhf.ts +0 -21
  761. package/src/search/command-palette-labels.ts +0 -16
  762. package/src/search/command-palette.tsx +0 -624
  763. package/src/search/global-search-labels.ts +0 -13
  764. package/src/search/global-search.tsx +0 -660
  765. package/src/search/search-index.ts +0 -283
  766. package/src/search/use-command-key.ts +0 -23
  767. package/src/search.ts +0 -14
  768. package/src/settings/device-reset-setting-labels.ts +0 -20
  769. package/src/settings/device-reset-setting.tsx +0 -116
  770. package/src/settings/settings-card-classes.ts +0 -11
  771. package/src/settings/settings-catalogue.ts +0 -150
  772. package/src/settings/settings-context.ts +0 -33
  773. package/src/settings/settings-heading.tsx +0 -67
  774. package/src/settings/settings-labels.ts +0 -87
  775. package/src/settings/settings-layout.tsx +0 -471
  776. package/src/settings/settings-section.tsx +0 -108
  777. package/src/settings/use-account-appearance.ts +0 -148
  778. package/src/settings/use-account-language.ts +0 -146
  779. package/src/settings/use-settings-focus.ts +0 -128
  780. package/src/settings/use-settings-route.ts +0 -258
  781. package/src/shell/account-menu-language.tsx +0 -130
  782. package/src/shell/account-menu-text-size.tsx +0 -80
  783. package/src/shell/admin-menu.tsx +0 -183
  784. package/src/shell/app-shell-labels.ts +0 -11
  785. package/src/shell/app-shell.tsx +0 -1560
  786. package/src/shell/auth-layout.tsx +0 -186
  787. package/src/shell/company-switcher-labels.ts +0 -13
  788. package/src/shell/company-switcher.tsx +0 -136
  789. package/src/shell/dev-menu.tsx +0 -257
  790. package/src/shell/fill-height.tsx +0 -45
  791. package/src/shell/language-code.ts +0 -5
  792. package/src/shell/option-switcher-menu.tsx +0 -84
  793. package/src/shell/sync-status-indicator.tsx +0 -303
  794. package/src/shell/top-bar-actions.tsx +0 -87
  795. package/src/shell/top-bar-brand.tsx +0 -78
  796. package/src/shell/top-bar-parts-labels.ts +0 -148
  797. package/src/shell/top-bar.tsx +0 -40
  798. package/src/shell/topbar-action-menu.tsx +0 -567
  799. package/src/shell/topbar-controls.tsx +0 -269
  800. package/src/shell/tour-menu.tsx +0 -187
  801. package/src/shell.ts +0 -108
  802. package/src/sync/db.ts +0 -129
  803. package/src/sync/engine.ts +0 -1011
  804. package/src/sync/hooks.ts +0 -98
  805. package/src/sync/testing.ts +0 -73
  806. package/src/sync/wire.ts +0 -61
  807. package/src/sync.ts +0 -37
  808. package/src/table-text.ts +0 -8
  809. package/src/testing/css-variables.generated.ts +0 -112
  810. package/src/testing/css-variables.ts +0 -189
  811. package/src/testing/index.ts +0 -29
  812. package/src/testing/react.ts +0 -58
  813. package/src/testing/tour.ts +0 -41
  814. package/src/testing/viewport.ts +0 -357
  815. package/src/theme/chart-palette.ts +0 -232
  816. package/src/theme/color.ts +0 -272
  817. package/src/theme/contrast-tokens.ts +0 -268
  818. package/src/theme/contrast.ts +0 -250
  819. package/src/theme/palette-derive.ts +0 -825
  820. package/src/theme/palette-presets.ts +0 -544
  821. package/src/theme/palette-store.ts +0 -108
  822. package/src/theme/text-size.ts +0 -289
  823. package/src/theme/theme-store.ts +0 -157
  824. package/src/tour/tour-catalogue-labels.ts +0 -75
  825. package/src/tour/tour-catalogue.tsx +0 -335
  826. package/src/tour/tour-dock.ts +0 -134
  827. package/src/tour/tour-engine.ts +0 -37
  828. package/src/tour/tour-gates.ts +0 -218
  829. package/src/tour/tour-guide-button.tsx +0 -64
  830. package/src/tour/tour-guide-labels.ts +0 -15
  831. package/src/tour/tour-info.ts +0 -144
  832. package/src/tour/tour-labels.ts +0 -23
  833. package/src/tour/tour-overlay.tsx +0 -1170
  834. package/src/tour/tour.tsx +0 -750
  835. package/src/tour/use-tour-progress.ts +0 -671
  836. package/src/tour/use-tour-url-sync.ts +0 -266
  837. package/src/tour.ts +0 -21
  838. package/src/vite-env.d.ts +0 -23
  839. package/src/wizard/stepper-nav.tsx +0 -360
  840. package/src/wizard/types.ts +0 -275
  841. package/src/wizard/use-wizard.ts +0 -560
  842. package/src/wizard/validation.ts +0 -39
  843. package/src/wizard/wizard-context.tsx +0 -74
  844. package/src/wizard/wizard-labels.ts +0 -29
  845. package/src/wizard/wizard-step.tsx +0 -76
  846. package/src/wizard/wizard-summary.tsx +0 -84
  847. 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
- };