@eifi1/ui-kit 0.33.1 → 0.35.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 (1559) hide show
  1. package/README.md +512 -306
  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 +12 -110
  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 +12 -110
  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 +64 -111
  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 +6 -108
  222. package/dist/components/calculator.js +8 -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 +2 -205
  238. package/dist/components/chart-zoom.js +2 -330
  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 +69 -0
  250. package/dist/components/chip-input.js +220 -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 +15 -160
  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 +74 -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 +58 -0
  295. package/dist/components/currency-option-list.js +107 -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 +40 -23
  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 +83 -15
  322. package/dist/components/data-table-labels.js +4 -29
  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 +93 -0
  340. package/dist/components/data-table-shared.js +99 -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 +613 -15
  344. package/dist/components/data-table.js +150 -939
  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 +10 -12
  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 +61 -30
  371. package/dist/components/dropdown.js +61 -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 +11 -12
  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 +255 -0
  389. package/dist/components/field-base.js +223 -0
  390. package/dist/components/field-base.js.map +1 -0
  391. package/dist/components/field-parts.d.ts +180 -87
  392. package/dist/components/field-parts.js +52 -33
  393. package/dist/components/field-parts.js.map +1 -1
  394. package/dist/components/field-strip.d.ts +12 -36
  395. package/dist/components/field-strip.js +24 -22
  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 +16 -19
  401. package/dist/components/field-sync.js +4 -14
  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 +12 -18
  437. package/dist/components/hover-menu.js +19 -18
  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 +34 -18
  524. package/dist/components/modal.js +13 -13
  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 +74 -25
  542. package/dist/components/multi-select.js +166 -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 +28 -112
  551. package/dist/components/number-input.js +33 -67
  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 +29 -26
  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 +50 -120
  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 +21 -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 +11 -39
  703. package/dist/components/swipeable-row.js +13 -18
  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 +24 -15
  742. package/dist/components/tooltip.js +24 -14
  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 +35 -25
  752. package/dist/components/translation-review.js +24 -13
  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 +182 -15
  765. package/dist/components/use-table-state.js +53 -8
  766. package/dist/components/use-table-state.js.map +1 -1
  767. package/dist/components/user-avatar.d.ts +10 -23
  768. package/dist/components/user-avatar.js +1 -1
  769. package/dist/components/user-avatar.js.map +1 -1
  770. package/dist/components/wizard-stepper.d.ts +4 -7
  771. package/dist/components/wizard-stepper.js +3 -3
  772. package/dist/components/wizard-stepper.js.map +1 -1
  773. package/dist/components/write-lock-labels.d.ts +2 -0
  774. package/dist/components/write-lock-labels.js +8 -0
  775. package/dist/components/write-lock-labels.js.map +1 -0
  776. package/dist/components/write-lock.d.ts +16 -18
  777. package/dist/components/write-lock.js +4 -8
  778. package/dist/components/write-lock.js.map +1 -1
  779. package/dist/currencies.d.ts +23 -0
  780. package/dist/currencies.js +38 -0
  781. package/dist/currencies.js.map +1 -0
  782. package/dist/data-table.d.ts +10 -18
  783. package/dist/data-table.js.map +1 -1
  784. package/dist/demo/demo-banner.d.ts +15 -13
  785. package/dist/demo/demo-banner.js +5 -19
  786. package/dist/demo/demo-banner.js.map +1 -1
  787. package/dist/demo/demo-countdown.d.ts +7 -9
  788. package/dist/demo/demo-ended.d.ts +10 -13
  789. package/dist/demo/demo-ended.js +4 -4
  790. package/dist/demo/demo-ended.js.map +1 -1
  791. package/dist/demo/demo-labels.d.ts +4 -5
  792. package/dist/demo/demo-labels.js.map +1 -1
  793. package/dist/demo/demo-session.d.ts +3 -5
  794. package/dist/demo/demo-start.d.ts +8 -11
  795. package/dist/demo/demo-start.js +3 -2
  796. package/dist/demo/demo-start.js.map +1 -1
  797. package/dist/eslint/index.d.ts +83 -0
  798. package/dist/eslint/index.js +69 -0
  799. package/dist/eslint/index.js.map +1 -0
  800. package/dist/eslint/role-utilities.d.ts +48 -0
  801. package/dist/eslint/role-utilities.generated.d.ts +2 -0
  802. package/dist/eslint/role-utilities.generated.js +143 -0
  803. package/dist/eslint/role-utilities.generated.js.map +1 -0
  804. package/dist/eslint/role-utilities.js +43 -0
  805. package/dist/eslint/role-utilities.js.map +1 -0
  806. package/dist/feedback/feedback-attachment-labels.d.ts +16 -0
  807. package/dist/feedback/feedback-attachment-labels.js +17 -0
  808. package/dist/feedback/feedback-attachment-labels.js.map +1 -0
  809. package/dist/feedback/feedback-attachment.d.ts +312 -101
  810. package/dist/feedback/feedback-attachment.js +31 -42
  811. package/dist/feedback/feedback-attachment.js.map +1 -1
  812. package/dist/feedback/feedback-capture.d.ts +2 -4
  813. package/dist/feedback/feedback-context-labels.d.ts +2 -0
  814. package/dist/feedback/feedback-context-labels.js +9 -0
  815. package/dist/feedback/feedback-context-labels.js.map +1 -0
  816. package/dist/feedback/feedback-context.d.ts +110 -101
  817. package/dist/feedback/feedback-context.js +4 -7
  818. package/dist/feedback/feedback-context.js.map +1 -1
  819. package/dist/feedback/feedback-crash.d.ts +8 -110
  820. package/dist/feedback/feedback-dialog-labels.d.ts +12 -0
  821. package/dist/feedback/feedback-dialog-labels.js +17 -0
  822. package/dist/feedback/feedback-dialog-labels.js.map +1 -0
  823. package/dist/feedback/feedback-dialog.d.ts +186 -101
  824. package/dist/feedback/feedback-dialog.js +8 -18
  825. package/dist/feedback/feedback-dialog.js.map +1 -1
  826. package/dist/feedback/feedback-inbox.d.ts +236 -101
  827. package/dist/feedback/feedback-inbox.js +31 -141
  828. package/dist/feedback/feedback-inbox.js.map +1 -1
  829. package/dist/feedback/feedback-labels.d.ts +83 -101
  830. package/dist/feedback/feedback-labels.js.map +1 -1
  831. package/dist/feedback/feedback-menu-labels.d.ts +2 -0
  832. package/dist/feedback/feedback-menu-labels.js +10 -0
  833. package/dist/feedback/feedback-menu-labels.js.map +1 -0
  834. package/dist/feedback/feedback-menu.d.ts +83 -101
  835. package/dist/feedback/feedback-menu.js +3 -7
  836. package/dist/feedback/feedback-menu.js.map +1 -1
  837. package/dist/feedback/feedback-record.d.ts +239 -101
  838. package/dist/feedback/feedback-record.js +7 -2
  839. package/dist/feedback/feedback-record.js.map +1 -1
  840. package/dist/feedback/feedback-row-detail-labels.d.ts +2 -0
  841. package/dist/feedback/feedback-row-detail-labels.js +31 -0
  842. package/dist/feedback/feedback-row-detail-labels.js.map +1 -0
  843. package/dist/feedback/feedback-row-detail.d.ts +315 -101
  844. package/dist/feedback/feedback-row-detail.js +11 -37
  845. package/dist/feedback/feedback-row-detail.js.map +1 -1
  846. package/dist/feedback/feedback-status-undo.d.ts +66 -101
  847. package/dist/feedback/feedback-status-undo.js.map +1 -1
  848. package/dist/feedback/feedback-submit-dialog.d.ts +39 -0
  849. package/dist/feedback/feedback-submit-dialog.js +66 -0
  850. package/dist/feedback/feedback-submit-dialog.js.map +1 -0
  851. package/dist/feedback/feedback-submit.d.ts +13 -109
  852. package/dist/feedback/feedback-submit.js +19 -40
  853. package/dist/feedback/feedback-submit.js.map +1 -1
  854. package/dist/feedback/feedback-swipe.d.ts +9 -110
  855. package/dist/feedback/feedback-swipe.js +1 -1
  856. package/dist/feedback/feedback-swipe.js.map +1 -1
  857. package/dist/feedback/feedback-table-labels.d.ts +2 -0
  858. package/dist/feedback/feedback-table-labels.js +26 -0
  859. package/dist/feedback/feedback-table-labels.js.map +1 -0
  860. package/dist/feedback/feedback-table.d.ts +314 -101
  861. package/dist/feedback/feedback-table.js +11 -31
  862. package/dist/feedback/feedback-table.js.map +1 -1
  863. package/dist/feedback/feedback-thread-labels.d.ts +3 -0
  864. package/dist/feedback/feedback-thread-labels.js +21 -0
  865. package/dist/feedback/feedback-thread-labels.js.map +1 -0
  866. package/dist/feedback/feedback-thread.d.ts +373 -101
  867. package/dist/feedback/feedback-thread.js +26 -35
  868. package/dist/feedback/feedback-thread.js.map +1 -1
  869. package/dist/feedback/feedback-vocabulary.d.ts +98 -0
  870. package/dist/feedback/feedback-vocabulary.js +143 -0
  871. package/dist/feedback/feedback-vocabulary.js.map +1 -0
  872. package/dist/feedback.d.ts +15 -105
  873. package/dist/hooks/use-anchored-panel.d.ts +77 -15
  874. package/dist/hooks/use-anchored-panel.js +34 -1
  875. package/dist/hooks/use-anchored-panel.js.map +1 -1
  876. package/dist/hooks/use-anchored-rect.d.ts +15 -6
  877. package/dist/hooks/use-anchored-rect.js +2 -1
  878. package/dist/hooks/use-anchored-rect.js.map +1 -1
  879. package/dist/hooks/use-announce.d.ts +4 -6
  880. package/dist/hooks/use-authed-src.d.ts +5 -7
  881. package/dist/hooks/use-authed-src.js +3 -7
  882. package/dist/hooks/use-authed-src.js.map +1 -1
  883. package/dist/hooks/use-body-scroll-lock.d.ts +1 -3
  884. package/dist/hooks/use-breakpoint.d.ts +16 -17
  885. package/dist/hooks/use-breakpoint.js.map +1 -1
  886. package/dist/hooks/use-close-transition.d.ts +8 -8
  887. package/dist/hooks/use-close-transition.js +5 -4
  888. package/dist/hooks/use-close-transition.js.map +1 -1
  889. package/dist/hooks/use-copy-to-clipboard.d.ts +5 -7
  890. package/dist/hooks/use-debounce.d.ts +13 -6
  891. package/dist/hooks/use-debounce.js.map +1 -1
  892. package/dist/hooks/use-dismiss.d.ts +50 -11
  893. package/dist/hooks/use-dismiss.js +80 -9
  894. package/dist/hooks/use-dismiss.js.map +1 -1
  895. package/dist/hooks/use-file-drop.d.ts +8 -110
  896. package/dist/hooks/use-file-drop.js +1 -1
  897. package/dist/hooks/use-file-drop.js.map +1 -1
  898. package/dist/hooks/use-file-picker-labels.d.ts +2 -0
  899. package/dist/hooks/use-file-picker-labels.js +25 -0
  900. package/dist/hooks/use-file-picker-labels.js.map +1 -0
  901. package/dist/hooks/use-file-picker.d.ts +164 -0
  902. package/dist/hooks/use-file-picker.js +149 -0
  903. package/dist/hooks/use-file-picker.js.map +1 -0
  904. package/dist/hooks/use-focus-trap.d.ts +2 -4
  905. package/dist/hooks/use-focus-trap.js +2 -1
  906. package/dist/hooks/use-focus-trap.js.map +1 -1
  907. package/dist/hooks/use-hotkey.d.ts +7 -9
  908. package/dist/hooks/use-large-text.d.ts +3 -5
  909. package/dist/hooks/use-media-query.d.ts +1 -3
  910. package/dist/hooks/use-noindex.d.ts +1 -3
  911. package/dist/hooks/use-overlay-history.d.ts +1 -3
  912. package/dist/hooks/use-row-swipe.d.ts +5 -8
  913. package/dist/hooks/use-search-param-state.d.ts +10 -11
  914. package/dist/hooks/use-windowed-rows.d.ts +4 -7
  915. package/dist/i18n/defaults.d.ts +11 -105
  916. package/dist/i18n/defaults.js +82 -82
  917. package/dist/i18n/defaults.js.map +1 -1
  918. package/dist/i18n/german.d.ts +2 -105
  919. package/dist/i18n/german.js +52 -8
  920. package/dist/i18n/german.js.map +1 -1
  921. package/dist/i18n/kit-labels.d.ts +619 -101
  922. package/dist/i18n/kit-labels.js +22 -97
  923. package/dist/i18n/kit-labels.js.map +1 -1
  924. package/dist/i18n/languages.d.ts +197 -101
  925. package/dist/i18n/locales/de-CH.d.ts +3 -106
  926. package/dist/i18n/locales/en.d.ts +4 -105
  927. package/dist/i18n/locales/en.js +1834 -4
  928. package/dist/i18n/locales/en.js.map +7 -1
  929. package/dist/i18n/locales/es.d.ts +3 -106
  930. package/dist/i18n/locales/es.js +52 -8
  931. package/dist/i18n/locales/es.js.map +1 -1
  932. package/dist/i18n/locales/fr.d.ts +3 -106
  933. package/dist/i18n/locales/fr.js +56 -10
  934. package/dist/i18n/locales/fr.js.map +1 -1
  935. package/dist/i18n/locales/hu.d.ts +3 -106
  936. package/dist/i18n/locales/hu.js +52 -8
  937. package/dist/i18n/locales/hu.js.map +1 -1
  938. package/dist/i18n/locales/it.d.ts +3 -106
  939. package/dist/i18n/locales/it.js +56 -10
  940. package/dist/i18n/locales/it.js.map +1 -1
  941. package/dist/i18n/locales/zh.d.ts +3 -106
  942. package/dist/i18n/locales/zh.js +51 -8
  943. package/dist/i18n/locales/zh.js.map +1 -1
  944. package/dist/i18n/plurals.d.ts +3 -5
  945. package/dist/i18n/review.d.ts +5 -107
  946. package/dist/i18n/review.js +4 -0
  947. package/dist/i18n/review.js.map +1 -1
  948. package/dist/i18n/shared-labels.d.ts +17 -0
  949. package/dist/i18n/shared-labels.js +111 -0
  950. package/dist/i18n/shared-labels.js.map +1 -0
  951. package/dist/i18n/swiss.d.ts +1 -3
  952. package/dist/index.d.ts +330 -249
  953. package/dist/index.js +188 -215
  954. package/dist/index.js.map +1 -1
  955. package/dist/landing/access.d.ts +7 -9
  956. package/dist/landing/access.js.map +1 -1
  957. package/dist/landing/landing-actions.d.ts +9 -109
  958. package/dist/landing/landing-actions.js +1 -1
  959. package/dist/landing/landing-actions.js.map +1 -1
  960. package/dist/landing/landing-labels.d.ts +4 -5
  961. package/dist/landing/landing-labels.js.map +1 -1
  962. package/dist/landing/landing-sections.d.ts +21 -121
  963. package/dist/landing/landing-sections.js +15 -15
  964. package/dist/landing/landing-sections.js.map +1 -1
  965. package/dist/landing/page-seo.d.ts +7 -9
  966. package/dist/landing/public-header.d.ts +10 -111
  967. package/dist/landing/public-header.js +1 -1
  968. package/dist/landing/public-header.js.map +1 -1
  969. package/dist/landing/routing.d.ts +16 -120
  970. package/dist/landing/routing.js +2 -6
  971. package/dist/landing/routing.js.map +1 -1
  972. package/dist/lib/calc.d.ts +7 -9
  973. package/dist/lib/chip-edge-snap.d.ts +10 -0
  974. package/dist/lib/chip-edge-snap.js +131 -0
  975. package/dist/lib/chip-edge-snap.js.map +1 -0
  976. package/dist/lib/clipping.d.ts +2 -4
  977. package/dist/lib/cn.d.ts +2 -5
  978. package/dist/lib/cn.js +6 -1
  979. package/dist/lib/cn.js.map +1 -1
  980. package/dist/lib/column-mapping.d.ts +10 -13
  981. package/dist/lib/countries.d.ts +3 -5
  982. package/dist/lib/dates.d.ts +25 -25
  983. package/dist/lib/dates.js.map +1 -1
  984. package/dist/lib/decimal-marks.d.ts +8 -8
  985. package/dist/lib/decimal-marks.js +1 -1
  986. package/dist/lib/decimal-marks.js.map +1 -1
  987. package/dist/lib/direction.d.ts +4 -6
  988. package/dist/lib/document-navigation.d.ts +1 -3
  989. package/dist/lib/download.d.ts +67 -0
  990. package/dist/lib/download.js +89 -0
  991. package/dist/lib/download.js.map +1 -0
  992. package/dist/lib/floating-stack.d.ts +8 -6
  993. package/dist/lib/floating-stack.js.map +1 -1
  994. package/dist/lib/format.d.ts +24 -23
  995. package/dist/lib/format.js +3 -3
  996. package/dist/lib/format.js.map +1 -1
  997. package/dist/lib/iban.d.ts +9 -11
  998. package/dist/lib/ime.d.ts +17 -0
  999. package/dist/lib/ime.js +13 -0
  1000. package/dist/lib/ime.js.map +1 -0
  1001. package/dist/lib/isin.d.ts +3 -5
  1002. package/dist/lib/logger.d.ts +4 -6
  1003. package/dist/lib/person-name.d.ts +3 -5
  1004. package/dist/lib/phone.d.ts +9 -11
  1005. package/dist/lib/presence.d.ts +15 -0
  1006. package/dist/lib/presence.js +8 -0
  1007. package/dist/lib/presence.js.map +1 -0
  1008. package/dist/lib/qr-encode.d.ts +4 -6
  1009. package/dist/lib/reduced-motion.d.ts +18 -0
  1010. package/dist/lib/reduced-motion.js +9 -0
  1011. package/dist/lib/reduced-motion.js.map +1 -0
  1012. package/dist/lib/refs.d.ts +13 -0
  1013. package/dist/lib/refs.js +15 -0
  1014. package/dist/lib/refs.js.map +1 -0
  1015. package/dist/lib/round.d.ts +22 -0
  1016. package/dist/lib/round.js +15 -0
  1017. package/dist/lib/round.js.map +1 -0
  1018. package/dist/lib/safe-storage.d.ts +14 -4
  1019. package/dist/lib/safe-storage.js +24 -9
  1020. package/dist/lib/safe-storage.js.map +1 -1
  1021. package/dist/lib/server-wake.d.ts +13 -14
  1022. package/dist/lib/session-refresh.d.ts +200 -0
  1023. package/dist/lib/session-refresh.js +187 -0
  1024. package/dist/lib/session-refresh.js.map +1 -0
  1025. package/dist/lib/strip-fade.d.ts +10 -13
  1026. package/dist/lib/table-text.d.ts +14 -16
  1027. package/dist/lib/text-match.d.ts +41 -0
  1028. package/dist/lib/text-match.js +23 -0
  1029. package/dist/lib/text-match.js.map +1 -0
  1030. package/dist/lib/translation-review.d.ts +44 -45
  1031. package/dist/lib/translation-review.js +3 -2
  1032. package/dist/lib/translation-review.js.map +1 -1
  1033. package/dist/rhf/fields.d.ts +131 -197
  1034. package/dist/rhf/fields.js +46 -54
  1035. package/dist/rhf/fields.js.map +1 -1
  1036. package/dist/rhf/form-core.d.ts +154 -0
  1037. package/dist/rhf/form-core.js +143 -0
  1038. package/dist/rhf/form-core.js.map +1 -0
  1039. package/dist/rhf/form.d.ts +9 -175
  1040. package/dist/rhf/form.js +2 -139
  1041. package/dist/rhf/form.js.map +1 -1
  1042. package/dist/rhf/line-items.d.ts +40 -11
  1043. package/dist/rhf/line-items.js.map +1 -1
  1044. package/dist/rhf/use-rhf-wizard-step.d.ts +3 -6
  1045. package/dist/rhf/use-rhf-wizard-step.js.map +1 -1
  1046. package/dist/rhf.d.ts +4 -118
  1047. package/dist/rhf.js.map +1 -1
  1048. package/dist/search/command-palette-labels.d.ts +2 -0
  1049. package/dist/search/command-palette-labels.js +15 -0
  1050. package/dist/search/command-palette-labels.js.map +1 -0
  1051. package/dist/search/command-palette.d.ts +10 -13
  1052. package/dist/search/command-palette.js +25 -44
  1053. package/dist/search/command-palette.js.map +1 -1
  1054. package/dist/search/global-search-labels.d.ts +2 -0
  1055. package/dist/search/global-search-labels.js +12 -0
  1056. package/dist/search/global-search-labels.js.map +1 -0
  1057. package/dist/search/global-search.d.ts +17 -16
  1058. package/dist/search/global-search.js +12 -12
  1059. package/dist/search/global-search.js.map +1 -1
  1060. package/dist/search/search-index.d.ts +13 -14
  1061. package/dist/search/search-index.js +2 -1
  1062. package/dist/search/search-index.js.map +1 -1
  1063. package/dist/search/use-command-key.d.ts +9 -0
  1064. package/dist/search/use-command-key.js +18 -0
  1065. package/dist/search/use-command-key.js.map +1 -0
  1066. package/dist/search.d.ts +3 -4
  1067. package/dist/settings/settings-card-classes.d.ts +11 -0
  1068. package/dist/settings/settings-card-classes.js +8 -0
  1069. package/dist/settings/settings-card-classes.js.map +1 -0
  1070. package/dist/settings/settings-catalogue.d.ts +11 -14
  1071. package/dist/settings/settings-context.d.ts +4 -8
  1072. package/dist/settings/settings-heading.d.ts +8 -12
  1073. package/dist/settings/settings-heading.js +1 -1
  1074. package/dist/settings/settings-heading.js.map +1 -1
  1075. package/dist/settings/settings-labels.d.ts +6 -7
  1076. package/dist/settings/settings-labels.js.map +1 -1
  1077. package/dist/settings/settings-layout.d.ts +36 -13
  1078. package/dist/settings/settings-layout.js +25 -4
  1079. package/dist/settings/settings-layout.js.map +1 -1
  1080. package/dist/settings/settings-section.d.ts +4 -107
  1081. package/dist/settings/settings-section.js +2 -2
  1082. package/dist/settings/settings-section.js.map +1 -1
  1083. package/dist/settings/use-account-appearance.d.ts +11 -16
  1084. package/dist/settings/use-account-language.d.ts +8 -10
  1085. package/dist/settings/use-settings-focus.d.ts +3 -5
  1086. package/dist/settings/use-settings-focus.js +2 -4
  1087. package/dist/settings/use-settings-focus.js.map +1 -1
  1088. package/dist/settings/use-settings-route.d.ts +11 -16
  1089. package/dist/shell/app-shell-labels.d.ts +2 -0
  1090. package/dist/shell/app-shell-labels.js +9 -0
  1091. package/dist/shell/app-shell-labels.js.map +1 -0
  1092. package/dist/shell/app-shell.d.ts +216 -101
  1093. package/dist/shell/app-shell.js +51 -35
  1094. package/dist/shell/app-shell.js.map +1 -1
  1095. package/dist/shell/auth-layout.d.ts +6 -9
  1096. package/dist/shell/auth-layout.js +6 -6
  1097. package/dist/shell/auth-layout.js.map +1 -1
  1098. package/dist/shell/company-switcher-labels.d.ts +2 -0
  1099. package/dist/shell/company-switcher-labels.js +12 -0
  1100. package/dist/shell/company-switcher-labels.js.map +1 -0
  1101. package/dist/shell/company-switcher.d.ts +9 -11
  1102. package/dist/shell/company-switcher.js +3 -9
  1103. package/dist/shell/company-switcher.js.map +1 -1
  1104. package/dist/shell/option-switcher-menu.d.ts +7 -9
  1105. package/dist/shell/option-switcher-menu.js +4 -4
  1106. package/dist/shell/option-switcher-menu.js.map +1 -1
  1107. package/dist/shell/role-switcher.d.ts +3 -7
  1108. package/dist/shell/role-switcher.js +3 -3
  1109. package/dist/shell/role-switcher.js.map +1 -1
  1110. package/dist/shell/top-bar-brand.d.ts +4 -107
  1111. package/dist/shell/top-bar-brand.js +1 -1
  1112. package/dist/shell/top-bar-brand.js.map +1 -1
  1113. package/dist/shell/top-bar.d.ts +6 -9
  1114. package/dist/shell/top-bar.js +1 -1
  1115. package/dist/shell/top-bar.js.map +1 -1
  1116. package/dist/shell/topbar-action-menu.d.ts +18 -31
  1117. package/dist/shell/topbar-action-menu.js +10 -10
  1118. package/dist/shell/topbar-action-menu.js.map +1 -1
  1119. package/dist/shell/topbar-controls.d.ts +14 -21
  1120. package/dist/shell/topbar-controls.js +11 -11
  1121. package/dist/shell/topbar-controls.js.map +1 -1
  1122. package/dist/shell.d.ts +25 -116
  1123. package/dist/shell.js.map +1 -1
  1124. package/dist/table-text.d.ts +1 -1
  1125. package/dist/testing/css-variables.d.ts +4 -6
  1126. package/dist/testing/css-variables.generated.d.ts +2 -4
  1127. package/dist/testing/index.d.ts +2 -1
  1128. package/dist/testing/index.js +11 -1
  1129. package/dist/testing/index.js.map +1 -1
  1130. package/dist/testing/viewport.d.ts +116 -0
  1131. package/dist/testing/viewport.js +203 -0
  1132. package/dist/testing/viewport.js.map +1 -0
  1133. package/dist/theme/chart-palette.d.ts +7 -9
  1134. package/dist/theme/color.d.ts +14 -16
  1135. package/dist/theme/color.js +2 -1
  1136. package/dist/theme/color.js.map +1 -1
  1137. package/dist/theme/contrast-tokens.d.ts +13 -17
  1138. package/dist/theme/contrast.d.ts +22 -27
  1139. package/dist/theme/palette-derive.d.ts +16 -22
  1140. package/dist/theme/palette-derive.js +15 -7
  1141. package/dist/theme/palette-derive.js.map +1 -1
  1142. package/dist/theme/palette-presets.d.ts +18 -15
  1143. package/dist/theme/palette-presets.js +66 -345
  1144. package/dist/theme/palette-presets.js.map +1 -1
  1145. package/dist/theme/palette-store.d.ts +10 -13
  1146. package/dist/theme/text-size.d.ts +21 -26
  1147. package/dist/theme/theme-store.d.ts +9 -14
  1148. package/dist/tour/tour-labels.d.ts +2 -0
  1149. package/dist/tour/tour-labels.js +13 -0
  1150. package/dist/tour/tour-labels.js.map +1 -0
  1151. package/dist/tour/tour.d.ts +12 -14
  1152. package/dist/tour/tour.js +9 -20
  1153. package/dist/tour/tour.js.map +1 -1
  1154. package/dist/tour.d.ts +1 -2
  1155. package/dist/wizard/stepper-nav.d.ts +8 -108
  1156. package/dist/wizard/stepper-nav.js +15 -14
  1157. package/dist/wizard/stepper-nav.js.map +1 -1
  1158. package/dist/wizard/types.d.ts +13 -18
  1159. package/dist/wizard/types.js +2 -24
  1160. package/dist/wizard/types.js.map +1 -1
  1161. package/dist/wizard/use-wizard.d.ts +2 -6
  1162. package/dist/wizard/validation.d.ts +3 -7
  1163. package/dist/wizard/wizard-context.d.ts +7 -11
  1164. package/dist/wizard/wizard-labels.d.ts +4 -0
  1165. package/dist/wizard/wizard-labels.js +24 -0
  1166. package/dist/wizard/wizard-labels.js.map +1 -0
  1167. package/dist/wizard/wizard-step.d.ts +3 -7
  1168. package/dist/wizard/wizard-step.js +2 -2
  1169. package/dist/wizard/wizard-step.js.map +1 -1
  1170. package/dist/wizard/wizard-summary.d.ts +5 -8
  1171. package/dist/wizard/wizard-summary.js +6 -5
  1172. package/dist/wizard/wizard-summary.js.map +1 -1
  1173. package/dist/wizard.d.ts +7 -107
  1174. package/package.json +17 -6
  1175. package/src/account/account-parts.ts +3 -3
  1176. package/src/{components → account}/account-settings-labels.ts +11 -1
  1177. package/src/{components → account}/account-settings.tsx +145 -34
  1178. package/src/account/data-export-setting-labels.ts +20 -0
  1179. package/src/account/data-export-setting.tsx +19 -38
  1180. package/src/account/delete-account-setting-labels.ts +33 -0
  1181. package/src/account/delete-account-setting.tsx +13 -35
  1182. package/src/account/email-change-setting-labels.ts +32 -0
  1183. package/src/account/email-change-setting.tsx +17 -36
  1184. package/src/{components → account}/passkeys-setting.tsx +14 -9
  1185. package/src/account/sessions-setting-labels.ts +24 -0
  1186. package/src/account/sessions-setting.tsx +14 -28
  1187. package/src/admin/admin-action-confirm-labels.ts +19 -0
  1188. package/src/admin/admin-action-confirm.tsx +59 -38
  1189. package/src/admin/admin-action-log-labels.ts +74 -0
  1190. package/src/admin/admin-action-log.tsx +180 -54
  1191. package/src/admin/admin-parts.ts +0 -7
  1192. package/src/admin/invitations-panel-labels.ts +31 -0
  1193. package/src/admin/invitations-panel.tsx +16 -34
  1194. package/src/admin/plan-change-labels.ts +23 -0
  1195. package/src/admin/plan-change.tsx +58 -34
  1196. package/src/admin/reviewer-scope-editor-labels.ts +16 -0
  1197. package/src/admin/reviewer-scope-editor.tsx +9 -15
  1198. package/src/admin/role-select-labels.ts +16 -0
  1199. package/src/admin/role-select.tsx +13 -23
  1200. package/src/admin/transfer-ownership-dialog-labels.ts +20 -0
  1201. package/src/admin/transfer-ownership-dialog.tsx +7 -17
  1202. package/src/admin/user-roster-labels.ts +17 -0
  1203. package/src/admin/user-roster.tsx +9 -17
  1204. package/src/auth/accept-invitation-labels.ts +21 -0
  1205. package/src/auth/accept-invitation.tsx +9 -20
  1206. package/src/auth/auth-errors.ts +29 -13
  1207. package/src/auth/complete-name-dialog-labels.ts +16 -0
  1208. package/src/auth/complete-name-dialog.tsx +8 -13
  1209. package/src/auth/forgot-password-form-labels.ts +20 -0
  1210. package/src/auth/forgot-password-form.tsx +12 -20
  1211. package/src/auth/new-password-fields.tsx +1 -1
  1212. package/src/auth/not-found-page-labels.ts +12 -0
  1213. package/src/auth/not-found-page.tsx +11 -14
  1214. package/src/auth/register-form-labels.ts +31 -0
  1215. package/src/auth/register-form.tsx +18 -38
  1216. package/src/auth/reset-password-form-labels.ts +27 -0
  1217. package/src/auth/reset-password-form.tsx +12 -27
  1218. package/src/auth/sign-in-form-labels.ts +44 -0
  1219. package/src/auth/sign-in-form.tsx +18 -51
  1220. package/src/auth/status-parts.tsx +3 -3
  1221. package/src/auth/verify-email-labels.ts +26 -0
  1222. package/src/auth/verify-email.tsx +15 -30
  1223. package/src/billing/billing-banner.tsx +7 -3
  1224. package/src/billing/billing-labels.ts +1 -1
  1225. package/src/billing/checkout-processing.ts +2 -12
  1226. package/src/billing/plan-card.tsx +26 -27
  1227. package/src/billing/plan-limit-notice.tsx +6 -3
  1228. package/src/billing/subscription-actions.tsx +4 -4
  1229. package/src/chart.ts +9 -1
  1230. package/src/components/account-chips-labels.ts +16 -0
  1231. package/src/components/account-chips.tsx +13 -16
  1232. package/src/components/alert-banner.tsx +39 -19
  1233. package/src/components/amount-input.tsx +458 -406
  1234. package/src/components/appearance-labels.ts +2 -2
  1235. package/src/components/authed-image-labels.ts +11 -0
  1236. package/src/components/authed-image.tsx +6 -8
  1237. package/src/components/autocomplete.tsx +79 -78
  1238. package/src/components/breadcrumbs-labels.ts +10 -0
  1239. package/src/components/breadcrumbs.tsx +17 -14
  1240. package/src/components/bulk-action-bar-labels.ts +11 -0
  1241. package/src/components/bulk-action-bar.tsx +15 -16
  1242. package/src/components/button-group.tsx +7 -7
  1243. package/src/components/button-look.ts +230 -0
  1244. package/src/components/button.tsx +339 -0
  1245. package/src/components/calculator.tsx +14 -12
  1246. package/src/components/calendar-heatmap-labels.ts +15 -0
  1247. package/src/components/calendar-heatmap.tsx +13 -19
  1248. package/src/components/card.tsx +381 -0
  1249. package/src/components/chart-zoom-core.tsx +653 -0
  1250. package/src/components/chart-zoom.tsx +21 -648
  1251. package/src/components/chart.tsx +11 -11
  1252. package/src/components/checkbox-group.tsx +13 -10
  1253. package/src/components/checkbox.tsx +43 -42
  1254. package/src/components/chip-input.tsx +370 -0
  1255. package/src/components/chip-labels.ts +13 -0
  1256. package/src/components/chip.tsx +115 -711
  1257. package/src/components/choice-card.tsx +83 -85
  1258. package/src/components/column-mapper-labels.ts +45 -0
  1259. package/src/components/column-mapper.tsx +16 -51
  1260. package/src/components/combobox-core.tsx +346 -194
  1261. package/src/components/combobox-suggestions.tsx +129 -0
  1262. package/src/components/combobox.tsx +70 -896
  1263. package/src/components/confirm-dialog-labels.ts +13 -0
  1264. package/src/components/confirm-dialog.tsx +4 -8
  1265. package/src/components/copy-button-labels.ts +13 -0
  1266. package/src/components/copy-button.tsx +15 -13
  1267. package/src/components/country-select-labels.ts +11 -0
  1268. package/src/components/country-select.tsx +74 -89
  1269. package/src/components/currency-option-list.tsx +182 -0
  1270. package/src/components/currency-select.tsx +85 -196
  1271. package/src/components/danger-confirm-labels.ts +20 -0
  1272. package/src/components/danger-confirm.tsx +72 -80
  1273. package/src/components/data-table-cells.tsx +5 -5
  1274. package/src/components/data-table-column-settings.tsx +137 -0
  1275. package/src/components/data-table-filter-popover.tsx +51 -25
  1276. package/src/components/data-table-filters.ts +48 -11
  1277. package/src/components/data-table-head.tsx +258 -0
  1278. package/src/components/data-table-labels.ts +21 -71
  1279. package/src/components/data-table-mobile.tsx +594 -0
  1280. package/src/components/data-table-pagination.tsx +11 -10
  1281. package/src/components/data-table-resize.ts +187 -0
  1282. package/src/components/data-table-row-actions.tsx +152 -0
  1283. package/src/components/data-table-selection.ts +55 -0
  1284. package/src/components/data-table-shared.tsx +225 -0
  1285. package/src/components/data-table.tsx +205 -1315
  1286. package/src/components/date-field.tsx +627 -0
  1287. package/src/components/date-picker.tsx +58 -1446
  1288. package/src/components/date-range-picker.tsx +490 -0
  1289. package/src/components/description-list-labels.ts +9 -0
  1290. package/src/components/description-list.tsx +31 -15
  1291. package/src/components/dialog-frame-labels.ts +7 -0
  1292. package/src/components/dialog-frame.tsx +11 -7
  1293. package/src/components/disclosure.tsx +14 -14
  1294. package/src/components/dropdown.tsx +129 -43
  1295. package/src/components/empty-state.tsx +137 -0
  1296. package/src/components/entity-combobox.tsx +18 -13
  1297. package/src/components/error-boundary-labels.ts +20 -0
  1298. package/src/components/error-boundary.tsx +10 -20
  1299. package/src/components/facing-pair.ts +1 -1
  1300. package/src/components/field-base.tsx +604 -0
  1301. package/src/components/field-parts.tsx +192 -77
  1302. package/src/components/field-strip.tsx +12 -33
  1303. package/src/components/field-sync-labels.ts +13 -0
  1304. package/src/components/field-sync.tsx +8 -16
  1305. package/src/components/field.tsx +17 -15
  1306. package/src/components/file-button.tsx +64 -412
  1307. package/src/components/file-dropzone.tsx +36 -33
  1308. package/src/components/floating-panel-labels.ts +10 -0
  1309. package/src/components/floating-panel.tsx +32 -21
  1310. package/src/components/focus-ring.ts +9 -4
  1311. package/src/components/form-actions-labels.ts +11 -0
  1312. package/src/components/form-actions.tsx +17 -21
  1313. package/src/components/full-bleed-dialog.tsx +28 -25
  1314. package/src/components/grouped-picker.tsx +118 -96
  1315. package/src/components/help-popover.tsx +115 -0
  1316. package/src/components/hover-menu.tsx +45 -38
  1317. package/src/components/iban-input-labels.ts +15 -0
  1318. package/src/components/iban-input.tsx +25 -20
  1319. package/src/components/icon-button.tsx +945 -0
  1320. package/src/components/icon-picker-labels.ts +13 -0
  1321. package/src/components/icon-picker.tsx +27 -24
  1322. package/src/components/image-grid-labels.ts +11 -0
  1323. package/src/components/image-grid.tsx +13 -15
  1324. package/src/components/inline-edit-field-labels.ts +11 -0
  1325. package/src/components/inline-edit-field.tsx +20 -19
  1326. package/src/components/inline-entity-combobox.tsx +789 -0
  1327. package/src/components/input.tsx +380 -0
  1328. package/src/components/jump-calendar.tsx +385 -0
  1329. package/src/components/language-select.tsx +31 -16
  1330. package/src/components/legal-labels.ts +99 -0
  1331. package/src/components/legal-page.tsx +2 -2
  1332. package/src/components/legal.tsx +11 -101
  1333. package/src/components/lightbox-labels.ts +18 -0
  1334. package/src/components/lightbox.tsx +13 -21
  1335. package/src/components/line-items-labels.ts +14 -0
  1336. package/src/components/line-items.tsx +24 -31
  1337. package/src/components/list-labels.ts +10 -0
  1338. package/src/components/list.tsx +98 -75
  1339. package/src/components/loading-state.tsx +4 -4
  1340. package/src/components/measured-grid-labels.ts +25 -0
  1341. package/src/components/measured-grid.tsx +39 -62
  1342. package/src/components/menu-item.tsx +29 -26
  1343. package/src/components/mini-calendar-labels.ts +17 -0
  1344. package/src/components/mini-calendar.tsx +38 -45
  1345. package/src/components/modal.tsx +49 -20
  1346. package/src/components/money-draft.ts +72 -0
  1347. package/src/components/money-field.tsx +16 -30
  1348. package/src/components/month-picker-labels.ts +22 -0
  1349. package/src/components/month-picker.tsx +59 -45
  1350. package/src/components/multi-entity-combobox.tsx +17 -12
  1351. package/src/components/multi-select.tsx +300 -292
  1352. package/src/components/nav-pills.tsx +19 -8
  1353. package/src/components/number-field.tsx +7 -5
  1354. package/src/components/number-input.tsx +69 -99
  1355. package/src/components/numeric-field.ts +161 -0
  1356. package/src/components/numpad-sheet.tsx +16 -16
  1357. package/src/components/one-time-code-input.tsx +154 -169
  1358. package/src/components/page-contents-labels.ts +9 -0
  1359. package/src/components/page-contents.tsx +15 -15
  1360. package/src/components/page-header.tsx +9 -5
  1361. package/src/components/password-strength-labels.ts +23 -0
  1362. package/src/components/password-strength.tsx +13 -27
  1363. package/src/components/phone-input-labels.ts +10 -0
  1364. package/src/components/phone-input.tsx +42 -57
  1365. package/src/components/picker-sheet.tsx +47 -18
  1366. package/src/components/pie-chart.tsx +11 -9
  1367. package/src/components/popover-labels.ts +14 -0
  1368. package/src/components/popover.tsx +36 -37
  1369. package/src/components/progress-bar-labels.ts +10 -0
  1370. package/src/components/progress-bar.tsx +32 -23
  1371. package/src/components/qr-code.tsx +2 -2
  1372. package/src/components/reauth-dialog-labels.ts +13 -0
  1373. package/src/components/reauth-dialog.tsx +7 -10
  1374. package/src/components/row-actions-labels.ts +10 -0
  1375. package/src/components/row-actions.tsx +11 -10
  1376. package/src/components/scroll-area.tsx +4 -10
  1377. package/src/components/search-field.tsx +35 -49
  1378. package/src/components/select.tsx +302 -0
  1379. package/src/components/separator.tsx +2 -2
  1380. package/src/components/series-chart-axes.ts +329 -0
  1381. package/src/components/series-chart-thin.ts +180 -0
  1382. package/src/components/series-chart.tsx +125 -326
  1383. package/src/components/server-wake-labels.ts +11 -0
  1384. package/src/components/server-wake.tsx +39 -66
  1385. package/src/components/settings-fields.tsx +50 -19
  1386. package/src/components/share-card-labels.ts +30 -0
  1387. package/src/components/share-card.tsx +22 -37
  1388. package/src/components/sign-chip-labels.ts +12 -0
  1389. package/src/components/sign-chip.tsx +6 -9
  1390. package/src/components/signature-pad-labels.ts +24 -0
  1391. package/src/components/signature-pad.tsx +48 -57
  1392. package/src/components/signed-amount-labels.ts +10 -0
  1393. package/src/components/signed-amount.tsx +21 -22
  1394. package/src/components/skeleton.tsx +1 -1
  1395. package/src/components/slider.tsx +51 -39
  1396. package/src/components/sparkline-labels.ts +14 -0
  1397. package/src/components/sparkline.tsx +16 -21
  1398. package/src/components/spinner.tsx +81 -0
  1399. package/src/components/stat-tile-labels.ts +15 -0
  1400. package/src/components/stat-tile.tsx +39 -38
  1401. package/src/components/status-dot.tsx +17 -14
  1402. package/src/components/swatch-picker-labels.ts +10 -0
  1403. package/src/components/swatch-picker.tsx +23 -16
  1404. package/src/components/swipeable-row.tsx +17 -39
  1405. package/src/components/switch.tsx +33 -32
  1406. package/src/components/table.tsx +15 -15
  1407. package/src/components/tabs.tsx +660 -0
  1408. package/src/components/text-link.tsx +7 -7
  1409. package/src/components/text.tsx +10 -6
  1410. package/src/components/textarea.tsx +323 -0
  1411. package/src/components/tile-radio.tsx +6 -6
  1412. package/src/components/time-input.tsx +15 -7
  1413. package/src/components/toast-labels.ts +12 -0
  1414. package/src/components/toast.tsx +5 -8
  1415. package/src/components/toggle-group.tsx +105 -42
  1416. package/src/components/toggle-legend.tsx +6 -6
  1417. package/src/components/tooltip.tsx +47 -27
  1418. package/src/components/translation-review-editor.tsx +8 -7
  1419. package/src/components/translation-review-parts.tsx +9 -13
  1420. package/src/components/translation-review.tsx +50 -20
  1421. package/src/components/tree-view.tsx +14 -12
  1422. package/src/components/ui-labels.ts +22 -0
  1423. package/src/components/use-table-state.ts +91 -10
  1424. package/src/components/user-avatar.tsx +5 -5
  1425. package/src/components/wizard-stepper.tsx +7 -6
  1426. package/src/components/write-lock-labels.ts +9 -0
  1427. package/src/components/write-lock.tsx +10 -12
  1428. package/src/currencies.ts +70 -0
  1429. package/src/data-table.ts +4 -0
  1430. package/src/demo/demo-banner.tsx +16 -27
  1431. package/src/demo/demo-ended.tsx +8 -7
  1432. package/src/demo/demo-labels.ts +2 -2
  1433. package/src/demo/demo-start.tsx +7 -5
  1434. package/src/eslint/index.ts +161 -0
  1435. package/src/eslint/role-utilities.generated.ts +146 -0
  1436. package/src/eslint/role-utilities.ts +99 -0
  1437. package/src/feedback/feedback-attachment-labels.ts +36 -0
  1438. package/src/feedback/feedback-attachment.tsx +42 -66
  1439. package/src/feedback/feedback-context-labels.ts +10 -0
  1440. package/src/feedback/feedback-context.tsx +8 -9
  1441. package/src/feedback/feedback-dialog-labels.ts +28 -0
  1442. package/src/feedback/feedback-dialog.tsx +14 -44
  1443. package/src/feedback/feedback-inbox.tsx +49 -252
  1444. package/src/feedback/feedback-labels.ts +5 -5
  1445. package/src/feedback/feedback-menu-labels.ts +11 -0
  1446. package/src/feedback/feedback-menu.tsx +13 -11
  1447. package/src/feedback/feedback-record.ts +21 -7
  1448. package/src/feedback/feedback-row-detail-labels.ts +33 -0
  1449. package/src/feedback/feedback-row-detail.tsx +30 -43
  1450. package/src/feedback/feedback-status-undo.ts +3 -2
  1451. package/src/feedback/feedback-submit-dialog.tsx +109 -0
  1452. package/src/feedback/feedback-submit.tsx +45 -55
  1453. package/src/feedback/feedback-swipe.tsx +1 -1
  1454. package/src/feedback/feedback-table-labels.ts +27 -0
  1455. package/src/feedback/feedback-table.tsx +24 -40
  1456. package/src/feedback/feedback-thread-labels.ts +22 -0
  1457. package/src/feedback/feedback-thread.tsx +46 -50
  1458. package/src/feedback/feedback-vocabulary.ts +252 -0
  1459. package/src/hooks/use-anchored-panel.ts +102 -2
  1460. package/src/hooks/use-anchored-rect.ts +11 -9
  1461. package/src/hooks/use-authed-src.ts +13 -7
  1462. package/src/hooks/use-breakpoint.ts +5 -4
  1463. package/src/hooks/use-close-transition.ts +9 -10
  1464. package/src/hooks/use-debounce.ts +9 -0
  1465. package/src/hooks/use-dismiss.ts +210 -18
  1466. package/src/hooks/use-file-drop.ts +2 -2
  1467. package/src/hooks/use-file-picker-labels.ts +29 -0
  1468. package/src/hooks/use-file-picker.tsx +363 -0
  1469. package/src/hooks/use-focus-trap.ts +19 -6
  1470. package/src/i18n/defaults.ts +91 -82
  1471. package/src/i18n/german.ts +50 -6
  1472. package/src/i18n/kit-labels.tsx +85 -124
  1473. package/src/i18n/locales/en.ts +46 -0
  1474. package/src/i18n/locales/es.ts +50 -6
  1475. package/src/i18n/locales/fr.ts +55 -9
  1476. package/src/i18n/locales/hu.ts +50 -6
  1477. package/src/i18n/locales/it.ts +54 -8
  1478. package/src/i18n/locales/zh.ts +49 -6
  1479. package/src/i18n/review.ts +4 -0
  1480. package/src/i18n/shared-labels.ts +135 -0
  1481. package/src/index.ts +414 -404
  1482. package/src/landing/access.ts +2 -1
  1483. package/src/landing/landing-actions.tsx +6 -5
  1484. package/src/landing/landing-labels.ts +2 -2
  1485. package/src/landing/landing-sections.tsx +24 -23
  1486. package/src/landing/public-header.tsx +3 -2
  1487. package/src/landing/routing.tsx +2 -7
  1488. package/src/lib/chip-edge-snap.ts +212 -0
  1489. package/src/lib/cn.ts +13 -1
  1490. package/src/lib/dates.ts +4 -2
  1491. package/src/lib/decimal-marks.ts +4 -2
  1492. package/src/lib/download.ts +172 -0
  1493. package/src/lib/floating-stack.ts +5 -1
  1494. package/src/lib/format.ts +5 -3
  1495. package/src/lib/ime.ts +24 -0
  1496. package/src/lib/presence.ts +18 -0
  1497. package/src/lib/reduced-motion.ts +21 -0
  1498. package/src/lib/refs.ts +22 -0
  1499. package/src/lib/round.ts +38 -0
  1500. package/src/lib/safe-storage.ts +35 -11
  1501. package/src/lib/session-refresh.ts +473 -0
  1502. package/src/lib/text-match.ts +60 -0
  1503. package/src/lib/translation-review.ts +7 -6
  1504. package/src/rhf/fields.tsx +141 -189
  1505. package/src/rhf/form-core.tsx +328 -0
  1506. package/src/rhf/form.tsx +9 -320
  1507. package/src/rhf/line-items.tsx +2 -2
  1508. package/src/rhf/use-rhf-wizard-step.ts +4 -4
  1509. package/src/rhf.ts +4 -2
  1510. package/src/search/command-palette-labels.ts +16 -0
  1511. package/src/search/command-palette.tsx +37 -50
  1512. package/src/search/global-search-labels.ts +13 -0
  1513. package/src/search/global-search.tsx +50 -24
  1514. package/src/search/search-index.ts +5 -6
  1515. package/src/search/use-command-key.ts +22 -0
  1516. package/src/settings/settings-card-classes.ts +11 -0
  1517. package/src/settings/settings-heading.tsx +1 -1
  1518. package/src/settings/settings-labels.ts +2 -2
  1519. package/src/settings/settings-layout.tsx +65 -6
  1520. package/src/settings/settings-section.tsx +5 -5
  1521. package/src/settings/use-settings-focus.ts +2 -5
  1522. package/src/shell/app-shell-labels.ts +10 -0
  1523. package/src/shell/app-shell.tsx +79 -53
  1524. package/src/shell/auth-layout.tsx +11 -10
  1525. package/src/shell/company-switcher-labels.ts +13 -0
  1526. package/src/shell/company-switcher.tsx +7 -11
  1527. package/src/shell/option-switcher-menu.tsx +7 -5
  1528. package/src/shell/role-switcher.tsx +4 -4
  1529. package/src/shell/top-bar-brand.tsx +1 -1
  1530. package/src/shell/top-bar.tsx +6 -5
  1531. package/src/shell/topbar-action-menu.tsx +21 -19
  1532. package/src/shell/topbar-controls.tsx +15 -15
  1533. package/src/shell.ts +1 -1
  1534. package/src/testing/index.ts +13 -0
  1535. package/src/testing/viewport.ts +357 -0
  1536. package/src/theme/color.ts +7 -1
  1537. package/src/theme/palette-derive.ts +29 -7
  1538. package/src/theme/palette-presets.ts +82 -355
  1539. package/src/tour/tour-labels.ts +14 -0
  1540. package/src/tour/tour.tsx +13 -23
  1541. package/src/wizard/stepper-nav.tsx +19 -18
  1542. package/src/wizard/types.ts +3 -26
  1543. package/src/wizard/wizard-labels.ts +29 -0
  1544. package/src/wizard/wizard-step.tsx +2 -2
  1545. package/src/wizard/wizard-summary.tsx +8 -7
  1546. package/tokens.css +45 -14
  1547. package/dist/components/account-settings-labels.js.map +0 -1
  1548. package/dist/components/account-settings.js.map +0 -1
  1549. package/dist/components/choice-parts.d.ts +0 -24
  1550. package/dist/components/choice-parts.js +0 -18
  1551. package/dist/components/choice-parts.js.map +0 -1
  1552. package/dist/components/passkeys-setting.js.map +0 -1
  1553. package/dist/components/ui.d.ts +0 -101
  1554. package/dist/components/ui.js +0 -1955
  1555. package/dist/components/ui.js.map +0 -1
  1556. package/dist/data-table-labels-BJ5JE_X2.d.ts +0 -923
  1557. package/dist/delete-account-setting-DAgGBrbn.d.ts +0 -8167
  1558. package/src/components/choice-parts.ts +0 -33
  1559. package/src/components/ui.tsx +0 -4233
