@eifi1/ui-kit 0.51.3 → 0.51.5

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 (780) hide show
  1. package/README.md +6 -6
  2. package/dist/account/account-settings-labels.js.map +1 -1
  3. package/dist/account/account-settings.js +11 -9
  4. package/dist/account/account-settings.js.map +1 -1
  5. package/dist/account/delete-account-setting.js +56 -65
  6. package/dist/account/delete-account-setting.js.map +1 -1
  7. package/dist/account/email-change-setting-labels.js.map +1 -1
  8. package/dist/account/email-change-setting.js.map +1 -1
  9. package/dist/account/passkeys-setting.js.map +1 -1
  10. package/dist/account/sessions-setting.js.map +1 -1
  11. package/dist/admin/admin-action-confirm.js +1 -3
  12. package/dist/admin/admin-action-confirm.js.map +1 -1
  13. package/dist/admin/admin-action-log.js.map +1 -1
  14. package/dist/admin/admin-area-labels.js +4 -1
  15. package/dist/admin/admin-area-labels.js.map +1 -1
  16. package/dist/admin/admin-overview.js +19 -11
  17. package/dist/admin/admin-overview.js.map +1 -1
  18. package/dist/admin/admin-sections.js.map +1 -1
  19. package/dist/admin/admin-tool-links.d.ts +1 -1
  20. package/dist/admin/admin-tool-links.js +7 -1
  21. package/dist/admin/admin-tool-links.js.map +1 -1
  22. package/dist/admin/invitations-panel.js +2 -13
  23. package/dist/admin/invitations-panel.js.map +1 -1
  24. package/dist/admin/mail-test-card.js.map +1 -1
  25. package/dist/admin/reviewer-scope-editor.js +4 -11
  26. package/dist/admin/reviewer-scope-editor.js.map +1 -1
  27. package/dist/admin/role-select.js.map +1 -1
  28. package/dist/admin/user-roster.js +1 -9
  29. package/dist/admin/user-roster.js.map +1 -1
  30. package/dist/auth/accept-invitation.js.map +1 -1
  31. package/dist/auth/auth-errors.js.map +1 -1
  32. package/dist/auth/forgot-password-form.js +23 -31
  33. package/dist/auth/forgot-password-form.js.map +1 -1
  34. package/dist/auth/register-form.js.map +1 -1
  35. package/dist/auth/reset-password-form.js.map +1 -1
  36. package/dist/auth/sign-in-form.js +13 -5
  37. package/dist/auth/sign-in-form.js.map +1 -1
  38. package/dist/auth/verify-email.js +1 -8
  39. package/dist/auth/verify-email.js.map +1 -1
  40. package/dist/billing/billing-banner.js.map +1 -1
  41. package/dist/billing/billing-labels.js.map +1 -1
  42. package/dist/billing/checkout-processing.js.map +1 -1
  43. package/dist/billing/plan-card.js +91 -85
  44. package/dist/billing/plan-card.js.map +1 -1
  45. package/dist/billing/plan-limit-toast.js.map +1 -1
  46. package/dist/billing/plan-limit.js.map +1 -1
  47. package/dist/billing/plan-price.js.map +1 -1
  48. package/dist/billing/plan-switch.js.map +1 -1
  49. package/dist/billing/subscription-actions.js.map +1 -1
  50. package/dist/bin/eifi1-pay-page.mjs +6 -1
  51. package/dist/components/account-chips.js.map +1 -1
  52. package/dist/components/alert-banner.js +1 -5
  53. package/dist/components/alert-banner.js.map +1 -1
  54. package/dist/components/amount-input.js +29 -12
  55. package/dist/components/amount-input.js.map +1 -1
  56. package/dist/components/authed-image.js.map +1 -1
  57. package/dist/components/autocomplete.js.map +1 -1
  58. package/dist/components/bulk-action-bar.js +1 -4
  59. package/dist/components/bulk-action-bar.js.map +1 -1
  60. package/dist/components/button-group.js.map +1 -1
  61. package/dist/components/button-look.js.map +1 -1
  62. package/dist/components/button.js +1 -7
  63. package/dist/components/button.js.map +1 -1
  64. package/dist/components/calculator.js +5 -5
  65. package/dist/components/calculator.js.map +1 -1
  66. package/dist/components/calendar-heatmap.js +4 -10
  67. package/dist/components/calendar-heatmap.js.map +1 -1
  68. package/dist/components/card.js +1 -8
  69. package/dist/components/card.js.map +1 -1
  70. package/dist/components/chart-zoom-core.js +3 -17
  71. package/dist/components/chart-zoom-core.js.map +1 -1
  72. package/dist/components/chart.d.ts +1 -1
  73. package/dist/components/chart.js +4 -22
  74. package/dist/components/chart.js.map +1 -1
  75. package/dist/components/checkbox-group.js +1 -4
  76. package/dist/components/checkbox-group.js.map +1 -1
  77. package/dist/components/chip-input.js +4 -1
  78. package/dist/components/chip-input.js.map +1 -1
  79. package/dist/components/chip.js +10 -5
  80. package/dist/components/chip.js.map +1 -1
  81. package/dist/components/choice-card.js +58 -74
  82. package/dist/components/choice-card.js.map +1 -1
  83. package/dist/components/column-mapper-labels.js.map +1 -1
  84. package/dist/components/column-mapper.js +167 -227
  85. package/dist/components/column-mapper.js.map +1 -1
  86. package/dist/components/combobox-core.js +5 -9
  87. package/dist/components/combobox-core.js.map +1 -1
  88. package/dist/components/combobox.js +1 -4
  89. package/dist/components/combobox.js.map +1 -1
  90. package/dist/components/confirm-dialog.js.map +1 -1
  91. package/dist/components/copy-button.js.map +1 -1
  92. package/dist/components/country-select.d.ts +5 -4
  93. package/dist/components/country-select.js +3 -19
  94. package/dist/components/country-select.js.map +1 -1
  95. package/dist/components/currency-option-list.js +13 -11
  96. package/dist/components/currency-option-list.js.map +1 -1
  97. package/dist/components/currency-select.js +1 -6
  98. package/dist/components/currency-select.js.map +1 -1
  99. package/dist/components/danger-confirm.js.map +1 -1
  100. package/dist/components/data-table-cells.js.map +1 -1
  101. package/dist/components/data-table-column-settings.js.map +1 -1
  102. package/dist/components/data-table-filter-popover.js +2 -18
  103. package/dist/components/data-table-filter-popover.js.map +1 -1
  104. package/dist/components/data-table-filters.js.map +1 -1
  105. package/dist/components/data-table-fit.js +7 -5
  106. package/dist/components/data-table-fit.js.map +1 -1
  107. package/dist/components/data-table-groups.js +3 -1
  108. package/dist/components/data-table-groups.js.map +1 -1
  109. package/dist/components/data-table-head.js +49 -57
  110. package/dist/components/data-table-head.js.map +1 -1
  111. package/dist/components/data-table-mobile.js +31 -44
  112. package/dist/components/data-table-mobile.js.map +1 -1
  113. package/dist/components/data-table-pagination.js.map +1 -1
  114. package/dist/components/data-table-row-actions.js +19 -16
  115. package/dist/components/data-table-row-actions.js.map +1 -1
  116. package/dist/components/data-table-row.js.map +1 -1
  117. package/dist/components/data-table-shared.js.map +1 -1
  118. package/dist/components/data-table-sort.js.map +1 -1
  119. package/dist/components/data-table-virtual.js +4 -1
  120. package/dist/components/data-table-virtual.js.map +1 -1
  121. package/dist/components/data-table.d.ts +8 -0
  122. package/dist/components/data-table.js +30 -39
  123. package/dist/components/data-table.js.map +1 -1
  124. package/dist/components/date-picker.js +1 -6
  125. package/dist/components/date-picker.js.map +1 -1
  126. package/dist/components/date-range-picker.js.map +1 -1
  127. package/dist/components/description-list.js +10 -10
  128. package/dist/components/description-list.js.map +1 -1
  129. package/dist/components/dialog-frame.js +9 -2
  130. package/dist/components/dialog-frame.js.map +1 -1
  131. package/dist/components/disclosure.js +17 -27
  132. package/dist/components/disclosure.js.map +1 -1
  133. package/dist/components/dropdown.js +25 -35
  134. package/dist/components/dropdown.js.map +1 -1
  135. package/dist/components/empty-state.js.map +1 -1
  136. package/dist/components/entity-combobox.js.map +1 -1
  137. package/dist/components/error-boundary.js.map +1 -1
  138. package/dist/components/field-base.js +5 -5
  139. package/dist/components/field-base.js.map +1 -1
  140. package/dist/components/field-parts.d.ts +1 -1
  141. package/dist/components/field-parts.js +10 -14
  142. package/dist/components/field-parts.js.map +1 -1
  143. package/dist/components/field-sync.js +8 -10
  144. package/dist/components/field-sync.js.map +1 -1
  145. package/dist/components/file-button.js.map +1 -1
  146. package/dist/components/file-dropzone.js.map +1 -1
  147. package/dist/components/floating-panel.js +4 -1
  148. package/dist/components/floating-panel.js.map +1 -1
  149. package/dist/components/focus-ring.js.map +1 -1
  150. package/dist/components/form-actions.js.map +1 -1
  151. package/dist/components/grouped-picker.js +11 -12
  152. package/dist/components/grouped-picker.js.map +1 -1
  153. package/dist/components/hover-menu.js +1 -4
  154. package/dist/components/hover-menu.js.map +1 -1
  155. package/dist/components/iban-input-labels.js.map +1 -1
  156. package/dist/components/icon-button.js +4 -1
  157. package/dist/components/icon-button.js.map +1 -1
  158. package/dist/components/icon-picker.js +6 -10
  159. package/dist/components/icon-picker.js.map +1 -1
  160. package/dist/components/image-grid.js +41 -50
  161. package/dist/components/image-grid.js.map +1 -1
  162. package/dist/components/inline-edit-field.js.map +1 -1
  163. package/dist/components/inline-entity-combobox.js +6 -12
  164. package/dist/components/inline-entity-combobox.js.map +1 -1
  165. package/dist/components/input.js +14 -2
  166. package/dist/components/input.js.map +1 -1
  167. package/dist/components/jump-calendar.js +1 -7
  168. package/dist/components/jump-calendar.js.map +1 -1
  169. package/dist/components/legal-labels.js +8 -2
  170. package/dist/components/legal-labels.js.map +1 -1
  171. package/dist/components/legal-page.d.ts +18 -1
  172. package/dist/components/legal-page.js +27 -2
  173. package/dist/components/legal-page.js.map +1 -1
  174. package/dist/components/legal.d.ts +40 -5
  175. package/dist/components/legal.js +41 -5
  176. package/dist/components/legal.js.map +1 -1
  177. package/dist/components/lightbox.js.map +1 -1
  178. package/dist/components/line-items.js +26 -36
  179. package/dist/components/line-items.js.map +1 -1
  180. package/dist/components/list-labels.js +3 -1
  181. package/dist/components/list-labels.js.map +1 -1
  182. package/dist/components/list.d.ts +18 -1
  183. package/dist/components/list.js +54 -13
  184. package/dist/components/list.js.map +1 -1
  185. package/dist/components/measured-grid.js +29 -53
  186. package/dist/components/measured-grid.js.map +1 -1
  187. package/dist/components/menu-item.js.map +1 -1
  188. package/dist/components/mini-calendar.js +13 -31
  189. package/dist/components/mini-calendar.js.map +1 -1
  190. package/dist/components/money-field.js.map +1 -1
  191. package/dist/components/month-picker.js +10 -21
  192. package/dist/components/month-picker.js.map +1 -1
  193. package/dist/components/multi-entity-combobox.js +3 -16
  194. package/dist/components/multi-entity-combobox.js.map +1 -1
  195. package/dist/components/multi-select.js.map +1 -1
  196. package/dist/components/nav-pills.js +10 -1
  197. package/dist/components/nav-pills.js.map +1 -1
  198. package/dist/components/number-field.js.map +1 -1
  199. package/dist/components/number-input.js +1 -7
  200. package/dist/components/number-input.js.map +1 -1
  201. package/dist/components/numpad-sheet.js +1 -4
  202. package/dist/components/numpad-sheet.js.map +1 -1
  203. package/dist/components/one-time-code-input.js +1 -7
  204. package/dist/components/one-time-code-input.js.map +1 -1
  205. package/dist/components/page-contents.js +13 -22
  206. package/dist/components/page-contents.js.map +1 -1
  207. package/dist/components/page-header.js +1 -11
  208. package/dist/components/page-header.js.map +1 -1
  209. package/dist/components/password-strength-labels.js.map +1 -1
  210. package/dist/components/password-strength.js +2 -8
  211. package/dist/components/password-strength.js.map +1 -1
  212. package/dist/components/phone-input.js +42 -57
  213. package/dist/components/phone-input.js.map +1 -1
  214. package/dist/components/picker-sheet.js.map +1 -1
  215. package/dist/components/pie-chart.js +1 -8
  216. package/dist/components/pie-chart.js.map +1 -1
  217. package/dist/components/popover.js.map +1 -1
  218. package/dist/components/progress-bar.js +16 -9
  219. package/dist/components/progress-bar.js.map +1 -1
  220. package/dist/components/qr-code.js +1 -8
  221. package/dist/components/qr-code.js.map +1 -1
  222. package/dist/components/row-actions.js +5 -1
  223. package/dist/components/row-actions.js.map +1 -1
  224. package/dist/components/search-field.js.map +1 -1
  225. package/dist/components/select.js +28 -38
  226. package/dist/components/select.js.map +1 -1
  227. package/dist/components/separator.js +1 -5
  228. package/dist/components/separator.js.map +1 -1
  229. package/dist/components/series-chart-axes.js +4 -1
  230. package/dist/components/series-chart-axes.js.map +1 -1
  231. package/dist/components/series-chart-budget.js.map +1 -1
  232. package/dist/components/series-chart-ticks.js.map +1 -1
  233. package/dist/components/series-chart.js +29 -45
  234. package/dist/components/series-chart.js.map +1 -1
  235. package/dist/components/settings-fields.js +21 -17
  236. package/dist/components/settings-fields.js.map +1 -1
  237. package/dist/components/share-card.js +4 -9
  238. package/dist/components/share-card.js.map +1 -1
  239. package/dist/components/sign-chip.js.map +1 -1
  240. package/dist/components/signature-pad.js +4 -13
  241. package/dist/components/signature-pad.js.map +1 -1
  242. package/dist/components/signed-amount.js +12 -5
  243. package/dist/components/signed-amount.js.map +1 -1
  244. package/dist/components/skeleton.js +2 -17
  245. package/dist/components/skeleton.js.map +1 -1
  246. package/dist/components/slider.js +13 -36
  247. package/dist/components/slider.js.map +1 -1
  248. package/dist/components/sparkline.js.map +1 -1
  249. package/dist/components/stat-tile.js +14 -10
  250. package/dist/components/stat-tile.js.map +1 -1
  251. package/dist/components/swatch-picker.js +14 -4
  252. package/dist/components/swatch-picker.js.map +1 -1
  253. package/dist/components/swipeable-row.d.ts +1 -1
  254. package/dist/components/swipeable-row.js +1 -8
  255. package/dist/components/swipeable-row.js.map +1 -1
  256. package/dist/components/table-skeleton.js +4 -1
  257. package/dist/components/table-skeleton.js.map +1 -1
  258. package/dist/components/table.js +12 -9
  259. package/dist/components/table.js.map +1 -1
  260. package/dist/components/tabs.js +5 -24
  261. package/dist/components/tabs.js.map +1 -1
  262. package/dist/components/text-link.js.map +1 -1
  263. package/dist/components/text.js.map +1 -1
  264. package/dist/components/tile-radio.js +1 -7
  265. package/dist/components/tile-radio.js.map +1 -1
  266. package/dist/components/time-input.js.map +1 -1
  267. package/dist/components/toast.js.map +1 -1
  268. package/dist/components/toggle-group.js +6 -1
  269. package/dist/components/toggle-group.js.map +1 -1
  270. package/dist/components/toggle-legend.js +2 -11
  271. package/dist/components/toggle-legend.js.map +1 -1
  272. package/dist/components/tooltip.js +2 -22
  273. package/dist/components/tooltip.js.map +1 -1
  274. package/dist/components/translation-review-editor.js +1 -4
  275. package/dist/components/translation-review-editor.js.map +1 -1
  276. package/dist/components/translation-review-parts.d.ts +1 -1
  277. package/dist/components/translation-review-parts.js +7 -1
  278. package/dist/components/translation-review-parts.js.map +1 -1
  279. package/dist/components/translation-review.js +18 -7
  280. package/dist/components/translation-review.js.map +1 -1
  281. package/dist/components/tree-view.js +14 -10
  282. package/dist/components/tree-view.js.map +1 -1
  283. package/dist/components/treemap.js +1 -13
  284. package/dist/components/treemap.js.map +1 -1
  285. package/dist/components/trigger-aria.js.map +1 -1
  286. package/dist/components/use-table-state.js +14 -11
  287. package/dist/components/use-table-state.js.map +1 -1
  288. package/dist/components/user-avatar.js +3 -26
  289. package/dist/components/user-avatar.js.map +1 -1
  290. package/dist/demo/demo-start.js +8 -4
  291. package/dist/demo/demo-start.js.map +1 -1
  292. package/dist/eslint/index.js +1 -1
  293. package/dist/feedback/feedback-attachment-labels.js.map +1 -1
  294. package/dist/feedback/feedback-attachment.js +1 -8
  295. package/dist/feedback/feedback-attachment.js.map +1 -1
  296. package/dist/feedback/feedback-capture.d.ts +1 -1
  297. package/dist/feedback/feedback-capture.js +3 -1
  298. package/dist/feedback/feedback-capture.js.map +1 -1
  299. package/dist/feedback/feedback-comment-thread.js +27 -13
  300. package/dist/feedback/feedback-comment-thread.js.map +1 -1
  301. package/dist/feedback/feedback-context.js +1 -4
  302. package/dist/feedback/feedback-context.js.map +1 -1
  303. package/dist/feedback/feedback-dialog.js.map +1 -1
  304. package/dist/feedback/feedback-inbox.js.map +1 -1
  305. package/dist/feedback/feedback-public-list.js +7 -1
  306. package/dist/feedback/feedback-public-list.js.map +1 -1
  307. package/dist/feedback/feedback-record.js +1 -5
  308. package/dist/feedback/feedback-record.js.map +1 -1
  309. package/dist/feedback/feedback-replies.js +25 -10
  310. package/dist/feedback/feedback-replies.js.map +1 -1
  311. package/dist/feedback/feedback-row-detail.js.map +1 -1
  312. package/dist/feedback/feedback-status-undo.js.map +1 -1
  313. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  314. package/dist/feedback/feedback-table.d.ts +3 -1
  315. package/dist/feedback/feedback-table.js +22 -5
  316. package/dist/feedback/feedback-table.js.map +1 -1
  317. package/dist/feedback/feedback-thread.js +2 -13
  318. package/dist/feedback/feedback-thread.js.map +1 -1
  319. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  320. package/dist/feedback/feedback-vote-button.js.map +1 -1
  321. package/dist/hooks/use-anchored-rect.js.map +1 -1
  322. package/dist/hooks/use-document-title.js.map +1 -1
  323. package/dist/hooks/use-file-drop.js.map +1 -1
  324. package/dist/hooks/use-file-picker-labels.js.map +1 -1
  325. package/dist/hooks/use-file-picker.js.map +1 -1
  326. package/dist/hooks/use-focus-trap.js.map +1 -1
  327. package/dist/hooks/use-overlay-history.js +10 -5
  328. package/dist/hooks/use-overlay-history.js.map +1 -1
  329. package/dist/hooks/use-row-swipe.d.ts +1 -1
  330. package/dist/hooks/use-row-swipe.js +1 -6
  331. package/dist/hooks/use-row-swipe.js.map +1 -1
  332. package/dist/i18n/defaults.js +1 -4
  333. package/dist/i18n/defaults.js.map +1 -1
  334. package/dist/i18n/german.js +15 -4
  335. package/dist/i18n/german.js.map +1 -1
  336. package/dist/i18n/kit-labels.js +2 -8
  337. package/dist/i18n/kit-labels.js.map +1 -1
  338. package/dist/i18n/languages.js.map +1 -1
  339. package/dist/i18n/locales/en.js +19 -4
  340. package/dist/i18n/locales/en.js.map +2 -2
  341. package/dist/i18n/locales/es.js +15 -4
  342. package/dist/i18n/locales/es.js.map +1 -1
  343. package/dist/i18n/locales/fr.js +15 -4
  344. package/dist/i18n/locales/fr.js.map +1 -1
  345. package/dist/i18n/locales/hu.js +15 -4
  346. package/dist/i18n/locales/hu.js.map +1 -1
  347. package/dist/i18n/locales/it.js +15 -4
  348. package/dist/i18n/locales/it.js.map +1 -1
  349. package/dist/i18n/locales/zh.js +11 -3
  350. package/dist/i18n/locales/zh.js.map +1 -1
  351. package/dist/i18n/plurals.js.map +1 -1
  352. package/dist/i18n/review.js +15 -7
  353. package/dist/i18n/review.js.map +1 -1
  354. package/dist/i18n/shared-labels.js.map +1 -1
  355. package/dist/index.d.ts +17 -17
  356. package/dist/index.js +40 -23
  357. package/dist/index.js.map +1 -1
  358. package/dist/landing/access.js +1 -4
  359. package/dist/landing/access.js.map +1 -1
  360. package/dist/landing/landing-sections.js +35 -38
  361. package/dist/landing/landing-sections.js.map +1 -1
  362. package/dist/landing/page-seo.js.map +1 -1
  363. package/dist/lib/calc.js.map +1 -1
  364. package/dist/lib/clipboard-minus.js.map +1 -1
  365. package/dist/lib/dates.js.map +1 -1
  366. package/dist/lib/decimal-marks.js.map +1 -1
  367. package/dist/lib/device-settings.js +2 -1
  368. package/dist/lib/device-settings.js.map +1 -1
  369. package/dist/lib/direction.js.map +1 -1
  370. package/dist/lib/iban.js.map +1 -1
  371. package/dist/lib/logger.js +1 -5
  372. package/dist/lib/logger.js.map +1 -1
  373. package/dist/lib/person-name.js.map +1 -1
  374. package/dist/lib/phone.js.map +1 -1
  375. package/dist/lib/qr-encode.js +344 -8
  376. package/dist/lib/qr-encode.js.map +1 -1
  377. package/dist/lib/session-refresh.js.map +1 -1
  378. package/dist/lib/table-text.js +15 -3
  379. package/dist/lib/table-text.js.map +1 -1
  380. package/dist/lib/text-match.d.ts +20 -0
  381. package/dist/lib/text-match.js +11 -1
  382. package/dist/lib/text-match.js.map +1 -1
  383. package/dist/lib/translation-review.js.map +1 -1
  384. package/dist/notifications/notification-inbox.js +63 -44
  385. package/dist/notifications/notification-inbox.js.map +1 -1
  386. package/dist/notifications/notification-parts.js.map +1 -1
  387. package/dist/notifications/notification-types-setting.js.map +1 -1
  388. package/dist/notifications/notifications-labels.js.map +1 -1
  389. package/dist/notifications/push-device-setting.js +6 -1
  390. package/dist/notifications/push-device-setting.js.map +1 -1
  391. package/dist/notifications/push-devices-setting.js.map +1 -1
  392. package/dist/notifications/push-worker.js.map +1 -1
  393. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  394. package/dist/notifications/use-push-device.js +4 -1
  395. package/dist/notifications/use-push-device.js.map +1 -1
  396. package/dist/offline/pwa-update-prompt.d.ts +1 -1
  397. package/dist/offline/pwa-update-prompt.js +7 -1
  398. package/dist/offline/pwa-update-prompt.js.map +1 -1
  399. package/dist/offline/query-persistence.js.map +1 -1
  400. package/dist/offline.d.ts +1 -1
  401. package/dist/offline.js +6 -1
  402. package/dist/offline.js.map +1 -1
  403. package/dist/pay/pay.css +8 -1
  404. package/dist/rhf/fields.d.ts +1 -2
  405. package/dist/rhf/fields.js +1 -10
  406. package/dist/rhf/fields.js.map +1 -1
  407. package/dist/rhf/form-core.js +1 -4
  408. package/dist/rhf/form-core.js.map +1 -1
  409. package/dist/rhf/line-items.js.map +1 -1
  410. package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
  411. package/dist/search/command-palette.js +71 -62
  412. package/dist/search/command-palette.js.map +1 -1
  413. package/dist/search/global-search.js +34 -5
  414. package/dist/search/global-search.js.map +1 -1
  415. package/dist/search/search-index.js.map +1 -1
  416. package/dist/settings/device-reset-setting.js +1 -6
  417. package/dist/settings/device-reset-setting.js.map +1 -1
  418. package/dist/settings/settings-heading.js.map +1 -1
  419. package/dist/settings/settings-layout.js +9 -20
  420. package/dist/settings/settings-layout.js.map +1 -1
  421. package/dist/settings/use-settings-focus.d.ts +7 -0
  422. package/dist/settings/use-settings-focus.js +2 -0
  423. package/dist/settings/use-settings-focus.js.map +1 -1
  424. package/dist/settings/use-settings-route.js.map +1 -1
  425. package/dist/shell/app-shell.js +62 -31
  426. package/dist/shell/app-shell.js.map +1 -1
  427. package/dist/shell/auth-layout.js +1 -10
  428. package/dist/shell/auth-layout.js.map +1 -1
  429. package/dist/shell/dev-menu.d.ts +5 -0
  430. package/dist/shell/dev-menu.js +14 -7
  431. package/dist/shell/dev-menu.js.map +1 -1
  432. package/dist/shell/option-switcher-menu.js.map +1 -1
  433. package/dist/shell/sync-status-indicator.js +7 -6
  434. package/dist/shell/sync-status-indicator.js.map +1 -1
  435. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  436. package/dist/shell/topbar-action-menu.d.ts +14 -1
  437. package/dist/shell/topbar-action-menu.js +85 -34
  438. package/dist/shell/topbar-action-menu.js.map +1 -1
  439. package/dist/shell/topbar-controls.js +1 -10
  440. package/dist/shell/topbar-controls.js.map +1 -1
  441. package/dist/shell/tour-menu.js +9 -1
  442. package/dist/shell/tour-menu.js.map +1 -1
  443. package/dist/shell.d.ts +1 -1
  444. package/dist/shell.js +2 -1
  445. package/dist/shell.js.map +1 -1
  446. package/dist/sync/db.js.map +1 -1
  447. package/dist/sync/engine.js +24 -6
  448. package/dist/sync/engine.js.map +1 -1
  449. package/dist/sync.d.ts +2 -2
  450. package/dist/sync.js +7 -1
  451. package/dist/sync.js.map +1 -1
  452. package/dist/testing/css-variables.js.map +1 -1
  453. package/dist/testing/index.d.ts +1 -1
  454. package/dist/testing/index.js +1 -3
  455. package/dist/testing/index.js.map +1 -1
  456. package/dist/testing/react.js.map +1 -1
  457. package/dist/testing/viewport.js +7 -4
  458. package/dist/testing/viewport.js.map +1 -1
  459. package/dist/theme/contrast-tokens.js +13 -2
  460. package/dist/theme/contrast-tokens.js.map +1 -1
  461. package/dist/theme/palette-derive.d.ts +1 -1
  462. package/dist/theme/palette-derive.js +18 -29
  463. package/dist/theme/palette-derive.js.map +1 -1
  464. package/dist/theme/palette-presets.js.map +1 -1
  465. package/dist/theme/palette-store.js.map +1 -1
  466. package/dist/theme/text-size.js.map +1 -1
  467. package/dist/theme/theme-store.js +1 -3
  468. package/dist/theme/theme-store.js.map +1 -1
  469. package/dist/tour/tour-catalogue.js.map +1 -1
  470. package/dist/tour/tour-dock.js +5 -1
  471. package/dist/tour/tour-dock.js.map +1 -1
  472. package/dist/tour/tour-engine.js +1 -4
  473. package/dist/tour/tour-engine.js.map +1 -1
  474. package/dist/tour/tour.js +21 -12
  475. package/dist/tour/tour.js.map +1 -1
  476. package/dist/tour/use-tour-progress.js.map +1 -1
  477. package/dist/tour/use-tour-url-sync.js.map +1 -1
  478. package/dist/wizard/stepper-nav.js +3 -24
  479. package/dist/wizard/stepper-nav.js.map +1 -1
  480. package/dist/wizard/types.js.map +1 -1
  481. package/dist/wizard/use-wizard.js +24 -28
  482. package/dist/wizard/use-wizard.js.map +1 -1
  483. package/dist/wizard/validation.js.map +1 -1
  484. package/dist/wizard/wizard-context.js.map +1 -1
  485. package/dist/wizard/wizard-step.d.ts +1 -1
  486. package/dist/wizard/wizard-step.js +1 -8
  487. package/dist/wizard/wizard-step.js.map +1 -1
  488. package/dist/wizard/wizard-summary.js.map +1 -1
  489. package/package.json +5 -2
  490. package/src/account/account-settings-labels.ts +1 -2
  491. package/src/account/account-settings.tsx +11 -17
  492. package/src/account/delete-account-setting.tsx +1 -6
  493. package/src/account/email-change-setting-labels.ts +1 -2
  494. package/src/account/email-change-setting.tsx +3 -1
  495. package/src/account/passkeys-setting.tsx +1 -3
  496. package/src/account/sessions-setting.tsx +4 -2
  497. package/src/admin/admin-action-confirm.tsx +4 -7
  498. package/src/admin/admin-action-log.tsx +29 -29
  499. package/src/admin/admin-area-labels.ts +4 -1
  500. package/src/admin/admin-overview.tsx +8 -2
  501. package/src/admin/admin-sections.tsx +3 -1
  502. package/src/admin/admin-tool-links.tsx +7 -1
  503. package/src/admin/invitations-panel.tsx +5 -11
  504. package/src/admin/mail-test-card.tsx +1 -2
  505. package/src/admin/reviewer-scope-editor.tsx +4 -9
  506. package/src/admin/role-select.tsx +4 -2
  507. package/src/admin/user-roster.tsx +2 -11
  508. package/src/auth/accept-invitation.tsx +1 -7
  509. package/src/auth/auth-errors.ts +1 -6
  510. package/src/auth/forgot-password-form.tsx +2 -7
  511. package/src/auth/register-form.tsx +7 -8
  512. package/src/auth/reset-password-form.tsx +2 -5
  513. package/src/auth/sign-in-form.tsx +15 -14
  514. package/src/auth/verify-email.tsx +2 -7
  515. package/src/billing/billing-banner.tsx +3 -7
  516. package/src/billing/billing-labels.ts +6 -4
  517. package/src/billing/checkout-processing.ts +0 -1
  518. package/src/billing/plan-card.tsx +9 -8
  519. package/src/billing/plan-limit-toast.tsx +1 -2
  520. package/src/billing/plan-limit.ts +1 -2
  521. package/src/billing/plan-price.ts +1 -4
  522. package/src/billing/plan-switch.tsx +1 -2
  523. package/src/billing/subscription-actions.tsx +5 -2
  524. package/src/components/account-chips.tsx +1 -7
  525. package/src/components/alert-banner.tsx +2 -8
  526. package/src/components/amount-input.tsx +206 -178
  527. package/src/components/authed-image.tsx +7 -4
  528. package/src/components/autocomplete.tsx +7 -9
  529. package/src/components/bulk-action-bar.tsx +2 -7
  530. package/src/components/button-group.tsx +1 -2
  531. package/src/components/button-look.ts +6 -17
  532. package/src/components/button.tsx +1 -4
  533. package/src/components/calculator.tsx +6 -9
  534. package/src/components/calendar-heatmap.tsx +5 -10
  535. package/src/components/card.tsx +9 -13
  536. package/src/components/chart-zoom-core.tsx +6 -33
  537. package/src/components/chart.tsx +8 -31
  538. package/src/components/checkbox-group.tsx +1 -4
  539. package/src/components/chip-input.tsx +6 -6
  540. package/src/components/chip.tsx +14 -26
  541. package/src/components/choice-card.tsx +4 -18
  542. package/src/components/column-mapper-labels.ts +3 -10
  543. package/src/components/column-mapper.tsx +33 -122
  544. package/src/components/combobox-core.tsx +17 -47
  545. package/src/components/combobox.tsx +2 -6
  546. package/src/components/confirm-dialog.tsx +1 -3
  547. package/src/components/copy-button.tsx +2 -4
  548. package/src/components/country-select.tsx +9 -21
  549. package/src/components/currency-option-list.tsx +16 -18
  550. package/src/components/currency-select.tsx +2 -7
  551. package/src/components/danger-confirm.tsx +8 -9
  552. package/src/components/data-table-cells.tsx +1 -2
  553. package/src/components/data-table-column-settings.tsx +1 -3
  554. package/src/components/data-table-filter-popover.tsx +5 -19
  555. package/src/components/data-table-filters.ts +1 -6
  556. package/src/components/data-table-fit.ts +7 -7
  557. package/src/components/data-table-groups.tsx +3 -1
  558. package/src/components/data-table-head.tsx +32 -46
  559. package/src/components/data-table-mobile.tsx +99 -108
  560. package/src/components/data-table-pagination.tsx +2 -6
  561. package/src/components/data-table-row-actions.tsx +25 -24
  562. package/src/components/data-table-row.tsx +16 -17
  563. package/src/components/data-table-shared.tsx +10 -16
  564. package/src/components/data-table-sort.ts +1 -2
  565. package/src/components/data-table-virtual.ts +9 -4
  566. package/src/components/data-table.tsx +497 -501
  567. package/src/components/date-picker.tsx +1 -7
  568. package/src/components/date-range-picker.tsx +3 -13
  569. package/src/components/description-list.tsx +7 -13
  570. package/src/components/dialog-frame.tsx +12 -3
  571. package/src/components/disclosure.tsx +8 -12
  572. package/src/components/dropdown.tsx +3 -11
  573. package/src/components/empty-state.tsx +1 -3
  574. package/src/components/entity-combobox.tsx +2 -6
  575. package/src/components/error-boundary.tsx +7 -7
  576. package/src/components/field-base.tsx +8 -14
  577. package/src/components/field-parts.tsx +12 -23
  578. package/src/components/field-sync.tsx +7 -11
  579. package/src/components/file-button.tsx +7 -3
  580. package/src/components/file-dropzone.tsx +7 -12
  581. package/src/components/floating-panel.tsx +44 -51
  582. package/src/components/focus-ring.ts +1 -2
  583. package/src/components/form-actions.tsx +1 -4
  584. package/src/components/grouped-picker.tsx +21 -16
  585. package/src/components/hover-menu.tsx +1 -4
  586. package/src/components/iban-input-labels.ts +1 -2
  587. package/src/components/icon-button.tsx +46 -48
  588. package/src/components/icon-picker.tsx +9 -20
  589. package/src/components/image-grid.tsx +1 -6
  590. package/src/components/inline-edit-field.tsx +1 -5
  591. package/src/components/inline-entity-combobox.tsx +11 -25
  592. package/src/components/input.tsx +14 -2
  593. package/src/components/jump-calendar.tsx +2 -6
  594. package/src/components/legal-labels.ts +8 -3
  595. package/src/components/legal-page.tsx +56 -6
  596. package/src/components/legal.tsx +83 -10
  597. package/src/components/lightbox.tsx +1 -3
  598. package/src/components/line-items.tsx +7 -15
  599. package/src/components/list-labels.ts +2 -0
  600. package/src/components/list.tsx +81 -27
  601. package/src/components/measured-grid.tsx +8 -30
  602. package/src/components/menu-item.tsx +1 -3
  603. package/src/components/mini-calendar.tsx +129 -159
  604. package/src/components/money-field.tsx +4 -2
  605. package/src/components/month-picker.tsx +14 -21
  606. package/src/components/multi-entity-combobox.tsx +6 -26
  607. package/src/components/multi-select.tsx +5 -9
  608. package/src/components/nav-pills.tsx +10 -2
  609. package/src/components/number-field.tsx +18 -15
  610. package/src/components/number-input.tsx +3 -19
  611. package/src/components/numpad-sheet.tsx +9 -13
  612. package/src/components/one-time-code-input.tsx +6 -11
  613. package/src/components/page-contents.tsx +2 -9
  614. package/src/components/page-header.tsx +5 -10
  615. package/src/components/password-strength-labels.ts +1 -2
  616. package/src/components/password-strength.tsx +6 -9
  617. package/src/components/phone-input.tsx +2 -13
  618. package/src/components/picker-sheet.tsx +2 -5
  619. package/src/components/pie-chart.tsx +6 -12
  620. package/src/components/popover.tsx +2 -1
  621. package/src/components/progress-bar.tsx +16 -25
  622. package/src/components/qr-code.tsx +2 -9
  623. package/src/components/row-actions.tsx +9 -1
  624. package/src/components/search-field.tsx +4 -5
  625. package/src/components/select.tsx +2 -10
  626. package/src/components/separator.tsx +1 -5
  627. package/src/components/series-chart-axes.ts +5 -5
  628. package/src/components/series-chart-budget.ts +1 -4
  629. package/src/components/series-chart-ticks.ts +1 -4
  630. package/src/components/series-chart.tsx +43 -83
  631. package/src/components/settings-fields.tsx +20 -15
  632. package/src/components/share-card.tsx +6 -14
  633. package/src/components/sign-chip.tsx +16 -16
  634. package/src/components/signature-pad.tsx +21 -13
  635. package/src/components/signed-amount.tsx +6 -14
  636. package/src/components/skeleton.tsx +2 -13
  637. package/src/components/slider.tsx +9 -20
  638. package/src/components/sparkline.tsx +2 -13
  639. package/src/components/stat-tile.tsx +13 -24
  640. package/src/components/swatch-picker.tsx +8 -3
  641. package/src/components/swipeable-row.tsx +2 -11
  642. package/src/components/table-skeleton.tsx +4 -1
  643. package/src/components/table.tsx +12 -8
  644. package/src/components/tabs.tsx +24 -39
  645. package/src/components/text-link.tsx +6 -6
  646. package/src/components/text.tsx +1 -2
  647. package/src/components/tile-radio.tsx +6 -19
  648. package/src/components/time-input.tsx +4 -5
  649. package/src/components/toast.tsx +3 -12
  650. package/src/components/toggle-group.tsx +9 -9
  651. package/src/components/toggle-legend.tsx +4 -16
  652. package/src/components/tooltip.tsx +9 -48
  653. package/src/components/translation-review-editor.tsx +4 -4
  654. package/src/components/translation-review-parts.tsx +7 -1
  655. package/src/components/translation-review.tsx +15 -16
  656. package/src/components/tree-view.tsx +17 -20
  657. package/src/components/treemap.tsx +3 -15
  658. package/src/components/trigger-aria.ts +1 -4
  659. package/src/components/use-table-state.ts +16 -17
  660. package/src/components/user-avatar.tsx +4 -21
  661. package/src/demo/demo-start.tsx +8 -4
  662. package/src/feedback/feedback-attachment-labels.ts +2 -1
  663. package/src/feedback/feedback-attachment.tsx +16 -29
  664. package/src/feedback/feedback-capture.ts +3 -1
  665. package/src/feedback/feedback-comment-thread.tsx +9 -6
  666. package/src/feedback/feedback-context.tsx +1 -4
  667. package/src/feedback/feedback-dialog.tsx +3 -4
  668. package/src/feedback/feedback-inbox.tsx +3 -9
  669. package/src/feedback/feedback-public-list.tsx +7 -1
  670. package/src/feedback/feedback-record.ts +6 -14
  671. package/src/feedback/feedback-replies.tsx +10 -5
  672. package/src/feedback/feedback-row-detail.tsx +2 -5
  673. package/src/feedback/feedback-status-undo.ts +1 -4
  674. package/src/feedback/feedback-submit-dialog.tsx +4 -4
  675. package/src/feedback/feedback-table.tsx +29 -9
  676. package/src/feedback/feedback-thread.tsx +4 -16
  677. package/src/feedback/feedback-vocabulary.ts +72 -82
  678. package/src/feedback/feedback-vote-button.tsx +9 -8
  679. package/src/hooks/use-anchored-rect.ts +1 -4
  680. package/src/hooks/use-document-title.ts +3 -1
  681. package/src/hooks/use-file-drop.ts +1 -3
  682. package/src/hooks/use-file-picker-labels.ts +1 -2
  683. package/src/hooks/use-file-picker.tsx +1 -5
  684. package/src/hooks/use-focus-trap.ts +1 -2
  685. package/src/hooks/use-overlay-history.ts +10 -5
  686. package/src/hooks/use-row-swipe.ts +1 -6
  687. package/src/i18n/defaults.ts +1 -4
  688. package/src/i18n/german.ts +42 -50
  689. package/src/i18n/kit-labels.tsx +5 -20
  690. package/src/i18n/languages.ts +2 -8
  691. package/src/i18n/locales/en.ts +15 -31
  692. package/src/i18n/locales/es.ts +44 -50
  693. package/src/i18n/locales/fr.ts +43 -52
  694. package/src/i18n/locales/hu.ts +35 -38
  695. package/src/i18n/locales/it.ts +44 -53
  696. package/src/i18n/locales/zh.ts +23 -33
  697. package/src/i18n/plurals.ts +4 -1
  698. package/src/i18n/review.ts +20 -7
  699. package/src/i18n/shared-labels.ts +1 -2
  700. package/src/index.ts +107 -32
  701. package/src/landing/access.ts +2 -7
  702. package/src/landing/landing-sections.tsx +14 -15
  703. package/src/landing/page-seo.ts +1 -3
  704. package/src/lib/calc.ts +4 -1
  705. package/src/lib/clipboard-minus.ts +4 -1
  706. package/src/lib/dates.ts +2 -10
  707. package/src/lib/decimal-marks.ts +1 -3
  708. package/src/lib/device-settings.ts +2 -1
  709. package/src/lib/direction.ts +1 -3
  710. package/src/lib/iban.ts +89 -9
  711. package/src/lib/logger.ts +1 -5
  712. package/src/lib/person-name.ts +1 -3
  713. package/src/lib/phone.ts +5 -8
  714. package/src/lib/qr-encode.ts +32 -8
  715. package/src/lib/session-refresh.ts +5 -6
  716. package/src/lib/table-text.ts +24 -6
  717. package/src/lib/text-match.ts +43 -1
  718. package/src/lib/translation-review.ts +1 -3
  719. package/src/notifications/notification-inbox.tsx +17 -4
  720. package/src/notifications/notification-parts.tsx +1 -2
  721. package/src/notifications/notification-types-setting.tsx +19 -18
  722. package/src/notifications/notifications-labels.ts +1 -2
  723. package/src/notifications/push-device-setting.tsx +7 -1
  724. package/src/notifications/push-devices-setting.tsx +7 -3
  725. package/src/notifications/push-worker.ts +10 -2
  726. package/src/notifications/quiet-hours-setting.tsx +4 -1
  727. package/src/notifications/use-push-device.ts +4 -1
  728. package/src/offline/pwa-update-prompt.tsx +7 -1
  729. package/src/offline/query-persistence.ts +9 -6
  730. package/src/offline.ts +6 -1
  731. package/src/rhf/fields.tsx +50 -19
  732. package/src/rhf/form-core.tsx +2 -6
  733. package/src/rhf/line-items.tsx +5 -7
  734. package/src/rhf/use-rhf-wizard-step.ts +3 -12
  735. package/src/search/command-palette.tsx +15 -23
  736. package/src/search/global-search.tsx +38 -8
  737. package/src/search/search-index.ts +5 -1
  738. package/src/settings/device-reset-setting.tsx +5 -8
  739. package/src/settings/settings-heading.tsx +3 -1
  740. package/src/settings/settings-layout.tsx +6 -13
  741. package/src/settings/use-settings-focus.ts +8 -0
  742. package/src/settings/use-settings-route.ts +4 -3
  743. package/src/shell/app-shell.tsx +48 -24
  744. package/src/shell/auth-layout.tsx +1 -6
  745. package/src/shell/dev-menu.tsx +18 -6
  746. package/src/shell/option-switcher-menu.tsx +1 -3
  747. package/src/shell/sync-status-indicator.tsx +14 -12
  748. package/src/shell/top-bar-parts-labels.ts +1 -3
  749. package/src/shell/topbar-action-menu.tsx +130 -45
  750. package/src/shell/topbar-controls.tsx +5 -19
  751. package/src/shell/tour-menu.tsx +9 -1
  752. package/src/shell.ts +1 -1
  753. package/src/sync/db.ts +5 -1
  754. package/src/sync/engine.ts +44 -12
  755. package/src/sync.ts +16 -2
  756. package/src/testing/css-variables.ts +1 -2
  757. package/src/testing/index.ts +1 -6
  758. package/src/testing/react.ts +1 -2
  759. package/src/testing/viewport.ts +9 -9
  760. package/src/theme/contrast-tokens.ts +13 -2
  761. package/src/theme/palette-derive.ts +24 -50
  762. package/src/theme/palette-presets.ts +0 -1
  763. package/src/theme/palette-store.ts +1 -4
  764. package/src/theme/text-size.ts +1 -1
  765. package/src/theme/theme-store.ts +2 -6
  766. package/src/tour/tour-catalogue.tsx +4 -2
  767. package/src/tour/tour-dock.ts +5 -1
  768. package/src/tour/tour-engine.ts +2 -6
  769. package/src/tour/tour.tsx +28 -12
  770. package/src/tour/use-tour-progress.ts +8 -2
  771. package/src/tour/use-tour-url-sync.ts +3 -1
  772. package/src/vite-env.d.ts +1 -4
  773. package/src/wizard/stepper-nav.tsx +10 -35
  774. package/src/wizard/types.ts +1 -4
  775. package/src/wizard/use-wizard.ts +28 -43
  776. package/src/wizard/validation.ts +1 -5
  777. package/src/wizard/wizard-context.tsx +2 -6
  778. package/src/wizard/wizard-step.tsx +1 -8
  779. package/src/wizard/wizard-summary.tsx +2 -6
  780. package/tokens.css +393 -152
