@eifi1/ui-kit 0.54.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 (847) hide show
  1. package/README.md +90 -76
  2. package/dist/admin/plan-change.js +2 -2
  3. package/dist/admin/plan-change.js.map +1 -1
  4. package/dist/admin/user-roster.d.ts +6 -0
  5. package/dist/admin/user-roster.js +4 -0
  6. package/dist/admin/user-roster.js.map +1 -1
  7. package/dist/billing/billing-labels.d.ts +26 -0
  8. package/dist/billing/billing-labels.js +9 -0
  9. package/dist/billing/billing-labels.js.map +1 -1
  10. package/dist/billing/subscription-standing.d.ts +61 -0
  11. package/dist/billing/subscription-standing.js +51 -0
  12. package/dist/billing/subscription-standing.js.map +1 -0
  13. package/dist/billing/usage-meter.d.ts +52 -0
  14. package/dist/billing/usage-meter.js +52 -0
  15. package/dist/billing/usage-meter.js.map +1 -0
  16. package/dist/chart.d.ts +1 -0
  17. package/dist/chart.js +4 -0
  18. package/dist/chart.js.map +1 -1
  19. package/dist/components/alert-banner.js +2 -3
  20. package/dist/components/alert-banner.js.map +1 -1
  21. package/dist/components/amount-input.js +3 -15
  22. package/dist/components/amount-input.js.map +1 -1
  23. package/dist/components/autocomplete.js +2 -2
  24. package/dist/components/autocomplete.js.map +1 -1
  25. package/dist/components/bulk-action-bar.js +2 -1
  26. package/dist/components/bulk-action-bar.js.map +1 -1
  27. package/dist/components/button.d.ts +35 -1
  28. package/dist/components/button.js +5 -9
  29. package/dist/components/button.js.map +1 -1
  30. package/dist/components/calendar-heatmap.js +2 -2
  31. package/dist/components/calendar-heatmap.js.map +1 -1
  32. package/dist/components/camera-button.d.ts +89 -0
  33. package/dist/components/camera-button.js +122 -0
  34. package/dist/components/camera-button.js.map +1 -0
  35. package/dist/components/camera-capture.d.ts +66 -0
  36. package/dist/components/camera-capture.js +190 -0
  37. package/dist/components/camera-capture.js.map +1 -0
  38. package/dist/components/camera-labels.d.ts +20 -0
  39. package/dist/components/camera-labels.js +15 -0
  40. package/dist/components/camera-labels.js.map +1 -0
  41. package/dist/components/chart-edge.d.ts +9 -0
  42. package/dist/components/chart-edge.js +14 -3
  43. package/dist/components/chart-edge.js.map +1 -1
  44. package/dist/components/chart-zoom-core.js +34 -29
  45. package/dist/components/chart-zoom-core.js.map +1 -1
  46. package/dist/components/checkbox-group.js +1 -1
  47. package/dist/components/checkbox-group.js.map +1 -1
  48. package/dist/components/combobox-core.js +3 -2
  49. package/dist/components/combobox-core.js.map +1 -1
  50. package/dist/components/combobox.js +2 -2
  51. package/dist/components/combobox.js.map +1 -1
  52. package/dist/components/consent-again-notice-labels.d.ts +25 -0
  53. package/dist/components/consent-again-notice-labels.js +15 -0
  54. package/dist/components/consent-again-notice-labels.js.map +1 -0
  55. package/dist/components/consent-again-notice.d.ts +85 -0
  56. package/dist/components/consent-again-notice.js +94 -0
  57. package/dist/components/consent-again-notice.js.map +1 -0
  58. package/dist/components/country-select.js +2 -7
  59. package/dist/components/country-select.js.map +1 -1
  60. package/dist/components/currency-select.js +2 -2
  61. package/dist/components/currency-select.js.map +1 -1
  62. package/dist/components/danger-confirm.js +2 -2
  63. package/dist/components/danger-confirm.js.map +1 -1
  64. package/dist/components/data-table-column-settings.js +2 -2
  65. package/dist/components/data-table-column-settings.js.map +1 -1
  66. package/dist/components/data-table-fit.js.map +1 -1
  67. package/dist/components/data-table-virtual.js +13 -3
  68. package/dist/components/data-table-virtual.js.map +1 -1
  69. package/dist/components/date-field.js +2 -2
  70. package/dist/components/date-field.js.map +1 -1
  71. package/dist/components/date-picker.js +2 -2
  72. package/dist/components/date-picker.js.map +1 -1
  73. package/dist/components/date-range-picker.js +2 -6
  74. package/dist/components/date-range-picker.js.map +1 -1
  75. package/dist/components/dialog-frame.d.ts +3 -1
  76. package/dist/components/dialog-frame.js.map +1 -1
  77. package/dist/components/dropdown.js +7 -3
  78. package/dist/components/dropdown.js.map +1 -1
  79. package/dist/components/entity-combobox.js +2 -2
  80. package/dist/components/entity-combobox.js.map +1 -1
  81. package/dist/components/field-parts.d.ts +108 -6
  82. package/dist/components/field-parts.js +59 -6
  83. package/dist/components/field-parts.js.map +1 -1
  84. package/dist/components/field-suggestion-labels.d.ts +2 -0
  85. package/dist/components/field-suggestion-labels.js +10 -0
  86. package/dist/components/field-suggestion-labels.js.map +1 -0
  87. package/dist/components/field.js +1 -1
  88. package/dist/components/field.js.map +1 -1
  89. package/dist/components/file-button.d.ts +1 -1
  90. package/dist/components/file-button.js.map +1 -1
  91. package/dist/components/floating-panel.d.ts +7 -6
  92. package/dist/components/floating-panel.js +3 -17
  93. package/dist/components/floating-panel.js.map +1 -1
  94. package/dist/components/form-actions.d.ts +3 -2
  95. package/dist/components/form-actions.js.map +1 -1
  96. package/dist/components/hover-menu.js +3 -2
  97. package/dist/components/hover-menu.js.map +1 -1
  98. package/dist/components/icon-button.d.ts +23 -5
  99. package/dist/components/icon-button.js +6 -8
  100. package/dist/components/icon-button.js.map +1 -1
  101. package/dist/components/inline-confirm.js +2 -1
  102. package/dist/components/inline-confirm.js.map +1 -1
  103. package/dist/components/inline-entity-combobox.js +2 -2
  104. package/dist/components/inline-entity-combobox.js.map +1 -1
  105. package/dist/components/input.js +2 -2
  106. package/dist/components/input.js.map +1 -1
  107. package/dist/components/jump-calendar.js +3 -3
  108. package/dist/components/jump-calendar.js.map +1 -1
  109. package/dist/components/legal.d.ts +13 -1
  110. package/dist/components/legal.js +12 -0
  111. package/dist/components/legal.js.map +1 -1
  112. package/dist/components/legended-series-chart.d.ts +80 -0
  113. package/dist/components/legended-series-chart.js +70 -0
  114. package/dist/components/legended-series-chart.js.map +1 -0
  115. package/dist/components/lightbox.js +2 -1
  116. package/dist/components/lightbox.js.map +1 -1
  117. package/dist/components/mini-calendar.js +13 -5
  118. package/dist/components/mini-calendar.js.map +1 -1
  119. package/dist/components/modal.d.ts +23 -2
  120. package/dist/components/modal.js +24 -6
  121. package/dist/components/modal.js.map +1 -1
  122. package/dist/components/month-picker.d.ts +1 -1
  123. package/dist/components/month-picker.js +6 -6
  124. package/dist/components/month-picker.js.map +1 -1
  125. package/dist/components/multi-entity-combobox.js +2 -2
  126. package/dist/components/multi-entity-combobox.js.map +1 -1
  127. package/dist/components/multi-select.js +2 -6
  128. package/dist/components/multi-select.js.map +1 -1
  129. package/dist/components/number-input.js +2 -2
  130. package/dist/components/number-input.js.map +1 -1
  131. package/dist/components/page-header-layout.d.ts +18 -0
  132. package/dist/components/page-header-layout.js +23 -0
  133. package/dist/components/page-header-layout.js.map +1 -0
  134. package/dist/components/page-header-skeleton.d.ts +41 -0
  135. package/dist/components/page-header-skeleton.js +52 -0
  136. package/dist/components/page-header-skeleton.js.map +1 -0
  137. package/dist/components/page-header.js +4 -17
  138. package/dist/components/page-header.js.map +1 -1
  139. package/dist/components/popover.js +7 -2
  140. package/dist/components/popover.js.map +1 -1
  141. package/dist/components/release-notes-labels.d.ts +16 -0
  142. package/dist/components/release-notes-labels.js +18 -0
  143. package/dist/components/release-notes-labels.js.map +1 -0
  144. package/dist/components/release-notes.d.ts +65 -0
  145. package/dist/components/release-notes.js +65 -0
  146. package/dist/components/release-notes.js.map +1 -0
  147. package/dist/components/select.js +2 -2
  148. package/dist/components/select.js.map +1 -1
  149. package/dist/components/series-chart-labels.d.ts +9 -0
  150. package/dist/components/series-chart-labels.js +3 -1
  151. package/dist/components/series-chart-labels.js.map +1 -1
  152. package/dist/components/series-chart.d.ts +5 -0
  153. package/dist/components/series-chart.js +89 -36
  154. package/dist/components/series-chart.js.map +1 -1
  155. package/dist/components/toggle-group.js +3 -2
  156. package/dist/components/toggle-group.js.map +1 -1
  157. package/dist/components/treemap-layout.js.map +1 -1
  158. package/dist/components/treemap.d.ts +17 -15
  159. package/dist/components/treemap.js +167 -85
  160. package/dist/components/treemap.js.map +1 -1
  161. package/dist/eslint/index.js +1 -1
  162. package/dist/eslint/role-utilities.d.ts +2 -2
  163. package/dist/eslint/role-utilities.js.map +1 -1
  164. package/dist/feedback/feedback-inbox-page.d.ts +260 -0
  165. package/dist/feedback/feedback-inbox-page.js +207 -0
  166. package/dist/feedback/feedback-inbox-page.js.map +1 -0
  167. package/dist/feedback/feedback-vocabulary.js +2 -2
  168. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  169. package/dist/feedback.d.ts +1 -0
  170. package/dist/feedback.js +6 -0
  171. package/dist/feedback.js.map +1 -1
  172. package/dist/hooks/use-debounce.d.ts +32 -5
  173. package/dist/hooks/use-debounce.js +6 -5
  174. package/dist/hooks/use-debounce.js.map +1 -1
  175. package/dist/hooks/use-file-picker.d.ts +3 -1
  176. package/dist/hooks/use-file-picker.js.map +1 -1
  177. package/dist/hooks/use-focus-trap.d.ts +19 -3
  178. package/dist/hooks/use-focus-trap.js +15 -5
  179. package/dist/hooks/use-focus-trap.js.map +1 -1
  180. package/dist/hooks/use-has-camera.d.ts +36 -0
  181. package/dist/hooks/use-has-camera.js +53 -0
  182. package/dist/hooks/use-has-camera.js.map +1 -0
  183. package/dist/hooks/use-hotkey.js +1 -10
  184. package/dist/hooks/use-hotkey.js.map +1 -1
  185. package/dist/hooks/use-overlay-history.d.ts +6 -1
  186. package/dist/hooks/use-overlay-history.js +10 -2
  187. package/dist/hooks/use-overlay-history.js.map +1 -1
  188. package/dist/i18n/defaults.js +11 -1
  189. package/dist/i18n/defaults.js.map +1 -1
  190. package/dist/i18n/german.js +75 -3
  191. package/dist/i18n/german.js.map +1 -1
  192. package/dist/i18n/kit-labels.d.ts +20 -0
  193. package/dist/i18n/kit-labels.js.map +1 -1
  194. package/dist/i18n/locales/en.js +92 -4
  195. package/dist/i18n/locales/en.js.map +3 -3
  196. package/dist/i18n/locales/es.js +71 -3
  197. package/dist/i18n/locales/es.js.map +1 -1
  198. package/dist/i18n/locales/fr.js +72 -2
  199. package/dist/i18n/locales/fr.js.map +1 -1
  200. package/dist/i18n/locales/hu.js +74 -3
  201. package/dist/i18n/locales/hu.js.map +1 -1
  202. package/dist/i18n/locales/it.js +74 -3
  203. package/dist/i18n/locales/it.js.map +1 -1
  204. package/dist/i18n/locales/zh.js +71 -3
  205. package/dist/i18n/locales/zh.js.map +1 -1
  206. package/dist/i18n/review.js +22 -1
  207. package/dist/i18n/review.js.map +1 -1
  208. package/dist/index.d.ts +24 -5
  209. package/dist/index.js +35 -1
  210. package/dist/index.js.map +1 -1
  211. package/dist/landing/landing-labels.d.ts +8 -0
  212. package/dist/landing/landing-labels.js +2 -1
  213. package/dist/landing/landing-labels.js.map +1 -1
  214. package/dist/lib/changelog.d.ts +130 -0
  215. package/dist/lib/changelog.js +137 -0
  216. package/dist/lib/changelog.js.map +1 -0
  217. package/dist/lib/clipboard-minus.js +2 -2
  218. package/dist/lib/clipboard-minus.js.map +1 -1
  219. package/dist/lib/dates.d.ts +29 -3
  220. package/dist/lib/dates.js +41 -12
  221. package/dist/lib/dates.js.map +1 -1
  222. package/dist/lib/editable-content.d.ts +33 -0
  223. package/dist/lib/editable-content.js +15 -0
  224. package/dist/lib/editable-content.js.map +1 -0
  225. package/dist/lib/focus-left.d.ts +47 -1
  226. package/dist/lib/focus-left.js +11 -2
  227. package/dist/lib/focus-left.js.map +1 -1
  228. package/dist/lib/server-wake.d.ts +49 -9
  229. package/dist/lib/server-wake.js +25 -14
  230. package/dist/lib/server-wake.js.map +1 -1
  231. package/dist/lib/session-refresh.d.ts +53 -0
  232. package/dist/lib/session-refresh.js +27 -1
  233. package/dist/lib/session-refresh.js.map +1 -1
  234. package/dist/rhf/fields.js +3 -3
  235. package/dist/rhf/fields.js.map +1 -1
  236. package/dist/shell/app-shell.d.ts +25 -1
  237. package/dist/shell/app-shell.js +3 -1
  238. package/dist/shell/app-shell.js.map +1 -1
  239. package/dist/shell/dev-menu.d.ts +3 -0
  240. package/dist/shell/dev-menu.js +4 -2
  241. package/dist/shell/dev-menu.js.map +1 -1
  242. package/dist/shell/held-changes-banner-labels.d.ts +23 -0
  243. package/dist/shell/held-changes-banner-labels.js +14 -0
  244. package/dist/shell/held-changes-banner-labels.js.map +1 -0
  245. package/dist/shell/held-changes-banner.d.ts +75 -0
  246. package/dist/shell/held-changes-banner.js +106 -0
  247. package/dist/shell/held-changes-banner.js.map +1 -0
  248. package/dist/shell/sync-status-indicator.d.ts +27 -12
  249. package/dist/shell/sync-status-indicator.js +13 -4
  250. package/dist/shell/sync-status-indicator.js.map +1 -1
  251. package/dist/shell/top-bar-parts-labels.d.ts +5 -0
  252. package/dist/shell/top-bar-parts-labels.js +3 -1
  253. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  254. package/dist/shell.d.ts +2 -0
  255. package/dist/shell.js +3 -0
  256. package/dist/shell.js.map +1 -1
  257. package/dist/sync/engine.d.ts +11 -2
  258. package/dist/sync/engine.js +13 -5
  259. package/dist/sync/engine.js.map +1 -1
  260. package/dist/sync/hooks.d.ts +3 -2
  261. package/dist/sync/hooks.js +4 -2
  262. package/dist/sync/hooks.js.map +1 -1
  263. package/dist/testing/css-variables.generated.d.ts +2 -2
  264. package/dist/testing/css-variables.generated.js +1 -1
  265. package/dist/testing/css-variables.generated.js.map +1 -1
  266. package/dist/theme/chart-palette.d.ts +18 -0
  267. package/dist/theme/chart-palette.js +17 -1
  268. package/dist/theme/chart-palette.js.map +1 -1
  269. package/dist/theme/contrast-tokens.d.ts +3 -3
  270. package/dist/theme/contrast-tokens.js.map +1 -1
  271. package/dist/theme/contrast.d.ts +4 -4
  272. package/dist/theme/contrast.js.map +1 -1
  273. package/dist/tour/tour-overlay.js +2 -1
  274. package/dist/tour/tour-overlay.js.map +1 -1
  275. package/package.json +5 -9
  276. package/tokens.css +19 -54
  277. package/src/account/account-parts.ts +0 -47
  278. package/src/account/account-settings-labels.ts +0 -240
  279. package/src/account/account-settings.tsx +0 -698
  280. package/src/account/data-export-setting-labels.ts +0 -20
  281. package/src/account/data-export-setting.tsx +0 -200
  282. package/src/account/delete-account-setting-labels.ts +0 -33
  283. package/src/account/delete-account-setting.tsx +0 -342
  284. package/src/account/email-change-setting-labels.ts +0 -31
  285. package/src/account/email-change-setting.tsx +0 -443
  286. package/src/account/passkeys-setting.tsx +0 -445
  287. package/src/account/sessions-setting-labels.ts +0 -24
  288. package/src/account/sessions-setting.tsx +0 -283
  289. package/src/admin/admin-action-confirm-labels.ts +0 -19
  290. package/src/admin/admin-action-confirm.tsx +0 -509
  291. package/src/admin/admin-action-log-labels.ts +0 -83
  292. package/src/admin/admin-action-log.tsx +0 -464
  293. package/src/admin/admin-area-labels.ts +0 -114
  294. package/src/admin/admin-forbidden.tsx +0 -75
  295. package/src/admin/admin-overview.tsx +0 -258
  296. package/src/admin/admin-parts.ts +0 -68
  297. package/src/admin/admin-sections.tsx +0 -208
  298. package/src/admin/admin-tool-links.tsx +0 -90
  299. package/src/admin/invitations-panel-labels.ts +0 -31
  300. package/src/admin/invitations-panel.tsx +0 -516
  301. package/src/admin/mail-test-card-labels.ts +0 -19
  302. package/src/admin/mail-test-card.tsx +0 -189
  303. package/src/admin/plan-change-labels.ts +0 -5
  304. package/src/admin/plan-change.tsx +0 -474
  305. package/src/admin/reviewer-scope-editor-labels.ts +0 -16
  306. package/src/admin/reviewer-scope-editor.tsx +0 -224
  307. package/src/admin/role-select-labels.ts +0 -16
  308. package/src/admin/role-select.tsx +0 -282
  309. package/src/admin/transfer-ownership-dialog-labels.ts +0 -20
  310. package/src/admin/transfer-ownership-dialog.tsx +0 -162
  311. package/src/admin/user-roster-labels.ts +0 -17
  312. package/src/admin/user-roster.tsx +0 -559
  313. package/src/auth/accept-invitation-labels.ts +0 -21
  314. package/src/auth/accept-invitation.tsx +0 -210
  315. package/src/auth/auth-errors-labels.ts +0 -23
  316. package/src/auth/auth-errors.ts +0 -439
  317. package/src/auth/complete-name-dialog-labels.ts +0 -16
  318. package/src/auth/complete-name-dialog.tsx +0 -253
  319. package/src/auth/email-tag.ts +0 -75
  320. package/src/auth/forgot-password-form-labels.ts +0 -20
  321. package/src/auth/forgot-password-form.tsx +0 -221
  322. package/src/auth/form-rules.ts +0 -40
  323. package/src/auth/new-password-fields.tsx +0 -85
  324. package/src/auth/not-found-page-labels.ts +0 -12
  325. package/src/auth/not-found-page.tsx +0 -95
  326. package/src/auth/register-form-labels.ts +0 -31
  327. package/src/auth/register-form.tsx +0 -456
  328. package/src/auth/reset-password-form-labels.ts +0 -27
  329. package/src/auth/reset-password-form.tsx +0 -341
  330. package/src/auth/sign-in-form-labels.ts +0 -44
  331. package/src/auth/sign-in-form.tsx +0 -858
  332. package/src/auth/status-parts.tsx +0 -132
  333. package/src/auth/verify-email-labels.ts +0 -26
  334. package/src/auth/verify-email.tsx +0 -445
  335. package/src/billing/billing-banner.tsx +0 -258
  336. package/src/billing/billing-labels.ts +0 -381
  337. package/src/billing/billing-lock.ts +0 -108
  338. package/src/billing/billing-overview.ts +0 -157
  339. package/src/billing/billing-standing.ts +0 -80
  340. package/src/billing/cancel-request.ts +0 -97
  341. package/src/billing/cancel-subscription.tsx +0 -98
  342. package/src/billing/checkout-processing.ts +0 -394
  343. package/src/billing/checkout-return.ts +0 -90
  344. package/src/billing/pay-page.ts +0 -330
  345. package/src/billing/plan-card.tsx +0 -562
  346. package/src/billing/plan-change-labels.ts +0 -66
  347. package/src/billing/plan-limit-notice.tsx +0 -148
  348. package/src/billing/plan-limit-toast.tsx +0 -90
  349. package/src/billing/plan-limit.ts +0 -52
  350. package/src/billing/plan-price.ts +0 -98
  351. package/src/billing/plan-switch.tsx +0 -216
  352. package/src/billing/provider-page.ts +0 -84
  353. package/src/billing/subscription-actions.tsx +0 -247
  354. package/src/billing/subscription-status-chip.tsx +0 -95
  355. package/src/chart.ts +0 -103
  356. package/src/components/account-chips-labels.ts +0 -16
  357. package/src/components/account-chips.tsx +0 -474
  358. package/src/components/alert-banner.tsx +0 -670
  359. package/src/components/amount-input.tsx +0 -816
  360. package/src/components/appearance-labels.ts +0 -63
  361. package/src/components/authed-image-labels.ts +0 -11
  362. package/src/components/authed-image.tsx +0 -209
  363. package/src/components/autocomplete.tsx +0 -645
  364. package/src/components/breadcrumbs-labels.ts +0 -10
  365. package/src/components/breadcrumbs.tsx +0 -205
  366. package/src/components/bulk-action-bar-labels.ts +0 -11
  367. package/src/components/bulk-action-bar.tsx +0 -443
  368. package/src/components/button-group.tsx +0 -223
  369. package/src/components/button-look.ts +0 -256
  370. package/src/components/button.tsx +0 -339
  371. package/src/components/calculator.tsx +0 -341
  372. package/src/components/calendar-heatmap-labels.ts +0 -15
  373. package/src/components/calendar-heatmap.tsx +0 -600
  374. package/src/components/card.tsx +0 -377
  375. package/src/components/chart-edge.ts +0 -106
  376. package/src/components/chart-figure.tsx +0 -35
  377. package/src/components/chart-height.ts +0 -30
  378. package/src/components/chart-zoom-core.tsx +0 -627
  379. package/src/components/chart-zoom.tsx +0 -22
  380. package/src/components/chart.tsx +0 -554
  381. package/src/components/checkbox-group.tsx +0 -247
  382. package/src/components/checkbox.tsx +0 -346
  383. package/src/components/chip-input.tsx +0 -370
  384. package/src/components/chip-labels.ts +0 -13
  385. package/src/components/chip.tsx +0 -843
  386. package/src/components/choice-card.tsx +0 -544
  387. package/src/components/column-mapper-labels.ts +0 -38
  388. package/src/components/column-mapper.tsx +0 -655
  389. package/src/components/combobox-core.tsx +0 -1321
  390. package/src/components/combobox-suggestions.tsx +0 -131
  391. package/src/components/combobox.tsx +0 -716
  392. package/src/components/confirm-context.ts +0 -7
  393. package/src/components/confirm-dialog-labels.ts +0 -13
  394. package/src/components/confirm-dialog.tsx +0 -341
  395. package/src/components/copy-button-labels.ts +0 -13
  396. package/src/components/copy-button.tsx +0 -192
  397. package/src/components/country-select-labels.ts +0 -11
  398. package/src/components/country-select.tsx +0 -539
  399. package/src/components/currency-option-list.tsx +0 -188
  400. package/src/components/currency-select.tsx +0 -343
  401. package/src/components/danger-confirm-labels.ts +0 -20
  402. package/src/components/danger-confirm.tsx +0 -987
  403. package/src/components/data-table-cells.tsx +0 -118
  404. package/src/components/data-table-column-settings.tsx +0 -198
  405. package/src/components/data-table-filter-popover.tsx +0 -289
  406. package/src/components/data-table-filters.ts +0 -315
  407. package/src/components/data-table-fit.ts +0 -301
  408. package/src/components/data-table-groups.tsx +0 -288
  409. package/src/components/data-table-head.tsx +0 -280
  410. package/src/components/data-table-labels.ts +0 -198
  411. package/src/components/data-table-leading-row.tsx +0 -58
  412. package/src/components/data-table-mobile.tsx +0 -1117
  413. package/src/components/data-table-pagination.tsx +0 -202
  414. package/src/components/data-table-resize.ts +0 -188
  415. package/src/components/data-table-row-actions.tsx +0 -302
  416. package/src/components/data-table-row.tsx +0 -496
  417. package/src/components/data-table-selection.ts +0 -71
  418. package/src/components/data-table-shared.tsx +0 -287
  419. package/src/components/data-table-sort.ts +0 -163
  420. package/src/components/data-table-virtual.ts +0 -576
  421. package/src/components/data-table.tsx +0 -2598
  422. package/src/components/date-field.tsx +0 -684
  423. package/src/components/date-format-setting.tsx +0 -64
  424. package/src/components/date-picker.tsx +0 -404
  425. package/src/components/date-range-picker.tsx +0 -518
  426. package/src/components/description-list-labels.ts +0 -9
  427. package/src/components/description-list.tsx +0 -386
  428. package/src/components/dialog-frame-labels.ts +0 -7
  429. package/src/components/dialog-frame.tsx +0 -284
  430. package/src/components/disclosure.tsx +0 -476
  431. package/src/components/dropdown.tsx +0 -461
  432. package/src/components/empty-state.tsx +0 -136
  433. package/src/components/entity-combobox.tsx +0 -422
  434. package/src/components/error-boundary-labels.ts +0 -20
  435. package/src/components/error-boundary.tsx +0 -675
  436. package/src/components/facing-pair.ts +0 -93
  437. package/src/components/field-base-labels.ts +0 -20
  438. package/src/components/field-base.tsx +0 -656
  439. package/src/components/field-parts.tsx +0 -825
  440. package/src/components/field-strip.tsx +0 -129
  441. package/src/components/field.tsx +0 -206
  442. package/src/components/file-button.tsx +0 -295
  443. package/src/components/file-dropzone.tsx +0 -559
  444. package/src/components/floating-panel-labels.ts +0 -10
  445. package/src/components/floating-panel.tsx +0 -828
  446. package/src/components/focus-ring.ts +0 -16
  447. package/src/components/form-actions-labels.ts +0 -11
  448. package/src/components/form-actions.tsx +0 -578
  449. package/src/components/full-bleed-dialog.tsx +0 -294
  450. package/src/components/grouped-picker.tsx +0 -184
  451. package/src/components/help-popover.tsx +0 -117
  452. package/src/components/hover-menu.tsx +0 -343
  453. package/src/components/iban-input-labels.ts +0 -14
  454. package/src/components/iban-input.tsx +0 -236
  455. package/src/components/icon-button.tsx +0 -959
  456. package/src/components/icon-picker-labels.ts +0 -13
  457. package/src/components/icon-picker.tsx +0 -232
  458. package/src/components/image-grid-labels.ts +0 -11
  459. package/src/components/image-grid.tsx +0 -202
  460. package/src/components/inline-confirm.tsx +0 -116
  461. package/src/components/inline-edit-field-labels.ts +0 -11
  462. package/src/components/inline-edit-field.tsx +0 -552
  463. package/src/components/inline-entity-combobox.tsx +0 -849
  464. package/src/components/input.tsx +0 -394
  465. package/src/components/jump-calendar.tsx +0 -265
  466. package/src/components/language-select.tsx +0 -93
  467. package/src/components/legal-labels.ts +0 -105
  468. package/src/components/legal-page.tsx +0 -711
  469. package/src/components/legal.tsx +0 -668
  470. package/src/components/lightbox-labels.ts +0 -18
  471. package/src/components/lightbox.tsx +0 -399
  472. package/src/components/line-items-labels.ts +0 -14
  473. package/src/components/line-items.tsx +0 -602
  474. package/src/components/list-labels.ts +0 -12
  475. package/src/components/list.tsx +0 -870
  476. package/src/components/loading-state.tsx +0 -78
  477. package/src/components/measured-grid-labels.ts +0 -25
  478. package/src/components/measured-grid.tsx +0 -837
  479. package/src/components/menu-item.tsx +0 -241
  480. package/src/components/mini-calendar-labels.ts +0 -17
  481. package/src/components/mini-calendar.tsx +0 -792
  482. package/src/components/modal.tsx +0 -534
  483. package/src/components/money-draft.ts +0 -83
  484. package/src/components/money-field.tsx +0 -76
  485. package/src/components/month-grid.tsx +0 -229
  486. package/src/components/month-picker-labels.ts +0 -22
  487. package/src/components/month-picker.tsx +0 -1087
  488. package/src/components/multi-entity-combobox.tsx +0 -369
  489. package/src/components/multi-select.tsx +0 -376
  490. package/src/components/nav-pills.tsx +0 -198
  491. package/src/components/number-field.tsx +0 -327
  492. package/src/components/number-input.tsx +0 -559
  493. package/src/components/numeric-field.ts +0 -169
  494. package/src/components/numpad-sheet.tsx +0 -285
  495. package/src/components/one-time-code-input.tsx +0 -270
  496. package/src/components/page-contents-labels.ts +0 -9
  497. package/src/components/page-contents.tsx +0 -282
  498. package/src/components/page-header-context.ts +0 -8
  499. package/src/components/page-header.tsx +0 -298
  500. package/src/components/password-strength-labels.ts +0 -22
  501. package/src/components/password-strength.tsx +0 -241
  502. package/src/components/phone-input-labels.ts +0 -10
  503. package/src/components/phone-input.tsx +0 -282
  504. package/src/components/picker-sheet.tsx +0 -330
  505. package/src/components/pie-chart-labels.ts +0 -40
  506. package/src/components/pie-chart.tsx +0 -480
  507. package/src/components/popover-labels.ts +0 -14
  508. package/src/components/popover.tsx +0 -268
  509. package/src/components/progress-bar-labels.ts +0 -10
  510. package/src/components/progress-bar.tsx +0 -479
  511. package/src/components/qr-code.tsx +0 -76
  512. package/src/components/reauth-dialog-labels.ts +0 -13
  513. package/src/components/reauth-dialog.tsx +0 -265
  514. package/src/components/row-actions-labels.ts +0 -12
  515. package/src/components/row-actions.tsx +0 -795
  516. package/src/components/scroll-area.tsx +0 -123
  517. package/src/components/search-field.tsx +0 -192
  518. package/src/components/select.tsx +0 -294
  519. package/src/components/separator.tsx +0 -33
  520. package/src/components/series-chart-axes.ts +0 -342
  521. package/src/components/series-chart-budget.ts +0 -150
  522. package/src/components/series-chart-labels.ts +0 -33
  523. package/src/components/series-chart-thin.ts +0 -180
  524. package/src/components/series-chart-ticks.ts +0 -194
  525. package/src/components/series-chart.tsx +0 -1906
  526. package/src/components/server-wake-labels.ts +0 -11
  527. package/src/components/server-wake.tsx +0 -129
  528. package/src/components/settings-fields.tsx +0 -237
  529. package/src/components/share-card-labels.ts +0 -30
  530. package/src/components/share-card.tsx +0 -675
  531. package/src/components/signature-pad-labels.ts +0 -24
  532. package/src/components/signature-pad.tsx +0 -747
  533. package/src/components/signed-amount-labels.ts +0 -10
  534. package/src/components/signed-amount.tsx +0 -336
  535. package/src/components/skeleton.tsx +0 -80
  536. package/src/components/slider.tsx +0 -338
  537. package/src/components/sparkline-labels.ts +0 -14
  538. package/src/components/sparkline.tsx +0 -322
  539. package/src/components/spinner.tsx +0 -81
  540. package/src/components/stat-tile-labels.ts +0 -15
  541. package/src/components/stat-tile.tsx +0 -754
  542. package/src/components/status-dot.tsx +0 -170
  543. package/src/components/swatch-picker-labels.ts +0 -10
  544. package/src/components/swatch-picker.tsx +0 -283
  545. package/src/components/swipeable-row.tsx +0 -386
  546. package/src/components/switch.tsx +0 -273
  547. package/src/components/table-skeleton.tsx +0 -136
  548. package/src/components/table.tsx +0 -647
  549. package/src/components/tabs-labels.ts +0 -13
  550. package/src/components/tabs.tsx +0 -693
  551. package/src/components/text-link.tsx +0 -359
  552. package/src/components/text.tsx +0 -150
  553. package/src/components/textarea.tsx +0 -330
  554. package/src/components/tile-radio.tsx +0 -332
  555. package/src/components/time-input.tsx +0 -121
  556. package/src/components/toast-labels.ts +0 -12
  557. package/src/components/toast.tsx +0 -519
  558. package/src/components/toggle-group.tsx +0 -752
  559. package/src/components/toggle-legend.tsx +0 -394
  560. package/src/components/tooltip.tsx +0 -1149
  561. package/src/components/translation-review-editor.tsx +0 -290
  562. package/src/components/translation-review-labels.ts +0 -181
  563. package/src/components/translation-review-parts.tsx +0 -272
  564. package/src/components/translation-review.tsx +0 -1240
  565. package/src/components/tree-view.tsx +0 -589
  566. package/src/components/treemap-labels.ts +0 -47
  567. package/src/components/treemap-layout.ts +0 -210
  568. package/src/components/treemap.tsx +0 -1184
  569. package/src/components/trigger-aria.ts +0 -44
  570. package/src/components/use-anchor-dir.ts +0 -20
  571. package/src/components/use-mobile-reveal.ts +0 -62
  572. package/src/components/use-table-state.ts +0 -753
  573. package/src/components/user-avatar.tsx +0 -116
  574. package/src/components/wizard-stepper.tsx +0 -42
  575. package/src/components/write-lock-labels.ts +0 -10
  576. package/src/components/write-lock.tsx +0 -253
  577. package/src/currencies.ts +0 -90
  578. package/src/data-table.ts +0 -42
  579. package/src/demo/demo-banner.tsx +0 -153
  580. package/src/demo/demo-countdown.ts +0 -136
  581. package/src/demo/demo-ended.tsx +0 -90
  582. package/src/demo/demo-labels.ts +0 -78
  583. package/src/demo/demo-session.ts +0 -32
  584. package/src/demo/demo-start.tsx +0 -156
  585. package/src/eslint/index.ts +0 -161
  586. package/src/eslint/role-utilities.generated.ts +0 -146
  587. package/src/eslint/role-utilities.ts +0 -233
  588. package/src/feedback/feedback-attachment-download.tsx +0 -77
  589. package/src/feedback/feedback-attachment-labels.ts +0 -37
  590. package/src/feedback/feedback-attachment.tsx +0 -1239
  591. package/src/feedback/feedback-capture.ts +0 -287
  592. package/src/feedback/feedback-comment-thread.tsx +0 -353
  593. package/src/feedback/feedback-context-labels.ts +0 -11
  594. package/src/feedback/feedback-context.tsx +0 -245
  595. package/src/feedback/feedback-crash.ts +0 -547
  596. package/src/feedback/feedback-diagnostics.tsx +0 -41
  597. package/src/feedback/feedback-dialog-labels.ts +0 -29
  598. package/src/feedback/feedback-dialog.tsx +0 -452
  599. package/src/feedback/feedback-entry-file.tsx +0 -150
  600. package/src/feedback/feedback-inbox.tsx +0 -552
  601. package/src/feedback/feedback-labels.ts +0 -144
  602. package/src/feedback/feedback-menu-labels.ts +0 -12
  603. package/src/feedback/feedback-menu.tsx +0 -177
  604. package/src/feedback/feedback-mutation.ts +0 -20
  605. package/src/feedback/feedback-page-link.ts +0 -90
  606. package/src/feedback/feedback-public-labels.ts +0 -81
  607. package/src/feedback/feedback-public-list.tsx +0 -524
  608. package/src/feedback/feedback-public-switch.tsx +0 -102
  609. package/src/feedback/feedback-public-types.ts +0 -101
  610. package/src/feedback/feedback-record.ts +0 -428
  611. package/src/feedback/feedback-replies-context.ts +0 -9
  612. package/src/feedback/feedback-replies.tsx +0 -343
  613. package/src/feedback/feedback-rework-entry-chip.tsx +0 -18
  614. package/src/feedback/feedback-row-detail-labels.ts +0 -31
  615. package/src/feedback/feedback-row-detail.tsx +0 -871
  616. package/src/feedback/feedback-status-undo.ts +0 -109
  617. package/src/feedback/feedback-submit-dialog.tsx +0 -131
  618. package/src/feedback/feedback-submit.tsx +0 -270
  619. package/src/feedback/feedback-swipe.tsx +0 -192
  620. package/src/feedback/feedback-table-labels.ts +0 -27
  621. package/src/feedback/feedback-table.tsx +0 -912
  622. package/src/feedback/feedback-thread-labels.ts +0 -22
  623. package/src/feedback/feedback-thread-parts-labels.ts +0 -41
  624. package/src/feedback/feedback-thread.tsx +0 -905
  625. package/src/feedback/feedback-vocabulary.ts +0 -263
  626. package/src/feedback/feedback-vote-button.tsx +0 -124
  627. package/src/feedback.ts +0 -116
  628. package/src/hooks/use-anchored-panel.ts +0 -396
  629. package/src/hooks/use-anchored-rect.ts +0 -77
  630. package/src/hooks/use-announce.ts +0 -85
  631. package/src/hooks/use-authed-src.ts +0 -167
  632. package/src/hooks/use-body-scroll-lock.ts +0 -119
  633. package/src/hooks/use-breakpoint.ts +0 -133
  634. package/src/hooks/use-close-transition.ts +0 -107
  635. package/src/hooks/use-copy-to-clipboard.ts +0 -122
  636. package/src/hooks/use-debounce.ts +0 -114
  637. package/src/hooks/use-dismiss.ts +0 -371
  638. package/src/hooks/use-document-title.ts +0 -33
  639. package/src/hooks/use-file-drop.ts +0 -121
  640. package/src/hooks/use-file-picker-labels.ts +0 -28
  641. package/src/hooks/use-file-picker.tsx +0 -359
  642. package/src/hooks/use-focus-trap.ts +0 -199
  643. package/src/hooks/use-hotkey.ts +0 -212
  644. package/src/hooks/use-large-text.ts +0 -41
  645. package/src/hooks/use-long-press.ts +0 -140
  646. package/src/hooks/use-media-query.ts +0 -39
  647. package/src/hooks/use-mounted.ts +0 -39
  648. package/src/hooks/use-noindex.ts +0 -37
  649. package/src/hooks/use-overlay-history.ts +0 -714
  650. package/src/hooks/use-row-swipe.ts +0 -207
  651. package/src/hooks/use-search-param-state.ts +0 -434
  652. package/src/hooks/use-windowed-rows.ts +0 -225
  653. package/src/i18n/defaults.ts +0 -267
  654. package/src/i18n/german.ts +0 -2059
  655. package/src/i18n/kit-labels.tsx +0 -1003
  656. package/src/i18n/languages.ts +0 -349
  657. package/src/i18n/locales/de-CH.ts +0 -24
  658. package/src/i18n/locales/en.ts +0 -267
  659. package/src/i18n/locales/es.ts +0 -1999
  660. package/src/i18n/locales/fr.ts +0 -2037
  661. package/src/i18n/locales/hu.ts +0 -2004
  662. package/src/i18n/locales/it.ts +0 -2014
  663. package/src/i18n/locales/zh.ts +0 -1912
  664. package/src/i18n/plurals.ts +0 -86
  665. package/src/i18n/review.ts +0 -475
  666. package/src/i18n/shared-labels.ts +0 -138
  667. package/src/i18n/swiss.ts +0 -29
  668. package/src/index.ts +0 -1191
  669. package/src/landing/access.ts +0 -93
  670. package/src/landing/landing-actions.tsx +0 -97
  671. package/src/landing/landing-labels.ts +0 -59
  672. package/src/landing/landing-sections.tsx +0 -341
  673. package/src/landing/page-seo.ts +0 -261
  674. package/src/landing/public-header.tsx +0 -121
  675. package/src/landing/public-page.tsx +0 -106
  676. package/src/landing/routing.tsx +0 -225
  677. package/src/lib/broadcast.ts +0 -52
  678. package/src/lib/calc.ts +0 -323
  679. package/src/lib/chip-edge-snap.ts +0 -212
  680. package/src/lib/clipboard-minus.ts +0 -107
  681. package/src/lib/clipping.ts +0 -34
  682. package/src/lib/cn.ts +0 -28
  683. package/src/lib/column-mapping.ts +0 -234
  684. package/src/lib/countries.ts +0 -91
  685. package/src/lib/data-attributes.ts +0 -14
  686. package/src/lib/date-format.ts +0 -227
  687. package/src/lib/dates.ts +0 -288
  688. package/src/lib/day-format.ts +0 -96
  689. package/src/lib/decimal-marks.ts +0 -108
  690. package/src/lib/describe-failure.ts +0 -18
  691. package/src/lib/device-settings.ts +0 -147
  692. package/src/lib/direction.ts +0 -74
  693. package/src/lib/document-navigation.ts +0 -17
  694. package/src/lib/document-title.ts +0 -41
  695. package/src/lib/download.ts +0 -172
  696. package/src/lib/float-clearance.ts +0 -70
  697. package/src/lib/floating-stack.ts +0 -70
  698. package/src/lib/focus-left.ts +0 -156
  699. package/src/lib/format.ts +0 -585
  700. package/src/lib/http-status.ts +0 -38
  701. package/src/lib/iban.ts +0 -251
  702. package/src/lib/ime.ts +0 -24
  703. package/src/lib/intl-cache.ts +0 -27
  704. package/src/lib/iso-day.ts +0 -13
  705. package/src/lib/lazy-with-fallback.ts +0 -82
  706. package/src/lib/logger.ts +0 -69
  707. package/src/lib/minus.ts +0 -50
  708. package/src/lib/path-pattern.ts +0 -55
  709. package/src/lib/person-name.ts +0 -155
  710. package/src/lib/phone.ts +0 -208
  711. package/src/lib/plain-text.ts +0 -22
  712. package/src/lib/presence.ts +0 -18
  713. package/src/lib/qr-encode.ts +0 -444
  714. package/src/lib/quiet-focus.ts +0 -32
  715. package/src/lib/reduced-motion.ts +0 -22
  716. package/src/lib/refs.ts +0 -22
  717. package/src/lib/round.ts +0 -43
  718. package/src/lib/safe-storage.ts +0 -119
  719. package/src/lib/server-wake.ts +0 -315
  720. package/src/lib/session-refresh.ts +0 -472
  721. package/src/lib/share-format.ts +0 -18
  722. package/src/lib/status-tone.ts +0 -43
  723. package/src/lib/strip-fade.ts +0 -287
  724. package/src/lib/table-text.ts +0 -554
  725. package/src/lib/text-case.ts +0 -19
  726. package/src/lib/text-match.ts +0 -169
  727. package/src/lib/thenable.ts +0 -19
  728. package/src/lib/translation-review.ts +0 -769
  729. package/src/notifications/device-zone-report.ts +0 -67
  730. package/src/notifications/feedback-notification-types-labels.ts +0 -33
  731. package/src/notifications/feedback-notification-types.ts +0 -71
  732. package/src/notifications/notification-bell.tsx +0 -119
  733. package/src/notifications/notification-inbox.tsx +0 -309
  734. package/src/notifications/notification-parts.tsx +0 -81
  735. package/src/notifications/notification-types-setting.tsx +0 -406
  736. package/src/notifications/notification-types.ts +0 -89
  737. package/src/notifications/notifications-labels.ts +0 -287
  738. package/src/notifications/push-device-setting.tsx +0 -230
  739. package/src/notifications/push-devices-setting.tsx +0 -374
  740. package/src/notifications/push-worker.ts +0 -168
  741. package/src/notifications/quiet-hours-setting.tsx +0 -238
  742. package/src/notifications/unsubscribe-panel.tsx +0 -200
  743. package/src/notifications/use-push-device.ts +0 -448
  744. package/src/offline/local-first.ts +0 -100
  745. package/src/offline/pwa-update-prompt-labels.ts +0 -9
  746. package/src/offline/pwa-update-prompt.tsx +0 -78
  747. package/src/offline/query-persistence.ts +0 -391
  748. package/src/offline/service-worker-updates.ts +0 -81
  749. package/src/offline/shared-computer-labels.ts +0 -8
  750. package/src/offline/shared-computer.tsx +0 -87
  751. package/src/offline/sign-out-pending-dialog-labels.ts +0 -21
  752. package/src/offline/sign-out-pending-dialog.tsx +0 -135
  753. package/src/offline.ts +0 -37
  754. package/src/push-worker.ts +0 -25
  755. package/src/rhf/fields.tsx +0 -2187
  756. package/src/rhf/form-core.tsx +0 -324
  757. package/src/rhf/form.tsx +0 -12
  758. package/src/rhf/line-items.tsx +0 -135
  759. package/src/rhf/use-rhf-wizard-step.ts +0 -104
  760. package/src/rhf.ts +0 -21
  761. package/src/search/command-palette-labels.ts +0 -16
  762. package/src/search/command-palette.tsx +0 -624
  763. package/src/search/global-search-labels.ts +0 -13
  764. package/src/search/global-search.tsx +0 -660
  765. package/src/search/search-index.ts +0 -283
  766. package/src/search/use-command-key.ts +0 -23
  767. package/src/search.ts +0 -14
  768. package/src/settings/device-reset-setting-labels.ts +0 -20
  769. package/src/settings/device-reset-setting.tsx +0 -116
  770. package/src/settings/settings-card-classes.ts +0 -11
  771. package/src/settings/settings-catalogue.ts +0 -150
  772. package/src/settings/settings-context.ts +0 -33
  773. package/src/settings/settings-heading.tsx +0 -67
  774. package/src/settings/settings-labels.ts +0 -87
  775. package/src/settings/settings-layout.tsx +0 -471
  776. package/src/settings/settings-section.tsx +0 -108
  777. package/src/settings/use-account-appearance.ts +0 -148
  778. package/src/settings/use-account-language.ts +0 -146
  779. package/src/settings/use-settings-focus.ts +0 -128
  780. package/src/settings/use-settings-route.ts +0 -258
  781. package/src/shell/account-menu-language.tsx +0 -130
  782. package/src/shell/account-menu-text-size.tsx +0 -80
  783. package/src/shell/admin-menu.tsx +0 -183
  784. package/src/shell/app-shell-labels.ts +0 -11
  785. package/src/shell/app-shell.tsx +0 -1560
  786. package/src/shell/auth-layout.tsx +0 -186
  787. package/src/shell/company-switcher-labels.ts +0 -13
  788. package/src/shell/company-switcher.tsx +0 -136
  789. package/src/shell/dev-menu.tsx +0 -257
  790. package/src/shell/fill-height.tsx +0 -45
  791. package/src/shell/language-code.ts +0 -5
  792. package/src/shell/option-switcher-menu.tsx +0 -84
  793. package/src/shell/sync-status-indicator.tsx +0 -303
  794. package/src/shell/top-bar-actions.tsx +0 -87
  795. package/src/shell/top-bar-brand.tsx +0 -78
  796. package/src/shell/top-bar-parts-labels.ts +0 -148
  797. package/src/shell/top-bar.tsx +0 -40
  798. package/src/shell/topbar-action-menu.tsx +0 -567
  799. package/src/shell/topbar-controls.tsx +0 -269
  800. package/src/shell/tour-menu.tsx +0 -187
  801. package/src/shell.ts +0 -108
  802. package/src/sync/db.ts +0 -129
  803. package/src/sync/engine.ts +0 -1011
  804. package/src/sync/hooks.ts +0 -98
  805. package/src/sync/testing.ts +0 -73
  806. package/src/sync/wire.ts +0 -61
  807. package/src/sync.ts +0 -37
  808. package/src/table-text.ts +0 -8
  809. package/src/testing/css-variables.generated.ts +0 -112
  810. package/src/testing/css-variables.ts +0 -189
  811. package/src/testing/index.ts +0 -29
  812. package/src/testing/react.ts +0 -58
  813. package/src/testing/tour.ts +0 -41
  814. package/src/testing/viewport.ts +0 -357
  815. package/src/theme/chart-palette.ts +0 -232
  816. package/src/theme/color.ts +0 -272
  817. package/src/theme/contrast-tokens.ts +0 -268
  818. package/src/theme/contrast.ts +0 -250
  819. package/src/theme/palette-derive.ts +0 -825
  820. package/src/theme/palette-presets.ts +0 -544
  821. package/src/theme/palette-store.ts +0 -108
  822. package/src/theme/text-size.ts +0 -289
  823. package/src/theme/theme-store.ts +0 -157
  824. package/src/tour/tour-catalogue-labels.ts +0 -75
  825. package/src/tour/tour-catalogue.tsx +0 -335
  826. package/src/tour/tour-dock.ts +0 -134
  827. package/src/tour/tour-engine.ts +0 -37
  828. package/src/tour/tour-gates.ts +0 -218
  829. package/src/tour/tour-guide-button.tsx +0 -64
  830. package/src/tour/tour-guide-labels.ts +0 -15
  831. package/src/tour/tour-info.ts +0 -144
  832. package/src/tour/tour-labels.ts +0 -23
  833. package/src/tour/tour-overlay.tsx +0 -1170
  834. package/src/tour/tour.tsx +0 -750
  835. package/src/tour/use-tour-progress.ts +0 -671
  836. package/src/tour/use-tour-url-sync.ts +0 -266
  837. package/src/tour.ts +0 -21
  838. package/src/vite-env.d.ts +0 -23
  839. package/src/wizard/stepper-nav.tsx +0 -360
  840. package/src/wizard/types.ts +0 -275
  841. package/src/wizard/use-wizard.ts +0 -560
  842. package/src/wizard/validation.ts +0 -39
  843. package/src/wizard/wizard-context.tsx +0 -74
  844. package/src/wizard/wizard-labels.ts +0 -29
  845. package/src/wizard/wizard-step.tsx +0 -76
  846. package/src/wizard/wizard-summary.tsx +0 -84
  847. package/src/wizard.ts +0 -15
