@eifi1/ui-kit 0.51.4 → 0.51.6

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 (759) hide show
  1. package/README.md +5 -5
  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 +1 -4
  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 +10 -8
  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.map +1 -1
  106. package/dist/components/data-table-groups.js +3 -1
  107. package/dist/components/data-table-groups.js.map +1 -1
  108. package/dist/components/data-table-head.js +44 -56
  109. package/dist/components/data-table-head.js.map +1 -1
  110. package/dist/components/data-table-mobile.js +31 -44
  111. package/dist/components/data-table-mobile.js.map +1 -1
  112. package/dist/components/data-table-pagination.js.map +1 -1
  113. package/dist/components/data-table-row-actions.js +19 -16
  114. package/dist/components/data-table-row-actions.js.map +1 -1
  115. package/dist/components/data-table-row.js.map +1 -1
  116. package/dist/components/data-table-shared.js.map +1 -1
  117. package/dist/components/data-table-sort.js.map +1 -1
  118. package/dist/components/data-table-virtual.js +4 -1
  119. package/dist/components/data-table-virtual.js.map +1 -1
  120. package/dist/components/data-table.js +30 -39
  121. package/dist/components/data-table.js.map +1 -1
  122. package/dist/components/date-picker.js +1 -6
  123. package/dist/components/date-picker.js.map +1 -1
  124. package/dist/components/date-range-picker.js.map +1 -1
  125. package/dist/components/description-list.js +10 -10
  126. package/dist/components/description-list.js.map +1 -1
  127. package/dist/components/dialog-frame.js +9 -2
  128. package/dist/components/dialog-frame.js.map +1 -1
  129. package/dist/components/disclosure.js +17 -27
  130. package/dist/components/disclosure.js.map +1 -1
  131. package/dist/components/dropdown.js +25 -35
  132. package/dist/components/dropdown.js.map +1 -1
  133. package/dist/components/empty-state.js.map +1 -1
  134. package/dist/components/entity-combobox.js.map +1 -1
  135. package/dist/components/error-boundary.js.map +1 -1
  136. package/dist/components/field-base.js +5 -5
  137. package/dist/components/field-base.js.map +1 -1
  138. package/dist/components/field-parts.d.ts +1 -1
  139. package/dist/components/field-parts.js +10 -14
  140. package/dist/components/field-parts.js.map +1 -1
  141. package/dist/components/field-sync.js +8 -10
  142. package/dist/components/field-sync.js.map +1 -1
  143. package/dist/components/file-button.js.map +1 -1
  144. package/dist/components/file-dropzone.js.map +1 -1
  145. package/dist/components/floating-panel.js +4 -1
  146. package/dist/components/floating-panel.js.map +1 -1
  147. package/dist/components/focus-ring.js.map +1 -1
  148. package/dist/components/form-actions.js.map +1 -1
  149. package/dist/components/grouped-picker.js +6 -8
  150. package/dist/components/grouped-picker.js.map +1 -1
  151. package/dist/components/hover-menu.js +1 -4
  152. package/dist/components/hover-menu.js.map +1 -1
  153. package/dist/components/iban-input-labels.js.map +1 -1
  154. package/dist/components/icon-button.js +4 -1
  155. package/dist/components/icon-button.js.map +1 -1
  156. package/dist/components/icon-picker.js +2 -7
  157. package/dist/components/icon-picker.js.map +1 -1
  158. package/dist/components/image-grid.js +41 -50
  159. package/dist/components/image-grid.js.map +1 -1
  160. package/dist/components/inline-edit-field.js.map +1 -1
  161. package/dist/components/inline-entity-combobox.js +2 -8
  162. package/dist/components/inline-entity-combobox.js.map +1 -1
  163. package/dist/components/input.js +14 -2
  164. package/dist/components/input.js.map +1 -1
  165. package/dist/components/jump-calendar.js +1 -7
  166. package/dist/components/jump-calendar.js.map +1 -1
  167. package/dist/components/legal-labels.js.map +1 -1
  168. package/dist/components/legal-page.js +14 -2
  169. package/dist/components/legal-page.js.map +1 -1
  170. package/dist/components/legal.js +12 -2
  171. package/dist/components/legal.js.map +1 -1
  172. package/dist/components/lightbox.js.map +1 -1
  173. package/dist/components/line-items.js +26 -36
  174. package/dist/components/line-items.js.map +1 -1
  175. package/dist/components/list.js +22 -10
  176. package/dist/components/list.js.map +1 -1
  177. package/dist/components/measured-grid.js +29 -53
  178. package/dist/components/measured-grid.js.map +1 -1
  179. package/dist/components/menu-item.js.map +1 -1
  180. package/dist/components/mini-calendar.js +13 -31
  181. package/dist/components/mini-calendar.js.map +1 -1
  182. package/dist/components/money-field.js.map +1 -1
  183. package/dist/components/month-picker.js +10 -21
  184. package/dist/components/month-picker.js.map +1 -1
  185. package/dist/components/multi-entity-combobox.js +3 -16
  186. package/dist/components/multi-entity-combobox.js.map +1 -1
  187. package/dist/components/multi-select.js.map +1 -1
  188. package/dist/components/nav-pills.js +10 -1
  189. package/dist/components/nav-pills.js.map +1 -1
  190. package/dist/components/number-field.js.map +1 -1
  191. package/dist/components/number-input.js +1 -7
  192. package/dist/components/number-input.js.map +1 -1
  193. package/dist/components/numpad-sheet.js +1 -4
  194. package/dist/components/numpad-sheet.js.map +1 -1
  195. package/dist/components/one-time-code-input.js +1 -7
  196. package/dist/components/one-time-code-input.js.map +1 -1
  197. package/dist/components/page-contents.js +13 -22
  198. package/dist/components/page-contents.js.map +1 -1
  199. package/dist/components/page-header.js +1 -11
  200. package/dist/components/page-header.js.map +1 -1
  201. package/dist/components/password-strength-labels.js.map +1 -1
  202. package/dist/components/password-strength.js +2 -8
  203. package/dist/components/password-strength.js.map +1 -1
  204. package/dist/components/phone-input.js +42 -57
  205. package/dist/components/phone-input.js.map +1 -1
  206. package/dist/components/picker-sheet.js.map +1 -1
  207. package/dist/components/pie-chart.js +1 -8
  208. package/dist/components/pie-chart.js.map +1 -1
  209. package/dist/components/popover.js.map +1 -1
  210. package/dist/components/progress-bar.js +16 -9
  211. package/dist/components/progress-bar.js.map +1 -1
  212. package/dist/components/qr-code.js +1 -8
  213. package/dist/components/qr-code.js.map +1 -1
  214. package/dist/components/row-actions.js +5 -1
  215. package/dist/components/row-actions.js.map +1 -1
  216. package/dist/components/search-field.js.map +1 -1
  217. package/dist/components/select.js +28 -38
  218. package/dist/components/select.js.map +1 -1
  219. package/dist/components/separator.js +1 -5
  220. package/dist/components/separator.js.map +1 -1
  221. package/dist/components/series-chart-axes.js +4 -1
  222. package/dist/components/series-chart-axes.js.map +1 -1
  223. package/dist/components/series-chart-budget.js.map +1 -1
  224. package/dist/components/series-chart-ticks.js.map +1 -1
  225. package/dist/components/series-chart.js +29 -45
  226. package/dist/components/series-chart.js.map +1 -1
  227. package/dist/components/settings-fields.js +21 -17
  228. package/dist/components/settings-fields.js.map +1 -1
  229. package/dist/components/share-card.js +4 -9
  230. package/dist/components/share-card.js.map +1 -1
  231. package/dist/components/sign-chip.js.map +1 -1
  232. package/dist/components/signature-pad.js +4 -13
  233. package/dist/components/signature-pad.js.map +1 -1
  234. package/dist/components/signed-amount.js +12 -5
  235. package/dist/components/signed-amount.js.map +1 -1
  236. package/dist/components/skeleton.js +2 -17
  237. package/dist/components/skeleton.js.map +1 -1
  238. package/dist/components/slider.js +13 -36
  239. package/dist/components/slider.js.map +1 -1
  240. package/dist/components/sparkline.js.map +1 -1
  241. package/dist/components/stat-tile.js +14 -10
  242. package/dist/components/stat-tile.js.map +1 -1
  243. package/dist/components/swatch-picker.js +14 -4
  244. package/dist/components/swatch-picker.js.map +1 -1
  245. package/dist/components/swipeable-row.d.ts +1 -1
  246. package/dist/components/swipeable-row.js +1 -8
  247. package/dist/components/swipeable-row.js.map +1 -1
  248. package/dist/components/table-skeleton.js +4 -1
  249. package/dist/components/table-skeleton.js.map +1 -1
  250. package/dist/components/table.js +12 -9
  251. package/dist/components/table.js.map +1 -1
  252. package/dist/components/tabs.js +5 -24
  253. package/dist/components/tabs.js.map +1 -1
  254. package/dist/components/text-link.js.map +1 -1
  255. package/dist/components/text.js.map +1 -1
  256. package/dist/components/tile-radio.js +1 -7
  257. package/dist/components/tile-radio.js.map +1 -1
  258. package/dist/components/time-input.js.map +1 -1
  259. package/dist/components/toast.js.map +1 -1
  260. package/dist/components/toggle-group.js +6 -1
  261. package/dist/components/toggle-group.js.map +1 -1
  262. package/dist/components/toggle-legend.js +2 -11
  263. package/dist/components/toggle-legend.js.map +1 -1
  264. package/dist/components/tooltip.js +2 -22
  265. package/dist/components/tooltip.js.map +1 -1
  266. package/dist/components/translation-review-editor.js +1 -4
  267. package/dist/components/translation-review-editor.js.map +1 -1
  268. package/dist/components/translation-review-parts.d.ts +1 -1
  269. package/dist/components/translation-review-parts.js +7 -1
  270. package/dist/components/translation-review-parts.js.map +1 -1
  271. package/dist/components/translation-review.js +18 -7
  272. package/dist/components/translation-review.js.map +1 -1
  273. package/dist/components/tree-view.js +14 -10
  274. package/dist/components/tree-view.js.map +1 -1
  275. package/dist/components/treemap.d.ts +24 -2
  276. package/dist/components/treemap.js +28 -4
  277. package/dist/components/treemap.js.map +1 -1
  278. package/dist/components/trigger-aria.js.map +1 -1
  279. package/dist/components/use-table-state.js +14 -11
  280. package/dist/components/use-table-state.js.map +1 -1
  281. package/dist/components/user-avatar.js +3 -26
  282. package/dist/components/user-avatar.js.map +1 -1
  283. package/dist/demo/demo-start.js +8 -4
  284. package/dist/demo/demo-start.js.map +1 -1
  285. package/dist/eslint/index.js +1 -1
  286. package/dist/feedback/feedback-attachment-labels.js.map +1 -1
  287. package/dist/feedback/feedback-attachment.js +1 -8
  288. package/dist/feedback/feedback-attachment.js.map +1 -1
  289. package/dist/feedback/feedback-capture.d.ts +1 -1
  290. package/dist/feedback/feedback-capture.js +3 -1
  291. package/dist/feedback/feedback-capture.js.map +1 -1
  292. package/dist/feedback/feedback-comment-thread.js +27 -13
  293. package/dist/feedback/feedback-comment-thread.js.map +1 -1
  294. package/dist/feedback/feedback-context.js +1 -4
  295. package/dist/feedback/feedback-context.js.map +1 -1
  296. package/dist/feedback/feedback-dialog.js.map +1 -1
  297. package/dist/feedback/feedback-inbox.js.map +1 -1
  298. package/dist/feedback/feedback-public-list.js +7 -1
  299. package/dist/feedback/feedback-public-list.js.map +1 -1
  300. package/dist/feedback/feedback-record.js +1 -5
  301. package/dist/feedback/feedback-record.js.map +1 -1
  302. package/dist/feedback/feedback-replies.js +25 -10
  303. package/dist/feedback/feedback-replies.js.map +1 -1
  304. package/dist/feedback/feedback-row-detail.js.map +1 -1
  305. package/dist/feedback/feedback-status-undo.js.map +1 -1
  306. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  307. package/dist/feedback/feedback-table.js +4 -1
  308. package/dist/feedback/feedback-table.js.map +1 -1
  309. package/dist/feedback/feedback-thread.js +2 -13
  310. package/dist/feedback/feedback-thread.js.map +1 -1
  311. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  312. package/dist/feedback/feedback-vote-button.js.map +1 -1
  313. package/dist/hooks/use-anchored-rect.js.map +1 -1
  314. package/dist/hooks/use-document-title.js.map +1 -1
  315. package/dist/hooks/use-file-drop.js.map +1 -1
  316. package/dist/hooks/use-file-picker-labels.js.map +1 -1
  317. package/dist/hooks/use-file-picker.js.map +1 -1
  318. package/dist/hooks/use-focus-trap.js.map +1 -1
  319. package/dist/hooks/use-overlay-history.js +10 -5
  320. package/dist/hooks/use-overlay-history.js.map +1 -1
  321. package/dist/hooks/use-row-swipe.d.ts +1 -1
  322. package/dist/hooks/use-row-swipe.js +1 -6
  323. package/dist/hooks/use-row-swipe.js.map +1 -1
  324. package/dist/i18n/defaults.js +1 -4
  325. package/dist/i18n/defaults.js.map +1 -1
  326. package/dist/i18n/german.js +4 -1
  327. package/dist/i18n/german.js.map +1 -1
  328. package/dist/i18n/kit-labels.js +2 -8
  329. package/dist/i18n/kit-labels.js.map +1 -1
  330. package/dist/i18n/languages.js.map +1 -1
  331. package/dist/i18n/locales/en.js +4 -1
  332. package/dist/i18n/locales/en.js.map +2 -2
  333. package/dist/i18n/locales/es.js +4 -1
  334. package/dist/i18n/locales/es.js.map +1 -1
  335. package/dist/i18n/locales/fr.js +4 -1
  336. package/dist/i18n/locales/fr.js.map +1 -1
  337. package/dist/i18n/locales/hu.js +4 -1
  338. package/dist/i18n/locales/hu.js.map +1 -1
  339. package/dist/i18n/locales/it.js +4 -1
  340. package/dist/i18n/locales/it.js.map +1 -1
  341. package/dist/i18n/locales/zh.js.map +1 -1
  342. package/dist/i18n/plurals.js.map +1 -1
  343. package/dist/i18n/review.js +13 -7
  344. package/dist/i18n/review.js.map +1 -1
  345. package/dist/i18n/shared-labels.js.map +1 -1
  346. package/dist/index.d.ts +16 -16
  347. package/dist/index.js +40 -23
  348. package/dist/index.js.map +1 -1
  349. package/dist/landing/access.js +1 -4
  350. package/dist/landing/access.js.map +1 -1
  351. package/dist/landing/landing-sections.js +35 -38
  352. package/dist/landing/landing-sections.js.map +1 -1
  353. package/dist/landing/page-seo.js.map +1 -1
  354. package/dist/lib/calc.js.map +1 -1
  355. package/dist/lib/clipboard-minus.js.map +1 -1
  356. package/dist/lib/dates.js.map +1 -1
  357. package/dist/lib/decimal-marks.js.map +1 -1
  358. package/dist/lib/device-settings.js +2 -1
  359. package/dist/lib/device-settings.js.map +1 -1
  360. package/dist/lib/direction.js.map +1 -1
  361. package/dist/lib/iban.js.map +1 -1
  362. package/dist/lib/logger.js +1 -5
  363. package/dist/lib/logger.js.map +1 -1
  364. package/dist/lib/person-name.js.map +1 -1
  365. package/dist/lib/phone.js.map +1 -1
  366. package/dist/lib/qr-encode.js +344 -8
  367. package/dist/lib/qr-encode.js.map +1 -1
  368. package/dist/lib/session-refresh.js.map +1 -1
  369. package/dist/lib/table-text.js +15 -3
  370. package/dist/lib/table-text.js.map +1 -1
  371. package/dist/lib/text-match.d.ts +4 -0
  372. package/dist/lib/text-match.js.map +1 -1
  373. package/dist/lib/translation-review.js.map +1 -1
  374. package/dist/notifications/notification-inbox.js +63 -44
  375. package/dist/notifications/notification-inbox.js.map +1 -1
  376. package/dist/notifications/notification-parts.js.map +1 -1
  377. package/dist/notifications/notification-types-setting.js.map +1 -1
  378. package/dist/notifications/notifications-labels.js.map +1 -1
  379. package/dist/notifications/push-device-setting.js +6 -1
  380. package/dist/notifications/push-device-setting.js.map +1 -1
  381. package/dist/notifications/push-devices-setting.js.map +1 -1
  382. package/dist/notifications/push-worker.js.map +1 -1
  383. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  384. package/dist/notifications/use-push-device.js +4 -1
  385. package/dist/notifications/use-push-device.js.map +1 -1
  386. package/dist/offline/pwa-update-prompt.d.ts +1 -1
  387. package/dist/offline/pwa-update-prompt.js +7 -1
  388. package/dist/offline/pwa-update-prompt.js.map +1 -1
  389. package/dist/offline/query-persistence.js.map +1 -1
  390. package/dist/offline.d.ts +1 -1
  391. package/dist/offline.js +6 -1
  392. package/dist/offline.js.map +1 -1
  393. package/dist/pay/pay.css +8 -1
  394. package/dist/rhf/fields.d.ts +1 -2
  395. package/dist/rhf/fields.js +1 -10
  396. package/dist/rhf/fields.js.map +1 -1
  397. package/dist/rhf/form-core.js +1 -4
  398. package/dist/rhf/form-core.js.map +1 -1
  399. package/dist/rhf/line-items.js.map +1 -1
  400. package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
  401. package/dist/search/command-palette.js +71 -62
  402. package/dist/search/command-palette.js.map +1 -1
  403. package/dist/search/global-search.js +34 -5
  404. package/dist/search/global-search.js.map +1 -1
  405. package/dist/search/search-index.js.map +1 -1
  406. package/dist/settings/device-reset-setting.js +1 -6
  407. package/dist/settings/device-reset-setting.js.map +1 -1
  408. package/dist/settings/settings-heading.js.map +1 -1
  409. package/dist/settings/settings-layout.js +9 -20
  410. package/dist/settings/settings-layout.js.map +1 -1
  411. package/dist/settings/use-settings-route.js.map +1 -1
  412. package/dist/shell/app-shell.js +62 -31
  413. package/dist/shell/app-shell.js.map +1 -1
  414. package/dist/shell/auth-layout.js +1 -10
  415. package/dist/shell/auth-layout.js.map +1 -1
  416. package/dist/shell/dev-menu.js +12 -6
  417. package/dist/shell/dev-menu.js.map +1 -1
  418. package/dist/shell/option-switcher-menu.js.map +1 -1
  419. package/dist/shell/sync-status-indicator.js +7 -6
  420. package/dist/shell/sync-status-indicator.js.map +1 -1
  421. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  422. package/dist/shell/topbar-action-menu.js.map +1 -1
  423. package/dist/shell/topbar-controls.js +1 -10
  424. package/dist/shell/topbar-controls.js.map +1 -1
  425. package/dist/shell/tour-menu.js +9 -1
  426. package/dist/shell/tour-menu.js.map +1 -1
  427. package/dist/sync/db.js.map +1 -1
  428. package/dist/sync/engine.js +24 -6
  429. package/dist/sync/engine.js.map +1 -1
  430. package/dist/sync.d.ts +2 -2
  431. package/dist/sync.js +7 -1
  432. package/dist/sync.js.map +1 -1
  433. package/dist/testing/css-variables.js.map +1 -1
  434. package/dist/testing/index.d.ts +1 -1
  435. package/dist/testing/index.js +1 -3
  436. package/dist/testing/index.js.map +1 -1
  437. package/dist/testing/react.js.map +1 -1
  438. package/dist/testing/viewport.js +7 -4
  439. package/dist/testing/viewport.js.map +1 -1
  440. package/dist/theme/contrast-tokens.js +13 -2
  441. package/dist/theme/contrast-tokens.js.map +1 -1
  442. package/dist/theme/contrast.d.ts +2 -2
  443. package/dist/theme/palette-derive.d.ts +1 -1
  444. package/dist/theme/palette-derive.js +18 -29
  445. package/dist/theme/palette-derive.js.map +1 -1
  446. package/dist/theme/palette-presets.js.map +1 -1
  447. package/dist/theme/palette-store.js.map +1 -1
  448. package/dist/theme/text-size.js.map +1 -1
  449. package/dist/theme/theme-store.js +1 -3
  450. package/dist/theme/theme-store.js.map +1 -1
  451. package/dist/tour/tour-catalogue.js.map +1 -1
  452. package/dist/tour/tour-dock.js +5 -1
  453. package/dist/tour/tour-dock.js.map +1 -1
  454. package/dist/tour/tour-engine.js +1 -4
  455. package/dist/tour/tour-engine.js.map +1 -1
  456. package/dist/tour/tour.js +21 -12
  457. package/dist/tour/tour.js.map +1 -1
  458. package/dist/tour/use-tour-progress.js.map +1 -1
  459. package/dist/tour/use-tour-url-sync.js.map +1 -1
  460. package/dist/wizard/stepper-nav.js +3 -24
  461. package/dist/wizard/stepper-nav.js.map +1 -1
  462. package/dist/wizard/types.js.map +1 -1
  463. package/dist/wizard/use-wizard.js +24 -28
  464. package/dist/wizard/use-wizard.js.map +1 -1
  465. package/dist/wizard/validation.js.map +1 -1
  466. package/dist/wizard/wizard-context.js.map +1 -1
  467. package/dist/wizard/wizard-step.d.ts +1 -1
  468. package/dist/wizard/wizard-step.js +1 -8
  469. package/dist/wizard/wizard-step.js.map +1 -1
  470. package/dist/wizard/wizard-summary.js.map +1 -1
  471. package/package.json +5 -2
  472. package/src/account/account-settings-labels.ts +1 -2
  473. package/src/account/account-settings.tsx +11 -17
  474. package/src/account/delete-account-setting.tsx +1 -6
  475. package/src/account/email-change-setting-labels.ts +1 -2
  476. package/src/account/email-change-setting.tsx +3 -1
  477. package/src/account/passkeys-setting.tsx +1 -3
  478. package/src/account/sessions-setting.tsx +4 -2
  479. package/src/admin/admin-action-confirm.tsx +4 -7
  480. package/src/admin/admin-action-log.tsx +29 -29
  481. package/src/admin/admin-area-labels.ts +4 -1
  482. package/src/admin/admin-overview.tsx +8 -2
  483. package/src/admin/admin-sections.tsx +3 -1
  484. package/src/admin/admin-tool-links.tsx +7 -1
  485. package/src/admin/invitations-panel.tsx +5 -11
  486. package/src/admin/mail-test-card.tsx +1 -2
  487. package/src/admin/reviewer-scope-editor.tsx +4 -9
  488. package/src/admin/role-select.tsx +4 -2
  489. package/src/admin/user-roster.tsx +2 -11
  490. package/src/auth/accept-invitation.tsx +1 -7
  491. package/src/auth/auth-errors.ts +1 -6
  492. package/src/auth/forgot-password-form.tsx +2 -7
  493. package/src/auth/register-form.tsx +7 -8
  494. package/src/auth/reset-password-form.tsx +2 -5
  495. package/src/auth/sign-in-form.tsx +15 -14
  496. package/src/auth/verify-email.tsx +2 -7
  497. package/src/billing/billing-banner.tsx +3 -7
  498. package/src/billing/billing-labels.ts +6 -4
  499. package/src/billing/checkout-processing.ts +0 -1
  500. package/src/billing/plan-card.tsx +9 -8
  501. package/src/billing/plan-limit-toast.tsx +1 -2
  502. package/src/billing/plan-limit.ts +1 -2
  503. package/src/billing/plan-price.ts +1 -4
  504. package/src/billing/plan-switch.tsx +1 -2
  505. package/src/billing/subscription-actions.tsx +5 -2
  506. package/src/components/account-chips.tsx +1 -7
  507. package/src/components/alert-banner.tsx +2 -8
  508. package/src/components/amount-input.tsx +206 -178
  509. package/src/components/authed-image.tsx +7 -4
  510. package/src/components/autocomplete.tsx +7 -9
  511. package/src/components/bulk-action-bar.tsx +2 -7
  512. package/src/components/button-group.tsx +1 -2
  513. package/src/components/button-look.ts +6 -17
  514. package/src/components/button.tsx +1 -4
  515. package/src/components/calculator.tsx +6 -9
  516. package/src/components/calendar-heatmap.tsx +5 -10
  517. package/src/components/card.tsx +9 -13
  518. package/src/components/chart-zoom-core.tsx +6 -33
  519. package/src/components/chart.tsx +8 -31
  520. package/src/components/checkbox-group.tsx +1 -4
  521. package/src/components/chip-input.tsx +6 -6
  522. package/src/components/chip.tsx +14 -26
  523. package/src/components/choice-card.tsx +4 -18
  524. package/src/components/column-mapper-labels.ts +3 -10
  525. package/src/components/column-mapper.tsx +33 -122
  526. package/src/components/combobox-core.tsx +12 -42
  527. package/src/components/combobox.tsx +2 -6
  528. package/src/components/confirm-dialog.tsx +1 -3
  529. package/src/components/copy-button.tsx +2 -4
  530. package/src/components/country-select.tsx +9 -21
  531. package/src/components/currency-option-list.tsx +13 -14
  532. package/src/components/currency-select.tsx +2 -7
  533. package/src/components/danger-confirm.tsx +8 -9
  534. package/src/components/data-table-cells.tsx +1 -2
  535. package/src/components/data-table-column-settings.tsx +1 -3
  536. package/src/components/data-table-filter-popover.tsx +5 -19
  537. package/src/components/data-table-filters.ts +1 -6
  538. package/src/components/data-table-fit.ts +1 -3
  539. package/src/components/data-table-groups.tsx +3 -1
  540. package/src/components/data-table-head.tsx +27 -45
  541. package/src/components/data-table-mobile.tsx +99 -108
  542. package/src/components/data-table-pagination.tsx +2 -6
  543. package/src/components/data-table-row-actions.tsx +25 -24
  544. package/src/components/data-table-row.tsx +16 -17
  545. package/src/components/data-table-shared.tsx +10 -16
  546. package/src/components/data-table-sort.ts +1 -2
  547. package/src/components/data-table-virtual.ts +9 -4
  548. package/src/components/data-table.tsx +489 -501
  549. package/src/components/date-picker.tsx +1 -7
  550. package/src/components/date-range-picker.tsx +3 -13
  551. package/src/components/description-list.tsx +7 -13
  552. package/src/components/dialog-frame.tsx +12 -3
  553. package/src/components/disclosure.tsx +8 -12
  554. package/src/components/dropdown.tsx +3 -11
  555. package/src/components/empty-state.tsx +1 -3
  556. package/src/components/entity-combobox.tsx +2 -6
  557. package/src/components/error-boundary.tsx +7 -7
  558. package/src/components/field-base.tsx +8 -14
  559. package/src/components/field-parts.tsx +12 -23
  560. package/src/components/field-sync.tsx +7 -11
  561. package/src/components/file-button.tsx +7 -3
  562. package/src/components/file-dropzone.tsx +7 -12
  563. package/src/components/floating-panel.tsx +44 -51
  564. package/src/components/focus-ring.ts +1 -2
  565. package/src/components/form-actions.tsx +1 -4
  566. package/src/components/grouped-picker.tsx +6 -8
  567. package/src/components/hover-menu.tsx +1 -4
  568. package/src/components/iban-input-labels.ts +1 -2
  569. package/src/components/icon-button.tsx +46 -48
  570. package/src/components/icon-picker.tsx +4 -17
  571. package/src/components/image-grid.tsx +1 -6
  572. package/src/components/inline-edit-field.tsx +1 -5
  573. package/src/components/inline-entity-combobox.tsx +6 -21
  574. package/src/components/input.tsx +14 -2
  575. package/src/components/jump-calendar.tsx +2 -6
  576. package/src/components/legal-labels.ts +1 -2
  577. package/src/components/legal-page.tsx +18 -7
  578. package/src/components/legal.tsx +14 -5
  579. package/src/components/lightbox.tsx +1 -3
  580. package/src/components/line-items.tsx +7 -15
  581. package/src/components/list.tsx +29 -25
  582. package/src/components/measured-grid.tsx +8 -30
  583. package/src/components/menu-item.tsx +1 -3
  584. package/src/components/mini-calendar.tsx +129 -159
  585. package/src/components/money-field.tsx +4 -2
  586. package/src/components/month-picker.tsx +14 -21
  587. package/src/components/multi-entity-combobox.tsx +6 -26
  588. package/src/components/multi-select.tsx +5 -9
  589. package/src/components/nav-pills.tsx +10 -2
  590. package/src/components/number-field.tsx +18 -15
  591. package/src/components/number-input.tsx +3 -19
  592. package/src/components/numpad-sheet.tsx +9 -13
  593. package/src/components/one-time-code-input.tsx +6 -11
  594. package/src/components/page-contents.tsx +2 -9
  595. package/src/components/page-header.tsx +5 -10
  596. package/src/components/password-strength-labels.ts +1 -2
  597. package/src/components/password-strength.tsx +6 -9
  598. package/src/components/phone-input.tsx +2 -13
  599. package/src/components/picker-sheet.tsx +2 -5
  600. package/src/components/pie-chart.tsx +6 -12
  601. package/src/components/popover.tsx +2 -1
  602. package/src/components/progress-bar.tsx +16 -25
  603. package/src/components/qr-code.tsx +2 -9
  604. package/src/components/row-actions.tsx +9 -1
  605. package/src/components/search-field.tsx +4 -5
  606. package/src/components/select.tsx +2 -10
  607. package/src/components/separator.tsx +1 -5
  608. package/src/components/series-chart-axes.ts +5 -5
  609. package/src/components/series-chart-budget.ts +1 -4
  610. package/src/components/series-chart-ticks.ts +1 -4
  611. package/src/components/series-chart.tsx +43 -83
  612. package/src/components/settings-fields.tsx +20 -15
  613. package/src/components/share-card.tsx +6 -14
  614. package/src/components/sign-chip.tsx +16 -16
  615. package/src/components/signature-pad.tsx +21 -13
  616. package/src/components/signed-amount.tsx +6 -14
  617. package/src/components/skeleton.tsx +2 -13
  618. package/src/components/slider.tsx +9 -20
  619. package/src/components/sparkline.tsx +2 -13
  620. package/src/components/stat-tile.tsx +13 -24
  621. package/src/components/swatch-picker.tsx +8 -3
  622. package/src/components/swipeable-row.tsx +2 -11
  623. package/src/components/table-skeleton.tsx +4 -1
  624. package/src/components/table.tsx +12 -8
  625. package/src/components/tabs.tsx +24 -39
  626. package/src/components/text-link.tsx +6 -6
  627. package/src/components/text.tsx +1 -2
  628. package/src/components/tile-radio.tsx +6 -19
  629. package/src/components/time-input.tsx +4 -5
  630. package/src/components/toast.tsx +3 -12
  631. package/src/components/toggle-group.tsx +9 -9
  632. package/src/components/toggle-legend.tsx +4 -16
  633. package/src/components/tooltip.tsx +9 -48
  634. package/src/components/translation-review-editor.tsx +4 -4
  635. package/src/components/translation-review-parts.tsx +7 -1
  636. package/src/components/translation-review.tsx +15 -16
  637. package/src/components/tree-view.tsx +17 -20
  638. package/src/components/treemap.tsx +59 -9
  639. package/src/components/trigger-aria.ts +1 -4
  640. package/src/components/use-table-state.ts +16 -17
  641. package/src/components/user-avatar.tsx +4 -21
  642. package/src/demo/demo-start.tsx +8 -4
  643. package/src/feedback/feedback-attachment-labels.ts +2 -1
  644. package/src/feedback/feedback-attachment.tsx +16 -29
  645. package/src/feedback/feedback-capture.ts +3 -1
  646. package/src/feedback/feedback-comment-thread.tsx +9 -6
  647. package/src/feedback/feedback-context.tsx +1 -4
  648. package/src/feedback/feedback-dialog.tsx +3 -4
  649. package/src/feedback/feedback-inbox.tsx +3 -9
  650. package/src/feedback/feedback-public-list.tsx +7 -1
  651. package/src/feedback/feedback-record.ts +6 -14
  652. package/src/feedback/feedback-replies.tsx +10 -5
  653. package/src/feedback/feedback-row-detail.tsx +2 -5
  654. package/src/feedback/feedback-status-undo.ts +1 -4
  655. package/src/feedback/feedback-submit-dialog.tsx +4 -4
  656. package/src/feedback/feedback-table.tsx +12 -8
  657. package/src/feedback/feedback-thread.tsx +4 -16
  658. package/src/feedback/feedback-vocabulary.ts +72 -82
  659. package/src/feedback/feedback-vote-button.tsx +9 -8
  660. package/src/hooks/use-anchored-rect.ts +1 -4
  661. package/src/hooks/use-document-title.ts +3 -1
  662. package/src/hooks/use-file-drop.ts +1 -3
  663. package/src/hooks/use-file-picker-labels.ts +1 -2
  664. package/src/hooks/use-file-picker.tsx +1 -5
  665. package/src/hooks/use-focus-trap.ts +1 -2
  666. package/src/hooks/use-overlay-history.ts +10 -5
  667. package/src/hooks/use-row-swipe.ts +1 -6
  668. package/src/i18n/defaults.ts +1 -4
  669. package/src/i18n/german.ts +33 -49
  670. package/src/i18n/kit-labels.tsx +5 -20
  671. package/src/i18n/languages.ts +2 -8
  672. package/src/i18n/locales/en.ts +11 -31
  673. package/src/i18n/locales/es.ts +35 -49
  674. package/src/i18n/locales/fr.ts +34 -51
  675. package/src/i18n/locales/hu.ts +26 -37
  676. package/src/i18n/locales/it.ts +35 -52
  677. package/src/i18n/locales/zh.ts +14 -32
  678. package/src/i18n/plurals.ts +4 -1
  679. package/src/i18n/review.ts +18 -7
  680. package/src/i18n/shared-labels.ts +1 -2
  681. package/src/index.ts +106 -32
  682. package/src/landing/access.ts +2 -7
  683. package/src/landing/landing-sections.tsx +14 -15
  684. package/src/landing/page-seo.ts +1 -3
  685. package/src/lib/calc.ts +4 -1
  686. package/src/lib/clipboard-minus.ts +4 -1
  687. package/src/lib/dates.ts +2 -10
  688. package/src/lib/decimal-marks.ts +1 -3
  689. package/src/lib/device-settings.ts +2 -1
  690. package/src/lib/direction.ts +1 -3
  691. package/src/lib/iban.ts +89 -9
  692. package/src/lib/logger.ts +1 -5
  693. package/src/lib/person-name.ts +1 -3
  694. package/src/lib/phone.ts +5 -8
  695. package/src/lib/qr-encode.ts +32 -8
  696. package/src/lib/session-refresh.ts +5 -6
  697. package/src/lib/table-text.ts +24 -6
  698. package/src/lib/text-match.ts +15 -3
  699. package/src/lib/translation-review.ts +1 -3
  700. package/src/notifications/notification-inbox.tsx +17 -4
  701. package/src/notifications/notification-parts.tsx +1 -2
  702. package/src/notifications/notification-types-setting.tsx +19 -18
  703. package/src/notifications/notifications-labels.ts +1 -2
  704. package/src/notifications/push-device-setting.tsx +7 -1
  705. package/src/notifications/push-devices-setting.tsx +7 -3
  706. package/src/notifications/push-worker.ts +10 -2
  707. package/src/notifications/quiet-hours-setting.tsx +4 -1
  708. package/src/notifications/use-push-device.ts +4 -1
  709. package/src/offline/pwa-update-prompt.tsx +7 -1
  710. package/src/offline/query-persistence.ts +9 -6
  711. package/src/offline.ts +6 -1
  712. package/src/rhf/fields.tsx +50 -19
  713. package/src/rhf/form-core.tsx +2 -6
  714. package/src/rhf/line-items.tsx +5 -7
  715. package/src/rhf/use-rhf-wizard-step.ts +3 -12
  716. package/src/search/command-palette.tsx +15 -23
  717. package/src/search/global-search.tsx +38 -8
  718. package/src/search/search-index.ts +5 -1
  719. package/src/settings/device-reset-setting.tsx +5 -8
  720. package/src/settings/settings-heading.tsx +3 -1
  721. package/src/settings/settings-layout.tsx +6 -13
  722. package/src/settings/use-settings-route.ts +4 -3
  723. package/src/shell/app-shell.tsx +48 -24
  724. package/src/shell/auth-layout.tsx +1 -6
  725. package/src/shell/dev-menu.tsx +12 -6
  726. package/src/shell/option-switcher-menu.tsx +1 -3
  727. package/src/shell/sync-status-indicator.tsx +14 -12
  728. package/src/shell/top-bar-parts-labels.ts +1 -3
  729. package/src/shell/topbar-action-menu.tsx +9 -8
  730. package/src/shell/topbar-controls.tsx +5 -19
  731. package/src/shell/tour-menu.tsx +9 -1
  732. package/src/sync/db.ts +5 -1
  733. package/src/sync/engine.ts +44 -12
  734. package/src/sync.ts +16 -2
  735. package/src/testing/css-variables.ts +1 -2
  736. package/src/testing/index.ts +1 -6
  737. package/src/testing/react.ts +1 -2
  738. package/src/testing/viewport.ts +9 -9
  739. package/src/theme/contrast-tokens.ts +13 -2
  740. package/src/theme/palette-derive.ts +24 -50
  741. package/src/theme/palette-presets.ts +0 -1
  742. package/src/theme/palette-store.ts +1 -4
  743. package/src/theme/text-size.ts +1 -1
  744. package/src/theme/theme-store.ts +2 -6
  745. package/src/tour/tour-catalogue.tsx +4 -2
  746. package/src/tour/tour-dock.ts +5 -1
  747. package/src/tour/tour-engine.ts +2 -6
  748. package/src/tour/tour.tsx +28 -12
  749. package/src/tour/use-tour-progress.ts +8 -2
  750. package/src/tour/use-tour-url-sync.ts +3 -1
  751. package/src/vite-env.d.ts +1 -4
  752. package/src/wizard/stepper-nav.tsx +10 -35
  753. package/src/wizard/types.ts +1 -4
  754. package/src/wizard/use-wizard.ts +28 -43
  755. package/src/wizard/validation.ts +1 -5
  756. package/src/wizard/wizard-context.tsx +2 -6
  757. package/src/wizard/wizard-step.tsx +1 -8
  758. package/src/wizard/wizard-summary.tsx +2 -6
  759. package/tokens.css +393 -152
