@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,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,70 +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
- export interface CurrencyOption {
17
- code: string;
18
- name: string;
19
- symbol: string;
20
- /** ISO 3166-1 alpha-2 country code (lowercase) used by flag-icons. */
21
- country: string;
22
- }
23
-
24
- export const CURRENCIES: CurrencyOption[] = [
25
- { code: "EUR", name: "Euro", symbol: "€", country: "eu" },
26
- { code: "USD", name: "US Dollar", symbol: "$", country: "us" },
27
- { code: "GBP", name: "British Pound", symbol: "£", country: "gb" },
28
- { code: "CHF", name: "Swiss Franc", symbol: "CHF", country: "ch" },
29
- { code: "JPY", name: "Japanese Yen", symbol: "¥", country: "jp" },
30
- { code: "CAD", name: "Canadian Dollar", symbol: "CA$", country: "ca" },
31
- { code: "AUD", name: "Australian Dollar", symbol: "A$", country: "au" },
32
- { code: "NZD", name: "New Zealand Dollar", symbol: "NZ$", country: "nz" },
33
- { code: "SEK", name: "Swedish Krona", symbol: "kr", country: "se" },
34
- { code: "NOK", name: "Norwegian Krone", symbol: "kr", country: "no" },
35
- { code: "DKK", name: "Danish Krone", symbol: "kr", country: "dk" },
36
- { code: "PLN", name: "Polish Zloty", symbol: "zł", country: "pl" },
37
- { code: "CZK", name: "Czech Koruna", symbol: "Kč", country: "cz" },
38
- { code: "HUF", name: "Hungarian Forint", symbol: "Ft", country: "hu" },
39
- { code: "RON", name: "Romanian Leu", symbol: "lei", country: "ro" },
40
- { code: "BGN", name: "Bulgarian Lev", symbol: "лв", country: "bg" },
41
- { code: "TRY", name: "Turkish Lira", symbol: "₺", country: "tr" },
42
- { code: "RUB", name: "Russian Ruble", symbol: "₽", country: "ru" },
43
- { code: "CNY", name: "Chinese Yuan", symbol: "¥", country: "cn" },
44
- { code: "HKD", name: "Hong Kong Dollar", symbol: "HK$", country: "hk" },
45
- { code: "SGD", name: "Singapore Dollar", symbol: "S$", country: "sg" },
46
- { code: "INR", name: "Indian Rupee", symbol: "₹", country: "in" },
47
- { code: "BRL", name: "Brazilian Real", symbol: "R$", country: "br" },
48
- { code: "MXN", name: "Mexican Peso", symbol: "MX$", country: "mx" },
49
- { code: "ZAR", name: "South African Rand", symbol: "R", country: "za" },
50
- { code: "ILS", name: "Israeli Shekel", symbol: "₪", country: "il" },
51
- { code: "AED", name: "UAE Dirham", symbol: "د.إ", country: "ae" },
52
- ];
53
-
54
- /**
55
- * Each currency code → the flag the kit paints for it: the lowercase ISO 3166-1 alpha-2
56
- * code flag-icons names it by (`fi-ch`, `flags/4x3/ch.svg`). `CHF` → `"ch"`, `EUR` →
57
- * `"eu"` (flag-icons has the EU's flag under that code).
58
- *
59
- * Derived from {@link CURRENCIES}, so a currency the pickers gain is a flag here too. An
60
- * app that ships only the flags it renders builds its subset from these values:
61
- *
62
- * ```ts
63
- * // vite.config.ts — plain Node, no DOM
64
- * import { CURRENCY_COUNTRIES } from "@eifi1/ui-kit/currencies";
65
- * const flags = new Set(Object.values(CURRENCY_COUNTRIES));
66
- * ```
67
- */
68
- export const CURRENCY_COUNTRIES: Record<string, string> = Object.fromEntries(
69
- CURRENCIES.map((c) => [c.code, c.country]),
70
- );
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";