@@ -1,16 +1,22 @@
1
- import { forwardRef, isValidElement, useCallback, useId, useLayoutEffect, useRef, useState } from "react";
2
- import type { ComponentPropsWithoutRef, KeyboardEvent, MouseEvent, ReactElement, ReactNode, Ref } from "react";
1
+ import { isValidElement, useCallback, useId } from "react";
2
+ import type { KeyboardEvent, MouseEvent, ReactElement, ReactNode, Ref } from "react";
3
3
  import { Check, X } from "lucide-react";
4
4
  import type { LucideIcon } from "lucide-react";
5
5
  import { cn } from "../lib/cn";
6
- import { horizontalStep } from "../lib/direction";
7
- import { FIELD_INVALID, FIELD_TOUCH_TEXT, TOUCH_TARGET_LARGE } from "./ui";
6
+ import { TOUCH_TARGET_LARGE } from "./button-look";
8
7
  import { FOCUS_RING } from "./focus-ring";
9
- import { DisabledReasonLine, useDisabledReasonLine, type DisabledReasonDisplay } from "./field-parts";
10
- import { DEFAULT_COMMON_LABELS, useKitLabels, useKitLink, useKitLocale } from "../i18n/kit-labels";
8
+ import { assignRef, LockedReason, type DisabledReasonDisplay } from "./field-parts";
9
+ import { hasContent } from "../lib/presence";
10
+ import { DEFAULT_COMMON_LABELS, useKitLabels, useKitLink } from "../i18n/kit-labels";
11
11
  import { pickLinkRenderer } from "./text-link";
