@eifi1/ui-kit 0.33.1 → 0.34.0

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 (1534) hide show
  1. package/README.md +444 -282
  2. package/dist/account/account-parts.d.ts +6 -8
  3. package/dist/account/account-parts.js +1 -2
  4. package/dist/account/account-parts.js.map +1 -1
  5. package/dist/{components → account}/account-settings-labels.d.ts +16 -10
  6. package/dist/{components → account}/account-settings-labels.js +3 -1
  7. package/dist/account/account-settings-labels.js.map +1 -0
  8. package/dist/{components → account}/account-settings.d.ts +53 -23
  9. package/dist/{components → account}/account-settings.js +97 -26
  10. package/dist/account/account-settings.js.map +1 -0
  11. package/dist/account/data-export-setting-labels.d.ts +2 -0
  12. package/dist/account/data-export-setting-labels.js +15 -0
  13. package/dist/account/data-export-setting-labels.js.map +1 -0
  14. package/dist/account/data-export-setting.d.ts +9 -11
  15. package/dist/account/data-export-setting.js +11 -27
  16. package/dist/account/data-export-setting.js.map +1 -1
  17. package/dist/account/delete-account-setting-labels.d.ts +2 -0
  18. package/dist/account/delete-account-setting-labels.js +23 -0
  19. package/dist/account/delete-account-setting-labels.js.map +1 -0
  20. package/dist/account/delete-account-setting.d.ts +132 -101
  21. package/dist/account/delete-account-setting.js +7 -23
  22. package/dist/account/delete-account-setting.js.map +1 -1
  23. package/dist/account/email-change-setting-labels.d.ts +2 -0
  24. package/dist/account/email-change-setting-labels.js +28 -0
  25. package/dist/account/email-change-setting-labels.js.map +1 -0
  26. package/dist/account/email-change-setting.d.ts +10 -12
  27. package/dist/account/email-change-setting.js +11 -30
  28. package/dist/account/email-change-setting.js.map +1 -1
  29. package/dist/{components → account}/passkeys-setting.d.ts +9 -12
  30. package/dist/{components → account}/passkeys-setting.js +10 -7
  31. package/dist/account/passkeys-setting.js.map +1 -0
  32. package/dist/account/sessions-setting-labels.d.ts +2 -0
  33. package/dist/account/sessions-setting-labels.js +22 -0
  34. package/dist/account/sessions-setting-labels.js.map +1 -0
  35. package/dist/account/sessions-setting.d.ts +12 -14
  36. package/dist/account/sessions-setting.js +8 -23
  37. package/dist/account/sessions-setting.js.map +1 -1
  38. package/dist/admin/admin-action-confirm-labels.d.ts +2 -0
  39. package/dist/admin/admin-action-confirm-labels.js +16 -0
  40. package/dist/admin/admin-action-confirm-labels.js.map +1 -0
  41. package/dist/admin/admin-action-confirm.d.ts +156 -101
  42. package/dist/admin/admin-action-confirm.js +17 -22
  43. package/dist/admin/admin-action-confirm.js.map +1 -1
  44. package/dist/admin/admin-action-log-labels.d.ts +2 -0
  45. package/dist/admin/admin-action-log-labels.js +73 -0
  46. package/dist/admin/admin-action-log-labels.js.map +1 -0
  47. package/dist/admin/admin-action-log.d.ts +98 -22
  48. package/dist/admin/admin-action-log.js +48 -45
  49. package/dist/admin/admin-action-log.js.map +1 -1
  50. package/dist/admin/admin-parts.d.ts +7 -14
  51. package/dist/admin/admin-parts.js +0 -4
  52. package/dist/admin/admin-parts.js.map +1 -1
  53. package/dist/admin/invitations-panel-labels.d.ts +2 -0
  54. package/dist/admin/invitations-panel-labels.js +29 -0
  55. package/dist/admin/invitations-panel-labels.js.map +1 -0
  56. package/dist/admin/invitations-panel.d.ts +167 -101
  57. package/dist/admin/invitations-panel.js +12 -31
  58. package/dist/admin/invitations-panel.js.map +1 -1
  59. package/dist/admin/plan-change-labels.d.ts +2 -0
  60. package/dist/admin/plan-change-labels.js +22 -0
  61. package/dist/admin/plan-change-labels.js.map +1 -0
  62. package/dist/admin/plan-change.d.ts +244 -101
  63. package/dist/admin/plan-change.js +16 -24
  64. package/dist/admin/plan-change.js.map +1 -1
  65. package/dist/admin/reviewer-scope-editor-labels.d.ts +2 -0
  66. package/dist/admin/reviewer-scope-editor-labels.js +14 -0
  67. package/dist/admin/reviewer-scope-editor-labels.js.map +1 -0
  68. package/dist/admin/reviewer-scope-editor.d.ts +95 -101
  69. package/dist/admin/reviewer-scope-editor.js +5 -13
  70. package/dist/admin/reviewer-scope-editor.js.map +1 -1
  71. package/dist/admin/role-select-labels.d.ts +2 -0
  72. package/dist/admin/role-select-labels.js +15 -0
  73. package/dist/admin/role-select-labels.js.map +1 -0
  74. package/dist/admin/role-select.d.ts +136 -101
  75. package/dist/admin/role-select.js +7 -18
  76. package/dist/admin/role-select.js.map +1 -1
  77. package/dist/admin/transfer-ownership-dialog-labels.d.ts +2 -0
  78. package/dist/admin/transfer-ownership-dialog-labels.js +18 -0
  79. package/dist/admin/transfer-ownership-dialog-labels.js.map +1 -0
  80. package/dist/admin/transfer-ownership-dialog.d.ts +81 -101
  81. package/dist/admin/transfer-ownership-dialog.js +3 -15
  82. package/dist/admin/transfer-ownership-dialog.js.map +1 -1
  83. package/dist/admin/user-roster-labels.d.ts +2 -0
  84. package/dist/admin/user-roster-labels.js +16 -0
  85. package/dist/admin/user-roster-labels.js.map +1 -0
  86. package/dist/admin/user-roster.d.ts +225 -101
  87. package/dist/admin/user-roster.js +4 -14
  88. package/dist/admin/user-roster.js.map +1 -1
  89. package/dist/auth/accept-invitation-labels.d.ts +2 -0
  90. package/dist/auth/accept-invitation-labels.js +20 -0
  91. package/dist/auth/accept-invitation-labels.js.map +1 -0
  92. package/dist/auth/accept-invitation.d.ts +11 -13
  93. package/dist/auth/accept-invitation.js +3 -16
  94. package/dist/auth/accept-invitation.js.map +1 -1
  95. package/dist/auth/auth-errors.d.ts +34 -23
  96. package/dist/auth/auth-errors.js +8 -4
  97. package/dist/auth/auth-errors.js.map +1 -1
  98. package/dist/auth/complete-name-dialog-labels.d.ts +2 -0
  99. package/dist/auth/complete-name-dialog-labels.js +14 -0
  100. package/dist/auth/complete-name-dialog-labels.js.map +1 -0
  101. package/dist/auth/complete-name-dialog.d.ts +9 -11
  102. package/dist/auth/complete-name-dialog.js +4 -11
  103. package/dist/auth/complete-name-dialog.js.map +1 -1
  104. package/dist/auth/email-tag.d.ts +2 -4
  105. package/dist/auth/forgot-password-form-labels.d.ts +3 -0
  106. package/dist/auth/forgot-password-form-labels.js +17 -0
  107. package/dist/auth/forgot-password-form-labels.js.map +1 -0
  108. package/dist/auth/forgot-password-form.d.ts +9 -12
  109. package/dist/auth/forgot-password-form.js +6 -15
  110. package/dist/auth/forgot-password-form.js.map +1 -1
  111. package/dist/auth/form-rules.d.ts +5 -7
  112. package/dist/auth/new-password-fields.d.ts +4 -8
  113. package/dist/auth/new-password-fields.js +1 -1
  114. package/dist/auth/new-password-fields.js.map +1 -1
  115. package/dist/auth/not-found-page-labels.d.ts +2 -0
  116. package/dist/auth/not-found-page-labels.js +11 -0
  117. package/dist/auth/not-found-page-labels.js.map +1 -0
  118. package/dist/auth/not-found-page.d.ts +9 -11
  119. package/dist/auth/not-found-page.js +5 -10
  120. package/dist/auth/not-found-page.js.map +1 -1
  121. package/dist/auth/register-form-labels.d.ts +3 -0
  122. package/dist/auth/register-form-labels.js +28 -0
  123. package/dist/auth/register-form-labels.js.map +1 -0
  124. package/dist/auth/register-form.d.ts +174 -101
  125. package/dist/auth/register-form.js +11 -31
  126. package/dist/auth/register-form.js.map +1 -1
  127. package/dist/auth/reset-password-form-labels.d.ts +3 -0
  128. package/dist/auth/reset-password-form-labels.js +24 -0
  129. package/dist/auth/reset-password-form-labels.js.map +1 -0
  130. package/dist/auth/reset-password-form.d.ts +12 -15
  131. package/dist/auth/reset-password-form.js +6 -22
  132. package/dist/auth/reset-password-form.js.map +1 -1
  133. package/dist/auth/sign-in-form-labels.d.ts +3 -0
  134. package/dist/auth/sign-in-form-labels.js +42 -0
  135. package/dist/auth/sign-in-form-labels.js.map +1 -0
  136. package/dist/auth/sign-in-form.d.ts +15 -19
  137. package/dist/auth/sign-in-form.js +12 -46
  138. package/dist/auth/sign-in-form.js.map +1 -1
  139. package/dist/auth/status-parts.d.ts +13 -17
  140. package/dist/auth/status-parts.js +3 -3
  141. package/dist/auth/status-parts.js.map +1 -1
  142. package/dist/auth/verify-email-labels.d.ts +2 -0
  143. package/dist/auth/verify-email-labels.js +25 -0
  144. package/dist/auth/verify-email-labels.js.map +1 -0
  145. package/dist/auth/verify-email.d.ts +15 -17
  146. package/dist/auth/verify-email.js +4 -21
  147. package/dist/auth/verify-email.js.map +1 -1
  148. package/dist/billing/billing-banner.d.ts +8 -109
  149. package/dist/billing/billing-banner.js +2 -1
  150. package/dist/billing/billing-banner.js.map +1 -1
  151. package/dist/billing/billing-labels.d.ts +168 -101
  152. package/dist/billing/billing-labels.js.map +1 -1
  153. package/dist/billing/billing-lock.d.ts +10 -110
  154. package/dist/billing/billing-overview.d.ts +7 -109
  155. package/dist/billing/billing-standing.d.ts +6 -108
  156. package/dist/billing/checkout-processing.d.ts +8 -111
  157. package/dist/billing/checkout-processing.js +2 -9
  158. package/dist/billing/checkout-processing.js.map +1 -1
  159. package/dist/billing/checkout-return.d.ts +5 -7
  160. package/dist/billing/pay-page.d.ts +15 -117
  161. package/dist/billing/plan-card.d.ts +14 -115
  162. package/dist/billing/plan-card.js +15 -13
  163. package/dist/billing/plan-card.js.map +1 -1
  164. package/dist/billing/plan-limit-notice.d.ts +8 -109
  165. package/dist/billing/plan-limit-notice.js +1 -1
  166. package/dist/billing/plan-limit-notice.js.map +1 -1
  167. package/dist/billing/plan-limit-toast.d.ts +6 -107
  168. package/dist/billing/plan-limit.d.ts +2 -4
  169. package/dist/billing/plan-price.d.ts +10 -12
  170. package/dist/billing/subscription-actions.d.ts +6 -109
  171. package/dist/billing/subscription-actions.js +2 -2
  172. package/dist/billing/subscription-actions.js.map +1 -1
  173. package/dist/billing/subscription-status-chip.d.ts +7 -108
  174. package/dist/chart.d.ts +12 -113
  175. package/dist/chart.js +4 -0
  176. package/dist/chart.js.map +1 -1
  177. package/dist/components/account-chips-labels.d.ts +10 -0
  178. package/dist/components/account-chips-labels.js +15 -0
  179. package/dist/components/account-chips-labels.js.map +1 -0
  180. package/dist/components/account-chips.d.ts +22 -44
  181. package/dist/components/account-chips.js +9 -14
  182. package/dist/components/account-chips.js.map +1 -1
  183. package/dist/components/alert-banner.d.ts +15 -11
  184. package/dist/components/alert-banner.js +28 -18
  185. package/dist/components/alert-banner.js.map +1 -1
  186. package/dist/components/amount-input.d.ts +66 -110
  187. package/dist/components/amount-input.js +259 -283
  188. package/dist/components/amount-input.js.map +1 -1
  189. package/dist/components/appearance-labels.d.ts +6 -10
  190. package/dist/components/appearance-labels.js.map +1 -1
  191. package/dist/components/authed-image-labels.d.ts +2 -0
  192. package/dist/components/authed-image-labels.js +10 -0
  193. package/dist/components/authed-image-labels.js.map +1 -0
  194. package/dist/components/authed-image.d.ts +11 -13
  195. package/dist/components/authed-image.js +2 -6
  196. package/dist/components/authed-image.js.map +1 -1
  197. package/dist/components/autocomplete.d.ts +13 -11
  198. package/dist/components/autocomplete.js +33 -28
  199. package/dist/components/autocomplete.js.map +1 -1
  200. package/dist/components/breadcrumbs-labels.d.ts +2 -0
  201. package/dist/components/breadcrumbs-labels.js +9 -0
  202. package/dist/components/breadcrumbs-labels.js.map +1 -0
  203. package/dist/components/breadcrumbs.d.ts +10 -12
  204. package/dist/components/breadcrumbs.js +7 -10
  205. package/dist/components/breadcrumbs.js.map +1 -1
  206. package/dist/components/bulk-action-bar-labels.d.ts +2 -0
  207. package/dist/components/bulk-action-bar-labels.js +10 -0
  208. package/dist/components/bulk-action-bar-labels.js.map +1 -0
  209. package/dist/components/bulk-action-bar.d.ts +10 -12
  210. package/dist/components/bulk-action-bar.js +9 -12
  211. package/dist/components/bulk-action-bar.js.map +1 -1
  212. package/dist/components/button-group.d.ts +7 -110
  213. package/dist/components/button-group.js +5 -5
  214. package/dist/components/button-group.js.map +1 -1
  215. package/dist/components/button-look.d.ts +88 -0
  216. package/dist/components/button-look.js +91 -0
  217. package/dist/components/button-look.js.map +1 -0
  218. package/dist/components/button.d.ts +153 -0
  219. package/dist/components/button.js +165 -0
  220. package/dist/components/button.js.map +1 -0
  221. package/dist/components/calculator.d.ts +8 -107
  222. package/dist/components/calculator.js +10 -7
  223. package/dist/components/calculator.js.map +1 -1
  224. package/dist/components/calendar-heatmap-labels.d.ts +3 -0
  225. package/dist/components/calendar-heatmap-labels.js +12 -0
  226. package/dist/components/calendar-heatmap-labels.js.map +1 -0
  227. package/dist/components/calendar-heatmap.d.ts +13 -16
  228. package/dist/components/calendar-heatmap.js +7 -13
  229. package/dist/components/calendar-heatmap.js.map +1 -1
  230. package/dist/components/card.d.ts +145 -0
  231. package/dist/components/card.js +186 -0
  232. package/dist/components/card.js.map +1 -0
  233. package/dist/components/chart-height.d.ts +4 -7
  234. package/dist/components/chart-zoom-core.d.ts +202 -0
  235. package/dist/components/chart-zoom-core.js +334 -0
  236. package/dist/components/chart-zoom-core.js.map +1 -0
  237. package/dist/components/chart-zoom.d.ts +39 -205
  238. package/dist/components/chart-zoom.js +15 -316
  239. package/dist/components/chart-zoom.js.map +1 -1
  240. package/dist/components/chart.d.ts +11 -15
  241. package/dist/components/chart.js +11 -11
  242. package/dist/components/chart.js.map +1 -1
  243. package/dist/components/checkbox-group.d.ts +6 -10
  244. package/dist/components/checkbox-group.js +10 -9
  245. package/dist/components/checkbox-group.js.map +1 -1
  246. package/dist/components/checkbox.d.ts +8 -12
  247. package/dist/components/checkbox.js +20 -18
  248. package/dist/components/checkbox.js.map +1 -1
  249. package/dist/components/chip-input.d.ts +73 -0
  250. package/dist/components/chip-input.js +224 -0
  251. package/dist/components/chip-input.js.map +1 -0
  252. package/dist/components/chip-labels.d.ts +2 -0
  253. package/dist/components/chip-labels.js +12 -0
  254. package/dist/components/chip-labels.js.map +1 -0
  255. package/dist/components/chip.d.ts +18 -93
  256. package/dist/components/chip.js +74 -426
  257. package/dist/components/chip.js.map +1 -1
  258. package/dist/components/choice-card.d.ts +21 -18
  259. package/dist/components/choice-card.js +45 -45
  260. package/dist/components/choice-card.js.map +1 -1
  261. package/dist/components/column-mapper-labels.d.ts +5 -0
  262. package/dist/components/column-mapper-labels.js +34 -0
  263. package/dist/components/column-mapper-labels.js.map +1 -0
  264. package/dist/components/column-mapper.d.ts +15 -17
  265. package/dist/components/column-mapper.js +11 -37
  266. package/dist/components/column-mapper.js.map +1 -1
  267. package/dist/components/combobox-core.d.ts +79 -40
  268. package/dist/components/combobox-core.js +187 -121
  269. package/dist/components/combobox-core.js.map +1 -1
  270. package/dist/components/combobox-suggestions.d.ts +76 -0
  271. package/dist/components/combobox-suggestions.js +56 -0
  272. package/dist/components/combobox-suggestions.js.map +1 -0
  273. package/dist/components/combobox.d.ts +14 -159
  274. package/dist/components/combobox.js +40 -507
  275. package/dist/components/combobox.js.map +1 -1
  276. package/dist/components/confirm-dialog-labels.d.ts +7 -0
  277. package/dist/components/confirm-dialog-labels.js +10 -0
  278. package/dist/components/confirm-dialog-labels.js.map +1 -0
  279. package/dist/components/confirm-dialog.d.ts +165 -101
  280. package/dist/components/confirm-dialog.js +2 -6
  281. package/dist/components/confirm-dialog.js.map +1 -1
  282. package/dist/components/copy-button-labels.d.ts +2 -0
  283. package/dist/components/copy-button-labels.js +12 -0
  284. package/dist/components/copy-button-labels.js.map +1 -0
  285. package/dist/components/copy-button.d.ts +70 -101
  286. package/dist/components/copy-button.js +4 -9
  287. package/dist/components/copy-button.js.map +1 -1
  288. package/dist/components/country-select-labels.d.ts +2 -0
  289. package/dist/components/country-select-labels.js +10 -0
  290. package/dist/components/country-select-labels.js.map +1 -0
  291. package/dist/components/country-select.d.ts +18 -15
  292. package/dist/components/country-select.js +49 -64
  293. package/dist/components/country-select.js.map +1 -1
  294. package/dist/components/currency-option-list.d.ts +63 -0
  295. package/dist/components/currency-option-list.js +135 -0
  296. package/dist/components/currency-option-list.js.map +1 -0
  297. package/dist/components/currency-select.d.ts +10 -30
  298. package/dist/components/currency-select.js +50 -133
  299. package/dist/components/currency-select.js.map +1 -1
  300. package/dist/components/danger-confirm-labels.d.ts +14 -0
  301. package/dist/components/danger-confirm-labels.js +17 -0
  302. package/dist/components/danger-confirm-labels.js.map +1 -0
  303. package/dist/components/danger-confirm.d.ts +448 -101
  304. package/dist/components/danger-confirm.js +40 -46
  305. package/dist/components/danger-confirm.js.map +1 -1
  306. package/dist/components/data-table-cells.d.ts +9 -24
  307. package/dist/components/data-table-cells.js +1 -1
  308. package/dist/components/data-table-cells.js.map +1 -1
  309. package/dist/components/data-table-column-settings.d.ts +16 -0
  310. package/dist/components/data-table-column-settings.js +119 -0
  311. package/dist/components/data-table-column-settings.js.map +1 -0
  312. package/dist/components/data-table-filter-popover.d.ts +5 -19
  313. package/dist/components/data-table-filter-popover.js +39 -22
  314. package/dist/components/data-table-filter-popover.js.map +1 -1
  315. package/dist/components/data-table-filters.d.ts +93 -15
  316. package/dist/components/data-table-filters.js +22 -7
  317. package/dist/components/data-table-filters.js.map +1 -1
  318. package/dist/components/data-table-head.d.ts +36 -0
  319. package/dist/components/data-table-head.js +190 -0
  320. package/dist/components/data-table-head.js.map +1 -0
  321. package/dist/components/data-table-labels.d.ts +124 -15
  322. package/dist/components/data-table-labels.js +9 -5
  323. package/dist/components/data-table-labels.js.map +1 -1
  324. package/dist/components/data-table-mobile.d.ts +106 -0
  325. package/dist/components/data-table-mobile.js +412 -0
  326. package/dist/components/data-table-mobile.js.map +1 -0
  327. package/dist/components/data-table-pagination.d.ts +6 -21
  328. package/dist/components/data-table-pagination.js +7 -7
  329. package/dist/components/data-table-pagination.js.map +1 -1
  330. package/dist/components/data-table-resize.d.ts +37 -0
  331. package/dist/components/data-table-resize.js +103 -0
  332. package/dist/components/data-table-resize.js.map +1 -0
  333. package/dist/components/data-table-row-actions.d.ts +24 -0
  334. package/dist/components/data-table-row-actions.js +95 -0
  335. package/dist/components/data-table-row-actions.js.map +1 -0
  336. package/dist/components/data-table-selection.d.ts +21 -0
  337. package/dist/components/data-table-selection.js +30 -0
  338. package/dist/components/data-table-selection.js.map +1 -0
  339. package/dist/components/data-table-shared.d.ts +77 -0
  340. package/dist/components/data-table-shared.js +77 -0
  341. package/dist/components/data-table-shared.js.map +1 -0
  342. package/dist/components/data-table-sort.d.ts +8 -10
  343. package/dist/components/data-table.d.ts +603 -15
  344. package/dist/components/data-table.js +134 -927
  345. package/dist/components/data-table.js.map +1 -1
  346. package/dist/components/date-field.d.ts +203 -0
  347. package/dist/components/date-field.js +270 -0
  348. package/dist/components/date-field.js.map +1 -0
  349. package/dist/components/date-picker.d.ts +6 -261
  350. package/dist/components/date-picker.js +24 -760
  351. package/dist/components/date-picker.js.map +1 -1
  352. package/dist/components/date-range-picker.d.ts +125 -0
  353. package/dist/components/date-range-picker.js +261 -0
  354. package/dist/components/date-range-picker.js.map +1 -0
  355. package/dist/components/description-list-labels.d.ts +2 -0
  356. package/dist/components/description-list-labels.js +8 -0
  357. package/dist/components/description-list-labels.js.map +1 -0
  358. package/dist/components/description-list.d.ts +13 -15
  359. package/dist/components/description-list.js +17 -11
  360. package/dist/components/description-list.js.map +1 -1
  361. package/dist/components/dialog-frame-labels.d.ts +2 -0
  362. package/dist/components/dialog-frame-labels.js +6 -0
  363. package/dist/components/dialog-frame-labels.js.map +1 -0
  364. package/dist/components/dialog-frame.d.ts +7 -11
  365. package/dist/components/dialog-frame.js +6 -6
  366. package/dist/components/dialog-frame.js.map +1 -1
  367. package/dist/components/disclosure.d.ts +6 -10
  368. package/dist/components/disclosure.js +11 -11
  369. package/dist/components/disclosure.js.map +1 -1
  370. package/dist/components/dropdown.d.ts +55 -27
  371. package/dist/components/dropdown.js +53 -30
  372. package/dist/components/dropdown.js.map +1 -1
  373. package/dist/components/empty-state.d.ts +64 -0
  374. package/dist/components/empty-state.js +70 -0
  375. package/dist/components/empty-state.js.map +1 -0
  376. package/dist/components/entity-combobox.d.ts +10 -11
  377. package/dist/components/entity-combobox.js +14 -13
  378. package/dist/components/entity-combobox.js.map +1 -1
  379. package/dist/components/error-boundary-labels.d.ts +2 -0
  380. package/dist/components/error-boundary-labels.js +19 -0
  381. package/dist/components/error-boundary-labels.js.map +1 -0
  382. package/dist/components/error-boundary.d.ts +17 -17
  383. package/dist/components/error-boundary.js +5 -17
  384. package/dist/components/error-boundary.js.map +1 -1
  385. package/dist/components/facing-pair.d.ts +7 -116
  386. package/dist/components/facing-pair.js +1 -1
  387. package/dist/components/facing-pair.js.map +1 -1
  388. package/dist/components/field-base.d.ts +260 -0
  389. package/dist/components/field-base.js +228 -0
  390. package/dist/components/field-base.js.map +1 -0
  391. package/dist/components/field-parts.d.ts +188 -87
  392. package/dist/components/field-parts.js +60 -33
  393. package/dist/components/field-parts.js.map +1 -1
  394. package/dist/components/field-strip.d.ts +19 -28
  395. package/dist/components/field-strip.js +2 -2
  396. package/dist/components/field-strip.js.map +1 -1
  397. package/dist/components/field-sync-labels.d.ts +2 -0
  398. package/dist/components/field-sync-labels.js +12 -0
  399. package/dist/components/field-sync-labels.js.map +1 -0
  400. package/dist/components/field-sync.d.ts +20 -19
  401. package/dist/components/field-sync.js +4 -10
  402. package/dist/components/field-sync.js.map +1 -1
  403. package/dist/components/field.d.ts +45 -10
  404. package/dist/components/field.js +10 -8
  405. package/dist/components/field.js.map +1 -1
  406. package/dist/components/file-button.d.ts +85 -101
  407. package/dist/components/file-button.js +23 -169
  408. package/dist/components/file-button.js.map +1 -1
  409. package/dist/components/file-dropzone.d.ts +9 -110
  410. package/dist/components/file-dropzone.js +22 -22
  411. package/dist/components/file-dropzone.js.map +1 -1
  412. package/dist/components/floating-panel-labels.d.ts +2 -0
  413. package/dist/components/floating-panel-labels.js +9 -0
  414. package/dist/components/floating-panel-labels.js.map +1 -0
  415. package/dist/components/floating-panel.d.ts +17 -21
  416. package/dist/components/floating-panel.js +19 -18
  417. package/dist/components/floating-panel.js.map +1 -1
  418. package/dist/components/focus-ring.d.ts +9 -6
  419. package/dist/components/focus-ring.js +2 -2
  420. package/dist/components/focus-ring.js.map +1 -1
  421. package/dist/components/form-actions-labels.d.ts +2 -0
  422. package/dist/components/form-actions-labels.js +10 -0
  423. package/dist/components/form-actions-labels.js.map +1 -0
  424. package/dist/components/form-actions.d.ts +280 -101
  425. package/dist/components/form-actions.js +10 -20
  426. package/dist/components/form-actions.js.map +1 -1
  427. package/dist/components/full-bleed-dialog.d.ts +7 -8
  428. package/dist/components/full-bleed-dialog.js +14 -13
  429. package/dist/components/full-bleed-dialog.js.map +1 -1
  430. package/dist/components/grouped-picker.d.ts +21 -16
  431. package/dist/components/grouped-picker.js +76 -62
  432. package/dist/components/grouped-picker.js.map +1 -1
  433. package/dist/components/help-popover.d.ts +60 -0
  434. package/dist/components/help-popover.js +48 -0
  435. package/dist/components/help-popover.js.map +1 -0
  436. package/dist/components/hover-menu.d.ts +17 -16
  437. package/dist/components/hover-menu.js +18 -17
  438. package/dist/components/hover-menu.js.map +1 -1
  439. package/dist/components/iban-input-labels.d.ts +2 -0
  440. package/dist/components/iban-input-labels.js +13 -0
  441. package/dist/components/iban-input-labels.js.map +1 -0
  442. package/dist/components/iban-input.d.ts +73 -101
  443. package/dist/components/iban-input.js +22 -15
  444. package/dist/components/iban-input.js.map +1 -1
  445. package/dist/components/icon-button.d.ts +300 -0
  446. package/dist/components/icon-button.js +465 -0
  447. package/dist/components/icon-button.js.map +1 -0
  448. package/dist/components/icon-picker-labels.d.ts +2 -0
  449. package/dist/components/icon-picker-labels.js +12 -0
  450. package/dist/components/icon-picker-labels.js.map +1 -0
  451. package/dist/components/icon-picker.d.ts +13 -13
  452. package/dist/components/icon-picker.js +18 -17
  453. package/dist/components/icon-picker.js.map +1 -1
  454. package/dist/components/image-grid-labels.d.ts +2 -0
  455. package/dist/components/image-grid-labels.js +10 -0
  456. package/dist/components/image-grid-labels.js.map +1 -0
  457. package/dist/components/image-grid.d.ts +12 -14
  458. package/dist/components/image-grid.js +6 -10
  459. package/dist/components/image-grid.js.map +1 -1
  460. package/dist/components/inline-edit-field-labels.d.ts +2 -0
  461. package/dist/components/inline-edit-field-labels.js +10 -0
  462. package/dist/components/inline-edit-field-labels.js.map +1 -0
  463. package/dist/components/inline-edit-field.d.ts +11 -13
  464. package/dist/components/inline-edit-field.js +11 -13
  465. package/dist/components/inline-edit-field.js.map +1 -1
  466. package/dist/components/inline-entity-combobox.d.ts +155 -0
  467. package/dist/components/inline-entity-combobox.js +467 -0
  468. package/dist/components/inline-entity-combobox.js.map +1 -0
  469. package/dist/components/input.d.ts +98 -0
  470. package/dist/components/input.js +219 -0
  471. package/dist/components/input.js.map +1 -0
  472. package/dist/components/jump-calendar.d.ts +8 -0
  473. package/dist/components/jump-calendar.js +274 -0
  474. package/dist/components/jump-calendar.js.map +1 -0
  475. package/dist/components/language-select.d.ts +20 -111
  476. package/dist/components/language-select.js +12 -7
  477. package/dist/components/language-select.js.map +1 -1
  478. package/dist/components/legal-labels.d.ts +2 -0
  479. package/dist/components/legal-labels.js +100 -0
  480. package/dist/components/legal-labels.js.map +1 -0
  481. package/dist/components/legal-page.d.ts +17 -118
  482. package/dist/components/legal-page.js +2 -2
  483. package/dist/components/legal-page.js.map +1 -1
  484. package/dist/components/legal.d.ts +353 -101
  485. package/dist/components/legal.js +7 -101
  486. package/dist/components/legal.js.map +1 -1
  487. package/dist/components/lightbox-labels.d.ts +2 -0
  488. package/dist/components/lightbox-labels.js +17 -0
  489. package/dist/components/lightbox-labels.js.map +1 -0
  490. package/dist/components/lightbox.d.ts +12 -14
  491. package/dist/components/lightbox.js +9 -19
  492. package/dist/components/lightbox.js.map +1 -1
  493. package/dist/components/line-items-labels.d.ts +2 -0
  494. package/dist/components/line-items-labels.js +13 -0
  495. package/dist/components/line-items-labels.js.map +1 -0
  496. package/dist/components/line-items.d.ts +16 -18
  497. package/dist/components/line-items.js +18 -26
  498. package/dist/components/line-items.js.map +1 -1
  499. package/dist/components/list-labels.d.ts +2 -0
  500. package/dist/components/list-labels.js +9 -0
  501. package/dist/components/list-labels.js.map +1 -0
  502. package/dist/components/list.d.ts +32 -21
  503. package/dist/components/list.js +41 -25
  504. package/dist/components/list.js.map +1 -1
  505. package/dist/components/loading-state.d.ts +5 -9
  506. package/dist/components/loading-state.js +2 -2
  507. package/dist/components/loading-state.js.map +1 -1
  508. package/dist/components/measured-grid-labels.d.ts +4 -0
  509. package/dist/components/measured-grid-labels.js +21 -0
  510. package/dist/components/measured-grid-labels.js.map +1 -0
  511. package/dist/components/measured-grid.d.ts +13 -17
  512. package/dist/components/measured-grid.js +31 -50
  513. package/dist/components/measured-grid.js.map +1 -1
  514. package/dist/components/menu-item.d.ts +10 -10
  515. package/dist/components/menu-item.js +9 -9
  516. package/dist/components/menu-item.js.map +1 -1
  517. package/dist/components/mini-calendar-labels.d.ts +4 -0
  518. package/dist/components/mini-calendar-labels.js +14 -0
  519. package/dist/components/mini-calendar-labels.js.map +1 -0
  520. package/dist/components/mini-calendar.d.ts +10 -14
  521. package/dist/components/mini-calendar.js +22 -29
  522. package/dist/components/mini-calendar.js.map +1 -1
  523. package/dist/components/modal.d.ts +26 -18
  524. package/dist/components/modal.js +8 -11
  525. package/dist/components/modal.js.map +1 -1
  526. package/dist/components/money-draft.d.ts +34 -0
  527. package/dist/components/money-draft.js +39 -0
  528. package/dist/components/money-draft.js.map +1 -0
  529. package/dist/components/money-field.d.ts +13 -111
  530. package/dist/components/money-field.js +6 -22
  531. package/dist/components/money-field.js.map +1 -1
  532. package/dist/components/month-picker-labels.d.ts +5 -0
  533. package/dist/components/month-picker-labels.js +18 -0
  534. package/dist/components/month-picker-labels.js.map +1 -0
  535. package/dist/components/month-picker.d.ts +15 -13
  536. package/dist/components/month-picker.js +34 -32
  537. package/dist/components/month-picker.js.map +1 -1
  538. package/dist/components/multi-entity-combobox.d.ts +9 -11
  539. package/dist/components/multi-entity-combobox.js +14 -13
  540. package/dist/components/multi-entity-combobox.js.map +1 -1
  541. package/dist/components/multi-select.d.ts +81 -21
  542. package/dist/components/multi-select.js +171 -197
  543. package/dist/components/multi-select.js.map +1 -1
  544. package/dist/components/nav-pills.d.ts +9 -10
  545. package/dist/components/nav-pills.js +53 -42
  546. package/dist/components/nav-pills.js.map +1 -1
  547. package/dist/components/number-field.d.ts +6 -111
  548. package/dist/components/number-field.js +2 -3
  549. package/dist/components/number-field.js.map +1 -1
  550. package/dist/components/number-input.d.ts +30 -111
  551. package/dist/components/number-input.js +34 -66
  552. package/dist/components/number-input.js.map +1 -1
  553. package/dist/components/numeric-field.d.ts +85 -0
  554. package/dist/components/numeric-field.js +71 -0
  555. package/dist/components/numeric-field.js.map +1 -0
  556. package/dist/components/numpad-sheet.d.ts +5 -108
  557. package/dist/components/numpad-sheet.js +7 -7
  558. package/dist/components/numpad-sheet.js.map +1 -1
  559. package/dist/components/one-time-code-input.d.ts +6 -7
  560. package/dist/components/one-time-code-input.js +119 -124
  561. package/dist/components/one-time-code-input.js.map +1 -1
  562. package/dist/components/page-contents-labels.d.ts +2 -0
  563. package/dist/components/page-contents-labels.js +8 -0
  564. package/dist/components/page-contents-labels.js.map +1 -0
  565. package/dist/components/page-contents.d.ts +13 -15
  566. package/dist/components/page-contents.js +7 -9
  567. package/dist/components/page-contents.js.map +1 -1
  568. package/dist/components/page-header.d.ts +10 -10
  569. package/dist/components/page-header.js +3 -3
  570. package/dist/components/page-header.js.map +1 -1
  571. package/dist/components/password-strength-labels.d.ts +2 -0
  572. package/dist/components/password-strength-labels.js +21 -0
  573. package/dist/components/password-strength-labels.js.map +1 -0
  574. package/dist/components/password-strength.d.ts +15 -17
  575. package/dist/components/password-strength.js +7 -22
  576. package/dist/components/password-strength.js.map +1 -1
  577. package/dist/components/phone-input-labels.d.ts +2 -0
  578. package/dist/components/phone-input-labels.js +9 -0
  579. package/dist/components/phone-input-labels.js.map +1 -0
  580. package/dist/components/phone-input.d.ts +75 -101
  581. package/dist/components/phone-input.js +20 -23
  582. package/dist/components/phone-input.js.map +1 -1
  583. package/dist/components/picker-sheet.d.ts +20 -8
  584. package/dist/components/picker-sheet.js +22 -11
  585. package/dist/components/picker-sheet.js.map +1 -1
  586. package/dist/components/pie-chart-labels.d.ts +2 -4
  587. package/dist/components/pie-chart.d.ts +8 -11
  588. package/dist/components/pie-chart.js +5 -5
  589. package/dist/components/pie-chart.js.map +1 -1
  590. package/dist/components/popover-labels.d.ts +2 -0
  591. package/dist/components/popover-labels.js +11 -0
  592. package/dist/components/popover-labels.js.map +1 -0
  593. package/dist/components/popover.d.ts +13 -11
  594. package/dist/components/popover.js +15 -21
  595. package/dist/components/popover.js.map +1 -1
  596. package/dist/components/progress-bar-labels.d.ts +2 -0
  597. package/dist/components/progress-bar-labels.js +9 -0
  598. package/dist/components/progress-bar-labels.js.map +1 -0
  599. package/dist/components/progress-bar.d.ts +16 -15
  600. package/dist/components/progress-bar.js +22 -20
  601. package/dist/components/progress-bar.js.map +1 -1
  602. package/dist/components/qr-code.d.ts +4 -8
  603. package/dist/components/qr-code.js.map +1 -1
  604. package/dist/components/reauth-dialog-labels.d.ts +2 -0
  605. package/dist/components/reauth-dialog-labels.js +12 -0
  606. package/dist/components/reauth-dialog-labels.js.map +1 -0
  607. package/dist/components/reauth-dialog.d.ts +8 -10
  608. package/dist/components/reauth-dialog.js +3 -8
  609. package/dist/components/reauth-dialog.js.map +1 -1
  610. package/dist/components/row-actions-labels.d.ts +2 -0
  611. package/dist/components/row-actions-labels.js +9 -0
  612. package/dist/components/row-actions-labels.js.map +1 -0
  613. package/dist/components/row-actions.d.ts +224 -101
  614. package/dist/components/row-actions.js +4 -5
  615. package/dist/components/row-actions.js.map +1 -1
  616. package/dist/components/scroll-area.d.ts +6 -9
  617. package/dist/components/scroll-area.js +4 -10
  618. package/dist/components/scroll-area.js.map +1 -1
  619. package/dist/components/search-field.d.ts +12 -27
  620. package/dist/components/search-field.js +13 -16
  621. package/dist/components/search-field.js.map +1 -1
  622. package/dist/components/select.d.ts +69 -0
  623. package/dist/components/select.js +164 -0
  624. package/dist/components/select.js.map +1 -0
  625. package/dist/components/separator.d.ts +3 -7
  626. package/dist/components/separator.js.map +1 -1
  627. package/dist/components/series-chart-axes.d.ts +120 -0
  628. package/dist/components/series-chart-axes.js +164 -0
  629. package/dist/components/series-chart-axes.js.map +1 -0
  630. package/dist/components/series-chart-budget.d.ts +8 -9
  631. package/dist/components/series-chart-labels.d.ts +2 -4
  632. package/dist/components/series-chart-thin.d.ts +34 -0
  633. package/dist/components/series-chart-thin.js +103 -0
  634. package/dist/components/series-chart-thin.js.map +1 -0
  635. package/dist/components/series-chart-ticks.d.ts +9 -11
  636. package/dist/components/series-chart.d.ts +64 -214
  637. package/dist/components/series-chart.js +69 -160
  638. package/dist/components/series-chart.js.map +1 -1
  639. package/dist/components/server-wake-labels.d.ts +2 -0
  640. package/dist/components/server-wake-labels.js +9 -0
  641. package/dist/components/server-wake-labels.js.map +1 -0
  642. package/dist/components/server-wake.d.ts +32 -23
  643. package/dist/components/server-wake.js +15 -35
  644. package/dist/components/server-wake.js.map +1 -1
  645. package/dist/components/settings-fields.d.ts +46 -118
  646. package/dist/components/settings-fields.js +13 -3
  647. package/dist/components/settings-fields.js.map +1 -1
  648. package/dist/components/share-card-labels.d.ts +2 -0
  649. package/dist/components/share-card-labels.js +29 -0
  650. package/dist/components/share-card-labels.js.map +1 -0
  651. package/dist/components/share-card.d.ts +188 -101
  652. package/dist/components/share-card.js +16 -34
  653. package/dist/components/share-card.js.map +1 -1
  654. package/dist/components/sign-chip-labels.d.ts +2 -0
  655. package/dist/components/sign-chip-labels.js +11 -0
  656. package/dist/components/sign-chip-labels.js.map +1 -0
  657. package/dist/components/sign-chip.d.ts +7 -9
  658. package/dist/components/sign-chip.js +2 -7
  659. package/dist/components/sign-chip.js.map +1 -1
  660. package/dist/components/signature-pad-labels.d.ts +2 -0
  661. package/dist/components/signature-pad-labels.js +23 -0
  662. package/dist/components/signature-pad-labels.js.map +1 -0
  663. package/dist/components/signature-pad.d.ts +16 -15
  664. package/dist/components/signature-pad.js +22 -35
  665. package/dist/components/signature-pad.js.map +1 -1
  666. package/dist/components/signed-amount-labels.d.ts +2 -0
  667. package/dist/components/signed-amount-labels.js +9 -0
  668. package/dist/components/signed-amount-labels.js.map +1 -0
  669. package/dist/components/signed-amount.d.ts +19 -21
  670. package/dist/components/signed-amount.js +12 -15
  671. package/dist/components/signed-amount.js.map +1 -1
  672. package/dist/components/skeleton.d.ts +5 -9
  673. package/dist/components/skeleton.js +1 -1
  674. package/dist/components/skeleton.js.map +1 -1
  675. package/dist/components/slider.d.ts +16 -11
  676. package/dist/components/slider.js +23 -18
  677. package/dist/components/slider.js.map +1 -1
  678. package/dist/components/sparkline-labels.d.ts +2 -0
  679. package/dist/components/sparkline-labels.js +13 -0
  680. package/dist/components/sparkline-labels.js.map +1 -0
  681. package/dist/components/sparkline.d.ts +10 -12
  682. package/dist/components/sparkline.js +10 -17
  683. package/dist/components/sparkline.js.map +1 -1
  684. package/dist/components/spinner.d.ts +45 -0
  685. package/dist/components/spinner.js +39 -0
  686. package/dist/components/spinner.js.map +1 -0
  687. package/dist/components/stat-tile-labels.d.ts +2 -0
  688. package/dist/components/stat-tile-labels.js +14 -0
  689. package/dist/components/stat-tile-labels.js.map +1 -0
  690. package/dist/components/stat-tile.d.ts +15 -17
  691. package/dist/components/stat-tile.js +25 -32
  692. package/dist/components/stat-tile.js.map +1 -1
  693. package/dist/components/status-dot.d.ts +8 -20
  694. package/dist/components/status-dot.js +13 -12
  695. package/dist/components/status-dot.js.map +1 -1
  696. package/dist/components/swatch-picker-labels.d.ts +2 -0
  697. package/dist/components/swatch-picker-labels.js +9 -0
  698. package/dist/components/swatch-picker-labels.js.map +1 -0
  699. package/dist/components/swatch-picker.d.ts +14 -14
  700. package/dist/components/swatch-picker.js +14 -8
  701. package/dist/components/swatch-picker.js.map +1 -1
  702. package/dist/components/swipeable-row.d.ts +14 -27
  703. package/dist/components/swipeable-row.js +2 -2
  704. package/dist/components/swipeable-row.js.map +1 -1
  705. package/dist/components/switch.d.ts +10 -13
  706. package/dist/components/switch.js +13 -12
  707. package/dist/components/switch.js.map +1 -1
  708. package/dist/components/table.d.ts +28 -31
  709. package/dist/components/table.js +15 -15
  710. package/dist/components/table.js.map +1 -1
  711. package/dist/components/tabs.d.ts +182 -0
  712. package/dist/components/tabs.js +312 -0
  713. package/dist/components/tabs.js.map +1 -0
  714. package/dist/components/text-link.d.ts +17 -119
  715. package/dist/components/text-link.js +7 -7
  716. package/dist/components/text-link.js.map +1 -1
  717. package/dist/components/text.d.ts +14 -13
  718. package/dist/components/text.js +5 -5
  719. package/dist/components/text.js.map +1 -1
  720. package/dist/components/textarea.d.ts +20 -0
  721. package/dist/components/textarea.js +161 -0
  722. package/dist/components/textarea.js.map +1 -0
  723. package/dist/components/tile-radio.d.ts +6 -10
  724. package/dist/components/tile-radio.js +6 -6
  725. package/dist/components/tile-radio.js.map +1 -1
  726. package/dist/components/time-input.d.ts +5 -108
  727. package/dist/components/time-input.js +14 -5
  728. package/dist/components/time-input.js.map +1 -1
  729. package/dist/components/toast-labels.d.ts +2 -0
  730. package/dist/components/toast-labels.js +11 -0
  731. package/dist/components/toast-labels.js.map +1 -0
  732. package/dist/components/toast.d.ts +21 -23
  733. package/dist/components/toast.js +1 -6
  734. package/dist/components/toast.js.map +1 -1
  735. package/dist/components/toggle-group.d.ts +26 -26
  736. package/dist/components/toggle-group.js +43 -19
  737. package/dist/components/toggle-group.js.map +1 -1
  738. package/dist/components/toggle-legend.d.ts +18 -21
  739. package/dist/components/toggle-legend.js +3 -3
  740. package/dist/components/toggle-legend.js.map +1 -1
  741. package/dist/components/tooltip.d.ts +16 -15
  742. package/dist/components/tooltip.js +4 -9
  743. package/dist/components/tooltip.js.map +1 -1
  744. package/dist/components/translation-review-editor.d.ts +8 -10
  745. package/dist/components/translation-review-editor.js +6 -5
  746. package/dist/components/translation-review-editor.js.map +1 -1
  747. package/dist/components/translation-review-labels.d.ts +4 -7
  748. package/dist/components/translation-review-parts.d.ts +19 -28
  749. package/dist/components/translation-review-parts.js +4 -7
  750. package/dist/components/translation-review-parts.js.map +1 -1
  751. package/dist/components/translation-review.d.ts +26 -24
  752. package/dist/components/translation-review.js +13 -10
  753. package/dist/components/translation-review.js.map +1 -1
  754. package/dist/components/tree-view.d.ts +7 -11
  755. package/dist/components/tree-view.js +8 -8
  756. package/dist/components/tree-view.js.map +1 -1
  757. package/dist/components/treemap.d.ts +9 -13
  758. package/dist/components/trigger-aria.d.ts +2 -4
  759. package/dist/components/ui-labels.d.ts +5 -0
  760. package/dist/components/ui-labels.js +20 -0
  761. package/dist/components/ui-labels.js.map +1 -0
  762. package/dist/components/use-anchor-dir.d.ts +3 -6
  763. package/dist/components/use-mobile-reveal.d.ts +2 -6
  764. package/dist/components/use-table-state.d.ts +154 -15
  765. package/dist/components/user-avatar.d.ts +8 -21
  766. package/dist/components/user-avatar.js +1 -1
  767. package/dist/components/user-avatar.js.map +1 -1
  768. package/dist/components/wizard-stepper.d.ts +6 -6
  769. package/dist/components/wizard-stepper.js +4 -3
  770. package/dist/components/wizard-stepper.js.map +1 -1
  771. package/dist/components/write-lock-labels.d.ts +2 -0
  772. package/dist/components/write-lock-labels.js +8 -0
  773. package/dist/components/write-lock-labels.js.map +1 -0
  774. package/dist/components/write-lock.d.ts +16 -18
  775. package/dist/components/write-lock.js +4 -8
  776. package/dist/components/write-lock.js.map +1 -1
  777. package/dist/data-table.d.ts +10 -18
  778. package/dist/data-table.js.map +1 -1
  779. package/dist/demo/demo-banner.d.ts +10 -13
  780. package/dist/demo/demo-banner.js +5 -19
  781. package/dist/demo/demo-banner.js.map +1 -1
  782. package/dist/demo/demo-countdown.d.ts +7 -9
  783. package/dist/demo/demo-ended.d.ts +10 -13
  784. package/dist/demo/demo-ended.js +4 -4
  785. package/dist/demo/demo-ended.js.map +1 -1
  786. package/dist/demo/demo-labels.d.ts +4 -5
  787. package/dist/demo/demo-labels.js.map +1 -1
  788. package/dist/demo/demo-session.d.ts +3 -5
  789. package/dist/demo/demo-start.d.ts +8 -11
  790. package/dist/demo/demo-start.js +3 -2
  791. package/dist/demo/demo-start.js.map +1 -1
  792. package/dist/feedback/feedback-attachment-labels.d.ts +16 -0
  793. package/dist/feedback/feedback-attachment-labels.js +17 -0
  794. package/dist/feedback/feedback-attachment-labels.js.map +1 -0
  795. package/dist/feedback/feedback-attachment.d.ts +312 -101
  796. package/dist/feedback/feedback-attachment.js +31 -42
  797. package/dist/feedback/feedback-attachment.js.map +1 -1
  798. package/dist/feedback/feedback-capture.d.ts +2 -4
  799. package/dist/feedback/feedback-context-labels.d.ts +2 -0
  800. package/dist/feedback/feedback-context-labels.js +9 -0
  801. package/dist/feedback/feedback-context-labels.js.map +1 -0
  802. package/dist/feedback/feedback-context.d.ts +110 -101
  803. package/dist/feedback/feedback-context.js +4 -7
  804. package/dist/feedback/feedback-context.js.map +1 -1
  805. package/dist/feedback/feedback-crash.d.ts +8 -110
  806. package/dist/feedback/feedback-dialog-labels.d.ts +12 -0
  807. package/dist/feedback/feedback-dialog-labels.js +17 -0
  808. package/dist/feedback/feedback-dialog-labels.js.map +1 -0
  809. package/dist/feedback/feedback-dialog.d.ts +186 -101
  810. package/dist/feedback/feedback-dialog.js +8 -18
  811. package/dist/feedback/feedback-dialog.js.map +1 -1
  812. package/dist/feedback/feedback-inbox.d.ts +236 -101
  813. package/dist/feedback/feedback-inbox.js +31 -141
  814. package/dist/feedback/feedback-inbox.js.map +1 -1
  815. package/dist/feedback/feedback-labels.d.ts +83 -101
  816. package/dist/feedback/feedback-labels.js.map +1 -1
  817. package/dist/feedback/feedback-menu-labels.d.ts +2 -0
  818. package/dist/feedback/feedback-menu-labels.js +10 -0
  819. package/dist/feedback/feedback-menu-labels.js.map +1 -0
  820. package/dist/feedback/feedback-menu.d.ts +83 -101
  821. package/dist/feedback/feedback-menu.js +3 -7
  822. package/dist/feedback/feedback-menu.js.map +1 -1
  823. package/dist/feedback/feedback-record.d.ts +239 -101
  824. package/dist/feedback/feedback-record.js +7 -2
  825. package/dist/feedback/feedback-record.js.map +1 -1
  826. package/dist/feedback/feedback-row-detail-labels.d.ts +2 -0
  827. package/dist/feedback/feedback-row-detail-labels.js +31 -0
  828. package/dist/feedback/feedback-row-detail-labels.js.map +1 -0
  829. package/dist/feedback/feedback-row-detail.d.ts +315 -101
  830. package/dist/feedback/feedback-row-detail.js +11 -37
  831. package/dist/feedback/feedback-row-detail.js.map +1 -1
  832. package/dist/feedback/feedback-status-undo.d.ts +66 -101
  833. package/dist/feedback/feedback-status-undo.js.map +1 -1
  834. package/dist/feedback/feedback-submit-dialog.d.ts +39 -0
  835. package/dist/feedback/feedback-submit-dialog.js +66 -0
  836. package/dist/feedback/feedback-submit-dialog.js.map +1 -0
  837. package/dist/feedback/feedback-submit.d.ts +13 -109
  838. package/dist/feedback/feedback-submit.js +19 -40
  839. package/dist/feedback/feedback-submit.js.map +1 -1
  840. package/dist/feedback/feedback-swipe.d.ts +9 -110
  841. package/dist/feedback/feedback-swipe.js +1 -1
  842. package/dist/feedback/feedback-swipe.js.map +1 -1
  843. package/dist/feedback/feedback-table-labels.d.ts +2 -0
  844. package/dist/feedback/feedback-table-labels.js +26 -0
  845. package/dist/feedback/feedback-table-labels.js.map +1 -0
  846. package/dist/feedback/feedback-table.d.ts +314 -101
  847. package/dist/feedback/feedback-table.js +11 -31
  848. package/dist/feedback/feedback-table.js.map +1 -1
  849. package/dist/feedback/feedback-thread-labels.d.ts +3 -0
  850. package/dist/feedback/feedback-thread-labels.js +21 -0
  851. package/dist/feedback/feedback-thread-labels.js.map +1 -0
  852. package/dist/feedback/feedback-thread.d.ts +378 -101
  853. package/dist/feedback/feedback-thread.js +27 -34
  854. package/dist/feedback/feedback-thread.js.map +1 -1
  855. package/dist/feedback/feedback-vocabulary.d.ts +98 -0
  856. package/dist/feedback/feedback-vocabulary.js +143 -0
  857. package/dist/feedback/feedback-vocabulary.js.map +1 -0
  858. package/dist/feedback.d.ts +15 -105
  859. package/dist/hooks/use-anchored-panel.d.ts +77 -15
  860. package/dist/hooks/use-anchored-panel.js +34 -1
  861. package/dist/hooks/use-anchored-panel.js.map +1 -1
  862. package/dist/hooks/use-anchored-rect.d.ts +15 -6
  863. package/dist/hooks/use-anchored-rect.js +2 -1
  864. package/dist/hooks/use-anchored-rect.js.map +1 -1
  865. package/dist/hooks/use-announce.d.ts +4 -6
  866. package/dist/hooks/use-authed-src.d.ts +5 -7
  867. package/dist/hooks/use-authed-src.js +3 -7
  868. package/dist/hooks/use-authed-src.js.map +1 -1
  869. package/dist/hooks/use-body-scroll-lock.d.ts +1 -3
  870. package/dist/hooks/use-breakpoint.d.ts +16 -17
  871. package/dist/hooks/use-breakpoint.js.map +1 -1
  872. package/dist/hooks/use-close-transition.d.ts +8 -8
  873. package/dist/hooks/use-close-transition.js +5 -4
  874. package/dist/hooks/use-close-transition.js.map +1 -1
  875. package/dist/hooks/use-copy-to-clipboard.d.ts +5 -7
  876. package/dist/hooks/use-debounce.d.ts +13 -6
  877. package/dist/hooks/use-debounce.js.map +1 -1
  878. package/dist/hooks/use-dismiss.d.ts +37 -11
  879. package/dist/hooks/use-dismiss.js +69 -10
  880. package/dist/hooks/use-dismiss.js.map +1 -1
  881. package/dist/hooks/use-file-drop.d.ts +8 -110
  882. package/dist/hooks/use-file-drop.js +1 -1
  883. package/dist/hooks/use-file-drop.js.map +1 -1
  884. package/dist/hooks/use-file-picker-labels.d.ts +2 -0
  885. package/dist/hooks/use-file-picker-labels.js +25 -0
  886. package/dist/hooks/use-file-picker-labels.js.map +1 -0
  887. package/dist/hooks/use-file-picker.d.ts +164 -0
  888. package/dist/hooks/use-file-picker.js +149 -0
  889. package/dist/hooks/use-file-picker.js.map +1 -0
  890. package/dist/hooks/use-focus-trap.d.ts +2 -4
  891. package/dist/hooks/use-focus-trap.js +2 -1
  892. package/dist/hooks/use-focus-trap.js.map +1 -1
  893. package/dist/hooks/use-hotkey.d.ts +7 -9
  894. package/dist/hooks/use-large-text.d.ts +3 -5
  895. package/dist/hooks/use-media-query.d.ts +1 -3
  896. package/dist/hooks/use-noindex.d.ts +1 -3
  897. package/dist/hooks/use-overlay-history.d.ts +1 -3
  898. package/dist/hooks/use-row-swipe.d.ts +5 -8
  899. package/dist/hooks/use-search-param-state.d.ts +10 -11
  900. package/dist/hooks/use-windowed-rows.d.ts +4 -7
  901. package/dist/i18n/defaults.d.ts +11 -105
  902. package/dist/i18n/defaults.js +82 -82
  903. package/dist/i18n/defaults.js.map +1 -1
  904. package/dist/i18n/german.d.ts +2 -105
  905. package/dist/i18n/german.js +52 -8
  906. package/dist/i18n/german.js.map +1 -1
  907. package/dist/i18n/kit-labels.d.ts +609 -101
  908. package/dist/i18n/kit-labels.js +22 -97
  909. package/dist/i18n/kit-labels.js.map +1 -1
  910. package/dist/i18n/languages.d.ts +197 -101
  911. package/dist/i18n/locales/de-CH.d.ts +3 -106
  912. package/dist/i18n/locales/en.d.ts +4 -105
  913. package/dist/i18n/locales/en.js +1834 -4
  914. package/dist/i18n/locales/en.js.map +7 -1
  915. package/dist/i18n/locales/es.d.ts +3 -106
  916. package/dist/i18n/locales/es.js +52 -8
  917. package/dist/i18n/locales/es.js.map +1 -1
  918. package/dist/i18n/locales/fr.d.ts +3 -106
  919. package/dist/i18n/locales/fr.js +53 -8
  920. package/dist/i18n/locales/fr.js.map +1 -1
  921. package/dist/i18n/locales/hu.d.ts +3 -106
  922. package/dist/i18n/locales/hu.js +52 -8
  923. package/dist/i18n/locales/hu.js.map +1 -1
  924. package/dist/i18n/locales/it.d.ts +3 -106
  925. package/dist/i18n/locales/it.js +53 -8
  926. package/dist/i18n/locales/it.js.map +1 -1
  927. package/dist/i18n/locales/zh.d.ts +3 -106
  928. package/dist/i18n/locales/zh.js +51 -8
  929. package/dist/i18n/locales/zh.js.map +1 -1
  930. package/dist/i18n/plurals.d.ts +3 -5
  931. package/dist/i18n/review.d.ts +5 -107
  932. package/dist/i18n/review.js +4 -0
  933. package/dist/i18n/review.js.map +1 -1
  934. package/dist/i18n/shared-labels.d.ts +17 -0
  935. package/dist/i18n/shared-labels.js +111 -0
  936. package/dist/i18n/shared-labels.js.map +1 -0
  937. package/dist/i18n/swiss.d.ts +1 -3
  938. package/dist/index.d.ts +329 -249
  939. package/dist/index.js +188 -215
  940. package/dist/index.js.map +1 -1
  941. package/dist/landing/access.d.ts +7 -9
  942. package/dist/landing/access.js.map +1 -1
  943. package/dist/landing/landing-actions.d.ts +9 -109
  944. package/dist/landing/landing-actions.js +1 -1
  945. package/dist/landing/landing-actions.js.map +1 -1
  946. package/dist/landing/landing-labels.d.ts +4 -5
  947. package/dist/landing/landing-labels.js.map +1 -1
  948. package/dist/landing/landing-sections.d.ts +21 -121
  949. package/dist/landing/landing-sections.js +15 -15
  950. package/dist/landing/landing-sections.js.map +1 -1
  951. package/dist/landing/page-seo.d.ts +7 -9
  952. package/dist/landing/public-header.d.ts +10 -111
  953. package/dist/landing/public-header.js +1 -1
  954. package/dist/landing/public-header.js.map +1 -1
  955. package/dist/landing/routing.d.ts +16 -120
  956. package/dist/landing/routing.js +2 -6
  957. package/dist/landing/routing.js.map +1 -1
  958. package/dist/lib/calc.d.ts +7 -9
  959. package/dist/lib/chip-edge-snap.d.ts +10 -0
  960. package/dist/lib/chip-edge-snap.js +131 -0
  961. package/dist/lib/chip-edge-snap.js.map +1 -0
  962. package/dist/lib/clipping.d.ts +2 -4
  963. package/dist/lib/cn.d.ts +2 -5
  964. package/dist/lib/cn.js +6 -1
  965. package/dist/lib/cn.js.map +1 -1
  966. package/dist/lib/column-mapping.d.ts +10 -13
  967. package/dist/lib/countries.d.ts +3 -5
  968. package/dist/lib/dates.d.ts +25 -25
  969. package/dist/lib/dates.js.map +1 -1
  970. package/dist/lib/decimal-marks.d.ts +8 -8
  971. package/dist/lib/decimal-marks.js +1 -1
  972. package/dist/lib/decimal-marks.js.map +1 -1
  973. package/dist/lib/direction.d.ts +4 -6
  974. package/dist/lib/document-navigation.d.ts +1 -3
  975. package/dist/lib/download.d.ts +67 -0
  976. package/dist/lib/download.js +89 -0
  977. package/dist/lib/download.js.map +1 -0
  978. package/dist/lib/floating-stack.d.ts +8 -6
  979. package/dist/lib/floating-stack.js.map +1 -1
  980. package/dist/lib/format.d.ts +24 -23
  981. package/dist/lib/format.js +3 -3
  982. package/dist/lib/format.js.map +1 -1
  983. package/dist/lib/iban.d.ts +9 -11
  984. package/dist/lib/ime.d.ts +17 -0
  985. package/dist/lib/ime.js +13 -0
  986. package/dist/lib/ime.js.map +1 -0
  987. package/dist/lib/isin.d.ts +3 -5
  988. package/dist/lib/logger.d.ts +4 -6
  989. package/dist/lib/person-name.d.ts +3 -5
  990. package/dist/lib/phone.d.ts +9 -11
  991. package/dist/lib/presence.d.ts +15 -0
  992. package/dist/lib/presence.js +8 -0
  993. package/dist/lib/presence.js.map +1 -0
  994. package/dist/lib/qr-encode.d.ts +4 -6
  995. package/dist/lib/reduced-motion.d.ts +18 -0
  996. package/dist/lib/reduced-motion.js +9 -0
  997. package/dist/lib/reduced-motion.js.map +1 -0
  998. package/dist/lib/round.d.ts +22 -0
  999. package/dist/lib/round.js +15 -0
  1000. package/dist/lib/round.js.map +1 -0
  1001. package/dist/lib/safe-storage.d.ts +14 -4
  1002. package/dist/lib/safe-storage.js +24 -9
  1003. package/dist/lib/safe-storage.js.map +1 -1
  1004. package/dist/lib/server-wake.d.ts +13 -14
  1005. package/dist/lib/session-refresh.d.ts +200 -0
  1006. package/dist/lib/session-refresh.js +187 -0
  1007. package/dist/lib/session-refresh.js.map +1 -0
  1008. package/dist/lib/strip-fade.d.ts +10 -13
  1009. package/dist/lib/table-text.d.ts +14 -16
  1010. package/dist/lib/text-match.d.ts +41 -0
  1011. package/dist/lib/text-match.js +23 -0
  1012. package/dist/lib/text-match.js.map +1 -0
  1013. package/dist/lib/translation-review.d.ts +44 -45
  1014. package/dist/lib/translation-review.js +3 -2
  1015. package/dist/lib/translation-review.js.map +1 -1
  1016. package/dist/rhf/fields.d.ts +123 -189
  1017. package/dist/rhf/fields.js +46 -54
  1018. package/dist/rhf/fields.js.map +1 -1
  1019. package/dist/rhf/form-core.d.ts +153 -0
  1020. package/dist/rhf/form-core.js +143 -0
  1021. package/dist/rhf/form-core.js.map +1 -0
  1022. package/dist/rhf/form.d.ts +38 -175
  1023. package/dist/rhf/form.js +9 -131
  1024. package/dist/rhf/form.js.map +1 -1
  1025. package/dist/rhf/line-items.d.ts +40 -11
  1026. package/dist/rhf/line-items.js.map +1 -1
  1027. package/dist/rhf/use-rhf-wizard-step.d.ts +3 -6
  1028. package/dist/rhf.d.ts +4 -118
  1029. package/dist/rhf.js.map +1 -1
  1030. package/dist/search/command-palette-labels.d.ts +2 -0
  1031. package/dist/search/command-palette-labels.js +15 -0
  1032. package/dist/search/command-palette-labels.js.map +1 -0
  1033. package/dist/search/command-palette.d.ts +10 -13
  1034. package/dist/search/command-palette.js +25 -44
  1035. package/dist/search/command-palette.js.map +1 -1
  1036. package/dist/search/global-search-labels.d.ts +2 -0
  1037. package/dist/search/global-search-labels.js +12 -0
  1038. package/dist/search/global-search-labels.js.map +1 -0
  1039. package/dist/search/global-search.d.ts +17 -16
  1040. package/dist/search/global-search.js +12 -12
  1041. package/dist/search/global-search.js.map +1 -1
  1042. package/dist/search/search-index.d.ts +13 -14
  1043. package/dist/search/search-index.js +2 -1
  1044. package/dist/search/search-index.js.map +1 -1
  1045. package/dist/search/use-command-key.d.ts +9 -0
  1046. package/dist/search/use-command-key.js +18 -0
  1047. package/dist/search/use-command-key.js.map +1 -0
  1048. package/dist/search.d.ts +3 -4
  1049. package/dist/settings/settings-card-classes.d.ts +11 -0
  1050. package/dist/settings/settings-card-classes.js +8 -0
  1051. package/dist/settings/settings-card-classes.js.map +1 -0
  1052. package/dist/settings/settings-catalogue.d.ts +11 -14
  1053. package/dist/settings/settings-context.d.ts +4 -8
  1054. package/dist/settings/settings-heading.d.ts +8 -12
  1055. package/dist/settings/settings-heading.js +1 -1
  1056. package/dist/settings/settings-heading.js.map +1 -1
  1057. package/dist/settings/settings-labels.d.ts +6 -7
  1058. package/dist/settings/settings-labels.js.map +1 -1
  1059. package/dist/settings/settings-layout.d.ts +36 -13
  1060. package/dist/settings/settings-layout.js +25 -4
  1061. package/dist/settings/settings-layout.js.map +1 -1
  1062. package/dist/settings/settings-section.d.ts +4 -107
  1063. package/dist/settings/settings-section.js +2 -2
  1064. package/dist/settings/settings-section.js.map +1 -1
  1065. package/dist/settings/use-account-appearance.d.ts +11 -16
  1066. package/dist/settings/use-account-language.d.ts +8 -10
  1067. package/dist/settings/use-settings-focus.d.ts +3 -5
  1068. package/dist/settings/use-settings-focus.js +2 -4
  1069. package/dist/settings/use-settings-focus.js.map +1 -1
  1070. package/dist/settings/use-settings-route.d.ts +11 -16
  1071. package/dist/shell/app-shell-labels.d.ts +2 -0
  1072. package/dist/shell/app-shell-labels.js +9 -0
  1073. package/dist/shell/app-shell-labels.js.map +1 -0
  1074. package/dist/shell/app-shell.d.ts +216 -101
  1075. package/dist/shell/app-shell.js +51 -35
  1076. package/dist/shell/app-shell.js.map +1 -1
  1077. package/dist/shell/auth-layout.d.ts +6 -9
  1078. package/dist/shell/auth-layout.js +6 -6
  1079. package/dist/shell/auth-layout.js.map +1 -1
  1080. package/dist/shell/company-switcher-labels.d.ts +2 -0
  1081. package/dist/shell/company-switcher-labels.js +12 -0
  1082. package/dist/shell/company-switcher-labels.js.map +1 -0
  1083. package/dist/shell/company-switcher.d.ts +9 -11
  1084. package/dist/shell/company-switcher.js +3 -9
  1085. package/dist/shell/company-switcher.js.map +1 -1
  1086. package/dist/shell/option-switcher-menu.d.ts +19 -9
  1087. package/dist/shell/option-switcher-menu.js +6 -4
  1088. package/dist/shell/option-switcher-menu.js.map +1 -1
  1089. package/dist/shell/role-switcher.d.ts +5 -6
  1090. package/dist/shell/role-switcher.js +4 -3
  1091. package/dist/shell/role-switcher.js.map +1 -1
  1092. package/dist/shell/top-bar-brand.d.ts +4 -107
  1093. package/dist/shell/top-bar-brand.js +1 -1
  1094. package/dist/shell/top-bar-brand.js.map +1 -1
  1095. package/dist/shell/top-bar.d.ts +6 -9
  1096. package/dist/shell/top-bar.js +1 -1
  1097. package/dist/shell/top-bar.js.map +1 -1
  1098. package/dist/shell/topbar-action-menu.d.ts +30 -31
  1099. package/dist/shell/topbar-action-menu.js +12 -10
  1100. package/dist/shell/topbar-action-menu.js.map +1 -1
  1101. package/dist/shell/topbar-controls.d.ts +20 -18
  1102. package/dist/shell/topbar-controls.js +14 -11
  1103. package/dist/shell/topbar-controls.js.map +1 -1
  1104. package/dist/shell.d.ts +25 -116
  1105. package/dist/shell.js.map +1 -1
  1106. package/dist/table-text.d.ts +1 -1
  1107. package/dist/testing/css-variables.d.ts +4 -6
  1108. package/dist/testing/css-variables.generated.d.ts +2 -4
  1109. package/dist/testing/index.d.ts +2 -1
  1110. package/dist/testing/index.js +9 -1
  1111. package/dist/testing/index.js.map +1 -1
  1112. package/dist/testing/viewport.d.ts +93 -0
  1113. package/dist/testing/viewport.js +152 -0
  1114. package/dist/testing/viewport.js.map +1 -0
  1115. package/dist/theme/chart-palette.d.ts +7 -9
  1116. package/dist/theme/color.d.ts +14 -16
  1117. package/dist/theme/color.js +2 -1
  1118. package/dist/theme/color.js.map +1 -1
  1119. package/dist/theme/contrast-tokens.d.ts +13 -17
  1120. package/dist/theme/contrast.d.ts +22 -27
  1121. package/dist/theme/palette-derive.d.ts +16 -22
  1122. package/dist/theme/palette-derive.js +15 -7
  1123. package/dist/theme/palette-derive.js.map +1 -1
  1124. package/dist/theme/palette-presets.d.ts +25 -15
  1125. package/dist/theme/palette-presets.js +66 -66
  1126. package/dist/theme/palette-presets.js.map +1 -1
  1127. package/dist/theme/palette-store.d.ts +10 -13
  1128. package/dist/theme/text-size.d.ts +21 -26
  1129. package/dist/theme/theme-store.d.ts +9 -14
  1130. package/dist/tour/tour-labels.d.ts +2 -0
  1131. package/dist/tour/tour-labels.js +13 -0
  1132. package/dist/tour/tour-labels.js.map +1 -0
  1133. package/dist/tour/tour.d.ts +12 -14
  1134. package/dist/tour/tour.js +9 -20
  1135. package/dist/tour/tour.js.map +1 -1
  1136. package/dist/tour.d.ts +1 -2
  1137. package/dist/wizard/stepper-nav.d.ts +8 -108
  1138. package/dist/wizard/stepper-nav.js +15 -14
  1139. package/dist/wizard/stepper-nav.js.map +1 -1
  1140. package/dist/wizard/types.d.ts +18 -18
  1141. package/dist/wizard/types.js +1 -19
  1142. package/dist/wizard/types.js.map +1 -1
  1143. package/dist/wizard/use-wizard.d.ts +2 -6
  1144. package/dist/wizard/validation.d.ts +3 -7
  1145. package/dist/wizard/wizard-context.d.ts +7 -11
  1146. package/dist/wizard/wizard-labels.d.ts +4 -0
  1147. package/dist/wizard/wizard-labels.js +24 -0
  1148. package/dist/wizard/wizard-labels.js.map +1 -0
  1149. package/dist/wizard/wizard-step.d.ts +3 -7
  1150. package/dist/wizard/wizard-step.js +2 -2
  1151. package/dist/wizard/wizard-step.js.map +1 -1
  1152. package/dist/wizard/wizard-summary.d.ts +5 -8
  1153. package/dist/wizard/wizard-summary.js +6 -5
  1154. package/dist/wizard/wizard-summary.js.map +1 -1
  1155. package/dist/wizard.d.ts +7 -107
  1156. package/package.json +9 -6
  1157. package/src/account/account-parts.ts +3 -3
  1158. package/src/{components → account}/account-settings-labels.ts +11 -1
  1159. package/src/{components → account}/account-settings.tsx +145 -34
  1160. package/src/account/data-export-setting-labels.ts +20 -0
  1161. package/src/account/data-export-setting.tsx +19 -38
  1162. package/src/account/delete-account-setting-labels.ts +33 -0
  1163. package/src/account/delete-account-setting.tsx +13 -35
  1164. package/src/account/email-change-setting-labels.ts +32 -0
  1165. package/src/account/email-change-setting.tsx +17 -36
  1166. package/src/{components → account}/passkeys-setting.tsx +14 -9
  1167. package/src/account/sessions-setting-labels.ts +24 -0
  1168. package/src/account/sessions-setting.tsx +14 -28
  1169. package/src/admin/admin-action-confirm-labels.ts +19 -0
  1170. package/src/admin/admin-action-confirm.tsx +59 -38
  1171. package/src/admin/admin-action-log-labels.ts +74 -0
  1172. package/src/admin/admin-action-log.tsx +180 -54
  1173. package/src/admin/admin-parts.ts +0 -7
  1174. package/src/admin/invitations-panel-labels.ts +31 -0
  1175. package/src/admin/invitations-panel.tsx +16 -34
  1176. package/src/admin/plan-change-labels.ts +23 -0
  1177. package/src/admin/plan-change.tsx +58 -34
  1178. package/src/admin/reviewer-scope-editor-labels.ts +16 -0
  1179. package/src/admin/reviewer-scope-editor.tsx +9 -15
  1180. package/src/admin/role-select-labels.ts +16 -0
  1181. package/src/admin/role-select.tsx +13 -23
  1182. package/src/admin/transfer-ownership-dialog-labels.ts +20 -0
  1183. package/src/admin/transfer-ownership-dialog.tsx +7 -17
  1184. package/src/admin/user-roster-labels.ts +17 -0
  1185. package/src/admin/user-roster.tsx +9 -17
  1186. package/src/auth/accept-invitation-labels.ts +21 -0
  1187. package/src/auth/accept-invitation.tsx +9 -20
  1188. package/src/auth/auth-errors.ts +29 -13
  1189. package/src/auth/complete-name-dialog-labels.ts +16 -0
  1190. package/src/auth/complete-name-dialog.tsx +8 -13
  1191. package/src/auth/forgot-password-form-labels.ts +20 -0
  1192. package/src/auth/forgot-password-form.tsx +12 -20
  1193. package/src/auth/new-password-fields.tsx +1 -1
  1194. package/src/auth/not-found-page-labels.ts +12 -0
  1195. package/src/auth/not-found-page.tsx +11 -14
  1196. package/src/auth/register-form-labels.ts +31 -0
  1197. package/src/auth/register-form.tsx +18 -38
  1198. package/src/auth/reset-password-form-labels.ts +27 -0
  1199. package/src/auth/reset-password-form.tsx +12 -27
  1200. package/src/auth/sign-in-form-labels.ts +44 -0
  1201. package/src/auth/sign-in-form.tsx +18 -51
  1202. package/src/auth/status-parts.tsx +3 -3
  1203. package/src/auth/verify-email-labels.ts +26 -0
  1204. package/src/auth/verify-email.tsx +15 -30
  1205. package/src/billing/billing-banner.tsx +2 -1
  1206. package/src/billing/billing-labels.ts +1 -1
  1207. package/src/billing/checkout-processing.ts +2 -12
  1208. package/src/billing/plan-card.tsx +26 -27
  1209. package/src/billing/plan-limit-notice.tsx +1 -1
  1210. package/src/billing/subscription-actions.tsx +4 -4
  1211. package/src/chart.ts +7 -1
  1212. package/src/components/account-chips-labels.ts +16 -0
  1213. package/src/components/account-chips.tsx +13 -16
  1214. package/src/components/alert-banner.tsx +39 -19
  1215. package/src/components/amount-input.tsx +461 -405
  1216. package/src/components/appearance-labels.ts +2 -2
  1217. package/src/components/authed-image-labels.ts +11 -0
  1218. package/src/components/authed-image.tsx +6 -8
  1219. package/src/components/autocomplete.tsx +79 -78
  1220. package/src/components/breadcrumbs-labels.ts +10 -0
  1221. package/src/components/breadcrumbs.tsx +17 -14
  1222. package/src/components/bulk-action-bar-labels.ts +11 -0
  1223. package/src/components/bulk-action-bar.tsx +15 -16
  1224. package/src/components/button-group.tsx +7 -7
  1225. package/src/components/button-look.ts +230 -0
  1226. package/src/components/button.tsx +339 -0
  1227. package/src/components/calculator.tsx +18 -11
  1228. package/src/components/calendar-heatmap-labels.ts +15 -0
  1229. package/src/components/calendar-heatmap.tsx +13 -19
  1230. package/src/components/card.tsx +381 -0
  1231. package/src/components/chart-zoom-core.tsx +653 -0
  1232. package/src/components/chart-zoom.tsx +64 -648
  1233. package/src/components/chart.tsx +11 -11
  1234. package/src/components/checkbox-group.tsx +13 -10
  1235. package/src/components/checkbox.tsx +43 -42
  1236. package/src/components/chip-input.tsx +377 -0
  1237. package/src/components/chip-labels.ts +13 -0
  1238. package/src/components/chip.tsx +115 -711
  1239. package/src/components/choice-card.tsx +83 -85
  1240. package/src/components/column-mapper-labels.ts +45 -0
  1241. package/src/components/column-mapper.tsx +16 -51
  1242. package/src/components/combobox-core.tsx +346 -194
  1243. package/src/components/combobox-suggestions.tsx +129 -0
  1244. package/src/components/combobox.tsx +69 -895
  1245. package/src/components/confirm-dialog-labels.ts +13 -0
  1246. package/src/components/confirm-dialog.tsx +4 -8
  1247. package/src/components/copy-button-labels.ts +13 -0
  1248. package/src/components/copy-button.tsx +10 -12
  1249. package/src/components/country-select-labels.ts +11 -0
  1250. package/src/components/country-select.tsx +74 -89
  1251. package/src/components/currency-option-list.tsx +216 -0
  1252. package/src/components/currency-select.tsx +85 -196
  1253. package/src/components/danger-confirm-labels.ts +20 -0
  1254. package/src/components/danger-confirm.tsx +69 -77
  1255. package/src/components/data-table-cells.tsx +5 -5
  1256. package/src/components/data-table-column-settings.tsx +137 -0
  1257. package/src/components/data-table-filter-popover.tsx +49 -24
  1258. package/src/components/data-table-filters.ts +48 -11
  1259. package/src/components/data-table-head.tsx +258 -0
  1260. package/src/components/data-table-labels.ts +43 -11
  1261. package/src/components/data-table-mobile.tsx +594 -0
  1262. package/src/components/data-table-pagination.tsx +11 -10
  1263. package/src/components/data-table-resize.ts +187 -0
  1264. package/src/components/data-table-row-actions.tsx +152 -0
  1265. package/src/components/data-table-selection.ts +55 -0
  1266. package/src/components/data-table-shared.tsx +172 -0
  1267. package/src/components/data-table.tsx +178 -1300
  1268. package/src/components/date-field.tsx +627 -0
  1269. package/src/components/date-picker.tsx +58 -1446
  1270. package/src/components/date-range-picker.tsx +490 -0
  1271. package/src/components/description-list-labels.ts +9 -0
  1272. package/src/components/description-list.tsx +31 -15
  1273. package/src/components/dialog-frame-labels.ts +7 -0
  1274. package/src/components/dialog-frame.tsx +8 -6
  1275. package/src/components/disclosure.tsx +14 -14
  1276. package/src/components/dropdown.tsx +102 -40
  1277. package/src/components/empty-state.tsx +137 -0
  1278. package/src/components/entity-combobox.tsx +17 -12
  1279. package/src/components/error-boundary-labels.ts +20 -0
  1280. package/src/components/error-boundary.tsx +10 -20
  1281. package/src/components/facing-pair.ts +1 -1
  1282. package/src/components/field-base.tsx +615 -0
  1283. package/src/components/field-parts.tsx +206 -77
  1284. package/src/components/field-strip.tsx +16 -21
  1285. package/src/components/field-sync-labels.ts +13 -0
  1286. package/src/components/field-sync.tsx +11 -12
  1287. package/src/components/field.tsx +13 -11
  1288. package/src/components/file-button.tsx +64 -412
  1289. package/src/components/file-dropzone.tsx +36 -33
  1290. package/src/components/floating-panel-labels.ts +10 -0
  1291. package/src/components/floating-panel.tsx +32 -21
  1292. package/src/components/focus-ring.ts +9 -4
  1293. package/src/components/form-actions-labels.ts +11 -0
  1294. package/src/components/form-actions.tsx +17 -21
  1295. package/src/components/full-bleed-dialog.tsx +27 -25
  1296. package/src/components/grouped-picker.tsx +118 -96
  1297. package/src/components/help-popover.tsx +115 -0
  1298. package/src/components/hover-menu.tsx +46 -35
  1299. package/src/components/iban-input-labels.ts +15 -0
  1300. package/src/components/iban-input.tsx +25 -20
  1301. package/src/components/icon-button.tsx +945 -0
  1302. package/src/components/icon-picker-labels.ts +13 -0
  1303. package/src/components/icon-picker.tsx +27 -24
  1304. package/src/components/image-grid-labels.ts +11 -0
  1305. package/src/components/image-grid.tsx +13 -15
  1306. package/src/components/inline-edit-field-labels.ts +11 -0
  1307. package/src/components/inline-edit-field.tsx +20 -19
  1308. package/src/components/inline-entity-combobox.tsx +789 -0
  1309. package/src/components/input.tsx +380 -0
  1310. package/src/components/jump-calendar.tsx +385 -0
  1311. package/src/components/language-select.tsx +31 -16
  1312. package/src/components/legal-labels.ts +99 -0
  1313. package/src/components/legal-page.tsx +2 -2
  1314. package/src/components/legal.tsx +11 -101
  1315. package/src/components/lightbox-labels.ts +18 -0
  1316. package/src/components/lightbox.tsx +13 -21
  1317. package/src/components/line-items-labels.ts +14 -0
  1318. package/src/components/line-items.tsx +24 -31
  1319. package/src/components/list-labels.ts +10 -0
  1320. package/src/components/list.tsx +98 -75
  1321. package/src/components/loading-state.tsx +4 -4
  1322. package/src/components/measured-grid-labels.ts +25 -0
  1323. package/src/components/measured-grid.tsx +39 -62
  1324. package/src/components/menu-item.tsx +29 -26
  1325. package/src/components/mini-calendar-labels.ts +17 -0
  1326. package/src/components/mini-calendar.tsx +38 -45
  1327. package/src/components/modal.tsx +31 -18
  1328. package/src/components/money-draft.ts +72 -0
  1329. package/src/components/money-field.tsx +16 -30
  1330. package/src/components/month-picker-labels.ts +22 -0
  1331. package/src/components/month-picker.tsx +59 -45
  1332. package/src/components/multi-entity-combobox.tsx +17 -12
  1333. package/src/components/multi-select.tsx +313 -288
  1334. package/src/components/nav-pills.tsx +19 -8
  1335. package/src/components/number-field.tsx +7 -5
  1336. package/src/components/number-input.tsx +72 -97
  1337. package/src/components/numeric-field.ts +161 -0
  1338. package/src/components/numpad-sheet.tsx +16 -16
  1339. package/src/components/one-time-code-input.tsx +154 -169
  1340. package/src/components/page-contents-labels.ts +9 -0
  1341. package/src/components/page-contents.tsx +15 -15
  1342. package/src/components/page-header.tsx +9 -5
  1343. package/src/components/password-strength-labels.ts +23 -0
  1344. package/src/components/password-strength.tsx +13 -27
  1345. package/src/components/phone-input-labels.ts +10 -0
  1346. package/src/components/phone-input.tsx +42 -57
  1347. package/src/components/picker-sheet.tsx +47 -18
  1348. package/src/components/pie-chart.tsx +11 -9
  1349. package/src/components/popover-labels.ts +14 -0
  1350. package/src/components/popover.tsx +34 -37
  1351. package/src/components/progress-bar-labels.ts +10 -0
  1352. package/src/components/progress-bar.tsx +32 -23
  1353. package/src/components/qr-code.tsx +2 -2
  1354. package/src/components/reauth-dialog-labels.ts +13 -0
  1355. package/src/components/reauth-dialog.tsx +7 -10
  1356. package/src/components/row-actions-labels.ts +10 -0
  1357. package/src/components/row-actions.tsx +11 -10
  1358. package/src/components/scroll-area.tsx +4 -10
  1359. package/src/components/search-field.tsx +35 -49
  1360. package/src/components/select.tsx +302 -0
  1361. package/src/components/separator.tsx +2 -2
  1362. package/src/components/series-chart-axes.ts +329 -0
  1363. package/src/components/series-chart-thin.ts +180 -0
  1364. package/src/components/series-chart.tsx +124 -325
  1365. package/src/components/server-wake-labels.ts +11 -0
  1366. package/src/components/server-wake.tsx +42 -63
  1367. package/src/components/settings-fields.tsx +46 -17
  1368. package/src/components/share-card-labels.ts +30 -0
  1369. package/src/components/share-card.tsx +22 -37
  1370. package/src/components/sign-chip-labels.ts +12 -0
  1371. package/src/components/sign-chip.tsx +6 -9
  1372. package/src/components/signature-pad-labels.ts +24 -0
  1373. package/src/components/signature-pad.tsx +48 -57
  1374. package/src/components/signed-amount-labels.ts +10 -0
  1375. package/src/components/signed-amount.tsx +21 -22
  1376. package/src/components/skeleton.tsx +1 -1
  1377. package/src/components/slider.tsx +51 -39
  1378. package/src/components/sparkline-labels.ts +14 -0
  1379. package/src/components/sparkline.tsx +16 -21
  1380. package/src/components/spinner.tsx +81 -0
  1381. package/src/components/stat-tile-labels.ts +15 -0
  1382. package/src/components/stat-tile.tsx +32 -37
  1383. package/src/components/status-dot.tsx +17 -14
  1384. package/src/components/swatch-picker-labels.ts +10 -0
  1385. package/src/components/swatch-picker.tsx +23 -16
  1386. package/src/components/swipeable-row.tsx +7 -7
  1387. package/src/components/switch.tsx +33 -32
  1388. package/src/components/table.tsx +15 -15
  1389. package/src/components/tabs.tsx +660 -0
  1390. package/src/components/text-link.tsx +7 -7
  1391. package/src/components/text.tsx +10 -6
  1392. package/src/components/textarea.tsx +323 -0
  1393. package/src/components/tile-radio.tsx +6 -6
  1394. package/src/components/time-input.tsx +15 -7
  1395. package/src/components/toast-labels.ts +12 -0
  1396. package/src/components/toast.tsx +5 -8
  1397. package/src/components/toggle-group.tsx +105 -42
  1398. package/src/components/toggle-legend.tsx +6 -6
  1399. package/src/components/tooltip.tsx +10 -21
  1400. package/src/components/translation-review-editor.tsx +8 -7
  1401. package/src/components/translation-review-parts.tsx +9 -13
  1402. package/src/components/translation-review.tsx +26 -14
  1403. package/src/components/tree-view.tsx +14 -12
  1404. package/src/components/ui-labels.ts +22 -0
  1405. package/src/components/user-avatar.tsx +3 -3
  1406. package/src/components/wizard-stepper.tsx +10 -5
  1407. package/src/components/write-lock-labels.ts +9 -0
  1408. package/src/components/write-lock.tsx +10 -12
  1409. package/src/data-table.ts +4 -0
  1410. package/src/demo/demo-banner.tsx +9 -25
  1411. package/src/demo/demo-ended.tsx +8 -7
  1412. package/src/demo/demo-labels.ts +2 -2
  1413. package/src/demo/demo-start.tsx +7 -5
  1414. package/src/feedback/feedback-attachment-labels.ts +36 -0
  1415. package/src/feedback/feedback-attachment.tsx +42 -66
  1416. package/src/feedback/feedback-context-labels.ts +10 -0
  1417. package/src/feedback/feedback-context.tsx +8 -9
  1418. package/src/feedback/feedback-dialog-labels.ts +28 -0
  1419. package/src/feedback/feedback-dialog.tsx +14 -44
  1420. package/src/feedback/feedback-inbox.tsx +49 -252
  1421. package/src/feedback/feedback-labels.ts +5 -5
  1422. package/src/feedback/feedback-menu-labels.ts +11 -0
  1423. package/src/feedback/feedback-menu.tsx +13 -11
  1424. package/src/feedback/feedback-record.ts +21 -7
  1425. package/src/feedback/feedback-row-detail-labels.ts +33 -0
  1426. package/src/feedback/feedback-row-detail.tsx +30 -43
  1427. package/src/feedback/feedback-status-undo.ts +3 -2
  1428. package/src/feedback/feedback-submit-dialog.tsx +109 -0
  1429. package/src/feedback/feedback-submit.tsx +45 -55
  1430. package/src/feedback/feedback-swipe.tsx +1 -1
  1431. package/src/feedback/feedback-table-labels.ts +27 -0
  1432. package/src/feedback/feedback-table.tsx +24 -40
  1433. package/src/feedback/feedback-thread-labels.ts +22 -0
  1434. package/src/feedback/feedback-thread.tsx +48 -47
  1435. package/src/feedback/feedback-vocabulary.ts +252 -0
  1436. package/src/hooks/use-anchored-panel.ts +102 -2
  1437. package/src/hooks/use-anchored-rect.ts +11 -9
  1438. package/src/hooks/use-authed-src.ts +13 -7
  1439. package/src/hooks/use-breakpoint.ts +5 -4
  1440. package/src/hooks/use-close-transition.ts +9 -10
  1441. package/src/hooks/use-debounce.ts +9 -0
  1442. package/src/hooks/use-dismiss.ts +176 -19
  1443. package/src/hooks/use-file-drop.ts +2 -2
  1444. package/src/hooks/use-file-picker-labels.ts +29 -0
  1445. package/src/hooks/use-file-picker.tsx +363 -0
  1446. package/src/hooks/use-focus-trap.ts +19 -6
  1447. package/src/i18n/defaults.ts +91 -82
  1448. package/src/i18n/german.ts +50 -6
  1449. package/src/i18n/kit-labels.tsx +70 -119
  1450. package/src/i18n/locales/en.ts +46 -0
  1451. package/src/i18n/locales/es.ts +50 -6
  1452. package/src/i18n/locales/fr.ts +52 -7
  1453. package/src/i18n/locales/hu.ts +50 -6
  1454. package/src/i18n/locales/it.ts +51 -6
  1455. package/src/i18n/locales/zh.ts +49 -6
  1456. package/src/i18n/review.ts +4 -0
  1457. package/src/i18n/shared-labels.ts +135 -0
  1458. package/src/index.ts +412 -404
  1459. package/src/landing/access.ts +2 -1
  1460. package/src/landing/landing-actions.tsx +6 -5
  1461. package/src/landing/landing-labels.ts +2 -2
  1462. package/src/landing/landing-sections.tsx +24 -23
  1463. package/src/landing/public-header.tsx +3 -2
  1464. package/src/landing/routing.tsx +2 -7
  1465. package/src/lib/chip-edge-snap.ts +212 -0
  1466. package/src/lib/cn.ts +13 -1
  1467. package/src/lib/dates.ts +4 -2
  1468. package/src/lib/decimal-marks.ts +4 -2
  1469. package/src/lib/download.ts +172 -0
  1470. package/src/lib/floating-stack.ts +5 -1
  1471. package/src/lib/format.ts +5 -3
  1472. package/src/lib/ime.ts +24 -0
  1473. package/src/lib/presence.ts +18 -0
  1474. package/src/lib/reduced-motion.ts +21 -0
  1475. package/src/lib/round.ts +38 -0
  1476. package/src/lib/safe-storage.ts +35 -11
  1477. package/src/lib/session-refresh.ts +473 -0
  1478. package/src/lib/text-match.ts +60 -0
  1479. package/src/lib/translation-review.ts +7 -6
  1480. package/src/rhf/fields.tsx +131 -179
  1481. package/src/rhf/form-core.tsx +327 -0
  1482. package/src/rhf/form.tsx +46 -321
  1483. package/src/rhf/line-items.tsx +1 -1
  1484. package/src/rhf.ts +3 -2
  1485. package/src/search/command-palette-labels.ts +16 -0
  1486. package/src/search/command-palette.tsx +37 -50
  1487. package/src/search/global-search-labels.ts +13 -0
  1488. package/src/search/global-search.tsx +50 -24
  1489. package/src/search/search-index.ts +5 -6
  1490. package/src/search/use-command-key.ts +22 -0
  1491. package/src/settings/settings-card-classes.ts +11 -0
  1492. package/src/settings/settings-heading.tsx +1 -1
  1493. package/src/settings/settings-labels.ts +2 -2
  1494. package/src/settings/settings-layout.tsx +65 -6
  1495. package/src/settings/settings-section.tsx +5 -5
  1496. package/src/settings/use-settings-focus.ts +2 -5
  1497. package/src/shell/app-shell-labels.ts +10 -0
  1498. package/src/shell/app-shell.tsx +79 -53
  1499. package/src/shell/auth-layout.tsx +11 -10
  1500. package/src/shell/company-switcher-labels.ts +13 -0
  1501. package/src/shell/company-switcher.tsx +7 -11
  1502. package/src/shell/option-switcher-menu.tsx +25 -6
  1503. package/src/shell/role-switcher.tsx +7 -3
  1504. package/src/shell/top-bar-brand.tsx +1 -1
  1505. package/src/shell/top-bar.tsx +6 -5
  1506. package/src/shell/topbar-action-menu.tsx +39 -20
  1507. package/src/shell/topbar-controls.tsx +24 -12
  1508. package/src/shell.ts +1 -1
  1509. package/src/testing/index.ts +11 -0
  1510. package/src/testing/viewport.ts +251 -0
  1511. package/src/theme/color.ts +7 -1
  1512. package/src/theme/palette-derive.ts +29 -7
  1513. package/src/theme/palette-presets.ts +81 -68
  1514. package/src/tour/tour-labels.ts +14 -0
  1515. package/src/tour/tour.tsx +13 -23
  1516. package/src/wizard/stepper-nav.tsx +19 -18
  1517. package/src/wizard/types.ts +7 -22
  1518. package/src/wizard/wizard-labels.ts +29 -0
  1519. package/src/wizard/wizard-step.tsx +2 -2
  1520. package/src/wizard/wizard-summary.tsx +8 -7
  1521. package/tokens.css +45 -14
  1522. package/dist/components/account-settings-labels.js.map +0 -1
  1523. package/dist/components/account-settings.js.map +0 -1
  1524. package/dist/components/choice-parts.d.ts +0 -24
  1525. package/dist/components/choice-parts.js +0 -18
  1526. package/dist/components/choice-parts.js.map +0 -1
  1527. package/dist/components/passkeys-setting.js.map +0 -1
  1528. package/dist/components/ui.d.ts +0 -101
  1529. package/dist/components/ui.js +0 -1955
  1530. package/dist/components/ui.js.map +0 -1
  1531. package/dist/data-table-labels-BJ5JE_X2.d.ts +0 -923
  1532. package/dist/delete-account-setting-DAgGBrbn.d.ts +0 -8167
  1533. package/src/components/choice-parts.ts +0 -33
  1534. package/src/components/ui.tsx +0 -4233