@@ -1,116 +0,0 @@
1
- import type { ComponentPropsWithRef, ReactNode } from "react";
2
- import { cn } from "../lib/cn";
3
- import { personInitials } from "../lib/person-name";
4
- import type { PersonName } from "../lib/person-name";
5
- import { useKitLocale } from "../i18n/kit-labels";
6
- import { StatusDot } from "./status-dot";
7
- import type { StatusDotSize, StatusDotTone } from "./status-dot";
8
-
9
- /** Initials from a display name (first + last) or, failing that, an email —
10
- * e.g. "Marcel Eifert" → "ME", "marcel@x.com" → "MA". App-agnostic.
11
- *
12
- * "Failing that" means BLANK, not merely absent. This was `name ?? email ?? "?"`,
13
- * and `??` falls through on null/undefined alone — so an empty or whitespace-only
14
- * display name short-circuited the email it had in hand and landed on the guard
15
- * below, returning "?" for a user whose address says "MA" perfectly well. Keksdose
16
- * cannot reach it (its `display_name` has `min_length=1`), but this is exported as
17
- * app-agnostic, and any consumer whose profile name is optional free text got a wall
18
- * of "?" chips. The guard is what shows the empty case was foreseen; it just
19
- * answered it at the wrong end. */
20
- export function avatarInitials(name?: string | null, email?: string | null): string {
21
- const source = [name, email].map((s) => s?.trim()).find(Boolean) ?? "?";
22
- const parts = source.split(/\s+/).filter(Boolean);
23
- if (parts.length >= 2) return (parts[0][0] + parts[1][0]).toUpperCase();
24
- return source.slice(0, 2).toUpperCase();
25
- }
26
-
27
- const AVATAR_SIZES = {
28
- sm: "size-7 text-caption",
29
- md: "size-8 text-xs",
30
- lg: "size-12 text-base",
31
- } as const;
32
-
33
- const CHIP = "inline-flex shrink-0 items-center justify-center rounded-full bg-inverse font-semibold text-inverse";
34
-
35
- /** The dot grows with the avatar: 8px on `sm`, 10px on `md` (keksdose's), 12px on `lg`. */
36
- const BADGE_SIZES: Record<keyof typeof AVATAR_SIZES, StatusDotSize> = { sm: "sm", md: "md", lg: "lg" };
37
-
38
- /** A status dot in the avatar's top corner — an unread count, presence. */
39
- export interface UserAvatarBadge {
40
- /** What the dot MEANS, for a screen reader ("3 unread"). Required: a coloured circle
41
- * says nothing to someone who cannot see it. */
42
- label: ReactNode;
43
- /** Default `danger`, the unread dot both apps draw by hand. */
44
- tone?: StatusDotTone;
45
- }
46
-
47
- /** A `<span>`'s props, minus `children`: the content is the initials this computes
48
- * from `person`/`name`/`email`, so there is nothing for a caller to put inside. */
49
- export interface UserAvatarProps extends Omit<ComponentPropsWithRef<"span">, "children"> {
50
- name?: string | null;
51
- email?: string | null;
52
- /**
53
- * The person's first and last name (0.29.0, docs/auth-harmonization.md §3.2) —
54
- * preferred over `name` whenever either part is filled in. The initials follow the
55
- * READER's language, the provider's `locale`: "AE" for Ada Example, "EA" in Hungarian
56
- * (family name first), the family name's first character alone in Chinese. See
57
- * {@link personInitials}.
58
- *
59
- * `name` stays the fallback for an API that still sends only `display_name`, and
60
- * `email` after it: a person whose two parts are both blank falls through to them.
61
- * A migrated user (the whole old display name in `first`, no `last`, §3.3) keeps the
62
- * initials they had.
63
- */
64
- person?: PersonName | null;
65
- size?: keyof typeof AVATAR_SIZES;
66
- /**
67
- * A status dot in the top-end corner (the top-right in LTR, top-left in RTL), ringed
68
- * in the surface colour so it reads as its own mark (keksdose account-menu ~385,
69
- * top-bar :152). Its `label` is read as text where the dot sits — inside a button
70
- * named by its content it joins that name. In `TopBarActionMenu`'s `trigger` the
71
- * button is named by the menu's `aria-label` followed by this label: "Account menu
72
- * 3 unread". The initials stay hidden either way, so the person's name is NOT part
73
- * of it — put it in `aria-label` ("Marcel Eifert, account menu") if it should be.
74
- */
75
- badge?: UserAvatarBadge | null;
76
- }
77
-
78
- /**
79
- * A round initials avatar — the common user chip shared across apps (feedback
80
- * #333). Purely presentational; wrap it in a button for the account menu trigger.
81
- */
82
- export function UserAvatar({ name, email, person, size = "md", badge, className, ...rest }: UserAvatarProps) {
83
- const locale = useKitLocale();
84
- const initials = (person ? personInitials(person, locale) : "") || avatarInitials(name, email);
85
- if (badge) {
86
- // A wrapper, because the chip itself is `aria-hidden` and the badge label must not
87
- // be. `className` stays on the chip (a size override still sizes the circle); the
88
- // other attributes go on the wrapper, which is what a caller addresses. `relative`
89
- // also contains the sr-only text.
90
- return (
91
- <span {...rest} className="relative inline-flex shrink-0">
92
- <span aria-hidden className={cn(CHIP, AVATAR_SIZES[size], className)}>
93
- {initials}
94
- </span>
95
- <StatusDot ring tone={badge.tone ?? "danger"} size={BADGE_SIZES[size]} className="absolute -end-0.5 -top-0.5" />
96
- <span className="sr-only">{badge.label}</span>
97
- </span>
98
- );
99
- }
100
- return (
101
- <span
102
- // `aria-hidden` sits BEFORE the spread, unlike the structural attributes on the
103
- // other components here, because it is a DEFAULT rather than an invariant. The
104
- // avatar is decorative next to the name it belongs to — which is where all three
105
- // apps render it — so hiding it stops a screen reader saying "ME" after the word
106
- // "Marcel Eifert". A caller who renders one ALONE (an assignee column, a
107
- // presence dot) needs the opposite, and now has it: `aria-hidden={false}` plus an
108
- // `aria-label` arrives through `...rest` and wins.
109
- aria-hidden
110
- {...rest}
111
- className={cn(CHIP, AVATAR_SIZES[size], className)}
112
- >
113
- {initials}
114
- </span>
115
- );
116
- }
@@ -1,42 +0,0 @@
1
- import { cn } from "../lib/cn";
2
-
3
- /** Compact step indicator for the import wizards. Past steps are plain, the
4
- * current one is highlighted, future ones muted. */
5
- export function WizardStepper({
6
- steps,
7
- current,
8
- "aria-label": ariaLabel,
9
- }: {
10
- steps: { key: string; label: string }[];
11
- current: string;
12
- /** Names the list of steps ("Import steps"). */
13
- "aria-label"?: string;
14
- }) {
15
- const currentIndex = steps.findIndex((s) => s.key === current);
16
- return (
17
- // `flex-wrap`: the steps flow onto a second line rather than past the screen
18
- // (0.32.1, the 360 px Extra-large sweep; docs/text-size-harmonization.md §4).
19
- // "Upload — Map columns — Confirm" ran 22 px past a 360 px phone at Extra large.
20
- // Where the steps fit, they stay one row.
21
- <ol className="flex flex-wrap items-center gap-1 text-xs" aria-label={ariaLabel}>
22
- {steps.map((step, i) => (
23
- <li key={step.key} className="flex items-center gap-1">
24
- {i > 0 && <span className="w-4 border-t border-subtle" />}
25
- <span
26
- aria-current={step.key === current ? "step" : undefined}
27
- className={cn(
28
- "rounded-full px-2 py-0.5",
29
- i === currentIndex
30
- ? "bg-inverse text-inverse font-medium"
31
- : i < currentIndex
32
- ? "text-secondary"
33
- : "text-placeholder",
34
- )}
35
- >
36
- {step.label}
37
- </span>
38
- </li>
39
- ))}
40
- </ol>
41
- );
42
- }
@@ -1,10 +0,0 @@
1
- // The English words of ./write-lock, 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). ./write-lock re-exports them.
4
-
5
- import type { WriteLockLabels } from "./write-lock";
6
-
7
- export const DEFAULT_WRITE_LOCK_LABELS: WriteLockLabels = {
8
- reason: "You can view this but not change it.",
9
- offline: "Needs a connection.",
10
- };
@@ -1,253 +0,0 @@
1
- import { createContext, useContext, useMemo } from "react";
2
- import type { ReactNode } from "react";
3
- import { useKitLabels, type LabelOverride } from "../i18n/kit-labels";
4
- import { hasContent } from "../lib/presence";
5
- import { DEFAULT_WRITE_LOCK_LABELS } from "./write-lock-labels";
6
-
7
- /** The words {@link WriteLockProvider} renders on its own behalf. */
8
- export interface WriteLockLabels {
9
- /** The tooltip of a locked commit when the provider gives no `reason`. */
10
- reason: string;
11
- /** 0.46 (kastlan K4): the reason of {@link useOfflineWriteLock} — "Needs a connection." */
12
- offline: string;
13
- }
14
-
15
- // Defined in ./write-lock-labels, which holds no component code (0.34, KS U8).
16
- export { DEFAULT_WRITE_LOCK_LABELS };
17
-
18
- /**
19
- * What kind of lock a source is (docs/billing-harmonization.md §12.36, ui-kit 0.33).
20
- * `"demo"` (the read-only demo, `demo.writeLocked`), `"billing"` (a lapsed plan,
21
- * `billing.lockReason`) and, since 0.46, `"offline"` ({@link OFFLINE_LOCK}) are the kit's; an app names its own — Kurvenschmiede's
22
- * `"access"` (a curve shared to view) and `"customer"` (an account that owns nothing).
23
- * A control exempts itself from a kind with {@link CommitScope}; a source without a
24
- * kind is never exempted.
25
- */
26
- export type WriteLockKind = "demo" | "billing" | "offline" | (string & {});
27
-
28
- /** One locked source, as the provider holds it: its kind and its one sentence. */
29
- export interface WriteLockHold {
30
- kind: WriteLockKind | undefined;
31
- reason: ReactNode;
32
- }
33
-
34
- /**
35
- * A control's opt-in to the lock — the type of every `commit` prop in the kit.
36
- *
37
- * - `true`: every lock refuses the control (a save, an add, an invite).
38
- * - `{ except: [kinds] }`: every lock but those kinds. A billing lock leaves the
39
- * reader able to remove access, revoke sessions, delete the account and change their
40
- * own settings (§3.3, §12.13), so the kit's parts for those take
41
- * {@link COMMIT_EXCEPT_BILLING} built in, and an app's own controls of that sort do
42
- * too.
43
- * - `false` or left out: no lock reaches it.
44
- *
45
- * Under a demo lock and a billing lock together, a control exempt from billing is
46
- * still refused, with the demo's reason.
47
- */
48
- export type CommitScope = boolean | { readonly except: readonly WriteLockKind[] };
49
-
50
- /** Every lock but billing's: the scope of an action a lapsed plan still allows — removing
51
- * access, the account's own settings, an operator's admin route (§12.13). One constant,
52
- * so the call sites read alike. */
53
- export const COMMIT_EXCEPT_BILLING = { except: ["billing"] } as const;
54
-
55
- /**
56
- * 0.46 (kastlan K4, docs/local-first-harmonization.md D4): the kind of the lock "this
57
- * device has no connection". An action that only the server can do (numbers, money,
58
- * mail, people, settings) is locked with "Needs a connection." while offline; a control
59
- * that writes to the device's copy and syncs later takes {@link COMMIT_EXCEPT_OFFLINE}.
60
- * Feed it with {@link useOfflineWriteLock}.
61
- */
62
- export const OFFLINE_LOCK = "offline" as const;
63
-
64
- /** Every lock but the offline one: the scope of a control that works on the device's copy
65
- * (it is still locked for a demo or a lapsed plan). */
66
- export const COMMIT_EXCEPT_OFFLINE = { except: [OFFLINE_LOCK] } as const;
67
-
68
- /**
69
- * What {@link useWriteLock} returns: whether commits are locked here as a control with
70
- * the scope asked for sees it, and why.
71
- */
72
- export interface WriteLock {
73
- locked: boolean;
74
- /** The one sentence a locked commit shows in its tooltip: the first hold in scope's.
75
- * Always set while `locked`; `undefined` when not. */
76
- reason: ReactNode | undefined;
77
- /** The first hold in scope's kind; `undefined` while unlocked, or for a source that
78
- * names none. */
79
- kind: WriteLockKind | undefined;
80
- /**
81
- * EVERY locked source the provider holds, in the order the server refuses them
82
- * (§12.3: the demo's 403 before billing's 402) — unfiltered by the scope, for code
83
- * that must know what else locks (a toast that names the plan, a swipe plan). Empty
84
- * while the provider is unlocked.
85
- */
86
- holds: readonly WriteLockHold[];
87
- }
88
-
89
- const NO_HOLDS: readonly WriteLockHold[] = [];
90
-
91
- const UNLOCKED: WriteLock = { locked: false, reason: undefined, kind: undefined, holds: NO_HOLDS };
92
-
93
- const WriteLockContext = createContext<WriteLock>(UNLOCKED);
94
-
95
- export interface WriteLockProviderProps {
96
- /** Commits below are locked. `false` unlocks a subtree under an outer lock. */
97
- locked: boolean;
98
- /**
99
- * The one sentence that says why — "Shared with you to read", "Read-only demo —
100
- * saving is disabled", "A customer account cannot create curves". The app's policy,
101
- * already translated. Left out: `labels.reason`.
102
- */
103
- reason?: ReactNode;
104
- /** What kind of lock this is — `"demo"`, `"billing"` or the app's own (see
105
- * {@link WriteLockKind}), for a provider of one source. Left out, no control can be
106
- * exempt from it. */
107
- kind?: WriteLockKind;
108
- /**
109
- * Every locked source, in refusal order — what `combineWriteLocks` answers, so
110
- * `<WriteLockProvider {...combineWriteLocks([...])}>` carries them. Given while
111
- * `locked`, it wins over `kind` and `reason`; a hold without a reason takes
112
- * `labels.reason`.
113
- */
114
- holds?: readonly WriteLockHold[];
115
- labels?: LabelOverride<WriteLockLabels>;
116
- children?: ReactNode;
117
- }
118
-
119
- // `null`/`""`/`false` count as "no reason given" (`hasContent`): a lock whose tooltip is
120
- // empty would be a disabled button that cannot say why, the thing this replaces.
121
-
122
- /**
123
- * The read-only lock — **everything renders; only the commit is locked.**
124
- *
125
- * keksdose (features/budgets/write-lock.tsx, the read-only demo budget) and
126
- * Kurvenschmiede (features/sharing/write-lock.tsx, a curve shared to view, a customer
127
- * account that owns nothing) each built the same `SaveGuard`: the page, its tabs,
128
- * forms and dialogs render exactly as for an owner, because a viewer looking at half
129
- * a page is not looking at what they were sent; what changes is that the control
130
- * that SAVES is off and says why on hover or focus. Both wrapped each Save in a
131
- * Tooltip and forced a native `disabled` on it — out of the tab order, so the reason
132
- * never reached a keyboard — and both had to remember it at thirty call sites.
133
- *
134
- * Here the page mounts one provider and each commit control opts in with `commit`
135
- * ({@link Button}, {@link IconButton}, {@link FormActions}): under a lock it takes the
136
- * kit's `disabledReason` path with this reason — `aria-disabled` and focusable,
137
- * every activation swallowed, the reason in the kit Tooltip and its description.
138
- *
139
- * Who is locked is the app's: the provider takes a boolean, never a role. Fields stay
140
- * editable — nothing in them reaches the server until the commit is pressed, and a
141
- * form you cannot fill in is not a demo of the form (keksdose accounts-page). A
142
- * control that IS its own commit (a toggle that saves on change) reads
143
- * {@link useWriteLock} and disables itself. The lock is a courtesy, not a guard: the
144
- * server still refuses the write.
145
- *
146
- * **A lock says its source** (0.33, docs/billing-harmonization.md §12.36). A lapsed
147
- * plan locks creating and changing, but not removing access or the account's own
148
- * settings (§3.3, §12.13), and the kit's parts for those hard-coded `commit` — so
149
- * kastlan's app-wide lock locked a member's own sign-out everywhere. Each source now
150
- * has a kind, the provider holds every locked one in order (`holds`, from
151
- * `combineWriteLocks`), and a control's `commit` may name the kinds it is exempt from
152
- * ({@link CommitScope}). The kit's parts follow §3.3 and §12.13 by themselves.
153
- *
154
- * Nested providers: the nearest wins, so an inner `locked={false}` reopens a section
155
- * the caller may write (a viewer's own notes on a shared curve) — every source at
156
- * once — and an inner lock with its own reason (Kurvenschmiede's owner lock beside the
157
- * viewer lock) overrides the outer one's sentence and its holds.
158
- */
159
- export function WriteLockProvider({ locked, reason, kind, holds, labels, children }: WriteLockProviderProps) {
160
- // The `writeLock` namespace: prop > `<UiKitProvider labels>` > English.
161
- const fallback = useKitLabels("writeLock", DEFAULT_WRITE_LOCK_LABELS, labels).reason;
162
- // `holds` wins while it has any; otherwise this provider is one source of its own.
163
- const several = locked && holds !== undefined && holds.length > 0 ? holds : undefined;
164
- const firstKind = several ? several[0].kind : kind;
165
- const firstGiven = several ? several[0].reason : reason;
166
- const firstReason = hasContent(firstGiven) ? firstGiven : fallback;
167
- // Memoised on the first hold's kind and sentence — the strings an app passes — so a
168
- // one-source lock keeps one context value across renders; a list of several is
169
- // memoised on its own identity.
170
- const many = several && several.length > 1 ? several : undefined;
171
- const value = useMemo<WriteLock>(() => {
172
- if (!locked) return UNLOCKED;
173
- const all = many
174
- ? many.map((hold) => ({ kind: hold.kind, reason: hasContent(hold.reason) ? hold.reason : fallback }))
175
- : [{ kind: firstKind, reason: firstReason }];
176
- return { locked: true, reason: firstReason, kind: firstKind, holds: all };
177
- }, [locked, many, firstKind, firstReason, fallback]);
178
- return <WriteLockContext.Provider value={value}>{children}</WriteLockContext.Provider>;
179
- }
180
-
181
- /**
182
- * Whether a hold refuses a control with this scope: `true` refuses with every hold,
183
- * `{ except }` with every hold whose kind it does not name. A hold with no kind is
184
- * never exempted — an app that forgot to name its source must not reopen by accident.
185
- */
186
- function inScope(hold: WriteLockHold, scope: CommitScope): boolean {
187
- if (scope === true) return true;
188
- if (scope === false) return false;
189
- return hold.kind === undefined || !scope.except.includes(hold.kind);
190
- }
191
-
192
- /**
193
- * The lock as a control with `scope` sees it — {@link useWriteLock}'s answer, pure, for
194
- * a scope known only at call time: `useConfirm` reads the CALLER's lock when it is
195
- * called, and applies each `confirm({ commit })`'s own scope to it when it runs.
196
- *
197
- * `undefined` and `false` see no lock (a control without `commit`); `true` sees the
198
- * lock as it is; `{ except }` sees the first hold of another kind, with its reason
199
- * and kind. `holds` is passed on unfiltered.
200
- */
201
- export function writeLockFor(lock: WriteLock, scope: CommitScope | undefined): WriteLock {
202
- if (!lock.locked || scope === true) return lock;
203
- // A lock built by hand (a test's, an app's own context) may carry no holds: it is
204
- // then the one source it describes.
205
- const holds = lock.holds.length > 0 ? lock.holds : [{ kind: lock.kind, reason: lock.reason }];
206
- const first = scope === undefined ? undefined : holds.find((hold) => inScope(hold, scope));
207
- if (!first) return { ...UNLOCKED, holds: lock.holds };
208
- // The first in scope is the provider's own first: the lock as it is, same object.
209
- if (first === holds[0]) return lock;
210
- return { locked: true, reason: first.reason, kind: first.kind, holds: lock.holds };
211
- }
212
-
213
- /**
214
- * The nearest {@link WriteLockProvider}'s lock, as a control with `scope` sees it —
215
- * unlocked with no provider. Left out, the scope is `true`: every lock.
216
- *
217
- * For code that must KNOW rather than a control that opts in: a toast that says why,
218
- * a swipe plan that leaves an action out, a hand-rolled toggle that disables itself.
219
- * `useWriteLock(COMMIT_EXCEPT_BILLING)` answers "would a lapsed plan's lock refuse me?"
220
- * as a removal sees it — what keksdose's `useWriteLockKind() !== "billing"` asked.
221
- */
222
- export function useWriteLock(scope: CommitScope = true): WriteLock {
223
- return writeLockFor(useContext(WriteLockContext), scope);
224
- }
225
-
226
- /**
227
- * The `disabledReason` a control with `commit` should use: the lock's reason while
228
- * the lock refuses this scope — it wins over the control's own, since it is the answer
229
- * to the question the hover is asking — else the control's own. Internal to the kit's
230
- * commit controls.
231
- */
232
- export function useCommitReason(commit: CommitScope | undefined, own: ReactNode): ReactNode {
233
- const lock = writeLockFor(useContext(WriteLockContext), commit);
234
- return lock.locked ? lock.reason : own;
235
- }
236
-
237
- /**
238
- * 0.46 (kastlan K4): the offline lock as one source of `combineWriteLocks` —
239
- * `{ locked: offline, kind: "offline", reason: writeLock.offline }` ("Needs a
240
- * connection.", seven languages). `offline` is the app's own reading of the connection
241
- * (`!navigator.onLine`, or its better guess); the kit does not watch the network here.
242
- * List it after the demo's and billing's sources: the server refuses those first.
243
- *
244
- * <WriteLockProvider {...combineWriteLocks([demo, billing, useOfflineWriteLock(!online)])}>
245
- * <Button commit={COMMIT_EXCEPT_OFFLINE}>Save handover</Button>
246
- */
247
- export function useOfflineWriteLock(
248
- offline: boolean,
249
- labels?: LabelOverride<WriteLockLabels>,
250
- ): { locked: boolean; kind: typeof OFFLINE_LOCK; reason: string } {
251
- const words = useKitLabels("writeLock", DEFAULT_WRITE_LOCK_LABELS, labels);
252
- return { locked: offline, kind: OFFLINE_LOCK, reason: words.offline };
253
- }
package/src/currencies.ts DELETED
@@ -1,90 +0,0 @@
1
- // `@eifi1/ui-kit/currencies` — the currencies the kit's pickers offer, as plain data
2
- // (0.35, keksdose's 0.34 report).
3
- //
4
- // This module imports NOTHING: no React, no stylesheet, no other kit module. That is the
5
- // entry's whole promise, because an app's BUILD reads it in Node — keksdose's Vite plugin
6
- // builds its flag-icons subset from these country codes while Vite loads its config. Until
7
- // 0.35 that plugin parsed the `country` literals out of dist/components/currency-select.js;
8
- // 0.34 moved the list into the picker's option list and 91 of its test files failed at
9
- // load. A file inside dist/ is not something the kit promises; an entry is.
10
- // packaging-contract.test.ts pins the purity, scripts/verify-package.mjs the load in Node.
11
- //
12
- // CurrencySelect, AmountInput's currency chip and NumberInput's code detection read this
13
- // same array (components/currency-option-list re-exports it, and currency-select as it
14
- // always has), so the list the pickers show and the flags an app ships cannot drift.
15
- //
16
- // A currency that was REPLACED stays in the array, marked `retired`: the pickers stop
17
- // offering it, and whatever reads a value an app already holds — the trigger's flag and
18
- // code, `getCurrency`, the flag subset, NumberInput's code detection — keeps knowing it
19
- // (keksdose audit follow-up, 2026-11-01: the lev, after Bulgaria's euro).
20
-
21
- export interface CurrencyOption {
22
- code: string;
23
- name: string;
24
- symbol: string;
25
- /** ISO 3166-1 alpha-2 country code (lowercase) used by flag-icons. */
26
- country: string;
27
- /**
28
- * The day ("YYYY-MM-DD") the currency was replaced as its country's money — set only on
29
- * one that was. The pickers leave it out of their default list. A field that already
30
- * holds it still shows it (the trigger's flag and code, and its row in the list,
31
- * checked), and an explicit `options` list that names it still offers it: that list is
32
- * the caller's.
33
- *
34
- * Marked rather than deleted, because an app may hold amounts in it from before. Gone
35
- * from the array, `getCurrency` would answer `undefined` for a stored value, the field
36
- * would show its placeholder over a real amount, and an app's flag subset
37
- * (`CURRENCY_COUNTRIES`) would ship that value's flag as an empty box.
38
- */
39
- retired?: string;
40
- }
41
-
42
- export const CURRENCIES: CurrencyOption[] = [
43
- { code: "EUR", name: "Euro", symbol: "€", country: "eu" },
44
- { code: "USD", name: "US Dollar", symbol: "$", country: "us" },
45
- { code: "GBP", name: "British Pound", symbol: "£", country: "gb" },
46
- { code: "CHF", name: "Swiss Franc", symbol: "CHF", country: "ch" },
47
- { code: "JPY", name: "Japanese Yen", symbol: "¥", country: "jp" },
48
- { code: "CAD", name: "Canadian Dollar", symbol: "CA$", country: "ca" },
49
- { code: "AUD", name: "Australian Dollar", symbol: "A$", country: "au" },
50
- { code: "NZD", name: "New Zealand Dollar", symbol: "NZ$", country: "nz" },
51
- { code: "SEK", name: "Swedish Krona", symbol: "kr", country: "se" },
52
- { code: "NOK", name: "Norwegian Krone", symbol: "kr", country: "no" },
53
- { code: "DKK", name: "Danish Krone", symbol: "kr", country: "dk" },
54
- { code: "PLN", name: "Polish Zloty", symbol: "zł", country: "pl" },
55
- { code: "CZK", name: "Czech Koruna", symbol: "Kč", country: "cz" },
56
- { code: "HUF", name: "Hungarian Forint", symbol: "Ft", country: "hu" },
57
- { code: "RON", name: "Romanian Leu", symbol: "lei", country: "ro" },
58
- // Bulgaria adopted the euro on 2026-01-01 (keksdose audit follow-up, 2026-11-01).
59
- { code: "BGN", name: "Bulgarian Lev", symbol: "лв", country: "bg", retired: "2026-01-01" },
60
- { code: "TRY", name: "Turkish Lira", symbol: "₺", country: "tr" },
61
- { code: "RUB", name: "Russian Ruble", symbol: "₽", country: "ru" },
62
- { code: "CNY", name: "Chinese Yuan", symbol: "¥", country: "cn" },
63
- { code: "HKD", name: "Hong Kong Dollar", symbol: "HK$", country: "hk" },
64
- { code: "SGD", name: "Singapore Dollar", symbol: "S$", country: "sg" },
65
- { code: "INR", name: "Indian Rupee", symbol: "₹", country: "in" },
66
- { code: "BRL", name: "Brazilian Real", symbol: "R$", country: "br" },
67
- { code: "MXN", name: "Mexican Peso", symbol: "MX$", country: "mx" },
68
- { code: "ZAR", name: "South African Rand", symbol: "R", country: "za" },
69
- { code: "ILS", name: "Israeli Shekel", symbol: "₪", country: "il" },
70
- { code: "AED", name: "UAE Dirham", symbol: "د.إ", country: "ae" },
71
- ];
72
-
73
- /**
74
- * Each currency code → the flag the kit paints for it: the lowercase ISO 3166-1 alpha-2
75
- * code flag-icons names it by (`fi-ch`, `flags/4x3/ch.svg`). `CHF` → `"ch"`, `EUR` →
76
- * `"eu"` (flag-icons has the EU's flag under that code).
77
- *
78
- * Derived from {@link CURRENCIES}, so a currency the pickers gain is a flag here too — and
79
- * a `retired` one keeps its flag, for the values an app still holds in it. An app that
80
- * ships only the flags it renders builds its subset from these values:
81
- *
82
- * ```ts
83
- * // vite.config.ts — plain Node, no DOM
84
- * import { CURRENCY_COUNTRIES } from "@eifi1/ui-kit/currencies";
85
- * const flags = new Set(Object.values(CURRENCY_COUNTRIES));
86
- * ```
87
- */
88
- export const CURRENCY_COUNTRIES: Record<string, string> = Object.fromEntries(
89
- CURRENCIES.map((c) => [c.code, c.country]),
90
- );
package/src/data-table.ts DELETED
@@ -1,42 +0,0 @@
1
- // `@eifi1/ui-kit/data-table` — the table suite.
2
- //
3
- // A re-slicing of the main barrel, not a new API. This entry point imports
4
- // `react-router` (a peer dependency), but since 0.49 (KIT-3) a Router is needed only for
5
- // a table with `urlSync`: without it DataTable keeps its view in local state alone.
6
- export * from "./components/data-table-labels";
7
- export * from "./components/data-table-sort";
8
- export * from "./components/data-table-filters";
9
- export * from "./components/data-table-pagination";
10
- export { FilterPopover } from "./components/data-table-filter-popover";
11
- // `SortState` comes from data-table-sort above; re-exporting the module wholesale
12
- // would collide with it, which is why the main barrel names these explicitly too.
13
- export { DataTable, DEFAULT_DATA_TABLE_SORT_LABELS } from "./components/data-table";
14
- export type {
15
- DataTableSortLabels,
16
- DataTableColumn,
17
- // The barrel had these two and this entry did not (refactor audit 2026-10, MOD-5):
18
- // the types of a column's `cellProps` and `headProps`.
19
- DataTableCellProps,
20
- DataTableHeadProps,
21
- DataTableProps,
22
- ServerPagination,
23
- FilterState,
24
- MobileSwipeActions,
25
- DataTableDensity,
26
- DataTableChrome,
27
- DataTableRowAction,
28
- DataTableDesktopSwipeActions,
29
- } from "./components/data-table";
30
- // 0.48 (keksdose dev #605): a `groupBy` level (also `mobileGroupBy`'s) and the `loadMore` footer.
31
- export type { DataTableGroupBy, DataTableLoadMore } from "./components/data-table-groups";
32
- // 0.48.2 (keksdose dev #632): `virtualize`'s options.
33
- export type { DataTableVirtualize } from "./components/data-table-virtual";
34
- export * from "./components/data-table-cells";
35
- export { useTableUrlState } from "./components/use-table-state";
36
- export type {
37
- TableUrlState,
38
- TableUrlSync,
39
- TableUrlStateProps,
40
- UseTableUrlStateOptions,
41
- UseTableUrlStateReturn,
42
- } from "./components/use-table-state";