12
- import { Tooltip } from "./tooltip";
13
12
  import { useCommitReason, type CommitScope } from "./write-lock";
13
+ import { useSnapEdges } from "../lib/chip-edge-snap";
14
+ // The edge-snap engine lives in lib/chip-edge-snap.ts and ChipInput in chip-input.tsx
15
+ // (MOD-9). `refreshChipEdges` is still this module's; of ChipInput only the types are,
16
+ // since a runtime re-export would make chip ⇄ chip-input a cycle — the barrel exports
17
+ // chip-input itself.
18
+ export { refreshChipEdges } from "../lib/chip-edge-snap";
19
+ export type { ChipInputLabels, ChipInputProps } from "./chip-input";
14
20
 
15
21
  /**
16
22
  * A chip: a compact pill carrying one value.
@@ -73,62 +79,62 @@ export type ChipShape = "pill" | "square";
73
79
 
74
80
  const TONE: Record<ChipTone, { idle: string; selected: string }> = {
75
81
  neutral: {
76
- idle: "border-[var(--border)] bg-[var(--bg-surface-2)] text-[var(--text-secondary)]",
77
- selected: "border-[var(--border-strong)] bg-[var(--bg-active)] text-[var(--text-primary)]",
82
+ idle: "border-subtle bg-surface-2 text-secondary",
83
+ selected: "border-strong bg-active text-primary",
78
84
  },
79
85
  brand: {
80
- idle: "border-[var(--border)] bg-[var(--brand-bg)] text-[var(--brand-muted)]",
81
- selected: "border-[var(--brand)] bg-[var(--brand)] text-[var(--brand-contrast)]",
86
+ idle: "border-subtle bg-brand-soft text-brand-muted",
87
+ selected: "border-brand bg-brand text-brand-contrast",
82
88
  },
83
89
  danger: {
84
- idle: "border-[var(--danger-border)] bg-[var(--danger-bg)] text-[var(--danger)]",
85
- selected: "border-[var(--danger)] bg-[var(--danger)] text-[var(--danger-contrast)]",
90
+ idle: "border-danger bg-danger-soft text-danger",
91
+ selected: "border-[var(--danger)] bg-danger text-danger-contrast",
86
92
  },
87
93
  warning: {
88
- idle: "border-[var(--warning-border)] bg-[var(--warning-bg)] text-[var(--warning)]",
89
- selected: "border-[var(--warning)] bg-[var(--warning-bg)] text-[var(--warning)]",
94
+ idle: "border-warning bg-warning-soft text-warning",
95
+ selected: "border-[var(--warning)] bg-warning-soft text-warning",
90
96
  },
91
97
  success: {
92
- idle: "border-[var(--success-border)] bg-[var(--success-bg)] text-[var(--success)]",
93
- selected: "border-[var(--success)] bg-[var(--success-bg)] text-[var(--success)]",
98
+ idle: "border-success bg-success-soft text-success",
99
+ selected: "border-[var(--success)] bg-success-soft text-success",
94
100
  },
95
101
  info: {
96
- idle: "border-[var(--info-border)] bg-[var(--info-bg)] text-[var(--info)]",
97
- selected: "border-[var(--info)] bg-[var(--info-bg)] text-[var(--info)]",
102
+ idle: "border-info bg-info-soft text-info",
103
+ selected: "border-[var(--info)] bg-info-soft text-info",
98
104
  },
99
105
  // The money pair (Keksdose's direction toggle). Only the TEXT and the BORDER carry
100
106
  // the tint, on the neutral chip's own surfaces: the money tokens are chosen for text
101
107
  // contrast, and a filled amber pill beside an amber figure reads as one smear.
102
108
  // `border-current` takes its hue from the text, so the two cannot drift apart.
103
109
  income: {
104
- idle: "border-current/40 bg-[var(--bg-surface-2)] text-[var(--money-income)]",
105
- selected: "border-current bg-[var(--bg-active)] text-[var(--money-income)]",
110
+ idle: "border-current/40 bg-surface-2 text-money-income",
111
+ selected: "border-current bg-active text-money-income",
106
112
  },
107
113
  expense: {
108
- idle: "border-current/40 bg-[var(--bg-surface-2)] text-[var(--money-expense)]",
109
- selected: "border-current bg-[var(--bg-active)] text-[var(--money-expense)]",
114
+ idle: "border-current/40 bg-surface-2 text-money-expense",
115
+ selected: "border-current bg-active text-money-expense",
110
116
  },
111
117
  // The categorical hues: the `info` recipe with its own token triple, so a hue chip
112
118
  // and a status chip in one row carry the same weight.
113
119
  blue: {
114
- idle: "border-[var(--hue-blue-border)] bg-[var(--hue-blue-bg)] text-[var(--hue-blue)]",
115
- selected: "border-[var(--hue-blue)] bg-[var(--hue-blue-bg)] text-[var(--hue-blue)]",
120
+ idle: "border-hue-blue bg-hue-blue-soft text-hue-blue",
121
+ selected: "border-[var(--hue-blue)] bg-hue-blue-soft text-hue-blue",
116
122
  },
117
123
  indigo: {
118
- idle: "border-[var(--hue-indigo-border)] bg-[var(--hue-indigo-bg)] text-[var(--hue-indigo)]",
119
- selected: "border-[var(--hue-indigo)] bg-[var(--hue-indigo-bg)] text-[var(--hue-indigo)]",
124
+ idle: "border-hue-indigo bg-hue-indigo-soft text-hue-indigo",
125
+ selected: "border-[var(--hue-indigo)] bg-hue-indigo-soft text-hue-indigo",
120
126
  },
121
127
  purple: {
122
- idle: "border-[var(--hue-purple-border)] bg-[var(--hue-purple-bg)] text-[var(--hue-purple)]",
123
- selected: "border-[var(--hue-purple)] bg-[var(--hue-purple-bg)] text-[var(--hue-purple)]",
128
+ idle: "border-hue-purple bg-hue-purple-soft text-hue-purple",
129
+ selected: "border-[var(--hue-purple)] bg-hue-purple-soft text-hue-purple",
124
130
  },
125
131
  teal: {
126
- idle: "border-[var(--hue-teal-border)] bg-[var(--hue-teal-bg)] text-[var(--hue-teal)]",
127
- selected: "border-[var(--hue-teal)] bg-[var(--hue-teal-bg)] text-[var(--hue-teal)]",
132
+ idle: "border-hue-teal bg-hue-teal-soft text-hue-teal",
133
+ selected: "border-[var(--hue-teal)] bg-hue-teal-soft text-hue-teal",
128
134
  },
129
135
  orange: {
130
- idle: "border-[var(--hue-orange-border)] bg-[var(--hue-orange-bg)] text-[var(--hue-orange)]",
131
- selected: "border-[var(--hue-orange)] bg-[var(--hue-orange-bg)] text-[var(--hue-orange)]",
136
+ idle: "border-hue-orange bg-hue-orange-soft text-hue-orange",
137
+ selected: "border-[var(--hue-orange)] bg-hue-orange-soft text-hue-orange",
132
138
  },
133
139
  };
134
140
 
@@ -136,21 +142,21 @@ const TONE: Record<ChipTone, { idle: string; selected: string }> = {
136
142
  // chip sits on. Selected still takes the tone's `selected` look (below), because an
137
143
  // outline toggle that stays an outline when on has no visible state.
138
144
  const OUTLINE: Record<ChipTone, string> = {
139
- neutral: "border-[var(--border-strong)] bg-transparent text-[var(--text-secondary)]",
145
+ neutral: "border-strong bg-transparent text-secondary",
140
146
  // The brand AS TEXT is `--brand-muted` (0.33): `--brand` itself is solved to 3:1, a
141
147
  // fill's boundary, and as text it fell to 3.0:1 in the derived dark presets.
142
- brand: "border-[var(--brand)] bg-transparent text-brand-muted",
143
- danger: "border-[var(--danger-border)] bg-transparent text-[var(--danger)]",
144
- warning: "border-[var(--warning-border)] bg-transparent text-[var(--warning)]",
145
- success: "border-[var(--success-border)] bg-transparent text-[var(--success)]",
146
- info: "border-[var(--info-border)] bg-transparent text-[var(--info)]",
147
- income: "border-current/60 bg-transparent text-[var(--money-income)]",
148
- expense: "border-current/60 bg-transparent text-[var(--money-expense)]",
149
- blue: "border-[var(--hue-blue-border)] bg-transparent text-[var(--hue-blue)]",
150
- indigo: "border-[var(--hue-indigo-border)] bg-transparent text-[var(--hue-indigo)]",
151
- purple: "border-[var(--hue-purple-border)] bg-transparent text-[var(--hue-purple)]",
152
- teal: "border-[var(--hue-teal-border)] bg-transparent text-[var(--hue-teal)]",
153
- orange: "border-[var(--hue-orange-border)] bg-transparent text-[var(--hue-orange)]",
148
+ brand: "border-brand bg-transparent text-brand-muted",
149
+ danger: "border-danger bg-transparent text-danger",
150
+ warning: "border-warning bg-transparent text-warning",
151
+ success: "border-success bg-transparent text-success",
152
+ info: "border-info bg-transparent text-info",
153
+ income: "border-current/60 bg-transparent text-money-income",
154
+ expense: "border-current/60 bg-transparent text-money-expense",
155
+ blue: "border-hue-blue bg-transparent text-hue-blue",
156
+ indigo: "border-hue-indigo bg-transparent text-hue-indigo",
157
+ purple: "border-hue-purple bg-transparent text-hue-purple",
158
+ teal: "border-hue-teal bg-transparent text-hue-teal",
159
+ orange: "border-hue-orange bg-transparent text-hue-orange",
154
160
  };
155
161
 
156
162
  // `solid`: the fill under its own foreground, `<fill>-contrast` (0.33, colour-roles
@@ -181,18 +187,18 @@ const SOLID: Record<ChipTone, string> = {
181
187
  * grey dot is "no particular state", not a darker black. */