@@ -1,114 +1,12 @@
1
- import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { LandingSession } from './landing-actions.js';
4
- import '../delete-account-setting-DAgGBrbn.js';
5
- import '../components/tooltip.js';
6
- import '../hooks/use-anchored-rect.js';
7
- import '../lib/clipping.js';
8
- import '../data-table-labels-BJ5JE_X2.js';
9
- import '../components/data-table-sort.js';
10
- import '../components/swipeable-row.js';
11
- import '../components/status-dot.js';
12
- import '../components/progress-bar.js';
13
- import '../components/signed-amount.js';
14
- import '../components/stat-tile.js';
15
- import '../components/chip.js';
16
- import 'lucide-react';
17
- import '../components/field-parts.js';
18
- import '../components/write-lock.js';
19
- import '../components/mini-calendar.js';
20
- import '../components/calendar-heatmap.js';
21
- import '../components/popover.js';
22
- import '../hooks/use-breakpoint.js';
23
- import '../components/field-sync.js';
24
- import '../wizard/types.js';
25
- import '../tour/tour.js';
26
- import '../search/command-palette.js';
27
- import '../search/global-search.js';
28
- import '../search/search-index.js';
29
- import '../components/month-picker.js';
30
- import '../components/page-contents.js';
31
- import '../components/series-chart-labels.js';
32
- import '../components/pie-chart-labels.js';
33
- import '../components/sparkline.js';
34
- import '../components/signature-pad.js';
35
- import '../components/password-strength.js';
36
- import '../components/swatch-picker.js';
37
- import '../components/tile-radio.js';
38
- import '../components/icon-picker.js';
39
- import '../components/dialog-frame.js';
40
- import '../components/modal.js';
41
- import '../hooks/use-search-param-state.js';
42
- import '../components/measured-grid.js';
43
- import '../components/user-avatar.js';
44
- import '../lib/person-name.js';
45
- import '../shell/topbar-action-menu.js';
46
- import '../components/menu-item.js';
47
- import '../components/floating-panel.js';
48
- import '../hooks/use-authed-src.js';
49
- import '../components/account-settings-labels.js';
50
- import '../components/bulk-action-bar.js';
51
- import '../components/list.js';
52
- import '../components/breadcrumbs.js';
53
- import '../components/toast.js';
54
- import '../components/description-list.js';
55
- import '../components/line-items.js';
56
- import '../components/error-boundary.js';
57
- import '../components/authed-image.js';
58
- import '../components/image-grid.js';
59
- import '../components/lightbox.js';
60
- import '../auth/sign-in-form.js';
61
- import './access.js';
62
- import './landing-labels.js';
63
- import '../shell/topbar-controls.js';
64
- import '../theme/palette-presets.js';
65
- import '../theme/chart-palette.js';
66
- import '../theme/theme-store.js';
67
- import 'zustand/middleware';
68
- import 'zustand';
69
- import '../auth/complete-name-dialog.js';
70
- import '../auth/forgot-password-form.js';
71
- import '../auth/status-parts.js';
72
- import '../auth/reset-password-form.js';
73
- import '../auth/verify-email.js';
74
- import '../auth/not-found-page.js';
75
- import '../auth/accept-invitation.js';
76
- import '../shell/company-switcher.js';
77
- import '../account/email-change-setting.js';
78
- import '../account/sessions-setting.js';
79
- import '../lib/format.js';
80
- import '../account/data-export-setting.js';
81
- import '../components/account-chips.js';
82
- import '../admin/admin-parts.js';
83
- import '../admin/admin-action-log.js';
84
- import '../settings/settings-labels.js';
85
- import '../demo/demo-labels.js';
86
- import '../i18n/plurals.js';
87
- import '../components/appearance-labels.js';
88
- import '../theme/contrast.js';
89
- import '../theme/text-size.js';
90
- import '../components/reauth-dialog.js';
91
- import '../components/server-wake.js';
92
- import '../lib/server-wake.js';
93
- import '../components/translation-review-labels.js';
94
- import '../lib/translation-review.js';
95
- import '../components/country-select.js';
96
- import '../components/inline-edit-field.js';
97
- import '../lib/iban.js';
98
- import '../lib/phone.js';
99
- import '../components/sign-chip.js';
100
- import '../components/column-mapper.js';
101
- import '../lib/column-mapping.js';
102
- import '../lib/table-text.js';
103
- import '../components/focus-ring.js';
104
-
1
+ import type { ReactNode } from "react";
2
+ import type { LandingSession } from "./landing-actions.js";
105
3
  /**
106
4
  * 0.31.1: a session that is still being restored — an app whose access token lives in
107
5
  * memory reads it back from its refresh token first (kastlan's 0.31 adoption). Until
108
6
  * then `/` neither shows the landing nor resumes, and a public page neither shows nor
109
7
  * redirects: both render `loading` instead.
110
8
  */