@@ -5,11 +5,7 @@ import { cn } from "../lib/cn";
5
5
  import { FIELD_TOUCH_TEXT } from "./field-base";
6
6
  import { FOCUS_RING } from "./focus-ring";
7
7
  import { evaluateExpression, formatResult, isBareAmount, splitLeadingSign } from "../lib/calc";
8
- import {
9
- DEFAULT_CALCULATOR_LABELS,
10
- useKitLabels,
11
- type CalculatorLabels,
12
- } from "../i18n/kit-labels";
8
+ import { DEFAULT_CALCULATOR_LABELS, useKitLabels, type CalculatorLabels } from "../i18n/kit-labels";
13
9
 
14
10
  /** Screen-reader names for the calculator panel's own controls — any part of the
15
11
  * kit's `calculator` namespace. Once three optional keys of its own; widened, not
@@ -46,9 +42,7 @@ interface CalculatorButtonProps {
46
42
  /** Keypad layout (4 columns). The final C/= row is rendered separately. `name` is
47
43
  * the key of the {@link CalculatorLabels} entry that names a non-digit key; a digit
48
44
  * is named by its own glyph. */
49
- type Key =
50
- | { kind: "ins"; label: string; ins: string; accent?: boolean; name?: KeyName }
51
- | { kind: "back" };
45
+ type Key = { kind: "ins"; label: string; ins: string; accent?: boolean; name?: KeyName } | { kind: "back" };
52
46
 