182
188
  const DOT: Record<ChipTone, string> = {
183
189
  neutral: "bg-[var(--text-muted)]",
184
- brand: "bg-[var(--brand)]",
185
- danger: "bg-[var(--danger)]",
186
- warning: "bg-[var(--warning)]",
187
- success: "bg-[var(--success)]",
188
- info: "bg-[var(--info)]",
189
- income: "bg-[var(--money-income)]",
190
- expense: "bg-[var(--money-expense)]",
191
- blue: "bg-[var(--hue-blue)]",
192
- indigo: "bg-[var(--hue-indigo)]",
193
- purple: "bg-[var(--hue-purple)]",
194
- teal: "bg-[var(--hue-teal)]",
195
- orange: "bg-[var(--hue-orange)]",
190
+ brand: "bg-brand",
191
+ danger: "bg-danger",
192
+ warning: "bg-warning",
193
+ success: "bg-success",
194
+ info: "bg-info",
195
+ income: "bg-money-income",
196
+ expense: "bg-money-expense",
197
+ blue: "bg-hue-blue",
198
+ indigo: "bg-hue-indigo",
199
+ purple: "bg-hue-purple",
200
+ teal: "bg-hue-teal",
201
+ orange: "bg-hue-orange",
196
202
  };
197
203
 
