@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
@@ -49,10 +49,12 @@ export function kitLabelStrings(labels: UiKitLabels, options: KitLabelStringsOpt
49
49
  // The key is the SAMPLE's (`…body(operator)`), whatever the label is called with,
50
50
  // so rows with and without the app's operator join on the same keys.
51
51
  const called = operator ? args.map((arg) => (arg === LEGAL_OPERATOR_SAMPLE ? operator : arg)) : args;
52
- out[`${path}(${args.map(sampleName).filter((a) => a !== "").join(", ")})`] = render(
53
- node as (...args: unknown[]) => unknown,
54
- called,
55
- );
52
+ out[
53
+ `${path}(${args
54
+ .map(sampleName)
55
+ .filter((a) => a !== "")
56
+ .join(", ")})`
57
+ ] = render(node as (...args: unknown[]) => unknown, called);
56
58
  }
57
59
  } else if (node !== null && typeof node === "object") {
58
60
  for (const [key, value] of Object.entries(node)) walk(value, path ? `${path}.${key}` : key);
@@ -407,7 +409,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
407
409
  "billing.buyerHolds": [["{{buyer}}"], [undefined]],
408
410
  "billing.paymentFailedAskBuyer": [["{{buyer}}"], [undefined]],
409
411
  "billing.cancelConfirmBody": [["{{date}}"]],
410
- "billing.portalOpensNewTab": [["{{provider}}", "{{app}}"], ["{{provider}}", undefined]],
412
+ "billing.portalOpensNewTab": [
413
+ ["{{provider}}", "{{app}}"],
414
+ ["{{provider}}", undefined],
415
+ ],
411
416
  "planChange.current": [["{{plan}}"]],
412
417
  "planChange.changed": [["{{from}}", "{{to}}"]],
413
418
  "planChange.set": [["{{to}}"]],
@@ -417,7 +422,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
417
422
  // the users tile's new accounts.
418
423
  "adminArea.waiting": one,
419
424
  // 0.45.0 (admin §9.3.4): an IconButton's name with its waiting count.
420
- "adminArea.waitingLabel": [["{{label}}", 1], ["{{label}}", 3]],
425
+ "adminArea.waitingLabel": [
426
+ ["{{label}}", 1],
427
+ ["{{label}}", 3],
428
+ ],
421
429
  // 0.45.0 (admin §9.2.4): the test mail's transport, masked address and limiter.
422
430
  "mailTestCard.transport": [["{{backend}}"]],
423
431
  "mailTestCard.sent": [["{{address}}"]],
@@ -437,7 +445,10 @@ export const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unkno
437
445
  // 0.43.0 (docs/tours-harmonization.md §3, §8): the tours page's counts, its group
438
446
  // option, the completion day and a reset's day and reason.
439
447
  "tourCatalogue.groupAll": one,
440
- "tourCatalogue.groupOption": [["{{group}}", 1], ["{{group}}", 3]],
448
+ "tourCatalogue.groupOption": [
449
+ ["{{group}}", 1],
450
+ ["{{group}}", 3],
451
+ ],
441
452
  "tourCatalogue.stateAll": one,
442
453
  "tourCatalogue.stateTodo": one,
443
454
  "tourCatalogue.stateDone": one,
@@ -64,8 +64,7 @@ export const DEFAULT_COMBOBOX_LABELS: ComboboxLabels = {
64
64
  selectedCount: (count) => `${count} selected`,
65
65
  loadError: "Couldn’t load results",
66
66
  resultCount: (count) => (count === 1 ? "1 result" : `${count} results`),
67
- minChars: (count) =>
68
- count === 1 ? "Type at least 1 character" : `Type at least ${count} characters`,
67
+ minChars: (count) => (count === 1 ? "Type at least 1 character" : `Type at least ${count} characters`),
69
68
  };
70
69
 
71
70
  export const DEFAULT_MULTI_SELECT_LABELS: MultiSelectLabels = {
package/src/index.ts CHANGED
@@ -22,8 +22,9 @@ export { readStored, writeStored } from "./lib/safe-storage";
22
22
  // (`filename*` first) — 0.34, KS U5; the kit's own three downloads use them.
23
23
  export { saveBlob, filenameFromDisposition } from "./lib/download";
24
24
  // Date helpers are also available via the "@eifi1/ui-kit/dates" subpath.
25
- // One fold and one ranking for every list's search box (DUP-5), for an app's own lists.
26
- export { foldForSearch, rankMatch } from "./lib/text-match";
25
+ // One fold and one ranking for every list's search box (DUP-5), for an app's own lists;
26
+ // and the pickers' every-word match (0.51.5), for an async `loadOptions` that filters itself.
27
+ export { foldForSearch, rankMatch, searchWords, matchesSearch } from "./lib/text-match";
27
28
  export type { MatchRank } from "./lib/text-match";
28
29
  // 0.12.0: the QR encoder QrCode draws with — no dependency, see lib/qr-encode.ts.
29
30
  export { encodeQr } from "./lib/qr-encode";
@@ -31,11 +32,29 @@ export type { QrEncodeOptions, QrErrorCorrection, QrMatrix } from "./lib/qr-enco
31
32
  // 0.18: the cold-start notice keksdose built (#199), for every app: the framework-free
32
33
  // watchdog over the app's requests (the corner notice is components/server-wake).
33
34
  export { createServerWake, serverWake, watchReadsAnd, attachServerWake, wrapFetch } from "./lib/server-wake";
34
- export type { ServerWakeStage, ServerWakeFilter, ServerWakeOptions, ServerWakeRequest, ServerWakeWatcher, ServerWakeAxiosConfig, AxiosLikeInstance } from "./lib/server-wake";
35
+ export type {
36
+ ServerWakeStage,
37
+ ServerWakeFilter,
38
+ ServerWakeOptions,
39
+ ServerWakeRequest,
40
+ ServerWakeWatcher,
41
+ ServerWakeAxiosConfig,
42
+ AxiosLikeInstance,
43
+ } from "./lib/server-wake";
35
44
  // 0.34 (docs/auth-harmonization.md §11, round 0.34 C7): renewing a session — one refresh
36
45
  // per tab, a definitive failure ends the session once, a transient one keeps it.
37
- export { createSessionRefresh, attachSessionRefresh, isTransientRefreshFailure, isSignedOutStep } from "./lib/session-refresh";
38
- export type { SessionRefresh, SessionRefreshOptions, SessionRenewal, SessionRefreshOutcome } from "./lib/session-refresh";
46
+ export {
47
+ createSessionRefresh,
48
+ attachSessionRefresh,
49
+ isTransientRefreshFailure,
50
+ isSignedOutStep,
51
+ } from "./lib/session-refresh";
52
+ export type {
53
+ SessionRefresh,
54
+ SessionRefreshOptions,
55
+ SessionRenewal,
56
+ SessionRefreshOutcome,
57
+ } from "./lib/session-refresh";
39
58
  // 0.29.0 (docs/auth-harmonization.md): the person-name order of each language.
40
59
  export { formatPersonName, personInitials } from "./lib/person-name";
41
60
  export type { PersonName } from "./lib/person-name";
@@ -93,25 +112,10 @@ export type {
93
112
  // 0.22.0, the inputs round: the country list and the IBAN, ISIN and phone helpers that
94
113
  // CountrySelect, IbanInput and PhoneInput are built on.
95
114
  export { COUNTRY_CODES, countryName } from "./lib/countries";
96
- export {
97
- IBAN_LENGTHS,
98
- compactIban,
99
- formatIban,
100
- ibanCheckDigits,
101
- ibanProblem,
102
- isValidIban,
103
- isQrIban,
104
- } from "./lib/iban";
115
+ export { IBAN_LENGTHS, compactIban, formatIban, ibanCheckDigits, ibanProblem, isValidIban, isQrIban } from "./lib/iban";
105
116
  export type { IbanKind, IbanProblem } from "./lib/iban";
106
117
  export { formatIsin, isinCheckDigit, isValidIsin } from "./lib/isin";
107
- export {
108
- PHONE_DIAL_CODES,
109
- PHONE_COUNTRIES,
110
- parsePhone,
111
- formatNationalPhone,
112
- formatPhone,
113
- isE164,
114
- } from "./lib/phone";
118
+ export { PHONE_DIAL_CODES, PHONE_COUNTRIES, parsePhone, formatNationalPhone, formatPhone, isE164 } from "./lib/phone";
115
119
  export type { PhoneCountryCode, PhoneCountry, ParsedPhone } from "./lib/phone";
116
120
  // 0.23.0: ColumnMapper's pure half (Kurvenschmiede's columns input, keksdose's import map).
117
121
  export {
@@ -188,7 +192,14 @@ export { useWindowedRows, WINDOWED_ROW_INDEX } from "./hooks/use-windowed-rows";
188
192
  export type { WindowedRows } from "./hooks/use-windowed-rows";
189
193
  // 0.32.0 (docs/text-size-harmonization.md): the breakpoints, and the hooks components read
190
194
  // the behaviours at Large from (§4, §10.7–10.9).
191
- export { useBreakpoint, usePhoneLayout, breakpointQuery, BREAKPOINT_REM, remPx, useRemPx } from "./hooks/use-breakpoint";
195
+ export {
196
+ useBreakpoint,
197
+ usePhoneLayout,
198
+ breakpointQuery,
199
+ BREAKPOINT_REM,
200
+ remPx,
201
+ useRemPx,
202
+ } from "./hooks/use-breakpoint";
192
203
  export type { Breakpoint, BreakpointVariant, RemLength } from "./hooks/use-breakpoint";
193
204
  export { useLargeText, useCoarsePointer, useInlineFacts } from "./hooks/use-large-text";
194
205
 
@@ -418,13 +429,42 @@ export * from "./components/form-actions";
418
429
  // 0.33: a lock says its source, and a control can be exempt from one
419
430
  // (docs/billing-harmonization.md §12.36): the kinds, the holds, `CommitScope`,
420
431
  // `COMMIT_EXCEPT_BILLING` and the pure `writeLockFor`.
421
- export { WriteLockProvider, useWriteLock, writeLockFor, COMMIT_EXCEPT_BILLING, DEFAULT_WRITE_LOCK_LABELS } from "./components/write-lock";
432
+ export {
433
+ WriteLockProvider,
434
+ useWriteLock,
435
+ writeLockFor,
436
+ COMMIT_EXCEPT_BILLING,
437
+ DEFAULT_WRITE_LOCK_LABELS,
438
+ } from "./components/write-lock";
422
439
  // 0.46 (kastlan K4): the offline lock kind, its scope and its source.
423
440
  export { OFFLINE_LOCK, COMMIT_EXCEPT_OFFLINE, useOfflineWriteLock } from "./components/write-lock";
424
- export type { WriteLock, WriteLockLabels, WriteLockProviderProps, WriteLockKind, WriteLockHold, CommitScope } from "./components/write-lock";
441
+ export type {
442
+ WriteLock,
443
+ WriteLockLabels,
444
+ WriteLockProviderProps,
445
+ WriteLockKind,
446
+ WriteLockHold,
447
+ CommitScope,
448
+ } from "./components/write-lock";
425
449
  // 0.18: the parts both apps' admin rosters repeat (Kurvenschmiede 6).
426
- export { RoleChip, AccountStateChip, DateMark, dateColumn, DEFAULT_ACCOUNT_STATE_LABELS, ACCOUNT_STATE_TONES } from "./components/account-chips";
427
- export type { RoleChipProps, RoleDefinition, RoleVocabulary, AccountState, AccountStateLabels, AccountStateChipProps, DateMarkProps, DateColumnOptions } from "./components/account-chips";
450
+ export {
451
+ RoleChip,
452
+ AccountStateChip,
453
+ DateMark,
454
+ dateColumn,
455
+ DEFAULT_ACCOUNT_STATE_LABELS,
456
+ ACCOUNT_STATE_TONES,
457
+ } from "./components/account-chips";
458
+ export type {
459
+ RoleChipProps,
460
+ RoleDefinition,
461
+ RoleVocabulary,
462
+ AccountState,
463
+ AccountStateLabels,
464
+ AccountStateChipProps,
465
+ DateMarkProps,
466
+ DateColumnOptions,
467
+ } from "./components/account-chips";
428
468
  // 0.42 (docs/admin-harmonization.md §2.1): the role in the account menu's header, a link
429
469
  // to the role's tool (`RoleDefinition.href`).
430
470
  export { AccountRoleChip } from "./components/account-chips";
@@ -435,7 +475,17 @@ export { ServerWakeNotice, useServerWakeStage, DEFAULT_SERVER_WAKE_LABELS } from
435
475
  export type { ServerWakeLabels, ServerWakeNoticeProps } from "./components/server-wake";
436
476
  // 0.18: sharing — grantees, roles, pending grants, candidates (Kurvenschmiede 1).
437
477
  export { ShareCard, ShareDialog, SharePanel, DEFAULT_SHARE_CARD_LABELS } from "./components/share-card";
438
- export type { ShareCardProps, ShareDialogProps, SharePanelProps, ShareCardLabels, ShareRole, ShareGrantee, SharePendingGrant, ShareCandidate, ShareAddRequest } from "./components/share-card";
478
+ export type {
479
+ ShareCardProps,
480
+ ShareDialogProps,
481
+ SharePanelProps,
482
+ ShareCardLabels,
483
+ ShareRole,
484
+ ShareGrantee,
485
+ SharePendingGrant,
486
+ ShareCandidate,
487
+ ShareAddRequest,
488
+ } from "./components/share-card";
439
489
  export * from "./components/line-items";
440
490
  export * from "./components/progress-bar";
441
491
  // Named: skeleton.tsx also holds SKELETON_CLASS, the look StatTile shares — internal.
@@ -742,7 +792,13 @@ export type {
742
792
  EmailChangeAction,
743
793
  } from "./account/email-change-setting";
744
794
  export { SessionsSetting, DEFAULT_SESSIONS_LABELS } from "./account/sessions-setting";
745
- export type { SessionsSettingProps, SessionsLabels, SessionItem, SessionId, SessionsAction } from "./account/sessions-setting";
795
+ export type {
796
+ SessionsSettingProps,
797
+ SessionsLabels,
798
+ SessionItem,
799
+ SessionId,
800
+ SessionsAction,
801
+ } from "./account/sessions-setting";
746
802
  export { DeleteAccountSetting, DEFAULT_DELETE_ACCOUNT_LABELS } from "./account/delete-account-setting";
747
803
  export type {
748
804
  DeleteAccountSettingProps,
@@ -884,9 +940,22 @@ export type {
884
940
  export { DEFAULT_BILLING_LABELS, useBillingLabels, SUBSCRIPTION_STATUSES } from "./billing/billing-labels";
885
941
  export type { BillingLabels, SubscriptionStatus } from "./billing/billing-labels";
886
942
  export { BILLING_INTERVALS, planPrice, minorToMajor, formatPlanPrice, billingCurrencyFor } from "./billing/plan-price";
887
- export type { BillingInterval, BillingCurrency, PlanIntervalPrices, PlanPrices, PlanPriceAnswer } from "./billing/plan-price";
943
+ export type {
944
+ BillingInterval,
945
+ BillingCurrency,
946
+ PlanIntervalPrices,
947
+ PlanPrices,
948
+ PlanPriceAnswer,
949
+ } from "./billing/plan-price";
888
950
  export { PlanCard, PlanPicker, GrantWarningConfirm, planRelation } from "./billing/plan-card";
889
- export type { BillingPlan, PlanRelation, PlanCardProps, PlanPickerProps, PlanChoice, GrantWarningConfirmProps } from "./billing/plan-card";
951
+ export type {
952
+ BillingPlan,
953
+ PlanRelation,
954
+ PlanCardProps,
955
+ PlanPickerProps,
956
+ PlanChoice,
957
+ GrantWarningConfirmProps,
958
+ } from "./billing/plan-card";
890
959
  export { SubscriptionStatusChip, SUBSCRIPTION_STATUS_TONES } from "./billing/subscription-status-chip";
891
960
  export type { SubscriptionStatusChipProps } from "./billing/subscription-status-chip";
892
961
  export { BillingBanner } from "./billing/billing-banner";
@@ -912,7 +981,12 @@ export {
912
981
  withoutCheckoutReturn,
913
982
  checkoutReturnUrl,
914
983
  } from "./billing/checkout-return";
915
- export { checkoutFingerprint, checkoutLanded, noteCheckoutStarted, useCheckoutProcessing } from "./billing/checkout-processing";
984
+ export {
985
+ checkoutFingerprint,
986
+ checkoutLanded,
987
+ noteCheckoutStarted,
988
+ useCheckoutProcessing,
989
+ } from "./billing/checkout-processing";
916
990
  export type { CheckoutOverview, CheckoutProcessingOptions } from "./billing/checkout-processing";
917
991
  // The link to the pay page and Paddle's locale (§14.4); the page itself ships as dist/pay/.
918
992
  export { PAY_PAGE_LANG_PARAM, paddleLocale, payPageUrl } from "./billing/pay-page";
@@ -19,8 +19,7 @@ import type { LabelOverride } from "../i18n/kit-labels";
19
19
  * the switch is one line when it comes.
20
20
  */
21
21
  export type AccessChoice =
22
- | { kind: "request"; email: string; app?: string; askCompany?: boolean }
23
- | { kind: "register"; href: string };
22
+ { kind: "request"; email: string; app?: string; askCompany?: boolean } | { kind: "register"; href: string };
24
23
 
25
24
  /** What {@link accessAction} answers: where the access action goes and what it says. */
26
25
  export interface AccessLink {
@@ -88,11 +87,7 @@ export function useAccessAction(access: AccessChoice, labels?: LabelOverride<Lan
88
87
  const app = access.kind === "request" ? access.app : undefined;
89
88
  const askCompany = access.kind === "request" ? access.askCompany === true : false;
90
89
  return useMemo(
91
- () =>
92
- accessAction(
93
- kind === "register" ? { kind, href: target } : { kind, email: target, app, askCompany },
94
- words,
95
- ),
90
+ () => accessAction(kind === "register" ? { kind, href: target } : { kind, email: target, app, askCompany }, words),
96
91
  [kind, target, app, askCompany, words],
97
92
  );
98
93
  }
@@ -109,9 +109,7 @@ export function Hero({
109
109
  >
110
110
  <div>
111
111
  {shownBadge != null && <div className="mb-4">{shownBadge}</div>}
112
- <Heading className="text-4xl font-bold tracking-tight text-balance text-primary sm:text-5xl">
113
- {title}
114
- </Heading>
112
+ <Heading className="text-4xl font-bold tracking-tight text-balance text-primary sm:text-5xl">{title}</Heading>
115
113
  {subtitle != null && <p className="mt-4 max-w-xl text-lg text-secondary">{subtitle}</p>}
116
114
  <div className="mt-8">
117
115
  {actions ?? (
@@ -143,11 +141,7 @@ export type FeatureRowsProps = ComponentPropsWithRef<"section">;
143
141
  */
144
142
  export function FeatureRows({ className, children, ...rest }: FeatureRowsProps) {
145
143
  return (
146
- <section
147
- {...rest}
148
- data-slot="landing-feature-rows"
149
- className={cn("border-t border-subtle bg-surface", className)}
150
- >
144
+ <section {...rest} data-slot="landing-feature-rows" className={cn("border-t border-subtle bg-surface", className)}>
151
145
  <div className="mx-auto max-w-6xl px-4 py-8 sm:py-12">{children}</div>
152
146
  </section>
153
147
  );
@@ -191,7 +185,11 @@ export function FeatureRow({
191
185
  <div
192
186
  {...rest}
193
187
  data-slot="landing-feature-row"
194
- className={cn("group/feature grid grid-cols-1 items-center gap-8 py-10", visual != null && "lg:grid-cols-2 lg:gap-16", className)}
188
+ className={cn(
189
+ "group/feature grid grid-cols-1 items-center gap-8 py-10",
190
+ visual != null && "lg:grid-cols-2 lg:gap-16",
191
+ className,
192
+ )}
195
193
  >
196
194
  <div className="lg:group-even/feature:order-last">
197
195
  {(icon != null || eyebrow != null) && (
@@ -250,7 +248,12 @@ export interface TrustStripProps extends Omit<ComponentPropsWithRef<"section">,
250
248
  export function TrustStrip({ items, headingAs: Heading = "h3", className, ...rest }: TrustStripProps) {
251
249
  return (
252
250
  <section {...rest} data-slot="landing-trust" className={cn("mx-auto max-w-6xl px-4 py-12 sm:py-16", className)}>
253
- <ul className={cn("grid grid-cols-1 gap-8 sm:grid-cols-2", items.length === 3 ? "lg:grid-cols-3" : "lg:grid-cols-4")}>
251
+ <ul
252
+ className={cn(
253
+ "grid grid-cols-1 gap-8 sm:grid-cols-2",
254
+ items.length === 3 ? "lg:grid-cols-3" : "lg:grid-cols-4",
255
+ )}
256
+ >
254
257
  {items.map((item, i) => (
255
258
  <li key={i}>
256
259
  {item.icon != null && (
@@ -298,11 +301,7 @@ export function CtaBand({
298
301
  ...rest
299
302
  }: CtaBandProps) {
300
303
  return (
301
- <section
302
- {...rest}
303
- data-slot="landing-cta"
304
- className={cn("border-t border-subtle bg-surface", className)}
305
- >
304
+ <section {...rest} data-slot="landing-cta" className={cn("border-t border-subtle bg-surface", className)}>
306
305
  <div className="mx-auto max-w-5xl px-4 py-16 text-center">
307
306
  <Heading className="text-2xl font-semibold tracking-tight text-balance text-primary sm:text-3xl">
308
307
  {title}
@@ -67,9 +67,7 @@ export function usePageSeoIf(seo: PageSeo | null): void {
67
67
 
68
68
  // The description tag ships in index.html, so upsert rather than append —
69
69
  // two `meta[name=description]` tags would be a coin flip for the scraper.
70
- const meta = description
71
- ? document.head.querySelector<HTMLMetaElement>('meta[name="description"]')
72
- : null;
70
+ const meta = description ? document.head.querySelector<HTMLMetaElement>('meta[name="description"]') : null;
73
71
  const previousDescription = meta?.content;
74
72
  if (meta && description) meta.content = description;
75
73
 
package/src/lib/calc.ts CHANGED
@@ -231,7 +231,10 @@ export function commitExpression(raw: string): string {
231
231
  // not appear to state it differently. (The `[^0-9.-]` strip on the same line
232
232
  // already ate whatever commas a non-global replace missed, so this changes no
233
233
  // behaviour — it removes the need for the next reader to run it to find that out.)
234
- const cleaned = s.replace(/,/g, ".").replace(/[^0-9.-]/g, "").replace(/(?!^)-/g, "");
234
+ const cleaned = s
235
+ .replace(/,/g, ".")
236
+ .replace(/[^0-9.-]/g, "")
237
+ .replace(/(?!^)-/g, "");
235
238
  return cleaned.replace(/^(-?\d*\.?\d*).*$/, "$1");
236
239
  }
237
240
 
@@ -39,7 +39,10 @@ function isEditable(node: Node | null | undefined): boolean {
39
39
  const el = node instanceof Element ? node : node?.parentElement;
40
40
  if (!el) return false;
41
41
  if (el.closest("input, textarea, select")) return true;
42
- return (el as HTMLElement).isContentEditable === true || el.closest('[contenteditable=""], [contenteditable="true"]') !== null;
42
+ return (
43
+ (el as HTMLElement).isContentEditable === true ||
44
+ el.closest('[contenteditable=""], [contenteditable="true"]') !== null
45
+ );
43
46
  }
44
47
 
45
48
  /** Table parts copied alone are wrapped back into a table, which Excel reads as cells. */
package/src/lib/dates.ts CHANGED
@@ -129,11 +129,7 @@ export function parseIsoDate(s: string): Date | null {
129
129
  * override (e.g. `{ dateStyle: "medium" }`). `locale` may be `undefined` since 0.34 —
130
130
  * the runtime's default, as `Intl` reads it and as every other kit formatter takes it
131
131
  * (DUP-11: DatePicker re-wrapped this function only to pass none). */
132
- export function formatIsoDate(
133
- iso: string,
134
- locale: string | undefined,
135
- options?: Intl.DateTimeFormatOptions,
136
- ): string {
132
+ export function formatIsoDate(iso: string, locale: string | undefined, options?: Intl.DateTimeFormatOptions): string {
137
133
  const d = parseIsoDate(iso);
138
134
  return d ? d.toLocaleDateString(locale, options) : "";
139
135
  }
@@ -190,11 +186,7 @@ export function localeWeekStart(locale: string | undefined): 0 | 1 | 2 | 3 | 4 |
190
186
 
191
187
  /** Whether two Dates fall on the same local calendar day. */
192
188
  export function sameYmd(a: Date, b: Date): boolean {
193
- return (
194
- a.getFullYear() === b.getFullYear() &&
195
- a.getMonth() === b.getMonth() &&
196
- a.getDate() === b.getDate()
197
- );
189
+ return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
198
190
  }
199
191
 
200
192
  export interface DateRangePreset {
@@ -56,9 +56,7 @@ export function normalizeTypedMarks(raw: string, mark: "," | "."): string {
56
56
  const hasMark = operand.includes(mark);
57
57
  const count = operand.split(other).length - 1;
58
58
  if (count === 0) return operand;
59
- const grouping = hasMark
60
- ? true
61
- : count > 1 || (mark === "," && /^[1-9]\d{0,2}(\.\d{3})+$/.test(operand));
59
+ const grouping = hasMark ? true : count > 1 || (mark === "," && /^[1-9]\d{0,2}(\.\d{3})+$/.test(operand));
62
60
  return grouping ? operand.split(other).join("") : operand;
63
61
  });
64
62
  }
@@ -137,7 +137,8 @@ export function resetDeviceSettings(): string[] {
137
137
  entry.reset();
138
138
  keys.push(...covered);
139
139
  } catch (error) {
140
- if (devBuild()) console.error(`resetDeviceSettings: the reset of "${entry.key}" threw; its key is removed instead.`, error);
140
+ if (devBuild())
141
+ console.error(`resetDeviceSettings: the reset of "${entry.key}" threw; its key is removed instead.`, error);
141
142
  remove.push(entry);
142
143
  }
143
144
  }
@@ -16,9 +16,7 @@ export type Direction = "ltr" | "rtl";
16
16
  /** The effective direction at `el`: its nearest `[dir]` ancestor (or itself), else the
17
17
  * document's, else LTR. Attribute-based on purpose — jsdom computes no `direction`. */
18
18
  export function dirOf(el: Element | null | undefined): Direction {
19
- const source =
20
- el?.closest("[dir]") ??
21
- (typeof document !== "undefined" ? document.documentElement : null);
19
+ const source = el?.closest("[dir]") ?? (typeof document !== "undefined" ? document.documentElement : null);
22
20
  return source?.getAttribute("dir") === "rtl" ? "rtl" : "ltr";
23
21
  }
24
22
 
package/src/lib/iban.ts CHANGED
@@ -30,15 +30,95 @@
30
30
  * under FR) are covered by that code, as the registry lists them.
31
31
  */
32
32
  export const IBAN_LENGTHS: Readonly<Record<string, number>> = Object.freeze({
33
- AD: 24, AE: 23, AL: 28, AT: 20, AZ: 28, BA: 20, BE: 16, BG: 22, BH: 22, BI: 27,
34
- BR: 29, BY: 28, CH: 21, CR: 22, CY: 28, CZ: 24, DE: 22, DJ: 27, DK: 18, DO: 28,
35
- EE: 20, EG: 29, ES: 24, FI: 18, FK: 18, FO: 18, FR: 27, GB: 22, GE: 22, GI: 23,
36
- GL: 18, GR: 27, GT: 28, HN: 28, HR: 21, HU: 28, IE: 22, IL: 23, IQ: 23, IS: 26,
37
- IT: 27, JO: 30, KW: 30, KZ: 20, LB: 28, LC: 32, LI: 21, LT: 20, LU: 20, LV: 21,
38
- LY: 25, MC: 27, MD: 24, ME: 22, MK: 19, MN: 20, MR: 27, MT: 31, MU: 30, NI: 28,
39
- NL: 18, NO: 15, OM: 23, PK: 24, PL: 28, PS: 29, PT: 25, QA: 29, RO: 24, RS: 22,
40
- RU: 33, SA: 24, SC: 31, SD: 18, SE: 24, SI: 19, SK: 24, SM: 27, SO: 23, ST: 25,
41
- SV: 28, TL: 23, TN: 24, TR: 26, UA: 29, VA: 22, VG: 24, XK: 20, YE: 30,
33
+ AD: 24,
34
+ AE: 23,
35
+ AL: 28,
36
+ AT: 20,
37
+ AZ: 28,
38
+ BA: 20,
39
+ BE: 16,
40
+ BG: 22,
41
+ BH: 22,
42
+ BI: 27,
43
+ BR: 29,
44
+ BY: 28,
45
+ CH: 21,
46
+ CR: 22,
47
+ CY: 28,
48
+ CZ: 24,
49
+ DE: 22,
50
+ DJ: 27,
51
+ DK: 18,
52
+ DO: 28,
53
+ EE: 20,
54
+ EG: 29,
55
+ ES: 24,
56
+ FI: 18,
57
+ FK: 18,
58
+ FO: 18,
59
+ FR: 27,
60
+ GB: 22,
61
+ GE: 22,
62
+ GI: 23,
63
+ GL: 18,
64
+ GR: 27,
65
+ GT: 28,
66
+ HN: 28,
67
+ HR: 21,
68
+ HU: 28,
69
+ IE: 22,
70
+ IL: 23,
71
+ IQ: 23,
72
+ IS: 26,
73
+ IT: 27,
74
+ JO: 30,
75
+ KW: 30,
76
+ KZ: 20,
77
+ LB: 28,
78
+ LC: 32,
79
+ LI: 21,
80
+ LT: 20,
81
+ LU: 20,
82
+ LV: 21,
83
+ LY: 25,
84
+ MC: 27,
85
+ MD: 24,
86
+ ME: 22,
87
+ MK: 19,
88
+ MN: 20,
89
+ MR: 27,
90
+ MT: 31,
91
+ MU: 30,
92
+ NI: 28,
93
+ NL: 18,
94
+ NO: 15,
95
+ OM: 23,
96
+ PK: 24,
97
+ PL: 28,
98
+ PS: 29,
99
+ PT: 25,
100
+ QA: 29,
101
+ RO: 24,
102
+ RS: 22,
103
+ RU: 33,
104
+ SA: 24,
105
+ SC: 31,
106
+ SD: 18,
107
+ SE: 24,
108
+ SI: 19,
109
+ SK: 24,
110
+ SM: 27,
111
+ SO: 23,
112
+ ST: 25,
113
+ SV: 28,
114
+ TL: 23,
115
+ TN: 24,
116
+ TR: 26,
117
+ UA: 29,
118
+ VA: 22,
119
+ VG: 24,
120
+ XK: 20,
121
+ YE: 30,
42
122
  });
43
123
 
44
124
  /**
package/src/lib/logger.ts CHANGED
@@ -60,11 +60,7 @@ const loggerImpl: LoggerImpl = (f, name) => (set, get, store) => {
60
60
  const prev = get();
61
61
  (set as (...a: unknown[]) => void)(...args);
62
62
  if (storeLog) {
63
- console.debug(
64
- `%c[store${name ? `:${name}` : ""}]`,
65
- "color:#0d9488",
66
- { prev, next: get() },
67
- );
63
+ console.debug(`%c[store${name ? `:${name}` : ""}]`, "color:#0d9488", { prev, next: get() });
68
64
  }
69
65
  }) as typeof set;
70
66
  return f(loggedSet, get, store);
@@ -147,9 +147,7 @@ export function personInitials(name: PersonName, locale?: string): string {
147
147
  if (!first || !last) {
148
148
  const words = (first || last).split(/\s+/);
149
149
  const initials =
150
- words.length >= 2
151
- ? firstGrapheme(words[0]!) + firstGrapheme(words[1]!)
152
- : [...words[0]!].slice(0, 2).join("");
150
+ words.length >= 2 ? firstGrapheme(words[0]!) + firstGrapheme(words[1]!) : [...words[0]!].slice(0, 2).join("");
153
151
  return upper(initials, locale);
154
152
  }
155
153
  const pair = order === "family-first" ? [last, first] : [first, last];
package/src/lib/phone.ts CHANGED
@@ -82,13 +82,7 @@ const RULES: Record<PhoneCountryCode, CountryRule> = {
82
82
  min: 6,
83
83
  max: 13,
84
84
  group: (n) =>
85
- /^15/.test(n)
86
- ? cut(n, [4])
87
- : /^1[67]/.test(n)
88
- ? cut(n, [3])
89
- : /^(30|40|69|89)/.test(n)
90
- ? cut(n, [2])
91
- : [n],
85
+ /^15/.test(n) ? cut(n, [4]) : /^1[67]/.test(n) ? cut(n, [3]) : /^(30|40|69|89)/.test(n) ? cut(n, [2]) : [n],
92
86
  },
93
87
  // Vienna is "1"; mobile numbers start 6xx; other area codes vary, so one block.
94
88
  AT: {
@@ -169,7 +163,10 @@ export function parsePhone(input: string, country: PhoneCountry = "CH"): ParsedP
169
163
  }
170
164
  if (international) {
171
165
  // "+41 (0)21 …": the bracketed trunk prefix written for callers inside the country.
172
- digits = text.replace(/\(\s*0\s*\)/g, "").replace(/\D/g, "").replace(/^00/, "");
166
+ digits = text
167
+ .replace(/\(\s*0\s*\)/g, "")
168
+ .replace(/\D/g, "")
169
+ .replace(/^00/, "");
173
170
  if (digits.startsWith("0")) return null;
174
171
  const known = BY_DIAL.find((c) => digits.startsWith(RULES[c].dial));
175
172
  if (known) {