53
47
  type KeyName = "plus" | "minus" | "times" | "divide" | "decimal";
54
48
 
@@ -158,7 +152,10 @@ function CalculatorPanel({
158
152
  // is right-aligned in every script too — so both stay physical, pinned
159
153
  // with `dir="ltr"` rather than mirrored in a right-to-left form.
160
154
  dir="ltr"
161
- className={cn("block w-full rounded-md border border-subtle bg-surface px-2 py-1.5 text-right font-mono text-sm text-primary focus:border-strong focus:ring-strong", FIELD_TOUCH_TEXT)}
155
+ className={cn(
156
+ "block w-full rounded-md border border-subtle bg-surface px-2 py-1.5 text-right font-mono text-sm text-primary focus:border-strong focus:ring-strong",
157
+ FIELD_TOUCH_TEXT,
158
+ )}
162
159
  />
163
160
  <div dir="ltr" className="h-4 pr-1 text-right font-mono text-xs text-placeholder">
164
161
  {result !== null && formatResult(result) !== text.trim() ? `= ${formatResult(result)}` : ""}
@@ -493,7 +493,9 @@ export function CalendarHeatmap({
493
493
  const gridName = ariaLabel ?? labels.grid;
494
494
  let body: ReactNode;
495
495
  if (layout === "weeks") {
496
- const columns = { gridTemplateColumns: `var(--heatmap-label, 2rem) repeat(${weekCount}, var(--heatmap-cell, 0.75rem))` } as CSSProperties;
496
+ const columns = {
497
+ gridTemplateColumns: `var(--heatmap-label, 2rem) repeat(${weekCount}, var(--heatmap-cell, 0.75rem))`,
498
+ } as CSSProperties;
497
499
  const cellSize = "size-[var(--heatmap-cell,0.75rem)]";
498
500
  // A month's name over the first column that holds its 1st — or over the first
499
501
  // column, when the window opens far enough before the next month for it to fit.
@@ -576,20 +578,13 @@ export function CalendarHeatmap({
576
578
 
577
579
  return (
578
580
  <div {...rest} className={cn("min-w-0", className)}>
579
- {dropped > 0 && (
580
- <div className="mb-2 text-xs text-muted">{labels.truncated(dropped)}</div>
581
- )}
581
+ {dropped > 0 && <div className="mb-2 text-xs text-muted">{labels.truncated(dropped)}</div>}
582
582
  {body}
583
583
  {legend && (
584
584
  <div aria-hidden className="mt-2 flex items-center justify-end gap-1 text-micro text-muted">
585
585
  <span className="me-0.5">{labels.less}</span>
586
586
  {legendLevels.map((l) => (
587
- <span
588
- key={l}
589
- data-legend-level={l}
590
- className="size-2.5 rounded-sm"
591
- style={{ background: legendFill(l) }}
592
- />
587
+ <span key={l} data-legend-level={l} className="size-2.5 rounded-sm" style={{ background: legendFill(l) }} />
593
588
  ))}
594
589
  <span className="ms-0.5">{labels.more}</span>
595
590
  </div>
@@ -205,14 +205,14 @@ export function Card({
205
205
  ? // No shadow and no `flush`: it sits on a surface that already has both.
206
206
  "rounded-lg border border-subtle bg-surface p-4"
207
207
  : cn(
208
- // Surface + border are theme tokens so the palette switcher (feedback
209
- // #307) can re-skin every card; a caller's own bg-*/border-* override
210
- // still wins via tailwind-merge.
211
- "bg-surface",
212
- flush
213
- ? "border-y border-subtle md:rounded-lg md:border md:shadow-sm"
214
- : "rounded-lg border border-subtle shadow-sm",
215
- ),
208
+ // Surface + border are theme tokens so the palette switcher (feedback
209
+ // #307) can re-skin every card; a caller's own bg-*/border-* override
210
+ // still wins via tailwind-merge.
211
+ "bg-surface",
212
+ flush
213
+ ? "border-y border-subtle md:rounded-lg md:border md:shadow-sm"
214
+ : "rounded-lg border border-subtle shadow-sm",
215
+ ),
216
216
  toned && (bordered ? toned.border : toned.fill),
217
217
  strong && tone && CARD_TONES_STRONG[tone],
218
218
  toneFill && bordered && tone && CARD_TONE_WASH[tone],
@@ -372,10 +372,6 @@ export function CardContent({ className, ...props }: CardContentProps) {
372
372
  export function CardFooter({ className, ...props }: CardFooterProps) {
373
373
  const padded = useContext(CardPaddedContext);
374
374
  return (
375
- <div
376
- data-slot="card-footer"
377
- className={cn("flex items-center", !padded && "px-6 pb-6", className)}
378
- {...props}
379
- />
375
+ <div data-slot="card-footer" className={cn("flex items-center", !padded && "px-6 pb-6", className)} {...props} />
380
376
  );
381
377
  }
@@ -26,12 +26,7 @@
26
26
  // types, and until 0.35 the deprecated arithmetic and HOC, which no app imports.
27
27
  import { createContext, useContext, useEffect, useRef, useState } from "react";
28
28
  import type { ComponentType, Dispatch, ReactNode, SetStateAction } from "react";
29
- import {
30
- usePlotArea,
31
- useXAxisInverseScale,
32
- useYAxisInverseScale,
33
- type InverseScaleFunction,
34
- } from "recharts";
29
+ import { usePlotArea, useXAxisInverseScale, useYAxisInverseScale, type InverseScaleFunction } from "recharts";
35
30
  import { X } from "lucide-react";
36
31
  import { cn } from "../lib/cn";
37
32
  import { FOCUS_RING } from "./focus-ring";
@@ -202,9 +197,7 @@ function widen(span: Span, value: unknown): Span {
202
197
 
203
198
  /** Which series are measured on an axis. */
204
199
  function keysOn(source: ZoomFitSource, axisId: string): string[] {
205
- return source.series
206
- .filter((entry) => (entry.axis ?? DEFAULT_Y_AXIS) === axisId)
207
- .map((entry) => entry.key);
200
+ return source.series.filter((entry) => (entry.axis ?? DEFAULT_Y_AXIS) === axisId).map((entry) => entry.key);
208
201
  }
209
202
 
210
203
  /** A row's value as a sample, or 0 for a stack's missing layer — a stacked bar with no
@@ -274,10 +267,7 @@ export function axisExtent(
274
267
  * An axis with nothing inside the window is left OUT rather than collapsed: a window
275
268
  * between two samples is one where the chart should keep drawing the line across.
276
269
  */
277
- export function fitYToX(
278
- source: ZoomFitSource,
279
- window: readonly [number, number],
280
- ): Record<string, [number, number]> {
270
+ export function fitYToX(source: ZoomFitSource, window: readonly [number, number]): Record<string, [number, number]> {
281
271
  const fitted: Record<string, [number, number]> = {};
282
272
  for (const axis of source.axes) {
283
273
  const span = axisExtent(source, axis.id, window);
@@ -328,11 +318,7 @@ export const NO_ZOOM: ZoomState = { x: undefined, y: null };
328
318
  * the first: a band down y keeps the x window when the band holds no samples, and
329
319
  * otherwise pulls x in to where they are.
330
320
  */
331
- export function zoomAfter(
332
- state: ZoomState,
333
- selection: ZoomSelection,
334
- source: ZoomFitSource,
335
- ): ZoomState {
321
+ export function zoomAfter(state: ZoomState, selection: ZoomSelection, source: ZoomFitSource): ZoomState {
336
322
  if (selection.which === "both") return { x: selection.x, y: selection.y };
337
323
  // Leave y derived, so it fits itself to what is inside the new window.
338
324
  if (selection.which === "x") return { x: selection.x, y: null };
@@ -566,14 +552,7 @@ function ZoomLayer({
566
552
  // What the drag would do, shown while it is being made: a band paints the full width
567
553
  // or height, so the reader sees it is about to let the other axis refit.
568
554
  const which = drag
569
- ? zoomAxesFor(
570
- drag.toX - drag.fromX,
571
- drag.toY - drag.fromY,
572
- plot.width,
573
- plot.height,
574
- ZOOM_SQUARE_ENOUGH,
575
- only,
576
- )
555
+ ? zoomAxesFor(drag.toX - drag.fromX, drag.toY - drag.fromY, plot.width, plot.height, ZOOM_SQUARE_ENOUGH, only)
577
556
  : null;
578
557
 
579
558
  return (
@@ -635,13 +614,7 @@ function ZoomLayer({
635
614
  }
636
615
 
637
616
  /** One axis's pixel→value function, parked where the pointer handler can reach it. */
638
- function AxisProbe({
639
- axisId,
640
- scales,
641
- }: {
642
- axisId: string;
643
- scales: Map<string, InverseScaleFunction | undefined>;
644
- }) {
617
+ function AxisProbe({ axisId, scales }: { axisId: string; scales: Map<string, InverseScaleFunction | undefined> }) {
645
618
  const inverse = useYAxisInverseScale(axisId);
646
619
  useEffect(() => {
647
620
  scales.set(axisId, inverse);
@@ -10,11 +10,7 @@
10
10
  // that make shadcn charts read as "designed" rather than "default Recharts".
11
11
  import { createContext, useContext, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
12
12
  import type { ComponentProps, CSSProperties, ReactNode, RefObject } from "react";
13
- import {
14
- Legend as RechartsLegend,
15
- ResponsiveContainer,
16
- Tooltip as RechartsTooltip,
17
- } from "recharts";
13
+ import { Legend as RechartsLegend, ResponsiveContainer, Tooltip as RechartsTooltip } from "recharts";
18
14
  import { cn } from "../lib/cn";
19
15
  import { isRtl } from "../lib/direction";
20
16
  import { TYPOGRAPHIC_MINUS } from "../lib/minus";
@@ -116,8 +112,7 @@ const CSS_IDENT = /^[A-Za-z_][A-Za-z0-9_-]*$/;
116
112
  * deliberately not accepted: its second argument is an arbitrary value, i.e. the same
117
113
  * hole in a shape that looks safe.
118
114
  */
119
- const CSS_COLOR =
120
- /^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|(?:rgba?|hsla?)\([0-9A-Za-z.,%/ -]*\)|var\(--[A-Za-z0-9_-]+\))$/;
115
+ const CSS_COLOR = /^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|(?:rgba?|hsla?)\([0-9A-Za-z.,%/ -]*\)|var\(--[A-Za-z0-9_-]+\))$/;
121
116
 
122
117
  /**
123
118
  * The colour an entry is painted with, or `undefined` when the style block refuses it.
@@ -152,9 +147,7 @@ function ChartStyle({ id, config }: { id: string; config: ChartConfig }) {
152
147
  return true;
153
148
  });
154
149
  if (!entries.length) return null;
155
- const css = `[data-chart=${id}] {\n${entries
156
- .map(([key, c]) => ` --color-${key}: ${c.color};`)
157
- .join("\n")}\n}`;
150
+ const css = `[data-chart=${id}] {\n${entries.map(([key, c]) => ` --color-${key}: ${c.color};`).join("\n")}\n}`;
158
151
  return <style dangerouslySetInnerHTML={{ __html: css }} />;
159
152
  }
160
153
 
@@ -387,17 +380,10 @@ export function ChartTooltipContent({
387
380
  className={cn("flex items-center", inRow ? "min-w-0 max-w-[12rem] gap-1.5" : "gap-2")}
388
381
  >
389
382
  <span
390
- className={cn(
391
- "shrink-0 rounded-[2px]",
392
- indicator === "dot" ? "h-2.5 w-2.5 rounded-full" : "h-2.5 w-1",
393
- )}
383
+ className={cn("shrink-0 rounded-[2px]", indicator === "dot" ? "h-2.5 w-2.5 rounded-full" : "h-2.5 w-1")}
394
384
  style={{ backgroundColor: color }}
395
385
  />
396
- <span
397
- className={cn("min-w-0 text-muted", inRow ? "truncate" : "break-words")}
398
- >
399
- {name}
400
- </span>
386
+ <span className={cn("min-w-0 text-muted", inRow ? "truncate" : "break-words")}>{name}</span>
401
387
  <span
402
388
  data-private
403
389
  // Isolated, so an RTL page does not turn "-26.6" into "26.6-": a figure has no
@@ -457,9 +443,7 @@ export function ChartTooltipContent({
457
443
  className="min-w-[9rem] max-w-[min(20rem,calc(100vw-2rem))] rounded-lg border border-subtle bg-surface px-2.5 py-2 text-xs shadow-xl"
458
444
  >
459
445
  {!hideLabel && label != null && (
460
- <div className="mb-1.5 font-medium text-primary">
461
- {labelFormatter ? labelFormatter(label) : label}
462
- </div>
446
+ <div className="mb-1.5 font-medium text-primary">{labelFormatter ? labelFormatter(label) : label}</div>
463
447
  )}
464
448
  <div className="grid gap-1.5">{items.map((item, i) => tooltipRow(item, i, false))}</div>
465
449
  </div>
@@ -490,12 +474,7 @@ interface ChartLegendContentProps {
490
474
  activeKey?: string | null;
491
475
  }
492
476
 
493
- export function ChartLegendContent({
494
- payload,
495
- onItemClick,
496
- hiddenKeys,
497
- activeKey,
498
- }: ChartLegendContentProps) {
477
+ export function ChartLegendContent({ payload, onItemClick, hiddenKeys, activeKey }: ChartLegendContentProps) {
499
478
  const hidden = hiddenKeys ? new Set(hiddenKeys) : null;
500
479
  const config = useChart();
501
480
  if (!payload?.length) return null;
@@ -536,9 +515,7 @@ export function ChartLegendContent({
536
515
  // in isolate mode pressed = the isolated one. With neither supplied the
537
516
  // legend knows nothing about state, and a pressed="false" it cannot vouch
538
517
  // for would lie — so it says nothing.
539
- aria-pressed={
540
- hidden ? !off : activeKey === undefined ? undefined : activeKey === cfgKey
541
- }
518
+ aria-pressed={hidden ? !off : activeKey === undefined ? undefined : activeKey === cfgKey}
542
519
  className={className}
543
520
  >
544
521
  {swatch}
@@ -212,10 +212,7 @@ export function CheckboxGroup<T extends string = string>({
212
212
  )}
213
213
  <RequiredStarOnLegend.Provider value={true}>
214
214
  <div
215
- className={cn(
216
- layout === "horizontal" ? "flex flex-wrap gap-x-4 gap-y-2" : COLUMNS[columns],
217
- listClassName,
218
- )}
215
+ className={cn(layout === "horizontal" ? "flex flex-wrap gap-x-4 gap-y-2" : COLUMNS[columns], listClassName)}
219
216
  >
220
217
  {options.map((o) => (
221
218
  <Checkbox
@@ -37,8 +37,7 @@ export { DEFAULT_CHIP_INPUT_LABELS };
37
37
  * div's `onChange` is omitted rather than shadowed. `placeholder` is likewise this
38
38
  * component's, forwarded to the inner `<input>`; the div has none of its own.
39
39
  */
40
- export interface ChipInputProps
41
- extends Omit<ComponentPropsWithoutRef<"div">, "onChange" | "placeholder" | "children"> {
40
+ export interface ChipInputProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange" | "placeholder" | "children"> {
42
41
  value: string[];
43
42
  onChange: (next: string[]) => void;
44
43
  placeholder?: string;
@@ -127,9 +126,7 @@ export function ChipInput({
127
126
  const errorId = `${id}-error`;
128
127
  const rejectedId = `${id}-rejected`;
129
128
  const isInvalid = invalid || !!error;
130
- const describedBy = [error ? errorId : null, rejected ? rejectedId : null]
131
- .filter(Boolean)
132
- .join(" ");
129
+ const describedBy = [error ? errorId : null, rejected ? rejectedId : null].filter(Boolean).join(" ");
133
130
 
134
131
  const focusChip = (index: number | null) => {
135
132
  setFocusedChip(index);
@@ -344,7 +341,10 @@ export function ChipInput({
344
341
  // `w-0` with flex-1: without a width the browser's default input size (20
345
342
  // characters) became the field's minimum width and pushed it past a 240 px
346
343
  // phone at 150 % (0.32's screenshot run).
347
- className={cn("w-0 min-w-[6rem] flex-1 bg-transparent py-0.5 text-sm text-primary outline-none placeholder:text-placeholder disabled:cursor-default", FIELD_TOUCH_TEXT)}
344
+ className={cn(
345
+ "w-0 min-w-[6rem] flex-1 bg-transparent py-0.5 text-sm text-primary outline-none placeholder:text-placeholder disabled:cursor-default",
346
+ FIELD_TOUCH_TEXT,
347
+ )}
348
348
  />
349
349
  {/* Additions, removals and rejections move no focus, so nothing would announce
350
350
  them. `sr-only-fixed` rather than `sr-only`: this sits inside a consumer's
@@ -34,16 +34,7 @@ export type { ChipInputLabels, ChipInputProps } from "./chip-input";
34
34
  * things". Using `Button` for both is the mistake this exists to prevent.
35
35
  */
36
36
 
37
- export type ChipTone =
38
- | "neutral"
39
- | "brand"
40
- | "danger"
41
- | "warning"
42
- | "success"
43
- | "info"
44
- | "income"
45
- | "expense"
46
- | ChipHue;
37
+ export type ChipTone = "neutral" | "brand" | "danger" | "warning" | "success" | "info" | "income" | "expense" | ChipHue;
47
38
  /**
48
39
  * Categorical hues (0.10.0): colour that says "a different value" and nothing more —
49
40
  * kastlan's status-badge.tsx paints ~15 enums in 9 Tailwind hues by hand. Four of those
@@ -263,10 +254,7 @@ export interface ChipLinkProps {
263
254
  * {@link Chip}): `split` is then the interactive part's own padding — the full start
264
255
  * inset, a short end one before the ×; `tail` is the wrapper's end inset after the ×.
265
256
  */
266
- const SIZE: Record<
267
- ChipSize,
268
- { body: string; split: string; tail: string; icon: string; remove: string }
269
- > = {
257
+ const SIZE: Record<ChipSize, { body: string; split: string; tail: string; icon: string; remove: string }> = {
270
258
  xs: {
271
259
  body: "gap-1 px-1.5 py-0 text-caption leading-4",
272
260
  split: "gap-1 ps-1.5 pe-0.5 py-0 text-caption leading-4",
@@ -582,8 +570,7 @@ export function Chip({
582
570
  const interactive = !!href || !!onClick;
583
571
  // One radius for every rounded piece — the pill, the body inside a split pill, the ×
584
572
  // — so a square chip has no round focus ring inside it.
585
- const radius =
586
- shape === "square" ? (size === "sm" || size === "xs" ? "rounded" : "rounded-md") : "rounded-full";
573
+ const radius = shape === "square" ? (size === "sm" || size === "xs" ? "rounded" : "rounded-md") : "rounded-full";
587
574
  const dot = variant === "dot";
588
575
  const type = cn(caps && CAPS[size], variant === "solid" && "justify-center tabular-nums");
589
576
  const surface = cn(
@@ -682,11 +669,7 @@ export function Chip({
682
669
  // Composed through `common.fieldValue` because the punctuation between the two
683
670
  // halves is the language's, not ours. A chip whose content is not plain text
684
671
  // has no value to name, and gets the bare verb rather than a dangling colon.
685
- aria-label={
686
- typeof children === "string" && children
687
- ? common.fieldValue(common.remove, children)
688
- : common.remove
689
- }
672
+ aria-label={typeof children === "string" && children ? common.fieldValue(common.remove, children) : common.remove}
690
673
  onClick={(e) => {
691
674
  // The chip may itself be a link; removing it must not also follow it.
692
675
  e.preventDefault();
@@ -723,7 +706,15 @@ export function Chip({
723
706
  ref={snap ? snapRef : undefined}
724
707
  data-tone={tone}
725
708
  // The pill is the target's box here (§4): the body inside stretches to its height.
726
- className={cn(CHIP_PILL, s.tail, radius, surface, target && CHIP_TOUCH_LARGE, snap && "justify-center", className)}
709
+ className={cn(
710
+ CHIP_PILL,
711
+ s.tail,
712
+ radius,
713
+ surface,
714
+ target && CHIP_TOUCH_LARGE,
715
+ snap && "justify-center",
716
+ className,
717
+ )}
727
718
  >
728
719
  {inner}
729
720
  {remove}
@@ -847,9 +838,6 @@ export function Chip({
847
838
  }
848
839
 
849
840
  /** Calls a chip's `renderLink` with the props it was given — see its call site. */
850
- function RenderedLink({
851
- render,
852
- ...props
853
- }: ChipLinkProps & { render: (props: ChipLinkProps) => ReactElement }) {
841
+ function RenderedLink({ render, ...props }: ChipLinkProps & { render: (props: ChipLinkProps) => ReactElement }) {
854
842
  return render(props);
855
843
  }
@@ -163,10 +163,7 @@ export function ChoiceCard({
163
163
  });
164
164
 
165
165
  return (
166
- <label
167
- htmlFor={inputId}
168
- className={cn(CARD, disabled && CARD_DISABLED, isInvalid && CARD_INVALID, className)}
169
- >
166
+ <label htmlFor={inputId} className={cn(CARD, disabled && CARD_DISABLED, isInvalid && CARD_INVALID, className)}>
170
167
  {/* A 20px cell, so the box centres on the title's first line (text-sm). */}
171
168
  <span className="relative flex h-5 shrink-0 items-center">
172
169
  <input
@@ -187,12 +184,7 @@ export function ChoiceCard({
187
184
  onChange?.(e);
188
185
  onCheckedChange?.(e.target.checked);
189
186
  }}
190
- className={cn(
191
- BOX,
192
- type === "radio" ? RADIO : CHECKBOX,
193
- mixed && "border-brand bg-brand",
194
- inputClassName,
195
- )}
187
+ className={cn(BOX, type === "radio" ? RADIO : CHECKBOX, mixed && "border-brand bg-brand", inputClassName)}
196
188
  />
197
189
  {type === "checkbox" &&
198
190
  (mixed ? (
@@ -356,11 +348,7 @@ export function ActionCard({
356
348
  className,
357
349
  );
358
350
  const labelledBy = rest["aria-labelledby"] ?? titleId;
359
- const describedBy = mergeDescribedBy(
360
- rest["aria-describedby"],
361
- showDescription && descriptionId,
362
- showMeta && metaId,
363
- );
351
+ const describedBy = mergeDescribedBy(rest["aria-describedby"], showDescription && descriptionId, showMeta && metaId);
364
352
  const body = (
365
353
  <>
366
354
  {Icon && <Icon aria-hidden className={cn("mt-0.5 size-5 shrink-0", ICON_TONE[iconTone], iconClassName)} />}
@@ -486,9 +474,7 @@ export interface ChoiceCardMultipleProps<T extends string> extends ChoiceCardGro
486
474
  onChange: (value: T[]) => void;
487
475
  }
488
476
 
489
- export type ChoiceCardGroupProps<T extends string> =
490
- | ChoiceCardSingleProps<T>
491
- | ChoiceCardMultipleProps<T>;
477
+ export type ChoiceCardGroupProps<T extends string> = ChoiceCardSingleProps<T> | ChoiceCardMultipleProps<T>;
492
478
 
493
479
  /**
494
480
  * A set of {@link ChoiceCard}s answering one question, in a `<fieldset>`.
@@ -10,8 +10,7 @@ export const markedShort = (role: string) => `${role} *`;
10
10
 
11
11
  export const DEFAULT_COLUMN_MAPPER_LABELS: ColumnMapperLabels = {
12
12
  paste: "Paste a table",
13
- pasteHint:
14
- "Copy the rows out of a spreadsheet and paste them here, or drop a CSV or text file.",
13
+ pasteHint: "Copy the rows out of a spreadsheet and paste them here, or drop a CSV or text file.",
15
14
  chooseFile: "Choose a file",
16
15
  readError: (name) => `“${name}” could not be read`,
17
16
  headerRow: "The first line names the columns",
@@ -23,10 +22,7 @@ export const DEFAULT_COLUMN_MAPPER_LABELS: ColumnMapperLabels = {
23
22
  separatorSpace: "separated by spaces",
24
23
  decimalComma: "decimal comma (1,5)",
25
24
  decimalPoint: "decimal point (1.5)",
26
- unreadCount: (count) =>
27
- count === 1
28
- ? "1 line could not be read"
29
- : `${count} lines could not be read`,
25
+ unreadCount: (count) => (count === 1 ? "1 line could not be read" : `${count} lines could not be read`),
30
26
  unreadLine: (line) => `Line ${line} could not be read`,
31
27
  unreadMore: (count) => `…and ${count} more`,
32
28
  noRows: "No line of this text reads as a row of the table.",
@@ -36,10 +32,7 @@ export const DEFAULT_COLUMN_MAPPER_LABELS: ColumnMapperLabels = {
36
32
  ignore: "Ignore",
37
33
  requiredRole: (role) => `${role} (required)`,
38
34
  requiredRoleShort: markedShort,
39
- previewOf: (shown, total) =>
40
- shown === 1
41
- ? `The first of ${total} rows`
42
- : `The first ${shown} of ${total} rows`,
35
+ previewOf: (shown, total) => (shown === 1 ? `The first of ${total} rows` : `The first ${shown} of ${total} rows`),
43
36
  oneOf: (roles) => `either ${roles}`,
44
37
  missing: (roles) => `Still needed: ${roles}.`,
45
38
  };