111
- type RoutingSession = LandingSession | "loading";
9
+ export type RoutingSession = LandingSession | "loading";
112
10
  /**
113
11
  * The public routes' logic (docs/landing-demo-harmonization.md §3): what `/` shows,
114
12
  * which pages a session skips, and the page a session resumes on — keksdose's
@@ -117,7 +15,7 @@ type RoutingSession = LandingSession | "loading";
117
15
  */
118
16
  /** The query parameter that carries "where I was actually trying to go" through the
119
17
  * sign-in bounce (keksdose's `NEXT_PARAM`). */
120
- declare const NEXT_PARAM = "next";
18
+ export declare const NEXT_PARAM = "next";
121
19
  /**
122
20
  * A `?next=` value that is safe to navigate to, or null.
123
21
  *
@@ -137,10 +35,10 @@ declare const NEXT_PARAM = "next";
137
35
  * keksdose's (shared/hooks/use-last-visited-page.ts), verbatim but for the fallback
138
36
  * origin.
139
37
  */
140
- declare function safeNextPath(raw: string | null | undefined): string | null;
38
+ export declare function safeNextPath(raw: string | null | undefined): string | null;
141
39
  /** A path to leave out: a string is the path and everything under it (`/demo` is
142
40
  * `/demo` and `/demo/ended`; `/` is only `/`), a RegExp is tested on the pathname. */
