@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,479 +0,0 @@
1
- import { useId } from "react";
2
- import type { ComponentPropsWithoutRef, ReactNode, Ref } from "react";
3
- import { cn } from "../lib/cn";
4
- import { DEFAULT_COMMON_LABELS, useKitLabels, useKitLocale, type LabelOverride } from "../i18n/kit-labels";
5
- import { toneTextClass } from "./signed-amount";
6
- import type { TextTone } from "./signed-amount";
7
- import { DEFAULT_PROGRESS_BAR_LABELS } from "./progress-bar-labels";
8
- import { formatWithMinus } from "../lib/minus";
9
-
10
- /** The words a progress bar adds of its own. */
11
- export interface ProgressBarLabels {
12
- /** Shown after the value when `max={null}`: a quota with no ceiling. */
13
- unlimited: string;
14
- /** The `overage` line: how far past `max` the value is. `amount` is formatted. */
15
- overLimit: (amount: string) => string;
16
- }
17
-
18
- // Defined in ./progress-bar-labels, which holds no component code (0.34, KS U8).
19
- export { DEFAULT_PROGRESS_BAR_LABELS };
20
-
21
- /**
22
- * `income` / `expense` are the money pair (`--money-income` / `--money-expense`), the
23
- * names `Chip`, `StatTile` and `Sparkline` already use for them: a share bar of what
24
- * came in or went out is money, and painting it `success` / `warning` said "good" and
25
- * "careful" about a figure that is neither. keksdose's report meters (food-group-card,
26
- * drilldown-modal) sit beside amounts that are already in the money colours.
27
- */
28
- export type ProgressBarTone = "brand" | "neutral" | "success" | "warning" | "danger" | "info" | "income" | "expense";
29
- /**
30
- * Track heights: `sm` 4px, `slim` 6px, `md` 8px, `lg` 12px. `slim` is a word and not a
31
- * letter because the letters are taken in order — an `xs` at 6px would be THICKER than
32
- * `sm` — and renaming `sm` would move every bar already on it. 6px is the Slider's
33
- * track and keksdose's hand-drawn meters (`h-1.5`, landing-visuals), for a bar under a
34
- * line of text where 8px outweighs the text.
35
- */
36
- export type ProgressBarSize = "sm" | "slim" | "md" | "lg";
37
-
38
- const FILL: Record<ProgressBarTone, string> = {
39
- brand: "bg-brand",
40
- neutral: "bg-[var(--text-muted)]",
41
- success: "bg-success",
42
- warning: "bg-warning",
43
- danger: "bg-danger",
44
- info: "bg-info",
45
- income: "bg-money-income",
46
- expense: "bg-money-expense",
47
- };
48
-
49
- const TRACK_HEIGHT: Record<ProgressBarSize, string> = { sm: "h-1", slim: "h-1.5", md: "h-2", lg: "h-3" };
50
-
51
- // A segment with no tone of its own takes the next categorical chart colour, so a
52
- // stacked bar of unnamed parts is still a set of tellable parts rather than one fill.
53
- // Eight, cycled like `paletteFor` (0.49): `--chart-9` only repeats slot 1.
54
- const SERIES_FILL = [
55
- "bg-[var(--chart-1)]",
56
- "bg-[var(--chart-2)]",
57
- "bg-[var(--chart-3)]",
58
- "bg-[var(--chart-4)]",
59
- "bg-[var(--chart-5)]",
60
- "bg-[var(--chart-6)]",
61
- "bg-[var(--chart-7)]",
62
- "bg-[var(--chart-8)]",
63
- ];
64
-
65
- /** Each segment's fill classes: its own classes, else its tone, else (with no `color`)
66
- * the next chart colour. "Next" counts the UNCOLOURED segments only — a segment with
67
- * its own `className`/`tone`/`color` does not use up `--chart-1`, so an "Other" in grey
68
- * ahead of two plain parts leaves them `--chart-1` and `--chart-2`. */
69
- function segmentFills(segments: ProgressBarSegment[]): Array<string | undefined> {
70
- let next = 0;
71
- return segments.map((seg) => {
72
- if (seg.className) return seg.className;
73
- if (seg.tone) return FILL[seg.tone];
74
- return seg.color ? undefined : SERIES_FILL[next++ % SERIES_FILL.length];
75
- });
76
- }
77
-
78
- /** One part of a stacked bar. See {@link ProgressBarProps.segments}. */
79
- export interface ProgressBarSegment {
80
- /** Its size, on the bar's own `min`–`max` scale. */
81
- value: number;
82
- /** A kit tone. Left out (and no `color`/`className`), the next `--chart-N` colour. */
83
- tone?: ProgressBarTone;
84
- /** Any CSS colour (`var(--token)`), for a palette the tones do not cover. Wins over `tone`. */
85
- color?: string;
86
- /** Classes for the segment's fill — keksdose's `STEP_CLASS` ramp. Wins over `tone`. */
87
- className?: string;
88
- /** The part's name: said in the bar's `aria-valuetext` and shown in the legend. */
89
- label?: ReactNode;
90
- /** A stable React key, when `label` is not a string. */
91
- key?: string;
92
- /**
93
- * List it in the `legend` but leave it out of the bar — its value, its share of the
94
- * `aria-valuetext`, and the sum. keksdose's cut card (reports/cut-card:132) names
95
- * EVERY bucket under its bar, the empty ones included, while the bar draws only the
96
- * ones with a share: pass the empty buckets as `legendOnly` entries.
97
- */
98
- legendOnly?: boolean;
99
- }
100
-
101
- export interface ProgressBarProps extends Omit<ComponentPropsWithoutRef<"div">, "children" | "role"> {
102
- /**
103
- * `"span"` builds the bar from spans, for a place only phrasing content may go: inside
104
- * a button or a link (ListItem's `content`). The `legend` stays a list, so leave it off
105
- * there. Default `"div"`.
106
- */
107
- as?: "div" | "span";
108
- /** Where it stands. Leave it undefined for an INDETERMINATE bar — work is under way
109
- * and nobody knows how much is left (an import that reports no count). */
110
- value?: number;
111
- min?: number;
112
- /**
113
- * The top of the scale (default 100). `null` is a quota with NO ceiling — kastlan's
114
- * billing usage on an unlimited plan (usage-progress-bar:25): nothing to fill, so no
115
- * bar is drawn; the label row shows the value and "Unlimited" (`progressBar.unlimited`)
116
- * as plain text. `formatValue` is then called with `max` = `Infinity`; without it,
117
- * the value is a plain number in the kit's locale.
118
- */
119
- max?: number | null;
120
- /**
121
- * `progress` (default): a task moving toward completion — `role="progressbar"`.
122
- * `meter`: a share of a known whole that is not going anywhere (budget used, disk
123
- * space, one category's slice of spending) — `role="meter"`. keksdose's share bars
124
- * were progress bars to a screen reader, which reads "busy" into a figure that is
125
- * simply a figure. A meter is never indeterminate; a missing value reads as `min`.
126
- */
127
- variant?: "progress" | "meter";
128
- /** Visible label above the bar, and its accessible name. Without it, pass
129
- * `aria-label` (an indeterminate bar with neither is named `common.loading`). */
130
- label?: ReactNode;
131
- /** Show the value text at the end of the label row. */
132
- showValue?: boolean;
133
- /**
134
- * The value as words — both the visible `showValue` text and `aria-valuetext`.
135
- * Default: the fraction as a percentage in the kit's locale ("42 %" in French).
136
- * Pass one for anything that is not a percentage: `(v, max) => \`${v} of ${max} files\``.
137
- */
138
- formatValue?: (value: number, max: number, min: number) => string;
139
- tone?: ProgressBarTone;
140
- size?: ProgressBarSize;
141
- locale?: string;
142
- /**
143
- * Draw a METER OF PARTS: one bar, several fills side by side in order, a 2px gap
144
- * between them — keksdose's discretionary-spending bar (cut-card:133), a whole
145
- * split into the steps of a scale. Forces `variant="meter"`: parts of a whole are
146
- * never "busy". `aria-valuenow` is the sum; `aria-valuetext` names every part
147
- * ("Rent: 40%, Food: 25%"), each part's value through `formatValue` and joined in the
148
- * kit's locale — the words keksdose's hand-drawn bar had to hide from a reader
149
- * altogether, leaving the legend as the only way in. The sum is clamped to `max`,
150
- * and parts past it are cut off at the track's end.
151
- */
152
- segments?: ProgressBarSegment[];
153
- /** With `segments`: a list under the bar naming each part with its swatch and value
154
- * — the table view of the bar, in text tokens rather than the segment colour. */
155
- legend?: boolean;
156
- /**
157
- * What a legend row shows at its end, in place of the part's formatted value — which
158
- * it is handed, with the segment and its index. That value is the part's OWN, signed
159
- * and unclamped (`formatValue`, or a percentage of the scale): a part of −40 on a
160
- * 0–100 scale says "-40%" though the bar draws nothing for it. keksdose's cut card
161
- * shows the share AND a private outflow amount per bucket (cut-card:150), which one
162
- * figure could not:
163
- * `legendValue={(seg, share) => <>{share} <Amount … /></>}`.
164
- */
165
- legendValue?: (segment: ProgressBarSegment, formatted: string, index: number) => ReactNode;
166
- /**
167
- * The colour of each legend row's figure, as a {@link TextTone} — `toneTextClass`'s
168
- * palette, the money pair included. Default `"muted"`: the legend explains the bar and
169
- * should not outshout the headline above it. One tone for every row, or a function
170
- * per row. A tone and not the segment's own `tone`: keksdose's tax card fills its
171
- * three parts with one bucket's certainty ramp (`className`), while the FIGURES carry
172
- * the bucket's money direction — `legendTone="expense"` for the tax owed — which it
173
- * could only say before through `legendValue` and an app-side `Amount`. A function
174
- * returning `undefined` keeps that row muted. Applies to `legendValue`'s node too
175
- * (it inherits the colour unless it sets its own).
176
- */
177
- legendTone?: TextTone | ((segment: ProgressBarSegment, index: number) => TextTone | undefined);
178
- /** A muted line under the bar — the plan's reset date, "3 of 5 seats in use". It
179
- * describes the bar (`aria-describedby`). */
180
- hint?: ReactNode;
181
- /**
182
- * When `value` is past `max`, say by how much, in a danger-coloured line under the bar
183
- * (kastlan usage-progress-bar:46): `true` prints `progressBar.overLimit` with the
184
- * excess as a plain number; a function renders the line itself from the excess (a
185
- * currency, "2 seats"). The bar stays full at `max` either way — colour it with
186
- * `tone="danger"` if it should read as over. Ignored for `segments` and `max={null}`.
187
- */
188
- overage?: boolean | ((over: number) => ReactNode);
189
- /**
190
- * Tag every figure the bar PRINTS `data-private`, so the host's demo-mode rule blurs
191
- * it — the attribute `StatTile sensitive` and `Tooltip redact` carry: the `showValue`
192
- * text, each `legend` row's value (yours from `legendValue` too), the unlimited
193
- * figure and the `overage` line. The track, the swatches and the part names stay
194
- * readable — a blurred bar is no picture at all. Before this an app with a demo-mode
195
- * blur had to pass `legendValue` only to wrap the figure in a tagged span (keksdose).
196
- * The `aria-valuetext` is not touched: a screen reader is not a screen-share.
197
- */
198
- sensitive?: boolean;
199
- labels?: LabelOverride<ProgressBarLabels>;
200
- /** The element the rest of the props go on — the `progressbar` (or `meter`) itself,
201
- * the box round the figure for an unlimited one — a `div` or a `span` as `as` says,
202
- * hence `HTMLElement` (0.34, API-2, refactor audit 2026-10). */
203
- ref?: Ref<HTMLElement>;
204
- }
205
-
206
- /**
207
- * A horizontal bar that fills toward `max`.
208
- *
209
- * keksdose (import progress, budget share bars) and kastlan (upload and job
210
- * progress) each drew their own div-in-a-div. None had a role, so a reader heard
211
- * nothing at all; the share bars that did have one claimed to be progress.
212
- *
213
- * `aria-valuetext` is always set when there is a value: a bare `aria-valuenow="37"`
214
- * is read as "37" by some readers and "37 percent" by others, and neither is right
215
- * when `max` is 212 files.
216
- *
217
- * The indeterminate sweep stops under `prefers-reduced-motion`. It becomes a still,
218
- * half-strength bar across the whole track — still visibly "something is happening",
219
- * with nothing moving. The sweep is a Tailwind arbitrary `animate-[…]` rather than
220
- * tokens.css's `.animate-indeterminate` class because that one is UNLAYERED, and an
221
- * unlayered rule beats every layered utility, `motion-reduce:animate-none` included.
222
- */
223
- export function ProgressBar({
224
- value,
225
- min = 0,
226
- max: maxProp = 100,
227
- variant = "progress",
228
- label,
229
- showValue = false,
230
- formatValue,
231
- tone = "brand",
232
- size = "md",
233
- locale,
234
- segments,
235
- legend = false,
236
- legendValue,
237
- legendTone = "muted",
238
- hint,
239
- overage,
240
- sensitive = false,
241
- labels,
242
- className,
243
- as = "div",
244
- "aria-label": ariaLabel,
245
- "aria-labelledby": ariaLabelledBy,
246
- "aria-describedby": ariaDescribedBy,
247
- ref,
248
- ...rest
249
- }: ProgressBarProps) {
250
- // `as="span"`: the same bar from phrasing elements only, so it is valid inside a
251
- // <button> or <a> — ListItem's `content` puts a budget bar inside the row's target
252
- // (keksdose P2). Every span is made a block except those already laid out as flex.
253
- const Tag = as;
254
- // Either element's ref, as List types its `ul`/`ol` one.
255
- const tagRef = ref as Ref<HTMLDivElement & HTMLSpanElement> | undefined;
256
- const inlineClass = as === "span" ? "block [&_span:not(.flex):not(.inline-flex)]:block" : undefined;
257
- const common = useKitLabels("common", DEFAULT_COMMON_LABELS);
258
- const text = useKitLabels("progressBar", DEFAULT_PROGRESS_BAR_LABELS, labels);
259
- const kitLocale = useKitLocale(locale);
260
- const labelId = useId();
261
- const priv = sensitive ? "" : undefined;
262
- const hintId = useId();
263
- const hintNode =
264
- hint != null ? (
265
- <p id={hintId} data-part="hint" className="mt-1 text-xs text-muted">
266
- {hint}
267
- </p>
268
- ) : null;
269
-
270
- if (maxProp === null) {
271
- // No ceiling: no bar, no role — a meter with no maximum is not one. The value and
272
- // "Unlimited" are the content, so they are plain visible text.
273
- const shown =
274
- value === undefined || !Number.isFinite(value)
275
- ? undefined
276
- : formatValue
277
- ? formatValue(value, Infinity, min)
278
- : formatWithMinus(new Intl.NumberFormat(kitLocale), value);
279
- return (
280
- <Tag {...rest} ref={tagRef} className={cn("min-w-0", inlineClass, className)} data-state="unlimited">
281
- <Tag className="flex items-baseline gap-2 text-sm">
282
- {label != null && (
283
- <span id={labelId} className="min-w-0 text-secondary">
284
- {label}
285
- </span>
286
- )}
287
- <span data-part="unlimited" data-private={priv} className="ms-auto shrink-0 tabular-nums text-muted">
288
- {shown !== undefined && `${shown} · `}
289
- {text.unlimited}
290
- </span>
291
- </Tag>
292
- {hintNode}
293
- </Tag>
294
- );
295
- }
296
- const max = maxProp;
297
-
298
- const stacked = segments !== undefined;
299
- const meter = stacked || variant === "meter";
300
- const span = max - min;
301
- const partValue = (v: number) => (Number.isFinite(v) ? Math.max(0, v - min) : 0);
302
- // Colours are dealt over EVERY segment, legend-only ones included, so an entry keeps
303
- // its swatch whether or not it is in the bar this time.
304
- const fills = stacked ? segmentFills(segments) : [];
305
- const barParts = stacked ? segments.filter((seg) => !seg.legendOnly) : [];
306
- const partTotal = stacked ? min + barParts.reduce((sum, seg) => sum + partValue(seg.value), 0) : undefined;
307
- const format = (v: number) =>
308
- formatValue
309
- ? formatValue(v, max, min)
310
- : new Intl.NumberFormat(kitLocale, { style: "percent", maximumFractionDigits: 0 }).format(
311
- span <= 0 ? 0 : (Math.min(max, Math.max(min, v)) - min) / span,
312
- );
313
- // A PART is stated as its own value, sign and all — not as the slice of track it
314
- // draws. The bar cannot draw a negative part (a refund inside a month's spending) or
315
- // one past `max`, but the legend and the reader can still say it: before 0.16 a
316
- // −CHF 40 part read "0 %" in both, and keksdose had to pass `legendValue` just to get
317
- // the minus back. For a part inside `min`–`max` this is the same text as before.
318
- const formatPart = (v: number) => {
319
- if (!Number.isFinite(v)) return format(min);
320
- if (formatValue) return formatValue(v, max, min);
321
- // A part can be negative (a refund): U+2212, as everywhere (0.49, KIT-1).
322
- return formatWithMinus(
323
- new Intl.NumberFormat(kitLocale, { style: "percent", maximumFractionDigits: 0 }),
324
- span <= 0 ? 0 : (v - min) / span,
325
- );
326
- };
327
- const partTexts = stacked
328
- ? barParts.map((seg) => {
329
- const text = formatPart(seg.value);
330
- return typeof seg.label === "string" || typeof seg.label === "number"
331
- ? common.fieldValue(String(seg.label), text)
332
- : text;
333
- })
334
- : [];
335
- const current = partTotal ?? (value === undefined || !Number.isFinite(value) ? (meter ? min : undefined) : value);
336
- const indeterminate = current === undefined;
337
- const clamped = indeterminate ? undefined : Math.min(max, Math.max(min, current));
338
- const fraction = clamped === undefined || span <= 0 ? 0 : (clamped - min) / span;
339
-
340
- const valueText = clamped === undefined ? undefined : format(clamped);
341
- const ariaValueText =
342
- stacked && partTexts.length > 0
343
- ? new Intl.ListFormat(kitLocale, { style: "short", type: "unit" }).format(partTexts)
344
- : valueText;
345
-
346
- const over = overage && !stacked && value !== undefined && Number.isFinite(value) && value > max ? value - max : 0;
347
- const overageNode =
348
- over > 0 ? (
349
- <p id={`${hintId}-over`} data-part="overage" data-private={priv} className="mt-1 text-xs text-danger">
350
- {typeof overage === "function" ? overage(over) : text.overLimit(new Intl.NumberFormat(kitLocale).format(over))}
351
- </p>
352
- ) : null;
353
- const describedBy =
354
- [ariaDescribedBy, hintNode && hintId, overageNode && `${hintId}-over`].filter(Boolean).join(" ") || undefined;
355
-
356
- const labelledBy = ariaLabelledBy ?? (label != null ? labelId : undefined);
357
- const name = labelledBy ? undefined : (ariaLabel ?? (indeterminate ? common.loading : undefined));
358
-
359
- return (
360
- <Tag className={cn("min-w-0", inlineClass, className)} data-state={indeterminate ? "indeterminate" : "determinate"}>
361
- {(label != null || (showValue && valueText !== undefined)) && (
362
- <Tag className="mb-1 flex items-baseline gap-2 text-sm">
363
- {label != null && (
364
- <span id={labelId} className="min-w-0 text-secondary">
365
- {label}
366
- </span>
367
- )}
368
- {showValue && valueText !== undefined && (
369
- // Hidden: the same words are the bar's aria-valuetext, and reading them
370
- // twice in a row is noise.
371
- <span
372
- aria-hidden
373
- data-part="value"
374
- data-private={priv}
375
- className="ms-auto shrink-0 tabular-nums text-muted"
376
- >
377
- {valueText}
378
- </span>
379
- )}
380
- </Tag>
381
- )}
382
- <Tag
383
- {...rest}
384
- ref={tagRef}
385
- role={meter ? "meter" : "progressbar"}
386
- aria-label={name}
387
- aria-labelledby={labelledBy}
388
- aria-describedby={describedBy}
389
- aria-valuemin={indeterminate ? undefined : min}
390
- aria-valuemax={indeterminate ? undefined : max}
391
- aria-valuenow={clamped}
392
- aria-valuetext={ariaValueText}
393
- aria-busy={!meter && indeterminate ? true : undefined}
394
- // `relative` + `overflow-hidden`: the indeterminate segment is positioned in
395
- // here and must not paint past the rounded ends.
396
- className={cn("relative w-full overflow-hidden rounded-full bg-active", TRACK_HEIGHT[size])}
397
- >
398
- {stacked ? (
399
- // The parts in a flex row with a 2px gap, so two neighbouring steps of one
400
- // hue are parted by the track rather than by their difference in lightness.
401
- <Tag className="flex h-full w-full gap-0.5">
402
- {segments.map((seg, i) =>
403
- seg.legendOnly ? null : (
404
- <Tag
405
- key={seg.key ?? i}
406
- data-part="segment"
407
- className={cn(
408
- "h-full shrink-0 rounded-full transition-[width] duration-300 motion-reduce:transition-none",
409
- fills[i],
410
- )}
411
- style={{
412
- width: `${span <= 0 ? 0 : (partValue(seg.value) / span) * 100}%`,
413
- backgroundColor: seg.className ? undefined : seg.color,
414
- }}
415
- />
416
- ),
417
- )}
418
- </Tag>
419
- ) : indeterminate ? (
420
- <Tag
421
- data-part="fill"
422
- className={cn(
423
- // `left-0`, deliberately physical: the keyframes (tokens.css
424
- // `indeterminate-sweep`) translate along the physical x axis, and under
425
- // RTL the same keyframes are run in REVERSE — from the right edge back
426
- // to the left. A logical `start-0` would park the segment at the right
427
- // in RTL and the reversed sweep would then start off-screen.
428
- "absolute inset-y-0 left-0 w-1/3 rounded-full",
429
- "animate-[indeterminate-sweep_1.4s_ease-in-out_infinite] rtl:[animation-direction:reverse]",
430
- "motion-reduce:w-full motion-reduce:animate-none motion-reduce:opacity-50",
431
- FILL[tone],
432
- )}
433
- />
434
- ) : (
435
- <Tag
436
- data-part="fill"
437
- // Block flow starts at the inline start, so a plain width fills from the
438
- // right under `dir="rtl"` with nothing extra.
439
- className={cn(
440
- "h-full rounded-full transition-[width] duration-300 motion-reduce:transition-none",
441
- FILL[tone],
442
- )}
443
- style={{ width: `${fraction * 100}%` }}
444
- />
445
- )}
446
- </Tag>
447
- {stacked && legend && segments.length > 0 && (
448
- <ul className="mt-2 space-y-1 text-sm" data-part="legend">
449
- {segments.map((seg, i) => (
450
- <li key={seg.key ?? i} className="flex items-center gap-2">
451
- <span
452
- aria-hidden
453
- className={cn("size-2.5 shrink-0 rounded-sm", fills[i])}
454
- style={{ backgroundColor: seg.className ? undefined : seg.color }}
455
- />
456
- {seg.label != null && (
457
- // Wraps from Large up (text size §10.17, round 0.34 T1); the value
458
- // beside it keeps its width.
459
- <span className="min-w-0 flex-1 truncate-until-large text-secondary">{seg.label}</span>
460
- )}
461
- <span
462
- data-part="legend-value"
463
- data-private={priv}
464
- className={cn(
465
- "ms-auto shrink-0 text-xs tabular-nums",
466
- toneTextClass((typeof legendTone === "function" ? legendTone(seg, i) : legendTone) ?? "muted"),
467
- )}
468
- >
469
- {legendValue ? legendValue(seg, formatPart(seg.value), i) : formatPart(seg.value)}
470
- </span>
471
- </li>
472
- ))}
473
- </ul>
474
- )}
475
- {overageNode}
476
- {hintNode}
477
- </Tag>
478
- );
479
- }
@@ -1,76 +0,0 @@
1
- import { useMemo } from "react";
2
- import type { ComponentPropsWithRef } from "react";
3
- import { cn } from "../lib/cn";
4
- import { encodeQr } from "../lib/qr-encode";
5
- import type { QrErrorCorrection } from "../lib/qr-encode";
6
-
7
- export interface QrCodeProps extends Omit<ComponentPropsWithRef<"svg">, "children" | "viewBox"> {
8
- /** The text to encode (UTF-8) — an `otpauth://` URI, a URL, a pairing code. */
9
- value: string;
10
- /** The accessible name. Without it the code is decorative (`aria-hidden`): say what
11
- * it is for, not what it encodes — nobody wants a URI read out. */
12
- label?: string;
13
- /** Default `"M"`, raised automatically where the size allows it. */
14
- errorCorrection?: QrErrorCorrection;
15
- /** The quiet zone, in modules. The spec asks for 4; less reads worse. Default 4. */
16
- margin?: number;
17
- }
18
-
19
- /**
20
- * A QR code as one inline SVG — no canvas, no data URL, no dependency (see
21
- * `lib/qr-encode.ts` for why the encoder lives in the kit).
22
- *
23
- * Sized by CSS (`className="size-48"`); the SVG scales without blurring because every
24
- * module is a whole unit of the viewBox and `shape-rendering` is `crispEdges`.
25
- *
26
- * **Black on white, always — the one literal colour pair in the kit.** A camera looks
27
- * for the contrast between the modules and their quiet zone; on the dark theme a
28
- * surface-coloured background makes a code slow to acquire, and an inverted one is not
29
- * read at all by several authenticator apps. The quiet zone is part of the SVG, so the
30
- * code carries its own white border wherever it is placed.
31
- *
32
- * A value too long for any QR version (≈2.9 kB) renders nothing rather than throwing
33
- * in render.
34
- */
35
- export function QrCode({ value, label, errorCorrection = "M", margin = 4, className, ...rest }: QrCodeProps) {
36
- const path = useMemo(() => {
37
- try {
38
- const { modules, size } = encodeQr(value, { errorCorrection });
39
- // One path, one sub-path per horizontal run of dark modules: a few hundred
40
- // commands rather than one <rect> per module.
41
- let d = "";
42
- for (let y = 0; y < size; y++) {
43
- for (let x = 0; x < size;) {
44
- if (!modules[y][x]) {
45
- x++;
46
- continue;
47
- }
48
- let run = 1;
49
- while (x + run < size && modules[y][x + run]) run++;
50
- d += `M${x + margin} ${y + margin}h${run}v1h-${run}z`;
51
- x += run;
52
- }
53
- }
54
- return { d, extent: size + margin * 2 };
55
- } catch {
56
- return null;
57
- }
58
- }, [value, errorCorrection, margin]);
59
-
60
- if (!path) return null;
61
- return (
62
- <svg
63
- {...rest}
64
- xmlns="http://www.w3.org/2000/svg"
65
- viewBox={`0 0 ${path.extent} ${path.extent}`}
66
- shapeRendering="crispEdges"
67
- role={label ? "img" : undefined}
68
- aria-label={label}
69
- aria-hidden={label ? undefined : true}
70
- className={cn("block", className)}
71
- >
72
- <rect width={path.extent} height={path.extent} fill="#ffffff" />
73
- <path d={path.d} fill="#000000" />
74
- </svg>
75
- );
76
- }
@@ -1,13 +0,0 @@
1
- // The English words of ./reauth-dialog, in a module with no component code: the English
2
- // catalogue (src/i18n/defaults.ts) imports them without the component, so `en` loads as one
3
- // chunk like the other languages (0.34, KS U8). ./reauth-dialog re-exports them.
4
-
5
- import type { ReauthDialogLabels } from "./reauth-dialog";
6
-
7
- export const DEFAULT_REAUTH_DIALOG_LABELS: ReauthDialogLabels = {
8
- title: "Confirm it’s you",
9
- description: "Enter your current password to continue.",
10
- password: "Current password",
11
- submit: "Continue",
12
- cancel: "Cancel",
13
- };