198
204
  /** Per size: the dot's diameter. */
@@ -214,12 +220,12 @@ function surfaceOf(tone: ChipTone, variant: ChipVariant, selected: boolean | und
214
220
  // No surface and no border colour: the dot carries the tone, the text stays ink.
215
221
  // The border goes transparent rather than away, so a dot chip lines up with a pill.
216
222
  return selected
217
- ? "border-transparent bg-transparent font-medium text-[var(--text-primary)]"
218
- : "border-transparent bg-transparent text-[var(--text-secondary)]";
223
+ ? "border-transparent bg-transparent font-medium text-primary"
224
+ : "border-transparent bg-transparent text-secondary";
219
225
  }
220
226
  if (variant === "solid") {
221
227
  // A solid chip is already the strongest look there is, so "on" is a ring round it.
222
- return cn(SOLID[tone], selected && "ring-2 ring-[var(--border-strong)] ring-offset-1 ring-offset-[var(--bg-surface)]");
228
+ return cn(SOLID[tone], selected && "ring-2 ring-strong ring-offset-1 ring-offset-surface");
223
229
  }
224
230
  if (selected) return palette.selected;
225
231
  return variant === "outline" ? OUTLINE[tone] : palette.idle;
@@ -290,224 +296,12 @@ const SIZE: Record<
290
296
  },
