@eifi1/ui-kit 0.51.4 → 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 (757) hide show
  1. package/README.md +3 -3
  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.js +1 -13
  276. package/dist/components/treemap.js.map +1 -1
  277. package/dist/components/trigger-aria.js.map +1 -1
  278. package/dist/components/use-table-state.js +14 -11
  279. package/dist/components/use-table-state.js.map +1 -1
  280. package/dist/components/user-avatar.js +3 -26
  281. package/dist/components/user-avatar.js.map +1 -1
  282. package/dist/demo/demo-start.js +8 -4
  283. package/dist/demo/demo-start.js.map +1 -1
  284. package/dist/eslint/index.js +1 -1
  285. package/dist/feedback/feedback-attachment-labels.js.map +1 -1
  286. package/dist/feedback/feedback-attachment.js +1 -8
  287. package/dist/feedback/feedback-attachment.js.map +1 -1
  288. package/dist/feedback/feedback-capture.d.ts +1 -1
  289. package/dist/feedback/feedback-capture.js +3 -1
  290. package/dist/feedback/feedback-capture.js.map +1 -1
  291. package/dist/feedback/feedback-comment-thread.js +27 -13
  292. package/dist/feedback/feedback-comment-thread.js.map +1 -1
  293. package/dist/feedback/feedback-context.js +1 -4
  294. package/dist/feedback/feedback-context.js.map +1 -1
  295. package/dist/feedback/feedback-dialog.js.map +1 -1
  296. package/dist/feedback/feedback-inbox.js.map +1 -1
  297. package/dist/feedback/feedback-public-list.js +7 -1
  298. package/dist/feedback/feedback-public-list.js.map +1 -1
  299. package/dist/feedback/feedback-record.js +1 -5
  300. package/dist/feedback/feedback-record.js.map +1 -1
  301. package/dist/feedback/feedback-replies.js +25 -10
  302. package/dist/feedback/feedback-replies.js.map +1 -1
  303. package/dist/feedback/feedback-row-detail.js.map +1 -1
  304. package/dist/feedback/feedback-status-undo.js.map +1 -1
  305. package/dist/feedback/feedback-submit-dialog.js.map +1 -1
  306. package/dist/feedback/feedback-table.js +4 -1
  307. package/dist/feedback/feedback-table.js.map +1 -1
  308. package/dist/feedback/feedback-thread.js +2 -13
  309. package/dist/feedback/feedback-thread.js.map +1 -1
  310. package/dist/feedback/feedback-vocabulary.js.map +1 -1
  311. package/dist/feedback/feedback-vote-button.js.map +1 -1
  312. package/dist/hooks/use-anchored-rect.js.map +1 -1
  313. package/dist/hooks/use-document-title.js.map +1 -1
  314. package/dist/hooks/use-file-drop.js.map +1 -1
  315. package/dist/hooks/use-file-picker-labels.js.map +1 -1
  316. package/dist/hooks/use-file-picker.js.map +1 -1
  317. package/dist/hooks/use-focus-trap.js.map +1 -1
  318. package/dist/hooks/use-overlay-history.js +10 -5
  319. package/dist/hooks/use-overlay-history.js.map +1 -1
  320. package/dist/hooks/use-row-swipe.d.ts +1 -1
  321. package/dist/hooks/use-row-swipe.js +1 -6
  322. package/dist/hooks/use-row-swipe.js.map +1 -1
  323. package/dist/i18n/defaults.js +1 -4
  324. package/dist/i18n/defaults.js.map +1 -1
  325. package/dist/i18n/german.js +4 -1
  326. package/dist/i18n/german.js.map +1 -1
  327. package/dist/i18n/kit-labels.js +2 -8
  328. package/dist/i18n/kit-labels.js.map +1 -1
  329. package/dist/i18n/languages.js.map +1 -1
  330. package/dist/i18n/locales/en.js +4 -1
  331. package/dist/i18n/locales/en.js.map +2 -2
  332. package/dist/i18n/locales/es.js +4 -1
  333. package/dist/i18n/locales/es.js.map +1 -1
  334. package/dist/i18n/locales/fr.js +4 -1
  335. package/dist/i18n/locales/fr.js.map +1 -1
  336. package/dist/i18n/locales/hu.js +4 -1
  337. package/dist/i18n/locales/hu.js.map +1 -1
  338. package/dist/i18n/locales/it.js +4 -1
  339. package/dist/i18n/locales/it.js.map +1 -1
  340. package/dist/i18n/locales/zh.js.map +1 -1
  341. package/dist/i18n/plurals.js.map +1 -1
  342. package/dist/i18n/review.js +13 -7
  343. package/dist/i18n/review.js.map +1 -1
  344. package/dist/i18n/shared-labels.js.map +1 -1
  345. package/dist/index.d.ts +16 -16
  346. package/dist/index.js +40 -23
  347. package/dist/index.js.map +1 -1
  348. package/dist/landing/access.js +1 -4
  349. package/dist/landing/access.js.map +1 -1
  350. package/dist/landing/landing-sections.js +35 -38
  351. package/dist/landing/landing-sections.js.map +1 -1
  352. package/dist/landing/page-seo.js.map +1 -1
  353. package/dist/lib/calc.js.map +1 -1
  354. package/dist/lib/clipboard-minus.js.map +1 -1
  355. package/dist/lib/dates.js.map +1 -1
  356. package/dist/lib/decimal-marks.js.map +1 -1
  357. package/dist/lib/device-settings.js +2 -1
  358. package/dist/lib/device-settings.js.map +1 -1
  359. package/dist/lib/direction.js.map +1 -1
  360. package/dist/lib/iban.js.map +1 -1
  361. package/dist/lib/logger.js +1 -5
  362. package/dist/lib/logger.js.map +1 -1
  363. package/dist/lib/person-name.js.map +1 -1
  364. package/dist/lib/phone.js.map +1 -1
  365. package/dist/lib/qr-encode.js +344 -8
  366. package/dist/lib/qr-encode.js.map +1 -1
  367. package/dist/lib/session-refresh.js.map +1 -1
  368. package/dist/lib/table-text.js +15 -3
  369. package/dist/lib/table-text.js.map +1 -1
  370. package/dist/lib/text-match.d.ts +4 -0
  371. package/dist/lib/text-match.js.map +1 -1
  372. package/dist/lib/translation-review.js.map +1 -1
  373. package/dist/notifications/notification-inbox.js +63 -44
  374. package/dist/notifications/notification-inbox.js.map +1 -1
  375. package/dist/notifications/notification-parts.js.map +1 -1
  376. package/dist/notifications/notification-types-setting.js.map +1 -1
  377. package/dist/notifications/notifications-labels.js.map +1 -1
  378. package/dist/notifications/push-device-setting.js +6 -1
  379. package/dist/notifications/push-device-setting.js.map +1 -1
  380. package/dist/notifications/push-devices-setting.js.map +1 -1
  381. package/dist/notifications/push-worker.js.map +1 -1
  382. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  383. package/dist/notifications/use-push-device.js +4 -1
  384. package/dist/notifications/use-push-device.js.map +1 -1
  385. package/dist/offline/pwa-update-prompt.d.ts +1 -1
  386. package/dist/offline/pwa-update-prompt.js +7 -1
  387. package/dist/offline/pwa-update-prompt.js.map +1 -1
  388. package/dist/offline/query-persistence.js.map +1 -1
  389. package/dist/offline.d.ts +1 -1
  390. package/dist/offline.js +6 -1
  391. package/dist/offline.js.map +1 -1
  392. package/dist/pay/pay.css +8 -1
  393. package/dist/rhf/fields.d.ts +1 -2
  394. package/dist/rhf/fields.js +1 -10
  395. package/dist/rhf/fields.js.map +1 -1
  396. package/dist/rhf/form-core.js +1 -4
  397. package/dist/rhf/form-core.js.map +1 -1
  398. package/dist/rhf/line-items.js.map +1 -1
  399. package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
  400. package/dist/search/command-palette.js +71 -62
  401. package/dist/search/command-palette.js.map +1 -1
  402. package/dist/search/global-search.js +34 -5
  403. package/dist/search/global-search.js.map +1 -1
  404. package/dist/search/search-index.js.map +1 -1
  405. package/dist/settings/device-reset-setting.js +1 -6
  406. package/dist/settings/device-reset-setting.js.map +1 -1
  407. package/dist/settings/settings-heading.js.map +1 -1
  408. package/dist/settings/settings-layout.js +9 -20
  409. package/dist/settings/settings-layout.js.map +1 -1
  410. package/dist/settings/use-settings-route.js.map +1 -1
  411. package/dist/shell/app-shell.js +62 -31
  412. package/dist/shell/app-shell.js.map +1 -1
  413. package/dist/shell/auth-layout.js +1 -10
  414. package/dist/shell/auth-layout.js.map +1 -1
  415. package/dist/shell/dev-menu.js +12 -6
  416. package/dist/shell/dev-menu.js.map +1 -1
  417. package/dist/shell/option-switcher-menu.js.map +1 -1
  418. package/dist/shell/sync-status-indicator.js +7 -6
  419. package/dist/shell/sync-status-indicator.js.map +1 -1
  420. package/dist/shell/top-bar-parts-labels.js.map +1 -1
  421. package/dist/shell/topbar-action-menu.js.map +1 -1
  422. package/dist/shell/topbar-controls.js +1 -10
  423. package/dist/shell/topbar-controls.js.map +1 -1
  424. package/dist/shell/tour-menu.js +9 -1
  425. package/dist/shell/tour-menu.js.map +1 -1
  426. package/dist/sync/db.js.map +1 -1
  427. package/dist/sync/engine.js +24 -6
  428. package/dist/sync/engine.js.map +1 -1
  429. package/dist/sync.d.ts +2 -2
  430. package/dist/sync.js +7 -1
  431. package/dist/sync.js.map +1 -1
  432. package/dist/testing/css-variables.js.map +1 -1
  433. package/dist/testing/index.d.ts +1 -1
  434. package/dist/testing/index.js +1 -3
  435. package/dist/testing/index.js.map +1 -1
  436. package/dist/testing/react.js.map +1 -1
  437. package/dist/testing/viewport.js +7 -4
  438. package/dist/testing/viewport.js.map +1 -1
  439. package/dist/theme/contrast-tokens.js +13 -2
  440. package/dist/theme/contrast-tokens.js.map +1 -1
  441. package/dist/theme/palette-derive.d.ts +1 -1
  442. package/dist/theme/palette-derive.js +18 -29
  443. package/dist/theme/palette-derive.js.map +1 -1
  444. package/dist/theme/palette-presets.js.map +1 -1
  445. package/dist/theme/palette-store.js.map +1 -1
  446. package/dist/theme/text-size.js.map +1 -1
  447. package/dist/theme/theme-store.js +1 -3
  448. package/dist/theme/theme-store.js.map +1 -1
  449. package/dist/tour/tour-catalogue.js.map +1 -1
  450. package/dist/tour/tour-dock.js +5 -1
  451. package/dist/tour/tour-dock.js.map +1 -1
  452. package/dist/tour/tour-engine.js +1 -4
  453. package/dist/tour/tour-engine.js.map +1 -1
  454. package/dist/tour/tour.js +21 -12
  455. package/dist/tour/tour.js.map +1 -1
  456. package/dist/tour/use-tour-progress.js.map +1 -1
  457. package/dist/tour/use-tour-url-sync.js.map +1 -1
  458. package/dist/wizard/stepper-nav.js +3 -24
  459. package/dist/wizard/stepper-nav.js.map +1 -1
  460. package/dist/wizard/types.js.map +1 -1
  461. package/dist/wizard/use-wizard.js +24 -28
  462. package/dist/wizard/use-wizard.js.map +1 -1
  463. package/dist/wizard/validation.js.map +1 -1
  464. package/dist/wizard/wizard-context.js.map +1 -1
  465. package/dist/wizard/wizard-step.d.ts +1 -1
  466. package/dist/wizard/wizard-step.js +1 -8
  467. package/dist/wizard/wizard-step.js.map +1 -1
  468. package/dist/wizard/wizard-summary.js.map +1 -1
  469. package/package.json +5 -2
  470. package/src/account/account-settings-labels.ts +1 -2
  471. package/src/account/account-settings.tsx +11 -17
  472. package/src/account/delete-account-setting.tsx +1 -6
  473. package/src/account/email-change-setting-labels.ts +1 -2
  474. package/src/account/email-change-setting.tsx +3 -1
  475. package/src/account/passkeys-setting.tsx +1 -3
  476. package/src/account/sessions-setting.tsx +4 -2
  477. package/src/admin/admin-action-confirm.tsx +4 -7
  478. package/src/admin/admin-action-log.tsx +29 -29
  479. package/src/admin/admin-area-labels.ts +4 -1
  480. package/src/admin/admin-overview.tsx +8 -2
  481. package/src/admin/admin-sections.tsx +3 -1
  482. package/src/admin/admin-tool-links.tsx +7 -1
  483. package/src/admin/invitations-panel.tsx +5 -11
  484. package/src/admin/mail-test-card.tsx +1 -2
  485. package/src/admin/reviewer-scope-editor.tsx +4 -9
  486. package/src/admin/role-select.tsx +4 -2
  487. package/src/admin/user-roster.tsx +2 -11
  488. package/src/auth/accept-invitation.tsx +1 -7
  489. package/src/auth/auth-errors.ts +1 -6
  490. package/src/auth/forgot-password-form.tsx +2 -7
  491. package/src/auth/register-form.tsx +7 -8
  492. package/src/auth/reset-password-form.tsx +2 -5
  493. package/src/auth/sign-in-form.tsx +15 -14
  494. package/src/auth/verify-email.tsx +2 -7
  495. package/src/billing/billing-banner.tsx +3 -7
  496. package/src/billing/billing-labels.ts +6 -4
  497. package/src/billing/checkout-processing.ts +0 -1
  498. package/src/billing/plan-card.tsx +9 -8
  499. package/src/billing/plan-limit-toast.tsx +1 -2
  500. package/src/billing/plan-limit.ts +1 -2
  501. package/src/billing/plan-price.ts +1 -4
  502. package/src/billing/plan-switch.tsx +1 -2
  503. package/src/billing/subscription-actions.tsx +5 -2
  504. package/src/components/account-chips.tsx +1 -7
  505. package/src/components/alert-banner.tsx +2 -8
  506. package/src/components/amount-input.tsx +206 -178
  507. package/src/components/authed-image.tsx +7 -4
  508. package/src/components/autocomplete.tsx +7 -9
  509. package/src/components/bulk-action-bar.tsx +2 -7
  510. package/src/components/button-group.tsx +1 -2
  511. package/src/components/button-look.ts +6 -17
  512. package/src/components/button.tsx +1 -4
  513. package/src/components/calculator.tsx +6 -9
  514. package/src/components/calendar-heatmap.tsx +5 -10
  515. package/src/components/card.tsx +9 -13
  516. package/src/components/chart-zoom-core.tsx +6 -33
  517. package/src/components/chart.tsx +8 -31
  518. package/src/components/checkbox-group.tsx +1 -4
  519. package/src/components/chip-input.tsx +6 -6
  520. package/src/components/chip.tsx +14 -26
  521. package/src/components/choice-card.tsx +4 -18
  522. package/src/components/column-mapper-labels.ts +3 -10
  523. package/src/components/column-mapper.tsx +33 -122
  524. package/src/components/combobox-core.tsx +12 -42
  525. package/src/components/combobox.tsx +2 -6
  526. package/src/components/confirm-dialog.tsx +1 -3
  527. package/src/components/copy-button.tsx +2 -4
  528. package/src/components/country-select.tsx +9 -21
  529. package/src/components/currency-option-list.tsx +13 -14
  530. package/src/components/currency-select.tsx +2 -7
  531. package/src/components/danger-confirm.tsx +8 -9
  532. package/src/components/data-table-cells.tsx +1 -2
  533. package/src/components/data-table-column-settings.tsx +1 -3
  534. package/src/components/data-table-filter-popover.tsx +5 -19
  535. package/src/components/data-table-filters.ts +1 -6
  536. package/src/components/data-table-fit.ts +1 -3
  537. package/src/components/data-table-groups.tsx +3 -1
  538. package/src/components/data-table-head.tsx +27 -45
  539. package/src/components/data-table-mobile.tsx +99 -108
  540. package/src/components/data-table-pagination.tsx +2 -6
  541. package/src/components/data-table-row-actions.tsx +25 -24
  542. package/src/components/data-table-row.tsx +16 -17
  543. package/src/components/data-table-shared.tsx +10 -16
  544. package/src/components/data-table-sort.ts +1 -2
  545. package/src/components/data-table-virtual.ts +9 -4
  546. package/src/components/data-table.tsx +489 -501
  547. package/src/components/date-picker.tsx +1 -7
  548. package/src/components/date-range-picker.tsx +3 -13
  549. package/src/components/description-list.tsx +7 -13
  550. package/src/components/dialog-frame.tsx +12 -3
  551. package/src/components/disclosure.tsx +8 -12
  552. package/src/components/dropdown.tsx +3 -11
  553. package/src/components/empty-state.tsx +1 -3
  554. package/src/components/entity-combobox.tsx +2 -6
  555. package/src/components/error-boundary.tsx +7 -7
  556. package/src/components/field-base.tsx +8 -14
  557. package/src/components/field-parts.tsx +12 -23
  558. package/src/components/field-sync.tsx +7 -11
  559. package/src/components/file-button.tsx +7 -3
  560. package/src/components/file-dropzone.tsx +7 -12
  561. package/src/components/floating-panel.tsx +44 -51
  562. package/src/components/focus-ring.ts +1 -2
  563. package/src/components/form-actions.tsx +1 -4
  564. package/src/components/grouped-picker.tsx +6 -8
  565. package/src/components/hover-menu.tsx +1 -4
  566. package/src/components/iban-input-labels.ts +1 -2
  567. package/src/components/icon-button.tsx +46 -48
  568. package/src/components/icon-picker.tsx +4 -17
  569. package/src/components/image-grid.tsx +1 -6
  570. package/src/components/inline-edit-field.tsx +1 -5
  571. package/src/components/inline-entity-combobox.tsx +6 -21
  572. package/src/components/input.tsx +14 -2
  573. package/src/components/jump-calendar.tsx +2 -6
  574. package/src/components/legal-labels.ts +1 -2
  575. package/src/components/legal-page.tsx +18 -7
  576. package/src/components/legal.tsx +14 -5
  577. package/src/components/lightbox.tsx +1 -3
  578. package/src/components/line-items.tsx +7 -15
  579. package/src/components/list.tsx +29 -25
  580. package/src/components/measured-grid.tsx +8 -30
  581. package/src/components/menu-item.tsx +1 -3
  582. package/src/components/mini-calendar.tsx +129 -159
  583. package/src/components/money-field.tsx +4 -2
  584. package/src/components/month-picker.tsx +14 -21
  585. package/src/components/multi-entity-combobox.tsx +6 -26
  586. package/src/components/multi-select.tsx +5 -9
  587. package/src/components/nav-pills.tsx +10 -2
  588. package/src/components/number-field.tsx +18 -15
  589. package/src/components/number-input.tsx +3 -19
  590. package/src/components/numpad-sheet.tsx +9 -13
  591. package/src/components/one-time-code-input.tsx +6 -11
  592. package/src/components/page-contents.tsx +2 -9
  593. package/src/components/page-header.tsx +5 -10
  594. package/src/components/password-strength-labels.ts +1 -2
  595. package/src/components/password-strength.tsx +6 -9
  596. package/src/components/phone-input.tsx +2 -13
  597. package/src/components/picker-sheet.tsx +2 -5
  598. package/src/components/pie-chart.tsx +6 -12
  599. package/src/components/popover.tsx +2 -1
  600. package/src/components/progress-bar.tsx +16 -25
  601. package/src/components/qr-code.tsx +2 -9
  602. package/src/components/row-actions.tsx +9 -1
  603. package/src/components/search-field.tsx +4 -5
  604. package/src/components/select.tsx +2 -10
  605. package/src/components/separator.tsx +1 -5
  606. package/src/components/series-chart-axes.ts +5 -5
  607. package/src/components/series-chart-budget.ts +1 -4
  608. package/src/components/series-chart-ticks.ts +1 -4
  609. package/src/components/series-chart.tsx +43 -83
  610. package/src/components/settings-fields.tsx +20 -15
  611. package/src/components/share-card.tsx +6 -14
  612. package/src/components/sign-chip.tsx +16 -16
  613. package/src/components/signature-pad.tsx +21 -13
  614. package/src/components/signed-amount.tsx +6 -14
  615. package/src/components/skeleton.tsx +2 -13
  616. package/src/components/slider.tsx +9 -20
  617. package/src/components/sparkline.tsx +2 -13
  618. package/src/components/stat-tile.tsx +13 -24
  619. package/src/components/swatch-picker.tsx +8 -3
  620. package/src/components/swipeable-row.tsx +2 -11
  621. package/src/components/table-skeleton.tsx +4 -1
  622. package/src/components/table.tsx +12 -8
  623. package/src/components/tabs.tsx +24 -39
  624. package/src/components/text-link.tsx +6 -6
  625. package/src/components/text.tsx +1 -2
  626. package/src/components/tile-radio.tsx +6 -19
  627. package/src/components/time-input.tsx +4 -5
  628. package/src/components/toast.tsx +3 -12
  629. package/src/components/toggle-group.tsx +9 -9
  630. package/src/components/toggle-legend.tsx +4 -16
  631. package/src/components/tooltip.tsx +9 -48
  632. package/src/components/translation-review-editor.tsx +4 -4
  633. package/src/components/translation-review-parts.tsx +7 -1
  634. package/src/components/translation-review.tsx +15 -16
  635. package/src/components/tree-view.tsx +17 -20
  636. package/src/components/treemap.tsx +3 -15
  637. package/src/components/trigger-aria.ts +1 -4
  638. package/src/components/use-table-state.ts +16 -17
  639. package/src/components/user-avatar.tsx +4 -21
  640. package/src/demo/demo-start.tsx +8 -4
  641. package/src/feedback/feedback-attachment-labels.ts +2 -1
  642. package/src/feedback/feedback-attachment.tsx +16 -29
  643. package/src/feedback/feedback-capture.ts +3 -1
  644. package/src/feedback/feedback-comment-thread.tsx +9 -6
  645. package/src/feedback/feedback-context.tsx +1 -4
  646. package/src/feedback/feedback-dialog.tsx +3 -4
  647. package/src/feedback/feedback-inbox.tsx +3 -9
  648. package/src/feedback/feedback-public-list.tsx +7 -1
  649. package/src/feedback/feedback-record.ts +6 -14
  650. package/src/feedback/feedback-replies.tsx +10 -5
  651. package/src/feedback/feedback-row-detail.tsx +2 -5
  652. package/src/feedback/feedback-status-undo.ts +1 -4
  653. package/src/feedback/feedback-submit-dialog.tsx +4 -4
  654. package/src/feedback/feedback-table.tsx +12 -8
  655. package/src/feedback/feedback-thread.tsx +4 -16
  656. package/src/feedback/feedback-vocabulary.ts +72 -82
  657. package/src/feedback/feedback-vote-button.tsx +9 -8
  658. package/src/hooks/use-anchored-rect.ts +1 -4
  659. package/src/hooks/use-document-title.ts +3 -1
  660. package/src/hooks/use-file-drop.ts +1 -3
  661. package/src/hooks/use-file-picker-labels.ts +1 -2
  662. package/src/hooks/use-file-picker.tsx +1 -5
  663. package/src/hooks/use-focus-trap.ts +1 -2
  664. package/src/hooks/use-overlay-history.ts +10 -5
  665. package/src/hooks/use-row-swipe.ts +1 -6
  666. package/src/i18n/defaults.ts +1 -4
  667. package/src/i18n/german.ts +33 -49
  668. package/src/i18n/kit-labels.tsx +5 -20
  669. package/src/i18n/languages.ts +2 -8
  670. package/src/i18n/locales/en.ts +11 -31
  671. package/src/i18n/locales/es.ts +35 -49
  672. package/src/i18n/locales/fr.ts +34 -51
  673. package/src/i18n/locales/hu.ts +26 -37
  674. package/src/i18n/locales/it.ts +35 -52
  675. package/src/i18n/locales/zh.ts +14 -32
  676. package/src/i18n/plurals.ts +4 -1
  677. package/src/i18n/review.ts +18 -7
  678. package/src/i18n/shared-labels.ts +1 -2
  679. package/src/index.ts +106 -32
  680. package/src/landing/access.ts +2 -7
  681. package/src/landing/landing-sections.tsx +14 -15
  682. package/src/landing/page-seo.ts +1 -3
  683. package/src/lib/calc.ts +4 -1
  684. package/src/lib/clipboard-minus.ts +4 -1
  685. package/src/lib/dates.ts +2 -10
  686. package/src/lib/decimal-marks.ts +1 -3
  687. package/src/lib/device-settings.ts +2 -1
  688. package/src/lib/direction.ts +1 -3
  689. package/src/lib/iban.ts +89 -9
  690. package/src/lib/logger.ts +1 -5
  691. package/src/lib/person-name.ts +1 -3
  692. package/src/lib/phone.ts +5 -8
  693. package/src/lib/qr-encode.ts +32 -8
  694. package/src/lib/session-refresh.ts +5 -6
  695. package/src/lib/table-text.ts +24 -6
  696. package/src/lib/text-match.ts +15 -3
  697. package/src/lib/translation-review.ts +1 -3
  698. package/src/notifications/notification-inbox.tsx +17 -4
  699. package/src/notifications/notification-parts.tsx +1 -2
  700. package/src/notifications/notification-types-setting.tsx +19 -18
  701. package/src/notifications/notifications-labels.ts +1 -2
  702. package/src/notifications/push-device-setting.tsx +7 -1
  703. package/src/notifications/push-devices-setting.tsx +7 -3
  704. package/src/notifications/push-worker.ts +10 -2
  705. package/src/notifications/quiet-hours-setting.tsx +4 -1
  706. package/src/notifications/use-push-device.ts +4 -1
  707. package/src/offline/pwa-update-prompt.tsx +7 -1
  708. package/src/offline/query-persistence.ts +9 -6
  709. package/src/offline.ts +6 -1
  710. package/src/rhf/fields.tsx +50 -19
  711. package/src/rhf/form-core.tsx +2 -6
  712. package/src/rhf/line-items.tsx +5 -7
  713. package/src/rhf/use-rhf-wizard-step.ts +3 -12
  714. package/src/search/command-palette.tsx +15 -23
  715. package/src/search/global-search.tsx +38 -8
  716. package/src/search/search-index.ts +5 -1
  717. package/src/settings/device-reset-setting.tsx +5 -8
  718. package/src/settings/settings-heading.tsx +3 -1
  719. package/src/settings/settings-layout.tsx +6 -13
  720. package/src/settings/use-settings-route.ts +4 -3
  721. package/src/shell/app-shell.tsx +48 -24
  722. package/src/shell/auth-layout.tsx +1 -6
  723. package/src/shell/dev-menu.tsx +12 -6
  724. package/src/shell/option-switcher-menu.tsx +1 -3
  725. package/src/shell/sync-status-indicator.tsx +14 -12
  726. package/src/shell/top-bar-parts-labels.ts +1 -3
  727. package/src/shell/topbar-action-menu.tsx +9 -8
  728. package/src/shell/topbar-controls.tsx +5 -19
  729. package/src/shell/tour-menu.tsx +9 -1
  730. package/src/sync/db.ts +5 -1
  731. package/src/sync/engine.ts +44 -12
  732. package/src/sync.ts +16 -2
  733. package/src/testing/css-variables.ts +1 -2
  734. package/src/testing/index.ts +1 -6
  735. package/src/testing/react.ts +1 -2
  736. package/src/testing/viewport.ts +9 -9
  737. package/src/theme/contrast-tokens.ts +13 -2
  738. package/src/theme/palette-derive.ts +24 -50
  739. package/src/theme/palette-presets.ts +0 -1
  740. package/src/theme/palette-store.ts +1 -4
  741. package/src/theme/text-size.ts +1 -1
  742. package/src/theme/theme-store.ts +2 -6
  743. package/src/tour/tour-catalogue.tsx +4 -2
  744. package/src/tour/tour-dock.ts +5 -1
  745. package/src/tour/tour-engine.ts +2 -6
  746. package/src/tour/tour.tsx +28 -12
  747. package/src/tour/use-tour-progress.ts +8 -2
  748. package/src/tour/use-tour-url-sync.ts +3 -1
  749. package/src/vite-env.d.ts +1 -4
  750. package/src/wizard/stepper-nav.tsx +10 -35
  751. package/src/wizard/types.ts +1 -4
  752. package/src/wizard/use-wizard.ts +28 -43
  753. package/src/wizard/validation.ts +1 -5
  754. package/src/wizard/wizard-context.tsx +2 -6
  755. package/src/wizard/wizard-step.tsx +1 -8
  756. package/src/wizard/wizard-summary.tsx +2 -6
  757. package/tokens.css +393 -152