package/tokens.css CHANGED
@@ -109,65 +109,209 @@ html[data-text-size="xlarge"] {
109
109
  * same numbers (hooks/use-breakpoint.ts). */
110
110
 
111
111
  @custom-variant sm {
112
- @media (width >= 40rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
113
- @media (width >= 50rem) { &:where([data-text-size=large] *) { @slot; } }
114
- @media (width >= 60rem) { &:where([data-text-size=xlarge] *) { @slot; } }
112
+ @media (width >= 40rem) {
113
+ &:where(:not([data-text-size$="large"] *)) {
114
+ @slot;
115
+ }
116
+ }
117
+ @media (width >= 50rem) {
118
+ &:where([data-text-size="large"] *) {
119
+ @slot;
120
+ }
121
+ }
122
+ @media (width >= 60rem) {
123
+ &:where([data-text-size="xlarge"] *) {
124
+ @slot;
125
+ }
126
+ }
115
127
  }
116
128
  @custom-variant md {
117
- @media (width >= 48rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
118
- @media (width >= 60rem) { &:where([data-text-size=large] *) { @slot; } }
119
- @media (width >= 72rem) { &:where([data-text-size=xlarge] *) { @slot; } }
129
+ @media (width >= 48rem) {
130
+ &:where(:not([data-text-size$="large"] *)) {
131
+ @slot;
132
+ }
133
+ }
134
+ @media (width >= 60rem) {
135
+ &:where([data-text-size="large"] *) {
136
+ @slot;
137
+ }
138
+ }
139
+ @media (width >= 72rem) {
140
+ &:where([data-text-size="xlarge"] *) {
141
+ @slot;
142
+ }
143
+ }
120
144
  }
121
145
  @custom-variant lg {
122
- @media (width >= 64rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
123
- @media (width >= 80rem) { &:where([data-text-size=large] *) { @slot; } }
124
- @media (width >= 96rem) { &:where([data-text-size=xlarge] *) { @slot; } }
146
+ @media (width >= 64rem) {
147
+ &:where(:not([data-text-size$="large"] *)) {
148
+ @slot;
149
+ }
150
+ }
151
+ @media (width >= 80rem) {
152
+ &:where([data-text-size="large"] *) {
153
+ @slot;
154
+ }
155
+ }
156
+ @media (width >= 96rem) {
157
+ &:where([data-text-size="xlarge"] *) {
158
+ @slot;
159
+ }
160
+ }
125
161
  }
126
162
  @custom-variant xl {
127
- @media (width >= 80rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
128
- @media (width >= 100rem) { &:where([data-text-size=large] *) { @slot; } }
129
- @media (width >= 120rem) { &:where([data-text-size=xlarge] *) { @slot; } }
163
+ @media (width >= 80rem) {
164
+ &:where(:not([data-text-size$="large"] *)) {
165
+ @slot;
166
+ }
167
+ }
168
+ @media (width >= 100rem) {
169
+ &:where([data-text-size="large"] *) {
170
+ @slot;
171
+ }
172
+ }
173
+ @media (width >= 120rem) {
174
+ &:where([data-text-size="xlarge"] *) {
175
+ @slot;
176
+ }
177
+ }
130
178
  }
131
179
  @custom-variant 2xl {
132
- @media (width >= 96rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
133
- @media (width >= 120rem) { &:where([data-text-size=large] *) { @slot; } }
134
- @media (width >= 144rem) { &:where([data-text-size=xlarge] *) { @slot; } }
180
+ @media (width >= 96rem) {
181
+ &:where(:not([data-text-size$="large"] *)) {
182
+ @slot;
183
+ }
184
+ }
185
+ @media (width >= 120rem) {
186
+ &:where([data-text-size="large"] *) {
187
+ @slot;
188
+ }
189
+ }
190
+ @media (width >= 144rem) {
191
+ &:where([data-text-size="xlarge"] *) {
192
+ @slot;
193
+ }
194
+ }
135
195
  }
136
196
  @custom-variant 3xl {
137
- @media (width >= 150rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
138
- @media (width >= 187.5rem) { &:where([data-text-size=large] *) { @slot; } }
139
- @media (width >= 225rem) { &:where([data-text-size=xlarge] *) { @slot; } }
197
+ @media (width >= 150rem) {
198
+ &:where(:not([data-text-size$="large"] *)) {
199
+ @slot;
200
+ }
201
+ }
202
+ @media (width >= 187.5rem) {
203
+ &:where([data-text-size="large"] *) {
204
+ @slot;
205
+ }
206
+ }
207
+ @media (width >= 225rem) {
208
+ &:where([data-text-size="xlarge"] *) {
209
+ @slot;
210
+ }
211
+ }
140
212
  }
141
213
 
142
214
  @custom-variant max-3xl {
143
- @media (width < 150rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
144
- @media (width < 187.5rem) { &:where([data-text-size=large] *) { @slot; } }
145
- @media (width < 225rem) { &:where([data-text-size=xlarge] *) { @slot; } }
215
+ @media (width < 150rem) {
216
+ &:where(:not([data-text-size$="large"] *)) {
217
+ @slot;
218
+ }
219
+ }
220
+ @media (width < 187.5rem) {
221
+ &:where([data-text-size="large"] *) {
222
+ @slot;
223
+ }
224
+ }
225
+ @media (width < 225rem) {
226
+ &:where([data-text-size="xlarge"] *) {
227
+ @slot;
228
+ }
229
+ }
146
230
  }
147
231
  @custom-variant max-2xl {
148
- @media (width < 96rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
149
- @media (width < 120rem) { &:where([data-text-size=large] *) { @slot; } }
150
- @media (width < 144rem) { &:where([data-text-size=xlarge] *) { @slot; } }
232
+ @media (width < 96rem) {
233
+ &:where(:not([data-text-size$="large"] *)) {
234
+ @slot;
235
+ }
236
+ }
237
+ @media (width < 120rem) {
238
+ &:where([data-text-size="large"] *) {
239
+ @slot;
240
+ }
241
+ }
242
+ @media (width < 144rem) {
243
+ &:where([data-text-size="xlarge"] *) {
244
+ @slot;
245
+ }
246
+ }
151
247
  }
152
248
  @custom-variant max-xl {
153
- @media (width < 80rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
154
- @media (width < 100rem) { &:where([data-text-size=large] *) { @slot; } }
155
- @media (width < 120rem) { &:where([data-text-size=xlarge] *) { @slot; } }
249
+ @media (width < 80rem) {
250
+ &:where(:not([data-text-size$="large"] *)) {
251
+ @slot;
252
+ }
253
+ }
254
+ @media (width < 100rem) {
255
+ &:where([data-text-size="large"] *) {
256
+ @slot;
257
+ }
258
+ }
259
+ @media (width < 120rem) {
260
+ &:where([data-text-size="xlarge"] *) {
261
+ @slot;
262
+ }
263
+ }
156
264
  }
157
265
  @custom-variant max-lg {
158
- @media (width < 64rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
159
- @media (width < 80rem) { &:where([data-text-size=large] *) { @slot; } }
160
- @media (width < 96rem) { &:where([data-text-size=xlarge] *) { @slot; } }
266
+ @media (width < 64rem) {
267
+ &:where(:not([data-text-size$="large"] *)) {
268
+ @slot;
269
+ }
270
+ }
271
+ @media (width < 80rem) {
272
+ &:where([data-text-size="large"] *) {
273
+ @slot;
274
+ }
275
+ }
276
+ @media (width < 96rem) {
277
+ &:where([data-text-size="xlarge"] *) {
278
+ @slot;
279
+ }
280
+ }
161
281
  }
162
282
  @custom-variant max-md {
163
- @media (width < 48rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
164
- @media (width < 60rem) { &:where([data-text-size=large] *) { @slot; } }
165
- @media (width < 72rem) { &:where([data-text-size=xlarge] *) { @slot; } }
283
+ @media (width < 48rem) {
284
+ &:where(:not([data-text-size$="large"] *)) {
285
+ @slot;
286
+ }
287
+ }
288
+ @media (width < 60rem) {
289
+ &:where([data-text-size="large"] *) {
290
+ @slot;
291
+ }
292
+ }
293
+ @media (width < 72rem) {
294
+ &:where([data-text-size="xlarge"] *) {
295
+ @slot;
296
+ }
297
+ }
166
298
  }
167
299
  @custom-variant max-sm {
168
- @media (width < 40rem) { &:where(:not([data-text-size$=large] *)) { @slot; } }
169
- @media (width < 50rem) { &:where([data-text-size=large] *) { @slot; } }
170
- @media (width < 60rem) { &:where([data-text-size=xlarge] *) { @slot; } }
300
+ @media (width < 40rem) {
301
+ &:where(:not([data-text-size$="large"] *)) {
302
+ @slot;
303
+ }
304
+ }
305
+ @media (width < 50rem) {
306
+ &:where([data-text-size="large"] *) {
307
+ @slot;
308
+ }
309
+ }
310
+ @media (width < 60rem) {
311
+ &:where([data-text-size="xlarge"] *) {
312
+ @slot;
313
+ }
314
+ }
171
315
  }
172
316
 
173
317
  /* `large:` is Large AND Extra large; `xlarge:` only Extra large; `contrast:` is More
@@ -216,27 +360,27 @@ html[data-text-size="xlarge"] {
216
360
  }
217
361
 
218
362
  :root {
219
- --bg-page: #ede3cf; /* warm dim sand — low-glare light page */
220
- --bg-surface: #f6ecd9; /* warm off-white card/panel (not pure white) */
221
- --bg-surface-2: #ede3cf; /* inset/well surface: the page itself in light (0.33) */
222
- --border: #e2d6bd; /* warm hairline border */
223
- --text-primary: #463f33; /* warm dark grey — not pure black */
363
+ --bg-page: #ede3cf; /* warm dim sand — low-glare light page */
364
+ --bg-surface: #f6ecd9; /* warm off-white card/panel (not pure white) */
365
+ --bg-surface-2: #ede3cf; /* inset/well surface: the page itself in light (0.33) */
366
+ --border: #e2d6bd; /* warm hairline border */
367
+ --text-primary: #463f33; /* warm dark grey — not pure black */
224
368
  /* The two quieter text roles. Contrast against the WORST of the three surfaces
225
369
  above: 7.0:1 and 4.8:1, so both clear WCAG AA for normal text on all of them —
226
370
  which is the reason they are tokens and not `text-slate-500`, a cool grey that
227
371
  ignores the palette and sat at 4.4:1 on this ground. */
228
372
  --text-secondary: #50493c;
229
373
  --text-muted: #696153;
230
- --brand: #4f46e5; /* indigo-600 */
231
- --brand-hover: #4338ca; /* indigo-700 */
374
+ --brand: #4f46e5; /* indigo-600 */
375
+ --brand-hover: #4338ca; /* indigo-700 */
232
376
  --brand-contrast: #ffffff;
233
- --money-income: #0b6650; /* deep teal — the preset's own, darker than
377
+ --money-income: #0b6650; /* deep teal — the preset's own, darker than
234
378
  teal-700 so it clears AA as TEXT on --bg-page */
235
- --money-expense: #905902; /* solved: amber-700 (#b45309) reached only 3.88:1 as
379
+ --money-expense: #905902; /* solved: amber-700 (#b45309) reached only 3.88:1 as
236
380
  TEXT on --bg-page, below WCAG AA. See the preset
237
381
  audit in theme/__tests__/palette-audit.test.ts. */
238
- --money-net: #7a4fa3; /* muted violet, warmed to this palette */
239
- --money-neutral: #6b6453; /* warm slate */
382
+ --money-net: #7a4fa3; /* muted violet, warmed to this palette */
383
+ --money-neutral: #6b6453; /* warm slate */
240
384
 
241
385
  /* ── Field sync status ─────────────────────────────────────────────────────
242
386
  The four states a database-backed field can be in. Deliberately NOT part of
@@ -260,10 +404,10 @@ html[data-text-size="xlarge"] {
260
404
  reason. They are used here because the states were specified in these colours, so
261
405
  `FieldSyncIndicator` gives every state its own ICON as well and colour is never
262
406
  the only signal. Do not drop the icons. */
263
- --status-synced: #166534; /* green-800 — persisted */
264
- --status-pending: #1d4ed8; /* blue-700 — in flight */
265
- --status-edited: #bf6800; /* solved — dirty, not yet saved */
266
- --status-error: #b91c1c; /* red-700 — the save failed */
407
+ --status-synced: #166534; /* green-800 — persisted */
408
+ --status-pending: #1d4ed8; /* blue-700 — in flight */
409
+ --status-edited: #bf6800; /* solved — dirty, not yet saved */
410
+ --status-error: #b91c1c; /* red-700 — the save failed */
267
411
  /* Chart ramp: anyplot's eight "Imprint" hues (0.49, https://anyplot.ai/palette), the
268
412
  SAME in both themes — a hue under 3:1 on the ground gets a 1px ink edge
269
413
  (`chartEdge`) rather than a different colour. `--chart-9` repeats slot 1, where
@@ -284,20 +428,20 @@ html[data-text-size="xlarge"] {
284
428
  }
285
429
 
286
430
  .dark {
287
- --bg-page: #0e0f1c; /* indigo near-black */
431
+ --bg-page: #0e0f1c; /* indigo near-black */
288
432
  --bg-surface: #181a2c;
289
- --bg-surface-2: #21243a; /* inset/well surface */
433
+ --bg-surface-2: #21243a; /* inset/well surface */
290
434
  --border: #2e3252;
291
435
  --text-primary: #e6e8f4;
292
436
  /* As in `:root` — 7.0:1 and 4.8:1 against the worst of the three dark surfaces. */
293
437
  --text-secondary: #adafbe;
294
438
  --text-muted: #8d90a0;
295
- --brand: #8b93f8; /* indigo, lifted off the Tailwind scale to sit at
439
+ --brand: #8b93f8; /* indigo, lifted off the Tailwind scale to sit at
296
440
  the same OKLab lightness as the other dark tokens */
297
441
  --brand-hover: #aab1fb;
298
- --brand-contrast: #16182b; /* the dark page, not indigo-950: a filled brand
442
+ --brand-contrast: #16182b; /* the dark page, not indigo-950: a filled brand
299
443
  button reads as a hole in the surface it sits on */
300
- --money-income: #22c3b6; /* teal, pulled down to the dark set's lightness */
444
+ --money-income: #22c3b6; /* teal, pulled down to the dark set's lightness */
301
445
  /* Deliberately NOT amber-400 (#fbbf24). Every other colour on a dark surface
302
446
  sits around OKLab L 0.68–0.74 (brand 0.68, net 0.70, neutral 0.71, income
303
447
  0.74); amber-400 lands at 0.84, so outflows — most rows in a register — shouted
@@ -306,14 +450,14 @@ html[data-text-size="xlarge"] {
306
450
  surface, still far from income in CVD space (Keksdose dev#434). */
307
451
  --money-expense: #e4b035;
308
452
  --money-net: #b39aef;
309
- --money-neutral: #9aa1bd; /* the palette's own cool grey, not zinc-400 */
453
+ --money-neutral: #9aa1bd; /* the palette's own cool grey, not zinc-400 */
310
454
 
311
455
  /* Field sync status — see the note in `:root`. Against the worst of the three dark
312
456
  surfaces these run 8.7 / 9.1 / 6.7 / 8.0:1. */
313
- --status-synced: #4ade80; /* green-400 */
314
- --status-pending: #7dd3fc; /* sky-300 */
315
- --status-edited: #fbbf24; /* amber-400 */
316
- --status-error: #fca5a5; /* red-300 */
457
+ --status-synced: #4ade80; /* green-400 */
458
+ --status-pending: #7dd3fc; /* sky-300 */
459
+ --status-edited: #fbbf24; /* amber-400 */
460
+ --status-error: #fca5a5; /* red-300 */
317
461
  --chart-1: #009e73;
318
462
  --chart-2: #c475fd;
319
463
  --chart-3: #4467a3;
@@ -453,55 +597,55 @@ html[data-text-size="xlarge"] {
453
597
  4.22. `--money-expense` went the same way earlier. tokens-css-audit.test.ts holds
454
598
  every pair here to its ratio. */
455
599
  :root {
456
- --danger: #be123c; /* rose-700 */
457
- --danger-hover: #9f1239; /* rose-800 */
600
+ --danger: #be123c; /* rose-700 */
601
+ --danger-hover: #9f1239; /* rose-800 */
458
602
  --danger-contrast: #ffffff;
459
- --danger-border: #fb7185; /* rose-400 */
603
+ --danger-border: #fb7185; /* rose-400 */
460
604
  /* The error LINE: an invalid field, a failed upload, a danger banner's frame, a focus
461
605
  ring on a destructive control — loud, WCAG 1.4.11's 3:1 against every surface.
462
606
  Rose-600 in both modes since 0.33: light was rose-400, the soft border's value,
463
607
  which reached only 2.07:1 while this note claimed 3:1. */
464
608
  --danger-border-strong: #e11d48; /* rose-600 */
465
- --danger-bg: #fff1f2; /* rose-50 */
609
+ --danger-bg: #fff1f2; /* rose-50 */
466
610
 
467
- --warning: #a34800; /* amber-700's hue, solved (was #b45309, 3.86:1) */
611
+ --warning: #a34800; /* amber-700's hue, solved (was #b45309, 3.86:1) */
468
612
  /* Text on a `--warning` fill (0.33, k24): a solid warning chip, a badge, an armed
469
613
  swipe. White here, amber-950 on the dark theme's pastel. */
470
614
  --warning-contrast: #ffffff;
471
- --warning-border: #fcd34d; /* amber-300 */
615
+ --warning-border: #fcd34d; /* amber-300 */
472
616
  /* Warning's loud line (0.33, k27), as `--danger-border-strong` is danger's: Card
473
617
  `toneStrength="strong"`, IconButton's warning focus ring. In light the warning
474
618
  colour itself — amber-600 would be only 2.5:1 on the cream page; in dark amber-600,
475
619
  the step danger's line takes, 4.8:1 and up without shouting. */
476
620
  --warning-border-strong: var(--warning);
477
- --warning-bg: #fffbeb; /* amber-50 */
621
+ --warning-bg: #fffbeb; /* amber-50 */
478
622
 
479
623
  /* Informational, and deliberately NOT the brand: a count of active filters is
480
624
  not a call to action, and painting it `--brand` would make every table look
481
625
  like it had a primary button in the toolbar. */
482
- --info: #0369a1; /* sky-700 */
626
+ --info: #0369a1; /* sky-700 */
483
627
  /* Text on an `--info` fill (0.27: the feedback inbox's "advance" swipe) — white here,
484
628
  the darkest sky in dark mode, where the fill is a pastel. */
485
629
  --info-contrast: #ffffff;
486
- --info-border: #7dd3fc; /* sky-300 */
487
- --info-bg: #e0f2fe; /* sky-100 */
630
+ --info-border: #7dd3fc; /* sky-300 */
631
+ --info-bg: #e0f2fe; /* sky-100 */
488
632
 
489
633
  /* Done, resolved, accepted. Distinct from `--status-synced` for the same reason
490
634
  `--danger` is distinct from `--status-error`: that family describes a FIELD's
491
635
  journey to the database, this one an ACTION's outcome. Emerald rather than the
492
636
  money teal, so a "resolved" chip cannot be misread as an inflow. */
493
- --success: #007152; /* emerald-700's hue, solved (was #047857, 4.22:1) */
637
+ --success: #007152; /* emerald-700's hue, solved (was #047857, 4.22:1) */
494
638
  /* Text on a `--success` fill (0.26: a swipe's approve panel) — white here, the
495
639
  darkest emerald in dark mode, where the fill is a pastel and white text failed. */
496
640
  --success-contrast: #ffffff;
497
- --success-border: #6ee7b7; /* emerald-300 */
498
- --success-bg: #d1fae5; /* emerald-100 */
641
+ --success-border: #6ee7b7; /* emerald-300 */
642
+ --success-bg: #d1fae5; /* emerald-100 */
499
643
  }
500
644
 
501
645
  .dark {
502
- --danger: #fda4af; /* rose-300 */
503
- --danger-hover: #fecdd3; /* rose-200 */
504
- --danger-contrast: #4c0519; /* rose-950 */
646
+ --danger: #fda4af; /* rose-300 */
647
+ --danger-hover: #fecdd3; /* rose-200 */
648
+ --danger-contrast: #4c0519; /* rose-950 */
505
649
  /* The tone family's recipe — hue at 0.6 alpha, as warning/info/success below — so a
506
650
  soft danger Chip sits in the same weight of frame as its siblings (keksdose dev
507
651
  #576: FAILED was visibly louder than READY and NEEDS REVIEW in dark mode). */
@@ -509,19 +653,19 @@ html[data-text-size="xlarge"] {
509
653
  --danger-border-strong: #e11d48; /* rose-600 */
510
654
  --danger-bg: rgba(136, 19, 55, 0.2);
511
655
 
512
- --warning: #fcd34d; /* amber-300 */
513
- --warning-contrast: #451a03; /* amber-950 */
656
+ --warning: #fcd34d; /* amber-300 */
657
+ --warning-contrast: #451a03; /* amber-950 */
514
658
  --warning-border: rgba(180, 83, 9, 0.6);
515
659
  --warning-border-strong: #d97706; /* amber-600 */
516
660
  --warning-bg: rgba(120, 53, 15, 0.2);
517
661
 
518
- --info: #7dd3fc; /* sky-300 */
519
- --info-contrast: #082f49; /* sky-950 */
662
+ --info: #7dd3fc; /* sky-300 */
663
+ --info-contrast: #082f49; /* sky-950 */
520
664
  --info-border: rgba(3, 105, 161, 0.6);
521
665
  --info-bg: rgba(12, 74, 110, 0.25);
522
666
 
523
- --success: #6ee7b7; /* emerald-300 */
524
- --success-contrast: #022c22; /* emerald-950 */
667
+ --success: #6ee7b7; /* emerald-300 */
668
+ --success-contrast: #022c22; /* emerald-950 */
525
669
  --success-border: rgba(4, 120, 87, 0.6);
526
670
  --success-bg: rgba(6, 78, 59, 0.25);
527
671
  }
@@ -566,7 +710,14 @@ html[data-text-size="xlarge"] {
566
710
 
567
711
  /* The description of an untoned toast in the secondary text colour (sonner hard-codes
568
712
  #3f3f3f, unreadable in the dark theme); a toned toast's inherits its tone. */
569
- .kit-toaster [data-sonner-toast][data-styled="true"]:not([data-type="success"], [data-type="info"], [data-type="warning"], [data-type="error"]) [data-description] {
713
+ .kit-toaster
714
+ [data-sonner-toast][data-styled="true"]:not(
715
+ [data-type="success"],
716
+ [data-type="info"],
717
+ [data-type="warning"],
718
+ [data-type="error"]
719
+ )
720
+ [data-description] {
570
721
  color: var(--text-secondary);
571
722
  }
572
723
  /* The action button in the tone's own colour rather than sonner's black pill, under
@@ -575,10 +726,22 @@ html[data-text-size="xlarge"] {
575
726
  background: var(--toast-action-bg, var(--text-primary));
576
727
  color: var(--toast-action-fg, var(--bg-surface));
577
728
  }
578
- .kit-toaster [data-sonner-toast][data-type="success"] { --toast-action-bg: var(--success); --toast-action-fg: var(--success-contrast); }
579
- .kit-toaster [data-sonner-toast][data-type="info"] { --toast-action-bg: var(--info); --toast-action-fg: var(--info-contrast); }
580
- .kit-toaster [data-sonner-toast][data-type="warning"] { --toast-action-bg: var(--warning); --toast-action-fg: var(--warning-contrast); }
581
- .kit-toaster [data-sonner-toast][data-type="error"] { --toast-action-bg: var(--danger); --toast-action-fg: var(--danger-contrast); }
729
+ .kit-toaster [data-sonner-toast][data-type="success"] {
730
+ --toast-action-bg: var(--success);
731
+ --toast-action-fg: var(--success-contrast);
732
+ }
733
+ .kit-toaster [data-sonner-toast][data-type="info"] {
734
+ --toast-action-bg: var(--info);
735
+ --toast-action-fg: var(--info-contrast);
736
+ }
737
+ .kit-toaster [data-sonner-toast][data-type="warning"] {
738
+ --toast-action-bg: var(--warning);
739
+ --toast-action-fg: var(--warning-contrast);
740
+ }
741
+ .kit-toaster [data-sonner-toast][data-type="error"] {
742
+ --toast-action-bg: var(--danger);
743
+ --toast-action-fg: var(--danger-contrast);
744
+ }
582
745
  /* The kit's focus ring on the toast's buttons — sonner's is a black shadow that
583
746
  vanishes on the dark theme. */
584
747
  .kit-toaster [data-sonner-toast][data-styled="true"] :is([data-button], [data-close-button]):focus-visible {
@@ -605,46 +768,46 @@ html[data-text-size="xlarge"] {
605
768
  the hue's 950 on the dark pastel. Teal and orange are SOLVED in light, as warning
606
769
  and success are (§5.5): their 700s reached 4.21 and 3.98:1 on the cream page. */
607
770
  :root {
608
- --hue-blue: #1d4ed8; /* blue-700 */
771
+ --hue-blue: #1d4ed8; /* blue-700 */
609
772
  --hue-blue-contrast: #ffffff;
610
- --hue-blue-border: #93c5fd; /* blue-300 */
611
- --hue-blue-bg: #dbeafe; /* blue-100 */
612
- --hue-indigo: #4338ca; /* indigo-700 */
773
+ --hue-blue-border: #93c5fd; /* blue-300 */
774
+ --hue-blue-bg: #dbeafe; /* blue-100 */
775
+ --hue-indigo: #4338ca; /* indigo-700 */
613
776
  --hue-indigo-contrast: #ffffff;
614
- --hue-indigo-border: #a5b4fc; /* indigo-300 */
615
- --hue-indigo-bg: #e0e7ff; /* indigo-100 */
616
- --hue-purple: #7e22ce; /* purple-700 */
777
+ --hue-indigo-border: #a5b4fc; /* indigo-300 */
778
+ --hue-indigo-bg: #e0e7ff; /* indigo-100 */
779
+ --hue-purple: #7e22ce; /* purple-700 */
617
780
  --hue-purple-contrast: #ffffff;
618
- --hue-purple-border: #d8b4fe; /* purple-300 */
619
- --hue-purple-bg: #f3e8ff; /* purple-100 */
620
- --hue-teal: #006f68; /* teal-700's hue, solved */
781
+ --hue-purple-border: #d8b4fe; /* purple-300 */
782
+ --hue-purple-bg: #f3e8ff; /* purple-100 */
783
+ --hue-teal: #006f68; /* teal-700's hue, solved */
621
784
  --hue-teal-contrast: #ffffff;
622
- --hue-teal-border: #5eead4; /* teal-300 */
623
- --hue-teal-bg: #ccfbf1; /* teal-100 */
624
- --hue-orange: #b43800; /* orange-700's hue, solved */
785
+ --hue-teal-border: #5eead4; /* teal-300 */
786
+ --hue-teal-bg: #ccfbf1; /* teal-100 */
787
+ --hue-orange: #b43800; /* orange-700's hue, solved */
625
788
  --hue-orange-contrast: #ffffff;
626
- --hue-orange-border: #fdba74; /* orange-300 */
627
- --hue-orange-bg: #ffedd5; /* orange-100 */
789
+ --hue-orange-border: #fdba74; /* orange-300 */
790
+ --hue-orange-bg: #ffedd5; /* orange-100 */
628
791
  }
629
792
 
630
793
  .dark {
631
- --hue-blue: #93c5fd; /* blue-300 */
632
- --hue-blue-contrast: #172554; /* blue-950 */
794
+ --hue-blue: #93c5fd; /* blue-300 */
795
+ --hue-blue-contrast: #172554; /* blue-950 */
633
796
  --hue-blue-border: rgba(29, 78, 216, 0.6);
634
797
  --hue-blue-bg: rgba(30, 58, 138, 0.25);
635
- --hue-indigo: #a5b4fc; /* indigo-300 */
798
+ --hue-indigo: #a5b4fc; /* indigo-300 */
636
799
  --hue-indigo-contrast: #1e1b4b; /* indigo-950 */
637
800
  --hue-indigo-border: rgba(67, 56, 202, 0.6);
638
801
  --hue-indigo-bg: rgba(49, 46, 129, 0.25);
639
- --hue-purple: #d8b4fe; /* purple-300 */
802
+ --hue-purple: #d8b4fe; /* purple-300 */
640
803
  --hue-purple-contrast: #3b0764; /* purple-950 */
641
804
  --hue-purple-border: rgba(126, 34, 206, 0.6);
642
805
  --hue-purple-bg: rgba(88, 28, 135, 0.25);
643
- --hue-teal: #5eead4; /* teal-300 */
644
- --hue-teal-contrast: #042f2e; /* teal-950 */
806
+ --hue-teal: #5eead4; /* teal-300 */
807
+ --hue-teal-contrast: #042f2e; /* teal-950 */
645
808
  --hue-teal-border: rgba(15, 118, 110, 0.6);
646
809
  --hue-teal-bg: rgba(19, 78, 74, 0.25);
647
- --hue-orange: #fdba74; /* orange-300 */
810
+ --hue-orange: #fdba74; /* orange-300 */
648
811
  --hue-orange-contrast: #431407; /* orange-950 */
649
812
  --hue-orange-border: rgba(194, 65, 12, 0.6);
650
813
  --hue-orange-bg: rgba(124, 45, 18, 0.25);
@@ -669,13 +832,13 @@ html[data-text-size="xlarge"] {
669
832
  <html> leaves it out: dark does not step (§13.3, decision 4).
670
833
  tokens-css-audit.test.ts measures every pair here. */
671
834
  :root[data-contrast="more"]:not(.dark) {
672
- --danger: #ba0739; /* solved: 4.53:1 on the worst stepped well (was 4.31) */
673
- --warning: #9a4300; /* solved: 4.53:1 (was 4.13) */
674
- --success: #006a4d; /* solved: 4.54:1 (was 4.13) */
675
- --info: #006197; /* solved: 4.56:1 (was 4.07) */
676
- --hue-teal: #006862; /* solved: 4.56:1 (was 4.15) */
677
- --hue-orange: #a93400; /* solved: 4.53:1 (was 4.11) */
678
- --status-edited: #b66200; /* solved, a mark: 3.04:1 (was 2.77) */
835
+ --danger: #ba0739; /* solved: 4.53:1 on the worst stepped well (was 4.31) */
836
+ --warning: #9a4300; /* solved: 4.53:1 (was 4.13) */
837
+ --success: #006a4d; /* solved: 4.54:1 (was 4.13) */
838
+ --info: #006197; /* solved: 4.56:1 (was 4.07) */
839
+ --hue-teal: #006862; /* solved: 4.56:1 (was 4.15) */
840
+ --hue-orange: #a93400; /* solved: 4.53:1 (was 4.11) */
841
+ --status-edited: #b66200; /* solved, a mark: 3.04:1 (was 2.77) */
679
842
  --bg-active: color-mix(in oklab, var(--text-primary) 16%, var(--bg-surface));
680
843
  }
681
844
 
@@ -864,12 +1027,26 @@ html[data-text-size="xlarge"] {
864
1027
  theme now makes those very names with the same colour, layered. A second, unlayered
865
1028
  rule of the same name would beat the layered one, so `text-money-net` would no longer
866
1029
  be the `text-[var(--money-net)]` it replaced in the kit. */
867
- .text-money-pos { color: var(--money-income); }
868
- .text-money-neg { color: var(--money-expense); }
869
- .text-money-pos-muted { color: var(--money-income); opacity: 0.72; }
870
- .text-money-neg-muted { color: var(--money-expense); opacity: 0.72; }
871
- .bg-money-pos { background-color: var(--money-income); }
872
- .bg-money-neg { background-color: var(--money-expense); }
1030
+ .text-money-pos {
1031
+ color: var(--money-income);
1032
+ }
1033
+ .text-money-neg {
1034
+ color: var(--money-expense);
1035
+ }
1036
+ .text-money-pos-muted {
1037
+ color: var(--money-income);
1038
+ opacity: 0.72;
1039
+ }
1040
+ .text-money-neg-muted {
1041
+ color: var(--money-expense);
1042
+ opacity: 0.72;
1043
+ }
1044
+ .bg-money-pos {
1045
+ background-color: var(--money-income);
1046
+ }
1047
+ .bg-money-neg {
1048
+ background-color: var(--money-expense);
1049
+ }
873
1050
 
874
1051
  /* Visually hidden, like Tailwind's `sr-only`, but POSITION: FIXED rather than absolute.
875
1052
  *
@@ -898,7 +1075,9 @@ html[data-text-size="xlarge"] {
898
1075
  border-width: 0;
899
1076
  }
900
1077
 
901
- html, body, #root {
1078
+ html,
1079
+ body,
1080
+ #root {
902
1081
  height: 100%;
903
1082
  }
904
1083
 
@@ -942,8 +1121,12 @@ body {
942
1121
  /* Indeterminate progress bar (e.g. long imports, feedback #270): a third-width
943
1122
  segment sweeping the track. */
944
1123
  @keyframes indeterminate-sweep {
945
- 0% { transform: translateX(-100%); }
946
- 100% { transform: translateX(300%); }
1124
+ 0% {
1125
+ transform: translateX(-100%);
1126
+ }
1127
+ 100% {
1128
+ transform: translateX(300%);
1129
+ }
947
1130
  }
948
1131
  .animate-indeterminate {
949
1132
  animation: indeterminate-sweep 1.4s ease-in-out infinite;
@@ -975,36 +1158,64 @@ body {
975
1158
  * get the slower, more cinematic curve a first attempt reaches for.
976
1159
  */
977
1160
  @keyframes overlay-fade-in {
978
- from { opacity: 0; }
979
- to { opacity: 1; }
1161
+ from {
1162
+ opacity: 0;
1163
+ }
1164
+ to {
1165
+ opacity: 1;
1166
+ }
980
1167
  }
981
1168
  @keyframes sheet-rise-in {
982
- from { transform: translateY(100%); }
983
- to { transform: none; }
1169
+ from {
1170
+ transform: translateY(100%);
1171
+ }
1172
+ to {
1173
+ transform: none;
1174
+ }
984
1175
  }
985
1176
  @keyframes overlay-fade-out {
986
- from { opacity: 1; }
987
- to { opacity: 0; }
1177
+ from {
1178
+ opacity: 1;
1179
+ }
1180
+ to {
1181
+ opacity: 0;
1182
+ }
988
1183
  }
989
1184
  @keyframes sheet-lower-out {
990
- from { transform: none; }
991
- to { transform: translateY(100%); }
1185
+ from {
1186
+ transform: none;
1187
+ }
1188
+ to {
1189
+ transform: translateY(100%);
1190
+ }
1191
+ }
1192
+ .animate-overlay {
1193
+ animation: overlay-fade-in 0.18s ease-out;
1194
+ }
1195
+ .animate-sheet {
1196
+ animation: sheet-rise-in 0.22s cubic-bezier(0.32, 0.72, 0, 1);
992
1197
  }
993
- .animate-overlay { animation: overlay-fade-in 0.18s ease-out; }
994
- .animate-sheet { animation: sheet-rise-in 0.22s cubic-bezier(0.32, 0.72, 0, 1); }
995
1198
  /* `forwards` on both: the element is unmounted by a timer, and without a retained end
996
1199
  state the last painted frame before that timer fires is the panel back at full
997
1200
  opacity in its opening position — a flash of the thing you just dismissed. */
998
- .animate-overlay-out { animation: overlay-fade-out 0.18s ease-in forwards; }
999
- .animate-sheet-out { animation: sheet-lower-out 0.22s cubic-bezier(1, 0, 0.68, 0.28) forwards; }
1201
+ .animate-overlay-out {
1202
+ animation: overlay-fade-out 0.18s ease-in forwards;
1203
+ }
1204
+ .animate-sheet-out {
1205
+ animation: sheet-lower-out 0.22s cubic-bezier(1, 0, 0.68, 0.28) forwards;
1206
+ }
1000
1207
 
1001
1208
  /* Motion is the first thing to drop here, not the last. The overlay still fades — a
1002
1209
  backdrop appearing instantly is a flash, not a transition — but nothing travels.
1003
1210
  The EXIT pair is not listed: `useCloseTransition` reads the same media query and
1004
1211
  closes immediately under it, so these classes are never applied at all. */
1005
1212
  @media (prefers-reduced-motion: reduce) {
1006
- .animate-sheet { animation: none; }
1007
- .animate-overlay { animation-duration: 0.01ms; }
1213
+ .animate-sheet {
1214
+ animation: none;
1215
+ }
1216
+ .animate-overlay {
1217
+ animation-duration: 0.01ms;
1218
+ }
1008
1219
  }
1009
1220
 
1010
1221
  /* The sidebar's flyout panel: a short fade and a 4px slide out of the sidebar, so it
@@ -1012,30 +1223,58 @@ body {
1012
1223
  slide uses the inline axis, so it runs the right way under `dir="rtl"` too. Under
1013
1224
  reduced motion it only fades — nothing travels. */
1014
1225
  @keyframes flyout-in {
1015
- from { opacity: 0; translate: var(--flyout-from, -4px) 0; }
1016
- to { opacity: 1; translate: 0 0; }
1226
+ from {
1227
+ opacity: 0;
1228
+ translate: var(--flyout-from, -4px) 0;
1229
+ }
1230
+ to {
1231
+ opacity: 1;
1232
+ translate: 0 0;
1233
+ }
1234
+ }
1235
+ [dir="rtl"] .animate-flyout {
1236
+ --flyout-from: 4px;
1237
+ }
1238
+ .animate-flyout {
1239
+ animation: flyout-in 0.14s ease-out;
1017
1240
  }
1018
- [dir="rtl"] .animate-flyout { --flyout-from: 4px; }
1019
- .animate-flyout { animation: flyout-in 0.14s ease-out; }
1020
1241
  @media (prefers-reduced-motion: reduce) {
1021
- .animate-flyout { animation-name: overlay-fade-in; }
1242
+ .animate-flyout {
1243
+ animation-name: overlay-fade-in;
1244
+ }
1022
1245
  }
1023
1246
 
1024
1247
  /* The phone's page row (AppShell `mobileSubNav`) rising out of the bottom bar. */
1025
1248
  @keyframes subnav-in {
1026
- from { opacity: 0; transform: translateY(6px); }
1027
- to { opacity: 1; transform: none; }
1249
+ from {
1250
+ opacity: 0;
1251
+ transform: translateY(6px);
1252
+ }
1253
+ to {
1254
+ opacity: 1;
1255
+ transform: none;
1256
+ }
1257
+ }
1258
+ .animate-subnav {
1259
+ animation: subnav-in 0.2s ease-out;
1028
1260
  }
1029
- .animate-subnav { animation: subnav-in 0.2s ease-out; }
1030
1261
  @media (prefers-reduced-motion: reduce) {
1031
- .animate-subnav { animation-name: overlay-fade-in; }
1262
+ .animate-subnav {
1263
+ animation-name: overlay-fade-in;
1264
+ }
1032
1265
  }
1033
1266
 
1034
1267
  /* Chart drilldown fan-out/-in (feedback #260 rework): the remounted chart eases
1035
1268
  in instead of snapping. */
1036
1269
  @keyframes drill-in {
1037
- from { opacity: 0; transform: scale(0.96); }
1038
- to { opacity: 1; transform: none; }
1270
+ from {
1271
+ opacity: 0;
1272
+ transform: scale(0.96);
1273
+ }
1274
+ to {
1275
+ opacity: 1;
1276
+ transform: none;
1277
+ }
1039
1278
  }
1040
1279
  .animate-drill {
1041
1280
  animation: drill-in 0.25s ease-out;
@@ -1043,7 +1282,9 @@ body {
1043
1282
  /* A drilldown still has to SAY the level changed, so under reduced motion the chart
1044
1283
  fades in rather than appearing in one frame — but it no longer scales. */
1045
1284
  @media (prefers-reduced-motion: reduce) {
1046
- .animate-drill { animation-name: overlay-fade-in; }
1285
+ .animate-drill {
1286
+ animation-name: overlay-fade-in;
1287
+ }
1047
1288
  }
1048
1289
 
1049
1290
  /* Scrollbars: keep light defaults; theme to the palette when dark mode is active.