@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
@@ -48,16 +48,40 @@ const FORMAT_BITS: Record<QrErrorCorrection, number> = { L: 1, M: 0, Q: 3, H: 2
48
48
 
49
49
  // Index 0 is padding; rows are L, M, Q, H.
50
50
  const ECC_CODEWORDS_PER_BLOCK: readonly (readonly number[])[] = [
51
- [-1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
52
- [-1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],
53
- [-1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
54
- [-1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
51
+ [
52
+ -1, 7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30,
53
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
54
+ ],
55
+ [
56
+ -1, 10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28,
57
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
58
+ ],
59
+ [
60
+ -1, 13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30,
61
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
62
+ ],
63
+ [
64
+ -1, 17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30,
65
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
66
+ ],
55
67
  ];
56
68
  const NUM_ERROR_CORRECTION_BLOCKS: readonly (readonly number[])[] = [
57
- [-1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],
58
- [-1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],
59
- [-1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],
60
- [-1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81],
69
+ [
70
+ -1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19,
71
+ 19, 20, 21, 22, 24, 25,
72
+ ],
73
+ [
74
+ -1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31,
75
+ 33, 35, 37, 38, 40, 43, 45, 47, 49,
76
+ ],
77
+ [
78
+ -1, 1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43,
79
+ 45, 48, 51, 53, 56, 59, 62, 65, 68,
80
+ ],
81
+ [
82
+ -1, 1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48,
83
+ 51, 54, 57, 60, 63, 66, 70, 74, 77, 81,
84
+ ],
61
85
  ];
62
86
 
63
87
  /** Encode `text` (as UTF-8 bytes). Throws a `RangeError` past version 40's capacity. */
@@ -110,10 +110,7 @@ export interface SessionRefreshOptions<R extends SessionRenewal> {
110
110
  * | `"changed"` | the session changed while it ran | nothing; read the app's own state |
111
111
  */
112
112
  export type SessionRefreshOutcome<R extends SessionRenewal = SessionRenewal> =
113
- | { result: "renewed"; renewal: R }
114
- | { result: "ended" }
115
- | { result: "transient" }
116
- | { result: "changed" };
113
+ { result: "renewed"; renewal: R } | { result: "ended" } | { result: "transient" } | { result: "changed" };
117
114
 
118
115
  /** The flight {@link createSessionRefresh} makes; {@link attachSessionRefresh} hooks it
119
116
  * to an axios instance. */
@@ -339,8 +336,10 @@ interface SessionRefreshAxiosConfig extends ServerWakeAxiosConfig {
339
336
  * the replay. `axios.create()`'s result fits it as is. `NoInfer`, because axios's
340
337
  * `request` takes the WIDER `AxiosRequestConfig`: inferred from there, the config type
341
338
  * no longer fits the interceptors, which hand out `InternalAxiosRequestConfig`. */
342
- interface SessionRefreshInstance<C extends SessionRefreshAxiosConfig, R extends { config: C }>
343
- extends AxiosLikeInstance<C, R> {
339
+ interface SessionRefreshInstance<
340
+ C extends SessionRefreshAxiosConfig,
341
+ R extends { config: C },
342
+ > extends AxiosLikeInstance<C, R> {
344
343
  request(config: NoInfer<C>): Promise<unknown>;
345
344
  }
346
345
 
@@ -198,8 +198,7 @@ export const cellNumber = (cell: string) => Number(cell.replace(",", "."));
198
198
 
199
199
  /** Whether one cell holds a number yet. An empty cell is not one — it is a hole
200
200
  * in the measurement, which is a different thing from a zero. */
201
- export const isCellNumber = (cell: string) =>
202
- cell.trim() !== "" && !Number.isNaN(cellNumber(cell));
201
+ export const isCellNumber = (cell: string) => cell.trim() !== "" && !Number.isNaN(cellNumber(cell));
203
202
 
204
203
  /**
205
204
  * The one separator and the one decimal mark a whole file is read with.
@@ -368,7 +367,15 @@ export interface TextTable {
368
367
  export function parseTextTable(text: string, options: ParseTextTableOptions = {}): TextTable {
369
368
  const content = textLines(text);
370
369
  if (!content.length) {
371
- return { header: null, rows: [], lines: [], width: 0, separator: options.separator ?? ",", decimalComma: false, unread: [] };
370
+ return {
371
+ header: null,
372
+ rows: [],
373
+ lines: [],
374
+ width: 0,
375
+ separator: options.separator ?? ",",
376
+ decimalComma: false,
377
+ unread: [],
378
+ };
372
379
  }
373
380
  const separator = options.separator ?? votedSeparator(content);
374
381
  const decimalComma =
@@ -389,7 +396,12 @@ export function parseTextTable(text: string, options: ParseTextTableOptions = {}
389
396
  const unread: TableLine[] = split.slice(0, first).map(({ entry }) => entry);
390
397
  const body = split.slice(first);
391
398
  const fitting = body.filter(({ cells }) => cells.length === width);
392
- const header = options.header ?? looksLikeHeader(fitting[0].cells, fitting.slice(1, 21).map(({ cells }) => cells));
399
+ const header =
400
+ options.header ??
401
+ looksLikeHeader(
402
+ fitting[0].cells,
403
+ fitting.slice(1, 21).map(({ cells }) => cells),
404
+ );
393
405
 
394
406
  const rows: string[][] = [];
395
407
  const lines: TableLine[] = [];
@@ -464,7 +476,11 @@ const withoutQuoted = (line: string) => line.replace(/"(?:[^"]|"")*"/g, '""');
464
476
  * A run of whitespace is one separator and makes no empty cells.
465
477
  */
466
478
  function cellsOf(line: string, separator: TableSeparator): string[] {
467
- if (separator === " ") return line.split(/\s+/).filter((field) => field !== "").map(unquote);
479
+ if (separator === " ")
480
+ return line
481
+ .split(/\s+/)
482
+ .filter((field) => field !== "")
483
+ .map(unquote);
468
484
  const cells: string[] = [];
469
485
  let cell = "";
470
486
  let quoted = false;
@@ -499,7 +515,9 @@ function cellsOf(line: string, separator: TableSeparator): string[] {
499
515
 
500
516
  /** A whitespace-separated field with its quotes off. */
501
517
  function unquote(field: string): string {
502
- return field.length >= 2 && field.startsWith('"') && field.endsWith('"') ? field.slice(1, -1).replace(/""/g, '"') : field;
518
+ return field.length >= 2 && field.startsWith('"') && field.endsWith('"')
519
+ ? field.slice(1, -1).replace(/""/g, '"')
520
+ : field;
503
521
  }
504
522
 
505
523
  /** The column count most lines share; a tie goes to the wider table. */
@@ -26,7 +26,10 @@ export function foldForSearch(text: string, locale?: string): string {
26
26
  } catch {
27
27
  lower = text.toLocaleLowerCase();
28
28
  }
29
- return lower.normalize("NFD").replace(/\p{M}+/gu, "").replace(/ß/g, "ss");
29
+ return lower
30
+ .normalize("NFD")
31
+ .replace(/\p{M}+/gu, "")
32
+ .replace(/ß/g, "ss");
30
33
  }
31
34
 
32
35
  /**
@@ -34,7 +37,9 @@ export function foldForSearch(text: string, locale?: string): string {
34
37
  * "Migros Zürich" → `["migros", "zurich"]`. An empty or blank query has no words.
35
38
  */
36
39
  export function searchWords(query: string, locale?: string): string[] {
37
- return foldForSearch(query, locale).split(/\s+/).filter((word) => word !== "");
40
+ return foldForSearch(query, locale)
41
+ .split(/\s+/)
42
+ .filter((word) => word !== "");
38
43
  }
39
44
 
40
45
  /**
@@ -46,6 +51,10 @@ export function searchWords(query: string, locale?: string): string[] {
46
51
  * was a substring. No words match everything.
47
52
  *
48
53
  * `words` from {@link searchWords}; `texts` as they are (folded here), `undefined` skipped.
54
+ *
55
+ * Exported since 0.51.5 for an app's own async source: a picker shows `loadOptions`'
56
+ * rows as they come, so a source that narrows on the client filters with this, the same
57
+ * rule the kit applies to `options` (keksdose's shop picker past its first hundred shops).
49
58
  */
50
59
  export function matchesSearch(
51
60
  words: readonly string[],
@@ -55,7 +64,10 @@ export function matchesSearch(
55
64
  if (words.length === 0) return true;
56
65
  // One haystack per row; a word holds no whitespace, so it cannot match across the
57
66
  // newline between two texts.
58
- const hay = texts.filter((t): t is string => t !== undefined).map((t) => foldForSearch(t, locale)).join("\n");
67
+ const hay = texts
68
+ .filter((t): t is string => t !== undefined)
69
+ .map((t) => foldForSearch(t, locale))
70
+ .join("\n");
59
71
  return words.every((word) => hay.includes(word));
60
72
  }
61
73
 
@@ -275,9 +275,7 @@ export function reviewStatus(
275
275
  * copies of it apply the same rule.
276
276
  */
277
277
  export function keyInArea(key: string, area: string): boolean {
278
- return (
279
- key === area || key.startsWith(`${area}.`) || key.startsWith(`${area}:`) || key.startsWith(`kit.${area}.`)
280
- );
278
+ return key === area || key.startsWith(`${area}.`) || key.startsWith(`${area}:`) || key.startsWith(`kit.${area}.`);
281
279
  }
282
280
 
283
281
  /**
@@ -47,8 +47,10 @@ export interface NotificationInboxItem<Id extends string | number = string | num
47
47
  * "Mark all as read", or "Clear all". */
48
48
  export type NotificationInboxAction = "read" | "readAll" | "clear";
49
49
 
50
- export interface NotificationInboxProps<Id extends string | number = string | number>
51
- extends Omit<ComponentPropsWithRef<"div">, "children" | "title"> {
50
+ export interface NotificationInboxProps<Id extends string | number = string | number> extends Omit<
51
+ ComponentPropsWithRef<"div">,
52
+ "children" | "title"
53
+ > {
52
54
  /** The rows, newest first; `undefined` while the first page loads. */
53
55
  items: readonly NotificationInboxItem<Id>[] | undefined;
54
56
  /** Every unread row of the account (`unread_count`), not only this page's. */
@@ -242,7 +244,11 @@ export function NotificationInbox<Id extends string | number = string | number>(
242
244
  } else {
243
245
  body = (
244
246
  // Named by the heading — except while "Clear all" asks, when the heading is away.
245
- <List className="p-1" aria-labelledby={asking ? undefined : headingId} aria-label={asking ? labels.inboxTitle : undefined}>
247
+ <List
248
+ className="p-1"
249
+ aria-labelledby={asking ? undefined : headingId}
250
+ aria-label={asking ? labels.inboxTitle : undefined}
251
+ >
246
252
  {items.map((item) => {
247
253
  const row = {
248
254
  title: item.title,
@@ -288,7 +294,14 @@ export function NotificationInbox<Id extends string | number = string | number>(
288
294
  })}
289
295
  {hasMore && onLoadMore && (
290
296
  <li className="px-2 py-1">
291
- <Button type="button" size="sm" variant="ghost" pending={loadingMore} onClick={onLoadMore} className="w-full">
297
+ <Button
298
+ type="button"
299
+ size="sm"
300
+ variant="ghost"
301
+ pending={loadingMore}
302
+ onClick={onLoadMore}
303
+ className="w-full"
304
+ >
292
305
  {labels.showMore}
293
306
  </Button>
294
307
  </li>
@@ -68,8 +68,7 @@ export function useWriteOverlay<V>(source: unknown): WriteOverlay<V> {
68
68
  has: (key: string) => entries.has(key),
69
69
  get: (key: string) => entries.get(key)?.value,
70
70
  pending: (key: string) => entries.get(key)?.running === true,
71
- set: (key: string, value: V) =>
72
- setEntries((current) => new Map(current).set(key, { value, running: true })),
71
+ set: (key: string, value: V) => setEntries((current) => new Map(current).set(key, { value, running: true })),
73
72
  settle: (key: string, ok: boolean) =>
74
73
  setEntries((current) => {
75
74
  const entry = current.get(key);
@@ -34,8 +34,10 @@ function devChecks(): boolean {
34
34
  return Boolean(import.meta.env?.DEV);
35
35
  }
36
36
 
37
- export interface NotificationTypesSettingProps<Id extends string = string>
38
- extends Omit<ComponentPropsWithRef<"div">, "children" | "onChange"> {
37
+ export interface NotificationTypesSettingProps<Id extends string = string> extends Omit<
38
+ ComponentPropsWithRef<"div">,
39
+ "children" | "onChange"
40
+ > {
39
41
  /** The app's words for its types, in its order. Where an app types its ids. */
40
42
  types: readonly NotificationTypeEntry<Id>[];
41
43
  /** The `GET`'s `types` (§3.2); `undefined` while the first load runs. */
@@ -217,7 +219,8 @@ export function NotificationTypesSetting<Id extends string = string>({
217
219
  email: labels.channelEmail,
218
220
  };
219
221
  /** The columns on a wide screen: every channel some several-channel row offers. */
220
- const drawnRows = value && !loading ? rowsOf(groups ? groups.flatMap((group) => group.types) : types.map((entry) => entry.id)) : [];
222
+ const drawnRows =
223
+ value && !loading ? rowsOf(groups ? groups.flatMap((group) => group.types) : types.map((entry) => entry.id)) : [];
221
224
  const multi = drawnRows.filter((row) => channelsOf(row.switches).length > 1);
222
225
  const columns = CHANNELS.filter((channel) => multi.some((row) => channelsOf(row.switches).includes(channel)));
223
226
  const columnHeadings =
@@ -357,26 +360,24 @@ export function NotificationTypesSetting<Id extends string = string>({
357
360
  if (loading || value === undefined) {
358
361
  body = <Skeleton lines={3} label={labels.typesLoading} />;
359
362
  } else if (groups) {
360
- const drawn = groups
361
- .map((group) => ({ group, rows: rowsOf(group.types) }))
362
- .filter(({ rows }) => rows.length > 0);
363
+ const drawn = groups.map((group) => ({ group, rows: rowsOf(group.types) })).filter(({ rows }) => rows.length > 0);
363
364
  body =
364
365
  drawn.length === 0 ? (
365
366
  <p className={CARD_DESCRIPTION_CLASS}>{labels.typesEmpty}</p>
366
367
  ) : (
367
368
  <>
368
- {columnHeadings}
369
- {drawn.map(({ group, rows }) => {
370
- const headingId = `${groupId}-${group.id}`;
371
- return (
372
- <div key={group.id} role="group" aria-labelledby={headingId} className="space-y-3">
373
- <SectionLabel as="div" size="xs" id={headingId}>
374
- {group.label}
375
- </SectionLabel>
376
- {rows.map(renderRow)}
377
- </div>
378
- );
379
- })}
369
+ {columnHeadings}
370
+ {drawn.map(({ group, rows }) => {
371
+ const headingId = `${groupId}-${group.id}`;
372
+ return (
373
+ <div key={group.id} role="group" aria-labelledby={headingId} className="space-y-3">
374
+ <SectionLabel as="div" size="xs" id={headingId}>
375
+ {group.label}
376
+ </SectionLabel>
377
+ {rows.map(renderRow)}
378
+ </div>
379
+ );
380
+ })}
380
381
  </>
381
382
  );
382
383
  } else {
@@ -245,8 +245,7 @@ export const DEFAULT_NOTIFICATIONS_LABELS: NotificationsLabels = {
245
245
  added: (date) => `Added ${date}`,
246
246
  lastDelivery: (date) => `Last delivery ${date}`,
247
247
  noDelivery: "No delivery yet",
248
- failures: (count) =>
249
- count === 1 ? "1 failed delivery in a row" : `${count} failed deliveries in a row`,
248
+ failures: (count) => (count === 1 ? "1 failed delivery in a row" : `${count} failed deliveries in a row`),
250
249
  remove: "Remove",
251
250
  removeItem: (device) => `Remove ${device}`,
252
251
  removePrompt: "Stop sending notifications to this device?",
@@ -101,7 +101,13 @@ export function PushDeviceSetting({
101
101
  (ok): Outcome => (ok ? null : { tone: "danger", text: labels.enableFailed }),
102
102
  labels.enableFailed,
103
103
  );
104
- const disable = () => run("disable", () => push.disable(), () => null, labels.failed);
104
+ const disable = () =>
105
+ run(
106
+ "disable",
107
+ () => push.disable(),
108
+ () => null,
109
+ labels.failed,
110
+ );
105
111
  const test = () =>
106
112
  run(
107
113
  "test",
@@ -55,8 +55,10 @@ export function describeUserAgent(ua: string | null): string | null {
55
55
  return [browser, os].filter(Boolean).join(" · ");
56
56
  }
57
57
 
58
- export interface PushDevicesSettingProps<Id extends string | number = string>
59
- extends Omit<ComponentPropsWithRef<"div">, "children"> {
58
+ export interface PushDevicesSettingProps<Id extends string | number = string> extends Omit<
59
+ ComponentPropsWithRef<"div">,
60
+ "children"
61
+ > {
60
62
  /** `GET /notifications/devices`, oldest first; `undefined` while the first load runs. */
61
63
  devices: readonly PushDeviceItem<Id>[] | undefined;
62
64
  loading?: boolean;
@@ -371,7 +373,9 @@ function DeviceRow<Id extends string | number>({
371
373
  {" · "}
372
374
  {lastDelivery ? labels.lastDelivery(lastDelivery) : labels.noDelivery}
373
375
  </div>
374
- {device.failure_count > 0 && <div className="text-xs text-warning">{labels.failures(device.failure_count)}</div>}
376
+ {device.failure_count > 0 && (
377
+ <div className="text-xs text-warning">{labels.failures(device.failure_count)}</div>
378
+ )}
375
379
  </div>
376
380
  <Button
377
381
  ref={removeRef}
@@ -133,9 +133,17 @@ export async function resubscribeAfterChange(
133
133
 
134
134
  /** The parts of a `ServiceWorkerGlobalScope` this needs. */
135
135
  export interface PushWorkerScope {
136
- addEventListener: (type: "pushsubscriptionchange", listener: (event: PushSubscriptionChangeEventLike) => void) => void;
136
+ addEventListener: (
137
+ type: "pushsubscriptionchange",
138
+ listener: (event: PushSubscriptionChangeEventLike) => void,
139
+ ) => void;
137
140
  registration: { pushManager: PushManager };
138
- clients?: { matchAll: (options?: { type?: "window"; includeUncontrolled?: boolean }) => Promise<readonly { postMessage: (message: unknown) => void }[]> };
141
+ clients?: {
142
+ matchAll: (options?: {
143
+ type?: "window";
144
+ includeUncontrolled?: boolean;
145
+ }) => Promise<readonly { postMessage: (message: unknown) => void }[]>;
146
+ };
139
147
  }
140
148
 
141
149
  /**
@@ -25,7 +25,10 @@ function zoneName(zone: string, regions: NotificationRegionLabels): string {
25
25
  const named = Object.prototype.hasOwnProperty.call(regions, region)
26
26
  ? regions[region as keyof NotificationRegionLabels]
27
27
  : region;
28
- return `${named} / ${zone.slice(slash + 1).replace(/_/g, " ").replace(/\//g, " / ")}`;
28
+ return `${named} / ${zone
29
+ .slice(slash + 1)
30
+ .replace(/_/g, " ")
31
+ .replace(/\//g, " / ")}`;
29
32
  }
30
33
 
31
34
  export interface QuietHoursSettingProps extends Omit<ComponentPropsWithRef<"div">, "children" | "onChange"> {
@@ -307,7 +307,10 @@ export function usePushDevice(options: UsePushDeviceOptions): PushDevice {
307
307
  within(
308
308
  (async () =>
309
309
  (reuse ? await registration.pushManager.getSubscription() : null) ??
310
- (await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: keyBytes(key) })))(),
310
+ (await registration.pushManager.subscribe({
311
+ userVisibleOnly: true,
312
+ applicationServerKey: keyBytes(key),
313
+ })))(),
311
314
  PUSH_TIMEOUT_MS,
312
315
  "push_timeout",
313
316
  );
@@ -39,7 +39,13 @@ export interface PwaUpdatePromptProps {
39
39
  /** The toast's id: one prompt at a time, replaced in place. */
40
40
  const PWA_UPDATE_TOAST_ID = "pwa-update";
41
41
 
42
- export function PwaUpdatePrompt({ needRefresh, onReload, onDismiss, hold = false, labels: labelsProp }: PwaUpdatePromptProps) {
42
+ export function PwaUpdatePrompt({
43
+ needRefresh,
44
+ onReload,
45
+ onDismiss,
46
+ hold = false,
47
+ labels: labelsProp,
48
+ }: PwaUpdatePromptProps) {
43
49
  const labels = useKitLabels("pwaUpdate", DEFAULT_PWA_UPDATE_PROMPT_LABELS, labelsProp);
44
50
  // The callbacks are read at click time, so a new function each render does not
45
51
  // re-raise the toast.
@@ -292,12 +292,15 @@ export function createQueryPersistence({
292
292
  timestamp,
293
293
  buster: stored,
294
294
  clientState: {
295
- mutations: persistMutations && Array.isArray(clientState.mutations)
296
- ? clientState.mutations.filter(
297
- (m) => !carriesScrubbed((m as { state?: { variables?: unknown } } | null)?.state?.variables),
298
- )
299
- : [],
300
- queries: clientState.queries.map(restorable).filter((q) => q !== null) as PersistedClient["clientState"]["queries"],
295
+ mutations:
296
+ persistMutations && Array.isArray(clientState.mutations)
297
+ ? clientState.mutations.filter(
298
+ (m) => !carriesScrubbed((m as { state?: { variables?: unknown } } | null)?.state?.variables),
299
+ )
300
+ : [],
301
+ queries: clientState.queries
302
+ .map(restorable)
303
+ .filter((q) => q !== null) as PersistedClient["clientState"]["queries"],
301
304
  },
302
305
  };
303
306
  } catch {
package/src/offline.ts CHANGED
@@ -6,7 +6,12 @@
6
6
  // `@tanstack/react-query-persist-client`, `@tanstack/query-async-storage-persister` and
7
7
  // `idb-keyval` — optional peers for that reason. NOT re-exported from the main barrel, which
8
8
  // would make them everyone's install; the packaging contract test holds that line.
9
- export { createQueryPersistence, DEFAULT_SCRUB_FIELDS, isCacheSafe, removeStaleQueryCopies } from "./offline/query-persistence";
9
+ export {
10
+ createQueryPersistence,
11
+ DEFAULT_SCRUB_FIELDS,
12
+ isCacheSafe,
13
+ removeStaleQueryCopies,
14
+ } from "./offline/query-persistence";
10
15
  export type {
11
16
  QueryPersistence,
12
17
  QueryPersistenceOptions,
@@ -286,7 +286,19 @@ export function RhfField<
286
286
 
287
287
  type OwnInputProps = Omit<
288
288
  InputProps,
289
- "name" | "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "label" | "error" | "invalid" | "className" | "disabled" | "required" | "inputClassName"
289
+ | "name"
290
+ | "value"
291
+ | "defaultValue"
292
+ | "onChange"
293
+ | "onBlur"
294
+ | "ref"
295
+ | "label"
296
+ | "error"
297
+ | "invalid"
298
+ | "className"
299
+ | "disabled"
300
+ | "required"
301
+ | "inputClassName"
290
302
  > & {
291
303
  /**
292
304
  * Classes for the `<input>` — `className` is the item's box (kastlan 42: a
@@ -344,7 +356,18 @@ export function RhfTextField<
344
356
 
345
357
  type OwnTextareaProps = Omit<
346
358
  TextareaProps,
347
- "name" | "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "label" | "error" | "invalid" | "className" | "disabled" | "required"
359
+ | "name"
360
+ | "value"
361
+ | "defaultValue"
362
+ | "onChange"
363
+ | "onBlur"
364
+ | "ref"
365
+ | "label"
366
+ | "error"
367
+ | "invalid"
368
+ | "className"
369
+ | "disabled"
370
+ | "required"
348
371
  > & {
349
372
  /** Classes for the `<textarea>`. */
350
373
  inputClassName?: string;
@@ -420,8 +443,23 @@ function toNumber(value: unknown, mark: "," | "."): number | null {
420
443
  * label, the hint, the item's `className`). Everything else of the field's passes
421
444
  * through (DUP-9, refactor audit 2026-10: a `Pick` allow-list dropped what the field
422
445
  * gained without a word). */
423
- type BoundByForm = "value" | "defaultValue" | "onChange" | "onBlur" | "ref" | "name" | "disabled" | "required"
424
- | "invalid" | "error" | "label" | "hint" | "className" | "aria-describedby" | "aria-invalid" | "aria-required";
446
+ type BoundByForm =
447
+ | "value"
448
+ | "defaultValue"
449
+ | "onChange"
450
+ | "onBlur"
451
+ | "ref"
452
+ | "name"
453
+ | "disabled"
454
+ | "required"
455
+ | "invalid"
456
+ | "error"
457
+ | "label"
458
+ | "hint"
459
+ | "className"
460
+ | "aria-describedby"
461
+ | "aria-invalid"
462
+ | "aria-required";
425
463
 
426
464
  export type RhfNumberFieldProps<
427
465
  TFieldValues extends FieldValues = FieldValues,
@@ -1009,12 +1047,7 @@ function RangeBody({
1009
1047
  {messages.map((message, i) => (
1010
1048
  // FormMessage's look and its rule: no `role="alert"` — read when focus reaches
1011
1049
  // the trigger, which names these in its description.
1012
- <p
1013
- key={message}
1014
- id={messageIds[i]}
1015
- data-slot="form-message"
1016
- className="text-caption leading-tight text-danger"
1017
- >
1050
+ <p key={message} id={messageIds[i]} data-slot="form-message" className="text-caption leading-tight text-danger">
1018
1051
  {message}
1019
1052
  </p>
1020
1053
  ))}
@@ -1565,13 +1598,14 @@ export type RhfCheckboxProps<
1565
1598
  TFieldValues extends FieldValues = FieldValues,
1566
1599
  TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
1567
1600
  TTransformed = TFieldValues,
1568
- > = // No `help` (0.36): a box has no label line — its label sits beside it, inside the
1601
+ > =
1602
+ // No `help` (0.36): a box has no label line — its label sits beside it, inside the
1569
1603
  // `<label>` a "?" cannot join — and Checkbox takes none.
1570
1604
  Omit<RhfFieldBaseProps<TFieldValues, TName, TTransformed>, "help"> &
1571
- // Checkbox's own — its lock (`commit`, `disabledReason`) among them, which a `Pick`
1572
- // list dropped until 0.34 (DUP-9) — less the box's state the form holds, and its
1573
- // `description`, which is the twin's `hint`.
1574
- Omit<CheckboxProps, BoundByForm | "checked" | "defaultChecked" | "onCheckedChange" | "description">;
1605
+ // Checkbox's own — its lock (`commit`, `disabledReason`) among them, which a `Pick`
1606
+ // list dropped until 0.34 (DUP-9) — less the box's state the form holds, and its
1607
+ // `description`, which is the twin's `hint`.
1608
+ Omit<CheckboxProps, BoundByForm | "checked" | "defaultChecked" | "onCheckedChange" | "description">;
1575
1609
 
1576
1610
  /**
1577
1611
  * The kit's {@link Checkbox}, label beside the box and `hint` under it (the
@@ -1652,10 +1686,7 @@ export type RhfToggleGroupProps<
1652
1686
  // The group's own (its `disabledReasonDisplay` was not on the `Pick` list this was
1653
1687
  // until 0.34, DUP-9), less what the form binds, the ids, and the label's placement:
1654
1688
  // the label is the form's, above.
1655
- Omit<
1656
- ToggleGroupBaseProps<T>,
1657
- BoundByForm | "id" | "aria-labelledby" | "labelPlacement" | "chromeClassName"
1658
- > & {
1689
+ Omit<ToggleGroupBaseProps<T>, BoundByForm | "id" | "aria-labelledby" | "labelPlacement" | "chromeClassName"> & {
1659
1690
  /** Classes for the group itself — `className` is the item's box. */
1660
1691
  groupClassName?: string;
1661
1692
  } & RhfToggleGroupMode<T>;
@@ -164,10 +164,7 @@ export function useFormField() {
164
164
  const state = getFieldState(field.name, formState);
165
165
  const formDescriptionId = `${item.id}-description`;
166
166
  const formMessageId = `${item.id}-message`;
167
- const describedBy = [
168
- item.mounted.description && formDescriptionId,
169
- item.mounted.message && formMessageId,
170
- ]
167
+ const describedBy = [item.mounted.description && formDescriptionId, item.mounted.message && formMessageId]
171
168
  .filter(Boolean)
172
169
  .join(" ");
173
170
  return {
@@ -195,8 +192,7 @@ export function FormItem({ className, ...rest }: FormItemProps) {
195
192
  message: false,
196
193
  });
197
194
  const mark = useCallback(
198
- (slot: Described, on: boolean) =>
199
- setMounted((prev) => (prev[slot] === on ? prev : { ...prev, [slot]: on })),
195
+ (slot: Described, on: boolean) => setMounted((prev) => (prev[slot] === on ? prev : { ...prev, [slot]: on })),
200
196
  [],
201
197
  );
202
198
  const value = useMemo(() => ({ id, mounted, mark }), [id, mounted, mark]);
@@ -49,15 +49,13 @@ import {
49
49
  } from "../components/line-items";
50
50
 
51
51
  /** A cell's context, with the row's path in the form. */
52
- export interface RhfLineItemCellContext<TItem, TArrayName extends string>
53
- extends LineItemCellContext<TItem> {
52
+ export interface RhfLineItemCellContext<TItem, TArrayName extends string> extends LineItemCellContext<TItem> {
54
53
  /** The row's path: `${name}.${index}` — bind the cell's field to
55
54
  * `` `${name}.amount` ``. */
56
55
  name: `${TArrayName}.${number}`;
57
56
  }
58
57
 
59
- export interface RhfLineItemsColumn<TItem, TArrayName extends string>
60
- extends Omit<LineItemsColumn<TItem>, "render"> {
58
+ export interface RhfLineItemsColumn<TItem, TArrayName extends string> extends Omit<LineItemsColumn<TItem>, "render"> {
61
59
  render: (ctx: RhfLineItemCellContext<TItem, TArrayName>) => ReactNode;
62
60
  }
63
61
 
@@ -66,9 +64,9 @@ export interface RhfLineItemsProps<
66
64
  TArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,
67
65
  TTransformed = TFieldValues,
68
66
  > extends Omit<
69
- LineItemsProps<FieldArrayWithId<TFieldValues, TArrayName, "id">>,
70
- "items" | "columns" | "onAdd" | "onRemove" | "getKey"
71
- > {
67
+ LineItemsProps<FieldArrayWithId<TFieldValues, TArrayName, "id">>,
68
+ "items" | "columns" | "onAdd" | "onRemove" | "getKey"
69
+ > {
72
70
  name: TArrayName;
73
71
  /** `form.control`. Optional under `<Form {...form}>`. */
74
72
  control?: UseFieldArrayProps<TFieldValues, TArrayName, "id", TTransformed>["control"];