@@ -237,49 +237,45 @@ export function FloatingActionButton({
237
237
  // tooltip replaces it outright.
238
238
  const nativeTip = !wrapped && nativeTitle && title !== "" ? (title ?? label) : undefined;
239
239
  const button = (
240
- <button
241
- {...rest}
242
- hidden={wrapped ? undefined : hidden}
243
- ref={buttonRef}
244
- type={type}
245
- dir={dir}
246
- aria-label={label}
247
- aria-pressed={pressed ?? rest["aria-pressed"]}
248
- title={nativeTip}
249
- style={wrapped ? style : { ...cornerStyle(corner, offset), ...style }}
250
- className={cn(
251
- // Wrapped, the wrapper is the fixed thing and the button sits in it.
252
- !wrapped && "fixed z-40",
253
- "inline-flex items-center justify-center rounded-full",
254
- extended ? "h-12 gap-2 px-4 text-sm font-medium [&_svg]:size-5" : "size-12 [&_svg]:size-6",
255
- "shadow-lg transition-colors disabled:cursor-default",
256
- !toggle &&
257
- variant === "accent" &&
258
- "bg-brand text-brand-contrast hover:bg-brand-hover",
259
- !toggle &&
260
- variant === "surface" &&
261
- "border border-subtle bg-surface text-primary hover:bg-hover disabled:hover:bg-surface",
262
- // A toggle sits on the page's surface — a solid brand disc would read as
263
- // "on" in both states — and says "on" in the brand family.
264
- toggle && "border border-subtle",
265
- pressed === false &&
266
- "bg-surface text-secondary hover:bg-hover hover:text-primary",
267
- pressed === true &&
268
- "border-brand bg-brand-soft text-brand hover:bg-brand-soft-hover hover:text-brand-muted",
269
- "outline-none focus-visible:ring-offset-2",
270
- FOCUS_RING,
271
- className,
272
- )}
273
- >
274
- {icon}
275
- {/* Visible words, not the name: `aria-label` already is the name, and the
240
+ <button
241
+ {...rest}
242
+ hidden={wrapped ? undefined : hidden}
243
+ ref={buttonRef}
244
+ type={type}
245
+ dir={dir}
246
+ aria-label={label}
247
+ aria-pressed={pressed ?? rest["aria-pressed"]}
248
+ title={nativeTip}
249
+ style={wrapped ? style : { ...cornerStyle(corner, offset), ...style }}
250
+ className={cn(
251
+ // Wrapped, the wrapper is the fixed thing and the button sits in it.
252
+ !wrapped && "fixed z-40",
253
+ "inline-flex items-center justify-center rounded-full",
254
+ extended ? "h-12 gap-2 px-4 text-sm font-medium [&_svg]:size-5" : "size-12 [&_svg]:size-6",
255
+ "shadow-lg transition-colors disabled:cursor-default",
256
+ !toggle && variant === "accent" && "bg-brand text-brand-contrast hover:bg-brand-hover",
257
+ !toggle &&
258
+ variant === "surface" &&
259
+ "border border-subtle bg-surface text-primary hover:bg-hover disabled:hover:bg-surface",
260
+ // A toggle sits on the page's surface — a solid brand disc would read as
261
+ // "on" in both states — and says "on" in the brand family.
262
+ toggle && "border border-subtle",
263
+ pressed === false && "bg-surface text-secondary hover:bg-hover hover:text-primary",
264
+ pressed === true && "border-brand bg-brand-soft text-brand hover:bg-brand-soft-hover hover:text-brand-muted",
265
+ "outline-none focus-visible:ring-offset-2",
266
+ FOCUS_RING,
267
+ className,
268
+ )}
269
+ >
270
+ {icon}
271
+ {/* Visible words, not the name: `aria-label` already is the name, and the
276
272
  span would only repeat it. */}
277
- {extended && (
278
- <span aria-hidden className="whitespace-nowrap">
279
- {label}
280
- </span>
281
- )}
282
- </button>
273
+ {extended && (
274
+ <span aria-hidden className="whitespace-nowrap">
275
+ {label}
276
+ </span>
277
+ )}
278
+ </button>
283
279
  );
284
280
  return (
285
281
  <>
@@ -561,14 +557,15 @@ export function FloatingPanel({
561
557
  setOpen(false);
562
558
  }}
563
559
  aria-label={labels.close}
564
- className={cn("-me-1.5 shrink-0 rounded p-1.5 text-muted outline-none hover:bg-hover hover:text-secondary", FOCUS_RING)}
560
+ className={cn(
561
+ "-me-1.5 shrink-0 rounded p-1.5 text-muted outline-none hover:bg-hover hover:text-secondary",
562
+ FOCUS_RING,
563
+ )}
565
564
  >
566
565
  <X aria-hidden className="size-5" />
567
566
  </button>
568
567
  </div>
569
- <div className={cn("min-h-0 flex-1 overflow-y-auto overscroll-contain p-4", bodyClassName)}>
570
- {children}
571
- </div>
568
+ <div className={cn("min-h-0 flex-1 overflow-y-auto overscroll-contain p-4", bodyClassName)}>{children}</div>
572
569
  </div>,
573
570
  document.body,
574
571
  )}
@@ -796,11 +793,7 @@ export function FloatingAction({
796
793
  };
797
794
  const { children: content, ...anchor } = linkProps;
798
795
  const render = pickLinkRenderer(renderLink, kitLink, href);
799
- member = render ? (
800
- <RenderedFloatingLink render={render} {...linkProps} />
801
- ) : (
802
- <a {...anchor}>{content}</a>
803
- );
796
+ member = render ? <RenderedFloatingLink render={render} {...linkProps} /> : <a {...anchor}>{content}</a>;
804
797
  } else {
805
798
  member = (
806
799
  <button
@@ -9,8 +9,7 @@
9
9
  * card — write `focus-visible:after:ring-focus` or `has-[:focus-visible]:outline-focus`
10
10
  * rather than spelling the width out.
11
11
  */
12
- export const FOCUS_RING =
13
- "focus-visible:outline-none focus-visible:ring-focus focus-visible:ring-brand";
12
+ export const FOCUS_RING = "focus-visible:outline-none focus-visible:ring-focus focus-visible:ring-brand";
14
13
 
15
14
  /** Just the width of {@link FOCUS_RING}, for a ring in another colour (a danger control's,
16
15
  * `--brand-contrast` on a filled button): `cn(FOCUS_RING_WIDTH, "focus-visible:ring-brand-contrast")`. */
@@ -90,9 +90,7 @@ const BREAKPOINTS = ["xl", "lg", "md", "sm"] as const;
90
90
  * `base`. The queries are subscribed unconditionally (hooks cannot be skipped); a
91
91
  * plain string ignores them. Without `matchMedia` (SSR, tests) none match, so the row
92
92
  * renders its `base`, the phone's. The same resolution as BulkActionBar's variant. */
93
- function useResolvedPlacement(
94
- placement: FormActionsPlacement | ResponsiveFormActionsPlacement,
95
- ): FormActionsPlacement {
93
+ function useResolvedPlacement(placement: FormActionsPlacement | ResponsiveFormActionsPlacement): FormActionsPlacement {
96
94
  const matches = {
97
95
  xl: useBreakpoint("xl"),
98
96
  lg: useBreakpoint("lg"),
@@ -328,7 +326,6 @@ export interface FormActionsProps extends Omit<ComponentPropsWithoutRef<"div">,
328
326
  ref?: Ref<HTMLDivElement>;
329
327
  }
330
328
 
331
-
332
329
  /**
333
330
  * Where {@link FormActionsProps.submitShortcut} listens: the form Save submits (named
334
331
  * by `formId`, else the enclosing one), else the nearest dialog, else the row's parent.
@@ -105,14 +105,12 @@ export function GroupedPicker({
105
105
  .filter((g) => g.items.length > 0)
106
106
  : groups;
107
107
  return kept.flatMap((g) =>
108
- g.items.map(
109
- (item): ComboOption<string> => ({
110
- value: itemValue(g.key, item.key),
111
- label: item.label,
112
- icon: item.icon,
113
- group: g.label,
114
- }),
115
- ),
108
+ g.items.map((item): ComboOption<string> => ({
109
+ value: itemValue(g.key, item.key),
110
+ label: item.label,
111
+ icon: item.icon,
112
+ group: g.label,
113
+ })),
116
114
  );
117
115
  }, [groups, query, locale]);
118
116
  // Back to keys for `onSelect`, by the value the row carries.
@@ -310,10 +310,7 @@ export function HoverMenu({
310
310
  {open && (
311
311
  <div
312
312
  ref={panelRef}
313
- className={cn(
314
- "absolute top-full z-40 pt-2",
315
- ALIGN_CLASS[align],
316
- )}
313
+ className={cn("absolute top-full z-40 pt-2", ALIGN_CLASS[align])}
317
314
  style={shiftX ? { transform: `translateX(${shiftX}px)` } : undefined}
318
315
  >
319
316
  <div
@@ -7,8 +7,7 @@ import type { IbanInputLabels } from "./iban-input";
7
7
  export const DEFAULT_IBAN_INPUT_LABELS: IbanInputLabels = {
8
8
  format: "An IBAN starts with a two-letter country code and two check digits.",
9
9
  country: (code) => `“${code}” is not the country code of an IBAN.`,
10
- length: (actual, expected) =>
11
- `An IBAN from this country has ${expected} characters — this one has ${actual}.`,
10
+ length: (actual, expected) => `An IBAN from this country has ${expected} characters — this one has ${actual}.`,
12
11
  checksum: "The check digits don’t match — a character is probably mistyped.",
13
12
  qrRequired: "This is a regular IBAN. A QR-bill needs the account’s QR-IBAN.",
14
13
  qrNotAllowed: "This is a QR-IBAN, which only receives QR-bill payments. Enter the account’s regular IBAN.",
@@ -139,25 +139,21 @@ type ColouredTone = "danger" | "warning" | "info" | "success" | "custom";
139
139
 
140
140
  const ICON_BUTTON_TONES: Record<ColouredTone, { quiet: string; toned: string }> = {
141
141
  danger: {
142
- quiet:
143
- "text-placeholder hover:bg-danger-soft hover:text-danger focus-visible:ring-danger-strong",
142
+ quiet: "text-placeholder hover:bg-danger-soft hover:text-danger focus-visible:ring-danger-strong",
144
143
  toned: "text-danger hover:bg-danger-soft focus-visible:ring-danger-strong",
145
144
  },
146
145
  warning: {
147
- quiet:
148
- "text-placeholder hover:bg-warning-soft hover:text-warning focus-visible:ring-warning-strong",
146
+ quiet: "text-placeholder hover:bg-warning-soft hover:text-warning focus-visible:ring-warning-strong",
149
147
  // The ring is warning's loud line (0.33, k27): `--warning-border`, amber-300, was a
150
148
  // focus ring at 1.1:1 on the light surfaces.
151
149
  toned: "text-warning hover:bg-warning-soft focus-visible:ring-warning-strong",
152
150
  },
153
151
  info: {
154
- quiet:
155
- "text-placeholder hover:bg-info-soft hover:text-info focus-visible:ring-[var(--info-border)]",
152
+ quiet: "text-placeholder hover:bg-info-soft hover:text-info focus-visible:ring-[var(--info-border)]",
156
153
  toned: "text-info hover:bg-info-soft focus-visible:ring-[var(--info-border)]",
157
154
  },
158
155
  success: {
159
- quiet:
160
- "text-placeholder hover:bg-success-soft hover:text-success focus-visible:ring-[var(--success-border)]",
156
+ quiet: "text-placeholder hover:bg-success-soft hover:text-success focus-visible:ring-[var(--success-border)]",
161
157
  toned: "text-success hover:bg-success-soft focus-visible:ring-[var(--success-border)]",
162
158
  },
163
159
  // The hover fill and the ring are MIXED from the one colour, since a custom tone
@@ -520,7 +516,8 @@ export interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>
520
516
  * that explains why it cannot be followed is a job for a disabled BUTTON.
521
517
  */
522
518
  export interface IconButtonLinkProps
523
- extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type" | "href">,
519
+ extends
520
+ Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "type" | "href">,
524
521
  Pick<
525
522
  IconButtonProps,
526
523
  | "variant"
@@ -636,7 +633,10 @@ function iconButtonLook({
636
633
  return cn(
637
634
  ICON_BUTTON_BASE,
638
635
  withText
639
- ? cn("font-medium whitespace-nowrap", stretch ? ICON_BUTTON_TEXT_STRETCH_SIZES[size] : ICON_BUTTON_TEXT_SIZES[size])
636
+ ? cn(
637
+ "font-medium whitespace-nowrap",
638
+ stretch ? ICON_BUTTON_TEXT_STRETCH_SIZES[size] : ICON_BUTTON_TEXT_SIZES[size],
639
+ )
640
640
  : stretch
641
641
  ? ICON_BUTTON_STRETCH_SIZES[size]
642
642
  : ICON_BUTTON_SIZES[size],
@@ -822,44 +822,42 @@ function IconButtonLink({
822
822
  );
823
823
  }
824
824
 
825
- function IconButtonElement(
826
- {
827
- variant = "ghost",
828
- size = "md",
829
- tone: toneProp,
830
- quiet,
831
- pressed,
832
- stopPropagation,
833
- stretch,
834
- shape = "square",
835
- toneColor,
836
- label,
837
- labelVisible,
838
- tooltip = true,
839
- tooltipSide,
840
- tooltipPortal,
841
- tooltipLazy = true,
842
- disabledReason: ownDisabledReason,
843
- disabledReasonDisplay,
844
- commit,
845
- pending,
846
- glyphSize,
847
- badge,
848
- disabledStyle = "dim",
849
- className,
850
- style,
851
- onClick,
852
- onKeyDown,
853
- children,
854
- href: _href,
855
- renderLink: _renderLink,
856
- external: _external,
857
- replace: _replace,
858
- reloadDocument: _reloadDocument,
859
- ref,
860
- ...rest
861
- }: IconButtonProps,
862
- ) {
825
+ function IconButtonElement({
826
+ variant = "ghost",
827
+ size = "md",
828
+ tone: toneProp,
829
+ quiet,
830
+ pressed,
831
+ stopPropagation,
832
+ stretch,
833
+ shape = "square",
834
+ toneColor,
835
+ label,
836
+ labelVisible,
837
+ tooltip = true,
838
+ tooltipSide,
839
+ tooltipPortal,
840
+ tooltipLazy = true,
841
+ disabledReason: ownDisabledReason,
842
+ disabledReasonDisplay,
843
+ commit,
844
+ pending,
845
+ glyphSize,
846
+ badge,
847
+ disabledStyle = "dim",
848
+ className,
849
+ style,
850
+ onClick,
851
+ onKeyDown,
852
+ children,
853
+ href: _href,
854
+ renderLink: _renderLink,
855
+ external: _external,
856
+ replace: _replace,
857
+ reloadDocument: _reloadDocument,
858
+ ref,
859
+ ...rest
860
+ }: IconButtonProps) {
863
861
  const tone = toneProp ?? (toneColor !== undefined ? "custom" : "default");
864
862
  const keep = disabledStyle === "keep";
865
863
  const withText = useIconButtonText(label, labelVisible, variant, tooltip);
@@ -52,8 +52,7 @@ export interface IconOption<T extends string> {
52
52
  }
53
53
 
54
54
  export interface IconPickerProps<T extends string>
55
- extends Omit<ComponentPropsWithRef<"div">, "onChange" | "children" | "defaultValue">,
56
- FieldHelpProps {
55
+ extends Omit<ComponentPropsWithRef<"div">, "onChange" | "children" | "defaultValue">, FieldHelpProps {
57
56
  options: IconOption<T>[];
58
57
  /** The chosen icon, or `null` for none. */
59
58
  value: T | null;
@@ -152,12 +151,7 @@ export function IconPicker<T extends string>({
152
151
  const needle = words.length > 0;
153
152
 
154
153
  const visible = useMemo(
155
- () =>
156
- needle
157
- ? options.filter((o) =>
158
- matchesSearch(words, [o.label, ...(o.keywords ?? [])], locale),
159
- )
160
- : options,
154
+ () => (needle ? options.filter((o) => matchesSearch(words, [o.label, ...(o.keywords ?? [])], locale)) : options),
161
155
  [options, needle, words, locale],
162
156
  );
163
157
  const byValue = useMemo(() => new Map(options.map((o) => [o.value, o])), [options]);
@@ -209,17 +203,10 @@ export function IconPicker<T extends string>({
209
203
  const Icon = item.key === null ? undefined : byValue.get(item.key)?.icon;
210
204
  return Icon ? <Icon aria-hidden className={TILE_SIZE[size].glyph} /> : null;
211
205
  }}
212
- tileClassName={(_item, selected) =>
213
- cn(
214
- selected ? "text-primary" : "text-secondary",
215
- tileClassName,
216
- )
217
- }
206
+ tileClassName={(_item, selected) => cn(selected ? "text-primary" : "text-secondary", tileClassName)}
218
207
  />
219
208
  </div>
220
- {needle && visible.length === 0 && (
221
- <p className="text-xs text-muted">{text.noResults}</p>
222
- )}
209
+ {needle && visible.length === 0 && <p className="text-xs text-muted">{text.noResults}</p>}
223
210
  {mixed && (
224
211
  <span id={mixedId} hidden>
225
212
  {text.mixed}
@@ -119,12 +119,7 @@ export function ImageGrid({
119
119
 
120
120
  return (
121
121
  <>
122
- <ul
123
- aria-label={labels.list}
124
- {...rest}
125
- className={cn("grid gap-2", className)}
126
- style={gridStyle}
127
- >
122
+ <ul aria-label={labels.list} {...rest} className={cn("grid gap-2", className)} style={gridStyle}>
128
123
  {items.map((item, i) => {
129
124
  const name = item.alt || labels.item(i + 1, count);
130
125
  const kind = imageItemKind(item);
@@ -423,11 +423,7 @@ export function InlineEditField<T = string>(props: InlineEditFieldProps<T>) {
423
423
 
424
424
  const private_ = redact ? { "data-private": true } : undefined;
425
425
  const shown = display ? display(value) : value === null || value === undefined ? "" : String(value);
426
- const content = hasContent(shown) ? (
427
- shown
428
- ) : (
429
- <span className="text-muted">{placeholder ?? labels.empty}</span>
430
- );
426
+ const content = hasContent(shown) ? shown : <span className="text-muted">{placeholder ?? labels.empty}</span>;
431
427
  const alignClass = align === "end" ? "text-end" : "text-start";
432
428
 
433
429
  let body: ReactNode;
@@ -50,8 +50,7 @@ const CREATE_ROW_CLASS = "flex items-center gap-2 font-medium text-brand";
50
50
  /** `id` is the INPUT's and `onChange` is the field's — see {@link ComboboxProps}
51
51
  * for why the div's spellings of them are omitted. */
52
52
  export interface InlineEntityComboboxProps<V extends string | number, C extends ComboClearValue = null>
53
- extends Omit<ComponentPropsWithoutRef<"div">, "id" | "onChange">,
54
- FieldHelpProps {
53
+ extends Omit<ComponentPropsWithoutRef<"div">, "id" | "onChange">, FieldHelpProps {
55
54
  /** Selected option id; `null` or `clearValue` when nothing is selected. */
56
55
  value: V | C | null;
57
56
  /** Required and unanswered — see {@link Combobox}'s `invalid`. */
@@ -358,9 +357,7 @@ export function InlineEntityCombobox<V extends string | number, C extends ComboC
358
357
  const createText = createQuery ? labels.create(createQuery) : createEmptyLabel;
359
358
  // Every row the keyboard can land on: the options, then the create row — passed over
360
359
  // like a disabled option while a write lock holds it.
361
- const rows: readonly { disabled?: boolean }[] = showCreate
362
- ? [...matches, { disabled: createLocked }]
363
- : matches;
360
+ const rows: readonly { disabled?: boolean }[] = showCreate ? [...matches, { disabled: createLocked }] : matches;
364
361
  const createIndex = matches.length;
365
362
 
366
363
  // Pointer-device only: the phone's rows live in a {@link PickerSheet} whose own
@@ -414,9 +411,7 @@ export function InlineEntityCombobox<V extends string | number, C extends ComboC
414
411
  } else {
415
412
  // A disabled option's label typed out in full is not a way round `disabled`:
416
413
  // it is not a hit, so the text reverts like any other non-answer.
417
- const hits = options.filter(
418
- (o) => !o.disabled && o.label.toLowerCase() === q.toLowerCase(),
419
- );
414
+ const hits = options.filter((o) => !o.disabled && o.label.toLowerCase() === q.toLowerCase());
420
415
  const ids = new Set(hits.map((h) => h.value));
421
416
  if (ids.size === 1 && hits[0].value !== value) onChange(hits[0].value);
422
417
  }
@@ -435,9 +430,7 @@ export function InlineEntityCombobox<V extends string | number, C extends ComboC
435
430
  <span className="min-w-0 flex-1">
436
431
  <span className="block truncate-until-large">{createText}</span>
437
432
  {createLocked && (
438
- <span className="block truncate-until-large text-xs font-normal text-placeholder">
439
- {createReason}
440
- </span>
433
+ <span className="block truncate-until-large text-xs font-normal text-placeholder">{createReason}</span>
441
434
  )}
442
435
  </span>
443
436
  </>
@@ -702,11 +695,7 @@ export function InlineEntityCombobox<V extends string | number, C extends ComboC
702
695
  aria-selected={false}
703
696
  aria-disabled={createLocked || undefined}
704
697
  onClick={create}
705
- className={cn(
706
- SHEET_ROW_CLASS,
707
- CREATE_ROW_CLASS,
708
- createLocked && DISABLED_ROW_CLASS,
709
- )}
698
+ className={cn(SHEET_ROW_CLASS, CREATE_ROW_CLASS, createLocked && DISABLED_ROW_CLASS)}
710
699
  >
711
700
  {createRowContent}
712
701
  </button>
@@ -772,11 +761,7 @@ export function InlineEntityCombobox<V extends string | number, C extends ComboC
772
761
  )}
773
762
  >
774
763
  {o.label}
775
- {o.sublabel && (
776
- <span className="ms-2 text-xs text-placeholder">
777
- {o.sublabel}
778
- </span>
779
- )}
764
+ {o.sublabel && <span className="ms-2 text-xs text-placeholder">{o.sublabel}</span>}
780
765
  </button>
781
766
  </li>
782
767
  </Fragment>
@@ -299,7 +299,13 @@ export function Input(props: InputProps) {
299
299
  aria-describedby={describedBy}
300
300
  onClick={handleClick}
301
301
  onChange={onChange}
302
- className={cn(FIELD_BASE, ownClass, inputClassName, isInvalid && FIELD_INVALID, locked && "cursor-not-allowed")}
302
+ className={cn(
303
+ FIELD_BASE,
304
+ ownClass,
305
+ inputClassName,
306
+ isInvalid && FIELD_INVALID,
307
+ locked && "cursor-not-allowed",
308
+ )}
303
309
  />
304
310
  </EndHintRow>,
305
311
  )}
@@ -321,7 +327,13 @@ export function Input(props: InputProps) {
321
327
  aria-invalid={isInvalid || rest["aria-invalid"] || undefined}
322
328
  aria-describedby={describedBy}
323
329
  onChange={onChange}
324
- className={cn(FIELD_BASE, "pe-9", inputClassName, isInvalid && FIELD_INVALID, locked && "cursor-not-allowed")}
330
+ className={cn(
331
+ FIELD_BASE,
332
+ "pe-9",
333
+ inputClassName,
334
+ isInvalid && FIELD_INVALID,
335
+ locked && "cursor-not-allowed",
336
+ )}
325
337
  />
326
338
  {revealToggle}
327
339
  </div>
@@ -19,8 +19,7 @@ import { claimEscape } from "../hooks/use-dismiss";
19
19
  /** A "YYYY-MM" key as a count of months, and back: month arithmetic with no `Date`
20
20
  * rollover to step around. */
21
21
  const monthIndex = (key: string) => Number(key.slice(0, 4)) * 12 + Number(key.slice(5, 7)) - 1;
22
- const keyOfIndex = (index: number) =>
23
- `${String(Math.floor(index / 12)).padStart(4, "0")}-${pad((index % 12) + 1)}`;
22
+ const keyOfIndex = (index: number) => `${String(Math.floor(index / 12)).padStart(4, "0")}-${pad((index % 12) + 1)}`;
24
23
  const shiftKey = (key: string, delta: number) => keyOfIndex(monthIndex(key) + delta);
25
24
  /** The 1st of a "YYYY-MM" month, for `Intl` to name. */
26
25
  const firstOfKey = (key: string) => new Date(Number(key.slice(0, 4)), Number(key.slice(5, 7)) - 1, 1);
@@ -287,10 +286,7 @@ function JumpCalendar({
287
286
  <span id={captionId} aria-live="polite" className="truncate">
288
287
  {caption}
289
288
  </span>
290
- <ChevronDown
291
- aria-hidden
292
- className={cn("size-3.5 shrink-0 text-muted", !inDays && "rotate-180")}
293
- />
289
+ <ChevronDown aria-hidden className={cn("size-3.5 shrink-0 text-muted", !inDays && "rotate-180")} />
294
290
  </button>
295
291
  <button
296
292
  type="button"
@@ -26,8 +26,7 @@ export const DEFAULT_LEGAL_LABELS: LegalLabels = {
26
26
  "Closed beta. The legal wording below has not been reviewed by a lawyer yet and will be before a public launch. The technical descriptions — what is stored, where, and who can read it — describe what the software actually does today, and are meant to be checked against it.",
27
27
  },
28
28
  translation: {
29
- note: (o) =>
30
- `This is a translation for your convenience. The ${o.bindingLanguage} version is binding.`,
29
+ note: (o) => `This is a translation for your convenience. The ${o.bindingLanguage} version is binding.`,
31
30
  show: (o) => `Show the ${o.bindingLanguage} version`,
32
31
  },
33
32
  updated: (date) => `Last updated: ${date}`,
@@ -463,7 +463,9 @@ function slotSections(
463
463
  const number = numbered ? count : undefined;
464
464
  if (section.key !== undefined) {
465
465
  if (targets.has(section.key)) {
466
- warnLegalOnce(`two sections of the ${page} page share the key "${section.key}"; {ref:${section.key}} names the first.`);
466
+ warnLegalOnce(
467
+ `two sections of the ${page} page share the key "${section.key}"; {ref:${section.key}} names the first.`,
468
+ );
467
469
  } else {
468
470
  targets.set(section.key, { number, heading: section.heading });
469
471
  }
@@ -538,8 +540,7 @@ export function LegalPage({
538
540
  targets,
539
541
  };
540
542
  const Main = landmark ? "main" : "div";
541
- const shownNotice =
542
- notice !== undefined ? notice : page === "privacy" ? labels.notice.privacy : labels.notice.beta;
543
+ const shownNotice = notice !== undefined ? notice : page === "privacy" ? labels.notice.privacy : labels.notice.beta;
543
544
  // 0.28.1 (Marcel): one language is binding and the lawyer reviews that one; a page read
544
545
  // in any other says so, with a way to the binding version.
545
546
  const translated =
@@ -550,7 +551,13 @@ export function LegalPage({
550
551
  {onShowBindingLanguage && (
551
552
  <>
552
553
  {" "}
553
- <Button type="button" variant="link" size="sm" className="h-auto p-0 align-baseline" onClick={onShowBindingLanguage}>
554
+ <Button
555
+ type="button"
556
+ variant="link"
557
+ size="sm"
558
+ className="h-auto p-0 align-baseline"
559
+ onClick={onShowBindingLanguage}
560
+ >
554
561
  {labels.translation.show(operatorText)}
555
562
  </Button>
556
563
  </>
@@ -574,7 +581,9 @@ export function LegalPage({
574
581
  const summaryBox =
575
582
  summary !== undefined && summary.length > 0 ? (
576
583
  <section id="summary" className="rounded-lg border border-subtle bg-surface p-4 sm:p-5">
577
- <SummaryHeading className="text-lg font-semibold break-words text-primary">{summaryLabels.title}</SummaryHeading>
584
+ <SummaryHeading className="text-lg font-semibold break-words text-primary">
585
+ {summaryLabels.title}
586
+ </SummaryHeading>
578
587
  <ul className="mt-3 space-y-2">
579
588
  {summary.map((point, i) => (
580
589
  <li key={i} className="flex gap-2.5 text-sm leading-relaxed text-secondary">
@@ -620,8 +629,10 @@ export function LegalPage({
620
629
 
621
630
  // ── Terms acceptance (§3.4) ───────────────────────────────────────────────────
622
631
 
623
- export interface LegalAcceptCheckboxProps
624
- extends Omit<CheckboxProps, "label" | "checked" | "onCheckedChange" | "required"> {
632
+ export interface LegalAcceptCheckboxProps extends Omit<
633
+ CheckboxProps,
634
+ "label" | "checked" | "onCheckedChange" | "required"
635
+ > {
625
636
  checked: boolean;
626
637
  onCheckedChange: (checked: boolean) => void;
627
638
  /** Default `/terms`. */
@@ -446,7 +446,13 @@ export function LegalLinks({
446
446
  ...infoLinks(labels, { security: securityHref, accessibility: accessibilityHref }),
447
447
  ];
448
448
  const items = shown.flatMap((link, i) => [
449
- ...(i > 0 ? [<span key={`sep-${link.href}`} aria-hidden="true">·</span>] : []),
449
+ ...(i > 0
450
+ ? [
451
+ <span key={`sep-${link.href}`} aria-hidden="true">
452
+ ·
453
+ </span>,
454
+ ]
455
+ : []),
450
456
  <TextLink key={link.href} href={link.href} tone="muted" current={link.href === currentHref} onClick={onLinkClick}>
451
457
  {link.label}
452
458
  </TextLink>,
@@ -573,9 +579,7 @@ export function LegalSection({ heading, body, children, id: idProp, headingAs }:
573
579
  {heading}
574
580
  </Heading>
575
581
  <LegalSlotContext.Provider value={null}>
576
- {body !== undefined && (
577
- <LegalText text={body} className="mt-2 text-sm leading-relaxed text-secondary" />
578
- )}
582
+ {body !== undefined && <LegalText text={body} className="mt-2 text-sm leading-relaxed text-secondary" />}
579
583
  {children !== undefined && (
580
584
  <div className="mt-2 text-sm leading-relaxed break-words text-secondary">
581
585
  {typeof children === "string" ? resolveLegalRefs(children, page) : children}
@@ -650,7 +654,12 @@ export function LegalLayout({
650
654
  {children}
651
655
  </div>
652
656
  {links !== undefined && links.length > 0 && (
653
- <LegalLinks links={links} currentHref={currentHref} labels={labels} className="mt-12 border-t border-subtle pt-4" />
657
+ <LegalLinks
658
+ links={links}
659
+ currentHref={currentHref}
660
+ labels={labels}
661
+ className="mt-12 border-t border-subtle pt-4"
662
+ />
654
663
  )}
655
664
  </article>
656
665
  );
@@ -310,9 +310,7 @@ export function Lightbox({
310
310
  fetched={fetched}
311
311
  alt={item.alt}
312
312
  labels={imageLabels}
313
- wrapperClassName={
314
- zoomed ? "max-w-none shrink-0" : "flex h-full w-full items-center justify-center"
315
- }
313
+ wrapperClassName={zoomed ? "max-w-none shrink-0" : "flex h-full w-full items-center justify-center"}
316
314
  className={cn(
317
315
  zoomed ? "max-w-none cursor-zoom-out" : "max-h-full max-w-full object-contain",
318
316
  !zoomed && zoomEnabled && "cursor-zoom-in",