@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
@@ -7,13 +7,7 @@ import { splitTriggerAria } from "./trigger-aria";
7
7
  import { FIELD_BASE } from "./field-base";
8
8
  import { FieldBox, useFieldMessages } from "./field-parts";
9
9
  import { Tooltip } from "./tooltip";
10
- import {
11
- DateField,
12
- useDatePickerLabels,
13
- useTriggerFormat,
14
- withEndHint,
15
- type DatePickerBaseProps,
16
- } from "./date-field";
10
+ import { DateField, useDatePickerLabels, useTriggerFormat, withEndHint, type DatePickerBaseProps } from "./date-field";
17
11
  import { PanelCalendar } from "./jump-calendar";
18
12
  // The shared field, the month-jump calendar and the range picker live in date-field.tsx,
19
13
  // jump-calendar.tsx and date-range-picker.tsx (MOD-9); their public names are still this
@@ -191,11 +191,7 @@ function PresetColumn({
191
191
  <div
192
192
  role="group"
193
193
  aria-label={label}
194
- className={
195
- sheet
196
- ? "grid grid-cols-2 gap-0.5"
197
- : "flex w-32 shrink-0 flex-col gap-0.5 border-e border-subtle pe-2"
198
- }
194
+ className={sheet ? "grid grid-cols-2 gap-0.5" : "flex w-32 shrink-0 flex-col gap-0.5 border-e border-subtle pe-2"}
199
195
  >
200
196
  {presets.map((p, i) => {
201
197
  const selected = i === marked;
@@ -210,9 +206,7 @@ function PresetColumn({
210
206
  "rounded px-2 text-start",
211
207
  // 44px on a phone: the kit's touch-target size (`SHEET_ROW_CLASS`).
212
208
  sheet ? "min-h-11 py-2 text-sm" : "py-1.5 text-xs",
213
- selected
214
- ? "bg-active font-medium text-primary"
215
- : "text-secondary hover:bg-hover",
209
+ selected ? "bg-active font-medium text-primary" : "text-secondary hover:bg-hover",
216
210
  )}
217
211
  >
218
212
  {p.label}
@@ -419,11 +413,7 @@ export function DateRangePicker(props: DateRangePickerProps) {
419
413
  const activeId = controlled ? preset : ownPreset;
420
414
  const a = from ? render(from) : "";
421
415
  const b = to ? render(to) : "";
422
- const triggerText = from
423
- ? to
424
- ? `${a}${separator}${b}`
425
- : `${a}${separator}…`
426
- : (placeholder ?? "");
416
+ const triggerText = from ? (to ? `${a}${separator}${b}` : `${a}${separator}…`) : (placeholder ?? "");
427
417
  const hasPresets = Boolean(presets && presets.length > 0);
428
418
  const sheet = usePhoneLayout();
429
419
  const commitRange = (f: string, t: string, presetId: string | undefined) => {
@@ -159,9 +159,7 @@ export function DescriptionList({
159
159
  // outer `min(100%, …)` keeps a single card from overflowing a pane narrower than
160
160
  // its minimum.
161
161
  const track =
162
- columns !== undefined
163
- ? `max(${minCardWidth}, (100% - ${columns - 1} * ${gap.len}) / ${columns})`
164
- : minCardWidth;
162
+ columns !== undefined ? `max(${minCardWidth}, (100% - ${columns - 1} * ${gap.len}) / ${columns})` : minCardWidth;
165
163
  const grid: CSSProperties | undefined = cards
166
164
  ? { gridTemplateColumns: `repeat(auto-fill, minmax(min(100%, ${track}), 1fr))` }
167
165
  : undefined;
@@ -293,9 +291,7 @@ export function DescriptionItem({
293
291
  // A hint is a fact: on a touch screen and at Large it is words under the term, not a
294
292
  // 14 px "?" nobody can hover open — the fields' rule (DUP-2, refactor audit 2026-10),
295
293
  // which this string hint had been left out of. Elsewhere the "?" as before.
296
- const shownHint = useInlineHint(
297
- hint ? <FieldHint label={hint} side="top" className="shrink-0" /> : undefined,
298
- );
294
+ const shownHint = useInlineHint(hint ? <FieldHint label={hint} side="top" className="shrink-0" /> : undefined);
299
295
  const spanClass =
300
296
  span === "full"
301
297
  ? "col-span-full"
@@ -317,7 +313,10 @@ export function DescriptionItem({
317
313
  {typeof shownHint === "string" ? (
318
314
  // Its own line under the term, in the reading case of a sentence rather than a
319
315
  // card term's capitals — StatTile's inline hint.
320
- <span data-slot="description-hint" className="basis-full text-caption leading-tight normal-case tracking-normal">
316
+ <span
317
+ data-slot="description-hint"
318
+ className="basis-full text-caption leading-tight normal-case tracking-normal"
319
+ >
321
320
  {shownHint}
322
321
  </span>
323
322
  ) : (
@@ -350,12 +349,7 @@ export function DescriptionItem({
350
349
  return (
351
350
  <div
352
351
  {...rest}
353
- className={cn(
354
- "min-w-0 rounded-md border border-subtle bg-surface",
355
- CARD_PAD[density],
356
- spanClass,
357
- className,
358
- )}
352
+ className={cn("min-w-0 rounded-md border border-subtle bg-surface", CARD_PAD[density], spanClass, className)}
359
353
  >
360
354
  {termNode}
361
355
  {detail}
@@ -152,7 +152,9 @@ export function DialogFrame({
152
152
  labelledBy={titleId}
153
153
  // The caller's own description (a warning inside the body, say) is ADDED to the
154
154
  // frame's, not traded for it: both are the dialog's.
155
- aria-describedby={[hasDescription ? descriptionId : undefined, describedBy].filter(Boolean).join(" ") || undefined}
155
+ aria-describedby={
156
+ [hasDescription ? descriptionId : undefined, describedBy].filter(Boolean).join(" ") || undefined
157
+ }
156
158
  // `overflow-hidden` replaces the panel's own `overflow-y-auto` (tailwind-merge
157
159
  // treats them as one group), `p-0` its `p-4`: the scroller and the padding move
158
160
  // to the body, which is the only part that should move.
@@ -210,13 +212,20 @@ export function DialogFrame({
210
212
  * only exists INSIDE the `Modal` (the frame's own body runs outside it). */
211
213
  function FrameClose({ label, onClose }: { label?: string; onClose: () => void }) {
212
214
  const close = useContext(ModalCloseContext) ?? onClose;
213
- const labels = useKitLabels("dialogFrame", DEFAULT_DIALOG_FRAME_LABELS, label === undefined ? undefined : { close: label });
215
+ const labels = useKitLabels(
216
+ "dialogFrame",
217
+ DEFAULT_DIALOG_FRAME_LABELS,
218
+ label === undefined ? undefined : { close: label },
219
+ );
214
220
  return (
215
221
  <button
216
222
  type="button"
217
223
  onClick={close}
218
224
  aria-label={labels.close}
219
- className={cn("-me-1.5 -mt-1 shrink-0 rounded p-1.5 text-muted outline-none hover:bg-hover hover:text-secondary", FOCUS_RING)}
225
+ className={cn(
226
+ "-me-1.5 -mt-1 shrink-0 rounded p-1.5 text-muted outline-none hover:bg-hover hover:text-secondary",
227
+ FOCUS_RING,
228
+ )}
220
229
  >
221
230
  <X aria-hidden className="size-5" />
222
231
  </button>
@@ -386,9 +386,7 @@ export function Disclosure({
386
386
  ) : (
387
387
  <span className={cn("block", card && "text-sm font-semibold text-primary")}>{title}</span>
388
388
  )}
389
- {hint !== undefined && (
390
- <span className="mt-0.5 block text-xs font-normal text-muted">{hint}</span>
391
- )}
389
+ {hint !== undefined && <span className="mt-0.5 block text-xs font-normal text-muted">{hint}</span>}
392
390
  </span>
393
391
  {/* The space is for the accessible name — "Net profit 1,234.50", not
394
392
  "Net profit1,234.50"; between flex items it renders as nothing. */}
@@ -404,22 +402,20 @@ export function Disclosure({
404
402
 
405
403
  // Preflight already makes h1–h6 inherit size and weight, so the heading adds
406
404
  // structure and nothing visible.
407
- const header = Heading ? <Heading className={trailingBeside ? "min-w-0 flex-1" : undefined}>{button}</Heading> : button;
405
+ const header = Heading ? (
406
+ <Heading className={trailingBeside ? "min-w-0 flex-1" : undefined}>{button}</Heading>
407
+ ) : (
408
+ button
409
+ );
408
410
 
409
411
  return (
410
- <div
411
- {...rest}
412
- className={cn(card && "rounded-lg border border-subtle bg-surface shadow-sm", className)}
413
- >
412
+ <div {...rest} className={cn(card && "rounded-lg border border-subtle bg-surface shadow-sm", className)}>
414
413
  {trailingBeside ? (
415
414
  <div
416
415
  className={cn(
417
416
  "relative flex items-center gap-2",
418
417
  card &&
419
- cn(
420
- "rounded-lg pe-4 has-[[data-disclosure-trigger]:enabled:hover]:bg-hover",
421
- joined && "rounded-b-none",
422
- ),
418
+ cn("rounded-lg pe-4 has-[[data-disclosure-trigger]:enabled:hover]:bg-hover", joined && "rounded-b-none"),
423
419
  )}
424
420
  >
425
421
  {header}
@@ -163,8 +163,7 @@ export function useDropdown<T extends HTMLElement = HTMLDivElement>({
163
163
  * input each time the panel opens, so typing filters immediately.
164
164
  */
165
165
  export function useDropdownSearch<T extends HTMLElement = HTMLDivElement>() {
166
- const { open, setOpen, wrapperRef, panelRef, triggerRef, closeToTrigger } =
167
- useDropdown<T>();
166
+ const { open, setOpen, wrapperRef, panelRef, triggerRef, closeToTrigger } = useDropdown<T>();
168
167
  const [query, setQuery] = useState("");
169
168
  const inputRef = useRef<HTMLInputElement>(null);
170
169
  // The list's layer again, under `inputRef` for the search box's handler (round 0.35
@@ -196,8 +195,7 @@ export function useDropdownSearch<T extends HTMLElement = HTMLDivElement>() {
196
195
  /** `onKeyDown` is the INPUT's, not the wrapper's — the list's keyboard is handled
197
196
  * where the focus is (see the note above), so the div's own handler signature is
198
197
  * omitted in favour of it. */
199
- export interface DropdownSearchHeaderProps
200
- extends Omit<ComponentPropsWithRef<"div">, "onKeyDown"> {
198
+ export interface DropdownSearchHeaderProps extends Omit<ComponentPropsWithRef<"div">, "onKeyDown"> {
201
199
  query: string;
202
200
  onQueryChange: (v: string) => void;
203
201
  inputRef: RefObject<HTMLInputElement | null>;
@@ -251,13 +249,7 @@ export function DropdownSearchHeader({
251
249
  // input whose only name is its placeholder has none the moment a character is
252
250
  // typed into it — the placeholder disappears — which is why this is worth a prop
253
251
  // at all rather than something a caller could add from outside.
254
- <div
255
- {...rest}
256
- className={cn(
257
- "flex items-center gap-2 border-b border-subtle px-2 py-1.5",
258
- className,
259
- )}
260
- >
252
+ <div {...rest} className={cn("flex items-center gap-2 border-b border-subtle px-2 py-1.5", className)}>
261
253
  <Search className="size-4 text-placeholder" />
262
254
  <input
263
255
  ref={inputRef}
@@ -130,9 +130,7 @@ export function EmptyState({
130
130
  {/* `text-sm`: a heading keeps the box's size, not whatever a stylesheet gives h2. */}
131
131
  <Title className={cn("text-sm font-medium text-secondary", toneClass)}>{title}</Title>
132
132
  {hasHint && <div className="mt-1 text-xs">{hint}</div>}
133
- {action != null && (
134
- <div className="mt-4 flex flex-wrap items-center justify-center gap-2">{action}</div>
135
- )}
133
+ {action != null && <div className="mt-4 flex flex-wrap items-center justify-center gap-2">{action}</div>}
136
134
  </div>
137
135
  );
138
136
  }
@@ -34,8 +34,7 @@ export type { ComboClearValue, ComboOption } from "./combobox-core";
34
34
  /** `onChange` is the kit's — "a selection was made", carrying values — rather
35
35
  * than the div's form event, so the DOM's spelling of it is omitted. */
36
36
  export interface EntityComboboxProps<V extends string | number, C extends ComboClearValue = null>
37
- extends Omit<ComponentPropsWithoutRef<"div">, "onChange">,
38
- FieldHelpProps {
37
+ extends Omit<ComponentPropsWithoutRef<"div">, "onChange">, FieldHelpProps {
39
38
  /** Selected id; `null`, `undefined` or `clearValue` when nothing is selected. */
40
39
  value: V | C | null | undefined;
41
40
  /** Selecting an option emits its value; the clear button emits `clearValue`. */
@@ -311,10 +310,7 @@ export function EntityCombobox<V extends string | number, C extends ComboClearVa
311
310
  // A caller's own name wins over the composition: two fields labelled
312
311
  // "Account" on a transfer form are the from and the to, and only the
313
312
  // caller knows which is which.
314
- aria-label={
315
- ariaLabel ??
316
- (typeof label === "string" ? common.fieldValue(label, triggerText) : undefined)
317
- }
313
+ aria-label={ariaLabel ?? (typeof label === "string" ? common.fieldValue(label, triggerText) : undefined)}
318
314
  // The focusable kind of disabled while locked (Button's rule): a native
319
315
  // `disabled` would take the field out of the tab order, and the reason with it.
320
316
  disabled={lock.locked ? undefined : disabled}
@@ -107,9 +107,7 @@ export function describeThrown(error: unknown): ErrorBoundaryDetails {
107
107
  * Never throws: it runs inside the fallback's own render, where a throw is a white
108
108
  * screen. An error it cannot read is not a chunk failure.
109
109
  */
110
- export function isChunkLoadError(
111
- error: { name?: string | null; message?: string | null } | null | undefined,
112
- ): boolean {
110
+ export function isChunkLoadError(error: { name?: string | null; message?: string | null } | null | undefined): boolean {
113
111
  try {
114
112
  const s = `${error?.name ?? ""} ${error?.message ?? ""}`;
115
113
  return /ChunkLoadError|dynamically imported module|module script failed|Loading chunk|Failed to fetch/i.test(s);
@@ -405,7 +403,11 @@ function currentPage(): { page: string; path: string } {
405
403
  }
406
404
  }
407
405
 
408
- function buildReport(details: ErrorBoundaryDetails, componentStack: string | undefined, props: ErrorBoundaryProps): CrashReport {
406
+ function buildReport(
407
+ details: ErrorBoundaryDetails,
408
+ componentStack: string | undefined,
409
+ props: ErrorBoundaryProps,
410
+ ): CrashReport {
409
411
  const { page, path } = currentPage();
410
412
  const extras: Record<string, string> = {};
411
413
  try {
@@ -638,9 +640,7 @@ function ErrorFallback({
638
640
  </p>
639
641
  )}
640
642
  {filing === "filed" && (
641
- <p className="-mt-1 mb-1 basis-full text-xs">
642
- {reference ? text.reportedAs(reference) : text.reported}
643
- </p>
643
+ <p className="-mt-1 mb-1 basis-full text-xs">{reference ? text.reportedAs(reference) : text.reported}</p>
644
644
  )}
645
645
  {mode === "error" ? [retryButton, reloadButton] : [reloadButton, retryButton]}
646
646
  {copyReport && reportText !== null && filing !== "filed" && (
@@ -78,8 +78,7 @@ export const FIELD_BASE =
78
78
  * reason other than "you may not edit this". Attribute-scoped for the same reason
79
79
  * FIELD_BASE is — the two have to cancel on the identical selector or twMerge
80
80
  * cannot make the later one win. */
81
- export const FIELD_WRITABLE_LOOK =
82
- "[&[readonly]]:bg-surface [&[readonly]]:text-primary";
81
+ export const FIELD_WRITABLE_LOOK = "[&[readonly]]:bg-surface [&[readonly]]:text-primary";
83
82
 
84
83
  // Extra top padding leaves room for a label that floats INSIDE the field (the
85
84
  // "filled" pattern) — the label sits in the top strip, the value below it. Used by
@@ -190,10 +189,7 @@ export function FieldChevron({ className, ...rest }: FieldChevronProps) {
190
189
  // a name, and an `aria-hidden` a caller could switch off by accident is a second
191
190
  // announcement of the same field.
192
191
  aria-hidden
193
- className={cn(
194
- "pointer-events-none absolute end-2.5 top-1/2 size-4 -translate-y-1/2 text-placeholder",
195
- className,
196
- )}
192
+ className={cn("pointer-events-none absolute end-2.5 top-1/2 size-4 -translate-y-1/2 text-placeholder", className)}
197
193
  />
198
194
  );
199
195
  }
@@ -256,8 +252,7 @@ export function SelectWidthFloor({ values, size = "md" }: { values: readonly str
256
252
  // At Large it is a static label ABOVE the field instead (0.33, §10.17): in flow, so it
257
253
  // wraps; always in its floated look, since there is no strip to float into and no
258
254
  // placeholder to stand in for; no transition, since it never moves.
259
- const LABEL_FLOATED_AT_LARGE =
260
- "large:text-caption large:leading-tight large:text-secondary large:transition-none";
255
+ const LABEL_FLOATED_AT_LARGE = "large:text-caption large:leading-tight large:text-secondary large:transition-none";
261
256
 
262
257
  export const FLOATING_LABEL_CLASS = cn(
263
258
  "pointer-events-none absolute start-3 top-2.5 text-sm text-placeholder transition-all",
@@ -294,7 +289,10 @@ const FLOATING_ROW_CLASS = cn(
294
289
 
295
290
  /** The static label's row with its "?" at the field's end, in the top strip — and at
296
291
  * Large above the field (LABEL_ABOVE_AT_LARGE). */
297
- const STATIC_ROW_CLASS = cn("pointer-events-none absolute inset-x-3 top-1 flex items-center gap-1", LABEL_ABOVE_AT_LARGE);
292
+ const STATIC_ROW_CLASS = cn(
293
+ "pointer-events-none absolute inset-x-3 top-1 flex items-center gap-1",
294
+ LABEL_ABOVE_AT_LARGE,
295
+ );
298
296
 
299
297
  /**
300
298
  * The one place that assembles a labelled field: a `relative` wrapper around the
@@ -602,11 +600,7 @@ export function CharacterCount({
602
600
  aria-hidden
603
601
  className={cn(
604
602
  "shrink-0 text-caption leading-tight tabular-nums",
605
- zone === "limit"
606
- ? "text-danger"
607
- : zone === "near"
608
- ? "text-warning"
609
- : "text-muted",
603
+ zone === "limit" ? "text-danger" : zone === "near" ? "text-warning" : "text-muted",
610
604
  )}
611
605
  >
612
606
  {used}/{max}
@@ -55,8 +55,7 @@ export { assignRef, mergeRefs } from "../lib/refs";
55
55
  // laid out by one flex row instead of by two absolute offsets guessing at the
56
56
  // same baseline — which is what put dev#468's "?" three pixels above the word it
57
57
  // belongs to.
58
- export const STATIC_LABEL_TYPE =
59
- "text-caption leading-tight text-muted peer-disabled:opacity-50";
58
+ export const STATIC_LABEL_TYPE = "text-caption leading-tight text-muted peer-disabled:opacity-50";
60
59
 
61
60
  /**
62
61
  * A field's label at Large and Extra large (0.33, docs/text-size-harmonization.md
@@ -150,13 +149,7 @@ export interface FieldHintProps extends Omit<ComponentPropsWithRef<"button">, "c
150
149
  side?: TooltipSide;
151
150
  }
152
151
 
153
- export function FieldHint({
154
- label,
155
- side = "start",
156
- className,
157
- "aria-label": ariaLabel,
158
- ...rest
159
- }: FieldHintProps) {
152
+ export function FieldHint({ label, side = "start", className, "aria-label": ariaLabel, ...rest }: FieldHintProps) {
160
153
  return (
161
154
  // `tap="toggle"` (0.25): the "?" exists only to explain, so a tap on a phone shows
162
155
  // the bubble and the next tap hides it — the touch rule (no bubble left behind by a
@@ -281,7 +274,6 @@ export interface FieldHelpSource {
281
274
  name?: ReactNode;
282
275
  }
283
276
 
284
-
285
277
  /**
286
278
  * Whether a `hint` is a CAPTION (plain text: a non-empty string or a number) or
287
279
  * something for the label line (a {@link FieldHint} "?", or any other node).
@@ -434,7 +426,10 @@ export function StaticLabelRow({ hint, children }: { hint: ReactNode; children:
434
426
  return (
435
427
  <div
436
428
  data-field-label=""
437
- className={cn("pointer-events-none absolute start-3 end-9 top-1 z-10 flex items-center gap-1", LABEL_ABOVE_AT_LARGE)}
429
+ className={cn(
430
+ "pointer-events-none absolute start-3 end-9 top-1 z-10 flex items-center gap-1",
431
+ LABEL_ABOVE_AT_LARGE,
432
+ )}
438
433
  >
439
434
  {children}
440
435
  <span className="pointer-events-auto flex shrink-0 items-center">{hint}</span>
@@ -606,8 +601,7 @@ export function useDisabledReasonLine(display: DisabledReasonDisplay = "auto"):
606
601
  /** The reason line's type: a field caption's ({@link FIELD_CAPTION_CLASS}), so a locked
607
602
  * control's "why" reads like a field's standing advice. Capped, so a long reason under
608
603
  * a small control wraps rather than widening its row without end. */
609
- export const DISABLED_REASON_LINE_CLASS =
610
- "mt-1 block max-w-[20rem] text-caption leading-tight text-muted";
604
+ export const DISABLED_REASON_LINE_CLASS = "mt-1 block max-w-[20rem] text-caption leading-tight text-muted";
611
605
 
612
606
  /**
613
607
  * A control and its `disabledReason` as a line under it — the `"line"` form of
@@ -713,15 +707,7 @@ export function useFieldMessages({
713
707
  * once `error` is passed the box is kept even with no message, so the trigger is never
714
708
  * reparented — and remounted, losing focus — as the message comes and goes.
715
709
  */
716
- export function FieldBox({
717
- below,
718
- reserve,
719
- children,
720
- }: {
721
- below: ReactNode;
722
- reserve: boolean;
723
- children: ReactNode;
724
- }) {
710
+ export function FieldBox({ below, reserve, children }: { below: ReactNode; reserve: boolean; children: ReactNode }) {
725
711
  if (below === null && !reserve) return <>{children}</>;
726
712
  return (
727
713
  <div>
@@ -746,7 +732,10 @@ export function FieldLabelLine({ label, hint }: { label: ReactNode; hint?: React
746
732
  // over the row (and take the "?"'s hover) otherwise. Above the field at Large.
747
733
  <div
748
734
  data-field-label=""
749
- className={cn("pointer-events-none absolute start-3 end-9 top-1 z-10 flex items-center gap-1", LABEL_ABOVE_AT_LARGE)}
735
+ className={cn(
736
+ "pointer-events-none absolute start-3 end-9 top-1 z-10 flex items-center gap-1",
737
+ LABEL_ABOVE_AT_LARGE,
738
+ )}
750
739
  >
751
740
  <FieldLabel className={cn(LABEL_IN_ROW, "max-w-full")}>{label}</FieldLabel>
752
741
  <span className="pointer-events-auto flex shrink-0 items-center">{hint}</span>
@@ -282,8 +282,7 @@ export function FieldSyncIndicator({
282
282
  const large = useLargeText();
283
283
  showLabel = showLabel || large;
284
284
  const { color, Icon } = STATE_STYLE[state];
285
- const text =
286
- state === "error" ? (error?.message?.trim() ? error.message : l.error) : l[state];
285
+ const text = state === "error" ? (error?.message?.trim() ? error.message : l.error) : l[state];
287
286
 
288
287
  return (
289
288
  <span
@@ -443,11 +442,12 @@ export function FieldSyncRow<T>({
443
442
  >
444
443
  {children}
445
444
  <span className="pointer-events-none absolute inset-y-0 end-0 flex items-center pe-3">
446
- {state === "edited" && (
447
- <PencilLine aria-hidden className="size-4 text-[var(--status-edited)]" />
448
- )}
445
+ {state === "edited" && <PencilLine aria-hidden className="size-4 text-[var(--status-edited)]" />}
449
446
  {state === "pending" && (
450
- <Loader2 aria-hidden className="size-4 animate-spin text-[var(--status-pending)] motion-reduce:animate-none" />
447
+ <Loader2
448
+ aria-hidden
449
+ className="size-4 animate-spin text-[var(--status-pending)] motion-reduce:animate-none"
450
+ />
451
451
  )}
452
452
  {state === "synced" && (
453
453
  <Check
@@ -474,11 +474,7 @@ export function FieldSyncRow<T>({
474
474
  </Tooltip>
475
475
  )}
476
476
  </span>
477
- <span
478
- role={isError ? "alert" : "status"}
479
- aria-live={isError ? "assertive" : "polite"}
480
- className="sr-only"
481
- >
477
+ <span role={isError ? "alert" : "status"} aria-live={isError ? "assertive" : "polite"} className="sr-only">
482
478
  {shown === null ? "" : text}
483
479
  </span>
484
480
  </div>
@@ -64,7 +64,8 @@ export type {
64
64
  type ButtonOwnProps = ComponentPropsWithoutRef<typeof Button>;
65
65
 
66
66
  export interface FileButtonProps
67
- extends Omit<UseFilePickerOptions, "disabled">,
67
+ extends
68
+ Omit<UseFilePickerOptions, "disabled">,
68
69
  // `onDrop` & co. stay the caller's own when `droppable` is off; `type` is fixed to
69
70
  // "button" (see 2. above) — a file trigger never submits a form.
70
71
  Omit<ButtonOwnProps, "type" | "children" | "accept" | "capture" | "multiple"> {
@@ -106,7 +107,6 @@ export interface FileButtonProps
106
107
  ref?: Ref<HTMLButtonElement>;
107
108
  }
108
109
 
109
-
110
110
  /**
111
111
  * {@link useFilePicker} behind a {@link Button}: `variant` and every other button prop
112
112
  * pass through, and the ref is the `<button>` (so `ref.current.click()` opens the
@@ -177,7 +177,11 @@ export function FileButton({
177
177
  disabled: refusing,
178
178
  });
179
179
  const pickedText =
180
- picked.length === 0 ? "" : picked.length === 1 ? picked[0].name : pickerLabels.selected(picked.length, picked[0].name);
180
+ picked.length === 0
181
+ ? ""
182
+ : picked.length === 1
183
+ ? picked[0].name
184
+ : pickerLabels.selected(picked.length, picked[0].name);
181
185
  const [dragOver, setDragOver] = useState(false);
182
186
 
183
187
  const hasFiles = (e: DragEvent) => Array.from(e.dataTransfer?.types ?? []).includes("Files");
@@ -235,8 +235,7 @@ export function FileDropzone({
235
235
  // page is not announced by itself.
236
236
  const status = useAnnounce();
237
237
  const alert = useAnnounce({ politeness: "assertive" });
238
- const feedback: FileDropzoneRejectionFeedback =
239
- rejectionFeedback ?? (onInvalid || onReject ? "none" : "toast");
238
+ const feedback: FileDropzoneRejectionFeedback = rejectionFeedback ?? (onInvalid || onReject ? "none" : "toast");
240
239
  const dropLabel = dropLabelProp ?? labels.dropzone;
241
240
  const browseLabel = browseLabelProp ?? labels.browse;
242
241
  const emptyLabel = emptyLabelProp ?? (multiple ? labels.emptyMultiple : labels.empty);
@@ -272,9 +271,7 @@ export function FileDropzone({
272
271
  if (!stands || rejected.length > 0) {
273
272
  for (const r of rejected) onInvalid?.(r.file);
274
273
  if (rejected.length > 0) onReject?.(rejected);
275
- const message = stands
276
- ? summariseRejections(rejected, labels)
277
- : labels.rejectedPick(picked.length);
274
+ const message = stands ? summariseRejections(rejected, labels) : labels.rejectedPick(picked.length);
278
275
  if (feedback === "toast") {
279
276
  // The kit's `toast`, which loads sonner (an optional peer) lazily, so an app
280
277
  // that never trips this never has to install it. Nothing downstream depends
@@ -378,10 +375,10 @@ export function FileDropzone({
378
375
  : locked
379
376
  ? "cursor-not-allowed border-subtle"
380
377
  : dragOver
381
- ? "cursor-pointer border-strong bg-active"
382
- : showError
383
- ? "cursor-pointer border-danger-strong"
384
- : "cursor-pointer border-subtle hover:border-strong",
378
+ ? "cursor-pointer border-strong bg-active"
379
+ : showError
380
+ ? "cursor-pointer border-danger-strong"
381
+ : "cursor-pointer border-subtle hover:border-strong",
385
382
  className,
386
383
  )}
387
384
  >
@@ -468,9 +465,7 @@ export function FileDropzone({
468
465
  {locked && !(file && !multiple) ? (
469
466
  reasonLine
470
467
  ) : (
471
- <div className="text-xs text-muted">
472
- {file && !multiple ? fileText.size(file.size) : hint}
473
- </div>
468
+ <div className="text-xs text-muted">{file && !multiple ? fileText.size(file.size) : hint}</div>
474
469
  )}
475
470
  {locked && file && !multiple && reasonLine}
476
471
  </>