291
297
  };
292
298
 
293
- /* ── Edge snapping (fractional device-pixel ratios) ──────────────────────────
294
- *
295
- * WHY. At a device-pixel ratio of 1.25 (a 125 % Windows display, or 125 % browser
296
- * zoom) Chrome snaps a box to whole CSS pixels and only then scales it, so a 1px
297
- * border is 1.25 device pixels wide and starts at a quarter-pixel phase that depends
298
- * on where the edge lands. A chip's left edge follows whatever stands before it, its
299
- * right edge follows its own text, so the two land on unrelated phases: one rasterises
300
- * as a crisp pixel, the other as a two-pixel smear at half strength — and a 60 %-alpha
301
- * border (`--danger-border`) makes the smeared side read as a THINNER line (keksdose
302
- * dev #576).
303
- *
304
- * WHAT FIXES IT. The two edges rasterise as mirror images exactly when their device
305
- * positions sum to a whole number: `(2·left + width) · dpr` integral, `left` being the
306
- * edge's snapped CSS x. Rounding the WIDTH alone to the ratio's grid (4px at 1.25)
307
- * makes the phases EQUAL, which is not the same thing: measured with keksdose's
308
- * playwright harness across every left phase at 1.25, width-only rounding mirrored the
309
- * edges at two of the four phases and left the other two as lopsided as before (mean
310
- * peak asymmetry 16.5, worse than the unsnapped 10.9 a random width gets by luck); the
311
- * position-aware width below took it to 0 at every phase. Inset rings, whole-pixel
312
- * starts, compositing hints and fractional border widths were measured by keksdose
313
- * and do not help — Chrome rounds a sub-pixel border back up to 1px.
314
- *
315
- * So the fix needs the chip's position, which is why it is opt-in (`snapEdges`): it
316
- * reads layout. Cheaply — every snapped chip on the page shares one ResizeObserver,
317
- * one `resize` listener and one resolution media query, and a pass is batched into a
318
- * frame as read-all / write-all, not a forced layout per chip. At an integer ratio,
319
- * and at a half one (1.5, 2.5: grid 2 — measured symmetric already, both edges a
320
- * pixel and a half on the same pattern), there is nothing to fix and a pass
321
- * writes nothing.
322
- */
323
-
324
- /** The smallest whole CSS-pixel count `n` with `n × dpr` whole — 4 at 1.25, 2 at 1.5,
325
- * 1 at an integer ratio. 0 for a ratio no step up to 4px fits (110 % zoom wants 10px;
326
- * a chip growing by up to 9px is a layout change, not a hairline fix). */
327
- function chipEdgeGrid(dpr: number): number {
328
- for (let n = 1; n <= 4; n++) if (Math.abs(n * dpr - Math.round(n * dpr)) < 1e-3) return n;
329
- return 0;
330
- }
331
-
332
- /**
333
- * The width (whole CSS px, at least `natural`) that mirrors a box's two edges at
334
- * `dpr`, for a box whose left edge sits at CSS x `left`. `natural` back when the ratio
335
- * needs nothing.
336
- */
337
- function snappedChipEdgeWidth(natural: number, left: number, dpr: number): number {
338
- const n = chipEdgeGrid(dpr);
339
- if (n <= 2) return natural;
340
- const l = Math.round(left);
341
- // A hair under a whole pixel is that pixel: 59.999 is a 60px chip, not a 61px one.
342
- let w = Math.ceil(natural - 0.01);
343
- while ((((2 * l + w) % n) + n) % n !== 0) w++;
344
- return w;
345
- }
346
-
347
- const snapped = new Set<HTMLElement>();
348
- /** The min-width each chip was given by a pass — so a pass only ever clears its own. */
349
- const written = new WeakMap<HTMLElement, string>();
350
- let snapFrame = 0;
351
- let snapObserver: ResizeObserver | null = null;
352
- let ratioQuery: MediaQueryList | null = null;
353
-
354
- function clearOwn(el: HTMLElement) {
355
- const own = written.get(el);
356
- if (own !== undefined && el.style.minWidth === own) el.style.minWidth = "";
357
- written.delete(el);
358
- }
359
-
360
- /**
361
- * Re-snap every chip rendered with `snapEdges`, now. The kit already re-snaps when a
362
- * chip renders, resizes, or the window or the ratio changes; call this after moving
363
- * chips some other way (a side panel sliding in beside a table of status chips),
364
- * since a move is not something an observer can see.
365
- */
366
- export function refreshChipEdges(): void {
367
- if (snapFrame) {
368
- cancelAnimationFrame(snapFrame);
369
- snapFrame = 0;
370
- }
371
- if (typeof window === "undefined" || !snapped.size) return;
372
- const dpr = window.devicePixelRatio || 1;
373
- const els = [...snapped];
374
- // Write: back to the natural width, so what is read below is the chip, not our pin.
375
- for (const el of els) clearOwn(el);
376
- const n = chipEdgeGrid(dpr);
377
- if (n <= 2) return;
378
- // A chip whose own end decides where it starts (RTL, `justify-end`) moves when it
379
- // grows, so a pass re-reads what it wrote and steps on by a pixel until the edges
380
- // agree — `n` steps cover every residue. Each pass is ONE layout for every chip
381
- // together. A chip that never agrees (a centred one moves both edges at once) is
382
- // given its natural width back rather than kept wider for nothing.
383
- let pending = els;
384
- for (let pass = 0; pass <= n && pending.length; pass++) {
385
- const reads = pending.map((el) => {
386
- const r = el.getBoundingClientRect();
387
- // The text label (CHIP_LABEL_TRUNCATE; `.truncate` before 0.33).
388
- const label = el.querySelector<HTMLElement>(".truncate-until-large");
389
- // Not laid out (a hidden ancestor, jsdom), or truncated at its container's edge,
390
- // where a wider chip would overflow: leave it alone. So too a label wrapped onto
391
- // a second line at Large (0.32.1): the chip is already as wide as its row lets it
392
- // be, and a min-width past that would push it over the edge just the same.
393
- if (!r.width || (label && (label.scrollWidth > label.clientWidth || labelWraps(label)))) return null;
394
- const width = Math.round(r.width * 64) / 64;
395
- const target = snappedChipEdgeWidth(width, r.left + window.scrollX, dpr);
396
- return target === width ? null : target;
397
- });
398
- const next: HTMLElement[] = [];
399
- pending.forEach((el, i) => {
400
- const target = reads[i];
401
- if (target == null) return;
402
- if (pass === n) {
403
- clearOwn(el);
404
- return;
405
- }
406
- const own = written.get(el);
407
- const value = `${pass > 0 && own !== undefined ? parseFloat(own) + 1 : target}px`;
408
- el.style.minWidth = value;
409
- written.set(el, value);
410
- next.push(el);
411
- });
412
- pending = next;
413
- }
414
- }
415
-
416
- /** Whether a chip's label runs to more than one line — taller than one and a half of
417
- * its line height. A line height of `normal` (no number to compare) counts as one line. */
418
- function labelWraps(label: HTMLElement): boolean {
419
- const line = Number.parseFloat(getComputedStyle(label).lineHeight);
420
- return line > 0 && label.clientHeight > 1.5 * line;
421
- }
422
-
423
- function scheduleChipEdges() {
424
- if (snapFrame || typeof requestAnimationFrame === "undefined") return;
425
- snapFrame = requestAnimationFrame(() => {
426
- snapFrame = 0;
427
- refreshChipEdges();
428
- });
429
- }
430
-
431
- /** The resolution query for the CURRENT ratio: it stops matching when the ratio
432
- * changes (a window dragged to another display), which a `resize` need not fire. */
433
- function watchRatio() {
434
- ratioQuery?.removeEventListener("change", onRatioChange);
435
- ratioQuery =
436
- typeof window.matchMedia === "function"
437
- ? window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`)
438
- : null;
439
- ratioQuery?.addEventListener("change", onRatioChange);
440
- }
441
-
442
- function onRatioChange() {
443
- watchRatio();
444
- scheduleChipEdges();
445
- }
446
-
447
- function registerSnap(el: HTMLElement) {
448
- if (snapped.has(el)) return;
449
- if (!snapped.size) {
450
- if (typeof ResizeObserver !== "undefined") snapObserver = new ResizeObserver(scheduleChipEdges);
451
- window.addEventListener("resize", scheduleChipEdges);
452
- watchRatio();
453
- }
454
- snapped.add(el);
455
- snapObserver?.observe(el);
456
- scheduleChipEdges();
457
- }
458
-
459
- function unregisterSnap(el: HTMLElement) {
460
- if (!snapped.delete(el)) return;
461
- snapObserver?.unobserve(el);
462
- clearOwn(el);
463
- if (snapped.size) return;
464
- snapObserver?.disconnect();
465
- snapObserver = null;
466
- window.removeEventListener("resize", scheduleChipEdges);
467
- ratioQuery?.removeEventListener("change", onRatioChange);
468
- ratioQuery = null;
469
- }
470
-
471
- /** The ref a chip hangs on its visible pill, plus a re-snap after every render (its
472
- * label or its neighbours may have changed). */
473
- function useSnapEdges(on: boolean) {
474
- const node = useRef<HTMLElement | null>(null);
475
- const ref = useCallback(
476
- (el: HTMLElement | null) => {
477
- if (el === node.current) return;
478
- const prev = node.current;
479
- node.current = el;
480
- // React detaches and re-attaches a ref whose callback changed identity (a
481
- // consumer's inline ref) — the same element, a moment apart. Unregistering on
482
- // the detach would clear the pin and paint one frame unsnapped, so the drop
483
- // waits a microtask and is skipped if the element came straight back.
484
- if (prev) queueMicrotask(() => node.current !== prev && unregisterSnap(prev));
485
- if (el && on) registerSnap(el);
486
- },
487
- [on],
488
- );
489
- useLayoutEffect(() => {
490
- const el = node.current;
491
- if (!el) return;
492
- if (on) {
493
- registerSnap(el);
494
- scheduleChipEdges();
495
- } else unregisterSnap(el);
496
- });
497
- return ref;
498
- }
499
-
500
- function assignRef<T>(target: Ref<T> | undefined, value: T | null) {
501
- if (typeof target === "function") target(value);
502
- else if (target) (target as { current: T | null }).current = value;
503
- }
504
-
505
299
  const CHIP_PILL = "inline-flex max-w-full items-center rounded-full border transition-colors";
506
300
 
507
301
  // `focus-visible`, not `focus`: a chip commonly receives focus programmatically (the
508
302
  // ChipInput moves focus onto one after a removal) and a ring that appears on a
509
303
  // pointer click reads as a stuck selection.
510
- const CHIP_RING = `${FOCUS_RING} focus-visible:ring-offset-1 focus-visible:ring-offset-[var(--bg-surface)]`;
304
+ const CHIP_RING = `${FOCUS_RING} focus-visible:ring-offset-1 focus-visible:ring-offset-surface`;
511
305
  const CHIP_BASE = `${CHIP_PILL} ${CHIP_RING}`;
512
306
 
513
307
  /**
@@ -564,7 +358,7 @@ interface ChipBaseProps {
564
358
  caps?: boolean;
565
359
  /**
566
360
  * The leading glyph: a lucide component (`icon={Check}`, drawn at the chip's size), or
567
- * — since 0.15.4 — a ready element (`icon={<Check className="text-[var(--success)]" />}`)
361
+ * — since 0.15.4 — a ready element (`icon={<Check className="text-success" />}`)
568
362
  * for a glyph whose colour or stroke carries a state; it is sized to the same box
569
363
  * (keksdose live #358 built that slot by hand inside `children`).
570
364
  */
@@ -644,6 +438,9 @@ interface ChipBaseProps {
644
438
  * nothing to snap.
645
439
  */
646
440
  snapEdges?: boolean;
441
+ /** The interactive element — the pill, or a split pill's body. A React 19 ref prop
442
+ * since 0.34 (MOD-4, refactor audit 2026-10); it was `forwardRef`. */
443
+ ref?: Ref<HTMLElement>;
647
444
  }
648
445
 
649
446
  /**
@@ -737,42 +534,40 @@ export type ChipProps = ChipBaseProps &
737
534
  * focus ring is drawn on the body alone, and `ref`, `id` and the ARIA props still reach
738
535
  * the body — the interactive element.
739
536
  */
740
- export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
741
- {
742
- children,
743
- tone = "neutral",
744
- size = "md",
745
- variant = "soft",
746
- shape = "pill",
747
- caps = false,
748
- icon: Icon,
749
- selected,
750
- checkbox = false,
751
- href,
752
- renderLink,
753
- onClick,
754
- onRemove,
755
- removeLabel,
756
- removeDisabled = false,
757
- disabled = false,
758
- className,
759
- tabIndex,
760
- role,
761
- onKeyDown,
762
- onFocus,
763
- snapEdges = false,
764
- disabledReason: ownDisabledReason,
765
- disabledReasonDisplay,
766
- commit,
767
- ...rest
768
- },
537
+ export function Chip({
769
538
  ref,
770
- ) {
539
+ children,
540
+ tone = "neutral",
541
+ size = "md",
542
+ variant = "soft",
543
+ shape = "pill",
544
+ caps = false,
545
+ icon: Icon,
546
+ selected,
547
+ checkbox = false,
548
+ href,
549
+ renderLink,
550
+ onClick,
551
+ onRemove,
552
+ removeLabel,
553
+ removeDisabled = false,
554
+ disabled = false,
555
+ className,
556
+ tabIndex,
557
+ role,
558
+ onKeyDown,
559
+ onFocus,
560
+ snapEdges = false,
561
+ disabledReason: ownDisabledReason,
562
+ disabledReasonDisplay,
563
+ commit,
564
+ ...rest
565
+ }: ChipProps) {
771
566
  const common = useKitLabels("common", DEFAULT_COMMON_LABELS, { remove: removeLabel });
772
567
  const reasonId = useId();
773
568
  const disabledReason = useCommitReason(commit, ownDisabledReason);
774
569
  // Only the BUTTON shape commits: a link navigates, an inert chip does nothing.
775
- const locked = Boolean(onClick) && !href && hasReason(disabledReason);
570
+ const locked = Boolean(onClick) && !href && hasContent(disabledReason);
776
571
  const kitLink = useKitLink();
777
572
  const s = SIZE[size];
778
573
  const interactive = !!href || !!onClick;
@@ -820,6 +615,12 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
820
615
  className,
821
616
  );
822
617
 
618
+ // The tone as data on the visible pill (0.34, refactor audit 2026-10, TST-9): a stable
619
+ // hook for a test or a caller's selector, where the surface classes are the kit's to
620
+ // change. On the pill wrapper of a split chip, else on the chip itself; before the
621
+ // caller's props, so a `data-tone` of their own wins.
622
+ const toneData = { "data-tone": onRemove ? undefined : tone } as Record<string, string | undefined>;
623
+
823
624
  // The checkbox box, only on the toggle shape it has meaning on.
824
625
  const isCheckbox = checkbox && !!onClick && !href;
825
626
  const body = (
@@ -895,7 +696,7 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
895
696
  FOCUS_RING,
896
697
  // §4: the × is a 48 px target at Large without growing the chip around it.
897
698
  REMOVE_HIT_AREA_LARGE,
898
- !locked && "hover:bg-[var(--bg-active)]",
699
+ !locked && "hover:bg-active",
899
700
  locked && "cursor-not-allowed",
900
701
  ((disabled && !locked) || removeDisabled) && "pointer-events-none",
901
702
  // A disabled chip is already dimmed as a whole; dimming the × again on top
@@ -911,6 +712,7 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
911
712
  const pill = (inner: ReactNode) => (
912
713
  <span
913
714
  ref={snap ? snapRef : undefined}
715
+ data-tone={tone}
914
716
  // The pill is the target's box here (§4): the body inside stretches to its height.
915
717
  className={cn(CHIP_PILL, s.tail, radius, surface, target && CHIP_TOUCH_LARGE, snap && "justify-center", className)}
916
718
  >
@@ -936,6 +738,7 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
936
738
  // On this shape `onClick` is the link shape's, typed for the anchor.
937
739
  const onLinkClick = onClick as ChipLinkProps["onClick"];
938
740
  const linkProps: ChipLinkProps = {
741
+ ...toneData,
939
742
  ...rest,
940
743
  ref: (remove ? ref : ownRef) as Ref<HTMLAnchorElement>,
941
744
  href,
@@ -952,6 +755,7 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
952
755
  ) : (
953
756
  <a
954
757
  ref={(remove ? ref : ownRef) as React.Ref<HTMLAnchorElement>}
758
+ {...toneData}
955
759
  href={href}
956
760
  aria-current={selected ? "true" : undefined}
957
761
  onClick={onLinkClick}
@@ -972,6 +776,7 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
972
776
  const button = (
973
777
  <button
974
778
  ref={(remove ? ref : ownRef) as React.Ref<HTMLButtonElement>}
779
+ {...toneData}
975
780
  type="button"
976
781
  onClick={(e) => {
977
782
  // Locked: the press is swallowed — the chip saves on press, and a lock that
@@ -1006,9 +811,9 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
1006
811
  const shaped = remove ? pill(button) : button;
1007
812
  if (!locked) return shaped;
1008
813
  return (
1009
- <ChipReasonFrame reason={disabledReason} reasonId={reasonId} display={disabledReasonDisplay}>
814
+ <LockedReason lock={{ reason: disabledReason, reasonId }} display={disabledReasonDisplay}>
1010
815
  {shaped}
1011
- </ChipReasonFrame>
816
+ </LockedReason>
1012
817
  );
1013
818
  }
1014
819
 
@@ -1018,6 +823,7 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
1018
823
  (ChipInput does); the role is a prop, so the rule cannot see it. */
1019
824
  <span
1020
825
  ref={ownRef as React.Ref<HTMLSpanElement>}
826
+ {...toneData}
1021
827
  className={look}
1022
828
  tabIndex={tabIndex}
1023
829
  role={role}
@@ -1029,53 +835,6 @@ export const Chip = forwardRef<HTMLElement, ChipProps>(function Chip(
1029
835
  {remove}
1030
836
  </span>
1031
837
  );
1032
- });
1033
-
1034
- /**
1035
- * A locked chip and its reason (0.32, docs/text-size-harmonization.md §4): a line under
1036
- * the chip at Large and on touch, else the kit {@link Tooltip} — Button's `ReasonFrame`,
1037
- * see {@link DisabledReasonDisplay}. A component of its own so only a LOCKED chip asks
1038
- * the text size and the pointer; the unlocked chips of a filter row subscribe to nothing.
1039
- *
1040
- * Tooltip form: the chip in a FRAGMENT, as a locked Button is — the bubble is visual, and
1041
- * the hidden copy beside it is what the chip (and its ×) is described by. Line form: the
1042
- * line is that description, under the chip, and no bubble repeats it.
1043
- */
1044
- function ChipReasonFrame({
1045
- reason,
1046
- reasonId,
1047
- display,
1048
- children,
1049
- }: {
1050
- reason: ReactNode;
1051
- reasonId: string;
1052
- display: DisabledReasonDisplay | undefined;
1053
- children: ReactNode;
1054
- }) {
1055
- const line = useDisabledReasonLine(display);
1056
- if (line) {
1057
- return (
1058
- <DisabledReasonLine id={reasonId} reason={reason}>
1059
- {children}
1060
- </DisabledReasonLine>
1061
- );
1062
- }
1063
- return (
1064
- <Tooltip label={reason}>
1065
- <>
1066
- {children}
1067
- <span id={reasonId} hidden>
1068
- {reason}
1069
- </span>
1070
- </>
1071
- </Tooltip>
1072
- );
1073
- }
1074
-
1075
- /** `null`, `false` and `""` are what a `cond && reason` gives on the happy path — no
1076
- * reason, so no lock. */
1077
- function hasReason(node: ReactNode): boolean {
1078
- return node !== undefined && node !== null && node !== false && node !== "";
1079
838
  }
1080
839
 
1081
840
  /** Calls a chip's `renderLink` with the props it was given — see its call site. */
@@ -1085,358 +844,3 @@ function RenderedLink({
1085
844
  }: ChipLinkProps & { render: (props: ChipLinkProps) => ReactElement }) {
1086
845
  return render(props);
1087
846
  }
1088
-
1089
- /* ── ChipInput ────────────────────────────────────────────────────────────── */
1090
-
1091
- export interface ChipInputLabels {
1092
- /** Announced after a value is added. Receives the value. */
1093
- added: (value: string) => string;
1094
- /** Announced after a value is removed. Receives the value. */
1095
- removed: (value: string) => string;
1096
- /** Accessible name for each chip's dismiss button. */
1097
- remove: string;
1098
- /** Shown when `max` is reached. Receives the limit. */
1099
- atLimit: (max: number) => string;
1100
- /** Shown when a duplicate is rejected. Receives the value. */
1101
- duplicate: (value: string) => string;
1102
- }
1103
-
1104
- export const DEFAULT_CHIP_INPUT_LABELS: ChipInputLabels = {
1105
- added: (v) => `${v} added`,
1106
- removed: (v) => `${v} removed`,
1107
- remove: "Remove",
1108
- atLimit: (max) => `Limit of ${max} reached`,
1109
- duplicate: (v) => `${v} is already in the list`,
1110
- };
1111
-
1112
- export function resolveChipInputLabels(labels?: Partial<ChipInputLabels>): ChipInputLabels {
1113
- return labels ? { ...DEFAULT_CHIP_INPUT_LABELS, ...labels } : DEFAULT_CHIP_INPUT_LABELS;
1114
- }
1115
-
1116
- /**
1117
- * `onChange` is the field's own — the whole LIST, not a DOM event — so the wrapper
1118
- * div's `onChange` is omitted rather than shadowed. `placeholder` is likewise this
1119
- * component's, forwarded to the inner `<input>`; the div has none of its own.
1120
- */
1121
- export interface ChipInputProps
1122
- extends Omit<ComponentPropsWithoutRef<"div">, "onChange" | "placeholder" | "children"> {
1123
- value: string[];
1124
- onChange: (next: string[]) => void;
1125
- placeholder?: string;
1126
- /** Visible label, rendered above the field. Without one, name the field with
1127
- * `aria-label`. */
1128
- label?: string;
1129
- /**
1130
- * @deprecated Pass `aria-label` instead — the DOM spelling the rest of this kit
1131
- * now uses. Still honoured, and still second to `aria-label` when both are given.
1132
- */
1133
- ariaLabel?: string;
1134
- /** Reject or rewrite a value on commit. Return a string to reject WITH that message. */
1135
- validate?: (raw: string) => string | null;
1136
- /** Characters that commit the current text, besides Enter. Default: comma. */
1137
- separators?: string[];
1138
- allowDuplicates?: boolean;
1139
- max?: number;
1140
- tone?: ChipTone;
1141
- size?: ChipSize;
1142
- disabled?: boolean;
1143
- invalid?: boolean;
1144
- /** Error text. Wires `aria-describedby` and implies `invalid`. */
1145
- error?: ReactNode;
1146
- labels?: Partial<ChipInputLabels>;
1147
- className?: string;
1148
- }
1149
-
1150
- /**
1151
- * A field whose value is a LIST, entered as chips.
1152
- *
1153
- * The keyboard model is the whole component; the pills are the easy part. Per the WAI
1154
- * pattern for a "tag" input:
1155
- *
1156
- * Enter, or any separator commit the typed text
1157
- * Backspace on empty text move focus to the last chip (does NOT delete it)
1158
- * ← → while on a chip move between chips, in reading order (mirrored in RTL)
1159
- * Backspace / Delete remove the focused chip, focus its neighbour
1160
- * Escape clear what is typed but keep the committed chips
1161
- * paste splits on the separators, so a pasted CSV becomes chips
1162
- *
1163
- * The Backspace-on-empty behaviour is the one worth arguing about. Deleting immediately
1164
- * is more common and is a trap: it is a destructive action with no feedback on a key
1165
- * people hit by reflex, and the value it destroys may have taken a while to type. Moving
1166
- * focus first makes the second Backspace a deliberate one, and it is what lets a
1167
- * keyboard user reach a chip at all.
1168
- */
1169
- export function ChipInput({
1170
- value,
1171
- onChange,
1172
- placeholder,
1173
- label,
1174
- ariaLabel,
1175
- validate,
1176
- separators = [","],
1177
- allowDuplicates = false,
1178
- max,
1179
- tone = "neutral",
1180
- size = "md",
1181
- disabled = false,
1182
- invalid = false,
1183
- error,
1184
- labels,
1185
- className,
1186
- "aria-label": ariaLabelAttr,
1187
- ...rest
1188
- }: ChipInputProps) {
1189
- // `labels` over the provider's `chipInput` over English — the same order
1190
- // `resolveChipInputLabels` gives outside a provider.
1191
- const text = useKitLabels("chipInput", DEFAULT_CHIP_INPUT_LABELS, labels);
1192
- // A batch of pasted values is announced as one list, joined the way the language
1193
- // joins a list in a sentence ("a, b and c added") — hence the long conjunction,
1194
- // where a trigger's summary would use the narrow one.
1195
- const locale = useKitLocale();
1196
- const [draft, setDraft] = useState("");
1197
- const [message, setMessage] = useState("");
1198
- // The last refusal, shown under the field until the next edit. The live region alone
1199
- // told only a screen-reader user why Enter did nothing; everyone else saw the text
1200
- // simply stay put.
1201
- const [rejected, setRejected] = useState<string | null>(null);
1202
- const [focusedChip, setFocusedChip] = useState<number | null>(null);
1203
- const inputRef = useRef<HTMLInputElement>(null);
1204
- const chipRefs = useRef<Array<HTMLElement | null>>([]);
1205
- const id = useId();
1206
- const listId = `${id}-list`;
1207
- const errorId = `${id}-error`;
1208
- const rejectedId = `${id}-rejected`;
1209
- const isInvalid = invalid || !!error;
1210
- const describedBy = [error ? errorId : null, rejected ? rejectedId : null]
1211
- .filter(Boolean)
1212
- .join(" ");
1213
-
1214
- const focusChip = (index: number | null) => {
1215
- setFocusedChip(index);
1216
- if (index === null) inputRef.current?.focus();
1217
- else chipRefs.current[index]?.focus();
1218
- };
1219
-
1220
- /**
1221
- * Try to add every candidate, as ONE change.
1222
- *
1223
- * Batched rather than looped for a reason that bites immediately: `commit` closes over
1224
- * `value`, so calling it once per pasted item makes every call compute its result from
1225
- * the list as it was BEFORE the paste, and each `onChange` overwrites the last. A
1226
- * pasted "one,two,three" left only "three". Accumulating locally and emitting once is
1227
- * also the correct behaviour for an undo stack — a paste is one action.
1228
- */
1229
- const commitMany = (raws: string[]): { added: string[]; rejection: string | null } => {
1230
- const next = [...value];
1231
- const added: string[] = [];
1232
- let rejection: string | null = null;
1233
-
1234
- for (const raw of raws) {
1235
- const candidate = raw.trim();
1236
- if (!candidate) continue;
1237
- if (max !== undefined && next.length >= max) {
1238
- rejection ??= text.atLimit(max);
1239
- break;
1240
- }
1241
- if (!allowDuplicates && next.includes(candidate)) {
1242
- rejection ??= text.duplicate(candidate);
1243
- continue;
1244
- }
1245
- const invalidReason = validate?.(candidate);
1246
- if (invalidReason) {
1247
- rejection ??= invalidReason;
1248
- continue;
1249
- }
1250
- next.push(candidate);
1251
- added.push(candidate);
1252
- }
1253
-
1254
- if (added.length) onChange(next);
1255
- // A rejection is the more useful thing to say: "three added" is obvious from the
1256
- // chips appearing, whereas "already in the list" is the only sign of what did not.
1257
- const addedList = new Intl.ListFormat(locale, { type: "conjunction", style: "long" });
1258
- setMessage(rejection ?? (added.length ? text.added(addedList.format(added)) : ""));
1259
- setRejected(rejection);
1260
- return { added, rejection };
1261
- };
1262
-
1263
- const commit = (raw: string): boolean => commitMany([raw]).added.length > 0;
1264
-
1265
- const removeAt = (index: number) => {
1266
- const removed = value[index];
1267
- onChange(value.filter((_, i) => i !== index));
1268
- setMessage(text.removed(removed));
1269
- setRejected(null);
1270
- // Focus the neighbour that takes its place, or the input when the list empties —
1271
- // dropping focus to <body> here is how a keyboard user loses the field entirely.
1272
- const next = index >= value.length - 1 ? null : index;
1273
- requestAnimationFrame(() => focusChip(value.length - 1 === 0 ? null : next));
1274
- };
1275
-
1276
- const onInputKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {
1277
- if (e.key === "Enter") {
1278
- // Only when there is something to commit: an empty Enter belongs to the form.
1279
- if (draft.trim()) {
1280
- e.preventDefault();
1281
- if (commit(draft)) setDraft("");
1282
- }
1283
- return;
1284
- }
1285
- if (separators.includes(e.key)) {
1286
- e.preventDefault();
1287
- if (commit(draft)) setDraft("");
1288
- return;
1289
- }
1290
- if (e.key === "Escape" && draft) {
1291
- e.preventDefault();
1292
- setDraft("");
1293
- return;
1294
- }
1295
- if (e.key === "Backspace" && !draft && value.length) {
1296
- e.preventDefault();
1297
- focusChip(value.length - 1);
1298
- }
1299
- };
1300
-
1301
- const onChipKeyDown = (e: KeyboardEvent<HTMLElement>, index: number) => {
1302
- if (e.key === "Backspace" || e.key === "Delete") {
1303
- e.preventDefault();
1304
- removeAt(index);
1305
- return;
1306
- }
1307
- // ←/→ follow the reading direction, not DOM order: in RTL the previous chip is to
1308
- // the RIGHT, and ArrowLeft moves on towards the input.
1309
- const step = horizontalStep(e.key, e.currentTarget);
1310
- if (step === -1 && index > 0) {
1311
- e.preventDefault();
1312
- focusChip(index - 1);
1313
- return;
1314
- }
1315
- if (step === 1) {
1316
- e.preventDefault();
1317
- focusChip(index === value.length - 1 ? null : index + 1);
1318
- return;
1319
- }
1320
- if (e.key === "Escape") {
1321
- e.preventDefault();
1322
- focusChip(null);
1323
- }
1324
- };
1325
-
1326
- return (
1327
- // The rest lands on the OUTER box — the thing a `data-tour` step or a test id
1328
- // wants to point at — while the accessible name below goes on the `<input>`,
1329
- // because that is what a screen-reader user actually lands in. Spreading the two
1330
- // to the same element would have named a decorative wrapper and left the field
1331
- // anonymous.
1332
- <div {...rest} className={cn("space-y-1", className)}>
1333
- {label && (
1334
- <label htmlFor={`${id}-input`} className="block text-sm text-[var(--text-secondary)]">
1335
- {label}
1336
- </label>
1337
- )}
1338
- {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions -- a
1339
- pointer convenience that widens the input's hit area to the whole field; the
1340
- keyboard path is the <input> itself, which is in the tab order. */}
1341
- <div
1342
- // `relative` so the live region below can be `sr-only` without escaping to the
1343
- // initial containing block and inflating the document height.
1344
- className={cn(
1345
- "relative flex flex-wrap items-center gap-1.5 rounded-md border border-[var(--border)] bg-[var(--bg-surface)] px-2 py-1.5 shadow-sm",
1346
- "focus-within:border-[var(--brand)] focus-within:ring-1 focus-within:ring-[var(--brand)]",
1347
- disabled && "cursor-default bg-[var(--bg-surface-2)]",
1348
- isInvalid && FIELD_INVALID,
1349
- )}
1350
- onClick={() => !disabled && inputRef.current?.focus()}
1351
- >
1352
- {/* `display: contents` on the wrappers so the chips participate in the field's
1353
- own flex wrap rather than forming a nested row. The list semantics are
1354
- restored with explicit roles, because `contents` removes the ul/li boxes from
1355
- the accessibility tree in several engines. */}
1356
- {/* eslint-disable-next-line jsx-a11y/no-redundant-roles -- NOT redundant here: the
1357
- `contents` display below removes the ul and li boxes from the box tree, and
1358
- several engines drop the list semantics with them. The explicit role is what
1359
- puts "list, 3 items" back. */}
1360
- <ul id={listId} role="list" className="contents">
1361
- {value.map((v, i) => (
1362
- <li key={`${v}-${i}`} role="presentation" className="contents">
1363
- <Chip
1364
- ref={(el: HTMLElement | null) => {
1365
- chipRefs.current[i] = el;
1366
- }}
1367
- tone={tone}
1368
- size={size}
1369
- disabled={disabled}
1370
- removeLabel={text.remove}
1371
- onRemove={disabled ? undefined : () => removeAt(i)}
1372
- // A ROVING tabIndex: only the focused chip is tabbable, so Tab leaves
1373
- // the field instead of walking through every value in it — the reason a
1374
- // list of twenty tags is otherwise a twenty-stop detour for a keyboard.
1375
- tabIndex={focusedChip === i ? 0 : -1}
1376
- role="listitem"
1377
- aria-label={v}
1378
- onKeyDown={(e) => onChipKeyDown(e, i)}
1379
- onFocus={() => setFocusedChip(i)}
1380
- data-chip-index={i}
1381
- >
1382
- {v}
1383
- </Chip>
1384
- </li>
1385
- ))}
1386
- </ul>
1387
- <input
1388
- id={`${id}-input`}
1389
- ref={inputRef}
1390
- value={draft}
1391
- onChange={(e) => {
1392
- setDraft(e.target.value);
1393
- setMessage("");
1394
- setRejected(null);
1395
- }}
1396
- onKeyDown={onInputKeyDown}
1397
- onBlur={() => {
1398
- // Commit on blur: a value typed and then clicked away from is a value the
1399
- // user meant to add, and losing it silently is the commonest complaint
1400
- // about this pattern.
1401
- if (draft.trim() && commit(draft)) setDraft("");
1402
- }}
1403
- onPaste={(e) => {
1404
- const pasted = e.clipboardData.getData("text");
1405
- const pattern = new RegExp(`[${separators.map((s) => `\\${s}`).join("")}\n\r]`);
1406
- if (!pattern.test(pasted)) return;
1407
- e.preventDefault();
1408
- if (commitMany(pasted.split(pattern)).added.length) setDraft("");
1409
- }}
1410
- placeholder={value.length ? undefined : placeholder}
1411
- disabled={disabled}
1412
- // A visible `label` is already wired through `htmlFor`, so adding a name
1413
- // here would give the field two. Failing that, the DOM spelling wins and
1414
- // the deprecated `ariaLabel` is the fallback.
1415
- aria-label={label ? undefined : (ariaLabelAttr ?? ariaLabel)}
1416
- aria-describedby={describedBy || undefined}
1417
- aria-invalid={isInvalid || !!rejected || undefined}
1418
- // `w-0` with flex-1: without a width the browser's default input size (20
1419
- // characters) became the field's minimum width and pushed it past a 240 px
1420
- // phone at 150 % (0.32's screenshot run).
1421
- className={cn("w-0 min-w-[6rem] flex-1 bg-transparent py-0.5 text-sm text-[var(--text-primary)] outline-none placeholder:text-[var(--text-placeholder)] disabled:cursor-default", FIELD_TOUCH_TEXT)}
1422
- />
1423
- {/* Additions, removals and rejections move no focus, so nothing would announce
1424
- them. `sr-only-fixed` rather than `sr-only`: this sits inside a consumer's
1425
- markup and must not extend the document height. */}
1426
- <span role="status" aria-live="polite" aria-atomic className="sr-only-fixed">
1427
- {message}
1428
- </span>
1429
- </div>
1430
- {error && (
1431
- <p id={errorId} className="text-xs text-[var(--danger)]">
1432
- {error}
1433
- </p>
1434
- )}
1435
- {rejected && (
1436
- <p id={rejectedId} className="text-xs text-[var(--danger)]" data-chip-input-rejected="">
1437
- {rejected}
1438
- </p>
1439
- )}
1440
- </div>
1441
- );
1442
- }