@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,377 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- import type { ComponentPropsWithoutRef, ComponentPropsWithRef, ReactNode, Ref } from "react";
3
- import { cn } from "../lib/cn";
4
-
5
- /**
6
- * A `div`'s props, `ref` included since 0.34 — and the same for every Card part (API-2,
7
- * refactor audit 2026-10, Skeleton's 0.33.1 change). They always reached the element;
8
- * `ComponentPropsWithoutRef` only kept `ref` out of the type, so keksdose wrapped a Card in
9
- * a `<div ref>` to scroll it into view (admin-actions-panel).
10
- */
11
- export interface CardProps extends ComponentPropsWithRef<"div"> {
12
- children: ReactNode;
13
- /**
14
- * When true, drop the card chrome (border, rounded corners, shadow) on mobile so the
15
- * card spans edge-to-edge. Chrome reappears at the `md` breakpoint. Use for primary
16
- * content cards on data pages; leave off for centered dialog/panel cards.
17
- */
18
- flush?: boolean;
19
- /**
20
- * `inset`: a panel INSIDE a card rather than a card on the page — the raised
21
- * `--bg-surface-2`, a small radius, `p-3` of its own and no border or shadow, since
22
- * it is already sitting on the card that has them. Lenkbank's results blocks and
23
- * corner panels write this by hand (`rounded-md bg-surface-2 p-3`) under a Card of
24
- * their own. Unlike the default card it carries its padding, because every one of
25
- * those copies wanted the same one; a caller's `p-*` still wins. `flush` is ignored:
26
- * an inset panel never runs edge to edge.
27
- */
28
- variant?: "default" | "inset" | "outline";
29
- /**
30
- * The card's own padding: `none`, `sm` (`p-3`) or `md` (`p-4`).
31
- *
32
- * `outline` is the bordered box with no shadow — a row or a block INSIDE a section
33
- * rather than a card on the page: kastlan's rent breakdown rows
34
- * (tenancy/components/breakdown-row.tsx, `rounded-lg border p-4`) and the meters
35
- * list's inline add row (meters/components/meter-add-row.tsx). It takes `md` by
36
- * default, as every one of those copies does; `sm` is the dense row.
37
- *
38
- * Left out, the default card keeps no padding (its CardHeader / CardContent own the
39
- * rhythm) and `inset` keeps its `p-3`; passing it sets theirs too. A caller's `p-*`
40
- * in `className` still wins.
41
- *
42
- * Whenever the card carries a padding — this prop, or the `inset` / `outline` one —
43
- * CardHeader, CardContent and CardFooter drop their own `px-6` / `pt-6` / `pb-6`, so
44
- * the card's padding is the only one. Before 0.16 they kept it regardless and a
45
- * `padding="md"` card with parts was padded twice (40px a side); keksdose's settings
46
- * cards zeroed all three parts by hand (`<CardHeader className="p-0">`). A padding set
47
- * only through `className` cannot be seen from the parts: use the prop.
48
- */
49
- padding?: "none" | "sm" | "md";
50
- /**
51
- * A card that is a WARNING (or other status) as a whole: the border in the tone's
52
- * `-border` colour and the {@link CardTitle} in the tone's text colour. kastlan's
53
- * dunning summary (invoice-detail-page.tsx:231-235) writes both by hand —
54
- * `border-[var(--warning-border)]` on the Card, `text-[var(--warning)]` on the title
55
- * — and the next status card would copy the pair (`outline` takes it the same way).
56
- * An `inset` panel has no border, so it takes the tone's quiet `-bg` fill instead.
57
- * `data-tone` is set for a caller's own
58
- * selectors.
59
- */
60
- tone?: CardTone;
61
- /**
62
- * How loud the `tone` frame is. `"strong"`: a 2px border in the tone's strong
63
- * colour — `--danger-border-strong` for `danger`, `--warning-border-strong` for
64
- * `warning` (0.33: amber-600 in dark, where `--warning` stood 13:1 off the card and
65
- * shouted; docs/colour-roles-harmonization.md §5.2), the tone's own text colour
66
- * (`--info`, `--success`) for the two with no `-border-strong` token of their own.
67
- * For the one tile on a page that guards something destructive or security-relevant:
68
- * keksdose's password / delete-account tile (shared/components/password-danger-card.tsx)
69
- * wrote `toneFrameClass(tone)` over the Card by hand for the 2px rule, and `p-[15px]`
70
- * under it so the content did not move. Here the extra pixel comes off the padding the
71
- * same way (`padding` or the variant's own), so a strong card's content sits exactly
72
- * where a soft one's does.
73
- *
74
- * Default `"soft"`: the 1px `-border` it has always been. No effect without `tone`,
75
- * nor on `inset`, which has no border to make louder (its tone is a fill).
76
- */
77
- toneStrength?: "soft" | "strong";
78
- /**
79
- * Wash the card in the tone's quiet `-bg` surface as well as framing it. A toned
80
- * card is a border and a title colour, at either strength — the wash belongs to
81
- * `AlertBanner`, the message, not to a card that holds a form — so it stays
82
- * off by default. Some tiles want both: keksdose's password / delete-account tile
83
- * was `toneFrameClass(tone)` (border AND wash) before 0.16, and after moving to
84
- * `toneStrength="strong"` it re-added `bg-[var(--danger-bg)]` by hand. The wash is
85
- * layered OVER the card's own `--bg-surface` (as AlertBanner's `elevated` does), so
86
- * the dark theme's translucent tints stay a card, not a hole to the page below.
87
- *
88
- * No effect without `tone`, nor on `inset`, whose tone is already the fill.
89
- */
90
- toneFill?: boolean;
91
- /**
92
- * The parts' type scale. `"compact"`: CardTitle `text-sm font-medium`,
93
- * CardDescription `text-xs` and the CardHeader's title-to-description gap
94
- * `gap-0.5` — the small settings / admin card. keksdose wrote those three classes by
95
- * hand on ~25 cards. Set here, they reach the parts through context; a class on a
96
- * part still wins, and a Card nested inside starts again from its own density.
97
- *
98
- * Default `"comfortable"`: the parts as they have always been.
99
- */
100
- density?: CardDensity;
101
- }
102
-
103
- export type CardDensity = "comfortable" | "compact";
104
-
105
- export type CardTone = "warning" | "danger" | "info" | "success";
106
-
107
- // The title is reached through its `data-slot`, so the tone needs no context and a
108
- // caller's `className` on CardTitle still wins (it is on the element itself).
109
- const CARD_TONES: Record<CardTone, { border: string; fill: string; title: string }> = {
110
- warning: {
111
- border: "border-warning",
112
- fill: "bg-warning-soft",
113
- title: "[&_[data-slot=card-title]]:text-warning",
114
- },
115
- danger: {
116
- border: "border-danger",
117
- fill: "bg-danger-soft",
118
- title: "[&_[data-slot=card-title]]:text-danger",
119
- },
120
- info: {
121
- border: "border-info",
122
- fill: "bg-info-soft",
123
- title: "[&_[data-slot=card-title]]:text-info",
124
- },
125
- success: {
126
- border: "border-success",
127
- fill: "bg-success-soft",
128
- title: "[&_[data-slot=card-title]]:text-success",
129
- },
130
- };
131
-
132
- const CARD_PADDING: Record<NonNullable<CardProps["padding"]>, string> = {
133
- none: "p-0",
134
- sm: "p-3",
135
- md: "p-4",
136
- };
137
-
138
- // The same padding one pixel short, for a 2px `toneStrength="strong"` frame: the
139
- // border grows inwards by that pixel, so the content stays where the 1px card had it.
140
- // `calc(rem − 1px)` (0.32, §3.2): the padding grows with the text like `p-3` / `p-4`,
141
- // the border does not — a fixed 11 / 15 px stopped matching them at 125 %, and toggling
142
- // the tone shifted the content.
143
- const CARD_PADDING_STRONG: Record<NonNullable<CardProps["padding"]>, string> = {
144
- none: "p-0",
145
- sm: "p-[calc(0.75rem-1px)]",
146
- md: "p-[calc(1rem-1px)]",
147
- };
148
-
149
- // The wash as a background IMAGE over the card's opaque `--bg-surface` — see
150
- // `toneFill`. A plain `bg-danger-soft` would REPLACE the surface, and the dark
151
- // theme's washes are a translucent tint.
152
- const CARD_TONE_WASH: Record<CardTone, string> = {
153
- warning: "bg-[image:linear-gradient(var(--warning-bg),var(--warning-bg))]",
154
- danger: "bg-[image:linear-gradient(var(--danger-bg),var(--danger-bg))]",
155
- info: "bg-[image:linear-gradient(var(--info-bg),var(--info-bg))]",
156
- success: "bg-[image:linear-gradient(var(--success-bg),var(--success-bg))]",
157
- };
158
-
159
- const CARD_TONES_STRONG: Record<CardTone, string> = {
160
- warning: "border-2 border-warning-strong",
161
- danger: "border-2 border-danger-strong",
162
- info: "border-2 border-[var(--info)]",
163
- success: "border-2 border-[var(--success)]",
164
- };
165
-
166
- /**
167
- * Whether the {@link Card} round the parts carries the padding itself — so CardHeader,
168
- * CardContent and CardFooter must not add theirs on top. `false` (no Card, or a default
169
- * card with no `padding`) keeps the parts' own `px-6` rhythm, as it always was.
170
- */
171
- const CardPaddedContext = createContext(false);
172
-
173
- /** The {@link CardProps.density} of the nearest Card — the parts' type scale. */
174
- const CardDensityContext = createContext<CardDensity>("comfortable");
175
-
176
- export function Card({
177
- className,
178
- children,
179
- flush,
180
- variant = "default",
181
- tone,
182
- toneStrength = "soft",
183
- toneFill = false,
184
- density = "comfortable",
185
- padding,
186
- ...rest
187
- }: CardProps) {
188
- const toned = tone ? CARD_TONES[tone] : undefined;
189
- // An outline card is bordered like the default one, so a tone recolours its border.
190
- const bordered = variant !== "inset";
191
- const strong = toned !== undefined && bordered && toneStrength === "strong";
192
- // The padding the card itself carries: the prop, else the variant's own (`inset`
193
- // p-3, `outline` p-4). A default card with no prop carries none — its parts do.
194
- const ownPadding = padding ?? (variant === "inset" ? "sm" : variant === "outline" ? "md" : undefined);
195
- return (
196
- <div
197
- data-tone={tone}
198
- data-tone-strength={strong ? "strong" : undefined}
199
- data-density={density === "compact" ? "compact" : undefined}
200
- {...rest}
201
- className={cn(
202
- variant === "inset"
203
- ? "rounded-md bg-surface-2 p-3"
204
- : variant === "outline"
205
- ? // No shadow and no `flush`: it sits on a surface that already has both.
206
- "rounded-lg border border-subtle bg-surface p-4"
207
- : cn(
208
- // Surface + border are theme tokens so the palette switcher (feedback
209
- // #307) can re-skin every card; a caller's own bg-*/border-* override
210
- // still wins via tailwind-merge.
211
- "bg-surface",
212
- flush
213
- ? "border-y border-subtle md:rounded-lg md:border md:shadow-sm"
214
- : "rounded-lg border border-subtle shadow-sm",
215
- ),
216
- toned && (bordered ? toned.border : toned.fill),
217
- strong && tone && CARD_TONES_STRONG[tone],
218
- toneFill && bordered && tone && CARD_TONE_WASH[tone],
219
- toned?.title,
220
- ownPadding && (strong ? CARD_PADDING_STRONG : CARD_PADDING)[ownPadding],
221
- className,
222
- )}
223
- >
224
- <CardPaddedContext.Provider value={ownPadding !== undefined}>
225
- <CardDensityContext.Provider value={density}>{children}</CardDensityContext.Provider>
226
- </CardPaddedContext.Provider>
227
- </div>
228
- );
229
- }
230
-
231
- // Composed shadcn-style Card sub-parts. A default `Card` with no `padding` stays
232
- // padding-less, so these own the padding/rhythm (`px-6`, the header's `pt-6`, the
233
- // last part's `pb-6`). A Card that carries a padding of its own — the `padding` prop,
234
- // or `inset` / `outline`, which have one built in — tells them so through context and
235
- // they add none on top (see CardPaddedContext). Token-driven so they re-skin with the
236
- // palette. Use CardHeader → CardTitle/CardDescription (+ optional CardAction,
237
- // top-right) → CardContent → CardFooter.
238
- /** The sub-parts add nothing to a `<div>`'s props — they are the SAME element with a
239
- * `data-slot` and a padding rhythm — so most names are aliases rather than an empty
240
- * interface pretending to be more. They exist so a consumer's own wrapper can say
241
- * `CardHeaderProps` instead of `ComponentProps<typeof CardHeader>`. */
242
- export interface CardHeaderProps extends ComponentPropsWithRef<"div"> {
243
- /**
244
- * Below the `sm` breakpoint, put the {@link CardAction} UNDER the title and
245
- * description instead of beside them. For an action that is wider than an icon —
246
- * a "Set up two-factor" button, a checkbox and a filter — which, kept in the
247
- * top-end column on a 390px phone, squeezed the title into a ribbon two words wide
248
- * (keksdose's settings cards). Off by default at Normal: an icon action (the wizard
249
- * summary's pencil) is narrow enough to stay beside the title at every width.
250
- *
251
- * Unset, it stacks at Large and Extra large only (0.32.1, the 360 px Extra-large
252
- * sweep; docs/text-size-harmonization.md §4): there an IconButton shows its label as
253
- * text, so the "icon" action is a word-wide pill, and "Refresh sessions" beside
254
- * "Sessions" ran 47 px past a 360 px phone. `false` keeps the action beside the title
255
- * at every size, for an action the caller knows stays narrow (`labelVisible={false}`).
256
- */
257
- stackAction?: boolean;
258
- }
259
- export type CardTitleLevel = "div" | "h2" | "h3" | "h4";
260
- export interface CardTitleProps extends ComponentPropsWithoutRef<"div"> {
261
- /**
262
- * The element the title is: `"div"` (default) or a heading level. Five of keksdose's
263
- * settings cards nested their own `<h2>` / `<h3>` INSIDE CardTitle to put the card in
264
- * the page's outline — a heading in a div that looks like a heading. The heading
265
- * takes the title's look unchanged (the reset leaves `h2`–`h4` at inherited size and
266
- * weight), so only the outline changes.
267
- */
268
- as?: CardTitleLevel;
269
- /** The title's element — a `div` or the heading `as` names, hence `HTMLElement`. */
270
- ref?: Ref<HTMLElement>;
271
- }
272
- export type CardDescriptionProps = ComponentPropsWithRef<"div">;
273
- export type CardActionProps = ComponentPropsWithRef<"div">;
274
- export type CardContentProps = ComponentPropsWithRef<"div">;
275
- export type CardFooterProps = ComponentPropsWithRef<"div">;
276
-
277
- /** {@link CardHeaderProps.stackAction}: one column under `sm`, and the action back into
278
- * the flow (DOM order, so after the description when it is written after it), at the
279
- * start edge. The descendant selector outranks CardAction's own placement classes. */
280
- const CARD_STACK_ACTION =
281
- "max-sm:grid-cols-1 max-sm:[&>[data-slot=card-action]]:col-start-1 max-sm:[&>[data-slot=card-action]]:row-span-1 max-sm:[&>[data-slot=card-action]]:row-start-auto max-sm:[&>[data-slot=card-action]]:justify-self-start";
282
- /** The same at Large and Extra large only — `stackAction` unset (see its note). A
283
- * `large:` class over the scaled `max-sm`, so it costs no render and is right on the
284
- * first paint. */
285
- const CARD_STACK_ACTION_AT_LARGE =
286
- "large:max-sm:grid-cols-1 large:max-sm:[&>[data-slot=card-action]]:col-start-1 large:max-sm:[&>[data-slot=card-action]]:row-span-1 large:max-sm:[&>[data-slot=card-action]]:row-start-auto large:max-sm:[&>[data-slot=card-action]]:justify-self-start";
287
-
288
- export function CardHeader({ className, stackAction, ...props }: CardHeaderProps) {
289
- const padded = useContext(CardPaddedContext);
290
- const compact = useContext(CardDensityContext) === "compact";
291
- return (
292
- <div
293
- data-slot="card-header"
294
- className={cn(
295
- // Grid (not flex) so CardAction can occupy a top-right column; with no
296
- // action it collapses to one column and title/description stack.
297
- //
298
- // The two-column switch sets a VARIABLE, not `grid-template-columns`. As
299
- // `has-data-[slot=card-action]:grid-cols-[1fr_auto]` it was two classes of
300
- // specificity (the class plus the attribute inside `:has()`), and a caller's
301
- // `max-sm:grid-cols-1` — one class inside a media query — lost to it at every
302
- // width, so the action could never be stacked on a phone from outside. Now the
303
- // property itself is set by a plain one-class utility that any `grid-cols-*`
304
- // variant of the caller's outranks by coming later in the sheet; the `:has()`
305
- // rule only picks the value. The base `1fr` resets the variable so a header
306
- // never inherits an ancestor header's two columns.
307
- "grid auto-rows-min items-start gap-1.5 [--card-header-cols:1fr] has-data-[slot=card-action]:[--card-header-cols:1fr_auto] grid-cols-[var(--card-header-cols,1fr)]",
308
- padded ? "px-0 pt-0" : "px-6 pt-6",
309
- compact && "gap-0.5",
310
- stackAction === true && CARD_STACK_ACTION,
311
- stackAction === undefined && CARD_STACK_ACTION_AT_LARGE,
312
- className,
313
- )}
314
- {...props}
315
- />
316
- );
317
- }
318
-
319
- export function CardTitle({ className, as: Tag = "div", ref, ...props }: CardTitleProps) {
320
- const compact = useContext(CardDensityContext) === "compact";
321
- return (
322
- <Tag
323
- ref={ref as Ref<HTMLDivElement & HTMLHeadingElement>}
324
- data-slot="card-title"
325
- // Compact is `leading-snug`, not `leading-none`: there the title sits on a
326
- // 12px description `gap-0.5` below, and a line box exactly the cap height left
327
- // the hint hugging the title's descenders (every keksdose admin card added
328
- // `leading-normal` by hand). Comfortable keeps `leading-none` — its 14px
329
- // description is `gap-1.5` away and has always read right.
330
- className={cn(compact ? "text-sm font-medium leading-snug" : "font-semibold leading-none", className)}
331
- {...props}
332
- />
333
- );
334
- }
335
-
336
- export function CardDescription({ className, ...props }: CardDescriptionProps) {
337
- const compact = useContext(CardDensityContext) === "compact";
338
- return (
339
- <div
340
- data-slot="card-description"
341
- // `--text-muted`, the kit's secondary-line colour (StatTile's description, the
342
- // field captions). It was `--money-neutral`, a MONEY token that happened to be
343
- // a similar grey — and a palette that re-tunes the money colours moved every
344
- // card's description with them.
345
- className={cn(compact ? "text-xs" : "text-sm", "text-muted", className)}
346
- {...props}
347
- />
348
- );
349
- }
350
-
351
- export function CardAction({ className, ...props }: CardActionProps) {
352
- return (
353
- <div
354
- data-slot="card-action"
355
- className={cn("col-start-2 row-start-1 row-span-2 self-start justify-self-end", className)}
356
- {...props}
357
- />
358
- );
359
- }
360
-
361
- export function CardContent({ className, ...props }: CardContentProps) {
362
- const padded = useContext(CardPaddedContext);
363
- // `last:pb-6`, not a plain `pb-6`: CardHeader owns the top padding and CardFooter
364
- // owns the bottom one, so a card WITHOUT a footer had nothing closing it off and
365
- // its last field sat flush against the card edge (kastlan feedback: the language
366
- // input touching the card bottom on /profile). Scoping to `:last-child` fixes that
367
- // case and leaves a footered card's rhythm exactly as it was. Inside a padded Card
368
- // the card closes itself off, so there is nothing to add.
369
- return <div data-slot="card-content" className={cn(!padded && "px-6 last:pb-6", className)} {...props} />;
370
- }
371
-
372
- export function CardFooter({ className, ...props }: CardFooterProps) {
373
- const padded = useContext(CardPaddedContext);
374
- return (
375
- <div data-slot="card-footer" className={cn("flex items-center", !padded && "px-6 pb-6", className)} {...props} />
376
- );
377
- }
@@ -1,106 +0,0 @@
1
- // The live side of `chartEdge` (theme/chart-palette.ts): which colours a FILLED mark is
2
- // painted with and which grounds it sits on, read off <html> as the page resolves them —
3
- // so the 1px ink edge follows a theme toggle and a palette switch without the chart
4
- // knowing either store. And WHETHER a mark gets one: `useEdgesInForce`, the contrast
5
- // setting's switch. Shared by SeriesChart (bars, areas) and Treemap (tiles).
6
- import { useCallback, useSyncExternalStore } from "react";
7
- import { chartEdge } from "../theme/chart-palette";
8
- import { parseHex } from "../theme/color";
9
-
10
- /** The tokens a theme or palette change can move, read as ONE string so
11
- * `useSyncExternalStore` compares a primitive (a fresh array would never be equal). */
12
- const WATCHED = [
13
- "--bg-surface",
14
- "--bg-page",
15
- ...Array.from({ length: 9 }, (_, i) => `--chart-${i + 1}`),
16
- "--chart-ink",
17
- "--chart-muted",
18
- "--money-income",
19
- "--money-expense",
20
- "--money-net",
21
- "--money-neutral",
22
- "--brand",
23
- ];
24
-
25
- function readWatched(): string {
26
- const style = getComputedStyle(document.documentElement);
27
- return WATCHED.map((name) => style.getPropertyValue(name).trim()).join(",");
28
- }
29
-
30
- function subscribe(onChange: () => void): () => void {
31
- const observer = new MutationObserver(onChange);
32
- observer.observe(document.documentElement, {
33
- attributes: true,
34
- attributeFilter: ["class", "style", "data-theme", "data-contrast"],
35
- });
36
- return () => observer.disconnect();
37
- }
38
-
39
- /** Server render: nothing measured, so no edge — the client adds it on hydration. */
40
- const SERVER = "";
41
-
42
- const BARE_VAR = /^var\(\s*(--[A-Za-z0-9_-]+)\s*\)$/;
43
-
44
- /** A colour as the page resolves it: a hex as it is, a bare `var(--token)` read off
45
- * <html>, anything else (a `color-mix()`, a var with a fallback) null. */
46
- export function resolveChartColor(color: string, style: Pick<CSSStyleDeclaration, "getPropertyValue">): string | null {
47
- const trimmed = color.trim();
48
- if (parseHex(trimmed)) return trimmed;
49
- const m = BARE_VAR.exec(trimmed);
50
- if (!m) return null;
51
- const value = style.getPropertyValue(m[1]).trim();
52
- return parseHex(value) ? value : null;
53
- }
54
-
55
- /**
56
- * `(fill) => edge`: the ink stroke a filled mark in `fill` needs on this page, or
57
- * `undefined` — only for a colour under 3:1 against the card or the page (WCAG 1.4.11).
58
- * `fill` may be a hex or a bare `var(--chart-N)` / `var(--money-…)`; anything it cannot
59
- * measure gets no edge.
60
- */
61
- export function useChartEdge(): (fill: string | undefined) => string | undefined {
62
- const snapshot = useSyncExternalStore(subscribe, readWatched, () => SERVER);
63
- return useCallback(
64
- (fill: string | undefined) => {
65
- if (!fill || snapshot === SERVER || typeof document === "undefined") return undefined;
66
- const style = getComputedStyle(document.documentElement);
67
- const hex = resolveChartColor(fill, style);
68
- if (!hex) return undefined;
69
- const surfaces = ["--bg-surface", "--bg-page"].map((n) => style.getPropertyValue(n).trim());
70
- return chartEdge(hex, surfaces);
71
- },
72
- [snapshot],
73
- );
74
- }
75
-
76
- /**
77
- * How filled marks are parted — see `TreemapProps.edges` (0.51.6, keksdose dev #642).
78
- * `"auto"`: `"uniform"` at Standard contrast, `"contrast"` while More contrast is in force.
79
- */
80
- export type ChartEdges = "auto" | "uniform" | "contrast";
81
-
82
- // `<html data-contrast>`, followed live: what `"auto"` keys on. Read here rather than
83
- // through theme/contrast, whose store would come into the chart entry with it.
84
- function subscribeContrast(onChange: () => void): () => void {
85
- if (typeof MutationObserver === "undefined" || typeof document === "undefined") return () => {};
86
- const observer = new MutationObserver(onChange);
87
- observer.observe(document.documentElement, { attributes: true, attributeFilter: ["data-contrast"] });
88
- return () => observer.disconnect();
89
- }
90
- const readMoreContrast = () =>
91
- typeof document !== "undefined" && document.documentElement.getAttribute("data-contrast") === "more";
92
-
93
- /**
94
- * The edges a filled mark draws: `"auto"` resolved against the contrast in force, live.
95
- *
96
- * Under `"contrast"` a mark whose hue is under 3:1 against the ground gets the 1px ink
97
- * edge ({@link useChartEdge}); under `"uniform"` none does. The tiles took this rule in
98
- * 0.51.6 (#642: "The borders do not look nice when changing from tile to tile"), and
99
- * SeriesChart's bars and areas in 0.52 (refactor audit 2026-10-30, DSP-18, Marcel's
100
- * decision 3): at Standard contrast the edge fell on 5 of 8 hues in light, and in dark on
101
- * chart-5 and chart-7 alone — the same unevenness, in a bar chart.
102
- */
103
- export function useEdgesInForce(edges: ChartEdges = "auto"): "uniform" | "contrast" {
104
- const more = useSyncExternalStore(subscribeContrast, readMoreContrast, () => false);
105
- return edges === "auto" ? (more ? "contrast" : "uniform") : edges;
106
- }
@@ -1,35 +0,0 @@
1
- // A chart's accessible description — internal, not exported from the barrel.
2
- //
3
- // A chart is a `role="figure"` named by its `aria-label` and described by a sentence of
4
- // what it shows (0.52, refactor audit 2026-10-30, DSP-5). SeriesChart and Treemap each
5
- // built the `hidden` sentence and the `aria-describedby` that points at it, and already
6
- // differed: Treemap kept a caller's own ids, SeriesChart had none to keep. Both put the
7
- // sentence AFTER the figure, as its sibling, so the chart stopped being its parent's last
8
- // child and a stack's `space-y-*` or `divide-y` gave it a margin or a rule underneath (0.52
9
- // code review, deep, charts, findings 7 and 14). One copy now, rendered inside the root.
10
- import { useId, type ReactNode } from "react";
11
-
12
- export interface FigureDescription {
13
- /** The root's `aria-describedby`: the caller's own ids, then the description's. */
14
- describedBy: string | undefined;
15
- /** The description, to render INSIDE the root; `null` when there is none. */
16
- node: ReactNode;
17
- }
18
-
19
- /**
20
- * The description of a figure, and the `aria-describedby` that reads it — after the
21
- * caller's own ids (`describedBy`), which it keeps. The sentence is `hidden`: it is read
22
- * through the reference, never a second time in browse mode, and takes no room.
23
- */
24
- export function useFigureDescription(description: string | undefined, describedBy?: string): FigureDescription {
25
- const id = useId();
26
- if (!description) return { describedBy, node: null };
27
- return {
28
- describedBy: describedBy ? `${describedBy} ${id}` : id,
29
- node: (
30
- <span id={id} hidden>
31
- {description}
32
- </span>
33
- ),
34
- };
35
- }
@@ -1,30 +0,0 @@
1
- import type { CSSProperties } from "react";
2
-
3
- /**
4
- * A chart's height as the kit's charts take it (docs/text-size-harmonization.md §10.10):
5
- *
6
- * - a CSS length — `"20rem"`, `"min(20rem, 60dvh)"`, `"clamp(14rem, 40vh, 28rem)"` —
7
- * set inline, so a height can grow with the text size AND stop at the screen: scaled
8
- * px would make a 480 px chart 720 px at Extra large, more than a phone shows;
9
- * - a Tailwind class (`"h-72"`, `"h-64 md:h-80"`), as before;
10
- * - a number of px, set inline, as before — kept for the callers that hold their height
11
- * as a number, but it does not follow the text size.
12
- */
13
- export type ChartHeight = string | number;
14
-
15
- /** A number with an optional unit, or one of the CSS functions a length is written with.
16
- * A Tailwind class never starts with a digit or `min(`, so the two cannot be confused. */
17
- const CSS_LENGTH = /^(?:[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)?|(?:min|max|clamp|calc|var)\(.*\))$/i;
18
-
19
- /** Whether a string `height` is a CSS length rather than a class. */
20
- export function isCssLength(value: string): boolean {
21
- return CSS_LENGTH.test(value.trim());
22
- }
23
-
24
- /** The class or the inline style a {@link ChartHeight} becomes — one of the two, or
25
- * neither for `undefined`. */
26
- export function chartHeightProps(height: ChartHeight | undefined): { className?: string; style?: CSSProperties } {
27
- if (height === undefined) return {};
28
- if (typeof height === "number") return { style: { height } };
29
- return isCssLength(height) ? { style: { height: height.trim() } } : { className: height };
30
- }