143
- type PathPattern = string | RegExp;
41
+ export type PathPattern = string | RegExp;
144
42
  /**
145
43
  * The pages never recorded as a resume target (§3.2): the landing (`/`, `/welcome`), the
146
44
  * auth pages, the demo's own (`/demo*`) and the legal pages. The 404 has no path of its
@@ -148,8 +46,8 @@ type PathPattern = string | RegExp;
148
46
  * and it never sees one. The app adds its own one-shot routes (keksdose:
149
47
  * `/banks/callback`, `/join`, `/share-target`) through `exclude`.
150
48
  */
151
- declare const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[];
152
- interface LastVisitedPageOptions {
49
+ export declare const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[];
50
+ export interface LastVisitedPageOptions {
153
51
  /** The device key: `<app>.lastVisitedPage` (§3.2), one per app on the origin. */
154
52
  key: string;
155
53
  /** The app's own paths to leave out, ON TOP of {@link DEFAULT_LAST_VISITED_EXCLUDES}. */
@@ -167,19 +65,19 @@ interface LastVisitedPageOptions {
167
65
  * one-shot page (a bank callback, an invitation link) never becomes the place the next
168
66
  * launch opens on.
169
67
  */
170
- declare function useLastVisitedPage({ key, exclude, enabled }: LastVisitedPageOptions): void;
68
+ export declare function useLastVisitedPage({ key, exclude, enabled }: LastVisitedPageOptions): void;
171
69
  /**
172
70
  * The page {@link useLastVisitedPage} remembered under `key` — checked by
173
71
  * {@link safeNextPath}, so a value someone planted in storage cannot leave the origin —
174
72
  * or `fallback` (default `null`) when there is none or storage is blocked. A string
175
73
  * fallback narrows the answer to a string, for react-router's `to`.
176
74
  */
177
- declare function readLastVisitedPage(key: string, fallback: string): string;
178
- declare function readLastVisitedPage(key: string, fallback?: null): string | null;
75
+ export declare function readLastVisitedPage(key: string, fallback: string): string;
76
+ export declare function readLastVisitedPage(key: string, fallback?: null): string | null;
179
77
  /** Forget the remembered page — on an explicit sign-out, so the next account does not
180
78
  * resume on the previous one's page. */
181
- declare function clearLastVisitedPage(key: string): void;
182
- interface RootEntryProps {
79
+ export declare function clearLastVisitedPage(key: string): void;
80
+ export interface RootEntryProps {
183
81
  /** Without a session `/` is the landing; with one (real or demo) it resumes;
184
82
  * `"loading"` while the app restores one. */
185
83
  session: RoutingSession;
@@ -202,8 +100,8 @@ interface RootEntryProps {
202
100
  * home instead, because a session at `/` came to use the app. The landing stays one tap
203
101
  * away at `/welcome`, where the signed-in brand link points.
204
102
  */
205
- declare function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps): react.JSX.Element;
206
- interface RedirectIfAuthedProps {
103
+ export declare function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps): import("react").JSX.Element;
104
+ export interface RedirectIfAuthedProps {
207
105
  /** `"loading"` while the app restores a session: neither the page nor a redirect. */
208
106
  session: RoutingSession;
209
107
  /** What shows while `session` is `"loading"`. Default: the kit's `LoadingState`. */
@@ -232,6 +130,4 @@ interface RedirectIfAuthedProps {
232
130
  * `allowDemo` around `/login`, `/register` and the invitation pages, and one without
233
131
  * around `/demo` (and `/forgot-password`).
234
132
  */
235
- declare function RedirectIfAuthed({ session, allowDemo, fallback, children, loading }: RedirectIfAuthedProps): react.JSX.Element;
236
-
237
- export { DEFAULT_LAST_VISITED_EXCLUDES, type LastVisitedPageOptions, NEXT_PARAM, type PathPattern, RedirectIfAuthed, type RedirectIfAuthedProps, RootEntry, type RootEntryProps, type RoutingSession, clearLastVisitedPage, readLastVisitedPage, safeNextPath, useLastVisitedPage };
133
+ export declare function RedirectIfAuthed({ session, allowDemo, fallback, children, loading }: RedirectIfAuthedProps): import("react").JSX.Element;
@@ -2,7 +2,7 @@
2
2
  import { Fragment, jsx } from "react/jsx-runtime";
3
3
  import { useEffect } from "react";
4
4
  import { Navigate, Outlet, useLocation } from "react-router";
5
- import { readStored, writeStored } from "../lib/safe-storage.js";
5
+ import { readStored, removeStored, writeStored } from "../lib/safe-storage.js";
6
6
  import { LoadingState } from "../components/loading-state.js";
7
7
  const NEXT_PARAM = "next";
8
8
  function safeNextPath(raw) {
@@ -50,11 +50,7 @@ function readLastVisitedPage(key, fallback = null) {
50
50
  return safeNextPath(readStored(key)) ?? fallback;
51
51
  }
52
52
  function clearLastVisitedPage(key) {
53
- if (typeof window === "undefined") return;
54
- try {
55
- window.localStorage.removeItem(key);
56
- } catch {
57
- }
53
+ removeStored(key);
58
54
  }
59
55
  function RootEntry({ session, resumePath, landing, home, loading }) {
60
56
  if (session === "loading") return /* @__PURE__ */ jsx(Fragment, { children: loading ?? /* @__PURE__ */ jsx(LoadingState, {}) });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/landing/routing.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Navigate, Outlet, useLocation } from \"react-router\";\n\nimport { readStored, writeStored } from \"../lib/safe-storage\";\nimport type { LandingSession } from \"./landing-actions\";\nimport { LoadingState } from \"../components/loading-state\";\n\n/**\n * 0.31.1: a session that is still being restored — an app whose access token lives in\n * memory reads it back from its refresh token first (kastlan's 0.31 adoption). Until\n * then `/` neither shows the landing nor resumes, and a public page neither shows nor\n * redirects: both render `loading` instead.\n */\nexport type RoutingSession = LandingSession | \"loading\";\n\n/**\n * The public routes' logic (docs/landing-demo-harmonization.md §3): what `/` shows,\n * which pages a session skips, and the page a session resumes on — keksdose's\n * `RootEntry`, `RedirectIfAuthed` and use-last-visited-page.ts, for every app.\n * Router-aware (react-router), so they belong to the `./shell` entry.\n */\n\n/* ── ?next= ──────────────────────────────────────────────────────────────── */\n\n/** The query parameter that carries \"where I was actually trying to go\" through the\n * sign-in bounce (keksdose's `NEXT_PARAM`). */\nexport const NEXT_PARAM = \"next\";\n\n/**\n * A `?next=` value that is safe to navigate to, or null.\n *\n * Same-origin PATHS only, decided by the URL PARSER rather than by string prefix —\n * this is the open-redirect check, and it is the reason this lives in one place\n * instead of at each call site.\n *\n * The prefix version (\"starts with `/`, does not start with `//`\") let two shapes\n * through that the browser resolves cross-origin, because the WHATWG parser does not\n * read them as text: a backslash after the leading slash counts as a second slash for\n * a special scheme, so `/\\evil.example` resolves to `https://evil.example/`; and tab,\n * LF and CR are STRIPPED anywhere in the input before parsing, so `/<TAB>/evil.example`\n * becomes `//evil.example`. Asking the same parser the browser will use closes every\n * such shape at once, including ones nobody has thought of yet, and it normalises what\n * comes back instead of echoing the caller's spelling.\n *\n * keksdose's (shared/hooks/use-last-visited-page.ts), verbatim but for the fallback\n * origin.\n */\nexport function safeNextPath(raw: string | null | undefined): string | null {\n if (!raw) return null;\n const base = typeof window !== \"undefined\" ? window.location.origin : \"https://kit.invalid\";\n try {\n const url = new URL(raw, base);\n if (url.origin !== base) return null;\n return `${url.pathname}${url.search}${url.hash}`;\n } catch {\n return null;\n }\n}\n\n/* ── The last visited page (§3.2) ────────────────────────────────────────── */\n\n/** A path to leave out: a string is the path and everything under it (`/demo` is\n * `/demo` and `/demo/ended`; `/` is only `/`), a RegExp is tested on the pathname. */\nexport type PathPattern = string | RegExp;\n\n/**\n * The pages never recorded as a resume target (§3.2): the landing (`/`, `/welcome`), the\n * auth pages, the demo's own (`/demo*`) and the legal pages. The 404 has no path of its\n * own — call {@link useLastVisitedPage} inside the signed-in layout, as keksdose does,\n * and it never sees one. The app adds its own one-shot routes (keksdose:\n * `/banks/callback`, `/join`, `/share-target`) through `exclude`.\n */\nexport const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[] = Object.freeze([\n \"/\",\n \"/welcome\",\n \"/login\",\n \"/register\",\n \"/forgot-password\",\n \"/reset-password\",\n \"/verify-email\",\n \"/demo\",\n \"/impressum\",\n \"/privacy\",\n \"/terms\",\n]);\n\nfunction matchesPath(pathname: string, pattern: PathPattern): boolean {\n if (typeof pattern !== \"string\") return new RegExp(pattern.source, pattern.flags.replace(\"g\", \"\")).test(pathname);\n if (pattern === \"/\") return pathname === \"/\";\n const base = pattern.endsWith(\"/\") ? pattern.slice(0, -1) : pattern;\n return pathname === base || pathname.startsWith(`${base}/`);\n}\n\n/** Whether `pathname` is one of the defaults or the app's `exclude`. */\nfunction isExcluded(pathname: string, exclude: readonly PathPattern[]): boolean {\n return [...DEFAULT_LAST_VISITED_EXCLUDES, ...exclude].some((pattern) => matchesPath(pathname, pattern));\n}\n\nexport interface LastVisitedPageOptions {\n /** The device key: `<app>.lastVisitedPage` (§3.2), one per app on the origin. */\n key: string;\n /** The app's own paths to leave out, ON TOP of {@link DEFAULT_LAST_VISITED_EXCLUDES}. */\n exclude?: readonly PathPattern[];\n /** `false` records nothing — while the session is still being restored, say. */\n enabled?: boolean;\n}\n\n/**\n * Remember the page a session is on (path and query), on every navigation, so `/` — a\n * revisit, a fresh sign-in, the installed PWA, whose `start_url` is `/` — resumes there\n * (§3.2, keksdose feedback #59). Device-local, in `localStorage` under `key`; a blocked\n * storage records nothing.\n *\n * Call it once in the signed-in layout. The excluded paths are never written, so a\n * one-shot page (a bank callback, an invitation link) never becomes the place the next\n * launch opens on.\n */\nexport function useLastVisitedPage({ key, exclude = [], enabled = true }: LastVisitedPageOptions): void {\n const { pathname, search } = useLocation();\n // Decided here, so the effect depends on the answer and not on an `exclude` array the\n // caller likely builds inline.\n const skip = !enabled || isExcluded(pathname, exclude);\n useEffect(() => {\n if (skip) return;\n writeStored(key, pathname + search);\n }, [key, pathname, search, skip]);\n}\n\n/**\n * The page {@link useLastVisitedPage} remembered under `key` — checked by\n * {@link safeNextPath}, so a value someone planted in storage cannot leave the origin —\n * or `fallback` (default `null`) when there is none or storage is blocked. A string\n * fallback narrows the answer to a string, for react-router's `to`.\n */\nexport function readLastVisitedPage(key: string, fallback: string): string;\nexport function readLastVisitedPage(key: string, fallback?: null): string | null;\nexport function readLastVisitedPage(key: string, fallback: string | null = null): string | null {\n return safeNextPath(readStored(key)) ?? fallback;\n}\n\n/** Forget the remembered page — on an explicit sign-out, so the next account does not\n * resume on the previous one's page. */\nexport function clearLastVisitedPage(key: string): void {\n if (typeof window === \"undefined\") return;\n try {\n window.localStorage.removeItem(key);\n } catch {\n // storage blocked: there is nothing to forget\n }\n}\n\n/* ── RootEntry ───────────────────────────────────────────────────────────── */\n\nexport interface RootEntryProps {\n /** Without a session `/` is the landing; with one (real or demo) it resumes;\n * `\"loading\"` while the app restores one. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /** The remembered page — `readLastVisitedPage(key)`. */\n resumePath?: string | null;\n /** The landing page element. */\n landing: ReactNode;\n /** The app's home: where a session goes with nothing to resume (keksdose `/budget`,\n * kastlan and Kurvenschmiede `/dashboard`). */\n home: string;\n}\n\n/**\n * The `/` route (§3.1): the landing for a visitor, and for a session — real or demo —\n * the last visited page, else the app's home. Indexed and canonical `/` for the visitor;\n * a crawler never has a session, so for it `/` is stable.\n *\n * keksdose showed a session with nothing remembered the landing; the contract sends it\n * home instead, because a session at `/` came to use the app. The landing stays one tap\n * away at `/welcome`, where the signed-in brand link points.\n */\nexport function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps) {\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\") return <>{landing}</>;\n const resume = safeNextPath(resumePath);\n return <Navigate to={resume && resume !== \"/\" ? resume : home} replace />;\n}\n\n/* ── RedirectIfAuthed ────────────────────────────────────────────────────── */\n\nexport interface RedirectIfAuthedProps {\n /** `\"loading\"` while the app restores a session: neither the page nor a redirect. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /**\n * Let a DEMO session through (§5.6): on `/login`, `/register` and the app's invitation\n * pages, so a demo visitor can sign in or accept an invitation — a successful one\n * replaces the demo session. Default `false`: on `/demo` a live demo continues instead\n * of starting a second one (§5.2), and on `/forgot-password` a demo has no password.\n */\n allowDemo?: boolean;\n /** Where a redirected session goes: the resume target —\n * `readLastVisitedPage(key, home)`. A safe `?next=` goes first. */\n fallback: string;\n /** The page. Left out, an `<Outlet />`: the component is a layout route around the\n * public pages, as in keksdose. */\n children?: ReactNode;\n}\n\n/**\n * Public pages a session skips (§3.1): a signed-in visitor at `/login` goes back into\n * the app, to a safe `?next=` when the URL carries one (a share invitation or a push\n * deep link opened with a live session in another tab — keksdose) and else to\n * `fallback`.\n *\n * A demo session passes where `allowDemo` says so (§5.6). Mount one wrapper with\n * `allowDemo` around `/login`, `/register` and the invitation pages, and one without\n * around `/demo` (and `/forgot-password`).\n */\nexport function RedirectIfAuthed({ session, allowDemo = false, fallback, children, loading }: RedirectIfAuthedProps) {\n const { search } = useLocation();\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\" || (session === \"demo\" && allowDemo)) {\n return children === undefined ? <Outlet /> : <>{children}</>;\n }\n const next = safeNextPath(new URLSearchParams(search).get(NEXT_PARAM));\n return <Navigate to={next ?? fallback} replace />;\n}\n"],"mappings":";AAmLoC,mBAAc,WAAd;AAnLpC,SAAS,iBAAiB;AAE1B,SAAS,UAAU,QAAQ,mBAAmB;AAE9C,SAAS,YAAY,mBAAmB;AAExC,SAAS,oBAAoB;AAqBtB,MAAM,aAAa;AAqBnB,SAAS,aAAa,KAA+C;AAC1E,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,OAAO,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;AACtE,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,KAAK,IAAI;AAC7B,QAAI,IAAI,WAAW,KAAM,QAAO;AAChC,WAAO,GAAG,IAAI,QAAQ,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI;AAAA,EAChD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAeO,MAAM,gCAAwD,OAAO,OAAO;AAAA,EACjF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,YAAY,UAAkB,SAA+B;AACpE,MAAI,OAAO,YAAY,SAAU,QAAO,IAAI,OAAO,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ;AAChH,MAAI,YAAY,IAAK,QAAO,aAAa;AACzC,QAAM,OAAO,QAAQ,SAAS,GAAG,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI;AAC5D,SAAO,aAAa,QAAQ,SAAS,WAAW,GAAG,IAAI,GAAG;AAC5D;AAGA,SAAS,WAAW,UAAkB,SAA0C;AAC9E,SAAO,CAAC,GAAG,+BAA+B,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,YAAY,UAAU,OAAO,CAAC;AACxG;AAqBO,SAAS,mBAAmB,EAAE,KAAK,UAAU,CAAC,GAAG,UAAU,KAAK,GAAiC;AACtG,QAAM,EAAE,UAAU,OAAO,IAAI,YAAY;AAGzC,QAAM,OAAO,CAAC,WAAW,WAAW,UAAU,OAAO;AACrD,YAAU,MAAM;AACd,QAAI,KAAM;AACV,gBAAY,KAAK,WAAW,MAAM;AAAA,EACpC,GAAG,CAAC,KAAK,UAAU,QAAQ,IAAI,CAAC;AAClC;AAUO,SAAS,oBAAoB,KAAa,WAA0B,MAAqB;AAC9F,SAAO,aAAa,WAAW,GAAG,CAAC,KAAK;AAC1C;AAIO,SAAS,qBAAqB,KAAmB;AACtD,MAAI,OAAO,WAAW,YAAa;AACnC,MAAI;AACF,WAAO,aAAa,WAAW,GAAG;AAAA,EACpC,QAAQ;AAAA,EAER;AACF;AA4BO,SAAS,UAAU,EAAE,SAAS,YAAY,SAAS,MAAM,QAAQ,GAAmB;AACzF,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,OAAQ,QAAO,gCAAG,mBAAQ;AAC1C,QAAM,SAAS,aAAa,UAAU;AACtC,SAAO,oBAAC,YAAS,IAAI,UAAU,WAAW,MAAM,SAAS,MAAM,SAAO,MAAC;AACzE;AAkCO,SAAS,iBAAiB,EAAE,SAAS,YAAY,OAAO,UAAU,UAAU,QAAQ,GAA0B;AACnH,QAAM,EAAE,OAAO,IAAI,YAAY;AAC/B,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,UAAW,YAAY,UAAU,WAAY;AAC3D,WAAO,aAAa,SAAY,oBAAC,UAAO,IAAK,gCAAG,UAAS;AAAA,EAC3D;AACA,QAAM,OAAO,aAAa,IAAI,gBAAgB,MAAM,EAAE,IAAI,UAAU,CAAC;AACrE,SAAO,oBAAC,YAAS,IAAI,QAAQ,UAAU,SAAO,MAAC;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../src/landing/routing.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { Navigate, Outlet, useLocation } from \"react-router\";\n\nimport { readStored, removeStored, writeStored } from \"../lib/safe-storage\";\nimport type { LandingSession } from \"./landing-actions\";\nimport { LoadingState } from \"../components/loading-state\";\n\n/**\n * 0.31.1: a session that is still being restored — an app whose access token lives in\n * memory reads it back from its refresh token first (kastlan's 0.31 adoption). Until\n * then `/` neither shows the landing nor resumes, and a public page neither shows nor\n * redirects: both render `loading` instead.\n */\nexport type RoutingSession = LandingSession | \"loading\";\n\n/**\n * The public routes' logic (docs/landing-demo-harmonization.md §3): what `/` shows,\n * which pages a session skips, and the page a session resumes on — keksdose's\n * `RootEntry`, `RedirectIfAuthed` and use-last-visited-page.ts, for every app.\n * Router-aware (react-router), so they belong to the `./shell` entry.\n */\n\n/* ── ?next= ──────────────────────────────────────────────────────────────── */\n\n/** The query parameter that carries \"where I was actually trying to go\" through the\n * sign-in bounce (keksdose's `NEXT_PARAM`). */\nexport const NEXT_PARAM = \"next\";\n\n/**\n * A `?next=` value that is safe to navigate to, or null.\n *\n * Same-origin PATHS only, decided by the URL PARSER rather than by string prefix —\n * this is the open-redirect check, and it is the reason this lives in one place\n * instead of at each call site.\n *\n * The prefix version (\"starts with `/`, does not start with `//`\") let two shapes\n * through that the browser resolves cross-origin, because the WHATWG parser does not\n * read them as text: a backslash after the leading slash counts as a second slash for\n * a special scheme, so `/\\evil.example` resolves to `https://evil.example/`; and tab,\n * LF and CR are STRIPPED anywhere in the input before parsing, so `/<TAB>/evil.example`\n * becomes `//evil.example`. Asking the same parser the browser will use closes every\n * such shape at once, including ones nobody has thought of yet, and it normalises what\n * comes back instead of echoing the caller's spelling.\n *\n * keksdose's (shared/hooks/use-last-visited-page.ts), verbatim but for the fallback\n * origin.\n */\nexport function safeNextPath(raw: string | null | undefined): string | null {\n if (!raw) return null;\n const base = typeof window !== \"undefined\" ? window.location.origin : \"https://kit.invalid\";\n try {\n const url = new URL(raw, base);\n if (url.origin !== base) return null;\n return `${url.pathname}${url.search}${url.hash}`;\n } catch {\n return null;\n }\n}\n\n/* ── The last visited page (§3.2) ────────────────────────────────────────── */\n\n/** A path to leave out: a string is the path and everything under it (`/demo` is\n * `/demo` and `/demo/ended`; `/` is only `/`), a RegExp is tested on the pathname. */\nexport type PathPattern = string | RegExp;\n\n/**\n * The pages never recorded as a resume target (§3.2): the landing (`/`, `/welcome`), the\n * auth pages, the demo's own (`/demo*`) and the legal pages. The 404 has no path of its\n * own — call {@link useLastVisitedPage} inside the signed-in layout, as keksdose does,\n * and it never sees one. The app adds its own one-shot routes (keksdose:\n * `/banks/callback`, `/join`, `/share-target`) through `exclude`.\n */\nexport const DEFAULT_LAST_VISITED_EXCLUDES: readonly PathPattern[] = Object.freeze([\n \"/\",\n \"/welcome\",\n \"/login\",\n \"/register\",\n \"/forgot-password\",\n \"/reset-password\",\n \"/verify-email\",\n \"/demo\",\n \"/impressum\",\n \"/privacy\",\n \"/terms\",\n]);\n\nfunction matchesPath(pathname: string, pattern: PathPattern): boolean {\n if (typeof pattern !== \"string\") return new RegExp(pattern.source, pattern.flags.replace(\"g\", \"\")).test(pathname);\n if (pattern === \"/\") return pathname === \"/\";\n const base = pattern.endsWith(\"/\") ? pattern.slice(0, -1) : pattern;\n return pathname === base || pathname.startsWith(`${base}/`);\n}\n\n/** Whether `pathname` is one of the defaults or the app's `exclude`. */\nfunction isExcluded(pathname: string, exclude: readonly PathPattern[]): boolean {\n return [...DEFAULT_LAST_VISITED_EXCLUDES, ...exclude].some((pattern) => matchesPath(pathname, pattern));\n}\n\nexport interface LastVisitedPageOptions {\n /** The device key: `<app>.lastVisitedPage` (§3.2), one per app on the origin. */\n key: string;\n /** The app's own paths to leave out, ON TOP of {@link DEFAULT_LAST_VISITED_EXCLUDES}. */\n exclude?: readonly PathPattern[];\n /** `false` records nothing — while the session is still being restored, say. */\n enabled?: boolean;\n}\n\n/**\n * Remember the page a session is on (path and query), on every navigation, so `/` — a\n * revisit, a fresh sign-in, the installed PWA, whose `start_url` is `/` — resumes there\n * (§3.2, keksdose feedback #59). Device-local, in `localStorage` under `key`; a blocked\n * storage records nothing.\n *\n * Call it once in the signed-in layout. The excluded paths are never written, so a\n * one-shot page (a bank callback, an invitation link) never becomes the place the next\n * launch opens on.\n */\nexport function useLastVisitedPage({ key, exclude = [], enabled = true }: LastVisitedPageOptions): void {\n const { pathname, search } = useLocation();\n // Decided here, so the effect depends on the answer and not on an `exclude` array the\n // caller likely builds inline.\n const skip = !enabled || isExcluded(pathname, exclude);\n useEffect(() => {\n if (skip) return;\n writeStored(key, pathname + search);\n }, [key, pathname, search, skip]);\n}\n\n/**\n * The page {@link useLastVisitedPage} remembered under `key` — checked by\n * {@link safeNextPath}, so a value someone planted in storage cannot leave the origin —\n * or `fallback` (default `null`) when there is none or storage is blocked. A string\n * fallback narrows the answer to a string, for react-router's `to`.\n */\nexport function readLastVisitedPage(key: string, fallback: string): string;\nexport function readLastVisitedPage(key: string, fallback?: null): string | null;\nexport function readLastVisitedPage(key: string, fallback: string | null = null): string | null {\n return safeNextPath(readStored(key)) ?? fallback;\n}\n\n/** Forget the remembered page — on an explicit sign-out, so the next account does not\n * resume on the previous one's page. */\nexport function clearLastVisitedPage(key: string): void {\n removeStored(key);\n}\n\n/* ── RootEntry ───────────────────────────────────────────────────────────── */\n\nexport interface RootEntryProps {\n /** Without a session `/` is the landing; with one (real or demo) it resumes;\n * `\"loading\"` while the app restores one. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /** The remembered page — `readLastVisitedPage(key)`. */\n resumePath?: string | null;\n /** The landing page element. */\n landing: ReactNode;\n /** The app's home: where a session goes with nothing to resume (keksdose `/budget`,\n * kastlan and Kurvenschmiede `/dashboard`). */\n home: string;\n}\n\n/**\n * The `/` route (§3.1): the landing for a visitor, and for a session — real or demo —\n * the last visited page, else the app's home. Indexed and canonical `/` for the visitor;\n * a crawler never has a session, so for it `/` is stable.\n *\n * keksdose showed a session with nothing remembered the landing; the contract sends it\n * home instead, because a session at `/` came to use the app. The landing stays one tap\n * away at `/welcome`, where the signed-in brand link points.\n */\nexport function RootEntry({ session, resumePath, landing, home, loading }: RootEntryProps) {\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\") return <>{landing}</>;\n const resume = safeNextPath(resumePath);\n return <Navigate to={resume && resume !== \"/\" ? resume : home} replace />;\n}\n\n/* ── RedirectIfAuthed ────────────────────────────────────────────────────── */\n\nexport interface RedirectIfAuthedProps {\n /** `\"loading\"` while the app restores a session: neither the page nor a redirect. */\n session: RoutingSession;\n /** What shows while `session` is `\"loading\"`. Default: the kit's `LoadingState`. */\n loading?: ReactNode;\n /**\n * Let a DEMO session through (§5.6): on `/login`, `/register` and the app's invitation\n * pages, so a demo visitor can sign in or accept an invitation — a successful one\n * replaces the demo session. Default `false`: on `/demo` a live demo continues instead\n * of starting a second one (§5.2), and on `/forgot-password` a demo has no password.\n */\n allowDemo?: boolean;\n /** Where a redirected session goes: the resume target —\n * `readLastVisitedPage(key, home)`. A safe `?next=` goes first. */\n fallback: string;\n /** The page. Left out, an `<Outlet />`: the component is a layout route around the\n * public pages, as in keksdose. */\n children?: ReactNode;\n}\n\n/**\n * Public pages a session skips (§3.1): a signed-in visitor at `/login` goes back into\n * the app, to a safe `?next=` when the URL carries one (a share invitation or a push\n * deep link opened with a live session in another tab — keksdose) and else to\n * `fallback`.\n *\n * A demo session passes where `allowDemo` says so (§5.6). Mount one wrapper with\n * `allowDemo` around `/login`, `/register` and the invitation pages, and one without\n * around `/demo` (and `/forgot-password`).\n */\nexport function RedirectIfAuthed({ session, allowDemo = false, fallback, children, loading }: RedirectIfAuthedProps) {\n const { search } = useLocation();\n if (session === \"loading\") return <>{loading ?? <LoadingState />}</>;\n if (session === \"none\" || (session === \"demo\" && allowDemo)) {\n return children === undefined ? <Outlet /> : <>{children}</>;\n }\n const next = safeNextPath(new URLSearchParams(search).get(NEXT_PARAM));\n return <Navigate to={next ?? fallback} replace />;\n}\n"],"mappings":";AA8KoC,mBAAc,WAAd;AA9KpC,SAAS,iBAAiB;AAE1B,SAAS,UAAU,QAAQ,mBAAmB;AAE9C,SAAS,YAAY,cAAc,mBAAmB;AAEtD,SAAS,oBAAoB;AAqBtB,MAAM,aAAa;AAqBnB,SAAS,aAAa,KAA+C;AAC1E,MAAI,CAAC,IAAK,QAAO;AACjB,QAAM,OAAO,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;AACtE,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,KAAK,IAAI;AAC7B,QAAI,IAAI,WAAW,KAAM,QAAO;AAChC,WAAO,GAAG,IAAI,QAAQ,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI;AAAA,EAChD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAeO,MAAM,gCAAwD,OAAO,OAAO;AAAA,EACjF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,YAAY,UAAkB,SAA+B;AACpE,MAAI,OAAO,YAAY,SAAU,QAAO,IAAI,OAAO,QAAQ,QAAQ,QAAQ,MAAM,QAAQ,KAAK,EAAE,CAAC,EAAE,KAAK,QAAQ;AAChH,MAAI,YAAY,IAAK,QAAO,aAAa;AACzC,QAAM,OAAO,QAAQ,SAAS,GAAG,IAAI,QAAQ,MAAM,GAAG,EAAE,IAAI;AAC5D,SAAO,aAAa,QAAQ,SAAS,WAAW,GAAG,IAAI,GAAG;AAC5D;AAGA,SAAS,WAAW,UAAkB,SAA0C;AAC9E,SAAO,CAAC,GAAG,+BAA+B,GAAG,OAAO,EAAE,KAAK,CAAC,YAAY,YAAY,UAAU,OAAO,CAAC;AACxG;AAqBO,SAAS,mBAAmB,EAAE,KAAK,UAAU,CAAC,GAAG,UAAU,KAAK,GAAiC;AACtG,QAAM,EAAE,UAAU,OAAO,IAAI,YAAY;AAGzC,QAAM,OAAO,CAAC,WAAW,WAAW,UAAU,OAAO;AACrD,YAAU,MAAM;AACd,QAAI,KAAM;AACV,gBAAY,KAAK,WAAW,MAAM;AAAA,EACpC,GAAG,CAAC,KAAK,UAAU,QAAQ,IAAI,CAAC;AAClC;AAUO,SAAS,oBAAoB,KAAa,WAA0B,MAAqB;AAC9F,SAAO,aAAa,WAAW,GAAG,CAAC,KAAK;AAC1C;AAIO,SAAS,qBAAqB,KAAmB;AACtD,eAAa,GAAG;AAClB;AA4BO,SAAS,UAAU,EAAE,SAAS,YAAY,SAAS,MAAM,QAAQ,GAAmB;AACzF,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,OAAQ,QAAO,gCAAG,mBAAQ;AAC1C,QAAM,SAAS,aAAa,UAAU;AACtC,SAAO,oBAAC,YAAS,IAAI,UAAU,WAAW,MAAM,SAAS,MAAM,SAAO,MAAC;AACzE;AAkCO,SAAS,iBAAiB,EAAE,SAAS,YAAY,OAAO,UAAU,UAAU,QAAQ,GAA0B;AACnH,QAAM,EAAE,OAAO,IAAI,YAAY;AAC/B,MAAI,YAAY,UAAW,QAAO,gCAAG,qBAAW,oBAAC,gBAAa,GAAG;AACjE,MAAI,YAAY,UAAW,YAAY,UAAU,WAAY;AAC3D,WAAO,aAAa,SAAY,oBAAC,UAAO,IAAK,gCAAG,UAAS;AAAA,EAC3D;AACA,QAAM,OAAO,aAAa,IAAI,gBAAgB,MAAM,EAAE,IAAI,UAAU,CAAC;AACrE,SAAO,oBAAC,YAAS,IAAI,QAAQ,UAAU,SAAO,MAAC;AACjD;","names":[]}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  /** Evaluate an arithmetic string, returning `null` if it isn't a valid sum.
10
10
  * Accepts the on-screen operator glyphs (`× ÷ −`) and comma decimals too. */
11
- declare function evaluateExpression(expr: string): number | null;
11
+ export declare function evaluateExpression(expr: string): number | null;
12
12
  /** True when `s` carries arithmetic beyond a single leading minus — i.e. a plain
13
13
  * number (or a lone negative like "-5") is NOT an expression, but "12+5" is.
14
14
  * Used to decide whether a field's text should be evaluated on commit.
@@ -18,7 +18,7 @@ declare function evaluateExpression(expr: string): number | null;
18
18
  * arithmetic went on to be read as a plain number — where the digits-only fallback
19
19
  * in {@link commitExpression} silently ate it, turning "-42−−50" (= 8) into a bare
20
20
  * 8 with no record that a sum had happened at all. */
21
- declare function looksLikeExpression(s: string): boolean;
21
+ export declare function looksLikeExpression(s: string): boolean;
22
22
  /** Render an evaluated number back to a field-friendly string, trimming binary
23
23
  * float noise (so 0.1 + 0.2 reads "0.3", not "0.30000000000000004").
24
24
  *
@@ -40,7 +40,7 @@ declare function looksLikeExpression(s: string): boolean;
40
40
  * The invariant, which the test asserts directly rather than by example:
41
41
  * **`commitExpression(formatResult(n))` equals `formatResult(n)` for every finite
42
42
  * `n`.** Anything rendered here has to survive being read back. */
43
- declare function formatResult(n: number): string;
43
+ export declare function formatResult(n: number): string;
44
44
  /** The single "on blur / Enter" transform a numeric field applies: evaluate the
45
45
  * text if it's an expression, otherwise normalise it to a bare number string
46
46
  * (comma → dot, dropping stray characters, non-leading minuses and anything after
@@ -54,7 +54,7 @@ declare function formatResult(n: number): string;
54
54
  * at the second dot ("1.2") rather than joined ("1.23"): with no keystroke to
55
55
  * ignore there is nothing to say which reading was meant, and the shorter one
56
56
  * cannot silently invent a bigger number. */
57
- declare function commitExpression(raw: string): string;
57
+ export declare function commitExpression(raw: string): string;
58
58
  /** The live, per-keystroke transform a numeric field applies: comma → dot and
59
59
  * drop anything that isn't a digit, decimal point, arithmetic operator (incl.
60
60
  * the on-screen `× ÷` glyphs) or paren — so a typed calculation survives
@@ -62,13 +62,13 @@ declare function commitExpression(raw: string): string;
62
62
  * `-` is kept — in a plain field it is simply a negative amount; in a field whose
63
63
  * caller owns the sign it is read off again by {@link splitLeadingSign}. The text
64
64
  * is resolved to a plain number on blur/Enter via {@link commitExpression}. */
65
- declare function sanitizeLive(raw: string): string;
65
+ export declare function sanitizeLive(raw: string): string;
66
66
  /** A bare, unsigned amount: digits with at most one decimal separator and nothing
67
67
  * else — "42", "42.", ".5", "0,5". NOT "" (an empty field has no figure to put a
68
68
  * sign in front of), not "-42", not "12+5". It is the only shape a DISPLAYED sign
69
69
  * prefix makes sense in front of; an expression carries its own arithmetic and has
70
70
  * to survive keystroke-for-keystroke. */
71
- declare function isBareAmount(s: string): boolean;
71
+ export declare function isBareAmount(s: string): boolean;
72
72
  /**
73
73
  * Split a LEADING sign off a plain signed number (Keksdose live #201 rework):
74
74
  * `"-42"` → `{ sign: "-", rest: "42" }`, everything else → `{ sign: "", rest: text }`.
@@ -81,9 +81,7 @@ declare function isBareAmount(s: string): boolean;
81
81
  * A lone "-" splits (rest ""): the sign is a statement about the direction the
82
82
  * moment it is typed, before any digit exists.
83
83
  */
84
- declare function splitLeadingSign(text: string): {
84
+ export declare function splitLeadingSign(text: string): {
85
85
  sign: "" | "-" | "+";
86
86
  rest: string;
87
87
  };
88
-
89
- export { commitExpression, evaluateExpression, formatResult, isBareAmount, looksLikeExpression, sanitizeLive, splitLeadingSign };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Re-snap every chip rendered with `snapEdges`, now. The kit already re-snaps when a
3
+ * chip renders, resizes, or the window or the ratio changes; call this after moving
4
+ * chips some other way (a side panel sliding in beside a table of status chips),
5
+ * since a move is not something an observer can see.
6
+ */
7
+ export declare function refreshChipEdges(): void;
8
+ /** The ref a chip hangs on its visible pill, plus a re-snap after every render (its
9
+ * label or its neighbours may have changed). */
10
+ export declare function useSnapEdges(on: boolean): (el: HTMLElement | null) => void;
@@ -0,0 +1,131 @@
1
+ "use client";
2
+ import { useCallback, useLayoutEffect, useRef } from "react";
3
+ function chipEdgeGrid(dpr) {
4
+ for (let n = 1; n <= 4; n++) if (Math.abs(n * dpr - Math.round(n * dpr)) < 1e-3) return n;
5
+ return 0;
6
+ }
7
+ function snappedChipEdgeWidth(natural, left, dpr) {
8
+ const n = chipEdgeGrid(dpr);
9
+ if (n <= 2) return natural;
10
+ const l = Math.round(left);
11
+ let w = Math.ceil(natural - 0.01);
12
+ while (((2 * l + w) % n + n) % n !== 0) w++;
13
+ return w;
14
+ }
15
+ const snapped = /* @__PURE__ */ new Set();
16
+ const written = /* @__PURE__ */ new WeakMap();
17
+ let snapFrame = 0;
18
+ let snapObserver = null;
19
+ let ratioQuery = null;
20
+ function clearOwn(el) {
21
+ const own = written.get(el);
22
+ if (own !== void 0 && el.style.minWidth === own) el.style.minWidth = "";
23
+ written.delete(el);
24
+ }
25
+ function refreshChipEdges() {
26
+ if (snapFrame) {
27
+ cancelAnimationFrame(snapFrame);
28
+ snapFrame = 0;
29
+ }
30
+ if (typeof window === "undefined" || !snapped.size) return;
31
+ const dpr = window.devicePixelRatio || 1;
32
+ const els = [...snapped];
33
+ for (const el of els) clearOwn(el);
34
+ const n = chipEdgeGrid(dpr);
35
+ if (n <= 2) return;
36
+ let pending = els;
37
+ for (let pass = 0; pass <= n && pending.length; pass++) {
38
+ const reads = pending.map((el) => {
39
+ const r = el.getBoundingClientRect();
40
+ const label = el.querySelector(".truncate-until-large");
41
+ if (!r.width || label && (label.scrollWidth > label.clientWidth || labelWraps(label))) return null;
42
+ const width = Math.round(r.width * 64) / 64;
43
+ const target = snappedChipEdgeWidth(width, r.left + window.scrollX, dpr);
44
+ return target === width ? null : target;
45
+ });
46
+ const next = [];
47
+ pending.forEach((el, i) => {
48
+ const target = reads[i];
49
+ if (target == null) return;
50
+ if (pass === n) {
51
+ clearOwn(el);
52
+ return;
53
+ }
54
+ const own = written.get(el);
55
+ const value = `${pass > 0 && own !== void 0 ? parseFloat(own) + 1 : target}px`;
56
+ el.style.minWidth = value;
57
+ written.set(el, value);
58
+ next.push(el);
59
+ });
60
+ pending = next;
61
+ }
62
+ }
63
+ function labelWraps(label) {
64
+ const line = Number.parseFloat(getComputedStyle(label).lineHeight);
65
+ return line > 0 && label.clientHeight > 1.5 * line;
66
+ }
67
+ function scheduleChipEdges() {
68
+ if (snapFrame || typeof requestAnimationFrame === "undefined") return;
69
+ snapFrame = requestAnimationFrame(() => {
70
+ snapFrame = 0;
71
+ refreshChipEdges();
72
+ });
73
+ }
74
+ function watchRatio() {
75
+ ratioQuery?.removeEventListener("change", onRatioChange);
76
+ ratioQuery = typeof window.matchMedia === "function" ? window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`) : null;
77
+ ratioQuery?.addEventListener("change", onRatioChange);
78
+ }
79
+ function onRatioChange() {
80
+ watchRatio();
81
+ scheduleChipEdges();
82
+ }
83
+ function registerSnap(el) {
84
+ if (snapped.has(el)) return;
85
+ if (!snapped.size) {
86
+ if (typeof ResizeObserver !== "undefined") snapObserver = new ResizeObserver(scheduleChipEdges);
87
+ window.addEventListener("resize", scheduleChipEdges);
88
+ watchRatio();
89
+ }
90
+ snapped.add(el);
91
+ snapObserver?.observe(el);
92
+ scheduleChipEdges();
93
+ }
94
+ function unregisterSnap(el) {
95
+ if (!snapped.delete(el)) return;
96
+ snapObserver?.unobserve(el);
97
+ clearOwn(el);
98
+ if (snapped.size) return;
99
+ snapObserver?.disconnect();
100
+ snapObserver = null;
101
+ window.removeEventListener("resize", scheduleChipEdges);
102
+ ratioQuery?.removeEventListener("change", onRatioChange);
103
+ ratioQuery = null;
104
+ }
105
+ function useSnapEdges(on) {
106
+ const node = useRef(null);
107
+ const ref = useCallback(
108
+ (el) => {
109
+ if (el === node.current) return;
110
+ const prev = node.current;
111
+ node.current = el;
112
+ if (prev) queueMicrotask(() => node.current !== prev && unregisterSnap(prev));
113
+ if (el && on) registerSnap(el);
114
+ },
115
+ [on]
116
+ );
117
+ useLayoutEffect(() => {
118
+ const el = node.current;
119
+ if (!el) return;
120
+ if (on) {
121
+ registerSnap(el);
122
+ scheduleChipEdges();
123
+ } else unregisterSnap(el);
124
+ });
125
+ return ref;
126
+ }
127
+ export {
128
+ refreshChipEdges,
129
+ useSnapEdges
130
+ };
131
+ //# sourceMappingURL=chip-edge-snap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/chip-edge-snap.ts"],"sourcesContent":["// Chip's edge snapping: the module-level engine (one ResizeObserver, one `resize`\n// listener and one resolution query for every snapped chip on the page, and the state\n// they share) and the hook a chip hangs it on. Moved out of components/chip.tsx as it\n// was (MOD-9, refactor audit 2026-10); chip.tsx still exports `refreshChipEdges`.\nimport { useCallback, useLayoutEffect, useRef } from \"react\";\n\n/* ── Edge snapping (fractional device-pixel ratios) ──────────────────────────\n *\n * WHY. At a device-pixel ratio of 1.25 (a 125 % Windows display, or 125 % browser\n * zoom) Chrome snaps a box to whole CSS pixels and only then scales it, so a 1px\n * border is 1.25 device pixels wide and starts at a quarter-pixel phase that depends\n * on where the edge lands. A chip's left edge follows whatever stands before it, its\n * right edge follows its own text, so the two land on unrelated phases: one rasterises\n * as a crisp pixel, the other as a two-pixel smear at half strength — and a 60 %-alpha\n * border (`--danger-border`) makes the smeared side read as a THINNER line (keksdose\n * dev #576).\n *\n * WHAT FIXES IT. The two edges rasterise as mirror images exactly when their device\n * positions sum to a whole number: `(2·left + width) · dpr` integral, `left` being the\n * edge's snapped CSS x. Rounding the WIDTH alone to the ratio's grid (4px at 1.25)\n * makes the phases EQUAL, which is not the same thing: measured with keksdose's\n * playwright harness across every left phase at 1.25, width-only rounding mirrored the\n * edges at two of the four phases and left the other two as lopsided as before (mean\n * peak asymmetry 16.5, worse than the unsnapped 10.9 a random width gets by luck); the\n * position-aware width below took it to 0 at every phase. Inset rings, whole-pixel\n * starts, compositing hints and fractional border widths were measured by keksdose\n * and do not help — Chrome rounds a sub-pixel border back up to 1px.\n *\n * So the fix needs the chip's position, which is why it is opt-in (`snapEdges`): it\n * reads layout. Cheaply — every snapped chip on the page shares one ResizeObserver,\n * one `resize` listener and one resolution media query, and a pass is batched into a\n * frame as read-all / write-all, not a forced layout per chip. At an integer ratio,\n * and at a half one (1.5, 2.5: grid 2 — measured symmetric already, both edges a\n * pixel and a half on the same pattern), there is nothing to fix and a pass\n * writes nothing.\n */\n\n/** The smallest whole CSS-pixel count `n` with `n × dpr` whole — 4 at 1.25, 2 at 1.5,\n * 1 at an integer ratio. 0 for a ratio no step up to 4px fits (110 % zoom wants 10px;\n * a chip growing by up to 9px is a layout change, not a hairline fix). */\nfunction chipEdgeGrid(dpr: number): number {\n for (let n = 1; n <= 4; n++) if (Math.abs(n * dpr - Math.round(n * dpr)) < 1e-3) return n;\n return 0;\n}\n\n/**\n * The width (whole CSS px, at least `natural`) that mirrors a box's two edges at\n * `dpr`, for a box whose left edge sits at CSS x `left`. `natural` back when the ratio\n * needs nothing.\n */\nfunction snappedChipEdgeWidth(natural: number, left: number, dpr: number): number {\n const n = chipEdgeGrid(dpr);\n if (n <= 2) return natural;\n const l = Math.round(left);\n // A hair under a whole pixel is that pixel: 59.999 is a 60px chip, not a 61px one.\n let w = Math.ceil(natural - 0.01);\n while ((((2 * l + w) % n) + n) % n !== 0) w++;\n return w;\n}\n\nconst snapped = new Set<HTMLElement>();\n/** The min-width each chip was given by a pass — so a pass only ever clears its own. */\nconst written = new WeakMap<HTMLElement, string>();\nlet snapFrame = 0;\nlet snapObserver: ResizeObserver | null = null;\nlet ratioQuery: MediaQueryList | null = null;\n\nfunction clearOwn(el: HTMLElement) {\n const own = written.get(el);\n if (own !== undefined && el.style.minWidth === own) el.style.minWidth = \"\";\n written.delete(el);\n}\n\n/**\n * Re-snap every chip rendered with `snapEdges`, now. The kit already re-snaps when a\n * chip renders, resizes, or the window or the ratio changes; call this after moving\n * chips some other way (a side panel sliding in beside a table of status chips),\n * since a move is not something an observer can see.\n */\nexport function refreshChipEdges(): void {\n if (snapFrame) {\n cancelAnimationFrame(snapFrame);\n snapFrame = 0;\n }\n if (typeof window === \"undefined\" || !snapped.size) return;\n const dpr = window.devicePixelRatio || 1;\n const els = [...snapped];\n // Write: back to the natural width, so what is read below is the chip, not our pin.\n for (const el of els) clearOwn(el);\n const n = chipEdgeGrid(dpr);\n if (n <= 2) return;\n // A chip whose own end decides where it starts (RTL, `justify-end`) moves when it\n // grows, so a pass re-reads what it wrote and steps on by a pixel until the edges\n // agree — `n` steps cover every residue. Each pass is ONE layout for every chip\n // together. A chip that never agrees (a centred one moves both edges at once) is\n // given its natural width back rather than kept wider for nothing.\n let pending = els;\n for (let pass = 0; pass <= n && pending.length; pass++) {\n const reads = pending.map((el) => {\n const r = el.getBoundingClientRect();\n // The text label (chip.tsx's CHIP_LABEL_TRUNCATE; `.truncate` before 0.33).\n const label = el.querySelector<HTMLElement>(\".truncate-until-large\");\n // Not laid out (a hidden ancestor, jsdom), or truncated at its container's edge,\n // where a wider chip would overflow: leave it alone. So too a label wrapped onto\n // a second line at Large (0.32.1): the chip is already as wide as its row lets it\n // be, and a min-width past that would push it over the edge just the same.\n if (!r.width || (label && (label.scrollWidth > label.clientWidth || labelWraps(label)))) return null;\n const width = Math.round(r.width * 64) / 64;\n const target = snappedChipEdgeWidth(width, r.left + window.scrollX, dpr);\n return target === width ? null : target;\n });\n const next: HTMLElement[] = [];\n pending.forEach((el, i) => {\n const target = reads[i];\n if (target == null) return;\n if (pass === n) {\n clearOwn(el);\n return;\n }\n const own = written.get(el);\n const value = `${pass > 0 && own !== undefined ? parseFloat(own) + 1 : target}px`;\n el.style.minWidth = value;\n written.set(el, value);\n next.push(el);\n });\n pending = next;\n }\n}\n\n/** Whether a chip's label runs to more than one line — taller than one and a half of\n * its line height. A line height of `normal` (no number to compare) counts as one line. */\nfunction labelWraps(label: HTMLElement): boolean {\n const line = Number.parseFloat(getComputedStyle(label).lineHeight);\n return line > 0 && label.clientHeight > 1.5 * line;\n}\n\nfunction scheduleChipEdges() {\n if (snapFrame || typeof requestAnimationFrame === \"undefined\") return;\n snapFrame = requestAnimationFrame(() => {\n snapFrame = 0;\n refreshChipEdges();\n });\n}\n\n/** The resolution query for the CURRENT ratio: it stops matching when the ratio\n * changes (a window dragged to another display), which a `resize` need not fire. */\nfunction watchRatio() {\n ratioQuery?.removeEventListener(\"change\", onRatioChange);\n ratioQuery =\n typeof window.matchMedia === \"function\"\n ? window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`)\n : null;\n ratioQuery?.addEventListener(\"change\", onRatioChange);\n}\n\nfunction onRatioChange() {\n watchRatio();\n scheduleChipEdges();\n}\n\nfunction registerSnap(el: HTMLElement) {\n if (snapped.has(el)) return;\n if (!snapped.size) {\n if (typeof ResizeObserver !== \"undefined\") snapObserver = new ResizeObserver(scheduleChipEdges);\n window.addEventListener(\"resize\", scheduleChipEdges);\n watchRatio();\n }\n snapped.add(el);\n snapObserver?.observe(el);\n scheduleChipEdges();\n}\n\nfunction unregisterSnap(el: HTMLElement) {\n if (!snapped.delete(el)) return;\n snapObserver?.unobserve(el);\n clearOwn(el);\n if (snapped.size) return;\n snapObserver?.disconnect();\n snapObserver = null;\n window.removeEventListener(\"resize\", scheduleChipEdges);\n ratioQuery?.removeEventListener(\"change\", onRatioChange);\n ratioQuery = null;\n}\n\n/** The ref a chip hangs on its visible pill, plus a re-snap after every render (its\n * label or its neighbours may have changed). */\nexport function useSnapEdges(on: boolean) {\n const node = useRef<HTMLElement | null>(null);\n const ref = useCallback(\n (el: HTMLElement | null) => {\n if (el === node.current) return;\n const prev = node.current;\n node.current = el;\n // React detaches and re-attaches a ref whose callback changed identity (a\n // consumer's inline ref) — the same element, a moment apart. Unregistering on\n // the detach would clear the pin and paint one frame unsnapped, so the drop\n // waits a microtask and is skipped if the element came straight back.\n if (prev) queueMicrotask(() => node.current !== prev && unregisterSnap(prev));\n if (el && on) registerSnap(el);\n },\n [on],\n );\n useLayoutEffect(() => {\n const el = node.current;\n if (!el) return;\n if (on) {\n registerSnap(el);\n scheduleChipEdges();\n } else unregisterSnap(el);\n });\n return ref;\n}\n"],"mappings":";AAIA,SAAS,aAAa,iBAAiB,cAAc;AAoCrD,SAAS,aAAa,KAAqB;AACzC,WAAS,IAAI,GAAG,KAAK,GAAG,IAAK,KAAI,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAM,QAAO;AACxF,SAAO;AACT;AAOA,SAAS,qBAAqB,SAAiB,MAAc,KAAqB;AAChF,QAAM,IAAI,aAAa,GAAG;AAC1B,MAAI,KAAK,EAAG,QAAO;AACnB,QAAM,IAAI,KAAK,MAAM,IAAI;AAEzB,MAAI,IAAI,KAAK,KAAK,UAAU,IAAI;AAChC,WAAU,IAAI,IAAI,KAAK,IAAK,KAAK,MAAM,EAAG;AAC1C,SAAO;AACT;AAEA,MAAM,UAAU,oBAAI,IAAiB;AAErC,MAAM,UAAU,oBAAI,QAA6B;AACjD,IAAI,YAAY;AAChB,IAAI,eAAsC;AAC1C,IAAI,aAAoC;AAExC,SAAS,SAAS,IAAiB;AACjC,QAAM,MAAM,QAAQ,IAAI,EAAE;AAC1B,MAAI,QAAQ,UAAa,GAAG,MAAM,aAAa,IAAK,IAAG,MAAM,WAAW;AACxE,UAAQ,OAAO,EAAE;AACnB;AAQO,SAAS,mBAAyB;AACvC,MAAI,WAAW;AACb,yBAAqB,SAAS;AAC9B,gBAAY;AAAA,EACd;AACA,MAAI,OAAO,WAAW,eAAe,CAAC,QAAQ,KAAM;AACpD,QAAM,MAAM,OAAO,oBAAoB;AACvC,QAAM,MAAM,CAAC,GAAG,OAAO;AAEvB,aAAW,MAAM,IAAK,UAAS,EAAE;AACjC,QAAM,IAAI,aAAa,GAAG;AAC1B,MAAI,KAAK,EAAG;AAMZ,MAAI,UAAU;AACd,WAAS,OAAO,GAAG,QAAQ,KAAK,QAAQ,QAAQ,QAAQ;AACtD,UAAM,QAAQ,QAAQ,IAAI,CAAC,OAAO;AAChC,YAAM,IAAI,GAAG,sBAAsB;AAEnC,YAAM,QAAQ,GAAG,cAA2B,uBAAuB;AAKnE,UAAI,CAAC,EAAE,SAAU,UAAU,MAAM,cAAc,MAAM,eAAe,WAAW,KAAK,GAAK,QAAO;AAChG,YAAM,QAAQ,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI;AACzC,YAAM,SAAS,qBAAqB,OAAO,EAAE,OAAO,OAAO,SAAS,GAAG;AACvE,aAAO,WAAW,QAAQ,OAAO;AAAA,IACnC,CAAC;AACD,UAAM,OAAsB,CAAC;AAC7B,YAAQ,QAAQ,CAAC,IAAI,MAAM;AACzB,YAAM,SAAS,MAAM,CAAC;AACtB,UAAI,UAAU,KAAM;AACpB,UAAI,SAAS,GAAG;AACd,iBAAS,EAAE;AACX;AAAA,MACF;AACA,YAAM,MAAM,QAAQ,IAAI,EAAE;AAC1B,YAAM,QAAQ,GAAG,OAAO,KAAK,QAAQ,SAAY,WAAW,GAAG,IAAI,IAAI,MAAM;AAC7E,SAAG,MAAM,WAAW;AACpB,cAAQ,IAAI,IAAI,KAAK;AACrB,WAAK,KAAK,EAAE;AAAA,IACd,CAAC;AACD,cAAU;AAAA,EACZ;AACF;AAIA,SAAS,WAAW,OAA6B;AAC/C,QAAM,OAAO,OAAO,WAAW,iBAAiB,KAAK,EAAE,UAAU;AACjE,SAAO,OAAO,KAAK,MAAM,eAAe,MAAM;AAChD;AAEA,SAAS,oBAAoB;AAC3B,MAAI,aAAa,OAAO,0BAA0B,YAAa;AAC/D,cAAY,sBAAsB,MAAM;AACtC,gBAAY;AACZ,qBAAiB;AAAA,EACnB,CAAC;AACH;AAIA,SAAS,aAAa;AACpB,cAAY,oBAAoB,UAAU,aAAa;AACvD,eACE,OAAO,OAAO,eAAe,aACzB,OAAO,WAAW,gBAAgB,OAAO,oBAAoB,CAAC,OAAO,IACrE;AACN,cAAY,iBAAiB,UAAU,aAAa;AACtD;AAEA,SAAS,gBAAgB;AACvB,aAAW;AACX,oBAAkB;AACpB;AAEA,SAAS,aAAa,IAAiB;AACrC,MAAI,QAAQ,IAAI,EAAE,EAAG;AACrB,MAAI,CAAC,QAAQ,MAAM;AACjB,QAAI,OAAO,mBAAmB,YAAa,gBAAe,IAAI,eAAe,iBAAiB;AAC9F,WAAO,iBAAiB,UAAU,iBAAiB;AACnD,eAAW;AAAA,EACb;AACA,UAAQ,IAAI,EAAE;AACd,gBAAc,QAAQ,EAAE;AACxB,oBAAkB;AACpB;AAEA,SAAS,eAAe,IAAiB;AACvC,MAAI,CAAC,QAAQ,OAAO,EAAE,EAAG;AACzB,gBAAc,UAAU,EAAE;AAC1B,WAAS,EAAE;AACX,MAAI,QAAQ,KAAM;AAClB,gBAAc,WAAW;AACzB,iBAAe;AACf,SAAO,oBAAoB,UAAU,iBAAiB;AACtD,cAAY,oBAAoB,UAAU,aAAa;AACvD,eAAa;AACf;AAIO,SAAS,aAAa,IAAa;AACxC,QAAM,OAAO,OAA2B,IAAI;AAC5C,QAAM,MAAM;AAAA,IACV,CAAC,OAA2B;AAC1B,UAAI,OAAO,KAAK,QAAS;AACzB,YAAM,OAAO,KAAK;AAClB,WAAK,UAAU;AAKf,UAAI,KAAM,gBAAe,MAAM,KAAK,YAAY,QAAQ,eAAe,IAAI,CAAC;AAC5E,UAAI,MAAM,GAAI,cAAa,EAAE;AAAA,IAC/B;AAAA,IACA,CAAC,EAAE;AAAA,EACL;AACA,kBAAgB,MAAM;AACpB,UAAM,KAAK,KAAK;AAChB,QAAI,CAAC,GAAI;AACT,QAAI,IAAI;AACN,mBAAa,EAAE;AACf,wBAAkB;AAAA,IACpB,MAAO,gBAAe,EAAE;AAAA,EAC1B,CAAC;AACD,SAAO;AACT;","names":[]}
@@ -13,13 +13,11 @@
13
13
  * (DataTable's body, Table's wrapper) carry the marker, so the answer is the same in
14
14
  * both; an app marks its own with `{ [CLIPS_ATTRIBUTE]: "" }` or a literal `data-clips`.
15
15
  */
16
- declare const CLIPS_ATTRIBUTE = "data-clips";
16
+ export declare const CLIPS_ATTRIBUTE = "data-clips";
17
17
  /** Whether anything between `el` and `<body>` clips or scrolls its content — the
18
18
  * containers an absolutely positioned bubble would be cut off by, or would widen.
19
19
  * Either the computed `overflow` says so or the element carries
20
20
  * {@link CLIPS_ATTRIBUTE}. `<body>` and `<html>` are not counted: their `overflow`
21
21
  * belongs to the viewport (a dialog's scroll lock sets it), and the viewport clips a
22
22
  * portalled bubble just the same. */
23
- declare function hasClippingAncestor(el: Element | null): boolean;
24
-
25
- export { CLIPS_ATTRIBUTE, hasClippingAncestor };
23
+ export declare function hasClippingAncestor(el: Element | null): boolean;
package/dist/lib/cn.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { clsx } from 'clsx';
2
-
1
+ import { clsx } from "clsx";
3
2
  /** Merge class lists with Tailwind conflict resolution (later wins). */
4
- declare const cn: (...inputs: Parameters<typeof clsx>) => string;
5
-
6
- export { cn };
3
+ export declare const cn: (...inputs: Parameters<typeof clsx>) => string;
package/dist/lib/cn.js CHANGED
@@ -1,7 +1,12 @@
1
1
  "use client";
2
2
  import { clsx } from "clsx";
3
3
  import { extendTailwindMerge } from "tailwind-merge";
4
- const merge = extendTailwindMerge({ extend: { theme: { text: ["micro", "caption"] } } });
4
+ const merge = extendTailwindMerge({
5
+ extend: {
6
+ theme: { text: ["micro", "caption"] },
7
+ classGroups: { "ring-w": [{ ring: ["focus"] }], "outline-w": [{ outline: ["focus"] }] }
8
+ }
9
+ });
5
10
  const cn = (...inputs) => merge(clsx(inputs));
6
11
  export {
7
12
  cn
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/cn.ts"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/**\n * tailwind-merge, told about the kit's own font sizes (docs/text-size-harmonization.md\n * §3.2): `text-micro` and `text-caption` are `@theme` sizes in tokens.css, which\n * tailwind-merge cannot see. Unknown, a `text-<word>` is taken for a COLOUR, so\n * `cn(\"text-caption text-[var(--text-muted)]\")` dropped the size — the later colour\n * \"won\" over it — and `cn(\"text-xs\", \"text-caption\")` kept both sizes. Registered as\n * sizes, they merge like `text-xs`: a later size replaces an earlier one, a colour sits\n * beside them.\n */\nconst merge = extendTailwindMerge({ extend: { theme: { text: [\"micro\", \"caption\"] } } });\n\n/** Merge class lists with Tailwind conflict resolution (later wins). */\nexport const cn = (...inputs: Parameters<typeof clsx>) => merge(clsx(inputs));\n"],"mappings":";AAAA,SAAS,YAAY;AACrB,SAAS,2BAA2B;AAWpC,MAAM,QAAQ,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC;AAGhF,MAAM,KAAK,IAAI,WAAoC,MAAM,KAAK,MAAM,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/lib/cn.ts"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\n/**\n * tailwind-merge, told about the kit's own font sizes (docs/text-size-harmonization.md\n * §3.2): `text-micro` and `text-caption` are `@theme` sizes in tokens.css, which\n * tailwind-merge cannot see. Unknown, a `text-<word>` is taken for a COLOUR, so\n * `cn(\"text-caption text-[var(--text-muted)]\")` dropped the size — the later colour\n * \"won\" over it — and `cn(\"text-xs\", \"text-caption\")` kept both sizes. Registered as\n * sizes, they merge like `text-xs`: a later size replaces an earlier one, a colour sits\n * beside them.\n *\n * The same for the focus frame's width (0.34, refactor audit DOC-7): `ring-focus` and\n * `outline-focus` are `@theme inline` WIDTHS, and unknown, a `ring-<word>` is taken for a\n * colour — so `cn(FOCUS_RING, \"focus-visible:ring-strong\")` dropped the width and the\n * ring was gone. Registered as widths, they merge like `ring-2` / `outline-2`, as the\n * arbitrary `length:` widths they replaced did. (No class is spelt out here: an app's\n * Tailwind scans the built source maps too, and would generate it.)\n */\nconst merge = extendTailwindMerge({\n extend: {\n theme: { text: [\"micro\", \"caption\"] },\n classGroups: { \"ring-w\": [{ ring: [\"focus\"] }], \"outline-w\": [{ outline: [\"focus\"] }] },\n },\n});\n\n/** Merge class lists with Tailwind conflict resolution (later wins). */\nexport const cn = (...inputs: Parameters<typeof clsx>) => merge(clsx(inputs));\n"],"mappings":";AAAA,SAAS,YAAY;AACrB,SAAS,2BAA2B;AAkBpC,MAAM,QAAQ,oBAAoB;AAAA,EAChC,QAAQ;AAAA,IACN,OAAO,EAAE,MAAM,CAAC,SAAS,SAAS,EAAE;AAAA,IACpC,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;AAAA,EACxF;AACF,CAAC;AAGM,MAAM,KAAK,IAAI,WAAoC,MAAM,KAAK,MAAM,CAAC;","names":[]}